Browse Source

CRM系统升级优化

kaick 1 năm trước cách đây
mục cha
commit
faa0ac62dd
21 tập tin đã thay đổi với 894 bổ sung7 xóa
  1. 3 0
      src/main/java/com/caimei/modules/user/dao/CmSpDao.java
  2. 3 0
      src/main/java/com/caimei/modules/user/dao/NewCmClubDao.java
  3. 40 1
      src/main/java/com/caimei/modules/user/entity/NewCmClub.java
  4. 4 0
      src/main/java/com/caimei/modules/user/service/CmSpService.java
  5. 6 0
      src/main/java/com/caimei/modules/user/service/NewCmClubService.java
  6. 25 1
      src/main/java/com/caimei/modules/user/web/newUser/AgencyController.java
  7. 67 0
      src/main/java/com/caimei/modules/user/web/newUser/SpController.java
  8. 14 0
      src/main/resources/mappings/modules/user/CmSpMapper.xml
  9. 98 1
      src/main/resources/mappings/modules/user/NewCmClubMapper.xml
  10. 3 1
      src/main/webapp/WEB-INF/views/modules/serviceteam/cmServiceteamRoleForm.jsp
  11. 4 2
      src/main/webapp/WEB-INF/views/modules/serviceteam/cmServiceteamRoleList.jsp
  12. 1 0
      src/main/webapp/WEB-INF/views/modules/userNew/cmAgencyList.jsp
  13. 1 0
      src/main/webapp/WEB-INF/views/modules/userNew/cmAgencyStatisticsList.jsp
  14. 242 0
      src/main/webapp/WEB-INF/views/modules/userNew/cmSpClubTrackList.jsp
  15. 2 0
      src/main/webapp/WEB-INF/views/modules/userNew/cmSpForm.jsp
  16. 2 0
      src/main/webapp/WEB-INF/views/modules/userNew/cmSpList.jsp
  17. 245 0
      src/main/webapp/WEB-INF/views/modules/userNew/cmSpLivelyClubFrom.jsp
  18. 131 0
      src/main/webapp/WEB-INF/views/modules/userNew/cmSpLivelyClubList.jsp
  19. 3 1
      src/main/webapp/WEB-INF/views/modules/userNew/cmSpTeamList.jsp
  20. BIN
      src/main/webapp/static/images/left.png
  21. BIN
      src/main/webapp/static/images/right.png

+ 3 - 0
src/main/java/com/caimei/modules/user/dao/CmSpDao.java

