package com.stylefeng.guns.modular.system.controller.general;
|
|
import com.baomidou.mybatisplus.plugins.Page;
|
import com.stylefeng.guns.core.base.controller.BaseController;
|
import com.stylefeng.guns.core.common.constant.factory.PageFactory;
|
import com.stylefeng.guns.core.shiro.ShiroKit;
|
import com.stylefeng.guns.core.util.SinataUtil;
|
import com.stylefeng.guns.core.util.ToolUtil;
|
import com.stylefeng.guns.modular.system.model.TEmail;
|
import com.stylefeng.guns.modular.system.model.TSystemNotice;
|
import com.stylefeng.guns.modular.system.model.TUser;
|
import com.stylefeng.guns.modular.system.service.ITSystemNoticeService;
|
import com.stylefeng.guns.modular.system.service.ITUserService;
|
import com.stylefeng.guns.modular.system.service.TEmailService;
|
import com.stylefeng.guns.modular.system.util.EmailUtil;
|
import com.stylefeng.guns.modular.system.util.itextpdf.HtmlToPdfUtils;
|
import org.jsoup.Jsoup;
|
import org.jsoup.nodes.Document;
|
import org.jsoup.nodes.Element;
|
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.stereotype.Controller;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.ResponseBody;
|
import org.springframework.ui.Model;
|
import org.springframework.web.bind.annotation.PathVariable;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import com.stylefeng.guns.core.log.LogObjectHolder;
|
import org.springframework.web.bind.annotation.RequestParam;
|
import com.stylefeng.guns.modular.system.model.TFeedback;
|
import com.stylefeng.guns.modular.system.service.ITFeedbackService;
|
|
import java.io.File;
|
import java.io.FileInputStream;
|
import java.io.FileOutputStream;
|
import java.io.FileWriter;
|
import java.util.Date;
|
import java.util.Map;
|
|
/**
|
* 反馈管理控制器
|
*
|
* @author fengshuonan
|
* @Date 2020-06-10 10:24:59
|
*/
|
@Controller
|
@RequestMapping("/tFeedback")
|
public class TFeedbackController extends BaseController {
|
|
private String PREFIX = "/system/tFeedback/";
|
|
@Autowired
|
private ITFeedbackService tFeedbackService;
|
|
@Autowired
|
private ITSystemNoticeService tSystemNoticeService;
|
|
@Autowired
|
private ITUserService userService;
|
|
@Value("${spring.mail.template-path}")
|
private String templatePath;
|
|
@Autowired
|
private TEmailService emailService;
|
|
/**
|
* 跳转到司机反馈管理首页
|
*/
|
@RequestMapping("")
|
public String index() {
|
return PREFIX + "tFeedback.html";
|
}
|
|
/**
|
* 跳转到用户反馈管理首页
|
*/
|
@RequestMapping("/userFeedback")
|
public String userFeedback() {
|
return PREFIX + "userFeedback.html";
|
}
|
|
/**
|
* 跳转到添加反馈管理
|
*/
|
@RequestMapping("/tFeedback_add")
|
public String tFeedbackAdd() {
|
return PREFIX + "tFeedback_add.html";
|
}
|
|
/**
|
* 跳转到修改反馈管理
|
*/
|
@RequestMapping("/tFeedback_immediately/{tFeedbackId}/{type}")
|
public String tFeedbackUpdate(@PathVariable Integer tFeedbackId, @PathVariable Integer type, Model model) {
|
model.addAttribute("tFeedbackId",tFeedbackId);
|
model.addAttribute("type",type);
|
return PREFIX + "tFeedback_immediately.html";
|
}
|
|
/**
|
* 跳转到查看详情
|
*/
|
@RequestMapping("/lookDetail/{id}/{type}")
|
public String lookDetail(@PathVariable Integer id, @PathVariable Integer type, Model model) {
|
TFeedback tFeedback = tFeedbackService.selectById(id);
|
String str = "";
|
if (1 == type){
|
str = tFeedback.getContent();
|
}else if (2 == type){
|
str = tFeedback.getRemark();
|
}
|
model.addAttribute("str",str);
|
return "/system/tComplaint/lookDetail.html";
|
}
|
|
/**
|
* 获取司机反馈管理列表
|
*/
|
@RequestMapping(value = "/list")
|
@ResponseBody
|
public Object list(String insertTime,
|
String driverName,
|
String driverPhone,
|
Integer state) {
|
String beginTime = null;
|
String endTime = null;
|
if (SinataUtil.isNotEmpty(insertTime)){
|
String[] timeArray = insertTime.split(" - ");
|
beginTime = timeArray[0];
|
endTime = timeArray[1];
|
}
|
Page<Map<String, Object>> page = new PageFactory<Map<String, Object>>().defaultPage();
|
if (ShiroKit.getUser().getRoleType() != 1){
|
page.setRecords(null);
|
}else{
|
page.setRecords(tFeedbackService.getFeedbackList(page,beginTime,endTime,2,driverName,driverPhone,state));
|
}
|
return super.packForBT(page);
|
}
|
|
/**
|
* 获取用户反馈管理列表
|
*/
|
@RequestMapping(value = "/listUser")
|
@ResponseBody
|
public Object listUser(String insertTime,
|
String userName,
|
String userPhone,
|
Integer state) {
|
String beginTime = null;
|
String endTime = null;
|
if (SinataUtil.isNotEmpty(insertTime)){
|
String[] timeArray = insertTime.split(" - ");
|
beginTime = timeArray[0];
|
endTime = timeArray[1];
|
}
|
Page<Map<String, Object>> page = new PageFactory<Map<String, Object>>().defaultPage();
|
if (ShiroKit.getUser().getRoleType() != 1){
|
page.setRecords(null);
|
}else{
|
page.setRecords(tFeedbackService.getFeedbackList(page,beginTime,endTime,1,userName,userPhone,state));
|
}
|
return super.packForBT(page);
|
}
|
|
/**
|
* 立即处理操作
|
*/
|
@RequestMapping(value = "/immediately")
|
@ResponseBody
|
public Object immediately(@RequestParam Integer id,@RequestParam String remark) {
|
TFeedback tFeedback = tFeedbackService.selectById(id);
|
if (SinataUtil.isNotEmpty(tFeedback)){
|
tFeedback.setCldate(new Date());
|
tFeedback.setRemark(remark);
|
tFeedback.setHandleUserId(ShiroKit.getUser().getId());
|
tFeedback.setState(2);
|
tFeedbackService.updateById(tFeedback);
|
|
try {
|
TUser userInfo = userService.selectById(tFeedback.getUserId());
|
if(ToolUtil.isNotEmpty(userInfo.getEmail())){
|
String path = templatePath + "user/feedbackResult.html";
|
Document document = Jsoup.parse(new File(path), "UTF-8");
|
Integer language = userInfo.getLanguage();
|
if(1 == language){
|
document.getElementById("english").remove();
|
document.getElementById("french").remove();
|
document.getElementsByTag("title").get(0).text("意见反馈处理结果");
|
Element chinese_user = document.getElementById("chinese_user");
|
chinese_user.text("您好 " + userInfo.getNickName() + ",");
|
Element chinese_content = document.getElementById("chinese_content");
|
chinese_content.text(remark);
|
EmailUtil.send(userInfo.getEmail(), "意见反馈处理结果", document.html());
|
}
|
if(2 == language){
|
document.getElementById("chinese").remove();
|
document.getElementById("french").remove();
|
document.getElementsByTag("title").get(0).text("Solutions for feedback");
|
Element english_user = document.getElementById("english_user");
|
english_user.text("Hello " + userInfo.getNickName() + ",");
|
Element english_content = document.getElementById("english_content");
|
english_content.text(remark);
|
EmailUtil.send(userInfo.getEmail(), "Solutions for feedback", document.html());
|
}
|
if(3 == language){
|
document.getElementById("chinese").remove();
|
document.getElementById("english").remove();
|
document.getElementsByTag("title").get(0).text("Solutions pour avis");
|
Element french_user = document.getElementById("french_user");
|
french_user.text("Bonjour " + userInfo.getNickName() + ",");
|
Element french_content = document.getElementById("french_content");
|
french_content.text(remark);
|
EmailUtil.send(userInfo.getEmail(), "Solutions pour avis", document.html());
|
}
|
|
//开始生成pdf收据和html收据
|
File file = new File("/home/igotechgh/nginx/html/files/html/");
|
if(!file.exists()){
|
file.mkdirs();
|
}
|
String randomString = ToolUtil.getRandomString(10);
|
file = new File("/home/igotechgh/nginx/html/files/html/feedbackResult_" + randomString + ".html");
|
if(!file.exists()){
|
file.createNewFile();
|
}
|
FileWriter fileWriter = new FileWriter(file);
|
fileWriter.write(document.html());
|
fileWriter.flush();
|
fileWriter.close();
|
|
String link ="https://igo.i-go.group/files/html/feedbackResult_" + randomString + ".html";
|
TEmail tEmail = new TEmail();
|
tEmail.setLink(link);
|
tEmail.setUserId(userInfo.getId());
|
tEmail.setType(1);
|
tEmail.setName(1 == language ? "意见反馈处理结果" : 2 == language ? "Solutions for feedback" : "Solutions pour avis");
|
tEmail.setCreateTime(new Date());
|
int i = cn.hutool.core.date.DateUtil.dayOfWeek(new Date())-1;
|
tEmail.setWeek(EmailUtil.getWeek(2,i));
|
boolean am = cn.hutool.core.date.DateUtil.isAM(new Date());
|
if(am){
|
tEmail.setAmOrPm("AM");
|
}else {
|
tEmail.setAmOrPm("PM");
|
}
|
emailService.insert(tEmail);
|
}
|
}catch (Exception e){
|
e.printStackTrace();
|
}
|
|
//增加系统消息
|
TSystemNotice notice = new TSystemNotice();
|
notice.setType(2);
|
notice.setUserType(tFeedback.getType());
|
notice.setContent(remark);
|
notice.setUserId(tFeedback.getUserId());
|
notice.setInsertTime(new Date());
|
notice.setRead(1);
|
tSystemNoticeService.insert(notice);
|
}
|
return SUCCESS_TIP;
|
}
|
|
}
|