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