puzhibing
2023-05-18 53562814add61acfdc02d6b25dae6324f6fd5f92
ManagementIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/TReportLossController.java
New file
@@ -0,0 +1,167 @@
package com.stylefeng.guns.modular.system.controller;
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.TUser;
import com.stylefeng.guns.modular.system.service.ITUserService;
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 com.stylefeng.guns.modular.system.model.TReportLoss;
import com.stylefeng.guns.modular.system.service.ITReportLossService;
import java.io.File;
import java.util.Map;
/**
 * 控制器
 *
 * @author fengshuonan
 * @Date 2022-09-29 11:05:28
 */
@Controller
@RequestMapping("/tReportLoss")
public class TReportLossController extends BaseController {
    private String PREFIX = "/system/tReportLoss/";
    @Autowired
    private ITReportLossService tReportLossService;
    @Autowired
    private ITUserService userService;
    @Value("${spring.mail.template-path}")
    private String templatePath;
    /**
     * 跳转到首页
     */
    @RequestMapping("")
    public String index() {
        return PREFIX + "tReportLoss.html";
    }
    /**
     * 跳转到添加
     */
    @RequestMapping("/tReportLoss_add")
    public String tReportLossAdd() {
        return PREFIX + "tReportLoss_add.html";
    }
    /**
     * 跳转到修改
     */
    @RequestMapping("/tReportLoss_update/{tReportLossId}")
    public String tReportLossUpdate(@PathVariable Integer tReportLossId, Model model) {
        TReportLoss tReportLoss = tReportLossService.selectById(tReportLossId);
        model.addAttribute("item",tReportLoss);
        LogObjectHolder.me().set(tReportLoss);
        return PREFIX + "tReportLoss_edit.html";
    }
    /**
     * 获取列表
     */
    @RequestMapping(value = "/list")
    @ResponseBody
    public Object list(String insertTime,String phone,Integer status) {
        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(tReportLossService.getReportLossList(beginTime,endTime,phone,status));
//        }
        return tReportLossService.getReportLossList(beginTime,endTime,phone,status);
    }
    /**
     * 新增
     */
    @RequestMapping(value = "/add")
    @ResponseBody
    public Object add(TReportLoss tReportLoss) {
        tReportLossService.insert(tReportLoss);
        return SUCCESS_TIP;
    }
    /**
     * 删除
     */
    @RequestMapping(value = "/delete")
    @ResponseBody
    public Object delete(@RequestParam Integer tReportLossId) {
        tReportLossService.deleteById(tReportLossId);
        return SUCCESS_TIP;
    }
    /**
     * 修改
     */
    @RequestMapping(value = "/update")
    @ResponseBody
    public Object update(TReportLoss tReportLoss) {
        tReportLossService.updateById(tReportLoss);
        return SUCCESS_TIP;
    }
    /**
     * 详情
     */
    @RequestMapping(value = "/detail/{tReportLossId}")
    @ResponseBody
    public Object detail(@PathVariable("tReportLossId") Integer tReportLossId) {
        return tReportLossService.selectById(tReportLossId);
    }
    @RequestMapping(value = "/dispose")
    @ResponseBody
    public Object dispose(Integer id,String info) {
        TReportLoss tReportLoss = tReportLossService.selectById(id);
        tReportLoss.setDisposeInfo(info);
        tReportLoss.setStatus(2);
        tReportLoss.setHandleUserId(ShiroKit.getUser().getObjectId());
        boolean b = tReportLossService.updateById(tReportLoss);
        if(b){
            try {
                TUser userInfo = userService.selectById(tReportLoss.getUserId());
                if(ToolUtil.isNotEmpty(userInfo.getEmail())){
                    String path = templatePath +  "user/reportLossResult.html";
                    Document document = Jsoup.parse(new File(path), "UTF-8");
                    document.getElementById("chinese").attr("style", "display: none;");
                    document.getElementById("french").attr("style", "display: none;");
                    Element english_user = document.getElementById("english_user");
                    english_user.text("Hello " + userInfo.getNickName() + ",");
                    Element english_content = document.getElementById("english_content");
                    english_content.text(info);
                    EmailUtil.send(userInfo.getEmail(), "Notification of the result of the loss report",  document.html());
                }
            }catch (Exception e){
                e.printStackTrace();
            }
            return SUCCESS_TIP;
        }
        return ERROR;
    }
}