|
@@ -1,10 +1,15 @@
|
1
|
1
|
package com.huiju.estateagents.controller;
|
2
|
2
|
|
|
3
|
+import com.alibaba.excel.EasyExcel;
|
|
4
|
+import com.alibaba.excel.ExcelWriter;
|
|
5
|
+import com.alibaba.excel.write.metadata.WriteSheet;
|
3
|
6
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
4
|
7
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
5
|
8
|
import com.huiju.estateagents.base.BaseController;
|
6
|
9
|
import com.huiju.estateagents.base.ResponseBean;
|
7
|
10
|
import com.huiju.estateagents.entity.TaChannel;
|
|
11
|
+import com.huiju.estateagents.excel.ActivityStatistics.*;
|
|
12
|
+import com.huiju.estateagents.excel.handler.CustomCellWriteHandler;
|
8
|
13
|
import com.huiju.estateagents.mapper.TaChannelMapper;
|
9
|
14
|
import com.huiju.estateagents.service.ITaPersonService;
|
10
|
15
|
import com.huiju.estateagents.service.TaChannelService;
|
|
@@ -19,6 +24,8 @@ import org.springframework.format.annotation.DateTimeFormat;
|
19
|
24
|
import org.springframework.web.bind.annotation.*;
|
20
|
25
|
|
21
|
26
|
import javax.servlet.http.HttpServletRequest;
|
|
27
|
+import javax.servlet.http.HttpServletResponse;
|
|
28
|
+import java.io.IOException;
|
22
|
29
|
import java.time.LocalDate;
|
23
|
30
|
import java.util.HashMap;
|
24
|
31
|
import java.util.List;
|
|
@@ -308,4 +315,94 @@ public class TaChannelController extends BaseController {
|
308
|
315
|
HttpServletRequest request) {
|
309
|
316
|
return taChannelService.getPersonNumList(pageNum, pageSize, getOrgId(request), channelId, targetId, targetType, buildingId);
|
310
|
317
|
}
|
|
318
|
+
|
|
319
|
+ /**
|
|
320
|
+ * 渠道引进客户统计导出
|
|
321
|
+ * @return
|
|
322
|
+ */
|
|
323
|
+ @GetMapping(value = "/admin/channel/introductionListExport")
|
|
324
|
+ public void getChannelIntroductionListExport(@RequestParam(value = "startDate", required = false) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) LocalDate startDate,
|
|
325
|
+ @RequestParam(value = "endDate", required = false) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) LocalDate endDate,
|
|
326
|
+ @RequestParam(value = "channelType", required = false)String channelType,
|
|
327
|
+ @RequestParam(value = "buildingId", required = false)String buildingId,
|
|
328
|
+ @RequestParam(value = "channelId") Integer channelId,
|
|
329
|
+ HttpServletRequest request, HttpServletResponse response) throws IOException {
|
|
330
|
+ response.setContentType("application/octet-stream");
|
|
331
|
+ response.setCharacterEncoding("utf-8");
|
|
332
|
+ response.setHeader("Content-disposition", "attachment;filename=引进注册用户.xlsx");
|
|
333
|
+ ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream(), TsChannelDaily.class).registerWriteHandler(new CustomCellWriteHandler()).build();
|
|
334
|
+ // 设置 sheet, 同一个sheet只需要设置一次
|
|
335
|
+ WriteSheet writeSheet = EasyExcel.writerSheet("引进注册用户").build();
|
|
336
|
+ List<TsChannelDaily> data = taChannelService.getChannelIntroductionListExport(getOrgId(request), startDate, endDate, channelType, buildingId, channelId);
|
|
337
|
+ excelWriter.write(data, writeSheet);
|
|
338
|
+ // finish 会帮忙关闭流
|
|
339
|
+ excelWriter.finish();
|
|
340
|
+ }
|
|
341
|
+
|
|
342
|
+ /**
|
|
343
|
+ * 渠道注册用户列表导出
|
|
344
|
+ * @return
|
|
345
|
+ */
|
|
346
|
+ @GetMapping(value = "/admin/channel/introduction/newuserListExport")
|
|
347
|
+ public void getNewuserListExport(@RequestParam(value = "targetId", required = false) String targetId,
|
|
348
|
+ @RequestParam(value = "targetType", required = false) String targetType,
|
|
349
|
+ @RequestParam(value = "buildingId", required = false) String buildingId,
|
|
350
|
+ @RequestParam(value = "channelId", required = false) Integer channelId,
|
|
351
|
+ HttpServletRequest request,HttpServletResponse response) throws IOException {
|
|
352
|
+ response.setContentType("application/octet-stream");
|
|
353
|
+ response.setCharacterEncoding("utf-8");
|
|
354
|
+ response.setHeader("Content-disposition", "attachment;filename=注册用户.xlsx");
|
|
355
|
+ ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream(), ChannelAddRegistNum.class).registerWriteHandler(new CustomCellWriteHandler()).build();
|
|
356
|
+ // 设置 sheet, 同一个sheet只需要设置一次
|
|
357
|
+ WriteSheet writeSheet = EasyExcel.writerSheet("注册用户").build();
|
|
358
|
+ List<ChannelAddRegistNum> data = taChannelService.getNewuserListExport(getOrgId(request), channelId, targetId, targetType, buildingId);
|
|
359
|
+ excelWriter.write(data, writeSheet);
|
|
360
|
+ // finish 会帮忙关闭流
|
|
361
|
+ excelWriter.finish();
|
|
362
|
+ }
|
|
363
|
+
|
|
364
|
+ /**
|
|
365
|
+ * 渠道访问次数列表导出
|
|
366
|
+ * @return
|
|
367
|
+ */
|
|
368
|
+ @GetMapping(value = "/admin/channel/introduction/visitNumListExport")
|
|
369
|
+ public void getVisitNumListExport(@RequestParam(value = "targetId", required = false) String targetId,
|
|
370
|
+ @RequestParam(value = "targetType", required = false) String targetType,
|
|
371
|
+ @RequestParam(value = "buildingId", required = false) String buildingId,
|
|
372
|
+ @RequestParam(value = "channelId", required = false) Integer channelId,
|
|
373
|
+ HttpServletRequest request,HttpServletResponse response) throws IOException {
|
|
374
|
+ response.setContentType("application/octet-stream");
|
|
375
|
+ response.setCharacterEncoding("utf-8");
|
|
376
|
+ response.setHeader("Content-disposition", "attachment;filename=访问次数.xlsx");
|
|
377
|
+ ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream(), ChannelVisitNum.class).registerWriteHandler(new CustomCellWriteHandler()).build();
|
|
378
|
+ // 设置 sheet, 同一个sheet只需要设置一次
|
|
379
|
+ WriteSheet writeSheet = EasyExcel.writerSheet("访问次数").build();
|
|
380
|
+ List<ChannelVisitNum> data = taChannelService.getVisitNumListExport(getOrgId(request), channelId, targetId, targetType, buildingId);
|
|
381
|
+ excelWriter.write(data, writeSheet);
|
|
382
|
+ // finish 会帮忙关闭流
|
|
383
|
+ excelWriter.finish();
|
|
384
|
+ }
|
|
385
|
+
|
|
386
|
+
|
|
387
|
+ /**
|
|
388
|
+ * 渠道访问人数列表导出
|
|
389
|
+ * @return
|
|
390
|
+ */
|
|
391
|
+ @GetMapping(value = "/admin/channel/introduction/personNumListExport")
|
|
392
|
+ public void getPersonNumListExport(@RequestParam(value = "targetId", required = false) String targetId,
|
|
393
|
+ @RequestParam(value = "targetType", required = false) String targetType,
|
|
394
|
+ @RequestParam(value = "buildingId", required = false) String buildingId,
|
|
395
|
+ @RequestParam(value = "channelId", required = false) Integer channelId,
|
|
396
|
+ HttpServletRequest request,HttpServletResponse response) throws IOException {
|
|
397
|
+ response.setContentType("application/octet-stream");
|
|
398
|
+ response.setCharacterEncoding("utf-8");
|
|
399
|
+ response.setHeader("Content-disposition", "attachment;filename=访问人数.xlsx");
|
|
400
|
+ ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream(), ChannelVisitPersonNum.class).registerWriteHandler(new CustomCellWriteHandler()).build();
|
|
401
|
+ // 设置 sheet, 同一个sheet只需要设置一次
|
|
402
|
+ WriteSheet writeSheet = EasyExcel.writerSheet("访问人数").build();
|
|
403
|
+ List<ChannelVisitPersonNum> data = taChannelService.getPersonNumListExport(getOrgId(request), channelId, targetId, targetType, buildingId);
|
|
404
|
+ excelWriter.write(data, writeSheet);
|
|
405
|
+ // finish 会帮忙关闭流
|
|
406
|
+ excelWriter.finish();
|
|
407
|
+ }
|
311
|
408
|
}
|