@@ -7,6 +7,7 @@ import com.thinkgem.jeesite.common.persistence.annotation.MyBatisDao;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * 用户模块重构-协销人员管理DAO接口
@@ -24,6 +25,8 @@ public interface CmSpDao extends CrudDao<NewCmSp> {
 
     NewCmSp findByUserId(Integer userId);
 
+    Map<String, Object> findSpUserLoginSum(@Param("spID")String spID);
+
     List<CmSaleMan> findTeam();
 
     void choseManager(Integer serviceProviderID);

+ 3 - 0
src/main/java/com/caimei/modules/user/dao/NewCmClubDao.java

@@ -4,6 +4,7 @@ import com.caimei.modules.consult.entity.type.CmConsulttype;
 import com.caimei.modules.project.model.ServiceProviderModel;
 import com.caimei.modules.user.entity.*;
 import com.thinkgem.jeesite.common.persistence.CrudDao;
+import com.thinkgem.jeesite.common.persistence.Page;
 import com.thinkgem.jeesite.common.persistence.annotation.MyBatisDao;
 import org.apache.ibatis.annotations.Param;
 
@@ -18,6 +19,8 @@ import java.util.List;
 @MyBatisDao
 public interface NewCmClubDao extends CrudDao<NewCmClub> {
 
+    List<NewCmClub> findProviderList(NewCmClub userClub);
+
     List<NewCmClub> findClubById(Integer clubID);
 
     List<NewCmClub> textUserValue();

+ 40 - 1
src/main/java/com/caimei/modules/user/entity/NewCmClub.java

@@ -90,9 +90,48 @@ public class NewCmClub extends DataEntity<NewCmClub> {
     private String province; //省
     private String startTime;     //注册时间开始 查询条件
     private String endTime;        //注册时间结束  查询条件
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date providerTime;     //分配协销时间 查询条件
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date loginTime;     //上次登录时间 查询条件
+    private String startLoginTime;     //登录时间开始 查询条件
+    private String endLoginTime;        //登录时间结束  查询条件
     private String userIdentity;  //用户身份
     private Integer svipUserFlag;   //超级会员用户标识,1是,2不是
     private Integer newDeal;//新分配机构状态 0.否,1.是
+
+    public Date getProviderTime() {
+        return providerTime;
+    }
+
+    public void setProviderTime(Date providerTime) {
+        this.providerTime = providerTime;
+    }
+
+    public Date getLoginTime() {
+        return loginTime;
+    }
+
+    public void setLoginTime(Date loginTime) {
+        this.loginTime = loginTime;
+    }
+
+    public String getEndLoginTime() {
+        return endLoginTime;
+    }
+
+    public void setEndLoginTime(String endLoginTime) {
+        this.endLoginTime = endLoginTime;
+    }
+
+    public String getStartLoginTime() {
+        return startLoginTime;
+    }
+
+    public void setStartLoginTime(String startLoginTime) {
+        this.startLoginTime = startLoginTime;
+    }
+
     public String getCheckMan() {
         return checkMan;
     }
@@ -296,7 +335,7 @@ public class NewCmClub extends DataEntity<NewCmClub> {
     }
 
     public Integer getSpID() {
-        return spID;
+        return this.spID;
     }
 
     public void setSpID(Integer spID) {

+ 4 - 0
src/main/java/com/caimei/modules/user/service/CmSpService.java

@@ -13,6 +13,7 @@ import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import java.util.List;
+import java.util.Map;
 
 /**
  * 用户模块重构-协销人员管理Service
@@ -40,6 +41,9 @@ public class CmSpService extends CrudService<CmSpDao, NewCmSp> {
     public Page<NewCmSp> findPage(Page<NewCmSp> page, NewCmSp newCmSp) {
         return super.findPage(page, newCmSp);
     }
+    public Map<String, Object> findSpUserLoginSum(String spID) {
+        return cmSpDao.findSpUserLoginSum(spID);
+    }
 
     @Transactional(readOnly = false)
     public void update(NewCmSp newCmSp) {

+ 6 - 0
src/main/java/com/caimei/modules/user/service/NewCmClubService.java

@@ -60,6 +60,12 @@ public class NewCmClubService extends CrudService<NewCmClubDao, NewCmClub> {
     public Page<NewCmClub> findPage(Page<NewCmClub> page, NewCmClub userClub) {
         return super.findPage(page, userClub);
     }
+    public Page<NewCmClub> findProviderList(Page<NewCmClub> page,NewCmClub userClub) {
+        userClub.setPage(page);
+        List<NewCmClub> providerList = newCmClubDao.findProviderList(userClub);
+        page.setList(providerList);
+        return page;
+    }
 
     @Transactional(readOnly = false)
     public void save(NewCmClub userClub) {

+ 25 - 1
src/main/java/com/caimei/modules/user/web/newUser/AgencyController.java

@@ -177,7 +177,31 @@ public class AgencyController extends BaseController {
         model.addAttribute("spNameList", spNameList);
         return "modules/userNew/cmAgencyList";
     }
-
+    /**
+     * 功能描述: 机构活跃分析查看详情
+     *
+     * @param newCmClub
+     * @param request
+     * @param response
+     * @param model
+     * @return [newCmSp, request, response, model]
+     * @auther: Kaick
+     * @date: 2023/8/25 14:50
+     */
+    @RequestMapping(value = {"cmSpClubTrackList"})
+    public String cmSpClubTrackList(NewCmClub newCmClub, HttpServletRequest request, HttpServletResponse response, Model model) {
+        if (null==newCmClub.getProviderTime()) {
+            Date date = new Date();
+            date.setTime(date.getTime() - 24 * 60 * 60 * 1000);
+            newCmClub.setProviderTime(date);
+        }
+        Page<NewCmClub> page = newCmClubService.findProviderList(new Page<NewCmClub>(request, response, 20), newCmClub);
+        // 协销下拉
+        List<ServiceProviderModel> spNameList = newCmClubDao.spNameList();
+        model.addAttribute("spNameList", spNameList);
+        model.addAttribute("page", page);
+        return "modules/userNew/cmSpClubTrackList";
+    }
     /**
      * 查看运营人员
      *

+ 67 - 0
src/main/java/com/caimei/modules/user/web/newUser/SpController.java

@@ -11,11 +11,13 @@ import com.caimei.modules.project.model.ClubModel;
 import com.caimei.modules.project.model.ServiceProviderModel;
 import com.caimei.modules.sys.utils.ValidateUtils;
 import com.caimei.modules.user.aop.OperationLogAnnotation;
+import com.caimei.modules.user.dao.NewCmClubDao;
 import com.caimei.modules.user.entity.*;
 import com.caimei.modules.user.service.*;
 import com.caimei.utils.AppKeys;
 import com.caimei.utils.DateUtils;
 import com.caimei.utils.MD5Utils;
+import com.caimei.utils.MathUtil;
 import com.google.common.collect.Maps;
 import com.thinkgem.jeesite.common.config.Global;
 import com.thinkgem.jeesite.common.persistence.Page;
@@ -36,6 +38,8 @@ import org.springframework.web.servlet.mvc.support.RedirectAttributes;
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.HashMap;
@@ -68,6 +72,8 @@ public class SpController extends BaseController {
     private SysLogService sysLogService;
     @Resource
     private NewCmClubService newCmClubService;
+    @Resource
+    private NewCmClubDao newCmClubDao;
 
     @ModelAttribute
     public NewCmSp get(@RequestParam(required = false) String id) {
@@ -242,6 +248,67 @@ public class SpController extends BaseController {
         return "modules/userNew/cmSpList";
     }
 
+    /**
+     * 功能描述: 机构活跃分析列表
+     *
+     * @param newCmSp
+     * @param request
+     * @param response
+     * @param model
+     * @return [newCmSp, request, response, model]
+     * @auther: Kaick
+     * @date: 2023/8/25 14:50
+     */
+    @RequestMapping(value = {"cmSpLivelyClubList"})
+    public String cmSpLivelyClubList(NewCmSp newCmSp, HttpServletRequest request, HttpServletResponse response, Model model) {
+        newCmSp.setStatus(90);
+        Page<NewCmSp> page = cmSpService.findPage(new Page<NewCmSp>(request, response), newCmSp);
+        Map<String, Object> spUserLoginSum = cmSpService.findSpUserLoginSum(null);
+        Integer loginSum = Integer.valueOf(spUserLoginSum.get("loginSum").toString());
+        Integer not_loginSum = Integer.valueOf(spUserLoginSum.get("not_loginSum").toString());
+        BigDecimal livelyClubProportion = new BigDecimal(loginSum / (loginSum + not_loginSum) * 100).setScale(2, RoundingMode.UP);
+        model.addAttribute("livelyClub", loginSum);
+        model.addAttribute("nolivelyClub", not_loginSum);
+        model.addAttribute("livelyClubProportion", livelyClubProportion);
+        model.addAttribute("nolivelyClubProportion", MathUtil.sub(100, livelyClubProportion).setScale(2));
+        model.addAttribute("page", page);
+        return "modules/userNew/cmSpLivelyClubList";
+    }
+
+    /**
+     * 功能描述: 机构活跃分析查看详情
+     *
+     * @param NewCmClub
+     * @param request
+     * @param response
+     * @param model
+     * @return [newCmSp, request, response, model]
+     * @auther: Kaick
+     * @date: 2023/8/25 14:50
+     */
+    @RequestMapping(value = {"cmSpLivelyClubFrom"})
+    public String cmSpLivelyClubFrom(NewCmClub newCmClub, HttpServletRequest request, HttpServletResponse response, Model model) {
+        if (StringUtils.isBlank(newCmClub.getStartLoginTime())&&StringUtils.isBlank(newCmClub.getEndLoginTime())) {
+            Date date = new Date();
+            date.setMonth(date.getMonth() - 6);
+            newCmClub.setStartLoginTime(new SimpleDateFormat("yyyy-MM-dd").format(date));
+            newCmClub.setEndLoginTime(new SimpleDateFormat("yyyy-MM-dd").format(new Date()));
+        }
+        Page<NewCmClub> page = newCmClubService.findPage(new Page<NewCmClub>(request, response, 20), newCmClub);
+        Map<String, Object> spUserLoginSum = cmSpService.findSpUserLoginSum(newCmClub.getSpID().toString());
+        Integer loginSum = Integer.valueOf(spUserLoginSum.get("loginSum").toString());
+        Integer not_loginSum = Integer.valueOf(spUserLoginSum.get("not_loginSum").toString());
+        BigDecimal livelyClubProportion = new BigDecimal((loginSum + not_loginSum) != 0 ? loginSum / (loginSum + not_loginSum) * 100 : 0).setScale(2, RoundingMode.UP);
+        model.addAttribute("livelyClub", loginSum);
+        model.addAttribute("nolivelyClub", not_loginSum);
+        model.addAttribute("livelyClubProportion", livelyClubProportion);
+        model.addAttribute("nolivelyClubProportion", MathUtil.sub(100, livelyClubProportion).setScale(2));
+        model.addAttribute("page", page);
+        return "modules/userNew/cmSpLivelyClubFrom";
+    }
+
+
+
     /**
      * 添加协销人员
      *

+ 14 - 0
src/main/resources/mappings/modules/user/CmSpMapper.xml

@@ -157,6 +157,20 @@
 		JOIN user u on a.userID = u.userID
 		where u.registerUserTypeID = 2
 	</select>
+
+    <select id="findSpUserLoginSum" resultType="java.util.HashMap" parameterType="string">
+		select
+		ifnull(COUNT(CASE WHEN u.loginTime >= DATE_SUB(CURRENT_DATE, INTERVAL 6 MONTH) THEN 1 END),0) AS loginSum,
+		ifnull(COUNT(CASE WHEN u.loginTime <![CDATA[ < ]]> DATE_SUB(CURRENT_DATE, INTERVAL 6 MONTH) THEN 1 END),0) AS not_loginSum
+		FROM club c
+		LEFT JOIN user u ON u.userID = c.userID
+		LEFT JOIN serviceprovider sp ON sp.serviceProviderID = c.spID
+		where sp.status=90
+		<if test="spID != null">
+			and  c.spID=#{spID}
+		</if>
+
+	</select>
 	<select id="findSelectList" resultType="com.caimei.modules.user.entity.NewCmSp">
 		SELECT
 		<include refid="newCmSpColumns"/>

+ 98 - 1
src/main/resources/mappings/modules/user/NewCmClubMapper.xml

@@ -98,7 +98,7 @@
     <select id="findList" resultType="NewCmClub">
         SELECT
         <include refid="newCmClubColumns"/>
-        <include refid="otherColumns"/>,u.userPermission,u.source, covs.activeState,covs.customerValue
+        <include refid="otherColumns"/>,u.userPermission,u.source, covs.activeState,covs.customerValue,u.loginTime
         FROM club a
         <include refid="newCmClubJoins"/>
         LEFT JOIN (SELECT userID, activeState, customerValue FROM cm_organ_value_system WHERE stage = 0 AND delType = 1)
@@ -150,6 +150,12 @@
             <if test="endTime != null and endTime != ''">
                 AND (u.registerTime &lt; #{endTime} OR u.registerTime = #{endTime})
             </if>
+            <if test="startLoginTime != null and startLoginTime != ''">
+                AND (u.loginTime &gt; #{startLoginTime} OR u.loginTime = #{startLoginTime})
+            </if>
+            <if test="endLoginTime != null and endLoginTime != ''">
+                AND (u.loginTime &lt; #{endLoginTime} OR u.loginTime = #{endLoginTime})
+            </if>
             <if test="userIdentity != null and userIdentity != '' and userIdentity != '8'.toString()">
                 AND u.userIdentity = #{userIdentity}
             </if>
@@ -207,6 +213,97 @@
         </choose>
     </select>
 
+
+    <select id="findProviderList" resultType="NewCmClub">
+        SELECT
+        <include refid="newCmClubColumns"/>
+        ,case sp.status when 91 then '采美默认协销经理(官方账号)' else sp.linkMan end AS "spName"
+        ,u.userPermission,u.source,u.loginTime,MAX(cpr.createTime) AS providerTime,
+        u.account AS  "account",
+        u.registerTime AS "registerTime",
+        u.registerIP AS "registerIP",
+        u.userName AS "userName",
+        u.bindMobile AS "bindMobile",
+        u.email AS "email",
+        u.userOrganizeID AS "userOrganizeID",
+        u.userIdentity AS "userIdentity",
+        if(csu.delFlag = '0' and now() <![CDATA[ < ]]> csu.endTime,1,0) as svipUserFlag
+        from cm_provider_record cpr
+        LEFT JOIN serviceprovider sp ON sp.serviceProviderID =cpr.spID
+        LEFT JOIN club a ON cpr.clubId = a.clubId
+        LEFT JOIN user u ON u.userID = a.userID
+        LEFT JOIN cm_svip_user csu ON csu.userId = u.userID
+        <where>
+            (u.userOrganizeID IN(0,1) or u.clubStatus != 92) and u.userOrganizeID != 4 and sp.status=90
+            <if test="clubID != null and clubID != ''">
+                AND a.clubID = #{clubID}
+            </if>
+            <if test="clubID == 0">
+                AND a.clubID = #{clubID}
+            </if>
+            <if test="userID != null and userID != ''">
+                AND a.userID = #{userID}
+            </if>
+            <if test="account != null and account != ''">
+                AND u.account = #{account}
+            </if>
+            <if test="name != null and name != ''">
+                AND u.name LIKE concat('%',#{name},'%')
+            </if>
+            <if test="userName != null and userName != ''">
+                AND u.userName LIKE concat('%',#{userName},'%')
+            </if>
+            <if test="status != null and status != ''">
+                AND a.status = #{status}
+            </if>
+            <if test="bindMobile != null and bindMobile != ''">
+                AND u.bindMobile LIKE concat('%',#{bindMobile},'%')
+            </if>
+            <if test="email != null and email != ''">
+                AND u.email LIKE concat('%',#{email},'%')
+            </if>
+            <if test="linkMan != null and linkMan != ''">
+                AND a.linkMan LIKE concat('%',#{linkMan},'%')
+            </if>
+            <if test="startTime != null and startTime != ''">
+                AND (u.registerTime &gt; #{startTime} OR u.registerTime = #{startTime})
+            </if>
+            <if test="endTime != null and endTime != ''">
+                AND (u.registerTime &lt; #{endTime} OR u.registerTime = #{endTime})
+            </if>
+            <if test="startLoginTime != null and startLoginTime != ''">
+                AND (u.loginTime &gt; #{startLoginTime} OR u.loginTime = #{startLoginTime})
+            </if>
+            <if test="endLoginTime != null and endLoginTime != ''">
+                AND (u.loginTime &lt; #{endLoginTime} OR u.loginTime = #{endLoginTime})
+            </if>
+            <if test="providerTime != null and providerTime != ''">
+                AND DATE(cpr.createTime) = DATE(#{providerTime})
+            </if>
+            <if test="userIdentity != null and userIdentity != '' and userIdentity != '8'.toString()">
+                AND u.userIdentity = #{userIdentity}
+            </if>
+            <if test="userIdentity != null and userIdentity != '' and userIdentity == '8'.toString()">
+                AND csu.delFlag = '0' and now() <![CDATA[ < ]]> csu.endTime
+            </if>
+            <if test="newDeal != null">
+                AND a.newDeal =#{newDeal}
+            </if>
+            <if test="spID != null and spID != ''">
+                AND sp.serviceProviderID = #{spID}
+            </if>
+        </where>
+        group by cpr.clubId
+        <choose>
+            <when test="page !=null and page.orderBy != null and page.orderBy != ''">
+                ORDER BY ${page.orderBy}
+            </when>
+            <otherwise>
+                ORDER BY case when a.status = 91 then 0 else 1 end desc,  cpr.createTime DESC
+            </otherwise>
+        </choose>
+    </select>
+
     <insert id="insert" parameterType="NewCmClub" keyProperty="clubID" useGeneratedKeys="true">
         INSERT INTO club(userID,
                          name,

+ 3 - 1
src/main/webapp/WEB-INF/views/modules/serviceteam/cmServiceteamRoleForm.jsp

@@ -86,6 +86,8 @@
     </shiro:hasPermission>
     <li><a href="${ctx}/serviceteam/cmServiceteamRole/">协销小组</a></li>
     <li><a href="${ctx}/new/user/cmSp/leader/">协销总管理员</a></li>
+    <li><a href="${ctx}/new/user/cmSp/cmSpLivelyClubList/">机构活跃分析</a></li>
+
     <li class="active"><a
             href="${ctx}/serviceteam/cmServiceteamRole/form?teamId=${cmServiceteamRole.teamId}">协销小组${not empty cmServiceteamRole.teamId?'编辑':'添加'}</a>
     </li>
@@ -166,4 +168,4 @@
     </div>
 </form:form>
 </body>
-</html>
+</html>

+ 4 - 2
src/main/webapp/WEB-INF/views/modules/serviceteam/cmServiceteamRoleList.jsp

@@ -10,7 +10,7 @@
 	</style>
 	<script type="text/javascript">
 		$(document).ready(function() {
-			
+
 		});
 		function page(n,s){
 			$("#pageNo").val(n);
@@ -26,6 +26,8 @@
 		<shiro:hasPermission name="user:newCmClub:edit"><li><a href="${ctx}/new/user/cmSp/cmSpForm">添加协销人员</a></li></shiro:hasPermission>
 		<li class="active"><a href="${ctx}/serviceteam/cmServiceteamRole/">协销小组</a></li>
 		<li><a href="${ctx}/new/user/cmSp/leader/">协销总管理员</a></li>
+		<li><a href="${ctx}/new/user/cmSp/cmSpLivelyClubList/">机构活跃分析</a></li>
+
 	</ul>
 	<form:form id="searchForm" modelAttribute="cmServiceteamRole" action="${ctx}/serviceteam/cmServiceteamRole/" method="post" class="breadcrumb form-search">
 		<input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
@@ -93,4 +95,4 @@
 	</table>
 	<div class="pagination">${page}</div>
 </body>
-</html>
+</html>

+ 1 - 0
src/main/webapp/WEB-INF/views/modules/userNew/cmAgencyList.jsp

@@ -52,6 +52,7 @@
 <ul class="nav nav-tabs">
     <li class="active"><a href="${ctx}/new/user/agency/">机构基本资料列表</a></li>
     <li><a href="${ctx}/new/user/agency/statisticsList">机构分析统计列表</a></li>
+    <li><a href="${ctx}/new/user/agency/cmSpClubTrackList">新分配机构跟踪管理</a></li>
     <li><a href="${ctx}/user/clubTemporary/">未确认机构</a></li>
     <li><a href="${ctx}/user/cmOperational/">操作日志</a></li>
 </ul>

+ 1 - 0
src/main/webapp/WEB-INF/views/modules/userNew/cmAgencyStatisticsList.jsp

@@ -56,6 +56,7 @@
 <ul class="nav nav-tabs">
     <li><a href="${ctx}/new/user/agency/">机构基本资料列表</a></li>
     <li class="active"><a href="${ctx}/new/user/agency/statisticsList">机构分析统计列表</a></li>
+    <li><a href="${ctx}/new/user/agency/cmSpClubTrackList">新分配机构跟踪管理</a></li>
     <li><a href="${ctx}/user/clubTemporary/">未确认机构</a></li>
     <li><a href="${ctx}/user/cmOperational/">操作日志</a></li>
 </ul>

+ 242 - 0
src/main/webapp/WEB-INF/views/modules/userNew/cmSpClubTrackList.jsp

@@ -0,0 +1,242 @@
+<%@ page import="java.util.Date" %><%--
+  Created by IntelliJ IDEA.
+  User: Administrator
+  Date: 2020/4/12
+  Time: 12:01
+  To change this template use File | Settings | File Templates.
+--%>
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/WEB-INF/views/include/taglib.jsp" %>
+<html>
+<head>
+	<title>机构活跃分析管理</title>
+	<meta name="decorator" content="default"/>
+	<style type="text/css">
+		.table th {
+			text-align: center;
+		}
+
+		.table td {
+			text-align: center;
+		}
+
+		.livelyProportion {
+			background: #f5f5f5;
+			height: 150px;
+			display: flex;
+			list-style: none;
+
+		}
+
+		.livelyProportion > li {
+			flex: 1;
+			text-align: center;
+			margin: auto 0;
+			font-size: 20px;
+			font-weight: bold;
+		}
+
+
+	</style>
+	<script type="text/javascript">
+		$(document).ready(function () {
+		})
+
+		function formatDate(date) {
+			//date为时间戳
+			var date = new Date(date);
+			var Y = date.getFullYear() + '-';
+			var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
+			var D = (date.getDate() < 10 ? '0' + (date.getDate()) : date.getDate());
+			var h = (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':';
+			var m = (date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()) + ':';
+			var s = (date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds());
+			return Y + M + D + " " + h + m + s;
+		}
+
+		function checkProviderTime(type) {
+			var date= new Date($("#providerTime").val()).getTime()
+			$("#providerTime").val(formatDate(date))
+			if(type!=1){
+				date =date+ 24 * 60 * 60 * 1000
+			}else {
+				date =date- 24 * 60 * 60 * 1000
+			}
+			$("#providerTime").val(formatDate(date))
+			$("#searchForm").submit()
+		}
+
+		function page(n, s) {
+			$("#pageNo").val(n);
+			$("#pageSize").val(s);
+			$("#searchForm").submit();
+			return false;
+		}
+
+	</script>
+</head>
+<body>
+<ul class="nav nav-tabs">
+	<li><a href="${ctx}/new/user/agency/list">机构基本资料列表</a></li>
+	<li><a href="${ctx}/new/user/agency/statisticsList">机构分析统计列表</a></li>
+	<li class="active"><a href=${ctx}/new/user/agency/cmSpClubTrackList/">新分配机构跟踪管理</a></li>
+	<li><a href="${ctx}/user/clubTemporary/">未确认机构</a></li>
+	<li><a href="${ctx}/user/cmOperational/">操作日志</a></li>
+</ul>
+
+<ul class="breadcrumb livelyProportion">
+	<li>
+		<div>
+			<img  src="/static/images/left.gif" border="none" onclick="checkProviderTime(1)">
+			<span><fmt:formatDate value="${Date(newCmClub.providerTime.getTime()- 24 * 60 * 60 * 1000)}"
+								  pattern="yyyy年M月dd日 "></fmt:formatDate></span>
+		</div>
+	</li>
+	<li>
+		<div style="font-size: 40px;"><fmt:formatDate value="${newCmClub.providerTime}"
+													  pattern="yyyy年M月dd日 "></fmt:formatDate>
+			<span style="font-size: 20px;color:#0bbbee;position: relative;bottom: 5px">(昨天)</span>
+		</div>
+	</li>
+	<li>
+		<div>
+			<span><fmt:formatDate value="${Date(newCmClub.providerTime.getTime()+ 24 * 60 * 60 * 1000)}"
+								  pattern="yyyy年M月dd日 "></fmt:formatDate></span>
+			<img  src="/static/images/left.gif" border="none"  onclick="checkProviderTime(0)">
+		</div>
+	</li>
+</ul>
+<form:form id="searchForm" modelAttribute="newCmClub" action="${ctx}/new/user/agency/cmSpClubTrackList/" method="post"
+		   class="breadcrumb form-search">
+	<input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
+	<input id="pageSize" name="pageSize" type="hidden" value="${page.pageSize}"/>
+	<input id="providerTime" name="providerTime" type="hidden" value="<fmt:formatDate value="${newCmClub.providerTime}" pattern="yyyy-MM-dd HH:mm:ss"/>"/>
+	<div class="flex-wrap">
+		<div class="item">
+			<label>机构ID:</label>
+			<form:input path="clubID" type="text" htmlEscape="false"
+						maxlength="50" class="input-medium"/>
+		</div>
+		<div class="item">
+			<label>机构名称:</label>
+			<form:input path="name" htmlEscape="false" maxlength="50" class="input-medium"/>
+		</div>
+		<div class="item">
+			<label>联系人:</label>
+			<form:input path="linkMan" htmlEscape="false" maxlength="50" class="input-medium"/>
+		</div>
+		<div class="item">
+			<label>手机号:</label>
+			<form:input path="bindMobile" htmlEscape="false" maxlength="50" class="input-medium"/>
+		</div>
+		<div class="item">
+			<label>协销:</label>
+			<form:select path="spID" class="input-medium">
+				<form:option value="" label="全部"/>
+				<form:options items="${spNameList}" itemLabel="name" itemValue="serviceProviderID" htmlEscape="false"/>
+			</form:select>
+		</div>
+		<div class="item">
+			<input id="btnSubmit" class="btn btn-primary" type="submit" value="查询"/>
+		</div>
+	</div>
+</form:form>
+<sys:message content="${message}"/>
+<table id="contentTable" class="table table-striped table-bordered table-condensed">
+	<thead>
+	<tr>
+		<th>机构ID</th>
+		<th>机构名称</th>
+		<th>协销</th>
+		<th>分配时间</th>
+		<th>联系人</th>
+		<th>手机号</th>
+		<th>机构级别</th>
+		<th>状态</th>
+		<th>注册时间</th>
+		<th>上次登录时间</th>
+		<th>操作</th>
+	</tr>
+	</thead>
+	<tbody>
+	<c:forEach items="${page.list}" var="newCmClubList">
+		<tr>
+			<td>${newCmClubList.clubID}</td>
+			<td>
+				<a href="${ctx}/new/user/agency/clubPortrait?clubID=${newCmClubList.clubID}&clubName=${newCmClubList.name}&dateType=0&type=4">${newCmClubList.name}</a>
+			</td>
+			<td>
+					${newCmClubList.spName}
+			</td>
+			<td><fmt:formatDate value="${newCmClubList.providerTime}"
+								pattern="yyyy-MM-dd HH:mm:ss"></fmt:formatDate></td>
+			<td>${newCmClubList.userName}</td>
+			<td>${newCmClubList.bindMobile}</td>
+
+			<td>
+				<c:if test="${newCmClubList.userIdentity eq 4}">
+					个人机构
+					<c:if test="${newCmClubList.svipUserFlag eq 1}">
+						<font color="red">(超级会员)</font>
+					</c:if>
+					<c:if test="${newCmClubList.svipUserFlag ne 1}">
+						<font color="black">(普通会员)</font>
+					</c:if>
+				</c:if>
+				<c:if test="${newCmClubList.userIdentity eq 2}">
+					资质机构
+					<c:if test="${newCmClubList.svipUserFlag eq 1}">
+						<font color="red">(超级会员)</font>
+					</c:if>
+					<c:if test="${empty newCmClubList.medicalPracticeLicenseImg and newCmClubList.svipUserFlag ne 1}">
+						<font color="red">(高级会员)</font>
+					</c:if>
+					<c:if test="${!empty newCmClubList.medicalPracticeLicenseImg and newCmClubList.svipUserFlag ne 1}">
+						<font color="red">(医美会员)</font>
+					</c:if>
+				</c:if>
+			</td>
+			<td>
+				<c:choose>
+					<c:when test="${newCmClubList.status eq 90}">
+						<font color="green">已上线</font>
+					</c:when>
+					<c:when test="${newCmClubList.status eq 91}">
+						<font color="red">已下线</font>
+					</c:when>
+					<c:when test="${newCmClubList.status eq 92}">
+						<a href="JavaScript:;" onclick="return alertx('不通过原因:${newCmClubList.auditNote}')"
+						   style="text-decoration:underline;"><font color="red">审核未通过</font></a>
+					</c:when>
+					<c:when test="${newCmClubList.status eq 93}">
+						<font color="#BF826C">已确认</font>
+					</c:when>
+					<c:when test="${newCmClubList.status eq 94}">
+						<font color="red">已冻结</font>
+					</c:when>
+					<c:otherwise>
+						${fns:getDictLabel(newCmClubList.status, 'club_status', newCmClubList.status)}
+					</c:otherwise>
+				</c:choose>
+			</td>
+			<td>
+				<fmt:formatDate value="${newCmClubList.registerTime}" pattern="yyyy-MM-dd HH:mm:ss"></fmt:formatDate>
+			</td>
+			<td>
+				<fmt:formatDate value="${newCmClubList.loginTime}" pattern="yyyy-MM-dd HH:mm:ss"></fmt:formatDate>
+			</td>
+			<td>
+				<a href="${ctx}/new/user/agency/regist?clubId=${newCmClubList.clubID}&clubName=${newCmClubList.name}">咨询记录</a>
+				<a href="${ctx}/new/user/agency/spLogs?clubID=${newCmClubList.clubID}">协销更换记录</a>
+			</td>
+		</tr>
+	</c:forEach>
+	</tbody>
+</table>
+<div class="pagination">${page}</div>
+<script>
+</script>
+</body>
+</html>
+

+ 2 - 0
src/main/webapp/WEB-INF/views/modules/userNew/cmSpForm.jsp

@@ -59,6 +59,8 @@
 		<li class="active"><a href="${ctx}/new/user/cmSp/cmSpForm?id=${cmSp.id}"><shiro:hasPermission name="user:newCmClub:edit">${not empty cmSp.id?'编辑':'添加'}</shiro:hasPermission><shiro:lacksPermission name="user:newCmClub:edit">查看</shiro:lacksPermission>协销人员</a></li>
 		<li><a href="${ctx}/serviceteam/cmServiceteamRole/">协销小组</a></li>
 		<li><a href="${ctx}/new/user/cmSp/leader/">协销总管理员</a></li>
+		<li><a href="${ctx}/new/user/cmSp/cmSpLivelyClubList/">机构活跃分析</a></li>
+
 	</ul><br/>
 	<form id="inputForm" onsubmit="return false" action="##" method="post" class="form-horizontal">
 		<div class="control-group">

+ 2 - 0
src/main/webapp/WEB-INF/views/modules/userNew/cmSpList.jsp

@@ -34,6 +34,8 @@
 	<shiro:hasPermission name="user:newCmClub:edit"><li><a href="${ctx}/new/user/cmSp/cmSpForm">添加协销人员</a></li></shiro:hasPermission>
 	<li><a href="${ctx}/serviceteam/cmServiceteamRole/">协销小组</a></li>
 	<li><a href="${ctx}/new/user/cmSp/leader/">协销总管理员</a></li>
+	<li><a href="${ctx}/new/user/cmSp/cmSpLivelyClubList/">机构活跃分析</a></li>
+
 </ul>
 <form:form id="searchForm" modelAttribute="newCmSp" action="${ctx}/new/user/cmSp/cmSpList/" method="post" class="breadcrumb form-search">
 	<input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>

+ 245 - 0
src/main/webapp/WEB-INF/views/modules/userNew/cmSpLivelyClubFrom.jsp

@@ -0,0 +1,245 @@
+<%--
+  Created by IntelliJ IDEA.
+  User: Administrator
+  Date: 2020/4/12
+  Time: 12:01
+  To change this template use File | Settings | File Templates.
+--%>
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/WEB-INF/views/include/taglib.jsp" %>
+<html>
+<head>
+	<title>机构活跃分析管理</title>
+	<meta name="decorator" content="default"/>
+	<style type="text/css">
+		.table th {
+			text-align: center;
+		}
+
+		.table td {
+			text-align: center;
+		}
+
+		.livelyProportion {
+			background: #f5f5f5;
+			height: 150px;
+			display: flex;
+			list-style: none;
+
+		}
+
+		.livelyProportion > li {
+			flex: 1;
+			text-align: center;
+			margin: auto 0
+		}
+
+		.livelyBorder {
+			color: red;
+			border-bottom: red 5px solid;
+		}
+
+	</style>
+	<script type="text/javascript">
+		$(document).ready(function () {
+			if (${newCmClub.startLoginTime ne ''}) {
+				$("#livelyBorder>li:eq(0)").attr("class", "livelyBorder")
+			} else {
+				$("#livelyBorder>li:eq(1)").attr("class", "livelyBorder")
+			}
+			$("#livelyBorder>li").click(function (item) {
+				var dateTime = new Date();
+				$("#livelyBorder>li").attr("class", "")
+				if ($(this).index() == 0) {
+					$("#startLoginTime").attr("value", formatDate(dateTime.setMonth(dateTime.getMonth() - 6)))
+					$("#endLoginTime").attr("value", formatDate(new Date()))
+					$(this).attr("class", "livelyBorder")
+				} else {
+					$("#startLoginTime").attr("value", "")
+					$("#endLoginTime").attr("value", formatDate(dateTime.setMonth(dateTime.getMonth() - 6)))
+					$(this).attr("class", "livelyBorder")
+				}
+				$("#searchForm").submit()
+			})
+		});
+
+		function formatDate(date) {
+			//date为时间戳
+			var date = new Date(date);
+			var Y = date.getFullYear() + '-';
+			var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
+			var D = (date.getDate() < 10 ? '0' + (date.getDate()) : date.getDate());
+			var h = (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':';
+			var m = (date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()) + ':';
+			var s = (date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds());
+			return Y + M + D + " " + h + m + s;
+		}
+
+		function page(n, s) {
+			$("#pageNo").val(n);
+			$("#pageSize").val(s);
+			$("#searchForm").submit();
+			return false;
+		}
+
+	</script>
+</head>
+<body>
+<ul class="nav nav-tabs">
+	<li><a href="${ctx}/new/user/cmSp/cmSpList/">协销人员列表</a></li>
+	<shiro:hasPermission name="user:newCmClub:edit">
+		<li><a href="${ctx}/new/user/cmSp/cmSpForm">添加协销人员</a></li>
+	</shiro:hasPermission>
+	<li><a href="${ctx}/serviceteam/cmServiceteamRole/">协销小组</a></li>
+	<li><a href="${ctx}/new/user/cmSp/leader/">协销总管理员</a></li>
+	<li><a href="${ctx}/new/user/cmSp/cmSpLivelyClubList/">机构活跃分析</a></li>
+	<li class="active"><a href="${ctx}/new/user/cmSp/cmSpLivelyClubFrom/">查看详情</a></li>
+</ul>
+
+<ul class="breadcrumb livelyProportion">
+	<li>
+		<h4>活跃机构</h4>
+		<br>
+		<p>(6个月内有登录商城等行为)</p>
+		<h2>${livelyClub}</h2>
+	</li>
+	<li>
+		<h4>不活跃机构</h4>
+		<br>
+		<p>(6个月内未登录商城等行为)</p>
+		<h2>${nolivelyClub}</h2>
+	</li>
+	<li>
+		<h4>活跃机构占比</h4>
+		<br>
+		<h2>${livelyClubProportion}%</h2>
+	</li>
+	<li>
+		<h4>不活跃机构占比</h4>
+		<br>
+		<h2>${nolivelyClubProportion}%</h2>
+	</li>
+</ul>
+<form:form id="searchForm" modelAttribute="newCmClub" action="${ctx}/new/user/cmSp/cmSpLivelyClubFrom/" method="post"
+		   class="breadcrumb form-search">
+	<input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
+	<input id="pageSize" name="pageSize" type="hidden" value="${page.pageSize}"/>
+	<div class="flex-wrap">
+		<form:hidden path="spID"/>
+		<form:hidden path="startLoginTime"/>
+		<form:hidden path="endLoginTime"/>
+		<div class="item">
+			<label>机构ID:</label>
+			<form:input path="clubID" type="text" htmlEscape="false"
+						maxlength="50" class="input-medium"/>
+		</div>
+		<div class="item">
+			<label>机构名称:</label>
+			<form:input path="name" htmlEscape="false" maxlength="50" class="input-medium"/>
+		</div>
+		<div class="item">
+			<label>联系人:</label>
+			<form:input path="linkMan" htmlEscape="false" maxlength="50" class="input-medium"/>
+		</div>
+		<div class="item">
+			<label>手机号:</label>
+			<form:input path="bindMobile" htmlEscape="false" maxlength="50" class="input-medium"/>
+		</div>
+		<div class="item">
+			<input id="btnSubmit" class="btn btn-primary" type="submit" value="查询"/>
+		</div>
+	</div>
+
+</form:form>
+<sys:message content="${message}"/>
+<div>
+	<ul id="livelyBorder" class="livelyProportion" style="height: 40px;width: 200px;background: white">
+		<li>活跃机构</li>
+		<li>不活跃机构</li>
+	</ul>
+</div>
+<table id="contentTable" class="table table-striped table-bordered table-condensed">
+	<thead>
+	<tr>
+		<th>机构ID</th>
+		<th>机构名称</th>
+		<th>联系人</th>
+		<th>手机号</th>
+		<th>机构级别</th>
+		<th>状态</th>
+		<th>注册时间</th>
+		<th>上次登录时间</th>
+	</tr>
+	</thead>
+	<tbody>
+	<c:forEach items="${page.list}" var="newCmClubList">
+		<tr>
+			<td>${newCmClubList.clubID}</td>
+			<td>
+				<a href="${ctx}/new/user/agency/clubPortrait?clubID=${newCmClubList.clubID}&clubName=${newCmClubList.name}&dateType=0&type=4">${newCmClubList.name}</a>
+			</td>
+			<td>${newCmClubList.userName}</td>
+			<td>${newCmClubList.bindMobile}</td>
+			<td>
+				<c:choose>
+					<c:when test="${newCmClubList.status eq 90}">
+						<font color="green">已上线</font>
+					</c:when>
+					<c:when test="${newCmClubList.status eq 91}">
+						<font color="red">已下线</font>
+					</c:when>
+					<c:when test="${newCmClubList.status eq 92}">
+						<a href="JavaScript:;" onclick="return alertx('不通过原因:${newCmClubList.auditNote}')"
+						   style="text-decoration:underline;"><font color="red">审核未通过</font></a>
+					</c:when>
+					<c:when test="${newCmClubList.status eq 93}">
+						<font color="#BF826C">已确认</font>
+					</c:when>
+					<c:when test="${newCmClubList.status eq 94}">
+						<font color="red">已冻结</font>
+					</c:when>
+					<c:otherwise>
+						${fns:getDictLabel(newCmClubList.status, 'club_status', newCmClubList.status)}
+					</c:otherwise>
+				</c:choose>
+			</td>
+			<td>
+				<c:if test="${newCmClubList.userIdentity eq 4}">
+					个人机构
+					<c:if test="${newCmClubList.svipUserFlag eq 1}">
+						<font color="red">(超级会员)</font>
+					</c:if>
+					<c:if test="${newCmClubList.svipUserFlag ne 1}">
+						<font color="black">(普通会员)</font>
+					</c:if>
+				</c:if>
+				<c:if test="${newCmClubList.userIdentity eq 2}">
+					资质机构
+					<c:if test="${newCmClubList.svipUserFlag eq 1}">
+						<font color="red">(超级会员)</font>
+					</c:if>
+					<c:if test="${empty newCmClubList.medicalPracticeLicenseImg and newCmClubList.svipUserFlag ne 1}">
+						<font color="red">(高级会员)</font>
+					</c:if>
+					<c:if test="${!empty newCmClubList.medicalPracticeLicenseImg and newCmClubList.svipUserFlag ne 1}">
+						<font color="red">(医美会员)</font>
+					</c:if>
+				</c:if>
+			</td>
+			<td>
+				<fmt:formatDate value="${newCmClubList.registerTime}" pattern="yyyy-MM-dd HH:mm:ss"></fmt:formatDate>
+			</td>
+			<td>
+				<fmt:formatDate value="${newCmClubList.loginTime}" pattern="yyyy-MM-dd HH:mm:ss"></fmt:formatDate>
+			</td>
+		</tr>
+	</c:forEach>
+	</tbody>
+</table>
+<div class="pagination">${page}</div>
+<script>
+</script>
+</body>
+</html>
+

+ 131 - 0
src/main/webapp/WEB-INF/views/modules/userNew/cmSpLivelyClubList.jsp

@@ -0,0 +1,131 @@
+<%--
+  Created by IntelliJ IDEA.
+  User: Administrator
+  Date: 2020/4/12
+  Time: 12:01
+  To change this template use File | Settings | File Templates.
+--%>
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/WEB-INF/views/include/taglib.jsp" %>
+<html>
+<head>
+	<title>机构活跃分析管理</title>
+	<meta name="decorator" content="default"/>
+	<style type="text/css">
+		.table th {
+			text-align: center;
+		}
+
+		.table td {
+			text-align: center;
+		}
+
+		.livelyProportion {
+			background: #f5f5f5;
+			height: 150px;
+			display: flex;
+			list-style: none;
+
+		}
+		.livelyProportion>li {
+			flex: 1;
+			text-align: center;
+			margin:  auto 0
+		}
+	</style>
+	<script type="text/javascript">
+		$(document).ready(function () {
+
+		});
+
+		function page(n, s) {
+			$("#pageNo").val(n);
+			$("#pageSize").val(s);
+			$("#searchForm").submit();
+			return false;
+		}
+	</script>
+</head>
+<body>
+<ul class="nav nav-tabs">
+	<li><a href="${ctx}/new/user/cmSp/cmSpList/">协销人员列表</a></li>
+	<shiro:hasPermission name="user:newCmClub:edit">
+		<li><a href="${ctx}/new/user/cmSp/cmSpForm">添加协销人员</a></li>
+	</shiro:hasPermission>
+	<li><a href="${ctx}/serviceteam/cmServiceteamRole/">协销小组</a></li>
+	<li><a href="${ctx}/new/user/cmSp/leader/">协销总管理员</a></li>
+	<li class="active"><a href="${ctx}/new/user/cmSp/cmSpLivelyClubList/">机构活跃分析</a></li>
+</ul>
+
+<ul class="breadcrumb livelyProportion" >
+	<li>
+		<h4>活跃机构</h4>
+		<br>
+		<p>(6个月内有登录商城等行为)</p>
+		<h2>${livelyClub}</h2>
+	</li>
+	<li>
+		<h4>不活跃机构</h4>
+		<br>
+		<p>(6个月内未登录商城等行为)</p>
+		<h2>${nolivelyClub}</h2>
+	</li>
+	<li>
+		<h4>活跃机构占比</h4>
+		<br>
+		<h2>${livelyClubProportion}%</h2>
+	</li>
+	<li>
+		<h4>不活跃机构占比</h4>
+		<br>
+		<h2>${nolivelyClubProportion}%</h2>
+	</li>
+</ul>
+<form:form id="searchForm" modelAttribute="newCmSp" action="${ctx}/new/user/cmSp/cmSpLivelyClubList/" method="post"
+		   class="breadcrumb form-search">
+	<input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
+	<input id="pageSize" name="pageSize" type="hidden" value="${page.pageSize}"/>
+	<div class="ul-form">
+			<%--		<label>协销ID:</label>--%>
+			<%--			<form:input path="serviceProviderID" htmlEscape="false" maxlength="20" class="input-medium"/>--%>
+		<label>协销姓名:</label>
+		<form:input path="linkMan" htmlEscape="false" maxlength="20" class="input-medium"/>
+		<label>手机号:</label>
+		<form:input path="contractMobile" htmlEscape="false" maxlength="20" class="input-medium"/>
+		&nbsp;&nbsp;<input id="btnSubmit" class="btn btn-primary" type="submit" value="查询"/>
+		<div class="clearfix"></div>
+	</div>
+</form:form>
+<sys:message content="${message}"/>
+<table id="contentTable" class="table table-striped table-bordered table-condensed">
+	<thead>
+	<tr>
+		<th>协销ID</th>
+		<th>协销姓名</th>
+		<th>手机号</th>
+		<th>创建时间</th>
+		<th>操作</th>
+	</tr>
+	</thead>
+	<tbody>
+	<c:forEach items="${page.list}" var="newCmSp">
+		<tr>
+			<td>${newCmSp.serviceProviderID}</td>
+			<td>${newCmSp.linkMan}</td>
+			<td>${newCmSp.contractMobile}</td>
+			<td>${newCmSp.addTime}</td>
+			<td>
+				<a href="${ctx}/new/user/cmSp/cmSpLivelyClubFrom?spID=${newCmSp.serviceProviderID}">查看详情</a>
+			</td>
+		</tr>
+	</c:forEach>
+	</tbody>
+</table>
+<div class="pagination">${page}</div>
+<script>
+
+</script>
+</body>
+</html>
+

+ 3 - 1
src/main/webapp/WEB-INF/views/modules/userNew/cmSpTeamList.jsp

@@ -28,6 +28,8 @@
     </shiro:hasPermission>
     <li><a href="${ctx}/serviceteam/cmServiceteamRole/">协销小组</a></li>
     <li class="active"><a href="${ctx}/new/user/cmSp/leader/">协销总管理员</a></li>
+    <li><a href="${ctx}/new/user/cmSp/cmSpLivelyClubList/">机构活跃分析</a></li>
+
 </ul>
 <br/>
 <form:form id="inputForm" modelAttribute="newCmSp" action="${ctx}/new/user/cmSp/leader/save" method="post"
@@ -58,4 +60,4 @@
 </form:form>
 </body>
 
-</html>
+</html>

BIN
src/main/webapp/static/images/left.png


BIN
src/main/webapp/static/images/right.png