Prechádzať zdrojové kódy

Merge branch 'dev_jzg_lipf_v20260901'

lipf 1 týždeň pred
rodič
commit
a6c40d7d63

+ 20 - 0
commons/src/main/java/com/jzg/commons/entity/po/InsFeeOrdersSummary.java

@@ -0,0 +1,20 @@
+package com.jzg.commons.entity.po;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+@Data
+public class InsFeeOrdersSummary implements Serializable {
+    @Serial
+    private static final long serialVersionUID = -2218119163153717246L;
+
+    @Schema(description = "成交的订单总数")
+    private Long orderCount;
+
+    @Schema(description = "订单成交的总保费")
+    private BigDecimal totalPremium;
+}

+ 13 - 0
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/controller/InsFeeOrderController.java

@@ -5,6 +5,7 @@ import com.jzg.commons.core.base.BaseController;
 import com.jzg.commons.core.page.HttpResult;
 import com.jzg.commons.entity.dto.InsFeeOrdersParam;
 import com.jzg.commons.entity.po.InsFeeOrders;
+import com.jzg.commons.entity.po.InsFeeOrdersSummary;
 import com.jzg.commons.entity.report.dto.ReportOperatingProfitDataDto;
 import com.jzg.quotation.summary.entity.dto.RightsAmountUpdateDto;
 import com.jzg.quotation.summary.service.InsFeeOrdersService;
@@ -57,6 +58,18 @@ public class InsFeeOrderController {
         return insFeeOrdersService.getInsFeeOrderListByUserId(insFeeOrdersParam);
     }
 
+    /**
+     * 针对getInsFeeOrderByUserId 方法的优化,当订单很多的时候,提升性能
+     *
+     * @author lipf
+     * @date 2026/9/1 10:25
+     */
+    @PostMapping(value = "/getInsFeeOrderSummaryByUserId")
+    InsFeeOrdersSummary getInsFeeOrderSummaryByUserId(@RequestBody InsFeeOrdersParam param){
+        return insFeeOrdersService.getInsFeeOrderSummaryByUserId(param);
+    }
+
+
     @GetMapping("/getInsFeeOrderListByTopReferrerIdAndUserId")
     @Operation(summary = "订单费用列表通过上下级分销员id查询")
     public List<InsFeeOrders> getInsFeeOrder(String userId,String topReferrerId){

+ 7 - 2
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/mapper/InsFeeOrdersMapper.java

@@ -3,6 +3,7 @@ package com.jzg.quotation.summary.mapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.jzg.commons.entity.dto.InsFeeOrdersParam;
 import com.jzg.commons.entity.po.InsFeeOrders;
+import com.jzg.commons.entity.po.InsFeeOrdersSummary;
 import com.jzg.commons.entity.report.dto.ReportOperatingProfitDataDto;
 import org.apache.ibatis.annotations.MapKey;
 import org.apache.ibatis.annotations.Mapper;
@@ -76,6 +77,10 @@ public interface InsFeeOrdersMapper extends BaseMapper<InsFeeOrders> {
                                                                   @Param("signTimeEnd") LocalDateTime signTimeEnd,
                                                                   @Param("systemCode") String systemCode);
 
-
-
+    /**
+     *
+     * @author lipf
+     * @date 2026/9/1 10:30
+     */
+    InsFeeOrdersSummary getInsFeeOrderSummaryByUserId(@Param("insFeeOrdersParam") InsFeeOrdersParam param);
 }

+ 8 - 0
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/InsFeeOrdersService.java

@@ -5,6 +5,7 @@ import com.jzg.commons.core.page.HttpResult;
 import com.jzg.commons.entity.dto.CostCalculateRespVO;
 import com.jzg.commons.entity.dto.InsFeeOrdersParam;
 import com.jzg.commons.entity.po.InsFeeOrders;
