Ver código fonte

优化团队sql,修改校验bug

785834757 2 anos atrás
pai
commit
d6272b2e81

+ 20 - 18
src/main/java/com/ydtech/modules/esm/dao/EsmUserReferrerMapper.java

@@ -170,26 +170,28 @@ public interface EsmUserReferrerMapper extends BaseMapper<EsmUserReferrer> {
     @Select("select id,referrer_id,referrer_name,`level`,affiliation from esm_user_referrer t where t.affiliation=#{affiliation}")
     List<EsmUserReferrer> queryList(@Param("affiliation") String affiliation);
 
-    @Select({"<script>","select a.userid,a.username,sum(a.ordernum) ordernum,sum(a.policynum) policynum,sum(a.sumpremium) sumpremium from  v_user_order2 a " +
-            "where DATE_FORMAT(orderdate, '%Y-%m-%d') " +
-            "between DATE_FORMAT(#{startDate}, '%Y-%m-%d') and DATE_FORMAT(#{endDate}, '%Y-%m-%d')" +
-            "and userid in " +
-            "<foreach item='item' index='index' collection='userList'  open='(' separator=',' close=')'> " +
-            " #{item}" +
-            "</foreach > " +
-            "group by a.userid,a.username"
-            , "</script>"})
+//    @Select({"<script>","select a.userid,a.username,sum(a.ordernum) ordernum,sum(a.policynum) policynum,sum(a.sumpremium) sumpremium from  v_user_order2 a " +
+//            "where DATE_FORMAT(orderdate, '%Y-%m-%d') " +
+//            "between DATE_FORMAT(#{startDate}, '%Y-%m-%d') and DATE_FORMAT(#{endDate}, '%Y-%m-%d')" +
+//            "and userid in " +
+//            "<foreach item='item' index='index' collection='userList'  open='(' separator=',' close=')'> " +
+//            " #{item}" +
+//            "</foreach > " +
+//            "group by a.userid,a.username"
+//            , "</script>"})
     List<EsmUserPolicyVO> queryOrderCount(List<String> userList, String startDate, String endDate);
 
-    @Select({"<script>","select sum(sumpremium) sumpremium " +
-            "from  v_user_order2 a " +
-            "where DATE_FORMAT(orderdate, '%Y-%m-%d') " +
-            "between DATE_FORMAT(#{startDate}, '%Y-%m-%d') and DATE_FORMAT(#{endDate}, '%Y-%m-%d')" +
-            "and userid in " +
-            "<foreach item='item' index='index' collection='userList'  open='(' separator=',' close=')'> " +
-            " #{item}" +
-            "</foreach > "
-            , "</script>"})
+//    @Select({"<script>","select sum(sumpremium) sumpremium " +
+//            "from  v_user_order2 a " +
+//            "where DATE_FORMAT(orderdate, '%Y-%m-%d') " +
+//            "between DATE_FORMAT(#{startDate}, '%Y-%m-%d') and DATE_FORMAT(#{endDate}, '%Y-%m-%d')" +
+//            "and userid in " +
+//            "<foreach item='item' index='index' collection='userList'  open='(' separator=',' close=')'> " +
+//            " #{item}" +
+//            "</foreach > "
+//            , "</script>"})
+//    EsmTeamPolicyVO queryOrderCountHz(List<String> userList, String startDate, String endDate);
+
     EsmTeamPolicyVO queryOrderCountHz(List<String> userList, String startDate, String endDate);
 
     Page<SysUser> getUserPage(Page page, SysUserDto dto);

+ 27 - 10
src/main/java/com/ydtech/modules/fee/service/impl/FeeRuleSchemeServiceNewImpl.java

@@ -918,11 +918,20 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
         //将值进行分割
         String[] split = ptlAgreementProductCostsAttrLink.getMin().split(",");
         AtomicBoolean returnBool = new AtomicBoolean(false);
-        Arrays.stream(split).forEach(x -> {
-            if (value.contains(x)) {
-                returnBool.set(true);
-            }
-        });
+        if(ptlAgreementProductCostsAttrLink.getAttrCode().equals("NatureOfUse")){
+            Arrays.stream(split).forEach(x -> {
+                if (value.equals(x)) {
+                    returnBool.set(true);
+                }
+            });
+        }else{
+            Arrays.stream(split).forEach(x -> {
+                if (value.contains(x)) {
+                    returnBool.set(true);
+                }
+            });
+        }
+
         return returnBool.get();
     }
 
@@ -930,11 +939,19 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
         //将值进行分割
         String[] split = ptlAgreementUndwrtRulesAttrLink.getMin().split(",");
         AtomicBoolean returnBool = new AtomicBoolean(true);
-        Arrays.stream(split).forEach(x -> {
-            if (!x.equals("") && value.contains(x)) {
-                returnBool.set(false);
-            }
-        });
+        if(ptlAgreementUndwrtRulesAttrLink.getAttrCode().equals("NatureOfUse")) {
+            Arrays.stream(split).forEach(x -> {
+                if (!x.equals("") && value.equals(x)) {
+                    returnBool.set(false);
+                }
+            });
+        }else{
+            Arrays.stream(split).forEach(x -> {
+                if (!x.equals("") && value.contains(x)) {
+                    returnBool.set(false);
+                }
+            });
+        }
         return returnBool.get();
     }
 

+ 40 - 0
src/main/resources/mapper/modules/esm/EsmUserReferrerMapper.xml

@@ -9,6 +9,46 @@
 
     <resultMap id="QueryChannelMap" type="com.ydtech.modules.esm.model.QueryChannel">
     </resultMap>
+
+    <select id="queryOrderCount" resultType="com.ydtech.modules.esm.model.vo.EsmUserPolicyVO">
+        SELECT
+            su.id,
+            su.NAME as username,
+            count( iac.id ) AS policynum,
+            sum( iac.sumpremium ) AS sumpremium
+        FROM
+            ins_orders io
+                LEFT JOIN ins_area_company iac ON io.orderno = iac.orderno
+                LEFT JOIN sys_user su ON io.userid = su.id
+        WHERE
+            iac.orderstatus = 3
+          AND io.orderstatus = 3
+          AND io.createtime BETWEEN #{startDate} AND #{endDate}
+          AND io.userid in
+              <foreach item="item" index="index" collection="userList" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+        GROUP BY
+            io.userid
+    </select>
+
+    <select id="queryOrderCountHz" resultType="com.ydtech.modules.esm.model.vo.EsmTeamPolicyVO">
+        SELECT
+            sum(sumpremium) sumpremium
+        FROM
+            ins_orders io
+                LEFT JOIN ins_area_company iac ON io.orderno = iac.orderno
+                LEFT JOIN sys_user su ON io.userid = su.id
+        WHERE
+            iac.orderstatus = 3
+          AND io.orderstatus = 3
+          AND io.createtime BETWEEN #{startDate} AND #{endDate}
+          AND io.userid in
+              <foreach item="item" index="index" collection="userList" open="(" separator="," close=")">
+                  #{item}
+              </foreach>
+    </select>
+
     <select id="getUserPage" resultMap="SysUserMap">
         SELECT
             su.*