package com.stylefeng.guns.modular.system.service.impl;
|
|
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
|
import com.stylefeng.guns.core.util.ToolUtil;
|
import com.stylefeng.guns.modular.system.dao.ProblemMapper;
|
import com.stylefeng.guns.modular.system.dao.SensitiveWordsMapper;
|
import com.stylefeng.guns.modular.system.model.Problem;
|
import com.stylefeng.guns.modular.system.model.SensitiveWords;
|
import com.stylefeng.guns.modular.system.service.IProblemService;
|
import com.stylefeng.guns.modular.system.service.IUserInfoService;
|
import com.stylefeng.guns.modular.system.util.DateUtil;
|
import com.stylefeng.guns.modular.system.util.ResultUtil;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
import javax.annotation.Resource;
|
import java.util.*;
|
import java.util.stream.Collectors;
|
|
|
@Service
|
public class ProblemServiceImpl extends ServiceImpl<ProblemMapper, Problem> implements IProblemService {
|
|
@Resource
|
private ProblemMapper problemMapper;
|
|
@Resource
|
private SensitiveWordsMapper sensitiveWordsMapper;
|
|
@Autowired
|
private IUserInfoService userInfoService;
|
|
|
|
/**
|
* 添加留言
|
* @param content
|
* @param uid
|
* @return
|
* @throws Exception
|
*/
|
@Override
|
public ResultUtil leaveMessage(String content, Integer uid, Integer language) throws Exception {
|
if(ToolUtil.isNotEmpty(content)){
|
if(content.length() > 200){
|
language = userInfoService.queryLanguage(uid, language);
|
return ResultUtil.error(language == 1 ? "留言内容过长" : language == 2 ? "Message-content is overlong." : "Le contenu du message est trop long.");
|
}
|
List<SensitiveWords> sensitiveWords = sensitiveWordsMapper.selectList(null);
|
List<String> list = Arrays.asList(content.split(" "));
|
for(SensitiveWords s : sensitiveWords){
|
List<String> str = new ArrayList<>();
|
String lowerCase = s.getContent().toLowerCase();
|
for (String s1 : list) {
|
if(lowerCase.equals(s1.toLowerCase())){
|
str.add("***");
|
}else{
|
str.add(s1);
|
}
|
}
|
list = str;
|
}
|
content = list.stream().collect(Collectors.joining(" "));
|
}
|
|
Problem problem = new Problem();
|
problem.setContent(content);
|
problem.setUserId(uid);
|
problem.setInsertTime(new Date());
|
problem.setState(1);
|
this.insert(problem);
|
return ResultUtil.success();
|
}
|
|
|
/**
|
* 获取提交的留言
|
* @param pageNum
|
* @param size
|
* @param uid
|
* @return
|
* @throws Exception
|
*/
|
@Override
|
public List<Map<String, Object>> queryProblems(Integer pageNum, Integer size, Integer uid, Integer language) throws Exception {
|
pageNum = (pageNum - 1) * size;
|
List<Map<String, Object>> list = problemMapper.queryProblems(pageNum, size, uid);
|
for (Map<String, Object> map : list) {
|
if(null != map.get("insertTime")){
|
String insertTime = map.get("insertTime").toString();
|
map.put("insertTime", DateUtil.conversionFormat(language, insertTime));
|
}
|
}
|
return list;
|
}
|
}
|