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

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

@@ -184,4 +184,15 @@ public class StatisticalController extends BaseController {
184 184
                                          HttpServletRequest request) {
185 185
         return iStatisticalService.selectPersonFromGroupByDay(getOrgId(request), startDate,endDate);
186 186
     }
187
+
188
+    /**
189
+     * 项目排行统计图
190
+     * @return
191
+     */
192
+    @GetMapping(value = "/admin/stats/barList")
193
+    public ResponseBean selectBuildingBar(@RequestParam(value = "startDate", required = false) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) LocalDate startDate,
194
+                                           @RequestParam(value = "endDate", required = false) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME)  LocalDate endDate,
195
+                                           HttpServletRequest request) {
196
+        return iStatisticalService.getStatsBarList(getOrgId(request), startDate, endDate, getTaPersonBuildingListByUserId(request));
197
+    }
187 198
 }

+ 1
- 6
src/main/java/com/huiju/estateagents/controller/TaBuildingController.java Прегледај датотеку

@@ -2,9 +2,9 @@ package com.huiju.estateagents.controller;
2 2
 
3 3
 
4 4
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
5
+import com.huiju.estateagents.base.BaseController;
5 6
 import com.huiju.estateagents.base.ResponseBean;
6 7
 import com.huiju.estateagents.common.CommConstant;
7
-import com.huiju.estateagents.common.JWTUtils;
8 8
 import com.huiju.estateagents.common.StringUtils;
9 9
 import com.huiju.estateagents.entity.TaBuilding;
10 10
 import com.huiju.estateagents.entity.TaOrg;
@@ -14,24 +14,19 @@ import com.huiju.estateagents.mapper.TaOrgMapper;
14 14
 import com.huiju.estateagents.service.ITaBuildingService;
15 15
 import com.huiju.estateagents.service.ITaPersonService;
16 16
 import com.huiju.estateagents.service.ITaSaveService;
17
-import com.huiju.estateagents.service.ITdCityService;
18 17
 import io.swagger.annotations.Api;
19 18
 import io.swagger.annotations.ApiImplicitParam;
20 19
 import io.swagger.annotations.ApiImplicitParams;
21 20
 import io.swagger.annotations.ApiOperation;
22
-import org.apache.ibatis.annotations.Param;
23 21
 import org.springframework.beans.factory.annotation.Autowired;
24 22
 import org.springframework.format.annotation.DateTimeFormat;
25 23
 import org.springframework.web.bind.annotation.*;
26 24
 
27
-import com.huiju.estateagents.base.BaseController;
28
-
29 25
 import javax.servlet.http.HttpServletRequest;
30 26
 import javax.servlet.http.HttpSession;
31 27
 import java.time.LocalDateTime;
32 28
 import java.util.ArrayList;
33 29
 import java.util.List;
34
-import java.util.Map;
35 30
 
36 31
 /**
37 32
  * <p>

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

@@ -8,6 +8,7 @@ import org.apache.ibatis.annotations.Mapper;
8 8
 import org.apache.ibatis.annotations.Param;
9 9
 import org.apache.ibatis.annotations.Update;
10 10
 
11
+import java.time.LocalDate;
11 12
 import java.time.LocalDateTime;
12 13
 import java.util.List;
13 14
 import java.util.Map;
@@ -93,4 +94,14 @@ public interface TaBuildingMapper extends BaseMapper<TaBuilding> {
93 94
     int countNumByHeavy(@Param("heavy") Integer heavy, @Param("dynamicId") String dynamicId);
94 95
 
95 96
     List<TaBuilding> selectMainBuildings(@Param("cityId") String cityId, @Param("orgId") Integer orgId);
97
+
98
+    /**
99
+     * 获取公客折线图数据
100
+     * @param orgId
101
+     * @param startDate
102
+     * @param endDate
103
+     * @param personBuildingList
104
+     * @return
105
+     */
106
+    List<Map<String, Object>> getGkBarData(@Param("orgId") Integer orgId,@Param("startDate") LocalDate startDate,@Param("endDate") LocalDate endDate,@Param("personBuildingList") List<TaPersonBuilding> personBuildingList);
96 107
 }

