From 8d322f025a9483030a47d4671c5fa7502bbcb930 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期一, 18 九月 2023 15:56:32 +0800
Subject: [PATCH] 休bug
---
server/service/src/main/java/com/doumee/service/business/impl/GoodsServiceImpl.java | 142 ++++++++++++++++++-----------------------------
1 files changed, 54 insertions(+), 88 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 4e04375..a805828 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,12 +17,11 @@
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.PlatGoodsParam;
+import com.doumee.dao.business.model.dto.*;
+import com.doumee.service.business.BaseDataService;
import com.doumee.service.business.GoodsService;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import lombok.extern.java.Log;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
@@ -54,6 +53,9 @@
@Autowired
private GoodsMapper goodsMapper;
+ @Autowired
+ @Lazy
+ private BaseDataService baseDataService;
@Autowired
private BaseGoodsMapper baseGoodsMapper;
@Autowired
@@ -130,7 +132,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);
}
@@ -143,7 +145,7 @@
throw new BusinessException(ResponseStatus.BAD_REQUEST);
}
Category category = categoryMapper.selectById(param.getCategoryId());
- if(category ==null ||Constants.equalsInteger(category.getIsdeleted(), Constants.ONE) ||Constants.equalsInteger(category.getCompanyId(), user.getCompanyId())){
+ 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){
@@ -160,11 +162,14 @@
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()){
+ if(Constants.equalsInteger(Constants.ONE, param.getType()) &&( goodsList==null || ids.size()!=goodsList.size())){
// 濡傛灉閫夋嫨骞冲彴鍟嗗搧鍜屾煡璇㈢粨鏋滃涓嶄笂锛屾彁绀洪敊璇�
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝璇锋纭�夋嫨骞冲彴鍟嗗搧锛�");
}
@@ -219,6 +224,7 @@
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()));
@@ -559,8 +565,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)){
@@ -603,8 +609,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 ")));
@@ -621,11 +627,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) {
@@ -649,10 +660,14 @@
}
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);
}
@@ -708,6 +723,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){
@@ -716,6 +732,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){
@@ -725,7 +742,9 @@
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)+"銆戣鍟嗗搧鍝佺墝鏃犳晥锛岃妫�鏌ヨ緭鍏ワ紒");
}
@@ -738,6 +757,7 @@
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);
@@ -756,67 +776,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;
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();
@@ -824,16 +791,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();
@@ -843,12 +802,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(),f));
}
}
}
@@ -928,6 +882,9 @@
return num;
}
+
+
+
private boolean isImgFile(File f) {
if(f!=null && f.isFile() ){
@@ -1014,6 +971,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");
@@ -1027,7 +985,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())));
});
@@ -1092,8 +1053,8 @@
.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();
+ 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);
i.setMultifileList(multifileMapper.selectList(new QueryWrapper<Multifile>().eq("OBJ_ID",i.getId()).orderByAsc(" SORTNUM ")));
@@ -1105,6 +1066,10 @@
@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);
@@ -1116,6 +1081,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()),
@@ -1129,8 +1095,8 @@
.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();
+ 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 ")));
--
Gitblit v1.9.3