Browse Source

用户行为优化1.0.4

huangzhiguo 1 năm trước cách đây
mục cha
commit
2e0228bf0c

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

@@ -97,4 +97,6 @@ public interface NewCmClubDao extends CrudDao<NewCmClub> {
     List<easyExcel> findExcelList(ClubStatistics statistics);
 
     List<String> getClubIds();
+
+    List<ActiveClub> getActiveClubInfo(ActiveClub activeClub);
 }

+ 348 - 0
src/main/java/com/caimei/modules/user/entity/ActiveClub.java

@@ -0,0 +1,348 @@
+package com.caimei.modules.user.entity;
+
+import com.thinkgem.jeesite.common.persistence.DataEntity;
+
+/**
+ * Description
+ *
+ * @author : hzg
+ * @date : 2023/12/29
+ */
+public class ActiveClub  extends DataEntity<ActiveClub> {
+    private Integer userID; // 用户Id
+    private Integer clubID; // 机构Id
+    private String behaviorStartTime; // 最近访问时间开始时间
+    private String behaviorEndTime; // 最近访问时间结束时间
+    private String recentlyStartTime; // 最近咨询时间开始时间
+    private String recentlyEndTime; // 最近咨询时间结束时间
+    private String orderStartTime; // 最近下单时间开始时间
+    private String orderEndTime; // 最近下单时间结束时间
+    private Integer orderByType; // 排序方式 最近访问时间 0  降序 1 升序
+    // 省
+    private String provinceID;
+    // 市
+    private String cityID;
+
+    private String province;
+    private String city;
+    private String town;
+    private String name;    // 机构名称
+    private String linkMan; //联系人
+    private String contractMobile;  //联系手机
+    private String linkManIdentity; //联系人身份:1老板,2采购,3运营,4其他
+    private String spName;      //协销人员
+    private String address;         //详细地址
+    private String userIdentity;    //用户身份
+    private String sname;   //机构简称
+    private String linkManStatus;   //联系人身份
+    private String clubStatus;  // 机构状态
+    private String clubRank;  // 机构级别
+    private String firstClubType;  // 机构一级分类
+    private String classify;  // 机构二级分类
+    private String clubType;  // 机构类型
+    private String addTime;  // 注册时间
+    private String svipUserFlag;  // vip类别
+    private String activeStatus;     // 活跃状态 0:活跃、1:不活跃
+    private String activeState;     // 活跃状态
+    private String customerValues;   // 客户价值
+    private String registerTime;    // 注册时间
+    private String behaviorTime;    // 最近访问时间
+    private String lastOrderTime;  // 最近下单时间
+    private String recentlyTime;    //最近咨询时间
+
+    public Integer getUserID() {
+        return userID;
+    }
+
+    public void setUserID(Integer userID) {
+        this.userID = userID;
+    }
+
+    public Integer getClubID() {
+        return clubID;
+    }
+
+    public void setClubID(Integer clubID) {
+        this.clubID = clubID;
+    }
+
+    public String getBehaviorStartTime() {
+        return behaviorStartTime;
+    }
+
+    public void setBehaviorStartTime(String behaviorStartTime) {
+        this.behaviorStartTime = behaviorStartTime;
+    }
+
+    public String getBehaviorEndTime() {
+        return behaviorEndTime;
+    }
+
+    public void setBehaviorEndTime(String behaviorEndTime) {
+        this.behaviorEndTime = behaviorEndTime;
+    }
+
+    public String getRecentlyStartTime() {
+        return recentlyStartTime;
+    }
+
+    public void setRecentlyStartTime(String recentlyStartTime) {
+        this.recentlyStartTime = recentlyStartTime;
+    }
+
+    public String getRecentlyEndTime() {
+        return recentlyEndTime;
+    }
+
+    public void setRecentlyEndTime(String recentlyEndTime) {
+        this.recentlyEndTime = recentlyEndTime;
+    }
+
+    public String getOrderStartTime() {
+        return orderStartTime;
+    }
+
+    public void setOrderStartTime(String orderStartTime) {
+        this.orderStartTime = orderStartTime;
+    }
+
+    public String getOrderEndTime() {
+        return orderEndTime;
+    }
+
+    public void setOrderEndTime(String orderEndTime) {
+        this.orderEndTime = orderEndTime;
+    }
+
+    public Integer getOrderByType() {
+        return orderByType;
+    }
+
+    public void setOrderByType(Integer orderByType) {
+        this.orderByType = orderByType;
+    }
+
+    public String getProvinceID() {
+        return provinceID;
+    }
+
+    public void setProvinceID(String provinceID) {
+        this.provinceID = provinceID;
+    }
+
+    public String getCityID() {
+        return cityID;
+    }
+
+    public void setCityID(String cityID) {
+        this.cityID = cityID;
+    }
+
+    public String getProvince() {
+        return province;
+    }
+
+    public void setProvince(String province) {
+        this.province = province;
+    }
+
+    public String getCity() {
+        return city;
+    }
+
+    public void setCity(String city) {
+        this.city = city;
+    }
+
+    public String getTown() {
+        return town;
+    }
+
+    public void setTown(String town) {
+        this.town = town;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getLinkMan() {
+        return linkMan;
+    }
+
+    public void setLinkMan(String linkMan) {
+        this.linkMan = linkMan;
+    }
+
+    public String getContractMobile() {
+        return contractMobile;
+    }
+
+    public void setContractMobile(String contractMobile) {
+        this.contractMobile = contractMobile;
+    }
+
+    public String getLinkManIdentity() {
+        return linkManIdentity;
+    }
+
+    public void setLinkManIdentity(String linkManIdentity) {
+        this.linkManIdentity = linkManIdentity;
+    }
+
+    public String getSpName() {
+        return spName;
+    }
+
+    public void setSpName(String spName) {
+        this.spName = spName;
+    }
+
+    public String getAddress() {
+        return address;
+    }
+
+    public void setAddress(String address) {
+        this.address = address;
+    }
+
+    public String getUserIdentity() {
+        return userIdentity;
+    }
+
+    public void setUserIdentity(String userIdentity) {
+        this.userIdentity = userIdentity;
+    }
+
+    public String getSname() {
+        return sname;
+    }
+
+    public void setSname(String sname) {
+        this.sname = sname;
+    }
+
+    public String getLinkManStatus() {
+        return linkManStatus;
+    }
+
+    public void setLinkManStatus(String linkManStatus) {
+        this.linkManStatus = linkManStatus;
+    }
+
+    public String getClubStatus() {
+        return clubStatus;
+    }
+
+    public void setClubStatus(String clubStatus) {
+        this.clubStatus = clubStatus;
+    }
+
+    public String getClubRank() {
+        return clubRank;
+    }
+
+    public void setClubRank(String clubRank) {
+        this.clubRank = clubRank;
+    }
+
+    public String getFirstClubType() {
+        return firstClubType;
+    }
+
+    public void setFirstClubType(String firstClubType) {
+        this.firstClubType = firstClubType;
+    }
+
+    public String getClassify() {
+        return classify;
+    }
+
+    public void setClassify(String classify) {
+        this.classify = classify;
+    }
+
+    public String getClubType() {
+        return clubType;
+    }
+
+    public void setClubType(String clubType) {
+        this.clubType = clubType;
+    }
+
+    public String getAddTime() {
+        return addTime;
+    }
+
+    public void setAddTime(String addTime) {
+        this.addTime = addTime;
+    }
+
+    public String getSvipUserFlag() {
+        return svipUserFlag;
+    }
+
+    public void setSvipUserFlag(String svipUserFlag) {
+        this.svipUserFlag = svipUserFlag;
+    }
+
+    public String getActiveStatus() {
+        return activeStatus;
+    }
+
+    public void setActiveStatus(String activeStatus) {
+        this.activeStatus = activeStatus;
+    }
+
+    public String getActiveState() {
+        return activeState;
+    }
+
+    public void setActiveState(String activeState) {
+        this.activeState = activeState;
+    }
+
+    public String getCustomerValues() {
+        return customerValues;
+    }
+
+    public void setCustomerValues(String customerValues) {
+        this.customerValues = customerValues;
+    }
+
+    public String getRegisterTime() {
+        return registerTime;
+    }
+
+    public void setRegisterTime(String registerTime) {
+        this.registerTime = registerTime;
+    }
+
+    public String getBehaviorTime() {
+        return behaviorTime;
+    }
+
+    public void setBehaviorTime(String behaviorTime) {
+        this.behaviorTime = behaviorTime;
+    }
+
+    public String getLastOrderTime() {
+        return lastOrderTime;
+    }
+
+    public void setLastOrderTime(String lastOrderTime) {
+        this.lastOrderTime = lastOrderTime;
+    }
+
+    public String getRecentlyTime() {
+        return recentlyTime;
+    }
+
+    public void setRecentlyTime(String recentlyTime) {
+        this.recentlyTime = recentlyTime;
+    }
+}

+ 10 - 0
src/main/java/com/caimei/modules/user/web/newUser/AgencyController.java

@@ -2013,4 +2013,14 @@ public class AgencyController extends BaseController {
         }
         return map;
     }
