Procházet zdrojové kódy

合伙人处理同一人报多次报价,费用统计

helixiao před 1 rokem
rodič
revize
9eb35fdbf1

+ 1 - 1
src/main/java/com/ydtech/modules/admin/controller/APPPartnerController.java

@@ -140,7 +140,7 @@ public class APPPartnerController extends BaseController {
             commissionInfoDto.setPageNum(1);
         }
         if (commissionInfoDto.getPageSize() == 0) {
-            commissionInfoDto.setPageSize(20);
+            commissionInfoDto.setPageSize(10);
         }
 
         return HttpResult.ok("success",this.sysPartnerService.getCommissionInfo(commissionInfoDto));

+ 6 - 0
src/main/java/com/ydtech/modules/admin/dao/SysPremiumDetailsMapper.java

@@ -5,14 +5,20 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ydtech.modules.admin.model.SysPremiumDetails;
 import com.ydtech.modules.admin.model.dto.AgencyUserInsAreaDto;
+import com.ydtech.modules.admin.model.dto.CommissionInfoDto;
 import com.ydtech.modules.admin.model.vo.AgencyUserInsAreaVo;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+import java.util.Map;
+
 @Mapper
 public interface SysPremiumDetailsMapper extends BaseMapper<SysPremiumDetails> {
 
     void updateStatus(String id);
 
     IPage<AgencyUserInsAreaVo> queryInsAreaPageById(Page page,@Param("dto") AgencyUserInsAreaDto agencyUserInsAreaDto);
+
+    Map<String, Object> queryInfoPage(@Param("userId") String userId,  @Param("dto") CommissionInfoDto commissionInfoDto);
 }

+ 62 - 19
src/main/java/com/ydtech/modules/admin/service/impl/SysPartnerServiceImpl.java

@@ -713,8 +713,13 @@ public class SysPartnerServiceImpl extends ServiceImpl<SysPartnerMapper, SysPart
                         .eq(SysPremiumDetails::getStatus, 1)
                         .eq(partnerGradeInfo.getIndustrySector() != null, SysPremiumDetails::getIndustrySector, partnerGradeInfo.getIndustrySector()));
                 if (sysPremiumDetails.size() > 0) {
-                    SysPremiumDetails sysPremiumDetails1 = sysPremiumDetails.get(0);
-                    sumPremium = sumPremium.add(sysPremiumDetails1.getSumpremium());
+                    Map<String, List<SysPremiumDetails>> map = sysPremiumDetails.stream().sorted(Comparator.comparing(SysPremiumDetails::getId))
+                            .collect(Collectors.groupingBy(SysPremiumDetails::getCompanyId));
+                    for (String s : map.keySet()) {
+                        List<SysPremiumDetails> sysPremiumDetails1 = map.get(s);
+                        sumPremium = sumPremium.add(sysPremiumDetails1.get(0).getSumpremium());
+                    }
+
                     BigDecimal reduce = sysPremiumDetails.stream().map(SysPremiumDetails::getExtractFee).reduce(BigDecimal.ZERO, BigDecimal::add);
                     extractFee = extractFee.add(reduce);
                 }
@@ -745,8 +750,14 @@ public class SysPartnerServiceImpl extends ServiceImpl<SysPartnerMapper, SysPart
                     .eq(SysPremiumDetails::getStatus, 1)
                     .eq(partnerGradeInfo.getIndustrySector() != null, SysPremiumDetails::getIndustrySector, partnerGradeInfo.getIndustrySector()));
             if (sysPremiumDetails.size() > 0) {
-                SysPremiumDetails sysPremiumDetails1 = sysPremiumDetails.get(0);
-                sumPremium1 = sumPremium1.add(sysPremiumDetails1.getSumpremium());
+                Map<String, List<SysPremiumDetails>> map = sysPremiumDetails.stream().sorted(Comparator.comparing(SysPremiumDetails::getId))
+                        .collect(Collectors.groupingBy(SysPremiumDetails::getCompanyId));
+                for (String s : map.keySet()) {
+                    List<SysPremiumDetails> sysPremiumDetails1 = map.get(s);
+                    sumPremium1 = sumPremium1.add(sysPremiumDetails1.get(0).getSumpremium());
+                }
+//                SysPremiumDetails sysPremiumDetails1 = sysPremiumDetails.get(0);
+//                sumPremium1 = sumPremium1.add(sysPremiumDetails1.getSumpremium());
                 BigDecimal reduce = sysPremiumDetails.stream().map(SysPremiumDetails::getExtractFee).reduce(BigDecimal.ZERO, BigDecimal::add);
                 extractFee1 = extractFee1.add(reduce);
             }
