Commit ad453917 by jianan

电子报聘审批通知

parent 49f710ea
...@@ -6,6 +6,7 @@ import com.yd.api.agms.vo.hiring.*; ...@@ -6,6 +6,7 @@ import com.yd.api.agms.vo.hiring.*;
import com.yd.api.result.CommonResult; import com.yd.api.result.CommonResult;
import com.yd.dal.entity.agms.hiring.*; import com.yd.dal.entity.agms.hiring.*;
import com.yd.dal.entity.customer.*; import com.yd.dal.entity.customer.*;
import com.yd.dal.entity.customer.practitioner.PractitionerInfo;
import com.yd.dal.entity.meta.MdDropOptions; import com.yd.dal.entity.meta.MdDropOptions;
import com.yd.dal.entity.meta.MdPractitionerHiringApproveSteps; import com.yd.dal.entity.meta.MdPractitionerHiringApproveSteps;
import com.yd.dal.entity.practitioner.hiring.HiringApproveRecords; import com.yd.dal.entity.practitioner.hiring.HiringApproveRecords;
...@@ -22,6 +23,10 @@ import com.yd.dal.service.practitioner.PractitionerHiringDALService; ...@@ -22,6 +23,10 @@ import com.yd.dal.service.practitioner.PractitionerHiringDALService;
import com.yd.dal.service.user.AclUserDALService; import com.yd.dal.service.user.AclUserDALService;
import com.yd.rmi.ali.send.service.SendService; import com.yd.rmi.ali.send.service.SendService;
import com.yd.rmi.cache.SystemConfigService; import com.yd.rmi.cache.SystemConfigService;
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.CommonUtil;
import com.yd.util.config.ZHBErrorConfig; import com.yd.util.config.ZHBErrorConfig;
import com.yd.util.page.PageInfoUtils; import com.yd.util.page.PageInfoUtils;
...@@ -69,6 +74,8 @@ public class AgmsHiringServiceImpl implements AgmsHiringService { ...@@ -69,6 +74,8 @@ public class AgmsHiringServiceImpl implements AgmsHiringService {
private AclPractitionerPotentialAssignedTrackDALService aclPractitionerPotentialAssignedTrackDALService; private AclPractitionerPotentialAssignedTrackDALService aclPractitionerPotentialAssignedTrackDALService;
@Autowired @Autowired
private MdDropOptionsDALService mdDropOptionsDALService; private MdDropOptionsDALService mdDropOptionsDALService;
@Autowired
private WechatInterfService wechatInterfService;
@Autowired @Autowired
public void setAgmsHiringDalService(AgmsHiringDALService agmsHiringDalService){ public void setAgmsHiringDalService(AgmsHiringDALService agmsHiringDalService){
...@@ -413,6 +420,9 @@ public class AgmsHiringServiceImpl implements AgmsHiringService { ...@@ -413,6 +420,9 @@ public class AgmsHiringServiceImpl implements AgmsHiringService {
//不是他 //不是他
boolean flag = this.isHasNextStep(loginPractitionerId, mobileNo, basicInfoId, nextStep); boolean flag = this.isHasNextStep(loginPractitionerId, mobileNo, basicInfoId, nextStep);
if (!flag) { if (!flag) {
// 发送短信通知及公众号推送通知下一位审批人进行审批
noticeNextStep(nextStep, basicInfoId);
responseVO.setCommonResult(new CommonResult(true, ZHBErrorConfig.getErrorInfo("800000"))); responseVO.setCommonResult(new CommonResult(true, ZHBErrorConfig.getErrorInfo("800000")));
return; return;
} }
...@@ -421,6 +431,102 @@ public class AgmsHiringServiceImpl implements AgmsHiringService { ...@@ -421,6 +431,102 @@ public class AgmsHiringServiceImpl implements AgmsHiringService {
responseVO.setCommonResult(new CommonResult(true, ZHBErrorConfig.getErrorInfo("800000"))); responseVO.setCommonResult(new CommonResult(true, ZHBErrorConfig.getErrorInfo("800000")));
} }
private void noticeNextStep(MdPractitionerHiringApproveSteps nextStep, Long basicInfoId) {
AclPractitionerHiringBasicInfo basicInfo = aclPractitionerHiringBasicInfoDalService.findById(basicInfoId);
AclPractitionerHiringMembership membership = membershipMapper.selectByHiringBasicInfoId(basicInfoId);
// 1.获取下一步审批人的手机号
String[] mobileNoArray = new String [0];
// 1.1 如果是体系负责人
if (StringUtils.isNotEmpty(nextStep.getApproveRole())) {
Long practitionerId = membership.getApprovedBy();
AclPractitioner aclPractitioner = aclPractitionerMapper.selectByPrimaryKey(practitionerId);
mobileNoArray[0] = aclPractitioner.getMobileNo();
} else {
// 1.2 团队长之后的环节, 可能会有多个审批人
mobileNoArray = nextStep.getAppointedApprovePractitioners().split(",");
}
// 1.3 查询审批人列表
List<PractitionerInfo> practitionerList = aclPractitionerDalService.findPractitionerInfoByMobileList(Arrays.asList(mobileNoArray));
// 2.报聘人组织关系, 姓名
StringBuilder name2 = new StringBuilder();
String s3SubordinateSystemName = membership.getS3SubordinateSystemName();
String s2SubordinateSystemName = membership.getS2SubordinateSystemName();
String s1SubordinateSystemName = membership.getS1SubordinateSystemName();
if (StringUtils.isNotEmpty(s3SubordinateSystemName)) {
name2.append(s3SubordinateSystemName).append("纵队");
}
if (StringUtils.isNotEmpty(s2SubordinateSystemName)) {
name2.append(s2SubordinateSystemName).append("体系");
}
if (StringUtils.isNotEmpty(s1SubordinateSystemName)) {
name2.append(s1SubordinateSystemName).append("分部");
}
name2.append("的").append(basicInfo.getName());
// 发送短信通知下一位审批人进行审批
this.noticeSendSMS(name2.toString(), practitionerList, basicInfo);
// 公众号推送通知下一位审批人进行审批
this.noticeSendWeChatMsg(name2.toString(), practitionerList, basicInfo);
}
private void noticeSendWeChatMsg(String hiringName, List<PractitionerInfo> practitionerList, AclPractitionerHiringBasicInfo basicInfo) {
// 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 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 keyword2 = new DataDetailInfo(CommonUtil.dateParseString(basicInfo.getCreatedAt(),"yyyy-MM-dd HH:mm:ss"), null);
DataDetailInfo remark = new DataDetailInfo(remarkValue, null);
dataInfo.setFirst(first);
dataInfo.setKeyword1(keyword1);
dataInfo.setKeyword2(keyword2);
dataInfo.setRemark(remark);
//TODO 调微信接口
if (StringUtils.isNotBlank(templateId)) {
SendTemplateRequest sendTemplateRequest = new SendTemplateRequest();
sendTemplateRequest.setTemplateId(templateId);
sendTemplateRequest.setData(dataInfo);
sendTemplateRequest.setUrl(jumpUrl);
for (PractitionerInfo practitionerInfo : practitionerList) {
// openId
sendTemplateRequest.setToUser(practitionerInfo.getYdWechatOpenid());
// 审批人姓名
first.setValue(firstValue.replace("name", practitionerInfo.getName()));
// 微信通知
wechatInterfService.sendTemplateMessage(sendTemplateRequest);
}
}
}
private void noticeSendSMS(String hiringName, List<PractitionerInfo> practitionerList, AclPractitionerHiringBasicInfo basicInfo) {
// 审批人姓名, 手机号
String name;
String mobileNo;
for (PractitionerInfo practitionerInfo : practitionerList) {
name = practitionerInfo.getName();
mobileNo = practitionerInfo.getMobileNo();
// 发短信
// ${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());
}
}
private boolean isHasNextStep(Long loginPractitionerId, String mobileNo, Long basicInfoId, MdPractitionerHiringApproveSteps nextStep) { private boolean isHasNextStep(Long loginPractitionerId, String mobileNo, Long basicInfoId, MdPractitionerHiringApproveSteps nextStep) {
// 判断是辅导人和团队长 // 判断是辅导人和团队长
if (!CommonUtil.isNullOrZero(loginPractitionerId)) { if (!CommonUtil.isNullOrZero(loginPractitionerId)) {
......
package com.yd.api.practitioner; package com.yd.api.practitioner;
import com.yd.api.practitioner.service.PractitionerHiringContractService;
import com.yd.api.practitioner.service.PractitionerHiringService; import com.yd.api.practitioner.service.PractitionerHiringService;
import com.yd.api.practitioner.vo.hiring.*; import com.yd.api.practitioner.vo.hiring.*;
import com.yd.api.result.JsonResult; import com.yd.api.result.JsonResult;
...@@ -270,4 +269,17 @@ public class PractitionerHiringController { ...@@ -270,4 +269,17 @@ public class PractitionerHiringController {
result.setData(responseVO); result.setData(responseVO);
return result; return result;
} }
/**
* 保存报聘经纪人微信个人二维码图片
*
*/
@RequestMapping("/saveWeChatQRcode")
public Object saveWeChatQRcode(@RequestBody SaveWeChatQRcodeRequestVO requestVO){
JsonResult result = new JsonResult();
SaveWeChatQRcodeResponseVO responseVO = practitionerHiringService.saveWeChatQRcode(requestVO);
result.addResult(responseVO);
result.setData(responseVO);
return result;
}
} }
\ No newline at end of file
...@@ -58,4 +58,6 @@ public interface PractitionerHiringService { ...@@ -58,4 +58,6 @@ public interface PractitionerHiringService {
QueryPractitionerInfoResponseVO queryPractitionerInfo(QueryPractitionerInfoRequestVO requestVO); QueryPractitionerInfoResponseVO queryPractitionerInfo(QueryPractitionerInfoRequestVO requestVO);
CommonResultResponseVO hiringSubmit(HiringBasicInfoIdRequestVO requestVO); CommonResultResponseVO hiringSubmit(HiringBasicInfoIdRequestVO requestVO);
SaveWeChatQRcodeResponseVO saveWeChatQRcode(SaveWeChatQRcodeRequestVO requestVO);
} }
...@@ -957,6 +957,33 @@ public class PractitionerHiringServiceImpl implements PractitionerHiringService ...@@ -957,6 +957,33 @@ public class PractitionerHiringServiceImpl implements PractitionerHiringService
return resp; return resp;
} }
@Override
public SaveWeChatQRcodeResponseVO saveWeChatQRcode(SaveWeChatQRcodeRequestVO requestVO) {
SaveWeChatQRcodeResponseVO resp = new SaveWeChatQRcodeResponseVO();
try {
String mediaId = requestVO.getVxUrlQRcode();
Long basicInfoId = requestVO.getHiringBasicInfoId();
String imgUrl = this.uploadImageToOss(mediaId, basicInfoId, 2);
if (imgUrl == null) {
resp.setCommonResult(new CommonResult(false, ZHBErrorConfig.getErrorInfo("830024")));
} else {
AclPractitionerHiringBasicInfo basicInfo = new AclPractitionerHiringBasicInfo();
basicInfo.setId(basicInfoId);
basicInfo.setWechatId(requestVO.getWechatId());
basicInfo.setWechatQRcodeOssPath(imgUrl);
basicInfoMapper.updateByPrimaryKeySelective(basicInfo);
resp.setCommonResult(new CommonResult(true, ZHBErrorConfig.getErrorInfo("800000")));
resp.setImgUrl(imgUrl);
}
} catch (Exception e) {
e.printStackTrace();
resp.setCommonResult(new CommonResult(false, e.getMessage()));
}
return resp;
}
private void distributeToSubsystemOwner(AclPractitionerHiringMembership memberShip) { private void distributeToSubsystemOwner(AclPractitionerHiringMembership memberShip) {
Long hiringBasicInfoId = memberShip.getHiringBasicInfoId(); Long hiringBasicInfoId = memberShip.getHiringBasicInfoId();
String mdDropOptionName = memberShip.getMdDropOptionName(); String mdDropOptionName = memberShip.getMdDropOptionName();
...@@ -1029,7 +1056,7 @@ public class PractitionerHiringServiceImpl implements PractitionerHiringService ...@@ -1029,7 +1056,7 @@ public class PractitionerHiringServiceImpl implements PractitionerHiringService
private String uploadImageToOss(String imgUrl, Long hiringBasicInfoId, Integer targetUseFor) throws Exception { private String uploadImageToOss(String imgUrl, Long hiringBasicInfoId, Integer targetUseFor) throws Exception {
Map<String, Object> input = HttpUtil.getInput(imgUrl); Map<String, Object> input = HttpUtil.getInput(imgUrl);
if (!(boolean) input.get("success")) { if (!(boolean) input.get("success")) {
throw new Exception(ZHBErrorConfig.getErrorInfo("830024")); throw new Exception(ZHBErrorConfig.getErrorInfo("830025"));
} }
//获取头像流 //获取头像流
InputStream inputStream = (InputStream) input.get("is"); InputStream inputStream = (InputStream) input.get("is");
......
package com.yd.api.practitioner.vo.hiring;
import lombok.Data;
@Data
public class SaveWeChatQRcodeRequestVO {
private Long hiringBasicInfoId;
private String wechatId;
private String vxUrlQRcode;
}
package com.yd.api.practitioner.vo.hiring;
import com.yd.api.result.CommonResult;
import lombok.Data;
@Data
public class SaveWeChatQRcodeResponseVO {
private CommonResult commonResult;
private String imgUrl;
}
package com.yd.dal.entity.customer; package com.yd.dal.entity.customer;
import java.util.Date;
import lombok.Data; import lombok.Data;
import java.util.Date;
/** /**
* 報聘经纪人基本资料表 * 報聘经纪人基本资料表
*/ */
...@@ -94,6 +95,11 @@ public class AclPractitionerHiringBasicInfo { ...@@ -94,6 +95,11 @@ public class AclPractitionerHiringBasicInfo {
private String wechatId; private String wechatId;
/** /**
* 从业人员微信二维码
*/
private String wechatQRcodeOssPath;
/**
* email地址 * email地址
*/ */
private String email; private String email;
......
...@@ -17,6 +17,10 @@ public class PractitionerInfo { ...@@ -17,6 +17,10 @@ public class PractitionerInfo {
private Long canSeeSalaryList; private Long canSeeSalaryList;
private String mobileNo; private String mobileNo;
private Long mentorId;//辅导人id private Long mentorId;//辅导人id
/**
* 银盾经纪公众号的微信客户标识,对当前开发账户唯一
*/
private String ydWechatOpenid;
public Long getCustomerId() { public Long getCustomerId() {
return customerId; return customerId;
...@@ -145,4 +149,12 @@ public class PractitionerInfo { ...@@ -145,4 +149,12 @@ public class PractitionerInfo {
public void setMentorId(Long mentorId) { public void setMentorId(Long mentorId) {
this.mentorId = mentorId; this.mentorId = mentorId;
} }
public String getYdWechatOpenid() {
return ydWechatOpenid;
}
public void setYdWechatOpenid(String ydWechatOpenid) {
this.ydWechatOpenid = ydWechatOpenid;
}
} }
package com.yd.rmi.tencent.wechatinterf.pojo.templetemessage;
public class DataDetailInfo {
private String value;
private String color;
public DataDetailInfo() {
}
public DataDetailInfo(String value, String color) {
this.value = value;
this.color = color;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
}
package com.yd.rmi.tencent.wechatinterf.pojo.templetemessage;
import com.fasterxml.jackson.annotation.JsonProperty;
public class GetTemplateIdRequest {
@JsonProperty("template_id_short")
private String templateIdShort;
public String getTemplateIdShort() {
return templateIdShort;
}
public void setTemplateIdShort(String templateIdShort) {
this.templateIdShort = templateIdShort;
}
}
package com.yd.rmi.tencent.wechatinterf.pojo.templetemessage;
import com.fasterxml.jackson.annotation.JsonProperty;
public class GetTemplateIdResponse {
@JsonProperty("errcode")
private String errCode;
@JsonProperty("errmsg")
private String errMsg;
@JsonProperty("template_id")
private String templateId;
public String getErrCode() {
return errCode;
}
public void setErrCode(String errCode) {
this.errCode = errCode;
}
public String getErrMsg() {
return errMsg;
}
public void setErrMsg(String errMsg) {
this.errMsg = errMsg;
}
public String getTemplateId() {
return templateId;
}
public void setTemplateId(String templateId) {
this.templateId = templateId;
}
}
package com.yd.rmi.tencent.wechatinterf.pojo.templetemessage;
import com.fasterxml.jackson.annotation.JsonProperty;
public class MiniProgramInfo {
@JsonProperty("appid")
private String appId;
@JsonProperty("pagepath")
private String pagePath;
public String getAppId() {
return appId;
}
public void setAppId(String appId) {
this.appId = appId;
}
public String getPagePath() {
return pagePath;
}
public void setPagePath(String pagePath) {
this.pagePath = pagePath;
}
}
package com.yd.rmi.tencent.wechatinterf.pojo.templetemessage;
import com.fasterxml.jackson.annotation.JsonProperty;
public class SendTemplateRequest {
@JsonProperty("touser")
private String toUser;
@JsonProperty("template_id")
private String templateId;
private String url;
@JsonProperty("miniprogram")
private MiniProgramInfo miniProgram;
private TemplateDataInfo data;
public String getToUser() {
return toUser;
}
public void setToUser(String toUser) {
this.toUser = toUser;
}
public String getTemplateId() {
return templateId;
}
public void setTemplateId(String templateId) {
this.templateId = templateId;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public MiniProgramInfo getMiniProgram() {
return miniProgram;
}
public void setMiniProgram(MiniProgramInfo miniProgram) {
this.miniProgram = miniProgram;
}
public TemplateDataInfo getData() {
return data;
}
public void setData(TemplateDataInfo data) {
this.data = data;
}
}
package com.yd.rmi.tencent.wechatinterf.pojo.templetemessage;
import com.fasterxml.jackson.annotation.JsonProperty;
public class SendTemplateResponse {
@JsonProperty("errcode")
private String errCode;
@JsonProperty("errmsg")
private String errMsg;
@JsonProperty("msgid")
private String msgId;
public String getErrCode() {
return errCode;
}
public void setErrCode(String errCode) {
this.errCode = errCode;
}
public String getErrMsg() {
return errMsg;
}
public void setErrMsg(String errMsg) {
this.errMsg = errMsg;
}
public String getMsgId() {
return msgId;
}
public void setMsgId(String msgId) {
this.msgId = msgId;
}
}
package com.yd.rmi.tencent.wechatinterf.pojo.templetemessage;
import com.fasterxml.jackson.annotation.JsonProperty;
public class TemplateDataInfo {
@JsonProperty("first")
private DataDetailInfo first;
@JsonProperty("keyword1")
private DataDetailInfo keyword1;
@JsonProperty("keyword2")
private DataDetailInfo keyword2;
@JsonProperty("keyword3")
private DataDetailInfo keyword3;
@JsonProperty("remark")
private DataDetailInfo remark;
public DataDetailInfo getFirst() {
return first;
}
public void setFirst(DataDetailInfo first) {
this.first = first;
}
public DataDetailInfo getKeyword1() {
return keyword1;
}
public void setKeyword1(DataDetailInfo keyword1) {
this.keyword1 = keyword1;
}
public DataDetailInfo getKeyword2() {
return keyword2;
}
public void setKeyword2(DataDetailInfo keyword2) {
this.keyword2 = keyword2;
}
public DataDetailInfo getKeyword3() {
return keyword3;
}
public void setKeyword3(DataDetailInfo keyword3) {
this.keyword3 = keyword3;
}
public DataDetailInfo getRemark() {
return remark;
}
public void setRemark(DataDetailInfo remark) {
this.remark = remark;
}
}
...@@ -7,6 +7,7 @@ import com.yd.rmi.tencent.wechatinterf.pojo.accesstoken.AccessTokenResponse; ...@@ -7,6 +7,7 @@ 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.authorize.AuthorizeRequest;
import com.yd.rmi.tencent.wechatinterf.pojo.jscode2session.Jscode2sessionRequest; 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.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.TicketRequest;
import com.yd.rmi.tencent.wechatinterf.pojo.ticket.TicketResponse; import com.yd.rmi.tencent.wechatinterf.pojo.ticket.TicketResponse;
import com.yd.rmi.tencent.wechatinterf.pojo.token.TokenRequest; import com.yd.rmi.tencent.wechatinterf.pojo.token.TokenRequest;
...@@ -90,4 +91,10 @@ public interface WechatInterfService { ...@@ -90,4 +91,10 @@ public interface WechatInterfService {
*/ */
AccessTokenByCodeResponse getAccessTokenByCode(AccessTokenByCodeRequest accessTokenByCodeRequest); AccessTokenByCodeResponse getAccessTokenByCode(AccessTokenByCodeRequest accessTokenByCodeRequest);
/**
* 发送模版信息
* @param sendTemplateRequest
*/
void sendTemplateMessage(SendTemplateRequest sendTemplateRequest);
} }
...@@ -9,6 +9,7 @@ import com.yd.rmi.tencent.wechatinterf.pojo.accesstoken.AccessTokenResponse; ...@@ -9,6 +9,7 @@ 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.authorize.AuthorizeRequest;
import com.yd.rmi.tencent.wechatinterf.pojo.jscode2session.Jscode2sessionRequest; 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.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.TicketRequest;
import com.yd.rmi.tencent.wechatinterf.pojo.ticket.TicketResponse; import com.yd.rmi.tencent.wechatinterf.pojo.ticket.TicketResponse;
import com.yd.rmi.tencent.wechatinterf.pojo.token.TokenRequest; import com.yd.rmi.tencent.wechatinterf.pojo.token.TokenRequest;
...@@ -18,6 +19,8 @@ import com.yd.rmi.tencent.wechatinterf.service.WechatInterfService; ...@@ -18,6 +19,8 @@ import com.yd.rmi.tencent.wechatinterf.service.WechatInterfService;
import com.yd.util.CommonUtil; import com.yd.util.CommonUtil;
import com.yd.util.EncryptUtil; import com.yd.util.EncryptUtil;
import com.yd.util.JsonUtil; import com.yd.util.JsonUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate; import org.springframework.web.client.RestTemplate;
...@@ -35,6 +38,7 @@ import java.util.Map.Entry; ...@@ -35,6 +38,7 @@ import java.util.Map.Entry;
@Service("wechatInterfService") @Service("wechatInterfService")
public class WechatInterfServiceImpl implements WechatInterfService { public class WechatInterfServiceImpl implements WechatInterfService {
private final static Logger logger = LoggerFactory.getLogger(WechatInterfServiceImpl.class);
@Autowired @Autowired
private SystemConfigService systemConfigService; private SystemConfigService systemConfigService;
@Autowired @Autowired
...@@ -370,6 +374,18 @@ public class WechatInterfServiceImpl implements WechatInterfService { ...@@ -370,6 +374,18 @@ public class WechatInterfServiceImpl implements WechatInterfService {
return (AccessTokenByCodeResponse)JsonUtil.jsonToObj(responseStr, AccessTokenByCodeResponse.class); return (AccessTokenByCodeResponse)JsonUtil.jsonToObj(responseStr, AccessTokenByCodeResponse.class);
} }
@Override
public void sendTemplateMessage(SendTemplateRequest sendTemplateRequest) {
TokenResponse token = this.token(new TokenRequest());
String url = systemConfigService.getSingleConfigValue("TENCENT_WECHAT_TEMPLATE_SEND_URL") + token.getAccess_token();
logger.error("【》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》发送微信模板消息开始");
tranLogDALService.logDB("wechat", "sendTemplateMessage", "in", sendTemplateRequest.getToUser(), url, null, null);
String responseStr = weChatTransaction(url, null);
tranLogDALService.logDB("wechat", "sendTemplateMessage", "out", sendTemplateRequest.getToUser(), responseStr, null, null);
}
/** /**
* 微信接口交互 * 微信接口交互
*/ */
......
...@@ -21,6 +21,7 @@ ...@@ -21,6 +21,7 @@
<result column="city_name" jdbcType="VARCHAR" property="cityName" /> <result column="city_name" jdbcType="VARCHAR" property="cityName" />
<result column="resident_address" jdbcType="LONGVARCHAR" property="residentAddress" /> <result column="resident_address" jdbcType="LONGVARCHAR" property="residentAddress" />
<result column="wechat_id" jdbcType="VARCHAR" property="wechatId" /> <result column="wechat_id" jdbcType="VARCHAR" property="wechatId" />
<result column="wechat_QRcode_oss_path" jdbcType="VARCHAR" property="wechatQRcodeOssPath" />
<result column="email" jdbcType="VARCHAR" property="email" /> <result column="email" jdbcType="VARCHAR" property="email" />
<result column="personer_picture_oss_path" jdbcType="VARCHAR" property="personerPictureOssPath" /> <result column="personer_picture_oss_path" jdbcType="VARCHAR" property="personerPictureOssPath" />
<result column="payroll_oss_path" jdbcType="VARCHAR" property="payrollOssPath" /> <result column="payroll_oss_path" jdbcType="VARCHAR" property="payrollOssPath" />
...@@ -43,7 +44,7 @@ ...@@ -43,7 +44,7 @@
<!--@mbg.generated--> <!--@mbg.generated-->
id, practitioner_potential_id, invitee_practitioner_id, `name`, mobile_no, id_type_id, id, practitioner_potential_id, invitee_practitioner_id, `name`, mobile_no, id_type_id,
id_type, id_no, gender, practitioner_birthdate, province_id, province_name, city_id, id_type, id_no, gender, practitioner_birthdate, province_id, province_name, city_id,
city_name, resident_address, wechat_id, email, personer_picture_oss_path, payroll_oss_path, id_front_page_oss_path, city_name, resident_address, wechat_id, wechat_QRcode_oss_path, email, personer_picture_oss_path, payroll_oss_path, id_front_page_oss_path,
id_back_page_oss_path, last_graduate_code, last_graduate_grade, last_graduate_school, last_graduate_certification_oss_path, id_back_page_oss_path, last_graduate_code, last_graduate_grade, last_graduate_school, last_graduate_certification_oss_path,
bank_account_opening, bank_account_id, personal_sign_oss_path, is_active, created_at, bank_account_opening, bank_account_id, personal_sign_oss_path, is_active, created_at,
created_by, updated_at, updated_by, approve_status created_by, updated_at, updated_by, approve_status
...@@ -324,6 +325,9 @@ ...@@ -324,6 +325,9 @@
<if test="wechatId != null"> <if test="wechatId != null">
wechat_id = #{wechatId,jdbcType=VARCHAR}, wechat_id = #{wechatId,jdbcType=VARCHAR},
</if> </if>
<if test="wechatQRcodeOssPath != null">
wechat_QRcode_oss_path = #{wechatQRcodeOssPath,jdbcType=VARCHAR},
</if>
<if test="email != null"> <if test="email != null">
email = #{email,jdbcType=VARCHAR}, email = #{email,jdbcType=VARCHAR},
</if> </if>
......
...@@ -1458,6 +1458,7 @@ ...@@ -1458,6 +1458,7 @@
<result column="practitionerRegNo" property="practitionerRegNo" /> <result column="practitionerRegNo" property="practitionerRegNo" />
<result column="canSeeSalaryList" property="canSeeSalaryList" /> <result column="canSeeSalaryList" property="canSeeSalaryList" />
<result column="mentor_id" property="mentorId" /> <result column="mentor_id" property="mentorId" />
<result column="yd_wechat_openid" property="ydWechatOpenid" />
<result column="mobile_no" jdbcType="VARCHAR" property="mobileNo" typeHandler="com.yd.util.deshandler.DESTypeHandler"/> <result column="mobile_no" jdbcType="VARCHAR" property="mobileNo" typeHandler="com.yd.util.deshandler.DESTypeHandler"/>
</resultMap> </resultMap>
...@@ -1941,8 +1942,10 @@ ...@@ -1941,8 +1942,10 @@
p.practitioner_reg_no as practitionerRegNo, p.practitioner_reg_no as practitionerRegNo,
p.mobile_no, p.mobile_no,
p.mentor_id mentorId, p.mentor_id mentorId,
c.yd_wechat_openid,
p.can_see_salary_list as canSeeSalaryList p.can_see_salary_list as canSeeSalaryList
from ag_acl_practitioner p from ag_acl_practitioner p
left join ag_acl_customer c on c.id = p.customer_id
left join ag_acl_insurer_branch b on p.insurer_branch_id = b.id left join ag_acl_insurer_branch b on p.insurer_branch_id = b.id
left join ag_acl_practitioner_subordinate_system sys on p.subordinate_system_id = sys.id left join ag_acl_practitioner_subordinate_system sys on p.subordinate_system_id = sys.id
left join ag_acl_practitioner_setting s on p.id = s.practitioner_id left join ag_acl_practitioner_setting s on p.id = s.practitioner_id
......
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