+
+    /**
+     * 机构活跃详情
+     * @return
+     */
+    @RequestMapping("/findActiveClubInfo")
+    public String findActiveClubInfo() {
+
+        return "";
+    }
 }

+ 109 - 0
src/main/resources/mappings/modules/user/NewCmClubMapper.xml

@@ -1411,4 +1411,113 @@
             AND a.status =90 and u.userOrganizeID IN(0,1)  AND u.userIdentity != 8
         </where>
     </select>
+
+    <select id="getActiveClubInfo" resultType="com.caimei.modules.user.entity.ActiveClub">
+        SELECT
+        DISTINCT u.userId,
+        coas.activeStatus,
+        c.clubID,
+        c.name,
+        c.linkMan,
+        c.contractMobile,
+        c.linkManIdentity,
+        c.address,
+        u.userIdentity,
+        c.sname,
+        c.info,
+        d.name AS "province",
+        c.name AS "city",
+        b.name AS  "town",
+        (CASE WHEN c.linkManIdentity=1 THEN '老板'
+        WHEN c.linkManIdentity=2 THEN '采购'
+        WHEN c.linkManIdentity=3 THEN '运营'
+        WHEN c.linkManIdentity=4 THEN '其他'
+        END) AS linkManStatus,
+        (CASE WHEN c.status = 1 THEN '待审核'
+        WHEN c.status=91 THEN '已下线'
+        WHEN c.status=90 THEN '已上线'
+        WHEN c.status=92 THEN '审核未通过'
+        WHEN c.status=93 THEN '已确认'
+        ELSE '已冻结' END) AS clubStatus,
+        (CASE WHEN u.userIdentity=2 THEN '资质机构'
+        ELSE '个人机构' END) AS clubRank,
+        (CASE WHEN c.firstClubType=1 THEN '医美'
+        WHEN c.firstClubType=2 THEN '生美'
+        WHEN c.firstClubType=3 THEN '项目公司'
+        WHEN c.firstClubType=4 THEN '个人'
+        ELSE '其他' END) AS firstClubType,
+        (CASE WHEN c.secondClubType=1 THEN '诊所'
+        WHEN c.secondClubType=2 THEN '门诊'
+        WHEN c.secondClubType=3 THEN '医院'
+        WHEN c.secondClubType=5 THEN '美容院'
+        WHEN c.secondClubType=6 THEN '养生馆'
+        WHEN c.secondClubType=7 THEN '其他'
+        END) AS classify,
+        c.addTime AS addTime,
+        IF(csu.delFlag = '0' AND NOW() <![CDATA[ < ]]> csu.endTime,1,0) AS svipUserFlag,
+        CASE sp.status WHEN 91 THEN '采美默认协销经理(官方账号)' ELSE sp.linkMan END AS spName,
+        cb.accessTime AS behaviorTime,
+        ccr.addTime AS recentlyTime,
+        cso.orderTime as lastOrderTime
+        FROM club c
+        LEFT JOIN cm_organ_active_system coas ON coas.userId = c.userID
+        LEFT JOIN USER u ON u.userId = c.userId
+        LEFT JOIN cm_svip_user csu ON csu.userId = u.userID
+        LEFT JOIN serviceprovider sp ON sp.serviceProviderID = c.spID
+        LEFT JOIN town b ON b.townID = c.townID
+        LEFT JOIN city ct ON ct.cityID = c.cityID
+        LEFT JOIN province d ON d.provinceID = c.provinceID
+        LEFT JOIN (SELECT userId, MAX(accessTime) AS accessTime FROM cm_behavior_record WHERE delFlag = 0 AND userId != 0 GROUP BY userId) cb ON cb.userId = c.userId
+        LEFT JOIN (SELECT clubId, addTime FROM cm_club_remarks UNION SELECT clubId, addTime FROM cm_visitor_remarks WHERE clubId IS NOT NULL AND clubId != '') ccr ON ccr.clubId = c.clubId
+        LEFT JOIN (SELECT userId, MAX(orderTime) AS orderTime FROM cm_shop_order  GROUP BY userId) cso ON cso.userId = c.userId
+        <where>
+            coas.stage = 0
+            <if test="clubID != null and clubID != ''">
+                AND c.clubID = #{clubID}
+            </if>
+            <if test="name != null and name != ''">
+                AND c.name LIKE concat('%',#{name},'%')
+            </if>
+            <if test="linkMan != null and linkMan != ''">
+                AND c.linkMan LIKE concat('%',#{linkMan},'%')
+            </if>
+            <if test="contractMobile != null and contractMobile != ''">
+                AND c.contractMobile LIKE concat('%',#{contractMobile},'%')
+            </if>
+            <if test="spID != null and spID != ''">
+                AND c.spID = #{spID}
+            </if>
+            <if test="firstClubType != null and firstClubType != ''">
+                AND c.firstClubType = #{firstClubType}
+            </if>
+            <if test="userIdentity != null and userIdentity != ''">
+                AND u.userIdentity = #{userIdentity}
+            </if>
+            <if test="registerStartTime != null and registerStartTime != ''">
+                AND u.registerTime <![CDATA[ >= ]]> #{registerStartTime}
+            </if>
+            <if test="registerEndTime != null and registerEndTime != ''">
+                AND u.registerTime <![CDATA[ <= ]]> #{registerEndTime}
+            </if>
+            <if test="behaviorStartTime != null and behaviorStartTime != ''">
+                AND cb.accessTime <![CDATA[ >= ]]> #{behaviorStartTime}
+            </if>
+            <if test="behaviorEndTime != null and behaviorEndTime != ''">
+                AND cb.accessTime <![CDATA[ <= ]]> #{behaviorEndTime}
+            </if>
+            <if test="recentlyStartTime != null and recentlyStartTime != ''">
+                AND ccr.addTime <![CDATA[ >= ]]> #{recentlyStartTime}
+            </if>
+            <if test="recentlyEndTime != null and recentlyEndTime != ''">
+                AND ccr.addTime <![CDATA[ <= ]]> #{recentlyEndTime}
+            </if>
+            <if test="orderStartTime != null and orderStartTime != ''">
+                AND cso.orderTime <![CDATA[ >= ]]> #{orderStartTime}
+            </if>
+            <if test="orderEndTime != null and orderEndTime != ''">
+                AND cso.orderTime <![CDATA[ <= ]]> #{orderEndTime}
+            </if>
+        </where>
+        ORDER BY cb.accessTime DESC
+    </select>
 </mapper>

+ 321 - 0
src/main/webapp/WEB-INF/views/modules/userNew/activeClubInfoList.jsp

@@ -0,0 +1,321 @@
+<%@ 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">
+        .reg-row .new-tag.active{border:1px solid #de5801}
+        .reg-row{margin-bottom:20px}
+        .reg-row .reg-label{display:inline-block;width:120px;text-align:right;font-size:13px}
+        .the-oradio{display:inline-block;vertical-align:top}
+        .the-oradio div{width:85px;display:inline-block;font-size:12px;color:#666}
+        .the-oradio div input[type="radio"]{width:17px;height:17px;margin-right:5px;vertical-align:text-top}
+        .med-option{display:block;margin:10px 0 0 125px}
+        .reg-row .business-license{position:relative;display:inline-block;width:166px;height:123px;border-radius:6px;margin:18px 0 0 125px}
+        #medicalPracticeLicenseImgPreview{display:inline-block}
+        .qualification{margin-top:20px}
+        .reg-row .tags-area{display:inline-block;width:420px}
+        .reg-row .new-tag{display:inline-block;width:70px;border:1px solid #e5e5e5;border-radius:6px;padding:5px;margin-right:14px;margin-bottom:14px;text-align:center;font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}
+        .reg-row .tags-operate{margin-left:125px}
+        .reg-row .reg-input{width:336px;height:32px;padding:0 8px;margin-right:20px;border:1px solid #dcdcdc;border-radius:6px}
+        .reg-row .tags-operate .tag-input{width:159px;margin-right:13px;display:none;vertical-align:top}
+        .reg-row .tags-operate .tag-add{line-height:20px;vertical-align:middle;margin-bottom:0;vertical-align:top}
+        .reg-row .tags-area{vertical-align:top}
+        .tag-add{display:none}
+        .table th{text-align:center}
+        .table td{text-align:center}
+        .modal{width:700px;margin-left:-350px}
+        #myModal{display:none}
+        .modal-body{max-height:300px !important}
+        .modal.fade.in{top:0 !important}
+        #btnSubmit{margin-left:20px}
+        .flex-wrap .item{margin-right:20px}
+        #auditBox{padding:20px;line-height:30px}
+        #auditBox .bd-row{display:flex;margin-bottom:15px}
+        #auditBox .bd-row > span{display:inline-block;width:60px}
+        #auditBox .auditCheckBox{width:250px}
+        #auditBox .auditCheckBox label{margin:0 5px 5px 0}
+        #auditBox .auditCheckBox input{display:none}
+        #auditBox .auditCheckBox input + span{display:inline-block;line-height:24px;padding:0 12px;border:1px solid #666;border-radius:5px}
+        #auditBox .auditCheckBox input:checked + span{background-color:#E6633A}
+        #alertModal{width:300px;height:200px;border:1px solid #ebebeb;border-radius:10px;position:fixed;top:0;bottom:0;left:0;right:0;margin:auto;background:#FFFFFF;display:none}
+        #alertModal .title{height:50px;line-height:50px;font-size:14px;font-weight:bold;text-align:center;position:relative;border-bottom:1px solid #EBEBEB}
+        #alertModal .close{width:50px;height:50px;display:block;position:absolute;right:0;top:0;line-height:50px;color:#000;font-weight:bold;text-align:center;font-style:normal;font-size:18px}
+        #alertModal .alert-content{width:260px;height:60px;padding:20px}
+        #alertModal .alertModal-btn{width:260px;height:49px;padding:0 20px;border-top:1px solid #EBEBEB}
+        #alertModal .alertModal-btn button{float:right;margin:5px}
+        .acticer_span{display: inline-block;width: 14px;height: 14px;border-radius: 50%;box-sizing: border-box;border: 1px solid #999999;text-align: center;color: #333333;font-size: 12px;line-height: 14px;float: none;margin-left: 3px;}
+        /*#items{border-bottom: #0d0d0d 1px dashed}*/
+        .viewDiv{position: relative; margin: 0 auto;margin-top: 10px; width: 100%; height: 1px; background-color: #d4d4d4; text-align: center; font-size: 16px; color: rgba(101, 101, 101, 1);}
+        .autoView{position: absolute; left: 90%; background-color: #ffffff;margin-left: 100px; padding: 0 15px; transform: translateX(-30%) translateY(-30%);}
+    </style>
+    <link href="${ctxStatic}/modules/cmAgencyStatisticsList/cmAgencyStatisticsList.css" rel="stylesheet">
+</head>
+<body>
+<ul class="nav nav-tabs">
+    <li><a href="${ctx}/new/user/agency/clubSales">机构-协销列表</a></li>
+    <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}/new/user/cmSp/cmSpLivelyClubList/">机构活跃分析</a></li>
+    <li><a href="${ctx}/user/clubTemporary/">未确认机构</a></li>
+    <li><a href="${ctx}/user/cmOperational/">操作日志</a></li>
+</ul>
+<form:form id="searchForm" modelAttribute="statistics" action="${ctx}/new/user/agency/statisticsList" 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="payTotalMonthType" name="payTotalMonthType" type="hidden" value="${statistics.payTotalMonthType}"/>
+    <input id="orderCountMonthType" name="orderCountMonthType" type="hidden" value="${statistics.orderCountMonthType}"/>
+    <input id="payTotalYearType" name="payTotalYearType" type="hidden" value="${statistics.payTotalYearType}"/>
+    <input id="orderCountYearType" name="orderCountYearType" type="hidden" value="${statistics.orderCountYearType}"/>
+    <input id="payTotalType" name="payTotalType" type="hidden" value="${statistics.payTotalType}"/>
+    <div class="flex-wrap">
+        <div id="items" class="flex-wrap">
+            <div class="item">
+                <label>注册时间:</label>
+                <form:input path="registerStartTime" type="text" maxlength="20" class="input-mini Wdate" value="${registerStartTime}"
+                            onclick="WdatePicker({dateFmt:'yyyy-MM-dd',isShowClear:false});"/>
+                -
+                <form:input path="registerEndTime" type="text" maxlength="20" class="input-mini Wdate" value="${registerEndTime}"
+                            onclick="WdatePicker({dateFmt:'yyyy-MM-dd',isShowClear:false});"/>
+            </div>
+            <div class="item">
+                <label>最近下单时间:</label>
+                <form:input path="searchStartTime" type="text" maxlength="20" class="input-mini Wdate" value="${searchStartTime}"
+                            onclick="WdatePicker({dateFmt:'yyyy-MM-dd',isShowClear:false});"/>
+                -
+                <form:input path="searchEndTime" type="text" maxlength="20" class="input-mini Wdate" value="${searchEndTime}"
+                            onclick="WdatePicker({dateFmt:'yyyy-MM-dd',isShowClear:false});"/>
+            </div>
+            <label class="control-label">机构类型:</label>
+            <form:select path="customerValue" class="input-medium">
+                <form:option value="" label="请选择"/>
+                <form:option value="1" label="医美"/>
+                <form:option value="2" label="生美"/>
+                <form:option value="3" label="项目公司"/>
+                <form:option value="4" label="个人"/>
+                <form:option value="0" label="其他"/>
+            </form:select>
+            <div class="item">
+                <label>机构级别:</label>
+                <form:select path="searchUserIdentity" class="input-medium">
+                    <form:option value="" label="请选择"/>
+                    <form:option value="4" label="个人机构"/>
+                    <form:option value="2" label="资质机构"/>
+                    <form:option value="8" label="超级会员"/>
+                </form:select>
+            </div>
+            <div class="item">
+                <label> 状态:</label>
+                <form:select path="searchStatus" class="input-medium">
+                    <form:option value="" label="请选择"/>
+                    <form:options items="${fns:getDictList('club_status')}" itemLabel="label" itemValue="value"
+                                  htmlEscape="false"/>
+                </form:select>
+            </div>
+            <label class="control-label">联系人身份:</label>
+            <form:select path="linkManIdentity" class="input-medium">
+                <form:option value="" label="请选择"/>
+                <form:option value="1" label="老板"/>
+                <form:option value="2" label="采购"/>
+                <form:option value="3" label="运营"/>
+                <form:option value="4" label="其他"/>
+            </form:select>
+        <div class="viewDiv">
+            <input id="btnSubmit" class="btn autoView btn-primary" type="button" value="查询"/>
+            <input id="export" class="btn autoView btn-primary" type="button" value="导出"/>
+        </div><br/>
+        <div class="flex-wrap">
+            <label class="control-label">近一个月购买额:</label>
+            <form:select id="payTotalMonth" path="payTotalMonth" class="input-medium">
+                <form:option value="" label="请选择"/>
+                <form:option value="1" label="小于1万"/>
+                <form:option value="2" label="1万至10万"/>
+                <form:option value="3" label="10万至100万"/>
+                <form:option value="4" label="大于100万"/>
+            </form:select>
+            <label class="control-label">近一年购买额:</label>
+            <form:select id ="payTotalYear" path="payTotalYear" class="input-medium">
+                <form:option value="" label="请选择"/>
+                <form:option value="1" label="小于1万"/>
+                <form:option value="2" label="1万至10万"/>
+                <form:option value="3" label="10万至100万"/>
+                <form:option value="4" label="大于100万"/>
+            </form:select>
+            <div class="item">
+                <label>自定义统计时间:</label>
+                <form:input id="customStartTime" path="customStartTime" type="text" maxlength="20" class="input-mini Wdate" value="${customStartTime}"
+                            onclick="WdatePicker({dateFmt:'yyyy-MM-dd',isShowClear:false});"/>
+                -
+                <form:input id="customEndTime" path="customEndTime" type="text" maxlength="20" class="input-mini Wdate" value="${customEndTime}"
+                            onclick="WdatePicker({dateFmt:'yyyy-MM-dd',isShowClear:false});"/>
+            </div>
+            <label class="control-label">总购买额:</label>
+            <form:select id="payTotal" path="payTotal" class="input-medium">
+                <form:option value="" label="请选择"/>
+                <form:option value="1" label="小于1万"/>
+                <form:option value="2" label="1万至10万"/>
+                <form:option value="3" label="10万至100万"/>
+                <form:option value="4" label="大于100万"/>
+            </form:select>
+        </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 class="th-sort">
+            近一个月订单数
+            <div class="sort sort-button" id="sort-button1">
+                <a href="${ctx}/new/user/agency/statisticsList?orderByType=0" class="icon icon-up"></a>
+                <a href="${ctx}/new/user/agency/statisticsList?orderByType=1" class="icon icon-down"></a>
+            </div>
+        </th>
+        <th>最常搜索词</th>
+        <th>最近下单时间</th>
+        <th>操作</th>
+    </tr>
+    </thead>
+    <tbody>
+    <c:forEach items="${page.list}" var="clubList">
+        <tr>
+            <td>${clubList.clubID}</td>
+            <td>
+                    ${clubList.name}
+            </td>
+            <td>
+                    ${clubList.linkMan}
+            </td>
+            <td>
+                <c:if test="${clubList.linkManStatus ne null}">
+                    ${clubList.linkManStatus}
+                </c:if>
+                <c:if test="${clubList.linkManStatus eq null}">
+                    ---
+                </c:if>
+            </td>
+            <td>
+                    ${clubList.contractMobile}
+            </td>
+            <td>
+                    ${clubList.spName}
+            </td>
+            <td>${clubList.clubStatus}</td>
+            <td>
+                <c:if test="${clubList.firstClubType != null || clubList.firstClubType != ''}">
+                    ${clubList.firstClubType}
+                </c:if>
+                <c:if test="${clubList.classify ne null}">
+                    - ${clubList.classify}
+                </c:if>
+                <c:if test="${clubList.firstClubType == null and clubList.firstClubType == '' and clubList.classify == null and clubList.classify == ''}">
+                    ---
+                </c:if>
+            </td>
+            <td>
+                <c:if test="${clubList.userIdentity eq 4}">
+                    个人机构
+                </c:if>
+                <c:if test="${clubList.userIdentity eq 2}">
+                    资质机构
+                </c:if>
+                <c:if test="${clubList.svipUserFlag eq 1}">
+                    <font color="red">(超级会员)</font>
+                </c:if>
+                <c:if test="${clubList.userIdentity eq 2 and clubList.svipUserFlag eq 0}">
+                    <font color="red">(普通会员)</font>
+                </c:if>
+            </td>
+            <td>
+                <c:if test="${clubList.addTime != null || clubList.addTime != '' || clubList.addTime ne null}">
+                    ${clubList.addTime}
+                    <%--<fmt:formatDate value="${clubList.addTime}" pattern="yyyy-MM-dd HH:mm:ss"></fmt:formatDate>--%>
+                </c:if>
+                <c:if test="${clubList.addTime == null || clubList.addTime == '' || clubList.addTime eq null}">
+                    ---
+                </c:if>
+            </td>
+            <td class="td-none">${clubList.orderCountMonth}</td>
+            <td class="td-none">${clubList.orderCountYear}</td>
+            <td class="td-none">${clubList.payTotalMonth}</td>
+            <td class="td-none">${clubList.payTotalYear}</td>
+            <td class="td-none">${clubList.payTotal}</td>
+            <td class="td-none">
+                <c:if test="${clubList.pageLabel ne null}">
+                    ${clubList.pageLabel}
+                </c:if>
+                <c:if test="${clubList.pageLabel eq null}">
+                    ---
+                </c:if>
+            </td>
+            <td class="td-none">${clubList.lastOrderTime}</td>
+            <td>
+                <a href="${ctx}/new/user/agency/clubPortrait?clubID=${clubList.clubID}&clubName=${clubList.name}&dateType=0&type=4">查看详情</a>
+            </td>
+        </tr>
+    </c:forEach>
+    </tbody>
+</table>
+<div class="pagination">${page}</div>
+<script type="text/javascript">
+    function page(n,s) {
+        $('#pageNo').val(n);
+        $('#pageSize').val(s);
+        $('#searchForm').submit();
+        return false;
+    }
+    $(function () {
+        const typeMap = {
+            1: {
+                val: $("#orderCountMonthType").val() ? $("#orderCountMonthType").val() * 1 : null,
+                dom: $('#sort-button1')
+            },
+            2: {
+                val: $("#orderCountYearType").val() ? $("#orderCountYearType").val() * 1 : null,
+                dom: $('#sort-button2')
+            }
+        }
+        const setActiveFn = function (type,num){
+            if( type === 0){
+                typeMap[num].dom.find('.icon-up').addClass('active');
+            }else{
+                typeMap[num].dom.find('.icon-down').addClass('active');
+            }
+        }
+        // 最近访问时间 1 降序  2 升序
+        if(typeMap[1].val || typeMap[1].val === 0) {
+            setActiveFn(typeMap[1].val,1)
+        }
+        // 最近访问时间  1 降序  2 升序
+        if(typeMap[2].val || typeMap[2].val === 0) {
+            setActiveFn(typeMap[2].val,2)
+        }
+        $("#export").click(function () {
+            var formData = $('#searchForm').serialize()
+            window.location.href= "${ctx}/new/user/agency/club/export?"+formData
+        })
+        $('#btnSubmit').click(function () {
+            const payTotalMonth = $('#payTotalMonth').val();
+            const payTotalYear = $('#payTotalYear').val();
+            const customStartTime = $('#customStartTime').val();
+            const customEndTime = $('#customEndTime').val();
+            const payTotal = $('#payTotal').val();
+            $('#searchForm').submit();
+        })
+    })
+</script>
+</body>
+</html>