Sfoglia il codice sorgente

用户行为记录今日数据

huangzhiguo 2 anni fa
parent
commit
75fb8f5eba

+ 5 - 0
pom.xml

@@ -67,6 +67,11 @@
             <optional>true</optional>
         </dependency>
 
+        <dependency>
+            <groupId>cn.hutool</groupId>
+            <artifactId>hutool-all</artifactId>
+            <version>5.8.5</version>
+        </dependency>
         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-test</artifactId>

+ 33 - 0
src/main/java/com/caimei365/manager/controller/caimei/user/CmBehaviorRecordApi.java

@@ -1,5 +1,9 @@
 package com.caimei365.manager.controller.caimei.user;
 
+import cn.hutool.poi.excel.ExcelUtil;
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.ExcelWriter;
+import com.alibaba.excel.write.metadata.WriteSheet;
 import com.caimei365.manager.entity.PaginationVo;
 import com.caimei365.manager.entity.ResponseJson;
 import com.caimei365.manager.entity.caimei.CmBehaviorRecord;
@@ -7,6 +11,12 @@ import com.caimei365.manager.service.caimei.user.CmBehaviorRecordService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import javax.servlet.http.HttpServletResponse;
+import javax.swing.filechooser.FileSystemView;
+import java.io.File;
+import java.net.URLEncoder;
+import java.util.List;
+
 /**
  * Description
  *
@@ -32,6 +42,29 @@ public class CmBehaviorRecordApi {
         return recordService.list(cmBehaviorRecord, pageNum, pageSize);
     }
 
+    /**
+     * 今日数据导出
+     * @param cmBehaviorRecord
+     * @param response
+     * @return
+     */
+    @GetMapping("/exportToday")
+    public void exportExcel(CmBehaviorRecord cmBehaviorRecord, HttpServletResponse response) {
+        String name = "今日数据";
+        try {
+            List<CmBehaviorRecord> RecordList = recordService.exportExcel(cmBehaviorRecord);
+
+            response.setContentType("application/vnd.ms-excel");
+            response.setCharacterEncoding("utf-8");
+            // 这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系
+            String fileName = URLEncoder.encode(name, "UTF-8").replaceAll("\\+", "%20");
+            response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");
+            EasyExcel.write(response.getOutputStream(), cmBehaviorRecord.getClass()).autoCloseStream(Boolean.TRUE).sheet("数据").doWrite(RecordList);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
     /**
      * 查看详情
      * @param cmBehaviorRecord 参数

+ 2 - 0
src/main/java/com/caimei365/manager/dao/user/CmBehaviorRecordDao.java

@@ -46,4 +46,6 @@ public interface CmBehaviorRecordDao {
      * @return 返回
      */
     List<RetuenEntity> searchList();
+
+    List<CmBehaviorRecord> behaviorShopNameList();
 }

+ 50 - 0
src/main/java/com/caimei365/manager/entity/caimei/CmBehaviorRecord.java

@@ -1,5 +1,7 @@
 package com.caimei365.manager.entity.caimei;
 
+import com.alibaba.excel.annotation.ExcelIgnore;
+import com.alibaba.excel.annotation.ExcelProperty;
 import lombok.Data;
 import lombok.Value;
 import org.springframework.format.annotation.DateTimeFormat;
@@ -14,184 +16,232 @@ import java.util.List;
  */
 @Data
 public class CmBehaviorRecord {
+    @ExcelIgnore
     private Integer recordId;
     /**
      * 访问人IP地址
      */
+    @ExcelProperty(value = "ip", index = 0)
     private String ip;
     /**
      * ip对应地区地址
      */
+    @ExcelProperty(value = "地区", index = 1)
     private String region;
     /**
      * 访问来源
      */
+    @ExcelIgnore
     private String accessSource;
     /**
      * 访问客户端
      */
+    @ExcelProperty(value = "访问客户端", index = 2)
     private String accessClient;
     /**
      *  用户id、0为游客
      */
+    @ExcelIgnore
     private Integer userId;
     /**
      * 页面路径
      */
+    @ExcelIgnore
     private String pagePath;
     /**
      * 页面类型
      */
+    @ExcelIgnore
     private String pageType;
     /**
      * 页面标签
      */
+    @ExcelIgnore
     private String pageLabel;
     /**
      * 商品图片
      */
+    @ExcelIgnore
     private String productImage;
     /**
      * 商品ID
      */
+    @ExcelIgnore
     private Integer productId;
     /**
      * 商品名称
      */
+    @ExcelIgnore
     private String productName;
     /**
      * 访问时间
      */
+    @ExcelIgnore
     private String accessTime;
     /**
      * 访问时长
      */
+    @ExcelProperty(value = "访问时长", index = 12)
     private String accessDuration;
     /**
      * 访问日期
      */
+    @ExcelProperty(value = "访问日期", index = 13)
     private String accessDate;
+    @ExcelIgnore
     private String consultName;
+    @ExcelIgnore
     private String consultMobile;
     /**
      * 最后访问时间
      */
+    @ExcelIgnore
     private String lastAccessTime;
     /**
      * 是否是roos页面行为 1:用户行为、2:roos行为统计
      */
+    @ExcelIgnore
     private String behaviorType;
+    @ExcelIgnore
     private Integer count;
 
     /**
      * 公司类型
      */
+    @ExcelProperty(value = "公司类型", index = 3)
     private String companyType;
     /**
      * 公司名称
      */
+    @ExcelProperty(value = "公司名称", index = 4)
     private String corporateName;
     /**
      *  联系人
      */
+    @ExcelProperty(value = "联系人", index = 5)
     private String contacts;
     /**
      * 手机号码
      */
+    @ExcelProperty(value = "手机号码", index = 6)
     private String phoneNumber;
 
+    @ExcelIgnore
     private Integer number;
     /**
      * 访问页面总数
      */
+    @ExcelProperty(value = "访问页面总数", index = 11)
     private Integer numbers;
     /**
      * 公司类型
      */
+    @ExcelIgnore
     private String userIdentity;
 
     /**
      * 机构ID
      */
+    @ExcelIgnore
     private Integer clubId;
     /**
      * 机构公司名称
      */
+    @ExcelIgnore
     private String name;
     /**
      * 机构简称
      */
+    @ExcelIgnore
     private String cSname;
     /**
      * 机构联系人
      */
+    @ExcelIgnore
     private String linkMan;
     /**
      * 联系手机
      */
+    @ExcelIgnore
     private String contractMobile;
     /**
      * 用户名
      */
+    @ExcelIgnore
     private String userName;
     /**
      * 注册IP
      */
+    @ExcelIgnore
     private String registerIP;
     /**
      * 注册时间
      */
+    @ExcelIgnore
     private String registerTime;
     /**
      * 供应商公司名称
      */
+    @ExcelIgnore
     private String sname;
     /**
      * 供应商联系人
      */
+    @ExcelIgnore
     private String slinkMan;
     /**
      * 联系手机
      */
+    @ExcelIgnore
     private String scontractMobile;
     /**
      * 协销名称
      */
+    @ExcelProperty(value = "协销名称", index = 7)
     private String spName;
     /**
      * 开始时间
      */
+    @ExcelIgnore
     private String startTime;
     /**
      * 结束时间
      */
+    @ExcelIgnore
     private String endTime;
     /**
      * 供应商ID
      */
+    @ExcelIgnore
     private Integer shopId;
     /**
      * 页面类型下拉
      */
+    @ExcelIgnore
     private String pageTypes;
     /**
      * 是否为今日数据 0今日数据 1往日数据
      */
+    @ExcelIgnore
     private Integer todayType;
     /**
      * 关联供应商
      */
+    @ExcelProperty(value = "关联供应商", index = 8)
     private String relevanceShop;
     /**
      * 标签
      */
+    @ExcelProperty(value = "标签", index = 9)
     private String label;
     /**
      * 注册时间
      */
+    @ExcelProperty(value = "注册时间", index = 10)
     private String addTime;
     /**
      * 页面查询条件
      */
+    @ExcelIgnore
     private List<String> labels;
 }

+ 7 - 0
src/main/java/com/caimei365/manager/service/caimei/user/CmBehaviorRecordService.java

@@ -22,6 +22,13 @@ public interface CmBehaviorRecordService {
      */
     ResponseJson<PaginationVo<CmBehaviorRecord>> list(CmBehaviorRecord cmBehaviorRecord,Integer pageNum, Integer pageSize);
 
+    /**
+     * 导出今日数据
+     * @param cmBehaviorRecord
+     * @return
+     */
+    List<CmBehaviorRecord> exportExcel(CmBehaviorRecord cmBehaviorRecord);
+
     /**
      * 查看详情
      * @param cmBehaviorRecord

+ 50 - 0
src/main/java/com/caimei365/manager/service/caimei/user/impl/CmBehaviorRecordServiceImpl.java

@@ -68,6 +68,44 @@ public class CmBehaviorRecordServiceImpl implements CmBehaviorRecordService {
         return ResponseJson.success(pageData);
     }
 
+    /**
+     * 导出今日数据
+     *
+     * @param cmBehaviorRecord
+     * @return
+     */
+    @Override
+    public List<CmBehaviorRecord> exportExcel(CmBehaviorRecord cmBehaviorRecord) {
+        List<String> labels = new ArrayList<>();
+        if (StringUtils.isNotBlank(cmBehaviorRecord.getLabel())) {
+            if (cmBehaviorRecord.getLabel().contains(",")) {
+                String[] split = cmBehaviorRecord.getLabel().split(",");
+                for (String str : split) {
+                    labels.add(str);
+                }
+            } else {
+                labels.add(cmBehaviorRecord.getLabel());
+            }
+        }
+        List<CmBehaviorRecord> listToday = cmBehaviorRecordDao.findListToday(cmBehaviorRecord);
+        listToday.forEach(t -> {
+            if ("0".equals(t.getAccessClient())) {
+                t.setAccessClient("网站");
+            } else {
+                t.setAccessClient("小程序");
+            }
+
+            if ("1".equals(t.getCompanyType())) {
+                t.setCompanyType("游客");
+            } else if ("2".equals(t.getCompanyType())) {
+                t.setCompanyType("机构");
+            } else {
+                t.setAccessClient("供应商");
+            }
+        });
+        return listToday;
+    }
+
     /**
      * 查看详情
      * @param cmBehaviorRecord
@@ -81,6 +119,8 @@ public class CmBehaviorRecordServiceImpl implements CmBehaviorRecordService {
         List<CmBehaviorRecord> recordList = cmBehaviorRecordDao.recordList(cmBehaviorRecord);
         // 访问来源
         List<CmBehaviorRecord> reginList = cmBehaviorRecordDao.selRegion();
+        // 供应商信息
+        List<CmBehaviorRecord> shopNameList = cmBehaviorRecordDao.behaviorShopNameList();
         // 计算访问时长,填入信息
         recordList.forEach(r -> {
             r.setProductImage(AppUtils.getImageURL("product", r.getProductImage(), 0, ""));
@@ -112,6 +152,16 @@ public class CmBehaviorRecordServiceImpl implements CmBehaviorRecordService {
                     record.setAccessSource(record.getAccessSource());
                 }
             }
+            // 供应商显示
+            if (shopNameList.size() > 0) {
+                shopNameList.forEach(sn -> {
+                    String shopName = "";
+                    if (r.getRecordId().equals(sn.getRecordId())) {
+                        shopName += sn.getName();
+                    }
+                    r.setRelevanceShop(shopName);
+                });
+            }
         });
         PageHelper.startPage(pageNum, pageSize);
         PaginationVo<CmBehaviorRecord> pageData = new PaginationVo<>(recordList);

+ 3 - 0
src/main/resources/mapper/CmBehaciorRecordDao.xml

@@ -169,4 +169,7 @@
     <select id="searchList" resultType="com.caimei365.manager.entity.caimei.RetuenEntity">
         select id , keyword as value from cm_user_search_frequency where trueStatus = 1
     </select>
+    <select id="behaviorShopNameList" resultType="com.caimei365.manager.entity.caimei.CmBehaviorRecord">
+        SELECT cbs.recordID, cbs.shopID, s.name FROM cm_behavior_shopId cbs LEFT JOIN shop s ON cbs.shopID = s.shopID
+    </select>
 </mapper>