Browse Source

fix:api链接

liujunchi 2 years ago
parent
commit
f7957de58d

+ 14 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/StudentPaymentOrderService.java

@@ -17,7 +17,9 @@ import com.ym.mec.common.entity.HttpResponseResult;
 import com.ym.mec.common.entity.MallCreateOrderModel;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.BaseService;
+import com.ym.mec.thirdparty.adapay.entity.HfMerchantConfig;
 import org.apache.ibatis.annotations.Param;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
 import java.util.Date;
@@ -87,6 +89,18 @@ public interface StudentPaymentOrderService extends BaseService<Long, StudentPay
 
     void queryOrderStatus() throws Exception;
 
+
+    /**
+     *  检查并修改订单状态
+     *
+     * @param date
+     * @param payConfigMap
+     * @param payingOrder
+     * @param checkTime
+     * @return
+     */
+    Boolean updateOrderStatus(Date date, Map<Integer, HfMerchantConfig> payConfigMap, StudentPaymentOrder payingOrder, Boolean checkTime) throws Exception;
+
     //退优惠券和余额
     void quitCouponAndBalance(StudentPaymentOrder order);
 

+ 47 - 34
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentPaymentOrderServiceImpl.java

@@ -2,6 +2,7 @@ package com.ym.mec.biz.service.impl;
 
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.sun.istack.internal.NotNull;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.*;
@@ -308,44 +309,56 @@ public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, Studen
             if (DateUtil.minutesBetween(payingOrder.getCreateTime(), date) < 10) {
                 continue;
             }
-            
-            hfMerchantConfig = payConfigMap.get(payingOrder.getTenantId());
+
+            updateOrderStatus(date, payConfigMap, payingOrder,true);
+        }
+        closeOrders(orderNoList);
+    }
+
+    @Override
+    @Transactional
+    public Boolean updateOrderStatus(Date date,  Map<Integer, HfMerchantConfig> payConfigMap, StudentPaymentOrder payingOrder, Boolean checkTime) throws Exception {
+        if (payConfigMap == null) {
+            throw new BizException("payConfigMap 不能为空");
+        }
+        HfMerchantConfig hfMerchantConfig;
+        hfMerchantConfig = payConfigMap.get(payingOrder.getTenantId());
+        if(hfMerchantConfig == null){
+            hfMerchantConfig = hfMerchantConfigService.queryByTenantId(payingOrder.getTenantId());
             if(hfMerchantConfig == null){
-            	hfMerchantConfig = hfMerchantConfigService.queryByTenantId(payingOrder.getTenantId());
-                if(hfMerchantConfig == null){
-                	throw new BizException("机构[{}]汇付商户信息找不到", payingOrder.getTenantId());
-                }
-            	payConfigMap.put(payingOrder.getTenantId(), hfMerchantConfig);
+                throw new BizException("机构[{}]汇付商户信息找不到", payingOrder.getTenantId());
             }
-            
-            Map<String, Object> payment = Payment.queryPayment(payingOrder.getTransNo(), hfMerchantConfig.getMerKey());
-            LOGGER.info("订单[{}]交易主动查询接口返回:{}", payingOrder.getTransNo(), payment);
+            payConfigMap.put(payingOrder.getTenantId(), hfMerchantConfig);
+        }
 
-            Map<String, String> rpMap = new HashMap<>();
-            rpMap.put("merOrderNo", payingOrder.getOrderNo());
-            rpMap.put("orderNo", payingOrder.getTransNo());
-            rpMap.put("channelType", (String) payment.get("pay_channel"));
-            String status = (String) payment.get("status");
-            if (payment.containsKey("error_msg")) {
-                rpMap.put("remarks", (String) payment.get("error_msg"));
-            }
-            if (status.equals("succeeded")) {
-                rpMap.put("tradeState", "1");
-            } else if (status.equals("failed") || (DateUtil.minutesBetween(DateUtil.addHours(payingOrder.getUpdateTime(), 2), date) > 0)) {
-                rpMap.put("tradeState", "0");
-            }
+        Map<String, Object> payment = Payment.queryPayment(payingOrder.getTransNo(), hfMerchantConfig.getMerKey());
+        LOGGER.info("订单[{}]交易主动查询接口返回:{}", payingOrder.getTransNo(), payment);
 
-            if (status.equals("succeeded") ||
-                    (status.equals("failed") || payingOrder.getCreateTime().before(DateUtil.addMinutes(new Date(), -35)))) {
-                try {
-                    updateOrder(rpMap); //更新订单
-                } catch (Exception e) {
-                    e.printStackTrace();
-                    continue;
-                }
+        Map<String, String> rpMap = new HashMap<>();
+        rpMap.put("merOrderNo", payingOrder.getOrderNo());
+        rpMap.put("orderNo", payingOrder.getTransNo());
+        rpMap.put("channelType", (String) payment.get("pay_channel"));
+        String status = (String) payment.get("status");
+        if (payment.containsKey("error_msg")) {
+            rpMap.put("remarks", (String) payment.get("error_msg"));
+        }
+        if (status.equals("succeeded")) {
+            rpMap.put("tradeState", "1");
+        } else if (status.equals("failed") || !checkTime
+                || (DateUtil.minutesBetween(DateUtil.addHours(payingOrder.getUpdateTime(), 2),date) > 0)) {
+            rpMap.put("tradeState", "0");
+        }
+
+        if (status.equals("succeeded") ||
+                (status.equals("failed") || !checkTime || payingOrder.getCreateTime().before(DateUtil.addMinutes(new Date(), -35)))) {
+            try {
+                updateOrder(rpMap); //更新订单
+            } catch (Exception e) {
+                e.printStackTrace();
+                return false;
             }
         }
-        closeOrders(orderNoList);
+        return true;
     }
 
     @Transactional(rollbackFor = Exception.class)
@@ -1023,7 +1036,7 @@ public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, Studen
         Date date = new Date();
         StudentPaymentOrder studentPaymentOrder = sysCouponCodeService.use(model.getCouponIdList(), model.getAmount(),false);
 
-        studentPaymentOrder.setGroupType(GroupType.GOODS_SELL);
+        studentPaymentOrder.setGroupType(GroupType.MALL_SELL);
         studentPaymentOrder.setUserId(model.getUserId());
         studentPaymentOrder.setType(OrderTypeEnum.MALL_BUY);
         studentPaymentOrder.setOrderNo(model.getOrderNo());
@@ -1047,7 +1060,7 @@ public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, Studen
                 "商品销售",
                 "商品销售",
                 student.getOrganId(),
-                "renew"
+                "mall_buy"
         );
         studentPaymentOrder.setMerNos((String) payMap.get("routingMerNos"));
         studentPaymentOrder.setPaymentChannel((String) payMap.get("type"));

