Przeglądaj źródła

新需求统计图

傅行帆 5 lat temu
rodzic
commit
2b23771e14

+ 31
- 1
src/main/java/com/huiju/estateagents/mapper/TaBuildingMapper.java Wyświetl plik

@@ -96,7 +96,7 @@ public interface TaBuildingMapper extends BaseMapper<TaBuilding> {
96 96
     List<TaBuilding> selectMainBuildings(@Param("cityId") String cityId, @Param("orgId") Integer orgId);
97 97
 
98 98
     /**
99
-     * 获取公客折线图数据
99
+     * 获取公客统计图数据
100 100
      * @param orgId
101 101
      * @param startDate
102 102
      * @param endDate
@@ -104,4 +104,34 @@ public interface TaBuildingMapper extends BaseMapper<TaBuilding> {
104 104
      * @return
105 105
      */
106 106
     List<Map<String, Object>> getGkBarData(@Param("orgId") Integer orgId,@Param("startDate") LocalDate startDate,@Param("endDate") LocalDate endDate,@Param("personBuildingList") List<TaPersonBuilding> personBuildingList);
107
+
108
+    /**
109
+     * 获取私客统计图数据
110
+     * @param orgId
111
+     * @param startDate
112
+     * @param endDate
113
+     * @param personBuildingList
114
+     * @return
115
+     */
116
+    List<Map<String, Object>> getSkBarData(@Param("orgId") Integer orgId,@Param("startDate") LocalDate startDate,@Param("endDate") LocalDate endDate,@Param("personBuildingList") List<TaPersonBuilding> personBuildingList);
117
+
118
+    /**
119
+     * 项目访问人数排行折线图获取
120
+     * @param orgId
121
+     * @param startDate
122
+     * @param endDate
123
+     * @param personBuildingList
124
+     * @return
125
+     */
126
+    List<Map<String, Object>> getWgBarData(@Param("orgId") Integer orgId,@Param("startDate") LocalDate startDate,@Param("endDate") LocalDate endDate,@Param("personBuildingList") List<TaPersonBuilding> personBuildingList);
127
+
128
+    /**
129
+     * 项目访问次数排行折线图获取
130
+     * @param orgId
131
+     * @param startDate
132
+     * @param endDate
133
+     * @param personBuildingList
134
+     * @return
135
+     */
136
+    List<Map<String, Object>> getFwBarData(@Param("orgId") Integer orgId,@Param("startDate") LocalDate startDate,@Param("endDate") LocalDate endDate,@Param("personBuildingList") List<TaPersonBuilding> personBuildingList);
107 137
 }

+ 82
- 0
src/main/java/com/huiju/estateagents/service/impl/StatisticalServiceImpl.java Wyświetl plik

@@ -419,12 +419,30 @@ public class StatisticalServiceImpl implements IStatisticalService {
419 419
         //项目公客排行折线图获取
420 420
         Map<String,Object> gkBarMap = getGkBarData(orgId,startDate,endDate,personBuildingList);
421 421
         map.put("gkBarMap",gkBarMap);
422
+
422 423
         //项目私客排行折线图获取
424
+        Map<String,Object> skBarMap = getSkBarData(orgId,startDate,endDate,personBuildingList);
425
+        map.put("skBarMap",skBarMap);
426
+
423 427
         //项目访问人数排行折线图获取
428
+        Map<String,Object> wgBarMap = getWgBarData(orgId,startDate,endDate,personBuildingList);
429
+        map.put("wgBarMap",wgBarMap);
430
+
424 431
         //项目访问次数排行折线图获取
432
+        Map<String,Object> fwBarMap = getFwBarData(orgId,startDate,endDate,personBuildingList);
433
+        map.put("fwBarMap",fwBarMap);
434
+
425 435
         return ResponseBean.success(map);
426 436
     }
427 437
 
438
+    /**
439
+     * 项目公客排行折线图获取
440
+     * @param orgId
441
+     * @param startDate
442
+     * @param endDate
443
+     * @param personBuildingList
444
+     * @return
445
+     */
428 446
     private Map<String, Object> getGkBarData(Integer orgId, LocalDate startDate, LocalDate endDate, List<TaPersonBuilding> personBuildingList) {
429 447
         Map<String,Object> map = new HashMap<>();
430 448
         List<Map<String, Object>> gkBarData = taBuildingMapper.getGkBarData(orgId, startDate, endDate, personBuildingList);
@@ -437,4 +455,68 @@ public class StatisticalServiceImpl implements IStatisticalService {
437 455
         }
438 456
         return map;
439 457
     }