+import com.jzg.commons.entity.po.InsFeeOrdersSummary;
 import com.jzg.commons.entity.report.dto.ReportOperatingProfitDataDto;
 import com.jzg.commons.entity.vo.PtlAgreementCostRatioVo;
 
@@ -69,4 +70,11 @@ public interface InsFeeOrdersService extends IService<InsFeeOrders> {
      * @date 2026/7/25 11:22
      */
     Map<String,ReportOperatingProfitDataDto> queryOperatingProfits(Integer year, String systemCode, String sqlType);
+
+    /**
+     * 查询订单数和这些订单的汇总信息
+     * @author lipf
+     * @date 2026/9/1 10:27
+     */
+    InsFeeOrdersSummary getInsFeeOrderSummaryByUserId(InsFeeOrdersParam param);
 }

+ 20 - 0
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/InsFeeOrdersServiceImpl.java

@@ -13,6 +13,7 @@ import com.jzg.commons.entity.orders.po.InsFeeAudit;
 import com.jzg.commons.entity.orders.po.InsOrders;
 import com.jzg.commons.entity.orders.po.InsOrdersCosts;
 import com.jzg.commons.entity.po.InsFeeOrders;
+import com.jzg.commons.entity.po.InsFeeOrdersSummary;
 import com.jzg.commons.entity.po.PtlAgreement;
 import com.jzg.commons.entity.report.dto.ReportOperatingProfitDataDto;
 import com.jzg.commons.entity.vo.PtlAgreementCostRatioVo;
@@ -469,6 +470,25 @@ public class InsFeeOrdersServiceImpl extends ServiceImpl<InsFeeOrdersMapper, Ins
         return insFeeOrdersMapper.getInsFeeOrdersList(param);
     }
 
