From 64f45c75ea93911b9841bf00bb4c436cd294be3a Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期五, 15 九月 2023 18:30:47 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev
---
server/service/src/main/java/com/doumee/service/business/impl/GoodsServiceImpl.java | 274 +++++++++++++++++++++++++++++++++++++++---------------
1 files changed, 198 insertions(+), 76 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..a049452 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
@@ -20,6 +20,7 @@
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.PlatGoodsParam;
import com.doumee.service.business.GoodsService;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import org.apache.commons.lang3.StringUtils;
@@ -38,7 +39,6 @@
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;
@@ -54,6 +54,10 @@
@Autowired
private GoodsMapper goodsMapper;
+ @Autowired
+ private BaseGoodsMapper baseGoodsMapper;
+ @Autowired
+ private BaseGoodsParamMapper baseGoodsParamMapper;
@Autowired
private CategoryMapper categoryMapper;
@Autowired
@@ -75,8 +79,6 @@
@Autowired
private CateParamSelectMapper cateParamSelectMapper;
- @Autowired
- private BaseGoodsMapper baseGoodsMapper;
@@ -128,7 +130,7 @@
@Override
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 +142,110 @@
|| 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(),"瀵逛笉璧凤紝璇峰墠寰�銆愮被鍒鐞嗐�戝厛鍏宠仈骞冲彴绫诲埆锛�");
+ }
+ 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(),"瀵逛笉璧凤紝璇锋纭�夋嫨骞冲彴鍟嗗搧锛�");
+ }
+ for(BaseGoods model : goodsList){
+ //閬嶅巻骞冲彴鍟嗗搧淇℃伅锛岃繘琛屽晢鍝佷俊鎭悓姝�
+ Goods goods = initGoodsPlatParam(user,model,param);
+ if(goods == null){
+ continue;
+ }
+ goodsMapper.insert(goods);
+ //寮�濮嬪鐞嗛檮浠�
+ dealPlatMultifule(goods.getId(),user,model);
+ //寮�濮嬪鐞嗗弬鏁伴厤缃�
+ dealPlatGoodsParam(model,goods,user);
+ }
+
+
+ return 1;
+ }
+
+ private void dealPlatGoodsParam(BaseGoods model, Goods goods, LoginUserInfo user) {
+ 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);
+ 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());
+ goodsParamMapper.insert(goodsParam);
+ }
+ }
+ }
+
+ private Goods initGoodsPlatParam(LoginUserInfo user, BaseGoods model, GoodCreatePlatRequest param) {
+ Goods goods = new Goods();
+ goods.setIsdeleted(Constants.ZERO);
+ goods.setGoodsId(model.getId());
+ 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) {
+ 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 +253,33 @@
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);
+ multifile.setFileurl(multifile.getFileurl());
+ multifile.setName(multifile.getName());
+ multifile.setSortnum(multifile.getSortnum());
+ multifile.setCompanyId(user.getCompanyId());
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();
+ }
}
}
- return goods.getId();
+ //濡傛灉娌℃湁閰嶇疆鍏ユ墜浠凤紝瀹夎鍔犱环绯绘暟鏉ヨ绠�
+ if(model.getCateRatePrice()==null){
+ model.setCateRatePrice(systemDictDataBiz.getGoodsPriceRate());
+ }
+ //杩斿洖
+ return Constants.formatBigdecimal(model.getPrice()).multiply(model.getCateRatePrice()).multiply(param.getRate());
+
}
@@ -465,8 +563,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,8 +607,8 @@
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();
+ String prefixUrl = systemDictDataBiz.queryByCode(Constants.OSS, Constants.RESOURCE_PATH).getCode()
+ + systemDictDataBiz.queryByCode(Constants.OSS, Constants.GOODS_IMG).getCode();
goodsList.forEach(i->{
i.setPrefixUrl(prefixUrl);
i.setMultifileList(multifileMapper.selectList(new QueryWrapper<Multifile>().eq("OBJ_ID",i.getId()).orderByAsc(" SORTNUM ")));
@@ -527,11 +625,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) {
@@ -550,14 +653,19 @@
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);
+ if(i.getType().equals(Constants.ONE)){
+ i.setBasePrice(i.getBasePrice().multiply(i.getBasePriceRate()));
+ }
+
});
return PageData.from(goodsIPage);
}
@@ -667,54 +775,54 @@
//鏌ヨ鍏ㄩ儴灞炴��1鍜屽睘鎬�2瑙勬牸鍊�
List<CateAttr> allAttr = cateAttrMapper.selectList(new QueryWrapper<>(ca));
//灞炴��1闆嗗悎
- String[] attrs = StringUtils.defaultString(m.getAttrFirstNames(),"").split("\n");
+// String[] attrs = StringUtils.defaultString(m.getAttrFirstNames(),"").split("\n");
//灞炴��2闆嗗悎
- String[] attrs2 = StringUtils.defaultString(m.getAttrSecodNames(),"").split("\n");
+// 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);
-
- }
+// 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();
@@ -796,6 +904,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){
--
Gitblit v1.9.3