From 2a7b0a64b14b22ec45f8a0f6e4764bc3cd16919c Mon Sep 17 00:00:00 2001
From: peng <peng.com>
Date: 星期一, 27 十月 2025 17:08:24 +0800
Subject: [PATCH] 调整
---
framework/src/main/java/cn/lili/modules/goods/serviceimpl/GoodsServiceImpl.java | 164 ++++++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 157 insertions(+), 7 deletions(-)
diff --git a/framework/src/main/java/cn/lili/modules/goods/serviceimpl/GoodsServiceImpl.java b/framework/src/main/java/cn/lili/modules/goods/serviceimpl/GoodsServiceImpl.java
index 6909add..f5f756c 100644
--- a/framework/src/main/java/cn/lili/modules/goods/serviceimpl/GoodsServiceImpl.java
+++ b/framework/src/main/java/cn/lili/modules/goods/serviceimpl/GoodsServiceImpl.java
@@ -15,9 +15,7 @@
import cn.lili.common.security.context.UserContext;
import cn.lili.common.security.enums.UserEnums;
import cn.lili.modules.goods.entity.dos.*;
-import cn.lili.modules.goods.entity.dto.GoodsOperationDTO;
-import cn.lili.modules.goods.entity.dto.GoodsParamsDTO;
-import cn.lili.modules.goods.entity.dto.GoodsSearchParams;
+import cn.lili.modules.goods.entity.dto.*;
import cn.lili.modules.goods.entity.enums.GoodsAuthEnum;
import cn.lili.modules.goods.entity.enums.GoodsStatusEnum;
import cn.lili.modules.goods.entity.vos.GoodsSkuVO;
@@ -41,6 +39,7 @@
import cn.lili.mybatis.util.PageUtil;
import cn.lili.rocketmq.RocketmqSendCallbackBuilder;
import cn.lili.rocketmq.tags.GoodsTagsEnum;
+import cn.lili.utils.COSUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
@@ -48,6 +47,10 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.apache.poi.ss.usermodel.Cell;
+import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.rocketmq.spring.core.RocketMQTemplate;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -55,6 +58,9 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import javax.servlet.ServletOutputStream;
+import javax.servlet.http.HttpServletResponse;
+import java.net.URLEncoder;
import java.util.*;
import java.util.stream.Collectors;
@@ -121,6 +127,12 @@
@Autowired
private Cache<GoodsVO> cache;
+ @Autowired
+ private GoodsService goodsService;
+
+ @Autowired
+ private COSUtil cosUtil;
+
@Override
public List<Goods> getByBrandIds(List<String> brandIds) {
LambdaQueryWrapper<Goods> lambdaQueryWrapper = new LambdaQueryWrapper<>();
@@ -172,7 +184,7 @@
//妫�鏌ュ晢鍝�
this.checkGoods(goods);
//鍚慻oods鍔犲叆鍥剧墖
- if (goodsOperationDTO.getGoodsGalleryList().size() > 0) {
+ if (goodsOperationDTO.getGoodsGalleryList()!=null&& !goodsOperationDTO.getGoodsGalleryList().isEmpty()) {
this.setGoodsGalleryParam(goodsOperationDTO.getGoodsGalleryList().get(0), goods);
}
//娣诲姞鍟嗗搧鍙傛暟
@@ -201,15 +213,23 @@
//妫�鏌ュ晢鍝佷俊鎭�
this.checkGoods(goods);
//鍚慻oods鍔犲叆鍥剧墖
- this.setGoodsGalleryParam(goodsOperationDTO.getGoodsGalleryList().get(0), goods);
+ if (goodsOperationDTO.getGoodsGalleryList() != null&& !goodsOperationDTO.getGoodsGalleryList().isEmpty()) {
+ this.setGoodsGalleryParam(goodsOperationDTO.getGoodsGalleryList().get(0), goods);
+ }else {
+ goods.setOriginal(null);
+ goods.setSmall(null);
+ goods.setThumbnail(null);
+ goodsGalleryService.removeByGoodsId(goodsId);
+ }
//娣诲姞鍟嗗搧鍙傛暟
if (goodsOperationDTO.getGoodsParamsDTOList() != null && !goodsOperationDTO.getGoodsParamsDTOList().isEmpty()) {
goods.setParams(JSONUtil.toJsonStr(goodsOperationDTO.getGoodsParamsDTOList()));
}
+ Goods previousGoods = this.getById(goodsId);
//淇敼鍟嗗搧
this.updateById(goods);
//淇敼鍟嗗搧sku淇℃伅
- this.goodsSkuService.update(goods, goodsOperationDTO);
+ this.goodsSkuService.update(goods, goodsOperationDTO,previousGoods);
//娣诲姞鐩稿唽
if (goodsOperationDTO.getGoodsGalleryList() != null && !goodsOperationDTO.getGoodsGalleryList().isEmpty()) {
this.goodsGalleryService.add(goodsOperationDTO.getGoodsGalleryList(), goods.getId());
@@ -227,6 +247,17 @@
//缂撳瓨鑾峰彇锛屽鏋滄病鏈夊垯璇诲彇缂撳瓨
GoodsVO goodsVO = cache.get(CachePrefix.GOODS.getPrefix() + goodsId);
if (goodsVO != null) {
+// List<String> goodsGalleryList = goodsVO.getGoodsGalleryList();
+// if (goodsGalleryList != null && !goodsGalleryList.isEmpty()) {
+// List<String> galleryList = goodsGalleryList.stream().map(item -> {
+// if (StringUtils.isNotBlank(item)&&!item.contains("http")) {
+// return cosUtil.getPreviewUrl(item);
+// }else {
+// return item;
+// }
+// }).collect(Collectors.toList());
+// goodsVO.setGoodsGalleryList(galleryList);
+// }
return goodsVO;
}
//鏌ヨ鍟嗗搧淇℃伅
@@ -245,6 +276,12 @@
List<GoodsGallery> galleryList = goodsGalleryService.goodsGalleryList(goodsId);
for (GoodsGallery goodsGallery : galleryList) {
images.add(goodsGallery.getOriginal());
+// String original = goodsGallery.getOriginal();
+// if (StringUtils.isNotBlank(original)&&!original.contains("http")) {
+// images.add(cosUtil.getPreviewUrl(original));
+// }else {
+// images.add(goodsGallery.getOriginal());
+// }
}
goodsVO.setGoodsGalleryList(images);
//鍟嗗搧sku璧嬪��
@@ -281,9 +318,91 @@
return this.page(PageUtil.initPage(goodsSearchParams), goodsSearchParams.queryWrapper());
}
+ @Override
+ public void queryExportGoods(HttpServletResponse response, GoodsSearchParams searchParams) {
+ List<Goods> list = this.list(searchParams.queryWrapper());
+
+ XSSFWorkbook workbook = initGoodsExportData(list);
+ try {
+ // 璁剧疆鍝嶅簲澶�
+ String fileName = URLEncoder.encode("鍟嗗搧娓呭崟", "UTF-8");
+ response.setContentType("application/vnd.ms-excel;charset=UTF-8");
+ response.setHeader("Content-Disposition", "attachment;filename=" + fileName + ".xlsx");
+
+ ServletOutputStream out = response.getOutputStream();
+ workbook.write(out);
+ } catch (Exception e) {
+ e.printStackTrace();
+ } finally {
+ try {
+ workbook.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ }
+ private XSSFWorkbook initGoodsExportData(List<Goods> list) {
+ List<GoodsExportDTO> goodsExportDTOs = new ArrayList<>();
+ for (Goods goods : list) {
+ GoodsExportDTO goodsExportDTO = new GoodsExportDTO();
+ BeanUtils.copyProperties(goods, goodsExportDTO);
+ goodsExportDTOs.add(goodsExportDTO);
+ }
+
+ XSSFWorkbook workbook = new XSSFWorkbook();
+ Sheet sheet = workbook.createSheet("鍟嗗搧娓呭崟");
+ Row header = sheet.createRow(0);
+ String[] headers = {"鍟嗗搧鍚嶇О", "鍟嗗搧缂栧彿", "浠锋牸", "閿�鍞ā寮�", "鍟嗗搧绫诲瀷", "鐘舵��", "瀹℃牳鐘舵��", "搴楅摵鍚嶇О"};
+ for (int i = 0; i < headers.length; i++) {
+ Cell cell = header.createCell(i);
+ cell.setCellValue(headers[i]);
+ }
+ for (int i = 0; i < goodsExportDTOs.size(); i++) {
+ GoodsExportDTO goodsExportDTO = goodsExportDTOs.get(i);
+ Row row = sheet.createRow(i + 1);
+ row.createCell(0).setCellValue(goodsExportDTO.getGoodsName());
+ row.createCell(1).setCellValue(goodsExportDTO.getId());
+ row.createCell(2).setCellValue(goodsExportDTO.getPrice());
+ if ("RETAIL".equals(goodsExportDTO.getSalesModel())) {
+ row.createCell(3).setCellValue("闆跺敭");
+ } else if ("WHOLESALE".equals(goodsExportDTO.getSalesModel())) {
+ row.createCell(3).setCellValue("鎵瑰彂");
+ } else if ("PRESALE".equals(goodsExportDTO.getSalesModel())) {
+ row.createCell(3).setCellValue("棰勫敭");
+ } else {
+ row.createCell(3).setCellValue("鍏朵粬绫诲瀷");
+ }
+
+ if ("PHYSICAL_GOODS".equals(goodsExportDTO.getGoodsType())) {
+ row.createCell(4).setCellValue("瀹炵墿鍟嗗搧");
+ } else if ("VIRTUAL_GOODS".equals(goodsExportDTO.getGoodsType())) {
+ row.createCell(4).setCellValue("铏氭嫙鍟嗗搧");
+ } else {
+ row.createCell(4).setCellValue("鐢靛瓙鍗″埜");
+ }
+
+ if ("DOWN".equals(goodsExportDTO.getMarketEnable())) {
+ row.createCell(5).setCellValue("涓嬫灦");
+ } else if ("UPPER".equals(goodsExportDTO.getMarketEnable())) {
+ row.createCell(5).setCellValue("涓婃灦");
+ }
+
+ if ("TOBEAUDITED".equals(goodsExportDTO.getAuthFlag())) {
+ row.createCell(6).setCellValue("寰呭鏍�");
+ } else if ("PASS".equals(goodsExportDTO.getAuthFlag())) {
+ row.createCell(6).setCellValue("閫氳繃");
+ } else if ("REFUSE".equals(goodsExportDTO.getAuthFlag())) {
+ row.createCell(6).setCellValue("鎷掔粷");
+ }
+ row.createCell(7).setCellValue(goodsExportDTO.getStoreName());
+
+ }
+ return workbook;
+ }
/**
* 鍟嗗搧鏌ヨ
- *
+ *g
* @param goodsSearchParams 鏌ヨ鍙傛暟
* @return 鍟嗗搧淇℃伅
*/
@@ -389,6 +508,36 @@
queryWrapper.in(Goods::getId, goodsIds);
List<Goods> goodsList = this.list(queryWrapper);
this.updateGoodsStatus(goodsIds, goodsStatusEnum, goodsList);
+ return result;
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public Boolean goodsSort(GoodsSortDTO req) {
+ boolean result;
+ //妫�娴嬬鐞嗗憳鏉冮檺
+ this.checkManagerAuthority();
+ LambdaUpdateWrapper<Goods> updateWrapper = new LambdaUpdateWrapper<>();
+ updateWrapper.set(Goods::getGoodsSort,req.getSort());
+ updateWrapper.eq(Goods::getId, req.getGoodsId());
+ //鏌ヨ鍑烘瘮褰撳墠鎺掑簭澶х殑鍟嗗搧
+ LambdaQueryWrapper<Goods> query = Wrappers.<Goods>lambdaQuery();
+ query.gt(Goods::getGoodsSort,req.getSort());
+ List<Goods> goods = goodsService.list(query);
+ List<String> goodsIds = new ArrayList<>();
+ if (goods != null && !goods.isEmpty()) {
+ //閫傞厤娌℃湁鎺掑簭鐨勫晢鍝佹帓搴忓瓧娈典负null
+ goods.forEach(item -> {
+ if (item.getGoodsSort() != null) {
+ item.setGoodsSort(item.getGoodsSort() + 1);
+ goodsIds.add(item.getId());
+ }
+ });
+ goodsService.updateBatchById(goods);
+ }
+ result = this.update(updateWrapper);
+ goodsIds.add(req.getGoodsId());
+ this.updateEsGoods(goodsIds);
return result;
}
@@ -541,6 +690,7 @@
this.baseMapper.addGoodsCommentNum(commentNum, goodsId);
}
+
/**
* 鏇存柊鍟嗗搧鐘舵��
*
--
Gitblit v1.8.0