From 3f481005be717250a2ea87ff9367aa84d6a3eb13 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期六, 14 九月 2024 10:55:52 +0800
Subject: [PATCH] 课程代码

---
 xinquan-modules/xinquan-order/src/main/java/com/xinquan/order/controller/client/ClientOrderController.java |   67 ++++++++++++++++++++++++++++++---
 1 files changed, 60 insertions(+), 7 deletions(-)

diff --git a/xinquan-modules/xinquan-order/src/main/java/com/xinquan/order/controller/client/ClientOrderController.java b/xinquan-modules/xinquan-order/src/main/java/com/xinquan/order/controller/client/ClientOrderController.java
index 18ad2af..6ac7f22 100644
--- a/xinquan-modules/xinquan-order/src/main/java/com/xinquan/order/controller/client/ClientOrderController.java
+++ b/xinquan-modules/xinquan-order/src/main/java/com/xinquan/order/controller/client/ClientOrderController.java
@@ -2,13 +2,18 @@
 
 
 import com.xinquan.common.core.domain.R;
+import com.xinquan.order.api.domain.Order;
+import com.xinquan.order.domain.vo.ClientPlaceOrderVO;
 import com.xinquan.order.service.OrderService;
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import lombok.RequiredArgsConstructor;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
+
+import java.math.BigDecimal;
+import java.util.List;
 
 /**
  * <p>
@@ -25,11 +30,59 @@
 public class ClientOrderController {
 
     private OrderService orderService;
+    /**
+     * 根据邀请用户ids 查询对应佣金
+     */
+    @GetMapping("/getCommissionByUserIds/{userIds}")
+    public R<String> getCommissionByUserIds(@PathVariable("userIds") String userIds) {
+        String[] split = userIds.split(",");
+        StringBuilder stringBuilder = new StringBuilder();
+        for (String s : split) {
+            List<Order> list = orderService.lambdaQuery().eq(Order::getAppUserId, s)
+                    .eq(Order::getPaymentStatus, 2).list();
+            BigDecimal commissionAmount = list.stream()
+                    .filter(t -> t.getCommissionAmount()!= null)
+                    .map(Order::getCommissionAmount)
+                    .reduce(BigDecimal.ZERO, BigDecimal::add);
+            stringBuilder.append(commissionAmount).append(",");
+        }
+        StringBuilder stringBuilder1 = stringBuilder.deleteCharAt(stringBuilder.length() - 1);
+        return R.ok(stringBuilder1.toString());
+    }
 
-    @PostMapping("/createOrder")
-    @ApiOperation(value = "创建订单")
-    public R<?> createOrder() {
-        return R.ok();
+    /**
+     * 创建待支付订单
+     *
+     * @param targetId    目标id
+     * @param orderFrom   订单来源 1=冥想音频 2=课程
+     * @param receiverId  被赠送课程APP用户id
+     * @param balanceFlag 是否使用余额抵扣 1=是 2=否
+     * @param payType     支付方式 1=微信 2=支付宝
+     * @return 下单返回数据视图对象
+     * @see com.xinquan.order.domain.vo.ClientPlaceOrderVO
+     */
+    @PostMapping("/placeOrder")
+    @ApiOperation(value = "创建待支付订单", notes = "微信|支付宝")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "targetId", value = "目标id", dataType = "Long", required = true),
+            @ApiImplicitParam(name = "orderFrom", value = "订单来源 1=冥想音频 2=课程", dataType = "Integer", required = true),
+            @ApiImplicitParam(name = "receiverId", value = "被赠送课程APP用户id", dataType = "Long", required = false),
+            @ApiImplicitParam(name = "balanceFlag", value = "是否使用余额抵扣 1=是 2=否", dataType = "Integer", required = true),
+            @ApiImplicitParam(name = "payType", value = "支付方式 1=微信 2=支付宝", dataType = "Integer", required = true)
+    })
+    public R<ClientPlaceOrderVO> placeOrder(
+            @RequestParam(value = "targetId") Long targetId,
+            @RequestParam(value = "orderFrom") Integer orderFrom,
+            @RequestParam(value = "receiverId", required = false) Long receiverId,
+            @RequestParam(value = "balanceFlag") Integer balanceFlag,
+            @RequestParam(value = "payType") Integer payType) {
+        try {
+            return R.ok(
+                    orderService.placeOrder(targetId, orderFrom, receiverId,
+                            balanceFlag, payType));
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
     }
 }
 

--
Gitblit v1.7.1