浏览代码

用户行为记录显示

huangzhiguo 2 年之前
父节点
当前提交
f91519ed1d

+ 8 - 0
src/main/java/com/caimei/modules/user/dao/CmBehaviorRecordDao.java

@@ -4,6 +4,8 @@ import com.caimei.modules.user.entity.CmBehaviorRecord;
 import com.thinkgem.jeesite.common.persistence.CrudDao;
 import com.thinkgem.jeesite.common.persistence.annotation.MyBatisDao;
 
+import java.util.List;
+
 /**
  * Description
  *
@@ -12,4 +14,10 @@ import com.thinkgem.jeesite.common.persistence.annotation.MyBatisDao;
  */
 @MyBatisDao
 public interface CmBehaviorRecordDao extends CrudDao<CmBehaviorRecord> {
+    /**
+     * 查询单条详情
+     * @param cmBehaviorRecord
+     * @return
+     */
+    List<CmBehaviorRecord> recordList(CmBehaviorRecord cmBehaviorRecord);
 }

+ 84 - 0
src/main/java/com/caimei/modules/user/entity/CmBehaviorRecord.java

@@ -25,6 +25,18 @@ public class CmBehaviorRecord extends DataEntity<CmBehaviorRecord> {
     private String accessDuration;  //访问时长
     private String accessDate;  //访问日期
 
+    private Integer numbers;    //访问页面总数
+
+    private String name; // 公司名称
+    private String companyType; //公司类型
+    private String linkMan; //联系人
+    private String contractMobile;  //联系手机
+    private String spName;  // 协销名称
+    private String startTime; //开始时间
+    private String endTime; //结束时间
+
+    private Integer shopID; // 供应商ID
+
     public Integer getRecordID() {
         return recordID;
     }
@@ -120,4 +132,76 @@ public class CmBehaviorRecord extends DataEntity<CmBehaviorRecord> {
     public void setAccessDate(String accessDate) {
         this.accessDate = accessDate;
     }
+
+    public Integer getNumbers() {
+        return numbers;
+    }
+
+    public void setNumbers(Integer numbers) {
+        this.numbers = numbers;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getCompanyType() {
+        return companyType;
+    }
+
+    public void setCompanyType(String companyType) {
+        this.companyType = companyType;
+    }
+
+    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 getSpName() {
+        return spName;
+    }
+
+    public void setSpName(String spName) {
+        this.spName = spName;
+    }
+
+    public String getStartTime() {
+        return startTime;
+    }
+
+    public void setStartTime(String startTime) {
+        this.startTime = startTime;
+    }
+
+    public String getEndTime() {
+        return endTime;
+    }
+
+    public void setEndTime(String endTime) {
+        this.endTime = endTime;
+    }
+
+    public Integer getShopID() {
+        return shopID;
+    }
+
+    public void setShopID(Integer shopID) {
+        this.shopID = shopID;
+    }
 }

+ 16 - 0
src/main/java/com/caimei/modules/user/service/CmBehaviorRecordService.java

@@ -2,7 +2,9 @@ package com.caimei.modules.user.service;
 
 import com.caimei.modules.user.dao.CmBehaviorRecordDao;
 import com.caimei.modules.user.entity.CmBehaviorRecord;
+import com.thinkgem.jeesite.common.persistence.Page;
 import com.thinkgem.jeesite.common.service.CrudService;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 /**
@@ -13,4 +15,18 @@ import org.springframework.stereotype.Service;
  */
 @Service
 public class CmBehaviorRecordService extends CrudService<CmBehaviorRecordDao, CmBehaviorRecord> {
+
+    @Autowired private CmBehaviorRecordDao cmBehaviorRecordDao;
+
+
+    public Page<CmBehaviorRecord> findPage(Page<CmBehaviorRecord> page, CmBehaviorRecord cmBehaviorRecord) {
+        return super.findPage(page, cmBehaviorRecord);
+    }
+
+    public Page<CmBehaviorRecord> recordPage(Page<CmBehaviorRecord> page, CmBehaviorRecord cmBehaviorRecord){
+        cmBehaviorRecord.setPage(page);
+        page.setList(cmBehaviorRecordDao.recordList(cmBehaviorRecord));
+        return page;
+    }
+
 }

+ 24 - 8
src/main/java/com/caimei/modules/user/web/CmUserBehaviorRecordController.java

@@ -1,9 +1,16 @@
 package com.caimei.modules.user.web;
 
+import com.caimei.modules.user.entity.CmBehaviorRecord;
+import com.caimei.modules.user.service.CmBehaviorRecordService;
+import com.thinkgem.jeesite.common.persistence.Page;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
 import org.springframework.web.bind.annotation.RequestMapping;
 
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
 /**
  * Description
  *
@@ -14,29 +21,38 @@ import org.springframework.web.bind.annotation.RequestMapping;
 @RequestMapping(value = "${adminPath}/user/behavior/record")
 public class CmUserBehaviorRecordController {
 
+    @Autowired private CmBehaviorRecordService cmBehaviorRecordService;
+
     /**
      * 用户行为记录
+     * @param cmBehaviorRecord
+     * @param request
+     * @param response
      * @param model
      * @return
      */
     @RequestMapping(value = {"list", ""})
-    public String List(Model model){
-
-        model.addAttribute("",null);
+    public String List(CmBehaviorRecord cmBehaviorRecord, HttpServletRequest request, HttpServletResponse response, Model model){
+        Page<CmBehaviorRecord> page = cmBehaviorRecordService.findPage(new Page<>(request, response), cmBehaviorRecord);
+        model.addAttribute("page",page);
+        model.addAttribute("cmBehaviorRecord", cmBehaviorRecord);
         return "modules/user/behaviorRecordList";
     }
 
     /**
      * 用户行为记录详情
+     * @param cmBehaviorRecord
+     * @param request
+     * @param response
      * @param model
      * @return
      */
-    @RequestMapping("userDetails")
-    public String userDetails(Model model){
-
-        model.addAttribute("", null);
+    @RequestMapping("/recordList")
+    public String selRecordList(CmBehaviorRecord cmBehaviorRecord, HttpServletRequest request, HttpServletResponse response, Model model) {
+        Page<CmBehaviorRecord> page = cmBehaviorRecordService.recordPage(new Page<>(request, response), cmBehaviorRecord);
+        model.addAttribute("page", page);
+        model.addAttribute("cmBehaviorRecord", cmBehaviorRecord);
         return "modules/user/behaviorRecordDetailsList";
     }
 
-
 }

+ 45 - 2
src/main/resources/mappings/modules/user/CmBehaviorRecordMapper.xml

@@ -1,7 +1,50 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.caimei.modules.user.dao.CmBehaviorRecordDao">
-    <select id="recordDay" resultType="com.caimei.modules.user.entity.CmBehaviorRecord">
-        SELECT * FROM cm_behavior_record GROUP BY IP, accessDate ORDER BY accessTime
+    <sql id="behaviorRecord">
+        b.recordID,
+        b.IP,
+        b.userID,
+        b.pagePath,
+        b.pageType,
+        b.pageLabel,
+        b.productID,
+        b.accessTime,
+        b.accessDuration,
+        b.accessDate
+    </sql>
+    <select id="findList" resultType="CmBehaviorRecord">
+        SELECT
+          <include refid="behaviorRecord"/>
+          ,u.userIdentity,
+          u.name,
+          c.linkMan,
+          c.contractPhone,
+          c.spID,
+          COUNT(IP) as numbers
+        FROM cm_behavior_record b
+        LEFT JOIN USER u ON b.userID = u.userID
+        LEFT JOIN club c ON b.userID = c.userID
+        GROUP BY b.IP, b.accessDate ORDER BY b.accessTime
+    </select>
+
+    <select id="recordList" resultType="CmBehaviorRecord">
+        SELECT
+        <include refid="behaviorRecord"/>
+           ,u.userIdentity,
+           c.name,c.linkMan,
+           c.contractMobile,
+           c.spID,
+           p.name,
+           p.mainImage
+        FROM cm_behavior_record b
+        LEFT JOIN USER u ON b.userID = u.userID
+        LEFT JOIN club c ON b.userID = c.userID
+        LEFT JOIN product p ON b.productID = p.productID
+        ORDER BY accessTime
+        <where>
+            b.IP = #{IP},
+            b.accessDate = #{accessDate}
+        </where>
     </select>
 </mapper>

+ 6 - 6
src/main/webapp/WEB-INF/views/modules/user/behaviorRecordDetailsList.jsp

@@ -16,27 +16,27 @@
     <li class="active"><a href="${ctx}/user/behavior/record/list">用户行为记录</a></li>
     <li class="active"><a href="${ctx}/user/behavior/record/userDetails">查看详情</a></li>
 </ul>
-<form:form id="searchForm" modelAttribute="clubChangeSp" action="${ctx}/user/behavior/record/list" method="post" class="breadcrumb form-search">
+<form:form id="searchForm" modelAttribute="cmBehaviorRecord" action="${ctx}/user/behavior/record/list" 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>页面类型:</label>
-        <form:select path="checkStatus" class="input-medium required">
+        <form:select path="pageType" class="input-medium required">
             <form:option value="" label="请选择"/>
             <form:option value="首页" label="首页"/>
             <form:option value="商品详情" label="商品详情"/>
             <form:option value="供应商主页" label="供应商主页"/>
         </form:select>
         <label>供应商ID:</label>
-        <form:input path="linkMan1" htmlEscape="false" maxlength="20" class="input-small"/>
+        <form:input path="shopID" htmlEscape="false" maxlength="20" class="input-small"/>
         <label>商品名称:</label>
-        <form:input path="linkMan1" htmlEscape="false" maxlength="20" class="input-small"/>
+        <form:input path="productName" htmlEscape="false" maxlength="20" class="input-small"/>
         <label>访问时间:</label>
         <input name="startTime" type="text" readonly="readonly" maxlength="15" class="input-mini Wdate"
-               value="${clubTemporary.startTime}"
+               value="${cmBehaviorRecord.startTime}"
                onclick="WdatePicker({dateFmt:'yyyy-MM-dd',isShowClear:false});"/> -
         <input name="endTime" type="text" readonly="readonly" maxlength="15" class="input-mini Wdate"
-               value="${clubTemporary.endTime}"
+               value="${cmBehaviorRecord.endTime}"
                onclick="WdatePicker({dateFmt:'yyyy-MM-dd',isShowClear:false});"/>
         &nbsp;&nbsp;<input id="btnSubmit" class="btn btn-primary" type="submit" value="查询"/>
         <div class="clearfix"></div>

+ 21 - 9
src/main/webapp/WEB-INF/views/modules/user/behaviorRecordList.jsp

@@ -5,41 +5,51 @@
   Time: 9:25
   To change this template use File | Settings | File Templates.
 --%>
+<%@ page import="com.thinkgem.jeesite.common.config.Global" %>
 <%@ page contentType="text/html;charset=UTF-8" %>
-<%@ include file="/WEB-INF/views/include/taglib.jsp"%>
+<%@ include file="/WEB-INF/views/include/taglib.jsp" %>
 
 <html>
 <head>
     <title>用户行为记录</title>
+    <meta name="decorator" content="default"/>
+    <style>
+        .table th{
+            text-align: center;
+        }
+        .table td{
+            text-align: center;
+        }
+    </style>
 </head>
 <body>
 <ul class="nav nav-tabs">
     <li class="active"><a href="${ctx}/user/behavior/record/list">用户行为记录</a></li>
 </ul>
-<form:form id="searchForm" modelAttribute="clubChangeSp" action="${ctx}/user/behavior/record/list" method="post" class="breadcrumb form-search">
+<form:form id="searchForm" modelAttribute="cmBehaviorRecord" action="${ctx}/user/behavior/record/list" 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>公司名称:</label>
-        <form:input path="clubName" htmlEscape="false" maxlength="11" class="input-mini"/>
+        <form:input path="name" htmlEscape="false" maxlength="11" class="input-mini"/>
         <label>公司类型:</label>
-        <form:select path="checkStatus" class="input-medium required">
+        <form:select path="companyType" class="input-medium required">
             <form:option value="" label="请选择"/>
             <form:option value="机构" label="机构"/>
             <form:option value="供应商" label="供应商"/>
         </form:select>
         <label>联系人:</label>
-            <form:input path="linkMan1" htmlEscape="false" maxlength="20" class="input-small"/>
+            <form:input path="linkMan" htmlEscape="false" maxlength="20" class="input-small"/>
         <label>手机号码:</label>
-        <form:input path="linkMan1" htmlEscape="false" maxlength="20" class="input-small"/>
+        <form:input path="contractMobile" htmlEscape="false" maxlength="20" class="input-small"/>
         <label>协销:</label>
-        <form:input path="linkMan1" htmlEscape="false" maxlength="20" class="input-small"/>
+        <form:input path="spName" htmlEscape="false" maxlength="20" class="input-small"/>
         <label>访问时间:</label>
         <input name="startTime" type="text" readonly="readonly" maxlength="15" class="input-mini Wdate"
-               value="${clubTemporary.startTime}"
+               value="${cmBehaviorRecord.startTime}"
                onclick="WdatePicker({dateFmt:'yyyy-MM-dd',isShowClear:false});"/> -
         <input name="endTime" type="text" readonly="readonly" maxlength="15" class="input-mini Wdate"
-               value="${clubTemporary.endTime}"
+               value="${cmBehaviorRecord.endTime}"
                onclick="WdatePicker({dateFmt:'yyyy-MM-dd',isShowClear:false});"/>
         &nbsp;&nbsp;<input id="btnSubmit" class="btn btn-primary" type="submit" value="查询"/>
         <div class="clearfix"></div>
@@ -78,7 +88,9 @@
         </tr>
     </tbody>
 </table>
+<div class="pagination">${page}</div>
 </body>
+<% request.setAttribute("caimeiCore", Global.getConfig("caimei.core"));%>
 <script type="text/javascript">
     function page(n,s){
         $("#pageNo").val(n);