Преглед на файлове

Merge branch 'dev' of http://git.ycjcjy.com/zhiyuxing/estateagents into dev

张延森 преди 5 години
родител
ревизия
a28295851a
променени са 19 файла, в които са добавени 647 реда и са изтрити 246 реда
  1. 10
    0
      src/main/java/com/huiju/estateagents/controller/StatisticalController.java
  2. 14
    11
      src/main/java/com/huiju/estateagents/controller/TdCityController.java
  3. 2
    0
      src/main/java/com/huiju/estateagents/excel/ActivityStatistics/ActivityDetailShareRecord.java
  4. 4
    0
      src/main/java/com/huiju/estateagents/excel/ActivityStatistics/ShareNum.java
  5. 3
    0
      src/main/java/com/huiju/estateagents/excel/ActivityStatistics/SharePersonNum.java
  6. 14
    0
      src/main/java/com/huiju/estateagents/excel/PrivateCustomerExport.java
  7. 14
    0
      src/main/java/com/huiju/estateagents/excel/PublicCustomerExport.java
  8. 8
    0
      src/main/java/com/huiju/estateagents/mapper/TaOrgCityMapper.java
  9. 2
    0
      src/main/java/com/huiju/estateagents/mapper/TaPersonMapper.java
  10. 7
    0
      src/main/java/com/huiju/estateagents/service/IStatisticalService.java
  11. 18
    0
      src/main/java/com/huiju/estateagents/service/impl/StatisticalServiceImpl.java
  12. 0
    1
      src/main/java/com/huiju/estateagents/service/impl/TaShareServiceImpl.java
  13. 10
    4
      src/main/java/com/huiju/estateagents/statistic/controller/ActivityStatisticController.java
  14. 38
    15
      src/main/java/com/huiju/estateagents/statistic/mapper/TaActicityStaticMapper.java
  15. 35
    21
      src/main/java/com/huiju/estateagents/statistic/service/impl/TaActivityStaticServiceImpl.java
  16. 11
    0
      src/main/resources/mapper/TaOrgCity.xml
  17. 26
    0
      src/main/resources/mapper/TaPersonMapper.xml
  18. 11
    4
      src/main/resources/mapper/TaRecommendCustomerMapper.xml
  19. 420
    190
      src/main/resources/mapper/statistic/TaActivityStaticMapper.xml

+ 10
- 0
src/main/java/com/huiju/estateagents/controller/StatisticalController.java Целия файл

@@ -179,6 +179,16 @@ public class StatisticalController extends BaseController {
179 179
         return iStatisticalService.selectCityUser(orgId);
180 180
     }
181 181
 
182
+    /**
183
+     * 人员分布城市比例
184
+     * @return
185
+     */
186
+    @GetMapping(value = "/admin/selectCityPerson")
187
+    public ResponseBean selectCityPerson(HttpServletRequest request) {
188
+        Integer orgId = getOrgId(request);
189
+        return iStatisticalService.selectCityPerson(orgId);
190
+    }
191
+
182 192
     /**
183 193
      * 意向用户  首页
184 194
      * @return

+ 14
- 11
src/main/java/com/huiju/estateagents/controller/TdCityController.java Целия файл

@@ -1,10 +1,8 @@
1 1
 package com.huiju.estateagents.controller;
2 2
 
3 3
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
4
-import com.baomidou.mybatisplus.core.metadata.IPage;
5
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
4
+import com.huiju.estateagents.base.BaseController;
6 5
 import com.huiju.estateagents.base.ResponseBean;
7
-import com.huiju.estateagents.common.CommConstant;
8 6
 import com.huiju.estateagents.entity.TaMiniapp;
9 7
 import com.huiju.estateagents.entity.TaOrgCity;
10 8
 import com.huiju.estateagents.entity.TdCity;
@@ -14,14 +12,7 @@ import com.huiju.estateagents.service.ITdCityService;
14 12
 import org.slf4j.Logger;
15 13
 import org.slf4j.LoggerFactory;
16 14
 import org.springframework.beans.factory.annotation.Autowired;
17
-import org.springframework.web.bind.annotation.PathVariable;
18
-import org.springframework.web.bind.annotation.RequestBody;
19
-import org.springframework.web.bind.annotation.RequestMapping;
20
-import org.springframework.web.bind.annotation.RequestMethod;
21
-import org.springframework.web.bind.annotation.RequestParam;
22
-import org.springframework.web.bind.annotation.ResponseBody;
23
-import org.springframework.web.bind.annotation.RestController;
24
-import com.huiju.estateagents.base.BaseController;
15
+import org.springframework.web.bind.annotation.*;
25 16
 
26 17
 import javax.servlet.http.HttpServletRequest;
27 18
 import java.util.List;
@@ -78,6 +69,18 @@ public class TdCityController extends BaseController {
78 69
         return responseBean;
79 70
     }
80 71
 
72
+    /**
73
+     * 业务端城市
74
+     */
75
+    @RequestMapping(value = "/admin/tdCityList/tdAreaCity", method = RequestMethod.GET)
76
+    public ResponseBean adminTdAreaCityList(@RequestParam(value = "cityId", required = false) Integer cityId,
77
+                                    HttpServletRequest request) {
78
+        ResponseBean responseBean = new ResponseBean<>();
79
+        List<TaOrgCity> taOrgCityList = taOrgCityMapper.selectAdminTdAreaCityList(getOrgId(request),cityId);
80
+        responseBean.addSuccess(taOrgCityList);
81
+        return responseBean;
82
+    }
83
+
81 84
 
