ソースを参照

支付扩展多应用支持

liweifan 3 年 前
コミット
5a3047ddae

+ 8 - 6
cooleshow-mall/mall-admin/src/main/java/com/yonge/cooleshow/admin/service/impl/OmsOrderReturnApplyServiceImpl.java

@@ -20,6 +20,7 @@ import com.yonge.cooleshow.mbg.model.UserOrderRefund;
 import com.yonge.toolset.base.result.BaseResult;
 import com.yonge.toolset.payment.base.enums.OpenEnum;
 import com.yonge.toolset.payment.base.enums.PayChannelEnum;
+import com.yonge.toolset.payment.base.enums.PaymentClientEnum;
 import com.yonge.toolset.payment.base.enums.TradeStatusEnum;
 import com.yonge.toolset.payment.base.model.RefundBill;
 import com.yonge.toolset.payment.core.service.PaymentClient;
@@ -58,7 +59,7 @@ public class OmsOrderReturnApplyServiceImpl implements OmsOrderReturnApplyServic
 
     @Override
     public List<OmsOrderReturnApply> list(OmsReturnApplyQueryParam queryParam, Integer pageSize, Integer pageNum) {
-        PageHelper.startPage(pageNum,pageSize);
+        PageHelper.startPage(pageNum, pageSize);
         return returnApplyDao.getList(queryParam);
     }
 
@@ -77,7 +78,7 @@ public class OmsOrderReturnApplyServiceImpl implements OmsOrderReturnApplyServic
             return 1;
         }
         OmsOrderReturnApply returnApply = new OmsOrderReturnApply();
-        if(status.equals(1)){
+        if (status.equals(1)) {
             //确认退货
             returnApply.setId(id);
             returnApply.setStatus(1);
@@ -86,7 +87,7 @@ public class OmsOrderReturnApplyServiceImpl implements OmsOrderReturnApplyServic
             returnApply.setHandleTime(new Date());
             returnApply.setHandleMan(statusParam.getHandleMan());
             returnApply.setHandleNote(statusParam.getHandleNote());
-        }else if(status.equals(2)){
+        } else if (status.equals(2)) {
             //完成退货
             returnApply.setId(id);
             returnApply.setStatus(2);
@@ -94,14 +95,14 @@ public class OmsOrderReturnApplyServiceImpl implements OmsOrderReturnApplyServic
             returnApply.setReceiveMan(statusParam.getReceiveMan());
             returnApply.setReceiveNote(statusParam.getReceiveNote());
             refundAmount(omsOrderReturnApply);
-        }else if(status.equals(3)){
+        } else if (status.equals(3)) {
             //拒绝退货
             returnApply.setId(id);
             returnApply.setStatus(3);
             returnApply.setHandleTime(new Date());
             returnApply.setHandleMan(statusParam.getHandleMan());
             returnApply.setHandleNote(statusParam.getHandleNote());
-        }else{
+        } else {
             return 0;
         }
         return returnApplyMapper.updateByPrimaryKeySelective(returnApply);
@@ -119,7 +120,8 @@ public class OmsOrderReturnApplyServiceImpl implements OmsOrderReturnApplyServic
             throw new ApiException("未找到付款信息");
         }
 
-        RefundBill refundReq = new RefundBill(OpenEnum.valueOf(userOrderPayment.getOpenType()), PayChannelEnum.valueOf(userOrderPayment.getPayChannel()));
+        RefundBill refundReq = new RefundBill(OpenEnum.valueOf(userOrderPayment.getOpenType()),
+                PaymentClientEnum.valueOf(userOrderPayment.getPaymentClient()), PayChannelEnum.valueOf(userOrderPayment.getPayChannel()));
         refundReq.setRefundNo(returnApply.getOrderSn());
         refundReq.setRefundAmt(returnApply.getReturnAmount().setScale(2, RoundingMode.HALF_UP));
 

+ 13 - 10
cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/controller/PaymentController.java

