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.modular.system.model.TComplaint; import com.stylefeng.guns.modular.system.model.TSystemNotice; import com.stylefeng.guns.modular.system.model.TUser; import com.stylefeng.guns.modular.system.service.ITComplaintService; import com.stylefeng.guns.modular.system.service.ITSystemNoticeService; import com.stylefeng.guns.modular.system.service.ITUserService; import com.stylefeng.guns.modular.system.util.PushMinistryOfTransportUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Map; /** * 司机投诉用户列表控制器 * * @author fengshuonan * @Date 2020-06-09 17:31:24 */ @Controller @RequestMapping("/tComplaintDriver") public class TComplaintDriverController extends BaseController { private String PREFIX = "/system/tComplaintDriver/"; @Autowired private ITComplaintService tComplaintService; @Autowired private ITSystemNoticeService tSystemNoticeService; @Autowired private PushMinistryOfTransportUtil pushMinistryOfTransportUtil; @Value("${pushMinistryOfTransport}") private boolean pushMinistryOfTransport; @Autowired private ITUserService userService; /** * 跳转到投诉列表首页 */ @RequestMapping("") public String index() { return PREFIX + "tComplaint.html"; } /** * 跳转到黑名单列表页 */ @RequestMapping("/blackList1") public String blackList() { return PREFIX + "tComplaint_BlackList.html"; } /** * 跳转到查看详情 */ @RequestMapping("/lookDetail/{id}/{type}") public String lookDetail(@PathVariable Integer id, @PathVariable Integer type, Model model) { TComplaint tComplaint = tComplaintService.selectById(id); String str = ""; if (1 == type){ str = tComplaint.getReason(); }else if (2 == type){ str = tComplaint.getDescription(); }else if (3 == type){ str = tComplaint.getHandleResult(); } model.addAttribute("str",str); return "/system/tComplaint/lookDetail.html"; } /** * 跳转到立即处理页面 */ @RequestMapping("/tComplaint_immediately/{tComplaintId}") public String tComplaintUpdate(@PathVariable Integer tComplaintId, Model model) { model.addAttribute("tComplaintId",tComplaintId); return PREFIX + "tComplaint_immediately.html"; } /** * 跳转到查看详情 */ @RequestMapping("/lookDetail/{str}") public String lookDetail(@PathVariable String str, Model model) { System.out.println(str); model.addAttribute("str",str); return PREFIX + "lookDetail.html"; } /** * 获取投诉列表列表 */ @RequestMapping(value = "/list") @ResponseBody public Object list(String insertTime, String userName, String driverName, String userPhone, Integer isHandle) { String beginTime = null; String endTime = null; if (SinataUtil.isNotEmpty(insertTime)){ String[] timeArray = insertTime.split(" - "); beginTime = timeArray[0]; endTime = timeArray[1]; } Page> page = new PageFactory>().defaultPage(); page.setRecords(tComplaintService.getComplaintDriverList(page,ShiroKit.getUser().getRoleType(),ShiroKit.getUser().getObjectId(),beginTime,endTime,userName,userPhone,driverName,isHandle)); return super.packForBT(page); } /** * 查看黑名单列表 */ @RequestMapping(value = "/blackList") @ResponseBody public Object list(String insertTime, String phone, String userName) { String beginTime = null; String endTime = null; if (SinataUtil.isNotEmpty(insertTime)){ String[] timeArray = insertTime.split(" - "); beginTime = timeArray[0]; endTime = timeArray[1]; } Page> page = new PageFactory>().defaultPage(); List> blackList = tComplaintService.getBlackList(page, ShiroKit.getUser().getRoleType() , ShiroKit.getUser().getObjectId(), beginTime, endTime, userName, phone); List> maps = new ArrayList<>(); List strings = new ArrayList<>(); for (Map stringObjectMap : blackList) { if (strings.isEmpty()){ strings.add(String.valueOf(stringObjectMap.get("id"))); maps.add(stringObjectMap); }else if (!strings.contains(String.valueOf(stringObjectMap.get("id")))){ strings.add(String.valueOf(stringObjectMap.get("id"))); maps.add(stringObjectMap); } } page.setRecords(maps); return super.packForBT(page); } /** * 删除投诉列表 */ @RequestMapping(value = "/immediately") @ResponseBody public Object immediately(@RequestParam Integer id,@RequestParam String handleResult,@RequestParam Integer handleType) { TComplaint tComplaint = tComplaintService.selectById(id); Integer userId = tComplaint.getUserId(); TUser tUser = userService.selectById(userId); switch (handleType){ case 1: tComplaint.setIsBlack(1); tComplaint.setIsHandle(1); tComplaint.setBlackTime(new Date()); if (tUser!=null){ tUser.setIsBlack(1); tUser.setBlackTime(new Date()); userService.updateById(tUser); } break; case 2: tComplaint.setHandleType(2); break; } if(SinataUtil.isNotEmpty(tComplaint)){ tComplaint.setHandleResult(handleResult); tComplaint.setHandleUserId(ShiroKit.getUser().getId()); tComplaint.setIsHandle(1); tComplaint.setHandleTime(new Date()); tComplaintService.updateById(tComplaint); //增加系统消息 TSystemNotice notice = new TSystemNotice(); notice.setType(2); notice.setUserType(1); notice.setContent("投诉处理结果:【"+handleResult+"】。"); notice.setUserId(tComplaint.getUserId()); notice.setInsertTime(new Date()); notice.setRead(1); tSystemNoticeService.insert(notice); new Thread(new Runnable() { @Override public void run() { if(pushMinistryOfTransport){//上传数据 pushMinistryOfTransportUtil.ratedPassengerComplaint(tComplaint.getId()); } } }).start(); } return SUCCESS_TIP; } /** * 删除投诉 */ @RequestMapping(value = "/delete") @ResponseBody public Object delete(Integer tComplaintId) { tComplaintService.deleteById(tComplaintId); return SUCCESS_TIP; } /** * 将用户移除黑名单 */ @RequestMapping(value = "/removeBlack") @ResponseBody public Object removeBlack(Integer id) { TUser user = userService.selectById(id); user.setIsBlack(0); user.setBlackTime(null); userService.updateById(user); return SUCCESS_TIP; } /** * 修改投诉列表 */ @RequestMapping(value = "/update") @ResponseBody public Object update(TComplaint tComplaint) { tComplaintService.updateById(tComplaint); return SUCCESS_TIP; } /** * 投诉列表详情 */ @RequestMapping(value = "/detail/{tComplaintId}") @ResponseBody public Object detail(@PathVariable("tComplaintId") Integer tComplaintId) { return tComplaintService.selectById(tComplaintId); } }