+ 2 - 0
mec-biz/src/main/resources/config/mybatis/StudentPaymentOrderMapper.xml

@@ -506,6 +506,8 @@
         FROM student_payment_order
         WHERE status_ = #{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
           AND payment_channel_ = #{paymentChannel}
+    <!--  商城订单由商城控制订单超时      -->
+        and group_type_ = 'MALL_SELL' and type_ = 'MALL_BUY'
     </select>
 
     <!-- 查询支付中超时订单 -->

+ 3 - 3
mec-client-api/src/main/java/com/ym/mec/web/WebFeignService.java

@@ -39,12 +39,12 @@ public interface WebFeignService {
 	@GetMapping(value = "/queryByTenantId/{id}")
 	HttpResponseResult<HfMerchantConfig> queryByTenantId(@PathVariable("id") Integer id);
 
-	@PostMapping("/mallCreateOrder")
+	@PostMapping("/api/mallCreateOrder")
 	HttpResponseResult<Map> mallCreateOrder(@RequestBody MallCreateOrderModel model);
 
-	@PostMapping("/executePayment")
+	@PostMapping("/api/executePayment")
 	HttpResponseResult executePayment(@RequestBody Map paymentParam);
 
-	@PostMapping("/updateOrder")
+	@PostMapping("/api/updateOrder")
 	HttpResponseResult updateOrder(@RequestBody Map map);
 }

+ 33 - 0
mec-common/common-core/src/main/java/com/ym/mec/common/entity/OrderCancelModel.java

@@ -0,0 +1,33 @@
+package com.ym.mec.common.entity;
+
+/**
+ * Description
+ *
+ * @author liujunchi
+ * @date 2022-09-19
+ */
+public class OrderCancelModel {
+
+    // 修改状态  true:支付失败,false 支付成功
+    private boolean status;
+
+
+    // 调用状态  true:成功  false 失败
+    private Boolean success;
+
+    public boolean isStatus() {
+        return status;
+    }
+
+    public void setStatus(boolean status) {
+        this.status = status;
+    }
+
+    public Boolean getSuccess() {
+        return success;
+    }
+
+    public void setSuccess(Boolean success) {
+        this.success = success;
+    }
+}

+ 13 - 0
mec-web/src/main/java/com/ym/mec/web/controller/APIController.java

@@ -170,4 +170,17 @@ public class APIController extends BaseController {
 		return succeed();
 	}
 
+
+	@PostMapping("/cancelOrder")
+	public HttpResponseResult cancelOrder(@RequestBody Map map) {
+
+		try {
+			studentPaymentOrderService.updateOrder(map);
+		} catch (Exception e) {
+			e.printStackTrace();
+			return failed();
+		}
+		return succeed();
+	}
+
 }