From 37532f5802eae207940b8bd9812ee0b4ca308d65 Mon Sep 17 00:00:00 2001 From: guoyuji <guoyujie@ng.com> Date: 星期二, 27 二月 2024 13:50:33 +0800 Subject: [PATCH] 订单,产品前后端数据提交 --- north-glass-erp/src/main/java/com/example/erp/service/sd/ProductService.java | 65 ++++++++++++++++++++++++++------ 1 files changed, 52 insertions(+), 13 deletions(-) diff --git a/north-glass-erp/src/main/java/com/example/erp/service/sd/ProductService.java b/north-glass-erp/src/main/java/com/example/erp/service/sd/ProductService.java index b048dae..d6b3f07 100644 --- a/north-glass-erp/src/main/java/com/example/erp/service/sd/ProductService.java +++ b/north-glass-erp/src/main/java/com/example/erp/service/sd/ProductService.java @@ -1,21 +1,22 @@ package com.example.erp.service.sd; -import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson.parser.Feature; import com.baomidou.dynamic.datasource.annotation.DS; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.example.erp.common.Constants; import com.example.erp.entity.sd.Product; import com.example.erp.entity.sd.ProductDetail; +import com.example.erp.exception.ServiceException; import com.example.erp.mapper.sd.ProductDetailMapper; import com.example.erp.mapper.sd.ProductMapper; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.text.DecimalFormat; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Objects; +import java.util.*; @Service @DS("sd") @@ -30,7 +31,7 @@ this.productMapper = productMapper; this.productDetailMapper = productDetailMapper; } -//浜у搧鏌ヨ鏂规硶 + //浜у搧鏌ヨ鏂规硶 public Map<String,Object> defaultDateProduct(Integer pageNum, Integer pageSize, List<String> glassType, Product product) { Integer offset = (pageNum-1)*pageSize; String glassTypeId = null; @@ -43,18 +44,37 @@ return map; } -//浜у搧淇濆瓨鏂规硶 + //浜у搧淇濆瓨鏂规硶 public boolean saveProduct(Map<String,Object> productObject) { //鎶婁紶鍏ヤ富闄勮〃鐨刼bject绫诲瀷杞崲鎴愬疄浣撶被绫诲瀷 JSONObject productJson = new JSONObject(productObject); Product product = JSONObject.parseObject(JSONObject.toJSONString(productJson.get("title")), Product.class); List<ProductDetail> productDetails = JSONArray.parseArray(JSONObject.toJSONString(productJson.get("detail")), ProductDetail.class); - + System.out.println(product); //瀹屽杽涓婚檮琛ㄤ俊鎭苟杩斿洖 Map<String,Object> getProductJson = updateProduct(productDetails,product); Product getProduct = JSONObject.parseObject(JSONObject.toJSONString(getProductJson.get("title")), Product.class); List<ProductDetail> getProductDetails = JSONArray.parseArray(JSONObject.toJSONString(getProductJson.get("detail")), ProductDetail.class); + if(getProduct.getId()==null ){ + insertProduct(getProduct,getProductDetails); + }else{ + updateProductData(getProductDetails,getProduct); + } + return true; + + } + + private void updateProductData(List<ProductDetail> getProductDetails, Product getProduct) { + productMapper.update(getProduct,new UpdateWrapper<Product>().eq("id",getProduct.getId())); + productDetailMapper.delete(new QueryWrapper<ProductDetail>().eq("prod_id",getProduct.getId())); + for (ProductDetail getProductDetail : getProductDetails) { + getProductDetail.setProdId(getProduct.getId()); + } + productDetailMapper.insertList(getProductDetails); + } + + private void insertProduct(Product getProduct, List<ProductDetail> getProductDetails) { //鎻掑叆涓昏〃鏁版嵁 productMapper.insert(getProduct); //缁欏壇琛ㄦ坊鍔犱骇鍝乮d @@ -63,9 +83,6 @@ } //鎻掑叆鍓〃 productDetailMapper.insertList(getProductDetails); - - return false; - } private Map<String,Object> updateProduct(List<ProductDetail> productDetailList,Product product) { @@ -87,8 +104,7 @@ for (ProductDetail productDetail : productDetailList) { sortNum+=1; productDetail.setSortNum(sortNum); - - JSONObject separation = JSONObject.parseObject( productDetail.getSeparation()); + JSONObject separation = JSONObject.parseObject(productDetail.getSeparation(), Feature.OrderedField); String getThickness = (String) separation.get("thickness"); double thicknessDetail = Double.parseDouble(getThickness.replace("mm","")); totalThickness += thicknessDetail; @@ -115,4 +131,27 @@ map.put("detail",productDetailList); return map; } + + public boolean deleteProductById(Integer id) { + Product product = productMapper.selectById(id); + if(product.getState()==1){ + throw new ServiceException(Constants.Code_600,"浜у搧宸插鏍�,鏃犳硶鍒犻櫎"); + } + productMapper.deleteById(id); + return true; + } + + public boolean updateProductStateById(Integer id,Integer state) { + return productMapper.updateProductStateById(id,state); + } + + public Map<String,Object> selectProductById(Integer id) { + Product product = productMapper.selectById(id); + List<ProductDetail> productDetailList = productDetailMapper.selectList( + new QueryWrapper<ProductDetail>().eq("prod_id", id)); + Map<String,Object> map = new HashMap<>(); + map.put("title",product); + map.put("detail",productDetailList); + return map; + } } -- Gitblit v1.8.0