无关风月
2024-09-14 3f481005be717250a2ea87ff9367aa84d6a3eb13
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);
        }
    }
}