Sfoglia il codice sorgente

Merge branch 'master' of http://git.dayaedu.com/yonge/cooleshow

liujunchi 3 anni fa
parent
commit
9731014553

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

@@ -39,7 +39,7 @@ public class ImGroupController extends BaseController {
     @ApiOperation("获取群详情")
     @PostMapping(value = "/getDetail/{groupId}")
     @PreAuthorize("@pcs.hasPermissions('imGroup/detail')")
-    public HttpResponseResult<ImGroup> getDetail(@ApiParam(value = "群编号", required = true) @PathVariable("groupId") Long groupId) throws Exception {
+    public HttpResponseResult<ImGroup> getDetail(@ApiParam(value = "群编号", required = true) @PathVariable("groupId") String groupId) throws Exception {
         return succeed(imGroupService.getById(groupId));
     }
 

+ 1 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/MemberPriceSettingsServiceImpl.java

@@ -63,6 +63,7 @@ public class MemberPriceSettingsServiceImpl extends ServiceImpl<MemberPriceSetti
         }
         OrderCreateRes orderCreateRes = new OrderCreateRes();
         orderCreateRes.setRes(true);
+        orderCreateRes.setMerchId(0l);
         orderCreateRes.setBizId(detail.getId());
         orderCreateRes.setBizContent("会员卡购买-" + detail.getPeriod().getMsg());
         orderCreateRes.setGoodNum(1);

+ 1 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/PianoRoomBuyRecordServiceImpl.java

@@ -50,6 +50,7 @@ public class PianoRoomBuyRecordServiceImpl extends ServiceImpl<PianoRoomBuyRecor
         }
         OrderCreateRes orderCreateRes = new OrderCreateRes();
         orderCreateRes.setRes(true);
+        orderCreateRes.setMerchId(0l);
         orderCreateRes.setBizId(detail.getId());
         orderCreateRes.setBizContent("琴房时长包购买-" + detail.getTimes() + "分");
         orderCreateRes.setGoodNum(1);

+ 2 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/UserOrderPaymentServiceImpl.java

