瀏覽代碼

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

张延森 5 年之前
父節點
當前提交
574481af5f

+ 0
- 9
src/main/java/com/huiju/estateagents/channel/sysChannel/controller/SysUserChannelController.java 查看文件

@@ -10,18 +10,11 @@ import com.huiju.estateagents.center.sysUser.entity.SysToken;
10 10
 import com.huiju.estateagents.center.sysUser.entity.SysUser;
11 11
 import com.huiju.estateagents.center.sysUser.service.ISysTokenService;
12 12
 import com.huiju.estateagents.center.sysUser.service.ISysUserService;
13
-import com.huiju.estateagents.center.taUser.entity.TaUser;
14
-import com.huiju.estateagents.center.taUser.service.ITaUserService;
15 13
 import com.huiju.estateagents.channel.sysChannel.entity.TaChannelProxy;
16 14
 import com.huiju.estateagents.channel.sysChannel.service.ITaChannelProxyService;
17 15
 import com.huiju.estateagents.common.CommConstant;
18 16
 import com.huiju.estateagents.common.JWTUtils;
19 17
 import com.huiju.estateagents.common.MD5Utils;
20
-import com.huiju.estateagents.common.StringUtils;
21
-import com.huiju.estateagents.entity.TaNewsType;
22
-import io.swagger.annotations.ApiImplicitParam;
23
-import io.swagger.annotations.ApiImplicitParams;
24
-import io.swagger.annotations.ApiOperation;
25 18
 import org.slf4j.Logger;
26 19
 import org.slf4j.LoggerFactory;
27 20
 import org.springframework.beans.factory.annotation.Autowired;
@@ -29,8 +22,6 @@ import org.springframework.web.bind.annotation.*;
29 22
 
30 23
 import javax.servlet.http.HttpServletRequest;
31 24
 import java.time.LocalDateTime;
32
-import java.time.LocalTime;
33
-import java.util.Date;
34 25
 import java.util.HashMap;
35 26
 import java.util.Map;
36 27
 

+ 1
- 0
src/main/java/com/huiju/estateagents/common/CommConstant.java 查看文件

@@ -440,6 +440,7 @@ public class CommConstant {
440 440
 	public static final Object GROUP_ACTIVITY = "groupActivity";
441 441
 	public static final String TARGET_TYPE_H5 = "H5";
442 442
     public static final String ACTIVITY_QRCODE = "{\"scene\":\"id=#0&type=#1\",\"page\":\"pages/checkin/index\"}";
443
+    public static final String DRAINAGE_QRCODE = "{\"scene\":\"h5id=#0&type=#1\",\"page\":\"pages/project/h5Page\"}";
443 444
     
444 445
     /**
445 446
      * 消息通知

+ 11
- 0
src/main/java/com/huiju/estateagents/controller/StatisticalController.java 查看文件

@@ -173,4 +173,15 @@ public class StatisticalController extends BaseController {
173 173
                                             HttpServletRequest request) {
174 174
         return iStatisticalService.selectPersonFrom(getOrgId(request), startDate,endDate);
175 175
     }
176
+
177
+    /**
178
+     * 用户来源  折线图 首页
179
+     * @return
180
+     */
181
+    @GetMapping(value = "/admin/selectPersonFromGroupByDay")
182
+    public ResponseBean selectPersonFromGroupByDay(@RequestParam(value = "startDate", required = false) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) LocalDate startDate,
183
+                                         @RequestParam(value = "endDate", required = false) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) LocalDate endDate,
184
+                                         HttpServletRequest request) {
185
+        return iStatisticalService.selectPersonFromGroupByDay(getOrgId(request), startDate,endDate);
186
+    }
176 187
 }

+ 2
- 2
src/main/java/com/huiju/estateagents/drainage/controller/TaDrainageController.java 查看文件