82 85
     /**
83 86
      * 查询列表

+ 2
- 0
src/main/java/com/huiju/estateagents/excel/ActivityStatistics/ActivityDetailShareRecord.java Целия файл

@@ -1,5 +1,6 @@
1 1
 package com.huiju.estateagents.excel.ActivityStatistics;
2 2
 
3
+import com.alibaba.excel.annotation.ExcelIgnore;
3 4
 import com.alibaba.excel.annotation.ExcelProperty;
4 5
 import com.alibaba.excel.annotation.write.style.ColumnWidth;
5 6
 import lombok.Data;
@@ -7,6 +8,7 @@ import lombok.Data;
7 8
 @Data
8 9
 public class ActivityDetailShareRecord {
9 10
 
11
+    @ExcelIgnore
10 12
     private String activityId;
11 13
 
12 14
     /**

+ 4
- 0
src/main/java/com/huiju/estateagents/excel/ActivityStatistics/ShareNum.java Целия файл

@@ -1,5 +1,6 @@
1 1
 package com.huiju.estateagents.excel.ActivityStatistics;
2 2
 
3
+import com.alibaba.excel.annotation.ExcelIgnore;
3 4
 import com.alibaba.excel.annotation.ExcelProperty;
4 5
 import com.alibaba.excel.annotation.write.style.ColumnWidth;
5 6
 import lombok.Data;
@@ -42,4 +43,7 @@ public class ShareNum {
42 43
     @ColumnWidth(15)
43 44
     @ExcelProperty(value = "访问人数", index = 4)
44 45
     private Integer visitPersonNum;
46
+
47
+    @ExcelIgnore
48
+    private String sharePersonId;
45 49
 }

+ 3
- 0
src/main/java/com/huiju/estateagents/excel/ActivityStatistics/SharePersonNum.java Целия файл

@@ -1,5 +1,6 @@
1 1
 package com.huiju.estateagents.excel.ActivityStatistics;
2 2
 
3
+import com.alibaba.excel.annotation.ExcelIgnore;
3 4
 import com.alibaba.excel.annotation.ExcelProperty;
4 5
 import com.alibaba.excel.annotation.write.style.ColumnWidth;
5 6
 import lombok.Data;
@@ -48,4 +49,6 @@ public class SharePersonNum {
48 49
     @ExcelProperty(value = "访问次数", index = 5)
49 50
     private Integer visitNum;
50 51
 
52
+    @ExcelIgnore
53
+    private String personId;
51 54
 }

+ 14
- 0
src/main/java/com/huiju/estateagents/excel/PrivateCustomerExport.java Целия файл

@@ -86,4 +86,18 @@ public class PrivateCustomerExport {
86 86
     @ColumnWidth(15)
87 87
     @ExcelProperty(value = "意向度(意向值)", index = 8)
88 88
     private String intention ;
89
+
90
+    /**
91
+     * 意向度
92
+     */
93
+    @ColumnWidth(15)
94
+    @ExcelProperty(value = "推广人员", index = 10)
95
+    private String sharePersonName ;
96
+
97
+    /**
98
+     * 意向度
99
+     */
100
+    @ColumnWidth(15)
101
+    @ExcelProperty(value = "积分值", index = 11)
102
+    private String points ;
89 103
 }

+ 14
- 0
src/main/java/com/huiju/estateagents/excel/PublicCustomerExport.java Целия файл

@@ -72,4 +72,18 @@ public class PublicCustomerExport {
72 72
     @ColumnWidth(15)
73 73
     @ExcelProperty(value = "项目名称", index = 3)
74 74
     private String buildingName;
75
+
76
+    /**
77
+     * 意向度
78
+     */
79
+    @ColumnWidth(15)
80
+    @ExcelProperty(value = "推广人员", index = 8)
81
+    private String sharePersonName ;
82
+
83
+    /**
84
+     * 意向度
85
+     */
86
+    @ColumnWidth(15)
87
+    @ExcelProperty(value = "积分值", index = 9)
88
+    private String points ;
75 89
 }

+ 8
- 0
src/main/java/com/huiju/estateagents/mapper/TaOrgCityMapper.java Целия файл

@@ -27,4 +27,12 @@ public interface TaOrgCityMapper extends BaseMapper<TaOrgCity> {
27 27
      * @return
28 28
      */
29 29
     List<TaOrgCity> selectAdminTdCityList(Integer orgId);
30
+
31
+    /**
32
+     * 查询市下的区信息
33
+     * @param orgId
34
+     * @param cityId
35
+     * @return
36
+     */
37
+    List<TaOrgCity> selectAdminTdAreaCityList(Integer orgId, Integer cityId);
30 38
 }

+ 2
- 0
src/main/java/com/huiju/estateagents/mapper/TaPersonMapper.java Целия файл

@@ -254,4 +254,6 @@ public interface TaPersonMapper extends BaseMapper<TaPerson> {
254 254
      * @return
255 255
      */
256 256
     Integer selectTodayRecentlyCount(@Param("orgId") Integer orgId, @Param("nowDate") LocalDateTime nowDate);
257
+
258
+    List<Map<String, Object>> selectCityPerson(@Param("orgId") Integer orgId);
257 259
 }

+ 7
- 0
src/main/java/com/huiju/estateagents/service/IStatisticalService.java Целия файл

@@ -215,4 +215,11 @@ public interface IStatisticalService {
215 215
      * @return
216 216
      */
217 217
     ResponseBean changeNewsUserCount(Integer orgId, LocalDate startDate, LocalDate endDate);
218
+
219
+    /**
220
+     * 人员城市分布
221
+     * @param orgId
222
+     * @return
223
+     */
224
+    ResponseBean selectCityPerson(Integer orgId);
218 225
 }

+ 18
- 0
src/main/java/com/huiju/estateagents/service/impl/StatisticalServiceImpl.java Целия файл

@@ -579,6 +579,24 @@ public class StatisticalServiceImpl implements IStatisticalService {
579 579
         return ResponseBean.success(tableList);
580 580
     }
581 581
 
