package com.landtool.lanbase.modules.res.controller; import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashMap; import java.util.LinkedList; import java.util.List; import java.util.Map; import org.apache.shiro.SecurityUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import com.github.pagehelper.Page; import com.github.pagehelper.PageHelper; import com.landtool.lanbase.common.annotation.LogAction; import com.landtool.lanbase.common.utils.Result; import com.landtool.lanbase.config.SysTemPropertyConfig; import com.landtool.lanbase.modules.api.utils.PageBean; import com.landtool.lanbase.modules.org.service.OrgUnitService; import com.landtool.lanbase.modules.org.service.OrgUserService; import com.landtool.lanbase.modules.res.entity.Res_MainInfo; import com.landtool.lanbase.modules.res.entity.Res_ProblemFeedback; import com.landtool.lanbase.modules.res.service.ResMainInfoService; import com.landtool.lanbase.modules.res.service.ResProblemFeedbackService; import com.landtool.lanbase.modules.sys.controller.AbstractController; @Controller @RequestMapping("res") public class ResProblemFeedbackController extends AbstractController { @Autowired private SysTemPropertyConfig sysConfig; @Autowired private OrgUserService orgUserService; @Autowired private OrgUnitService orgUnitService; @Autowired private ResProblemFeedbackService resProblemFeedbackService; @Autowired private ResMainInfoService resMainInfoService; @RequestMapping("/problemFeedback/index") public String index(Integer resourceid, Model model) { model.addAttribute("resourceid", resourceid); model.addAttribute("pubzyWebRoot", sysConfig.getPubzyWebRoot()); //已正常按钮(管理员、发布人可用,最新一笔需为异常状态,点击复制最新一笔异常记录,修改服务状态为正常、资源主表状态为正常) //新增按钮(记录为空或者最新一笔记录为正常) int isQuanXian = 0; int isExitsPro = 0; Map paramMap = new HashMap(); paramMap.put("resourceid", resourceid); Res_ProblemFeedback problemFeedback = resProblemFeedbackService.checkShowNormalBtn(paramMap); List problemFeedbacks = resProblemFeedbackService.selectByResourceid(resourceid); if (problemFeedback != null && problemFeedback.getServerstatus() == 0) { isExitsPro = 1; } Res_MainInfo mainInfo = resMainInfoService.selectByPrimaryKey(resourceid); if (!SecurityUtils.getSubject().isPermitted("org_user_admin")) { if (mainInfo != null && mainInfo.getCreateuserid() == getUserId()) { isQuanXian = 1; } } else { isQuanXian = 1; } model.addAttribute("isShow", (isQuanXian + isExitsPro) > 1 ? 1 : 0); model.addAttribute("isAdd", (problemFeedbacks == null || problemFeedbacks.size() == 0 || problemFeedbacks.get(0).getServerstatus().equals(1)) ? 1 : 0); return "ResManage/ResRegister/ProblemFeedback"; } @ResponseBody @RequestMapping("/problemFeedback/getDataList") public Result getDataList(Integer resourceid,PageBean pageBean) { Page page = PageHelper.startPage(pageBean.getPage(), pageBean.getLimit()); List res_problemFeedbacks = resProblemFeedbackService.selectByResourceid(resourceid); int countNums = (int) ((Page) res_problemFeedbacks).getTotal(); PageBean pageData = new PageBean<>(pageBean.getPage(), pageBean.getLimit(), countNums); pageData.setItems(res_problemFeedbacks); StringBuilder rsb = new StringBuilder(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); rsb.append("{'totalCount':'" + countNums); rsb.append("','topics':["); List> maps = new LinkedList<>(); for (int i = 0; i < res_problemFeedbacks.size(); i++) { Map map = new HashMap<>(); map.put("objectid", res_problemFeedbacks.get(i).getObjectid()); map.put("resourceid", res_problemFeedbacks.get(i).getResourceid()); map.put("addtime", sdf.format(res_problemFeedbacks.get(i).getAddtime())); map.put("remark", (res_problemFeedbacks.get(i).getRemark()!=null?res_problemFeedbacks.get(i).getRemark():"")); map.put("createusername", orgUserService.getChinesename(res_problemFeedbacks.get(i).getCreateuserid())); map.put("feedbacktype", res_problemFeedbacks.get(i).getFeedbacktype()); map.put("feedbackstatus", res_problemFeedbacks.get(i).getFeedbackstatus()); map.put("serverstatus", (res_problemFeedbacks.get(i).getServerstatus()==1?"正常":"异常")); // // if (i != 0) { // rsb.append(","); // } // rsb.append("{"); // rsb.append("'objectid':" + res_problemFeedbacks.get(i).getObjectid()); // rsb.append(",'resourceid':" + res_problemFeedbacks.get(i).getResourceid()); // rsb.append(",'addtime':'" + sdf.format(res_problemFeedbacks.get(i).getAddtime()) + "'"); // rsb.append(",'remark':'" + (res_problemFeedbacks.get(i).getRemark()!=null?res_problemFeedbacks.get(i).getRemark():"") + "'"); // rsb.append(",'createusername':'" + orgUserService.getChinesename(res_problemFeedbacks.get(i).getCreateuserid()) + "'"); // rsb.append(",'feedbacktype':'" + res_problemFeedbacks.get(i).getFeedbacktype() + "'"); // rsb.append(",'feedbackstatus':'" + res_problemFeedbacks.get(i).getFeedbackstatus() + "'"); // rsb.append(",'serverstatus':'" + (res_problemFeedbacks.get(i).getServerstatus()==1?"正常":"异常") + "'"); // rsb.append("}"); maps.add(map); } // rsb.append("]}"); return Result.ok().put("totalCount", countNums).put("topics", maps); } @ResponseBody @RequestMapping("/problemFeedback/insertSelective") @LogAction("资源管理,问题反馈,问题反馈新增,新增") public String insertSelective(Res_ProblemFeedback res_problemFeedback) { Integer result = 0; java.sql.Timestamp time = new java.sql.Timestamp(new Date().getTime()); res_problemFeedback.setCreateuserid(getUserId().intValue()); res_problemFeedback.setAddtime(time); res_problemFeedback.setFeedbacktype("人工"); res_problemFeedback.setServerstatus(0); result = resProblemFeedbackService.insertSelective(res_problemFeedback); result = updateMainInfoStatus(res_problemFeedback.getResourceid(),1); return "{'result':'" + result + "'}"; } //已正常按钮(点击复制最新一笔异常记录,修改服务状态为正常、资源主表状态为正常) @ResponseBody @RequestMapping("/problemFeedback/insertNormalSelective") @LogAction("资源管理,问题反馈,问题反馈新增,新增") public String insertNormalSelective(Integer resourceid) { Integer result = 0; java.sql.Timestamp time = new java.sql.Timestamp(new Date().getTime()); Map paramMap = new HashMap(); paramMap.put("resourceid", resourceid); Res_ProblemFeedback problemFeedback = resProblemFeedbackService.checkShowNormalBtn(paramMap); if(problemFeedback != null ){ problemFeedback.setCreateuserid(getUserId().intValue()); problemFeedback.setAddtime(time); problemFeedback.setServerstatus(1); problemFeedback.setObjectid(null); result = resProblemFeedbackService.insertSelective(problemFeedback); result = updateMainInfoStatus(resourceid,0); } return "{'result':'" + result + "'}"; } //修改主表状态 private int updateMainInfoStatus(Integer resourceid,Integer status){ Integer result = 0; Map paramMap = new HashMap(); paramMap.put("resourceid", resourceid); paramMap.put("resourcestatus", status); result = resMainInfoService.updateStatusByPrimaryKey(paramMap); return result; } /** * 后台管理 - 列表页面 */ @RequestMapping("/manage/problemfeedback/index") public String index(Model model) { model.addAttribute("pubzyWebRoot", sysConfig.getPubzyWebRoot()); model.addAttribute("systemName", sysConfig.getAppFullName()); return "manage/problemfeedback/index"; } /** * 后台管理 - 获取列表数据 */ @ResponseBody @RequestMapping("/manage/problemfeedback/getlist") @LogAction("资源管理,问题反馈,问题反馈列表查询,查询") public Result getlist(Res_ProblemFeedback resProblemFeedback, PageBean pageBean) { PageHelper.startPage(pageBean.getPage(), pageBean.getLimit()); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); String timeBeg = resProblemFeedback.getAddtimeBeg(); String timeEnd = resProblemFeedback.getAddtimeEnd(); // 查询当前登陆用户是否是超级管理员 是:查所有 不是:查自己的 if (!SecurityUtils.getSubject().isPermitted("org_user_admin")) { // 如果是超级管理员,不添加用户id,查询所有。如果不是 添加id 查询单个 resProblemFeedback.setExistpermission(getUserId().toString()); } List list = resProblemFeedbackService.selectResProblemfeedback(resProblemFeedback); int countNums = (int) ((Page) list).getTotal(); PageBean pageData = new PageBean<>(pageBean.getPage(), pageBean.getLimit(), countNums); pageData.setItems(list); List> maps = new LinkedList<>(); for (Integer i = 0; i < list.size(); i++) { Map map = new HashMap<>(); map.put("objectid", list.get(i).getObjectid()); map.put("resourceid", list.get(i).getResourceid()); map.put("addtime", sdf.format(list.get(i).getAddtime())); map.put("remark", (list.get(i).getRemark()!=null?list.get(i).getRemark():"")); map.put("createusername", orgUserService.getChinesename(list.get(i).getCreateuserid())); map.put("feedbacktype", list.get(i).getFeedbacktype()); map.put("feedbackstatus", list.get(i).getFeedbackstatus()); map.put("serverstatus", (list.get(i).getServerstatus()==1?"正常":"异常")); map.put("title", list.get(i).getTitle()); maps.add(map); } return Result.ok().put("totalCount", countNums).put("topics", maps); } }