Commit 1aa37e73 by wenyang

专家处理商机,更新预约状态,给客户发送预约成功短信,小程序发送预约成功通知14

parent 7556b068
......@@ -892,7 +892,7 @@ public class AgmsFortuneServiceImpl implements AgmsFortuneService {
}
String subject = "回退财富";
sendService.sendEmailOrSMS("email", email, "3", messageText, null, subject, ccAddresses, "回复财富", 99, null);
sendService.sendEmailOrSMS("email", email, "3", messageText, null, subject, ccAddresses, "回复财富", 99, null, null);
resp.setCommonResult(new CommonResult(true, ZHBErrorConfig.getErrorInfo("800000")));
return resp;
}
......
......@@ -688,7 +688,7 @@ public class AgmsHiringServiceImpl implements AgmsHiringService {
} else {
content.put("approveName", approveName + ",退回原因<" + rejectNote + ">" + ",请至“赢家平台>我的团队-报聘审批”进行查看审批,谢谢!" + jumpUrl);
}
sendService.sendEmailOrSMS("sms", mobileNo, "0", content.toJSONString(), templateCode, null, null, "电子报聘审批退回", 99, basicInfoId);
sendService.sendEmailOrSMS("sms", mobileNo, "0", content.toJSONString(), templateCode, null, null, "电子报聘审批退回", 99, basicInfoId, null);
} else {
logger.error("【》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》电子报聘聘退回发送短信电话号码不存在");
logger.error("【》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》" + name + ": " + mobileNo);
......@@ -923,6 +923,6 @@ public class AgmsHiringServiceImpl implements AgmsHiringService {
messageText.append("的电子报聘流程线上审批已经通过,请尽快帮助完成该报聘人的经纪人执业登记,并在AGMS 里更新并生成电子合同。谢谢!");
String subject = "电子报聘审批通过";
sendService.sendEmailOrSMS("email", address, "3", messageText.toString(), null, subject, ccAddresses, "电子报聘审批通过", 99, null);
sendService.sendEmailOrSMS("email", address, "3", messageText.toString(), null, subject, ccAddresses, "电子报聘审批通过", 99, null, null);
}
}
......@@ -456,7 +456,7 @@ public class LifeCommissionServiceImpl implements LifeCommissionService {
messageText.append("来佣比对已退保,请知悉");
String subject = "来佣比对已退保";
sendService.sendEmailOrSMS("email", email, "3", messageText.toString(), null, subject, ccAddresses, "来佣比对已退保", 99, null);
sendService.sendEmailOrSMS("email", email, "3", messageText.toString(), null, subject, ccAddresses, "来佣比对已退保", 99, null, null);
}
private void updateFortune(Long commissionId, String status, String loginId, String checkBatch) {
......
......@@ -863,7 +863,7 @@ public class PractitionerHiringServiceImpl implements PractitionerHiringService
templateCode = smsParam.get(mobileNo).get(0);
content = smsParam.get(mobileNo).get(1);
sendService.sendEmailOrSMS("sms", mobileNo, "0", content, templateCode, null, null, "电子报聘合同生成提醒", 99, hiringBasicInfoId);
sendService.sendEmailOrSMS("sms", mobileNo, "0", content, templateCode, null, null, "电子报聘合同生成提醒", 99, hiringBasicInfoId, null);
}
}
}
......
......@@ -1827,16 +1827,32 @@ public class PractitionerServiceImpl implements com.yd.api.practitioner.service.
agSfpAppointmentRecord.setSfpMainId(pool.getSfpMainId());
mktLeadsAssignedTrackDALService.updateAppointmentRecord(agSfpAppointmentRecord);
AclPractitioner aclPractitioner = null;
if(requestVO.getPractitionerId() != null){
aclPractitioner = aclPractitionerDALService.findById(requestVO.getPractitionerId());
}
String mobileNo = pool.getMobile();
//给客户发送预约短信
if (StringUtils.isNotBlank(mobileNo)) {
log.error("SFP客户手机号:{}",mobileNo);
// 发短信 ALI_SMS_CUS_RESERVATION
String templateCode = systemConfigService.getSingleConfigValue("ALI_SMS_CUS_RESERVATION");
String content = systemConfigService.getSingleConfigValue("SFP_SMS_RESERVATION_CONTENT");
content = content.replace("date", requestVO.getNoticeDate());
try {
sendService.sendEmailOrSMS("sms", mobileNo, "0", content, templateCode, null, null, "SFP智能财策预约通知", 99, pool.getId());
if (mobileNo.length() > 11) {
DESTypeHandler jpaCryptoConverter = new DESTypeHandler();
mobileNo = jpaCryptoConverter.decode(mobileNo);
}
log.error("SFP客户手机号:{}",mobileNo);
// 发短信 ALI_SMS_CUS_RESERVATION SMS_461985299
String templateCode = systemConfigService.getSingleConfigValue("ALI_SMS_CUS_RESERVATION1");
if(aclPractitioner != null){
String time = CommonUtil.dateParseString(track.getTrackTime(), "yyyy-MM-dd");
if(StringUtils.isNotBlank(requestVO.getTaskTimeFrom())){
time = time + " " + requestVO.getTaskTimeFrom();
}
JSONObject content = new JSONObject();
content.put("name", aclPractitioner.getName());
content.put("date", time);
sendService.sendEmailOrSMS("sms", mobileNo, "0", content.toJSONString(), templateCode, null, null, "SFP智能财策预约通知", 99, pool.getId(),"sfp");
}
}catch (Exception e){
e.printStackTrace();
log.error("给客户发送短信异常:{}",e.getMessage());
......@@ -1850,13 +1866,22 @@ public class PractitionerServiceImpl implements com.yd.api.practitioner.service.
String templateId = systemConfigService.getSingleConfigValue("SFP_TENCENT_WECHAT_TEMPLATE_ID");
String jumpUrl = systemConfigService.getSingleConfigValue("SFP_PAGE_CUS_URL");
String color = systemConfigService.getSingleConfigValue("TENCENT_WECHAT_TEMPLATE_COLOR_XB");
String remarkValue = systemConfigService.getSingleConfigValue("SFP_TENCENT_WECHAT_TEMPLATE_CUS_REMARK");
String pages = systemConfigService.getSingleConfigValue("TENCENT_WECHAT_TEMPLATE_PAGES");
String remarkValue = systemConfigService.getSingleConfigValue("SFP_TENCENT_WECHAT_TEMPLATE_CUS_REMARK1");
String accessToken = getAccessToken();
String url = systemConfigService.getSingleConfigValue("SFP_TENCENT_WECHAT_TEMPLATE_SEND_URL")+accessToken;
if(aclPractitioner != null){
// remarkValue = remarkValue.replace("name", aclPractitioner.getName());
remarkValue = remarkValue.replace("date", CommonUtil.dateParseString(track.getTrackTime(), "yyyy-MM-dd"));
// if(StringUtils.isNotBlank(requestVO.getTaskTimeFrom())){
// remarkValue = remarkValue + " " + requestVO.getTaskTimeFrom();
// }
}
// 组装模板数据
DataDetailInfo thing2 = new DataDetailInfo("SFP智能财策", color);
DataDetailInfo thing3 = new DataDetailInfo("网上预约", null);
DataDetailInfo thing3 = new DataDetailInfo("专家("+aclPractitioner.getName()+")已接单", null);
DataDetailInfo date4 = new DataDetailInfo(CommonUtil.dateParseString(new Date(),"yyyy-MM-dd HH:mm:ss"), null);
DataDetailInfo thing5 = new DataDetailInfo(remarkValue, null);
......@@ -1869,6 +1894,7 @@ public class PractitionerServiceImpl implements com.yd.api.practitioner.service.
SendTemplateSfpRequest sendTemplateRequest = new SendTemplateSfpRequest();
sendTemplateRequest.setTemplateId(templateId);
sendTemplateRequest.setUrl(jumpUrl);
sendTemplateRequest.setPage(pages);
sendTemplateRequest.setData(dataInfo);
sendTemplateRequest.setToUser(pool.getWxOpenId());
requestJson = JsonUtil.objToJson(sendTemplateRequest);
......@@ -1882,7 +1908,7 @@ public class PractitionerServiceImpl implements com.yd.api.practitioner.service.
log.info("ydLife,错误代码{},错误信息{}",errCode,errMsg);
}
}
if(requestVO.getSfpMainId() != null) {
if(requestVO.getSfpMainId() != null && StringUtils.isNotBlank(requestVO.getTaskTimeFrom()) && StringUtils.isNotBlank(requestVO.getTaskTimeEnd())) {
//关联商机
//添加到日程
AddScheduleTrackRequestVO addScheduleTrackRequestVO = new AddScheduleTrackRequestVO();
......
......@@ -265,7 +265,7 @@ public class AgmsHiringDALServiceImpl implements AgmsHiringDALService {
// ${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());
sendService.sendEmailOrSMS("sms", mobileNo, "0", content, templateCode, null, null, "电子报聘审批通知", 99, basicInfo.getId(), null);
} else {
logger.error("【》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》电子报聘审批人电话号码不存在");
throw new RuntimeException("电子报聘审批人电话号码不存在");
......
......@@ -20,7 +20,7 @@ public interface SendService {
* @param useFor 该短信和邮件主要是为了什么发送的,1=订单 2=提现 3=客户意见 4=汽车问卷 5=活动 6=wordpress 7=生日快乐 99=其他'
* @param useForId 相应的主键ID,如:订单id等
*/
void sendEmailOrSMS(String category,String number,String type,String content,String templateCode,String subject,String[] ccAddress,String contentSummary,Integer useFor,Long useForId);
void sendEmailOrSMS(String category,String number,String type,String content,String templateCode,String subject,String[] ccAddress,String contentSummary,Integer useFor,Long useForId, String source);
/**
* 发送短信
......
......@@ -57,7 +57,7 @@ public class SendServiceImpl implements SendService {
@Override
@Async("sendAsyncServiceExecutor")
public void sendEmailOrSMS(String category, String number, String type, String content, String templateCode,
String subject, String[] ccAddress, String contentSummary, Integer useFor, Long useForId) {
String subject, String[] ccAddress, String contentSummary, Integer useFor, Long useForId, String source) {
int failCount = 0;
boolean sendResult = false;
if(CommonUtil.isNullOrBlank(category) || CommonUtil.isNullOrBlank(number) || CommonUtil.isNullOrBlank(type)){
......@@ -86,7 +86,7 @@ public class SendServiceImpl implements SendService {
boolean isCanSend = canSendForMobile(number);
if(isCanSend){
if(!CommonUtil.isNullOrBlank(templateCode)){
List<String> smsResult = executeSendSMS(number,type,content,templateCode,subject);
List<String> smsResult = executeSendSMS(source,number,type,content,templateCode,subject);
// result = smsResult.get(0);
failCount = Integer.parseInt(smsResult.get(1));
sendResult = Boolean.parseBoolean(smsResult.get(2));
......@@ -176,7 +176,7 @@ public class SendServiceImpl implements SendService {
} else {
AclCustomer customer = getCustomerInfo("sms", mobile);
if (!CommonUtil.isNullOrBlank(templateCode)) {
List<String> smsResult = executeSendSMS(mobile, type, content, templateCode, subject);
List<String> smsResult = executeSendSMS(mobile, type, content, templateCode, subject, null);
// result = smsResult.get(0);
int failCount = Integer.parseInt(smsResult.get(1));
boolean sendResult = Boolean.parseBoolean(smsResult.get(2));
......@@ -250,7 +250,7 @@ public class SendServiceImpl implements SendService {
* @param subject
* @return
*/
private List<String> executeSendSMS(String number, String type, String content, String templateCode, String subject) {
private List<String> executeSendSMS(String source,String number, String type, String content, String templateCode, String subject) {
List<String> resultInfo = new ArrayList<>();
String result = null;
int failCount = 0;
......@@ -261,13 +261,13 @@ public class SendServiceImpl implements SendService {
smsRecord.setTemplateCode(templateCode);
boolean smsResult = false;
while (!smsResult && (failCount < 4)){
SendSmsResponse response =aliSmsInterfService.sendSms(smsRecord,subject);
SendSmsResponse response =aliSmsInterfService.sendSms(source,smsRecord,subject);
result = response.getMessage();
if ("OK".equals(response.getCode())) {
smsResult = true;
}else{
failCount++;
System.out.println(">>>>>>>>>>>>第"+failCount+"次失败原因:"+response.getMessage());
LOGGER.info(">>>>>>>>>>>>第"+failCount+"次失败原因:"+response.getMessage());
}
}
resultInfo.add(result);
......
......@@ -6,6 +6,6 @@ import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse;
import com.yd.dal.entity.sms.ShortMessageSendRecord;
public interface AliSmsInterfService {
public SendSmsResponse sendSms(ShortMessageSendRecord smsRecord, String signName);
public SendSmsResponse sendSms(String source,ShortMessageSendRecord smsRecord, String signName);
// public QuerySendDetailsResponse querySmsDetail(ShortMessageSendRecord smsRecord);
}
......@@ -38,13 +38,21 @@ public class AliSmsInterfServiceImpl implements AliSmsInterfService {
* @return SendSmsResponse
* @throws ClientException
*/
private SendSmsResponse send(String phoneNumber,String signName,String templateCode,String templateParam,String outId) throws ClientException {
private SendSmsResponse send(String source,String phoneNumber,String signName,String templateCode,String templateParam,String outId) throws ClientException {
//可自助调整超时时间
System.setProperty("sun.net.client.defaultConnectTimeout", "10000");
System.setProperty("sun.net.client.defaultReadTimeout", "10000");
//初始化acsClient,暂不支持region化
IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", systemConfigService.getSingleConfigValue("ALI_SMS_ACCESS_KEY_ID"), systemConfigService.getSingleConfigValue("ALI_SMS_ACCESS_KEY_SECRET"));
IClientProfile profile;
if ("sfp".equals(source)) {
profile = DefaultProfile.getProfile("cn-hangzhou", systemConfigService.getSingleConfigValue("ALI_SMS_ACCESS_KEY_ID_CFFP"), systemConfigService.getSingleConfigValue("ALI_SMS_ACCESS_KEY_SECRET_CFFP"));
signName = (CommonUtil.isNullOrBlank(signName)) ? systemConfigService.getSingleConfigValue("ALI_SMS_SIGN_NAME_SFP") : signName;
}else{
profile = DefaultProfile.getProfile("cn-hangzhou", systemConfigService.getSingleConfigValue("ALI_SMS_ACCESS_KEY_ID"), systemConfigService.getSingleConfigValue("ALI_SMS_ACCESS_KEY_SECRET"));
signName = (CommonUtil.isNullOrBlank(signName)) ? systemConfigService.getSingleConfigValue("ALI_SMS_SIGN_NAME") : signName;
}
DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", systemConfigService.getSingleConfigValue("ALI_SMS_PRODUCT"), systemConfigService.getSingleConfigValue("ALI_SMS_DOMAIN"));
IAcsClient acsClient = new DefaultAcsClient(profile);
......@@ -110,7 +118,7 @@ public class AliSmsInterfServiceImpl implements AliSmsInterfService {
* @return QuerySendDetailsResponse
*/
@Override
public SendSmsResponse sendSms(ShortMessageSendRecord smsRecord, String signName) {
public SendSmsResponse sendSms(String source,ShortMessageSendRecord smsRecord, String signName) {
String phoneNumber = smsRecord.getMobileNo();
String templateParam;
String outId = "ajb";
......@@ -139,8 +147,7 @@ public class AliSmsInterfServiceImpl implements AliSmsInterfService {
templateParam = smsRecord.getSmsContent();
}
try {
signName = (CommonUtil.isNullOrBlank(signName)) ? systemConfigService.getSingleConfigValue("ALI_SMS_SIGN_NAME") : signName;
sendSmsResponse = send(phoneNumber, signName, templateCode, templateParam, outId);
sendSmsResponse = send(source, phoneNumber, signName, templateCode, templateParam, outId);
smsRecord.setSendTime(new Date());
smsRecord.setSendStatus(sendSmsResponse.getCode());
smsRecord.setReturnMessage(sendSmsResponse.getMessage());
......
......@@ -11,6 +11,7 @@ public class SendTemplateSfpRequest {
@JsonProperty("miniprogram")
private MiniProgramInfo miniProgram;
private MiniProgramSfpInfo data;
private String page;
public String getToUser() {
return toUser;
......@@ -51,4 +52,13 @@ public class SendTemplateSfpRequest {
public void setData(MiniProgramSfpInfo data) {
this.data = data;
}
public String getPage() {
return page;
}
public void setPage(String page) {
this.page = page;
}
}
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