From 24f3b972cf932fe4247948d0239218c57c1c595a Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Wed, 31 Aug 2022 16:40:33 +0800
Subject: [PATCH] 20220822
---
src/main/java/cc/mrbird/febs/mall/vo/RechargeWalletMessageSendVo.java | 19 ++++++
src/main/java/cc/mrbird/febs/pay/controller/XcxPayController.java | 28 +++++++--
src/main/java/cc/mrbird/febs/pay/service/IXcxPayService.java | 7 ++
src/main/java/cc/mrbird/febs/common/enumerates/DataDictionaryEnum.java | 5 +
src/main/java/cc/mrbird/febs/pay/service/impl/XcxPayServiceImpl.java | 37 ++++++++++--
src/main/resources/mapper/modules/MallMoneyFlowMapper.xml | 2
src/main/java/cc/mrbird/febs/mall/dto/RechargeWalletMessageSendDto.java | 24 ++++++++
7 files changed, 106 insertions(+), 16 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/common/enumerates/DataDictionaryEnum.java b/src/main/java/cc/mrbird/febs/common/enumerates/DataDictionaryEnum.java
index 46fea59..7d17f65 100644
--- a/src/main/java/cc/mrbird/febs/common/enumerates/DataDictionaryEnum.java
+++ b/src/main/java/cc/mrbird/febs/common/enumerates/DataDictionaryEnum.java
@@ -5,8 +5,11 @@
@Getter
public enum DataDictionaryEnum {
- //微信订阅模板ID,微信订单通知
+ //微信订阅模板ID,
+ // 微信订单通知
WX_TEMPLATE_ID_ONE("WX_TEMPLATE", "WX_TEMPLATE_ID_ONE"),
+ // 充值到账通知
+ WX_TEMPLATE_ID_TWO("WX_TEMPLATE", "WX_TEMPLATE_ID_TWO"),
//配送设置
HOME_DELIVERY_AMOUNT("DELIVERY_SETTING", "HOME_DELIVERY_AMOUNT"),
FRIST_COST_LEVEL("HOME_DELIVERY_SETTING", "FRIST_COST_LEVEL"),
diff --git a/src/main/java/cc/mrbird/febs/mall/dto/RechargeWalletMessageSendDto.java b/src/main/java/cc/mrbird/febs/mall/dto/RechargeWalletMessageSendDto.java
new file mode 100644
index 0000000..266b63b
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/dto/RechargeWalletMessageSendDto.java
@@ -0,0 +1,24 @@
+package cc.mrbird.febs.mall.dto;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "RechargeWalletMessageSendDto", description = "充值到账消息通知")
+public class RechargeWalletMessageSendDto {
+
+ //交易单号
+ private String rechargeNo;
+ //充值金额
+ private String rechargeAmount;
+ //账户余额
+ private String balance;
+ //充值时间
+ private String createTime;
+ //用户openId
+ private String openId;
+ //订阅消息模版id
+ private String templateId;
+ //默认跳到小程序首页
+ private String page = "pages/home/index";
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/vo/RechargeWalletMessageSendVo.java b/src/main/java/cc/mrbird/febs/mall/vo/RechargeWalletMessageSendVo.java
new file mode 100644
index 0000000..8ef00ee
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/vo/RechargeWalletMessageSendVo.java
@@ -0,0 +1,19 @@
+package cc.mrbird.febs.mall.vo;
+
+import cc.mrbird.febs.pay.model.WxTemplateData;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+import java.util.Map;
+@Data
+@ApiModel(value = "RechargeWalletMessageSendVo", description = "通知")
+public class RechargeWalletMessageSendVo {
+
+
+ private String touser;//用户openid
+ private String template_id;//订阅消息模版id
+ private String miniprogram_state="developer";//跳转小程序类型:developer为开发版;trial为体验版;formal为正式版;默认为正式版
+ private String lang="zh_CN";//进入小程序查看”的语言类型,支持zh_CN(简体中文)、en_US(英文)、zh_HK(繁体中文)、zh_TW(繁体中文),默认为zh_CN
+ private String page;//默认跳到小程序首页
+ private Map<String, WxTemplateData> data;//推送文字
+}
diff --git a/src/main/java/cc/mrbird/febs/pay/controller/XcxPayController.java b/src/main/java/cc/mrbird/febs/pay/controller/XcxPayController.java
index 93b09e9..88351ab 100644
--- a/src/main/java/cc/mrbird/febs/pay/controller/XcxPayController.java
+++ b/src/main/java/cc/mrbird/febs/pay/controller/XcxPayController.java
@@ -1,17 +1,18 @@
package cc.mrbird.febs.pay.controller;
import cc.mrbird.febs.common.entity.FebsResponse;
+import cc.mrbird.febs.common.enumerates.DataDictionaryEnum;
import cc.mrbird.febs.common.enumerates.OrderDeliveryStateEnum;
import cc.mrbird.febs.common.enumerates.OrderStatusEnum;
import cc.mrbird.febs.common.properties.XcxProperties;
import cc.mrbird.febs.common.utils.RedisUtils;
import cc.mrbird.febs.common.utils.SpringContextHolder;
+import cc.mrbird.febs.mall.dto.RechargeWalletMessageSendDto;
+import cc.mrbird.febs.mall.entity.DataDictionaryCustom;
import cc.mrbird.febs.mall.entity.MallMemberWallet;
import cc.mrbird.febs.mall.entity.MallMoneyFlow;
import cc.mrbird.febs.mall.entity.MallOrderInfo;
-import cc.mrbird.febs.mall.mapper.MallMemberWalletMapper;
-import cc.mrbird.febs.mall.mapper.MallMoneyFlowMapper;
-import cc.mrbird.febs.mall.mapper.MallOrderInfoMapper;
+import cc.mrbird.febs.mall.mapper.*;
import cc.mrbird.febs.mall.service.IApiMallMemberWalletService;
import cc.mrbird.febs.pay.model.NotifyData;
import cc.mrbird.febs.pay.model.OrderStateDto;
@@ -23,6 +24,7 @@
import cc.mrbird.febs.pay.util.Signature;
import cc.mrbird.febs.pay.util.Util;
import cc.mrbird.febs.pay.util.WechatConfigure;
+import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
@@ -59,6 +61,10 @@
MallMoneyFlowMapper mallMoneyFlowMapper;
@Autowired
MallMemberWalletMapper mallMemberWalletMapper;
+ @Autowired
+ MallMemberMapper mallMemberMapper;
+ @Autowired
+ DataDictionaryCustomMapper dataDictionaryCustomMapper;
@Autowired
RedisUtils redisUtils;
@Autowired
@@ -125,11 +131,19 @@
RoundingMode.HALF_UP);
if (ObjectUtil.isNotEmpty(mallMoneyFlow)) {
- log.debug("检查支付金额payMoney={},mallMoneyFlow.getPayMoney()={}", payMoney, mallMoneyFlow.getAmount());
- MallMemberWallet mallMemberWallet = mallMemberWalletMapper.selectWalletByMemberId(memberId);
- if(ObjectUtil.isNotEmpty(mallMemberWallet)){
+ log.debug("检查支付金额payMoney={},mallMoneyFlow.getPayMoney()={}", payMoney, mallMoneyFlow.getAmount());
memberWalletService.addBalance(payMoney,memberId);
- }
+ RechargeWalletMessageSendDto rechargeWalletMessageSendDto = new RechargeWalletMessageSendDto();
+ rechargeWalletMessageSendDto.setRechargeNo(rechargeNo);
+ rechargeWalletMessageSendDto.setRechargeAmount(payMoney.toString());
+
+ MallMemberWallet mallMemberWallet = mallMemberWalletMapper.selectWalletByMemberId(memberId);
+ rechargeWalletMessageSendDto.setBalance(mallMemberWallet.getBalance().toString());
+ rechargeWalletMessageSendDto.setCreateTime(DateUtil.now());
+ rechargeWalletMessageSendDto.setOpenId(mallMemberMapper.selectById(memberId).getOpenId());
+ DataDictionaryCustom dataDictionaryCustom = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.WX_TEMPLATE_ID_TWO.getType(), DataDictionaryEnum.WX_TEMPLATE_ID_TWO.getCode());
+ rechargeWalletMessageSendDto.setTemplateId(dataDictionaryCustom.getValue());
+ iXcxPayService.rechargeWalletMessageSend(rechargeWalletMessageSendDto);
threadResult.success().message("充值成功");
} else {
log.info("充值失败", attrStr);
diff --git a/src/main/java/cc/mrbird/febs/pay/service/IXcxPayService.java b/src/main/java/cc/mrbird/febs/pay/service/IXcxPayService.java
index f582915..f433b50 100644
--- a/src/main/java/cc/mrbird/febs/pay/service/IXcxPayService.java
+++ b/src/main/java/cc/mrbird/febs/pay/service/IXcxPayService.java
@@ -2,6 +2,7 @@
import cc.mrbird.febs.common.entity.FebsResponse;
import cc.mrbird.febs.mall.dto.ApiRechargeWalletDto;
+import cc.mrbird.febs.mall.dto.RechargeWalletMessageSendDto;
import cc.mrbird.febs.mall.entity.MallOrderInfo;
import cc.mrbird.febs.pay.model.BrandWCPayRequestData;
import cc.mrbird.febs.pay.model.OrderStateDto;
@@ -37,4 +38,10 @@
* 发起充值(创建预付订单)
*/
BrandWCPayRequestData startRechargeWallet(ApiRechargeWalletDto apiRechargeWalletDto) throws Exception;
+
+
+ /**
+ * 充值到账消息
+ */
+ void rechargeWalletMessageSend(RechargeWalletMessageSendDto info);
}
diff --git a/src/main/java/cc/mrbird/febs/pay/service/impl/XcxPayServiceImpl.java b/src/main/java/cc/mrbird/febs/pay/service/impl/XcxPayServiceImpl.java
index de55fee..bd4bd3b 100644
--- a/src/main/java/cc/mrbird/febs/pay/service/impl/XcxPayServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/pay/service/impl/XcxPayServiceImpl.java
@@ -10,6 +10,7 @@
import cc.mrbird.febs.common.utils.RedisUtils;
import cc.mrbird.febs.common.utils.SpringContextHolder;
import cc.mrbird.febs.mall.dto.ApiRechargeWalletDto;
+import cc.mrbird.febs.mall.dto.RechargeWalletMessageSendDto;
import cc.mrbird.febs.mall.entity.DataDictionaryCustom;
import cc.mrbird.febs.mall.entity.MallMember;
import cc.mrbird.febs.mall.entity.MallOrderInfo;
@@ -18,6 +19,7 @@
import cc.mrbird.febs.mall.mapper.MallMemberMapper;
import cc.mrbird.febs.mall.mapper.MallOrderInfoMapper;
import cc.mrbird.febs.mall.service.IMallMoneyFlowService;
+import cc.mrbird.febs.mall.vo.RechargeWalletMessageSendVo;
import cc.mrbird.febs.pay.model.*;
import cc.mrbird.febs.pay.service.IXcxPayService;
import cc.mrbird.febs.pay.util.WechatConfigure;
@@ -94,6 +96,28 @@
}
@Override
+ public void rechargeWalletMessageSend(RechargeWalletMessageSendDto info) {
+ RestTemplate restTemplate = new RestTemplate();
+ String url = WechatConfigure.SEND_INFO_URL + redisUtils.get(WechatConfigure.WX_ACCESS_TOKEN_REDIS_KEY);
+ //拼接推送的模版
+ RechargeWalletMessageSendVo orderStateMsgVo = new RechargeWalletMessageSendVo();
+ orderStateMsgVo.setTouser(info.getOpenId());//用户的openId
+ orderStateMsgVo.setTemplate_id(info.getTemplateId());//订阅消息模板id
+ orderStateMsgVo.setPage(info.getPage());
+ Map<String, WxTemplateData> m = new HashMap<>(4);
+ m.put("character_string1", new WxTemplateData(info.getRechargeNo()));
+ m.put("amount3", new WxTemplateData(info.getRechargeAmount()));
+ m.put("amount4", new WxTemplateData(info.getBalance()));
+ m.put("date5", new WxTemplateData(info.getCreateTime()));
+ orderStateMsgVo.setData(m);
+ String s = JSONUtil.toJsonStr(orderStateMsgVo);
+ log.info(s);
+ ResponseEntity<String> responseEntity = restTemplate.postForEntity(url, orderStateMsgVo, String.class);
+ log.info(responseEntity.getBody());
+
+ }
+
+ @Override
public BrandWCPayRequestData startPayment(MallOrderInfo mallOrderInfo) throws Exception {
BigDecimal unit = new BigDecimal("100");
BigDecimal money = new BigDecimal(mallOrderInfo.getAmount().toString());
@@ -122,12 +146,11 @@
orderStateMsgVo.setTouser(info.getOpenId());//用户的openId
orderStateMsgVo.setTemplate_id(info.getTemplateId());//订阅消息模板id
orderStateMsgVo.setPage(info.getPage());
- Map<String, WxTemplateData> m = new HashMap<>(5);
- m.put("character_string1", new WxTemplateData(info.getOrderNo()));
- m.put("thing9", new WxTemplateData(info.getGoodsName()));
- m.put("phrase2", new WxTemplateData(info.getOrderState()));
- m.put("thing13", new WxTemplateData(info.getAddressArea()));
- m.put("thing16", new WxTemplateData(info.getTakeCode()));
+ Map<String, WxTemplateData> m = new HashMap<>(4);
+ m.put("character_string2", new WxTemplateData(info.getOrderNo()));
+ m.put("thing11", new WxTemplateData(info.getGoodsName()));
+ m.put("amount1", new WxTemplateData(info.getAmount()));
+ m.put("character_string9", new WxTemplateData(info.getTakeCode()));
orderStateMsgVo.setData(m);
String s = JSONUtil.toJsonStr(orderStateMsgVo);
log.info(s);
@@ -172,7 +195,7 @@
orderStateMsgVo.setTouser(info.getOpenId());//用户的openId
orderStateMsgVo.setTemplate_id(info.getTemplateId());//订阅消息模板id
orderStateMsgVo.setPage(info.getPage());
- Map<String, WxTemplateData> m = new HashMap<>(5);
+ Map<String, WxTemplateData> m = new HashMap<>(4);
m.put("character_string2", new WxTemplateData(info.getOrderNo()));
m.put("thing11", new WxTemplateData(info.getGoodsName()));
m.put("amount1", new WxTemplateData(info.getAmount()));
diff --git a/src/main/resources/mapper/modules/MallMoneyFlowMapper.xml b/src/main/resources/mapper/modules/MallMoneyFlowMapper.xml
index f94d009..9089ced 100644
--- a/src/main/resources/mapper/modules/MallMoneyFlowMapper.xml
+++ b/src/main/resources/mapper/modules/MallMoneyFlowMapper.xml
@@ -134,6 +134,6 @@
<select id="selectOneByOrderNoAndMemberId" resultType="cc.mrbird.febs.mall.entity.MallMoneyFlow">
select a.* from mall_money_flow a
- where a.order_no = #{} and a.member_id = #{memberId}
+ where a.order_no = #{rechargeNo} and a.member_id = #{memberId}
</select>
</mapper>
\ No newline at end of file
--
Gitblit v1.9.1