Ver Fonte

1.人员毛利润添加查询条件

wuhp há 1 ano atrás
pai
commit
017de837b6

+ 2 - 1
src/main/java/com/ydtech/modules/admin/service/impl/UserReportServiceImpl.java

@@ -269,8 +269,9 @@ public class UserReportServiceImpl implements UserReportService {
                         }
                     }
                 }
+                qxFrontlineAgentVo.setUserId(dto.getUserId());
                 //预期净利润
-                BigDecimal ExpectNetProfit = insAreaCompanyService.getExpectNetProfit(dto.getUserId());
+                BigDecimal ExpectNetProfit = insAreaCompanyService.getExpectNetProfit(qxFrontlineAgentVo);
                 dto.setEstimatedProfit(ExpectNetProfit);
 
             }

+ 2 - 2
src/main/java/com/ydtech/modules/order/dao/InsAreaCompanyMapper.java

@@ -382,7 +382,7 @@ public interface InsAreaCompanyMapper extends BaseMapper<InsAreaCompany> {
      * @param userId
      * @return  入口金额 出口金额  分销金额
      */
-    InsAreaCompany getExpectNetProfit(String userId);
+    InsAreaCompany getExpectNetProfit(@Param("vo") QxFrontlineAgentVo qxFrontlineAgentVo);
 
     /**
      *  @version
@@ -398,7 +398,7 @@ public interface InsAreaCompanyMapper extends BaseMapper<InsAreaCompany> {
      * @param userId
      * @return  通过 用户id 获取1-3 级分销金额
      */
-    HashMap<String, BigDecimal> getDistributionAllAmount(String userId);
+    HashMap<String, BigDecimal> getDistributionAllAmount(@Param("vo") QxFrontlineAgentVo qxFrontlineAgentVo);
 
 }
 

+ 1 - 1
src/main/java/com/ydtech/modules/order/service/InsAreaCompanyService.java

@@ -280,5 +280,5 @@ public interface InsAreaCompanyService extends IService<InsAreaCompany> {
      * @param userId
      * @return
      */
-    BigDecimal getExpectNetProfit(String userId);
+    BigDecimal getExpectNetProfit(QxFrontlineAgentVo qxFrontlineAgentVo);
 }

+ 3 - 3
src/main/java/com/ydtech/modules/order/service/impl/InsAreaCompanyServiceImpl.java

@@ -1118,14 +1118,14 @@ public class InsAreaCompanyServiceImpl extends ServiceImpl<InsAreaCompanyMapper,
     }
 
     @Override
