From 8444084e6aa11efa23287e7f82474ac22378a5c4 Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期二, 01 四月 2025 16:03:19 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/SysClassificationServiceImpl.java | 175 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 172 insertions(+), 3 deletions(-) diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/SysClassificationServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/SysClassificationServiceImpl.java index dc3de20..ae75193 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/SysClassificationServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/SysClassificationServiceImpl.java @@ -1,10 +1,25 @@ package com.ruoyi.system.service.impl.config; -import com.ruoyi.system.api.domain.poji.config.SysClassification; -import com.ruoyi.system.mapper.config.SysClassificationMapper; -import com.ruoyi.system.service.config.SysClassificationService; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.common.core.exception.ServiceException; +import com.ruoyi.system.api.constant.AppErrorConstant; +import com.ruoyi.system.api.domain.dto.MgtClassNumDto; +import com.ruoyi.system.api.domain.poji.config.SysClassification; +import com.ruoyi.system.api.service.RemoteGoodsService; +import com.ruoyi.system.domain.dto.MgtClassificationEditDto; +import com.ruoyi.system.domain.dto.MgtClassificationPageDto; +import com.ruoyi.system.domain.vo.AppClassListVo; +import com.ruoyi.system.domain.vo.MgtClassificationPageVo; +import com.ruoyi.system.mapper.config.SysClassificationMapper; +import com.ruoyi.system.service.config.ArticleService; +import com.ruoyi.system.service.config.SysClassificationService; import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.*; +import java.util.stream.Collectors; /** * <p> @@ -17,4 +32,158 @@ @Service public class SysClassificationServiceImpl extends ServiceImpl<SysClassificationMapper, SysClassification> implements SysClassificationService { + @Resource + private SysClassificationMapper sysClassificationMapper; + + @Resource + private RemoteGoodsService remoteGoodsService; + + @Resource + private ArticleService articleService; + + /** + * @description: TODO + * @author jqs34 + * @date 2023/6/4 11:59 + * @version 1.0 + */ + @Override + public Map<Long,SysClassification> getSysClassificationList(List<Long> classIds){ + Map<Long, SysClassification> sysClassificationMap = new HashMap<>(); + List<SysClassification> sysClassifications = this.listByIds(classIds); + for (SysClassification sysClassification : sysClassifications) { + sysClassificationMap.put(sysClassification.getClassId(), sysClassification); + } + return sysClassificationMap; + } + + /** + * @description 分页获取分类 + * @author jqs + * @date 2023/6/8 10:11 + * @param page + * @param mgtClassificationPageDto + * @return List<MgtClassificationPageVo> + */ + @Override + public List<MgtClassificationPageVo> pageClassification(Page page, MgtClassificationPageDto mgtClassificationPageDto){ + return sysClassificationMapper.pageClassification(page, mgtClassificationPageDto); + } + + /** + * @description 修改分类 + * @author jqs + * @date 2023/6/8 10:23 + * @param mgtClassificationEditDto + * @return void + */ + @Override + public void editClassification(MgtClassificationEditDto mgtClassificationEditDto){ + // 查询未删除的同类名同分类类型的分类 + LambdaQueryWrapper<SysClassification> queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(SysClassification::getDelFlag,0) + .eq(SysClassification::getClassType,mgtClassificationEditDto.getClassType()) + .eq(SysClassification::getClassName,mgtClassificationEditDto.getClassName()); + SysClassification sysClassificationSame = this.getOne(queryWrapper); + // 获取分类ID + Long classId = mgtClassificationEditDto.getClassId(); + SysClassification sysClassification; + // 如果分类ID不为空 + if(classId != null){ + // 如果存在同类名同分类类型的分类,但是分类ID不同,抛出异常 + if(sysClassificationSame != null && !Objects.equals(sysClassificationSame.getClassId(), classId)){ + throw new ServiceException(AppErrorConstant.CLASS_DOUBLE); + } + // 获取要修改的分类 + sysClassification = this.getById(classId); + }else{ // 如果分类ID为空 + // 如果存在同类名同分类类型的分类,抛出异常 + if(sysClassificationSame!=null){ + throw new ServiceException(AppErrorConstant.CLASS_DOUBLE); + } + // 新建分类 + sysClassification = new SysClassification(); + sysClassification.setDelFlag(0); + sysClassification.setRelationNum(0); + } + // 设置分类信息 + sysClassification.setClassType(mgtClassificationEditDto.getClassType()); + sysClassification.setClassName(mgtClassificationEditDto.getClassName()); + sysClassification.setClassSort(mgtClassificationEditDto.getClassSort()); + sysClassification.setCreateTime(new Date()); + // 保存或更新分类 + this.saveOrUpdate(sysClassification); + } + + + /** + * @description 删除分类 + * @author jqs + * @date 2023/6/8 10:28 + * @param classId + * @return void + */ + @Override + public void deleteClassification(Long classId){ + SysClassification sysClassification = this.getById(classId); + sysClassification.setDelFlag(1); + if(sysClassification.getClassType()==1){ + articleService.deleteArticleClass(classId); + }else if(sysClassification.getClassType()==2){ + List<String> goodsNameList = remoteGoodsService.listGoodsNameByGoodsClass(classId).getData(); + if(goodsNameList!=null&&goodsNameList.size()>0){ + throw new ServiceException("无法删除,该分类下还有关联商品-"+goodsNameList.toString()); + } + } + this.saveOrUpdate(sysClassification); + } + + /** + * @description + * @author jqs + * @date 2023/7/13 11:21 + * @param + * @return List<AppClassListVo> + */ + @Override + public List<AppClassListVo> listByType(Integer classType){ + LambdaQueryWrapper<SysClassification> queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(SysClassification::getDelFlag,0) + .eq(SysClassification::getClassType,classType) + .orderByDesc(SysClassification::getClassSort) + .orderByDesc(SysClassification::getCreateTime); + List<SysClassification> sysClassificationList = this.list(queryWrapper); + List<AppClassListVo> classListVos = sysClassificationList.stream().map(sysClassification ->{ + AppClassListVo appClassListVo = new AppClassListVo(); + appClassListVo.setClassId(sysClassification.getClassId()); + appClassListVo.setClassName(sysClassification.getClassName()); + return appClassListVo; + }).collect(Collectors.toList()); + return classListVos; + } + + /** + * @description 分类变化 + * @author jqs + * @date 2023/7/20 14:32 + * @param mgtClassNumDto + * @return void + */ + @Override + public void changeClassNum(MgtClassNumDto mgtClassNumDto){ + if(mgtClassNumDto.getAddClassId()!=null){ + SysClassification addSysClassification = this.getById(mgtClassNumDto.getAddClassId()); + if(addSysClassification!=null){ + addSysClassification.setRelationNum(addSysClassification.getRelationNum()+1); + this.saveOrUpdate(addSysClassification); + } + } + if(mgtClassNumDto.getSubClassId()!=null){ + SysClassification subSysClassification = this.getById(mgtClassNumDto.getSubClassId()); + if(subSysClassification!=null){ + subSysClassification.setRelationNum(subSysClassification.getRelationNum()-1); + this.saveOrUpdate(subSysClassification); + } + } + } } -- Gitblit v1.7.1