Administrator
2025-07-22 48e926f7f767a6d65cab2b52a057d345c2ee7e0e
src/main/java/cc/mrbird/febs/mall/service/impl/ClothesTypeServiceImpl.java
@@ -3,6 +3,7 @@
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;
@@ -16,16 +17,14 @@
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.AdminClothesLocationRemarkVo;
import cc.mrbird.febs.mall.vo.clothes.AdminClothesOrderListVo;
import cc.mrbird.febs.mall.vo.clothes.AdminClothesPatternRemarkVo;
import cc.mrbird.febs.mall.vo.clothes.AdminClothesSocialListVo;
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;
@@ -44,6 +43,7 @@
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;
@@ -66,14 +66,17 @@
    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;
@@ -549,8 +552,8 @@
        clothesOrderMapper.update(
                null,
                Wrappers.lambdaUpdate(ClothesOrder.class)
                        .set(ClothesOrder::getStatus, ClothesOrderStatusEnum.CANCEL.getValue())
                        .set(ClothesOrder::getUpdatedTime, new Date())
                        .set(ClothesOrder::getStatus, value)
                        .set(ClothesOrder::getUpdatedTime, date)
                        .eq(ClothesOrder::getId, id)
        );
    }
@@ -752,6 +755,13 @@
    }
    @Override
    public IPage<AdminClothesSocialCommentVo> socialComment(ClothesSocialComment dto, QueryRequest request) {
        Page<AdminClothesSocialCommentVo> page = new Page<>(request.getPageNum(), request.getPageSize());
        IPage<AdminClothesSocialCommentVo> vos = clothesSocialCommentMapper.selectSocialCommentListInPage(page, dto);
        return vos;
    }
    @Override
    public FebsResponse socialState(Long id, Integer state) {
        ClothesSocial clothesSocial = clothesSocialMapper.selectById(id);
@@ -763,6 +773,39 @@
                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("操作成功");
    }
@@ -934,6 +977,8 @@
        entity.setContent(dto.getContent());
        entity.setIndexFile(dto.getIndexFile());
        entity.setOrderCnt(dto.getOrderCnt());
        entity.setLikeCnt(dto.getLikeCnt());
        entity.setCollectCnt(dto.getCollectCnt());
        clothesSocialMapper.updateById(entity);
@@ -1110,4 +1155,211 @@
        return new FebsResponse().success().message("操作成功");
    }
    @Override
    public FebsResponse printOrder(AdminClothesPrintOrderDto dto) {
        HashMap<String, Object> 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<ClothesOrderItem> 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<ClothesOrderItem> clothesOrderItems = clothesOrderItemMapper.selectList(
                Wrappers.lambdaQuery(ClothesOrderItem.class)
                        .eq(ClothesOrderItem::getOrderId, order.getId())
        );
        if(CollUtil.isNotEmpty(clothesOrderItems)){
            String nullStr = "暂无";
            List<AdminClothesPrintLocationVo> locations = new ArrayList<>();
            List<AdminClothesPrintPatternVo> 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;
    }
}