@@ -1379,6 +1390,8 @@ public class SysPartnerServiceImpl extends ServiceImpl<SysPartnerMapper, SysPart
     public BasePageResult<SysPremiumDetailsVo> getCommissionInfo(CommissionInfoDto commissionInfoDto) {
         List<SysPremiumDetailsVo> list = new ArrayList<>();
         String userId = BaseController.getUserId();
+        //int offset = (page - 1) * size;
+        commissionInfoDto.setPageNum( (commissionInfoDto.getPageNum() -1) * commissionInfoDto.getPageSize());
 
         Page<SysPremiumDetails> page = new Page<>(commissionInfoDto.getPageNum(), commissionInfoDto.getPageSize());
 
@@ -1388,8 +1401,15 @@ public class SysPartnerServiceImpl extends ServiceImpl<SysPartnerMapper, SysPart
                 .between(StringUtils.isNotEmpty(commissionInfoDto.getBeginTime()) && StringUtils.isNotEmpty(commissionInfoDto.getEndTime()),
                         SysPremiumDetails::getCreateTime, commissionInfoDto.getBeginTime(), commissionInfoDto.getEndTime())
                 .orderByDesc(SysPremiumDetails::getId).eq(SysPremiumDetails::getStatus,1));
-        if (CollectionUtil.isEmpty(sysPremiumDetails)) return new BasePageResult<>(commissionInfoDto.getPageNum(), page.getSize(), 0L, 0L,
+
+        Map<String, Object> stringObjectMap = sysPremiumDetailsMapper.queryInfoPage(userId, commissionInfoDto);
+
+        if (CollectionUtil.isEmpty(stringObjectMap)) return new BasePageResult<>(commissionInfoDto.getPageNum(), page.getSize(), 0L, 0L,
                 list);
+
+
+
+
         Map<String, List<SysPremiumDetails>> listMap = sysPremiumDetails.stream().sorted(Comparator.comparing(SysPremiumDetails::getId))
                 .collect(Collectors.groupingBy(SysPremiumDetails::getCompanyId));
         for (String key : listMap.keySet()) {
@@ -1441,7 +1461,7 @@ public class SysPartnerServiceImpl extends ServiceImpl<SysPartnerMapper, SysPart
         }
 
         List<SysPremiumDetailsVo> collect = list.stream().limit(page.getSize()).collect(Collectors.toList());
-        long l = list.size() / page.getSize();
+        long l = (list.size()+page.getSize()-1)/page.getSize();
         return new BasePageResult<>(commissionInfoDto.getPageNum(), page.getSize(), list.size(), l,
                 collect);
     }
@@ -1535,8 +1555,14 @@ public class SysPartnerServiceImpl extends ServiceImpl<SysPartnerMapper, SysPart
                     .eq(SysPremiumDetails::getStatus, 1)
                     .eq(teamUserInfosDto.getIndustrySector() != null, SysPremiumDetails::getIndustrySector, teamUserInfosDto.getIndustrySector()));
             if (sysPremiumDetails.size()>0) {
-                SysPremiumDetails sysPremiumDetails1 = sysPremiumDetails.get(0);
-                sumPremium = sumPremium.add(sysPremiumDetails1.getSumpremium());
+                Map<String, List<SysPremiumDetails>> map = sysPremiumDetails.stream().sorted(Comparator.comparing(SysPremiumDetails::getId))
+                        .collect(Collectors.groupingBy(SysPremiumDetails::getCompanyId));
+                for (String s : map.keySet()) {
+                    List<SysPremiumDetails> sysPremiumDetails1 = map.get(s);
+                    sumPremium = sumPremium.add(sysPremiumDetails1.get(0).getSumpremium());
+                }
+//                SysPremiumDetails sysPremiumDetails1 = sysPremiumDetails.get(0);
+//                sumPremium = sumPremium.add(sysPremiumDetails1.getSumpremium());
                 BigDecimal reduce = sysPremiumDetails.stream().map(SysPremiumDetails::getExtractFee).reduce(BigDecimal.ZERO, BigDecimal::add);
                 extractFee = extractFee.add(reduce);
             }
