Browse Source

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

张延森 5 years ago
parent
commit
574481af5f

+ 0
- 9
src/main/java/com/huiju/estateagents/channel/sysChannel/controller/SysUserChannelController.java View File

10
 import com.huiju.estateagents.center.sysUser.entity.SysUser;
10
 import com.huiju.estateagents.center.sysUser.entity.SysUser;
11
 import com.huiju.estateagents.center.sysUser.service.ISysTokenService;
11
 import com.huiju.estateagents.center.sysUser.service.ISysTokenService;
12
 import com.huiju.estateagents.center.sysUser.service.ISysUserService;
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
 import com.huiju.estateagents.channel.sysChannel.entity.TaChannelProxy;
13
 import com.huiju.estateagents.channel.sysChannel.entity.TaChannelProxy;
16
 import com.huiju.estateagents.channel.sysChannel.service.ITaChannelProxyService;
14
 import com.huiju.estateagents.channel.sysChannel.service.ITaChannelProxyService;
17
 import com.huiju.estateagents.common.CommConstant;
15
 import com.huiju.estateagents.common.CommConstant;
18
 import com.huiju.estateagents.common.JWTUtils;
16
 import com.huiju.estateagents.common.JWTUtils;
19
 import com.huiju.estateagents.common.MD5Utils;
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
 import org.slf4j.Logger;
18
 import org.slf4j.Logger;
26
 import org.slf4j.LoggerFactory;
19
 import org.slf4j.LoggerFactory;
27
 import org.springframework.beans.factory.annotation.Autowired;
20
 import org.springframework.beans.factory.annotation.Autowired;
29
 
22
 
30
 import javax.servlet.http.HttpServletRequest;
23
 import javax.servlet.http.HttpServletRequest;
31
 import java.time.LocalDateTime;
24
 import java.time.LocalDateTime;
32
-import java.time.LocalTime;
33
-import java.util.Date;
34
 import java.util.HashMap;
25
 import java.util.HashMap;
35
 import java.util.Map;
26
 import java.util.Map;
36
 
27
 

+ 1
- 0
src/main/java/com/huiju/estateagents/common/CommConstant.java View File

440
 	public static final Object GROUP_ACTIVITY = "groupActivity";
440
 	public static final Object GROUP_ACTIVITY = "groupActivity";
441
 	public static final String TARGET_TYPE_H5 = "H5";
441
 	public static final String TARGET_TYPE_H5 = "H5";
442
     public static final String ACTIVITY_QRCODE = "{\"scene\":\"id=#0&type=#1\",\"page\":\"pages/checkin/index\"}";
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 View File

