package cc.mrbird.febs.mall.service.impl; import cc.mrbird.febs.common.entity.FebsResponse; import cc.mrbird.febs.common.entity.QueryRequest; import cc.mrbird.febs.common.enumerates.*; import cc.mrbird.febs.common.exception.FebsException; import cc.mrbird.febs.common.properties.XcxProperties; import cc.mrbird.febs.common.utils.SpringContextHolder; import cc.mrbird.febs.common.utils.excl.ExcelSheetPO; import cc.mrbird.febs.common.utils.excl.ExcelUtil; import cc.mrbird.febs.common.utils.excl.ExcelVersion; import cc.mrbird.febs.common.utils.excl.ResponseHeadUtil; import cc.mrbird.febs.mall.dto.clothes.*; import cc.mrbird.febs.mall.entity.*; import cc.mrbird.febs.mall.mapper.*; import cc.mrbird.febs.mall.service.ClothesTypeService; import cc.mrbird.febs.mall.service.IApiMallMemberWalletService; import cc.mrbird.febs.mall.service.IMallMoneyFlowService; import cc.mrbird.febs.mall.vo.AdminMallOrderInfoVo; import cc.mrbird.febs.mall.vo.clothes.*; import cc.mrbird.febs.pay.util.WeixinServiceUtil; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; 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.JSONObject; import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.OutputStream; import java.io.UnsupportedEncodingException; import java.math.BigDecimal; import java.math.RoundingMode; import java.net.URLEncoder; import java.util.*; import java.util.stream.Collectors; @Slf4j @Service @RequiredArgsConstructor @Transactional public class ClothesTypeServiceImpl extends ServiceImpl implements ClothesTypeService { private final ClothesTypeMapper clothesTypeMapper; private final ClothesSizeMapper clothesSizeMapper ; private final ClothesPatternMapper clothesPatternMapper; private final ClothesLocationMapper clothesLocationMapper; private final ClothesClothMapper clothesClothMapper; private final ClothesArtMapper clothesArtMapper; private final ClothesTypeArtMapper clothesTypeArtMapper; private final ClothesTypeSizeMapper clothesTypeSizeMapper; private final ClothesTypeClothMapper clothesTypeClothMapper; private final ClothesTypePatternMapper clothesTypePatternMapper; private final ClothesTypeLocationMapper clothesTypeLocationMapper; private final ClothesOrderMapper clothesOrderMapper; private final ClothesOrderItemMapper clothesOrderItemMapper; private final MallExpressInfoMapper mallExpressInfoMapper; private final ClothesSocialMapper clothesSocialMapper; private final ClothesSocialFileMapper clothesSocialFileMapper; private final ClothesSocialMuseMapper clothesSocialMuseMapper; private final ClothesSocialCategoryMapper clothesSocialCategoryMapper; private final ClothesMemberStatureMapper clothesMemberStatureMapper; private final ClothesPatternRemarkMapper clothesPatternRemarkMapper; private final ClothesLocationRemarkMapper clothesLocationRemarkMapper; private final ClothesSocialCommentMapper clothesSocialCommentMapper; private final IApiMallMemberWalletService memberWalletService; private final IMallMoneyFlowService mallMoneyFlowService; private final XcxProperties xcxProperties = SpringContextHolder.getBean(XcxProperties.class); @Autowired private WeixinServiceUtil weixinServiceUtil; @Override public IPage adminTypeList(ClothesType dto, QueryRequest request) { Page page = new Page<>(request.getPageNum(), request.getPageSize()); LambdaQueryWrapper clothesTypeLambdaQueryWrapper = Wrappers.lambdaQuery(ClothesType.class); Page clothesTypePage = clothesTypeMapper.selectPage(page, clothesTypeLambdaQueryWrapper); return clothesTypePage; } @Override public FebsResponse typeAdd(ClothesType dto) { ClothesType clothesType = new ClothesType(); clothesType.setName(dto.getName()); clothesType.setOrderNum(dto.getOrderNum()); clothesType.setImage(dto.getImage()); clothesType.setImageFront(dto.getImageFront()); clothesType.setImageBack(dto.getImageBack()); clothesType.setContent(dto.getContent()); clothesTypeMapper.insert(clothesType); return new FebsResponse().success().message("操作成功"); } @Override public FebsResponse typeUpdate(ClothesType dto) { Long id = dto.getId(); ClothesType clothesType = clothesTypeMapper.selectById(id); if (ObjectUtil.isNotNull(clothesType)) { clothesTypeMapper.update(null, Wrappers.lambdaUpdate(ClothesType.class) .eq(ClothesType::getId, id) .set(ClothesType::getName, dto.getName()) .set(ClothesType::getOrderNum, dto.getOrderNum()) .set(ClothesType::getImage, dto.getImage()) .set(ClothesType::getImageFront, dto.getImageFront()) .set(ClothesType::getImageBack, dto.getImageBack()) .set(ClothesType::getContent, dto.getContent()) ); } return new FebsResponse().success().message("操作成功"); } @Override public FebsResponse changeState(Long id, Integer type, Integer state) { ClothesType clothesType = clothesTypeMapper.selectById(id); if(ObjectUtil.isNotEmpty(clothesType)){ switch (type) { case 1: clothesType.setState( state); break; case 2: clothesType.setClothState(state); break; case 3: clothesType.setArtState(state); break; case 4: clothesType.setPatternState(state); break; case 5: clothesType.setLocationState(state); break; case 6: clothesType.setSizeState(state); break; default: break; } clothesTypeMapper.updateById(clothesType); } return new FebsResponse().success().message("操作成功"); } @Override public IPage adminSizeList(ClothesSize dto, QueryRequest request) { Page page = new Page<>(request.getPageNum(), request.getPageSize()); LambdaQueryWrapper clothesSizeLambdaQueryWrapper = Wrappers.lambdaQuery(ClothesSize.class); Page clothesSizePage = clothesSizeMapper.selectPage(page, clothesSizeLambdaQueryWrapper); return clothesSizePage; } @Override public FebsResponse sizeAdd(ClothesSize dto) { ClothesSize clothesSize = new ClothesSize(); clothesSize.setName(dto.getName()); clothesSize.setCode(dto.getCode()); clothesSize.setOrderNum(dto.getOrderNum()); clothesSize.setPrice(dto.getPrice()); clothesSize.setType(dto.getType()); clothesSize.setImage(dto.getImage()); clothesSize.setContent(dto.getContent()); clothesSizeMapper.insert(clothesSize); return new FebsResponse().success().message("操作成功"); } @Override public FebsResponse sizeUpdate(ClothesSize dto) { Long id = dto.getId(); ClothesSize clothesSize = clothesSizeMapper.selectById(id); if (ObjectUtil.isNotNull(clothesSize)) { clothesSizeMapper.update(null, Wrappers.lambdaUpdate(ClothesSize.class) .eq(ClothesSize::getId, id) .set(ClothesSize::getName, dto.getName()) .set(ClothesSize::getCode, dto.getCode()) .set(ClothesSize::getOrderNum, dto.getOrderNum()) .set(ClothesSize::getPrice, dto.getPrice()) .set(ClothesSize::getType, dto.getType()) .set(ClothesSize::getImage, dto.getImage()) .set(ClothesSize::getContent, dto.getContent()) ); } return new FebsResponse().success().message("操作成功"); } @Override public IPage adminPatternList(ClothesPattern dto, QueryRequest request) { Page page = new Page<>(request.getPageNum(), request.getPageSize()); LambdaQueryWrapper clothesPatternLambdaQueryWrapper = Wrappers.lambdaQuery(ClothesPattern.class); Page clothesPatternPage = clothesPatternMapper.selectPage(page, clothesPatternLambdaQueryWrapper); return clothesPatternPage; } @Override public FebsResponse patternAdd(ClothesPattern dto) { ClothesPattern clothesPattern = new ClothesPattern(); clothesPattern.setName(dto.getName()); clothesPattern.setCode(dto.getCode()); // clothesPattern.setType(dto.getType()); clothesPattern.setPrice(dto.getPrice()); clothesPattern.setOrderNum(dto.getOrderNum()); clothesPattern.setImage(dto.getImage()); clothesPattern.setContent(dto.getContent()); clothesPatternMapper.insert(clothesPattern); return new FebsResponse().success().message("操作成功"); } @Override public FebsResponse patternUpdate(ClothesPattern dto) { Long id = dto.getId(); ClothesPattern clothesPattern = clothesPatternMapper.selectById(id); if (ObjectUtil.isNotNull(clothesPattern)) { clothesPatternMapper.update(null, Wrappers.lambdaUpdate(ClothesPattern.class) .eq(ClothesPattern::getId, id) .set(ClothesPattern::getName, dto.getName()) .set(ClothesPattern::getCode, dto.getCode()) .set(ClothesPattern::getImage, dto.getImage()) .set(ClothesPattern::getContent, dto.getContent()) .set(ClothesPattern::getOrderNum, dto.getOrderNum()) .set(ClothesPattern::getPrice, dto.getPrice()) ); } return new FebsResponse().success().message("操作成功"); } @Override public IPage adminLocationList(ClothesLocation dto, QueryRequest request) { Page page = new Page<>(request.getPageNum(), request.getPageSize()); LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(ClothesLocation.class); Page pages = clothesLocationMapper.selectPage(page, queryWrapper); return pages; } @Override public FebsResponse locationAdd(ClothesLocation dto) { ClothesLocation clothesLocation = new ClothesLocation(); clothesLocation.setName(dto.getName()); clothesLocation.setCode(dto.getCode()); clothesLocation.setImage(dto.getImage()); clothesLocation.setContent(dto.getContent()); clothesLocation.setPrice(dto.getPrice()); clothesLocation.setOrderNum(dto.getOrderNum()); clothesLocationMapper.insert(clothesLocation); return new FebsResponse().success().message("操作成功"); } @Override public FebsResponse locationUpdate(ClothesLocation dto) { Long id = dto.getId(); ClothesLocation clothesLocation = clothesLocationMapper.selectById(id); if (ObjectUtil.isNotNull(clothesLocation)) { clothesLocationMapper.update(null, Wrappers.lambdaUpdate(ClothesLocation.class) .eq(ClothesLocation::getId, id) .set(ClothesLocation::getName, dto.getName()) .set(ClothesLocation::getCode, dto.getCode()) .set(ClothesLocation::getOrderNum, dto.getOrderNum()) .set(ClothesLocation::getPrice, dto.getPrice()) .set(ClothesLocation::getImage, dto.getImage()) .set(ClothesLocation::getContent, dto.getContent()) ); } return new FebsResponse().success().message("操作成功"); } @Override public IPage adminClothList(ClothesCloth dto, QueryRequest request) { Page page = new Page<>(request.getPageNum(), request.getPageSize()); LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(ClothesCloth.class); Page pages = clothesClothMapper.selectPage(page, queryWrapper); return pages; } @Override public FebsResponse clothAdd(ClothesCloth dto) { ClothesCloth clothesCloth = new ClothesCloth(); clothesCloth.setName(dto.getName()); clothesCloth.setCode(dto.getCode()); clothesCloth.setImage(dto.getImage()); clothesCloth.setContent(dto.getContent()); clothesCloth.setPrice(dto.getPrice()); clothesCloth.setOrderNum(dto.getOrderNum()); clothesClothMapper.insert(clothesCloth); return new FebsResponse().success().message("操作成功"); } @Override public FebsResponse clothUpdate(ClothesCloth dto) { Long id = dto.getId(); ClothesCloth clothesCloth = clothesClothMapper.selectById(id); if (ObjectUtil.isNotNull(clothesCloth)) { clothesClothMapper.update(null, Wrappers.lambdaUpdate(ClothesCloth.class) .eq(ClothesCloth::getId, id) .set(ClothesCloth::getName, dto.getName()) .set(ClothesCloth::getCode, dto.getCode()) .set(ClothesCloth::getOrderNum, dto.getOrderNum()) .set(ClothesCloth::getPrice, dto.getPrice()) .set(ClothesCloth::getImage, dto.getImage()) .set(ClothesCloth::getContent, dto.getContent()) ); } return new FebsResponse().success().message("操作成功"); } @Override public IPage adminArtList(ClothesArt dto, QueryRequest request) { Page page = new Page<>(request.getPageNum(), request.getPageSize()); LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(ClothesArt.class); Page pages = clothesArtMapper.selectPage(page, queryWrapper); return pages; } @Override public FebsResponse artAdd(ClothesArt dto) { ClothesArt clothesArt = new ClothesArt(); clothesArt.setName(dto.getName()); clothesArt.setCode(dto.getCode()); clothesArt.setImage(dto.getImage()); clothesArt.setContent(dto.getContent()); clothesArt.setPrice(dto.getPrice()); clothesArt.setOrderNum(dto.getOrderNum()); clothesArtMapper.insert(clothesArt); return new FebsResponse().success().message("操作成功"); } @Override public FebsResponse artUpdate(ClothesArt dto) { Long id = dto.getId(); ClothesArt clothesArt = clothesArtMapper.selectById(id); if (ObjectUtil.isNotNull(clothesArt)) { clothesArtMapper.update(null, Wrappers.lambdaUpdate(ClothesArt.class) .eq(ClothesArt::getId, id) .set(ClothesArt::getName, dto.getName()) .set(ClothesArt::getCode, dto.getCode()) .set(ClothesArt::getOrderNum, dto.getOrderNum()) .set(ClothesArt::getPrice, dto.getPrice()) .set(ClothesArt::getImage, dto.getImage()) .set(ClothesArt::getContent, dto.getContent()) ); } return new FebsResponse().success().message("操作成功"); } @Override public FebsResponse artSet(AdminClothesTypeInfoDto dto) { Long typeId = dto.getTypeId(); List chooseIds = dto.getChooseIds(); ClothesType clothesType = clothesTypeMapper.selectById(typeId); if (ObjectUtil.isNotEmpty(clothesType)) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(ClothesTypeArt::getTypeId,typeId); clothesTypeArtMapper.delete(queryWrapper); if(CollUtil.isNotEmpty(chooseIds)){ for (Long chooseId : chooseIds){ ClothesTypeArt entity = new ClothesTypeArt(); entity.setTypeId(typeId); entity.setArtId(chooseId); clothesTypeArtMapper.insert(entity); } } } return new FebsResponse().success().message("操作成功"); } @Override public FebsResponse sizeSet(AdminClothesTypeInfoDto dto) { Long typeId = dto.getTypeId(); List chooseIds = dto.getChooseIds(); ClothesType clothesType = clothesTypeMapper.selectById(typeId); if (ObjectUtil.isNotEmpty(clothesType)) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(ClothesTypeSize::getTypeId,typeId); clothesTypeSizeMapper.delete(queryWrapper); if(CollUtil.isNotEmpty(chooseIds)){ for (Long chooseId : chooseIds){ ClothesTypeSize entity = new ClothesTypeSize(); entity.setTypeId(typeId); entity.setSizeId(chooseId); clothesTypeSizeMapper.insert(entity); } } } return new FebsResponse().success().message("操作成功"); } @Override public FebsResponse clothSet(AdminClothesTypeInfoDto dto) { Long typeId = dto.getTypeId(); List chooseIds = dto.getChooseIds(); ClothesType clothesType = clothesTypeMapper.selectById(typeId); if (ObjectUtil.isNotEmpty(clothesType)) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(ClothesTypeCloth::getTypeId,typeId); clothesTypeClothMapper.delete(queryWrapper); if(CollUtil.isNotEmpty(chooseIds)){ for (Long chooseId : chooseIds){ ClothesTypeCloth entity = new ClothesTypeCloth(); entity.setTypeId(typeId); entity.setClothId(chooseId); clothesTypeClothMapper.insert(entity); } } } return new FebsResponse().success().message("操作成功"); } @Override public FebsResponse patternSet(AdminClothesTypeInfoDto dto) { Long typeId = dto.getTypeId(); List chooseIds = dto.getChooseIds(); ClothesType clothesType = clothesTypeMapper.selectById(typeId); if (ObjectUtil.isNotEmpty(clothesType)) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(ClothesTypePattern::getTypeId,typeId); clothesTypePatternMapper.delete(queryWrapper); if(CollUtil.isNotEmpty(chooseIds)){ for (Long chooseId : chooseIds){ ClothesTypePattern entity = new ClothesTypePattern(); entity.setTypeId(typeId); entity.setPatternId(chooseId); clothesTypePatternMapper.insert(entity); } } } return new FebsResponse().success().message("操作成功"); } @Override public FebsResponse locationSet(AdminClothesTypeInfoDto dto) { Long typeId = dto.getTypeId(); List chooseIds = dto.getChooseIds(); ClothesType clothesType = clothesTypeMapper.selectById(typeId); if (ObjectUtil.isNotEmpty(clothesType)) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(ClothesTypeLocation::getTypeId,typeId); clothesTypeLocationMapper.delete(queryWrapper); if(CollUtil.isNotEmpty(chooseIds)){ for (Long chooseId : chooseIds){ ClothesTypeLocation entity = new ClothesTypeLocation(); entity.setTypeId(typeId); entity.setLocationId(chooseId); clothesTypeLocationMapper.insert(entity); } } } return new FebsResponse().success().message("操作成功"); } @Override public IPage getOrderListInPage(AdminClothesOrderListDto dto, QueryRequest request) { Page page = new Page<>(request.getPageNum(), request.getPageSize()); IPage vos = clothesOrderMapper.selectOrderListInPage(page, dto); return vos; } @Override public FebsResponse deliverGoods(AdminClothesDeliverGoodsDto dto) { ClothesOrder clothesOrder = clothesOrderMapper.selectById(dto.getId()); if(ObjectUtil.isNull(clothesOrder)){ return new FebsResponse().fail().message("订单不存在,刷新后重试"); } Integer status = clothesOrder.getStatus(); if(ClothesOrderStatusEnum.WAIT_SHIPPING.getValue() != status){ return new FebsResponse().fail().message("订单不是待发货状态"); } String expressNo = dto.getExpressNo(); if(StrUtil.isEmpty(expressNo)){ return new FebsResponse().fail().message("请输入物流单号"); } String expressCom = dto.getExpressCom(); if(StrUtil.isEmpty(expressCom)){ return new FebsResponse().fail().message("请输入物流公司"); } MallExpressInfo mallExpressInfo = new MallExpressInfo(); mallExpressInfo.setMemberId(clothesOrder.getMemberId()); mallExpressInfo.setOrderId(clothesOrder.getId()); mallExpressInfo.setOrderNo(clothesOrder.getOrderNo()); mallExpressInfo.setExpressNo(expressNo); mallExpressInfo.setExpressCom(expressCom); mallExpressInfoMapper.insert(mallExpressInfo); clothesOrderMapper.update( null, Wrappers.lambdaUpdate(ClothesOrder.class) .set(ClothesOrder::getStatus, ClothesOrderStatusEnum.WAIT_FINISH.getValue()) .set(ClothesOrder::getUpdatedTime, new Date()) .set(ClothesOrder::getDeliveryState, OrderDeliveryStateEnum.DELIVERY_FINISH.getValue()) .eq(ClothesOrder::getId, clothesOrder.getId()) ); return new FebsResponse().success().message("操作成功"); } @Override public FebsResponse deliverGoodsUpdate(AdminClothesDeliverGoodsDto dto) { ClothesOrder clothesOrder = clothesOrderMapper.selectById(dto.getId()); if(ObjectUtil.isNull(clothesOrder)){ return new FebsResponse().fail().message("订单不存在,刷新后重试"); } Integer status = clothesOrder.getStatus(); if(ClothesOrderStatusEnum.WAIT_FINISH.getValue() != status){ return new FebsResponse().fail().message("订单不是待发货状态"); } String expressNo = dto.getExpressNo(); if(StrUtil.isEmpty(expressNo)){ return new FebsResponse().fail().message("请输入物流单号"); } String expressCom = dto.getExpressCom(); if(StrUtil.isEmpty(expressCom)){ return new FebsResponse().fail().message("请输入物流公司"); } MallExpressInfo mallExpressInfo = mallExpressInfoMapper.selectOne( Wrappers.lambdaQuery(MallExpressInfo.class) .eq(MallExpressInfo::getOrderId, clothesOrder.getId()) .eq(MallExpressInfo::getOrderNo, clothesOrder.getOrderNo()) .last("limit 1") ); if(ObjectUtil.isNull(mallExpressInfo)){ return new FebsResponse().fail().message("请先发货"); } mallExpressInfoMapper.update( null, Wrappers.lambdaUpdate(MallExpressInfo.class) .set(MallExpressInfo::getExpressNo, expressNo) .set(MallExpressInfo::getExpressCom, expressCom) .set(MallExpressInfo::getUpdatedTime, new Date()) .eq(MallExpressInfo::getId, mallExpressInfo.getId()) ); return new FebsResponse().success().message("操作成功"); } private void clothesUpdateStatusAndUpdateTimeById(Long id, Date date, int value) { clothesOrderMapper.update( null, Wrappers.lambdaUpdate(ClothesOrder.class) .set(ClothesOrder::getStatus, value) .set(ClothesOrder::getUpdatedTime, date) .eq(ClothesOrder::getId, id) ); } private Boolean weChatRefundOrderEvent(int refundMoney, BigDecimal orderAmount, String orderNo, String refundNo) { Boolean flag; Boolean debug = xcxProperties.getDebug(); if (debug) { if(orderAmount.compareTo(BigDecimal.ZERO) > 0){ boolean b = weixinServiceUtil.comRefund(orderNo, refundNo, 1, 1, null); flag = b; }else{ flag = true; } } else { if(orderAmount.compareTo(BigDecimal.ZERO) > 0){ log.info("开始调用退款接口。。。退款编号为{}", refundNo); boolean b = weixinServiceUtil.comRefund(orderNo, refundNo, refundMoney, refundMoney, null); flag = b; }else{ flag = true; } } return flag; } @Override public FebsResponse refundOrder(AdminClothesRefundOrderDto dto) { ClothesOrder clothesOrder = clothesOrderMapper.selectById(dto.getId()); if(ObjectUtil.isNull(clothesOrder)){ return new FebsResponse().fail().message("订单不存在,刷新后重试"); } Integer status = clothesOrder.getStatus(); if(ClothesOrderStatusEnum.WAIT_SHIPPING.getValue() != status){ return new FebsResponse().fail().message("订单不是待发货状态"); } //退款订单编号 String orderNo = clothesOrder.getOrderNo(); //退款退款编号 String refundNo = clothesOrder.getOrderNo()+"_REFUND_"+clothesOrder.getId(); //退款订单金额 BigDecimal orderAmount = clothesOrder.getRealAmount(); //余额支付退款 if(ClothesOrderPayTypeEnum.BALANCE.getName().equals(clothesOrder.getPayMethod())){ log.info("余额支付退款"); if(orderAmount.compareTo(BigDecimal.ZERO) > 0){ //更新订单详情 clothesUpdateStatusAndUpdateTimeById(clothesOrder.getId(),new Date(),ClothesOrderStatusEnum.CANCEL.getValue()); memberWalletService.add(orderAmount, clothesOrder.getMemberId(), "balance"); mallMoneyFlowService.addMoneyFlow( clothesOrder.getMemberId(), orderAmount, ScoreFlowTypeEnum.REFUND.getValue(), clothesOrder.getOrderNo(), FlowTypeEnum.BALANCE.getValue(), StrUtil.format(ScoreFlowTypeEnum.REFUND.getDesc(),orderAmount), 2 ); } return new FebsResponse().success().message("退款成功"); }else if(ClothesOrderPayTypeEnum.WECHAT.getName().equals(clothesOrder.getPayMethod())){ int refundMoney = orderAmount.multiply(new BigDecimal(100)).intValue(); Boolean flag = weChatRefundOrderEvent(refundMoney, orderAmount, orderNo, refundNo); if(flag){ if(orderAmount.compareTo(BigDecimal.ZERO) > 0){ //更新订单详情 clothesUpdateStatusAndUpdateTimeById(clothesOrder.getId(),new Date(),ClothesOrderStatusEnum.CANCEL.getValue()); mallMoneyFlowService.addMoneyFlow( clothesOrder.getMemberId(), orderAmount, ScoreFlowTypeEnum.WECHAT_REFUND.getValue(), clothesOrder.getOrderNo(), FlowTypeEnum.BALANCE.getValue(), StrUtil.format(ScoreFlowTypeEnum.WECHAT_REFUND.getDesc(),orderAmount), 2 ); } }else{ return new FebsResponse().fail().message("退款失败,请联系客服人员"); } }else{ return new FebsResponse().fail().message("退款失败,请联系客服人员"); } return new FebsResponse().success().message("退款成功"); } @Override public void confirmOrder(long orderId) { ClothesOrder clothesOrder = clothesOrderMapper.selectById(orderId); if(ObjectUtil.isNotNull(clothesOrder) && ClothesOrderStatusEnum.WAIT_FINISH.getValue() == clothesOrder.getStatus()){ clothesUpdateStatusAndUpdateTimeById(clothesOrder.getId(),new Date(),ClothesOrderStatusEnum.FINISH.getValue()); } } @Override public void exportOrderList(List orderIds, HttpServletResponse response) throws IOException { List 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 dataList = clothesOrderMapper.selectList( Wrappers.lambdaQuery(ClothesOrder.class) .in(ClothesOrder::getId, orderIds) .eq(ClothesOrder::getDelFlag, 0) .eq(ClothesOrder::getStatus, ClothesOrderStatusEnum.WAIT_SHIPPING.getValue())); Map longClothesTypeHashMap = new HashMap<>(); if(CollUtil.isNotEmpty(dataList)){ Set typeIds = dataList.stream().map(ClothesOrder::getTypeId).collect(Collectors.toSet()); List clothesTypes = clothesTypeMapper.selectList( Wrappers.lambdaQuery(ClothesType.class) .in(ClothesType::getId, typeIds) ); if(CollUtil.isNotEmpty(clothesTypes)){ //stream操作clothesTypes,返回一个HashMap, key为clothesType.id, value为clothesType longClothesTypeHashMap = clothesTypes.stream().collect(Collectors.toMap(ClothesType::getId, clothesType -> clothesType)); } } List> list = new ArrayList<>(); if (dataList.size() > 0) { for (ClothesOrder item : dataList) { List 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); } @Override public void deliverGoodsImport(AdminClothesDeliverGoodsDto dto) { ClothesOrder clothesOrder = clothesOrderMapper.selectById(dto.getId()); if(ObjectUtil.isNull(clothesOrder)){ return; } Integer status = clothesOrder.getStatus(); if(ClothesOrderStatusEnum.WAIT_SHIPPING.getValue() != status){ return; } String expressNo = dto.getExpressNo(); if(StrUtil.isEmpty(expressNo)){ return; } String expressCom = dto.getExpressCom(); if(StrUtil.isEmpty(expressCom)){ return; } mallExpressInfoMapper.update( null, Wrappers.lambdaUpdate(MallExpressInfo.class) .set(MallExpressInfo::getExpressNo, expressNo) .set(MallExpressInfo::getExpressCom, expressCom) .eq(MallExpressInfo::getOrderId, clothesOrder.getId()) .eq(MallExpressInfo::getOrderNo, clothesOrder.getOrderNo()) ); clothesOrderMapper.update( null, Wrappers.lambdaUpdate(ClothesOrder.class) .set(ClothesOrder::getStatus, ClothesOrderStatusEnum.WAIT_FINISH.getValue()) .set(ClothesOrder::getUpdatedTime, new Date()) .set(ClothesOrder::getDeliveryState, OrderDeliveryStateEnum.DELIVERY_ING.getValue()) .eq(ClothesOrder::getId, clothesOrder.getId()) ); } @Override public IPage getSocialListInPage(AdminClothesSocialListDto dto, QueryRequest request) { Page page = new Page<>(request.getPageNum(), request.getPageSize()); IPage vos = clothesSocialMapper.selectSocialListInPage(page, dto); return vos; } @Override public IPage socialComment(ClothesSocialComment dto, QueryRequest request) { Page page = new Page<>(request.getPageNum(), request.getPageSize()); IPage vos = clothesSocialCommentMapper.selectSocialCommentListInPage(page, dto); return vos; } @Override public FebsResponse socialState(Long id, Integer state) { ClothesSocial clothesSocial = clothesSocialMapper.selectById(id); if(ObjectUtil.isNull(clothesSocial)){ throw new RuntimeException("内容不存在"); } clothesSocialMapper.update( null, Wrappers.lambdaUpdate(ClothesSocial.class) .set(ClothesSocial::getState, state) .eq(ClothesSocial::getId, id) ); return new FebsResponse().success().message("操作成功"); } @Override public FebsResponse commentStateSwitch(Long id, Integer state) { ClothesSocial clothesSocial = clothesSocialMapper.selectById(id); if(ObjectUtil.isNull(clothesSocial)){ throw new RuntimeException("内容不存在"); } clothesSocialMapper.update( null, Wrappers.lambdaUpdate(ClothesSocial.class) .set(ClothesSocial::getCommentState, state) .eq(ClothesSocial::getId, id) ); return new FebsResponse().success().message("操作成功"); } @Override public FebsResponse showStateSwitch(Long id, Integer state) { ClothesSocialComment clothesSocialComment = clothesSocialCommentMapper.selectById(id); if(ObjectUtil.isNull(clothesSocialComment)){ throw new RuntimeException("评论不存在"); } clothesSocialCommentMapper.update( null, Wrappers.lambdaUpdate(ClothesSocialComment.class) .set(ClothesSocialComment::getShowState, state) .eq(ClothesSocialComment::getId, id) ); return new FebsResponse().success().message("操作成功"); } @Override public FebsResponse socialHotState(Long id, Integer state) { ClothesSocial clothesSocial = clothesSocialMapper.selectById(id); if(ObjectUtil.isNull(clothesSocial)){ throw new RuntimeException("内容不存在"); } clothesSocialMapper.update( null, Wrappers.lambdaUpdate(ClothesSocial.class) .set(ClothesSocial::getHotState, state) .eq(ClothesSocial::getId, id) ); return new FebsResponse().success().message("操作成功"); } @Override public FebsResponse socialDelete(Long id) { ClothesSocial clothesSocial = clothesSocialMapper.selectById(id); if(ObjectUtil.isNull(clothesSocial)){ throw new RuntimeException("内容不存在"); } clothesSocialMapper.update( null, Wrappers.lambdaUpdate(ClothesSocial.class) .set(ClothesSocial::getDelFlag, ClothesEnum.UP.getCode()) .eq(ClothesSocial::getId, id) ); return new FebsResponse().success().message("操作成功"); } @Override public List allGroup() { List list = clothesSocialCategoryMapper.selectList( Wrappers.lambdaQuery(ClothesSocialCategory.class) .eq(ClothesSocialCategory::getState, ClothesEnum.UP.getCode()) .eq(ClothesSocialCategory::getDeleteFlag, ClothesEnum.DOWN.getCode()) .orderByDesc(ClothesSocialCategory::getOrderCnt) ); if(CollUtil.isNotEmpty(list)){ return list; } return Collections.emptyList(); } @Override public IPage getGroupList(AdminClothesSocialCategoryDto dto, QueryRequest request) { Page page = new Page<>(request.getPageNum(), request.getPageSize()); LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); if(StrUtil.isNotEmpty(dto.getName())){ queryWrapper.like(ClothesSocialCategory::getName,dto.getName()); } if(ObjectUtil.isNotEmpty(dto.getStatus())){ queryWrapper.eq(ClothesSocialCategory::getState,dto.getStatus()); } if(ObjectUtil.isNotEmpty(dto.getHotState())){ queryWrapper.eq(ClothesSocialCategory::getHotState,dto.getHotState()); } queryWrapper.eq(ClothesSocialCategory::getDeleteFlag, ClothesEnum.DOWN.getCode()); queryWrapper.orderByAsc(ClothesSocialCategory::getOrderCnt); Page pages = clothesSocialCategoryMapper.selectPage(page, queryWrapper); return pages; } @Override public FebsResponse addGroup(AdminClothesCategoryAddDto dto) { ClothesSocialCategory entity = new ClothesSocialCategory(); entity.setName(dto.getName()); entity.setOrderCnt(dto.getOrderCnt()); clothesSocialCategoryMapper.insert(entity); return new FebsResponse().success().message("操作成功"); } @Override public FebsResponse groupDelete(Long id) { ClothesSocialCategory vo = clothesSocialCategoryMapper.selectById(id); vo.setDeleteFlag(ClothesEnum.UP.getCode()); clothesSocialCategoryMapper.updateById(vo); return new FebsResponse().success().message("操作成功"); } @Override public FebsResponse groupUpdate(AdminClothesCategoryUpdateDto dto) { ClothesSocialCategory vo = clothesSocialCategoryMapper.selectById(dto.getId()); vo.setName(dto.getName()); vo.setOrderCnt(dto.getOrderCnt()); clothesSocialCategoryMapper.updateById(vo); return new FebsResponse().success().message("操作成功"); } @Override public FebsResponse groupState(Long id, Integer type) { ClothesSocialCategory vo = clothesSocialCategoryMapper.selectById(id); if(ClothesEnum.UP.getCode() == vo.getDeleteFlag()){ throw new RuntimeException("该分组已删除,无法操作"); } if(type == 1){ vo.setHotState(vo.getHotState() == ClothesEnum.UP.getCode() ? ClothesEnum.DOWN.getCode() : ClothesEnum.UP.getCode()); } if(type == 2){ vo.setState(vo.getState() == ClothesEnum.UP.getCode() ? ClothesEnum.DOWN.getCode() : ClothesEnum.UP.getCode()); } clothesSocialCategoryMapper.updateById(vo); return new FebsResponse().success().message("操作成功"); } @Override public FebsResponse socialAdd(ClothesSocial dto) { if(ObjectUtil.isEmpty(dto.getMemberId())){ throw new RuntimeException("请选择发布人"); } if(ObjectUtil.isEmpty(dto.getCategoryId())){ throw new RuntimeException("请选择分类"); } ClothesSocial entity = new ClothesSocial(); BeanUtil.copyProperties(dto, entity); clothesSocialMapper.insert(entity); String thumbs = dto.getThumbs(); if (StrUtil.isNotEmpty(thumbs)) { List list = StrUtil.splitTrim(thumbs, ","); if (CollUtil.isNotEmpty(list)) { int i = 1; for (String img : list) { ClothesSocialFile clothesSocialFile = new ClothesSocialFile(); clothesSocialFile.setSocialId(entity.getId()); clothesSocialFile.setFileUrl(img); clothesSocialFile.setSeq(i); clothesSocialFileMapper.insert(clothesSocialFile); i++; } } } if(ObjectUtil.isNotNull(dto.getTypeId())){ ClothesSocialMuse clothesSocialMuse = new ClothesSocialMuse(); clothesSocialMuse.setSocialId(entity.getId()); clothesSocialMuse.setTypeId(dto.getTypeId()); clothesSocialMuseMapper.insert(clothesSocialMuse); } return new FebsResponse().success().message("操作成功"); } @Override public FebsResponse socialUpdate(ClothesSocial dto) { ClothesSocial entity = clothesSocialMapper.selectById(dto.getId()); if(ObjectUtil.isNull(entity)){ throw new RuntimeException("内容不存在,无法操作"); } if(ObjectUtil.isNull(dto.getTypeId())){ throw new RuntimeException("请选择设计类型"); } entity.setCategoryId(dto.getCategoryId()); entity.setMemberId(dto.getMemberId()); entity.setName(dto.getName()); entity.setContent(dto.getContent()); entity.setIndexFile(dto.getIndexFile()); entity.setOrderCnt(dto.getOrderCnt()); clothesSocialMapper.updateById(entity); clothesSocialFileMapper.delete( Wrappers.lambdaQuery(ClothesSocialFile.class) .eq(ClothesSocialFile::getSocialId, entity.getId()) ); String thumbs = dto.getThumbs(); if (StrUtil.isNotEmpty(thumbs)) { List list = StrUtil.splitTrim(thumbs, ","); if (CollUtil.isNotEmpty(list)) { int i = 1; for (String img : list) { ClothesSocialFile clothesSocialFile = new ClothesSocialFile(); clothesSocialFile.setSocialId(entity.getId()); clothesSocialFile.setFileUrl(img); clothesSocialFile.setSeq(i); clothesSocialFileMapper.insert(clothesSocialFile); i++; } } } ClothesSocialMuse clothesSocialMuse = new ClothesSocialMuse(); clothesSocialMuse.setSocialId(entity.getId()); clothesSocialMuse.setTypeId(dto.getTypeId()); clothesSocialMuseMapper.insert(clothesSocialMuse); return new FebsResponse().success().message("操作成功"); } @Override public List allType() { List list = clothesTypeMapper.selectList( Wrappers.lambdaQuery(ClothesType.class) .eq(ClothesType::getState, ClothesEnum.UP.getCode()) ); if(CollUtil.isNotEmpty(list)){ return list; } return Collections.emptyList(); } @Override public List allCloth(Long typeId) { List entities = clothesTypeClothMapper.selectList( Wrappers.lambdaQuery(ClothesTypeCloth.class) .eq(ClothesTypeCloth::getTypeId, typeId) ); if(CollUtil.isNotEmpty(entities)){ Set ids = entities.stream().map(ClothesTypeCloth::getClothId).collect(Collectors.toSet()); return clothesClothMapper.selectBatchIds(ids); } return Collections.emptyList(); } @Override public List allPattern(Long typeId) { List entities = clothesTypePatternMapper.selectList( Wrappers.lambdaQuery(ClothesTypePattern.class) .eq(ClothesTypePattern::getTypeId, typeId) ); if(CollUtil.isNotEmpty(entities)){ Set ids = entities.stream().map(ClothesTypePattern::getPatternId).collect(Collectors.toSet()); return clothesPatternMapper.selectBatchIds(ids); } return Collections.emptyList(); } @Override public List allLocation(Long typeId) { List entities = clothesTypeLocationMapper.selectList( Wrappers.lambdaQuery(ClothesTypeLocation.class) .eq(ClothesTypeLocation::getTypeId, typeId) ); if(CollUtil.isNotEmpty(entities)){ Set ids = entities.stream().map(ClothesTypeLocation::getLocationId).collect(Collectors.toSet()); return clothesLocationMapper.selectBatchIds(ids); } return Collections.emptyList(); } @Override public List allSize(Long typeId) { List entities = clothesTypeSizeMapper.selectList( Wrappers.lambdaQuery(ClothesTypeSize.class) .eq(ClothesTypeSize::getTypeId, typeId) ); if(CollUtil.isNotEmpty(entities)){ Set ids = entities.stream().map(ClothesTypeSize::getSizeId).collect(Collectors.toSet()); return clothesSizeMapper.selectBatchIds(ids); } return Collections.emptyList(); } @Override public List allArt(Long typeId) { List entities = clothesTypeArtMapper.selectList( Wrappers.lambdaQuery(ClothesTypeArt.class) .eq(ClothesTypeArt::getTypeId, typeId) ); if(CollUtil.isNotEmpty(entities)){ Set ids = entities.stream().map(ClothesTypeArt::getArtId).collect(Collectors.toSet()); return clothesArtMapper.selectBatchIds(ids); } return Collections.emptyList(); } @Override public FebsResponse socialMuseUpdate(ClothesSocialMuse dto) { Long id = dto.getId(); ClothesSocialMuse entity = clothesSocialMuseMapper.selectById(id); if(ObjectUtil.isNotNull(entity)){ entity.setClothId(dto.getClothId()); entity.setSizeId(dto.getSizeId()); entity.setArtId(dto.getArtId()); clothesSocialMuseMapper.updateById(entity); } Long socialId = entity.getSocialId(); ClothesSocial clothesSocial = clothesSocialMapper.selectById(socialId); List patternData = dto.getPatternData(); if(CollUtil.isNotEmpty(patternData)){ Set patternIds = patternData.stream().map(AdminClothesPatternRemarkVo::getPatternId).collect(Collectors.toSet()); clothesPatternRemarkMapper.delete( Wrappers.lambdaQuery(ClothesPatternRemark.class) .eq(ClothesPatternRemark::getType, SocialPatternLocationTypeEnum.MUSE.getValue()) .eq(ClothesPatternRemark::getSourceId, id) .in(ClothesPatternRemark::getPatternId, patternIds) ); for (AdminClothesPatternRemarkVo pattern : patternData) { ClothesPatternRemark clothesPatternRemark = new ClothesPatternRemark(); clothesPatternRemark.setMemberId(clothesSocial.getMemberId()); clothesPatternRemark.setType(SocialPatternLocationTypeEnum.MUSE.getValue()); clothesPatternRemark.setSourceId(entity.getId()); clothesPatternRemark.setPatternId(pattern.getPatternId()); Map remarkMap = new HashMap<>(); remarkMap.put("file",pattern.getSkuPatternImage()); remarkMap.put("text",pattern.getPatternText()); clothesPatternRemark.setRemark(JSONUtil.parse(remarkMap).toString()); clothesPatternRemarkMapper.insert(clothesPatternRemark); } } List locationData = dto.getLocationData(); if(CollUtil.isNotEmpty(locationData)){ Set locationIds = locationData.stream().map(AdminClothesLocationRemarkVo::getLocationId).collect(Collectors.toSet()); clothesLocationRemarkMapper.delete( Wrappers.lambdaQuery(ClothesLocationRemark.class) .eq(ClothesLocationRemark::getType, SocialPatternLocationTypeEnum.MUSE.getValue()) .eq(ClothesLocationRemark::getSourceId, id) .in(ClothesLocationRemark::getLocationId, locationIds) ); for (AdminClothesLocationRemarkVo location : locationData) { ClothesLocationRemark clothesLocationRemark = new ClothesLocationRemark(); clothesLocationRemark.setMemberId(clothesSocial.getMemberId()); clothesLocationRemark.setType(SocialPatternLocationTypeEnum.MUSE.getValue()); clothesLocationRemark.setSourceId(entity.getId()); clothesLocationRemark.setLocationId(location.getLocationId()); Map remarkMap = new HashMap<>(); remarkMap.put("file",location.getSkuLocationImage()); remarkMap.put("text",location.getLocationText()); clothesLocationRemark.setRemark(JSONUtil.parse(remarkMap).toString()); clothesLocationRemarkMapper.insert(clothesLocationRemark); } } return new FebsResponse().success().message("操作成功"); } @Override public FebsResponse printOrder(AdminClothesPrintOrderDto dto) { HashMap objectObjectHashMap = new HashMap<>(); ClothesOrder order = clothesOrderMapper.selectById(dto.getId()); if (ObjectUtil.isNotNull(order)){ objectObjectHashMap.put("orderNo", order.getOrderNo()); } ClothesType clothesType = clothesTypeMapper.selectById(order.getTypeId()); if (ObjectUtil.isNotNull(clothesType)) { objectObjectHashMap.put("typeName", clothesType.getName()); objectObjectHashMap.put("typeFront", clothesType.getImageFront()); objectObjectHashMap.put("typeBack", clothesType.getImageBack()); } List clothesOrderItems = clothesOrderItemMapper.selectList( Wrappers.lambdaQuery(ClothesOrderItem.class) .eq(ClothesOrderItem::getOrderId, order.getId()) ); if(CollUtil.isNotEmpty(clothesOrderItems)){ for (ClothesOrderItem item : clothesOrderItems){ if (ClothesOrderItemEnum.CLOTH.getCode() == item.getType()) { ClothesCloth cloth = clothesClothMapper.selectById(item.getItemId()); if (ObjectUtil.isNotNull(cloth)) { objectObjectHashMap.put("clothName", cloth.getName()); objectObjectHashMap.put("clothCode", cloth.getCode()); } continue; } else if (ClothesOrderItemEnum.SIZE.getCode() == item.getType()) { ClothesSize size = clothesSizeMapper.selectById(item.getItemId()); if (ObjectUtil.isNotNull(size)) { objectObjectHashMap.put("sizeName", size.getName()); objectObjectHashMap.put("sizeCode", size.getCode()); } continue; } else if (ClothesOrderItemEnum.LOCATION.getCode() == item.getType()) { ClothesLocation location = clothesLocationMapper.selectById(item.getItemId()); if (ObjectUtil.isNotNull(location)) { objectObjectHashMap.put("locationName", location.getName()); objectObjectHashMap.put("locationCode", location.getCode()); JSON parse = JSONUtil.parse(item.getRemark()); objectObjectHashMap.put("locationText", parse.getByPath("text", String.class)); objectObjectHashMap.put("locationImage", parse.getByPath("file", String.class)); }else{ objectObjectHashMap.put("locationName", ""); objectObjectHashMap.put("locationCode", ""); objectObjectHashMap.put("locationText", ""); objectObjectHashMap.put("locationImage", ""); } continue; } else if (ClothesOrderItemEnum.PATTERN.getCode() == item.getType()) { ClothesPattern pattern = clothesPatternMapper.selectById(item.getItemId()); if (ObjectUtil.isNotNull(pattern)) { objectObjectHashMap.put("patternName", pattern.getName()); objectObjectHashMap.put("patternCode", pattern.getCode()); JSON parse = JSONUtil.parse(item.getRemark()); objectObjectHashMap.put("patternText", parse.getByPath("text", String.class)); objectObjectHashMap.put("patternImage", parse.getByPath("file", String.class)); }else{ objectObjectHashMap.put("patternName", ""); objectObjectHashMap.put("patternCode", ""); objectObjectHashMap.put("patternText", ""); objectObjectHashMap.put("patternImage", ""); } continue; } else if (ClothesOrderItemEnum.ART.getCode() == item.getType()) { ClothesArt art = clothesArtMapper.selectById(item.getItemId()); if (ObjectUtil.isNotNull(art)) { objectObjectHashMap.put("artName", art.getName()); objectObjectHashMap.put("artCode", art.getCode()); } continue; } else if (ClothesOrderItemEnum.CUSTOMIZE.getCode() == item.getType()) { ClothesMemberStature clothesMemberStature = clothesMemberStatureMapper.selectById(item.getItemId()); if (ObjectUtil.isNotNull(clothesMemberStature)) { objectObjectHashMap.put("statureName", clothesMemberStature.getName()); } continue; } else { continue; } } } return new FebsResponse().success().data(objectObjectHashMap); } @Override public AdminClothesPrintOrderVo printOrderEvent(AdminClothesPrintOrderDto dto) { AdminClothesPrintOrderVo vo = new AdminClothesPrintOrderVo(); ClothesOrder order = clothesOrderMapper.selectById(dto.getId()); if (ObjectUtil.isNotNull(order)){ vo.setOrderNo(order.getOrderNo()); } ClothesType clothesType = clothesTypeMapper.selectById(order.getTypeId()); if (ObjectUtil.isNotNull(clothesType)) { vo.setTypeName(clothesType.getName()); vo.setTypeFront(clothesType.getImageFront()); vo.setTypeBack(clothesType.getImageBack()); } List clothesOrderItems = clothesOrderItemMapper.selectList( Wrappers.lambdaQuery(ClothesOrderItem.class) .eq(ClothesOrderItem::getOrderId, order.getId()) ); if(CollUtil.isNotEmpty(clothesOrderItems)){ String nullStr = "暂无"; List locations = new ArrayList<>(); List patterns = new ArrayList<>(); for (ClothesOrderItem item : clothesOrderItems){ if (ClothesOrderItemEnum.CLOTH.getCode() == item.getType()) { ClothesCloth cloth = clothesClothMapper.selectById(item.getItemId()); if (ObjectUtil.isNotNull(cloth)) { vo.setClothCode(cloth.getCode()); vo.setClothName(cloth.getName()); }else{ vo.setClothCode(nullStr); vo.setClothName(nullStr); } continue; } else if (ClothesOrderItemEnum.SIZE.getCode() == item.getType()) { ClothesSize size = clothesSizeMapper.selectById(item.getItemId()); if (ObjectUtil.isNotNull(size)) { vo.setSizeName(size.getName()); vo.setSizeCode(size.getCode()); }else { vo.setSizeName(nullStr); vo.setSizeCode(nullStr); } continue; } else if (ClothesOrderItemEnum.LOCATION.getCode() == item.getType()) { AdminClothesPrintLocationVo locationVo = new AdminClothesPrintLocationVo(); ClothesLocation location = clothesLocationMapper.selectById(item.getItemId()); if (ObjectUtil.isNotNull(location)) { locationVo.setLocationName(location.getName()); locationVo.setLocationCode(location.getCode()); JSON parse = JSONUtil.parse(item.getRemark()); locationVo.setLocationText(parse.getByPath("text", String.class)); locationVo.setLocationImage(parse.getByPath("file", String.class)); }else{ locationVo.setLocationName(nullStr); locationVo.setLocationCode(nullStr); locationVo.setLocationText(nullStr); locationVo.setLocationImage(nullStr); } locations.add(locationVo); vo.setLocations( locations); continue; } else if (ClothesOrderItemEnum.PATTERN.getCode() == item.getType()) { AdminClothesPrintPatternVo patternVo = new AdminClothesPrintPatternVo(); ClothesPattern pattern = clothesPatternMapper.selectById(item.getItemId()); if (ObjectUtil.isNotNull(pattern)) { patternVo.setPatternName(pattern.getName()); patternVo.setPatternCode(pattern.getCode()); JSON parse = JSONUtil.parse(item.getRemark()); patternVo.setPatternText(parse.getByPath("text", String.class)); patternVo.setPatternImage(parse.getByPath("file", String.class)); }else{ patternVo.setPatternName(nullStr); patternVo.setPatternCode(nullStr); patternVo.setPatternText(nullStr); patternVo.setPatternImage(nullStr); } patterns.add(patternVo); vo.setPatterns( patterns); continue; } else if (ClothesOrderItemEnum.ART.getCode() == item.getType()) { ClothesArt art = clothesArtMapper.selectById(item.getItemId()); if (ObjectUtil.isNotNull(art)) { vo.setArtName(art.getName()); vo.setArtCode(art.getCode()); }else{ vo.setArtName(nullStr); vo.setArtCode(nullStr); } continue; } else if (ClothesOrderItemEnum.CUSTOMIZE.getCode() == item.getType()) { AdminClothesPrintMemberStatureVo memberStature = new AdminClothesPrintMemberStatureVo(); ClothesMemberStature clothesMemberStature = clothesMemberStatureMapper.selectById(item.getItemId()); if (ObjectUtil.isNotNull(clothesMemberStature)) { memberStature.setName(clothesMemberStature.getName()); memberStature.setHeightLine(clothesMemberStature.getHeightLine()); memberStature.setBustLine(clothesMemberStature.getBustLine()); memberStature.setWaistLine(clothesMemberStature.getWaistLine()); memberStature.setWideLine(clothesMemberStature.getWideLine()); memberStature.setHipLine(clothesMemberStature.getHipLine()); }else{ memberStature.setName(nullStr); memberStature.setHeightLine(BigDecimal.ZERO); memberStature.setBustLine(BigDecimal.ZERO); memberStature.setWaistLine(BigDecimal.ZERO); memberStature.setWideLine(BigDecimal.ZERO); memberStature.setHipLine(BigDecimal.ZERO); } vo.setMemberStature(memberStature); continue; } else { continue; } } } return vo; } }