Explorar o código

移动文件open包移动到controller

liweifan %!s(int64=3) %!d(string=hai) anos
pai
achega
a1cdf0c7a3

+ 1 - 1
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/open/UserOrderClient.java → cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/open/UserOrderClient.java

@@ -1,4 +1,4 @@
-package com.yonge.cooleshow.admin.open;
+package com.yonge.cooleshow.admin.controller.open;
 
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;

+ 1 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/req/OrderPayReq.java

@@ -20,7 +20,7 @@ public class OrderPayReq {
     @ApiModelProperty(value = "订单号 ", required = true)
     private String orderNo;
     @NotNull(message = "支付渠道不能为空")
-    @ApiModelProperty(value = "支付渠道:  alipay 支付宝扫码 ali_app 支付宝APP  wx_app 微信APP wx_lite 微信小程序支付", required = true)
+    @ApiModelProperty(value = "支付渠道:  alipay 支付宝扫码(汇付) ali_app 支付宝APP(原生)  wx_app 微信APP (原生) wx_lite 微信小程序支付(汇付,暂未完成)", required = true)
     private PayChannelEnum payChannel;
     @ApiModelProperty(value = "微信用户openId(微信支付必传)",hidden = true)
     private String openId;

+ 2 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/req/OrderReq.java

@@ -28,7 +28,7 @@ public class OrderReq {
     @ApiModelProperty(value = "订单名称 ", required = true)
     private String orderName;
     @NotNull(message = "订单类型不能为空")
-    @ApiModelProperty(value = "订单类型:  VIP、开通会员  PRACTICE、陪练课购买  LIVE、直播课购买 VIDEO、视频课购买 MUSIC、单曲点播 PINAO_ROOM、琴房时长", required = true)
+    @ApiModelProperty(value = "订单类型: 学生端( VIP、开通会员  PRACTICE、陪练课购买  LIVE、直播课购买 VIDEO、视频课购买 MUSIC、单曲点播 ) 老师端(PINAO_ROOM、琴房时长", required = true)
     private OrderTypeEnum orderType;
     @ApiModelProperty(value = "订单描述信息 ")
     private String orderDesc;
@@ -52,7 +52,7 @@ public class OrderReq {
         @ApiModelProperty(value = "订单详情号", hidden = true)
         private String subOrderNo;
         @NotNull(message = "商品类型不能为空")
-        @ApiModelProperty(value = "商品类型:  VIP、开通会员  PRACTICE、陪练课购买  LIVE、直播课购买 VIDEO、视频课购买 MUSIC、单曲点播 PINAO_ROOM、琴房时长", required = true)
+        @ApiModelProperty(value = "商品类型: 学生端( VIP、开通会员  PRACTICE、陪练课购买  LIVE、直播课购买 VIDEO、视频课购买 MUSIC、单曲点播) 老师端( PINAO_ROOM、琴房时长", required = true)
         private GoodTypeEnum goodType;
         @ApiModelProperty("商品名称 ")
         private String goodName;

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

@@ -25,6 +25,7 @@ import com.yonge.cooleshow.biz.dal.vo.UserOrderVo;
 import com.yonge.cooleshow.biz.dal.vo.res.RefundCreateRes;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.cooleshow.common.service.IdGeneratorService;
+import com.yonge.toolset.base.exception.BizException;
 import com.yonge.toolset.base.result.BaseResult;
 import com.yonge.toolset.payment.base.enums.PaymentClientEnum;
 import com.yonge.toolset.payment.base.enums.TradeStatusEnum;
@@ -134,7 +135,7 @@ public class UserOrderRefundServiceImpl extends ServiceImpl<UserOrderRefundDao,
             if (CollectionUtils.isNotEmpty(collect)) {
 
                 Function<OrderRefundReq, HttpResponseResult<RefundCreateRes>> refundCreateFunction = refundCreate.get(vo.getGoodType());
-                if (Objects.isNull(refundCreateFunction)) {
+                if (!Objects.isNull(refundCreateFunction)) {
                     refundReq.setOredrDetil(vo);
                     HttpResponseResult<RefundCreateRes> apply = refundCreateFunction.apply(refundReq);
                     if (apply.getStatus()) {
@@ -163,7 +164,7 @@ public class UserOrderRefundServiceImpl extends ServiceImpl<UserOrderRefundDao,
             List<Long> collect = refundReq.getOredrDetilIds().stream().filter(o -> o.equals(vo.getId())).collect(Collectors.toList());
             if (CollectionUtils.isNotEmpty(collect)) {
                 Consumer<UserOrderDetailVo> refundAfterConsumer = refundAfter.get(vo.getGoodType());
-                if (Objects.isNull(refundAfterConsumer)) {
+                if (!Objects.isNull(refundAfterConsumer)) {
                     refundAfterConsumer.accept(vo);
                 }
             }
@@ -202,7 +203,7 @@ public class UserOrderRefundServiceImpl extends ServiceImpl<UserOrderRefundDao,
                 }
                 //调用业务方法
                 Consumer<UserOrderDetailVo> refundCancelConsumer = refundCancel.get(detail.getGoodType());
-                if (Objects.isNull(refundCancelConsumer)) {
+                if (!Objects.isNull(refundCancelConsumer)) {
                     refundCancelConsumer.accept(detail);
                 }
             }
@@ -247,7 +248,7 @@ public class UserOrderRefundServiceImpl extends ServiceImpl<UserOrderRefundDao,
             }
 
             Function<OrderRefundReq, HttpResponseResult<RefundCreateRes>> refundCreateFunction = refundCreate.get(vo.getGoodType());
-            if (Objects.isNull(refundCreateFunction)) {
+            if (!Objects.isNull(refundCreateFunction)) {
                 orderRefundReq.setOredrDetil(vo);
                 HttpResponseResult<RefundCreateRes> apply = refundCreateFunction.apply(orderRefundReq);
                 if (apply.getStatus()) {
@@ -275,7 +276,7 @@ public class UserOrderRefundServiceImpl extends ServiceImpl<UserOrderRefundDao,
             List<Long> collect = orderRefundReq.getOredrDetilIds().stream().filter(o -> o.equals(vo.getId())).collect(Collectors.toList());
             if (CollectionUtils.isNotEmpty(collect)) {
                 Consumer<UserOrderDetailVo> refundAfterConsumer = refundAfter.get(vo.getGoodType());
-                if (Objects.isNull(refundAfterConsumer)) {
+                if (!Objects.isNull(refundAfterConsumer)) {
                     refundAfterConsumer.accept(vo);
                 }
             }
@@ -300,6 +301,10 @@ public class UserOrderRefundServiceImpl extends ServiceImpl<UserOrderRefundDao,
                 .eq(UserOrderPayment::getStatus, TradeStatusEnum.succeeded)
         );
 
+        if (null == payment || !TradeStatusEnum.succeeded.equals(payment.getStatus())) {
+            throw new BizException("订单状态异常");
+        }
+
         //单号生成
         Long billNo = idGeneratorService.generatorId("billNo");
 
@@ -307,6 +312,7 @@ public class UserOrderRefundServiceImpl extends ServiceImpl<UserOrderRefundDao,
                 PaymentClientEnum.valueOf(payment.getPaymentClient()), payment.getPayChannel());
         refundBill.setId(payment.getTransNo());
         refundBill.setRefundNo(billNo.toString());
+        refundBill.setOrderAmt(payment.getPayAmt());
         refundBill.setRefundAmt(orderRefund.getActualAmount());
         refundBill.setReason(orderRefund.getReason());
 
@@ -365,7 +371,7 @@ public class UserOrderRefundServiceImpl extends ServiceImpl<UserOrderRefundDao,
 
             for (UserOrderDetailVo vo : userOrderDetails) {
                 Consumer<UserOrderDetailVo> refundAfterConsumer = refundSuccess.get(vo.getGoodType());
-                if (Objects.isNull(refundAfterConsumer)) {
+                if (!Objects.isNull(refundAfterConsumer)) {
                     refundAfterConsumer.accept(vo);
                 }
             }
@@ -412,7 +418,7 @@ public class UserOrderRefundServiceImpl extends ServiceImpl<UserOrderRefundDao,
 
             for (UserOrderDetailVo vo : userOrderDetails) {
                 Consumer<UserOrderDetailVo> refundAfterConsumer = refundFailed.get(vo.getGoodType());
-                if (Objects.isNull(refundAfterConsumer)) {
+                if (!Objects.isNull(refundAfterConsumer)) {
                     refundAfterConsumer.accept(vo);
                 }
             }

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

@@ -254,7 +254,7 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
         //验证参数,必须验证参数
         for (OrderReq.OrderReqInfo info : orderReq.getOrderInfos()) {
             Function<OrderReq.OrderReqInfo, HttpResponseResult<OrderCreateRes>> createFunction = orderCreate.get(info.getGoodType());
-            if (Objects.isNull(createFunction)) {
+            if (!Objects.isNull(createFunction)) {
                 return HttpResponseResult.failed("订单商品信息获取失败");
             }
             info.setOrderNo(orderReq.getOrderNo());

+ 8 - 6
cooleshow-user/user-biz/src/main/resources/config/mybatis/UserOrderRefundMapper.xml

@@ -68,11 +68,13 @@
     <select id="selectOrderRefundDetils" resultType="com.yonge.cooleshow.biz.dal.entity.UserOrderDetail">
         select d.* from user_order o
         left join user_order_detail d on o.order_no_ = d.order_no_
-        where o.id_ = {orderId} and o.status_ = 'PAID'
-        and not exists (
-            select 1 from user_order_refund r where r.biz_type_ = 'ORDER' and r.status_ in ('DOING','PASS') and r.biz_id_ = o.id_
-            union all
-            select 1 from user_order_refund r where r.biz_type_ = 'GOOD' and r.status_ in ('DOING','PASS') and r.biz_id_ = d.id_
-        )
+        where o.id_ = #{orderId}
+          and o.status_ = 'PAID'
+          and not exists (
+                select 1 from user_order_refund r
+                where r.order_no_ = o.order_no_
+                  and r.status_ in ('DOING','PASS')
+                  and FIND_IN_SET(d.id_,r.oredr_detil_ids_)
+            )
     </select>
 </mapper>

+ 43 - 46
cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/controller/UserOrderRefundController.java

@@ -5,8 +5,6 @@ import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
 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.UserOrder;
-import com.yonge.cooleshow.biz.dal.entity.UserOrderRefund;
 import com.yonge.cooleshow.biz.dal.enums.CacheNameEnum;
 import com.yonge.cooleshow.biz.dal.service.UserOrderRefundService;
 import com.yonge.cooleshow.biz.dal.support.DistributedLock;
@@ -23,71 +21,70 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.*;
 
-import java.util.concurrent.Future;
 import java.util.concurrent.TimeUnit;
 
 @RestController
 @RequestMapping("/userOrderRefunds")
 @Api(value = "用户退款表", tags = "用户退款表")
 public class UserOrderRefundController extends BaseController {
-	@Autowired
-	private SysUserFeignService sysUserFeignService;
-	@Autowired
-	private RedissonClient redissonClient;
+    @Autowired
+    private SysUserFeignService sysUserFeignService;
+    @Autowired
+    private RedissonClient redissonClient;
     @Autowired
     private UserOrderRefundService userOrderRefundService;
 
-	/**
+    /**
      * 查询单条
      */
     @GetMapping("/detail/{id}")
     @ApiOperation(value = "详情", notes = "传入id")
     public HttpResponseResult<UserOrderRefundVo> detail(@PathVariable("id") Long id) {
-		SysUser user = sysUserFeignService.queryUserInfo();
-		if (user == null || null == user.getId()) {
-			return failed(HttpStatus.FORBIDDEN, "请登录");
-		}
-    	return succeed(userOrderRefundService.detail(id));
-	}
-    
+        SysUser user = sysUserFeignService.queryUserInfo();
+        if (user == null || null == user.getId()) {
+            return failed(HttpStatus.FORBIDDEN, "请登录");
+        }
+        return succeed(userOrderRefundService.detail(id));
+    }
+
     /**
      * 查询分页
      */
     @PostMapping("/page")
     @ApiOperation(value = "查询分页", notes = "传入orderRefundsSearch")
     public HttpResponseResult<PageInfo<UserOrderRefundVo>> page(@RequestBody UserOrderRefundSearch query) {
-		SysUser user = sysUserFeignService.queryUserInfo();
-		if (user == null || null == user.getId()) {
-			return failed(HttpStatus.FORBIDDEN, "请登录");
-		}
-		query.setUserId(user.getId());
-		IPage<UserOrderRefundVo> pages = userOrderRefundService.selectPage(PageUtil.getPage(query), query);
+        SysUser user = sysUserFeignService.queryUserInfo();
+        if (user == null || null == user.getId()) {
+            return failed(HttpStatus.FORBIDDEN, "请登录");
+        }
+        query.setUserId(user.getId());
+        IPage<UserOrderRefundVo> pages = userOrderRefundService.selectPage(PageUtil.getPage(query), query);
         return succeed(PageUtil.pageInfo(pages));
-	}
+    }
 
-	@ApiOperation(value = "订单退款")
-	@PostMapping("/orderRefund")
-	public HttpResponseResult<Boolean> orderRefund(@RequestBody OrderRefundReq refundReq) {
-		SysUser user = sysUserFeignService.queryUserInfo();
-		if (user == null || null == user.getId()) {
-			return failed(HttpStatus.FORBIDDEN, "请登录");
-		}
-		refundReq.setUserId(user.getId());
+    @ApiOperation(value = "订单退款")
+    @PostMapping("/orderRefund")
+    public HttpResponseResult<Boolean> orderRefund(@RequestBody OrderRefundReq refundReq) {
+        SysUser user = sysUserFeignService.queryUserInfo();
+        if (user == null || null == user.getId()) {
+            return failed(HttpStatus.FORBIDDEN, "请登录");
+        }
+        refundReq.setUserId(user.getId());
 
-		try {
-			HttpResponseResult<Boolean> res = DistributedLock.of(redissonClient)
-					.runIfLockCanGet(CacheNameEnum.LOCK_EXECUTE_ORDER.getRedisKey(user.getId())
-							, () -> userOrderRefundService.orderRefund(refundReq), 60L, TimeUnit.SECONDS);
-			if(null != res){
-				return res;
-			}else{
-				return HttpResponseResult.failed("订单退款失败");
-			}
-		} catch (BizException e) {
-			return HttpResponseResult.failed(e.getMessage());
-		} catch (Exception e) {
-			e.printStackTrace();
-			return HttpResponseResult.failed("订单退款失败");
-		}
-	}
+        try {
+            HttpResponseResult<Boolean> res = DistributedLock.of(redissonClient)
+                    .runIfLockCanGet(CacheNameEnum.LOCK_EXECUTE_ORDER.getRedisKey(user.getId())
+                            , () -> userOrderRefundService.orderRefund(refundReq), 60L, TimeUnit.SECONDS);
+            if (null != res) {
+                return res;
+            } else {
+                return HttpResponseResult.failed("订单退款失败");
+            }
+        } catch (BizException e) {
+            return HttpResponseResult.failed(e.getMessage());
+        } catch (Exception e) {
+            e.printStackTrace();
+            return HttpResponseResult.failed("订单退款失败");
+        }
+    }
 }

+ 2 - 2
cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/open/OpenClient.java → cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/controller/open/OpenClient.java

@@ -1,4 +1,4 @@
-package com.yonge.cooleshow.student.open;
+package com.yonge.cooleshow.student.controller.open;
 
 import com.yonge.cooleshow.biz.dal.service.StudentService;
 import com.yonge.cooleshow.biz.dal.service.TeacherService;
@@ -19,7 +19,7 @@ import java.util.Map;
 
 @RestController
 @RequestMapping("/open")
-@Api(value = "开放权限接口")
+@Api(value = "开放权限接口", tags = "开放权限接口")
 public class OpenClient extends BaseController {
     @Autowired
     private TeacherService teacherService;

+ 0 - 2
cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/task/TaskController.java

@@ -23,8 +23,6 @@ public class TaskController extends BaseController {
     @Autowired
     private StudentTimeService studentTimeService;
     @Autowired
-    private UserOrderService userOrderService;
-    @Autowired
     private VipCardRecordService vipCardRecordService;
     @Autowired
     private CourseRepliedService repliedService;

+ 1 - 1
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/open/UserWithdrawalClient.java → cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/open/UserWithdrawalClient.java

@@ -1,4 +1,4 @@
-package com.yonge.cooleshow.teacher.open;
+package com.yonge.cooleshow.teacher.controller.open;
 
 import com.alibaba.fastjson.JSONObject;
 import com.yonge.cooleshow.biz.dal.entity.UserWithdrawalCallback;

+ 5 - 5
toolset/toolset-payment/src/main/java/com/yonge/toolset/payment/base/model/RefundBill.java

@@ -18,31 +18,31 @@ public class RefundBill extends Base {
      */
     private String id;
     /***
-     * 付款订单号
+     * 付款订单号(必填)
      * @author liweifan
      * @updateTime 2022/5/10 15:30
      */
     String paymentNo;
     /***
-     * 付款订单三方流水号
+     * 付款订单三方流水号(必填)
      * @author liweifan
      * @updateTime 2022/5/10 15:30
      */
     String tradeNo;
     /***
-     * 退款订单号
+     * 退款订单号(必填)
      * @author liweifan
      * @updateTime 2022/3/31 11:00
      */
     private String refundNo;
     /***
-     * 原订单金额
+     * 原订单金额(必填)
      * @author liweifan
      * @updateTime 2022/3/31 11:01
      */
     private BigDecimal orderAmt;
     /***
-     * 退款金额,必须大于0,保留两位小数点,如0.10、100.05等
+     * 退款金额,必须大于0,保留两位小数点,如0.10、100.05等(必填)
      * @author liweifan
      * @updateTime 2022/3/31 11:01
      */