@@ -1557,7 +1583,8 @@ public class SysPartnerServiceImpl extends ServiceImpl<SysPartnerMapper, SysPart
                 SysUser sysUser1 = sysUserMapper.selectById(esmUserReferrer.getReferrerId());
                 teamUserInfosVo.setLeaderName(sysUser1.getName());
             }
-
+            BigDecimal sumPremium1 =BigDecimal.ZERO;
+            BigDecimal extractFee1 =BigDecimal.ZERO;
             //费用
             List<SysPremiumDetails> sysPremiumDetail = sysPremiumDetailsMapper.selectList(new LambdaQueryWrapper<SysPremiumDetails>()
                     .eq(SysPremiumDetails::getIssuerId, sysUser.getId())
@@ -1567,13 +1594,17 @@ public class SysPartnerServiceImpl extends ServiceImpl<SysPartnerMapper, SysPart
                     .eq(SysPremiumDetails::getStatus, 1)
                     .eq(teamUserInfosDto.getIndustrySector() != null, SysPremiumDetails::getIndustrySector, teamUserInfosDto.getIndustrySector()));
             if (sysPremiumDetail.size()>0) {
-                teamUserInfosVo.setSumPremium(sysPremiumDetail.get(0).getSumpremium());
-                BigDecimal extractFee1 = sysPremiumDetail.stream().map(SysPremiumDetails::getExtractFee).reduce(BigDecimal.ZERO, BigDecimal::add);
-                teamUserInfosVo.setExtractFee(extractFee1);
-            }else {
-                teamUserInfosVo.setSumPremium(BigDecimal.ZERO);
-                teamUserInfosVo.setExtractFee(BigDecimal.ZERO);
+                Map<String, List<SysPremiumDetails>> map = sysPremiumDetail.stream().sorted(Comparator.comparing(SysPremiumDetails::getId))
+                        .collect(Collectors.groupingBy(SysPremiumDetails::getCompanyId));
+                for (String s : map.keySet()) {
+                    List<SysPremiumDetails> sysPremiumDetails1 = map.get(s);
+                    sumPremium1 = sumPremium1.add(sysPremiumDetails1.get(0).getSumpremium());
+                }
+                extractFee1 =extractFee1.add(sysPremiumDetail.stream().map(SysPremiumDetails::getExtractFee).reduce(BigDecimal.ZERO, BigDecimal::add)) ;
             }
+
+            teamUserInfosVo.setSumPremium(sumPremium1);
+            teamUserInfosVo.setExtractFee(extractFee1);
             userInfosVoList.add(teamUserInfosVo);
         }
         teamUserInfosFreeVo.setTeamManNum(userIds.size());
@@ -1758,8 +1789,14 @@ public class SysPartnerServiceImpl extends ServiceImpl<SysPartnerMapper, SysPart
                                     .eq(SysPremiumDetails::getStatus, 1)
                                     .eq(partnerGradeInfo.getIndustrySector() != null, SysPremiumDetails::getIndustrySector, partnerGradeInfo.getIndustrySector()));
                             if (sysPremiumDetail.size() >0) {
-                                SysPremiumDetails sysPremiumDetails = sysPremiumDetail.get(0);
-                                sumPremium1= sumPremium1.add(sysPremiumDetail.stream().map(SysPremiumDetails::getSumpremium).reduce(BigDecimal.ZERO, BigDecimal::add));
+                                Map<String, List<SysPremiumDetails>> map = sysPremiumDetail.stream().sorted(Comparator.comparing(SysPremiumDetails::getId))
+                                        .collect(Collectors.groupingBy(SysPremiumDetails::getCompanyId));
+                                for (String s : map.keySet()) {
+                                    List<SysPremiumDetails> sysPremiumDetails1 = map.get(s);
+                                    sumPremium1= sumPremium1.add(sysPremiumDetails1.get(0).getSumpremium());
+                                }
+//                                SysPremiumDetails sysPremiumDetails = sysPremiumDetail.get(0);
+//                                sumPremium1= sumPremium1.add(sysPremiumDetail.stream().map(SysPremiumDetails::getSumpremium).reduce(BigDecimal.ZERO, BigDecimal::add));
 
                                 extractFee1 = extractFee1.add(sysPremiumDetail.stream().map(SysPremiumDetails::getExtractFee).reduce(BigDecimal.ZERO, BigDecimal::add));
                             }