@@ -142,11 +142,11 @@ public class TaDrainageController extends BaseController {
142 142
                 taMiniappQuery.eq("org_id",getOrgId(request));
143 143
                 TaMiniapp taMiniapp = taMiniappMapper.selectOne(taMiniappQuery);
144 144
                 // 生成二维码
145
-                ResponseBean taMiniappQrcode = miniAppService.getQrCode(CommConstant.ACTIVITY_QRCODE.replace("#0",taDrainage.getDrainageId().toString()).replace("#1","h5"),taMiniapp.getMiniappId());
145
+                ResponseBean taMiniappQrcode = miniAppService.getQrCode(CommConstant.DRAINAGE_QRCODE.replace("#0",taDrainage.getDrainageId().toString()).replace("#1","h5"),taMiniapp.getMiniappId());
146 146
                 taDrainage.setQrCode(String.valueOf(taMiniappQrcode.getData()));
147 147
                 iTaDrainageService.updateById(taDrainage);
148 148
 
149
-                //添加第三方appid和secret
149
+                //添加第三方appid和secretis
150 150
                 TaThirdPartyMiniappConfig taThirdPartyMiniappConfig = new TaThirdPartyMiniappConfig();
151 151
                 taThirdPartyMiniappConfig.setOrgId(getOrgId(request));
152 152
                 taThirdPartyMiniappConfig.setAppid(getUUIDS());

+ 14
- 0
src/main/java/com/huiju/estateagents/entity/TdWxDict.java 查看文件

@@ -1,10 +1,13 @@
1 1
 package com.huiju.estateagents.entity;
2 2
 
3
+import com.baomidou.mybatisplus.annotation.TableField;
4
+import com.huiju.estateagents.statistic.entity.TsPersonFromStatistic;
3 5
 import lombok.Data;
4 6
 import lombok.EqualsAndHashCode;
5 7
 import lombok.experimental.Accessors;
6 8
 
7 9
 import java.io.Serializable;
10
+import java.util.List;
8 11
 
9 12
 /**
10 13
  * <p>
@@ -42,4 +45,15 @@ public class TdWxDict implements Serializable {
42 45
     private String sceneAlias;
43 46
 
44 47
 
48
+    /**
49
+     * 来源人数合集
50
+     */
51
+    @TableField(exist = false)
52
+    private Integer fromData;
53
+
54
+    /**
55
+     * 注册人数合集
56
+     */
57
+    @TableField(exist = false)
58
+    private Integer registerSum;
45 59
 }

+ 9
- 0
src/main/java/com/huiju/estateagents/service/IStatisticalService.java 查看文件

@@ -115,4 +115,13 @@ public interface IStatisticalService {
115 115
      * @return
116 116
      */
117 117
     ResponseBean selectPersonFrom(Integer orgId, LocalDate startDate, LocalDate endDate);
118
+
119
+    /**
120
+     * 用户来源数据统计折线图
121
+     * @param orgId
122
+     * @param startDate
123
+     * @param endDate
124
+     * @return
125
+     */
126
+    ResponseBean selectPersonFromGroupByDay(Integer orgId, LocalDate startDate, LocalDate endDate);
118 127
 }

+ 79
- 1
src/main/java/com/huiju/estateagents/service/impl/StatisticalServiceImpl.java 查看文件

@@ -1,10 +1,12 @@
1 1
 package com.huiju.estateagents.service.impl;
2 2
 
3
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
3 4
 import com.baomidou.mybatisplus.core.metadata.IPage;
4 5
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
5 6
 import com.huiju.estateagents.base.ResponseBean;
6 7
 import com.huiju.estateagents.common.CommConstant;
7 8
 import com.huiju.estateagents.entity.TaPersonVisitRecord;
9
+import com.huiju.estateagents.entity.TdWxDict;
8 10
 import com.huiju.estateagents.exception.EstaException;
9 11
 import com.huiju.estateagents.mapper.*;
10 12
 import com.huiju.estateagents.po.PersonPO;
@@ -16,7 +18,12 @@ import org.springframework.beans.factory.annotation.Autowired;
16 18
 import org.springframework.stereotype.Service;
17 19
 
18 20
 import java.time.LocalDate;
21
+import java.time.LocalDateTime;
22
+import java.time.format.DateTimeFormatter;
23
+import java.time.temporal.ChronoUnit;
19 24
 import java.util.*;
25
+import java.util.stream.Collectors;
26
+import java.util.stream.Stream;
20 27
 
21 28
 /**
22 29
  * 数据统计
@@ -47,6 +54,9 @@ public class StatisticalServiceImpl implements IStatisticalService {
47 54
     @Autowired
48 55
     private TsPersonFromStatisticMapper tsPersonFromStatisticMapper;
49 56
 
57
+    @Autowired
58
+    private TdWxDictMapper tdWxDictMapper;
59
+
50 60
 
51 61
     @Override
52 62
     public ResponseBean indexStatistical(Integer orgId) {
@@ -318,7 +328,75 @@ public class StatisticalServiceImpl implements IStatisticalService {
318 328
      */
319 329
     @Override