+ 10
- 1
src/main/java/com/huiju/estateagents/service/IStatisticalService.java Прегледај датотеку

@@ -4,7 +4,6 @@ import com.huiju.estateagents.base.ResponseBean;
4 4
 import com.huiju.estateagents.entity.TaPersonBuilding;
5 5
 
6 6
 import java.time.LocalDate;
7
-import java.util.Date;
8 7
 import java.util.List;
9 8
 
10 9
 /**
@@ -126,4 +125,14 @@ public interface IStatisticalService {
126 125
      * @return
127 126
      */
128 127
     ResponseBean selectPersonFromGroupByDay(Integer orgId, LocalDate startDate, LocalDate endDate);
128
+
129
+    /**
130
+     * 获取楼盘的折线图统计
131
+     * @param orgId
132
+     * @param startDate
133
+     * @param endDate
134
+     * @param taPersonBuildingListByUserId
135
+     * @return
136
+     */
137
+    ResponseBean getStatsBarList(Integer orgId, LocalDate startDate, LocalDate endDate, List<TaPersonBuilding> taPersonBuildingListByUserId);
129 138
 }

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

@@ -1,8 +1,8 @@
1 1
 package com.huiju.estateagents.service;
2 2
 
3
+import com.baomidou.mybatisplus.extension.service.IService;
3 4
 import com.huiju.estateagents.base.ResponseBean;
4 5
 import com.huiju.estateagents.entity.TaBuilding;
5
-import com.baomidou.mybatisplus.extension.service.IService;
6 6
 import com.huiju.estateagents.entity.TaPerson;
7 7
 import com.huiju.estateagents.entity.TaPersonBuilding;
8 8
 

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

@@ -8,7 +8,6 @@ import com.huiju.estateagents.common.CommConstant;
8 8
 import com.huiju.estateagents.entity.TaPersonBuilding;
9 9
 import com.huiju.estateagents.entity.TaPersonVisitRecord;
10 10
 import com.huiju.estateagents.entity.TdWxDict;
11
-import com.huiju.estateagents.exception.EstaException;
12 11
 import com.huiju.estateagents.mapper.*;
13 12
 import com.huiju.estateagents.po.PersonPO;
14 13
 import com.huiju.estateagents.service.IStatisticalService;
@@ -19,10 +18,12 @@ import org.springframework.beans.factory.annotation.Autowired;
19 18
 import org.springframework.stereotype.Service;
20 19
 
21 20
 import java.time.LocalDate;
22
-import java.time.LocalDateTime;
23 21
 import java.time.format.DateTimeFormatter;
24 22
 import java.time.temporal.ChronoUnit;
25
-import java.util.*;
23
+import java.util.ArrayList;
24
+import java.util.HashMap;
25
+import java.util.List;
26
+import java.util.Map;
26 27
 import java.util.stream.Collectors;
27 28
 import java.util.stream.Stream;
28 29
 
@@ -402,4 +403,38 @@ public class StatisticalServiceImpl implements IStatisticalService {
402 403
         });
403 404
         return dataList;
404 405
     }
