From efe79e640c4598f52c2d1032fcead000edf8049e Mon Sep 17 00:00:00 2001 From: jiangqs <jiangqs> Date: 星期三, 28 六月 2023 10:29:53 +0800 Subject: [PATCH] 统计bug和验证优化 --- ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/SysClassificationServiceImpl.java | 120 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 117 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..bb5b412 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,22 @@ 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.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.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.*; /** * <p> @@ -17,4 +29,106 @@ @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); + this.saveOrUpdate(sysClassification); + if(sysClassification.getClassType()==1){ + articleService.deleteArticleClass(classId); + }else if(sysClassification.getClassType()==2){ + remoteGoodsService.deleteGoodsClass(classId); + } + } } -- Gitblit v1.7.1