package cn.com.lzt.message.send.controller; import cn.com.lzt.common.entity.TSysFileEntity; import cn.com.lzt.common.service.TSysFileServiceI; import cn.com.lzt.common.util.DictUtil; import cn.com.lzt.common.util.LztUtil; import cn.com.lzt.common.view.JsonDataModelAndView; import cn.com.lzt.message.data.dao.MessageDataDao; import cn.com.lzt.message.data.dto.MessageMultiRowViewer; import cn.com.lzt.message.data.dto.MessageSimpleRowViewer; import cn.com.lzt.message.data.dto.MessageViewer; import cn.com.lzt.message.send.entity.MMessageEntity; import cn.com.lzt.message.personal.entity.MPersonalMessageEntity; import cn.com.lzt.message.send.entity.MessageWxTemplateConfig; import cn.com.lzt.message.send.service.MMessageSendServiceI; import cn.com.lzt.message.send.service.MMessageServiceI; import cn.com.lzt.message.send.page.MMessagePage; import cn.com.lzt.message.send.entity.MMessageSendScopeEntity; import java.util.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import cn.com.lzt.message.send.util.Des3; import cn.com.lzt.message.white_ip.entity.MWhiteIpListEntity; import cn.com.lzt.workflow.service.WorkflowServiceI; import com.jeecg.qianbao.util.FormProcUtil; import com.xcgl.utils.XcglConstant; import com.xcgl.weixin.entity.WXAjaxJson; import com.xcgl.weixin.entity.WXMultiRowViewer; import com.xcgl.weixin.entity.WXMultiRowViewerDto; import net.sf.json.JSONObject; import org.activiti.engine.impl.persistence.entity.MessageEntity; import org.apache.commons.lang3.StringUtils; import org.apache.log4j.Logger; import org.hibernate.criterion.Restrictions; import org.jeecgframework.core.common.model.json.DataGridReturn; import org.jeecgframework.core.util.*; import org.jeecgframework.minidao.pojo.MiniDaoPage; import org.jeecgframework.tag.vo.datatable.SortDirection; import org.jeecgframework.web.system.pojo.base.TSUser; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; import org.springframework.web.servlet.ModelAndView; import org.jeecgframework.core.common.controller.BaseController; import org.jeecgframework.core.common.exception.BusinessException; import org.jeecgframework.core.common.hibernate.qbc.CriteriaQuery; import org.jeecgframework.core.common.model.json.AjaxJson; import org.jeecgframework.core.common.model.json.DataGrid; import org.jeecgframework.core.constant.Globals; import org.jeecgframework.tag.core.easyui.TagUtil; import org.jeecgframework.web.system.service.SystemService; import org.jeecgframework.poi.excel.ExcelImportUtil; import org.jeecgframework.poi.excel.entity.ExportParams; import org.jeecgframework.poi.excel.entity.ImportParams; import org.jeecgframework.poi.excel.entity.vo.NormalExcelConstants; import org.springframework.ui.ModelMap; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartHttpServletRequest; import java.io.IOException; import org.springframework.http.ResponseEntity; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; import org.jeecgframework.core.beanvalidator.BeanValidators; import javax.validation.ConstraintViolation; import javax.validation.Validator; import java.net.URI; import java.util.regex.Pattern; import org.springframework.http.MediaType; import org.springframework.web.util.UriComponentsBuilder; /** * @Title: Controller * @Description: 消息管理主表 * @author onlineGenerator * @date 2019-05-23 16:51:48 * @version V1.0 * */ @Controller @RequestMapping("/mMessageController") public class MMessageController extends BaseController { /** * Logger for this class */ private static final Logger logger = Logger.getLogger(MMessageController.class); @Autowired private MMessageServiceI mMessageService; @Autowired private SystemService systemService; @Autowired private Validator validator; @Autowired private MMessageSendServiceI mMessageSendService; @Autowired private WorkflowServiceI workflowService; @Autowired private MessageDataDao messageDataDao; @Autowired private TSysFileServiceI tSysFileService; /** * 消息管理主表列表 页面跳转 * * @return */ @RequestMapping(params = "list") public ModelAndView list(HttpServletRequest request) { List whiteIpList = systemService.getList(MWhiteIpListEntity.class); String ip = IpUtil.getIpAddr(request); boolean access = false; for(MWhiteIpListEntity whiteIpListEntity:whiteIpList){ if(whiteIpListEntity.getIp().equals(ip)){ access=true; break; } } // if(!access){ // return new ModelAndView("cn/com/lzt/message/mMessage-noauth"); // } return new ModelAndView("cn/com/lzt/message/mMessageList"); } /** * easyui AJAX请求数据 * * @param request * @param response * @param dataGrid */ @RequestMapping(params = "datagrid") public void datagrid(MMessageEntity mMessage,HttpServletRequest request, HttpServletResponse response, DataGrid dataGrid) { CriteriaQuery cq = new CriteriaQuery(MMessageEntity.class, dataGrid); //查询条件组装器 String searchTitle = mMessage.getTitle(); if(StringUtils.isNotBlank(searchTitle)){ mMessage.setTitle(searchTitle+"*"); } org.jeecgframework.core.extend.hqlsearch.HqlGenerateUtil.installHql(cq, mMessage); try{ //自定义追加查询条件 TSUser user = ResourceUtil.getSessionUser(); cq.add(Restrictions.eq("createBy",user.getUserName())); }catch (Exception e) { throw new BusinessException(e.getMessage()); } cq.add(); cq.addOrder("createDate",SortDirection.desc); this.mMessageService.getDataGridReturn(cq, true); List msgList = dataGrid.getResults(); if(msgList != null && msgList.size() > 0) { ArrayList ids = new ArrayList(); for (MMessageEntity msg : msgList) { ids.add(msg.getId()); } String idstr = "'"+StringUtils.join(ids,"','")+"'"; String attrSql = "select distinct busi_id from t_sys_file where busi_id in("+idstr+") "; List exsitID = systemService.findListbySql(attrSql); HashMap exsitIDMap = new HashMap(); for (String id : exsitID) { exsitIDMap.put(id, id); } for (MMessageEntity msg : msgList) { if(exsitIDMap.containsKey(msg.getId())) { msg.setUploadattr("有附件"); }else { msg.setUploadattr("无附件"); } } } TagUtil.datagrid(response, dataGrid); } @RequestMapping(params = "messageSendLog") public ModelAndView messageSendLog(HttpServletRequest request, HttpServletResponse response) { return new ModelAndView("cn/com/lzt/message/messageSendLog"); } @RequestMapping(params = "messageSendLogData") public void messageSendLog(MMessageEntity mMessage,HttpServletRequest request, HttpServletResponse response, DataGrid dataGrid ) { String messageId = mMessage.getId(); MiniDaoPage list =messageDataDao.messageUserSendLogView(messageId,dataGrid.getPage(),dataGrid.getRows()); if(list!=null){ dataGrid.setResults(list.getResults()); dataGrid.setTotal(list.getTotal()); } TagUtil.datagrid(response, dataGrid); } /** * 删除消息管理主表 * * @return */ @RequestMapping(params = "doDel") @ResponseBody public AjaxJson doDel(MMessageEntity mMessage, HttpServletRequest request) { AjaxJson j = new AjaxJson(); mMessage = systemService.getEntity(MMessageEntity.class, mMessage.getId()); String message = "消息删除成功"; try{ mMessageService.delMain(mMessage); systemService.addLog(message, Globals.Log_Type_DEL, Globals.Log_Leavel_INFO); }catch(Exception e){ e.printStackTrace(); message = "消息删除失败"; throw new BusinessException(e.getMessage()); } j.setMsg(message); return j; } /** * 批量删除消息管理主表 * * @return */ @RequestMapping(params = "doBatchDel") @ResponseBody public AjaxJson doBatchDel(String ids,HttpServletRequest request){ AjaxJson j = new AjaxJson(); String message = "消息删除成功"; try{ for(String id:ids.split(",")){ MMessageEntity mMessage = systemService.getEntity(MMessageEntity.class, Integer.parseInt(id) ); mMessageService.delMain(mMessage); systemService.addLog(message, Globals.Log_Type_DEL, Globals.Log_Leavel_INFO); } }catch(Exception e){ e.printStackTrace(); message = "消息删除失败"; throw new BusinessException(e.getMessage()); } j.setMsg(message); return j; } /** * 添加消息管理主表 * * @return */ @RequestMapping(params = "doAdd") @ResponseBody public AjaxJson doAdd(MMessageEntity mMessage,MMessagePage mMessagePage, HttpServletRequest request) { beforeSave(mMessage); if(StringUtils.isNotBlank(mMessage.getId())) { return doUpdate(mMessage,mMessagePage,request); } List mMessageSendScopeList = buildMessageSendScope(mMessage); AjaxJson j = new AjaxJson(); String message = "添加成功"; try{ mMessageService.addMain(mMessage, mMessageSendScopeList); tSysFileService.updateBusiId(mMessage.getAttachment(), mMessage.getId()); systemService.addLog(message, Globals.Log_Type_INSERT, Globals.Log_Leavel_INFO); }catch(Exception e){ e.printStackTrace(); message = "消息管理主表添加失败"; throw new BusinessException(e.getMessage()); } j.setMsg(message); return j; } private void beforeSave(MMessageEntity mMessage) { String sendWay = mMessage.getSendWay(); String[] sendWayStringArr = sendWay.split(","); mMessage.setIsWx(0); mMessage.setIsSite(0); mMessage.setIsEmail(0); mMessage.setIsShort(0); mMessage.setStatus(0); for(String way :sendWayStringArr){ if(StringUtils.isBlank(way)){ continue; } try{ MMessageEntity.MessageSendWay wayEnum = MMessageEntity.MessageSendWay.valueOf(way); switch(wayEnum){ case wx:mMessage.setIsWx(1);break; case short_message:mMessage.setIsShort(1);break; case email:mMessage.setIsEmail(1);break; case site:mMessage.setIsSite(1);break; } }catch(Exception e){ continue; } } String templateData = mMessage.parseTemplateKv(); mMessage.setTemplateData(templateData); boolean indexUpdate = StringUtils.isBlank(mMessage.getId()) || mMessage.getFileIndex()==null; String sendText = mMessageService.replaceTemplate(mMessage,true,indexUpdate); mMessage.setSendText(sendText); TSUser user = ResourceUtil.getSessionUser(); mMessage.setCreateById(user.getId()); } private List buildMessageSendScope(MMessageEntity mMessage){ List mMessageSendScopeList = new ArrayList<>(); String sendScope = mMessage.getSendScope(); String sendScopeIds = mMessage.getSendScopeIds(); if(StringUtils.isBlank(sendScopeIds)){//全员的时候为空 MMessageSendScopeEntity sse = new MMessageSendScopeEntity(); sse.setSendScope(sendScope); mMessageSendScopeList.add(sse); }else { String[] sendScopeIdsArr = sendScopeIds.split(","); for(String id:sendScopeIdsArr){ MMessageSendScopeEntity sse = new MMessageSendScopeEntity(); sse.setSendScope(sendScope); sse.setScopeId(id); mMessageSendScopeList.add(sse); } } return mMessageSendScopeList; } /** * 更新消息管理主表 * * @return */ @RequestMapping(params = "doUpdate") @ResponseBody public AjaxJson doUpdate(MMessageEntity mMessage,MMessagePage mMessagePage, HttpServletRequest request) { // List mMessageSendScopeList = mMessagePage.getMMessageSendScopeList(); List mMessageSendScopeList = buildMessageSendScope(mMessage); AjaxJson j = new AjaxJson(); String message = "更新成功"; try{ mMessageService.updateMain(mMessage, mMessageSendScopeList); systemService.addLog(message, Globals.Log_Type_UPDATE, Globals.Log_Leavel_INFO); }catch(Exception e){ e.printStackTrace(); message = "更新消息管理主表失败"; throw new BusinessException(e.getMessage()); } j.setMsg(message); return j; } /** * 消息管理主表新增页面跳转 * * @return */ @RequestMapping(params = "goAdd") public ModelAndView goAdd(MMessageEntity mMessage, HttpServletRequest req) { if (StringUtil.isNotEmpty(mMessage.getId())) { mMessage = mMessageService.getEntity(MMessageEntity.class, mMessage.getId()); req.setAttribute("mMessagePage", mMessage); } return new ModelAndView("cn/com/lzt/message/mMessage-add"); } /** * 消息管理主表编辑页面跳转 * * @return */ @RequestMapping(params = "goUpdate") public ModelAndView goUpdate(MMessageEntity mMessage, HttpServletRequest req) { if (StringUtil.isNotEmpty(mMessage.getId())) { mMessage = mMessageService.getEntity(MMessageEntity.class, mMessage.getId()); req.setAttribute("mMessagePage", mMessage); } // return new ModelAndView("cn/com/lzt/message/mMessage-update"); return new ModelAndView("cn/com/lzt/message/mMessage-add"); } @RequestMapping(params = "goView") public ModelAndView goView(MMessageEntity message, HttpServletRequest request) { String taskId = request.getParameter("taskId"); if(LztUtil.isApiRequest()){ return goViewMobile(message,request); } if(StringUtils.isBlank(taskId)){ return new ModelAndView("redirect:/mMessageController.do?goUpdate&load=detail&id="+message.getId()); } if(org.apache.commons.lang.xwork.StringUtils.isNotEmpty(request.getParameter("flag"))){ //驳回重填表单 request.setAttribute("url", "mMessageController.do?goUpdate&returnBack=1&id="+workflowService.getBpmDataId(taskId)); }else { request.setAttribute("url", "mMessageController.do?goUpdate&load=detail&audit=1&id="+workflowService.getBpmDataId(taskId)); } Map taskDetails = workflowService.getTaskDetails(taskId); request.setAttribute("busititle", "消息审批"); request.setAttribute("id", workflowService.getBpmDataId(taskId)); request.setAttribute("bpmLogList", taskDetails.get("bpmLogList")); request.setAttribute("taskId", taskDetails.get("taskId")); request.setAttribute("taskName", taskDetails.get("taskName")); request.setAttribute("task", taskDetails.get("task")); request.setAttribute("transitionList", taskDetails.get("transitionList")); request.setAttribute("nextCodeCount", taskDetails.get("nextCodeCount")); request.setAttribute("bpmLogListCount", taskDetails.get("bpmLogListCount")); request.setAttribute("bpmLogNewList", taskDetails.get("bpmLogNewList")); request.setAttribute("bpmLogNewListCount", taskDetails.get("bpmLogNewListCount")); request.setAttribute("histListNode", taskDetails.get("histListNode")); request.setAttribute("histListSize", taskDetails.get("histListSize")); request.setAttribute("turnbackTaskId", taskDetails.get("turnbackTaskId")); request.setAttribute("height", "500px"); return new ModelAndView("cn/com/lzt/workflow/task-option"); } @RequestMapping(params = "goViewMobile") public ModelAndView goViewMobile(MMessageEntity message, HttpServletRequest request) { String taskId = oConvertUtils.getString(request.getParameter("taskId")); if(oConvertUtils.isNotEmpty(taskId)){ FormProcUtil.initWorkflowParam(request); request.setAttribute("taskId",taskId); } message = mMessageService.getEntity(MMessageEntity.class, message.getId()); Map dicMap = new HashMap<>(); dicMap.put("sendScope",DictUtil.formatToTypeName(message.getSendScope(),"message_send_scope")); dicMap.put("sendWay",DictUtil.formatToTypeName(message.getSendWay(),"message_send_way")); dicMap.put("sendTimeType",DictUtil.formatToTypeName(String.valueOf(message.getSendTimeType()),"message_send_time_type")); dicMap.put("noticeType",DictUtil.formatToTypeName(message.getNoticeType(),"message_notice_type")); // request.setAttribute("message", message); // request.setAttribute("dicMap",dicMap); Map data = new HashMap<>(); data.put("entity",message); data.put("dicMap",dicMap); return new JsonDataModelAndView(WXAjaxJson.success(data)); // return "cn/com/lzt/message/message_view_mobile"; } /** * 加载明细列表[范围详情] * * @return */ @RequestMapping(params = "mMessageSendScopeList") public ModelAndView mMessageSendScopeList(MMessageEntity mMessage, HttpServletRequest req) { //=================================================================================== //获取参数 Object id0 = mMessage.getId(); //=================================================================================== //查询-范围详情 String hql0 = "from MMessageSendScopeEntity where 1 = 1 AND mESSAGE_ID =? "; try{ List mMessageSendScopeEntityList = systemService.findHql(hql0,id0); req.setAttribute("mMessageSendScopeList", mMessageSendScopeEntityList); }catch(Exception e){ logger.info(e.getMessage()); } return new ModelAndView("cn/com/lzt/message/mMessageSendScopeList"); } /** * 导出excel * * @param request * @param response */ @RequestMapping(params = "exportXls") public String exportXls(MMessageEntity mMessage,HttpServletRequest request, HttpServletResponse response, DataGrid dataGrid,ModelMap map) { CriteriaQuery cq = new CriteriaQuery(MMessageEntity.class, dataGrid); //查询条件组装器 org.jeecgframework.core.extend.hqlsearch.HqlGenerateUtil.installHql(cq, mMessage); try{ //自定义追加查询条件 }catch (Exception e) { throw new BusinessException(e.getMessage()); } cq.add(); List list=this.mMessageService.getListByCriteriaQuery(cq, false); List pageList=new ArrayList(); if(list!=null&&list.size()>0){ for(MMessageEntity entity:list){ try{ MMessagePage page=new MMessagePage(); MyBeanUtils.copyBeanNotNull2Bean(entity,page); Object id0 = entity.getId(); String hql0 = "from MMessageSendScopeEntity where 1 = 1 AND mESSAGE_ID =? "; List mMessageSendScopeEntityList = systemService.findHql(hql0,id0); page.setMMessageSendScopeList(mMessageSendScopeEntityList); pageList.add(page); }catch(Exception e){ logger.info(e.getMessage()); } } } map.put(NormalExcelConstants.FILE_NAME,"消息管理主表"); map.put(NormalExcelConstants.CLASS,MMessagePage.class); map.put(NormalExcelConstants.PARAMS,new ExportParams("消息管理主表列表", "导出人:Jeecg", "导出信息")); map.put(NormalExcelConstants.DATA_LIST,pageList); return NormalExcelConstants.JEECG_EXCEL_VIEW; } /** * 通过excel导入数据 * @param request * @param * @return */ @RequestMapping(params = "importExcel", method = RequestMethod.POST) @ResponseBody public AjaxJson importExcel(HttpServletRequest request, HttpServletResponse response) { AjaxJson j = new AjaxJson(); MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; Map fileMap = multipartRequest.getFileMap(); for (Map.Entry entity : fileMap.entrySet()) { MultipartFile file = entity.getValue();// 获取上传文件对象 ImportParams params = new ImportParams(); params.setTitleRows(2); params.setHeadRows(2); params.setNeedSave(true); try { List list = ExcelImportUtil.importExcel(file.getInputStream(), MMessagePage.class, params); MMessageEntity entity1=null; for (MMessagePage page : list) { entity1=new MMessageEntity(); MyBeanUtils.copyBeanNotNull2Bean(page,entity1); mMessageService.addMain(entity1, page.getMMessageSendScopeList()); } j.setMsg("文件导入成功!"); } catch (Exception e) { j.setMsg("文件导入失败!"); logger.error(ExceptionUtil.getExceptionMessage(e)); }finally{ try { file.getInputStream().close(); } catch (IOException e) { e.printStackTrace(); } } } return j; } /** * 导出excel 使模板 */ @RequestMapping(params = "exportXlsByT") public String exportXlsByT(ModelMap map) { map.put(NormalExcelConstants.FILE_NAME,"消息管理主表"); map.put(NormalExcelConstants.CLASS,MMessagePage.class); map.put(NormalExcelConstants.PARAMS,new ExportParams("消息管理主表列表", "导出人:"+ ResourceUtil.getSessionUser().getRealName(), "导出信息")); map.put(NormalExcelConstants.DATA_LIST,new ArrayList()); return NormalExcelConstants.JEECG_EXCEL_VIEW; } /** * 导入功能跳转 * * @return */ @RequestMapping(params = "upload") public ModelAndView upload(HttpServletRequest req) { req.setAttribute("controller_name", "mMessageController"); return new ModelAndView("common/upload/pub_excel_upload"); } @RequestMapping(method = RequestMethod.GET) @ResponseBody public List list() { List listMMessages=mMessageService.getList(MMessageEntity.class); return listMMessages; } @RequestMapping(value = "/{id}", method = RequestMethod.GET) @ResponseBody public ResponseEntity get(@PathVariable("id") String id) { MMessageEntity task = mMessageService.get(MMessageEntity.class, id); if (task == null) { return new ResponseEntity(HttpStatus.NOT_FOUND); } return new ResponseEntity(task, HttpStatus.OK); } @RequestMapping(method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE) @ResponseBody public ResponseEntity create(@RequestBody MMessagePage mMessagePage, UriComponentsBuilder uriBuilder) { //调用JSR303 Bean Validator进行校验,如果出错返回含400错误码及json格式的错误信息. Set> failures = validator.validate(mMessagePage); if (!failures.isEmpty()) { return new ResponseEntity(BeanValidators.extractPropertyAndMessage(failures), HttpStatus.BAD_REQUEST); } //保存 List mMessageSendScopeList = mMessagePage.getMMessageSendScopeList(); MMessageEntity mMessage = new MMessageEntity(); try{ MyBeanUtils.copyBeanNotNull2Bean(mMessage,mMessagePage); }catch(Exception e){ logger.info(e.getMessage()); } mMessageService.addMain(mMessage, mMessageSendScopeList); //按照Restful风格约定,创建指向新任务的url, 也可以直接返回id或对象. String id = mMessagePage.getId(); URI uri = uriBuilder.path("/rest/mMessageController/" + id).build().toUri(); HttpHeaders headers = new HttpHeaders(); headers.setLocation(uri); return new ResponseEntity(headers, HttpStatus.CREATED); } @RequestMapping(value = "/{id}", method = RequestMethod.PUT, consumes = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity update(@RequestBody MMessagePage mMessagePage) { //调用JSR303 Bean Validator进行校验,如果出错返回含400错误码及json格式的错误信息. Set> failures = validator.validate(mMessagePage); if (!failures.isEmpty()) { return new ResponseEntity(BeanValidators.extractPropertyAndMessage(failures), HttpStatus.BAD_REQUEST); } //保存 List mMessageSendScopeList = mMessagePage.getMMessageSendScopeList(); MMessageEntity mMessage = new MMessageEntity(); try{ MyBeanUtils.copyBeanNotNull2Bean(mMessage,mMessagePage); }catch(Exception e){ logger.info(e.getMessage()); } mMessageService.updateMain(mMessage, mMessageSendScopeList); //按Restful约定,返回204状态码, 无内容. 也可以返回200状态码. return new ResponseEntity(HttpStatus.NO_CONTENT); } @RequestMapping(value = "/{id}", method = RequestMethod.DELETE) @ResponseStatus(HttpStatus.NO_CONTENT) public void delete(@PathVariable("id") String id) { MMessageEntity mMessage = mMessageService.get(MMessageEntity.class, id); mMessageService.delMain(mMessage); } //前台用户查看消息 @RequestMapping(params = "user_preview") public String user_preview(@RequestParam("k") String key,HttpServletRequest request) { try { String id = request.getParameter("id"); MMessageEntity messageEntity =null; if(StringUtils.isNotBlank(id)){//审批预览 messageEntity = systemService.getEntity(MMessageEntity.class,id); }else {//用户查看 String decodeString = Des3.decode(key); String[] sa = decodeString.split(Pattern.quote("||||")); String messageId = sa[0]; String userId = sa[1]; messageEntity = userPreview(userId,messageId); String readOnly = request.getParameter("readOnly"); TSUser user =systemService.getEntity(TSUser.class,userId); request.setAttribute("user",user); if(StringUtils.equals(readOnly,"true" )){//只设置已读状态 return null; } } if(messageEntity==null){ return null; } String messageType = messageEntity.getMessageType(); if(StringUtils.equals(messageType,MMessageEntity.MessageType.api.toString())){ request.setAttribute("message",messageEntity); if(StringUtils.equals(messageEntity.getApiViewer(),"simpleRow" )){//使用后台解析json 前台\t会报错 Map sendTextMap = JSONObject.fromObject(messageEntity.getSendText()); request.setAttribute("sendTextMap", sendTextMap); } return "cn/com/lzt/message/view/"+messageEntity.getApiViewer(); }else { //读取附件 CriteriaQuery cq = new CriteriaQuery(TSysFileEntity.class); //查询条件组装器 TSysFileEntity tSysFile = new TSysFileEntity(); try{ cq.eq("busiTable","m_message"); cq.eq("tagetType","mmessage"); cq.addOrder("createDate",SortDirection.asc); cq.eq("busiId",messageEntity.getId()); }catch (Exception e) { throw new BusinessException(e.getMessage()); } cq.add(); cq.setDataGrid(new DataGrid()); DataGridReturn dataGridReturn = systemService.getDataGridReturn(cq, false); // 设置是否预览Flg for(int i = 0; i < dataGridReturn.getRows().size(); i++) { TSysFileEntity tSysFileEntity = (TSysFileEntity) dataGridReturn.getRows().get(i); String fileName = tSysFileEntity.getFileName(); String fileType = fileName.substring(fileName.lastIndexOf(".") + 1); if("jpg".equals(fileType) || "png".equals(fileType) || "pdf".equals(fileType)) { tSysFileEntity.setIsPreviewFlg("1"); } else { tSysFileEntity.setIsPreviewFlg("0"); } String userName = tSysFileEntity.getCreateBy(); String realName = ""; // 查询主组织 StringBuilder getRealNameByUserNameSql = new StringBuilder(); getRealNameByUserNameSql.append(" SELECT "); getRealNameByUserNameSql.append(" realname "); getRealNameByUserNameSql.append(" FROM t_s_base_user "); getRealNameByUserNameSql.append(" WHERE "); getRealNameByUserNameSql.append(" username = '" + userName + "'"); List> realNameMapList = systemService.findForJdbc(getRealNameByUserNameSql.toString()); if(realNameMapList.size() > 0) { realName = (String)realNameMapList.get(0).get("realname"); } tSysFileEntity.setCreateBy(realName); } String showAndDownUrl = ResourceUtil.getConfigByName("showAndDownUrl"); request.setAttribute("showAndDownUrl",showAndDownUrl); request.setAttribute("fileRows",dataGridReturn.getRows()); request.setAttribute("message",messageEntity); String host = ResourceUtil.getConfigByName(Globals.SERVER_WXMSG); request.setAttribute("host",host); return "cn/com/lzt/message/mMessage-user-preview"; } } catch (Exception e) { e.printStackTrace(); } return null; } //后台预览 @RequestMapping(params = "preview") public String preview(HttpServletRequest request,MMessageEntity mMessage) { String sendText = mMessageService.replaceTemplate(mMessage,true,false); mMessage.setSendText(sendText); request.setAttribute("message",mMessage); request.setAttribute("back_view",true); return "cn/com/lzt/message/mMessage-user-preview"; } //test @RequestMapping(params = "send") public String send(HttpServletRequest request,MMessageEntity mMessage) { // mMessageSendService.sendByMessageId(mMessage.getId()); return null; } /** * 测试消息, * @param request * @param mMessage * @return */ @RequestMapping(params = "sendTest") @ResponseBody public AjaxJson sendTest(HttpServletRequest request,MMessageEntity mMessage) { // mMessageSendService.sendByMessageId(mMessage.getId()) AjaxJson j = new AjaxJson(); String message = "发送成功"; try { mMessageSendService.sendForTest(mMessage.getId(),ResourceUtil.getSessionUser().getId()); }catch (Exception e){ e.printStackTrace(); message="发送失败"; } j.setMsg(message); return j; } @RequestMapping(params = "cancelMessage") @ResponseBody public AjaxJson cancelMessage(HttpServletRequest request,@RequestParam("id") String id) { AjaxJson j = new AjaxJson(); MMessageEntity mMessage = systemService.findUniqueByProperty(MMessageEntity.class,"id",id); String message = "消息撤回成功"; try{ mMessage.setStatus(1); mMessage.setCancelTime(new Date()); systemService.updateEntitie(mMessage); systemService.addLog(message, Globals.Log_Type_OTHER, Globals.Log_Leavel_INFO); }catch(Exception e){ e.printStackTrace(); message = "消息撤回失败"; throw new BusinessException(e.getMessage()); } j.setMsg(message); return j; } private MMessageEntity userPreview(String userId, String messageId) { MPersonalMessageEntity personalMessageEntity = systemService.singleResult(String.format("from MPersonalMessageEntity where userId ='%s' and messageId='%s'",userId,messageId)); if(personalMessageEntity ==null) return null; MMessageEntity message = systemService.findUniqueByProperty(MMessageEntity.class,"id",messageId); if(message==null) return null; if(personalMessageEntity.getIsRead()==0){ personalMessageEntity.setIsRead(1); personalMessageEntity.setFirstReadTime(new Date()); systemService.updateEntitie(personalMessageEntity); message.setSeeCount(message.getSeeCount()+1); systemService.updateEntitie(message); } return message; } @RequestMapping(params = "list4all") public ModelAndView list4all(HttpServletRequest request) { List whiteIpList = systemService.getList(MWhiteIpListEntity.class); String ip = IpUtil.getIpAddr(request); boolean access = false; for(MWhiteIpListEntity whiteIpListEntity:whiteIpList){ if(whiteIpListEntity.getIp().equals(ip)){ access=true; break; } } if(!access){ return new ModelAndView("cn/com/lzt/message/mMessage-noauth"); } return new ModelAndView("cn/com/lzt/message/message_list_all"); } /** * easyui AJAX请求数据 * * @param request * @param response * @param dataGrid */ @RequestMapping(params = "datagrid4all") public void datagrid4all(MMessageEntity mMessage,HttpServletRequest request, HttpServletResponse response, DataGrid dataGrid) { CriteriaQuery cq = new CriteriaQuery(MMessageEntity.class, dataGrid); //查询条件组装器 if(StringUtils.isNotBlank(mMessage.getTitle())){ cq.like("title", "%"+mMessage.getTitle()+"%"); mMessage.setTitle(null); } if(StringUtils.isNotBlank(mMessage.getCreateName())){ cq.like("createName","%"+mMessage.getCreateName()+"%" ); mMessage.setCreateName(null); } org.jeecgframework.core.extend.hqlsearch.HqlGenerateUtil.installHql(cq, mMessage,request.getParameterMap()); try{ //自定义追加查询条件 TSUser user = ResourceUtil.getSessionUser(); cq.notEq("createById", "-1"); }catch (Exception e) { throw new BusinessException(e.getMessage()); } cq.add(); cq.addOrder("createDate",SortDirection.desc); this.mMessageService.getDataGridReturn(cq, true); List msgList = dataGrid.getResults(); if(msgList != null && msgList.size() > 0) { ArrayList ids = new ArrayList(); for (MMessageEntity msg : msgList) { ids.add(msg.getId()); } String idstr = "'"+StringUtils.join(ids,"','")+"'"; String attrSql = "select distinct busi_id from t_sys_file where busi_id in("+idstr+") "; List exsitID = systemService.findListbySql(attrSql); HashMap exsitIDMap = new HashMap(); for (String id : exsitID) { exsitIDMap.put(id, id); } for (MMessageEntity msg : msgList) { if(exsitIDMap.containsKey(msg.getId())) { msg.setUploadattr("有附件"); }else { msg.setUploadattr("无附件"); } } } TagUtil.datagrid(response, dataGrid); } }