Browse Source

feat 0 支付工程

devlop
yang_shj 4 years ago
parent
commit
1ff54fb82e
  1. 3
      payment-base-app/src/main/java/com/base/springcloud/constant/ErrorConstant.java
  2. 2
      payment-base-app/src/main/java/com/base/springcloud/dao/OrderMapper.java
  3. 3
      payment-base-app/src/main/java/com/base/springcloud/service/OrderService.java
  4. 13
      payment-base-app/src/main/java/com/base/springcloud/service/imp/OrderServiceImp.java
  5. 30
      payment-base-app/src/main/java/com/base/springcloud/service/imp/PaymentServiceImp.java
  6. 4
      payment-base-app/src/main/java/com/base/springcloud/service/imp/RefundServiceImp.java
  7. 2
      payment-base-app/src/main/resources/com/base/payment/mapper/OrderMapper.xml
  8. 2
      payment-base-app/src/main/resources/com/base/payment/mapper/RefundMapper.xml

3
payment-base-app/src/main/java/com/base/springcloud/constant/ErrorConstant.java

@ -25,7 +25,8 @@ public enum ErrorConstant {
BILL_COMPLETE_PAYMENT("RBS00020","销售单据已完成付款!"), BILL_COMPLETE_PAYMENT("RBS00020","销售单据已完成付款!"),
ALL_BILL_COMPLETE_PAYMENT("RBS00021","所有销售单据已完成付款!"), ALL_BILL_COMPLETE_PAYMENT("RBS00021","所有销售单据已完成付款!"),
MISTAKE_TARGET("RBS00022","要提供的对象不是数组!"), MISTAKE_TARGET("RBS00022","要提供的对象不是数组!"),
NO_FOUND_REFUND_DATA("RBS00023","无需同步状态退款订单"); SUPER_REFUND_ORDER_COUNT_FAL("RBS00023","退款订单次数累计失败!"),
SUPER_PAY_ORDER_COUNT_FAL("RBS00024","支付订单次数累计失败!");
private String code; private String code;
private String message; private String message;

2
payment-base-app/src/main/java/com/base/springcloud/dao/OrderMapper.java

@ -27,4 +27,6 @@ public interface OrderMapper {
int updateOrderSuccess(String orderNo); int updateOrderSuccess(String orderNo);
Order origOrderInfo(@Param("orderId") String orderId); Order origOrderInfo(@Param("orderId") String orderId);
int superRefundCount(String id);
} }

3
payment-base-app/src/main/java/com/base/springcloud/service/OrderService.java

@ -21,4 +21,7 @@ public interface OrderService {
// 查询原支付订单 // 查询原支付订单
void origOrderCheck(RefundBO refundBO); void origOrderCheck(RefundBO refundBO);
// 叠加次数
void superPayCount(String id);
} }

13
payment-base-app/src/main/java/com/base/springcloud/service/imp/OrderServiceImp.java

@ -113,4 +113,17 @@ public class OrderServiceImp implements OrderService {
refundBO.setRefundAmount(order.getOrderAmount()); refundBO.setRefundAmount(order.getOrderAmount());
refundBO.setMchId(order.getMchId()); refundBO.setMchId(order.getMchId());
} }
/**
* 查询次数叠加
* @param id
*/
@Override
public void superPayCount(String id) {
if(StringUtils.isBlank(id))
return;
int count = orderMapper.superRefundCount(id);
if(count <= 0)
throw new BusinessException(ErrorConstant.SUPER_PAY_ORDER_COUNT_FAL);
}
} }

30
payment-base-app/src/main/java/com/base/springcloud/service/imp/PaymentServiceImp.java

