doum
昨天 eadac1981bc3bbe51fed32e4be5fe0d2672653e0
经销商管理
已修改1个文件
30 ■■■■■ 文件已修改
server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsServiceImpl.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsServiceImpl.java
@@ -132,7 +132,7 @@
        dealBatchMultiFiles(goods, goods.getFileList(), user,false);
        return goods.getId();
    }
    private void dealDefaultGoodsSku(Goods goods) {
    private Integer dealDefaultGoodsSku(Goods goods) {
        Date date = goods.getEditDate();
        Integer userId = goods.getEditor();
        Sku sku = new Sku();
@@ -186,6 +186,8 @@
        goodsSkuAttr.setGoodsSkuId(goodsSku.getId());
        goodsSkuAttr.setSkuAttrId(skuAttr.getId());
        goodsSkuAttrMapper.insert(goodsSkuAttr);
        return goodsSku.getId();
    }
    public void dealBatchMultiFiles(Goods goods, List<Multifile> fileList, LoginUserInfo user,boolean update) {
@@ -451,6 +453,16 @@
            goods.setLabels(  StringUtils.removeEnd( goods.getLabels().replace(",",","),","));
        }
        goodsMapper.updateById(goods);
        boolean needUpdatesku = true;
        if(goods.getSkuPrice()!=null){
            GoodsSku queryGoodsSku=new GoodsSku();
            queryGoodsSku.setGoodsId(goods.getId());
            queryGoodsSku.setIsdeleted(Constants.ZERO);
            GoodsSku goodsSku=goodsSkuMapper.selectOne(new QueryWrapper<>(queryGoodsSku).last("limit 1"));
            if(goodsSku !=null && Constants.formatBigdecimal(goodsSku.getPrice()).compareTo(goods.getSkuPrice()) ==0){
                needUpdatesku = false;//价格未变化无需重新生成供货价
            }
        }
        //清空原有的sku数据
        skuMapper.update(null,new UpdateWrapper<Sku>().lambda()
                .set(Sku::getIsdeleted,Constants.ONE)
@@ -460,7 +472,21 @@
                .set(GoodsSku::getIsdeleted,Constants.ONE)
                .eq(GoodsSku::getIsdeleted,Constants.ZERO)
                .eq(GoodsSku::getGoodsId,goods.getId()));
        dealDefaultGoodsSku(goods);//新建sku信息
       Integer skuId = dealDefaultGoodsSku(goods);//新建sku信息
        if(needUpdatesku){ //先删除原来的数据
            shopGoodsRelationMapper.delete(new QueryWrapper<ShopGoodsRelation>().lambda()
                    .eq(ShopGoodsRelation::getGoodsId,goods.getId())
            );
        }else{
            //否则更新所有供货价关联关系中的skuID
            shopGoodsRelationMapper.update(null,new UpdateWrapper<ShopGoodsRelation>().lambda()
                    .eq(ShopGoodsRelation::getGoodsId,goods.getId())
                    .set(ShopGoodsRelation::getGoodsSkuId,skuId)
            );
        }
        dealBatchMultiFiles(goods, goods.getFileList(), user,true);
    }