123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159 |
- package com.redxun.knowledge.service;
- import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
- import com.baomidou.mybatisplus.core.metadata.IPage;
- import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
- import com.redxun.common.base.db.BaseDao;
- import com.redxun.common.base.db.BaseService;
- import com.redxun.common.base.search.QueryFilter;
- import com.redxun.common.model.JPaasUser;
- import com.redxun.common.tool.IdGenerator;
- import com.redxun.common.service.impl.SuperServiceImpl;
- import com.redxun.common.tool.StringUtils;
- import com.redxun.knowledge.analysis.entity.vo.SearchParticipleWordCloudVo;
- import com.redxun.knowledge.analysis.service.AnalysisCommonServiceImpl;
- import com.redxun.knowledge.common.UserService;
- import com.redxun.knowledge.entity.dao.Banner;
- import com.redxun.knowledge.entity.dao.Knowledge;
- import com.redxun.knowledge.entity.dao.KnowledgeApprove;
- import com.redxun.knowledge.entity.dao.KnowledgeLabel;
- import com.redxun.knowledge.entity.vo.BannerAdminVo;
- import com.redxun.knowledge.entity.vo.KnowledgeLabelVo;
- import com.redxun.knowledge.mapper.KnowledgeLabelMapper;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import java.util.*;
- import java.util.stream.Collectors;
- import javax.annotation.Resource;
- /**
- * [业务--知识标签表]业务服务类
- */
- @Service
- public class KnowledgeLabelServiceImpl extends SuperServiceImpl<KnowledgeLabelMapper, KnowledgeLabel> implements BaseService<KnowledgeLabel> {
- @Resource
- private UserService userService;
- @Resource
- private KnowledgeLabelMapper knowledgeLabelMapper;
- @Autowired
- private AnalysisCommonServiceImpl analysisCommonService;
- @Override
- public BaseDao<KnowledgeLabel> getRepository() {
- return knowledgeLabelMapper;
- }
- /**
- * 新增/修改标签数据
- *
- * @param id 标签ID
- * @param name 标签名称
- * @param sort 标签排序
- * @return
- */
- @Transactional(rollbackFor = Exception.class)
- public KnowledgeLabel saveOrUpdateTags(String id, String name, Integer sort) {
- KnowledgeLabel knowledgeLabel = new KnowledgeLabel();
- if (StringUtils.isEmpty(id)) {
- //判断标签名是否重复
- KnowledgeLabel knowledgeLabelName = this.baseMapper.selectOne(new QueryWrapper<KnowledgeLabel>().eq("name", name));
- if (ObjectUtils.isNotEmpty(knowledgeLabelName)) {
- throw new RuntimeException("标签名重复,请重新输入");
- }
- knowledgeLabel.setPkId(IdGenerator.getIdStr());
- knowledgeLabel.setCreateBy(userService.queryLoginUser());
- knowledgeLabel.setCreateTime(new Date());
- } else {
- //判断标签名是否重复
- KnowledgeLabel knowledgeLabelName = this.baseMapper.selectOne(new QueryWrapper<KnowledgeLabel>().eq("name", name).ne("PK_ID",id));
- if (ObjectUtils.isNotEmpty(knowledgeLabelName)) {
- throw new RuntimeException("标签名重复,请重新输入");
- }
- knowledgeLabel.setPkId(id);
- knowledgeLabel.setUpdateBy(userService.queryLoginUser());
- knowledgeLabel.setCreateTime(new Date());
- }
- knowledgeLabel.setName(name);
- knowledgeLabel.setSort(sort);
- // 更新sort
- knowledgeLabelMapper.adjustSort(sort);
- if (saveOrUpdate(knowledgeLabel)) {
- return knowledgeLabelMapper.selectById(knowledgeLabel.getPkId());
- }
- return null;
- }
- public IPage<KnowledgeLabelVo> findAllTags(QueryFilter filter) {
- IPage<KnowledgeLabelVo> page = knowledgeLabelMapper.findAllTags(filter.getPage(), filter.getParams());
- List<KnowledgeLabelVo> knowledgeLabelVos = page.getRecords();
- knowledgeLabelVos.forEach(e -> {
- JPaasUser user = userService.queryUser(e.getOperator());
- if (user != null) {
- e.setOperatorName(user.getFullName());
- }
- });
- return page;
- }
- public List<KnowledgeLabelVo> labels(Integer tops) {
- List<KnowledgeLabelVo> labels = knowledgeLabelMapper.selectTops(tops);
- labels.forEach(e -> {
- JPaasUser user = userService.queryUser(e.getOperator());
- if (user != null) {
- e.setOperatorName(user.getFullName());
- }
- });
- return labels;
- }
- /**
- * 调整知识标签排序位置
- *
- * @param labelId 标签ID
- * @param status true 上升 false 下降
- * @return
- */
- @Transactional(rollbackFor = Exception.class)
- public void exchangePosition(String labelId, Boolean status) {
- KnowledgeLabel label = get(labelId);
- if (label == null) {
- return;
- }
- Integer sort = label.getSort();
- KnowledgeLabel labelTarget = null;
- List<KnowledgeLabel> labels = knowledgeLabelMapper.selectList(new QueryWrapper<KnowledgeLabel>().eq("IS_DEL", 0).orderByAsc("SORT"));
- if (status) {
- // 上升
- List<KnowledgeLabel> collect = labels.stream().filter(e -> e.getSort() < sort).collect(Collectors.toList());
- if (ObjectUtils.isNotEmpty(collect)) {
- labelTarget = collect.get(collect.size() - 1);
- }
- } else {
- // 下降
- List<KnowledgeLabel> collect = labels.stream().filter(e -> e.getSort() > sort).collect(Collectors.toList());
- if (ObjectUtils.isNotEmpty(collect)) {
- labelTarget = collect.get(0);
- }
- }
- // 交换位置
- if (labelTarget != null) {
- knowledgeLabelMapper.updateSort(labelId, labelTarget.getSort());
- knowledgeLabelMapper.updateSort(labelTarget.getPkId(), sort);
- }
- }
- public String delLabel(String labelId) {
- knowledgeLabelMapper.delLabel(labelId);
- return labelId;
- }
- }
|