huangzhiguo пре 1 година
родитељ
комит
69f293f11c

+ 45 - 4
src/main/java/com/caimei365/user/controller/SellerApi.java

@@ -87,7 +87,7 @@ public class SellerApi {
      * 原spi的 /seller/club/list
      * 原spi的 /seller/club/list
      *
      *
      * @param spId           协销Id
      * @param spId           协销Id
-     * @param status         机构状态
+     * @param status         机构状态 0: 待升级 1:升级中 2:升级失败
      * @param type           1.我的机构2.组员机构3.待分配机构
      * @param type           1.我的机构2.组员机构3.待分配机构
      * @param name           机构名字关键字(搜索用)
      * @param name           机构名字关键字(搜索用)
      * @param groupServiceId 组员协销id(搜索用)
      * @param groupServiceId 组员协销id(搜索用)
@@ -102,18 +102,20 @@ public class SellerApi {
                                                       Integer groupServiceId,
                                                       Integer groupServiceId,
                                                       String startTime,
                                                       String startTime,
                                                       String endTime,
                                                       String endTime,
+                                                      String activeState,
+                                                      String customerValue,
                                                       @RequestParam(value = "pageNum", defaultValue = "1") int pageNum,
                                                       @RequestParam(value = "pageNum", defaultValue = "1") int pageNum,
                                                       @RequestParam(value = "pageSize", defaultValue = "10") int pageSize) {
                                                       @RequestParam(value = "pageSize", defaultValue = "10") int pageSize) {
         if (null == spId || null == status || null == type) {
         if (null == spId || null == status || null == type) {
             return ResponseJson.error("spId 或 status 或 type 参数不全!", null);
             return ResponseJson.error("spId 或 status 或 type 参数不全!", null);
         }
         }
-        return sellerService.getClubList(spId, status, type, name, userIdentity, groupServiceId, startTime, endTime, pageNum, pageSize);
+        return sellerService.getClubList(spId, status, type, name, userIdentity, groupServiceId, startTime, endTime, activeState, customerValue, pageNum, pageSize);
     }
     }
 
 
     /**
     /**
      * 机构活跃分析
      * 机构活跃分析
      */
      */