173
                                             HttpServletRequest request) {
173
                                             HttpServletRequest request) {
174
         return iStatisticalService.selectPersonFrom(getOrgId(request), startDate,endDate);
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 View File

142
                 taMiniappQuery.eq("org_id",getOrgId(request));
142
                 taMiniappQuery.eq("org_id",getOrgId(request));
143
                 TaMiniapp taMiniapp = taMiniappMapper.selectOne(taMiniappQuery);
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
                 taDrainage.setQrCode(String.valueOf(taMiniappQrcode.getData()));
146
                 taDrainage.setQrCode(String.valueOf(taMiniappQrcode.getData()));
147
                 iTaDrainageService.updateById(taDrainage);
147
                 iTaDrainageService.updateById(taDrainage);
148
 
148
 
149
-                //添加第三方appid和secret
149
+                //添加第三方appid和secretis
150
                 TaThirdPartyMiniappConfig taThirdPartyMiniappConfig = new TaThirdPartyMiniappConfig();
150
                 TaThirdPartyMiniappConfig taThirdPartyMiniappConfig = new TaThirdPartyMiniappConfig();
151
                 taThirdPartyMiniappConfig.setOrgId(getOrgId(request));
151
                 taThirdPartyMiniappConfig.setOrgId(getOrgId(request));
152
                 taThirdPartyMiniappConfig.setAppid(getUUIDS());
152
                 taThirdPartyMiniappConfig.setAppid(getUUIDS());

+ 14
- 0
src/main/java/com/huiju/estateagents/entity/TdWxDict.java View File

1
 package com.huiju.estateagents.entity;
1
 package com.huiju.estateagents.entity;
2
 
2
 
3
+import com.baomidou.mybatisplus.annotation.TableField;
4
+import com.huiju.estateagents.statistic.entity.TsPersonFromStatistic;
3
 import lombok.Data;
5
 import lombok.Data;
4
 import lombok.EqualsAndHashCode;
6
 import lombok.EqualsAndHashCode;
5
 import lombok.experimental.Accessors;
7
 import lombok.experimental.Accessors;
6
 
8
 
7
 import java.io.Serializable;
9
 import java.io.Serializable;
10
+import java.util.List;
8
 
11
 
9
 /**
12
 /**
10
  * <p>
13
  * <p>
42
     private String sceneAlias;
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 View File

115
      * @return
115
      * @return
116
      */
116
      */
117
     ResponseBean selectPersonFrom(Integer orgId, LocalDate startDate, LocalDate endDate);
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 View File

1
 package com.huiju.estateagents.service.impl;
1
 package com.huiju.estateagents.service.impl;
2
 
2
 
3
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
3
 import com.baomidou.mybatisplus.core.metadata.IPage;
4
 import com.baomidou.mybatisplus.core.metadata.IPage;
4
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
5
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
5
 import com.huiju.estateagents.base.ResponseBean;
6
 import com.huiju.estateagents.base.ResponseBean;
6
 import com.huiju.estateagents.common.CommConstant;
7
 import com.huiju.estateagents.common.CommConstant;
7
 import com.huiju.estateagents.entity.TaPersonVisitRecord;
8
 import com.huiju.estateagents.entity.TaPersonVisitRecord;
9
+import com.huiju.estateagents.entity.TdWxDict;
8
 import com.huiju.estateagents.exception.EstaException;
10
 import com.huiju.estateagents.exception.EstaException;
9
 import com.huiju.estateagents.mapper.*;
11
 import com.huiju.estateagents.mapper.*;
10
 import com.huiju.estateagents.po.PersonPO;
12
 import com.huiju.estateagents.po.PersonPO;
16
 import org.springframework.stereotype.Service;
18
 import org.springframework.stereotype.Service;
17
 
19
 
18
 import java.time.LocalDate;
20
 import java.time.LocalDate;
21
+import java.time.LocalDateTime;
22
+import java.time.format.DateTimeFormatter;
23
+import java.time.temporal.ChronoUnit;
19
 import java.util.*;
24
 import java.util.*;
25
+import java.util.stream.Collectors;
26
+import java.util.stream.Stream;
20
 
27
 
21
 /**
28
 /**
22
  * 数据统计
29
  * 数据统计
47
     @Autowired
54
     @Autowired
48
     private TsPersonFromStatisticMapper tsPersonFromStatisticMapper;
55
     private TsPersonFromStatisticMapper tsPersonFromStatisticMapper;
49
 
56
 
57
+    @Autowired
58
+    private TdWxDictMapper tdWxDictMapper;
59
+
50
 
60
 
51
     @Override
61
     @Override
52
     public ResponseBean indexStatistical(Integer orgId) {
62
     public ResponseBean indexStatistical(Integer orgId) {
318
      */
328
      */
319
     @Override
329
     @Override
320
     public ResponseBean selectPersonFrom(Integer orgId, LocalDate startDate, LocalDate endDate) {
330
     public ResponseBean selectPersonFrom(Integer orgId, LocalDate startDate, LocalDate endDate) {
331
+        ResponseBean responseBean = new ResponseBean();
321
         List<TsPersonFromStatistic> list = tsPersonFromStatisticMapper.selectPersonFrom(orgId,startDate,endDate);
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 View File

1
 package com.huiju.estateagents.statistic.entity;
1
 package com.huiju.estateagents.statistic.entity;
2
 
2
 
3
 import com.baomidou.mybatisplus.annotation.IdType;
3
 import com.baomidou.mybatisplus.annotation.IdType;
4
+import com.baomidou.mybatisplus.annotation.TableField;
4
 import com.baomidou.mybatisplus.annotation.TableId;
5
 import com.baomidou.mybatisplus.annotation.TableId;
5
 import lombok.Data;
6
 import lombok.Data;
6
 import lombok.EqualsAndHashCode;
7
 import lombok.EqualsAndHashCode;
59
      * 注册数量
60
      * 注册数量
60
      */
61
      */
61
     private Integer registeredNum;
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 View File

21
     void insertStatisticList(List<TsPersonFromStatistic> list);
21
     void insertStatisticList(List<TsPersonFromStatistic> list);
22
 
22
 
23
     List<TsPersonFromStatistic> selectPersonFrom(Integer orgId, LocalDate startDate, LocalDate endDate);
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 View File


+ 10
- 4
src/main/resources/mapper/TaRecommendCustomerMapper.xml View File

621
         a.name AS name,
621
         a.name AS name,
622
         a.phone as phone,
622
         a.phone as phone,
623
         if(a.sex = 1, '男', if(a.sex = 2, '女', '未知')) as sex,
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
         FROM
632
         FROM
627
         ta_recommend_customer a
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
         <where>
636
         <where>
631
             a.status > 0
637
             a.status > 0
632
             and a.verify_status = 1
638
             and a.verify_status = 1

+ 43
- 2
src/main/resources/mapper/statistic/TsPersonFromStatisticMapper.xml View File

13
         SELECT
13
         SELECT
14
             *
14
             *
15
         FROM
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
         <if test="startDate != null or endDate != null">
18
         <if test="startDate != null or endDate != null">
19
             AND  tp.create_date BETWEEN #{startDate} and #{endDate}
19
             AND  tp.create_date BETWEEN #{startDate} and #{endDate}
20
         </if>
20
         </if>
21
         <if test="startDate == null or endDate == null">
21
         <if test="startDate == null or endDate == null">
22
             AND tp.create_date BETWEEN DATE_SUB(now(),INTERVAL 7 DAY) and now()
22
             AND tp.create_date BETWEEN DATE_SUB(now(),INTERVAL 7 DAY) and now()
23
         </if>
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
     </select>
65
     </select>
25
 </mapper>
66
 </mapper>