From cfd0118ef446a66f91999afc7b1e46ca607adf50 Mon Sep 17 00:00:00 2001
From: jiangqs <jiangqs>
Date: 星期四, 13 七月 2023 20:32:35 +0800
Subject: [PATCH] 定时任务 统计

---
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/SysClassificationServiceImpl.java |  130 +++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 124 insertions(+), 6 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 1b215c6..f05ddba 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,14 +1,24 @@
 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.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 java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import javax.annotation.Resource;
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -21,6 +31,14 @@
 @Service
 public class SysClassificationServiceImpl extends ServiceImpl<SysClassificationMapper, SysClassification> implements SysClassificationService {
 
+    @Resource
+    private SysClassificationMapper sysClassificationMapper;
+
+    @Resource
+    private RemoteGoodsService remoteGoodsService;
+
+    @Resource
+    private ArticleService articleService;
 
     /**
      * @description: TODO
@@ -37,4 +55,104 @@
         }
         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;
+    }
 }

--
Gitblit v1.7.1