From 2be17adffb5e055ed563ba73c928a5842c45a81e Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期四, 21 九月 2023 14:04:37 +0800 Subject: [PATCH] 属性对比 --- server/service/src/main/java/com/doumee/service/business/impl/GoodsServiceImpl.java | 92 +++++++++++++++++++++++++++++++++------------- 1 files changed, 66 insertions(+), 26 deletions(-) diff --git a/server/service/src/main/java/com/doumee/service/business/impl/GoodsServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/GoodsServiceImpl.java index 3a99f62..0f972e2 100644 --- a/server/service/src/main/java/com/doumee/service/business/impl/GoodsServiceImpl.java +++ b/server/service/src/main/java/com/doumee/service/business/impl/GoodsServiceImpl.java @@ -29,6 +29,8 @@ import org.apache.shiro.SecurityUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; @@ -64,6 +66,8 @@ @Autowired private CategoryMapper categoryMapper; @Autowired + private BaseCategoryMapper baseCategoryMapper; + @Autowired private CateAttrMapper cateAttrMapper; @Autowired private CateParamMapper cateParamMapper; @@ -82,7 +86,8 @@ @Autowired private CateParamSelectMapper cateParamSelectMapper; - + @Autowired + private RedisTemplate redisTemplate; @Override @@ -130,6 +135,8 @@ return goods.getId(); } + + @Async @Override @Transactional( rollbackFor = {Exception.class, BusinessException.class}) public Integer createPlat(GoodCreatePlatRequest param){ @@ -153,6 +160,11 @@ if(category.getPlatCateId() == null){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝璇峰墠寰�銆愮被鍒鐞嗐�戝厛鍏宠仈骞冲彴绫诲埆锛�"); } + BaseCategory baseCategory = baseCategoryMapper.selectById(category.getPlatCateId()); + if(baseCategory == null){ + throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝璇峰墠寰�銆愮被鍒鐞嗐�戝厛鍏宠仈骞冲彴绫诲埆锛�"); + } + BaseGoods bp = new BaseGoods(); bp.setCategoryId(category.getPlatCateId()); bp.setIsdeleted(Constants.ZERO); @@ -177,25 +189,33 @@ } List<Multifile> multifileList = new ArrayList<>(); List<GoodsParam> goodsParamList = new ArrayList<>(); - for(BaseGoods model : goodsList){ - //閬嶅巻骞冲彴鍟嗗搧淇℃伅锛岃繘琛屽晢鍝佷俊鎭悓姝� - Goods goods = initGoodsPlatParam(user,model,param); - if(goods == null){ - continue; - } - goodsMapper.insert(goods); - //寮�濮嬪鐞嗛檮浠� - dealPlatMultifule(goods.getId(),user,model,multifileList); - //寮�濮嬪鐞嗗弬鏁伴厤缃� - dealPlatGoodsParam(model,goods,user,goodsParamList); - } - if(multifileList.size()>0){ - multifileMapper.insertBatch(multifileList); - } - if(goodsParamList.size()>0){ - goodsParamMapper.insertBatch(goodsParamList); - } + try{ + for(BaseGoods model : goodsList){ + //閬嶅巻骞冲彴鍟嗗搧淇℃伅锛岃繘琛屽晢鍝佷俊鎭悓姝� + //鍒嗙被鍔犱环绯绘暟 + model.setCateRatePrice(baseCategory.getPriceRate()); + Goods goods = initGoodsPlatParam(user,model,param); + if(goods == null){ + continue; + } + goodsMapper.insert(goods); + //寮�濮嬪鐞嗛檮浠� + dealPlatMultifule(goods.getId(),user,model,multifileList); + //寮�濮嬪鐞嗗弬鏁伴厤缃� + dealPlatGoodsParam(model,goods,user,goodsParamList); + } + if(multifileList.size()>0){ + multifileMapper.insertBatch(multifileList); + } + if(goodsParamList.size()>0){ + goodsParamMapper.insertBatch(goodsParamList); + } + }catch (Exception e){ + e.printStackTrace(); + }finally { + redisTemplate.opsForValue().set(user.getCompanyId()+Constants.OPEN_SYNC_SWITCH,false); + } return 1; } @@ -297,13 +317,14 @@ return p.getPrice().setScale(0,BigDecimal.ROUND_CEILING); } } + throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(),"鏁版嵁寮傚父璇峰埛鏂伴噸璇�"); } //濡傛灉娌℃湁閰嶇疆鍏ユ墜浠凤紝瀹夎鍔犱环绯绘暟鏉ヨ绠� -// if(model.getCateRatePrice()==null){ -// model.setCateRatePrice(systemDictDataBiz.getGoodsPriceRate()); -// } + if(model.getCateRatePrice()==null){ + model.setCateRatePrice(systemDictDataBiz.getGoodsPriceRate()); + } //杩斿洖 .multiply(model.getCateRatePrice()) - return (Constants.formatBigdecimal(model.getPrice()).multiply(param.getRate())).setScale(0,BigDecimal.ROUND_CEILING); + return (Constants.formatBigdecimal(model.getPrice()).multiply(model.getCateRatePrice()).multiply(param.getRate())).setScale(0,BigDecimal.ROUND_CEILING); } @@ -380,7 +401,10 @@ if (CollectionUtils.isEmpty(ids)) { return; } - goodsMapper.deleteBatchIds(ids); + for(Integer id : ids){ + deleteById(id); + } +// goodsMapper.deleteBatchIds(ids); } @Override @@ -760,8 +784,8 @@ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝绗��"+(num)+"銆戣鍟嗗搧鍝佺墝鏃犳晥锛岃妫�鏌ヨ緭鍏ワ紒"); } if(goodsMapper.selectCount(new QueryWrapper<Goods>().eq("ISDELETED",Constants.ZERO).eq("name",m.getName()))>0){ - throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"銆�"+m.getName()+"銆戝凡瀛樺湪"); - }; + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"绗��"+(num)+"銆戣銆�"+m.getName()+"銆戝凡瀛樺湪"); + } Goods newModel = new Goods(); newModel.setRemark(m.getId()); newModel.setCategoryId(cate.getId()); @@ -1072,6 +1096,8 @@ String prefixUrl = systemDictDataBiz.queryByCode(Constants.OSS, Constants.RESOURCE_PATH).getCode() + systemDictDataBiz.queryByCode(Constants.OSS, Constants.GOODS_IMG).getCode(); goodsIPage.getRecords().forEach(i->{ + i.setCategoryImgurl(systemDictDataBiz.queryByCode(Constants.OSS, Constants.RESOURCE_PATH).getCode() + + systemDictDataBiz.queryByCode(Constants.OSS, Constants.CATEGORY_IMG).getCode() + i.getCategoryImgurl()); i.setPrefixUrl(prefixUrl); i.setMultifileList(multifileMapper.selectList(new QueryWrapper<Multifile>().eq("OBJ_ID",i.getId()).orderByAsc(" SORTNUM "))); i.setGoodsParamList(goodsParamMapper.selectList(new QueryWrapper<GoodsParam>() @@ -1116,6 +1142,8 @@ String prefixUrl = systemDictDataBiz.queryByCode(Constants.OSS, Constants.RESOURCE_PATH).getCode() + systemDictDataBiz.queryByCode(Constants.OSS, Constants.GOODS_IMG).getCode(); goodsList.forEach(i->{ + i.setCategoryImgurl(systemDictDataBiz.queryByCode(Constants.OSS, Constants.RESOURCE_PATH).getCode() + + systemDictDataBiz.queryByCode(Constants.OSS, Constants.CATEGORY_IMG).getCode() + i.getCategoryImgurl()); i.setPrefixUrl(prefixUrl); i.setMultifileList(multifileMapper.selectList(new QueryWrapper<Multifile>().eq("OBJ_ID",i.getId()).orderByAsc(" SORTNUM "))); i.setGoodsParamList(goodsParamMapper.selectList( @@ -1126,5 +1154,17 @@ return goodsList; } + + + @Override + @Transactional + public void openSyncSwitch() { + LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); + Boolean openSyncSwitch = (Boolean)redisTemplate.opsForValue().get(loginUserInfo.getCompanyId()+Constants.OPEN_SYNC_SWITCH); + if(openSyncSwitch!=null && openSyncSwitch ){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏁版嵁鍚屾涓紝璇风◢鍚庡埛鏂伴噸璇�"); + } + redisTemplate.opsForValue().set(loginUserInfo.getCompanyId()+Constants.OPEN_SYNC_SWITCH,true); + } } -- Gitblit v1.9.3