傅行帆 5 years ago
parent
commit
7dff1d5cc5

+ 37
- 4
src/main/java/com/huiju/estateagents/controller/TaPersonBuildingController.java View File

1
 package com.huiju.estateagents.controller;
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
 import com.huiju.estateagents.base.BaseController;
7
 import com.huiju.estateagents.base.BaseController;
5
 import com.huiju.estateagents.base.ResponseBean;
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
 import com.huiju.estateagents.service.ITaPersonBuildingService;
12
 import com.huiju.estateagents.service.ITaPersonBuildingService;
7
 import org.slf4j.Logger;
13
 import org.slf4j.Logger;
8
 import org.slf4j.LoggerFactory;
14
 import org.slf4j.LoggerFactory;
9
 import org.springframework.beans.factory.annotation.Autowired;
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
 import javax.servlet.http.HttpServletRequest;
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
  * <p>
24
  * <p>
55
         return responseBean;
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 View File

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 View File

4
 import com.huiju.estateagents.entity.TaPersonBuilding;
4
 import com.huiju.estateagents.entity.TaPersonBuilding;
5
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
5
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
6
 import com.huiju.estateagents.entity.TaPointsExchange;
6
 import com.huiju.estateagents.entity.TaPointsExchange;
7
+import com.huiju.estateagents.excel.SalesExport;
7
 import org.apache.ibatis.annotations.Mapper;
8
 import org.apache.ibatis.annotations.Mapper;
8
 import org.apache.ibatis.annotations.Param;
9
 import org.apache.ibatis.annotations.Param;
9
 
10
 
20
 @Mapper
21
 @Mapper
21
 public interface TaPersonBuildingMapper extends BaseMapper<TaPersonBuilding> {
22
 public interface TaPersonBuildingMapper extends BaseMapper<TaPersonBuilding> {
22
     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);
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 View File

3
 import com.huiju.estateagents.base.ResponseBean;
3
 import com.huiju.estateagents.base.ResponseBean;
4
 import com.huiju.estateagents.entity.TaPersonBuilding;
4
 import com.huiju.estateagents.entity.TaPersonBuilding;
5
 import com.baomidou.mybatisplus.extension.service.IService;
5
 import com.baomidou.mybatisplus.extension.service.IService;
6
+import com.huiju.estateagents.excel.SalesExport;
6
 
7
 
7
 import java.util.List;
8
 import java.util.List;
8
 
9
 
16
  */
17
  */
17
 public interface ITaPersonBuildingService extends IService<TaPersonBuilding> {
18
 public interface ITaPersonBuildingService extends IService<TaPersonBuilding> {
18
     ResponseBean selectList(Integer pageNum, Integer pageSize, Integer orgId, String buildingId, String startCreateDate, String endCreateDate, List<TaPersonBuilding> getTaPersonBuildingListByUserId);
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 View File

7
 import com.huiju.estateagents.entity.TaPerson;
7
 import com.huiju.estateagents.entity.TaPerson;
8
 import com.huiju.estateagents.entity.TaPersonBuilding;
8
 import com.huiju.estateagents.entity.TaPersonBuilding;
9
 import com.huiju.estateagents.entity.TaShareCount;
9
 import com.huiju.estateagents.entity.TaShareCount;
10
+import com.huiju.estateagents.excel.SalesExport;
10
 import com.huiju.estateagents.mapper.TaPersonBuildingMapper;
11
 import com.huiju.estateagents.mapper.TaPersonBuildingMapper;
11
 import com.huiju.estateagents.mapper.TaPersonMapper;
12
 import com.huiju.estateagents.mapper.TaPersonMapper;
12
 import com.huiju.estateagents.mapper.TaShareCountMapper;
13
 import com.huiju.estateagents.mapper.TaShareCountMapper;
61
         page.setRecords(list);
62
         page.setRecords(list);
62
         return ResponseBean.success(page);
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 View File

21
         group by t.user_id
21
         group by t.user_id
22
     </select>
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
 </mapper>
55
 </mapper>