785834757 1 месяц назад
Родитель
Сommit
d94dd00823

+ 1 - 1
commons/src/main/java/com/jzg/commons/config/DataPermissionInterceptor.java

@@ -139,7 +139,7 @@ public class DataPermissionInterceptor implements MultiDataPermissionHandler {
             List<String> deptIds = new ArrayList<>();
             if (dataScope.getString("dataMark").equals("2")) {
                 additionalSql.append(tableName).append(".").append(fieldName).append(" in (");
-                additionalSql.append("select id from sys_dept where route like '").append(currentUserDeptId).append("%'");
+                additionalSql.append("select id from sys_dept where route like '%").append(currentUserDeptId).append("%'");
                 additionalSql.append(")");
             } else {
                 deptIds = dataScope.getObject("deptIds", List.class);

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

@@ -779,12 +779,14 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
             }
 
             // 调用权益发放接口
+            log.info("开始调用三方权益发放接口");
             ChannelRightsApiGrantRecordDTO grantRequest = new ChannelRightsApiGrantRecordDTO();
             grantRequest.setBusinessId(feeOrders.getOrderNo());
             grantRequest.setReceiverDTO(receiverDTO);
             grantRequest.setRightsList(rightsRequest);
             grantRequest.setRemark("订单号:" + feeOrders.getOrderNo() + "权益赠送");
             Result<String> grantResult = localLivingClient.distribution(grantRequest);
+            log.info("三方返回:" + JSONObject.toJSONString(grantResult));
             // 处理响应结果
             if (grantResult != null  && grantResult.getCode() == 200) {
                 // 发放成功后扣除订单总应收保费

+ 63 - 54
tenant/organization/src/main/resources/mapper/SysDistributionSettingMapper.xml

@@ -86,95 +86,104 @@
     </select>
 
     <select id="commissionDetails" resultType="com.jzg.commons.entity.vo.DistributionCommissionDetailVo">
+        SELECT
+        t.orderNo,
+        t.premium,
+        t.salesman,
+        su_sales.mobile AS salesmanMobile,
+        t.signingTime,
+        t.distributor,
+        t.distributorMobile,
+        t.commission,
+        t.distributionRatio,
+        t.distributionLevel
+        FROM (
+        -- 一级分销
         SELECT
         ifo.order_no AS orderNo,
         ifo.total_premium AS premium,
         io.real_quote_user_id AS salesman,
-        io.real_quote_user_id AS salesmanMobile,
         io.signing_time AS signingTime,
-        suji.name as distributor,
-        su.mobile as distributorMobile,
-        ifo.first_distribution_fee as commission,
+        suji.name AS distributor,
+        su.mobile AS distributorMobile,
+        ifo.first_distribution_fee AS commission,
         ifo.first_distribution_ratio AS distributionRatio,
-        '1' AS distributionLevel -- 标识为一级分销
-        FROM
-        ins_fee_orders ifo
-        LEFT JOIN ins_orders io ON ifo.order_no = io.id
+        '1' AS distributionLevel,
+        ifo.first_distributor_id AS distributor_id
+        FROM ins_fee_orders ifo
+        INNER JOIN ins_orders io ON ifo.order_no = io.id
         LEFT JOIN sys_user_jzg_info suji ON ifo.first_distributor_id = suji.id AND suji.is_delete = 0
-        left join sys_user su on su.id = suji.user_id AND su.is_delete = 0
-        WHERE
-        ifo.is_delete = 0
-        and ifo.first_distributor_id IS NOT NULL
+        LEFT JOIN sys_user su ON su.id = suji.user_id AND su.is_delete = 0
+        WHERE ifo.is_delete = 0
+        AND ifo.first_distributor_id IS NOT NULL
         <if test="distributionCommissionDetailVo.distributor != null and distributionCommissionDetailVo.distributor != ''">
-            and suji.name = #{distributionCommissionDetailVo.distributor}
+            AND suji.name = #{distributionCommissionDetailVo.distributor}
         </if>
         <if test="distributionCommissionDetailVo.distributorMobile != null and distributionCommissionDetailVo.distributorMobile != ''">
-            and su.mobile = #{distributionCommissionDetailVo.distributorMobile}
-        </if>
-        <if test="distributionCommissionDetailVo.signingTimeStart != null">
-            and io.signing_time between #{distributionCommissionDetailVo.signingTimeStart} and #{distributionCommissionDetailVo.signingTimeEnd}
+            AND su.mobile = #{distributionCommissionDetailVo.distributorMobile}
         </if>
+
         UNION ALL
+
+        -- 二级分销
         SELECT
         ifo.order_no AS orderNo,
         ifo.total_premium AS premium,
         io.real_quote_user_id AS salesman,
-        io.real_quote_user_id AS salesmanMobile,
         io.signing_time AS signingTime,
-        suji.name as distributor,
-        su.mobile as distributorMobile,
-        ifo.second_distribution_fee as commission,
+        suji.name AS distributor,
+        su.mobile AS distributorMobile,
+        ifo.second_distribution_fee AS commission,
         ifo.second_distribution_ratio AS distributionRatio,
-        '2' AS distributionLevel -- 标识为二级分销
-        FROM
-        ins_fee_orders ifo
-        LEFT JOIN ins_orders io ON ifo.order_no = io.id
+        '2' AS distributionLevel,
+        ifo.second_distributor_id AS distributor_id
+        FROM ins_fee_orders ifo
+        INNER JOIN ins_orders io ON ifo.order_no = io.id
         LEFT JOIN sys_user_jzg_info suji ON ifo.second_distributor_id = suji.id AND suji.is_delete = 0
-        left join sys_user su on su.id = suji.user_id AND su.is_delete = 0
-        WHERE
-        ifo.is_delete = 0
-        and ifo.second_distributor_id IS NOT NULL
-        <if test="distributionCommissionDetailVo.signingTimeStart != null">
-            and io.signing_time between #{distributionCommissionDetailVo.signingTimeStart} and #{distributionCommissionDetailVo.signingTimeEnd}
-        </if>
+        LEFT JOIN sys_user su ON su.id = suji.user_id AND su.is_delete = 0
+        WHERE ifo.is_delete = 0
+        AND ifo.second_distributor_id IS NOT NULL
         <if test="distributionCommissionDetailVo.distributor != null and distributionCommissionDetailVo.distributor != ''">
-            and suji.name = #{distributionCommissionDetailVo.distributor}
+            AND suji.name = #{distributionCommissionDetailVo.distributor}
         </if>
         <if test="distributionCommissionDetailVo.distributorMobile != null and distributionCommissionDetailVo.distributorMobile != ''">
-            and su.mobile = #{distributionCommissionDetailVo.distributorMobile}
+            AND su.mobile = #{distributionCommissionDetailVo.distributorMobile}
         </if>
+
         UNION ALL
+
+        -- 三级分销
         SELECT
         ifo.order_no AS orderNo,
         ifo.total_premium AS premium,
         io.real_quote_user_id AS salesman,
-        io.real_quote_user_id AS salesmanMobile,
         io.signing_time AS signingTime,
-        suji.name  AS distributor,
-        su.mobile as distributorMobile,
-        ifo.third_distribution_fee as commission,
+        suji.name AS distributor,
+        su.mobile AS distributorMobile,
+        ifo.third_distribution_fee AS commission,
         ifo.third_distribution_ratio AS distributionRatio,
-        '3' AS distributionLevel
-        FROM
-        ins_fee_orders ifo
-        LEFT JOIN ins_orders io ON ifo.order_no = io.id
+        '3' AS distributionLevel,
+        ifo.third_distributor_id AS distributor_id
+        FROM ins_fee_orders ifo
+        INNER JOIN ins_orders io ON ifo.order_no = io.id
         LEFT JOIN sys_user_jzg_info suji ON ifo.third_distributor_id = suji.id AND suji.is_delete = 0
-        left join sys_user su on su.id = suji.user_id AND su.is_delete = 0
-        WHERE
-        ifo.is_delete = 0
-        and ifo.third_distributor_id IS NOT NULL
-        <if test="distributionCommissionDetailVo.signingTimeStart != null">
-            and io.signing_time between #{distributionCommissionDetailVo.signingTimeStart} and #{distributionCommissionDetailVo.signingTimeEnd}
-        </if>
+        LEFT JOIN sys_user su ON su.id = suji.user_id AND su.is_delete = 0
+        WHERE ifo.is_delete = 0
+        AND ifo.third_distributor_id IS NOT NULL
         <if test="distributionCommissionDetailVo.distributor != null and distributionCommissionDetailVo.distributor != ''">
-            and suji.name = #{distributionCommissionDetailVo.distributor}
+            AND suji.name = #{distributionCommissionDetailVo.distributor}
         </if>
         <if test="distributionCommissionDetailVo.distributorMobile != null and distributionCommissionDetailVo.distributorMobile != ''">
-            and su.mobile = #{distributionCommissionDetailVo.distributorMobile}
+            AND su.mobile = #{distributionCommissionDetailVo.distributorMobile}
+        </if>
+        ) t
+        LEFT JOIN sys_user su_sales ON su_sales.id = t.salesman AND su_sales.is_delete = 0
+        WHERE 1 = 1
+        <if test="distributionCommissionDetailVo.signingTimeStart != null and distributionCommissionDetailVo.signingTimeEnd != null">
+            AND t.signingTime BETWEEN #{distributionCommissionDetailVo.signingTimeStart}
+            AND #{distributionCommissionDetailVo.signingTimeEnd}
         </if>
-        ORDER BY
-        orderNo,
-        distributionLevel
+        ORDER BY t.orderNo, t.distributionLevel
     </select>
 
     <select id="distributionTeam" resultType="com.jzg.commons.entity.vo.DistributionTeamVo">