Explorar el Código

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

胡轶钦 hace 5 años
padre
commit
502b70050a

+ 6
- 3
src/main/java/com/huiju/estateagents/controller/StatisticalController.java Ver fichero

@@ -65,8 +65,11 @@ public class StatisticalController {
65 65
                                            @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
66 66
                                            @RequestParam(value = "startDate", required = false) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) LocalDate startDate,
67 67
                                            @RequestParam(value = "endDate", required = false) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME)  LocalDate endDate,
68
-                                           @RequestParam(value = "buildingId", required = false) String buildingId) {
69
-        return iStatisticalService.selectUserBehavior(pageNum, pageSize, startDate, endDate, buildingId);
68
+                                           @RequestParam(value = "buildingId", required = false) String buildingId,
69
+                                           @RequestParam(value = "eventType", required = false) String eventType,
70
+                                           @RequestParam(value = "event", required = false) String event,
71
+                                           @RequestParam(value = "activity", required = false) String activity) {
72
+        return iStatisticalService.selectUserBehavior(pageNum, pageSize, startDate, endDate, buildingId, eventType, event, activity);
70 73
     }
71 74
 
72 75
     /**
@@ -75,7 +78,7 @@ public class StatisticalController {
75 78
      */
76 79
     @GetMapping(value = "/admin/selectEventAll")
77 80
     public ResponseBean selectEventAll(@RequestParam(required = false) String event,
78
-                                              @RequestParam(required = false) Integer personId) {
81
+                                              @RequestParam(required = false) String personId) {
79 82
         return iStatisticalService.selectEventAll(event, personId);
80 83
     }
81 84
 

+ 9
- 3
src/main/java/com/huiju/estateagents/controller/TaEventPropertiesController.java Ver fichero

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
4 4
 import com.baomidou.mybatisplus.core.metadata.IPage;
5 5
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
6 6
 import com.huiju.estateagents.base.ResponseBean;
7
+import com.huiju.estateagents.common.StringUtils;
7 8
 import com.huiju.estateagents.entity.TaEventProperties;
8 9
 import com.huiju.estateagents.service.ITaEventPropertiesService;
9 10
 import org.slf4j.Logger;
@@ -27,7 +28,7 @@ import com.huiju.estateagents.base.BaseController;
27 28
  * @since 2019-08-06
28 29
  */
29 30
 @RestController
