|  |  | 
 |  |  |  | 
 |  |  | import cc.mrbird.febs.common.entity.FebsResponse; | 
 |  |  | import cc.mrbird.febs.common.entity.QueryRequest; | 
 |  |  | import cc.mrbird.febs.mall.entity.MallGoods; | 
 |  |  | import cc.mrbird.febs.mall.entity.MallGoodsCategory; | 
 |  |  | import cc.mrbird.febs.mall.mapper.MallGoodsCategoryMapper; | 
 |  |  | import cc.mrbird.febs.mall.mapper.MallGoodsMapper; | 
 |  |  | import cc.mrbird.febs.mall.service.IAdminMallGoodsCategoryService; | 
 |  |  | import cc.mrbird.febs.mall.vo.AdminMallGoodsCategoryTreeVo; | 
 |  |  | import cc.mrbird.febs.mall.vo.AdminMallGoodsCategoryVo; | 
 |  |  | import cn.hutool.core.collection.CollUtil; | 
 |  |  | import cn.hutool.core.util.ObjectUtil; | 
 |  |  | import cn.hutool.core.util.StrUtil; | 
 |  |  | 
 |  |  | import lombok.RequiredArgsConstructor; | 
 |  |  | import lombok.extern.slf4j.Slf4j; | 
 |  |  | import org.springframework.stereotype.Service; | 
 |  |  | import org.springframework.transaction.annotation.Transactional; | 
 |  |  |  | 
 |  |  | import java.util.List; | 
 |  |  |  | 
 |  |  | @Slf4j | 
 |  |  | @Service | 
 |  |  | @RequiredArgsConstructor | 
 |  |  | @Transactional | 
 |  |  | public class AdminMallGoodsCategoryService extends ServiceImpl<MallGoodsCategoryMapper, MallGoodsCategory> implements IAdminMallGoodsCategoryService { | 
 |  |  |  | 
 |  |  |     private final MallGoodsCategoryMapper mallGoodsCategoryMapper; | 
 |  |  |  | 
 |  |  |     private final MallGoodsMapper mallGoodsMapper; | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     public IPage<MallGoodsCategory> getCategoryList(MallGoodsCategory mallGoodsCategory, QueryRequest request) { | 
 |  |  |         Page<MallGoodsCategory> page = new Page<>(request.getPageNum(), request.getPageSize()); | 
 |  |  |         IPage<MallGoodsCategory> mallGoodsCategorys = this.baseMapper.selectCategoryList(page, mallGoodsCategory); | 
 |  |  |         IPage<MallGoodsCategory> mallGoodsCategorys = this.baseMapper.selectCategoryListInPage(page, mallGoodsCategory); | 
 |  |  |         return mallGoodsCategorys; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  | 
 |  |  |         if(CollUtil.isNotEmpty(categorys)){ | 
 |  |  |             return new FebsResponse().fail().message("分类名称不能重复"); | 
 |  |  |         } | 
 |  |  |         Long parentIdParam = mallGoodsCategory.getParentId() == null ? 0L:mallGoodsCategory.getParentId(); | 
 |  |  |         Integer isRecommendParam = mallGoodsCategory.getIsRecommend(); | 
 |  |  |         if(parentIdParam > 0 && isRecommendParam == 1){ | 
 |  |  |             return new FebsResponse().fail().message("子分类不能选择【是否推荐】为【是】"); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         MallGoodsCategory goodsCategory = new MallGoodsCategory(); | 
 |  |  |         goodsCategory.setName(name); | 
 |  |  |         goodsCategory.setIsComand(mallGoodsCategory.getIsComand()); | 
 |  |  |         goodsCategory.setImage(mallGoodsCategory.getImage()); | 
 |  |  |         if(ObjectUtil.isNotEmpty(mallGoodsCategory.getParentId())){ | 
 |  |  |             Long parentId = mallGoodsCategory.getParentId(); | 
 |  |  |             MallGoodsCategory mallGoodsCategoryParent = mallGoodsCategoryMapper.selectById(parentId); | 
 |  |  | 
 |  |  |             }else{ | 
 |  |  |                 goodsCategory.setParentIds(mallGoodsCategory.getParentId()+","); | 
 |  |  |             } | 
 |  |  |             goodsCategory.setIsRecommend(0); | 
 |  |  |         }else{ | 
 |  |  |             goodsCategory.setParentId(0L); | 
 |  |  |             goodsCategory.setIsRecommend(mallGoodsCategory.getIsRecommend()); | 
 |  |  |         } | 
 |  |  |         mallGoodsCategoryMapper.insert(goodsCategory); | 
 |  |  |         return new FebsResponse().success(); | 
 |  |  | 
 |  |  |         return mallGoodsCategorys; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     public AdminMallGoodsCategoryVo getMallGoodsCategoryInfoById(long id) { | 
 |  |  |         return mallGoodsCategoryMapper.getMallGoodsCategoryInfoById(id); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     public List<AdminMallGoodsCategoryTreeVo> getParentCategorys() { | 
 |  |  |         List<AdminMallGoodsCategoryTreeVo> adminMallGoodsCategoryTreeVos = mallGoodsCategoryMapper.getParentCategorys(); | 
 |  |  |         return adminMallGoodsCategoryTreeVos; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     public FebsResponse updateCategory(MallGoodsCategory mallGoodsCategoryParam) { | 
 |  |  |         String name = mallGoodsCategoryParam.getName(); | 
 |  |  |         if(StrUtil.isEmpty(name)){ | 
 |  |  |             return new FebsResponse().fail().message("名称不能为空"); | 
 |  |  |         } | 
 |  |  |         Long parentIdParam = mallGoodsCategoryParam.getParentId() == null ? 0L:mallGoodsCategoryParam.getParentId(); | 
 |  |  |         Integer isRecommendParam = mallGoodsCategoryParam.getIsRecommend(); | 
 |  |  |         if(parentIdParam > 0 && isRecommendParam == 1){ | 
 |  |  |             return new FebsResponse().fail().message("子分类不能选择【是否推荐】为【是】"); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         Long id = mallGoodsCategoryParam.getId(); | 
 |  |  |         MallGoodsCategory mallGoodsCategory = mallGoodsCategoryMapper.selectById(id); | 
 |  |  |         mallGoodsCategory.setName(mallGoodsCategoryParam.getName()); | 
 |  |  |         mallGoodsCategory.setImage(mallGoodsCategoryParam.getImage()); | 
 |  |  |         if(ObjectUtil.isNotEmpty(mallGoodsCategoryParam.getParentId())){ | 
 |  |  |             Long parentId = mallGoodsCategoryParam.getParentId(); | 
 |  |  |             MallGoodsCategory mallGoodsCategoryParent = mallGoodsCategoryMapper.selectById(parentId); | 
 |  |  |             mallGoodsCategory.setParentId(mallGoodsCategoryParam.getParentId()); | 
 |  |  |             if(StrUtil.isNotEmpty(mallGoodsCategoryParent.getParentIds())){ | 
 |  |  |                 mallGoodsCategory.setParentIds(mallGoodsCategoryParent.getParentIds()+","+mallGoodsCategory.getParentId()+","); | 
 |  |  |             }else{ | 
 |  |  |                 mallGoodsCategory.setParentIds(mallGoodsCategory.getParentId()+","); | 
 |  |  |             } | 
 |  |  |             mallGoodsCategory.setIsRecommend(0); | 
 |  |  |         }else{ | 
 |  |  |             mallGoodsCategory.setParentId(0L); | 
 |  |  |             mallGoodsCategory.setIsRecommend(mallGoodsCategoryParam.getIsRecommend()); | 
 |  |  |         } | 
 |  |  |         mallGoodsCategoryMapper.updateById(mallGoodsCategory); | 
 |  |  |  | 
 |  |  |         return new FebsResponse().success(); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     public FebsResponse delCategary(Long id) { | 
 |  |  |         MallGoodsCategory mallGoodsCategory = mallGoodsCategoryMapper.selectById(id); | 
 |  |  |         if(ObjectUtil.isEmpty(mallGoodsCategory)){ | 
 |  |  |             return new FebsResponse().fail().message("系统繁忙,请刷新页面重试"); | 
 |  |  |         } | 
 |  |  |         List<MallGoodsCategory> childCategarys = mallGoodsCategoryMapper.selectChildCategaryById(id); | 
 |  |  |         if(CollUtil.isNotEmpty(childCategarys)){ | 
 |  |  |             for(MallGoodsCategory childCategary : childCategarys){ | 
 |  |  |                 Long childCategaryId = childCategary.getId(); | 
 |  |  |                 List<MallGoods> mallChildGoods = mallGoodsMapper.selectMallGoodsByCategaryId(childCategaryId); | 
 |  |  |                 if(CollUtil.isNotEmpty(mallChildGoods)){ | 
 |  |  |                     return new FebsResponse().fail().message("该分类下的子类【"+childCategary.getName()+"】还有商品,请先删除商品或者修改商品分类"); | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         if(CollUtil.isNotEmpty(childCategarys)){ | 
 |  |  |             return new FebsResponse().fail().message("该分类下还有子类,请先删除子类"); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         List<MallGoods> mallGoods = mallGoodsMapper.selectMallGoodsByCategaryId(id); | 
 |  |  |         if(CollUtil.isNotEmpty(mallGoods)){ | 
 |  |  |             return new FebsResponse().fail().message("该分类下还有商品,请先删除商品或者修改商品分类"); | 
 |  |  |         } | 
 |  |  |         mallGoodsCategoryMapper.deleteById(mallGoodsCategory); | 
 |  |  |         return new FebsResponse().success(); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     public List<AdminMallGoodsCategoryTreeVo> getAllCategorys() { | 
 |  |  |         List<AdminMallGoodsCategoryTreeVo> adminMallGoodsCategoryTreeVos = mallGoodsCategoryMapper.getAllCategorys(); | 
 |  |  |         return adminMallGoodsCategoryTreeVos; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  | } |