package cn.ksource.web.facade.wechat; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import cn.ksource.core.CascadeMap; import cn.ksource.core.dao.BaseDao; import cn.ksource.core.dao.SqlParameter; import cn.ksource.core.util.ConvertUtil; import cn.ksource.core.util.DateUtil; import cn.ksource.core.util.HttpCharset; import cn.ksource.core.util.HttpUtil; import cn.ksource.core.util.JsonUtil; import cn.ksource.core.util.StringUtil; import cn.ksource.core.web.ClientUtil; import cn.ksource.core.web.PasswordEncoder; import cn.ksource.core.web.WebUtil; import cn.ksource.core.weixin.service.WeiXinCoreService; import cn.ksource.web.Constants; import cn.ksource.web.SysConstants; import cn.ksource.web.controller.wechat.util.WechatConstants; import cn.ksource.web.facade.JsglFacade; import cn.ksource.web.facade.cfg.CfgFacade; import cn.ksource.web.service.wechat.WechatService; @Service("wechatFacade") public class WechatFacadeImpl implements WechatFacade { @Autowired private BaseDao baseDao; @Resource(name="wechatService") private WechatService wechatService; @Autowired private JsglFacade jsglFacade; @Autowired private CfgFacade cfgFacade; @Autowired private WeiXinCoreService weiXinCoreService; @Override public String queryGcsBind(HttpServletRequest request, String openId) { if(StringUtil.notEmpty(openId)) { String selectsql = "SELECT A.* FROM (SELECT U.*,P.IS_TIME_OUT,P.VALID_END_DATE FROM GG_USER U , SC_PARTNER_INFO P ) A WHERE A.ZT = 1 AND A.OPEN_ID=:openId"; Map userMap = baseDao.queryForMap(selectsql,new SqlParameter().addValue("openId", openId)); if(null != userMap && userMap.size()>0) { String isTimeOut = ConvertUtil.obj2StrBlank(userMap.get("IS_TIME_OUT")); if(StringUtil.notEmpty(isTimeOut) && isTimeOut.equals("2")) { //加盟商已过期 return "3"; } putEngineerMsgToSession(request,userMap); return "1"; } } return "2"; } private void putEngineerMsgToSession(HttpServletRequest request,Map userMap) { //查询属于何种桌面类型 String userId = ConvertUtil.obj2StrBlank(userMap.get("ID")); String jumpUrl = Constants.getWxDeskTopUrl(Constants.ROLE_FLINE); List roles = jsglFacade.getRolesByUserId(userId, 1); if(roles.size()==1){ String identify = ConvertUtil.obj2StrBlank(roles.get(0).get("identify")); if (StringUtil.isNotBlank(identify)) { jumpUrl = Constants.getWxDeskTopUrl(identify); } } userMap.put("deskTopType", jumpUrl); request.getSession().setAttribute("homePage", jumpUrl); request.getSession().setAttribute(SysConstants.WYW_ENGINEER_LOGIN_INFO_KEY, userMap); } /** * 查询工程师是否已经进行过绑定微信号的操作 * @param fromUserName 微信用户对应该公众号的唯一id * @return */ @Override public boolean queryEngineerHasBind(String fromUserName) { String selectSql = "SELECT COUNT(ID) FROM GG_USER WHERE OPEN_ID = :openId "; Map paramMap = new HashMap(); paramMap.put("openId", fromUserName); int count = baseDao.queryForInteger(selectSql, paramMap); System.out.println("count---------------------->"+count); if(count>0) { return true; } return false; } @Override public String updateEngineerOpenId(HttpServletRequest request) { String username = request.getParameter("username"); String password = request.getParameter("password"); String openId = request.getParameter("openId"); if(!StringUtil.notEmpty(username)) { return "请输入名称"; } if(!StringUtil.notEmpty(password)) { return "请输入密码"; } if(!StringUtil.notEmpty(openId)) { return "绑定失败"; } boolean hasBind = queryEngineerHasBind(openId); if(hasBind) { return "该微信号已经绑定过平台账号"; } String selectSql = "SELECT A.* FROM (SELECT U.*,P.IS_TIME_OUT,P.VALID_END_DATE FROM GG_USER U , SC_PARTNER_INFO P ) A WHERE A.ZT = 1 AND A.LOGINNAME = :username AND A.PASSWORD = :password "; Map paramMap = new HashMap(); paramMap.put("username", username); paramMap.put("password", PasswordEncoder.encode(password)); Map user = baseDao.queryForMap(selectSql,paramMap); if(null==user || user.size() == 0) { return "用户名或者密码错误"; } String oId = ConvertUtil.obj2StrBlank(user.get("OPEN_ID")); if(StringUtil.notEmpty(oId)) { return "该账号已绑定过微信"; } String isTimeOut = ConvertUtil.obj2StrBlank(user.get("IS_TIME_OUT")); if(StringUtil.notEmpty(isTimeOut) && isTimeOut.equals("2")) { return "该账号已过有效期"; } //查询该工程师所在加盟商的有效期信息 String updateSql = "UPDATE GG_USER SET OPEN_ID = :openId,ISWECHAT = 2 WHERE ID = :id "; baseDao.execute(updateSql, new SqlParameter("openId",openId).addValue("id", user.get("ID"))); String function = "提醒通知"; String remark = ""; //通过openId获取用户的基本信息 Map userBaseMap = wechatService.queryUserBaseMsgByOpenId(openId); System.out.println("userBaseMap--------------->"+JsonUtil.map2Json(userBaseMap)); String wxName = ConvertUtil.obj2StrBlank(userBaseMap.get("nickname")); wxName=queryZsxm(openId); String unbindUrl = WechatConstants.ENGINEER_UNBIND_ADDRESS+"?openId="+openId; //如果绑定成功,提醒微信绑定成功通知 wechatService.bindingNotice(openId,unbindUrl,wxName,username,function,remark); putEngineerMsgToSession(request, user); return "1"; } public String queryZsxm(String openId){ String sql="select zsxm from gg_user where open_id=:openId"; return baseDao.queryForString(sql,new SqlParameter("openId",openId)); } @Override public String updateEngineerUnBindOpenId(HttpServletRequest request) { //String username = request.getParameter("username"); //String password = request.getParameter("password"); String openId = request.getParameter("openId"); /*if(!StringUtil.notEmpty(username)) { return "请输入名称"; } if(!StringUtil.notEmpty(password)) { return "请输入密码"; }*/ if(!StringUtil.notEmpty(openId)) { return "解绑失败"; } boolean hasBind = queryEngineerHasBind(openId); if(!hasBind) { return "该微信号未绑定平台账号"; } /*String selectSql = "SELECT ID FROM GG_USER WHERE ACCOUNTTYPE = :type AND LOGINNAME = :username AND PASSWORD = :password AND OPEN_ID = :openId"; Map paramMap = new HashMap(); paramMap.put("type", Constants.GG_USER_ACCOUNT_TYPE_PARTNER_USER); paramMap.put("username", username); paramMap.put("password", PasswordEncoder.encode(password)); paramMap.put("openId", openId); Map user = baseDao.queryForMap(selectSql,paramMap); if(null==user || user.size() == 0) { return "用户名或者密码错误"; }*/ String updateSql = "UPDATE GG_USER SET OPEN_ID = NULL,ISWECHAT = 1 WHERE OPEN_ID = :openId "; baseDao.execute(updateSql, new SqlParameter("openId", openId)); //清空session WebUtil.removeEngineerMsg(request); String remark = "绑定账号请点击"; //通过openId获取用户的基本信息 Map userBaseMap = wechatService.queryUserBaseMsgByOpenId(openId); String wxName = ConvertUtil.obj2StrBlank(userBaseMap.get("nickname")); System.out.println("wxName--------------->"+wxName); String bindUrl = WechatConstants.ENGINEER_BIND_ADDRESS+"?openId="+openId; //如果解除绑定成功,提醒微信jiechu 绑定成功 wechatService.unbindingNotice(openId,bindUrl,wxName,remark); return "1"; } @Override public String queryCustomerBind(HttpServletRequest request,String openId) { if(StringUtil.notEmpty(openId)) { String selectSql = "SELECT A.*,C.CUSTOMER_STATE,C.CREATE_TIME,C.VALID_BEGIN_DATE,C.VALID_END_DATE,C.CUSTOMER_NAME,C.SHORT_NAME FROM CUSTOMER_CONTACTS A,SC_PARTNER_CUSTOMER_INFO C WHERE A.CUSTOMER_ID = C.ID AND A.WECHAT_OPEN_ID = :openId "; Map map = baseDao.queryForMap(selectSql,new SqlParameter("openId",openId)); if(null!=map && map.size()>0) { Map jms = timeoutMsg(); String isTimeOut = ConvertUtil.obj2StrBlank(jms.get("IS_TIME_OUT")); if(StringUtil.notEmpty(isTimeOut) && isTimeOut.equals("2")) { return "3"; } request.getSession().setAttribute(SysConstants.WYW_LOGIN_INFO_KEY, map); return "1"; } } return "2"; } private Map timeoutMsg() { //查询该加盟商的有效期 String jmySql = "SELECT IS_TIME_OUT,VALID_END_DATE FROM SC_PARTNER_INFO "; Map jms = baseDao.queryForMap(jmySql); return jms; } //用户绑定微信账号 @Override public String updateCustomerBindOpenId(HttpServletRequest request) { String username = request.getParameter("username"); String password = request.getParameter("password"); String openId = request.getParameter("openId"); if(!StringUtil.notEmpty(username)) { return "请输入名称"; } if(!StringUtil.notEmpty(password)) { return "请输入密码"; } if(!StringUtil.notEmpty(openId)) { return "绑定失败"; } String hasBindSql = "SELECT COUNT(ID) FROM CUSTOMER_CONTACTS WHERE WECHAT_OPEN_ID = :openId "; int bindCount = baseDao.queryForInteger(hasBindSql,new SqlParameter("openId",openId)); if(bindCount>0) { return "该微信号已绑定平台账号"; } String selectSql = "SELECT A.*,C.CUSTOMER_STATE,C.CREATE_TIME,C.VALID_BEGIN_DATE,C.VALID_END_DATE,C.CUSTOMER_NAME,C.SHORT_NAME FROM CUSTOMER_CONTACTS A,SC_PARTNER_CUSTOMER_INFO C WHERE A.CUSTOMER_ID = C.ID AND A.LOGIN_NAME = :username AND A.PASSWORD = :password"; Map paramMap = new HashMap(); paramMap.put("username", username); paramMap.put("password", PasswordEncoder.encode(password)); Map user = baseDao.queryForMap(selectSql,paramMap); if(null==user || user.size() == 0) { return "用户名或者密码错误"; } String wechatOpenId = ConvertUtil.obj2StrBlank(user.get("WECHAT_OPEN_ID")); if(StringUtil.notEmpty(wechatOpenId)) { return "您已绑定过微信"; } //账号被锁定,请联系管理员 if(ConvertUtil.obj2StrBlank(user.get("STATE")).equals("2")){ return "账号被锁定,请联系管理员"; } //账号不允许登录 if(ConvertUtil.obj2StrBlank(user.get("ALLOW_LOGIN")).equals("2")) { return "账号不允许登录,请联系管理员"; } Map jms = timeoutMsg(); String isTimeOut = ConvertUtil.obj2StrBlank(jms.get("IS_TIME_OUT")); if(StringUtil.notEmpty(isTimeOut) && isTimeOut.equals("2")) { return "该账号已过有效期"; } String updateSql = "UPDATE CUSTOMER_CONTACTS SET WECHAT_OPEN_ID = :openId WHERE ID = :id "; baseDao.execute(updateSql, new SqlParameter("id", user.get("ID")).addValue("openId", openId)); String function = "提醒通知"; String remark = ""; //通过openId获取用户的基本信息 Map userBaseMap = wechatService.queryUserBaseMsgByOpenId(openId); String wxName = ConvertUtil.obj2StrBlank(userBaseMap.get("nickname")); wxName=queryZsxm(openId); System.out.println("wxName--------------->"+wxName); //用户绑定提醒 String unbindUrl = WechatConstants.CUSTOMER_UNBIND_ADDRESS+"?openId="+openId; //如果绑定成功,提醒微信绑定成功通知 wechatService.bindingNotice(openId,unbindUrl,wxName,username,function,remark); request.getSession().setAttribute(SysConstants.WYW_LOGIN_INFO_KEY, user); return "1"; } @Override public String checkLoginMsg(HttpServletRequest request) { String username = request.getParameter("username"); String password = request.getParameter("password"); if(!StringUtil.notEmpty(username)) { return "请输入名称"; } if(!StringUtil.notEmpty(password)) { return "请输入密码"; } String selectSql = "SELECT A.*,B.CUSTOMER_NAME,B.PARTNER_ID FROM SC_PARTNER_CUSTOMER_ACCOUNT_INFO A,SC_PARTNER_CUSTOMER_INFO B WHERE A.CUSTOMER_ID = B.ID AND A.LOGIN_NAME = :username AND A.PASSWORD = :password"; Map paramMap = new HashMap(); paramMap.put("username", username); paramMap.put("password", PasswordEncoder.encode(password)); Map user = baseDao.queryForMap(selectSql,paramMap); if(null==user || user.size() == 0) { return "用户名或者密码错误"; } request.getSession().setAttribute(SysConstants.WYW_LOGIN_INFO_KEY, user); return "1"; } @Override public String updateCustomerUnBindOpenId(HttpServletRequest request) { //String username = request.getParameter("username"); //String password = request.getParameter("password"); String openId = request.getParameter("openId"); /*if(!StringUtil.notEmpty(username)) { return "请输入名称"; } if(!StringUtil.notEmpty(password)) { return "请输入密码"; } if(!StringUtil.notEmpty(openId)) { return "绑定失败"; }*/ String hasBindSql = "SELECT COUNT(ID) FROM CUSTOMER_CONTACTS WHERE WECHAT_OPEN_ID = :openId "; int bindCount = baseDao.queryForInteger(hasBindSql,new SqlParameter("openId",openId)); if(bindCount<=0) { return "该微信号未绑定平台账号"; } /*String selectSql = "SELECT ID FROM PROJECT_CONTACTS WHERE LOGIN_NAME = :username AND PASSWORD = :password AND WECHAT_OPEN_ID = :openId"; Map paramMap = new HashMap(); paramMap.put("username", username); paramMap.put("password", PasswordEncoder.encode(password)); paramMap.put("openId", openId); Map user = baseDao.queryForMap(selectSql,paramMap); if(null==user || user.size() == 0) { return "用户名或者密码错误"; }*/ String updateSql = "UPDATE CUSTOMER_CONTACTS SET WECHAT_OPEN_ID = NULL WHERE WECHAT_OPEN_ID = :openId "; baseDao.execute(updateSql, new SqlParameter("openId", openId)); //清空session WebUtil.removeCustomerMsg(request); String remark = "绑定账号请点击"; //通过openId获取用户的基本信息 Map userBaseMap = wechatService.queryUserBaseMsgByOpenId(openId); String wxName = ConvertUtil.obj2StrBlank(userBaseMap.get("nickname")); System.out.println("wxName--------------->"+wxName); String bindUrl = WechatConstants.CUSTOMER_BIND_ADDRESS+"?openId="+openId; //如果解除绑定成功,提醒微信jiechu 绑定成功 wechatService.unbindingNotice(openId,bindUrl,wxName,remark); return "1"; } @Override public String updateClientCustomer(HttpServletRequest request) { String username = request.getParameter("username"); String password = request.getParameter("password"); //当前登录用户的ime String ime = request.getParameter("ime"); if(!StringUtil.notEmpty(username)) { return "请输入名称"; } if(!StringUtil.notEmpty(password)) { return "请输入密码"; } String selectSql = "SELECT A.*,C.CUSTOMER_STATE,C.CREATE_TIME,C.VALID_BEGIN_DATE,C.VALID_END_DATE,C.CUSTOMER_NAME,C.SHORT_NAME FROM CUSTOMER_CONTACTS A,SC_PARTNER_CUSTOMER_INFO C WHERE A.CUSTOMER_ID = C.ID AND A.LOGIN_NAME = :username AND A.PASSWORD = :password"; Map paramMap = new HashMap(); paramMap.put("username", username); paramMap.put("password", PasswordEncoder.encode(password)); Map user = baseDao.queryForMap(selectSql,paramMap); if(null==user || user.size() == 0) { return "用户名或者密码错误"; } //账号被锁定,请联系管理员 if(ConvertUtil.obj2StrBlank(user.get("STATE")).equals("2")){ return "账号被锁定,请联系管理员"; } //账号不允许登录 if(ConvertUtil.obj2StrBlank(user.get("ALLOW_LOGIN")).equals("2")) { return "账号不允许登录,请联系管理员"; } Map jms = timeoutMsg(); String isTimeOut = ConvertUtil.obj2StrBlank(jms.get("IS_TIME_OUT")); if(StringUtil.notEmpty(isTimeOut) && isTimeOut.equals("2")) { return "该账号已过有效期"; } //更新用户记录的ime updateUserIme(ime,username); request.getSession().setAttribute(SysConstants.WYW_LOGIN_INFO_KEY, user); request.getSession().setAttribute("isclient", "1"); return "1"; } /** * 用户登陆后,更新用户的ime * */ private void updateUserIme(String ime,String username) { Map user = new HashMap(); user.put("ime", ime); user.put("username",username); //清空所有用户的ime等于当前传入的ime String sql = "UPDATE CUSTOMER_CONTACTS SET IME = '' WHERE IME = :ime"; baseDao.execute(sql, user); //更新当前用户的ime sql = "UPDATE CUSTOMER_CONTACTS SET IME = :ime WHERE LOGIN_NAME = :username"; baseDao.execute(sql, user); } @Override public String updateClientEngineer(HttpServletRequest request) { String username = request.getParameter("username"); String password = request.getParameter("password"); //当前登录用户的ime String ime = request.getParameter("ime"); System.out.println("ime" +ime); if(!StringUtil.notEmpty(username)) { return "请输入名称"; } if(!StringUtil.notEmpty(password)) { return "请输入密码"; } System.out.println("username"+username); String selectSql = "SELECT A.* FROM (SELECT U.*,P.IS_TIME_OUT,P.VALID_END_DATE FROM GG_USER U , SC_PARTNER_INFO P ) A WHERE A.ZT = 1 AND A.LOGINNAME = :username AND A.PASSWORD = :password "; Map paramMap = new HashMap(); paramMap.put("username", username); paramMap.put("password", PasswordEncoder.encode(password)); Map user = baseDao.queryForMap(selectSql,paramMap); if(null==user || user.size() == 0) { return "用户名或者密码错误"; } String isTimeOut = ConvertUtil.obj2StrBlank(user.get("IS_TIME_OUT")); if(StringUtil.notEmpty(isTimeOut) && isTimeOut.equals("2")) { return "该账号已过有效期"; } putClientEngineerMsgToSession(request, user); //更新工程师记录的ime updateEngIme(ime,username); return "1"; } /** * 工程师登陆后,更新用户的ime * */ private void updateEngIme(String ime, String username) { Map user = new HashMap(); user.put("ime", ime); user.put("username",username); //清空所有工程师的ime等于当前传入的ime String sql = "UPDATE GG_USER SET IME = '' WHERE IME = :ime"; baseDao.execute(sql, user); //更新当前工程师的ime sql = "UPDATE GG_USER SET IME = :ime WHERE LOGINNAME = :username"; baseDao.execute(sql, user); } private void putClientEngineerMsgToSession(HttpServletRequest request,Map userMap) { //查询属于何种桌面类型 String jumpUrl = Constants.getWxDeskTopUrl(Constants.ROLE_FLINE); List roles = jsglFacade.getRolesByUserId(WebUtil.getEngineerUserId(request), 1); if(roles.size()==1){ String identify = ConvertUtil.obj2StrBlank(roles.get(0).get("identify")); if (StringUtil.isNotBlank(identify)) { jumpUrl = Constants.getWxDeskTopUrl(identify); } } userMap.put("deskTopType", jumpUrl); request.getSession().setAttribute("isclient", "1"); request.getSession().setAttribute("homePage", jumpUrl); request.getSession().setAttribute(SysConstants.WYW_ENGINEER_LOGIN_INFO_KEY, userMap); } @Override public boolean queryEmgHasIme(String ime) { String sql = "SELECT COUNT(ID) FROM GG_USER WHERE IME = :ime "; int count = baseDao.queryForInteger(sql, new SqlParameter().addValue("ime", ime)); //System.out.println("count---------------------->"+count); return count > 0 ? true : false; } @Override public boolean queryUserHasIme(String ime) { String sql = "SELECT COUNT(ID) FROM CUSTOMER_CONTACTS WHERE IME = :ime "; int count = baseDao.queryForInteger(sql, new SqlParameter().addValue("ime", ime)); return count > 0 ? true : false; } @Override public String queryEmgIme(HttpServletRequest request, String ime) { String selectsql = "SELECT A.* FROM (SELECT U.*,P.IS_TIME_OUT,P.VALID_END_DATE FROM GG_USER U , SC_PARTNER_INFO P ) A WHERE A.ZT = 1 AND A.IME=:ime"; Map userMap = baseDao.queryForMap(selectsql,new SqlParameter().addValue("ime", ime)); if(null != userMap && userMap.size()>0) { String isTimeOut = ConvertUtil.obj2StrBlank(userMap.get("IS_TIME_OUT")); if(StringUtil.notEmpty(isTimeOut) && isTimeOut.equals("2")) { //加盟商已过期 return "3"; } putClientEngineerMsgToSession(request,userMap); return "1"; } return "2"; } @Override public String queryUserIme(HttpServletRequest request, String ime) { String selectSql = "SELECT A.*,C.CUSTOMER_STATE,C.CREATE_TIME,C.VALID_BEGIN_DATE,C.VALID_END_DATE,C.CUSTOMER_NAME,C.SHORT_NAME FROM CUSTOMER_CONTACTS A,SC_PARTNER_CUSTOMER_INFO C WHERE A.CUSTOMER_ID = C.ID AND A.IME = :ime "; Map map = baseDao.queryForMap(selectSql,new SqlParameter("ime",ime)); if(null!=map && map.size()>0) { Map jms = timeoutMsg(); String isTimeOut = ConvertUtil.obj2StrBlank(jms.get("IS_TIME_OUT")); if(StringUtil.notEmpty(isTimeOut) && isTimeOut.equals("2")) { return "3"; } request.getSession().setAttribute(SysConstants.WYW_LOGIN_INFO_KEY, map); return "1"; } return "2"; } @Override public Map getVersion() { String sql = "SELECT A.*,B.CONTENT AS HTMLCONTENT FROM LARKS_VERSION A LEFT JOIN LARKS_HTML_VERSION B ON B.ID = A.HTML_ID WHERE A.STATUS = 1 "; Map version = baseDao.queryForMap(sql); Map resultMap = new HashMap(); resultMap.put("datas", version); resultMap.put(ClientUtil.SUCCESS, true); resultMap.put(ClientUtil.MSG, "成功"); return resultMap; } @Override public void deleteClientEngineer(HttpServletRequest request) { Map engineer = WebUtil.getEngineerMsg(request); if(null!=engineer && engineer.size()>0) { String id = ConvertUtil.obj2StrBlank(engineer.get("ID")); String sql = "UPDATE GG_USER SET IME = '' WHERE ID = :id"; baseDao.execute(sql, new SqlParameter("id",id)); } } @Override public void deleteClientCustomer(HttpServletRequest request) { Map user = WebUtil.getWywLoginUser(request); if(null!=user && user.size()>0) { String id = ConvertUtil.obj2StrBlank(user.get("ID")); String sql = "UPDATE CUSTOMER_CONTACTS SET IME = '' WHERE ID = :id"; baseDao.execute(sql, new SqlParameter("id",id)); } } @Override public void saveFacBx(Map params) { Map info= cfgFacade.getCfgById(params.get("cateId")); StringBuilder sql = new StringBuilder(); params.put("cusId", ConvertUtil.obj2Str(info.get("CUS_ID"))); sql.append(" insert into repair_record (id,create_name,status,create_time,cus_id,bx_title,bx_content,lx_phone) "); sql.append(" values (:id,:lxr,:status,:create_time,:cusId,:bx_title,:bx_content,:lx_phone) "); params.put("id", StringUtil.getUUID()); params.put("create_time", DateUtil.getCurrentDate14().toString()); params.put("status", Constants.REPAIR_STATE_DXY.toString()); baseDao.execute(sql.toString(), params); params.put("SERVICE", "SERVICE"); String sqla="SELECT id FROM AC_ROLE where IDENTIFY=:SERVICE"; String id=baseDao.queryForString(sqla, params); sqla="select OPEN_ID from gg_user a,AC_USER_REF_ROLE b where a.id=b.yhbh and a.zt=1 and b.jsbh=:id"; params.put("id", id); List list=baseDao.queryForList(sqla, params); String openIds=""; if(list!=null && list.size()>0){ for(Map map:list){ if(StringUtil.notEmpty(ConvertUtil.obj2Str(map.get("OPEN_ID")))){ openIds+=ConvertUtil.obj2Str(map.get("OPEN_ID"))+","; } } } String[] openId=openIds.split(","); //发送微信消息 String token = weiXinCoreService.getAccess_token(); System.out.println("token---------------------->"+token); String url = WechatConstants.SEND_TEMPLATE_MSG + token; String title=""; String userName=""; if(StringUtil.notEmpty(ConvertUtil.obj2Str(params.get("userName")))){ userName="报修人-"+ConvertUtil.obj2Str(params.get("userName")); }else{ userName="报修人-"+ConvertUtil.obj2Str(params.get("lxr")); } String content=params.get("bx_content"); // if(null!=openId && openId.length>0) { // Map result = new HashMap(); // result.put("template_id", WechatConstants.REMINDER_TEMP_ID); // result.put("topcolor", "#FF0000"); // if(!StringUtil.notEmpty(title)) { // title = "您有新的报修事件"; // } // String content=params.get("bx_content"); // Map data = new HashMap(); // result.put("data", data); // data.put("first", new CascadeMap("value",title).put("color", "#173177")); // data.put("keyword1", new CascadeMap("value",content).put("color", "#173177")); // data.put("keyword2", new CascadeMap("value",userName).put("color", "#173177")); // data.put("keyword3", new CascadeMap("value",DateUtil.getToday("yyyy-MM-dd HH:mm:ss")).put("color", "#173177")); // data.put("remark", new CascadeMap("value","请及时处理").put("color", "#173177")); // for(String str : openId) { // result.put("url", ""); // result.put("touser", str); // String json = JsonUtil.map2Json(result); // HttpUtil.doPost(url, json, HttpCharset.UTF8); // } // } if(null!=openId && openId.length>0) { Map result = new HashMap(); result.put("template_id", WechatConstants.NEW_ORDER_TEMP_ID); String orderDetailUrl = ""; if(!StringUtil.notEmpty(title)) { title = "您有新的报修事件"; } result.put("topcolor", "#FF0000"); Map data = new HashMap(); result.put("data", data); data.put("first", new CascadeMap("value",title).put("color", "#173177")); data.put("keyword1", new CascadeMap("value",content).put("color", "#173177")); data.put("keyword2", new CascadeMap("value",userName).put("color", "#173177")); data.put("keyword3", new CascadeMap("value",DateUtil.format("yyyy-MM-dd HH:mm:ss", DateUtil.getCurrentDate14())).put("color", "#173177")); data.put("remark", new CascadeMap("value","").put("color", "#173177")); String baseWxUrl = ""; for(String str : openId) { result.put("touser", str); result.put("url", WechatConstants.BASE_ADDRESS+"/ewyw/ewrepair/ewrepairPool.html"+"?openId="+str); String json = JsonUtil.map2Json(result); //开始发送数据信息 System.out.println("url------------------->"+url); System.out.println("json------------------->"+json); HttpUtil.doPost(url, json, HttpCharset.UTF8); } } } }