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 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."); } content = content.toLowerCase(); List sensitiveWords = sensitiveWordsMapper.selectList(null); for(SensitiveWords s : sensitiveWords) { content = content.replaceAll(s.getContent().toLowerCase(), "***"); } } 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> queryProblems(Integer pageNum, Integer size, Integer uid, Integer language) throws Exception { pageNum = (pageNum - 1) * size; List> list = problemMapper.queryProblems(pageNum, size, uid); for (Map map : list) { if(null != map.get("insertTime")){ String insertTime = map.get("insertTime").toString(); map.put("insertTime", DateUtil.conversionFormat(language, insertTime)); } } return list; } }