From 0b9c144b5110a7e2a85b2e5581ef304bb81a3ebc Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期二, 19 九月 2023 19:24:35 +0800 Subject: [PATCH] 修改 --- server/service/src/main/java/com/doumee/service/business/impl/GoodsServiceImpl.java | 530 ++++++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 437 insertions(+), 93 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 cd8eea3..bb7ec36 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,9 +17,12 @@ 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.GoodsRequest; +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 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; @@ -36,14 +39,10 @@ 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.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Objects; +import java.util.*; /** * 鍟嗗搧淇℃伅琛⊿ervice瀹炵幇 @@ -55,6 +54,13 @@ @Autowired private GoodsMapper goodsMapper; + @Autowired + @Lazy + private BaseDataService baseDataService; + @Autowired + private BaseGoodsMapper baseGoodsMapper; + @Autowired + private BaseGoodsParamMapper baseGoodsParamMapper; @Autowired private CategoryMapper categoryMapper; @Autowired @@ -73,6 +79,10 @@ @Autowired private GoodsJoinMapper goodsJoinMapper; + @Autowired + private CateParamSelectMapper cateParamSelectMapper; + + @Override @@ -118,6 +128,237 @@ } } + return goods.getId(); + } + @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())){ + //闈炰紒涓氱敤鎴蜂笉鑳芥搷浣� + throw new BusinessException(ResponseStatus.NOT_ALLOWED); + } + if(param.getCategoryId() == null + || param.getType() == null + || param.getRate() == null + || (Constants.equalsInteger(param.getType(), Constants.ONE) + && (param.getGoodsParamList() == null + || param.getGoodsParamList().size()==0))){ + 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())){ + 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); + //鏍规嵁骞冲彴鍟嗗搧閰嶇疆鐨勫钩鍙板弬鏁颁俊鎭煡璇紒涓氱粦瀹氱殑鍙傛暟淇℃伅 杩涜瀛樺偍鍒� 浼佷笟鍟嗗搧鍙傛暟鍐� + 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()); + 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())); + 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; + } + + /** + * 寮�濮嬪鐞嗗钩鍙板晢鍝佸叧鑱旈檮浠讹紝澶嶅埗涓�濂楀埌浼佷笟鍟嗗搧涓� + */ + 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); + multifile.setCreator(user.getId()); + multifile.setCreateDate(new Date()); + multifile.setIsdeleted(Constants.ZERO); + multifile.setSortnum(i+Constants.ONE); + 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); + } + } + } + + 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(); + } + } + } + //濡傛灉娌℃湁閰嶇疆鍏ユ墜浠凤紝瀹夎鍔犱环绯绘暟鏉ヨ绠� + if(model.getCateRatePrice()==null){ + model.setCateRatePrice(systemDictDataBiz.getGoodsPriceRate()); + } + //杩斿洖 + return Constants.formatBigdecimal(model.getPrice()).multiply(model.getCateRatePrice()).multiply(param.getRate()); + + } + + + @Override + public Integer companyCreate(Goods goods) { + LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); + if(user.getType()==1){ + goods.setCompanyId(user.getCompanyId()); + }else{ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"褰撳墠鐧诲綍鐢ㄦ埛绫诲埆閿欒锛屾棤娉曡繘琛岃鎿嶄綔"); + } + if(goodsMapper.selectCount(new QueryWrapper<Goods>().eq("COMPANY_ID",user.getCompanyId()).eq("ISDELETED",Constants.ZERO).eq("name",goods.getName()))>0){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"銆�"+goods.getName()+"銆戝凡瀛樺湪"); + } + goods.setStatus(Constants.ZERO); + goods.setCreateDate(new Date()); + goods.setCreator(user.getId()); + goods.setIsdeleted(Constants.ZERO); + //澶勭悊鎷奸煶闂 + goods.setPinyin(PinYinUtil.getFullSpell(goods.getName())); + goods.setShortPinyin(PinYinUtil.getFirstSpell(goods.getName())); + goodsMapper.insert(goods); + + List<Multifile> multifileList = goods.getMultifileList(); + if(!Objects.isNull(multifileList)&&multifileList.size()>Constants.ZERO){ + for (int i = 0; i < multifileList.size(); i++) { + Multifile multifile = multifileList.get(i); + multifile.setCreator(user.getId()); + multifile.setCreateDate(new Date()); + multifile.setIsdeleted(Constants.ZERO); + multifile.setSortnum(i+Constants.ONE); + multifile.setObjId(goods.getId()); + multifile.setType(Constants.ZERO); + multifile.setObjType(Constants.ZERO); + 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); + //瀛樺偍 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(); } @@ -191,6 +432,74 @@ } } + + @Override + public void companyUpdateById(Goods goods) { + LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); + if(user.getType()==1){ + goods.setCompanyId(user.getCompanyId()); + }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){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"銆�"+goods.getName()+"銆戝凡瀛樺湪"); + }; + goods.setStatus(Constants.ZERO); + goods.setEditDate(new Date()); + goods.setEditor(user.getId()); + goods.setIsdeleted(Constants.ZERO); + //澶勭悊鎷奸煶闂 + goods.setPinyin(PinYinUtil.getFullSpell(goods.getName())); + goods.setShortPinyin(PinYinUtil.getFirstSpell(goods.getName())); + goodsMapper.updateById(goods); + + 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++) { + Multifile multifile = multifileList.get(i); + multifile.setCreator(user.getId()); + multifile.setCreateDate(new Date()); + multifile.setIsdeleted(Constants.ZERO); + multifile.setSortnum(i+Constants.ONE); + multifile.setObjId(goods.getId()); + multifile.setType(Constants.ZERO); + multifile.setObjType(Constants.ZERO); + multifileMapper.insert(multifile); + } + } + goodsParamMapper.delete(new QueryWrapper<GoodsParam>().eq("GOODS_ID",goods.getId())); + 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.setSortnum(i+Constants.ONE); + goodsParam.setStatus(Constants.ZERO); + 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); +// }; + } + } + } + + @Override public void updateByIdInBatch(List<Goods> goodss) { if (CollectionUtils.isEmpty(goodss)) { @@ -205,16 +514,73 @@ @Override public void updateDisableById(Goods goods) { LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); + Goods dbGoods = goodsMapper.selectById(goods.getId()); + if(Objects.isNull(dbGoods)){ + throw new BusinessException(ResponseStatus.DATA_EMPTY); + } + //鎷夊紡鍟嗗搧 涓� 涓婃灦鏃讹紝闇�瑕侀檺鍒� 骞冲彴鍟嗗搧鏄惁宸蹭笅鏋� + if(dbGoods.getType().equals(Constants.goodsType.PULL)&&goods.getStatus().equals(Constants.ZERO)){ + BaseGoods baseGoods = baseGoodsMapper.selectById(dbGoods.getGoodsId()); + if(Objects.isNull(baseGoods)){ + throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌骞冲彴鍟嗗搧淇℃伅"); + } + if(!baseGoods.getStatus().equals(Constants.ZERO)){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"骞冲彴鍟嗗搧宸蹭笅鏋讹紝鏃犳硶涓婃灦"); + } + } goods.setEditDate(new Date()); goods.setEditor(user.getId()); goodsMapper.updateById(goods); } + /** + * 鎵归噺涓婁笅鏋� + * @param batchDisableDTO + * @return + */ + @Override + public String batchUpdateDisableById(BatchDisableDTO batchDisableDTO) { + LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); + if(StringUtils.isBlank(batchDisableDTO.getIds())){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璇烽�夋嫨瀵瑰簲鐨勫晢鍝佽繘琛岃鎿嶄綔"); + } + if(!(batchDisableDTO.getStatus().equals(Constants.ZERO)||batchDisableDTO.getStatus().equals(Constants.ONE))){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鎿嶄綔绫诲瀷閿欒"); + } + Integer okNum = 0; + Integer errNum = 0; + List<String> goodsList = Arrays.asList(batchDisableDTO.getIds().split(",")); + for (String goodsId:goodsList) { + Goods dbGoods = goodsMapper.selectById(goodsId); + if(Objects.isNull(dbGoods)){ + errNum++; + continue; + } + //鎷夊紡鍟嗗搧 涓� 涓婃灦鏃讹紝闇�瑕侀檺鍒� 骞冲彴鍟嗗搧鏄惁宸蹭笅鏋� + if(dbGoods.getType().equals(Constants.goodsType.PULL)&&batchDisableDTO.getStatus().equals(Constants.ZERO)){ + BaseGoods baseGoods = baseGoodsMapper.selectById(dbGoods.getGoodsId()); + if(Objects.isNull(baseGoods)||!baseGoods.getStatus().equals(Constants.ZERO)){ + errNum++; + continue; + } + } + dbGoods.setEditDate(new Date()); + dbGoods.setEditor(user.getId()); + dbGoods.setStatus(batchDisableDTO.getStatus()); + goodsMapper.updateById(dbGoods); + okNum++; + } + return "鏇存柊鎴愬姛鏁伴噺("+okNum+");鏇存柊澶辫触鏁伴噺("+errNum+")"; + } + + + + @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)){ @@ -257,8 +623,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 "))); @@ -275,11 +641,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) { @@ -291,19 +662,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); }); @@ -361,6 +735,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){ @@ -369,6 +744,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){ @@ -378,7 +754,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)+"銆戣鍟嗗搧鍝佺墝鏃犳晥锛岃妫�鏌ヨ緭鍏ワ紒"); } @@ -391,6 +769,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); @@ -409,67 +788,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(); @@ -477,16 +803,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(); @@ -496,12 +814,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)); } } } @@ -544,6 +857,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){ @@ -558,6 +885,7 @@ f.setCreator(newModel.getCreator()); f.setIsdeleted(Constants.ZERO); f.setSortnum(i); + f.setCompanyId(user.getCompanyId()); f.setFileurl(s); multifileMapper.insert(f); } @@ -567,6 +895,9 @@ return num; } + + + private boolean isImgFile(File f) { if(f!=null && f.isFile() ){ @@ -653,6 +984,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"); @@ -666,7 +998,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()))); }); @@ -725,14 +1060,18 @@ .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(); + 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 "))); @@ -744,6 +1083,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); @@ -755,6 +1098,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()), @@ -768,8 +1112,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