From e357fadecfea809de46740e059bd5f2c72bc89b1 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Wed, 07 Apr 2021 16:32:33 +0800
Subject: [PATCH] 20210407 签到接口

---
 zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxCommonAction.java |   44 +++++++++++++++++++++++++++++---------------
 1 files changed, 29 insertions(+), 15 deletions(-)

diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxCommonAction.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxCommonAction.java
index cb91885..d5423a3 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxCommonAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxCommonAction.java
@@ -1,18 +1,19 @@
 package com.matrix.system.shopXcx.api.action;
 
-import com.matrix.biz.dao.BizUserDao;
 import com.matrix.component.rabbitmq.RabiitMqTemplate;
-import com.matrix.core.pojo.AjaxResult;
-import com.matrix.core.tools.LogUtil;
 import com.matrix.component.wechat.externalInterface.common.Signature;
 import com.matrix.component.wechat.externalInterface.common.Util;
 import com.matrix.component.wechat.externalInterface.protocol.queryProtocol.NotifyData;
+import com.matrix.config.RabbitMqConfig;
+import com.matrix.core.pojo.AjaxResult;
+import com.matrix.core.tools.LogUtil;
 import com.matrix.system.common.bean.BusParameterSettings;
 import com.matrix.system.common.constance.AppConstance;
 import com.matrix.system.common.dao.BusParameterSettingsDao;
-import com.matrix.system.common.interceptor.HostInterceptor;
 import com.matrix.system.hive.bean.SysVipInfo;
 import com.matrix.system.hive.dao.SysVipInfoDao;
+import com.matrix.system.score.entity.ScoreVipDetail;
+import com.matrix.system.score.service.ScoreVipDetailService;
 import com.matrix.system.shopXcx.bean.ShopActivitiesGroupJoin;
 import com.matrix.system.shopXcx.bean.ShopActivitiesGroupJoinUser;
 import com.matrix.system.shopXcx.bean.ShopOrder;
@@ -22,6 +23,7 @@
 import com.matrix.system.shopXcx.dao.ShopOrderDao;
 import com.matrix.system.shopXcx.dao.ShopPayLogDao;
 import com.matrix.system.shopXcx.mqTask.MQTaskRouting;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Controller;
@@ -29,12 +31,10 @@
 import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.ResponseBody;
-import org.xml.sax.SAXException;
 
 import javax.servlet.ServletOutputStream;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-import javax.xml.parsers.ParserConfigurationException;
 import java.io.IOException;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
@@ -81,6 +81,9 @@
     @Autowired
     BusParameterSettingsDao busParameterSettingsDao;
 
+    @Autowired
+    ScoreVipDetailService scoreVipDetailService;
+
 
 
     @Value("${evn}")
@@ -110,16 +113,25 @@
                 notityXml.append(inputLine);
             }
             request.getReader().close();
-            // XMl转对象
-            NotifyData data = (NotifyData) Util.getObjectFromXML(notityXml.toString(), NotifyData.class);
-            LogUtil.info(data.toString());
             LogUtil.info("notityXml ---- :{} ", notityXml);
+
+
+            // XMl转对象
+            Object bb = Util.getObjectFromXML(notityXml.toString(), NotifyData.class);
+            NotifyData    data = new NotifyData();
+            BeanUtils.copyProperties(bb,data);
             LogUtil.info("----return_code = {}", data.getReturn_code());
+
 
             // 返回状态码 SUCCESS/FAIL
             if (AppConstance.CODE_SUCCESS.equals(data.getReturn_code())) {
+
+                orderId = data.getAttach();
+                // 检验订单状态
+                ShopOrder order = shopOrderDao.selectById(Integer.valueOf(orderId));
+
                 // 校验签名
-                BusParameterSettings paySecret = busParameterSettingsDao.selectCompanyParamByCode(AppConstance.WECHARPAY_SECRET, HostInterceptor.getCompanyId());
+                BusParameterSettings paySecret = busParameterSettingsDao.selectCompanyParamByCode(AppConstance.WECHARPAY_SECRET, order.getCompanyId());
                 if (Signature.checkIsSignValidFromResponseString(notityXml.toString(),paySecret.getParamValue())) {
                     // 校验业务结果
                     if (AppConstance.CODE_SUCCESS.equals(data.getResult_code())) {
@@ -129,14 +141,13 @@
                         Double total_fee = Double.parseDouble(data.getTotal_fee());
                         // 商户订单号
                         String payNum = data.getOut_trade_no();
-                        orderId = data.getAttach();
+
                         LogUtil.info("支付回调关键信息---total_fee:{},payNum:{},orderId:{}", total_fee, payNum, orderId);
                         // 订单ID
                         BigDecimal payMoney = new BigDecimal(total_fee).divide(new BigDecimal(100), 2,
                                 RoundingMode.HALF_UP);
 
-                        // 检验订单状态
-                        ShopOrder order = shopOrderDao.selectById(Integer.valueOf(orderId));
+
                         if (order != null && ShopOrder.ORDER_PAY_STATUS_WAIT == order.getPayStatus()) {
                             ShopPayLog payLog = new ShopPayLog();
                             // TODO 校验支付金额
@@ -187,7 +198,8 @@
                             }
 
                             // 根据订单类型创建不同的处理任务
-                            rabiitMqTemplate.sendMsg(MQTaskRouting.CREATE_ORDER+evn, orderId);
+                            rabiitMqTemplate.sendTopicMsg(RabbitMqConfig.MQ_EXCHANGE_TOPIC +evn, MQTaskRouting.CREATE_ORDER+evn, orderId);
+
 
 
                             threadResult.putInMap("status", "success");
@@ -219,7 +231,7 @@
                 threadResult.putInMap("msg", "查询支付信息失败,请联系客服或者刷新支付信息(错误码:003)");
                 resXml = AppConstance.RESULT_XML_FAIL.replace(ERRORMSG, "通信标识失败");
             }
-        } catch (ParserConfigurationException | IOException | SAXException e) {
+        } catch (Exception e) {
             LogUtil.error("支付回调签名错误", e);
             threadResult.putInMap("status", "err");
             threadResult.putInMap("msg", "查询支付信息失败,请联系客服或者刷新支付信息(错误码:004)");
@@ -271,4 +283,6 @@
         return null;
     }
 
+
+
 }
\ No newline at end of file

--
Gitblit v1.9.1