From a4aa79c7f7832669aee04e315c303531e782c521 Mon Sep 17 00:00:00 2001
From: LSH
Date: 星期三, 26 七月 2023 13:30:54 +0800
Subject: [PATCH] #甲方单位页面优化

---
 src/main/java/com/zy/crm/manager/service/CstmrService.java              |    3 +
 src/main/java/com/zy/crm/manager/controller/CstmrController.java        |   16 +++++
 src/main/webapp/static/js/cstmr/cstmr.js                                |    7 +-
 src/main/webapp/views/cstmr/cstmr.html                                  |    8 +-
 src/main/resources/mapper/CstmrFollMapper.xml                           |    4 +
 src/main/java/com/zy/crm/manager/service/CstmrFollService.java          |    4 +
 src/main/java/com/zy/crm/manager/service/impl/CstmrFollServiceImpl.java |    7 ++
 src/main/java/com/zy/crm/manager/service/impl/CstmrServiceImpl.java     |   11 +++
 src/main/resources/mapper/CstmrMapper.xml                               |  103 ++++++++++++++++++++++++++++++++++
 src/main/java/com/zy/crm/manager/mapper/CstmrFollMapper.java            |    5 +
 src/main/java/com/zy/crm/manager/mapper/CstmrMapper.java                |    1 
 11 files changed, 158 insertions(+), 11 deletions(-)

