From 3b09eb084576dd6be9a7b342edf345293bcc6459 Mon Sep 17 00:00:00 2001
From: jiangqs <jiangqs>
Date: 星期二, 25 七月 2023 09:57:27 +0800
Subject: [PATCH] bug
---
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/SysClassificationServiceImpl.java | 170 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 167 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 d98b076..cee57f2 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.domain.pojo.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,153 @@
@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);
+ }
+ }
+
+ /**
+ * @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);
+ 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.getAddClassId());
+ if(subSysClassification!=null){
+ subSysClassification.setRelationNum(subSysClassification.getRelationNum()-1);
+ this.saveOrUpdate(subSysClassification);
+ }
+ }
+ }
}
--
Gitblit v1.7.1