-    public BigDecimal getExpectNetProfit(String userId) {
+    public BigDecimal getExpectNetProfit(QxFrontlineAgentVo qxFrontlineAgentVo) {
 
-        InsAreaCompany insAreaCompany = baseMapper.getExpectNetProfit(userId);
+        InsAreaCompany insAreaCompany = baseMapper.getExpectNetProfit(qxFrontlineAgentVo);
         if(!ObjectUtils.isEmpty(insAreaCompany)){
             BigDecimal entranceAllFee = insAreaCompany.getEntranceAllFee();// 入口金额
             BigDecimal exportAllFee = insAreaCompany.getExportAllFee(); // 出口金额
             // 计算三级分销金额
-            HashMap<String,BigDecimal> distribution  =baseMapper.getDistributionAllAmount(userId);
+            HashMap<String,BigDecimal> distribution  =baseMapper.getDistributionAllAmount(qxFrontlineAgentVo);
             if(!distribution.isEmpty()){
                 BigDecimal bigDecimal = distribution.get("distributionAmount");
                 // 利润= 入口- 出口 - 分销

+ 46 - 8
src/main/resources/mapper/modules/order/InsAreaCompanyMapper.xml

@@ -3292,10 +3292,20 @@
         left join ins_orders io on io.orderno = iac.orderno
         LEFT JOIN ins_fee_order_new ifon ON iac.id = ifon.ins_order_no
         <where>
-            <if test="userId !=null  and  userId  !=''">
-                iac.leader_id  =#{userId}
+            <if test="vo.userId !=null  and  vo.userId  !=''">
+                iac.leader_id  =#{vo.userId}
+            </if>
+            <if test="vo.ids  != null  and  vo.ids.size()>0 ">
+                AND io.userid IN
+                <foreach item="item"  collection="vo.ids" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+            <if test="vo.createtimeStart  != null  and  vo.createtimeStart!=''  and vo.createtimeEnd  != null  and  vo.createtimeEnd!=''">
+                AND iac.signing_time BETWEEN #{vo.createtimeStart} AND #{vo.createtimeEnd}
             </if>
         </where>
+
     </select>
 
     <select id="getDistributionAllAmount" resultType="java.util.HashMap">
@@ -3305,8 +3315,17 @@
         left join ins_orders io on io.orderno = iac.orderno
         LEFT JOIN ins_fee_order_new ifon ON iac.id = ifon.ins_order_no
         <where>
-            <if test="userId !=null  and  userId  !=''">
-                ifon.first_level_user_id  =#{userId}
+            <if test="vo.userId !=null  and  vo.userId  !=''">
+                ifon.first_level_user_id  =#{vo.userId}
+            </if>
+            <if test="vo.ids  != null  and  vo.ids.size()>0 ">
+                AND io.userid IN
+                <foreach item="item"  collection="vo.ids" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+            <if test="vo.createtimeStart  != null  and  vo.createtimeStart!=''  and vo.createtimeEnd  != null  and  vo.createtimeEnd!=''">
+                AND iac.signing_time BETWEEN #{vo.createtimeStart} AND #{vo.createtimeEnd}
             </if>
         </where>
         group  by   ifon.first_level_user_id
@@ -3318,10 +3337,20 @@
         left join ins_orders io on io.orderno = iac.orderno
         LEFT JOIN ins_fee_order_new ifon ON iac.id = ifon.ins_order_no
         <where>
-            <if test="userId !=null  and  userId  !=''">
-                ifon.two_level_user_id  =#{userId}
+            <if test="vo.userId !=null  and  vo.userId  !=''">
+                ifon.two_level_user_id  =#{vo.userId}
+            </if>
+            <if test="vo.ids  != null  and  vo.ids.size()>0 ">
+                AND io.userid IN
+                <foreach item="item"  collection="vo.ids" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+            <if test="vo.createtimeStart  != null  and  vo.createtimeStart!=''  and vo.createtimeEnd  != null  and  vo.createtimeEnd!=''">
+                AND iac.signing_time BETWEEN #{vo.createtimeStart} AND #{vo.createtimeEnd}
             </if>
         </where>
+
         group  by   ifon.two_level_user_id
         )  b  on b.twoLevelUserId  =ifon.first_level_user_id
         left  join  (
@@ -3332,8 +3361,17 @@
         left join ins_orders io on io.orderno = iac.orderno
         LEFT JOIN ins_fee_order_new ifon ON iac.id = ifon.ins_order_no
         <where>
-            <if test="userId !=null  and  userId  !=''">
-                ifon.three_level_user_id  =#{userId}
+            <if test="vo.userId !=null  and  vo.userId  !=''">
+                ifon.three_level_user_id  =#{vo.userId}
+            </if>
+            <if test="vo.ids  != null  and  vo.ids.size()>0 ">
+                AND io.userid IN
+                <foreach item="item"  collection="vo.ids" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+            <if test="vo.createtimeStart  != null  and  vo.createtimeStart!=''  and vo.createtimeEnd  != null  and  vo.createtimeEnd!=''">
+                AND iac.signing_time BETWEEN #{vo.createtimeStart} AND #{vo.createtimeEnd}
             </if>
         </where>
         group  by   ifon.three_level_user_id