소스 검색

客户权益bug修复

dongxin 1 년 전
부모
커밋
0fcce76720

+ 19 - 12
src/main/java/com/ydtech/modules/equity/components/EquityRequestApiComponents.java

@@ -5,6 +5,7 @@ import com.alibaba.fastjson.serializer.SerializerFeature;
 import com.ydtech.exception.SystemException;
 import com.ydtech.modules.equity.model.request.*;
 import com.ydtech.modules.equity.model.response.BaseResponse;
+import com.ydtech.modules.equity.model.response.LocalEquityPackagePage;
 import com.ydtech.modules.equity.model.response.PageResultResponse;
 import com.ydtech.modules.equity.model.response.PointRatioDto;
 import com.ydtech.modules.equity.utils.SMCheckDataUtils;
@@ -19,7 +20,9 @@ import org.springframework.stereotype.Component;
 import org.springframework.web.client.RestTemplate;
 
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 
 /**
  * 权益包接口
@@ -76,20 +79,14 @@ public class EquityRequestApiComponents {
      */
     public PageResultResponse equityPage(ThreeRightsInfoPageVo threeRightsInfoPageVo) {
         PageResultResponse response = request(properties.getUrl(), "getPageRightInfoList",threeRightsInfoPageVo ,PageResultResponse.class);
-        PageResultResponse res = JSON.parseObject(response.getResult()).toJavaObject(PageResultResponse.class);
-        return res;
+        if(Objects.nonNull(response.getResult())){
+            PageResultResponse res = JSON.parseObject(response.getResult()).toJavaObject(PageResultResponse.class);
+            return res;
+        }else{
+            return response;
+        }
     }
 
-//    /**
-//     * 权益包列表
-//     * @param threeUserOrderListVo
-//     * @return
-//     */
-//    public PageResultResponse equityList(ThreeUserOrderListVo threeUserOrderListVo) {
-//        return null;
-//    }
-//
-
     /**
      * 权益包下单
      * @param threeUserOrderVo
@@ -122,4 +119,14 @@ public class EquityRequestApiComponents {
         PointRatioDto res = JSON.parseObject(response.getResult()).toJavaObject(PointRatioDto.class);
         return res;
     }
+
+    public List<LocalEquityPackagePage> equityList(ThreeUserOrderListVo threeUserOrderListVo) {
+        PageResultResponse response = request(properties.getUrl(), "getRightInfoList",threeUserOrderListVo ,PageResultResponse.class);
+        if(Objects.nonNull(response.getResult())){
+            List<LocalEquityPackagePage> packagePageList = JSON.parseArray(response.getResult()).toJavaList(LocalEquityPackagePage.class);
+            return packagePageList;
+        }else{
+            return null;
+        }
+    }
 }

+ 10 - 0
src/main/java/com/ydtech/modules/equity/controller/EquityController.java

@@ -28,6 +28,16 @@ public class EquityController  extends BaseController {
 
     private final EquityService equityService;
 
+    /**
+     * 权益包分页列表
+     * @param pageQueryVo
+     * @return
+     */
+    @PostMapping("/equityList")
+    public HttpResult equityList(@Validated @RequestBody EquityPageQueryVo pageQueryVo) {
+        return HttpResult.ok(equityService.equityList(pageQueryVo));
+    }
+
     /**
      * 权益包分页列表
      * @param pageQueryVo

+ 10 - 2
src/main/java/com/ydtech/modules/equity/model/request/ThreeUserOrderListVo.java

@@ -6,6 +6,8 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 
+import java.math.BigDecimal;
+
 
 /**
  *  @version
@@ -21,8 +23,14 @@ public class ThreeUserOrderListVo extends BaseRequest {
     @JsonProperty("threeUserId")
     private String threeUserId;
 
+    // 新增字段
+    @ApiModelProperty(value = "返佣金额")
+    @JsonProperty("orderMoney")
+    private BigDecimal orderMoney;
+
 
-    public ThreeUserOrderListVo(String threeUserId){
-        this.threeUserId = threeUserId;
+    public ThreeUserOrderListVo(String appKey,BigDecimal orderMoney){
+        this.threeUserId = appKey;
+        this.orderMoney = orderMoney;
     }
 }

+ 2 - 0
src/main/java/com/ydtech/modules/equity/model/vo/EquityPageQueryVo.java

@@ -29,6 +29,8 @@ public class EquityPageQueryVo extends BasePageVO {
 
     private BigDecimal amount;
 
+    private BigDecimal maxPackagePrice;
+
     private LocalEquityPackagePage equityInfoVo;
 
     private InsAreaCompanyEquity equity;

+ 6 - 1
src/main/java/com/ydtech/modules/equity/service/EquityService.java

@@ -54,5 +54,10 @@ public interface EquityService {
      */
     void saveEquityType(String companyId, Integer type);
 