diff --git a/src/main/java/com/zy/crm/manager/controller/CstmrController.java b/src/main/java/com/zy/crm/manager/controller/CstmrController.java
index f4ca4a2..1f0cfd4 100644
--- a/src/main/java/com/zy/crm/manager/controller/CstmrController.java
+++ b/src/main/java/com/zy/crm/manager/controller/CstmrController.java
@@ -67,10 +67,23 @@
     @ManagerAuth
     public R page(@RequestParam(defaultValue = "1") Integer curr,
                   @RequestParam(defaultValue = "10") Integer limit,
+                  @RequestParam(required = false) String followerName,
                   @RequestParam(required = false) String conditionName,
                   @RequestParam(required = false) String condition,
                   @RequestParam(required = false, value = "dept_id") Long deptId,
                   @RequestParam(required = false, value = "user_id") Long userId){
+        List<Integer> ids = new ArrayList<>();
+        if (!Cools.isEmpty(followerName)){
+            User username = userService.selectOne(new EntityWrapper<User>().eq("username", followerName));
+            if (!Cools.isEmpty(username)){
+                List<Integer> cstmrIds = cstmrFollService.selectCstmrIdUserId(username.getId().intValue());
+                for (Integer id : cstmrIds){
+                    ids.add(id);
+                }
+            }else {
+                return R.error("鏈煡璇㈠埌璺熻繘浜轰俊鎭紒");
+            }
+        }
         if (!Cools.isEmpty(conditionName)){
             switch (conditionName){
                 case "director":
@@ -84,10 +97,11 @@
 
             }
         }
-        return R.ok(cstmrService.getPage1(new Page<>(curr, limit)
+        return R.ok(cstmrService.getPage3(new Page<>(curr, limit)
                 , getHostId()
                 , deptId == null ? null : String.valueOf(deptId)
                 , userId == null ? getUserId() : userId
+                , Cools.isEmpty(followerName) ? null : ids
                 , conditionName
                 , condition)
         );
diff --git a/src/main/java/com/zy/crm/manager/mapper/CstmrFollMapper.java b/src/main/java/com/zy/crm/manager/mapper/CstmrFollMapper.java
index 48200e1..35eda74 100644
--- a/src/main/java/com/zy/crm/manager/mapper/CstmrFollMapper.java
+++ b/src/main/java/com/zy/crm/manager/mapper/CstmrFollMapper.java
@@ -3,10 +3,13 @@
 import com.zy.crm.manager.entity.CstmrFoll;
 import com.baomidou.mybatisplus.mapper.BaseMapper;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Repository;
+
+import java.util.List;
 
 @Mapper
 @Repository
 public interface CstmrFollMapper extends BaseMapper<CstmrFoll> {
-
+    List<Integer> selectCstmrIdUserId(@Param("userId")Integer userId);
 }
diff --git a/src/main/java/com/zy/crm/manager/mapper/CstmrMapper.java b/src/main/java/com/zy/crm/manager/mapper/CstmrMapper.java
index 0d77135..50d18c7 100644
--- a/src/main/java/com/zy/crm/manager/mapper/CstmrMapper.java
+++ b/src/main/java/com/zy/crm/manager/mapper/CstmrMapper.java
@@ -19,6 +19,7 @@
 
     List<Cstmr> listByPage2(Page<Cstmr> page, @Param("hostId")Long hostId, @Param("deptId") Long deptId, @Param("userId") Long userId,@Param("roleId") Long roleId, @Param("conditionName") String conditionName ,@Param("condition") String condition);
     List<Cstmr> listByPage1(Page<Cstmr> page, @Param("hostId")Long hostId, @Param("deptId") String deptId, @Param("userId") Long userId, @Param("conditionName") String conditionName ,@Param("condition") String condition);
+    List<Cstmr> listByPage3(Page<Cstmr> page, @Param("hostId")Long hostId, @Param("deptId") String deptId, @Param("userId") Long userId,@Param("cstmrIds") List<Integer> cstmrIds, @Param("conditionName") String conditionName ,@Param("condition") String condition);
     List<Cstmr> listByPage(Page<Cstmr> page, @Param("hostId")Long hostId, @Param("deptId") String deptId, @Param("userId") Long userId,@Param("condition") String condition);
 
     int updateDeptIdByUserId(@Param("userId")Long userId, @Param("deptId")Long deptId);
diff --git a/src/main/java/com/zy/crm/manager/service/CstmrFollService.java b/src/main/java/com/zy/crm/manager/service/CstmrFollService.java
index 4e9eb0f..1a8ce73 100644
--- a/src/main/java/com/zy/crm/manager/service/CstmrFollService.java
+++ b/src/main/java/com/zy/crm/manager/service/CstmrFollService.java
@@ -3,6 +3,8 @@
 import com.zy.crm.manager.entity.CstmrFoll;
 import com.baomidou.mybatisplus.service.IService;
 
-public interface CstmrFollService extends IService<CstmrFoll> {
+import java.util.List;
 
+public interface CstmrFollService extends IService<CstmrFoll> {
+    List<Integer> selectCstmrIdUserId(Integer cstmrIds);
 }
diff --git a/src/main/java/com/zy/crm/manager/service/CstmrService.java b/src/main/java/com/zy/crm/manager/service/CstmrService.java
index 4576200..02b967c 100644
--- a/src/main/java/com/zy/crm/manager/service/CstmrService.java
+++ b/src/main/java/com/zy/crm/manager/service/CstmrService.java
@@ -4,6 +4,8 @@
 import com.baomidou.mybatisplus.service.IService;
 import com.zy.crm.manager.entity.Cstmr;
 
+import java.util.List;
+
 public interface CstmrService extends IService<Cstmr> {
 
     Cstmr selectByUuid(Long hostId, String uuid);
@@ -12,6 +14,7 @@
 
     Page<Cstmr> getPage2(Page<Cstmr> page, Long hostId, Long deptId, Long userId,Long roleId, String conditionName, String condition);
     Page<Cstmr> getPage1(Page<Cstmr> page, Long hostId, String deptId, Long userId, String conditionName, String condition);
+    Page<Cstmr> getPage3(Page<Cstmr> page, Long hostId, String deptId, Long userId, List<Integer> cstmrIds, String conditionName, String condition);
     Page<Cstmr> getPage(Page<Cstmr> page, Long hostId, String deptId, Long userId,  String condition);
 
     int updateDeptIdByUserId(Long userId, Long deptId);
diff --git a/src/main/java/com/zy/crm/manager/service/impl/CstmrFollServiceImpl.java b/src/main/java/com/zy/crm/manager/service/impl/CstmrFollServiceImpl.java
index 396997b..58580fd 100644
--- a/src/main/java/com/zy/crm/manager/service/impl/CstmrFollServiceImpl.java
+++ b/src/main/java/com/zy/crm/manager/service/impl/CstmrFollServiceImpl.java
@@ -6,7 +6,12 @@
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 @Service("cstmrFollService")
 public class CstmrFollServiceImpl extends ServiceImpl<CstmrFollMapper, CstmrFoll> implements CstmrFollService {
-
+    @Override
+    public List<Integer> selectCstmrIdUserId(Integer userId) {
+        return this.baseMapper.selectCstmrIdUserId(userId);
+    }
 }
diff --git a/src/main/java/com/zy/crm/manager/service/impl/CstmrServiceImpl.java b/src/main/java/com/zy/crm/manager/service/impl/CstmrServiceImpl.java
index 16f92b1..0d3e3ea 100644
--- a/src/main/java/com/zy/crm/manager/service/impl/CstmrServiceImpl.java
+++ b/src/main/java/com/zy/crm/manager/service/impl/CstmrServiceImpl.java
@@ -8,6 +8,8 @@
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 @Service("cstmrService")
 public class CstmrServiceImpl extends ServiceImpl<CstmrMapper, Cstmr> implements CstmrService {
 
@@ -50,6 +52,15 @@
     }
 
     @Override
+    public Page<Cstmr> getPage3(Page<Cstmr> page, Long hostId, String deptId, Long userId, List<Integer> cstmrIds, String conditionName, String condition) {
+        if (cstmrIds==null){
+            return page.setRecords(baseMapper.listByPage1(page, hostId, deptId, userId,conditionName, condition));
+        }else {
+            return page.setRecords(baseMapper.listByPage3(page, hostId, deptId, userId,cstmrIds,conditionName, condition));
+        }
+    }
+
+    @Override
     public Page<Cstmr> getPage(Page<Cstmr> page, Long hostId, String deptId, Long userId,  String condition) {
         return page.setRecords(baseMapper.listByPage(page, hostId, deptId, userId, condition));
     }
diff --git a/src/main/resources/mapper/CstmrFollMapper.xml b/src/main/resources/mapper/CstmrFollMapper.xml
index 11dcb60..1dec362 100644
--- a/src/main/resources/mapper/CstmrFollMapper.xml
+++ b/src/main/resources/mapper/CstmrFollMapper.xml
@@ -10,4 +10,8 @@
 
     </resultMap>
 
+    <select id="selectCstmrIdUserId" resultMap="BaseResultMap">
+        SELECT DISTINCT cstmr_id FROM [dbo].[man_cstmr_foll] WHERE user_id = #{userId} order by cstmr_id
+    </select>
+
 </mapper>
diff --git a/src/main/resources/mapper/CstmrMapper.xml b/src/main/resources/mapper/CstmrMapper.xml
index 1f30c32..c2d0a4a 100644
--- a/src/main/resources/mapper/CstmrMapper.xml
+++ b/src/main/resources/mapper/CstmrMapper.xml
@@ -290,4 +290,107 @@
         </if>
     </select>
 
+    <select id="listByPage3" resultMap="BaseResultMap">
+        SELECT
+        mc.*
+        FROM man_cstmr mc
+        LEFT JOIN sys_dept sd ON mc.dept_id = sd.id
+        WHERE 1=1
+        <choose>
+            <when test="deptId != null and deptId != ''">
+                AND (
+                (CHARINDEX(','+#{deptId}+',', ','+sd.path+',') > 0 OR sd.id = #{deptId})
+                or
+                (
+                user_id = #{userId}
+                or
+                mc.id in
+                (
+                select
+                cstmr_id
+                from man_cstmr_foll
+                where 1=1
+                and user_id = #{userId}
+                )
+                )
+                )
+            </when>
+            <otherwise>
+                and
+                (
+                user_id = #{userId}
+                or
+                mc.id in
+                (
+                select
+                cstmr_id
+                from man_cstmr_foll
+                where 1=1
+                and user_id = #{userId}
+                )
+                )
+            </otherwise>
+        </choose>
+        <if test="cstmrIds != null">
+            and mc.id in
+            <foreach collection="cstmrIds" item="cstmrId" index="index" open="(" close=")" separator=",">
+                #{cstmrId}
+            </foreach>
+        </if>
+        <if test="hostId != null">
+            and mc.host_id = #{hostId}
+        </if>
+        <choose>
+            <when test="conditionName != null and conditionName != ''">
+                <if test="condition != null and condition != ''">
+                    <if test="conditionName == 'uuid'">
+                        and mc.uuid like concat('%',#{condition},'%')
+                    </if>
+                    <if test="conditionName == 'name'">
+                        and mc.name like concat('%',#{condition},'%')
+                    </if>
+                    <if test="conditionName == 'simple'">
+                        and mc.simple like concat('%',#{condition},'%')
+                    </if>
+                    <if test="conditionName == 'rela'">
+                        and mc.rela like concat('%',#{condition},'%')
+                    </if>
+                    <if test="conditionName == 'tel'">
+                        and mc.tel like concat('%',#{condition},'%')
+                    </if>
+                    <if test="conditionName == 'contacts'">
+                        and mc.contacts like concat('%',#{condition},'%')
+                    </if>
+                    <if test="conditionName == 'remarks'">
+                        and mc.remarks like concat('%',#{condition},'%')
+                    </if>
+                    <if test="conditionName == 'director'">
+                        and mc.director = #{condition}
+                    </if>
+                    <if test="conditionName == 'addr'">
+                        and mc.addr like concat('%',#{condition},'%')
+                    </if>
+                </if>
+            </when>
+            <otherwise>
+                <if test="condition != null and condition != ''">
+                    and (
+                    mc.uuid like concat('%',#{condition},'%')
+                    or mc.name like concat('%',#{condition},'%')
+                    or mc.simple like concat('%',#{condition},'%')
+                    or mc.rela like concat('%',#{condition},'%')
+                    or mc.tel like concat('%',#{condition},'%')
+                    or mc.contacts like concat('%',#{condition},'%')
+                    or mc.remarks like concat('%',#{condition},'%')
+                    or mc.director like concat('%',#{condition},'%')
+                    or mc.addr like concat('%',#{condition},'%')
+                    )
+                </if>
+            </otherwise>
+        </choose>
+
+
+        ORDER BY mc.create_time DESC
+    </select>
+
 </mapper>
diff --git a/src/main/webapp/static/js/cstmr/cstmr.js b/src/main/webapp/static/js/cstmr/cstmr.js
index a2d6c4f..6b98850 100644
--- a/src/main/webapp/static/js/cstmr/cstmr.js
+++ b/src/main/webapp/static/js/cstmr/cstmr.js
@@ -81,14 +81,15 @@
 
     // 鏍戝舰鍥�
     var organizationTree;
-    window.loadTree = function(conditionName,condition){
+    window.loadTree = function(followerName,conditionName,condition){
         var loadIndex = layer.load(2);
         $.ajax({
             url: baseUrl+"/dept/user/tree/auth",
             headers: {'token': localStorage.getItem('token')},
             data: {
-                'conditionName': conditionName,
-                'condition': condition
+                'followerName' : followerName,
+                'conditionName' : conditionName,
+                'condition' : condition
             },
             method: 'POST',
             success: function (res) {
diff --git a/src/main/webapp/views/cstmr/cstmr.html b/src/main/webapp/views/cstmr/cstmr.html
index 1a7dfa2..d600028 100644
--- a/src/main/webapp/views/cstmr/cstmr.html
+++ b/src/main/webapp/views/cstmr/cstmr.html
@@ -65,9 +65,12 @@
                 </div>
                 <div class="layui-form-item">
                     <div class="layui-inline">
+                        <input class="layui-input" type="text" name="followerName" placeholder="璺熻繘浜�" autocomplete="off" style="border-color: #e1e1e1">
+                    </div>
+                    <div class="layui-inline">
                         <label class="layui-form-label">閫夋嫨妗�</label>
                         <div class="layui-input-block">
-                            <select id="conditionNameSelect" name="conditionName"  lay-verify="required">
+                            <select id="conditionNameSelect" name="conditionName"  lay-search>
                                 <option value = "" > 璇烽�夋嫨... </option>
                                 <option value="name" >瀹㈡埛鍚嶇О</option>
                                 <option value="uuid" >瀹㈡埛浠g爜</option>
@@ -81,9 +84,6 @@
                             </select>
                         </div>
                     </div>
-<!--                    <div class="layui-inline>-->
-<!--                            <input class="layui-input" type="text" name="conditionName" placeholder="鎼滅储瀛楁" autocomplete="off" style="border-color: #e1e1e1">-->
-<!--                    </div>-->
                     <div class="layui-inline">
                         <input class="layui-input" type="text" name="condition" placeholder="鍊�" autocomplete="off" style="border-color: #e1e1e1">
                     </div>

--
Gitblit v1.9.1