Przeglądaj źródła

添加查询绑定的订单为团队长时添加部门查询

hxl13994548489 2 lat temu
rodzic
commit
258aca066a

+ 7 - 0
src/main/java/com/ydtech/modules/admin/dao/SysUserMapper.java

@@ -220,6 +220,13 @@ public interface SysUserMapper extends BaseMapper<SysUser> {
      *  @Description: 获取客服人员数据
      */
     List<SysUserBaseVO> getCustomerUsers(@Param("user") SysUserVOExt sysUserVOExt);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/4/23 10:49
+     *  @Description: 通过用户id和角色ids查询机构ids
+     */
+    List<String> getDeptIdsByRoleIdsAndUserIds(@Param("userIds") List<String> agentUserIds, @Param("roleIds") List<String> roleIds);
 }
 
 

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

@@ -56,14 +56,14 @@ public interface InsOrdersMapper extends BaseMapper<InsOrders> {
      *  @Date: 2024/4/17 18:01
      *  @Description:  通过用户id查询订单、渠道、代理人、保险公司
      */
-    Page<InsOrders> queryPageOrderByLinkType(@Param("page") Page<InsOrders> page,@Param("orderQueryVo") OrderQueryVo orderQueryVo, List<String> agentUserIds, List<String> agreeIds);
+    Page<InsOrders> queryPageOrderByLinkType(@Param("page") Page<InsOrders> page,@Param("orderQueryVo") OrderQueryVo orderQueryVo, @Param("agentUserIds") List<String> agentUserIds,  @Param("agreeIds") List<String> agreeIds,@Param("deptIds") List<String> deptIds);
     /**
      *  @version
      *  @author: hxl
      *  @Date: 2024/4/17 18:36
      *  @Description: 通过用户id查询订单、渠道、代理人、保险公司条数
      */
-    Long queryPageOrderByLinkTypeCount(@Param("orderQueryVo") OrderQueryVo orderQueryVo, @Param("agentUserIds")  List<String> agentUserIds, @Param("agreeIds")  List<String> agreeIds);
+    Long queryPageOrderByLinkTypeCount(@Param("orderQueryVo") OrderQueryVo orderQueryVo, @Param("agentUserIds")  List<String> agentUserIds, @Param("agreeIds")  List<String> agreeIds,@Param("deptIds") List<String> deptIds);
     /**
      *  @version
      *  @author: hxl

+ 7 - 2
src/main/java/com/ydtech/modules/order/service/impl/InsOrdersServiceImpl.java

@@ -794,10 +794,14 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
         page.setSearchCount(false).setOptimizeCountSql(false);//关闭count查询
         List<String> agentUserIds = new ArrayList<>();
         List<String> agreeIds = new ArrayList<>();
+        //角色为需要查询下级的用户
+        List<String> roleIds = Arrays.asList(SystemConstant.getSysRoleTeamLeader());
         if (type == 1) {
             //渠道
             //查询用户表中的信息为领带id为用户id的数据
             List<SysUserBaseVO> allUsersByLeaderId = sysUserMapper.getAllUsersByLeaderId(orderQueryVo.getUserId());
+
+            //查询下级
             if (allUsersByLeaderId != null && allUsersByLeaderId.size() > 0) {
                 for (SysUserBaseVO sysUserBaseVO : allUsersByLeaderId) {
                     agentUserIds.add(sysUserBaseVO.getUserId());
@@ -821,8 +825,9 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
         Page<InsOrders> orderVoPage = new Page<>();
         //注释逻辑给前台返回数据
         if((agentUserIds!=null && agentUserIds.size()>0) || (agreeIds!=null && agreeIds.size()>0)){
-        orderVoPage = baseMapper.queryPageOrderByLinkType(page, orderQueryVo, agentUserIds, agreeIds);
-        total = baseMapper.queryPageOrderByLinkTypeCount(orderQueryVo, agentUserIds, agreeIds);
+            List<String> deptIds= sysUserMapper.getDeptIdsByRoleIdsAndUserIds(agentUserIds,roleIds);
+            orderVoPage = baseMapper.queryPageOrderByLinkType(page, orderQueryVo, agentUserIds, agreeIds,deptIds);
+            total = baseMapper.queryPageOrderByLinkTypeCount(orderQueryVo, agentUserIds, agreeIds,deptIds);
         }
         orderVoPage.setTotal(total);
         return new BasePageResult<>(orderQueryVo.getPageNum(), orderQueryVo.getPageSize(), orderVoPage.getTotal(),

+ 27 - 0
src/main/resources/mapper/modules/admin/SysUserMapper.xml

@@ -508,4 +508,31 @@
             </if>
         </if>
     </select>
+
+    <select id="getDeptIdsByRoleIdsAndUserIds" resultType="String">
+        SELECT
+            sd2.id
+        FROM
+            sys_user t1
+                LEFT JOIN sys_dept t2 ON t1.dept_id = t2.id
+                LEFT JOIN sys_dept sd2 ON sd2.id = t2.parent_id
+                LEFT JOIN sys_user_role sur ON sur.user_id = t1.id
+        WHERE
+            t1.`status` = 1
+            <if test="userIds != null and userIds.size>0" >
+                AND
+                t1.id IN
+                <foreach collection="userIds" item="item" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+        <if test="roleIds != null and roleIds.size>0" >
+            AND
+            sur.role_id IN
+            <foreach collection="roleIds" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+        GROUP BY sd2.id
+    </select>
 </mapper>

+ 18 - 2
src/main/resources/mapper/modules/order/InsOrdersMapper.xml

@@ -817,7 +817,15 @@
                 <foreach collection="agentUserIds" item="item" open="(" separator="," close=")">
                     #{item}
                 </foreach>
-                AND ( iac.new_operator_id IS NULL OR iac.new_operator_id = '' ) )
+                AND ( iac.new_operator_id IS NULL OR iac.new_operator_id = '' )
+                <if test="deptIds != null and deptIds.size>0" >
+                    AND (
+                    <foreach collection="deptIds" item="item" open="(" separator="OR" close=")">
+                        io.deptid like CONCAT('%', #{item}, '%')
+                    </foreach>
+                    )
+                </if>
+                )
                 OR iac.new_operator_id = #{orderQueryVo.userId}
                 OR iac.operator_id = #{orderQueryVo.userId}
                 )
@@ -879,7 +887,15 @@
                 <foreach collection="agentUserIds" item="item" open="(" separator="," close=")">
                     #{item}
                 </foreach>
-                AND ( iac.new_operator_id IS NULL OR iac.new_operator_id = '' ) )
+                AND ( iac.new_operator_id IS NULL OR iac.new_operator_id = '' )
+                <if test="deptIds != null and deptIds.size>0" >
+                    AND (
+                    <foreach collection="deptIds" item="item" open="(" separator="OR" close=")">
+                        io.deptid like CONCAT('%', #{item}, '%')
+                    </foreach>
+                    )
+                </if>
+                )
                 OR iac.new_operator_id = #{orderQueryVo.userId}
                 OR iac.operator_id = #{orderQueryVo.userId}
                 )