-    @ApiOperation("机构活跃分析比例")
+    @ApiOperation("机构看板")
     @GetMapping("/club/livelyClub")
     @GetMapping("/club/livelyClub")
     public ResponseJson<Map<String, Object>> getLivelyClub(Integer spId) {
     public ResponseJson<Map<String, Object>> getLivelyClub(Integer spId) {
         if (null == spId ) {
         if (null == spId ) {
@@ -133,7 +135,7 @@ public class SellerApi {
      */
      */
     @ApiOperation("机构活跃分析列表")
     @ApiOperation("机构活跃分析列表")
     @GetMapping("/club/livelyClubList")
     @GetMapping("/club/livelyClubList")
-    public ResponseJson<Map<String, Object>> getLivelyClubList(Integer spId,
+    public ResponseJson<PaginationVo<ClubVo>> getLivelyClubList(Integer spId,
                                                                          Integer status,
                                                                          Integer status,
                                                                          Integer type,
                                                                          Integer type,
                                                                          String name,
                                                                          String name,
@@ -150,6 +152,45 @@ public class SellerApi {
         return sellerService.getLivelyClubList(spId, status, type, name, userIdentity, pageNum, pageSize);
         return sellerService.getLivelyClubList(spId, status, type, name, userIdentity, pageNum, pageSize);
     }
     }
 
 
+
+    /**
+     * 获取相关咨询记录机构信息
+     * @param spId
+     * @param type
+     * @param pageNum
+     * @param pageSize
+     * @return
+     */
+    @GetMapping("/getIsRemarkClub")
+    public ResponseJson<PaginationVo<ClubVo>> getIsRemarkClub(Integer spId, Integer type,
+                                                              @RequestParam(value = "pageNum", defaultValue = "1") int pageNum,
+                                                              @RequestParam(value = "pageSize", defaultValue = "10") int pageSize) {
+        if (null == spId) {
+            return ResponseJson.error("协销id不能为空", null);
+        }
+        if (null == type) {
+            return ResponseJson.error("数据类型不能为空", null);
+        }
+        return sellerService.getIsRemarkClub(spId, type, pageNum, pageSize);
+    }
+
+    /**
+     * 机构所有咨询记录
+     * @param clubId
+     * @param pageNum
+     * @param pageSize
+     * @return
+     */
+    @GetMapping("/getClubAllRemark")
+    public ResponseJson<PaginationVo<RemarksVo>> getClubAllRemark(Integer clubId,
+                                                                  @RequestParam(value = "pageNum", defaultValue = "1") int pageNum,
+                                                                  @RequestParam(value = "pageSize", defaultValue = "10") int pageSize) {
+        if (null == clubId) {
+            return ResponseJson.error(-1, "机构id不能为空", null);
+        }
+        return sellerService.getClubAllRemark(clubId, pageNum, pageSize);
+    }
+
     @ApiOperation("组员筛选侧边栏")
     @ApiOperation("组员筛选侧边栏")
     @GetMapping("/service/team")
     @GetMapping("/service/team")
     public ResponseJson<List<ServiceProviderVo>> getClubList(Integer spId) {
     public ResponseJson<List<ServiceProviderVo>> getClubList(Integer spId) {

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

@@ -66,16 +66,56 @@ public interface SellerMapper {
      */
      */
     void deleteTemporaryClub(Integer id);
     void deleteTemporaryClub(Integer id);
 
 
-    List<ClubVo> findClubs(@Param("serviceProviderId") Integer serviceProviderId, @Param("status") Integer status, @Param("name") String name, @Param("userIdentity") Integer userIdentity, @Param("type") Integer type, @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("serviceIds") List<Integer> serviceIds);
+    /**
+     * 机构数据
+     * @param serviceProviderId
+     * @param status
+     * @param name
+     * @param userIdentity
+     * @param type
+     * @param startTime
+     * @param endTime
+     * @param activeState
+     * @param customerValue
+     * @param clubType
+     * @param serviceIds
+     * @return
+     */
+    List<ClubVo> findClubs(@Param("serviceProviderId") Integer serviceProviderId, @Param("status") Integer status, @Param("name") String name,
+                           @Param("userIdentity") Integer userIdentity, @Param("type") Integer type, @Param("startTime") String startTime,
+                           @Param("endTime") String endTime, @Param("activeState") String activeState,@Param("customerValue") String customerValue,
+                           @Param("serviceIds") List<Integer> serviceIds);
+
+    /**
+     * 获取相关咨询记录机构信息
+     * @param spId
+     * @param type
+     * @return
+     */
+    List<ClubVo> getIsRemarkClub(@Param("spId") Integer spId, @Param("type") Integer type);
+
+    /**
+     * 机构所有咨询记录
+     * @param clubId
+     * @return
+     */
+    List<RemarksVo> getClubAllRemark(@Param("clubId") Integer clubId);
 
 
     /***
     /***
      * 功能描述: 机构活跃分析用户登录数量
      * 功能描述: 机构活跃分析用户登录数量
      * @auther: Kaick
      * @auther: Kaick
      * @date: 2023/8/30 15:25
      * @date: 2023/8/30 15:25
-     * @param spID
+     * @param spId
      * @return [spID]
      * @return [spID]
      */
      */
-    Map<String, Object> findSpUserLoginSum(@Param("spID") String spID);
+    Map<String, Object> findSpUserLoginSum(@Param("spId") Integer spId);
+
+    /**
+     * 协销下填写过咨询记录的机构
+     * @param spId
+     * @return
+     */
+    Map<String, Object> getRemarkClub(@Param("spId") Integer spId);
 
 
     Integer findOrderNum(ClubVo club);
     Integer findOrderNum(ClubVo club);
 
 

+ 4 - 0
src/main/java/com/caimei365/user/model/dto/ArrDateDto.java

@@ -18,8 +18,12 @@ public class ArrDateDto {
     private ArrayList<Integer> value;
     private ArrayList<Integer> value;
 
 
     private ArrayList<PortraitMap> orderList;
     private ArrayList<PortraitMap> orderList;
+
+    private ArrayList<PortraitMap> dataList;
+
     private Integer orderTotalNum;
     private Integer orderTotalNum;
 
 
     private String startTime;
     private String startTime;
+
     private String endTime;
     private String endTime;
 }
 }

+ 32 - 15
src/main/java/com/caimei365/user/service/SellerService.java

@@ -26,22 +26,39 @@ public interface SellerService {
      * @param name              机构名字关键字(搜索用)
      * @param name              机构名字关键字(搜索用)
      * @return
      * @return
      */
      */
-    ResponseJson<PageInfo<ClubVo>> getClubList(Integer serviceProviderId, Integer status, Integer type, String name, Integer userIdentity, Integer groupServiceId, String startTime, String endTime, Integer pageNum, Integer pageSize);
-/**
- * 功能描述: 机构活跃分析
- * @auther: Kaick
- * @date: 2023/8/30 16:54
- * @param serviceProviderId
- * @param status
- * @param type
- * @param name
- * @param userIdentity
- * @param pageNum
- * @param pageSize
- * @return [serviceProviderId, status, type, name, userIdentity, pageNum, pageSize]
- */
+    ResponseJson<PageInfo<ClubVo>> getClubList(Integer serviceProviderId, Integer status, Integer type, String name, Integer userIdentity, Integer groupServiceId, String startTime, String endTime, String activeState, String customerValue, Integer pageNum, Integer pageSize);
+
+    /**
+     * 功能描述: 机构活跃分析
+     * @auther: Kaick
+     * @date: 2023/8/30 16:54
+     * @param serviceProviderId
+     * @param status
+     * @param type
+     * @param name
+     * @param userIdentity
+     * @param pageNum
+     * @param pageSize
+     * @return [serviceProviderId, status, type, name, userIdentity, pageNum, pageSize]
+     */
+    ResponseJson<PaginationVo<ClubVo>> getLivelyClubList(Integer serviceProviderId, Integer status, Integer type, String name, Integer userIdentity, Integer pageNum, Integer pageSize);
 
 
-    ResponseJson<Map<String, Object>> getLivelyClubList(Integer serviceProviderId, Integer status, Integer type, String name, Integer userIdentity, Integer pageNum, Integer pageSize);
+    /**
+     * 获取相关咨询记录机构信息
+     * @param spId
+     * @param type
+     * @param pageNum
+     * @param pageSize
+     * @return
+     */
+    ResponseJson<PaginationVo<ClubVo>> getIsRemarkClub(Integer spId, Integer type, Integer pageNum, Integer pageSize);
+
+    /**
+     * 机构所有的咨询记录
+     * @param clubId
+     * @return
+     */
+    ResponseJson<PaginationVo<RemarksVo>> getClubAllRemark(Integer clubId, Integer pageNum, Integer pageSize);
     /**
     /**
      * 功能描述: 机构活跃分析比例
      * 功能描述: 机构活跃分析比例
      * @auther: Kaick
      * @auther: Kaick

+ 117 - 17
src/main/java/com/caimei365/user/service/impl/SellerServiceImpl.java

@@ -4,6 +4,7 @@ import com.caimei365.user.components.RedisService;
 import com.caimei365.user.components.WeChatService;
 import com.caimei365.user.components.WeChatService;
 import com.caimei365.user.mapper.*;
 import com.caimei365.user.mapper.*;
 import com.caimei365.user.model.ResponseJson;
 import com.caimei365.user.model.ResponseJson;
+import com.caimei365.user.model.dto.ArrDateDto;
 import com.caimei365.user.model.dto.ClubTemporaryDto;
 import com.caimei365.user.model.dto.ClubTemporaryDto;
 import com.caimei365.user.model.dto.LoginCodeDto;
 import com.caimei365.user.model.dto.LoginCodeDto;
 import com.caimei365.user.model.po.ServiceProviderPo;
 import com.caimei365.user.model.po.ServiceProviderPo;
@@ -77,7 +78,7 @@ public class SellerServiceImpl implements SellerService {
      * @return
      * @return
      */
      */
     @Override
     @Override
-    public ResponseJson<PageInfo<ClubVo>> getClubList(Integer serviceProviderId, Integer status, Integer type, String name, Integer userIdentity, Integer groupServiceId, String startTime, String endTime, Integer pageNum, Integer pageSize) {
+    public ResponseJson<PageInfo<ClubVo>> getClubList(Integer serviceProviderId, Integer status, Integer type, String name, Integer userIdentity, Integer groupServiceId, String startTime, String endTime, String activeState, String customerValue, Integer pageNum, Integer pageSize) {
         // 处理时间格式
         // 处理时间格式
         SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
         SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
         try {
         try {
@@ -100,12 +101,12 @@ public class SellerServiceImpl implements SellerService {
                 return ResponseJson.success();
                 return ResponseJson.success();
             }else{
             }else{
                 PageHelper.startPage(pageNum, pageSize);
                 PageHelper.startPage(pageNum, pageSize);
-                clubList = sellerMapper.findClubs(serviceProviderId, status, name, userIdentity, type, startTime, endTime, null);
+                clubList = sellerMapper.findClubs(serviceProviderId, status, name, userIdentity, type, startTime, endTime, activeState, customerValue, null);
             }
             }
         } else if (2 == type) {
         } else if (2 == type) {
             if (null != groupServiceId && groupServiceId > 0) {
             if (null != groupServiceId && groupServiceId > 0) {
                 PageHelper.startPage(pageNum, pageSize);
                 PageHelper.startPage(pageNum, pageSize);
-                clubList = sellerMapper.findClubs(groupServiceId, status, name, userIdentity, 1,  startTime, endTime, null);
+                clubList = sellerMapper.findClubs(groupServiceId, status, name, userIdentity, 1,  startTime, endTime, activeState, customerValue, null);
             } else {
             } else {
                 Integer leaderId = sellerMapper.findLeaderIdByServiceId(serviceProviderId);
                 Integer leaderId = sellerMapper.findLeaderIdByServiceId(serviceProviderId);
                 Integer managerId = sellerMapper.findmanagerIdByServiceId(serviceProviderId);
                 Integer managerId = sellerMapper.findmanagerIdByServiceId(serviceProviderId);
@@ -116,7 +117,7 @@ public class SellerServiceImpl implements SellerService {
                     serviceIds = sellerMapper.findAllServiceIds(serviceProviderId);
                     serviceIds = sellerMapper.findAllServiceIds(serviceProviderId);
                 }
                 }
                 PageHelper.startPage(pageNum, pageSize);
                 PageHelper.startPage(pageNum, pageSize);
-                clubList = sellerMapper.findClubs(serviceProviderId, status, name, userIdentity, type, startTime, endTime, serviceIds);
+                clubList = sellerMapper.findClubs(serviceProviderId, status, name, userIdentity, type, startTime, endTime, activeState, customerValue, serviceIds);
             }
             }
         }
         }
         for (ClubVo club : clubList) {
         for (ClubVo club : clubList) {
@@ -150,12 +151,68 @@ public class SellerServiceImpl implements SellerService {
      * @return
      * @return
      */
      */
     @Override
     @Override
-    public ResponseJson<Map<String, Object>> getLivelyClubList(Integer serviceProviderId, Integer status, Integer type, String name, Integer userIdentity, Integer pageNum, Integer pageSize) {
+    public ResponseJson<PaginationVo<ClubVo>> getLivelyClubList(Integer serviceProviderId, Integer status, Integer type, String name, Integer userIdentity, Integer pageNum, Integer pageSize) {
         PageHelper.startPage(pageNum, pageSize);
         PageHelper.startPage(pageNum, pageSize);
-        Map<String, Object> map = new HashMap<>();
-        map.put("clubList", new PageInfo<>(sellerMapper.findClubs(serviceProviderId, status, name, userIdentity, type,null,null, null)));
-        return ResponseJson.success(map);
+        List<ClubVo> clubList = sellerMapper.findClubs(serviceProviderId, status, name, userIdentity, type, null, null, null, null,null);
+        if (null != clubList) {
+            for (ClubVo club : clubList) {
+                // 添加编号
+                String newClubId = club.getClubId().toString();
+                if (newClubId.length() <= 6) {
+                    for (int i = 0; i <= 6 - newClubId.length(); i ++ ){
+                        newClubId = "0" + newClubId;
+                    }
+                }
+                club.setNewClubId(newClubId);
+            }
+        }
+        PaginationVo<ClubVo> page = new PaginationVo<>(clubList);
+        return ResponseJson.success(page);
+    }
+
+    /**
+     * 获取相关咨询记录机构信息
+     *
+     * @param spId
+     * @param type
+     * @param pageNum
+     * @param pageSize
+     * @return
+     */
+    @Override
+    public ResponseJson<PaginationVo<ClubVo>> getIsRemarkClub(Integer spId, Integer type, Integer pageNum, Integer pageSize) {
+        PageHelper.startPage(pageNum, pageSize);
+        List<ClubVo> remarkClub = sellerMapper.getIsRemarkClub(spId, type);
+        if (null != remarkClub) {
+            for (ClubVo club : remarkClub) {
+                // 添加编号
+                String newClubId = club.getClubId().toString();
+                if (newClubId.length() <= 6) {
+                    for (int i = 0; i <= 6 - newClubId.length(); i++) {
+                        newClubId = "0" + newClubId;
+                    }
+                }
+                club.setNewClubId(newClubId);
+            }
+        }
+        PaginationVo<ClubVo> page = new PaginationVo<>(remarkClub);
+        return ResponseJson.success(page);
+    }
+
+    /**
+     * 机构所有的咨询记录
+     *
+     * @param clubId
+     * @return
+     */
+    @Override
+    public ResponseJson<PaginationVo<RemarksVo>> getClubAllRemark(Integer clubId, Integer pageNum, Integer pageSize) {
+        PageHelper.startPage(pageNum, pageSize);
+        List<RemarksVo> clubAllRemark = sellerMapper.getClubAllRemark(clubId);
+        PaginationVo<RemarksVo> page = new PaginationVo<>(clubAllRemark);
+        return ResponseJson.success(page);
     }
     }
+
     /**
     /**
      * 功能描述: 机构活跃分析比例
      * 功能描述: 机构活跃分析比例
      * @auther: Kaick
      * @auther: Kaick
@@ -167,15 +224,58 @@ public class SellerServiceImpl implements SellerService {
     @Override
     @Override
     public ResponseJson<Map<String, Object>> getLivelyClub(Integer serviceProviderId) {
     public ResponseJson<Map<String, Object>> getLivelyClub(Integer serviceProviderId) {
         Map<String, Object> map = new HashMap<>();
         Map<String, Object> map = new HashMap<>();
-        Map<String, Object> spUserLoginSum = sellerMapper.findSpUserLoginSum(serviceProviderId.toString());
-        Integer loginSum = Integer.valueOf(spUserLoginSum.get("loginSum").toString());
-        Integer not_loginSum = Integer.valueOf(spUserLoginSum.get("not_loginSum").toString());
-//        机构活跃与不活跃占比计算方法,例如:机构活跃数/机构活跃数+机构不活跃数(60/(60+30)=0.666...),保留小数点后2位,四舍五入,0.67;
-        BigDecimal livelyClubProportion = new BigDecimal((loginSum + not_loginSum) != 0 ?(double) loginSum / (loginSum + not_loginSum) * 100 : 0).setScale(2, RoundingMode.UP);
-        map.put("livelyClub", loginSum);
-        map.put("noLivelyClub", not_loginSum);
-        map.put("livelyClubProportion", livelyClubProportion);
-        map.put("noLivelyClubProportion", MathUtil.sub(100, livelyClubProportion).setScale(2));
+        // 该协销下活跃用户数据
+        Map<String, Object> spUserLoginSum = sellerMapper.findSpUserLoginSum(serviceProviderId);
+        if (null != spUserLoginSum) {
+            // 活跃机构数
+            Integer activeNumber = Integer.valueOf(spUserLoginSum.get("active").toString());
+            // 不活跃机构数
+            Integer unActiveNumber = Integer.valueOf(spUserLoginSum.get("unActive").toString());
+            // 总数
+            Integer total = activeNumber + unActiveNumber;
+
+            ArrayList<PortraitMap> portraitMap = new ArrayList<>();
+            // 机构活跃
+            PortraitMap portrait = new PortraitMap();
+            String per = MathUtil.div(activeNumber, total, 2).toString();
+            portrait.setName("活跃机构" + per + "% " + activeNumber + "个");
+            portrait.setValue(activeNumber);
+            portrait.setPer(per);
+            portraitMap.add(portrait);
+            // 机构不活跃
+            portrait = new PortraitMap();
+            per = MathUtil.div(unActiveNumber, total, 2).toString();
+            portrait.setName("不活跃机构  " + per + "%  " + unActiveNumber + "个");
+            portrait.setValue(unActiveNumber);
+            portrait.setPer(per);
+            portraitMap.add(portrait);
+            map.put("portraitMap", portraitMap);
+        }
+        Map<String, Object> remarkClub = sellerMapper.getRemarkClub(serviceProviderId);
+        if (null != remarkClub) {
+            // 有咨询记录的机构数
+            Integer isHaveClub = Integer.valueOf(remarkClub.get("isHaveClub").toString());
+            // 总机构数
+            Integer allclub = Integer.valueOf(remarkClub.get("allclub").toString());
+            // 没有有咨询记录的
+            Integer number = allclub - isHaveClub;
+            // 有咨询记录
+            ArrayList<PortraitMap> portraitMap = new ArrayList<>();
+            PortraitMap portrait = new PortraitMap();
+            String per = MathUtil.div(isHaveClub, allclub, 2).toString();
+            portrait.setName("已填写机构  " + per + "%  " + isHaveClub + "个");
+            portrait.setValue(isHaveClub);
+            portrait.setPer(per);
+            portraitMap.add(portrait);
+            // 机构不活跃
+            portrait = new PortraitMap();
+            per = MathUtil.div(number, allclub, 2).toString();
+            portrait.setName("未填写机构  " + per + "%  " + number + "个");
+            portrait.setValue(number);
+            portrait.setPer(per);
+            portraitMap.add(portrait);
+            map.put("remark", portraitMap);
+        }
         return ResponseJson.success(map);
         return ResponseJson.success(map);
     }
     }
 
 

+ 6 - 6
src/main/resources/mapper/ClubMapper.xml

@@ -513,11 +513,11 @@
     </select>
     </select>
 
 
     <select id="getPriorKeywordList" resultType="java.util.Map">
     <select id="getPriorKeywordList" resultType="java.util.Map">
-        select cusf.keyword as label
+        select cki.keyword as label
         from cm_prior_keyword cpk
         from cm_prior_keyword cpk
-        left join cm_user_search_frequency cusf on cpk.searchId = cusf.id
-        WHERE cpk.delFlag = 0 AND cusf.delStatus = 1
-        order by cusf.dynamicStatus DESC, cpk.addTime desc
+        left join cm_keyword_info cki on cpk.searchId = cki.id
+        WHERE cpk.delFlag = 0 AND cki.delFlag = 1
+        order by cki.dynamicStatus DESC, cpk.addTime desc
     </select>
     </select>
 
 
     <select id="findKeywordExist" resultType="java.lang.Integer">
     <select id="findKeywordExist" resultType="java.lang.Integer">
@@ -529,8 +529,8 @@
     </select>
     </select>
 
 
     <insert id="insertLabel">
     <insert id="insertLabel">
-        insert into cm_user_search_frequency(fromSearch, serviceProviderId, keyword, frequency, trueStatus, dynamicStatus, addTime)
-        values (4, #{serviceProviderId}, #{keyword}, 0, #{trueStatus}, #{dynamicStatus}, now())
+        insert into cm_keyword_info(fromSearch, serviceProviderId, keyword, linkageStatus, dynamicStatus, addTime)
+        values (4, #{serviceProviderId}, #{keyword}, 0, #{dynamicStatus}, now())
     </insert>
     </insert>
 
 
 
 

+ 2 - 2
src/main/resources/mapper/RegisterMapper.xml

@@ -12,13 +12,13 @@
     <insert id="insertOrgan">
     <insert id="insertOrgan">
         insert into cm_organ_value_system
         insert into cm_organ_value_system
             (userID, customerValue, customerStatus, stage, addTime, delType)
             (userID, customerValue, customerStatus, stage, addTime, delType)
-            values(#{userID}, '低价值客户', 3, 0, now(), 1)
+            values(#{userID}, '低价值客户', 3, 0, date_format(now(), '%Y-%m-%d'), 1)
     </insert>
     </insert>
 
 
     <insert id="insertActiveOrgan">
     <insert id="insertActiveOrgan">
         insert into cm_organ_active_system
         insert into cm_organ_active_system
         (userID, activeState, activeStatus, stage, addTime, delType)
         (userID, activeState, activeStatus, stage, addTime, delType)
-        values(#{userID}, '活跃用户', 0, 0, now(), 1)
+        values(#{userID}, '活跃用户', 0, 0, date_format(now(), '%Y-%m-%d'), 1)
     </insert>
     </insert>
 
 
     <insert id="insertClub" parameterType="com.caimei365.user.model.po.ClubPo" keyProperty="clubId" useGeneratedKeys="true">
     <insert id="insertClub" parameterType="com.caimei365.user.model.po.ClubPo" keyProperty="clubId" useGeneratedKeys="true">

+ 176 - 48
src/main/resources/mapper/SellerMapper.xml

@@ -212,12 +212,6 @@
             c.spID = #{serviceProviderId}
             c.spID = #{serviceProviderId}
             AND c.newDeal =1
             AND c.newDeal =1
         </if>
         </if>
-        <if test="status != null and status != 66">
-            AND c.status = #{status}
-        </if>
-        <if test="status == 66">
-            AND c.status IN (1,90,92,93)
-        </if>
         <if test="name != null and name != ''">
         <if test="name != null and name != ''">
             AND (c.name LIKE CONCAT('%',#{name},'%') OR c.linkMan LIKE CONCAT('%',#{name},'%') OR c.contractMobile LIKE CONCAT('%',#{name},'%'))
             AND (c.name LIKE CONCAT('%',#{name},'%') OR c.linkMan LIKE CONCAT('%',#{name},'%') OR c.contractMobile LIKE CONCAT('%',#{name},'%'))
         </if>
         </if>
@@ -232,54 +226,188 @@
             AND (ccs.checkTime <![CDATA[ <= ]]> #{endTime}
             AND (ccs.checkTime <![CDATA[ <= ]]> #{endTime}
                 OR cpr.createTime <![CDATA[ <= ]]> #{endTime})
                 OR cpr.createTime <![CDATA[ <= ]]> #{endTime})
         </if>
         </if>
+        <if test="activeState != null and activeState != ''">
+            AND coas.activeState like concat('%', #{userIdentity}, '%')
+        </if>
+        <if test="customerValue != null and customerValue != ''">
+            AND covs.customerValue like concat('%', #{customerValue}, '%')
+        </if>
+        <if test="status != null">
+            <if test="status == 90">
+                and c.status = 90 and c.userIdentity = 4
+            </if>
+            <if test="status == 1">
+                and c.status = 1 and c.userIdentity = 4
+            </if>
+            <if test="status == 92">
+                and c.status = 92 and c.userIdentity = 4
+            </if>
+            <if test="status != 90 and status != 1 and status != 92 and status != 66">
+                AND c.status = #{status}
+            </if>
+            <if test="status == 66">
+                AND c.status IN (1,90,92,93)
+            </if>
+        </if>
         group by c.clubID
         group by c.clubID
         order by cpr.createTime desc
         order by cpr.createTime desc
     </select>
     </select>
 
 
-    <select id="findSpUserLoginSum" resultType="java.util.HashMap" parameterType="string">
-        select
-        COUNT(  CASE WHEN a.time=1 THEN 1 END) AS loginSum,
-        ((SELECT count(1) from club
-        WHERE  status=90
-        <if test="spID != null">
-            and  spID=#{spID}
-        </if>
-        )-COUNT(  CASE WHEN a.time=1 THEN 1 END)) AS not_loginSum
-        FROM (select a.*
-        FROM ((
-        select
-        c.clubId,1 AS time,c.spID
-        FROM club c
-        LEFT JOIN user u ON u.userID = c.userID
-        LEFT JOIN serviceprovider sp ON sp.serviceProviderID = c.spID
-        where c.status=90 and sp.status=90 and (u.userOrganizeID IN(0,1) or u.clubStatus != 92) and u.userOrganizeID != 4
-        and u.loginTime >= DATE_SUB(CURRENT_DATE, INTERVAL 6 MONTH)
-        GROUP BY c.clubId
-        )UNION(
-        select
-        c.clubId,1 AS time,c.spID
-        FROM club c
-        LEFT JOIN user u ON u.userID = c.userID
-        LEFT JOIN cm_club_remarks ccr ON ccr.clubId = c.clubId
-        LEFT JOIN serviceprovider sp ON sp.serviceProviderID = c.spID
-        where c.status=90 and sp.status=90 and (u.userOrganizeID IN(0,1) or u.clubStatus != 92) and u.userOrganizeID != 4
-        and  ccr.addTime >= DATE_SUB(CURRENT_DATE, INTERVAL 6 MONTH)
-        GROUP BY c.clubId
-        )UNION(
-        select c.clubId,1 AS time,c.spID
+    <select id="getIsRemarkClub" resultType="com.caimei365.user.model.vo.ClubVo">
+        SELECT
+        c.clubId,
+        c.userId,
+        c.name,
+        c.sname AS shortName,
+        c.contractMobile,
+        u.userIdentity,
+        sp.linkMan AS serviceName,
+        coas.activeState AS activeState,
+        covs.customerValue AS customerValue,
+        (
+        SELECT ADDTIME FROM
+        (
+        SELECT
+        ADDTIME
+        FROM cm_club_remarks
+        WHERE  clubId = c.clubId
+        UNION
+        SELECT
+        ADDTIME
+        FROM cm_visitor_remarks
+        WHERE
+        clubId IS NOT NULL AND clubId != ''
+        AND clubId = c.clubId
+        ) b ORDER BY ADDTIME DESC LIMIT 1
+        ) AS ADDTIME
         FROM club c
         FROM club c
-        LEFT JOIN user u ON u.userID = c.userID
-        LEFT JOIN cm_order cr ON cr.clubId = c.clubId
-        LEFT JOIN serviceprovider sp ON sp.serviceProviderID = c.spID
-        where c.status=90 and sp.status=90 and (u.userOrganizeID IN(0,1) or u.clubStatus != 92) and u.userOrganizeID != 4
-        and  cr.orderTime >= DATE_SUB(CURRENT_DATE, INTERVAL 6 MONTH)
-        GROUP BY c.clubId
-        )
-        ) a where  1=1
-        <if test="spID != null">
-            and  a.spID=#{spID}
+        LEFT JOIN USER u ON c.userID = u.userID
+        LEFT JOIN serviceprovider sp ON c.spID = sp.serviceProviderID
+        LEFT JOIN (SELECT userId, activeState FROM cm_organ_active_system WHERE stage = 0 AND delType = 1) coas ON coas.userId = c.userId
+        LEFT JOIN (SELECT userId, customerValue FROM cm_organ_value_system WHERE stage = 0 AND delType = 1) covs ON covs.userID = c.userID
+        LEFT JOIN (SELECT clubId, COUNT(id) AS num  FROM cm_club_remarks GROUP BY clubId
+        UNION
+        SELECT clubId, COUNT(id) AS num FROM cm_visitor_remarks WHERE clubId IS NOT NULL AND clubId != '' GROUP BY clubId ) AS b  ON c.clubId = b.clubId
+        where c.spId = #{spId}
+        <if test="type != null">
+            <if test="type == 1">
+                having b.num > 0
+            </if>
+            <if test="type == 2">
+                having b.num IS NULL OR b.num = 0
+            </if>
         </if>
         </if>
-        GROUP BY a.clubId ) a
+    </select>
+
+    <select id="getClubAllRemark" resultType="com.caimei365.user.model.vo.RemarksVo">
+        select * from
+        (
+        SELECT DISTINCT ccr.id AS remarksId,
+                ccr.remarks,
+                ccr.addTime,
+                ccr.questionMan,
+                ccr.serviceProviderId AS serviceProviderId,
+                ccr.createServiceProviderId AS createServiceProviderId,
+                csr.leaderId AS leaderId,
+                IFNULL(ccr.consultType,'') AS consult,
+                c.Name AS clubName,
+                ccr.clubType AS clubType,
+                ccr.pinceSensitve AS pinceSensitve,
+                ccr.satisfied AS satisfied,
+                ccr.followup AS followup,
+                ccr.extra AS extra,
+                ccr.communicationSituation,
+                ccr.communicationMethods,
+                ccr.customerSource,
+                ccr.customerGender,
+                ccr.groupAddition,
+                ccr.customerAge,
+                ccr.trendsKeyword,
+                ccr.stateKeyword,
+                (SELECT NAME FROM serviceprovider s WHERE s.serviceProviderID= csr.leaderId) AS leaderName,
+                (SELECT linkMan FROM serviceprovider s WHERE s.serviceProviderID = ccr.createServiceProviderId) AS recordName,
+                cmc.status AS STATUS
+        FROM cm_club_remarks ccr
+                 LEFT JOIN serviceprovider s ON ccr.serviceProviderId = s.serviceProviderID
+                 LEFT JOIN club c ON c.clubId=ccr.clubId
+                 LEFT JOIN cm_serviceTeam_group csg ON ccr.createServiceProviderId = csg.serviceId
+                 LEFT JOIN cm_serviceTeam_role csr ON csr.id = csg.teamId
+                 LEFT JOIN cm_club_report cmc ON cmc.clubId = ccr.clubId
+        WHERE ccr.clubId = #{clubId}
+        UNION
+        SELECT DISTINCT ccr.id AS remarksId,
+                ccr.remarks,
+                ccr.addTime AS ADDDATE,
+                ccr.questionMan,
+                ccr.serviceProviderId,
+                ccr.createServiceProviderId AS createServiceProviderId,
+                csr.leaderId AS leaderId,
+                IFNULL(ccr.consultType,'') AS consult,
+                c.Name AS clubName,
+                ccr.clubType AS clubType,
+                ccr.pinceSensitve AS pinceSensitve,
+                ccr.satisfied AS satisfied,
+                ccr.followup AS followup,
+                ccr.extra AS extra,
+                ccr.communicationSituation,
+                ccr.communicationMethods,
+                ccr.customerSource,
+                ccr.customerGender,
+                ccr.groupAddition,
+                ccr.customerAge,
+                ccr.trendsKeyword,
+                ccr.stateKeyword,
+                (SELECT NAME FROM serviceprovider s WHERE s.serviceProviderID = csr.leaderId) AS leaderName,
+                (SELECT linkMan FROM serviceprovider s WHERE s.serviceProviderID = ccr.serviceProviderId) AS recordName,
+                cmc.status AS STATUS
+        FROM cm_visitor_remarks ccr
+                 LEFT JOIN club c ON c.clubId=ccr.clubId
+                 LEFT JOIN serviceprovider s ON ccr.serviceProviderId = s.serviceProviderID
+                 LEFT JOIN cm_serviceTeam_group csg ON ccr.serviceProviderId = csg.serviceId
+                 LEFT JOIN cm_serviceTeam_role csr ON csr.id = csg.teamId
+                 LEFT JOIN cm_club_report cmc ON cmc.Id = ccr.reportID
+        where
+            ccr.remarks IS NOT NULL
+          AND ccr.clubId is NOT null AND ccr.clubId != '' AND ccr.clubId = #{clubId}
+            ) b
+        ORDER BY b.addTime DESC
+    </select>
+
+
+    <select id="findSpUserLoginSum" resultType="java.util.HashMap" parameterType="string">
+        SELECT
+            (CASE coas.activeStatus
+                 WHEN 0 THEN 'active'
+                 WHEN 1 THEN 'unActive'
+                END) AS activeStatus,
+            COUNT(coas.activeStatus) AS number
+        FROM cm_organ_active_system coas
+                 LEFT JOIN club c ON coas.userId = c.userId
+                 LEFT JOIN serviceprovider s ON s.serviceProviderId = c.spId
+        WHERE  s.serviceProviderId = #{spId} AND coas.stage = 0 AND delType = 1
+        GROUP BY coas.activeStatus
+    </select>
+
+    <select id="getRemarkClub" resultType="java.util.Map">
+        SELECT
+            COUNT(clubId) AS isHaveClub,
+            (SELECT COUNT(clubId) FROM club c LEFT JOIN serviceprovider s ON s.serviceProviderId = c.spId WHERE s.serviceProviderId = #{spId})AS allclub
+        FROM
+            (
+                SELECT
+                    clubid AS clubID
+                FROM cm_club_remarks
+                WHERE  createServiceProviderId = #{spId}
+                GROUP BY clubId
+                UNION
+                SELECT
+                    clubId AS clubID
+                FROM cm_visitor_remarks
+                WHERE
+                    clubId IS NOT NULL AND clubId != ''
+                  AND createServiceProviderId = #{spId}
+                GROUP BY clubId
+            ) b
     </select>
     </select>
     <select id="getAllClubList" resultType="com.caimei365.user.model.vo.ClubVo">
     <select id="getAllClubList" resultType="com.caimei365.user.model.vo.ClubVo">
         SELECT DISTINCT c.clubID as clubId, c.userID as userId, c.name, c.sname as shortName, c.contractMobile,
         SELECT DISTINCT c.clubID as clubId, c.userID as userId, c.name, c.sname as shortName, c.contractMobile,