瀏覽代碼

维多利亚

home 2 年之前
父節點
當前提交
bae6aee91b

+ 2 - 1
hx-common/common-tool/src/main/java/com/fjhx/base/Condition.java

@@ -11,6 +11,7 @@ import com.fjhx.utils.PageUtil;
 import org.springblade.core.log.exception.ServiceException;
 
 import java.math.BigDecimal;
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
@@ -161,7 +162,7 @@ public class Condition extends HashMap<String, Object> {
      * 获取List
      */
     public <T> List<T> getArray(String str, Class<T> clazz) {
-        return JSONObject.parseArray(this.getStr(str), clazz, ParserConfig.global);
+        return ObjectUtil.defaultIfNull(JSONObject.parseArray(this.getStr(str), clazz, ParserConfig.global), new ArrayList<>());
     }
 
     public Date getDate(String str) {

+ 3 - 1
hx-service-api/victoriatourist-api/src/main/java/com/fjhx/params/product/ProductSpuVo.java

@@ -4,6 +4,8 @@ import com.fjhx.entity.product.ProductSpu;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
+import java.util.List;
+
 /**
  * @author ${author}
  * @since 2022-11-25
@@ -12,6 +14,6 @@ import lombok.EqualsAndHashCode;
 @EqualsAndHashCode(callSuper = true)
 public class ProductSpuVo extends ProductSpu {
 
-    private Long productIdList;
+    private List<Long> productIdList;
 
 }

+ 0 - 1
hx-service/storage/src/main/java/com/fjhx/stock/service/impl/StockCheckrecordServiceImpl.java

@@ -102,7 +102,6 @@ public class StockCheckrecordServiceImpl extends ServiceImpl<StockCheckrecordMap
 
         if (rfidList.size() > 0) {
             List<Map<String, Object>> list = stockDetailService.listMaps(Wrappers.<StockDetail>query()
-                    .in("RfidCode", rfidList)
                     .ge("ExpiredDt", date)
                     .select("RfidCode rfidCode")
             );

+ 4 - 4
hx-service/storage/src/main/java/com/fjhx/u/controller/UUserController.java

@@ -29,10 +29,10 @@ public class UUserController {
     private StockCheckrecordService stockCheckrecordService;
 
     @GetMapping("/test")
-    public R test() {
+    public R test(@RequestParam("sleep") Integer sleep) {
         new Thread(() -> {
             stockCheckrecordService.checkStart("check1", "c185883dba22478cb593d33f6b66cc53");
-            ThreadUtil.sleep(1000 * 60 * 5);
+            ThreadUtil.sleep(1000L * 60 * sleep);
             stockCheckrecordService.checkEnd("check1", "c185883dba22478cb593d33f6b66cc53");
         }).start();
 
@@ -40,10 +40,10 @@ public class UUserController {
     }
 
     @GetMapping("/test4")
-    public R test4() {
+    public R test4(@RequestParam("sleep") Integer sleep) {
         new Thread(() -> {
             stockCheckrecordService.checkStart("check4", "0b8f584250bb4b40b72d641ce4849d15");
-            ThreadUtil.sleep(1000 * 60 * 5);
+            ThreadUtil.sleep(1000L * 60 * sleep);
             stockCheckrecordService.checkEnd("check4", "0b8f584250bb4b40b72d641ce4849d15");
         }).start();
 

+ 3 - 3
hx-service/victoriatourist/src/main/java/com/fjhx/controller/product/ProductSpuController.java

@@ -1,10 +1,10 @@
 package com.fjhx.controller.product;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import org.springblade.core.tool.api.R;
 import com.fjhx.entity.product.ProductSpu;
 import com.fjhx.params.product.ProductSpuVo;
 import com.fjhx.service.product.ProductSpuService;
+import org.springblade.core.tool.api.R;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -41,13 +41,13 @@ public class ProductSpuController {
     }
 
     @PostMapping("/edit")
-    public R edit(@RequestBody ProductSpuVo productSpuVo){
+    public R edit(@RequestBody ProductSpuVo productSpuVo) {
         productSpuService.edit(productSpuVo);
         return R.success();
     }
 
     @PostMapping("/delete")
-    public R delete(@RequestBody ProductSpuVo productSpuVo){
+    public R delete(@RequestBody ProductSpuVo productSpuVo) {
         productSpuService.delete(productSpuVo);
         return R.success();
     }

+ 2 - 0
hx-service/victoriatourist/src/main/java/com/fjhx/service/product/ProductSpuService.java

@@ -1,6 +1,7 @@
 package com.fjhx.service.product;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.base.Condition;
 import com.fjhx.entity.product.ProductSpu;
 import com.fjhx.params.product.ProductSpuVo;
 import com.fjhx.base.BaseService;
@@ -25,4 +26,5 @@ public interface ProductSpuService extends BaseService<ProductSpu> {
 
     void delete(ProductSpuVo productSpuVo);
 
+
 }

+ 1 - 0
hx-service/victoriatourist/src/main/java/com/fjhx/service/product/impl/ProductInfoServiceImpl.java

@@ -68,6 +68,7 @@ public class ProductInfoServiceImpl extends ServiceImpl<ProductInfoMapper, Produ
                 .le(ProductInfo::getJdPurchasePrice, condition.get("jdPurchasePriceMax"))
                 .eq(ProductInfo::getCombination)
                 .eq(ProductInfo::getProductSpuId)
+                .ne(ProductInfo::getProductSpuId, condition.get("excludeProductSpuId"))
                 .periodTime(ProductInfo::getClearancePeriod)
                 .func(ObjectUtil.isNotEmpty(condition.get("lifeCycle")), q -> {
                     Integer lifeCycle = Convert.toInt(condition.get("lifeCycle"));

+ 38 - 1
hx-service/victoriatourist/src/main/java/com/fjhx/service/product/impl/ProductSpuServiceImpl.java

@@ -1,16 +1,23 @@
 package com.fjhx.service.product.impl;
 
+import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fjhx.base.BaseEntity;
+import com.fjhx.entity.product.ProductInfo;
 import com.fjhx.entity.product.ProductSpu;
 import com.fjhx.mapper.product.ProductSpuMapper;
 import com.fjhx.params.product.ProductSpuVo;
+import com.fjhx.service.product.ProductInfoService;
 import com.fjhx.service.product.ProductSpuService;
 import com.fjhx.uitl.code.CodeEnum;
+import com.fjhx.utils.Assert;
 import com.fjhx.utils.wrapperUtil.IWrapper;
 import com.fjhx.utils.wrapperUtil.KeywordData;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -24,6 +31,9 @@ import java.util.Map;
 @Service
 public class ProductSpuServiceImpl extends ServiceImpl<ProductSpuMapper, ProductSpu> implements ProductSpuService {
 
+    @Autowired
+    private ProductInfoService productInfoService;
+
     @Override
     public Page<ProductSpu> getPage(Map<String, Object> condition) {
         IWrapper<ProductSpu> wrapper = IWrapper.getWrapper(condition);
@@ -38,17 +48,44 @@ public class ProductSpuServiceImpl extends ServiceImpl<ProductSpuMapper, Product
             productSpuVo.setCode(CodeEnum.SPU.getCode());
             save(productSpuVo);
         }
+        resetBindingProduct(productSpuVo.getId(), productSpuVo.getProductIdList());
     }
 
     @Override
     public void edit(ProductSpuVo productSpuVo) {
         updateById(productSpuVo);
+        resetBindingProduct(productSpuVo.getId(), productSpuVo.getProductIdList());
     }
 
     @Override
     public void delete(ProductSpuVo productSpuVo) {
-        // TODO 产品正在使用此spu不让删除
+        long count = productInfoService.count(q -> q
+                .eq(ProductInfo::getProductSpuId, productSpuVo.getId()));
+        Assert.eqZero(count, "此spu已关联产品,无法删除");
+
         removeById(productSpuVo.getId());
     }
 
+
+    private void resetBindingProduct(Long spuId, List<Long> productIdList) {
+
+        Assert.notEmpty(spuId, "spuId不能为空");
+
+        // 移除spu不属于产品id列表的产品的绑定
+        productInfoService.update(q -> q
+                .eq(ProductInfo::getProductSpuId, spuId)
+                .notIn(ObjectUtil.isNotEmpty(productIdList), BaseEntity::getId, productIdList)
+                .set(ProductInfo::getProductSpuId, null)
+        );
+
+        // 添加sup与产品绑定
+        if (ObjectUtil.isNotEmpty(productIdList)) {
+            productInfoService.update(q -> q
+                    .in(BaseEntity::getId, productIdList)
+                    .set(ProductInfo::getProductSpuId, spuId)
+            );
+        }
+
+    }
+
 }