Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
cloud-platform
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
youjj
cloud-platform
Commits
1077735a
Commit
1077735a
authored
Aug 13, 2019
by
libin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
行为记录
parent
77adbcaf
Changes
18
Hide whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
366 additions
and
23 deletions
+366
-23
ActivityListDTO.java
.../java/com/xxfc/platform/activity/dto/ActivityListDTO.java
+17
-0
ActivityPopularizeRelationDTO.java
.../platform/activity/dto/ActivityPopularizeRelationDTO.java
+31
-0
ActivityFeign.java
.../java/com/xxfc/platform/activity/feign/ActivityFeign.java
+16
-5
ActivityListBiz.java
.../java/com/xxfc/platform/activity/biz/ActivityListBiz.java
+13
-0
ActivityPopularizeRelationBiz.java
.../platform/activity/biz/ActivityPopularizeRelationBiz.java
+14
-0
ActivityPopularizeRelationMapper.java
...orm/activity/mapper/ActivityPopularizeRelationMapper.java
+7
-2
ActivityListController.java
...m/xxfc/platform/activity/rest/ActivityListController.java
+7
-0
ActivityPopularizeRelationController.java
...m/activity/rest/ActivityPopularizeRelationController.java
+13
-0
ActivityPopularizeRelationMapper.xml
...ain/resources/mapper/ActivityPopularizeRelationMapper.xml
+28
-0
BehaviorEnum.java
.../com/xxfc/platform/user/behavior/common/BehaviorEnum.java
+20
-5
CustomerBehaviorNotes.java
.../platform/user/behavior/entity/CustomerBehaviorNotes.java
+14
-0
BehaviorNoteCollectVo.java
...xxfc/platform/user/behavior/vo/BehaviorNoteCollectVo.java
+46
-0
pom.xml
xx-user-behavior-collect/xx-user-behavior-server/pom.xml
+6
-0
UserBeHaviorApplication.java
.../xxfc/platform/user/behavior/UserBeHaviorApplication.java
+2
-0
CustomerBehaviorNotesBiz.java
.../platform/user/behavior/biz/CustomerBehaviorNotesBiz.java
+99
-6
CustomerBehaviorNotesMapper.java
...orm/user/behavior/mapper/CustomerBehaviorNotesMapper.java
+5
-1
CustomerBehaviorNotesAdminController.java
...vior/rest/admin/CustomerBehaviorNotesAdminController.java
+13
-3
CustomerBehaviorNotesMapper.xml
...src/main/resources/mapper/CustomerBehaviorNotesMapper.xml
+15
-1
No files found.
xx-activity/xx-activity-api/src/main/java/com/xxfc/platform/activity/dto/ActivityListDTO.java
0 → 100644
View file @
1077735a
package
com
.
xxfc
.
platform
.
activity
.
dto
;
import
lombok.Data
;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/8/13 9:59
*/
@Data
public
class
ActivityListDTO
{
private
Long
activity_startTime
;
private
Long
activity_endTime
;
}
xx-activity/xx-activity-api/src/main/java/com/xxfc/platform/activity/dto/ActivityPopularizeRelationDTO.java
0 → 100644
View file @
1077735a
package
com
.
xxfc
.
platform
.
activity
.
dto
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.io.Serializable
;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/8/12 19:01
*/
@Data
public
class
ActivityPopularizeRelationDTO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
/**
* 主用户
*/
@ApiModelProperty
(
value
=
"主用户"
)
private
Integer
majorUserId
;
/**
* 次要用户
*/
@ApiModelProperty
(
value
=
"次要用户"
)
private
Integer
minorUserId
;
}
xx-activity/xx-activity-api/src/main/java/com/xxfc/platform/activity/feign/ActivityFeign.java
View file @
1077735a
...
...
@@ -2,6 +2,8 @@ package com.xxfc.platform.activity.feign;
import
com.github.wxiaoqi.security.admin.dto.UserInfoDTO
;
import
com.github.wxiaoqi.security.common.msg.ObjectRestResponse
;
import
com.xxfc.platform.activity.dto.ActivityListDTO
;
import
com.xxfc.platform.activity.dto.ActivityPopularizeRelationDTO
;
import
com.xxfc.platform.activity.entity.IntegralUserTotal
;
import
com.xxfc.platform.activity.vo.UserCouponVo
;
import
io.swagger.annotations.ApiModelProperty
;
...
...
@@ -46,18 +48,27 @@ public interface ActivityFeign {
@ApiOperation
(
"优惠卷取消使用"
)
@RequestMapping
(
value
=
"/user/cancelUse"
,
method
=
RequestMethod
.
POST
)
public
ObjectRestResponse
cancelUse
(
@RequestParam
(
value
=
"TickerNo"
,
defaultValue
=
""
)
String
TickerNo
);
public
ObjectRestResponse
cancelUse
(
@RequestParam
(
value
=
"TickerNo"
,
defaultValue
=
""
)
String
TickerNo
);
@ApiOperation
(
"新人有礼参加活动"
)
@RequestMapping
(
value
=
"/join/user"
,
method
=
RequestMethod
.
POST
)
public
ObjectRestResponse
join
(
@RequestParam
(
value
=
"userId"
,
defaultValue
=
"0"
)
Integer
userId
);
public
ObjectRestResponse
join
(
@RequestParam
(
value
=
"userId"
,
defaultValue
=
"0"
)
Integer
userId
);
@ApiModelProperty
(
"获取用户积分"
)
@GetMapping
(
value
=
"/user/info"
)
public
UserInfoDTO
getUserInfo
(
@RequestParam
(
"userId"
)
Integer
userId
);
@ApiOperation
(
"清除数据"
)
@GetMapping
(
"/activity_data/clear"
)
ObjectRestResponse
<
Void
>
clearDate
(
@RequestParam
(
value
=
"userIds"
)
List
<
Integer
>
userIds
);
@ApiOperation
(
"清除数据"
)
@GetMapping
(
"/activity_data/clear"
)
ObjectRestResponse
<
Void
>
clearDate
(
@RequestParam
(
value
=
"userIds"
)
List
<
Integer
>
userIds
);
@ApiOperation
(
"查询活动邀请数据"
)
@GetMapping
(
"/activityPopularizeRelation/activity_popularize"
)
List
<
ActivityPopularizeRelationDTO
>
findActivityPopularizeRelationByActivityIdAndTime
(
@RequestParam
(
value
=
"activityId"
)
Integer
activityId
,
@RequestParam
(
value
=
"startTime"
,
required
=
false
)
Long
startTime
,
@RequestParam
(
value
=
"endTime"
,
required
=
false
)
Long
endTime
);
@ApiOperation
(
"查询活动的时间"
)
@GetMapping
(
"/activityList/time/{activityId}"
)
ActivityListDTO
findActivityStartTimeAndEndTimeById
(
@PathVariable
(
value
=
"activityId"
)
Integer
activityId
);
}
xx-activity/xx-activity-server/src/main/java/com/xxfc/platform/activity/biz/ActivityListBiz.java
View file @
1077735a
package
com
.
xxfc
.
platform
.
activity
.
biz
;
import
com.xxfc.platform.activity.dto.ActivityListDTO
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.stereotype.Service
;
import
com.xxfc.platform.activity.entity.ActivityList
;
...
...
@@ -10,6 +12,7 @@ import tk.mybatis.mapper.weekend.WeekendSqls;
import
java.lang.reflect.InvocationTargetException
;
import
java.util.List
;
import
java.util.Objects
;
/**
* 活动(活动列表)
...
...
@@ -30,4 +33,14 @@ public class ActivityListBiz extends BaseBiz<ActivityListMapper,ActivityList> {
List
<
ActivityList
>
activityLists
=
selectByExample
(
exa
);
return
activityLists
;
}
public
ActivityListDTO
findActivityStartTimeAndEndTimeById
(
Integer
activityId
)
{
ActivityListDTO
activityListDTO
=
new
ActivityListDTO
();
ActivityList
activityList
=
mapper
.
selectByPrimaryKey
(
activityId
);
if
(
Objects
.
nonNull
(
activityList
)){
activityListDTO
.
setActivity_startTime
(
activityList
.
getStartTime
());
activityListDTO
.
setActivity_endTime
(
activityList
.
getEndTime
());
}
return
activityListDTO
;
}
}
\ No newline at end of file
xx-activity/xx-activity-server/src/main/java/com/xxfc/platform/activity/biz/ActivityPopularizeRelationBiz.java
View file @
1077735a
package
com
.
xxfc
.
platform
.
activity
.
biz
;
import
com.xxfc.platform.activity.dto.ActivityPopularizeRelationDTO
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.springframework.stereotype.Service
;
import
com.xxfc.platform.activity.entity.ActivityPopularizeRelation
;
import
com.xxfc.platform.activity.mapper.ActivityPopularizeRelationMapper
;
import
com.github.wxiaoqi.security.common.biz.BaseBiz
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
* 活动的参与者关系表
*
...
...
@@ -15,4 +20,13 @@ import com.github.wxiaoqi.security.common.biz.BaseBiz;
*/
@Service
public
class
ActivityPopularizeRelationBiz
extends
BaseBiz
<
ActivityPopularizeRelationMapper
,
ActivityPopularizeRelation
>
{
public
List
<
ActivityPopularizeRelationDTO
>
findActivityPopularizeRelationsByActivityIdAndTime
(
Integer
activityId
,
Long
startTime
,
Long
endTime
)
{
List
<
ActivityPopularizeRelationDTO
>
activityPopularizeRelationDTOS
=
new
ArrayList
<>();
List
<
ActivityPopularizeRelationDTO
>
relations
=
mapper
.
findActivityPopularizeRelationsByActivityIdAndTime
(
activityId
,
startTime
,
endTime
);
if
(
CollectionUtils
.
isNotEmpty
(
relations
)){
activityPopularizeRelationDTOS
.
addAll
(
relations
);
}
return
activityPopularizeRelationDTOS
;
}
}
\ No newline at end of file
xx-activity/xx-activity-server/src/main/java/com/xxfc/platform/activity/mapper/ActivityPopularizeRelationMapper.java
View file @
1077735a
package
com
.
xxfc
.
platform
.
activity
.
mapper
;
import
com.xxfc.platform.activity.dto.ActivityPopularizeRelationDTO
;
import
com.xxfc.platform.activity.entity.ActivityPopularizeRelation
;
import
org.apache.ibatis.annotations.Param
;
import
tk.mybatis.mapper.common.Mapper
;
import
java.util.List
;
/**
* 活动的参与者关系表
*
*
* @author zjw
* @email 18178966185@163.com
* @date 2019-07-17 19:51:17
*/
public
interface
ActivityPopularizeRelationMapper
extends
Mapper
<
ActivityPopularizeRelation
>
{
List
<
ActivityPopularizeRelationDTO
>
findActivityPopularizeRelationsByActivityIdAndTime
(
@Param
(
"activityId"
)
Integer
activityId
,
@Param
(
"startTime"
)
Long
startTime
,
@Param
(
"endTime"
)
Long
endTime
);
}
xx-activity/xx-activity-server/src/main/java/com/xxfc/platform/activity/rest/ActivityListController.java
View file @
1077735a
...
...
@@ -4,12 +4,14 @@ import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import
com.github.wxiaoqi.security.common.rest.BaseController
;
import
com.xxfc.platform.activity.biz.ActivityListBiz
;
import
com.xxfc.platform.activity.biz.HomeActivitiesBiz
;
import
com.xxfc.platform.activity.dto.ActivityListDTO
;
import
com.xxfc.platform.activity.entity.ActivityList
;
import
com.xxfc.platform.activity.entity.ActivityManagement
;
import
com.xxfc.platform.activity.entity.HomeActivities
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
...
...
@@ -34,4 +36,9 @@ public class ActivityListController extends BaseController<ActivityListBiz,Activ
// List<ActivityList> list= baseBiz.activities();
return
ObjectRestResponse
.
succ
(
activities
);
}
@GetMapping
(
"/time/{activityId}"
)
public
ActivityListDTO
findActivityStartTimeAndEndTimeById
(
@PathVariable
(
value
=
"activityId"
)
Integer
activityId
){
return
baseBiz
.
findActivityStartTimeAndEndTimeById
(
activityId
);
}
}
\ No newline at end of file
xx-activity/xx-activity-server/src/main/java/com/xxfc/platform/activity/rest/ActivityPopularizeRelationController.java
View file @
1077735a
...
...
@@ -2,13 +2,26 @@ package com.xxfc.platform.activity.rest;
import
com.github.wxiaoqi.security.common.rest.BaseController
;
import
com.xxfc.platform.activity.biz.ActivityPopularizeRelationBiz
;
import
com.xxfc.platform.activity.dto.ActivityPopularizeRelationDTO
;
import
com.xxfc.platform.activity.entity.ActivityPopularizeRelation
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
import
java.util.List
;
@RestController
@RequestMapping
(
"activityPopularizeRelation"
)
public
class
ActivityPopularizeRelationController
extends
BaseController
<
ActivityPopularizeRelationBiz
,
ActivityPopularizeRelation
>
{
@GetMapping
(
"/activity_popularize"
)
public
List
<
ActivityPopularizeRelationDTO
>
findActivityPopularizeRelationByActivityIdAndTime
(
@RequestParam
(
value
=
"activityId"
)
Integer
activityId
,
@RequestParam
(
value
=
"startTime"
,
required
=
false
)
Long
startTime
,
@RequestParam
(
value
=
"endTime"
,
required
=
false
)
Long
endTime
){
return
baseBiz
.
findActivityPopularizeRelationsByActivityIdAndTime
(
activityId
,
startTime
,
endTime
);
}
}
\ No newline at end of file
xx-activity/xx-activity-server/src/main/resources/mapper/ActivityPopularizeRelationMapper.xml
0 → 100644
View file @
1077735a
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.xxfc.platform.activity.mapper.ActivityPopularizeRelationMapper"
>
<!-- 可根据自己的需求,是否要使用 -->
<resultMap
type=
"com.xxfc.platform.activity.entity.ActivityPopularizeRelation"
id=
"activityPopularizeRelationMap"
>
<result
property=
"id"
column=
"id"
/>
<result
property=
"crtTime"
column=
"crt_time"
/>
<result
property=
"updTime"
column=
"upd_time"
/>
<result
property=
"popularizeId"
column=
"popularize_id"
/>
<result
property=
"majorUserId"
column=
"major_user_id"
/>
<result
property=
"minorUserId"
column=
"minor_user_id"
/>
</resultMap>
<select
id=
"findActivityPopularizeRelationsByActivityIdAndTime"
resultMap=
"activityPopularizeRelationMap"
>
select * from `activity_popularize_relation` where `popularize_id`=#{activityId}
<if
test=
"startTime != null and endTime !=null"
>
and `crt_time` between #{startTime} and #{endTime}
</if>
<if
test=
"startTime != null and endTime == null"
>
and
<![CDATA[ `crt_time` >= #{startTime}]]>
</if>
<if
test=
"endTime != null and startTime ==null"
>
and
<![CDATA[ `crt_time` <= #{endTime}]]>
</if>
</select>
</mapper>
\ No newline at end of file
xx-user-behavior-collect/xx-user-behavior-api/src/main/java/com/xxfc/platform/user/behavior/common/BehaviorEnum.java
View file @
1077735a
...
...
@@ -16,7 +16,7 @@ public enum BehaviorEnum {
/**
* 立即前往(弹窗)
*/
DIALOG_WINDOW_TO
(
1
,
"立即前往"
),
DIALOG_WINDOW_TO
(
1
,
"立即前往
(活动详情页)
"
),
/**
* banner 点击
...
...
@@ -33,20 +33,35 @@ public enum BehaviorEnum {
*/
REGISTRY
(
4
,
"注册"
),
/**
* 活动页面访问量
*/
ACTIVITY_VISITS
(
5
,
"活动页面访问"
),
/**
* 领取任务
*/
CLAIM_TASK
(
5
,
"领取任务"
),
CLAIM_TASK
(
6
,
"领取任务"
),
/**
* 分享
*/
SHARE
(
6
,
"分享"
),
SHARE
(
7
,
"分享"
),
/**
* App访问
*/
APP_VISIT_COUNT
(
8
,
"App访问量"
),
/**
* 成功邀请人数
*/
SUCCESS_INVIT
(
9
,
"成功邀请人数"
),
/**
*
邀请
*
成功邀请人数大于10
*/
INVITATION
(
7
,
"邀请
"
);
SUCCESS_MORE_10_INVIT
(
10
,
"成功邀请人数大于10
"
);
BehaviorEnum
(
int
code
,
String
name
)
{
this
.
code
=
code
;
...
...
xx-user-behavior-collect/xx-user-behavior-api/src/main/java/com/xxfc/platform/user/behavior/entity/CustomerBehaviorNotes.java
View file @
1077735a
...
...
@@ -8,6 +8,7 @@ import javax.persistence.GeneratedValue;
import
javax.persistence.Id
;
import
javax.persistence.Table
;
import
java.io.Serializable
;
import
java.util.Objects
;
/**
...
...
@@ -61,4 +62,17 @@ public class CustomerBehaviorNotes implements Serializable {
@Column
(
name
=
"request_id"
)
@ApiModelProperty
(
value
=
"请求id"
)
private
String
requestId
;
@Override
public
boolean
equals
(
Object
o
)
{
if
(
this
==
o
)
return
true
;
if
(
o
==
null
||
getClass
()
!=
o
.
getClass
())
return
false
;
CustomerBehaviorNotes
that
=
(
CustomerBehaviorNotes
)
o
;
return
Objects
.
equals
(
customerId
,
that
.
customerId
);
}
@Override
public
int
hashCode
()
{
return
Objects
.
hash
(
customerId
);
}
}
xx-user-behavior-collect/xx-user-behavior-api/src/main/java/com/xxfc/platform/user/behavior/vo/BehaviorNoteCollectVo.java
0 → 100644
View file @
1077735a
package
com
.
xxfc
.
platform
.
user
.
behavior
.
vo
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.io.Serializable
;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/8/12 18:32
*/
@Data
@Builder
(
toBuilder
=
true
)
@NoArgsConstructor
@AllArgsConstructor
public
class
BehaviorNoteCollectVo
implements
Serializable
{
/**
* @see com.xxfc.platform.user.behavior.common.BehaviorEnum + 成功邀请人数 ,邀请人数>=10 ,App 访问量
* 行为
*/
private
String
behavior
;
/**
* 日访问数
*/
private
long
p_count
;
/**
* 日平均访问数
*/
private
long
p_avg_count
;
/**
* 用户每日访问总数
*/
private
long
u_count
;
/**
* 用户每日平均访问总数
*/
private
long
u_avg_count
;
}
xx-user-behavior-collect/xx-user-behavior-server/pom.xml
View file @
1077735a
...
...
@@ -25,5 +25,11 @@
<artifactId>
xx-user-behavior-api
</artifactId>
<version>
2.0-SNAPSHOT
</version>
</dependency>
<dependency>
<groupId>
com.xxfc.platform
</groupId>
<artifactId>
xx-activity-api
</artifactId>
<version>
2.0-SNAPSHOT
</version>
</dependency>
</dependencies>
</project>
\ No newline at end of file
xx-user-behavior-collect/xx-user-behavior-server/src/main/java/com/xxfc/platform/user/behavior/UserBeHaviorApplication.java
View file @
1077735a
...
...
@@ -3,6 +3,7 @@ package com.xxfc.platform.user.behavior;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
import
org.springframework.cloud.client.discovery.EnableDiscoveryClient
;
import
org.springframework.cloud.openfeign.EnableFeignClients
;
import
tk.mybatis.spring.annotation.MapperScan
;
/**
...
...
@@ -12,6 +13,7 @@ import tk.mybatis.spring.annotation.MapperScan;
* @data 2019/8/12 10:04
*/
@EnableDiscoveryClient
@EnableFeignClients
(
basePackages
=
"com.xxfc.platform.*.feign"
)
@MapperScan
(
basePackages
=
"com.xxfc.platform.user.behavior.mapper"
)
@SpringBootApplication
public
class
UserBeHaviorApplication
{
...
...
xx-user-behavior-collect/xx-user-behavior-server/src/main/java/com/xxfc/platform/user/behavior/biz/CustomerBehaviorNotesBiz.java
View file @
1077735a
package
com
.
xxfc
.
platform
.
user
.
behavior
.
biz
;
import
com.github.wxiaoqi.security.common.biz.BaseBiz
;
import
com.xxfc.platform.activity.dto.ActivityListDTO
;
import
com.xxfc.platform.activity.dto.ActivityPopularizeRelationDTO
;
import
com.xxfc.platform.activity.feign.ActivityFeign
;
import
com.xxfc.platform.user.behavior.common.BehaviorEnum
;
import
com.xxfc.platform.user.behavior.dto.CustomerBehaviorNoteDTO
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.stereotype.Service
;
import
com.xxfc.platform.user.behavior.entity.CustomerBehaviorNotes
;
import
com.xxfc.platform.user.behavior.mapper.CustomerBehaviorNotesMapper
;
import
com.github.wxiaoqi.security.common.biz.BaseBiz
;
import
com.xxfc.platform.user.behavior.vo.BehaviorNoteCollectVo
;
import
lombok.RequiredArgsConstructor
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.time.Instant
;
import
java.time.temporal.ChronoUnit
;
import
java.util.*
;
import
java.util.stream.Collectors
;
/**
* 用户行为记录表
...
...
@@ -18,12 +28,95 @@ import java.time.Instant;
* @date 2019-08-12 14:03:55
*/
@Service
public
class
CustomerBehaviorNotesBiz
extends
BaseBiz
<
CustomerBehaviorNotesMapper
,
CustomerBehaviorNotes
>
{
@RequiredArgsConstructor
(
onConstructor
=
@__
({
@Autowired
}))
public
class
CustomerBehaviorNotesBiz
extends
BaseBiz
<
CustomerBehaviorNotesMapper
,
CustomerBehaviorNotes
>
{
private
final
ActivityFeign
activityFeign
;
public
void
saveCustomerBehavior
(
CustomerBehaviorNoteDTO
customerBehaviorNoteDTO
)
{
CustomerBehaviorNotes
customerBehaviorNotes
=
new
CustomerBehaviorNotes
();
BeanUtils
.
copyProperties
(
customerBehaviorNoteDTO
,
customerBehaviorNotes
);
BeanUtils
.
copyProperties
(
customerBehaviorNoteDTO
,
customerBehaviorNotes
);
customerBehaviorNotes
.
setCrtTime
(
Instant
.
now
().
toEpochMilli
());
mapper
.
insertSelective
(
customerBehaviorNotes
);
}
public
List
<
BehaviorNoteCollectVo
>
findBehaviorCollectByActivityId
(
Integer
activityId
,
Long
startTime
,
Long
endTime
)
{
List
<
BehaviorNoteCollectVo
>
behaviorNoteCollectVos
=
new
ArrayList
<>();
List
<
CustomerBehaviorNotes
>
customerBehaviorNotes
=
mapper
.
selectByActivityIdAndTime
(
activityId
,
startTime
,
endTime
);
boolean
isEmpty
=
CollectionUtils
.
isEmpty
(
customerBehaviorNotes
);
List
<
ActivityPopularizeRelationDTO
>
popularizeRelations
=
new
ArrayList
<>();
Map
<
Integer
,
List
<
CustomerBehaviorNotes
>>
behaviorAndDataMap
=
null
;
if
(!
isEmpty
)
{
//邀请成功记录
popularizeRelations
=
activityFeign
.
findActivityPopularizeRelationByActivityIdAndTime
(
activityId
,
startTime
,
endTime
);
behaviorAndDataMap
=
customerBehaviorNotes
.
stream
().
collect
(
Collectors
.
groupingBy
(
CustomerBehaviorNotes:
:
getType
,
Collectors
.
toList
()));
}
long
between_day
=
0
;
if
(
startTime
!=
null
&&
endTime
!=
null
){
between_day
=
ChronoUnit
.
DAYS
.
between
(
Instant
.
ofEpochMilli
(
startTime
),
Instant
.
ofEpochMilli
(
endTime
));
}
else
{
ActivityListDTO
activityListDTO
=
activityFeign
.
findActivityStartTimeAndEndTimeById
(
activityId
);
if
(
startTime
!=
null
){
between_day
=
ChronoUnit
.
DAYS
.
between
(
Instant
.
ofEpochMilli
(
startTime
),
Instant
.
now
());
}
if
(
endTime
!=
null
){
between_day
=
ChronoUnit
.
DAYS
.
between
(
Instant
.
ofEpochMilli
(
activityListDTO
.
getActivity_startTime
()),
Instant
.
ofEpochMilli
(
endTime
));
}
if
(
startTime
==
null
&&
endTime
==
null
){
between_day
=
ChronoUnit
.
DAYS
.
between
(
Instant
.
ofEpochMilli
(
activityListDTO
.
getActivity_startTime
()),
Instant
.
now
());
}
}
between_day
=
Math
.
abs
(
between_day
)==
0
?
1
:
Math
.
abs
(
between_day
);
EnumSet
<
BehaviorEnum
>
behaviorEnums
=
EnumSet
.
allOf
(
BehaviorEnum
.
class
);
BehaviorNoteCollectVo
behaviorNoteCollectVo
;
for
(
BehaviorEnum
behaviorEnum
:
behaviorEnums
)
{
behaviorNoteCollectVo
=
new
BehaviorNoteCollectVo
();
behaviorNoteCollectVo
.
setBehavior
(
behaviorEnum
.
getName
());
if
(
isEmpty
)
{
behaviorNoteCollectVos
.
add
(
behaviorNoteCollectVo
);
continue
;
}
else
{
switch
(
behaviorEnum
)
{
case
SUCCESS_INVIT:
int
total
=
popularizeRelations
.
size
();
long
avg
=
(
total
/
between_day
);
behaviorNoteCollectVo
.
setP_count
(
total
);
behaviorNoteCollectVo
.
setP_avg_count
(
avg
);
behaviorNoteCollectVo
.
setU_count
(
total
);
behaviorNoteCollectVo
.
setU_avg_count
(
avg
);
break
;
case
SUCCESS_MORE_10_INVIT:
long
default_totalMore10
=
popularizeRelations
.
stream
().
collect
(
Collectors
.
groupingBy
(
ActivityPopularizeRelationDTO:
:
getMajorUserId
,
Collectors
.
counting
())).
values
().
stream
().
filter
(
x
->
x
>=
10
).
count
();
long
default_avgMore10
=
default_totalMore10
/
between_day
;
behaviorNoteCollectVo
.
setP_count
(
default_totalMore10
);
behaviorNoteCollectVo
.
setP_avg_count
(
default_avgMore10
);
behaviorNoteCollectVo
.
setU_count
(
default_totalMore10
);
behaviorNoteCollectVo
.
setU_avg_count
(
default_avgMore10
);
break
;
default
:
//访问量
List
<
CustomerBehaviorNotes
>
customerBehaviors
=
behaviorAndDataMap
==
null
?
Collections
.
EMPTY_LIST
:
behaviorAndDataMap
.
get
(
behaviorEnum
.
getCode
());
boolean
typeIsEmpty
=
CollectionUtils
.
isEmpty
(
customerBehaviors
);
long
default_p_total
=
typeIsEmpty
?
0
:
customerBehaviors
.
size
();
long
default_p_avg
=
default_p_total
/
between_day
;
behaviorNoteCollectVo
.
setP_count
(
default_p_total
);
behaviorNoteCollectVo
.
setP_avg_count
(
default_p_avg
);
//用户访问量
Set
<
CustomerBehaviorNotes
>
customerBehaviorsSet
=
new
HashSet
<>(
typeIsEmpty
?
Collections
.
EMPTY_SET
:
customerBehaviorNotes
);
long
default_u_total
=
customerBehaviorsSet
.
size
();
long
default_u_avg
=
default_u_total
/
between_day
;
behaviorNoteCollectVo
.
setU_count
(
default_u_total
);
behaviorNoteCollectVo
.
setU_avg_count
(
default_u_avg
);
break
;
}
behaviorNoteCollectVos
.
add
(
behaviorNoteCollectVo
);
}
}
return
behaviorNoteCollectVos
;
}
}
\ No newline at end of file
xx-user-behavior-collect/xx-user-behavior-server/src/main/java/com/xxfc/platform/user/behavior/mapper/CustomerBehaviorNotesMapper.java
View file @
1077735a
package
com
.
xxfc
.
platform
.
user
.
behavior
.
mapper
;
import
com.xxfc.platform.user.behavior.entity.CustomerBehaviorNotes
;
import
org.apache.ibatis.annotations.Param
;
import
tk.mybatis.mapper.common.Mapper
;
import
java.util.List
;
/**
* 用户行为记录表
*
...
...
@@ -11,5 +14,6 @@ import tk.mybatis.mapper.common.Mapper;
* @date 2019-08-12 14:03:55
*/
public
interface
CustomerBehaviorNotesMapper
extends
Mapper
<
CustomerBehaviorNotes
>
{
List
<
CustomerBehaviorNotes
>
selectByActivityIdAndTime
(
@Param
(
"activityId"
)
Integer
activityId
,
@Param
(
"startTime"
)
Long
startTime
,
@Param
(
"endTime"
)
Long
endTime
);
}
xx-user-behavior-collect/xx-user-behavior-server/src/main/java/com/xxfc/platform/user/behavior/rest/admin/CustomerBehaviorNotesAdminController.java
View file @
1077735a
package
com
.
xxfc
.
platform
.
user
.
behavior
.
rest
.
admin
;
import
com.github.wxiaoqi.security.common.msg.ObjectRestResponse
;
import
com.xxfc.platform.user.behavior.biz.CustomerBehaviorNotesBiz
;
import
com.xxfc.platform.user.behavior.vo.BehaviorNoteCollectVo
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.List
;
/**
* @author libin
* @version 1.0
* @description
用户行为日志*后台统计
* @description 用户行为日志*后台统计
* @data 2019/8/12 15:16
*/
@RestController
...
...
@@ -19,4 +22,11 @@ public class CustomerBehaviorNotesAdminController {
private
final
CustomerBehaviorNotesBiz
customerBehaviorNotesBiz
;
@GetMapping
(
"/collect/{activityId}"
)
public
ObjectRestResponse
<
List
<
BehaviorNoteCollectVo
>>
findCollectByActivityId
(
@PathVariable
(
value
=
"activityId"
)
Integer
activityId
,
@RequestParam
(
value
=
"startTime"
,
required
=
false
)
Long
startTime
,
@RequestParam
(
value
=
"endTime"
,
required
=
false
)
Long
endTime
)
{
List
<
BehaviorNoteCollectVo
>
behaviorNoteCollectVos
=
customerBehaviorNotesBiz
.
findBehaviorCollectByActivityId
(
activityId
,
startTime
,
endTime
);
return
ObjectRestResponse
.
succ
(
behaviorNoteCollectVos
);
}
}
xx-user-behavior-collect/xx-user-behavior-server/src/main/resources/mapper/CustomerBehaviorNotesMapper.xml
View file @
1077735a
...
...
@@ -3,7 +3,7 @@
<mapper
namespace=
"com.xxfc.platform.user.behavior.mapper.CustomerBehaviorNotesMapper"
>
<!-- 可根据自己的需求,是否要使用 -->
<!-- 可根据自己的需求,是否要使用 -->
<resultMap
type=
"com.xxfc.platform.user.behavior.entity.CustomerBehaviorNotes"
id=
"customerBehaviorNotesMap"
>
<result
property=
"id"
column=
"id"
/>
<result
property=
"customerId"
column=
"customer_id"
/>
...
...
@@ -11,5 +11,19 @@
<result
property=
"type"
column=
"type"
/>
<result
property=
"typeId"
column=
"type_id"
/>
<result
property=
"crtTime"
column=
"crt_time"
/>
<result
property=
"requestId"
column=
"request_id"
/>
</resultMap>
<select
id=
"selectByActivityIdAndTime"
resultMap=
"customerBehaviorNotesMap"
>
select * from `customer_behavior_notes` where `type_id`=#{activityId}
<if
test=
"startTime != null and endTime !=null"
>
and `crt_time` between #{startTime} and #{endTime}
</if>
<if
test=
"startTime != null and endTime == null"
>
and
<![CDATA[`crt_time` >= #{startTime}]]>
</if>
<if
test=
"endTime != null and startTime == null"
>
and
<![CDATA[ `crt_time` <= #{endTime}]]>
</if>
</select>
</mapper>
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment