package com.ruoyi.system.service.impl.config;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
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.SysTag;
|
import com.ruoyi.system.domain.dto.MgtTagEditDto;
|
import com.ruoyi.system.domain.dto.MgtTagPageDto;
|
import com.ruoyi.system.domain.vo.MgtTagPageVo;
|
import com.ruoyi.system.mapper.config.SysTagMapper;
|
import com.ruoyi.system.service.config.SysTagService;
|
import org.springframework.scheduling.annotation.Async;
|
import org.springframework.stereotype.Service;
|
|
import javax.annotation.Resource;
|
import java.util.Date;
|
import java.util.List;
|
import java.util.Objects;
|
|
/**
|
* <p>
|
* 系统标签 服务实现类
|
* </p>
|
*
|
* @author jqs
|
* @since 2023-04-25
|
*/
|
@Service
|
public class SysTagServiceImpl extends ServiceImpl<SysTagMapper, SysTag> implements SysTagService {
|
|
@Resource
|
private SysTagMapper sysTagMapper;
|
|
/**
|
* 通过id获取系统标签
|
* @param tagId
|
* @return
|
*/
|
@Override
|
public SysTag getByTagId(Long tagId){
|
return this.getById(tagId);
|
}
|
|
/**
|
* 通过type获取系统标签列表
|
* @param tagType
|
* @return
|
*/
|
@Override
|
public List<SysTag> listByType(Integer tagType){
|
LambdaQueryWrapper<SysTag> queryWrapper = Wrappers.lambdaQuery();
|
queryWrapper.eq(SysTag::getDelFlag, 0).eq(SysTag::getTagType, 1);
|
List<SysTag> sysTagsList = this.list(queryWrapper);
|
return sysTagsList;
|
}
|
|
/**
|
* @description 标签管理
|
* @author jqs
|
* @date 2023/6/8 14:09
|
* @param page
|
* @param mgtTagPageDto
|
* @return List<MgtTagPageVo>
|
*/
|
@Override
|
public List<MgtTagPageVo> pageTag(Page page, MgtTagPageDto mgtTagPageDto){
|
return sysTagMapper.pageTag(page, mgtTagPageDto);
|
}
|
|
/**
|
* @description 修改标签
|
* @author jqs
|
* @date 2023/6/8 15:01
|
* @param mgtTagEditDto
|
* @return void
|
*/
|
@Override
|
public void editTag(MgtTagEditDto mgtTagEditDto){
|
// 创建LambdaQueryWrapper对象,用于构建查询条件
|
LambdaQueryWrapper<SysTag> queryWrapper = new LambdaQueryWrapper<>();
|
queryWrapper.eq(SysTag::getDelFlag, 0) // 查询条件:delFlag=0
|
.eq(SysTag::getTagType, mgtTagEditDto.getTagType()) // 查询条件:tagType=mgtTagEditDto的tagType属性
|
.eq(SysTag::getTagName, mgtTagEditDto.getTagName()); // 查询条件:tagName=mgtTagEditDto的tagName属性
|
// 执行查询,获取与查询条件匹配的SysTag对象
|
SysTag sysTagSame = this.getOne(queryWrapper);
|
// 获取mgtTagEditDto的tagId属性
|
Long tagId = mgtTagEditDto.getTagId();
|
// 定义SysTag对象
|
SysTag sysTag;
|
if (tagId != null) { // 如果tagId不为空
|
// 如果存在同类名同分类类型的分类,但是分类ID不同,抛出异常
|
if (sysTagSame != null && !Objects.equals(sysTagSame.getTagId(), tagId)) {
|
throw new ServiceException(AppErrorConstant.TAG_DOUBLE);
|
}
|
// 根据tagId获取要修改的分类
|
sysTag = this.getById(tagId);
|
} else { // 如果tagId为空
|
// 如果存在同类名同分类类型的分类,抛出异常
|
if (sysTagSame != null) {
|
throw new ServiceException(AppErrorConstant.TAG_DOUBLE);
|
}
|
// 新建分类
|
sysTag = new SysTag();
|
sysTag.setDelFlag(0);
|
}
|
// 设置sysTag的属性
|
sysTag.setTagType(mgtTagEditDto.getTagType());
|
sysTag.setTagName(mgtTagEditDto.getTagName());
|
sysTag.setCreateTime(new Date());
|
sysTag.setSynFlag(0);
|
// 执行保存或更新操作
|
this.saveOrUpdate(sysTag);
|
}
|
|
/**
|
* @description 删除标签
|
* @author jqs
|
* @date 2023/6/8 15:09
|
* @param tagId
|
* @return void
|
*/
|
@Override
|
public void deleteTag(Long tagId){
|
SysTag sysTag = this.getById(tagId);
|
sysTag.setDelFlag(1);
|
this.saveOrUpdate(sysTag);
|
handleDeleteTag(sysTag.getTagType(),sysTag.getTagName());
|
}
|
|
@Async
|
protected void handleDeleteTag(Integer tagType, String tagName){
|
//标签类型1用户2合作商3商品4建议
|
switch (tagType){
|
case 1:
|
|
break;
|
case 2:
|
|
break;
|
case 3:
|
|
break;
|
case 4:
|
|
break;
|
default:
|
break;
|
}
|
}
|
}
|