package cn.ksource.web.service.message; import cn.ksource.beans.GG_MESSAGE; import cn.ksource.beans.WORKFLOW_BASE; import cn.ksource.core.dao.BaseDao; import cn.ksource.core.dao.SqlParameter; import cn.ksource.core.page.PageInfo; import cn.ksource.core.util.*; import cn.ksource.core.web.LoginUser; import cn.ksource.core.web.WebUtil; import cn.ksource.entity.SysMessage; import cn.ksource.web.Constants; import cn.ksource.web.entity.message.CmsNews; import cn.ksource.web.service.file.FileService; import cn.ksource.web.service.wechat.WechatService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.web.context.ContextLoader; import org.springframework.web.context.request.async.DeferredResult; import javax.annotation.Resource; import javax.servlet.ServletContext; import javax.servlet.http.HttpServletRequest; import java.util.*; @Service("messageService") @SuppressWarnings("unchecked") public class MessageServiceImpl implements MessageService { @Autowired private BaseDao baseDao; @Resource(name="fileService") private FileService fileService; @Autowired private WechatService wechatService; @Override public List queryMeunListById() { String sql = "SELECT * FROM CMS_CATEGORY WHERE USINGSTATE = 1 ORDER BY LEVEL,ORDERNUM"; /*List list = baseDao.queryForList(sql, new HashMap()); List yjLevel = new ArrayList(); if(null!=list && list.size()>0) { for(Map m: list) { if(ConvertUtil.obj2StrBlank(m.get("LEVEL")).equals("1")) { m.put("subMenu", new ArrayList()); yjLevel.add(m); } else if(ConvertUtil.obj2StrBlank(m.get("LEVEL")).equals("2")) { for(Map map : yjLevel) { if(m.get("UP_ID").equals(map.get("ID"))) { List listSub = (List)map.get("subMenu"); listSub.add(m); } } } } System.out.println(yjLevel); return yjLevel; }*/ List xtgnList = baseDao.queryForList(sql, new SqlParameter()); List resultList = new LinkedList(); Map yjgnCache = new HashMap(); Map ejgnCache = new HashMap(); Map sjgnCache = new HashMap(); for (Map map : xtgnList) { //一级功能 if (map.get("LEVEL").toString().equalsIgnoreCase("1")) { yjgnCache.put(map.get("ID").toString(), map); List ejgnList = new LinkedList(); map.put("subMenu", ejgnList); resultList.add(map); continue; } if (map.get("LEVEL").toString().equalsIgnoreCase("2")) { Map yjgnMap = yjgnCache.get(map.get("UP_ID").toString()); List list = (List)yjgnMap.get("subMenu"); map.put("subMenu", new LinkedList()); list.add(map); ejgnCache.put(map.get("ID").toString(), map); continue; } if (map.get("LEVEL").toString().equalsIgnoreCase("3")) { Map ejgnMap = ejgnCache.get(map.get("UP_ID").toString()); List list = (List)ejgnMap.get("subMenu"); map.put("subMenu", new LinkedList()); list.add(map); sjgnCache.put(map.get("ID").toString(), map); continue; } } return resultList; } /** * 通过分类id查询该分类下的信息数量 * @param categoryId 分类编号 * @return */ @Override public int queryMessageCountByCategoryId(String categoryId) { String sql = "SELECT COUNT(*) FROM CMS_NEWS WHERE CATEGORY_ID = :categoryId AND SHENPI_STATUS = 1"; return baseDao.queryForInteger(sql, new SqlParameter().addValue("categoryId", categoryId)); } /** * 保存信息 */ @Override public void saveMessage(CmsNews cmsNews,HttpServletRequest request) { String idSql = "SELECT MAX(ID) FROM CMS_NEWS"; Integer idObj = baseDao.queryForInteger(idSql); int id = 1; if(null != idObj) { id = idObj; } String sql = "INSERT INTO CMS_NEWS(ID,CATEGORY_ID,TITLE,TITLEIMAGE,CREATE_TIME,THETOP," + "SUMMARY,CONTENT,THEURL,SHENPI_STATUS," + "ISREPORT,REPORTID,MAIN_PEOPLE,MAIN_PEOPLE_NAME,TIMEOUT,SHOOT_ID,SHOOT_NAME,SHOW_NUM) " + "VALUES (:id,:categoryId,:title,:titleimageurl,:createTime" + ",:thetop,:summary,:content,:theurl,:status," + "2,null,:main_people,:main_people_name,:timeout,:shoot_id,:shoot_name,:show_num)"; Map paramMap = new HashMap(); paramMap.put("id", id+1); paramMap.put("categoryId", cmsNews.getCategoryId()); paramMap.put("title", cmsNews.getTitle()); paramMap.put("titleimageurl", cmsNews.getTitleimageurl()); paramMap.put("createTime", DateUtil.getCurrentDate14()); paramMap.put("thetop", cmsNews.getThetop()); paramMap.put("summary", cmsNews.getSummary()); paramMap.put("content", cmsNews.getContent()); paramMap.put("theurl", cmsNews.getTheurl()); paramMap.put("status", cmsNews.getShenpiStatus()); paramMap.put("main_people", cmsNews.getMainPeopleId()); paramMap.put("main_people_name", cmsNews.getMainPeopleName()); paramMap.put("shoot_id", cmsNews.getShoot_id()); paramMap.put("shoot_name", cmsNews.getShoot_name()); paramMap.put("show_num", cmsNews.getShow_num()); int categoryId = cmsNews.getCategoryId(); System.out.println("categoryId:"+categoryId); if(categoryId==10){ String timeout = cmsNews.getTimeout(); System.out.println("timeout:"+timeout); long timeoutt = Long.valueOf(timeout.replaceAll("-", "")); paramMap.put("timeout", timeoutt); }else{ paramMap.put("timeout", null); } baseDao.execute(sql, paramMap); //上传附件 //fileService.uploadFile(request, ConvertUtil.obj2Str(id+1)); LoginUser loginUser = WebUtil.getLoginUser(request); String createUserId = String.valueOf(loginUser.getLoginUser().get("ID")); String createUserName = String.valueOf(loginUser.getLoginUser().get("LOGINNAME")); Map params = ParamsMapUtil.getParameterMap(request); params.put("business_id", ConvertUtil.obj2Str(id+1)); params.put("userId", createUserId); params.put("userName", createUserName); fileService.uploadFile(params); } /** * 查询指定分类下的列表信息 */ @Override public Map queryMessageListJson(String categoryId, int page, int pageSize) { StringBuilder builder = new StringBuilder("SELECT * FROM CMS_NEWS WHERE CATEGORY_ID = :categoryId AND SHENPI_STATUS=1"); StringBuilder countBuilder = new StringBuilder("SELECT COUNT(ID) FROM CMS_NEWS WHERE CATEGORY_ID = :categoryId AND SHENPI_STATUS=1"); Map paramMap = new HashMap(); builder.append(" ORDER BY THETOP ASC,CREATE_TIME DESC"); builder.append(" LIMIT :begin,:size"); page = page==0?1:page; pageSize = pageSize==0?10:pageSize; int begin = (page-1)*pageSize; paramMap.put("begin", begin); paramMap.put("size", pageSize); paramMap.put("categoryId", categoryId); int count = baseDao.queryForInteger(countBuilder.toString(), paramMap); List resultList = new ArrayList(); if(count>0) { resultList = baseDao.queryForList(builder.toString(),paramMap); for(Map map : resultList) { map.put("CREATE_TIME", DateUtil.format("yyyy-MM-dd", map.get("CREATE_TIME"))); } } Map resultMap = new HashMap(); resultMap.put("total", count); //信息总数 resultMap.put("rows", resultList); return resultMap; } /** * 删除指定id的信息 */ @Override public void deleteMessage(String id) { String sql = "DELETE FROM CMS_NEWS WHERE ID = :id"; baseDao.execute(sql, new SqlParameter().addValue("id", id)); } /** * 通过信息id查询信息详细信息 */ @Override public Map queryMessageById(String messageId) { String sql = "SELECT * FROM CMS_NEWS WHERE ID = :id"; return baseDao.queryForMap(sql, new SqlParameter().addValue("id", messageId)); } /** * 修改信息内容 */ @Override public void updateMessage(CmsNews cmsNews) { long updateTime = DateUtil.getCurrentDate14(); String sql = "UPDATE CMS_NEWS SET TITLE = :title,TITLEIMAGE = :titleimageurl,UPDATE_TIME = :updateTime,THETOP = :thetop," + "SUMMARY = :summary,CONTENT = :content,THEURL = :theurl" + ",MAIN_PEOPLE=:main_people,MAIN_PEOPLE_NAME=:main_people_name,TIMEOUT=:timeout,SHOOT_ID=:shoot_id,SHOOT_NAME=:shoot_name,SHOW_NUM = :show_num WHERE ID = :id"; Map paramMap = new HashMap(); paramMap.put("title", cmsNews.getTitle()); paramMap.put("titleimageurl", cmsNews.getTitleimageurl()); paramMap.put("updateTime", updateTime); paramMap.put("thetop", cmsNews.getThetop()); paramMap.put("summary", cmsNews.getSummary()); paramMap.put("content", cmsNews.getContent()); paramMap.put("theurl", cmsNews.getTheurl()); paramMap.put("main_people", cmsNews.getMainPeopleId()); paramMap.put("main_people_name", cmsNews.getMainPeopleName()); paramMap.put("shoot_id", cmsNews.getShoot_id()); paramMap.put("shoot_name", cmsNews.getShoot_name()); paramMap.put("show_num", cmsNews.getShow_num()); if(cmsNews.getCategoryId()==10){ String time = cmsNews.getTimeout(); long timeout = Long.valueOf(time.replaceAll("-", "")); paramMap.put("timeout", timeout); }else{ paramMap.put("timeout", null); } paramMap.put("id", cmsNews.getId()); baseDao.execute(sql, paramMap); } /** * 查询 */ @Override public List queryAttachment(String messageId) { String sql = "SELECT * FROM CMS_ATTACHEMENTS WHERE NEWS_ID = :messageId"; return baseDao.queryForList(sql, new SqlParameter().addValue("messageId", messageId)); } @Override public boolean sendMessage(GG_MESSAGE message) { String msgId = message.getId(); String selectSql = "SELECT B.ISWECHAT,B.ISPHONE,B.ISEMAIL,B.SJHM,B.EMAIL,B.OPEN_ID,B.REMIND_TYPE,B.ID AS USER_ID FROM GG_MESSAGE_RECEIVER A,GG_USER B WHERE A.RECEIVER_ID = B.ID AND B.ZT = 1 AND A.MESSAGE_ID = :msgId "; List msgs = baseDao.queryForList(selectSql,new SqlParameter("msgId",msgId)); if(null!=msgs && msgs.size()>0) { //系统内消息推送对象 SysMessage sysMessage = new SysMessage(message.getTitle(),message.getWeb_url()); List emails = new ArrayList(); List openIds = new ArrayList(); List userIds = new ArrayList(); //手机号码字符串 String mobile = ""; for(Map msg : msgs) { String userId = ConvertUtil.obj2StrBlank(msg.get("USER_ID")); // 推送系统内消息 ServletContext servletContext = ContextLoader.getCurrentWebApplicationContext().getServletContext(); Map> messageContext = (Map>)servletContext.getAttribute("messageContext"); if (messageContext != null && !messageContext.isEmpty() && messageContext.keySet() != null) { System.out.println("connection size" + messageContext.size()); for (String key : messageContext.keySet()) { try { if (key.indexOf(userId) == 0) {//需要发送 if (messageContext.get(key) != null) { if (!messageContext.get(key).isSetOrExpired()) { messageContext.get(key).setResult(sysMessage); } } } }catch (Exception e){ e.printStackTrace(); } } } //系统内消息推送完毕 userIds.add(userId); String remindType = ConvertUtil.obj2StrBlank(msg.get("REMIND_TYPE")); String isWechat = ConvertUtil.obj2StrBlank(msg.get("ISWECHAT")); if(isWechat.equals("2") && ((StringUtil.notEmpty(remindType) && remindType.substring(2, 3).equals("1"))||!StringUtil.notEmpty(remindType))) { openIds.add(ConvertUtil.obj2StrBlank(msg.get("OPEN_ID"))); } if(StringUtil.notEmpty(remindType)) { String isEmail = ConvertUtil.obj2StrBlank(msg.get("ISEMAIL")); if(isEmail.equals("2") && remindType.substring(1, 2).equals("1")) { emails.add(ConvertUtil.obj2StrBlank(msg.get("EMAIL"))); } String isPhone = ConvertUtil.obj2StrBlank(msg.get("ISPHONE")); if(isPhone.equals("2") && remindType.substring(0, 1).equals("1")) { //组装手机号码 String telphoneNum = ConvertUtil.obj2StrBlank(msg.get("SJHM")); if(StringUtil.isNotBlank(telphoneNum)){ if(mobile.equals("")){ mobile = mobile + telphoneNum; }else{ mobile = mobile + "," + telphoneNum; } } } } } //发送短信 try { SMSUtil.sendSMS(SMSUtil.getOrderTipMsg(Constants.mapSC_MESSAGE_TYPE.get(String.valueOf(message.getType())),message.getTitle()),mobile); } catch (Exception e) { System.out.println("------------------------>发送短信异常"); } if(emails.size()>0) { String[] email = (String[])emails.toArray(new String[emails.size()]); try { EmailUtil.sendEmail(email, message.getTitle(), message.getContent(), null); } catch (Exception e) { System.out.println("------------------------>发送邮件异常"); } } if(openIds.size()>0) { String[] openId = (String[])openIds.toArray(new String[openIds.size()]); try { wechatService.sendSysMsg(openId, message); } catch (Exception e) { System.out.println("------------------------>发送微信信息异常"); } } } return false; } /** * 组装工单短信内容 * @param message * @return */ private String assembleOrderContent(GG_MESSAGE message){ StringBuilder content = new StringBuilder(); content.append("【"+Constants.company_name+"】您有一条"); content.append(Constants.mapSC_MESSAGE_TYPE.get(String.valueOf(message.getType()))); content.append(message.getOrder_code()); content.append("工单,标题:"); content.append(message.getTitle()); content.append(",请及时处理"); return content.toString(); } @Override public boolean sendOrderRemindersMsg(String flowId,String reminder,String text) { WORKFLOW_BASE base = new WORKFLOW_BASE(flowId).getInstanceById(); //组装工单催办短信内容 String msgContent = SMSUtil.getOrderRemindMsg(reminder, base.getOrder_code(), base.getWfname(), text); String title = "新的催办信息,工单编号【"+ base.getOrder_code() +"】"; //邮箱内容 String emailContent = "工单编号:" + base.getOrder_code() + "
工单名称:" + base.getWfname(); if(StringUtil.isNotBlank(text)){ emailContent = emailContent + "
工单内容:" + text; } //微信内容 String weChatContent = "工单编号:" + base.getOrder_code() + "\n\r工单名称:" + base.getWfname() ; if(StringUtil.isNotBlank(text)){ weChatContent = weChatContent + "\n\r工单内容:" + text; } Map param = getRemindersUserInfo(flowId); String mobiles = param.get("mobiles").toString(); List emails = (List)param.get("emails"); List openIds = (List)param.get("openIds"); System.out.println("mobiles-------------------"+mobiles); System.out.println("emails-------------------"+JsonUtil.list2Json(emails)); System.out.println("openIds-------------------"+JsonUtil.list2Json(openIds)); //发送短信 if(StringUtil.isNotBlank(mobiles)){ try { SMSUtil.sendSMS(msgContent,mobiles); } catch (Exception e) { e.printStackTrace(); System.out.println("------------------------>发送短信异常"); } } //发送email if(emails.size()>0) { String[] email = (String[])emails.toArray(new String[emails.size()]); try { EmailUtil.sendEmail(email, title, emailContent, null); } catch (Exception e) { e.printStackTrace(); System.out.println("------------------------>发送邮件异常"); } } //发送微信 if(openIds.size()>0) { String[] openId = (String[])openIds.toArray(new String[openIds.size()]); try { wechatService.sendReminderTemplateMsg(openId,flowId,title,base.getBusinesstype().toString(),weChatContent,reminder,""); } catch (Exception e) { System.out.println("------------------------>发送微信信息异常"); } } return true; } /** * 获取催办用户信息 * @param flowId * @return */ private Map getRemindersUserInfo(String flowId){ Map param = new HashMap(); String mobiles = ""; List emails = new ArrayList(); List openIds = new ArrayList(); StringBuilder builder = new StringBuilder(); builder.append(" select DEAL_TYPE,CURRENT_NODE_ID,CURRENT_DEAL_ROLEIDA from workflow_base where id=:flowId "); Map flowInfo = baseDao.queryForMap(builder.toString(), new SqlParameter("flowId",flowId)); builder.setLength(0); List list = new ArrayList(); String nodeType = flowInfo.get("DEAL_TYPE").toString(); if(nodeType.equals("1")){//指定角色 builder.append(" SELECT U.REMIND_TYPE,U.SJHM,U.OPEN_ID,U.EMAIL FROM AC_USER_REF_ROLE G,GG_USER U "); builder.append(" WHERE U.ID = G.YHBH AND G.JSBH = :groupId AND U.ZT=1 "); list = baseDao.queryForList(builder.toString(),new SqlParameter("groupId",flowInfo.get("CURRENT_DEAL_ROLEIDA"))); }else if(nodeType.equals("2")){//指定人 builder.append(" SELECT u.REMIND_TYPE,u.SJHM,u.OPEN_ID,u.EMAIL FROM workflow_node n,gg_user u "); builder.append(" WHERE n.CURRENT_DEALER_ID = u.ID and ( "); builder.append(" ( "); builder.append(" n.SAME_NODE_KEY IS NULL AND n.id = :nodeId "); builder.append(" ) "); builder.append(" OR ( "); builder.append(" n.SAME_NODE_KEY IS NOT NULL "); builder.append(" AND n.SAME_NODE_KEY = ( "); builder.append(" SELECT SAME_NODE_KEY FROM workflow_node WHERE id = :nodeId "); builder.append(" ) "); builder.append(" ) "); builder.append(" ) "); list = baseDao.queryForList(builder.toString(),new SqlParameter("nodeId",flowInfo.get("CURRENT_NODE_ID"))); } if(list!=null&&list.size()>0){ for(Map map:list){ //手机 if(map.get("REMIND_TYPE")!=null&&map.get("REMIND_TYPE").toString().substring(0, 1).equals("1")){ if(map.get("SJHM")!=null){ if(mobiles.equals("")){ mobiles = map.get("SJHM").toString(); }else{ mobiles = mobiles + "," + map.get("SJHM").toString(); } } } //邮箱 if(map.get("REMIND_TYPE")!=null&&map.get("REMIND_TYPE").toString().substring(1, 2).equals("1")){ if(map.get("EMAIL")!=null){ emails.add(map.get("EMAIL").toString()); } } //微信号 if((map.get("REMIND_TYPE")!=null&&map.get("REMIND_TYPE").toString().substring(2, 3).equals("1"))||map.get("REMIND_TYPE")==null){ if(map.get("OPEN_ID")!=null){ openIds.add(map.get("OPEN_ID").toString()); } } } } param.put("mobiles", mobiles); param.put("emails", emails); param.put("openIds", openIds); return param; } @Override public boolean sendNoticeMessage(GG_MESSAGE message) { String msgId = message.getId(); String selectSql = "SELECT B.ISWECHAT,B.ISPHONE,B.ISEMAIL,B.SJHM,B.EMAIL,B.OPEN_ID,B.REMIND_TYPE,A.WX_URL FROM GG_MESSAGE_RECEIVER A,GG_USER B WHERE A.RECEIVER_ID = B.ID AND B.ZT = 1 AND A.MESSAGE_ID = :msgId "; List msgs = baseDao.queryForList(selectSql,new SqlParameter("msgId",msgId)); if(null!=msgs && msgs.size()>0) { List emails = new ArrayList(); List openIds = new ArrayList(); //手机号码字符串 String mobile = ""; for(Map msg : msgs) { String isWechat = ConvertUtil.obj2StrBlank(msg.get("ISWECHAT")); String remindType = ConvertUtil.obj2StrBlank(msg.get("REMIND_TYPE")); if(isWechat.equals("2") && ((StringUtil.notEmpty(remindType) && remindType.substring(2, 3).equals("1"))||!StringUtil.notEmpty(remindType))) { String wxUrl = ConvertUtil.obj2StrBlank(msg.get("WX_URL")); Map map = new HashMap(); map.put("openId", ConvertUtil.obj2StrBlank(msg.get("OPEN_ID"))); map.put("wxUrl", wxUrl); openIds.add(map); } if(StringUtil.notEmpty(remindType)) { String isEmail = ConvertUtil.obj2StrBlank(msg.get("ISEMAIL")); if(isEmail.equals("2") && remindType.substring(1, 2).equals("1")) { emails.add(ConvertUtil.obj2StrBlank(msg.get("EMAIL"))); } String isPhone = ConvertUtil.obj2StrBlank(msg.get("ISPHONE")); if(isPhone.equals("2") && remindType.substring(0, 1).equals("1")) { //组装手机号码 String telphoneNum = ConvertUtil.obj2StrBlank(msg.get("SJHM")); if(StringUtil.isNotBlank(telphoneNum)){ if(mobile.equals("")){ mobile = mobile + telphoneNum; }else{ mobile = mobile + "," + telphoneNum; } } } } /*String isWechat = ConvertUtil.obj2StrBlank(msg.get("ISWECHAT")); if(isWechat.equals("2") && ((msg.get("REMIND_TYPE")!=null && msg.get("REMIND_TYPE").toString().substring(2, 3).equals("1"))||msg.get("REMIND_TYPE")==null)) { String wxUrl = ConvertUtil.obj2StrBlank(msg.get("WX_URL")); Map map = new HashMap(); map.put("openId", ConvertUtil.obj2StrBlank(msg.get("OPEN_ID"))); map.put("wxUrl", wxUrl); openIds.add(map); } String isEmail = ConvertUtil.obj2StrBlank(msg.get("ISEMAIL")); if(isEmail.equals("2") && msg.get("REMIND_TYPE")!=null && msg.get("REMIND_TYPE").toString().substring(1, 2).equals("1")) { emails.add(ConvertUtil.obj2StrBlank(msg.get("EMAIL"))); } String isPhone = ConvertUtil.obj2StrBlank(msg.get("ISPHONE")); if(isPhone.equals("2") && msg.get("REMIND_TYPE")!=null && msg.get("REMIND_TYPE").toString().substring(0, 1).equals("1")) { //组装手机号码 String telphoneNum = ConvertUtil.obj2StrBlank(msg.get("SJHM")); if(StringUtil.isNotBlank(telphoneNum)){ if(mobile.equals("")){ mobile = mobile + telphoneNum; }else{ mobile = mobile + "," + telphoneNum; } } }*/ } //发送短信 try { SMSUtil.sendSMS(SMSUtil.getOrderTipMsg(Constants.mapSC_MESSAGE_TYPE.get(String.valueOf(message.getType())),message.getTitle()),mobile); } catch (Exception e) { System.out.println("------------------------>发送短信异常"); } if(emails.size()>0) { String[] email = (String[])emails.toArray(new String[emails.size()]); try { EmailUtil.sendEmail(email, message.getTitle(), message.getContent(), null); } catch (Exception e) { System.out.println("------------------------>发送邮件异常"); } } if(openIds.size()>0) { //String[] openId = (String[])openIds.toArray(new String[openIds.size()]); try { //wechatService.sendWxMsg(openIds, message); } catch (Exception e) { System.out.println("------------------------>发送微信信息异常"); } } } return false; } @Override public PageInfo getMessageData(PageInfo pageInfo, Map params) { String sql = messageListSupport(params); return baseDao.queryforSplitPageInfo(pageInfo,sql,params); } private String messageListSupport(Map params) { StringBuilder sql = new StringBuilder(); sql.append(" select m.id,m.send_time,m.title,m.web_url,m.sender_name,r.state,r.id receiveId from gg_message m inner join gg_message_receiver r "); sql.append(" on m.id = r.message_Id where r.receiver_id = :userId "); //根据标题查找标题 if(StringUtil.isNotBlank(params.get("title"))){ sql.append(" and m.title like :title "); params.put("title","%"+ params.get("title") +"%"); } //根据内容查找标题 if(StringUtil.isNotBlank(params.get("content"))){ sql.append(" and m.content like :content "); params.put("content","%"+ params.get("content") +"%"); } //根据类型查找 if(StringUtil.isNotBlank(params.get("type"))){ sql.append(" and type = :type "); } //根据状态查找 if(StringUtil.isNotBlank(params.get("state"))){ sql.append(" and r.state = :state "); } sql.append(" order by m.send_time desc "); return sql.toString(); } @Override public Integer getMessageCount(Map params) { String sql = "select count(*) from ( " + messageListSupport(params) + " ) temp"; return baseDao.queryForInteger(sql,params); } @Override public void doReadMessage(String businessId, String receiverId) { String sql = "update gg_message m inner join gg_message_receiver r on m.id = r.message_id set state=2, READ_TIME=:curDate where "+ " m.BUSINESS_ID=:businessId and r.RECEIVER_ID=:receviceId"; Long curDate = DateUtil.getCurrentDate14(); SqlParameter param = new SqlParameter(); param.addValue("businessId", businessId) .addValue("receviceId", receiverId) .addValue("curDate", curDate); baseDao.execute(sql, param); } }