傅行帆 пре 5 година
родитељ
комит
7dff1d5cc5

+ 37
- 4
src/main/java/com/huiju/estateagents/controller/TaPersonBuildingController.java Прегледај датотеку

@@ -1,18 +1,24 @@
1 1
 package com.huiju.estateagents.controller;
2 2
 
3 3
 
4
+import com.alibaba.excel.EasyExcel;
5
+import com.alibaba.excel.ExcelWriter;
6
+import com.alibaba.excel.write.metadata.WriteSheet;
4 7
 import com.huiju.estateagents.base.BaseController;
5 8
 import com.huiju.estateagents.base.ResponseBean;
9
+import com.huiju.estateagents.excel.HelpRecordExport;
10
+import com.huiju.estateagents.excel.SalesExport;
11
+import com.huiju.estateagents.excel.handler.CustomCellWriteHandler;
6 12
 import com.huiju.estateagents.service.ITaPersonBuildingService;
7 13
 import org.slf4j.Logger;
8 14
 import org.slf4j.LoggerFactory;
9 15
 import org.springframework.beans.factory.annotation.Autowired;
10
-import org.springframework.web.bind.annotation.RequestMapping;
11
-import org.springframework.web.bind.annotation.RequestMethod;
12
-import org.springframework.web.bind.annotation.RequestParam;
13
-import org.springframework.web.bind.annotation.RestController;
16
+import org.springframework.web.bind.annotation.*;
14 17
 
15 18
 import javax.servlet.http.HttpServletRequest;
19
+import javax.servlet.http.HttpServletResponse;
20
+import java.io.IOException;
21
+import java.util.List;
16 22
 
17 23
 /**
18 24
  * <p>
@@ -55,4 +61,31 @@ public class TaPersonBuildingController extends BaseController {
55 61
         return responseBean;
56 62
     }
57 63
 
64
+    /**
65
+     * 销售分享统计导出
66
+     *
67
+     * @param request
68
+     * @param response
69
+     * @throws IOException
70
+     */
71
+    @GetMapping("/admin/exportSales")
72
+    public void gethelpRecordExport(@RequestParam(value = "buildingId", required = false) String buildingId,
73
+                                    @RequestParam(value ="startCreateDate",required = false) String startCreateDate,
74
+                                    @RequestParam(value ="endCreateDate",required = false) String endCreateDate,
75
+                                    HttpServletRequest request,
76
+                                    HttpServletResponse response) throws IOException {
77
+        response.setContentType("application/octet-stream");
78
+        response.setCharacterEncoding("utf-8");
79
+        response.setHeader("Content-disposition", "attachment;filename=销售分享统计.xlsx");
80
+        Integer orgId = getOrgId(request);
81
+
82
+        // 设置读取的class
83
+        ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream(), SalesExport.class).registerWriteHandler(new CustomCellWriteHandler()).build();
84
+        // 设置 sheet, 同一个sheet只需要设置一次
85
+        WriteSheet writeSheet = EasyExcel.writerSheet("销售分享统计").build();
86
+        List<SalesExport> salesList = taPersonBuildingService.selectSalesList(orgId,buildingId,startCreateDate,endCreateDate,getTaPersonBuildingListByUserId(request));
87
+        excelWriter.write(salesList, writeSheet);
88
+        // finish 会帮忙关闭流
89
+        excelWriter.finish();
90
+    }
58 91
 }

+ 48
- 0
src/main/java/com/huiju/estateagents/excel/SalesExport.java Прегледај датотеку

@@ -0,0 +1,48 @@
1
+package com.huiju.estateagents.excel;
2
+
3
+import com.alibaba.excel.annotation.ExcelProperty;
4
+import com.alibaba.excel.annotation.format.DateTimeFormat;
5
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
6
+import lombok.Data;
7
+
8
+import java.util.Date;
9
+
10
+/**
11
+ * <p>
12
+ * 助力活动发起人员记录
13
+ * </p>
14
+ *
15
+ * @author jobob
16
+ * @since 2019-10-17
17
+ */
18
+@Data
19
+public class SalesExport {
20
+
21
+    /**
22
+     * 项目名称
23
+     */
24
+    @ColumnWidth(15)
25
+    @ExcelProperty(value = "项目名称", index = 0)
26
+    private String buildingName;
27
+
28
+    /**
29
+     * 置业顾问
30
+     */
31
+    @ColumnWidth(15)
32
+    @ExcelProperty(value = "置业顾问", index = 1)
33
+    private String consultantName;
34
+
35
+    /**
36
+     * 分享次数
37
+     */
38
+    @ColumnWidth(15)
39
+    @ExcelProperty(value = "分享次数", index = 2)
40
+    private int shareCount;
41
+
42
+    /**
43
+     * 点击人数
44
+     */
45
+    @ColumnWidth(15)
46
+    @ExcelProperty(value = "点击人数", index = 3)
47
+    private int clickNum;
48
+}

+ 3
- 0
src/main/java/com/huiju/estateagents/mapper/TaPersonBuildingMapper.java Прегледај датотеку

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
4 4
 import com.huiju.estateagents.entity.TaPersonBuilding;
5 5
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
6 6
 import com.huiju.estateagents.entity.TaPointsExchange;
7
+import com.huiju.estateagents.excel.SalesExport;
7 8
 import org.apache.ibatis.annotations.Mapper;
8 9
 import org.apache.ibatis.annotations.Param;
9 10
 
@@ -20,4 +21,6 @@ import java.util.List;
20 21
 @Mapper
