傅行帆 5 vuotta sitten
vanhempi
commit
d3ae35d085

+ 73
- 0
src/main/java/com/huiju/estateagents/controller/StatisticalController.java Näytä tiedosto

@@ -5,11 +5,13 @@ import com.alibaba.excel.ExcelWriter;
5 5
 import com.alibaba.excel.write.metadata.WriteSheet;
6 6
 import com.huiju.estateagents.base.BaseController;
7 7
 import com.huiju.estateagents.base.ResponseBean;
8
+import com.huiju.estateagents.entity.TdWxDict;
8 9
 import com.huiju.estateagents.excel.IntentionUser;
9 10
 import com.huiju.estateagents.excel.StatsBuilding;
10 11
 import com.huiju.estateagents.excel.StatsTimeBuilding;
11 12
 import com.huiju.estateagents.excel.handler.CustomCellWriteHandler;
12 13
 import com.huiju.estateagents.service.IStatisticalService;
14
+import com.huiju.estateagents.statistic.entity.TsPersonFromStatistic;
13 15
 import org.springframework.beans.factory.annotation.Autowired;
14 16
 import org.springframework.format.annotation.DateTimeFormat;
15 17
 import org.springframework.web.bind.annotation.GetMapping;
@@ -21,7 +23,9 @@ import javax.servlet.http.HttpServletRequest;
21 23
 import javax.servlet.http.HttpServletResponse;
22 24
 import java.io.IOException;
23 25
 import java.time.LocalDate;
26
+import java.util.ArrayList;
24 27
 import java.util.List;
28
+import java.util.Map;
25 29
 
26 30
 /**
27 31
  * 数据统计
@@ -326,4 +330,73 @@ public class StatisticalController extends BaseController {
326 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 Näytä tiedosto

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