ソースを参照

区域公司/服务中心抽成结算接口

jxl 1 週間 前
コミット
a50c98e487

+ 22 - 0
leromro-core/src/main/java/com/leromro/core/controller/OrdersController.java

@@ -14,6 +14,7 @@ import com.leromro.core.domain.Address;
 import com.leromro.core.domain.MainOrders;
 import com.leromro.core.domain.SecondOrder;
 import com.leromro.core.domain.VolunteerInfo;
+import com.leromro.core.domain.dto.SettlementOrderDTO;
 import com.leromro.core.domain.dto.OrderRequestDTO;
 import com.leromro.core.domain.dto.SettlementOrderListDTO;
 import com.leromro.core.domain.dto.UserOrderReviewDTO;
@@ -27,6 +28,7 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
@@ -217,4 +219,24 @@ public class OrdersController extends BaseController {
         List<SettlementOrderListVO> list = mainOrderService.selectSettlementOrderList(settlementOrderListDTO);
         return getDataTable(list);
     }
+
+    /**
+     * 区域公司订单抽成结算
+     */
+    @ApiOperation("区域公司订单抽成结算")
+    @PostMapping("/area/settlement")
+    public R areaSettlement(@RequestBody @Validated SettlementOrderDTO settlementOrderDTO) {
+        mainOrderService.areaSettlement(settlementOrderDTO);
+        return R.ok();
+    }
+
+    /**
+     * 服务中心订单抽成结算
+     */
+    @ApiOperation("区域公司订单抽成结算")
+    @PostMapping("/serviceCentre/settlement")
+    public R serviceCentreSettlement(@RequestBody @Validated SettlementOrderDTO settlementOrderDTO) {
+        mainOrderService.serviceCentreSettlement(settlementOrderDTO);
+        return R.ok();
+    }
 }

+ 35 - 0
leromro-core/src/main/java/com/leromro/core/domain/dto/SettlementOrderDTO.java

@@ -0,0 +1,35 @@
+package com.leromro.core.domain.dto;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+/**
+ * 订单费用结算DTO
+ */
+@Data
+public class SettlementOrderDTO {
+    // 主订单id
+    @NotEmpty(message = "主订单id不能为空")
+    private List<Long> mainOrderIds;
+    // 付款时间
+    @NotBlank(message = "付款时间不能为空")
+    private String payerTime;
+    // 付款方式 1银行卡
+    @NotNull(message = "付款方式不能为空")
+    private Integer payerMethod;
+    // 付款银行账号
+    @NotBlank(message = "付款银行账号不能为空")
+    private String payerAccount;
+    // 付款银行名称
+    @NotBlank(message = "付款银行名称不能为空")
+    private String payerBankName;
+    // 付款人名称
+    @NotBlank(message = "付款人名称不能为空")
+    private String payerName;
+    // 付款备注
+    private String payerRemark;
+}

+ 13 - 0
leromro-core/src/main/java/com/leromro/core/service/IMainOrderService.java

@@ -3,6 +3,7 @@ package com.leromro.core.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.leromro.common.core.domain.R;
 import com.leromro.core.domain.MainOrders;
+import com.leromro.core.domain.dto.SettlementOrderDTO;
 import com.leromro.core.domain.dto.OrderRequestDTO;
 import com.leromro.core.domain.dto.SettlementOrderListDTO;
 import com.leromro.core.domain.vo.*;
@@ -44,4 +45,16 @@ public interface IMainOrderService extends IService<MainOrders> {
      * @param status
      */
     void updateServiceCentreSettlementStatus(List<Long> mainOrderIds, Integer status);
+
+    /**
+     * 区域公司订单抽成结算
+     * @param settlementOrderDTO
+     */
+    void areaSettlement(SettlementOrderDTO settlementOrderDTO);
+
+    /**
+     * 服务中心订单抽成结算
+     * @param settlementOrderDTO
+     */
+    void serviceCentreSettlement(SettlementOrderDTO settlementOrderDTO);
 }

+ 36 - 0
leromro-core/src/main/java/com/leromro/core/service/impl/MainOrderServiceImpl.java

@@ -9,10 +9,13 @@ import com.github.binarywang.wxpay.bean.request.WxPayUnifiedOrderRequest;
 import com.github.binarywang.wxpay.service.WxPayService;
 import com.leromro.common.core.domain.R;
 import com.leromro.common.core.domain.entity.SysUser;
+import com.leromro.common.enums.AreaSettlementStatusEnum;
+import com.leromro.common.enums.ServiceCentreSettlementStatusEnum;
 import com.leromro.common.exception.ServiceException;
 import com.leromro.common.utils.SecurityUtils;
 import com.leromro.core.domain.*;
 import com.leromro.core.domain.dto.OrderRequestDTO;
+import com.leromro.core.domain.dto.SettlementOrderDTO;
 import com.leromro.core.domain.dto.SettlementOrderListDTO;
 import com.leromro.core.domain.vo.*;
 import com.leromro.core.mapper.*;
@@ -355,4 +358,37 @@ public class MainOrderServiceImpl extends ServiceImpl<MainOrdersMapper, MainOrde
                 .set(MainOrders::getServiceCentreSettlementStatus, status)
                 .eq(MainOrders::getMainOrderId, mainOrderIds));
     }
+
+    @Override
+    public void areaSettlement(SettlementOrderDTO settlementOrderDTO) {
+        // 获取当前用户id
+        Long userId = SecurityUtils.getUserId();
+
+        // 修改订单结算结算信息
+        this.update(new LambdaUpdateWrapper<MainOrders>()
+                .set(MainOrders::getAreaSettlementStatus, AreaSettlementStatusEnum.SETTLED.getCode())
+                .set(MainOrders::getAreaSettlementTime, DateTimeUtil.getNowTime())
+                .set(MainOrders::getAreaSettlementUserId, userId)
+                .set(MainOrders::getAreaPayerMethod, settlementOrderDTO.getPayerMethod())
+                .set(MainOrders::getAreaPayerAccount, settlementOrderDTO.getPayerAccount())
+                .set(MainOrders::getAreaPayerAccountBankName, settlementOrderDTO.getPayerBankName())
+                .in(MainOrders::getMainOrderId, settlementOrderDTO.getMainOrderIds())
+        );
+    }
+    @Override
+    public void serviceCentreSettlement(SettlementOrderDTO settlementOrderDTO) {
+        // 获取当前用户id
+        Long userId = SecurityUtils.getUserId();
+
+        // 修改订单结算结算信息
+        this.update(new LambdaUpdateWrapper<MainOrders>()
+                .set(MainOrders::getServiceCentreSettlementStatus, ServiceCentreSettlementStatusEnum.SETTLED.getCode())
+                .set(MainOrders::getServiceCentreSettlementTime, DateTimeUtil.getNowTime())
+                .set(MainOrders::getServiceCentreSettlementUserId, userId)
+                .set(MainOrders::getServiceCentrePayerMethod, settlementOrderDTO.getPayerMethod())
+                .set(MainOrders::getServiceCentrePayerAccount, settlementOrderDTO.getPayerAccount())
+                .set(MainOrders::getServiceCentrePayerBankName, settlementOrderDTO.getPayerBankName())
+                .in(MainOrders::getMainOrderId, settlementOrderDTO.getMainOrderIds())
+        );
+    }
 }