21 22
 public interface TaPersonBuildingMapper extends BaseMapper<TaPersonBuilding> {
22 23
     List<TaPersonBuilding> selectListByParams(Page page, @Param("orgId")Integer orgId, @Param("buildingId") String buildingId, @Param("startCreateDate") String startCreateDate, @Param("endCreateDate") String endCreateDate, @Param("personBuildingList")List<TaPersonBuilding> taPersonBuildingList);
24
+
25
+    List<SalesExport> selectSalesList(@Param("orgId") Integer orgId,@Param("buildingId") String buildingId, @Param("startCreateDate")  String startCreateDate,@Param("endCreateDate") String endCreateDate, @Param("personBuildingList") List<TaPersonBuilding> taPersonBuildingList);
23 26
 }

+ 11
- 0
src/main/java/com/huiju/estateagents/service/ITaPersonBuildingService.java Прегледај датотеку

@@ -3,6 +3,7 @@ package com.huiju.estateagents.service;
3 3
 import com.huiju.estateagents.base.ResponseBean;
4 4
 import com.huiju.estateagents.entity.TaPersonBuilding;
5 5
 import com.baomidou.mybatisplus.extension.service.IService;
6
+import com.huiju.estateagents.excel.SalesExport;
6 7
 
7 8
 import java.util.List;
8 9
 
@@ -16,4 +17,14 @@ import java.util.List;
16 17
  */
17 18
 public interface ITaPersonBuildingService extends IService<TaPersonBuilding> {
18 19
     ResponseBean selectList(Integer pageNum, Integer pageSize, Integer orgId, String buildingId, String startCreateDate, String endCreateDate, List<TaPersonBuilding> getTaPersonBuildingListByUserId);
20
+
21
+    /**
22
+     * 导出
23
+     * @param buildingId
24
+     * @param startCreateDate
25
+     * @param endCreateDate
26
+     * @param taPersonBuildingListByUserId
27
+     * @return
28
+     */
29
+    List<SalesExport> selectSalesList(Integer orgId, String buildingId, String startCreateDate, String endCreateDate, List<TaPersonBuilding> taPersonBuildingListByUserId);
19 30
 }

+ 16
- 0
src/main/java/com/huiju/estateagents/service/impl/TaPersonBuildingServiceImpl.java Прегледај датотеку

@@ -7,6 +7,7 @@ import com.huiju.estateagents.common.StringUtils;
7 7
 import com.huiju.estateagents.entity.TaPerson;
8 8
 import com.huiju.estateagents.entity.TaPersonBuilding;
9 9
 import com.huiju.estateagents.entity.TaShareCount;
10
+import com.huiju.estateagents.excel.SalesExport;
10 11
 import com.huiju.estateagents.mapper.TaPersonBuildingMapper;
11 12
 import com.huiju.estateagents.mapper.TaPersonMapper;
12 13
 import com.huiju.estateagents.mapper.TaShareCountMapper;
@@ -61,4 +62,19 @@ public class TaPersonBuildingServiceImpl extends ServiceImpl<TaPersonBuildingMap
61 62
         page.setRecords(list);
62 63
         return ResponseBean.success(page);
63 64
     }
65
+
66
+    /**
67
+     * 导出
68
+     *
69
+     * @param buildingId
70
+     * @param startCreateDate
71
+     * @param endCreateDate
72
+     * @param taPersonBuildingList
73
+     * @return
74
+     */
75
+    @Override
76
+    public List<SalesExport> selectSalesList(Integer orgId, String buildingId, String startCreateDate, String endCreateDate, List<TaPersonBuilding> taPersonBuildingList) {
77
+        List<SalesExport> list = taPersonBuildingMapper.selectSalesList(orgId, buildingId, startCreateDate, endCreateDate, taPersonBuildingList);
78
+        return list;
79
+    }
64 80
 }

+ 31
- 0
src/main/resources/mapper/TaPersonBuildingMapper.xml Прегледај датотеку

@@ -21,4 +21,35 @@
21 21
         group by t.user_id
22 22
     </select>
23 23
 
24
+    <select id="selectSalesList" resultType="com.huiju.estateagents.excel.SalesExport">
25
+        SELECT
26
+            a.building_id,
27
+            t.user_name AS consultant_name,
28
+            d.building_name,
29
+            b.person_id,
30
+            t.user_id ,
31
+            count(c.person_id) as share_count,
32
+            f.sharenum as click_num
33
+        FROM
34
+            ta_user t
35
+        LEFT JOIN ta_person_building a ON t.user_id = a.user_id
36
+        LEFT JOIN ta_person b ON t.user_id = b.user_id
37
+        LEFT JOIN ta_share_count c ON b.person_id = c.person_id
38
+        LEFT JOIN ta_building d ON a.building_id = d.building_id
39
+        left join (select count(DISTINCT m.person_id) as sharenum,m.share_person from ta_share_person_from m where m.org_id =  #{orgId} and m.status = 1 and (m.share_person > m.person_id or m.share_person &lt; m.person_id) GROUP BY m.share_person) f on t.user_id = f.share_person
40
+        WHERE
41
+        t.org_id =  #{orgId}
42
+        <if test="buildingId != null and buildingId != ''">
43
+            and a.building_id = #{buildingId}
44
+        </if>
45
+        <if test="startCreateDate != null and startCreateDate != ''">
46
+            and  date_format(c.create_date,'%Y-%m-%d') >= date_format(#{startCreateDate},'%Y-%m-%d')
47
+        </if>
48
+        <if test="endCreateDate != null and endCreateDate != ''">
49
+            and  date_format(c.create_date,'%Y-%m-%d') &lt;= date_format(#{endCreateDate},'%Y-%m-%d')
50
+        </if>
51
+        GROUP BY
52
+        t.user_id
53
+    </select>
54
+
24 55
 </mapper>