zhijiezhao 3 years ago
parent
commit
faf6d7b71c

+ 9 - 8
src/main/java/com/caimei365/user/controller/ClubApi.java

@@ -243,19 +243,20 @@ public class ClubApi {
     })
     @GetMapping("/remarks/visitor/list")
     public ResponseJson<PaginationVo<VisitorRemarkVo>> getVisitorList(Integer serviceProviderId,
-                                                                      String keyWord,
-                                                                      String startAddTime,
-                                                                      String endAddTime,
-                                                                      String consult,
-                                                                      Integer leaderId,
-                                                                      Integer groupId,
-                                                                      Integer manager,
+//                                                                      String keyWord,
+//                                                                      String startAddTime,
+//                                                                      String endAddTime,
+//                                                                      String consult,
+//                                                                      Integer leaderId,
+//                                                                      Integer groupId,
+//                                                                      Integer manager,
                                                                       @RequestParam(value = "pageNum", defaultValue = "1") int pageNum,
                                                                       @RequestParam(value = "pageSize", defaultValue = "20") int pageSize) {
         if (null == serviceProviderId) {
             return ResponseJson.error("参数异常:协销id不能为空!", null);
         }
-        return clubService.getVisitorList(serviceProviderId, keyWord, startAddTime, endAddTime, consult, leaderId, groupId,manager, pageNum, pageSize);
+//        keyWord, startAddTime, endAddTime, consult, leaderId, groupId,manager,
+        return clubService.getVisitorList(serviceProviderId,  pageNum, pageSize);
     }
 
     /**

+ 3 - 3
src/main/java/com/caimei365/user/mapper/ClubMapper.java

@@ -239,7 +239,7 @@ public interface ClubMapper {
 
     void insertQuestionMan(VisitorRemarkVo visitor);
 
-    List<VisitorRemarkVo> getVisitorList(String serviceProviderId);
+    List<VisitorRemarkVo> getVisitorList(Integer serviceProviderId);
 
     void updateQuestionMan(@Param("serviceProviderId") String serviceProviderId, @Param("questionMan") String questionMan, @Param("questionManId") String questionManId);
 
@@ -275,7 +275,7 @@ public interface ClubMapper {
 
     List<RemarksVo> getRemarksListByKey(@Param("keyWord") String keyWord, @Param("serviceProviderId") Integer serviceProviderId,@Param("startAddTime")String startAddTime,@Param("endAddTime")String endAddTime, @Param("con")List<String> con);
 
-    List<VisitorRemarkVo> getVisitorListByKey(@Param("serviceProviderId") Integer serviceProviderId, @Param("keyWord") String keyWord,@Param("startAddTime")String startAddTime,@Param("endAddTime")String endAddTime);
+    List<VisitorRemarkVo> getVisitorListByKey(@Param("serviceProviderId") Integer serviceProviderId, @Param("keyWord") String keyWord,@Param("startAddTime")String startAddTime,@Param("endAddTime")String endAddTime,@Param("con")List<String> con);
     //, @Param("questionManId") String questionManId
     List<VisitorRemarkVo> getVisitRecordListByKey(@Param("keyWord") String keyWord);
 
@@ -289,7 +289,7 @@ public interface ClubMapper {
 
     List<RemarksVo> findAllRemarks(@Param("keyWord") String keyWord, @Param("startAddTime") String startAddTime, @Param("endAddTime") String endAddTime, @Param("leaderId") Integer leaderId, @Param("groupId") Integer groupId, @Param("con")List<String> con);
 
-    List<VisitorRemarkVo> getAllVisitRemark(@Param("keyWord") String keyWord, @Param("startAddTime") String startAddTime, @Param("endAddTime") String endAddTime, @Param("leaderId") Integer leaderId, @Param("groupId") Integer groupId);
+    List<VisitorRemarkVo> getAllVisitRemark(@Param("keyWord") String keyWord, @Param("startAddTime") String startAddTime, @Param("endAddTime") String endAddTime, @Param("leaderId") Integer leaderId, @Param("groupId") Integer groupId,@Param("con")List<String> con);
 
     Integer findLeaderId(Integer serviceProviderId);
 }

+ 8 - 7
src/main/java/com/caimei365/user/service/ClubService.java

@@ -163,13 +163,14 @@ public interface ClubService {
      * @return
      */
     ResponseJson<PaginationVo<VisitorRemarkVo>> getVisitorList(Integer serviceProviderId,
-                                                               String keyWord,
-                                                               String startAddTime,
-                                                               String endAddTime,
-                                                               String consult,
-                                                               Integer leaderId,
-                                                               Integer manager,
-                                                               Integer groupId,int pageNum, int pageSize);
+//                                                               String keyWord,
+//                                                               String startAddTime,
+//                                                               String endAddTime,
+//                                                               String consult,
+//                                                               Integer leaderId,
+//                                                               Integer manager,
+//                                                               Integer groupId,
+                                                               int pageNum, int pageSize);
 
     /**
      * 修改潜在客户咨询人姓名

+ 62 - 44
src/main/java/com/caimei365/user/service/impl/ClubServiceImpl.java

@@ -513,9 +513,6 @@ public class ClubServiceImpl implements ClubService {
             remarkVo.setConsult(r.getConsult());
             remarkVos.add(remarkVo);
         });
-//        if (StringUtils.isNotBlank(consult)) {
-//            remarkVos.removeIf(r -> !r.getConsult().contains(consult));
-//        }
         PaginationVo<RemarkVo> pageVo = new PaginationVo<>(remarkVos);
         if (null != remarkVos && remarkVos.size() > 0) {
             pageVo.setTotalRecord(remarkVos.size());
@@ -718,46 +715,52 @@ public class ClubServiceImpl implements ClubService {
 
     @Override
     public ResponseJson<PaginationVo<VisitorRemarkVo>> getVisitorList(Integer serviceProviderId,
-                                                                      String keyWord,
-                                                                      String startAddTime,
-                                                                      String endAddTime,
-                                                                      String consult,
-                                                                      Integer leaderId,
-                                                                      Integer groupId,
-                                                                      Integer manager,
+//                                                                      String keyWord,
+//                                                                      String startAddTime,
+//                                                                      String endAddTime,
+//                                                                      String consult,
+//                                                                      Integer leaderId,
+//                                                                      Integer groupId,
+//                                                                      Integer manager,
                                                                       int pageNum, int pageSize) {
         if (null == serviceProviderId) {
             return ResponseJson.error("参数异常,协销id不能为空", null);
         }
         List<VisitorRemarkVo> remarksList = new ArrayList<>();
+//        List<String> conss = new ArrayList<>();
+//        if(StringUtils.isNotBlank(consult)){
+//            if(consult.contains(",")){
+//                conss = Arrays.asList(consult.split(","));
+//            }else{
+//                conss.add(consult);
+//            }
+//        }
         PageHelper.startPage(pageNum, pageSize);
-        Integer findLeader = clubMapper.findLeaderId(serviceProviderId);
-        if (null != manager && 1 == manager) {
-            //主管查所有注册客户咨询记录
-            remarksList = clubMapper.getAllVisitRemark(keyWord, startAddTime, endAddTime, leaderId, groupId);
-        } else if (null != findLeader && findLeader > 0) {
-            remarksList = clubMapper.getAllVisitRemark(keyWord, startAddTime, endAddTime, serviceProviderId, groupId);
-        } else {
-            remarksList = clubMapper.getVisitorListByKey(serviceProviderId, keyWord,startAddTime, endAddTime);
-        }
-        for (VisitorRemarkVo visitorRemarkVo : remarksList) {
-            if (StringUtils.isNotBlank(visitorRemarkVo.getConsult())) {
-                if (visitorRemarkVo.getConsult().contains(",")) {
-                    String[] split = visitorRemarkVo.getConsult().split(",");
-                    String Cons = "";
-                    for (String con : split) {
-                        Cons += clubMapper.findConsultById(con).getClassName() + ",";
-                    }
-                    Cons = Cons.substring(0, Cons.length() - 1);
-                    visitorRemarkVo.setConsultBack(Cons);
-                } else {
-                    visitorRemarkVo.setConsultBack(clubMapper.findConsultById(visitorRemarkVo.getConsult()).getClassName());
-                }
-            }
-        }
-        if (StringUtils.isNotBlank(consult)) {
-            remarksList.removeIf(r -> !r.getConsult().contains(consult));
-        }
+        remarksList = clubMapper.getVisitorList(serviceProviderId);
+//        Integer findLeader = clubMapper.findLeaderId(serviceProviderId);
+//        if (null != manager && 1 == manager) {
+//            //主管查所有注册客户咨询记录
+//            remarksList = clubMapper.getAllVisitRemark(keyWord, startAddTime, endAddTime, leaderId, groupId,conss);
+//        } else if (null != findLeader && findLeader > 0) {
+//            remarksList = clubMapper.getAllVisitRemark(keyWord, startAddTime, endAddTime, serviceProviderId, groupId,conss);
+//        } else {
+//            remarksList = clubMapper.getVisitorListByKey(serviceProviderId, keyWord,startAddTime, endAddTime,conss);
+//        }
+//        for (VisitorRemarkVo visitorRemarkVo : remarksList) {
+//            if (StringUtils.isNotBlank(visitorRemarkVo.getConsult())) {
+//                if (visitorRemarkVo.getConsult().contains(",")) {
+//                    String[] split = visitorRemarkVo.getConsult().split(",");
+//                    String Cons = "";
+//                    for (String con : split) {
+//                        Cons += clubMapper.findConsultById(con).getClassName() + ",";
+//                    }
+//                    Cons = Cons.substring(0, Cons.length() - 1);
+//                    visitorRemarkVo.setConsultBack(Cons);
+//                } else {
+//                    visitorRemarkVo.setConsultBack(clubMapper.findConsultById(visitorRemarkVo.getConsult()).getClassName());
+//                }
+//            }
+//        }
         return ResponseJson.success(new PaginationVo<>(remarksList));
     }
 
@@ -874,11 +877,25 @@ public class ClubServiceImpl implements ClubService {
     @Override
     public ResponseJson<PaginationVo<VisitRemarkVo>> getVisitorRecordList(String questionManId, String keyWord, Integer serviceProviderId, String startAddTime, String endAddTime, String consult, Integer leaderId, Integer groupId, Integer manager, int pageNum, int pageSize) {
         PageInfo<VisitorRemarkVo> remarksList = null;
+        List<String> conss = new ArrayList<>();
+        if(StringUtils.isNotBlank(consult)){
+            if(consult.contains(",")){
+                conss = Arrays.asList(consult.split(","));
+            }else{
+                conss.add(consult);
+            }
+        }
+        Integer findLeader = clubMapper.findLeaderId(serviceProviderId);
         if (null != manager && 1 == manager) {
             //主管查所有注册客户咨询记录
-            remarksList = PageHelper.startPage(pageNum, pageSize).doSelectPageInfo(() -> clubMapper.getAllVisitRemark(keyWord, startAddTime, endAddTime, leaderId, groupId));
-        } else {
-            remarksList = PageHelper.startPage(pageNum, pageSize).doSelectPageInfo(() -> clubMapper.getVisitRecordListByKey(keyWord));
+            List<String> finalConss = conss;
+            remarksList = PageHelper.startPage(pageNum, pageSize).doSelectPageInfo(() -> clubMapper.getAllVisitRemark(keyWord, startAddTime, endAddTime, leaderId, groupId, finalConss));
+        } else  if (null != findLeader && findLeader > 0) {
+            List<String> finalConss1 = conss;
+            remarksList = PageHelper.startPage(pageNum, pageSize).doSelectPageInfo(() -> clubMapper.getAllVisitRemark(keyWord, startAddTime, endAddTime, serviceProviderId, groupId, finalConss1));
+        }else {
+            List<String> finalConss2 = conss;
+            remarksList = PageHelper.startPage(pageNum, pageSize).doSelectPageInfo(() ->clubMapper.getVisitorListByKey(serviceProviderId, keyWord,startAddTime, endAddTime, finalConss2));
         }
         ArrayList<VisitRemarkVo> remarkVos = new ArrayList<>();
         remarksList.getList().forEach(r -> {
@@ -904,7 +921,11 @@ public class ClubServiceImpl implements ClubService {
                     visit.setConsultBack(clubMapper.findConsultById(r.getConsult()).getClassName());
                 }
             }
-            visit.setQuestionMan(clubMapper.findQuestionMan(r.getQuestionManId()));
+            if(StringUtils.isBlank(r.getQuestionMan())){
+                visit.setQuestionMan(clubMapper.findQuestionMan(r.getQuestionManId()));
+            }else{
+                visit.setQuestionMan(r.getQuestionMan());
+            }
             visit.setLeaderName(r.getLeaderName());
             visit.setRemarks(strings);
             visit.setAddDate(r.getAddDate());
@@ -915,9 +936,6 @@ public class ClubServiceImpl implements ClubService {
             visit.setConsult(r.getConsult());
             remarkVos.add(visit);
         });
-        if (StringUtils.isNotBlank(consult)) {
-            remarkVos.removeIf(r -> !r.getConsult().contains(consult));
-        }
         PaginationVo<VisitRemarkVo> pageVo = new PaginationVo<>(remarkVos);
         if (null != remarkVos && remarkVos.size() > 0) {
             pageVo.setTotalRecord(remarkVos.size());

+ 33 - 13
src/main/resources/mapper/ClubMapper.xml

@@ -447,25 +447,39 @@
     </select>
     <select id="getVisitorListByKey" resultType="com.caimei365.user.model.vo.VisitorRemarkVo">
         SELECT DISTINCT
-               questionManId, serviceProviderId, addTime as addDate, questionMan,ifnull(consultType,'') as consult
+        ccr.id as remarksId, ccr.questionManId, ccr.remarks, ccr.addTime as addDate, ccr.questionMan,IFNULL(ccr.consultType,'') as consult,
+        ccr.serviceProviderId,
+        (SELECT NAME FROM serviceprovider s WHERE s.serviceProviderID = ccr.serviceProviderId) AS recordName,
+        (select name from serviceprovider s where s.serviceProviderID = csr.leaderId) as leaderName
         FROM cm_visitor_remarks ccr
-        WHERE serviceProviderId = #{serviceProviderId}
-         <if test="keyWord != null and keyWord != ''">
-          and questionMan LIKE CONCAT('%', #{keyWord}, '%')
-         </if>
+        left join cm_serviceteam_group csg on csg.serviceId = ccr.serviceProviderID
+        left join cm_serviceteam_role csr on csr.id = csg.teamId
+        left join serviceprovider s on ccr.serviceProviderID = s.serviceProviderID
+        WHERE ccr.serviceProviderId = #{serviceProviderId}
+        and ccr.remarks IS NOT NULL
+        and ccr.clubId is null
+        <if test="keyWord != null and keyWord != ''">
+          and ccr.questionMan LIKE CONCAT('%', #{keyWord}, '%')
+          or ccr.remarks LIKE CONCAT('%', #{keyWord}, '%')
+        </if>
         <if test="startAddTime !=''">
             and ccr.addTime <![CDATA[  >  ]]> #{startAddTime}
         </if>
         <if test="endAddTime != ''">
             and ccr.addTime <![CDATA[  <  ]]> #{endAddTime}
         </if>
-          and clubId is null
-        GROUP BY questionManId
-        ORDER BY addTime DESC
+        <if test="con != null and con.size > 0">
+            and
+            <foreach collection="con" item="item" index="index"  open="(" close=")" separator="OR">
+                ccr.consultType LIKE CONCAT('%',#{item},'%')
+            </foreach>
+        </if>
+        ORDER BY ccr.addTime DESC
     </select>
     <select id="getVisitRecordListByKey" resultType="com.caimei365.user.model.vo.VisitorRemarkVo">
         select DISTINCT
-               ccr.id as remarksId, ccr.questionManId, ccr.remarks, ccr.addTime as addDate, ccr.questionMan,IFNULL(ccr.consultType,'') as consult,ccr.serviceProviderId,
+        ccr.id as remarksId, ccr.questionManId, ccr.remarks, ccr.addTime as addDate, ccr.questionMan,IFNULL(ccr.consultType,'') as consult,
+        ccr.serviceProviderId,
         (SELECT NAME FROM serviceprovider s WHERE s.serviceProviderID = ccr.serviceProviderId) AS recordName,
         (select name from serviceprovider s where s.serviceProviderID = csr.leaderId) as leaderName
         from cm_visitor_remarks ccr
@@ -546,7 +560,7 @@
     </select>
     <select id="getAllVisitRemark" resultType="com.caimei365.user.model.vo.VisitorRemarkVo">
         SELECT DISTINCT
-               ccr.id AS remarksId, ccr.remarks,ccr.addTime,ccr.questionMan,IFNULL(ccr.consultType,'') as consult,ccr.serviceProviderId,
+        ccr.id AS remarksId, ccr.remarks,ccr.addTime as addDate,ccr.questionMan,IFNULL(ccr.consultType,'') as consult,ccr.serviceProviderId,ccr.questionManId,
         (SELECT NAME FROM serviceprovider s WHERE s.serviceProviderID = csr.leaderId) AS leaderName,
         (SELECT NAME FROM serviceprovider s WHERE s.serviceProviderID = ccr.serviceProviderId) AS recordName
         FROM cm_visitor_remarks ccr
@@ -556,14 +570,14 @@
         <where>
             and ccr.remarks IS NOT NULL
             and ccr.clubId is null
-            <if test="remarks != null and remarks !=''">
+            <if test="keyWord != null and keyWord !=''">
                 AND ccr.remarks LIKE concat('%',#{keyWord},'%')
                 or ccr.questionMan LIKE CONCAT('%', #{keyWord}, '%')
             </if>
-            <if test="leaderId != null and leaderId>0">
+            <if test="leaderId != null and leaderId > 0">
                 and csr.leaderId = #{leaderId}
             </if>
-            <if test="groupId != null and groupId>0">
+            <if test="groupId != null and groupId > 0">
                 and ccr.serviceProviderId = #{groupId}
             </if>
             <if test="startAddTime !=''">
@@ -572,6 +586,12 @@
             <if test="endAddTime != ''">
                 and ccr.addTime <![CDATA[  <  ]]> #{endAddTime}
             </if>
+            <if test="con != null and con.size > 0">
+                and
+                <foreach collection="con" item="item" index="index" open="(" close=")" separator="OR">
+                    ccr.consultType LIKE CONCAT('%',#{item},'%')
+                </foreach>
+            </if>
         </where>
         ORDER BY ccr.ADDTIME DESC
     </select>