From baf8c2142cfbff2e9191db4dedf3f33060492c96 Mon Sep 17 00:00:00 2001 From: Administrator <15274802129@163.com> Date: Mon, 07 Jul 2025 16:37:13 +0800 Subject: [PATCH] feat(mall): 新增设计衣服社区功能 --- src/main/java/cc/mrbird/febs/mall/service/impl/ClothesTypeServiceImpl.java | 331 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 327 insertions(+), 4 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ClothesTypeServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ClothesTypeServiceImpl.java index c8015bf..6d6c591 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/ClothesTypeServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ClothesTypeServiceImpl.java @@ -9,10 +9,7 @@ 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.AdminClothesDeliverGoodsDto; -import cc.mrbird.febs.mall.dto.clothes.AdminClothesOrderListDto; -import cc.mrbird.febs.mall.dto.clothes.AdminClothesRefundOrderDto; -import cc.mrbird.febs.mall.dto.clothes.AdminClothesTypeInfoDto; +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; @@ -20,7 +17,9 @@ import cc.mrbird.febs.mall.service.IMallMoneyFlowService; import cc.mrbird.febs.mall.vo.AdminMallOrderInfoVo; import cc.mrbird.febs.mall.vo.clothes.AdminClothesOrderListVo; +import cc.mrbird.febs.mall.vo.clothes.AdminClothesSocialListVo; 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; @@ -64,6 +63,11 @@ private final ClothesTypeLocationMapper clothesTypeLocationMapper; private final ClothesOrderMapper clothesOrderMapper; private final MallExpressInfoMapper mallExpressInfoMapper; + private final ClothesSocialMapper clothesSocialMapper; + private final ClothesSocialFileMapper clothesSocialFileMapper; + private final ClothesSocialMuseMapper clothesSocialMuseMapper; + private final ClothesSocialCategoryMapper clothesSocialCategoryMapper; + private final IApiMallMemberWalletService memberWalletService; private final IMallMoneyFlowService mallMoneyFlowService; private final XcxProperties xcxProperties = SpringContextHolder.getBean(XcxProperties.class); @@ -732,4 +736,323 @@ .eq(ClothesOrder::getId, clothesOrder.getId()) ); } + + @Override + public IPage<AdminClothesSocialListVo> getSocialListInPage(AdminClothesSocialListDto dto, QueryRequest request) { + Page<AdminClothesSocialListVo> page = new Page<>(request.getPageNum(), request.getPageSize()); + IPage<AdminClothesSocialListVo> vos = clothesSocialMapper.selectSocialListInPage(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 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<ClothesSocialCategory> allGroup() { + List<ClothesSocialCategory> 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<ClothesSocialCategory> getGroupList(AdminClothesSocialCategoryDto dto, QueryRequest request) { + Page<ClothesSocialCategory> page = new Page<>(request.getPageNum(), request.getPageSize()); + LambdaQueryWrapper<ClothesSocialCategory> 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<ClothesSocialCategory> 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<String> 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("内容不存在,无法操作"); + } + 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<String> 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++; + } + } + } + + clothesSocialMuseMapper.delete( + Wrappers.lambdaQuery(ClothesSocialMuse.class) + .eq(ClothesSocialMuse::getSocialId, entity.getId()) + ); + 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 List<ClothesType> allType() { + List<ClothesType> 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<ClothesCloth> allCloth(Long typeId) { + List<ClothesTypeCloth> entities = clothesTypeClothMapper.selectList( + Wrappers.lambdaQuery(ClothesTypeCloth.class) + .eq(ClothesTypeCloth::getTypeId, typeId) + ); + if(CollUtil.isNotEmpty(entities)){ + Set<Long> ids = entities.stream().map(ClothesTypeCloth::getClothId).collect(Collectors.toSet()); + return clothesClothMapper.selectBatchIds(ids); + } + return Collections.emptyList(); + } + + @Override + public List<ClothesPattern> allPattern(Long typeId) { + List<ClothesTypePattern> entities = clothesTypePatternMapper.selectList( + Wrappers.lambdaQuery(ClothesTypePattern.class) + .eq(ClothesTypePattern::getTypeId, typeId) + ); + if(CollUtil.isNotEmpty(entities)){ + Set<Long> ids = entities.stream().map(ClothesTypePattern::getPatternId).collect(Collectors.toSet()); + return clothesPatternMapper.selectBatchIds(ids); + } + return Collections.emptyList(); + } + + @Override + public List<ClothesLocation> allLocation(Long typeId) { + List<ClothesTypeLocation> entities = clothesTypeLocationMapper.selectList( + Wrappers.lambdaQuery(ClothesTypeLocation.class) + .eq(ClothesTypeLocation::getTypeId, typeId) + ); + if(CollUtil.isNotEmpty(entities)){ + Set<Long> ids = entities.stream().map(ClothesTypeLocation::getLocationId).collect(Collectors.toSet()); + return clothesLocationMapper.selectBatchIds(ids); + } + return Collections.emptyList(); + } + + @Override + public List<ClothesSize> allSize(Long typeId) { + List<ClothesTypeSize> entities = clothesTypeSizeMapper.selectList( + Wrappers.lambdaQuery(ClothesTypeSize.class) + .eq(ClothesTypeSize::getTypeId, typeId) + ); + if(CollUtil.isNotEmpty(entities)){ + Set<Long> ids = entities.stream().map(ClothesTypeSize::getSizeId).collect(Collectors.toSet()); + return clothesSizeMapper.selectBatchIds(ids); + } + return Collections.emptyList(); + } + + @Override + public List<ClothesArt> allArt(Long typeId) { + List<ClothesTypeArt> entities = clothesTypeArtMapper.selectList( + Wrappers.lambdaQuery(ClothesTypeArt.class) + .eq(ClothesTypeArt::getTypeId, typeId) + ); + if(CollUtil.isNotEmpty(entities)){ + Set<Long> 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.setLocationId(dto.getLocationId()); + entity.setSizeId(dto.getSizeId()); + entity.setPatternId(dto.getPatternId()); + entity.setArtId(dto.getArtId()); + clothesSocialMuseMapper.updateById(entity); + } + + return new FebsResponse().success().message("操作成功"); + } + } -- Gitblit v1.9.1