320 330
     public ResponseBean selectPersonFrom(Integer orgId, LocalDate startDate, LocalDate endDate) {
331
+        ResponseBean responseBean = new ResponseBean();
321 332
         List<TsPersonFromStatistic> list = tsPersonFromStatisticMapper.selectPersonFrom(orgId,startDate,endDate);
322
-        return null;
333
+        QueryWrapper<TdWxDict> tdWxDictQueryWrapper = new QueryWrapper<>();
334
+        tdWxDictQueryWrapper.groupBy("scene_type");
335
+        List<TdWxDict> tdWxDicts = tdWxDictMapper.selectList(tdWxDictQueryWrapper);
336
+        tdWxDicts.forEach(e -> {
337
+            int fromSum = list.stream().filter(l -> e.getSceneType().equals(l.getSceneType())).mapToInt(TsPersonFromStatistic::getFromNum).sum();
338
+            int registerSum = list.stream().filter(l -> e.getSceneType().equals(l.getSceneType())).mapToInt(TsPersonFromStatistic::getRegisteredNum).sum();
339
+            e.setFromData(fromSum);
340
+            e.setRegisterSum(registerSum);
341
+        });
342
+        Map<String,Object> map = new HashMap<>();
343
+        map.put("tdWxDicts",tdWxDicts);
344
+        List<TsPersonFromStatistic> tableList = tsPersonFromStatisticMapper.selectPersonFromGroupByData(orgId,startDate,endDate);
345
+        map.put("list",tableList);
346
+        responseBean.addSuccess(map);
347
+        return responseBean;
348
+    }
349
+
350
+    /**
351
+     * 用户来源数据统计折线图
352
+     *
353
+     * @param orgId
354
+     * @param startDate
355
+     * @param endDate
356
+     * @return
357
+     */
358
+    @Override
359
+    public ResponseBean selectPersonFromGroupByDay(Integer orgId, LocalDate startDate, LocalDate endDate) {
360
+        List<TsPersonFromStatistic> dayList = getDayList(startDate, endDate);
361
+        List<TsPersonFromStatistic> list = tsPersonFromStatisticMapper.selectPersonFromGroupByDay(orgId,startDate,endDate);
362
+        dayList.forEach(e -> {
363
+            list.forEach(l -> {
364
+                if (e.getCreateTime().equals(l.getCreateTime())){
365
+                    e.setFromNum(l.getFromNum());
366
+                    e.setRegisteredNum(l.getRegisteredNum());
367
+                }
368
+            });
369
+        });
370
+        return ResponseBean.success(dayList);
371
+    }
372
+
373
+    /**
374
+     * 返回时间区间格式
375
+     * @param startDate
376
+     * @param endDate
377
+     * @return
378
+     */
379
+    private List<TsPersonFromStatistic> getDayList(LocalDate startDate, LocalDate endDate) {
380
+        if (null == startDate || null == endDate){
381
+            endDate = LocalDate.now();
382
+            startDate = LocalDate.now().plusDays(-7);
383
+        }
384
+
385
+        //获取时间区间
386
+        List<LocalDate> dates = Stream.iterate(startDate, date -> date.plusDays(1))
387
+                .limit(ChronoUnit.DAYS.between(startDate, endDate))
388
+                .collect(Collectors.toList());
389
+
390
+        //格式化时间
391
+        List<TsPersonFromStatistic> dataList = new ArrayList<>();
392
+        DateTimeFormatter dtf3 = DateTimeFormatter.ofPattern("yyyy-MM-dd");
393
+        dates.forEach(e -> {
394
+            TsPersonFromStatistic tsPersonFromStatistic = new TsPersonFromStatistic();
395
+            tsPersonFromStatistic.setRegisteredNum(0);
396
+            tsPersonFromStatistic.setFromNum(0);
397
+            tsPersonFromStatistic.setCreateTime(dtf3.format(e));
398
+            dataList.add(tsPersonFromStatistic);
399
+        });
400
+        return dataList;
323 401
     }
324 402
 }

+ 7
- 0
src/main/java/com/huiju/estateagents/statistic/entity/TsPersonFromStatistic.java 查看文件

@@ -1,6 +1,7 @@
1 1
 package com.huiju.estateagents.statistic.entity;
2 2
 
3 3
 import com.baomidou.mybatisplus.annotation.IdType;
4
+import com.baomidou.mybatisplus.annotation.TableField;
4 5
 import com.baomidou.mybatisplus.annotation.TableId;
5 6
 import lombok.Data;
6 7
 import lombok.EqualsAndHashCode;
@@ -59,4 +60,10 @@ public class TsPersonFromStatistic implements Serializable {
59 60
      * 注册数量
60 61
      */
61 62
     private Integer registeredNum;
63
+
64
+    /**
65
+     * 时间
66
+     */
67
+    @TableField(exist = false)
68
+    private String createTime;
62 69
 }

+ 4
- 0
src/main/java/com/huiju/estateagents/statistic/mapper/TsPersonFromStatisticMapper.java 查看文件

@@ -21,4 +21,8 @@ public interface TsPersonFromStatisticMapper extends BaseMapper<TsPersonFromStat
21 21
     void insertStatisticList(List<TsPersonFromStatistic> list);
