Skip to content
Toggle navigation
Toggle navigation
This project
Loading...
Sign in
张云鹏
/
uc-engine
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Issue Boards
Files
Commits
Network
Compare
Branches
Tags
Commit
e6ab01c2
...
e6ab01c21a910367af4fbff3bae1c3a4edc28299
authored
2022-02-03 14:57:59 +0800
by
xianghan@topdraw.cn
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
1.添加任务模板参数功能
1 parent
b8c77c5e
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
190 additions
and
45 deletions
member-service-api/src/main/java/com/topdraw/module/mq/DataSyncMsg.java
member-service-impl/src/main/java/com/topdraw/business/module/member/relatedinfo/rest/MemberRelatedInfoController.java
member-service-impl/src/main/java/com/topdraw/business/process/domian/TempCustomPointBean.java
member-service-impl/src/main/java/com/topdraw/business/process/rest/PointsOperationController.java
member-service-impl/src/main/java/com/topdraw/business/process/rest/TaskOperationController.java
member-service-impl/src/main/java/com/topdraw/business/process/service/impl/TaskOperationServiceImpl.java
member-service-impl/src/main/java/com/topdraw/util/UcListUtils.java
member-service-impl/src/test/java/com/topdraw/BaseTest.java
member-service-api/src/main/java/com/topdraw/module/mq/DataSyncMsg.java
View file @
e6ab01c
...
...
@@ -49,7 +49,7 @@ public class DataSyncMsg implements Serializable {
private
Long
activityId
;
private
Long
mediaId
;
private
Long
itemId
;
private
String
param
;
}
...
...
member-service-impl/src/main/java/com/topdraw/business/module/member/relatedinfo/rest/MemberRelatedInfoController.java
View file @
e6ab01c
...
...
@@ -11,14 +11,17 @@ import com.topdraw.business.module.member.relatedinfo.domain.MemberRelatedInfo;
import
com.topdraw.business.module.member.relatedinfo.service.MemberRelatedInfoService
;
import
com.topdraw.business.module.member.relatedinfo.service.dto.MemberRelatedInfoQueryCriteria
;
import
com.topdraw.exception.BadRequestException
;
import
com.topdraw.util.Base64Util
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.util.Assert
;
import
org.springframework.util.StringUtils
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.*
;
import
io.swagger.annotations.*
;
import
java.util.Base64
;
import
java.util.Objects
;
/**
...
...
@@ -57,6 +60,15 @@ public class MemberRelatedInfoController {
@ApiOperation
(
"修改MemberRelatedInfo"
)
@AnonymousAccess
public
ResultInfo
update
(
@Validated
(
value
=
{
UpdateGroup
.
class
})
@RequestBody
MemberRelatedInfo
resources
)
{
log
.
info
(
"Param ===> resources ===> [{}]"
,
resources
);
String
name
=
resources
.
getName
();
if
(
StringUtils
.
hasText
(
name
))
{
String
nickNameEncode
=
Base64Util
.
encode
(
name
);
resources
.
setName
(
nickNameEncode
);
}
Long
id
=
resources
.
getId
();
MemberRelatedInfoDTO
memberRelatedInfoDTO
=
this
.
MemberRelatedInfoService
.
findById
(
id
);
if
(
memberRelatedInfoDTO
.
getId
()
!=
null
)
{
...
...
member-service-impl/src/main/java/com/topdraw/business/process/domian/TempCustomPointBean.java
0 → 100644
View file @
e6ab01c
package
com
.
topdraw
.
business
.
process
.
domian
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
javax.persistence.Transient
;
import
javax.validation.constraints.NotNull
;
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
TempCustomPointBean
extends
TempIptvUser
{
/** 设备类型 1:大屏;2:小屏(微信)3.小屏(xx) */
@Transient
@NotNull
(
message
=
"设备类型不得为空"
)
protected
Integer
deviceType
;
/** 订单id */
@Transient
protected
Long
orderId
;
/** 节目id(针对观影操作) */
@Transient
protected
Long
mediaId
;
/** 活动id(针对参与活动) */
@Transient
protected
Long
activityId
;
/** 商品id */
@Transient
protected
Long
itemId
;
/** 行为事件类型 1:登录;2:观影;3:参与活动;4:订购;10:跨屏绑定;11:积分转移;98:系统操作;99:其他 */
@Transient
protected
Integer
evtType
;
}
member-service-impl/src/main/java/com/topdraw/business/process/rest/PointsOperationController.java
View file @
e6ab01c
...
...
@@ -12,7 +12,7 @@ import com.topdraw.business.module.user.iptv.service.UserTvService;
import
com.topdraw.business.module.user.iptv.service.dto.UserTvDTO
;
import
com.topdraw.business.module.user.weixin.service.UserWeixinService
;
import
com.topdraw.business.module.user.weixin.service.dto.UserWeixinDTO
;
import
com.topdraw.business.process.domian.Temp
IptvUser
;
import
com.topdraw.business.process.domian.Temp
CustomPointBean
;
import
com.topdraw.business.process.domian.TempPoints
;
import
com.topdraw.business.process.domian.result.CustomPointsResult
;
import
com.topdraw.business.process.service.PointsOperationService
;
...
...
@@ -38,7 +38,7 @@ import java.util.Objects;
*/
@Api
(
tags
=
"PointsOperation管理"
)
@RestController
@RequestMapping
(
"/api/pointsOperation"
)
@RequestMapping
(
"/
ucEngine/
api/pointsOperation"
)
public
class
PointsOperationController
{
private
static
final
Logger
LOG
=
LoggerFactory
.
getLogger
(
PointsOperationController
.
class
);
...
...
@@ -108,9 +108,15 @@ public class PointsOperationController {
@Log
@PostMapping
(
value
=
"/customPointsByUserTvPlatformAccount"
)
@ApiOperation
(
"通过大屏账户积分消耗"
)
public
ResultInfo
customPointsByUserTvPlatformAccount
(
@Validated
@RequestBody
Temp
IptvUser
tempIptvUser
)
{
public
ResultInfo
customPointsByUserTvPlatformAccount
(
@Validated
@RequestBody
Temp
CustomPointBean
tempIptvUser
)
{
String
platformAccount
=
tempIptvUser
.
getPlatformAccount
();
Long
points
=
tempIptvUser
.
getPoints
();
Long
activityId
=
tempIptvUser
.
getActivityId
();
Integer
evtType
=
tempIptvUser
.
getEvtType
();
Long
mediaId
=
tempIptvUser
.
getMediaId
();
Long
orderId
=
tempIptvUser
.
getOrderId
();
Integer
deviceType
=
tempIptvUser
.
getDeviceType
();
TempPoints
tempPoints
=
new
TempPoints
();
UserTvDTO
userTvDTO
=
this
.
userTvService
.
findByPlatformAccount
(
platformAccount
);
...
...
@@ -124,9 +130,12 @@ public class PointsOperationController {
tempPoints
.
setMemberId
(
memberId
);
}
tempPoints
.
setPoints
(
points
);
tempPoints
.
setDeviceType
(
LocalConstants
.
DEVICE_VIS
);
tempPoints
.
setDeviceType
(
deviceType
);
tempPoints
.
setAppCode
(
LocalConstants
.
APP_CODE_CHONGQING_CHONGSHU_VIS
);
tempPoints
.
setEvtType
(
LocalConstants
.
EVT_TYPE_ACTIVITY
);
tempPoints
.
setEvtType
(
evtType
);
tempPoints
.
setActivityId
(
activityId
);
tempPoints
.
setMediaId
(
mediaId
);
tempPoints
.
setOrderId
(
orderId
);
return
this
.
customPoints
(
tempPoints
);
}
...
...
member-service-impl/src/main/java/com/topdraw/business/process/rest/TaskOperationController.java
View file @
e6ab01c
package
com
.
topdraw
.
business
.
process
.
rest
;
import
com.topdraw.annotation.AnonymousAccess
;
import
com.topdraw.annotation.Log
;
import
com.topdraw.business.process.domian.TempIptvUser
;
import
com.topdraw.business.process.service.TaskOperationService
;
...
...
@@ -14,7 +15,7 @@ import java.util.Arrays;
@Api
(
"任务处理"
)
@RestController
@RequestMapping
(
value
=
"/
api/T
askOperation"
)
@RequestMapping
(
value
=
"/
ucEngine/api/t
askOperation"
)
public
class
TaskOperationController
{
@Autowired
...
...
@@ -28,6 +29,7 @@ public class TaskOperationController {
@Log
@PostMapping
(
value
=
"/dealTask"
)
@ApiOperation
(
"事件处理"
)
@AnonymousAccess
public
void
dealTask
(
@RequestBody
@Validated
TaskOperationQueryCriteria
criteria
)
{
// 任务处理
this
.
taskOperationService
.
dealTask
(
criteria
.
getContent
());
...
...
member-service-impl/src/main/java/com/topdraw/business/process/service/impl/TaskOperationServiceImpl.java
View file @
e6ab01c
package
com
.
topdraw
.
business
.
process
.
service
.
impl
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.topdraw.business.module.coupon.service.CouponService
;
import
com.topdraw.business.module.coupon.service.dto.CouponDTO
;
...
...
@@ -107,16 +108,15 @@ public class TaskOperationServiceImpl implements TaskOperationService {
// 2.通过任务模板获取对应的任务列表
List
<
Task
>
taskList
=
this
.
loadListTaskByTaskTemplate
(
taskTemplate
,
dataSyncMsg
);
// 4.判断当前用户是否满足任务完成条件
boolean
checkResult
=
this
.
checkTaskCompletion
(
memberId
,
taskList
);
/*
boolean checkResult = this.checkTaskCompletion(memberId,taskList);
if (checkResult) {
// 5.权益区分(积分、权益、成长值)
Map<RightType,Object> tempRightsMap = this.distinguishRight(memberId,taskList,msgData);
// 6.权益发放
this.grantRight(tempRightsMap);
}
}
*/
System
.
out
.
println
(
taskList
);
return
ResultInfo
.
success
();
}
...
...
@@ -772,16 +772,7 @@ public class TaskOperationServiceImpl implements TaskOperationService {
List
<
Task
>
taskList
=
this
.
taskService
.
findByTemplateId
(
taskTemplateId
);
Integer
type
=
taskTemplate
.
getType
();
switch
(
type
)
{
// 订购
case
TaskTemplateType
.
TYPE_4
:
taskList
=
this
.
pickUpTask
(
taskList
,
dataSyncMsg
);
break
;
default
:
break
;
}
taskList
=
this
.
pickUpTask
(
taskList
,
dataSyncMsg
,
type
);
return
taskList
;
}
...
...
@@ -795,29 +786,57 @@ public class TaskOperationServiceImpl implements TaskOperationService {
* @param dataSyncMsg
* @return
*/
private
List
<
Task
>
pickUpTask
(
List
<
Task
>
taskList
,
DataSyncMsg
dataSyncMsg
)
{
private
List
<
Task
>
pickUpTask
(
List
<
Task
>
taskList
,
DataSyncMsg
dataSyncMsg
,
Integer
type
)
{
List
<
Task
>
taskList1
=
new
ArrayList
<>();
DataSyncMsg
.
TaskTemplateParam
param
=
dataSyncMsg
.
getParam
();
DataSyncMsg
.
MsgData
msgData
=
dataSyncMsg
.
getMsg
();
if
(
Objects
.
nonNull
(
msgData
))
{
if
(
Objects
.
nonNull
(
param
))
{
String
param
=
msgData
.
getParam
();
Map
<
String
,
String
>
jsonObjectMap
=
JSONObject
.
parseObject
(
param
,
Map
.
class
);
Collection
<
String
>
values
=
jsonObjectMap
.
values
();
String
code
=
param
.
getCode
();
for
(
Task
task
:
taskList
)
{
Long
taskId
=
task
.
getId
();
TaskAttrDTO
taskAttrDTO
=
this
.
findTaskAttrByTaskId
(
taskId
);
if
(
Objects
.
isNull
(
taskAttrDTO
.
getId
()))
continue
;
String
attrStr
=
taskAttrDTO
.
getAttrStr
();
if
(
StringUtils
.
hasText
(
attrStr
))
{
DataSyncMsg
.
TaskTemplateParam
taskTemplateParam
=
JSONObject
.
parseObject
(
attrStr
,
DataSyncMsg
.
TaskTemplateParam
.
class
);
if
(
Objects
.
nonNull
(
taskTemplateParam
))
{
String
code1
=
taskTemplateParam
.
getCode
();
if
(
StringUtils
.
hasText
(
code1
)
&&
code
.
equalsIgnoreCase
(
code1
))
{
JSONObject
jsonObject
=
JSONObject
.
parseObject
(
attrStr
);
JSONArray
values_0
=
jsonObject
.
getJSONArray
(
"value"
);
switch
(
type
)
{
// 登录
case
TaskTemplateType
.
TYPE_1
:
Integer
o1
=
(
Integer
)
values_0
.
get
(
0
);
Integer
o2
=
(
Integer
)
values_0
.
get
(
1
);
List
<
Integer
>
list
=
Arrays
.
asList
(
o1
,
o2
);
String
s
=
values
.
toArray
()[
0
].
toString
();
Integer
i
=
Integer
.
valueOf
(
s
);
boolean
b
=
UcListUtils
.
compareIntegerList
(
i
,
list
);
if
(
b
)
taskList1
.
add
(
task
);
break
;
// 订购
case
TaskTemplateType
.
TYPE_4
:
if
(
values_0
.
containsAll
(
values
))
taskList1
.
add
(
task
);
break
;
default
:
break
;
}
}
}
}
}
else
{
...
...
@@ -855,11 +874,11 @@ public class TaskOperationServiceImpl implements TaskOperationService {
* @return TaskTemplate 任务模板
*/
private
TaskTemplate
getTaskTemplate
(
Integer
event
,
DataSyncMsg
msgData
)
{
DataSyncMsg
.
TaskTemplateParam
taskTemplateParam
=
msgData
.
getParam
();
DataSyncMsg
.
MsgData
msg
=
msgData
.
getMsg
();
if
(
Objects
.
nonNull
(
taskTemplateParam
))
{
if
(
Objects
.
nonNull
(
msg
))
{
return
this
.
findByTypeAndParam
(
event
,
taskTemplateParam
);
return
this
.
findByTypeAndParam
(
event
,
msg
);
}
else
{
...
...
@@ -878,28 +897,31 @@ public class TaskOperationServiceImpl implements TaskOperationService {
}
}
private
TaskTemplate
findByTypeAndParam
(
Integer
event
,
DataSyncMsg
.
TaskTemplateParam
taskTemplateParam
)
{
String
category
=
taskTemplateParam
.
getCategory
();
private
TaskTemplate
findByTypeAndParam
(
Integer
event
,
DataSyncMsg
.
MsgData
taskTemplateParam
)
{
String
param
=
taskTemplateParam
.
getParam
();
if
(
StringUtils
.
hasText
(
param
))
{
Map
<
String
,
String
>
jsonObject
=
JSONObject
.
parseObject
(
param
,
Map
.
class
);
List
<
TaskTemplate
>
taskTemplateList
=
this
.
taskTemplateService
.
findByType
(
event
);
if
(!
CollectionUtils
.
isEmpty
(
taskTemplateList
))
{
for
(
TaskTemplate
taskTemplate
:
taskTemplateList
)
{
String
params
=
taskTemplate
.
getParams
();
if
(!
StringUtils
.
isEmpty
(
params
))
{
DataSyncMsg
.
TaskTemplateParam
taskTemplateParam1
=
JSONObject
.
parseObject
(
params
,
DataSyncMsg
.
TaskTemplateParam
.
class
);
String
category1
=
taskTemplateParam1
.
getCategory
();
if
(!
StringUtils
.
isEmpty
(
category1
)
&&
category1
.
equalsIgnoreCase
(
category
))
String
templateParams
=
taskTemplate
.
getParams
();
if
(
StringUtils
.
hasText
(
templateParams
))
{
String
templateParamsUpperCase
=
templateParams
.
toUpperCase
();
boolean
b
=
jsonObject
.
containsKey
(
templateParamsUpperCase
);
if
(
b
)
return
taskTemplate
;
}
}
}
}
return
null
;
}
...
...
member-service-impl/src/main/java/com/topdraw/util/UcListUtils.java
0 → 100644
View file @
e6ab01c
package
com
.
topdraw
.
util
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
java.util.Arrays
;
import
java.util.Collection
;
import
java.util.List
;
import
java.util.Map
;
public
class
UcListUtils
{
public
static
boolean
compareIntegerList
(
Integer
obj
,
List
<
Integer
>
originList
){
Integer
o
=
originList
.
get
(
0
);
Integer
o1
=
originList
.
get
(
1
);
if
(
o
>=
0
&&
o1
>
o
&&
obj
>=
o
&&
obj
<=
o1
)
return
true
;
if
(
o
>
0
&&
o1
<
0
&&
obj
>=
o
)
return
true
;
return
false
;
}
public
static
void
main
(
String
[]
args
)
{
String
param
=
"{CONTINUE_LOGIN:30}"
;
Map
<
String
,
String
>
jsonObjectMap
=
JSONObject
.
parseObject
(
param
,
Map
.
class
);
Collection
<
String
>
values
=
jsonObjectMap
.
values
();
Object
o
=
values
.
toArray
()[
0
];
String
attrStr
=
"{\"value\":[31,-99]}"
;
JSONObject
jsonObject
=
JSONObject
.
parseObject
(
attrStr
);
JSONArray
values_0
=
jsonObject
.
getJSONArray
(
"value"
);
Integer
o1
=
(
Integer
)
values_0
.
get
(
0
);
Integer
o2
=
(
Integer
)
values_0
.
get
(
1
);
List
<
Integer
>
list
=
Arrays
.
asList
(
o1
,
o2
);
Integer
i
=
(
Integer
)
o
;
boolean
b
=
compareIntegerList
(
i
,
list
);
System
.
out
.
println
(
b
);
}
}
member-service-impl/src/test/java/com/topdraw/BaseTest.java
View file @
e6ab01c
...
...
@@ -10,6 +10,9 @@ import org.springframework.boot.test.context.SpringBootTest;
import
org.springframework.test.context.junit4.SpringRunner
;
import
java.sql.Timestamp
;
import
java.util.Collection
;
import
java.util.HashMap
;
import
java.util.Map
;
@SpringBootTest
(
classes
=
MemberServiceApplication
.
class
)
@RunWith
(
SpringRunner
.
class
)
...
...
@@ -26,9 +29,23 @@ public class BaseTest {
}
public
static
void
main
(
String
[]
args
)
{
String
param
=
"{\"category\":\"common_member\"}"
;
DataSyncMsg
.
TaskTemplateParam
taskTemplateParam
=
JSONObject
.
parseObject
(
param
,
DataSyncMsg
.
TaskTemplateParam
.
class
);
System
.
out
.
println
(
taskTemplateParam
);
/* Map<String,Integer> map = new HashMap<>();
map.put("1",1);
map.put("2",15);
int i = 5;
Object[] objects = map.values().toArray();
Integer object0 = (Integer) objects[0];
Integer object1 = (Integer) objects[1];
if (i > object0 && i < object1)
System.out.println(true);*/
String
param
=
"{\"GOODS\":\"aabbccddeeff\"}"
;
Map
<
String
,
String
>
jsonObject
=
JSONObject
.
parseObject
(
param
,
Map
.
class
);
System
.
out
.
println
(
jsonObject
);
}
...
...
Please
register
or
sign in
to post a comment