@@ -1789,8 +1826,14 @@ public class SysPartnerServiceImpl extends ServiceImpl<SysPartnerMapper, SysPart
                         .eq(partnerGradeInfo.getIndustrySector() != null, SysPremiumDetails::getIndustrySector, partnerGradeInfo.getIndustrySector()));
 
                 if (sysPremiumDetails.size() >0) {
-                    SysPremiumDetails sysPremiumDetails1 = sysPremiumDetails.get(0);
-                    sumPremium= sumPremium.add(sysPremiumDetails.stream().map(SysPremiumDetails::getSumpremium).reduce(BigDecimal.ZERO, BigDecimal::add));
+                    Map<String, List<SysPremiumDetails>> map = sysPremiumDetails.stream().sorted(Comparator.comparing(SysPremiumDetails::getId))
+                            .collect(Collectors.groupingBy(SysPremiumDetails::getCompanyId));
+                    for (String s : map.keySet()) {
+                        List<SysPremiumDetails> sysPremiumDetails1 = map.get(s);
+                        sumPremium= sumPremium.add(sysPremiumDetails1.get(0).getSumpremium());
+                    }
+//                    SysPremiumDetails sysPremiumDetails1 = sysPremiumDetails.get(0);
+//                    sumPremium= sumPremium.add(sysPremiumDetails.stream().map(SysPremiumDetails::getSumpremium).reduce(BigDecimal.ZERO, BigDecimal::add));
 
                     extractFee = extractFee.add(sysPremiumDetails.stream().map(SysPremiumDetails::getExtractFee).reduce(BigDecimal.ZERO, BigDecimal::add));
                 }

+ 47 - 0
src/main/resources/mapper/modules/admin/SysPremiumDetailsMapper.xml

@@ -46,6 +46,53 @@
         ORDER BY apd.create_time desc
 
     </select>
+    <select id="queryInfoPage" resultType="java.util.Map">
+        SELECT
+            company_id,
+            GROUP_CONCAT(
+                    CONCAT(
+                            '{"id":', id,
+                            ',"orderno":"', orderno,
+                            ',"company_id":"', company_id,
+                            '","user_id":"', user_id,
+                            '","user_name":"', user_name,
+                            '","issuer_id":"', issuer_id,
+                            '","issuer_name":"', issuer_name,
+                            '","jqpremium":', jqpremium,
+                            ',"sypremium":', sypremium,
+                            ',"jypremium":', jypremium,
+                            ',"sumpremium":', sumpremium,
+                            ',"proportional":"', proportional,
+                            '","extract_fee":', extract_fee,
+                            ',"status":', status,
+                            ',"create_time":"', create_time,
+                            '","type":', type,
+                            ',"industry_sector":', industry_sector,
+                            ',"licenseno":"', licenseno,
+                            '","source":', source,
+                            '}'
+                        )
+                ) AS SysPremiumDetails
+        FROM
+            sys_premium_details
+        <where>
+            status = 1
+            <if test="userId !=null and userId !=''">
+                and user_id = #{userId}
+            </if>
+            <if test="dto.industrySector != 0 ">
+                and industry_sector = #{dto.industrySector}
+            </if>
+            <if test="dto.beginTime != null and dto.beginTime != '' and dto.endTime != null and dto.endTime != ''">
+                and (DATE_FORMAT(create_time, '%Y-%m-%d %H:%i:%s') between DATE_FORMAT( #{dto.beginTime}, '%Y-%m-%d %H:%i:%s') and DATE_FORMAT( #{dto.endTime}, '%Y-%m-%d %H:%i:%s'))
+            </if>
+        </where>
+        GROUP BY
+            company_id
+        ORDER BY
+            company_id ASC
+        LIMIT #{dto.pageSize} OFFSET #{dto.pageNum};
+    </select>
 
 
 </mapper>