package cn.ksource.web.facade.uc.login;
|
|
import java.util.ArrayList;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
|
import javax.servlet.http.HttpServletRequest;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
import cn.ksource.beans.GG_MESSAGE;
|
import cn.ksource.beans.GG_USER;
|
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.PasswordEncoder;
|
import cn.ksource.core.web.WebUtil;
|
import cn.ksource.core.weixin.service.WeiXinCoreService;
|
import cn.ksource.web.Constants;
|
import cn.ksource.web.controller.wechat.util.WechatConstants;
|
import cn.ksource.web.facade.message.MessageFacade;
|
|
@Service("ucFacade")
|
public class UcFacadeImpl implements UcFacade {
|
|
@Autowired
|
private BaseDao baseDao;
|
|
@Autowired
|
private MessageFacade messageFacade;
|
@Autowired
|
private WeiXinCoreService weiXinCoreService;
|
|
@Override
|
public String updateUserPwd(String userId, String newPassword) {
|
Map map = new HashMap();
|
if(!(StringUtil.notEmpty(newPassword)&&StringUtil.isPasswordReg(newPassword))) {
|
map.put("status", "0");
|
map.put("msg", "密码由6-18位的字母,数字,下划线组成");
|
return JsonUtil.map2Json(map);
|
}
|
newPassword = newPassword.trim();
|
String sql = "SELECT * FROM CUSTOMER_CONTACTS WHERE ID = :userId ";
|
Map userMap = baseDao.queryForMap(sql,new SqlParameter("userId",userId));
|
if(PasswordEncoder.encode(newPassword).equals(userMap.get("PASSWORD"))) {
|
map.put("status", "0");
|
map.put("msg", "新密码和原密码一样!");
|
return JsonUtil.map2Json(map);
|
}
|
String updateSql = "UPDATE CUSTOMER_CONTACTS SET PASSWORD = :newPassword WHERE ID = :userId";
|
baseDao.execute(updateSql, new SqlParameter("newPassword",PasswordEncoder.encode(newPassword)).addValue("userId", userId));
|
map.put("status", "1");
|
return JsonUtil.map2Json(map);
|
}
|
|
@Override
|
public String updateUserMobile(String userId, String mobile) {
|
|
String sql = "UPDATE CUSTOMER_CONTACTS SET MOBILE = :phone,ISPHONE = 2 WHERE ID = :userId";
|
baseDao.execute(sql, new SqlParameter("phone",mobile).addValue("userId", userId));
|
|
return "1";
|
}
|
|
@Override
|
public boolean isPhone(String userId, String mobile) {
|
String selectSql = "SELECT COUNT(1) FROM CUSTOMER_CONTACTS WHERE ID = :userId AND MOBILE = :phone AND ISPHONE = 2";
|
Integer count = baseDao.queryForInteger(selectSql,new SqlParameter("userId",userId).addValue("phone", mobile));
|
if(count>0){
|
return false;
|
}else{
|
return true;
|
}
|
}
|
|
@Override
|
public boolean isEmail(String userId, String email) {
|
String selectSql = "SELECT COUNT(1) FROM CUSTOMER_CONTACTS WHERE EMAIL = :email AND ISEMAIL = 2";
|
Integer count = baseDao.queryForInteger(selectSql,new SqlParameter("email", email));
|
if(count>0){
|
return false;
|
}else{
|
return true;
|
}
|
}
|
|
@Override
|
public String updateUserEmail(String userId, String email) {
|
String sql = "UPDATE CUSTOMER_CONTACTS SET EMAIL = :email,ISEMAIL = 2 WHERE ID = :userId";
|
baseDao.execute(sql, new SqlParameter("email",email).addValue("userId", userId));
|
|
return "1";
|
}
|
|
@Override
|
public String updateUserOldPwd(String userId, String oldPassword,String newPassword) {
|
Map map = new HashMap();
|
if(!(StringUtil.notEmpty(newPassword)&&StringUtil.isPasswordReg(newPassword)&&StringUtil.notEmpty(oldPassword)&&StringUtil.isPasswordReg(oldPassword))) {
|
map.put("status", "0");
|
map.put("msg", "密码由6-18位的字母,数字,下划线组成");
|
return JsonUtil.map2Json(map);
|
}
|
oldPassword = oldPassword.trim();
|
newPassword = newPassword.trim();
|
String sql = "SELECT COUNT(ID) FROM CUSTOMER_CONTACTS WHERE ID = :userId AND PASSWORD = :password";
|
int count = baseDao.queryForInteger(sql,new SqlParameter("userId",userId).addValue("password", PasswordEncoder.encode(oldPassword)));
|
if(count == 0) {
|
map.put("status", "0");
|
map.put("msg", "原密码输入错误!");
|
return JsonUtil.map2Json(map);
|
}
|
String updateSql = "UPDATE CUSTOMER_CONTACTS SET PASSWORD = :newPassword WHERE ID = :userId";
|
baseDao.execute(updateSql, new SqlParameter("newPassword",PasswordEncoder.encode(newPassword)).addValue("userId", userId));
|
map.put("status", "1");
|
return JsonUtil.map2Json(map);
|
}
|
|
@Override
|
public Map getCusMsgByCusId(String customer_Id) {
|
String sql = "SELECT A.CUSTOMER_NAME,A.YWJL_NAME,A.VALID_BEGIN_DATE,A.VALID_END_DATE,A.YWJL_ID FROM SC_PARTNER_CUSTOMER_INFO A,CUSTOMER_CONTACTS B WHERE B.CUSTOMER_ID = A.ID AND A.ID = :id ";
|
Map proMap = baseDao.queryForMap(sql, new SqlParameter("id",customer_Id));
|
proMap.put("VALID_BEGIN_DATE", DateUtil.format("yyyy-MM-dd", proMap.get("VALID_BEGIN_DATE")));
|
proMap.put("VALID_END_DATE", DateUtil.format("yyyy-MM-dd", proMap.get("VALID_END_DATE")));
|
String id=ConvertUtil.obj2StrBlank(proMap.get("YWJL_ID"));
|
if(StringUtil.notEmpty(id)){
|
GG_USER user=new GG_USER(id).getInstanceById();
|
proMap.put("PHONE", user.getSjhm());
|
}
|
return proMap;
|
}
|
|
@Override
|
public String getCusSatisByCusId(String customer_Id) {
|
String sql = "SELECT ALL_SCORE FROM TOTLE_SATIS_INFO WHERE CUSTOMER_ID = :customer_Id AND MONTH = :month ";
|
Map param = new HashMap();
|
param.put("customer_Id", customer_Id);
|
param.put("month", DateUtil.getMonthAdd("yyyyMM", -1));
|
|
return baseDao.queryForString(sql, param);
|
}
|
|
@Override
|
public int getZcUserByCusId(String customer_Id) {
|
Map param = new HashMap();
|
param.put("customer_Id", customer_Id);
|
String sqluser="SELECT COUNT(a.ID) FROM SC_CUSTOMER_ZC_UESR a,GG_USER b,AC_ROLE c,AC_USER_REF_ROLE d WHERE a.CUSTOMER_ID = :customer_Id and a.USER_ID=b.ID and b.ID=D.YHBH and c.ID=D.JSBH and c.IDENTIFY='LOCATION' and b.ZT=1 ";
|
String sqlSubuser="SELECT COUNT(e.ID) FROM SC_PARTNER_CUSTOMER_SUB e,SC_CUSTOMER_ZC_UESR a,GG_USER b,AC_ROLE c,AC_USER_REF_ROLE d WHERE e.CUSTOMER_ID = :customer_Id AND a.ID = e.CUSTOMER_ID and a.USER_ID=b.ID and b.ID=D.YHBH and c.ID=D.JSBH and c.IDENTIFY='LOCATION' and b.ZT=1 ";
|
int usernum = baseDao.queryForInteger(sqluser, param);
|
int usersubnum = baseDao.queryForInteger(sqlSubuser, param);
|
|
return usernum+usersubnum;
|
}
|
|
@Override
|
public List<Map> getOrderNumByCusId(String customer_Id) {
|
String sql = "SELECT BUSINESSTYPE ,COUNT(ID) AS NUM FROM WORKFLOW_BASE WHERE CUSTOMER_ID = :customer_Id GROUP BY BUSINESSTYPE ";
|
return baseDao.queryForList(sql, new SqlParameter("customer_Id",customer_Id));
|
}
|
|
@Override
|
public List<Map> getOrderListByCusId(String customer_Id, int i) {
|
String sql = "SELECT * FROM WORKFLOW_BASE WHERE WFSTATE != :ysc AND CUSTOMER_ID = :customer_Id ORDER BY CREATETIME DESC LIMIT 0,:size ";
|
Map param = new HashMap();
|
param.put("customer_Id", customer_Id);
|
param.put("size", i);
|
param.put("ysc", Constants.WORKFLOW_BASE_WFSTATE_DELETE);
|
return baseDao.queryForList(sql, param);
|
}
|
|
@Override
|
public int getZcxjCount(String customer_Id) {
|
StringBuilder sql = new StringBuilder();
|
sql.append(" select count(ID) from CI_DAILY_PATROL where CUS_ID=:customer_Id ");
|
return baseDao.queryForInteger(sql.toString(), new SqlParameter("customer_Id",customer_Id));
|
}
|
|
@Override
|
public int getUserByRole(String rolemark) {
|
String sql = "SELECT COUNT(C.ID) FROM AC_ROLE A,AC_USER_REF_ROLE B,GG_USER C WHERE A.ID = B.JSBH AND B.YHBH = C.ID AND A.IDENTIFY = :rolemark AND C.ZT = 1 ";
|
return baseDao.queryForInteger(sql, new SqlParameter("rolemark",rolemark));
|
}
|
|
@Override
|
public int getUserByPwd(String userId, String pwd) {
|
String sql = "SELECT COUNT(ID) FROM CUSTOMER_CONTACTS WHERE ID = :userId AND PASSWORD = :password";
|
int count = baseDao.queryForInteger(sql,new SqlParameter("userId",userId).addValue("password", PasswordEncoder.encode(pwd)));
|
return count;
|
}
|
|
@SuppressWarnings({ "unchecked", "rawtypes" })
|
@Override
|
public void doSubRepair(Map<String, String> params) {
|
StringBuilder sql = new StringBuilder();
|
sql.append(" insert into repair_record (id,create_id,create_name,status,create_time,cus_id,bx_title,bx_content,lx_phone) ");
|
sql.append(" values (:id,:userId,:userName,: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<Map> 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);
|
}
|
}
|
|
|
}
|
}
|