package com.ruoyi.system.service.impl.config; 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.*; /** *

* 分类 服务实现类 *

* * @author jqs * @since 2023-04-25 */ @Service public class SysClassificationServiceImpl extends ServiceImpl 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 getSysClassificationList(List classIds){ Map sysClassificationMap = new HashMap<>(); List 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 */ @Override public List 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 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); } } }