406
+
407
+    /**
408
+     * 获取楼盘的折线图统计
409
+     *
410
+     * @param orgId
411
+     * @param startDate
412
+     * @param endDate
413
+     * @param personBuildingList
414
+     * @return
415
+     */
416
+    @Override
417
+    public ResponseBean getStatsBarList(Integer orgId, LocalDate startDate, LocalDate endDate, List<TaPersonBuilding> personBuildingList) {
418
+        Map<String,Object> map = new HashMap<>();
419
+        //项目公客排行折线图获取
420
+        Map<String,Object> gkBarMap = getGkBarData(orgId,startDate,endDate,personBuildingList);
421
+        map.put("gkBarMap",gkBarMap);
422
+        //项目私客排行折线图获取
423
+        //项目访问人数排行折线图获取
424
+        //项目访问次数排行折线图获取
425
+        return ResponseBean.success(map);
426
+    }
427
+
428
+    private Map<String, Object> getGkBarData(Integer orgId, LocalDate startDate, LocalDate endDate, List<TaPersonBuilding> personBuildingList) {
429
+        Map<String,Object> map = new HashMap<>();
430
+        List<Map<String, Object>> gkBarData = taBuildingMapper.getGkBarData(orgId, startDate, endDate, personBuildingList);
431
+        if (gkBarData.size() > 0){
432
+            map.put("data",gkBarData);
433
+            List<Object> buildingNameList = gkBarData.stream().map(x -> x.get("buildingName")).collect(Collectors.toList());
434
+            map.put("buildingNameList",buildingNameList);
435
+            List<Object> gkNumList = gkBarData.stream().map(x -> x.get("gkNum")).collect(Collectors.toList());
436
+            map.put("numList",gkNumList);
437
+        }
438
+        return map;
439
+    }
405 440
 }

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

@@ -6,18 +6,15 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
6 6
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
7 7
 import com.baomidou.mybatisplus.core.metadata.IPage;
8 8
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
9
-import com.google.common.collect.Lists;
9
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
10 10
 import com.huiju.estateagents.base.ResponseBean;
11 11
 import com.huiju.estateagents.center.taUser.entity.TaUser;
12 12
 import com.huiju.estateagents.center.taUser.mapper.TaUserMapper;
13 13
 import com.huiju.estateagents.common.CommConstant;
14
-import com.huiju.estateagents.common.DateUtils;
15 14
 import com.huiju.estateagents.common.StringUtils;
16 15
 import com.huiju.estateagents.entity.*;
17 16
 import com.huiju.estateagents.mapper.*;
18 17
 import com.huiju.estateagents.service.*;
19
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
20
-import javafx.scene.control.Tab;
21 18
 import org.apache.commons.collections.CollectionUtils;
22 19
 import org.springframework.beans.factory.annotation.Autowired;
23 20
 import org.springframework.stereotype.Service;

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

@@ -257,4 +257,45 @@
257 257
         ORDER BY t.order_no desc
258 258
     </select>
259 259
 
260
+    <select id="getGkBarData" resultType="java.util.Map">
261
+        SELECT
262
+            count( * ) AS gk_num,
263
+            bb.building_id,
264
+            bb.create_date,
265
+            bb.building_name
266
+        FROM
267
+        (
268
+            SELECT
269
+                b.*,
270
+                d.building_name
271
+            FROM
272
+                ta_person b
273
+            LEFT JOIN ta_building d ON b.building_id = d.building_id
274
+            WHERE
275
+                b.STATUS > 0
276
+                AND b.org_id = #{orgId}
277
+                AND IFNULL( b.person_type, '' ) IN ( 'estate agent', 'customer' )
278
+                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 != '' )
279
+                <if test="personBuildingList != null and personBuildingList.size > 0">
280
+                    AND b.building_id in
281
+                    <foreach collection="personBuildingList" item="personBuilding" open="(" close=")" separator=",">
282
+                        #{personBuilding.buildingId}
283
+                    </foreach>
284
+                </if>
285
+                <if test="startDate != null">
286
+                    and  TO_DAYS(b.create_date) >= TO_DAYS(#{startDate})
287
+                </if>
288
+                <if test="endDate != null">
289
+                    and  TO_DAYS(b.create_date) &lt;= TO_DAYS(#{endDate})
290
+                </if>
291
+                and b.building_id is not null
292
+            GROUP BY
293
+            b.person_id
294
+        ) bb
295
+        GROUP BY
296
+            bb.building_id
297
+        order by gk_num desc
298
+        limit 6
299
+    </select>
300
+
260 301
 </mapper>