-
+    /**
+     * 获取权益金额
+     * @param pageQueryVo
+     * @return
+     */
+    EquityPageQueryVo equityList(EquityPageQueryVo pageQueryVo);
 }

+ 35 - 8
src/main/java/com/ydtech/modules/equity/service/impl/EquityServiceImpl.java

@@ -9,10 +9,7 @@ import com.ydtech.modules.admin.service.SysUserService;
 import com.ydtech.modules.equity.components.EquityApiConfigurationProperties;
 import com.ydtech.modules.equity.components.EquityRequestApiComponents;
 import com.ydtech.modules.equity.model.InsAreaCompanyEquity;
-import com.ydtech.modules.equity.model.request.ThreeOrderVo;
-import com.ydtech.modules.equity.model.request.ThreePointVo;
-import com.ydtech.modules.equity.model.request.ThreeRightsInfoPageVo;
-import com.ydtech.modules.equity.model.request.ThreeUserOrderVo;
+import com.ydtech.modules.equity.model.request.*;
 import com.ydtech.modules.equity.model.response.LocalEquityPackagePage;
 import com.ydtech.modules.equity.model.response.PageResultResponse;
 import com.ydtech.modules.equity.model.response.PointRatioDto;
@@ -37,10 +34,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Objects;
-import java.util.Optional;
+import java.util.*;
 
 @Service
 public class EquityServiceImpl implements EquityService {
@@ -69,6 +63,39 @@ public class EquityServiceImpl implements EquityService {
     @Autowired
     private EquityApiConfigurationProperties properties;
 
+    @Override
+    public EquityPageQueryVo equityList(EquityPageQueryVo pageQueryVo) {
+        // 通过订单号获取优惠信息
+        InsFeeOrderNew insFeeOrderNew = insFeeOrderNewService.getOne(new LambdaQueryWrapper<InsFeeOrderNew>()
+                .eq(InsFeeOrderNew::getInsOrderNo, pageQueryVo.getCompanyId()));
+        // 获取费用信息
+        LambdaQueryWrapper<PtlAgreementProductCostsNew> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(PtlAgreementProductCostsNew::getId, insFeeOrderNew.getCostsId());
+        PtlAgreementProductCostsNew agreementProductCostsNew = agreementProductCostsNewService.getOne(wrapper);
+        if(Objects.isNull(agreementProductCostsNew)){
+            throw new SystemException("费用信息异常!");
+        }
+        if(StringUtils.isBlank(agreementProductCostsNew.getLdProportion())){
+            throw new SystemException("先去设置代理人的留点比例!");
+        }
+
+        FeeOrderNewVo feeOrderNewVo = this.newConvertOrderFeeVoData(insFeeOrderNew,agreementProductCostsNew);
+        // 获取佣金
+        List<FeeOrderNewVo.ExportFee> feeList = feeOrderNewVo.getExportFee();
+        BigDecimal totalAmount = BigDecimal.valueOf(0);
+        for (FeeOrderNewVo.ExportFee fee : feeList) {
+            if(BusinessConstant.FEE_INSURANCE_TYPE_4.equals(fee.getInsuranceType())){
+                totalAmount = fee.getTotalAmount();
+            }
+        }
+        ThreeUserOrderListVo threeUserOrderListVo = new ThreeUserOrderListVo( properties.getAppkey(), totalAmount);
+        List<LocalEquityPackagePage> packagePageList = equityRequestApiComponents.equityList(threeUserOrderListVo);
+        Optional<LocalEquityPackagePage> oldestPackage = packagePageList.stream().max(Comparator.comparingDouble(p -> p.getTotalPackagePrice().doubleValue()));
+        pageQueryVo.setAmount(totalAmount);
+        oldestPackage.ifPresent(packages -> pageQueryVo.setMaxPackagePrice(packages.getTotalPackagePrice()));
+        return pageQueryVo;
+    }
+
     @Override
     public EquityPageQueryVo equityInfo(EquityPageQueryVo pageQueryVo) {