|
@@ -32,7 +32,6 @@ import com.ym.mec.thirdparty.adapay.entity.HfMerchantConfig;
|
|
|
import com.ym.mec.thirdparty.yqpay.*;
|
|
|
import com.ym.mec.util.collection.MapUtil;
|
|
|
import com.ym.mec.util.date.DateUtil;
|
|
|
-
|
|
|
import org.apache.commons.collections.CollectionUtils;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.slf4j.Logger;
|
|
@@ -308,44 +307,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 +1034,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 +1058,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"));
|