浏览代码

fix 更换车票后发送模板消息

zoujiajian 3 年之前
父节点
当前提交
75cded5e8d

+ 13 - 0
netflix-service/src/main/java/com/cyksj/service/order/impl/OrderDonServiceImpl.java

@@ -25,6 +25,7 @@ import com.cyksj.common.snowflake.Sequence;
 import com.cyksj.common.task.GlobalThreadPoolTaskExecutor;
 import com.cyksj.common.util.Codec;
 import com.cyksj.common.util.Jsons;
+import com.cyksj.common.util.StringUtil;
 import com.cyksj.common.util.Xmls;
 import com.cyksj.config.WeChatConfig;
 import com.cyksj.config.zfb.AliPayClientFactory;
@@ -48,6 +49,7 @@ import com.cyksj.model.dto.H5JsPayParams;
 import com.cyksj.model.entity.Address;
 import com.cyksj.model.entity.*;
 import com.cyksj.model.manage.views.AccountView;
+import com.cyksj.model.manage.views.GroupsRelationView;
 import com.cyksj.model.manage.views.OrderDonView;
 import com.cyksj.model.request.*;
 import com.cyksj.model.response.AliPayRefundRep;
@@ -1833,6 +1835,17 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 			groupsRelationMapper.updateById(afterRelation);
 
 			userRenewChangeTicketRecordMapper.insert(record);
+
+			GroupsRelationView groupsRelationView = beanSearcher.searchFirst(GroupsRelationView.class, MapUtils.builder().field(GroupsRelationView::getUserId, userId)
+					.field(GroupsRelationView::getId, afterRelation.getId()).build());
+			try {
+				//发放更换车票模板消息通知用户
+				log.info("发送更换用户:{}车票:{}通知消息start=====>", userId, afterRelation.getId());
+				templateCommonService.sendUpdateAccountMsgNotify(groupsRelationView);
+				log.info("发送更换用户车票通知消息end=====>");
+			} catch (Exception e) {
+				log.error("发送更换用户:{}车票:{}通知消息错误e:{}", userId, afterRelation.getId(), StringUtil.getErrorText(e));
+			}
 		}
 	}
 }

+ 6 - 0
netflix-service/src/main/java/com/cyksj/service/template/TemplateCommonService.java

@@ -2,6 +2,7 @@ package com.cyksj.service.template;
 
 import com.cyksj.model.entity.*;
 import com.cyksj.model.manage.request.ReqSetLogisticsPost;
+import com.cyksj.model.manage.views.GroupsRelationView;
 import com.cyksj.model.views.WxAppTemplateView;
 
 /*
@@ -41,6 +42,11 @@ public interface TemplateCommonService {
 	 */
 	void sendAccountTemplateMsg(Account account) throws Exception;
 
+	/**
+	 * 修改用户车票账号密码通知
+	 */
+	void sendUpdateAccountMsgNotify(GroupsRelationView relation) throws Exception;
+
 	/**
 	 * Spotify账号到期通知模板
 	 */

+ 31 - 20
netflix-service/src/main/java/com/cyksj/service/template/impl/TemplateCommonServiceImpl.java

@@ -218,28 +218,39 @@ public class TemplateCommonServiceImpl implements TemplateCommonService {
 					.field(GroupsRelationView::getAccountId, account.getId()).op(Operator.Equal)
 					.field(GroupsRelationView::getStatus, "validity").op(Operator.Equal)
 					.build());
-			String url = String.format("%sauth/weChat?url=%syinhe/web/ticket", envCommonService.getHost(), envCommonService.getDomain());
 			log.info("开始发送账号修改密码模板消息,大小:{}", relations.size());
 			for (GroupsRelationView relation : relations) {
-				Long userId = relation.getUserId();
-				WxAppTemplateView wxAppTemplateView = this.getWxAppByUserId(userId, TemplateEnum.PLAT_ACCOUNT_UPDATE_TEMPLATE.getDesc());
-				if (wxAppTemplateView != null) {
-					User user = userMapper.selectById(relation.getUserId());
-					if (user != null) {
-						String openId = user.getOpenId();
-						WxMpTemplateMessage templateMessage = new WxMpTemplateMessage()
-								.setToUser(Optional.ofNullable(wxAppTemplateView.getOpenId()).orElse(openId))
-								.setTemplateId(wxAppTemplateView.getTemplateId())
-								.setUrl(url);
-						WxMpTemplateMessage.TemplateData data = templateMessage.getData();
-						data.setFirst(new WxMpTemplateData(String.format("%s账号密码更改提醒", relation.getTitle())));
-						data.setKeyword1(new WxMpTemplateData(relation.getTripsAccount()));
-						data.setKeyword2(new WxMpTemplateData(DateTime.now().toString("YYYY-MM-mm HH:mm:ss")));
-						data.setRemark(new WxMpTemplateData("您的账号密码已经更新,请到我的车票查看,长期用户请选择拼车/年付。\n" +
-								"如您不是在公众号购买,请在浏览器登录查看我的车票"));
-						weChatService.sendTemplateMessage(weChatService.getAccessToken(wxAppTemplateView.getAppId()), Jsons.toJson(templateMessage));
-					}
-				}
+				sendUpdateAccountMsg(relation);
+			}
+		}
+	}
+
+	@Override
+	public void sendUpdateAccountMsgNotify(GroupsRelationView relation) throws Exception {
+		if (!EnvCommonService.active.equals(envCommonService.getEnv())) {
+			sendUpdateAccountMsg(relation);
+		}
+	}
+
+	public void sendUpdateAccountMsg(GroupsRelationView relation) throws Exception {
+		String url = String.format("%sauth/weChat?url=%syinhe/web/ticket", envCommonService.getHost(), envCommonService.getDomain());
+		Long userId = relation.getUserId();
+		WxAppTemplateView wxAppTemplateView = this.getWxAppByUserId(userId, TemplateEnum.PLAT_ACCOUNT_UPDATE_TEMPLATE.getDesc());
+		if (wxAppTemplateView != null) {
+			User user = userMapper.selectById(relation.getUserId());
+			if (user != null) {
+				String openId = user.getOpenId();
+				WxMpTemplateMessage templateMessage = new WxMpTemplateMessage()
+						.setToUser(Optional.ofNullable(wxAppTemplateView.getOpenId()).orElse(openId))
+						.setTemplateId(wxAppTemplateView.getTemplateId())
+						.setUrl(url);
+				WxMpTemplateMessage.TemplateData data = templateMessage.getData();
+				data.setFirst(new WxMpTemplateData(String.format("%s账号密码更改提醒", relation.getTitle())));
+				data.setKeyword1(new WxMpTemplateData(relation.getTripsAccount()));
+				data.setKeyword2(new WxMpTemplateData(DateTime.now().toString("YYYY-MM-mm HH:mm:ss")));
+				data.setRemark(new WxMpTemplateData("您的账号密码已经更新,请到我的车票查看,长期用户请选择拼车/年付。\n" +
+						"如您不是在公众号购买,请在浏览器登录查看我的车票"));
+				weChatService.sendTemplateMessage(weChatService.getAccessToken(wxAppTemplateView.getAppId()), Jsons.toJson(templateMessage));
 			}
 		}
 	}