Selaa lähdekoodia

商品一键复制功能

yjwang 1 viikko sitten
vanhempi
commit
6ac3642c23

+ 12 - 0
fs-admin/src/main/java/com/fs/hisStore/controller/FsStoreProductScrmController.java

@@ -292,4 +292,16 @@ public class FsStoreProductScrmController extends BaseController {
     public R auditLog(@PathVariable Long storeId){
         return R.ok().put("auditLog",storeAuditLogUtil.selectOperLogByMainId(storeId,"商品"));
     }
+
+    /**
+     * 商品复制
+     * @param product 商品对象
+     * @return R
+     * */
+    @PreAuthorize("@ss.hasPermi('his:storeProduct:copyProduct')")
+    @PostMapping("/copyProduct")
+    @Log(title = "复制商品", businessType = BusinessType.INSERT, isStoreLog = true, logParam = {"商品", "复制商品"})
+    public R copyProduct(@RequestBody FsStoreProductScrm product) {
+        return fsStoreProductService.copyProduct(product);
+    }
 }

+ 5 - 0
fs-service/src/main/java/com/fs/hisStore/service/IFsStoreProductScrmService.java

@@ -162,4 +162,9 @@ public interface IFsStoreProductScrmService
      * @return R
      * **/
     List<String> getProductNoticeInfo(Long storeId);
+
+    /**
+     * 复制商品
+     * **/
+    R copyProduct(FsStoreProductScrm product);
 }

+ 46 - 0
fs-service/src/main/java/com/fs/hisStore/service/impl/FsStoreProductScrmServiceImpl.java

@@ -1398,6 +1398,52 @@ public class FsStoreProductScrmServiceImpl implements IFsStoreProductScrmService
         return fsStoreProductMapper.getProductNoticeInfo(storeId);
     }
 
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R copyProduct(FsStoreProductScrm product) {
+        //获取复制商品信息
+        FsStoreProductScrm copyProductInfo = fsStoreProductMapper.selectFsStoreProductById(product.getProductId());
+        if(copyProductInfo==null){
+            return R.error("复制,商品数据不存在!");
+        }
+
+        copyProductInfo.setProductId(null);
+        copyProductInfo.setCreateTime(new Date());
+        copyProductInfo.setUpdateTime(new Date());
+        copyProductInfo.setIsAudit("0");
+
+        //插入复制商品
+        if(fsStoreProductMapper.insertFsStoreProduct(copyProductInfo) < 1){
+            return R.error("操作失败,复制信息异常!");
+        }
+
+        Long productId = copyProductInfo.getProductId();
+        //获取项目属性
+        List<FsStoreProductAttrScrm> attrScrmList = fsStoreProductAttrMapper.selectFsStoreProductAttrByProductId(product.getProductId());
+        if(!attrScrmList.isEmpty()){
+            attrScrmList.stream().forEach(a->{
+                a.setId(null);
+                a.setProductId(productId);
+                fsStoreProductAttrMapper.insertFsStoreProductAttr(a);
+            });
+        }
+
+        //获取对应的属性信息
+        List<FsStoreProductAttrValueScrm> attrValueScrmList = fsStoreProductAttrValueMapper.selectFsStoreProductAttrValueByProductId(product.getProductId());
+        if(!attrValueScrmList.isEmpty()){
+            attrValueScrmList.stream().forEach(a->{
+                a.setId(null);
+                a.setProductId(productId);
+                a.setCreateTime(new Date());
+                a.setUpdateTime(new Date());
+                fsStoreProductAttrValueMapper.insertFsStoreProductAttrValue(a);
+            });
+        }
+
+        storeAuditLogUtil.addOperLog(copyProductInfo.getProductId());
+        return R.ok().put("msg",new StringBuilder().append("一键复制商品/").append("商品名称:").append(product.getProductName()));
+    }
+
     @Override
     public List<Map<String, String>> getStoreProductColumns() {
         List<Map<String, String> > list = fsStoreProductMapper.getStoreProductColumns();

+ 11 - 0
fs-store/src/main/java/com/fs/hisStore/controller/store/FsStoreProductScrmController.java

@@ -212,4 +212,15 @@ public TableDataInfo list(FsStoreProductScrm fsStoreProduct)
         return R.ok().put("auditLog",storeAuditLogUtil.selectOperLogByMainId(Long.valueOf(productId),"商品"));
     }
 
+    /**
+     * 商品复制
+     * @param product 商品对象
+     * @return R
+     * */
+    @PostMapping("/copyProduct")
+    @Log(title = "复制商品", businessType = BusinessType.INSERT, isStoreLog = true, logParam = {"商品", "复制商品"})
+    public R copyProduct(@RequestBody FsStoreProductScrm product) {
+        return fsStoreProductService.copyProduct(product);
+    }
+
 }