package com.stylefeng.guns.modular.system.controller.specialTrain;
|
|
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.*;
|
import com.stylefeng.guns.modular.system.service.*;
|
import com.stylefeng.guns.modular.system.util.EmailUtil;
|
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 javax.annotation.Resource;
|
import java.io.File;
|
import java.io.FileWriter;
|
import java.util.Date;
|
import java.util.Map;
|
|
/**
|
* 积分兑换订单控制器
|
*
|
* @author fengshuonan
|
* @Date 2020-09-02 15:22:24
|
*/
|
@Controller
|
@RequestMapping("/tIntegralOrder")
|
public class TIntegralOrderController extends BaseController {
|
|
private String PREFIX = "/system/tIntegralOrder/";
|
|
@Autowired
|
private ITIntegralOrderService tIntegralOrderService;
|
|
@Autowired
|
private ITUserService userService;
|
|
@Value("${spring.mail.template-path}")
|
private String templatePath;
|
|
@Resource
|
private TEmailService emailService;
|
|
@Resource
|
private ITSystemNoticeService systemNoticeService;
|
|
@Resource
|
private ITIntegralGoodsService integralGoodsService;
|
|
|
|
|
|
|
/**
|
* 跳转到积分兑换订单首页
|
*/
|
@RequestMapping("")
|
public String index() {
|
return PREFIX + "tIntegralOrder.html";
|
}
|
|
/**
|
* 跳转到查看详情
|
*/
|
@RequestMapping("/lookDetail/{id}")
|
public String lookDetail(@PathVariable Integer id, Model model) {
|
TIntegralOrder tIntegralOrder = tIntegralOrderService.selectById(id);
|
model.addAttribute("str",tIntegralOrder.getRemark());
|
return "/system/tComplaint/lookDetail.html";
|
}
|
|
/**
|
* 跳转至立即处理页面
|
*/
|
@RequestMapping("/tIntegralOrder_immediately/{tIntegralOrderId}")
|
public String tIntegralOrder_immediately(@PathVariable Integer tIntegralOrderId, Model model) {
|
model.addAttribute("id",tIntegralOrderId);
|
return PREFIX + "tIntegralOrder_immediately.html";
|
}
|
|
/**
|
* 获取积分兑换订单列表
|
*/
|
@RequestMapping(value = "/list")
|
@ResponseBody
|
public Object list(String insertTime,String userName,String goodsName,String consigneeName,String consigneePhone,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(tIntegralOrderService.getIntegralOrderList(page,beginTime,endTime,userName,goodsName,consigneeName,consigneePhone,state));
|
}
|
return super.packForBT(page);
|
}
|
|
/**
|
* 立即处理
|
*/
|
@RequestMapping(value = "/immediately")
|
@ResponseBody
|
public Object immediately(TIntegralOrder tIntegralOrder) {
|
tIntegralOrder.setState(2);
|
tIntegralOrder.setManageRemark(tIntegralOrder.getRemark());
|
tIntegralOrder.setRemark(null);
|
tIntegralOrderService.updateById(tIntegralOrder);
|
TIntegralOrder tIntegralOrder1 = tIntegralOrderService.selectById(tIntegralOrder.getId());
|
TUser tUser = userService.selectById(tIntegralOrder1.getUserId());
|
TIntegralGoods tIntegralGoods = integralGoodsService.selectById(tIntegralOrder1.getGoodsId());
|
try {
|
Integer language = tUser.getLanguage();
|
systemNoticeService.addSystemNotice(1, language == 1 ? "您使用" + tIntegralOrder1.getIntegral() + "积分成功兑换" + tIntegralGoods.getName() :
|
language == 2 ? "You redeemed " + tIntegralOrder1.getIntegral() + " points for the " + tIntegralGoods.getName() + " successfully" :
|
"Vous avez échangé " + tIntegralOrder1.getIntegral() + " points avec succès contre le " + tIntegralGoods.getName() + "", tIntegralOrder1.getUserId());
|
} catch (Exception e) {
|
throw new RuntimeException(e);
|
}
|
new Thread(new Runnable() {
|
@Override
|
public void run() {
|
if(ToolUtil.isNotEmpty(tUser.getEmail())){
|
try {
|
Integer language = tUser.getLanguage();
|
String nickName = tUser.getNickName();
|
String email = tUser.getEmail();
|
|
String path = templatePath + "user/pointExchange.html";
|
Document document = Jsoup.parse(new File(path), "UTF-8");
|
if(1 == language){
|
document.getElementById("english").remove();
|
document.getElementById("french").remove();
|
document.getElementsByTag("title").get(0).text("积分兑换已通过审核");
|
Element user_chinese = document.getElementById("user_chinese");
|
user_chinese.text("您好 " + nickName + ",");
|
}
|
if(2 == language){
|
document.getElementById("chinese").remove();
|
document.getElementById("french").remove();
|
document.getElementsByTag("title").get(0).text("Points redemption approved");
|
Element user_chinese = document.getElementById("user_english");
|
user_chinese.text("Hello " + nickName + ",");
|
}
|
if(3 == language){
|
document.getElementById("chinese").remove();
|
document.getElementById("english").remove();
|
document.getElementsByTag("title").get(0).text("Approbation de l’échange de points");
|
Element user_french = document.getElementById("user_french");
|
user_french.text("Bonjour " + nickName + ",");
|
}
|
EmailUtil.send(email, language == 1 ? "积分兑换已通过审核" : language == 2 ? "Points redemption approved" : "Approbation de l’échange de points", document.html());
|
|
//开始生成pdf收据和html收据
|
File file = new File("/usr/local/nginx/html/files/html/");
|
if(!file.exists()){
|
file.mkdirs();
|
}
|
String randomString = ToolUtil.getRandomString(10);
|
file = new File("/usr/local/nginx/html/files/html/complaint_" + randomString + ".html");
|
if(!file.exists()){
|
file.createNewFile();
|
}
|
FileWriter fileWriter = new FileWriter(file);
|
fileWriter.write(document.html());
|
fileWriter.flush();
|
fileWriter.close();
|
|
String link ="http://182.160.16.251:81/files/html/complaint_" + randomString + ".html";
|
TEmail tEmail = new TEmail();
|
tEmail.setLink(link);
|
tEmail.setUserId(tUser.getId());
|
tEmail.setType(1);
|
tEmail.setName(language == 1 ? "积分兑换已通过审核" : language == 2 ? "Points redemption approved" : "Approbation de l’échange de points");
|
tEmail.setCreateTime(new Date());
|
int i = cn.hutool.core.date.DateUtil.dayOfWeek(new Date())-1;
|
tEmail.setWeek(EmailUtil.getWeek(language,i));
|
boolean am = cn.hutool.core.date.DateUtil.isAM(new Date());
|
if(am){
|
tEmail.setAmOrPm(language==1?"上午":language==2?"morning":"matin");
|
}else {
|
tEmail.setAmOrPm(language==1?"下午":language==2?"afternoon":"après-midi");
|
}
|
emailService.insert(tEmail);
|
}catch (Exception e){
|
e.printStackTrace();
|
}
|
}
|
|
|
}
|
}).start();
|
|
return SUCCESS_TIP;
|
}
|
|
/**
|
* 删除积分兑换订单
|
*/
|
@RequestMapping(value = "/delete")
|
@ResponseBody
|
public Object delete(@RequestParam Integer tIntegralOrderId) {
|
TIntegralOrder tIntegralOrder = tIntegralOrderService.selectById(tIntegralOrderId);
|
tIntegralOrder.setState(3);
|
tIntegralOrderService.updateById(tIntegralOrder);
|
return SUCCESS_TIP;
|
}
|
|
}
|