+
+    /**
+     * 查询订单数和这些订单的汇总信息
+     *
+     * @param param
+     * @author lipf
+     * @date 2026/9/1 10:27
+     */
+    @Override
+    public InsFeeOrdersSummary getInsFeeOrderSummaryByUserId(InsFeeOrdersParam param) {
+        log.info("查询订单数和这些订单的汇总信息: param=[{}]", JSONUtil.toJsonStr(param));
+        // 在报价哪里, userId 保存的是用户的手机号
+        String userName = baseController.getUserName();
+        param.setUserId(userName);
+        InsFeeOrdersSummary summary = insFeeOrdersMapper.getInsFeeOrderSummaryByUserId(param);
+        log.info("查询订单数和这些订单的汇总信息: param=[{}]. summary=[{}]", JSONUtil.toJsonStr(param), JSONUtil.toJsonStr(summary));
+        return summary;
+    }
+
     @Override
     public List<InsFeeOrders> getInsFeeOrderListByUserId(InsFeeOrdersParam param) {
         log.info("getInsFeeOrderListByUserId的查询条件:param=[{}]", JSONUtil.toJsonStr(param));

+ 8 - 2
tenant/insurance/quotation-summary/src/main/resources/mapper/InsFeeOrdersMapper.xml

@@ -198,6 +198,12 @@
         group by
         ym
     </select>
-
-
+    <!-- 查询订单的汇总信息 lipf 2026年9月1日10:34:17  -->
+    <select id="getInsFeeOrderSummaryByUserId" resultType="com.jzg.commons.entity.po.InsFeeOrdersSummary">
+        select
+            sum(ifo.total_premium) as totalPremium,
+            count(*) as orderCount
+        from ins_fee_orders ifo
+        where ifo.user_id = #{insFeeOrdersParam.userId} and ifo.is_delete = 0
+    </select>
 </mapper>

+ 10 - 0
tenant/organization/src/main/java/com/jzg/organization/client/summary/QuoteClient.java

@@ -3,6 +3,7 @@ package com.jzg.organization.client.summary;
 import com.jzg.commons.core.page.HttpResult;
 import com.jzg.commons.entity.dto.InsFeeOrdersParam;
 import com.jzg.commons.entity.po.InsFeeOrders;
+import com.jzg.commons.entity.po.InsFeeOrdersSummary;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -23,6 +24,15 @@ public interface QuoteClient {
     @PostMapping(value = "/insFeeOrder/getInsFeeOrderByUserId")
     List<InsFeeOrders> getInsFeeOrderByUserId(@RequestBody InsFeeOrdersParam param);
 
+    /**
+     * 针对getInsFeeOrderByUserId 方法的优化,当订单很多的时候,提升性能
+     *
+     * @author lipf
+     * @date 2026/9/1 10:25
+     */
+    @PostMapping(value = "/insFeeOrder/getInsFeeOrderSummaryByUserId")
+    InsFeeOrdersSummary getInsFeeOrderSummaryByUserId(@RequestBody InsFeeOrdersParam param);
+
     @GetMapping(value = "/insFeeOrder/getInsFeeOrderListByTopReferrerIdAndUserId")
     List<InsFeeOrders> getInsFeeOrderListByTopReferrerIdAndUserId(@RequestParam("userId") String userId, @RequestParam("topReferrerId") String topReferrerId);
 

+ 10 - 5
tenant/organization/src/main/java/com/jzg/organization/service/impl/SysUserAccountServiceImpl.java

@@ -172,13 +172,18 @@ public class SysUserAccountServiceImpl extends ServiceImpl<SysUserAccountMapper,
         sysUserWalletVo.setIntegral(sysUserAccount.getIntegral());
         InsFeeOrdersParam param = new InsFeeOrdersParam();
         param.setUserId(sysUserJzgInfo.getUserId());
-        List<InsFeeOrders> insFeeOrdersList = quoteClient.getInsFeeOrderByUserId(param);
+        //List<InsFeeOrders> insFeeOrdersList = quoteClient.getInsFeeOrderByUserId(param);
+        InsFeeOrdersSummary feeSummary = quoteClient.getInsFeeOrderSummaryByUserId(param);
         BigDecimal premium = BigDecimal.ZERO;
         BigDecimal orderAmount = BigDecimal.ZERO;
-        for (InsFeeOrders insFeeOrders : insFeeOrdersList) {
-            premium = premium.add(insFeeOrders.getTotalPremium());
-            orderAmount = orderAmount.add(insFeeOrders.getTotalReceivablePremium());
+        if(feeSummary != null){
+            premium = BigDecimalUtil.add(BigDecimal.ZERO,feeSummary.getTotalPremium()) ;
+//            orderAmount = feeSummary.getOrderCount();
         }
+//        for (InsFeeOrders insFeeOrders : insFeeOrdersList) {
+//            premium = premium.add(insFeeOrders.getTotalPremium());
+//            orderAmount = orderAmount.add(insFeeOrders.getTotalReceivablePremium());
+//        }
         InsFeeOrdersParam distributionParam = new InsFeeOrdersParam();
         distributionParam.setDistributorId(sysUserJzgInfo.getId());
 //        List<InsFeeOrders> distribuitonList = quoteClient.getInsFeeOrdersList(distributionParam);
@@ -198,7 +203,7 @@ public class SysUserAccountServiceImpl extends ServiceImpl<SysUserAccountMapper,
         sysUserWalletVo.setTotalIncome(sysUserAccount.getSumAmount());
         //sysUserWalletVo.setTotalIncome(orderAmount.add(distributionPremium));
         sysUserWalletVo.setSignPremium(premium);
-        sysUserWalletVo.setOrderCount(String.valueOf(insFeeOrdersList.size()));
+        sysUserWalletVo.setOrderCount(String.valueOf(feeSummary.getOrderCount()));
         List<SysUserJzgInfo> sysUserJzgInfoList = sysUserJzgInfoService.list(new LambdaQueryWrapper<SysUserJzgInfo>().eq(SysUserJzgInfo::getReferrerId, sysUserJzgInfo.getId()));
         sysUserWalletVo.setTotalInviteCount(String.valueOf(sysUserJzgInfoList.size()));
         // 获取累计收入