From 0ab675a4d553bc22119e4d0bf6a27f44467cac53 Mon Sep 17 00:00:00 2001
From: yujian <yujian@163.com>
Date: 星期六, 14 十二月 2019 10:54:26 +0800
Subject: [PATCH] 红包 + 会员生效日期
---
fanli/src/main/java/com/yeshi/fanli/controller/CallBackController.java | 82 ++++++++++++++++++++++++++++++++++++++++
1 files changed, 81 insertions(+), 1 deletions(-)
diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/CallBackController.java b/fanli/src/main/java/com/yeshi/fanli/controller/CallBackController.java
index 22dea80..90cfc79 100644
--- a/fanli/src/main/java/com/yeshi/fanli/controller/CallBackController.java
+++ b/fanli/src/main/java/com/yeshi/fanli/controller/CallBackController.java
@@ -3,8 +3,11 @@
import java.io.BufferedReader;
import java.io.IOException;
import java.io.PrintWriter;
+import java.math.BigDecimal;
import java.security.SignatureException;
import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
import javax.annotation.Resource;
import javax.crypto.Mac;
@@ -14,11 +17,27 @@
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
+import org.yeshi.utils.wx.WXUtil;
+import com.aliyun.openservices.ons.api.Message;
+import com.aliyun.openservices.ons.api.Producer;
+import com.yeshi.fanli.dto.mq.order.OrderTopicTagEnum;
+import com.yeshi.fanli.dto.mq.order.body.BanLiShopOrderMQMsg;
+import com.yeshi.fanli.dto.push.PushContentDTO;
import com.yeshi.fanli.entity.bus.msg.MsgDeviceReadState;
+import com.yeshi.fanli.entity.config.push.PushMsgFactory;
+import com.yeshi.fanli.entity.shop.BanLiShopOrder;
+import com.yeshi.fanli.exception.push.PushException;
import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.service.inter.config.ConfigService;
import com.yeshi.fanli.service.inter.msg.MsgDeviceReadStateService;
+import com.yeshi.fanli.service.inter.push.PushService;
+import com.yeshi.fanli.service.inter.shop.BanLiShopOrderService;
+import com.yeshi.fanli.util.StringUtil;
+import com.yeshi.fanli.util.rocketmq.MQMsgBodyFactory;
+import com.yeshi.fanli.util.rocketmq.MQTopicName;
+import com.yeshi.fanli.util.shop.BanLiShopOrderUtil;
+import com.yeshi.fanli.util.wx.BanLiShopWXPayUtil;
import net.sf.json.JSONObject;
@@ -35,7 +54,16 @@
private ConfigService configService;
@Resource
+ private PushService pushService;
+
+ @Resource
private MsgDeviceReadStateService msgDeviceReadStateService;
+
+ @Resource(name = "producer")
+ private Producer producer;
+
+ @Resource
+ private BanLiShopOrderService banLiShopOrderService;
/**
* 瀹㈡湇娑堟伅鍥炶皟
@@ -72,6 +100,8 @@
e.printStackTrace();
}
+ LogHelper.test("缇庢唇:body----" + sb.toString());
+
String sign = "";
try {
sign = sign(sb.toString());
@@ -95,11 +125,22 @@
else if (contentType.equalsIgnoreCase("audio"))
msg = "[璇煶]";
String customizedId = json.optJSONObject("customizedData").optString("璁惧鏍囪瘑");
+ String uid = json.optJSONObject("customizedData").optString("鐢ㄦ埛ID");
msgDeviceReadStateService.addUnreadDeviceMsg(MsgDeviceReadState.TYPE_KEFU, customizedId,
"android".equalsIgnoreCase(deviceOS) ? 1 : 2, 1, msg, new Date());
+ if (!StringUtil.isNullOrEmpty(uid))// 鎺ㄩ�佸鏈嶆秷鎭�
+ {
+ PushContentDTO dto = PushMsgFactory.createMsgKefu();
+ try {
+ pushService.pushZNX(Long.parseLong(uid), dto.getTitle(), dto.getContent(), null, null);
+ } catch (NumberFormatException e) {
+ e.printStackTrace();
+ } catch (PushException e) {
+ e.printStackTrace();
+ }
+ }
}
- LogHelper.test("缇庢唇:body----" + sb.toString());
}
public String sign(String raw_body) throws java.security.SignatureException {
@@ -124,4 +165,43 @@
out.print("success");
}
+ @RequestMapping(value = "vip")
+ public void VIP(PrintWriter out) {
+ out.print("success");
+ }
+
+ @RequestMapping(value = "banlishop/pay")
+ public void banLiShopPay(HttpServletRequest request, PrintWriter out) {
+
+ Map<String, String> map = WXUtil.parseXML(request);
+ JSONObject json = JSONObject.fromObject(map);
+ LogHelper.test("鍟嗗煄寰俊鏀粯鍥炶皟:" + json.toString());
+ String sign = map.get("sign");
+ map.remove("sign");
+ boolean isSuccess = BanLiShopWXPayUtil.signIsRight(map, sign);
+ if (isSuccess)
+ if (map.get("return_code").equalsIgnoreCase("SUCCESS")
+ && map.get("result_code").equalsIgnoreCase("SUCCESS")) {
+ // 鍟嗘埛璁㈠崟鍙�
+ String wxPayOrderNo = map.get("out_trade_no");
+ // 璁㈠崟鍙�
+ String orderNo = BanLiShopOrderUtil.getOrderNoFromWXPayOrderNo(wxPayOrderNo);
+ if (!StringUtil.isNullOrEmpty(orderNo)) {
+ BanLiShopOrder order = banLiShopOrderService.selectByOrderNo(orderNo);
+ if (order != null) {// 鏀粯鎴愬姛娑堟伅鎺ㄩ��
+ BanLiShopOrderMQMsg msg = new BanLiShopOrderMQMsg(order.getId(), order.getUid(),
+ new BigDecimal(map.get("total_fee")).multiply(new BigDecimal("0.01")));
+ Message message =MQMsgBodyFactory.create(MQTopicName.TOPIC_ORDER,
+ OrderTopicTagEnum.banLiShopOrderPaid, msg);
+ producer.send(message);
+ Map<String, String> returnMap = new HashMap<>();
+ returnMap.put("return_code", "SUCCESS");
+ returnMap.put("return_msg", "OK");
+ out.print(WXUtil.loadWXMessage(returnMap));
+ out.close();
+ }
+ }
+ }
+ }
+
}
--
Gitblit v1.8.0