30
-@RequestMapping("/")
31
+@RequestMapping("/api")
31 32
 public class TaEventPropertiesController extends BaseController {
32 33
 
33 34
     private final Logger logger = LoggerFactory.getLogger(TaEventPropertiesController.class);
@@ -42,14 +43,19 @@ public class TaEventPropertiesController extends BaseController {
42 43
      * @param pageSize
43 44
      * @return
44 45
      */
45
-    @RequestMapping(value="/taEventProperties",method= RequestMethod.GET)
46
+    @RequestMapping(value="/admin/taEventProperties",method= RequestMethod.GET)
46 47
     public ResponseBean taEventPropertiesList(@RequestParam(value ="pageNum",defaultValue = "1") Integer pageNum,
47
-									 @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize){
48
+									 @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize,
49
+                                      @RequestParam(value ="eventType", required = false) String eventType,
50
+                                      @RequestParam(value ="buildingId",required = false) String buildingId
51
+    ){
48 52
         ResponseBean responseBean = new ResponseBean();
49 53
         try {
50 54
             //使用分页插件
51 55
 		    IPage<TaEventProperties> pg = new Page<>(pageNum, pageSize);
52 56
             QueryWrapper<TaEventProperties> queryWrapper = new QueryWrapper<>();
57
+            queryWrapper.eq(!StringUtils.isEmpty(eventType), "event_type", eventType);
58
+            queryWrapper.eq(!StringUtils.isEmpty(buildingId), "building_id", buildingId);
53 59
             queryWrapper.orderByDesc("create_date");
54 60
 
55 61
             IPage<TaEventProperties> result = iTaEventPropertiesService.page(pg, queryWrapper);

+ 2
- 2
src/main/java/com/huiju/estateagents/controller/TdBizEventController.java Ver fichero

@@ -27,7 +27,7 @@ import com.huiju.estateagents.base.BaseController;
27 27
  * @since 2019-08-06
28 28
  */
29 29
 @RestController
30
-@RequestMapping("/")
30
+@RequestMapping("/api")
31 31
 public class TdBizEventController extends BaseController {
32 32
 
33 33
     private final Logger logger = LoggerFactory.getLogger(TdBizEventController.class);
@@ -42,7 +42,7 @@ public class TdBizEventController extends BaseController {
42 42
      * @param pageSize
43 43
      * @return
44 44
      */
45
-    @RequestMapping(value="/tdBizEvent",method= RequestMethod.GET)
45
+    @RequestMapping(value="/admin/tdBizEvent",method= RequestMethod.GET)
46 46
     public ResponseBean tdBizEventList(@RequestParam(value ="pageNum",defaultValue = "1") Integer pageNum,
47 47
                                        @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize){
48 48
         ResponseBean responseBean = new ResponseBean();

+ 2
- 2
src/main/java/com/huiju/estateagents/controller/TdBizEventTypeController.java Ver fichero

@@ -27,7 +27,7 @@ import com.huiju.estateagents.base.BaseController;
27 27
  * @since 2019-08-06
28 28
  */
29 29
 @RestController
30
-@RequestMapping("/")
30
+@RequestMapping("/api")
31 31
 public class TdBizEventTypeController extends BaseController {
32 32
 
33 33
     private final Logger logger = LoggerFactory.getLogger(TdBizEventTypeController.class);
@@ -42,7 +42,7 @@ public class TdBizEventTypeController extends BaseController {
42 42
      * @param pageSize
43 43
      * @return
44 44
      */
45
-    @RequestMapping(value="/tdBizEventType",method= RequestMethod.GET)
45
+    @RequestMapping(value="/admin/tdBizEventType",method= RequestMethod.GET)
46 46
     public ResponseBean tdBizEventTypeList(@RequestParam(value ="pageNum",defaultValue = "1") Integer pageNum,
47 47
                                            @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize){
48 48
         ResponseBean responseBean = new ResponseBean();

+ 16
- 0
src/main/java/com/huiju/estateagents/entity/TaPersonVisitRecord.java Ver fichero

@@ -81,6 +81,22 @@ public class TaPersonVisitRecord implements Serializable {
81 81
 
82 82
     private String targetId;
83 83
 
84
+    /**
85
+     * 用户名称
86
+     */
87
+    @TableField(exist = false)
88
+    private String userName;
89
+
90
+    /**
91
+     * 事件名称
92
+     */
93
+    @TableField(exist = false)
94
+    private String eventName;
84 95
 
96
+    /**
97
+     * 访问次数
98
+     */
99
+    @TableField(exist = false)
100
+    private Integer accessCount;
85 101
 
86 102
 }

+ 0
- 5
src/main/java/com/huiju/estateagents/entity/TdBizEvent.java Ver fichero

@@ -54,9 +54,4 @@ public class TdBizEvent implements Serializable {
54 54
      */
55 55
     private LocalDateTime createDate;
56 56
 
57
-    private String typeId;
58
-
59
-    private String typeName;
60
-
61
-
62 57
 }

+ 7
- 1
src/main/java/com/huiju/estateagents/mapper/TaPersonMapper.java Ver fichero

@@ -86,7 +86,13 @@ public interface TaPersonMapper extends BaseMapper<TaPerson> {
86 86
      * @param endDate
87 87
      * @return
88 88
      */
89
-    List<PersonPO> selectUserBehavior(@Param("personType") String personType, @Param("startDate")LocalDate startDate, @Param("endDate")LocalDate endDate, @Param("buildingId") String buildingId);
89
+    List<PersonPO> selectUserBehavior(@Param("personType") String personType,
90
+                                      @Param("startDate")LocalDate startDate,
91
+                                      @Param("endDate")LocalDate endDate,
92
+                                      @Param("buildingId") String buildingId,
93
+                                      @Param("eventType") String eventType,
94
+                                      @Param("event") String event,
95
+                                      @Param("activity") String activity);
90 96
 
91 97
     /**
92 98
      * 活跃用户数 / 最近新增的用户数

+ 9
- 2
src/main/java/com/huiju/estateagents/mapper/TaPersonVisitRecordMapper.java Ver fichero

@@ -10,6 +10,7 @@ import org.apache.ibatis.annotations.Param;
10 10
 import org.apache.ibatis.annotations.ResultType;
11 11
 import org.apache.ibatis.annotations.Select;
12 12
 
13
+import java.time.LocalDate;
13 14
 import java.util.List;
14 15
 
15 16
 /**
@@ -30,7 +31,13 @@ public interface TaPersonVisitRecordMapper extends BaseMapper<TaPersonVisitRecor
30 31
      * @param page
31 32
      * @return
32 33
      */
33
-    IPage<TaPersonVisitRecord> selectAll(IPage<TaPersonVisitRecord> page, String buildingId);
34
+    IPage<TaPersonVisitRecord> selectAll(IPage<TaPersonVisitRecord> page,
35
+                                         @Param("startDate") LocalDate startDate,
36
+                                         @Param("endDate")LocalDate endDate,
37
+                                         @Param("buildingId") String buildingId,
38
+                                         @Param("eventType") String eventType,
39
+                                         @Param("event") String event,
40
+                                         @Param("activity") String activity);
34 41
 
35 42
 
36 43
     /**
@@ -40,7 +47,7 @@ public interface TaPersonVisitRecordMapper extends BaseMapper<TaPersonVisitRecor
40 47
      */
41 48
     @ResultType(TaPersonVisitRecord.class)
42 49
     @Select("select * from ta_person_visit_record where event = #{event} and person_id = #{personId}")
43
-    List<TaPersonVisitRecord> selectEventAll(@Param("event") String event, @Param("personId") Integer personId);
50
+    List<TaPersonVisitRecord> selectEventAll(@Param("event") String event, @Param("personId") String personId);
44 51
 
45 52
 
46 53
 

+ 9
- 2
src/main/java/com/huiju/estateagents/service/IStatisticalService.java Ver fichero

@@ -69,7 +69,14 @@ public interface IStatisticalService {
69 69
      * @param endDate
70 70
      * @return
71 71
      */
72
-    ResponseBean selectUserBehavior(Integer pageNum, Integer pageSize, LocalDate startDate,LocalDate endDate, String buildingId);
72
+    ResponseBean selectUserBehavior(Integer pageNum,
73
+                                    Integer pageSize,
74
+                                    LocalDate startDate,
75
+                                    LocalDate endDate,
76
+                                    String buildingId,
77
+                                    String eventType,
78
+                                    String event,
79
+                                    String activity);
73 80
 
74 81
     /**
75 82
      * 行为分析的 具体数据列表
@@ -77,7 +84,7 @@ public interface IStatisticalService {
77 84
      * @param personId
78 85
      * @return
79 86
      */
80
-    ResponseBean selectEventAll(String event, Integer personId);
87
+    ResponseBean selectEventAll(String event, String personId);
81 88
 
82 89
     /**
83 90
      * 转换率 统计

+ 12
- 5
src/main/java/com/huiju/estateagents/service/impl/StatisticalServiceImpl.java Ver fichero

@@ -61,7 +61,7 @@ public class StatisticalServiceImpl implements IStatisticalService {
61 61
         Integer selectRecentlyCount = taPersonMapper.selectRecentlyCount(CommConstant.PERSON_REALTY_CONSULTANT, null, null);
62 62
 
63 63
         // 用户行为
64
-        List<PersonPO> selectUserBehavior = taPersonMapper.selectUserBehavior(CommConstant.PERSON_REALTY_CONSULTANT, null, null, null);
64
+        List<PersonPO> selectUserBehavior = taPersonMapper.selectUserBehavior(CommConstant.PERSON_REALTY_CONSULTANT, null, null, null, null, null, null);
65 65
 
66 66
         // 用户活跃数
67 67
         List<Map<String, Object>> selectActiveUserCount = taPersonMapper.selectActiveUserCount(CommConstant.PERSON_REALTY_CONSULTANT, CommConstant.DAY, null, null);
@@ -163,14 +163,21 @@ public class StatisticalServiceImpl implements IStatisticalService {
163 163
     }
164 164
 
165 165
     @Override
166
-    public ResponseBean selectUserBehavior(Integer pageNum, Integer pageSize, LocalDate startDate, LocalDate endDate, String buildingId) {
166
+    public ResponseBean selectUserBehavior(Integer pageNum,
167
+                                           Integer pageSize,
168
+                                           LocalDate startDate,
169
+                                           LocalDate endDate,
170
+                                           String buildingId,
171
+                                           String eventType,
172
+                                           String event,
173
+                                           String activity) {
167 174
         ResponseBean responseBean = new ResponseBean();
168 175
 
169 176
         // 用户行为
170
-        List<PersonPO> selectUserBehavior = taPersonMapper.selectUserBehavior(CommConstant.PERSON_REALTY_CONSULTANT, startDate, endDate, buildingId);
177
+        List<PersonPO> selectUserBehavior = taPersonMapper.selectUserBehavior(CommConstant.PERSON_REALTY_CONSULTANT, startDate, endDate, buildingId, eventType, event, activity);
171 178
 
172 179
         IPage<TaPersonVisitRecord> page = new Page<>(pageNum, pageSize);
173
-        IPage<TaPersonVisitRecord> visitRecordIPage = taPersonVisitRecordMapper.selectAll(page, buildingId);
180
+        IPage<TaPersonVisitRecord> visitRecordIPage = taPersonVisitRecordMapper.selectAll(page, startDate, endDate, buildingId, eventType, event, activity);
174 181
 
175 182
         Map<String, Object> map = new HashMap<>();
176 183
         map.put("selectUserBehavior", selectUserBehavior);
@@ -180,7 +187,7 @@ public class StatisticalServiceImpl implements IStatisticalService {
180 187
     }
181 188
 
182 189
     @Override
183
-    public ResponseBean selectEventAll(String event, Integer personId) {
190
+    public ResponseBean selectEventAll(String event, String personId) {
184 191
         ResponseBean responseBean = new ResponseBean();
185 192
 
186 193
         List<TaPersonVisitRecord> taPersonVisitRecords = taPersonVisitRecordMapper.selectEventAll(event, personId);

+ 59
- 54
src/main/resources/mapper/TaPersonMapper.xml Ver fichero

@@ -149,13 +149,13 @@ FROM
149 149
               DATE_FORMAT( DATE_SUB( now( ), INTERVAL a.rownum DAY ), '%Y-%m-%d' ) AS date
150 150
             FROM
151 151
               sequence a
152
-            WHERE
153
-                <if test="startDate == null or endDate == null">
154
-                    a.rownum <![CDATA[ <= ]]> 7
155
-                </if>
156
-                <if test="startDate != null or endDate != null">
157
-                    a.rownum <![CDATA[ <= ]]> datediff(#{endDate}, #{startDate})
158
-                </if>
152
+
153
+              <trim prefix="where">
154
+                  <if test="startDate != null or endDate != null">
155
+                      a.rownum <![CDATA[ <= ]]> datediff(#{endDate}, #{startDate})
156
+                  </if>
157
+              </trim>
158
+
159 159
         ) AS temp_date
160 160
         LEFT JOIN (
161 161
             SELECT
@@ -180,30 +180,40 @@ FROM
180 180
         SELECT
181 181
           DATE_FORMAT( DATE_SUB( now( ), INTERVAL a.rownum DAY ), '%Y-%m-%d' ) AS date, b.type_id, b.type_name
182 182
           from sequence a, td_biz_event_type b
183
-          where
184
-            <if test="startDate == null or endDate == null">
185
-                a.rownum <![CDATA[ <= ]]> 7
186
-            </if>
187
-            <if test="startDate != null or endDate != null">
188
-                a.rownum <![CDATA[ <= ]]> datediff(#{endDate}, #{startDate})
189
-            </if>
183
+
184
+            <trim prefix="where">
185
+                <if test="startDate != null or endDate != null">
186
+                    a.rownum <![CDATA[ <= ]]> datediff(#{endDate}, #{startDate})
187
+                </if>
188
+            </trim>
190 189
 
191 190
         ) AS temp_date
192 191
 
193 192
         LEFT JOIN (
194
-        SELECT
195
-        COUNT(1) as activityCount,
196
-        tpvr.event_type,
197
-        DATE_FORMAT( tpvr.visit_time , '%Y-%m-%d' ) as date
198
-        FROM
199
-        ta_person tp
200
-        INNER JOIN ta_person_visit_record tpvr ON tp.person_id = tpvr.person_id
201
-        where ifnull(tp.person_type, '') != #{personType}
202
-        <if test="buildingId != null and buildingId != ''">
203
-            and tpvr.building_id = #{buildingId}
204
-        </if>
205
-        GROUP BY  tpvr.event_type, DATE_FORMAT( tpvr.visit_time , '%Y-%m-%d' )
193
+            SELECT
194
+                COUNT(1) as activityCount,
195
+                tpvr.event_type,
196
+                DATE_FORMAT( tpvr.visit_time , '%Y-%m-%d' ) as date
197
+            FROM
198
+              ta_person tp
199
+            INNER JOIN ta_person_visit_record tpvr ON tp.person_id = tpvr.person_id
200
+            where ifnull(tp.person_type, '') != #{personType}
201
+            <if test="buildingId != null and buildingId != ''">
202
+                and tpvr.building_id = #{buildingId}
203
+            </if>
204
+            <if test="eventType != null and eventType != ''">
205
+                and tpvr.event_type = #{eventType}
206
+            </if>
207
+            <if test="event != null and event != ''">
208
+                and tpvr.event = #{event}
209
+            </if>
210
+            <if test="activity != null and activity != ''">
211
+                and tpvr.activity = #{activity}
212
+            </if>
213
+
214
+            GROUP BY  tpvr.event_type, DATE_FORMAT( tpvr.visit_time , '%Y-%m-%d' )
206 215
         ) AS temp ON temp_date.date = temp.date and temp_date.type_id = temp.event_type
216
+        order by temp_date.date asc
207 217
     </select>
208 218
 
209 219
     <select id="selectActiveUserCount" resultType="map">
@@ -223,13 +233,13 @@ FROM
223 233
               </if>
224 234
             FROM
225 235
               sequence a
226
-            WHERE
227
-              <if test="startDate == null or endDate == null">
228
-                  a.rownum <![CDATA[ <= ]]> 7
229
-              </if>
230
-              <if test="startDate != null or endDate != null">
231
-                  a.rownum <![CDATA[ <= ]]> datediff(#{endDate}, #{startDate})
232
-              </if>
236
+
237
+              <trim prefix="where">
238
+                  <if test="startDate != null or endDate != null">
239
+                      a.rownum <![CDATA[ <= ]]> datediff(#{endDate}, #{startDate})
240
+                  </if>
241
+              </trim>
242
+
233 243
         ) AS temp_date
234 244
         LEFT JOIN (
235 245
             SELECT
@@ -257,14 +267,13 @@ FROM
257 267
               DATE_FORMAT( DATE_SUB( now( ), INTERVAL a.rownum DAY ), '%Y-%m-%d' ) AS date
258 268
             FROM
259 269
               sequence a
260
-            WHERE
261 270
 
262
-                <if test="startDate == null or endDate == null">
263
-                    a.rownum <![CDATA[ <= ]]> 7
264
-                </if>
265
-                <if test="startDate != null or endDate != null">
266
-                    a.rownum <![CDATA[ <= ]]> datediff(#{endDate}, #{startDate})
267
-                </if>
271
+                <trim prefix="where">
272
+                    <if test="startDate != null or endDate != null">
273
+                        a.rownum <![CDATA[ <= ]]> datediff(#{endDate}, #{startDate})
274
+                    </if>
275
+                </trim>
276
+
268 277
 
269 278
             ) AS temp_date
270 279
             LEFT JOIN (
@@ -289,14 +298,12 @@ FROM
289 298
              DATE_FORMAT( DATE_SUB( now( ), INTERVAL a.rownum DAY ), '%Y-%m-%d' ) AS date
290 299
             FROM
291 300
               sequence a
292
-            WHERE
293 301
 
294
-                <if test="startDate == null or endDate == null">
295
-                    a.rownum <![CDATA[ <= ]]> 7
296
-                </if>
297
-                <if test="startDate != null or endDate != null">
298
-                    a.rownum <![CDATA[ <= ]]> datediff(#{endDate}, #{startDate})
299
-                </if>
302
+                <trim prefix="where">
303
+                    <if test="startDate != null or endDate != null">
304
+                        a.rownum <![CDATA[ <= ]]> datediff(#{endDate}, #{startDate})
305
+                    </if>
306
+                </trim>
300 307
 
301 308
         ) AS temp_date
302 309
         LEFT JOIN (
@@ -384,14 +391,12 @@ FROM
384 391
             sequence a
385 392
             ,
386 393
             td_person_from tempf
387
-            WHERE
388 394
 
389
-                <if test="startDate == null or endDate == null">
390
-                    a.rownum <![CDATA[ <= ]]> 7
391
-                </if>
392
-                <if test="startDate != null or endDate != null">
393
-                    a.rownum <![CDATA[ <= ]]> datediff(#{endDate}, #{startDate})
394
-                </if>
395
+                <trim prefix="where">
396
+                    <if test="startDate != null or endDate != null">
397
+                        a.rownum <![CDATA[ <= ]]> datediff(#{endDate}, #{startDate})
398
+                    </if>
399
+                </trim>
395 400
 
396 401
         ) AS temp_date
397 402
 

+ 31
- 6
src/main/resources/mapper/TaPersonVisitRecordMapper.xml Ver fichero

@@ -6,20 +6,45 @@
6 6
         where person_id = #{personId}
7 7
     </select>
8 8
 
9
-    <select id="selectAll">
9
+    <select id="selectAll" resultType="com.huiju.estateagents.entity.TaPersonVisitRecord">
10 10
         SELECT
11
-            tpvr.*,
12
-            tp.name,
11
+            tpvr.record_id as recordId,
12
+            tpvr.person_id as personId,
13
+            tpvr.person_type as personType,
14
+            tpvr.building_id as buildingId,
15
+            tpvr.activity as activity,
16
+            tpvr.event as event,
17
+            tpvr.event_type as eventType,
18
+            tpvr.visit_duration as visitDuration,
19
+            (SELECT MIN(t.visit_time) FROM ta_person_visit_record t WHERE t.person_id = tpvr.person_id and t.event = tpvr.event ) as visitTime,
20
+            (SELECT MAX(t.leave_time) FROM ta_person_visit_record t WHERE t.person_id = tpvr.person_id and t.event = tpvr.event ) as leaveTime,
21
+            ifnull(tp.name, tp.nickname) as userName,
22
+            tbe.event_name as eventName,
13 23
             COUNT(1) as accessCount
14 24
         FROM
15 25
             ta_person_visit_record tpvr
16 26
             LEFT JOIN ta_person tp ON tpvr.person_id = tp.person_id
17
-            <where>
27
+            LEFT JOIN td_biz_event tbe on tpvr.event = tbe.event_code
28
+            <trim prefix="where" prefixOverrides="and | or">
29
+                <if test="startDate != null and endDate != null">
30
+                    and tpvr.visit_time between #{startDate} and #{endDate}
31
+                </if>
18 32
                 <if test="buildingId != null and buildingId != ''">
19
-                    tpvr.building_id = #{buildingId}
33
+                    and tpvr.building_id = #{buildingId}
34
+                </if>
35
+                <if test="eventType != null and eventType != ''">
36
+                    and tpvr.event_type = #{eventType}
37
+                </if>
38
+                <if test="event != null and event != ''">
39
+                    and tpvr.event = #{event}
20 40
                 </if>
21
-            </where>
41
+                <if test="activity != null and activity != ''">
42
+                    and tpvr.activity = #{activity}
43
+                </if>
44
+            </trim>
45
+
22 46
         GROUP BY tpvr.person_id, tpvr.event
47
+        ORDER BY 	accessCount DESC,tpvr.visit_time DESC
23 48
     </select>
24 49
 
25 50
 </mapper>