From bc1431d55206a8c5506bd3f2338852b5e2e9fc1d Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期三, 20 九月 2023 15:12:25 +0800 Subject: [PATCH] Merge branch 'dev' of http://139.186.142.91:10010/r/productDev/preselect into dev --- server/service/src/main/java/com/doumee/service/business/impl/GoodsServiceImpl.java | 63 +++++++++++++++++++++---------- 1 files changed, 43 insertions(+), 20 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 8050175..f5de5ee 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; @@ -82,7 +84,8 @@ @Autowired private CateParamSelectMapper cateParamSelectMapper; - + @Autowired + private RedisTemplate redisTemplate; @Override @@ -130,6 +133,8 @@ return goods.getId(); } + + @Async @Override @Transactional( rollbackFor = {Exception.class, BusinessException.class}) public Integer createPlat(GoodCreatePlatRequest param){ @@ -177,25 +182,30 @@ } List<Multifile> multifileList = new ArrayList<>(); List<GoodsParam> goodsParamList = new ArrayList<>(); - for(BaseGoods model : goodsList){ - //閬嶅巻骞冲彴鍟嗗搧淇℃伅锛岃繘琛屽晢鍝佷俊鎭悓姝� - Goods goods = initGoodsPlatParam(user,model,param); - if(goods == null){ - continue; + try{ + 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); } - 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); } - if(multifileList.size()>0){ - multifileMapper.insertBatch(multifileList); - } - if(goodsParamList.size()>0){ - goodsParamMapper.insertBatch(goodsParamList); - } - return 1; } @@ -297,6 +307,7 @@ return p.getPrice().setScale(0,BigDecimal.ROUND_CEILING); } } + throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(),"鏁版嵁寮傚父璇峰埛鏂伴噸璇�"); } //濡傛灉娌℃湁閰嶇疆鍏ユ墜浠凤紝瀹夎鍔犱环绯绘暟鏉ヨ绠� // if(model.getCateRatePrice()==null){ @@ -760,8 +771,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()); @@ -1128,5 +1139,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