582
+    /**
583
+     * 人员城市分布
584
+     *
585
+     * @param orgId
586
+     * @return
587
+     */
588
+    @Override
589
+    public ResponseBean selectCityPerson(Integer orgId) {
590
+        ResponseBean responseBean = new ResponseBean();
591
+
592
+        // 城市比例
593
+        List<Map<String, Object>> selectCityUser = taPersonMapper.selectCityPerson(orgId);
594
+        Map<String, Object> map = new HashMap<>();
595
+        map.put("selectCityUser", selectCityUser);
596
+        responseBean.addSuccess(map);
597
+        return responseBean;
598
+    }
599
+
582 600
     /**
583 601
      * 项目公客排行折线图获取
584 602
      * @param orgId

+ 0
- 1
src/main/java/com/huiju/estateagents/service/impl/TaShareServiceImpl.java Целия файл

@@ -71,7 +71,6 @@ public class TaShareServiceImpl extends ServiceImpl<TaShareMapper, TaShare> impl
71 71
             taBuildingDynamicQuery.eq("dynamic_id",id);
72 72
             TaBuildingDynamic taBuildingDynamic = taBuildingDynamicMapper.selectOne(taBuildingDynamicQuery);
73 73
             taBuildingDynamicMapper.updateById( taBuildingDynamic.setShareNum(taBuildingDynamic.getShareNum() == null ? 1:taBuildingDynamic.getShareNum()+1));
74
-//            return ResponseBean.success("成功");
75 74
         }
76 75
 
77 76
         TaShareCount taShareCount = new TaShareCount();

+ 10
- 4
src/main/java/com/huiju/estateagents/statistic/controller/ActivityStatisticController.java Целия файл

@@ -148,8 +148,9 @@ public class ActivityStatisticController extends BaseController {
148 148
                                                    @RequestParam(value = "activityType", required = false)String activityType,
149 149
                                                    @RequestParam(value = "sort", required = false)String sort,
150 150
                                                    @RequestParam(value = "colKey", required = false)String colKey,
151
+                                                   @RequestParam(value = "buildingId", required = false)String buildingId,
151 152
                                                    HttpServletRequest request) {
152
-        return taActivityStaticService.selectActivitySharePersonNum(pageNum, pageSize, getOrgId(request), startDate, endDate, sharePersonType, sharePersonName, sharePhone, activityId, activityType, sort, colKey);
153
+        return taActivityStaticService.selectActivitySharePersonNum(pageNum, pageSize, getOrgId(request), startDate, endDate, sharePersonType, sharePersonName, sharePhone, activityId, activityType, buildingId, sort, colKey);
153 154
     }
154 155
 
155 156
     /**
@@ -190,10 +191,12 @@ public class ActivityStatisticController extends BaseController {
190 191
                                                      @RequestParam(value = "sharePhone", required = false)String sharePhone,
191 192
                                                      @RequestParam(value = "activityId", required = false)String activityId,
192 193
                                                      @RequestParam(value = "activityType", required = false)String activityType,
194
+                                                     @RequestParam(value = "personId", required = false)String personId,
195
+                                                     @RequestParam(value = "buildingId", required = false)String buildingId,
193 196
                                                      @RequestParam(value = "sort", required = false)String sort,
194 197
                                                      @RequestParam(value = "colKey", required = false)String colKey,
195 198
                                                      HttpServletRequest request) {
196
-        return taActivityStaticService.selectActivityShareNum(pageNum, pageSize, getOrgId(request), startDate, endDate, sharePersonType, sharePersonName, sharePhone, activityId, activityType, sort, colKey);
199
+        return taActivityStaticService.selectActivityShareNum(pageNum, pageSize, getOrgId(request), startDate, endDate, sharePersonType, sharePersonName, sharePhone, activityId, activityType, personId, buildingId, sort, colKey);
197 200
     }
198 201
 
199 202
     /**
@@ -271,8 +274,9 @@ public class ActivityStatisticController extends BaseController {
271 274
                                                    @RequestParam(value = "realtyConsultantPhone", required = false)String realtyConsultantPhone,
272 275
                                                    @RequestParam(value = "activityId", required = false)String activityId,
273 276
                                                    @RequestParam(value = "activityType", required = false)String activityType,
277
+                                                   @RequestParam(value = "personId", required = false)String personId,
274 278
                                                    HttpServletRequest request) {
275
-        return taActivityStaticService.selectActivityVisitNum(pageNum, pageSize, getOrgId(request), startDate, endDate, personFrom, province, realtyConsultant, realtyConsultantPhone, activityId, activityType);
279
+        return taActivityStaticService.selectActivityVisitNum(pageNum, pageSize, getOrgId(request), startDate, endDate, personFrom, province, realtyConsultant, realtyConsultantPhone, activityId, activityType, personId);
276 280
     }
277 281
 
278 282
     /**
@@ -311,10 +315,11 @@ public class ActivityStatisticController extends BaseController {
311 315
                                                @RequestParam(value = "province", required = false)String province,
312 316
                                                @RequestParam(value = "realtyConsultant", required = false)String realtyConsultant,
313 317
                                                @RequestParam(value = "realtyConsultantPhone", required = false)String realtyConsultantPhone,
318
+                                               @RequestParam(value = "personId", required = false)String personId,
314 319
                                                @RequestParam(value = "activityId", required = false)String activityId,
315 320
                                                @RequestParam(value = "activityType", required = false)String activityType,
316 321
                                                HttpServletRequest request) {
317
-        return taActivityStaticService.selectActivityVisitPersonNum(pageNum, pageSize, getOrgId(request), startDate, endDate, personFrom, province, realtyConsultant, realtyConsultantPhone, activityId, activityType);
322
+        return taActivityStaticService.selectActivityVisitPersonNum(pageNum, pageSize, getOrgId(request), startDate, endDate, personFrom, province, realtyConsultant, realtyConsultantPhone, activityId, activityType, personId);
318 323
     }
319 324
 
320 325
     /**
@@ -340,4 +345,5 @@ public class ActivityStatisticController extends BaseController {
340 345
         // finish 会帮忙关闭流
341 346
         excelWriter.finish();
342 347
     }
348
+
343 349
 }

+ 38
- 15
src/main/java/com/huiju/estateagents/statistic/mapper/TaActicityStaticMapper.java Целия файл

@@ -12,29 +12,29 @@ import java.util.Map;
12 12
 
13 13
 @Mapper
14 14
 public interface TaActicityStaticMapper {
15
-    Integer selectSharePersonNum(@Param("startDate") LocalDate startDate, @Param("endDate") LocalDate endDate, @Param("buildingId") String buildingId, @Param("targetType") String targetType, @Param("orgId") Integer orgId);
15
+    Integer selectSharePersonNum(@Param("startDate") LocalDateTime startDate, @Param("endDate") LocalDateTime endDate, @Param("buildingId") String buildingId, @Param("targetType") String targetType, @Param("orgId") Integer orgId);
16 16
 
17
-    Integer selectShareNum(@Param("startDate") LocalDate startDate, @Param("endDate") LocalDate endDate, @Param("buildingId") String buildingId, @Param("targetType") String targetType, @Param("orgId") Integer orgId);
17
+    Integer selectShareNum(@Param("startDate") LocalDateTime startDate, @Param("endDate") LocalDateTime endDate, @Param("buildingId") String buildingId, @Param("targetType") String targetType, @Param("orgId") Integer orgId);
18 18
 
19
-    Integer selectVisitPersonNum(@Param("startDate") LocalDate startDate, @Param("endDate") LocalDate endDate, @Param("buildingId") String buildingId, @Param("targetType") String targetType, @Param("orgId") Integer orgId);
19
+    Integer selectVisitPersonNum(@Param("startDate") LocalDateTime startDate, @Param("endDate") LocalDateTime endDate, @Param("buildingId") String buildingId, @Param("targetType") String targetType, @Param("orgId") Integer orgId);
20 20
 
21
-    Integer selectVisitNum(@Param("startDate") LocalDate startDate, @Param("endDate") LocalDate endDate, @Param("buildingId") String buildingId, @Param("targetType") String targetType, @Param("orgId") Integer orgId);
21
+    Integer selectVisitNum(@Param("startDate") LocalDateTime startDate, @Param("endDate") LocalDateTime endDate, @Param("buildingId") String buildingId, @Param("targetType") String targetType, @Param("orgId") Integer orgId);
22 22
 
23
-    List<Map<String, Object>> selectShareCount(@Param("orgId") Integer orgId, @Param("startDate") LocalDate startDate, @Param("endDate") LocalDate endDate, @Param("buildingId") String buildingId, @Param("targetType") String targetType);
23
+    List<Map<String, Object>> selectShareCount(@Param("orgId") Integer orgId, @Param("startDate") LocalDateTime startDate, @Param("endDate") LocalDateTime endDate, @Param("buildingId") String buildingId, @Param("targetType") String targetType);
24 24
 
25
-    List<Map<String, Object>> selectSharePersonCount(@Param("orgId") Integer orgId, @Param("startDate") LocalDate startDate, @Param("endDate") LocalDate endDate, @Param("buildingId") String buildingId, @Param("targetType") String targetType);
25
+    List<Map<String, Object>> selectSharePersonCount(@Param("orgId") Integer orgId, @Param("startDate") LocalDateTime startDate, @Param("endDate") LocalDateTime endDate, @Param("buildingId") String buildingId, @Param("targetType") String targetType);
26 26
 
27
-    List<Map<String, Object>> selectVisitCount(@Param("orgId") Integer orgId, @Param("startDate") LocalDate startDate, @Param("endDate") LocalDate endDate, @Param("buildingId") String buildingId, @Param("targetType") String targetType);
27
+    List<Map<String, Object>> selectVisitCount(@Param("orgId") Integer orgId, @Param("startDate") LocalDateTime startDate, @Param("endDate") LocalDateTime endDate, @Param("buildingId") String buildingId, @Param("targetType") String targetType);
28 28
 
29
-    List<Map<String, Object>> selectVisitPersonCount(@Param("orgId") Integer orgId, @Param("startDate") LocalDate startDate, @Param("endDate") LocalDate endDate, @Param("buildingId") String buildingId, @Param("targetType") String targetType);
29
+    List<Map<String, Object>> selectVisitPersonCount(@Param("orgId") Integer orgId, @Param("startDate") LocalDateTime startDate, @Param("endDate") LocalDateTime endDate, @Param("buildingId") String buildingId, @Param("targetType") String targetType);
30 30
 
31
-    List<Map<String, Object>> selectAddRegistCount(@Param("orgId") Integer orgId, @Param("startDate") LocalDate startDate, @Param("endDate") LocalDate endDate, @Param("buildingId") String buildingId, @Param("targetType") String targetType);
31
+    List<Map<String, Object>> selectAddRegistCount(@Param("orgId") Integer orgId, @Param("startDate") LocalDateTime startDate, @Param("endDate") LocalDateTime endDate, @Param("buildingId") String buildingId, @Param("targetType") String targetType);
32 32
 
33 33
     IPage<StatisicAttractUser> selectTableData(
34 34
             IPage<StatisicAttractUser> attractUserIPage,
35 35
             @Param("orgId") Integer orgId,
36
-            @Param("startDate") LocalDate startDate,
37
-            @Param("endDate") LocalDate endDate,
36
+            @Param("startDate") LocalDateTime startDate,
37
+            @Param("endDate") LocalDateTime endDate,
38 38
             @Param("buildingId") String buildingId,
39 39
             @Param("targetType") String targetType,
40 40
             @Param("sortType") String sortType,
@@ -42,8 +42,8 @@ public interface TaActicityStaticMapper {
42 42
 
43 43
     List<StatisicAttractUser> selectExportTableData(
44 44
             @Param("orgId") Integer orgId,
45
-            @Param("startDate") LocalDate startDate,
46
-            @Param("endDate") LocalDate endDate,
45
+            @Param("startDate") LocalDateTime startDate,
46
+            @Param("endDate") LocalDateTime endDate,
47 47
             @Param("buildingId") String buildingId,
48 48
             @Param("targetType") String targetType,
49 49
             @Param("sortType") String sortType,
@@ -52,8 +52,8 @@ public interface TaActicityStaticMapper {
52 52
     IPage<ActivityDetailShareRecord> selectActivityStatisDetail(
53 53
             IPage<ActivityDetailShareRecord> attractUserIPage,
54 54
             @Param("orgId") Integer orgId,
55
-            @Param("startDate") LocalDate startDate,
56
-            @Param("endDate") LocalDate endDate,
55
+            @Param("startDate") LocalDateTime startDate,
56
+            @Param("endDate") LocalDateTime endDate,
57 57
             @Param("buildingId") String buildingId,
58 58
             @Param("targetType") String targetType,
59 59
             @Param("activityName") String activityName,
@@ -82,6 +82,7 @@ public interface TaActicityStaticMapper {
82 82
             @Param("sharePhone") String sharePhone,
83 83
             @Param("activityId") String activityId,
84 84
             @Param("activityType") String activityType,
85
+            @Param("buildingId") String buildingId,
85 86
             @Param("sort") String sort,
86 87
             @Param("colKey") String colKey
87 88
     );
@@ -107,6 +108,8 @@ public interface TaActicityStaticMapper {
107 108
             @Param("sharePhone") String sharePhone,
108 109
             @Param("activityId") String activityId,
109 110
             @Param("activityType") String activityType,
111
+            @Param("personId") String personId,
112
+            @Param("buildingId") String buildingId,
110 113
             @Param("sort") String sort,
111 114
             @Param("colKey") String colKey
112 115
     );
@@ -185,4 +188,24 @@ public interface TaActicityStaticMapper {
185 188
             @Param("realtyConsultantPhone") String realtyConsultantPhone
186 189
     );
187 190
 
191
+    IPage<VisitPersonNum> selectActivityVisitPersonNumByPersonId(
192
+            IPage<VisitPersonNum> iPage,
193
+            @Param("orgId") Integer orgId,
194
+            @Param("startDate") LocalDateTime startDate,
195
+            @Param("endDate") LocalDateTime endDate,
196
+            @Param("personId") String personId,
197
+            @Param("activityId") String activityId,
198
+            @Param("activityType") String activityType
199
+    );
200
+
201
+    IPage<VisitNum> selectActivityVisitNumByPersonId(
202
+            IPage<VisitNum> iPage,
203
+            @Param("orgId") Integer orgId,
204
+            @Param("startDate") LocalDateTime startDate,
205
+            @Param("endDate") LocalDateTime endDate,
206
+            @Param("personId") String personId,
207
+            @Param("activityId") String activityId,
208
+            @Param("activityType") String activityType
209
+    );
210
+
188 211
 }

+ 35
- 21
src/main/java/com/huiju/estateagents/statistic/service/impl/TaActivityStaticServiceImpl.java Целия файл

@@ -3,6 +3,7 @@ package com.huiju.estateagents.statistic.service.impl;
3 3
 import com.baomidou.mybatisplus.core.metadata.IPage;
4 4
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
5 5
 import com.huiju.estateagents.base.ResponseBean;
6
+import com.huiju.estateagents.common.StringUtils;
6 7
 import com.huiju.estateagents.excel.ActivityStatistics.*;
7 8
 import com.huiju.estateagents.statistic.mapper.TaActicityStaticMapper;
8 9
 import org.springframework.beans.factory.annotation.Autowired;
@@ -20,18 +21,18 @@ public class TaActivityStaticServiceImpl {
20 21
     @Autowired
21 22
     private TaActicityStaticMapper taActicityStaticMapper;
22 23
 
23
-    public ResponseBean activityStatistical(LocalDate startDate, LocalDate endDate, String buidling, String targetType, Integer orgId){
24
+    public ResponseBean activityStatistical(LocalDate startDate, LocalDate endDate, String building, String targetType, Integer orgId){
24 25
 
25 26
         ResponseBean responseBean = new ResponseBean();
26 27
         Map<String, Object> map = new HashMap<>();
27 28
 
28
-        Integer sharePersonNum = taActicityStaticMapper.selectSharePersonNum(startDate, endDate, buidling, targetType, orgId);
29
+        Integer sharePersonNum = taActicityStaticMapper.selectSharePersonNum(LocalDateTime.of(startDate, LocalTime.MIN), LocalDateTime.of(endDate, LocalTime.MAX.withNano(0)), building, targetType, orgId);
29 30
 
30
-        Integer shareNum = taActicityStaticMapper.selectShareNum(startDate, endDate, buidling, targetType, orgId);
31
+        Integer shareNum = taActicityStaticMapper.selectShareNum(LocalDateTime.of(startDate, LocalTime.MIN), LocalDateTime.of(endDate, LocalTime.MAX.withNano(0)), building, targetType, orgId);
31 32
 
32
-        Integer visitPersonNum = taActicityStaticMapper.selectVisitPersonNum(startDate, endDate, buidling, targetType, orgId);
33
+        Integer visitPersonNum = taActicityStaticMapper.selectVisitPersonNum(LocalDateTime.of(startDate, LocalTime.MIN), LocalDateTime.of(endDate, LocalTime.MAX.withNano(0)), building, targetType, orgId);
33 34
 
34
-        Integer visitNum = taActicityStaticMapper.selectVisitNum(startDate, endDate, buidling, targetType, orgId);
35
+        Integer visitNum = taActicityStaticMapper.selectVisitNum(LocalDateTime.of(startDate, LocalTime.MIN), LocalDateTime.of(endDate, LocalTime.MAX.withNano(0)), building, targetType, orgId);
35 36
 
36 37
         map.put("sharePersonNum", sharePersonNum);
37 38
         map.put("shareNum", shareNum);
@@ -47,11 +48,11 @@ public class TaActivityStaticServiceImpl {
47 48
         ResponseBean responseBean = new ResponseBean();
48 49
 
49 50
         // 新增用户数
50
-        List<Map<String, Object>> selectShareCount = taActicityStaticMapper.selectShareCount(orgId, startDate, endDate, buildingId, targetType);
51
-        List<Map<String, Object>> selectSharePersonCount = taActicityStaticMapper.selectSharePersonCount(orgId, startDate, endDate, buildingId, targetType);
52
-        List<Map<String, Object>> selectVisitCount = taActicityStaticMapper.selectVisitCount(orgId, startDate, endDate, buildingId, targetType);
53
-        List<Map<String, Object>> selectVisitPersonCount = taActicityStaticMapper.selectVisitPersonCount(orgId, startDate, endDate, buildingId, targetType);
54
-        List<Map<String, Object>> selectAddRegistCount = taActicityStaticMapper.selectAddRegistCount(orgId, startDate, endDate, buildingId, targetType);
51
+        List<Map<String, Object>> selectShareCount = taActicityStaticMapper.selectShareCount(orgId, LocalDateTime.of(startDate, LocalTime.MIN), LocalDateTime.of(endDate, LocalTime.MAX.withNano(0)), buildingId, targetType);
52
+        List<Map<String, Object>> selectSharePersonCount = taActicityStaticMapper.selectSharePersonCount(orgId, LocalDateTime.of(startDate, LocalTime.MIN), LocalDateTime.of(endDate, LocalTime.MAX.withNano(0)), buildingId, targetType);
53
+        List<Map<String, Object>> selectVisitCount = taActicityStaticMapper.selectVisitCount(orgId, LocalDateTime.of(startDate, LocalTime.MIN), LocalDateTime.of(endDate, LocalTime.MAX.withNano(0)), buildingId, targetType);
54
+        List<Map<String, Object>> selectVisitPersonCount = taActicityStaticMapper.selectVisitPersonCount(orgId, LocalDateTime.of(startDate, LocalTime.MIN), LocalDateTime.of(endDate, LocalTime.MAX.withNano(0)), buildingId, targetType);
55
+        List<Map<String, Object>> selectAddRegistCount = taActicityStaticMapper.selectAddRegistCount(orgId, LocalDateTime.of(startDate, LocalTime.MIN), LocalDateTime.of(endDate, LocalTime.MAX.withNano(0)), buildingId, targetType);
55 56
 
56 57
 
57 58
         for (Map<String, Object> ssc : selectShareCount){
@@ -91,19 +92,19 @@ public class TaActivityStaticServiceImpl {
91 92
     public ResponseBean selectTableData(Integer pageNum, Integer pageSize, Integer orgId, LocalDate startDate, LocalDate endDate, String buildingId, String targetType, String sort, String colKey){
92 93
         IPage<StatisicAttractUser> iPage = new Page<>(pageNum, pageSize);
93 94
         String sortType = "ascend".equals(sort) ? "asc" : "desc";
94
-        IPage<StatisicAttractUser> data = taActicityStaticMapper.selectTableData(iPage, orgId, startDate, endDate, buildingId, targetType, sortType, colKey);
95
+        IPage<StatisicAttractUser> data = taActicityStaticMapper.selectTableData(iPage, orgId, LocalDateTime.of(startDate, LocalTime.MIN), LocalDateTime.of(endDate, LocalTime.MAX.withNano(0)), buildingId, targetType, sortType, colKey);
95 96
         return ResponseBean.success(data);
96 97
     }
97 98
 
98 99
     public List<StatisicAttractUser> selectExportTableData(Integer orgId, LocalDate startDate, LocalDate endDate, String buildingId, String targetType, String sort, String colKey){
99 100
         String sortType = "ascend".equals(sort) ? "asc" : "desc";
100
-        return taActicityStaticMapper.selectExportTableData(orgId, startDate, endDate, buildingId, targetType, sortType, colKey);
101
+        return taActicityStaticMapper.selectExportTableData(orgId, LocalDateTime.of(startDate, LocalTime.MIN), LocalDateTime.of(endDate, LocalTime.MAX.withNano(0)), buildingId, targetType, sortType, colKey);
101 102
     }
102 103
 
103 104
     public ResponseBean selectActivityStatisDetail(Integer pageNum, Integer pageSize, Integer orgId, LocalDate startDate, LocalDate endDate, String buildingId, String targetType, String activityName, String sort, String colKey){
104 105
         IPage<ActivityDetailShareRecord> iPage = new Page<>(pageNum, pageSize);
105 106
         String sortType = "ascend".equals(sort) ? "asc" : "desc";
106
-        IPage<ActivityDetailShareRecord> data = taActicityStaticMapper.selectActivityStatisDetail(iPage, orgId, startDate, endDate, buildingId, targetType, activityName, sortType, colKey);
107
+        IPage<ActivityDetailShareRecord> data = taActicityStaticMapper.selectActivityStatisDetail(iPage, orgId, LocalDateTime.of(startDate, LocalTime.MIN), LocalDateTime.of(endDate, LocalTime.MAX.withNano(0)), buildingId, targetType, activityName, sortType, colKey);
107 108
         return ResponseBean.success(data);
108 109
     }
109 110
 
@@ -112,11 +113,11 @@ public class TaActivityStaticServiceImpl {
112 113
         return taActicityStaticMapper.selectActivityStatisDetailExport(orgId, startDate, endDate, buildingId, targetType, activityName, sortType, colKey);
113 114
     }
114 115
 
115
-    public ResponseBean selectActivitySharePersonNum(Integer pageNum, Integer pageSize, Integer orgId, LocalDate startDate, LocalDate endDate, String sharePersonType, String sharePersonName, String sharePhone, String activityId, String activityType, String sort, String colKey){
116
+    public ResponseBean selectActivitySharePersonNum(Integer pageNum, Integer pageSize, Integer orgId, LocalDate startDate, LocalDate endDate, String sharePersonType, String sharePersonName, String sharePhone, String activityId, String activityType, String buildingId, String sort, String colKey){
116 117
         IPage<SharePersonNum> iPage = new Page<>(pageNum, pageSize);
117 118
         String sortType = "ascend".equals(sort) ? "asc" : "desc";
118 119
 
119
-        IPage<SharePersonNum> data = taActicityStaticMapper.selectActivitySharePersonNum(iPage, orgId, LocalDateTime.of(startDate, LocalTime.MAX), LocalDateTime.of(endDate, LocalTime.MAX), sharePersonType, sharePersonName, sharePhone, activityId, activityType, sortType, colKey);
120
+        IPage<SharePersonNum> data = taActicityStaticMapper.selectActivitySharePersonNum(iPage, orgId, LocalDateTime.of(startDate, LocalTime.MAX), LocalDateTime.of(endDate, LocalTime.MAX), sharePersonType, sharePersonName, sharePhone, activityId, activityType, buildingId, sortType, colKey);
120 121
         return ResponseBean.success(data);
121 122
     }
122 123
 
@@ -125,11 +126,11 @@ public class TaActivityStaticServiceImpl {
125 126
         return taActicityStaticMapper.selectActivitySharePersonNumExport(orgId, LocalDateTime.of(startDate, LocalTime.MAX), LocalDateTime.of(endDate, LocalTime.MAX), sharePersonType, sharePersonName, sharePhone, sortType, colKey);
126 127
     }
127 128
 
128
-    public ResponseBean selectActivityShareNum(Integer pageNum, Integer pageSize, Integer orgId, LocalDate startDate, LocalDate endDate, String sharePersonType, String sharePersonName, String sharePhone, String activityId, String activityType, String sort, String colKey){
129
+    public ResponseBean selectActivityShareNum(Integer pageNum, Integer pageSize, Integer orgId, LocalDate startDate, LocalDate endDate, String sharePersonType, String sharePersonName, String sharePhone, String activityId, String activityType, String personId, String buildingId, String sort, String colKey){
129 130
         IPage<ShareNum> iPage = new Page<>(pageNum, pageSize);
130 131
         String sortType = "ascend".equals(sort) ? "asc" : "desc";
131 132
 
132
-        IPage<ShareNum> data = taActicityStaticMapper.selectActivityShareNum(iPage, orgId, LocalDateTime.of(startDate, LocalTime.MAX), LocalDateTime.of(endDate, LocalTime.MAX), sharePersonType, sharePersonName, sharePhone, activityId, activityType, sortType, colKey);
133
+        IPage<ShareNum> data = taActicityStaticMapper.selectActivityShareNum(iPage, orgId, LocalDateTime.of(startDate, LocalTime.MAX), LocalDateTime.of(endDate, LocalTime.MAX), sharePersonType, sharePersonName, sharePhone, activityId, activityType, personId, buildingId, sortType, colKey);
133 134
         return ResponseBean.success(data);
134 135
     }
135 136
 
@@ -148,9 +149,15 @@ public class TaActivityStaticServiceImpl {
148 149
         return taActicityStaticMapper.selectActivityAddRegistNumExport(orgId, LocalDateTime.of(startDate, LocalTime.MAX), LocalDateTime.of(endDate, LocalTime.MAX), personFrom);
149 150
     }
150 151
 
151
-    public ResponseBean selectActivityVisitNum(Integer pageNum, Integer pageSize, Integer orgId, LocalDate startDate, LocalDate endDate, String personFrom, String provice, String realtyConsultant, String realtyConsultantPhone, String activityId, String activityType){
152
+    public ResponseBean selectActivityVisitNum(Integer pageNum, Integer pageSize, Integer orgId, LocalDate startDate, LocalDate endDate, String personFrom, String provice, String realtyConsultant, String realtyConsultantPhone, String activityId, String activityType, String personId){
152 153
         IPage<VisitNum> iPage = new Page<>(pageNum, pageSize);
153
-        IPage<VisitNum> data = taActicityStaticMapper.selectActivityVisitNum(iPage, orgId, LocalDateTime.of(startDate, LocalTime.MAX), LocalDateTime.of(endDate, LocalTime.MAX), personFrom, provice, realtyConsultant, realtyConsultantPhone, activityId, activityType);
154
+        IPage<VisitNum> data;
155
+        if (StringUtils.isEmpty(personId)){
156
+            data = taActicityStaticMapper.selectActivityVisitNum(iPage, orgId, LocalDateTime.of(startDate, LocalTime.MAX), LocalDateTime.of(endDate, LocalTime.MAX), personFrom, provice, realtyConsultant, realtyConsultantPhone, activityId, activityType);
157
+        }else{
158
+            data = taActicityStaticMapper.selectActivityVisitNumByPersonId(iPage, orgId, LocalDateTime.of(startDate, LocalTime.MAX), LocalDateTime.of(endDate, LocalTime.MAX), personId, activityId, activityType);
159
+        }
160
+
154 161
         return ResponseBean.success(data);
155 162
     }
156 163
 
@@ -158,13 +165,20 @@ public class TaActivityStaticServiceImpl {
158 165
         return taActicityStaticMapper.selectActivityVisitNumExport(orgId, LocalDateTime.of(startDate, LocalTime.MAX), LocalDateTime.of(endDate, LocalTime.MAX), personFrom, provice, realtyConsultant, realtyConsultantPhone);
159 166
     }
160 167
 
161
-    public ResponseBean selectActivityVisitPersonNum(Integer pageNum, Integer pageSize, Integer orgId, LocalDate startDate, LocalDate endDate, String personFrom, String provice, String realtyConsultant, String realtyConsultantPhone, String activityId, String activityType){
168
+    public ResponseBean selectActivityVisitPersonNum(Integer pageNum, Integer pageSize, Integer orgId, LocalDate startDate, LocalDate endDate, String personFrom, String provice, String realtyConsultant, String realtyConsultantPhone, String activityId, String activityType, String personId){
162 169
         IPage<VisitPersonNum> iPage = new Page<>(pageNum, pageSize);
163
-        IPage<VisitPersonNum> data = taActicityStaticMapper.selectActivityVisitPersonNum(iPage, orgId, LocalDateTime.of(startDate, LocalTime.MAX), LocalDateTime.of(endDate, LocalTime.MAX), personFrom, provice, realtyConsultant, realtyConsultantPhone, activityId, activityType);
170
+        IPage<VisitPersonNum> data;
171
+        if (StringUtils.isEmpty(personId)){
172
+            data = taActicityStaticMapper.selectActivityVisitPersonNum(iPage, orgId, LocalDateTime.of(startDate, LocalTime.MAX), LocalDateTime.of(endDate, LocalTime.MAX), personFrom, provice, realtyConsultant, realtyConsultantPhone, activityId, activityType);
173
+        }else{
174
+            data = taActicityStaticMapper.selectActivityVisitPersonNumByPersonId(iPage, orgId, LocalDateTime.of(startDate, LocalTime.MAX), LocalDateTime.of(endDate, LocalTime.MAX), personId, activityId, activityType);
175
+        }
176
+
164 177
         return ResponseBean.success(data);
165 178
     }
166 179
 
167 180
     public List<VisitPersonNum> selectActivityVisitPersonNumExport(Integer orgId, LocalDate startDate, LocalDate endDate, String personFrom, String provice, String realtyConsultant, String realtyConsultantPhone){
168 181
         return taActicityStaticMapper.selectActivityVisitPersonNumExport(orgId, LocalDateTime.of(startDate, LocalTime.MAX), LocalDateTime.of(endDate, LocalTime.MAX), personFrom, provice, realtyConsultant, realtyConsultantPhone);
169 182
     }
183
+
170 184
 }

+ 11
- 0
src/main/resources/mapper/TaOrgCity.xml Целия файл

@@ -23,4 +23,15 @@
23 23
                 ORDER BY
24 24
                 c.pinyin
25 25
     </select>
26
+    <select id="selectAdminTdAreaCityList" resultType="com.huiju.estateagents.entity.TaOrgCity">
27
+        SELECT
28
+        id,
29
+        NAME,
30
+        parentid,
31
+        LEFT ( pinyin, 1 ) AS initial
32
+        FROM
33
+        td_city
34
+        WHERE
35
+        parentid = #{cityId}
36
+    </select>
26 37
 </mapper>

+ 26
- 0
src/main/resources/mapper/TaPersonMapper.xml Целия файл

@@ -615,6 +615,32 @@ FROM
615 615
         AND DATE_FORMAT(tp.create_date,'%Y-%m-%d') = DATE_FORMAT(#{nowDate},'%Y-%m-%d')
616 616
     </select>
617 617
 
618
+    <select id="selectCityPerson" resultType="java.util.Map">
619
+        SELECT
620
+            d.*,
621
+            count( d.person_id ) AS cityCount
622
+        FROM
623
+        (
624
+            SELECT
625
+                t.city AS city,
626
+                b.shortname AS NAME,
627
+                b.lng,
628
+                b.lat,
629
+                t.person_id
630
+            FROM
631
+            ( SELECT * FROM ta_person_position ORDER BY create_time DESC ) t
632
+                LEFT JOIN ta_person a ON t.person_id = a.person_id
633
+                INNER JOIN td_city b ON t.citycode = b.citycode
634
+            WHERE
635
+                a.org_id = #{orgId}
636
+                AND a.person_type IN ( 'customer', 'drift', 'estate agent' )
637
+            GROUP BY
638
+                t.person_id
639
+        ) d
640
+        GROUP BY
641
+        d.city
642
+    </select>
643
+
618 644
     <insert id="savePersonPosition" parameterType="com.huiju.estateagents.entity.TaPersonPositon">
619 645
         insert into ta_person_position
620 646
         <trim prefix="(" suffix=")" suffixOverrides=",">

+ 11
- 4
src/main/resources/mapper/TaRecommendCustomerMapper.xml Целия файл

@@ -551,11 +551,15 @@ FROM
551 551
           concat(b.country, b.province) as province,
552 552
           z.intention,
553 553
           d.scene_alias as sceneType,
554
-          t.building_name
554
+          t.building_name,
555
+          ifnull( c.nickname, c.NAME ) AS sharePersonName ,
556
+          s.points
555 557
         FROM
556 558
         ta_person b
557 559
         LEFT JOIN ta_person_from_record r ON b.person_id = r.person_id AND r.is_first_time = 1 and r.org_id = #{orgId}
558 560
         left join ta_building t on b.building_id = t.building_id
561
+        LEFT JOIN ta_person c ON b.recommend_person = c.person_id AND c.org_id = #{orgId}
562
+        left JOIN (select sum(points_amount) as points,person_id from ta_points_records where org_id = #{orgId} GROUP BY person_id) s on b.person_id = s.person_id
559 563
         left join (select sum(t.intention) as intention,t.person_id From ta_person_intention_record t where t.org_id = #{orgId} group by t.person_id) z on z.person_id = b.person_id
560 564
         left join td_wx_dict d on r.scene_id = d.scene_id
561 565
         <where>
@@ -591,7 +595,7 @@ FROM
591 595
             <if test="consultTel != null and consultTel !=''">
592 596
                 and b.tel like CONCAT('%',#{consultTel}, '%')
593 597
             </if>
594
-            and NOT EXISTS ( select * from ta_recommend_customer a where a.org_id = #{orgId} and a.recommend_person = b.person_id)
598
+<!--            and NOT EXISTS ( select * from ta_recommend_customer a where a.org_id = #{orgId} and a.recommend_person = b.person_id)-->
595 599
             AND b.person_id not IN ( SELECT c.person_id FROM ta_recommend_customer c WHERE c.org_id = #{orgId} AND person_id is not null AND person_id != ''  )
596 600
         </where>
597 601
         order by b.create_date desc
@@ -667,15 +671,18 @@ FROM
667 671
         z.intention,
668 672
         a.create_date,
669 673
         concat(a.country,a.province) as province,
670
-        w.scene_alias as scene_type
674
+        w.scene_alias as scene_type,
675
+        IFNULL( c.NAME, c.nickname ) AS sharePersonName,
676
+        s.points
671 677
         FROM
672 678
         ta_recommend_customer a
673 679
         LEFT JOIN ta_person b ON a.realty_consultant = b.person_id
674
-        LEFT JOIN ta_person c ON a.realty_consultant = c.user_id
675 680
         LEFT JOIN ta_user d on d.user_id = a.realty_consultant
676 681
         LEFT JOIN ta_person_from_record p ON a.person_id = p.person_id AND p.is_first_time = 1 and p.org_id = #{orgId}
682
+        LEFT JOIN ta_person c ON p.share_person_id = c.person_id
677 683
         left join ta_building t on a.building_id = t.building_id
678 684
         LEFT JOIN td_wx_dict w ON p.scene_id = w.scene_id
685
+        left JOIN (select sum(points_amount) as points,person_id from ta_points_records where org_id = #{orgId} GROUP BY person_id) s on a.person_id = s.person_id
679 686
         left join (select sum(t.intention) as intention,t.person_id From ta_person_intention_record t where t.org_id = #{orgId} group by t.person_id) z on z.person_id = a.person_id
680 687
         <where>
681 688
             a.status > 0

+ 420
- 190
src/main/resources/mapper/statistic/TaActivityStaticMapper.xml
Файловите разлики са ограничени, защото са твърде много
Целия файл