22 22
 
23 23
     List<TsPersonFromStatistic> selectPersonFrom(Integer orgId, LocalDate startDate, LocalDate endDate);
24
+
25
+    List<TsPersonFromStatistic> selectPersonFromGroupByDay(Integer orgId, LocalDate startDate, LocalDate endDate);
26
+
27
+    List<TsPersonFromStatistic> selectPersonFromGroupByData(Integer orgId, LocalDate startDate, LocalDate endDate);
24 28
 }

src/main/resources/application-test.yml → src/main/resources/application-green.yml 查看文件


+ 10
- 4
src/main/resources/mapper/TaRecommendCustomerMapper.xml 查看文件

@@ -621,12 +621,18 @@ FROM
621 621
         a.name AS name,
622 622
         a.phone as phone,
623 623
         if(a.sex = 1, '男', if(a.sex = 2, '女', '未知')) as sex,
624
-        b.name as consultantName,
625
-        b.tel as consultTel
624
+        CASE
625
+        WHEN b.NAME IS NULL THEN
626
+        c.NAME ELSE b.NAME
627
+        END AS consultantName,
628
+        CASE
629
+        WHEN b.tel IS NULL THEN
630
+        c.tel ELSE b.tel
631
+        END AS consultTel
626 632
         FROM
627 633
         ta_recommend_customer a
628
-        LEFT JOIN ta_person b ON (a.realty_consultant = b.person_id or a.realty_consultant = b.user_id)
629
-        LEFT JOIN ta_person c on a.recommend_person = c.person_id
634
+        LEFT JOIN ta_person b ON a.realty_consultant = b.person_id
635
+        left join ta_person c on a.realty_consultant = c.user_id
630 636
         <where>
631 637
             a.status > 0
632 638
             and a.verify_status = 1

+ 43
- 2
src/main/resources/mapper/statistic/TsPersonFromStatisticMapper.xml 查看文件

@@ -13,13 +13,54 @@
13 13
         SELECT
14 14
             *
15 15
         FROM
16
-        ta_person_from_record tp
17
-        where tp.org_id = #{org}
16
+        ts_person_from_statistic tp
17
+        where tp.org_id = #{orgId}
18 18
         <if test="startDate != null or endDate != null">
19 19
             AND  tp.create_date BETWEEN #{startDate} and #{endDate}
20 20
         </if>
21 21
         <if test="startDate == null or endDate == null">
22 22
             AND tp.create_date BETWEEN DATE_SUB(now(),INTERVAL 7 DAY) and now()
23 23
         </if>
24
+
25
+    </select>
26
+    <select id="selectPersonFromGroupByDay"
27
+            resultType="com.huiju.estateagents.statistic.entity.TsPersonFromStatistic">
28
+        SELECT
29
+            sum( tp.from_num ) AS from_num,
30
+            sum( tp.registered_num ) AS registered_num,
31
+            DATE_FORMAT( tp.create_date, '%Y-%m-%d' ) AS create_time
32
+        FROM
33
+            ts_person_from_statistic tp
34
+        WHERE
35
+            tp.org_id = #{orgId}
36
+        <if test="startDate != null or endDate != null">
37
+            AND  tp.create_date BETWEEN #{startDate} and #{endDate}
38
+        </if>
39
+        <if test="startDate == null or endDate == null">
40
+            AND tp.create_date BETWEEN DATE_SUB(now(),INTERVAL 7 DAY) and now()
41
+        </if>
42
+        GROUP BY
43
+            DATE_FORMAT( tp.create_date, '%Y-%m-%d' )
44
+    </select>
45
+    <select id="selectPersonFromGroupByData"
46
+            resultType="com.huiju.estateagents.statistic.entity.TsPersonFromStatistic">
47
+        SELECT
48
+        sum( tp.from_num ) AS from_num,
49
+        sum( tp.registered_num ) AS registered_num,
50
+        DATE_FORMAT( tp.create_date, '%Y-%m-%d' ) AS create_time,
51
+        tp.scene_type
52
+        FROM
53
+        ts_person_from_statistic tp
54
+        WHERE
55
+        tp.org_id = #{orgId}
56
+        <if test="startDate != null or endDate != null">
57
+            AND  tp.create_date BETWEEN #{startDate} and #{endDate}
58
+        </if>
59
+        <if test="startDate == null or endDate == null">
60
+            AND tp.create_date BETWEEN DATE_SUB(now(),INTERVAL 7 DAY) and now()
61
+        </if>
62
+        GROUP BY
63
+        DATE_FORMAT( tp.create_date, '%Y-%m-%d' ),
64
+        tp.scene_type
24 65
     </select>
25 66
 </mapper>