@@ -103,6 +103,7 @@ public class UserOrderPaymentServiceImpl extends ServiceImpl<UserOrderPaymentDao
 
             try {
                 BaseResult<ClosePayment> responseResult = paymentClient.closePayment(param);
+                log.info("关单返回: {}", JSONObject.toJSONString(responseResult));
                 if (!responseResult.getStatus()) {
                     orderPayment.setCloseStatus(TradeStatusEnum.failed);
                     orderPayment.setCloseFailMsg(responseResult.getMsg());
@@ -167,6 +168,7 @@ public class UserOrderPaymentServiceImpl extends ServiceImpl<UserOrderPaymentDao
 
         //付款请求
         BaseResult<Payment> paymentResBaseResult = paymentClient.executePayment(payment);
+        log.info("关单返回: {}", JSONObject.toJSONString(paymentResBaseResult));
         if (paymentResBaseResult.getStatus()) {
             orderPayRes.setPay_amt(detail.getActualPrice().setScale(2, RoundingMode.HALF_UP).toString());
             String pay_info = paymentResBaseResult.getData().getPayInfo();

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

@@ -1,5 +1,6 @@
 package com.yonge.cooleshow.biz.dal.service.impl;
 
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -32,6 +33,8 @@ import com.yonge.toolset.payment.base.model.callback.PaymentCallBack;
 import com.yonge.toolset.payment.base.model.callback.RefundPaymentCallBack;
 import com.yonge.toolset.payment.core.service.PaymentClient;
 import com.yonge.toolset.utils.string.StringUtil;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -45,6 +48,8 @@ import java.util.stream.Collectors;
 
 @Service
 public class UserOrderRefundServiceImpl extends ServiceImpl<UserOrderRefundDao, UserOrderRefund> implements UserOrderRefundService {
+    private final static Logger log = LoggerFactory.getLogger(UserOrderRefundServiceImpl.class);
+
     @Autowired
     private UserOrderService orderService;
     @Autowired
@@ -306,7 +311,7 @@ public class UserOrderRefundServiceImpl extends ServiceImpl<UserOrderRefundDao,
         refundBill.setReason(orderRefund.getReason());
 
         BaseResult<RefundBill> refundBillBaseResult = paymentClient.refundPayment(refundBill);
-
+        log.info("退款返回: {} ", JSONObject.toJSONString(refundBillBaseResult));
         //入退款单表
         UserOrderRefundBill orderRefundBill = new UserOrderRefundBill();
         orderRefundBill.setRefundId(orderRefund.getId());
@@ -320,8 +325,6 @@ public class UserOrderRefundServiceImpl extends ServiceImpl<UserOrderRefundDao,
             orderRefundBill.setPayFailMsg(refundBillBaseResult.getMsg());
         }
         refundBillService.save(orderRefundBill);
-
-
         return HttpResponseResult.succeed(orderRefundBill);
     }
 

+ 4 - 2
cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/controller/ImGroupController.java

@@ -10,7 +10,9 @@ import com.yonge.cooleshow.biz.dal.service.ImGroupService;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.toolset.utils.validator.ValidationKit;
-import io.swagger.annotations.*;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
 import org.springframework.validation.BindingResult;
 import org.springframework.web.bind.annotation.*;
 
@@ -38,7 +40,7 @@ public class ImGroupController extends BaseController {
 
     @ApiOperation("获取群详情")
     @PostMapping(value = "/getDetail/{groupId}")
-    public HttpResponseResult<ImGroup> getDetail(@ApiParam(value = "群编号", required = true) @PathVariable("groupId") Long groupId) throws Exception {
+    public HttpResponseResult<ImGroup> getDetail(@ApiParam(value = "群编号", required = true) @PathVariable("groupId") String groupId) throws Exception {
         return succeed(imGroupService.getById(groupId));
     }
 

+ 1 - 96
cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/controller/PaymentController.java

@@ -55,39 +55,14 @@ import java.util.concurrent.TimeUnit;
 @RequestMapping("/payment")
 @Api(value = "付款接口", tags = "付款接口")
 public class PaymentController extends BaseController {
-    private final static Logger log = LoggerFactory.getLogger(PaymentController.class);
-    @Autowired
-    private UserOrderPaymentService paymentService;
-    @Autowired
-    private UserOrderRefundService userOrderRefundService;
+
     @Autowired
     private SysUserFeignService sysUserFeignService;
     @Autowired
-    private UserOrderService userOrderService;
-    @Autowired
     private PaymentClient paymentClient;
     @Autowired
-    private RedissonClient redissonClient;
-    @Autowired
     private PaymentProperties paymentProperties;
 
-    @ApiOperation(value = "查询付款单")
-    @GetMapping("/queryPayment")
-    public HttpResponseResult<Payment> queryPayment(String paymentNo) {
-        UserOrderPayment userOrderPayment = paymentService.getOne(Wrappers.<UserOrderPayment>lambdaQuery()
-                .eq(UserOrderPayment::getPaymentNo, paymentNo)
-        );
-        if (null == userOrderPayment) {
-            return HttpResponseResult.succeed();
-        }
-        Payment param = new Payment(userOrderPayment.getOpenType(),
-                PaymentClientEnum.valueOf(userOrderPayment.getPaymentClient()), userOrderPayment.getPayChannel());
-        param.setId(userOrderPayment.getTransNo());
-        param.setPaymentNo(userOrderPayment.getPaymentNo());
-        BaseResult<Payment> paymentBaseResult = paymentClient.queryPayment(param);
-        return HttpResponseResult.status(paymentBaseResult);
-    }
-
     @ApiOperation(value = "通过用户给的授权码获取三方支付授权信息")
     @GetMapping("/getOpenId")
     public HttpResponseResult<Map<String, Object>> getOpenId(OpenAuth openAuth) {
@@ -100,74 +75,4 @@ public class PaymentController extends BaseController {
         BaseResult<Map<String, Object>> res = paymentClient.getOpenAuthMsg(openAuth);
         return HttpResponseResult.status(res);
     }
-
-    /***
-     * 支付回调
-     * @author liweifan
-     * @param: request
-     * @updateTime 2022/3/11 18:35
-     */
-    @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
-    ) {
-        log.info("支付回调:openType is {} ,paymentClient is {},payChannel is {},payMethod is {}", openType, client, payChannel, payMethod);
-        BaseResult<PaymentCallBack> res = paymentClient.analysisNotice(
-                OpenEnum.valueOf(openType), PaymentClientEnum.valueOf(client),
-                PayChannelEnum.valueOf(payChannel), MethodNameEnum.valueOf(payMethod), request);
-        if (res.getStatus()) {
-            PaymentCallBack data = res.getData();
-            //查询到订单
-            UserOrderVo userOrderVo = userOrderService.getUserOrderByPaymentNoOrTransNo(data.getPaymentNo(), data.getId());
-            if (null == userOrderVo) {
-                return res.getData().getResMsg();
-            }
-            try {
-                DistributedLock.of(redissonClient)
-                        .runIfLockCanGet(CacheNameEnum.LOCK_EXECUTE_ORDER.getRedisKey(userOrderVo.getUserId())
-                                , () -> {
-                                    if (MethodNameEnum.executePayment.equals(data.getMethodName())) {
-                                        //支付交易
-                                        paymentService.executePaymentCallBack(data);
-                                    } else if (MethodNameEnum.closePayment.equals(data.getMethodName())) {
-                                        //关闭订单
-                                        paymentService.closePaymentCallBack(data);
-                                    } else if (MethodNameEnum.refundPayment.equals(data.getMethodName())) {
-                                        //退款
-                                        userOrderRefundService.refundPaymentCallBack(data);
-                                    }
-                                }, 60L, TimeUnit.SECONDS);
-            } catch (BizException e) {
-                log.error("回调业务异常,msg is {}", e.getMessage());
-            } catch (Exception e) {
-                e.printStackTrace();
-            }
-        }
-        return res.getData().getResMsg();
-    }
-
-
-    /***
-     * 支付回调
-     * @author liweifan
-     * @param: request
-     * @updateTime 2022/3/11 18:35
-     */
-    @PostMapping("/testCallback")
-    public void testCallback(@RequestBody PaymentCallBack data) {
-        if (MethodNameEnum.executePayment.equals(data.getMethodName())) {
-            //支付交易
-            paymentService.executePaymentCallBack(data);
-        } else if (MethodNameEnum.closePayment.equals(data.getMethodName())) {
-            //关闭订单
-            paymentService.closePaymentCallBack(data);
-        } else if (MethodNameEnum.refundPayment.equals(data.getMethodName())) {
-            //退款
-            userOrderRefundService.refundPaymentCallBack(data);
-        }
-    }
 }

+ 1 - 28
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/UserOrderController.java

@@ -96,7 +96,7 @@ public class UserOrderController extends BaseController {
         if (StringUtil.isEmpty(payReq.getOrderNo())) {
             return failed("订单号不能为空");
         }
-        payReq.setPaymentClient(PaymentClientEnum.STUDENT);
+        payReq.setPaymentClient(PaymentClientEnum.TEACHER);
         payReq.setUserId(user.getId());
         payReq.setIpAddress(WebUtil.getRemoteIp(request));
 
@@ -117,33 +117,6 @@ public class UserOrderController extends BaseController {
         }
     }
 
-    @ApiOperation(value = "通过业务id查询用户正在交易中的订单")
-    @PostMapping("/getPendingOrder")
-    @ApiImplicitParams({
-            @ApiImplicitParam(
-                    name = "goodType",
-                    value = "订单类型:  PRACTICE、陪练课购买  LIVE、直播课购买 VIDEO、视频课购买 MUSIC、单曲点播",
-                    paramType = "query", dataType = "String", required = true
-            ),
-            @ApiImplicitParam(
-                    name = "bizId",
-                    value = "业务id 直播课、陪练课购买为课程组id;陪练课为老师id;单曲点播传曲子id",
-                    paramType = "query", dataType = "Long"
-            )
-    })
-    public HttpResponseResult<UserOrderVo> getPendingOrder(@ApiIgnore @RequestBody OrderSearch query) {
-        if (null == query.getGoodType()
-                || (!GoodTypeEnum.VIP.equals(query.getGoodType()) && null == query.getBizId())) {
-            return HttpResponseResult.failed("参数异常");
-        }
-        SysUser user = sysUserFeignService.queryUserInfo();
-        if (user == null || null == user.getId()) {
-            return failed(HttpStatus.FORBIDDEN, "请登录");
-        }
-        query.setUserId(user.getId());
-        return userOrderService.getPendingOrder(query);
-    }
-
     @ApiOperation(value = "取消订单")
     @PostMapping("/orderCancel")
     @ApiImplicitParams({

+ 0 - 4
toolset/toolset-payment/src/main/java/com/yonge/toolset/payment/core/util/SpringBeansUtil.java

@@ -44,10 +44,6 @@ public class SpringBeansUtil implements ApplicationContextAware {
 
      /** 通过name获取 Bean. */
     public static Object getBean(String name){
-        String[] beanDefinitionNames = getApplicationContext().getBeanDefinitionNames();
-        for (String beanDefinitionName : beanDefinitionNames) {
-            System.out.println(beanDefinitionName);
-        }
         if(!getApplicationContext().containsBean(name)){
             return null;
         }

+ 6 - 0
toolset/toolset-payment/src/main/java/com/yonge/toolset/payment/original/ali/OriginalAliAppTemplate.java

@@ -90,6 +90,8 @@ public class OriginalAliAppTemplate implements PaymentTemplate {
         request.setBizContent(bizContent.toString());
         try {
             AlipayTradeAppPayResponse response = getAlipayClient(payment.getPaymentClient()).sdkExecute(request);
+            log.info("支付返回:{}", JSONObject.toJSONString(response));
+
             if (response.isSuccess()) {
                 payment.setId(response.getTradeNo());
                 payment.setPayInfo(response.getBody());
@@ -117,6 +119,7 @@ public class OriginalAliAppTemplate implements PaymentTemplate {
         request.setBizContent(bizContent.toString());
         try {
             AlipayTradeQueryResponse response = getAlipayClient(payment.getPaymentClient()).execute(request);
+            log.info("查询返回:{}", JSONObject.toJSONString(response));
 
             if (response.isSuccess()) {
                 payment.setPayAmt(response.getPayAmount());
@@ -158,6 +161,8 @@ public class OriginalAliAppTemplate implements PaymentTemplate {
         request.setBizContent(bizContent.toString());
         try {
             AlipayTradeCloseResponse response = getAlipayClient(closePayment.getPaymentClient()).execute(request);
+            log.info("关单返回:{}", JSONObject.toJSONString(response));
+
             closePayment.setStatus(TradeStatusEnum.succeeded);
             if (response.isSuccess()) {
                 return BaseResult.succeed(closePayment);
@@ -187,6 +192,7 @@ public class OriginalAliAppTemplate implements PaymentTemplate {
         request.setBizContent(bizContent.toString());
         try {
             AlipayTradeRefundResponse response = getAlipayClient(refundBill.getPaymentClient()).execute(request);
+            log.info("退款返回:{}", JSONObject.toJSONString(response));
 
             if (response.isSuccess()) {
                 //获取交易状态

+ 8 - 5
toolset/toolset-payment/src/main/java/com/yonge/toolset/payment/original/wx/OriginalWxAppTemplate.java

@@ -92,6 +92,7 @@ public class OriginalWxAppTemplate implements PaymentTemplate {
         try {
             Object orderV3 = getWxPayService(payment.getPaymentClient())
                     .createOrderV3(TradeTypeEnum.APP, request);
+            log.info("支付返回:{}", JSONObject.toJSONString(orderV3));
             Map<String, String> stringStringMap = SignUtils.xmlBean2Map(orderV3);
             String msg = buildMessage(
                     APP_ID,
@@ -112,7 +113,7 @@ public class OriginalWxAppTemplate implements PaymentTemplate {
             return BaseResult.succeed(payment);
         } catch (WxPayException e) {
             log.error("微信APP支付请求失败:{}", e.toString());
-            return BaseResult.failed(e.getReturnMsg());
+            return BaseResult.failed(e.toString());
         } catch (Exception e) {
             e.printStackTrace();
             return BaseResult.failed("微信APP支付请求失败");
@@ -133,6 +134,7 @@ public class OriginalWxAppTemplate implements PaymentTemplate {
         try {
             WxPayOrderQueryV3Result res = getWxPayService(payment.getPaymentClient())
                     .queryOrderV3(param);
+            log.info("查询返回:{}", JSONObject.toJSONString(res));
 
             payment.setId(res.getTransactionId());
             String tradeState = res.getTradeState();
@@ -148,7 +150,7 @@ public class OriginalWxAppTemplate implements PaymentTemplate {
             return BaseResult.succeed(payment);
         } catch (WxPayException e) {
             log.error("微信APP支付查询请求失败:{}", e.toString());
-            return BaseResult.failed(e.getReturnMsg());
+            return BaseResult.failed(e.toString());
         } catch (Exception e) {
             e.printStackTrace();
             return BaseResult.failed("微信APP支付查询请求失败");
@@ -174,7 +176,7 @@ public class OriginalWxAppTemplate implements PaymentTemplate {
             return BaseResult.succeed(closePayment);
         } catch (WxPayException e) {
             log.error("微信APP支付关单请求失败:{}", e.toString());
-            return BaseResult.failed(e.getReturnMsg());
+            return BaseResult.failed(e.toString());
         } catch (Exception e) {
             e.printStackTrace();
             return BaseResult.failed("微信APP支付关单请求失败");
@@ -208,13 +210,14 @@ public class OriginalWxAppTemplate implements PaymentTemplate {
         try {
             WxPayRefundV3Result res = getWxPayService(refundBill.getPaymentClient())
                     .refundV3(param);
+            log.info("退款返回:{}", JSONObject.toJSONString(res));
 
             String refund_id = res.getRefundId();
             refundBill.setId(refund_id);
             return BaseResult.succeed(refundBill);
         } catch (WxPayException e) {
             log.error("微信APP支付请求失败:{}", e.toString());
-            return BaseResult.failed(e.getReturnMsg());
+            return BaseResult.failed(e.toString());
         } catch (Exception e) {
             e.printStackTrace();
             return BaseResult.failed("微信APP支付关单请求失败");
@@ -306,7 +309,7 @@ public class OriginalWxAppTemplate implements PaymentTemplate {
             resMsg.put("message", "失败");
             paymentCallBack.setResMsg(resMsg);
             log.error("微信回调对象转换失败, param is {} , err is {}", params, e.toString());
-            return BaseResult.failed(HttpStatus.INTERNAL_SERVER_ERROR, paymentCallBack, "微信回调对象转换失败");
+            return BaseResult.failed(HttpStatus.INTERNAL_SERVER_ERROR, paymentCallBack, e.toString());
         } catch (Exception e) {
             e.printStackTrace();
             resMsg.put("code", "FAIL");

+ 19 - 4
toolset/toolset-payment/src/main/java/com/yonge/toolset/payment/original/wx/config/WxpayConfiguration.java

@@ -9,6 +9,7 @@ import com.yonge.toolset.payment.core.service.SysConfigPaymentService;
 import com.yonge.toolset.payment.original.wx.constant.WxpayConstant;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 
@@ -23,6 +24,8 @@ import java.security.PrivateKey;
 public class WxpayConfiguration {
     @Autowired
     private SysConfigPaymentService configPaymentService;
+    @Value("${spring.profiles.active}")
+    private String profile;
 
     @Bean(name = "studentWxService")
     public WxPayService studentWxService() {
@@ -44,8 +47,14 @@ public class WxpayConfiguration {
         payConfig.setMchKey(merchantPrivateKey);
         payConfig.setCertSerialNo(merchantSerialNumber);
         payConfig.setApiV3Key(apiV3Key);
-        payConfig.setPrivateCertPath(privateCertPath);
-        payConfig.setPrivateKeyPath(privateKeyPath);
+        if("local".equals(profile)){
+            payConfig.setPrivateCertPath("D:\\env\\license\\wxpay\\apiclient_cert.pem");
+            payConfig.setPrivateKeyPath("D:\\env\\license\\wxpay\\apiclient_key.pem");
+        }else{
+            payConfig.setPrivateCertPath(privateCertPath);
+            payConfig.setPrivateKeyPath(privateKeyPath);
+        }
+
         // 可以指定是否使用沙箱环境
         payConfig.setUseSandboxEnv(false);
 
@@ -75,8 +84,14 @@ public class WxpayConfiguration {
         payConfig.setMchKey(merchantPrivateKey);
         payConfig.setCertSerialNo(merchantSerialNumber);
         payConfig.setApiV3Key(apiV3Key);
-        payConfig.setPrivateCertPath(privateCertPath);
-        payConfig.setPrivateKeyPath(privateKeyPath);
+
+        if("local".equals(profile)){
+            payConfig.setPrivateCertPath("D:\\env\\license\\wxpay\\apiclient_cert.pem");
+            payConfig.setPrivateKeyPath("D:\\env\\license\\wxpay\\apiclient_key.pem");
+        }else{
+            payConfig.setPrivateCertPath(privateCertPath);
+            payConfig.setPrivateKeyPath(privateKeyPath);
+        }
         // 可以指定是否使用沙箱环境
         payConfig.setUseSandboxEnv(false);