From dcdb0231034810232f2542f3865666ebf72daf11 Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期三, 30 四月 2025 16:45:34 +0800 Subject: [PATCH] sf --- server/service/src/main/java/com/doumee/service/business/impl/GoodsServiceImpl.java | 140 +++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 131 insertions(+), 9 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 adf97ea..fc4b844 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 @@ -294,7 +294,9 @@ private void dealPlatMultifule(Integer id, LoginUserInfo user, BaseGoods model,List<Multifile> fileList ) { Multifile f = new Multifile(); f.setObjId(model.getId()); + f.setObjType(Constants.ONE); f.setIsdeleted(Constants.ZERO); + f.setObjType(Constants.ONE); List<Multifile> multifileList =multifileMapper.selectList(new QueryWrapper<>(f)); if(!Objects.isNull(multifileList)&&multifileList.size()>Constants.ZERO){ for (int i = 0; i < multifileList.size(); i++) { @@ -359,6 +361,9 @@ if(!Objects.isNull(multifileList)&&multifileList.size()>Constants.ZERO){ for (int i = 0; i < multifileList.size(); i++) { Multifile multifile = multifileList.get(i); + if(StringUtils.isBlank(multifile.getFileurl())){ + continue; + } multifile.setCreator(user.getId()); multifile.setCreateDate(new Date()); multifile.setIsdeleted(Constants.ZERO); @@ -374,6 +379,7 @@ if(!Objects.isNull(goodsParamList)&&goodsParamList.size()>0){ for (int i = 0; i < goodsParamList.size(); i++) { GoodsParam goodsParam = goodsParamList.get(i); + goodsParam.setId(null); goodsParam.setCreator(user.getId()); goodsParam.setCreateDate(new Date()); goodsParam.setIsdeleted(Constants.ZERO); @@ -503,6 +509,7 @@ if(!Objects.isNull(goodsParamList)&&goodsParamList.size()>0){ for (int i = 0; i < goodsParamList.size(); i++) { GoodsParam goodsParam = goodsParamList.get(i); + goodsParam.setId(null); goodsParam.setCreator(user.getId()); goodsParam.setCreateDate(new Date()); goodsParam.setIsdeleted(Constants.ZERO); @@ -619,7 +626,7 @@ if(!Objects.isNull(category)){ goods.setCategoryName(category.getName()); } - goods.setMultifileList(multifileMapper.selectList(new QueryWrapper<Multifile>().eq("OBJ_ID",id))); + goods.setMultifileList(multifileMapper.selectList(new QueryWrapper<Multifile>().eq("OBJ_TYPE",Constants.ZERO).eq("OBJ_ID",id))); return goods; } @@ -641,6 +648,7 @@ queryWrapper.leftJoin(Category.class, Category::getId, Goods::getCategoryId); queryWrapper.leftJoin(Brand.class, Brand::getId, Goods::getBrandId); queryWrapper.eq(Goods::getStatus,Constants.ZERO); + queryWrapper.eq(Goods::getCompanyId, goods.getCompanyId()); queryWrapper.eq(Goods::getIsdeleted,Constants.ZERO); queryWrapper.like(StringUtils.isNotBlank(goods.getAttrFirstIds()),Goods::getAttrFirstIds,goods.getAttrFirstIds()); queryWrapper.like(StringUtils.isNotBlank(goods.getAttrFirstNames()),Goods::getAttrFirstNames,goods.getAttrFirstNames()); @@ -651,8 +659,11 @@ queryWrapper.between(!Objects.isNull(goods.getSPrice())&&!Objects.isNull(goods.getEPrice()), Goods::getPrice,goods.getSPrice(),goods.getEPrice()); queryWrapper.orderByDesc(Goods::getId); - List<Goods> goodsList = goodsJoinMapper.selectJoinList(Goods.class,queryWrapper); - this.dealGoodsMsg(goodsList); + List<Goods> goodsList = this.goodsMapper.selectListByCollection(goods); + // List<Goods> goodsList = goodsJoinMapper.selectJoinList(Goods.class,queryWrapper); + if(!Objects.isNull(goodsList)&&goodsList.size()>Constants.ZERO){ + this.dealGoodsMsg(goodsList); + } return goodsList; } @@ -703,6 +714,9 @@ + systemDictDataBiz.queryByCode(Constants.OSS, Constants.GOODS_IMG).getCode(); goodsIPage.getRecords().forEach(i->{ i.setPrefixUrl(prefixUrl); + if(i.getType().equals(Constants.ONE)){ + i.setBasePrice(Constants.formatBigdecimal(i.getBasePrice()).multiply(Constants.formatBigdecimal(i.getBasePriceRate())).setScale(0,BigDecimal.ROUND_CEILING)); + } }); return PageData.from(goodsIPage); } @@ -783,8 +797,8 @@ 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(),"绗��"+(num)+"銆戣銆�"+m.getName()+"銆戝凡瀛樺湪"); + if(goodsMapper.selectCount(new QueryWrapper<Goods>().eq("COMPANY_ID",user.getCompanyId()).eq("ISDELETED",Constants.ZERO).eq("name",m.getName()))>0){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"绗��"+(num)+"銆戣銆�"+m.getName()+"銆戝凡瀛樺湪"); } Goods newModel = new Goods(); newModel.setRemark(m.getId()); @@ -897,6 +911,106 @@ } } if(mulFiles !=null && mulFiles.size()>0){ + for(int i=0;i<mulFiles.size();i++){ + String s = mulFiles.get(i); + Multifile f = new Multifile(); + f.setObjType(Constants.ZERO); + f.setName(s); + f.setType(Constants.ZERO); + f.setObjId(newModel.getId()); + f.setCreateDate(newModel.getCreateDate()); + f.setCreator(newModel.getCreator()); + f.setIsdeleted(Constants.ZERO); + f.setSortnum(i); + f.setCompanyId(user.getCompanyId()); + f.setFileurl(s); + multifileMapper.insert(f); + } + } + num++; + } + return num; + + } + @Transactional(rollbackFor = {Exception.class, BusinessException.class}) + @Override + public Integer importBatchImg(MultipartFile file){ + LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); + ExcelImporter ie = null; + List<GoodsImport> dataList =null; + try { + ie = new ExcelImporter(file,0,0); + dataList = ie.getDataList(GoodsImport.class,null); + } catch (Exception e) { + e.printStackTrace(); + } + if(dataList == null || dataList.size() ==0){ + throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝褰曞叆鏁版嵁涓虹┖锛�"); + } + + int num =1; + for(GoodsImport m: dataList){ + if( StringUtils.isBlank(m.getId()) ){ + continue; + } + 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){ + throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝绗��"+(num)+"銆戣鍟嗗搧涓嶅瓨鍦紝璇锋鏌ヨ緭鍏ワ紒"); + } + + Goods newModel = new Goods(); + newModel.setId(g.getId()); + newModel.setEditor(user.getId()); + newModel.setEditDate(new Date()); + + String[] params = StringUtils.defaultString(m.getParamStr(),"").split("\n"); + List<String> mulFiles = null; + String proDir =systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.PROJECTS).getCode(); + + String path = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.GOODS_IMG_DIR).getCode() + + 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(); + if(files!=null && files.length>0){ + for(File f:files){ + if(StringUtils.isBlank(newModel.getImgurl()) && isImgFile(f)){ + //鍙栫涓�寮犲浘鐗囦綔涓哄垪琛ㄥ浘 + newModel.setImgurl(baseDataService.getOssImgurl(ossModel,ossModel.getGoodsFolder(),f)); + } + if((mulFiles ==null || mulFiles.size() == 0) && f.isDirectory()){ + //濡傛灉鏄枃浠跺す + File[] fs = f.listFiles(); + if(fs!=null && fs.length>0){ + for(File mf : fs){ + if(isImgFile(mf)){ + if(mulFiles==null){ + mulFiles = new ArrayList<>(); + } + mulFiles.add(baseDataService.getOssImgurl(ossModel,ossModel.getGoodsFolder(),mf)); + } + } + } + } + } + } + } + } + //鏌ヨ鍟嗗搧淇℃伅 + goodsMapper.updateById(newModel); + if(mulFiles !=null && mulFiles.size()>0){ + multifileMapper.update(null,new UpdateWrapper<Multifile>().lambda() + .set(Multifile::getIsdeleted,Constants.ONE) + .eq(Multifile::getIsdeleted,Constants.ZERO) + .eq(Multifile::getObjId,g.getId()) + .eq(Multifile::getType,Constants.ZERO)); for(int i=0;i<mulFiles.size();i++){ String s = mulFiles.get(i); Multifile f = new Multifile(); @@ -1093,7 +1207,9 @@ .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); - this.dealGoodsMsg(goodsIPage.getRecords()); + if(!Objects.isNull(goodsIPage.getRecords())&&goodsIPage.getRecords().size()>Constants.ZERO){ + this.dealGoodsMsg(goodsIPage.getRecords()); + } return PageData.from(goodsIPage); } @@ -1103,10 +1219,14 @@ 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.GOODS_IMG).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)); + .lambda().in(Multifile::getObjId,integerList) + .eq(Multifile::getType,Constants.ZERO) + .eq(Multifile::getIsdeleted,Constants.ZERO) + .eq(Multifile::getObjType,Constants.ZERO)); List<GoodsParam> goodsParamList = goodsParamMapper.selectList(new QueryWrapper<GoodsParam>() .in("GOODS_ID",integerList) .orderByAsc(" SORTNUM ")); @@ -1149,7 +1269,9 @@ .apply(!Objects.isNull(goodsRequest) && !Objects.isNull(goodsRequest.getEPrice()), " t.PRICE <= "+goodsRequest.getEPrice()+" "); queryWrapper.orderByDesc(Goods::getId); List<Goods> goodsList = goodsJoinMapper.selectJoinList(Goods.class,queryWrapper); - this.dealGoodsMsg(goodsList); + if(!Objects.isNull(goodsList)&&goodsList.size()>Constants.ZERO){ + this.dealGoodsMsg(goodsList); + } return goodsList; } -- Gitblit v1.9.3