傅行帆 5 gadus atpakaļ
vecāks
revīzija
d3ae35d085

+ 73
- 0
src/main/java/com/huiju/estateagents/controller/StatisticalController.java Parādīt failu

5
 import com.alibaba.excel.write.metadata.WriteSheet;
5
 import com.alibaba.excel.write.metadata.WriteSheet;
6
 import com.huiju.estateagents.base.BaseController;
6
 import com.huiju.estateagents.base.BaseController;
7
 import com.huiju.estateagents.base.ResponseBean;
7
 import com.huiju.estateagents.base.ResponseBean;
8
+import com.huiju.estateagents.entity.TdWxDict;
8
 import com.huiju.estateagents.excel.IntentionUser;
9
 import com.huiju.estateagents.excel.IntentionUser;
9
 import com.huiju.estateagents.excel.StatsBuilding;
10
 import com.huiju.estateagents.excel.StatsBuilding;
10
 import com.huiju.estateagents.excel.StatsTimeBuilding;
11
 import com.huiju.estateagents.excel.StatsTimeBuilding;
11
 import com.huiju.estateagents.excel.handler.CustomCellWriteHandler;
12
 import com.huiju.estateagents.excel.handler.CustomCellWriteHandler;
12
 import com.huiju.estateagents.service.IStatisticalService;
13
 import com.huiju.estateagents.service.IStatisticalService;
14
+import com.huiju.estateagents.statistic.entity.TsPersonFromStatistic;
13
 import org.springframework.beans.factory.annotation.Autowired;
15
 import org.springframework.beans.factory.annotation.Autowired;
14
 import org.springframework.format.annotation.DateTimeFormat;
16
 import org.springframework.format.annotation.DateTimeFormat;
15
 import org.springframework.web.bind.annotation.GetMapping;
17
 import org.springframework.web.bind.annotation.GetMapping;
21
 import javax.servlet.http.HttpServletResponse;
23
 import javax.servlet.http.HttpServletResponse;
22
 import java.io.IOException;
24
 import java.io.IOException;
23
 import java.time.LocalDate;
25
 import java.time.LocalDate;
26
+import java.util.ArrayList;
24
 import java.util.List;
27
 import java.util.List;
28
+import java.util.Map;
25
 
29
 
26
 /**
30
 /**
27
  * 数据统计
31
  * 数据统计
326
         excelWriter.finish();
330
         excelWriter.finish();
327
     }
331
     }
328
 
332
 
333
+
334
+
335
+    /**
336
+     * 新增用户导出
337
+     * @return
338
+     */
339
+    @GetMapping(value = "/admin/exportUserStats")
340
+    public void exportUserStats(@RequestParam(value = "startDate", required = false) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) LocalDate startDate,
341
+                                         @RequestParam(value = "endDate", required = false) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME)  LocalDate endDate,
342
+                                         @RequestParam(value = "userType", required = false) String userType,
343
+                                         HttpServletRequest request, HttpServletResponse response) throws IOException {
344
+        response.setContentType("application/octet-stream");
345
+        response.setCharacterEncoding("utf-8");
346
+        response.setHeader("Content-disposition", "attachment;filename=新增用户.xlsx");
347
+        ResponseBean responseBean = iStatisticalService.selectPersonFrom(getOrgId(request), startDate, endDate);
348
+        List<List<String>> headerList = headerList(responseBean.getData());
349
+        List<List<String>> dataList = dataList(responseBean.getData(),userType);
350
+        EasyExcel.write(response.getOutputStream()).head(headerList).sheet("新增用户").doWrite(dataList);
351
+    }
352
+
353
+    /**
354
+     * 构建表数据
355
+     * @param data
356
+     * @return
357
+     */
358
+    private List<List<String>> dataList(Object data,String userType) {
359
+        Map<String, Object> map = (Map<String, Object>) data;
360
+        List<TsPersonFromStatistic> list = (List<TsPersonFromStatistic>) map.get("list");
361
+        List<List<String>> dataList = new ArrayList<>();
362
+        List<TdWxDict> tdWxDicts = (List<TdWxDict>) map.get("tdWxDicts");
363
+        list.forEach(l -> {
364
+            List<String> columlist = new ArrayList<>();
365
+            columlist.add(l.getCreateTime());
366
+            tdWxDicts.forEach(e -> {
367
+                if (e.getSceneType().equals(l.getSceneType())){
368
+                    if (userType.equals("registered")){
369
+                        columlist.add(l.getRegisteredNum().toString());
370
+                    }else {
371
+                        columlist.add(l.getFromNum().toString());
372
+                    }
373
+                }else {
374
+                    columlist.add("0");
375
+                }
376
+            });
377
+            dataList.add(columlist);
378
+        });
379
+        return dataList;
380
+    }
381
+
382
+    /**
383
+     * 构造表头
384
+     * @param data
385
+     * @return
386
+     */
387
+    private List<List<String>> headerList(Object data) {
388
+        Map<String, Object> map = (Map<String, Object>) data;
389
+        List<TdWxDict> tdWxDicts = (List<TdWxDict>) map.get("tdWxDicts");
390
+        List<List<String>> headerList = new ArrayList<>();
391
+        List<String> rqHeader = new ArrayList<>();
392
+        rqHeader.add("日期");
393
+        headerList.add(rqHeader);
394
+        tdWxDicts.forEach(e -> {
395
+            List<String> header = new ArrayList<>();
396
+            header.add(e.getSceneAlias());
397
+            headerList.add(header);
398
+        });
399
+        return headerList;
400
+    }
401
+
329
 }
402
 }

+ 1
- 0
src/main/resources/mapper/statistic/TsPersonFromStatisticMapper.xml Parādīt failu

65
         GROUP BY
65
         GROUP BY
66
         DATE_FORMAT( tp.create_date, '%Y-%m-%d' ),
66
         DATE_FORMAT( tp.create_date, '%Y-%m-%d' ),
67
         tp.scene_type
67
         tp.scene_type
68
+        ORDER BY tp.create_date
68
     </select>
69
     </select>
69
     <select id="selectNewLinePersonFromGroupByData"
70
     <select id="selectNewLinePersonFromGroupByData"
70
             resultType="com.huiju.estateagents.statistic.entity.TsPersonFromStatistic">
71
             resultType="com.huiju.estateagents.statistic.entity.TsPersonFromStatistic">