Administrator
2025-07-14 17cea8fe652d1566e856e168d528a1af628e2140
src/main/java/cc/mrbird/febs/mall/controller/clothes/ViewClothesTypeController.java
@@ -2,15 +2,25 @@
import cc.mrbird.febs.common.controller.BaseController;
import cc.mrbird.febs.common.entity.FebsConstant;
import cc.mrbird.febs.common.enumerates.SocialPatternLocationTypeEnum;
import cc.mrbird.febs.common.utils.AppContants;
import cc.mrbird.febs.common.utils.FebsUtil;
import cc.mrbird.febs.common.utils.RedisUtils;
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.IAdminBannerService;
import cc.mrbird.febs.mall.vo.AdminLabelSetVo;
import cc.mrbird.febs.mall.vo.AdminMallOrderVo;
import cc.mrbird.febs.mall.vo.clothes.AdminClothesDeliverGoodsVo;
import cc.mrbird.febs.mall.vo.clothes.AdminClothesLocationRemarkVo;
import cc.mrbird.febs.mall.vo.clothes.AdminClothesPatternRemarkVo;
import cc.mrbird.febs.mall.vo.clothes.AdminClothesTypeInfoVo;
import cn.hutool.core.collection.CollUtil;
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.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
@@ -43,6 +53,221 @@
    private final ClothesTypeClothMapper clothesTypeClothMapper;
    private final ClothesTypePatternMapper clothesTypePatternMapper;
    private final ClothesTypeLocationMapper clothesTypeLocationMapper;
    private final ClothesOrderMapper clothesOrderMapper;
    private final ClothesSocialCategoryMapper clothesSocialCategoryMapper;
    private final ClothesSocialMapper clothesSocialMapper;
    private final ClothesSocialMuseMapper clothesSocialMuseMapper;
    private final ClothesSocialFileMapper clothesSocialFileMapper;
    private final MallExpressInfoMapper mallExpressInfoMapper;
    private final ClothesPatternRemarkMapper clothesPatternRemarkMapper;
    private final ClothesLocationRemarkMapper clothesLocationRemarkMapper;
    private final RedisUtils redisUtils;
    /**
     * 社区分类列表
     */
    @GetMapping("groupList")
    @RequiresPermissions("groupList:view")
    public String groupList() {
        return FebsUtil.view("modules/clothesType/groupList");
    }
    /**
     * 社区分类新增
     * @return
     */
    @GetMapping(value = "/groupAdd")
    @RequiresPermissions("groupAdd:add")
    public String groupAdd() {
        return FebsUtil.view("modules/clothesType/groupAdd");
    }
    /**
     * 社区分类编辑
     * @param id
     * @param model
     * @return
     */
    @GetMapping("groupInfo/{id}")
    @RequiresPermissions("groupInfo:view")
    public String groupInfo(@PathVariable long id, Model model) {
        ClothesSocialCategory clothesSocialCategory = clothesSocialCategoryMapper.selectById(id);
        model.addAttribute("voteActivityGroup", clothesSocialCategory);
        return FebsUtil.view("modules/clothesType/groupInfo");
    }
    /**
     * 社区列表
     */
    @GetMapping("socialList")
    @RequiresPermissions("socialList:view")
    public String socialList() {
        return FebsUtil.view("modules/clothesType/socialList");
    }
    /**
     * 社区列表-查看评论
     * @return
     */
    @GetMapping("/socialComment/{id}")
    @RequiresPermissions("socialComment:view")
    public String socialComment(@PathVariable Long id, Model model) {
        String existToken = redisUtils.getString(AppContants.SOCIAL_COMMENT);
        if (StrUtil.isNotBlank(existToken)) {
            Object o = redisUtils.get(existToken);
            if (ObjectUtil.isNotEmpty(o)) {
                redisUtils.del(existToken);
            }
        }
        redisUtils.set(AppContants.SOCIAL_COMMENT, id, -1);
        return FebsUtil.view("modules/clothesType/socialComment");
    }
    /**
     * 社区-新增
     */
    @GetMapping("socialAdd")
    @RequiresPermissions("socialAdd:add")
    public String socialAdd() {
        return FebsUtil.view("modules/clothesType/socialAdd");
    }
    /**
     * 社区-修改
     */
    @GetMapping("socialUpdate/{id}")
    @RequiresPermissions("socialUpdate:update")
    public String socialUpdate(@PathVariable long id, Model model) {
        ClothesSocial clothesSocial = clothesSocialMapper.selectById(id);
        List<ClothesSocialFile> clothesSocialFiles = clothesSocialFileMapper.selectList(
                Wrappers.lambdaQuery(ClothesSocialFile.class)
                        .eq(ClothesSocialFile::getSocialId, id)
        );
        if(CollUtil.isNotEmpty(clothesSocialFiles)){
            clothesSocial.setImages(clothesSocialFiles.stream().map(ClothesSocialFile::getFileUrl).collect(Collectors.toList()));
        }
        ClothesSocialMuse clothesSocialMuse = clothesSocialMuseMapper.selectOne(
                Wrappers.lambdaQuery(ClothesSocialMuse.class)
                        .eq(ClothesSocialMuse::getSocialId, clothesSocial.getId())
                .last("LIMIT 1")
        );
        if(ObjectUtil.isNotNull(clothesSocialMuse)){
            clothesSocial.setTypeId(clothesSocialMuse.getTypeId());
        }
        model.addAttribute("activity", clothesSocial);
        return FebsUtil.view("modules/clothesType/socialUpdate");
    }
    /**
     * 社区-灵感
     */
    @GetMapping("socialMuseUpdate/{id}")
    @RequiresPermissions("socialMuseUpdate:update")
    public String socialMuseUpdate(@PathVariable long id, Model model) {
        ClothesSocial clothesSocial = clothesSocialMapper.selectById(id);
        ClothesSocialMuse clothesSocialMuse = clothesSocialMuseMapper.selectOne(
                Wrappers.lambdaQuery(ClothesSocialMuse.class)
                        .eq(ClothesSocialMuse::getSocialId, clothesSocial.getId())
                .last("LIMIT 1")
        );
        List<AdminClothesPatternRemarkVo> patternData = new ArrayList<>();
        List<ClothesPatternRemark> patternRemarks = clothesPatternRemarkMapper.selectList(
                Wrappers.lambdaQuery(ClothesPatternRemark.class)
                        .eq(ClothesPatternRemark::getSourceId, clothesSocialMuse.getId())
                        .eq(ClothesPatternRemark::getType, SocialPatternLocationTypeEnum.MUSE.getValue())
        );
        if(CollUtil.isNotEmpty(patternRemarks)){
            for (ClothesPatternRemark entity : patternRemarks){
                AdminClothesPatternRemarkVo vo = new AdminClothesPatternRemarkVo();
                vo.setPatternId(entity.getPatternId());
                ClothesPattern clothesPattern = clothesPatternMapper.selectById(entity.getPatternId());
                vo.setPatternName(clothesPattern.getName());
                JSON parse = JSONUtil.parse(entity.getRemark());
                vo.setPatternText(parse.getByPath("text", String.class));
                vo.setSkuPatternImage(parse.getByPath("file", String.class));
                patternData.add(vo);
            }
            clothesSocialMuse.setPatternData(patternData);
        }
        List<AdminClothesLocationRemarkVo> locationData = new ArrayList<>();
        List<ClothesLocationRemark> locationRemarks = clothesLocationRemarkMapper.selectList(
                Wrappers.lambdaQuery(ClothesLocationRemark.class)
                        .eq(ClothesLocationRemark::getSourceId, clothesSocialMuse.getId())
                        .eq(ClothesLocationRemark::getType, SocialPatternLocationTypeEnum.MUSE.getValue())
        );
        if(CollUtil.isNotEmpty(locationRemarks)){
            for (ClothesLocationRemark entity : locationRemarks){
                AdminClothesLocationRemarkVo vo = new AdminClothesLocationRemarkVo();
                vo.setLocationId(entity.getLocationId());
                ClothesLocation clothesLocation = clothesLocationMapper.selectById(entity.getLocationId());
                vo.setLocationName(clothesLocation.getName());
                JSON parse = JSONUtil.parse(entity.getRemark());
                vo.setLocationText(parse.getByPath("text", String.class));
                vo.setSkuLocationImage(parse.getByPath("file", String.class));
                locationData.add(vo);
            }
            clothesSocialMuse.setLocationData(locationData);
        }
        model.addAttribute("socialMuse", clothesSocialMuse);
        return FebsUtil.view("modules/clothesType/socialMuseUpdate");
    }
    /**
     * 订单列表
     */
    @GetMapping("orderList")
    @RequiresPermissions("orderList:view")
    public String orderList() {
        return FebsUtil.view("modules/clothesType/orderList");
    }
    /**
     * 订单-发货
     * @param id
     * @param model
     * @return
     */
    @GetMapping("deliverGoods/{id}")
    @RequiresPermissions("deliverGoods:update")
    public String deliverGoods(@PathVariable Long id, Model model) {
        AdminClothesDeliverGoodsVo data = new AdminClothesDeliverGoodsVo();
        ClothesOrder clothesOrder = clothesOrderMapper.selectById(id);
        data.setId(clothesOrder.getId());
        data.setName(clothesOrder.getName());
        data.setPhone(clothesOrder.getPhone());
        data.setAddress(clothesOrder.getAddress());
        data.setExpressCom("极兔快递");
        MallExpressInfo mallExpressInfo = mallExpressInfoMapper.selectOne(
                Wrappers.lambdaQuery(MallExpressInfo.class)
                        .eq(MallExpressInfo::getOrderId, id)
                        .eq(MallExpressInfo::getOrderNo, clothesOrder.getOrderNo())
                        .last("limit 1")
        );
        if(ObjectUtil.isNotNull(mallExpressInfo)){
            data.setExpressNo(mallExpressInfo.getExpressNo());
            data.setExpressCom(mallExpressInfo.getExpressCom());
        }else{
            data.setExpressCom("极兔快递");
            data.setExpressNo("JT");
        }
        model.addAttribute("deliverInfo", data);
        return FebsUtil.view("modules/clothesType/deliverGoods");
    }
    /**
     * 种类列表