From 7804a7fa8eff2d3086eb32bb7a2fadb9fdcb36ab Mon Sep 17 00:00:00 2001 From: Administrator <15274802129@163.com> Date: Tue, 19 Aug 2025 11:19:25 +0800 Subject: [PATCH] feat(mall): 双击删除图片功能 --- src/main/java/cc/mrbird/febs/mall/controller/clothes/AdminClothesTypeController.java | 141 ++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 134 insertions(+), 7 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/mall/controller/clothes/AdminClothesTypeController.java b/src/main/java/cc/mrbird/febs/mall/controller/clothes/AdminClothesTypeController.java index 182908d..2b1bb00 100644 --- a/src/main/java/cc/mrbird/febs/mall/controller/clothes/AdminClothesTypeController.java +++ b/src/main/java/cc/mrbird/febs/mall/controller/clothes/AdminClothesTypeController.java @@ -4,8 +4,10 @@ import cc.mrbird.febs.common.controller.BaseController; import cc.mrbird.febs.common.entity.FebsResponse; import cc.mrbird.febs.common.entity.QueryRequest; +import cc.mrbird.febs.common.enumerates.ClothesOrderStatusEnum; import cc.mrbird.febs.common.enumerates.OrderDeliveryStateEnum; import cc.mrbird.febs.common.enumerates.OrderStatusEnum; +import cc.mrbird.febs.common.exception.FebsException; import cc.mrbird.febs.common.utils.AppContants; import cc.mrbird.febs.common.utils.RedisUtils; import cc.mrbird.febs.common.utils.excl.ExcelSheetPO; @@ -19,12 +21,21 @@ import cc.mrbird.febs.mall.dto.activity.AdminCategoryUpdateDto; import cc.mrbird.febs.mall.dto.clothes.*; import cc.mrbird.febs.mall.entity.*; +import cc.mrbird.febs.mall.mapper.ClothesOrderMapper; +import cc.mrbird.febs.mall.mapper.ClothesTypeMapper; import cc.mrbird.febs.mall.service.ClothesTypeService; +import cc.mrbird.febs.mall.vo.clothes.AdminClothesPrintLocationVo; +import cc.mrbird.febs.mall.vo.clothes.AdminClothesPrintMemberStatureVo; +import cc.mrbird.febs.mall.vo.clothes.AdminClothesPrintOrderVo; +import cc.mrbird.febs.mall.vo.clothes.AdminClothesPrintPatternVo; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; +import cn.hutool.json.JSON; +import cn.hutool.json.JSONUtil; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.validation.annotation.Validated; @@ -38,11 +49,10 @@ import java.io.File; import java.io.IOException; import java.io.OutputStream; +import java.math.BigDecimal; import java.net.URLEncoder; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Map; +import java.util.*; +import java.util.stream.Collectors; @Slf4j @Validated @@ -52,6 +62,8 @@ public class AdminClothesTypeController extends BaseController { private final ClothesTypeService clothesTypeService; + private final ClothesOrderMapper clothesOrderMapper; + private final ClothesTypeMapper clothesTypeMapper; private final RedisUtils redisUtils; /** @@ -343,6 +355,66 @@ return clothesTypeService.printOrder(dto); } + public static void main(String[] args) { + AdminClothesPrintOrderVo vo = new AdminClothesPrintOrderVo(); + vo.setOrderNo("20201201"); + vo.setTypeName("T恤"); + vo.setTypeFront("https://excoin.oss-cn-hangzhou.aliyuncs.com/clothes/1752740706568ab67808fb49940a7930b9e0ab0793238.png"); + vo.setTypeBack("https://excoin.oss-cn-hangzhou.aliyuncs.com/clothes/1752740734639227e7f5a0f3a4de097a2785305bff825.png"); + vo.setClothName("棉"); + vo.setClothCode("TX"); + vo.setSizeName("XL"); + vo.setSizeCode("XL"); + vo.setArtName("印花"); + vo.setArtCode("C"); + List<AdminClothesPrintPatternVo> patterns = new ArrayList<>(); + AdminClothesPrintPatternVo pattern = new AdminClothesPrintPatternVo(); + pattern.setPatternName("胸口"); + pattern.setPatternCode("front-one"); + pattern.setPatternText("胸口"); + pattern.setPatternImage("https://excoin.oss-cn-hangzhou.aliyuncs.com/clothes/17527407868773d1ad92c4c2e454396a6fc051c2219bc.png"); + patterns.add(pattern); + + AdminClothesPrintPatternVo pattern1 = new AdminClothesPrintPatternVo(); + pattern1.setPatternName("左下"); + pattern1.setPatternCode("front-two"); + pattern1.setPatternText("左下"); + pattern1.setPatternImage("https://excoin.oss-cn-hangzhou.aliyuncs.com/clothes/17527407868773d1ad92c4c2e454396a6fc051c2219bc.png"); + patterns.add(pattern1); + AdminClothesPrintPatternVo pattern2 = new AdminClothesPrintPatternVo(); + pattern2.setPatternName("袖口"); + pattern2.setPatternCode("front-three"); + pattern2.setPatternText("袖口"); + pattern2.setPatternImage("https://excoin.oss-cn-hangzhou.aliyuncs.com/clothes/17527407868773d1ad92c4c2e454396a6fc051c2219bc.png"); + patterns.add(pattern2); + vo.setPatterns( patterns); + + List<AdminClothesPrintLocationVo> locations = new ArrayList<>(); + AdminClothesPrintLocationVo location = new AdminClothesPrintLocationVo(); + location.setLocationName("后背"); + location.setLocationCode("back-one"); + location.setLocationText("后背"); + location.setLocationImage("https://excoin.oss-cn-hangzhou.aliyuncs.com/clothes/17527407868773d1ad92c4c2e454396a6fc051c2219bc.png"); + locations.add(location); + vo.setLocations(locations); + + AdminClothesPrintMemberStatureVo adminClothesPrintMemberStatureVo = new AdminClothesPrintMemberStatureVo(); + adminClothesPrintMemberStatureVo.setName("会员身高"); + adminClothesPrintMemberStatureVo.setHeightLine(new BigDecimal("170")); + adminClothesPrintMemberStatureVo.setBustLine(new BigDecimal("90")); + adminClothesPrintMemberStatureVo.setWaistLine(new BigDecimal("80")); + adminClothesPrintMemberStatureVo.setWideLine(new BigDecimal("100")); + adminClothesPrintMemberStatureVo.setHipLine(new BigDecimal("100")); + vo.setMemberStature(adminClothesPrintMemberStatureVo); + + + //将vo转换成json字符串 + JSON parse = JSONUtil.parse(vo); + System.out.println(parse.toString()); + + + } + /** * 订单列表-修改物流编号 */ @@ -376,9 +448,13 @@ return new FebsResponse().success(); } - @GetMapping("exportOrderList/{ids}") + @GetMapping("exportOrderList") @ControllerEndpoint(operation = "订单列表", exceptionMessage = "导出失败") - public FebsResponse exportOrderList(@NotBlank(message = "{required}") @PathVariable String ids, HttpServletResponse response) throws IOException { + public FebsResponse exportOrderList(ClothesOrder clothesOrder, HttpServletResponse response) throws IOException { + if(ObjectUtil.isNull(clothesOrder.getIds())){ + throw new FebsException("请选择要导出的订单"); + } + String ids = clothesOrder.getIds(); List<String> List = StrUtil.splitTrim(ids, ","); if(CollUtil.isNotEmpty( List)){ ArrayList<Long> orderIds = new ArrayList<>(); @@ -388,7 +464,58 @@ } if(CollUtil.isNotEmpty(orderIds)){ - clothesTypeService.exportOrderList(orderIds,response); + List<ExcelSheetPO> res = new ArrayList<>(); + + ExcelSheetPO orderSheet = new ExcelSheetPO(); + String title = "订单列表"; + orderSheet.setSheetName(title); + orderSheet.setTitle(title); + String[] header = {"订单ID", "订单编号", "收货姓名", "收货电话", "收货地址", "商品详情", "备注", "物流单号", "物流公司", "物流公司码"}; + orderSheet.setHeaders(header); + + QueryRequest request = new QueryRequest(); + request.setPageNum(1); + request.setPageSize(9999); + List<ClothesOrder> dataList = clothesOrderMapper.selectList( + Wrappers.lambdaQuery(ClothesOrder.class) + .in(ClothesOrder::getId, orderIds) + .eq(ClothesOrder::getDelFlag, 0) + .eq(ClothesOrder::getStatus, ClothesOrderStatusEnum.WAIT_SHIPPING.getValue())); + Map<Long, ClothesType> longClothesTypeHashMap = new HashMap<>(); + if(CollUtil.isNotEmpty(dataList)){ + Set<Long> typeIds = dataList.stream().map(ClothesOrder::getTypeId).collect(Collectors.toSet()); + List<ClothesType> clothesTypes = clothesTypeMapper.selectList( + Wrappers.lambdaQuery(ClothesType.class) + .in(ClothesType::getId, typeIds) + ); + if(CollUtil.isNotEmpty(clothesTypes)){ + //stream操作clothesTypes,返回一个HashMap<Long, ClothesType>, key为clothesType.id, value为clothesType + longClothesTypeHashMap = clothesTypes.stream().collect(Collectors.toMap(ClothesType::getId, clothesType -> clothesType)); + } + } + + List<List<Object>> list = new ArrayList<>(); + + if (dataList.size() > 0) { + for (ClothesOrder item : dataList) { + List<Object> temp = new ArrayList<>(); + temp.add(item.getId()); + temp.add(item.getOrderNo()); + temp.add(item.getName()); + temp.add(item.getPhone()); + temp.add(item.getAddress()); + temp.add(longClothesTypeHashMap.get(item.getTypeId()).getName()); + temp.add(item.getRemark()); + list.add(temp); + } + } + orderSheet.setDataList(list); + res.add(orderSheet); + response = ResponseHeadUtil.setExcelHead(response); + response.setHeader("Content-Disposition", + "attachment;filename=" + URLEncoder.encode(title + DateUtil.format(new Date(), "yyyyMMDDHHmmss") + ".xlsx".trim(), "UTF-8")); + OutputStream os = response.getOutputStream(); + ExcelUtil.createWorkbookAtOutStream(ExcelVersion.V2007, res, os, true); } } return null; -- Gitblit v1.9.1