| | |
| | | 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; |
| | |
| | | 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; |
| | |
| | | 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 |
| | |
| | | public class AdminClothesTypeController extends BaseController { |
| | | |
| | | private final ClothesTypeService clothesTypeService; |
| | | private final ClothesOrderMapper clothesOrderMapper; |
| | | private final ClothesTypeMapper clothesTypeMapper; |
| | | private final RedisUtils redisUtils; |
| | | |
| | | /** |
| | |
| | | /** |
| | | * 订单列表-修改物流编号 |
| | | */ |
| | | @GetMapping("printOrder/{id}") |
| | | @ControllerEndpoint(operation = "订单列表-修改物流编号", exceptionMessage = "操作失败") |
| | | public FebsResponse printOrder(@NotNull(message = "{required}") @PathVariable Long id) { |
| | | AdminClothesPrintOrderDto dto = new AdminClothesPrintOrderDto(); |
| | | dto.setId(id); |
| | | 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()); |
| | | |
| | | |
| | | } |
| | | |
| | | /** |
| | | * 订单列表-修改物流编号 |
| | | */ |
| | | @PostMapping("deliverGoodsUpdate") |
| | | @ControllerEndpoint(operation = "订单列表-修改物流编号", exceptionMessage = "操作失败") |
| | | public FebsResponse deliverGoodsUpdate(@Valid AdminClothesDeliverGoodsDto dto) { |
| | |
| | | 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<>(); |
| | |
| | | } |
| | | 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; |