From d6a0c57043e8cc20694a3c678bf8e3a8f28f6499 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期四, 29 五月 2025 11:20:14 +0800
Subject: [PATCH] 新增加用户端接口
---
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