458
+
459
+    /**
460
+     * 项目私客排行折线图获取
461
+     * @param orgId
462
+     * @param startDate
463
+     * @param endDate
464
+     * @param personBuildingList
465
+     * @return
466
+     */
467
+    private Map<String, Object> getSkBarData(Integer orgId, LocalDate startDate, LocalDate endDate, List<TaPersonBuilding> personBuildingList) {
468
+        Map<String,Object> map = new HashMap<>();
469
+        List<Map<String, Object>> skBarData = taBuildingMapper.getSkBarData(orgId, startDate, endDate, personBuildingList);
470
+        if (skBarData.size() > 0){
471
+            map.put("data",skBarData);
472
+            List<Object> buildingNameList = skBarData.stream().map(x -> x.get("buildingName")).collect(Collectors.toList());
473
+            map.put("buildingNameList",buildingNameList);
474
+            List<Object> gkNumList = skBarData.stream().map(x -> x.get("skNum")).collect(Collectors.toList());
475
+            map.put("numList",gkNumList);
476
+        }
477
+        return map;
478
+    }
479
+
480
+
481
+    /**
482
+     * 项目访问人数排行折线图获取
483
+     * @param orgId
484
+     * @param startDate
485
+     * @param endDate
486
+     * @param personBuildingList
487
+     * @return
488
+     */
489
+    private Map<String, Object> getWgBarData(Integer orgId, LocalDate startDate, LocalDate endDate, List<TaPersonBuilding> personBuildingList) {
490
+        Map<String,Object> map = new HashMap<>();
491
+        List<Map<String, Object>> wgBarData = taBuildingMapper.getWgBarData(orgId, startDate, endDate, personBuildingList);
492
+        if (wgBarData.size() > 0){
493
+            map.put("data",wgBarData);
494
+            List<Object> buildingNameList = wgBarData.stream().map(x -> x.get("buildingName")).collect(Collectors.toList());
495
+            map.put("buildingNameList",buildingNameList);
496
+            List<Object> gkNumList = wgBarData.stream().map(x -> x.get("wgNum")).collect(Collectors.toList());
497
+            map.put("numList",gkNumList);
498
+        }
499
+        return map;
500
+    }
501
+
502
+    /**
503
+     * 项目访问次数排行折线图获取
504
+     * @param orgId
505
+     * @param startDate
506
+     * @param endDate
507
+     * @param personBuildingList
508
+     * @return
509
+     */
510
+    private Map<String, Object> getFwBarData(Integer orgId, LocalDate startDate, LocalDate endDate, List<TaPersonBuilding> personBuildingList) {
511
+        Map<String,Object> map = new HashMap<>();
512
+        List<Map<String, Object>> fwBarData = taBuildingMapper.getFwBarData(orgId, startDate, endDate, personBuildingList);
513
+        if (fwBarData.size() > 0){
514
+            map.put("data",fwBarData);
515
+            List<Object> buildingNameList = fwBarData.stream().map(x -> x.get("buildingName")).collect(Collectors.toList());
516
+            map.put("buildingNameList",buildingNameList);
517
+            List<Object> gkNumList = fwBarData.stream().map(x -> x.get("pvNum")).collect(Collectors.toList());
518
+            map.put("numList",gkNumList);
519
+        }
520
+        return map;
521
+    }
440 522
 }

+ 86
- 0
src/main/resources/mapper/TaBuildingMapper.xml Wyświetl plik

@@ -298,4 +298,90 @@
298 298
         limit 6
299 299
     </select>
300 300
 
301
+    <select id="getSkBarData" resultType="java.util.Map">
302
+        SELECT
303
+            count( * ) AS sk_num,
304
+            a.building_id,
305
+            d.building_name
306
+        FROM
307
+            ta_recommend_customer a
308
+        LEFT JOIN ta_building d ON a.building_id = d.building_id
309
+        WHERE
310
+            a.STATUS > 0
311
+            AND a.verify_status = 1
312
+            AND a.realty_consultant IS NOT NULL
313
+            AND a.realty_consultant != ''
314
+            AND a.org_id = #{orgId}
315
+            <if test="personBuildingList != null and personBuildingList.size > 0">
316
+                AND a.building_id in
317
+                <foreach collection="personBuildingList" item="personBuilding" open="(" close=")" separator=",">
318
+                    #{personBuilding.buildingId}
319
+                </foreach>
320
+            </if>
321
+            <if test="startDate != null">
322
+                and  TO_DAYS(a.create_date) >= TO_DAYS(#{startDate})
323
+            </if>
324
+            <if test="endDate != null">
325
+                and  TO_DAYS(a.create_date) &lt;= TO_DAYS(#{endDate})
326
+            </if>
327
+        GROUP BY
328
+        a.building_id
329
+        ORDER BY
330
+        sk_num DESC
331
+        LIMIT 6
332
+    </select>
333
+
334
+    <select id="getWgBarData" resultType="java.util.Map">
335
+        SELECT
336
+            count( * ) AS wg_num,
337
+            a.be_uv AS building_id,
338
+            a.create_date,
339
+            d.building_name
340
+        FROM
341
+            ta_uv a
342
+        LEFT JOIN ta_building d ON a.be_uv = d.building_id
343
+        LEFT JOIN ta_person p ON a.person_id = p.person_id
344
+        WHERE
345
+            a.tagert_type = 'project'
346
+            and p.org_id = #{orgId}
347
+            and a.be_uv != "undefined"
348
+            <if test="personBuildingList != null and personBuildingList.size > 0">
349
+                AND a.be_uv in
350
+                <foreach collection="personBuildingList" item="personBuilding" open="(" close=")" separator=",">
351
+                    #{personBuilding.buildingId}
352
+                </foreach>
353
+            </if>
354
+            <if test="startDate != null">
355
+                and  TO_DAYS(a.create_date) >= TO_DAYS(#{startDate})
356
+            </if>
357
+            <if test="endDate != null">
358
+                and  TO_DAYS(a.create_date) &lt;= TO_DAYS(#{endDate})
359
+            </if>
360
+        GROUP BY
361
+            a.be_uv
362
+        ORDER BY
363
+            wg_num DESC
364
+        LIMIT 6
365
+    </select>
366
+
367
+    <select id="getFwBarData" resultType="java.util.Map">
368
+        SELECT
369
+            t.pv_num,
370
+            t.building_id,
371
+            t.building_name
372
+        FROM
373
+            ta_building t
374
+        WHERE
375
+            t.org_id = #{orgId}
376
+        <if test="personBuildingList != null and personBuildingList.size > 0">
377
+            AND a.be_uv in
378
+            <foreach collection="personBuildingList" item="personBuilding" open="(" close=")" separator=",">
379
+                #{personBuilding.buildingId}
380
+            </foreach>
381
+        </if>
382
+        ORDER BY
383
+        pv_num DESC
384
+        LIMIT 6
385
+    </select>
386
+
301 387
 </mapper>