@@ -19,6 +19,7 @@ import com.yonge.toolset.base.result.BaseResult;
 import com.yonge.toolset.payment.base.enums.MethodNameEnum;
 import com.yonge.toolset.payment.base.enums.OpenEnum;
 import com.yonge.toolset.payment.base.enums.PayChannelEnum;
+import com.yonge.toolset.payment.base.enums.PaymentClientEnum;
 import com.yonge.toolset.payment.base.model.OpenAuth;
 import com.yonge.toolset.payment.base.model.Payment;
 import com.yonge.toolset.payment.base.model.callback.PaymentCallBack;
@@ -97,12 +98,12 @@ public class PaymentController extends BaseController {
                 }
             }
             return failed("请求超时");
-        }catch (BizException e) {
+        } catch (BizException e) {
             return failed(e.getMessage());
         } catch (Exception e) {
             e.printStackTrace();
             return HttpResponseResult.failed("付款失败");
-        }finally {
+        } finally {
             lock.unlock();
         }
     }
@@ -114,7 +115,8 @@ public class PaymentController extends BaseController {
         if (null == userOrderPayment) {
             return HttpResponseResult.succeed();
         }
-        Payment param = new Payment(OpenEnum.valueOf(userOrderPayment.getOpenType()), PayChannelEnum.valueOf(userOrderPayment.getPayChannel()));
+        Payment param = new Payment(OpenEnum.valueOf(userOrderPayment.getOpenType()),
+                PaymentClientEnum.valueOf(userOrderPayment.getPaymentClient()), PayChannelEnum.valueOf(userOrderPayment.getPayChannel()));
         param.setId(userOrderPayment.getTransNo());
         param.setPaymentNo(userOrderPayment.getTransNo());
         BaseResult<Payment> paymentBaseResult = paymentClient.queryPayment(param);
@@ -140,25 +142,27 @@ public class PaymentController extends BaseController {
      * @param: request
      * @updateTime 2022/3/11 18:35
      */
-    @PostMapping("/callback/{openType}/{payChannel}/{payMethod}")
+    @PostMapping("/callback/{openType}/{client}/{payChannel}/{payMethod}")
     public Object callback(
             @PathVariable("openType") String openType,
+            @PathVariable("client") String client,
             @PathVariable("payChannel") String payChannel,
             @PathVariable("payMethod") String payMethod,
             HttpServletRequest request
     ) {
         BaseResult<PaymentCallBack> res = paymentClient.analysisNotice(
-                OpenEnum.valueOf(openType), PayChannelEnum.valueOf(payChannel), MethodNameEnum.valueOf(payMethod), request);
-        if(res.getStatus()){
+                OpenEnum.valueOf(openType), PaymentClientEnum.valueOf(client),
+                PayChannelEnum.valueOf(payChannel), MethodNameEnum.valueOf(payMethod), request);
+        if (res.getStatus()) {
             PaymentCallBack data = res.getData();
 
-            if(MethodNameEnum.executePayment.equals(data.getMethodName())){
+            if (MethodNameEnum.executePayment.equals(data.getMethodName())) {
                 //支付交易
                 orderService.executePaymentCallBack(data);
-            }else if(MethodNameEnum.closePayment.equals(data.getMethodName())){
+            } else if (MethodNameEnum.closePayment.equals(data.getMethodName())) {
                 //关闭订单
                 orderService.closePaymentCallBack(data);
-            }else if(MethodNameEnum.refundPayment.equals(data.getMethodName())){
+            } else if (MethodNameEnum.refundPayment.equals(data.getMethodName())) {
                 //退款
                 portalOrderReturnApplyService.refundPaymentCallBack(data);
             }
@@ -167,7 +171,6 @@ public class PaymentController extends BaseController {
     }
 
 
-
     // private Object wxAppCallbackHandle(String payMethod, HttpServletRequest request) throws Exception {
     //     String merchantId = configPaymentService.getPaymentConfig(OpenEnum.ORIGINAL, WxpayConstant.WX_MERCHANT_ID).getParamValue();
     //     String apiV3Key = configPaymentService.getPaymentConfig(OpenEnum.ORIGINAL, WxpayConstant.WX_API_V3_KEY).getParamValue();

+ 36 - 34
cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/service/impl/OmsPortalOrderServiceImpl.java

@@ -20,6 +20,7 @@ import com.yonge.cooleshow.portal.dao.PortalOrderItemDao;
 import com.yonge.cooleshow.portal.dao.SmsCouponHistoryDao;
 import com.yonge.cooleshow.portal.domain.*;
 import com.yonge.cooleshow.portal.service.*;
+import com.yonge.toolset.payment.base.enums.PaymentClientEnum;
 import com.yonge.toolset.utils.string.StringUtil;
 
 import com.yonge.toolset.base.result.BaseResult;
@@ -77,7 +78,7 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
     private SmsCouponHistoryMapper couponHistoryMapper;
     @Autowired
     private RedisService redisService;
-    private String REDIS_KEY_ORDER_ID= "redis.key.orderId";
+    private String REDIS_KEY_ORDER_ID = "redis.key.orderId";
     private String REDIS_DATABASE = "redis.database";
     @Autowired
     private PortalOrderDao portalOrderDao;
@@ -102,7 +103,7 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
         ConfirmOrderResult result = new ConfirmOrderResult();
         //获取购物车信息
         UmsMember currentMember = memberService.getCurrentMember();
-        List<CartPromotionItem> cartPromotionItemList = cartItemService.listPromotion(currentMember.getId(), cartIds,true);
+        List<CartPromotionItem> cartPromotionItemList = cartItemService.listPromotion(currentMember.getId(), cartIds, true);
         result.setCartPromotionItemList(cartPromotionItemList);
         //获取用户收货地址列表
         List<UmsMemberReceiveAddress> memberReceiveAddressList = memberReceiveAddressService.list();
@@ -127,7 +128,7 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
         //获取购物车及优惠信息
         UmsMember currentMember = memberService.getCurrentMember();
         List<CartPromotionItem> cartPromotionItemList = cartItemService.listPromotion(currentMember.getId(), orderParam.getCartIds(),
-                                                                                      true);
+                true);
         for (CartPromotionItem cartPromotionItem : cartPromotionItemList) {
             //生成下单商品信息
             OmsOrderItem orderItem = new OmsOrderItem();
@@ -168,7 +169,7 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
             handleCouponAmount(orderItemList, couponHistoryDetail);
         }
         //判断是否使用积分
-        if (orderParam.getUseIntegration() == null||orderParam.getUseIntegration().equals(0)) {
+        if (orderParam.getUseIntegration() == null || orderParam.getUseIntegration().equals(0)) {
             //不使用积分
             for (OmsOrderItem orderItem : orderItemList) {
                 orderItem.setIntegrationAmount(new BigDecimal(0));
@@ -249,7 +250,7 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
         order.setOrderSn(generateOrderSn(order));
         //设置自动收货天数
         List<OmsOrderSetting> orderSettings = orderSettingMapper.selectByExample(new OmsOrderSettingExample());
-        if(CollUtil.isNotEmpty(orderSettings)){
+        if (CollUtil.isNotEmpty(orderSettings)) {
             order.setAutoConfirmDay(orderSettings.get(0).getConfirmOvertime());
         }
         // TODO: 2018/9/3 bill_*,delivery_*
@@ -296,11 +297,11 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
 
     @Override
     public Integer cancelTimeOutOrder() {
-        Integer count=0;
+        Integer count = 0;
         OmsOrderSetting orderSetting = orderSettingMapper.selectByPrimaryKey(1L);
         //查询超时、未支付的订单及订单详情
         List<OmsOrderDetail> timeOutOrders = portalOrderDao.getTimeOutOrders(orderSetting.getNormalOrderOvertime()
-                ,orderSetting.getPayOrderOvertime());
+                , orderSetting.getPayOrderOvertime());
         if (CollectionUtils.isEmpty(timeOutOrders)) {
             return count;
         }
@@ -325,7 +326,7 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
             return;
         }
         OmsOrder cancelOrder = cancelOrderList.get(0);
-        if (cancelOrder != null && (cancelOrder.getStatus() == 0 || cancelOrder.getStatus() == 6) ) {
+        if (cancelOrder != null && (cancelOrder.getStatus() == 0 || cancelOrder.getStatus() == 6)) {
             //修改订单状态为取消
             cancelOrder.setStatus(4);
             orderMapper.updateByPrimaryKeySelective(cancelOrder);
@@ -344,7 +345,7 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
                 memberService.updateIntegration(cancelOrder.getMemberId(), member.getIntegration() + cancelOrder.getUseIntegration());
             }
             // 发起关单
-            userOrderPaymentService.closePayment(cancelOrder.getOrderSn(),message);
+            userOrderPaymentService.closePayment(cancelOrder.getOrderSn(), message);
 
         }
     }
@@ -362,10 +363,10 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
     public void confirmReceiveOrder(Long orderId) {
         UmsMember member = memberService.getCurrentMember();
         OmsOrder order = orderMapper.selectByPrimaryKey(orderId);
-        if(!member.getId().equals(order.getMemberId())){
+        if (!member.getId().equals(order.getMemberId())) {
             Asserts.fail("不能确认他人订单!");
         }
-        if(order.getStatus()!=2){
+        if (order.getStatus() != 2) {
             Asserts.fail("该订单还未发货!");
         }
         order.setStatus(3);
@@ -376,16 +377,16 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
 
     @Override
     public CommonPage<OmsOrderDetail> list(String status, Integer pageNum, Integer pageSize) {
-        if(status.equals("-1")){
+        if (status.equals("-1")) {
             status = null;
         }
         UmsMember member = memberService.getCurrentMember();
-        PageHelper.startPage(pageNum,pageSize);
+        PageHelper.startPage(pageNum, pageSize);
         OmsOrderExample orderExample = new OmsOrderExample();
         OmsOrderExample.Criteria criteria = orderExample.createCriteria();
         criteria.andDeleteStatusEqualTo(0)
                 .andMemberIdEqualTo(member.getId());
-        if(status != null && !StringUtil.isEmpty(status)) {
+        if (status != null && !StringUtil.isEmpty(status)) {
             List<Long> list = StringUtil.toLongList(status);
             List<Integer> collect = list.stream().map(Long::intValue).collect(Collectors.toList());
             criteria.andStatusIn(collect);
@@ -399,7 +400,7 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
         resultPage.setPageSize(orderPage.getPageSize());
         resultPage.setTotal(orderPage.getTotal());
         resultPage.setTotalPage(orderPage.getTotalPage());
-        if(CollUtil.isEmpty(orderList)){
+        if (CollUtil.isEmpty(orderList)) {
             return resultPage;
         }
         //设置数据信息
@@ -410,7 +411,7 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
         List<OmsOrderDetail> orderDetailList = new ArrayList<>();
         for (OmsOrder omsOrder : orderList) {
             OmsOrderDetail orderDetail = new OmsOrderDetail();
-            BeanUtil.copyProperties(omsOrder,orderDetail);
+            BeanUtil.copyProperties(omsOrder, orderDetail);
             List<OmsOrderItem> relatedItemList = orderItemList.stream().filter(item -> item.getOrderId().equals(orderDetail.getId())).collect(Collectors.toList());
             orderDetail.setOrderItemList(relatedItemList);
             orderDetailList.add(orderDetail);
@@ -426,7 +427,7 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
         example.createCriteria().andOrderIdEqualTo(orderId);
         List<OmsOrderItem> orderItemList = orderItemMapper.selectByExample(example);
         OmsOrderDetail orderDetail = new OmsOrderDetail();
-        BeanUtil.copyProperties(omsOrder,orderDetail);
+        BeanUtil.copyProperties(omsOrder, orderDetail);
         orderDetail.setOrderItemList(orderItemList);
         return orderDetail;
     }
@@ -445,7 +446,7 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
         example.createCriteria().andOrderIdEqualTo(omsOrder.getId());
         List<OmsOrderItem> orderItemList = orderItemMapper.selectByExample(example);
         OmsOrderDetail orderDetail = new OmsOrderDetail();
-        BeanUtil.copyProperties(omsOrder,orderDetail);
+        BeanUtil.copyProperties(omsOrder, orderDetail);
         orderDetail.setOrderItemList(orderItemList);
         return orderDetail;
     }
@@ -454,13 +455,13 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
     public void deleteOrder(Long orderId) {
         UmsMember member = memberService.getCurrentMember();
         OmsOrder order = orderMapper.selectByPrimaryKey(orderId);
-        if(!member.getId().equals(order.getMemberId())){
+        if (!member.getId().equals(order.getMemberId())) {
             Asserts.fail("不能删除他人订单!");
         }
-        if(order.getStatus()==3||order.getStatus()==4){
+        if (order.getStatus() == 3 || order.getStatus() == 4) {
             order.setDeleteStatus(1);
             orderMapper.updateByPrimaryKey(order);
-        }else{
+        } else {
             Asserts.fail("只能删除已完成或已关闭的订单!");
         }
     }
@@ -494,7 +495,8 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
 
         //构建汇付统一下单请求
         OpenEnum openType = OpenEnum.valueOf(paymentProperties.getOpenType());
-        Payment payment = new Payment(openType, payReq.getPayChannel());
+        Payment payment = new Payment(openType,
+                PaymentClientEnum.valueOf(userOrderPayment.getPaymentClient()), payReq.getPayChannel());
         payment.setPaymentNo(generateOrderSn(detail));
         payment.setOrderNo(payReq.getOrderNo());
         payment.setOrderTitle("酷乐秀商城订单编号-" + detail.getOrderSn());
@@ -504,7 +506,7 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
         List<OrderDetil> orderDetils = new ArrayList<>();
         for (OmsOrderItem orderDetailVo : detail.getOrderItemList()) {
             orderDetils.add(new OrderDetil(orderDetailVo.getId().toString(), orderDetailVo.getProductName(),
-                       orderDetailVo.getProductQuantity(), orderDetailVo.getRealAmount().toString()));
+                    orderDetailVo.getProductQuantity(), orderDetailVo.getRealAmount().toString()));
         }
         payment.setOrderDetils(orderDetils);
         payment.setPayAmt(detail.getPayAmount().setScale(2, RoundingMode.HALF_UP).toString());
@@ -534,11 +536,11 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
         BaseResult<Payment> executePayment = paymentClient.executePayment(payment);
         if (!executePayment.getStatus()) {
             // 异常将取消订单
-            cancelOrder(detail.getId(),executePayment.getMsg());
+            cancelOrder(detail.getId(), executePayment.getMsg());
             throw new BizException(executePayment.getMsg());
         }
         if (!executePayment.getData().getPayAmt().equals(detail.getPayAmount().setScale(2, RoundingMode.HALF_UP).toString())) {
-            cancelOrder(detail.getId(),"订单金额和实际支付金额不符");
+            cancelOrder(detail.getId(), "订单金额和实际支付金额不符");
             throw new BizException("订单金额和实际支付金额不符");
         }
 
@@ -595,7 +597,6 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
     }
 
 
-
     /***
      * 处理回调-支付成功
      * @author liweifan
@@ -640,7 +641,7 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
 
             cancelOrder(detail.getId(), data.getErrMsg());
         } else {
-            log.error("汇付支付回调,订单状态异常。 req is {}",JSON.toJSONString(data));
+            log.error("汇付支付回调,订单状态异常。 req is {}", JSON.toJSONString(data));
         }
     }
 
@@ -689,7 +690,8 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
         }
         OmsOrderDetail detail = detail(orderPayment.getOrderNo());
         try {
-            Payment param = new Payment(OpenEnum.valueOf(orderPayment.getOpenType()), PayChannelEnum.valueOf(orderPayment.getPayChannel()));
+            Payment param = new Payment(OpenEnum.valueOf(orderPayment.getOpenType()),
+                    PaymentClientEnum.valueOf(orderPayment.getPaymentClient()), PayChannelEnum.valueOf(orderPayment.getPayChannel()));
             param.setId(orderPayment.getTransNo());
             param.setPaymentNo(orderPayment.getAdapayNo());
             BaseResult<Payment> res = paymentClient.queryPayment(param);
@@ -714,7 +716,7 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
 
 
     void orderSuccess(OmsOrder detail) {
-        orderSuccess(detail,null);
+        orderSuccess(detail, null);
     }
 
     /**
@@ -735,9 +737,9 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
             }
         }
         if (orderPayment.getPayChannel().equals("alipay")) {
-            paySuccess(detail.getId(),1);
+            paySuccess(detail.getId(), 1);
         } else if (orderPayment.getPayChannel().equals("wx_lite")) {
-            paySuccess(detail.getId(),2);
+            paySuccess(detail.getId(), 2);
         }
 
         orderPayment.setStatus(TradeStatusEnum.succeeded.getCode());
@@ -761,7 +763,7 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
     private String generateOrderSn(OmsOrder order) {
         StringBuilder sb = new StringBuilder();
         String date = new SimpleDateFormat("yyyyMMdd").format(new Date());
-        String key = REDIS_DATABASE+":"+ REDIS_KEY_ORDER_ID + date;
+        String key = REDIS_DATABASE + ":" + REDIS_KEY_ORDER_ID + date;
         Long increment = redisService.incr(key, 1);
         sb.append(date);
         sb.append(String.format("%02d", order.getSourceType()));
@@ -1048,7 +1050,7 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
      */
     private void lockStock(List<CartPromotionItem> cartPromotionItemList) {
         for (CartPromotionItem cartPromotionItem : cartPromotionItemList) {
-            int i = skuStockMapper.lockStock(cartPromotionItem.getProductSkuId(),cartPromotionItem.getQuantity());
+            int i = skuStockMapper.lockStock(cartPromotionItem.getProductSkuId(), cartPromotionItem.getQuantity());
             if (i == 0) {
                 Asserts.fail("库存不足,无法下单");
             }
@@ -1060,7 +1062,7 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
      */
     private boolean hasStock(List<CartPromotionItem> cartPromotionItemList) {
         for (CartPromotionItem cartPromotionItem : cartPromotionItemList) {
-            if (cartPromotionItem.getRealStock()==null||cartPromotionItem.getRealStock() <= 0) {
+            if (cartPromotionItem.getRealStock() == null || cartPromotionItem.getRealStock() <= 0) {
                 return false;
             }
         }

+ 4 - 2
cooleshow-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/service/impl/UserOrderPaymentServiceImpl.java

@@ -6,6 +6,7 @@ import com.yonge.cooleshow.portal.service.UserOrderPaymentService;
 import com.yonge.toolset.base.result.BaseResult;
 import com.yonge.toolset.payment.base.enums.OpenEnum;
 import com.yonge.toolset.payment.base.enums.PayChannelEnum;
+import com.yonge.toolset.payment.base.enums.PaymentClientEnum;
 import com.yonge.toolset.payment.base.enums.TradeStatusEnum;
 import com.yonge.toolset.payment.base.model.ClosePayment;
 import com.yonge.toolset.payment.core.service.PaymentClient;
@@ -53,7 +54,7 @@ public class UserOrderPaymentServiceImpl implements UserOrderPaymentService {
     @Override
     public UserOrderPayment getByOrderNo(String orderSn, PayChannelEnum payChannel, TradeStatusEnum payStatus) {
 
-        return userOrderPaymentMapper.selectByOrderNoAndStatus(orderSn,payChannel.getCode(),payStatus.getCode());
+        return userOrderPaymentMapper.selectByOrderNoAndStatus(orderSn, payChannel.getCode(), payStatus.getCode());
     }
 
     @Override
@@ -74,7 +75,8 @@ public class UserOrderPaymentServiceImpl implements UserOrderPaymentService {
             //发送支付关单请求
             if (!StringUtil.isEmpty(orderPayment.getTransNo())) {
                 ClosePayment closePayment = new ClosePayment(OpenEnum.valueOf(orderPayment.getOpenType()),
-                                                              PayChannelEnum.valueOf(orderPayment.getPayChannel()));
+                        PaymentClientEnum.valueOf(orderPayment.getPaymentClient()),
+                        PayChannelEnum.valueOf(orderPayment.getPayChannel()));
                 closePayment.setId(orderPayment.getTransNo());
                 closePayment.setReason(message);
                 closePayment.setPaymentNo(orderPayment.getAdapayNo());

+ 2 - 1
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/UserOrderRefundController.java

@@ -6,6 +6,7 @@ import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.dto.req.AuthOperaReq;
 import com.yonge.cooleshow.biz.dal.dto.search.UserOrderRefundSearch;
+import com.yonge.cooleshow.biz.dal.entity.UserOrderRefundBill;
 import com.yonge.cooleshow.biz.dal.support.PageUtil;
 import com.yonge.cooleshow.biz.dal.vo.UserOrderRefundVo;
 import com.yonge.cooleshow.common.controller.BaseController;
@@ -54,7 +55,7 @@ public class UserOrderRefundController extends BaseController {
 	@PostMapping("/doAuth")
 	@ApiOperation(value = "审核", notes = "传入authOperaReq")
 	@PreAuthorize("@pcs.hasPermissions('userOrderRefunds/doAuth')")
-	public HttpResponseResult<RefundBill> doAuth(@Valid @RequestBody AuthOperaReq authOperaReq) throws Exception {
+	public HttpResponseResult<UserOrderRefundBill> doAuth(@Valid @RequestBody AuthOperaReq authOperaReq) throws Exception {
 		SysUser user = sysUserFeignService.queryUserInfo();
 		if (user == null || null == user.getId()) {
 			return failed(HttpStatus.FORBIDDEN, "请登录");

+ 3 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/UserOrderRefundService.java

@@ -7,6 +7,7 @@ import com.yonge.cooleshow.biz.dal.dto.req.AuthOperaReq;
 import com.yonge.cooleshow.biz.dal.dto.req.OrderRefundReq;
 import com.yonge.cooleshow.biz.dal.dto.search.UserOrderRefundSearch;
 import com.yonge.cooleshow.biz.dal.entity.UserOrderRefund;
+import com.yonge.cooleshow.biz.dal.entity.UserOrderRefundBill;
 import com.yonge.cooleshow.biz.dal.vo.UserOrderRefundVo;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.toolset.payment.base.model.RefundBill;
@@ -47,7 +48,7 @@ public interface UserOrderRefundService extends IService<UserOrderRefund>  {
 	 * @updateTime 2022/5/9 16:25
 	 * @return: com.yonge.cooleshow.common.entity.HttpResponseResult<java.lang.Boolean>
 	 */
-    HttpResponseResult<RefundBill> doAuth(AuthOperaReq authOperaReq, SysUser user);
+    HttpResponseResult<UserOrderRefundBill> doAuth(AuthOperaReq authOperaReq, SysUser user);
 
 	/**
 	 * 系統自動退款
@@ -55,7 +56,7 @@ public interface UserOrderRefundService extends IService<UserOrderRefund>  {
 	 * @param reason
 	 * @return
 	 */
-	HttpResponseResult<RefundBill> orderRefund(String orderNo, String reason);
+	HttpResponseResult<UserOrderRefundBill> orderRefund(String orderNo, String reason);
 
 	/**
 	 * 退款回调

+ 13 - 7
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/UserOrderRefundServiceImpl.java

@@ -162,7 +162,7 @@ public class UserOrderRefundServiceImpl extends ServiceImpl<UserOrderRefundDao,
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public HttpResponseResult<RefundBill> doAuth(AuthOperaReq authOperaReq, SysUser user) {
+    public HttpResponseResult<UserOrderRefundBill> doAuth(AuthOperaReq authOperaReq, SysUser user) {
         UserOrderRefund orderRefund = baseMapper.selectById(authOperaReq.getId());
         if (!AuthStatusEnum.DOING.equals(orderRefund.getStatus())) {
             return HttpResponseResult.failed("退款单已审核");
@@ -201,7 +201,7 @@ public class UserOrderRefundServiceImpl extends ServiceImpl<UserOrderRefundDao,
 
 
     @Transactional
-    public HttpResponseResult<RefundBill> orderRefund(String orderNo, String reason) {
+    public HttpResponseResult<UserOrderRefundBill> orderRefund(String orderNo, String reason) {
         UserOrderVo detail = orderService.detail(orderNo, null);
 
         if (null == detail || CollectionUtils.isEmpty(detail.getOrderDetailList())) {
@@ -211,7 +211,8 @@ public class UserOrderRefundServiceImpl extends ServiceImpl<UserOrderRefundDao,
             return HttpResponseResult.failed("订单状态异常");
         }
 
-        UserOrderPayment orderPayment = orderPaymentService.detailByTransNoOrPaymentNo(detail.getTransNo(), detail.getPaymentNo());
+        UserOrderPayment orderPayment = orderPaymentService.detailByTransNoOrPaymentNo(
+                detail.getTransNo(), detail.getPaymentNo());
         if (null == orderPayment || !TradeStatusEnum.succeeded.equals(orderPayment.getStatus())) {
             return HttpResponseResult.failed("订单付款状态异常");
         }
@@ -282,7 +283,7 @@ public class UserOrderRefundServiceImpl extends ServiceImpl<UserOrderRefundDao,
         }
     }
 
-    private HttpResponseResult<RefundBill> doOrderRefund(UserOrderRefund orderRefund) {
+    private HttpResponseResult<UserOrderRefundBill> doOrderRefund(UserOrderRefund orderRefund) {
         UserOrderPayment payment = orderPaymentService.getOne(Wrappers.<UserOrderPayment>lambdaQuery()
                 .eq(UserOrderPayment::getOrderNo, orderRefund.getOrderNo())
                 .eq(UserOrderPayment::getStatus, TradeStatusEnum.succeeded)
@@ -304,13 +305,18 @@ public class UserOrderRefundServiceImpl extends ServiceImpl<UserOrderRefundDao,
         UserOrderRefundBill orderRefundBill = new UserOrderRefundBill();
         orderRefundBill.setRefundId(orderRefund.getId());
         orderRefundBill.setBillNo(billNo.toString());
+        orderRefundBill.setRefundAmt(orderRefund.getActualAmount());
         if (refundBillBaseResult.getStatus()) {
             orderRefundBill.setTransNo(refundBillBaseResult.getData().getId());
+            orderRefundBill.setStatus(TradeStatusEnum.pending);
+        }else{
+            orderRefundBill.setStatus(TradeStatusEnum.failed);
+            orderRefundBill.setPayFailMsg(refundBillBaseResult.getMsg());
         }
-        orderRefundBill.setRefundAmt(orderRefund.getActualAmount());
-        orderRefundBill.setStatus(TradeStatusEnum.pending);
         refundBillService.save(orderRefundBill);
-        return HttpResponseResult.status(refundBillBaseResult);
+
+
+        return HttpResponseResult.succeed(orderRefundBill);
     }
 
     /***