@ -1,5 +1,6 @@
package com.base.springcloud.service.imp; package com.base.springcloud.service.imp;
import com.base.springcloud.aspect.annotation.BusinessException;
import com.base.springcloud.bo.MerchantConfigBO; import com.base.springcloud.bo.MerchantConfigBO;
import com.base.springcloud.bo.OrderBO; import com.base.springcloud.bo.OrderBO;
import com.base.springcloud.bo.RefundBO; import com.base.springcloud.bo.RefundBO;
@ -102,16 +103,25 @@ public class PaymentServiceImp implements PaymentService {
// 参数检查 // 参数检查
Order order = Optional.ofNullable(orderBO).map(o->orderBO.getOrder()).orElse(null); Order order = Optional.ofNullable(orderBO).map(o->orderBO.getOrder()).orElse(null);
if(!Optional.ofNullable(order).isPresent()) return; if(!Optional.ofNullable(order).isPresent()) return;
// 获取商户支付配置信息 try{
claimMerchantConfig(orderBO); // 获取商户支付配置信息
// 查询微信订单结果 claimMerchantConfig(orderBO);
Boolean state = wecPaymentService.orderResult(orderBO); // 查询微信订单结果
if(!state) return; Boolean state = wecPaymentService.orderResult(orderBO);
// 同步订单状态 if(!state) return;
String orderNo = order.getOrderNo(); // 同步订单状态
orderService.updateOrderSuccess(orderNo); String orderNo = order.getOrderNo();
// 核销销售单据金额 orderService.updateOrderSuccess(orderNo);
billService.writeOffAmount(order.getId()); // 核销销售单据金额
billService.writeOffAmount(order.getId());
}catch (BusinessException e){
logger.info("订单 : {} 业务异常信息 : {}",order.getOrderNo(),e.getCode());
}catch (Exception e){
logger.info("订单 : {} 系统异常信息 : {}",order.getOrderNo(),e.getMessage());
}finally {
// 叠加查询次数
orderService.superPayCount(order.getId());
}
} }
/** /**

4
payment-base-app/src/main/java/com/base/springcloud/service/imp/RefundServiceImp.java

@ -122,7 +122,7 @@ public class RefundServiceImp implements RefundService {
}catch (Exception e){ }catch (Exception e){
logger.info("退款订单 : {} 系统异常信息 : {}",refundBO.getRefundNo(),e.getMessage()); logger.info("退款订单 : {} 系统异常信息 : {}",refundBO.getRefundNo(),e.getMessage());
}finally { }finally {
// 叠加查询次数 // 叠加退款查询次数
superRefundCount(refundBO); superRefundCount(refundBO);
} }
} }
@ -175,7 +175,7 @@ public class RefundServiceImp implements RefundService {
return; return;
int count = refundMapper.superRefundCount(refundId); int count = refundMapper.superRefundCount(refundId);
if(count < 1) if(count < 1)
throw new BusinessException(ErrorConstant.SYNC_WEC_REFUND_STATE_FAIL); throw new BusinessException(ErrorConstant.SUPER_REFUND_ORDER_COUNT_FAL);
} }
} }

2
payment-base-app/src/main/resources/com/base/payment/mapper/OrderMapper.xml

@ -164,7 +164,7 @@
<include refid="Base_Column_List" /> <include refid="Base_Column_List" />
from pay_order from pay_order
<where> <where>
order_state = 'W' order_state = 'W' and retry_count &lt; 6
and DATE_FORMAT(create_time,'%Y-%m-%d') = DATE_FORMAT(#{date},'%Y-%m-%d') and DATE_FORMAT(create_time,'%Y-%m-%d') = DATE_FORMAT(#{date},'%Y-%m-%d')
</where> </where>
order by time_stamp desc limit 10 order by time_stamp desc limit 10

2
payment-base-app/src/main/resources/com/base/payment/mapper/RefundMapper.xml

@ -181,7 +181,7 @@
<include refid="Base_Column_List" /> <include refid="Base_Column_List" />
from pay_refund from pay_refund
<where> <where>
refund_state = '0' refund_state = '0' and refund_retry_count &lt; 6
and DATE_FORMAT(refund_time,'%Y-%m-%d') = DATE_FORMAT(#{date},'%Y-%m-%d') and DATE_FORMAT(refund_time,'%Y-%m-%d') = DATE_FORMAT(#{date},'%Y-%m-%d')
</where> </where>
order by refund_time desc limit 10 order by refund_time desc limit 10

Loading…
Cancel
Save