Commit 2f84ae8c by jianan

电子报聘审批通知4

parent 205206b7
......@@ -16,23 +16,24 @@ import com.yd.dal.mapper.customer.AclPractitionerHiringMembershipMapper;
import com.yd.dal.mapper.customer.AclPractitionerMapper;
import com.yd.dal.service.agms.AgmsHiringDALService;
import com.yd.dal.service.customer.*;
import com.yd.dal.service.meta.MdCodeDALService;
import com.yd.dal.service.meta.MdDropOptionsDALService;
import com.yd.dal.service.meta.MdPractitionerHiringApproveStepsDALService;
import com.yd.dal.service.practitioner.PractitionerHiringDALService;
import com.yd.dal.service.user.AclUserDALService;
import com.yd.rmi.ali.send.service.SendService;
import com.yd.rmi.cache.SystemConfigService;
import com.yd.rmi.tencent.wechat.service.WechatService;
import com.yd.rmi.tencent.wechatinterf.pojo.templetemessage.DataDetailInfo;
import com.yd.rmi.tencent.wechatinterf.pojo.templetemessage.SendTemplateRequest;
import com.yd.rmi.tencent.wechatinterf.pojo.templetemessage.TemplateDataInfo;
import com.yd.rmi.tencent.wechatinterf.service.WechatInterfService;
import com.yd.util.CommonUtil;
import com.yd.util.config.ZHBErrorConfig;
import com.yd.util.page.PageInfoUtils;
import org.apache.commons.beanutils.BeanPropertyValueEqualsPredicate;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -46,6 +47,7 @@ import java.util.List;
*/
@Service("agmsHiringService")
public class AgmsHiringServiceImpl implements AgmsHiringService {
private final static Logger logger = LoggerFactory.getLogger(AgmsHiringServiceImpl.class);
private AgmsHiringDALService agmsHiringDalService;
private SystemConfigService systemConfigService;
......@@ -55,7 +57,6 @@ public class AgmsHiringServiceImpl implements AgmsHiringService {
private AclPractitionerDALService aclPractitionerDalService;
private AclPractitionerSettingDALService aclPractitionerSettingDalService;
private AclPractitionerHiringBasicInfoDALService aclPractitionerHiringBasicInfoDalService;
private AclPractitionerHiringMembershipDALService aclPractitionerHiringMembershipDalService;
private AclPractitionerSubordinateSystemDALService aclPractitionerSubordinateSystemDalService;
private AclCustomerDALService aclCustomerDalService;
@Autowired
......@@ -67,15 +68,13 @@ public class AgmsHiringServiceImpl implements AgmsHiringService {
@Autowired
private AclPractitionerHiringMembershipMapper membershipMapper;
@Autowired
private MdCodeDALService mdCodeDALService;
@Autowired
private SendService sendService;
@Autowired
private AclPractitionerPotentialAssignedTrackDALService aclPractitionerPotentialAssignedTrackDALService;
@Autowired
private MdDropOptionsDALService mdDropOptionsDALService;
@Autowired
private WechatInterfService wechatInterfService;
private WechatService wechatService;
@Autowired
public void setAgmsHiringDalService(AgmsHiringDALService agmsHiringDalService){
......@@ -116,11 +115,6 @@ public class AgmsHiringServiceImpl implements AgmsHiringService {
}
@Autowired
public void setAclPractitionerHiringMembershipDalService(AclPractitionerHiringMembershipDALService aclPractitionerHiringMembershipDalService) {
this.aclPractitionerHiringMembershipDalService = aclPractitionerHiringMembershipDalService;
}
@Autowired
public void setAclPractitionerSubordinateSystemDalService(AclPractitionerSubordinateSystemDALService aclPractitionerSubordinateSystemDalService) {
this.aclPractitionerSubordinateSystemDalService = aclPractitionerSubordinateSystemDalService;
}
......@@ -483,26 +477,26 @@ public class AgmsHiringServiceImpl implements AgmsHiringService {
name2.append(basicInfo.getName());
// 发送短信通知下一位审批人进行审批
// this.noticeSendSMS(name2.toString(), practitionerList, basicInfo);
this.noticeSendSMS(name2.toString(), practitionerList, basicInfo);
// 公众号推送通知下一位审批人进行审批
this.noticeSendWeChatMsg(name2.toString(), practitionerList, basicInfo);
}
private void noticeSendWeChatMsg(String hiringName, List<PractitionerInfo> practitionerList, AclPractitionerHiringBasicInfo basicInfo) {
//TODO 配置数据库
// String templateId = systemConfigService.getSingleConfigValue("TENCENT_WECHAT_TEMPLATE_ID_XB");
// String jumpUrl = systemConfigService.getSingleConfigValue("hiringApprove_page_url") + orderId;
String templateId = "4_GL7QFaFxucU4K35-2dy6RcjuPE6eQjJyf_2BKddx4";
String jumpUrl = "https://mdev.zuihuibi.cn/ydLife/login";
// 读取数据库配置
String templateId = systemConfigService.getSingleConfigValue("TENCENT_WECHAT_TEMPLATE_ID_HIRING");
String jumpUrl = systemConfigService.getSingleConfigValue("hiringApprove_page_url");
// String templateId = "4_GL7QFaFxucU4K35-2dy6RcjuPE6eQjJyf_2BKddx4";
// String jumpUrl = "https://mdev.zuihuibi.cn/ydLife/login";
// 组装模板数据
String firstValue = systemConfigService.getSingleConfigValue("TENCENT_WECHAT_TEMPLATE_FIRST_HIRING");
String remarkValue = systemConfigService.getSingleConfigValue("TENCENT_WECHAT_TEMPLATE_REMARK_HIRING");
String color = systemConfigService.getSingleConfigValue("TENCENT_WECHAT_TEMPLATE_COLOR_XB");
// 组装模板数据
TemplateDataInfo dataInfo = new TemplateDataInfo();
DataDetailInfo first = new DataDetailInfo();
DataDetailInfo keyword1 = new DataDetailInfo(hiringName, color);
DataDetailInfo keyword1 = new DataDetailInfo("待审批", color);
DataDetailInfo keyword2 = new DataDetailInfo(CommonUtil.dateParseString(basicInfo.getCreatedAt(),"yyyy-MM-dd HH:mm:ss"), null);
DataDetailInfo remark = new DataDetailInfo(remarkValue, null);
......@@ -523,9 +517,12 @@ public class AgmsHiringServiceImpl implements AgmsHiringService {
if (StringUtils.isNotBlank(practitionerInfo.getYdWechatOpenid())) {
sendTemplateRequest.setToUser(practitionerInfo.getYdWechatOpenid());
// 审批人姓名
first.setValue(firstValue.replace("name", practitionerInfo.getName()));
first.setValue(firstValue.replace("name", practitionerInfo.getName()).replace("hiringName", hiringName));
logger.error("【》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》发送微信模板消息审批人");
logger.error("【》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》" + practitionerInfo.getName());
// 微信通知
wechatInterfService.sendTemplateMessage(sendTemplateRequest);
wechatService.sendTemplateMessage(sendTemplateRequest);
}
}
}
......@@ -539,11 +536,17 @@ public class AgmsHiringServiceImpl implements AgmsHiringService {
for (PractitionerInfo practitionerInfo : practitionerList) {
name = practitionerInfo.getName();
mobileNo = practitionerInfo.getMobileNo();
if (StringUtils.isNotBlank(mobileNo)) {
// 发短信
// ${name},您好!${name2}(S3纵队S2体系S1分部的XX)经纪人已提交报聘审批,请至“赢家平台>我的团队-报聘审批”进行查看审批,谢谢!
String templateCode = systemConfigService.getSingleConfigValue("ALI_SMS_HiringApproveNotice");
String content = "{\"name\":\"" + name + "\",\"hiringName\":\"" + hiringName + "\"}";
sendService.sendEmailOrSMS("sms", mobileNo, "0", content, templateCode, null, null, "电子报聘审批通知", 99, basicInfo.getId());
} else {
logger.error("【》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》电子报聘审批人电话号码不存在");
throw new RuntimeException("电子报聘审批人电话号码不存在");
}
}
}
......
......@@ -6,11 +6,11 @@ import com.yd.rmi.tencent.wechat.vo.WxNATIVEPayQueryRespVO;
import com.yd.rmi.tencent.wechat.vo.WxUserInfo;
import com.yd.rmi.tencent.wechatinterf.pojo.accesstoken.AccessTokenRequest;
import com.yd.rmi.tencent.wechatinterf.pojo.accesstoken.AccessTokenResponse;
import com.yd.rmi.tencent.wechatinterf.pojo.templetemessage.SendTemplateRequest;
import com.yd.rmi.tencent.wechatinterf.pojo.ticket.TicketRequest;
import com.yd.rmi.tencent.wechatinterf.pojo.token.TokenRequest;
import com.yd.rmi.tencent.wechatinterf.pojo.unifiedorder.UnifiedorderResponse;
import java.io.IOException;
import java.util.Map;
public interface WechatService {
......@@ -90,4 +90,10 @@ public interface WechatService {
*/
WeChatInfoByENV getWeChatInfoByENV(String gzhName, boolean getAccessToken);
/**
* 发送模版信息
* @param sendTemplateRequest
*/
void sendTemplateMessage(SendTemplateRequest sendTemplateRequest);
}
......@@ -4,12 +4,11 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.google.common.base.Strings;
import com.yd.api.result.CommonResult;
import com.yd.dal.entity.customer.AclPractitionerHiringBasicInfo;
import com.yd.rmi.cache.SystemConfigService;
import com.yd.dal.entity.tencent.TenInterfRecord;
import com.yd.dal.entity.transaction.TranLog;
import com.yd.dal.service.tencent.TenInterfRecordDALService;
import com.yd.dal.service.transaction.TranLogDALService;
import com.yd.rmi.cache.SystemConfigService;
import com.yd.rmi.tencent.wechat.service.WechatService;
import com.yd.rmi.tencent.wechat.vo.WeChatInfoByENV;
import com.yd.rmi.tencent.wechat.vo.WxNATIVEPayQueryReqVO;
......@@ -17,6 +16,7 @@ import com.yd.rmi.tencent.wechat.vo.WxNATIVEPayQueryRespVO;
import com.yd.rmi.tencent.wechat.vo.WxUserInfo;
import com.yd.rmi.tencent.wechatinterf.pojo.accesstoken.AccessTokenRequest;
import com.yd.rmi.tencent.wechatinterf.pojo.accesstoken.AccessTokenResponse;
import com.yd.rmi.tencent.wechatinterf.pojo.templetemessage.SendTemplateRequest;
import com.yd.rmi.tencent.wechatinterf.pojo.ticket.TicketRequest;
import com.yd.rmi.tencent.wechatinterf.pojo.ticket.TicketResponse;
import com.yd.rmi.tencent.wechatinterf.pojo.token.TokenRequest;
......@@ -26,14 +26,14 @@ import com.yd.rmi.tencent.wechatinterf.pojo.unifiedorder.UnifiedorderResponse;
import com.yd.rmi.tencent.wechatinterf.service.WechatInterfService;
import com.yd.util.*;
import com.yd.util.config.ZHBErrorConfig;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.imageio.ImageIO;
import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLSession;
import java.awt.*;
import java.io.*;
import java.net.MalformedURLException;
import java.net.URL;
......@@ -41,11 +41,12 @@ import java.net.URLEncoder;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.*;
import java.util.List;
import java.util.Map.Entry;
@Service("wechatService")
public class WechatServiceImpl implements WechatService {
private final static Logger logger = LoggerFactory.getLogger(WechatServiceImpl.class);
@Autowired
private TenInterfRecordDALService tenInterfRecordDALService;
@Autowired
......@@ -590,11 +591,11 @@ public class WechatServiceImpl implements WechatService {
if("YDBJ".equals(gzhName)){
appId = systemConfigService.getSingleConfigValue("YD-TENCENT_WECHAT_APPID");
secret = systemConfigService.getSingleConfigValue("YD-TENCENT_WECHAT_APP_SECRET");
}else{
if(isProd){
} else {
if (isProd) {
appId = systemConfigService.getSingleConfigValue("TENCENT_WECHAT_APPID");
secret = systemConfigService.getSingleConfigValue("TENCENT_WECHAT_APP_SECRET");
}else{
} else {
appId = systemConfigService.getSingleConfigValue("AJB-TENCENT_WECHAT_APPID");
secret = systemConfigService.getSingleConfigValue("AJB-TENCENT_WECHAT_APP_SECRET");
}
......@@ -758,6 +759,20 @@ public class WechatServiceImpl implements WechatService {
return Long.toString(System.currentTimeMillis() / 1000);
}
@Override
public void sendTemplateMessage(SendTemplateRequest sendTemplateRequest) {
WeChatInfoByENV weChatInfoByENV = getWeChatInfoByENV("YDBJ", true);
String url = systemConfigService.getSingleConfigValue("TENCENT_WECHAT_TEMPLATE_SEND_URL") + weChatInfoByENV.getAccessToken();
logger.error("【》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》发送微信模板消息开始");
tranLogDALService.logDB("wechat", "sendTemplateMessage", "in", sendTemplateRequest.getToUser(), url, null, null);
String responseStr = wechatInterfService.weChatTransaction(url, JsonUtil.objToJson(sendTemplateRequest));
logger.error("【》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》发送微信模板消息响应报文");
logger.error(responseStr);
tranLogDALService.logDB("wechat", "sendTemplateMessage", "out", sendTemplateRequest.getToUser(), responseStr, null, null);
}
......
......@@ -7,7 +7,6 @@ import com.yd.rmi.tencent.wechatinterf.pojo.accesstoken.AccessTokenResponse;
import com.yd.rmi.tencent.wechatinterf.pojo.authorize.AuthorizeRequest;
import com.yd.rmi.tencent.wechatinterf.pojo.jscode2session.Jscode2sessionRequest;
import com.yd.rmi.tencent.wechatinterf.pojo.jscode2session.Jscode2sessionResponse;
import com.yd.rmi.tencent.wechatinterf.pojo.templetemessage.SendTemplateRequest;
import com.yd.rmi.tencent.wechatinterf.pojo.ticket.TicketRequest;
import com.yd.rmi.tencent.wechatinterf.pojo.ticket.TicketResponse;
import com.yd.rmi.tencent.wechatinterf.pojo.token.TokenRequest;
......@@ -91,10 +90,4 @@ public interface WechatInterfService {
*/
AccessTokenByCodeResponse getAccessTokenByCode(AccessTokenByCodeRequest accessTokenByCodeRequest);
/**
* 发送模版信息
* @param sendTemplateRequest
*/
void sendTemplateMessage(SendTemplateRequest sendTemplateRequest);
}
package com.yd.rmi.tencent.wechatinterf.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.yd.dal.service.transaction.TranLogDALService;
import com.yd.rmi.cache.SystemConfigService;
import com.yd.rmi.tencent.wechat.vo.accesstoken.AccessTokenByCodeRequest;
......@@ -11,7 +9,6 @@ import com.yd.rmi.tencent.wechatinterf.pojo.accesstoken.AccessTokenResponse;
import com.yd.rmi.tencent.wechatinterf.pojo.authorize.AuthorizeRequest;
import com.yd.rmi.tencent.wechatinterf.pojo.jscode2session.Jscode2sessionRequest;
import com.yd.rmi.tencent.wechatinterf.pojo.jscode2session.Jscode2sessionResponse;
import com.yd.rmi.tencent.wechatinterf.pojo.templetemessage.SendTemplateRequest;
import com.yd.rmi.tencent.wechatinterf.pojo.ticket.TicketRequest;
import com.yd.rmi.tencent.wechatinterf.pojo.ticket.TicketResponse;
import com.yd.rmi.tencent.wechatinterf.pojo.token.TokenRequest;
......@@ -20,7 +17,6 @@ import com.yd.rmi.tencent.wechatinterf.pojo.unifiedorder.UnifiedorderResponse;
import com.yd.rmi.tencent.wechatinterf.service.WechatInterfService;
import com.yd.util.CommonUtil;
import com.yd.util.EncryptUtil;
import com.yd.util.HttpUtil;
import com.yd.util.JsonUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......@@ -377,43 +373,6 @@ public class WechatInterfServiceImpl implements WechatInterfService {
return (AccessTokenByCodeResponse)JsonUtil.jsonToObj(responseStr, AccessTokenByCodeResponse.class);
}
@Override
public void sendTemplateMessage(SendTemplateRequest sendTemplateRequest) {
String appId = systemConfigService.getSingleConfigValue("YD-TENCENT_WECHAT_APPID");
String secret = systemConfigService.getSingleConfigValue("YD-TENCENT_WECHAT_APP_SECRET");
String grantType = systemConfigService.getSingleConfigValue("TENCENT_WECHAT_TOKEN_GRANT_TYPE");
// TokenRequest tokenRequest = new TokenRequest();
// tokenRequest.setAppid(appId);
// tokenRequest.setSecret(secret);
// tokenRequest.setGrant_type(grantType);
// TokenResponse token = this.token(tokenRequest);
AccessTokenRequest accessTokenRequest = new AccessTokenRequest();
accessTokenRequest.setAppid(appId);
accessTokenRequest.setSecret(secret);
accessTokenRequest.setGrant_type(grantType);
String token = getAccessTokenByDEV(accessTokenRequest);
String url = systemConfigService.getSingleConfigValue("TENCENT_WECHAT_TEMPLATE_SEND_URL") + token;
logger.error("【》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》发送微信模板消息开始");
tranLogDALService.logDB("wechat", "sendTemplateMessage", "in", sendTemplateRequest.getToUser(), url, null, null);
String responseStr = weChatTransaction(url, JsonUtil.objToJson(sendTemplateRequest));
tranLogDALService.logDB("wechat", "sendTemplateMessage", "out", sendTemplateRequest.getToUser(), responseStr, null, null);
}
/**
* 在本地开发时,通过dev去获取access_token
* @param accessTokenRequest
* @return
*/
private String getAccessTokenByDEV(AccessTokenRequest accessTokenRequest) {
String requestJson = JsonUtil.objToJson(accessTokenRequest);
String responseJson = HttpUtil.postForJson("https://mdev.zuihuibi.cn/api/getAccessToken",requestJson);
JSONObject result = JSON.parseObject(responseJson);
return result.getString("data");
}
/**
* 微信接口交互
*/
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment