From 038ccdb1ac8dfe3fc77f8aa9e413b9027ff1e6d8 Mon Sep 17 00:00:00 2001
From: jiaosong <jiaosong6760@dingtalk.com>
Date: 星期四, 21 九月 2023 18:09:58 +0800
Subject: [PATCH] #属性去除
---
server/service/src/main/java/com/doumee/service/business/impl/GoodsServiceImpl.java | 466 +++++++++++++++++++++++++++++++++++++--------------------
1 files changed, 302 insertions(+), 164 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 fd52229..23499bd 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
@@ -17,17 +17,22 @@
import com.doumee.dao.business.*;
import com.doumee.dao.business.join.GoodsJoinMapper;
import com.doumee.dao.business.model.*;
-import com.doumee.dao.business.model.dto.BatchDisableDTO;
-import com.doumee.dao.business.model.dto.GoodCreatePlatRequest;
-import com.doumee.dao.business.model.dto.GoodsRequest;
+import com.doumee.dao.business.model.dto.*;
+import com.doumee.dao.system.model.SystemDepartment;
+import com.doumee.service.CateParamSelectService;
+import com.doumee.service.business.BaseDataService;
import com.doumee.service.business.GoodsService;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import io.swagger.v3.oas.annotations.callbacks.Callback;
+import lombok.extern.java.Log;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
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;
@@ -38,11 +43,11 @@
import java.io.File;
import java.io.InputStream;
import java.io.OutputStream;
-import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import java.net.URLEncoder;
import java.nio.charset.Charset;
import java.util.*;
+import java.util.stream.Collectors;
/**
* 鍟嗗搧淇℃伅琛⊿ervice瀹炵幇
@@ -55,7 +60,16 @@
@Autowired
private GoodsMapper goodsMapper;
@Autowired
+ @Lazy
+ private BaseDataService baseDataService;
+ @Autowired
+ private BaseGoodsMapper baseGoodsMapper;
+ @Autowired
+ private BaseGoodsParamMapper baseGoodsParamMapper;
+ @Autowired
private CategoryMapper categoryMapper;
+ @Autowired
+ private BaseCategoryMapper baseCategoryMapper;
@Autowired
private CateAttrMapper cateAttrMapper;
@Autowired
@@ -72,12 +86,13 @@
@Autowired
private GoodsJoinMapper goodsJoinMapper;
+
+ @Lazy
@Autowired
- private CateParamSelectMapper cateParamSelectMapper;
+ private CateParamSelectService cateParamSelectService;
@Autowired
- private BaseGoodsMapper baseGoodsMapper;
-
+ private RedisTemplate redisTemplate;
@Override
@@ -125,10 +140,13 @@
return goods.getId();
}
+
+ @Async
@Override
+ @Transactional( rollbackFor = {Exception.class, BusinessException.class})
public Integer createPlat(GoodCreatePlatRequest param){
LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
- if(Constants.equalsInteger(user.getType(), Constants.UserType.COMPANY.getKey())){
+ if(!Constants.equalsInteger(user.getType(), Constants.UserType.COMPANY.getKey())){
//闈炰紒涓氱敤鎴蜂笉鑳芥搷浣�
throw new BusinessException(ResponseStatus.NOT_ALLOWED);
}
@@ -140,21 +158,144 @@
|| param.getGoodsParamList().size()==0))){
throw new BusinessException(ResponseStatus.BAD_REQUEST);
}
- Goods goods = new Goods();
-
- if(goodsMapper.selectCount(new QueryWrapper<Goods>().eq("ISDELETED",Constants.ZERO).eq("name",goods.getName()))>0){
- throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"銆�"+goods.getName()+"銆戝凡瀛樺湪");
+ Category category = categoryMapper.selectById(param.getCategoryId());
+ if(category ==null ||Constants.equalsInteger(category.getIsdeleted(), Constants.ONE) ||!Constants.equalsInteger(category.getCompanyId(), user.getCompanyId())){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝绫诲埆淇℃伅涓嶆纭紝璇峰埛鏂伴噸璇曪紒");
}
+ 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);
+ List<BaseGoods> goodsList = new ArrayList<>();
+ List<Integer> ids = null;
+ if(Constants.equalsInteger(Constants.ONE, param.getType())){
+ //濡傛灉閫夋嫨閮ㄥ垎鍟嗗搧
+ for(PlatGoodsParam p : param.getGoodsParamList()){
+ if(p.getGoodsId() == null || p.getPrice() == null){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝璇锋纭�夋嫨骞冲彴鍟嗗搧骞堕厤缃叆鎵嬩环锛�");
+ }
+ if(ids == null){
+ ids = new ArrayList<>();
+ }
+ ids.add(p.getGoodsId());
+ }
+ }
+ goodsList = baseGoodsMapper.selectList(new QueryWrapper<>(bp).lambda().in((ids!=null && ids.size()>0),BaseGoods::getId,ids));
+ if(Constants.equalsInteger(Constants.ONE, param.getType()) &&( goodsList==null || ids.size()!=goodsList.size())){
+ // 濡傛灉閫夋嫨骞冲彴鍟嗗搧鍜屾煡璇㈢粨鏋滃涓嶄笂锛屾彁绀洪敊璇�
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝璇锋纭�夋嫨骞冲彴鍟嗗搧锛�");
+ }
+ List<Multifile> multifileList = new ArrayList<>();
+ List<GoodsParam> goodsParamList = new ArrayList<>();
+ 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);
+ }
+ cateParamSelectService.dealCateParamSelect();
+ }catch (Exception e){
+ e.printStackTrace();
+ }finally {
+ redisTemplate.opsForValue().set(user.getCompanyId()+Constants.OPEN_SYNC_SWITCH,false);
+ }
+ return 1;
+ }
+
+ private void dealPlatGoodsParam(BaseGoods model, Goods goods, LoginUserInfo user,List<GoodsParam> paramList) {
+ BaseGoodsParam baseGoodsParam = new BaseGoodsParam();
+ baseGoodsParam.setGoodsId(model.getId());
+ baseGoodsParam.setIsdeleted(Constants.ZERO);
+ List<BaseGoodsParam> goodsParamList = baseGoodsParamMapper.selectList(new QueryWrapper<>(baseGoodsParam));
+ if(!Objects.isNull(goodsParamList)&&goodsParamList.size()>0){
+ for (int i = 0; i < goodsParamList.size(); i++) {
+ BaseGoodsParam bgParam = goodsParamList.get(i);
+ //鏍规嵁骞冲彴鍟嗗搧閰嶇疆鐨勫钩鍙板弬鏁颁俊鎭煡璇紒涓氱粦瀹氱殑鍙傛暟淇℃伅 杩涜瀛樺偍鍒� 浼佷笟鍟嗗搧鍙傛暟鍐�
+ CateParam cateParam = cateParamMapper.selectOne(new QueryWrapper<CateParam>()
+ .eq("CATEGORY_ID",goods.getCategoryId())
+ .eq("BASE_CATE_PARAM_ID",bgParam.getPramaId())
+ .eq("ISDELETED",Constants.ZERO)
+ .eq("STATUS",Constants.ZERO)
+ .last(" limit 1 "));
+// if(Objects.isNull(cateParam)){
+// throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"浼佷笟鍒嗙被鏁版嵁鍚屾寮傚父璇疯仈绯荤鐞嗗憳");
+// }
+ GoodsParam goodsParam = new GoodsParam();
+ goodsParam.setCreator(user.getId());
+ goodsParam.setCreateDate(new Date());
+ goodsParam.setIsdeleted(Constants.ZERO);
+ goodsParam.setSortnum(i+Constants.ONE);
+ goodsParam.setStatus(Constants.ZERO);
+ goodsParam.setGoodsId(goods.getId());
+ goodsParam.setVal(bgParam.getVal());
+ goodsParam.setName(bgParam.getName());
+ goodsParam.setPramaId(Objects.isNull(cateParam)?null:cateParam.getId());
+ paramList.add(goodsParam);
+// goodsParamMapper.insert(goodsParam);
+ }
+ }
+ }
+
+ private Goods initGoodsPlatParam(LoginUserInfo user, BaseGoods model, GoodCreatePlatRequest param) {
+ Goods goods = new Goods();
+ goods.setIsdeleted(Constants.ZERO);
+ goods.setGoodsId(model.getId());
+ goods.setCompanyId(user.getCompanyId());
+ if(goodsMapper.selectCount(new QueryWrapper<>(goods))>0){
+ //濡傛灉宸茬粡鍚屾杩囷紝璺宠繃姝ゆ鍚屾
+ return null;
+ }
+ goods.setType(Constants.ONE);
goods.setStatus(Constants.ZERO);
goods.setCreateDate(new Date());
goods.setCreator(user.getId());
+ goods.setCompanyId(user.getCompanyId());
goods.setIsdeleted(Constants.ZERO);
//澶勭悊鎷奸煶闂
goods.setPinyin(PinYinUtil.getFullSpell(goods.getName()));
goods.setShortPinyin(PinYinUtil.getFirstSpell(goods.getName()));
- goodsMapper.insert(goods);
+ goods.setName(model.getName());
+ goods.setCategoryId(param.getCategoryId());
+ //鑾峰彇鍏ユ墜浠锋牸
+ goods.setPrice(getPriceFromParam(model,param));
+ goods.setZdPrice(model.getZdPrice());
+ goods.setRemark(model.getRemark());
+ goods.setImgurl(model.getImgurl());
+ goods.setBrandId(model.getBrandId());
+ return goods;
+ }
- List<Multifile> multifileList = goods.getMultifileList();
+ /**
+ * 寮�濮嬪鐞嗗钩鍙板晢鍝佸叧鑱旈檮浠讹紝澶嶅埗涓�濂楀埌浼佷笟鍟嗗搧涓�
+ */
+ private void dealPlatMultifule(Integer id, LoginUserInfo user, BaseGoods model,List<Multifile> fileList ) {
+ Multifile f = new Multifile();
+ f.setObjId(model.getId());
+ f.setIsdeleted(Constants.ZERO);
+ List<Multifile> multifileList =multifileMapper.selectList(new QueryWrapper<>(f));
if(!Objects.isNull(multifileList)&&multifileList.size()>Constants.ZERO){
for (int i = 0; i < multifileList.size(); i++) {
Multifile multifile = multifileList.get(i);
@@ -162,26 +303,35 @@
multifile.setCreateDate(new Date());
multifile.setIsdeleted(Constants.ZERO);
multifile.setSortnum(i+Constants.ONE);
- multifile.setObjId(goods.getId());
+ multifile.setObjId(id);
multifile.setType(Constants.ZERO);
multifile.setObjType(Constants.ZERO);
- multifileMapper.insert(multifile);
+ multifile.setFileurl(multifile.getFileurl());
+ multifile.setName(multifile.getName());
+ multifile.setSortnum(multifile.getSortnum());
+ multifile.setCompanyId(user.getCompanyId());
+ fileList.add(multifile);
+// multifileMapper.insert(multifile);
}
}
- List<GoodsParam> goodsParamList = goods.getGoodsParamList();
- if(!Objects.isNull(goodsParamList)&&goodsParamList.size()>0){
- for (int i = 0; i < goodsParamList.size(); i++) {
- GoodsParam goodsParam = goodsParamList.get(i);
- goodsParam.setCreator(user.getId());
- goodsParam.setCreateDate(new Date());
- goodsParam.setIsdeleted(Constants.ZERO);
- goodsParam.setStatus(Constants.ZERO);
- goodsParam.setSortnum(i+Constants.ONE);
- goodsParam.setGoodsId(goods.getId());
- goodsParamMapper.insert(goodsParam);
+ }
+
+ private BigDecimal getPriceFromParam(BaseGoods model, GoodCreatePlatRequest param) {
+ if(Constants.equalsInteger(Constants.ONE, param.getType())){
+ for(PlatGoodsParam p: param.getGoodsParamList()){
+ if(Constants.equalsInteger(model.getId(),p.getGoodsId())){
+ return p.getPrice().setScale(0,BigDecimal.ROUND_CEILING);
+ }
}
+ throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(),"鏁版嵁寮傚父璇峰埛鏂伴噸璇�");
}
- return goods.getId();
+ //濡傛灉娌℃湁閰嶇疆鍏ユ墜浠凤紝瀹夎鍔犱环绯绘暟鏉ヨ绠�
+ if(model.getCateRatePrice()==null){
+ model.setCateRatePrice(systemDictDataBiz.getGoodsPriceRate());
+ }
+ //杩斿洖 .multiply(model.getCateRatePrice())
+ return (Constants.formatBigdecimal(model.getPrice()).multiply(model.getCateRatePrice()).multiply(param.getRate())).setScale(0,BigDecimal.ROUND_CEILING);
+
}
@@ -216,6 +366,7 @@
multifile.setObjId(goods.getId());
multifile.setType(Constants.ZERO);
multifile.setObjType(Constants.ZERO);
+ multifile.setCompanyId(goods.getCompanyId());
multifileMapper.insert(multifile);
}
}
@@ -230,20 +381,6 @@
goodsParam.setSortnum(i+Constants.ONE);
goodsParam.setGoodsId(goods.getId());
goodsParamMapper.insert(goodsParam);
- //瀛樺偍 cate_param_select 鏌ヨ鏄惁宸插瓨鍦�
- if(cateParamSelectMapper.selectCount(new QueryWrapper<CateParamSelect>()
- .eq("PARAM_ID",goodsParam.getPramaId()).eq("NAME",goodsParam.getName()))<=Constants.ZERO){
- CateParamSelect cateParamSelect = new CateParamSelect();
- cateParamSelect.setCreator(user.getId());
- cateParamSelect.setCreateDate(new Date());
- cateParamSelect.setName(goodsParam.getVal());
- cateParamSelect.setIsdeleted(Constants.ZERO);
- cateParamSelect.setStatus(Constants.ZERO);
- cateParamSelect.setParamId(goodsParam.getPramaId());
- cateParamSelect.setCategoryId(goods.getCategoryId());
- cateParamSelect.setStatus(Constants.ZERO);
- cateParamSelectMapper.insert(cateParamSelect);
- };
}
}
return goods.getId();
@@ -270,7 +407,10 @@
if (CollectionUtils.isEmpty(ids)) {
return;
}
- goodsMapper.deleteBatchIds(ids);
+ for(Integer id : ids){
+ deleteById(id);
+ }
+// goodsMapper.deleteBatchIds(ids);
}
@Override
@@ -328,7 +468,8 @@
}else{
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"褰撳墠鐧诲綍鐢ㄦ埛绫诲埆閿欒锛屾棤娉曡繘琛岃鎿嶄綔");
}
- if(goodsMapper.selectCount(new QueryWrapper<Goods>().eq("COMPANY_ID",user.getCompanyId()).eq("ISDELETED",Constants.ZERO).ne("id",goods.getId()).eq("name",goods.getName()))>0){
+ if(goodsMapper.selectCount(new QueryWrapper<Goods>().eq("COMPANY_ID",user.getCompanyId())
+ .eq("ISDELETED",Constants.ZERO).ne("id",goods.getId()).eq("name",goods.getName()))>0){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"銆�"+goods.getName()+"銆戝凡瀛樺湪");
};
goods.setStatus(Constants.ZERO);
@@ -340,7 +481,8 @@
goods.setShortPinyin(PinYinUtil.getFirstSpell(goods.getName()));
goodsMapper.updateById(goods);
- multifileMapper.delete(new QueryWrapper<Multifile>().eq("OBJ_ID",goods.getId()));
+ multifileMapper.delete(new QueryWrapper<Multifile>().eq("OBJ_ID",goods.getId())
+ .eq("OBJ_TYPE",0).eq("COMPANY_ID",user.getCompanyId()));
List<Multifile> multifileList = goods.getMultifileList();
if(!Objects.isNull(multifileList)&&multifileList.size()>Constants.ZERO){
for (int i = 0; i < multifileList.size(); i++) {
@@ -351,6 +493,7 @@
multifile.setSortnum(i+Constants.ONE);
multifile.setObjId(goods.getId());
multifile.setType(Constants.ZERO);
+ multifile.setCompanyId(goods.getCompanyId());
multifile.setObjType(Constants.ZERO);
multifileMapper.insert(multifile);
}
@@ -368,19 +511,19 @@
goodsParam.setGoodsId(goods.getId());
goodsParamMapper.insert(goodsParam);
//瀛樺偍 cate_param_select 鏌ヨ鏄惁宸插瓨鍦�
- if(cateParamSelectMapper.selectCount(new QueryWrapper<CateParamSelect>()
- .eq("PARAM_ID",goodsParam.getPramaId()).eq("NAME",goodsParam.getName()))<=Constants.ZERO){
- CateParamSelect cateParamSelect = new CateParamSelect();
- cateParamSelect.setCreator(user.getId());
- cateParamSelect.setCreateDate(new Date());
- cateParamSelect.setName(goodsParam.getVal());
- cateParamSelect.setIsdeleted(Constants.ZERO);
- cateParamSelect.setStatus(Constants.ZERO);
- cateParamSelect.setParamId(goodsParam.getPramaId());
- cateParamSelect.setCategoryId(goods.getCategoryId());
- cateParamSelect.setStatus(Constants.ZERO);
- cateParamSelectMapper.insert(cateParamSelect);
- };
+// if(cateParamSelectMapper.selectCount(new QueryWrapper<CateParamSelect>()
+// .eq("PARAM_ID",goodsParam.getPramaId()).eq("NAME",goodsParam.getName()))<=Constants.ZERO){
+// CateParamSelect cateParamSelect = new CateParamSelect();
+// cateParamSelect.setCreator(user.getId());
+// cateParamSelect.setCreateDate(new Date());
+// cateParamSelect.setName(goodsParam.getVal());
+// cateParamSelect.setIsdeleted(Constants.ZERO);
+// cateParamSelect.setStatus(Constants.ZERO);
+// cateParamSelect.setParamId(goodsParam.getPramaId());
+// cateParamSelect.setCategoryId(goods.getCategoryId());
+// cateParamSelect.setStatus(Constants.ZERO);
+// cateParamSelectMapper.insert(cateParamSelect);
+// };
}
}
}
@@ -405,7 +548,7 @@
throw new BusinessException(ResponseStatus.DATA_EMPTY);
}
//鎷夊紡鍟嗗搧 涓� 涓婃灦鏃讹紝闇�瑕侀檺鍒� 骞冲彴鍟嗗搧鏄惁宸蹭笅鏋�
- if(dbGoods.getType().equals(Constants.goodsType.PULL)&&goods.getStatus().equals(Constants.ZERO)){
+ if(dbGoods.getType().equals(Constants.goodsType.PULL.getValue())&&goods.getStatus().equals(Constants.ZERO)){
BaseGoods baseGoods = baseGoodsMapper.selectById(dbGoods.getGoodsId());
if(Objects.isNull(baseGoods)){
throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌骞冲彴鍟嗗搧淇℃伅");
@@ -443,7 +586,7 @@
continue;
}
//鎷夊紡鍟嗗搧 涓� 涓婃灦鏃讹紝闇�瑕侀檺鍒� 骞冲彴鍟嗗搧鏄惁宸蹭笅鏋�
- if(dbGoods.getType().equals(Constants.goodsType.PULL)&&batchDisableDTO.getStatus().equals(Constants.ZERO)){
+ if(dbGoods.getType().equals(Constants.goodsType.PULL.getValue())&&batchDisableDTO.getStatus().equals(Constants.ZERO)){
BaseGoods baseGoods = baseGoodsMapper.selectById(dbGoods.getGoodsId());
if(Objects.isNull(baseGoods)||!baseGoods.getStatus().equals(Constants.ZERO)){
errNum++;
@@ -465,8 +608,8 @@
@Override
public Goods findById(Integer id) {
Goods goods = goodsMapper.selectById(id);
- String prefixUrl = systemDictDataBiz.queryByCode(Constants.SYSTEM, Constants.FILE_DIR).getCode()
- + systemDictDataBiz.queryByCode(Constants.SYSTEM, Constants.PROJECTS).getCode();
+ String prefixUrl = systemDictDataBiz.queryByCode(Constants.OSS, Constants.RESOURCE_PATH).getCode()
+ + systemDictDataBiz.queryByCode(Constants.OSS, Constants.GOODS_IMG).getCode();
goods.setPrefixUrl(prefixUrl);
Brand brand = brandMapper.selectById(goods.getBrandId());
if(!Objects.isNull(brand)){
@@ -509,13 +652,7 @@
Goods::getPrice,goods.getSPrice(),goods.getEPrice());
queryWrapper.orderByDesc(Goods::getId);
List<Goods> goodsList = goodsJoinMapper.selectJoinList(Goods.class,queryWrapper);
- String prefixUrl = systemDictDataBiz.queryByCode(Constants.SYSTEM, Constants.FILE_DIR).getCode()
- + systemDictDataBiz.queryByCode(Constants.SYSTEM, Constants.PROJECTS).getCode();
- goodsList.forEach(i->{
- i.setPrefixUrl(prefixUrl);
- i.setMultifileList(multifileMapper.selectList(new QueryWrapper<Multifile>().eq("OBJ_ID",i.getId()).orderByAsc(" SORTNUM ")));
- i.setGoodsParamList(goodsParamMapper.selectList(new QueryWrapper<GoodsParam>().eq("GOODS_ID",i.getId()).orderByAsc(" SORTNUM ")));
- });
+ this.dealGoodsMsg(goodsList);
return goodsList;
}
@@ -527,11 +664,16 @@
queryWrapper.selectAll(Goods.class);
queryWrapper.selectAs(Category::getName, Goods::getCategoryName);
+ queryWrapper.selectAs(BaseGoods::getZdPrice, Goods::getBaseZdPrice);
+ queryWrapper.selectAs(BaseGoods::getPrice, Goods::getBasePrice);
queryWrapper.selectAs(Brand::getName, Goods::getBrandName);
queryWrapper.selectAs(Category::getAttrFirst, Goods::getAttrFirst);
queryWrapper.selectAs(Category::getAttrSecond, Goods::getAttrSecond);
+ queryWrapper.selectAs(BaseCategory::getPriceRate,Goods::getBasePriceRate);
queryWrapper.leftJoin(Category.class, Category::getId, Goods::getCategoryId);
queryWrapper.leftJoin(Brand.class, Brand::getId, Goods::getBrandId);
+ queryWrapper.leftJoin(BaseGoods.class,BaseGoods::getId,Goods::getGoodsId);
+ queryWrapper.leftJoin(BaseCategory.class,BaseCategory::getId,BaseGoods::getCategoryId);
queryWrapper.eq(Goods::getIsdeleted, Constants.ZERO);
if (pageWrap.getModel().getId() != null) {
@@ -543,19 +685,22 @@
if (pageWrap.getModel().getStatus() != null) {
queryWrapper.eq(Goods::getStatus, pageWrap.getModel().getStatus());
}
-
+ if (pageWrap.getModel().getType() != null) {
+ queryWrapper.eq(Goods::getType, pageWrap.getModel().getType());
+ }
if (pageWrap.getModel().getCategoryId() != null) {
queryWrapper.eq(Goods::getCategoryId, pageWrap.getModel().getCategoryId());
}
if (pageWrap.getModel().getBrandId() != null) {
queryWrapper.eq(Goods::getBrandId, pageWrap.getModel().getBrandId());
}
-
+ if (pageWrap.getModel().getCompanyId() != null) {
+ queryWrapper.eq(Goods::getCompanyId, pageWrap.getModel().getCompanyId());
+ }
queryWrapper.orderByDesc(Goods::getId);
-
IPage<Goods> goodsIPage = goodsJoinMapper.selectJoinPage(page, Goods.class, queryWrapper);
- String prefixUrl = systemDictDataBiz.queryByCode(Constants.SYSTEM, Constants.FILE_DIR).getCode()
- + systemDictDataBiz.queryByCode(Constants.SYSTEM, Constants.PROJECTS).getCode();
+ String prefixUrl = systemDictDataBiz.queryByCode(Constants.OSS, Constants.RESOURCE_PATH).getCode()
+ + systemDictDataBiz.queryByCode(Constants.OSS, Constants.GOODS_IMG).getCode();
goodsIPage.getRecords().forEach(i->{
i.setPrefixUrl(prefixUrl);
});
@@ -613,6 +758,7 @@
Goods g = new Goods();
g.setIsdeleted(Constants.ZERO);
g.setRemark(m.getId());
+ g.setCompanyId(user.getCompanyId());
//鍝佺被鏁版嵁
g = goodsMapper.selectOne(new QueryWrapper<>(g).last(" limit 1"));
if(g != null){
@@ -621,6 +767,7 @@
Category cate = new Category();
cate.setIsdeleted(Constants.ZERO);
cate.setName(m.getCategory());
+ cate.setCompanyId(user.getCompanyId());
//鍝佺被鏁版嵁
cate = categoryMapper.selectOne(new QueryWrapper<>(cate).last(" limit 1"));
if(cate == null){
@@ -630,19 +777,22 @@
brand.setIsdeleted(Constants.ZERO);
brand.setName(m.getBrand());
//鍝佺被鏁版嵁
- brand = brandMapper.selectOne(new QueryWrapper<>(brand).last(" limit 1"));
+ QueryWrapper<Brand> qwrapper = new QueryWrapper<>(brand);
+ qwrapper.lambda().and(wapper-> wapper.eq(Brand::getCompanyId ,user.getCompanyId()).or().eq(Brand::getType,Constants.ONE));
+ brand = brandMapper.selectOne(qwrapper.last(" limit 1"));
if(brand == null){
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());
newModel.setBrandId(brand.getId());
newModel.setIsdeleted(Constants.ZERO);
newModel.setCreator(user.getId());
+ newModel.setCompanyId(user.getCompanyId());
newModel.setCreateDate(new Date());
newModel.setName(m.getName());
newModel.setStatus(Constants.ZERO);
@@ -661,67 +811,14 @@
newModel.setPinyin(PinYinUtil.getFullSpell(m.getName()));
newModel.setShortPinyin(PinYinUtil.getFirstSpell(m.getName()));
- CateAttr ca = new CateAttr();
- ca.setCategoryId(cate.getId());
- ca.setIsdeleted(Constants.ZERO);
- //鏌ヨ鍏ㄩ儴灞炴��1鍜屽睘鎬�2瑙勬牸鍊�
- List<CateAttr> allAttr = cateAttrMapper.selectList(new QueryWrapper<>(ca));
- //灞炴��1闆嗗悎
- String[] attrs = StringUtils.defaultString(m.getAttrFirstNames(),"").split("\n");
- //灞炴��2闆嗗悎
- String[] attrs2 = StringUtils.defaultString(m.getAttrSecodNames(),"").split("\n");
- //浜у搧鍙傛暟闆嗗悎
String[] params = StringUtils.defaultString(m.getParamStr(),"").split("\n");
- if(attrs.length > 0){
- String attrids="" ,attrNames="";
- for(String s : attrs){
- if(StringUtils.isBlank(s)){
- continue;
- }
- //鏌ヨ灞炴�ц鏍煎璞�
- CateAttr ta = getCateAttrByName(s,Constants.ZERO,allAttr);
- if(ta == null){
- throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝绗��"+(num)+"銆戣灞炴��1涓��"+s+"銆戞棤鏁堬紝璇锋鏌ヨ緭鍏ワ紒");
- }
- if(StringUtils.isNotBlank(attrids)){
- attrids += ",";
- attrNames += ",";
- }
- attrids+= ta.getId();
- attrNames+= ta.getName();
- }
- newModel.setAttrFirstIds(attrids);
- newModel.setAttrFirstNames(attrNames);
- }
- if(attrs2.length > 0){
- String attrids="" ,attrNames="";
- for(String s : attrs2){
- if(StringUtils.isBlank(s)){
- continue;
- }
- //鏌ヨ灞炴�ц鏍煎璞�
- CateAttr ta = getCateAttrByName(s,Constants.ONE,allAttr);
- if(ta == null){
- throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝绗��"+(num)+"銆戣灞炴��1涓��"+s+"銆戞棤鏁堬紝璇锋鏌ヨ緭鍏ワ紒");
- }
- if(StringUtils.isNotBlank(attrids)){
- attrids += ",";
- attrNames += ",";
- }
- attrids+= ta.getId();
- attrNames+= ta.getName();
- }
- newModel.setAttrSecodIds(attrids);
- newModel.setAttrSecodNames(attrNames);
-
- }
List<String> mulFiles = null;
String proDir =systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.PROJECTS).getCode();
- String tf = proDir.substring(0,proDir.length()-1);
String path = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.GOODS_IMG_DIR).getCode()
- + proDir;
+ + proDir + File.separator + user.getCompanyId();
if(StringUtils.isNotBlank(path)){
+ OssModel ossModel = baseDataService.initOssModel();
File dir =new File(path+File.separator+newModel.getRemark()+File.separator);
if(dir!=null && dir.isDirectory()){
File[] files = dir.listFiles();
@@ -729,16 +826,8 @@
for(File f:files){
if(StringUtils.isBlank(newModel.getImgurl()) && isImgFile(f)){
//鍙栫涓�寮犲浘鐗囦綔涓哄垪琛ㄥ浘
- String imgdir =f.getPath().substring(f.getPath().indexOf(tf)+tf.length()+1);
- newModel.setImgurl(imgdir.replace(File.separator,"/"));
-// newModel.setImgurl(f.getPath().replace(path.replace(File.separator,"/"),""));
+ newModel.setImgurl(baseDataService.getOssImgurl(ossModel,ossModel.getGoodsFolder(),f));
}
-// else{
-// if(mulFiles==null){
-// mulFiles = new ArrayList<>();
-// }
-// mulFiles.add(f.getPath().replace(path.replace("/",File.separator),""));
-// }
if((mulFiles ==null || mulFiles.size() == 0) && f.isDirectory()){
//濡傛灉鏄枃浠跺す
File[] fs = f.listFiles();
@@ -748,12 +837,7 @@
if(mulFiles==null){
mulFiles = new ArrayList<>();
}
-
- String imgdir =mf.getPath().substring(mf.getPath().indexOf(tf)+tf.length()+1);
- mulFiles.add(imgdir.replace(File.separator,"/"));
-// newModel.setImgurl(imgdir);
-//// mulFiles.add(mf.getName());
-// mulFiles.add(mf.getPath().replace(path.replace(File.separator,"/"),""));
+ mulFiles.add(baseDataService.getOssImgurl(ossModel,ossModel.getGoodsFolder(),mf));
}
}
}
@@ -796,6 +880,20 @@
gp.setSortnum(ta.getSortnum());
//鎻掑叆浜у搧鍙傛暟鍏宠仈琛�
goodsParamMapper.insert(gp);
+ //瀛樺偍 cate_param_select 鏌ヨ鏄惁宸插瓨鍦�
+// if(cateParamSelectMapper.selectCount(new QueryWrapper<CateParamSelect>()
+// .eq("PARAM_ID",gp.getPramaId()).eq("NAME",gp.getName()))<=Constants.ZERO){
+// CateParamSelect cateParamSelect = new CateParamSelect();
+// cateParamSelect.setCreator(user.getId());
+// cateParamSelect.setCreateDate(new Date());
+// cateParamSelect.setName(gp.getVal());
+// cateParamSelect.setIsdeleted(Constants.ZERO);
+// cateParamSelect.setStatus(Constants.ZERO);
+// cateParamSelect.setParamId(gp.getPramaId());
+// cateParamSelect.setCategoryId(newModel.getCategoryId());
+// cateParamSelect.setStatus(Constants.ZERO);
+// cateParamSelectMapper.insert(cateParamSelect);
+// };
}
}
if(mulFiles !=null && mulFiles.size()>0){
@@ -810,6 +908,7 @@
f.setCreator(newModel.getCreator());
f.setIsdeleted(Constants.ZERO);
f.setSortnum(i);
+ f.setCompanyId(user.getCompanyId());
f.setFileurl(s);
multifileMapper.insert(f);
}
@@ -819,6 +918,9 @@
return num;
}
+
+
+
private boolean isImgFile(File f) {
if(f!=null && f.isFile() ){
@@ -905,6 +1007,7 @@
@Override
public void export(HttpServletRequest request, HttpServletResponse response) throws Exception {
try {
+ LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
String fileName = "浜у搧瀵煎叆琛�"+System.currentTimeMillis()+".xlsx";
// 鑾峰彇鏂囦欢杈撳叆娴�
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("static/file/goodsExcelTemp.xlsx");
@@ -918,7 +1021,10 @@
// sheet.getPhysicalNumberOfRows()鑾峰彇鎬荤殑琛屾暟
// 寰幆璇诲彇姣忎竴琛�
Row row = sheet.createRow(1);
- List<Category> categoryList = categoryMapper.selectList(new QueryWrapper<Category>().eq("ISDELETED",0));
+ List<Category> categoryList = categoryMapper.selectList(
+ new QueryWrapper<Category>().eq("ISDELETED",0)
+ .eq("COMPANY_ID",loginUserInfo.getCompanyId())
+ );
categoryList.forEach(i->{
i.setParamList(cateParamMapper.selectList(new QueryWrapper<CateParam>().eq("ISDELETED",0).eq("CATEGORY_ID",i.getId())));
});
@@ -977,25 +1083,50 @@
.or().like(Goods::getShortPinyin,pageWrap.getModel().getKeyword())
.or().like(Goods::getName,pageWrap.getModel().getKeyword())
)
- .apply(!Objects.isNull(pageWrap.getModel()) && !Objects.isNull(pageWrap.getModel().getAttrFirst()), " find_in_set('"+pageWrap.getModel().getAttrFirst()+"',t.ATTR_FIRST_IDS) ")
- .apply(!Objects.isNull(pageWrap.getModel()) && !Objects.isNull(pageWrap.getModel().getAttrSecond()), " find_in_set('"+pageWrap.getModel().getAttrSecond()+"',t.ATTR_SECOD_IDS) ")
+// .apply(!Objects.isNull(pageWrap.getModel()) && !Objects.isNull(pageWrap.getModel().getAttrFirst()), " find_in_set('"+pageWrap.getModel().getAttrFirst()+"',t.ATTR_FIRST_IDS) ")
+// .apply(!Objects.isNull(pageWrap.getModel()) && !Objects.isNull(pageWrap.getModel().getAttrSecond()), " find_in_set('"+pageWrap.getModel().getAttrSecond()+"',t.ATTR_SECOD_IDS) ")
+ .apply(!Objects.isNull(pageWrap.getModel()) && !Objects.isNull(pageWrap.getModel().getAttrFirst()), " t.id in ( SELECT gp.GOODS_ID FROM cate_param_select cps , goods_param gp where gp.PRAMA_ID = cps.PARAM_ID and gp.VAL = cps.`NAME` " +
+ " and cps.ID = '"+pageWrap.getModel().getAttrFirst()+"' ) ")
+ .apply(!Objects.isNull(pageWrap.getModel()) && !Objects.isNull(pageWrap.getModel().getAttrSecond()), " t.id in ( SELECT gp.GOODS_ID FROM cate_param_select cps , goods_param gp where gp.PRAMA_ID = cps.PARAM_ID and gp.VAL = cps.`NAME` " +
+ " and cps.ID = '"+pageWrap.getModel().getAttrSecond()+"' ) ")
.apply(!Objects.isNull(pageWrap.getModel()) && !Objects.isNull(pageWrap.getModel().getSPrice()), " t.PRICE >= "+pageWrap.getModel().getSPrice()+" ")
.apply(!Objects.isNull(pageWrap.getModel()) && !Objects.isNull(pageWrap.getModel().getEPrice()), " t.PRICE <= "+pageWrap.getModel().getEPrice()+" ");
queryWrapper.orderByDesc(Goods::getId);
IPage<Goods> goodsIPage = goodsJoinMapper.selectJoinPage(page, Goods.class, queryWrapper);
- String prefixUrl = systemDictDataBiz.queryByCode(Constants.SYSTEM, Constants.FILE_DIR).getCode()
- + systemDictDataBiz.queryByCode(Constants.SYSTEM, Constants.PROJECTS).getCode();
- goodsIPage.getRecords().forEach(i->{
- i.setPrefixUrl(prefixUrl);
- i.setMultifileList(multifileMapper.selectList(new QueryWrapper<Multifile>().eq("OBJ_ID",i.getId()).orderByAsc(" SORTNUM ")));
- i.setGoodsParamList(goodsParamMapper.selectList(new QueryWrapper<GoodsParam>().eq("GOODS_ID",i.getId()).orderByAsc(" SORTNUM ")));
- });
+ if(!Objects.isNull(goodsIPage.getRecords())&&goodsIPage.getRecords().size()>Constants.ZERO){
+ this.dealGoodsMsg(goodsIPage.getRecords());
+ }
return PageData.from(goodsIPage);
}
+
+ public void dealGoodsMsg(List<Goods> goodsList){
+ String prefixUrl = systemDictDataBiz.queryByCode(Constants.OSS, Constants.RESOURCE_PATH).getCode()
+ + systemDictDataBiz.queryByCode(Constants.OSS, Constants.GOODS_IMG).getCode();
+ String prefixUrlCategory = systemDictDataBiz.queryByCode(Constants.OSS, Constants.RESOURCE_PATH).getCode()
+ + systemDictDataBiz.queryByCode(Constants.OSS, Constants.CATEGORY_IMG).getCode();
+ List<Integer> integerList = goodsList.stream().map(Goods::getId).collect(Collectors.toList());
+
+ List<Multifile> mFileList = multifileMapper.selectList(new QueryWrapper<Multifile>()
+ .in("OBJ_ID",integerList).eq("TYPE",Constants.ZERO));
+ List<GoodsParam> goodsParamList = goodsParamMapper.selectList(new QueryWrapper<GoodsParam>()
+ .in("GOODS_ID",integerList)
+ .orderByAsc(" SORTNUM "));
+ goodsList.forEach(i->{
+ i.setCategoryImgurl(prefixUrlCategory + i.getCategoryImgurl());
+ i.setPrefixUrl(prefixUrl);
+ i.setMultifileList(mFileList.stream().filter(s -> s.getObjId().equals(i.getId())).collect(Collectors.toList()));
+ i.setGoodsParamList(goodsParamList.stream().filter(s -> s.getGoodsId().equals(i.getId())).collect(Collectors.toList()));
+ });
+ }
+
@Override
public List<Goods> findListForH5(GoodsRequest goodsRequest) {
+ LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+ if(!loginUserInfo.getType().equals(Constants.UserType.ZHUBO.getKey())){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炰富鎾敤鎴锋棤娉曚娇鐢�");
+ }
MPJLambdaWrapper<Goods> queryWrapper = new MPJLambdaWrapper<>();
queryWrapper.selectAll(Goods.class);
queryWrapper.selectAs(Category::getName, Goods::getCategoryName);
@@ -1007,6 +1138,7 @@
queryWrapper.leftJoin(Brand.class, Brand::getId, Goods::getBrandId);
queryWrapper.eq(Goods::getStatus,Constants.ZERO);
queryWrapper.eq(Goods::getIsdeleted,Constants.ZERO);
+ queryWrapper.eq(Goods::getCompanyId,loginUserInfo.getCompanyId());
queryWrapper.eq(!Objects.isNull(goodsRequest) && !Objects.isNull(goodsRequest.getCategoryId()), Goods::getCategoryId, goodsRequest.getCategoryId())
.eq(!Objects.isNull(goodsRequest) && !Objects.isNull(goodsRequest.getBrandId()), Goods::getBrandId, goodsRequest.getBrandId())
.and(!Objects.isNull(goodsRequest) && StringUtils.isNotBlank(goodsRequest.getKeyword()),
@@ -1020,15 +1152,21 @@
.apply(!Objects.isNull(goodsRequest) && !Objects.isNull(goodsRequest.getEPrice()), " t.PRICE <= "+goodsRequest.getEPrice()+" ");
queryWrapper.orderByDesc(Goods::getId);
List<Goods> goodsList = goodsJoinMapper.selectJoinList(Goods.class,queryWrapper);
- String prefixUrl = systemDictDataBiz.queryByCode(Constants.SYSTEM, Constants.FILE_DIR).getCode()
- + systemDictDataBiz.queryByCode(Constants.SYSTEM, Constants.PROJECTS).getCode();
- goodsList.forEach(i->{
- i.setPrefixUrl(prefixUrl);
- i.setMultifileList(multifileMapper.selectList(new QueryWrapper<Multifile>().eq("OBJ_ID",i.getId()).orderByAsc(" SORTNUM ")));
- i.setGoodsParamList(goodsParamMapper.selectList(new QueryWrapper<GoodsParam>().eq("GOODS_ID",i.getId()).orderByAsc(" SORTNUM ")));
- });
+ this.dealGoodsMsg(goodsList);
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