记得上下班打卡 | git大法好,push需谨慎
Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
liquidnet-bus-v1
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
董敬伟
liquidnet-bus-v1
Commits
63ce5f51
Commit
63ce5f51
authored
Oct 22, 2021
by
胡佳晨
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
提交 接口
parent
b5b0bed2
Changes
10
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
475 additions
and
57 deletions
+475
-57
StoneConstant.java
...a/com/liquidnet/service/stone/constant/StoneConstant.java
+2
-2
IStoneScoreLogsService.java
...quidnet/service/stone/service/IStoneScoreLogsService.java
+53
-0
StoneLogsListVo.java
.../java/com/liquidnet/service/stone/vo/StoneLogsListVo.java
+59
-0
StoneScoreLogs.java
...va/com/liquidnet/service/stone/entity/StoneScoreLogs.java
+12
-2
StoneUserVo.java
...main/java/com/liquidnet/service/stone/vo/StoneUserVo.java
+1
-1
StoneUserController.java
...quidnet/service/stone/controller/StoneUserController.java
+56
-3
StoneScoreLogsServiceImpl.java
...service/stone/service/impl/StoneScoreLogsServiceImpl.java
+168
-0
ObjectUtils.java
...in/java/com/liquidnet/service/stone/util/ObjectUtils.java
+6
-0
StoneMongoUtils.java
...ava/com/liquidnet/service/stone/util/StoneMongoUtils.java
+46
-12
StoneRedisUtils.java
...ava/com/liquidnet/service/stone/util/StoneRedisUtils.java
+72
-37
No files found.
liquidnet-bus-api/liquidnet-service-stone-api/src/main/java/com/liquidnet/service/stone/constant/StoneConstant.java
View file @
63ce5f51
...
...
@@ -7,8 +7,8 @@ public class StoneConstant {
public
static
final
String
USER
=
CTX
.
concat
(
"user:"
);
//item
public
static
final
String
ITEM
=
CTX
.
concat
(
"item:"
);
//
itemList 积分商品
列表
public
static
final
String
ITEM_LIST
=
ITEM
.
concat
(
"list
"
);
//
logsList 积分日志
列表
public
static
final
String
LOGS_LIST
=
ITEM
.
concat
(
"logs:list:
"
);
//剩余库存
public
static
final
String
SURPLUS_GENERAL
=
"surplusGeneral"
;
...
...
liquidnet-bus-api/liquidnet-service-stone-api/src/main/java/com/liquidnet/service/stone/service/IStoneScoreLogsService.java
View file @
63ce5f51
package
com
.
liquidnet
.
service
.
stone
.
service
;
import
com.github.pagehelper.PageInfo
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.stone.entity.StoneScoreLogs
;
import
com.liquidnet.service.stone.vo.StoneLogsListVo
;
import
java.util.List
;
/**
* <p>
* 积分日志表 服务类
...
...
@@ -10,4 +17,50 @@ package com.liquidnet.service.stone.service;
*/
public
interface
IStoneScoreLogsService
{
/**
* 减少积分
*
* @param uid 用户ID
* @param score 变更积分 正数
* @param taskId [2111-admin访问]
* @param content 变更原因
* @return
*/
String
deScore
(
String
uid
,
Integer
score
,
Integer
taskId
,
String
content
);
/**
* 增加积分
*
* @param uid 用户ID
* @param score 变更积分 正数
* @param taskId [2111-admin访问]
* @param content 变更原因
* @return
*/
String
inScore
(
String
uid
,
Integer
score
,
Integer
taskId
,
String
content
);
/**
* 做任务
*
* @param taskId [
* taskId 0 每日任务:签到
* taskId 1 每日任务:购买演出
* taskId 2 每日任务:购买商品
* taskId 3 每日任务:划卡
* taskId 4 一次性任务:关注公众号
* taskId 5 一次性任务:完善信息
* taskId 6 一次性任务:完善头像
* taskId 7 一次性任务:打开消息推送
* taskId 8 一次性任务:体验在场
* ]
* @return
*/
ResponseDto
<
String
>
task
(
Integer
taskId
);
/**
* 积分详情
* @param page
* @return
*/
PageInfo
<
List
<
StoneLogsListVo
>>
logList
(
Integer
page
);
}
liquidnet-bus-api/liquidnet-service-stone-api/src/main/java/com/liquidnet/service/stone/vo/StoneLogsListVo.java
0 → 100644
View file @
63ce5f51
package
com
.
liquidnet
.
service
.
stone
.
vo
;
import
com.liquidnet.commons.lang.util.DateUtil
;
import
com.liquidnet.service.stone.entity.StoneScoreItems
;
import
com.liquidnet.service.stone.entity.StoneScoreLogs
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.time.LocalDateTime
;
@Data
@ApiModel
public
class
StoneLogsListVo
implements
Serializable
,
Cloneable
{
/**
* id
*/
@ApiModelProperty
(
value
=
"id"
,
example
=
"1"
)
private
String
logsId
;
/**
* 积分物品封面图
*/
@ApiModelProperty
(
value
=
"积分物品封面图"
,
example
=
"http://xxxxx.png"
)
private
Integer
score
;
/**
* 积分物品名称
*/
@ApiModelProperty
(
value
=
"积分物品名称"
,
example
=
"测试券"
)
private
String
content
;
/**
* 目标类型[1-券|1x-商品维度|2x-演出维度]
*/
@ApiModelProperty
(
value
=
"目标类型[1-券|1x-商品维度|2x-演出维度]"
,
example
=
"1"
)
private
String
createdAt
;
private
static
final
StoneLogsListVo
obj
=
new
StoneLogsListVo
();
public
static
StoneLogsListVo
getNew
()
{
try
{
return
(
StoneLogsListVo
)
obj
.
clone
();
}
catch
(
CloneNotSupportedException
e
)
{
return
new
StoneLogsListVo
();
}
}
public
StoneLogsListVo
copy
(
StoneScoreLogs
source
)
{
if
(
null
==
source
)
return
this
;
this
.
setLogsId
(
source
.
getLogsId
());
this
.
setScore
(
source
.
getScore
().
intValue
());
this
.
setContent
(
source
.
getContent
());
this
.
setCreatedAt
(
DateUtil
.
Formatter
.
yyyyMMddHHmmss
.
format
(
source
.
getCreatedAt
()));
return
this
;
}
}
liquidnet-bus-do/liquidnet-service-stone-do/src/main/java/com/liquidnet/service/stone/entity/StoneScoreLogs.java
View file @
63ce5f51
...
...
@@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.annotation.IdType;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
java.time.LocalDateTime
;
import
java.io.Serializable
;
import
com.liquidnet.service.stone.dto.StoneScoreListDto
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
...
...
@@ -18,7 +20,7 @@ import lombok.EqualsAndHashCode;
*/
@Data
@EqualsAndHashCode
(
callSuper
=
false
)
public
class
StoneScoreLogs
implements
Serializable
{
public
class
StoneScoreLogs
implements
Serializable
,
Cloneable
{
private
static
final
long
serialVersionUID
=
1L
;
...
...
@@ -56,5 +58,13 @@ public class StoneScoreLogs implements Serializable {
private
String
comment
;
private
static
final
StoneScoreLogs
obj
=
new
StoneScoreLogs
();
public
static
StoneScoreLogs
getNew
()
{
try
{
return
(
StoneScoreLogs
)
obj
.
clone
();
}
catch
(
CloneNotSupportedException
e
)
{
e
.
printStackTrace
();
}
return
new
StoneScoreLogs
();
}
}
liquidnet-bus-do/liquidnet-service-stone-do/src/main/java/com/liquidnet/service/stone/vo/StoneUserVo.java
View file @
63ce5f51
...
...
@@ -30,10 +30,10 @@ public class StoneUserVo implements Serializable, Cloneable {
private
Integer
status
;
/**
* 每日任务:签到
* 每日任务:购买演出
* 每日任务:购买商品
* 每日任务:划卡
* 每日任务:签到
* 一次性任务:关注公众号
* 一次性任务:完善信息
* 一次性任务:完善头像
...
...
liquidnet-bus-service/liquidnet-service-stone/liquidnet-service-stone-impl/src/main/java/com/liquidnet/service/stone/controller/StoneUserController.java
View file @
63ce5f51
package
com
.
liquidnet
.
service
.
stone
.
controller
;
import
com.github.pagehelper.PageInfo
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.stone.dto.StoneScoreListDto
;
import
com.liquidnet.service.stone.service.IStoneScoreLogsService
;
import
com.liquidnet.service.stone.service.IStoneScoreUserService
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiResponse
;
import
com.liquidnet.service.stone.vo.StoneLogsListVo
;
import
io.swagger.annotations.*
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.validation.annotation.Validated
;
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
;
@Api
(
tags
=
"积分-用户相关"
)
@RestController
...
...
@@ -21,6 +25,8 @@ public class StoneUserController {
@Autowired
IStoneScoreUserService
stoneScoreUserService
;
@Autowired
IStoneScoreLogsService
stoneScoreLogsService
;
@GetMapping
(
"info"
)
@ApiOperation
(
"积分商品列表"
)
...
...
@@ -29,4 +35,51 @@ public class StoneUserController {
return
ResponseDto
.
success
(
stoneScoreUserService
.
stoneUserInfo
());
}
@GetMapping
(
"task"
)
@ApiOperation
(
"做任务"
)
@ApiResponse
(
code
=
200
,
message
=
"接口返回对象参数"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
type
=
"form"
,
required
=
true
,
dataType
=
"Integer"
,
name
=
"taskId"
,
value
=
"任务ID[0-每日任务|1-每日任务:购买演出|2-每日任务:购买商品|3-每日任务:划卡|4-一次性任务:关注公众号|5-一次性任务:完善信息|6-一次性任务:完善头像|7-一次性任务:打开消息推送|8-一次性任务:体验在场]"
,
example
=
""
),
})
public
ResponseDto
<
String
>
task
(
@RequestParam
(
value
=
"taskId"
,
required
=
true
)
Integer
taskId
)
{
return
stoneScoreLogsService
.
task
(
taskId
);
}
@GetMapping
(
"logs/list"
)
@ApiOperation
(
"积分详情列表"
)
@ApiResponse
(
code
=
200
,
message
=
"接口返回对象参数"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
type
=
"form"
,
required
=
true
,
dataType
=
"Integer"
,
name
=
"page"
,
value
=
"页数"
,
example
=
""
),
})
public
ResponseDto
<
PageInfo
<
List
<
StoneLogsListVo
>>>
logList
(
@RequestParam
(
value
=
"page"
,
required
=
true
)
Integer
page
)
{
return
ResponseDto
.
success
(
stoneScoreLogsService
.
logList
(
page
));
}
@GetMapping
(
"logs/in2111"
)
@ApiOperation
(
"增加积分"
)
@ApiResponse
(
code
=
200
,
message
=
"接口返回对象参数"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
type
=
"form"
,
required
=
true
,
dataType
=
"String"
,
name
=
"uid"
,
value
=
"用户Id"
,
example
=
""
),
@ApiImplicitParam
(
type
=
"form"
,
required
=
true
,
dataType
=
"Integer"
,
name
=
"score"
,
value
=
"积分"
,
example
=
""
),
@ApiImplicitParam
(
type
=
"form"
,
required
=
true
,
dataType
=
"String"
,
name
=
"content"
,
value
=
"内容"
,
example
=
""
),
})
public
ResponseDto
<
String
>
inScore
(
@RequestParam
(
value
=
"uid"
,
required
=
true
)
String
uid
,
@RequestParam
(
value
=
"score"
,
required
=
true
)
Integer
score
,
@RequestParam
(
value
=
"content"
,
required
=
true
)
String
content
)
{
return
ResponseDto
.
success
(
stoneScoreLogsService
.
inScore
(
uid
,
score
,
2111
,
content
));
}
@GetMapping
(
"logs/de2111"
)
@ApiOperation
(
"减少积分"
)
@ApiResponse
(
code
=
200
,
message
=
"接口返回对象参数"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
type
=
"form"
,
required
=
true
,
dataType
=
"String"
,
name
=
"uid"
,
value
=
"用户Id"
,
example
=
""
),
@ApiImplicitParam
(
type
=
"form"
,
required
=
true
,
dataType
=
"Integer"
,
name
=
"score"
,
value
=
"积分"
,
example
=
""
),
@ApiImplicitParam
(
type
=
"form"
,
required
=
true
,
dataType
=
"String"
,
name
=
"content"
,
value
=
"内容"
,
example
=
""
),
})
public
ResponseDto
<
String
>
deScore
(
@RequestParam
(
value
=
"uid"
,
required
=
true
)
String
uid
,
@RequestParam
(
value
=
"score"
,
required
=
true
)
Integer
score
,
@RequestParam
(
value
=
"content"
,
required
=
true
)
String
content
)
{
return
ResponseDto
.
success
(
stoneScoreLogsService
.
deScore
(
uid
,
score
,
2111
,
content
));
}
}
liquidnet-bus-service/liquidnet-service-stone/liquidnet-service-stone-impl/src/main/java/com/liquidnet/service/stone/service/impl/StoneScoreLogsServiceImpl.java
View file @
63ce5f51
package
com
.
liquidnet
.
service
.
stone
.
service
.
impl
;
import
com.github.pagehelper.PageInfo
;
import
com.liquidnet.commons.lang.util.CurrentUtil
;
import
com.liquidnet.commons.lang.util.DateUtil
;
import
com.liquidnet.commons.lang.util.IDGenerator
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.base.UserPathDto
;
import
com.liquidnet.service.stone.entity.StoneScoreItems
;
import
com.liquidnet.service.stone.entity.StoneScoreLogs
;
import
com.liquidnet.service.stone.service.IStoneScoreLogsService
;
import
com.liquidnet.service.stone.util.ObjectUtils
;
import
com.liquidnet.service.stone.util.StoneMongoUtils
;
import
com.liquidnet.service.stone.util.StoneRedisUtils
;
import
com.liquidnet.service.stone.vo.StoneItemListVo
;
import
com.liquidnet.service.stone.vo.StoneLogsListVo
;
import
com.liquidnet.service.stone.vo.StoneTaskVo
;
import
com.liquidnet.service.stone.vo.StoneUserVo
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.math.BigDecimal
;
import
java.time.LocalDateTime
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
/**
* <p>
* 积分日志表 服务实现类
...
...
@@ -12,6 +35,151 @@ import org.springframework.stereotype.Service;
* @since 2021-10-19
*/
@Service
@Slf4j
public
class
StoneScoreLogsServiceImpl
implements
IStoneScoreLogsService
{
@Autowired
StoneRedisUtils
stoneRedisUtils
;
@Autowired
StoneMongoUtils
stoneMongoUtils
;
@Override
public
String
deScore
(
String
uid
,
Integer
score
,
Integer
TaskId
,
String
reason
)
{
if
(
score
<=
0
)
{
return
"积分不能小于0"
;
}
if
(
TaskId
==
2111
)
{
changeUse
(
uid
,
score
,
reason
,
reason
);
return
"成功"
;
}
else
{
changeUse
(
uid
,
score
,
""
,
reason
);
return
"成功"
;
}
}
@Override
public
String
inScore
(
String
uid
,
Integer
score
,
Integer
TaskId
,
String
reason
)
{
if
(
score
<=
0
)
{
return
"积分不能小于0"
;
}
if
(
TaskId
==
2111
)
{
changeRest
(
uid
,
score
,
reason
,
reason
);
return
"成功"
;
}
else
{
changeRest
(
uid
,
score
,
""
,
reason
);
return
"成功"
;
}
}
@Override
public
ResponseDto
<
String
>
task
(
Integer
taskId
)
{
String
uid
=
CurrentUtil
.
getCurrentUid
();
StoneUserVo
vo
=
stoneRedisUtils
.
getUserData
(
uid
);
List
<
StoneTaskVo
>
taskList
=
vo
.
getTask
();
boolean
isIn
=
false
;
//标示是否操作
for
(
int
i
=
0
;
i
<
taskList
.
size
();
i
++)
{
StoneTaskVo
item
=
taskList
.
get
(
i
);
//判断任务
if
(
item
.
getTaskId
().
equals
(
taskId
))
{
if
(
item
.
getTaskType
().
equals
(
1
)
&&
item
.
getTaskTime
().
equals
(
DateUtil
.
getNowTime
(
DateUtil
.
DATE_SMALL_STR
)))
{
return
ResponseDto
.
failure
(
"今日已完成"
);
}
else
if
(
item
.
getTaskType
().
equals
(
1
)
&&
item
.
getTaskCount
()
>=
1
)
{
return
ResponseDto
.
failure
(
"该任务已完成"
);
}
else
{
//记录完成任务
if
(
taskId
==
0
)
{
//每日签到
if
(
DateUtil
.
intervalDays
(
DateUtil
.
parse
(
item
.
getTaskTime
(),
"yyyy-MM-dd"
),
DateUtil
.
parse
(
DateUtil
.
getNowTime
(),
"yyyy-MM-dd"
)
)
==
1L
)
{
//连续签到
if
(
item
.
getTaskCount
()
>=
7
)
{
item
.
setTaskCount
(
1
);
}
else
{
item
.
setTaskCount
(
item
.
getTaskCount
()
+
1
);
}
}
else
{
//非连续签到
item
.
setTaskCount
(
1
);
}
}
else
{
//其他
item
.
setTaskCount
(
1
);
}
item
.
setTaskTime
(
DateUtil
.
getNowTime
(
DateUtil
.
DATE_SMALL_STR
));
taskList
.
set
(
i
,
item
);
vo
.
setTask
(
taskList
);
stoneMongoUtils
.
userUpdateByUid
(
vo
);
//添加积分
inScore
(
uid
,
taskId
,
taskId
,
item
.
getTaskName
());
isIn
=
true
;
break
;
}
}
}
return
isIn
?
ResponseDto
.
success
(
"成功"
)
:
ResponseDto
.
failure
(
"任务不存在"
);
}
@Override
public
PageInfo
<
List
<
StoneLogsListVo
>>
logList
(
Integer
page
)
{
String
uid
=
CurrentUtil
.
getCurrentUid
();
PageInfo
<
List
<
StoneLogsListVo
>>
mPageInfo
;
int
size
=
40
;
if
(
page
==
null
||
page
==
1
||
page
==
0
)
{
page
=
1
;
}
List
<
StoneScoreLogs
>
voList
;
long
count
;
if
(
page
==
1
)
{
voList
=
stoneRedisUtils
.
getLogsList
(
uid
);
count
=
voList
.
size
();
}
else
{
HashMap
<
String
,
Object
>
info
=
stoneMongoUtils
.
itemListPage
(
page
,
size
);
try
{
voList
=
(
List
<
StoneScoreLogs
>)
info
.
get
(
"total"
);
count
=
(
long
)
info
.
get
(
"data"
);
}
catch
(
Exception
e
)
{
voList
=
new
ArrayList
();
count
=
0
;
}
}
List
<
StoneLogsListVo
>
returnVoList
=
ObjectUtils
.
getStoneLogsListVoArrayList
();
for
(
int
i
=
0
;
i
<
voList
.
size
();
i
++)
{
StoneScoreLogs
vo
=
voList
.
get
(
i
);
StoneLogsListVo
returnVo
=
StoneLogsListVo
.
getNew
().
copy
(
vo
);
returnVoList
.
add
(
returnVo
);
}
mPageInfo
=
new
PageInfo
(
returnVoList
);
mPageInfo
.
setTotal
(
count
);
log
.
info
(
UserPathDto
.
setData
(
"积分日志列表"
,
""
,
voList
));
return
mPageInfo
;
}
private
void
changeRest
(
String
uid
,
Integer
score
,
String
reason
,
String
content
)
{
//redis
stoneRedisUtils
.
changeUserScoreRest
(
uid
,
score
);
//mongo
StoneScoreLogs
logs
=
new
StoneScoreLogs
();
logs
.
setLogsId
(
IDGenerator
.
nextTimeId2
());
logs
.
setContent
(
content
);
logs
.
setReason
(
reason
);
logs
.
setUid
(
uid
);
logs
.
setScore
(
BigDecimal
.
valueOf
(
score
));
logs
.
setCreatedAt
(
LocalDateTime
.
now
());
stoneMongoUtils
.
logCreate
(
logs
);
//TODO mysql
}
private
void
changeUse
(
String
uid
,
Integer
score
,
String
reason
,
String
content
)
{
//redis
stoneRedisUtils
.
changeUserScoreUse
(
uid
,
-
score
);
stoneRedisUtils
.
changeUserScoreRest
(
uid
,
-
score
);
//mongo
StoneScoreLogs
logs
=
new
StoneScoreLogs
();
logs
.
setLogsId
(
IDGenerator
.
nextTimeId2
());
logs
.
setContent
(
content
);
logs
.
setReason
(
reason
);
logs
.
setUid
(
uid
);
logs
.
setScore
(
BigDecimal
.
valueOf
(
score
));
logs
.
setCreatedAt
(
LocalDateTime
.
now
());
stoneMongoUtils
.
logCreate
(
logs
);
//TODO mysql
}
}
liquidnet-bus-service/liquidnet-service-stone/liquidnet-service-stone-impl/src/main/java/com/liquidnet/service/stone/util/ObjectUtils.java
View file @
63ce5f51
package
com
.
liquidnet
.
service
.
stone
.
util
;
import
com.liquidnet.service.stone.vo.StoneItemListVo
;
import
com.liquidnet.service.stone.vo.StoneLogsListVo
;
import
java.util.ArrayList
;
public
class
ObjectUtils
{
private
static
final
ArrayList
<
StoneItemListVo
>
stoneItemListVoArrayList
=
new
ArrayList
<>();
private
static
final
ArrayList
<
StoneLogsListVo
>
stoneLogsListVoArrayList
=
new
ArrayList
<>();
public
static
ArrayList
<
StoneItemListVo
>
getStoneItemListVoArrayList
()
{
return
(
ArrayList
<
StoneItemListVo
>)
stoneItemListVoArrayList
.
clone
();
}
public
static
ArrayList
<
StoneLogsListVo
>
getStoneLogsListVoArrayList
()
{
return
(
ArrayList
<
StoneLogsListVo
>)
stoneLogsListVoArrayList
.
clone
();
}
}
liquidnet-bus-service/liquidnet-service-stone/liquidnet-service-stone-impl/src/main/java/com/liquidnet/service/stone/util/StoneMongoUtils.java
View file @
63ce5f51
...
...
@@ -3,6 +3,7 @@ package com.liquidnet.service.stone.util;
import
com.liquidnet.commons.lang.util.CollectionUtil
;
import
com.liquidnet.commons.lang.util.JsonUtils
;
import
com.liquidnet.service.stone.entity.StoneScoreItems
;
import
com.liquidnet.service.stone.entity.StoneScoreLogs
;
import
com.liquidnet.service.stone.vo.StoneUserVo
;
import
com.mongodb.client.result.UpdateResult
;
import
org.bson.Document
;
...
...
@@ -38,18 +39,18 @@ public class StoneMongoUtils {
StoneScoreItems
.
class
,
StoneScoreItems
.
class
.
getSimpleName
());
}
/**
* 根据积分物品id修改
*
* @param data
* @return
*/
public
Object
itemUpdateById
(
StoneScoreItems
data
)
{
Query
query
=
Query
.
query
(
Criteria
.
where
(
"itemId"
).
is
(
data
.
getItemId
()));
Update
update
=
Update
.
fromDocument
(
Document
.
parse
(
JsonUtils
.
toJson
(
data
)));
UpdateResult
result
=
mongoTemplate
.
updateFirst
(
query
,
update
,
StoneScoreItems
.
class
,
StoneScoreItems
.
class
.
getSimpleName
());
return
result
;
}
//
/**
//
* 根据积分物品id修改
//
*
//
* @param data
//
* @return
//
*/
//
public Object itemUpdateById(StoneScoreItems data) {
//
Query query = Query.query(Criteria.where("itemId").is(data.getItemId()));
//
Update update = Update.fromDocument(Document.parse(JsonUtils.toJson(data)));
//
UpdateResult result = mongoTemplate.updateFirst(query, update, StoneScoreItems.class, StoneScoreItems.class.getSimpleName());
//
return result;
//
}
// /**
// * 查询 积分物品 列表
...
...
@@ -107,4 +108,37 @@ public class StoneMongoUtils {
return
result
;
}
/**
* 创建 用户积分日志
*
* @param data
* @return
*/
public
Object
logCreate
(
StoneScoreLogs
data
)
{
return
mongoTemplate
.
insert
(
data
,
StoneScoreLogs
.
class
.
getSimpleName
());
}
/**
* 获取 用户积分日志 列表
* @param uid
* @param page
* @param size
* @return
*/
public
HashMap
<
String
,
Object
>
logList
(
String
uid
,
int
page
,
int
size
)
{
LocalDateTime
now
=
LocalDateTime
.
now
();
HashMap
<
String
,
Object
>
info
=
CollectionUtil
.
mapStringObject
();
// 排序 分页
Pageable
pageable
=
PageRequest
.
of
(
page
-
1
,
size
,
Sort
.
by
(
Sort
.
Direction
.
DESC
,
"createdAt"
));
//条件
Query
query
=
Query
.
query
(
Criteria
.
where
(
"uid"
).
is
(
uid
));
// 查询总数
long
count
=
mongoTemplate
.
count
(
query
,
StoneScoreLogs
.
class
,
StoneScoreLogs
.
class
.
getSimpleName
());
query
.
with
(
pageable
);
List
<
StoneScoreLogs
>
voList
=
mongoTemplate
.
find
(
query
,
StoneScoreLogs
.
class
,
StoneScoreLogs
.
class
.
getSimpleName
());
info
.
put
(
"total"
,
count
);
info
.
put
(
"data"
,
voList
);
return
info
;
}
}
liquidnet-bus-service/liquidnet-service-stone/liquidnet-service-stone-impl/src/main/java/com/liquidnet/service/stone/util/StoneRedisUtils.java
View file @
63ce5f51
...
...
@@ -3,6 +3,7 @@ package com.liquidnet.service.stone.util;
import
com.liquidnet.common.cache.redis.util.RedisUtil
;
import
com.liquidnet.service.stone.constant.StoneConstant
;
import
com.liquidnet.service.stone.entity.StoneScoreItems
;
import
com.liquidnet.service.stone.entity.StoneScoreLogs
;
import
com.liquidnet.service.stone.vo.StoneUserVo
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
...
...
@@ -83,6 +84,40 @@ public class StoneRedisUtils {
}
}
/**
* 修改 用户积分 使用
*
* @param uid ID
* @return
*/
public
Integer
changeUserScoreUse
(
String
uid
,
Integer
general
)
{
String
redisKey
=
StoneConstant
.
USE_SCORE
.
concat
(
uid
).
concat
(
StoneConstant
.
USE_SCORE
);
long
result
;
if
(
general
>
0
)
{
result
=
redisUtil
.
incr
(
redisKey
,
general
);
}
else
{
result
=
redisUtil
.
decr
(
redisKey
,
Math
.
abs
(
general
));
}
return
(
int
)
result
;
}
/**
* 修改 用户积分 剩余
*
* @param uid ID
* @return
*/
public
Integer
changeUserScoreRest
(
String
uid
,
Integer
general
)
{
String
redisKey
=
StoneConstant
.
USE_SCORE
.
concat
(
uid
).
concat
(
StoneConstant
.
SURPLUS_SCORE
);
long
result
;
if
(
general
>
0
)
{
result
=
redisUtil
.
incr
(
redisKey
,
general
);
}
else
{
result
=
redisUtil
.
decr
(
redisKey
,
Math
.
abs
(
general
));
}
return
(
int
)
result
;
}
/**
* 设置 积分物品 缓存
*
...
...
@@ -134,45 +169,45 @@ public class StoneRedisUtils {
// redisUtil.set(redisKey, dataList);
// }
//
/**
// * 添加 积分物品
缓存list
//
*
//
* @param data
//
*/
// public void addItemDataList(StoneScoreItem
s data) {
// String redisKey = StoneConstant.ITEM_LIST
;
//
Object obj = redisUtil.get(redisKey);
// List<StoneScoreItem
s> dataList;
//
if (obj == null) {
// dataList = mongoUtils.itemList(
);
//
} else {
// dataList = (List<StoneScoreItem
s>) obj;
//
}
//
dataList.add(0, data);
//
if (dataList.size() > 40) {
//
int size = dataList.size() - 40;
//
for (int i = 0; i < size; i++) {
//
dataList.remove(40);
//
}
//
}
//
redisUtil.set(redisKey, dataList);
//
}
/**
* 添加 积分日志
缓存list
*
* @param data
*/
public
void
addLogsList
(
String
uid
,
StoneScoreLog
s
data
)
{
String
redisKey
=
StoneConstant
.
LOGS_LIST
.
concat
(
uid
)
;
Object
obj
=
redisUtil
.
get
(
redisKey
);
List
<
StoneScoreLog
s
>
dataList
;
if
(
obj
==
null
)
{
dataList
=
(
List
<
StoneScoreLogs
>)
mongoUtils
.
logList
(
uid
,
1
,
40
).
get
(
"data"
);
}
else
{
dataList
=
(
List
<
StoneScoreLog
s
>)
obj
;
}
dataList
.
add
(
0
,
data
);
if
(
dataList
.
size
()
>
40
)
{
int
size
=
dataList
.
size
()
-
40
;
for
(
int
i
=
0
;
i
<
size
;
i
++)
{
dataList
.
remove
(
40
);
}
}
redisUtil
.
set
(
redisKey
,
dataList
);
}
//
/**
// * 设置 积分物品
缓存list
//
*/
// public List<StoneScoreItems> getItemDataList(
) {
// String redisKey = StoneConstant.ITEM_LIST
;
//
Object obj = redisUtil.get(redisKey);
//
if (obj == null) {
// return mongoUtils.itemList(
);
//
} else {
// return (List<StoneScoreItem
s>) obj;
//
}
//
}
/**
* 获取 积分日志
缓存list
*/
public
List
<
StoneScoreLogs
>
getLogsList
(
String
uid
)
{
String
redisKey
=
StoneConstant
.
LOGS_LIST
.
concat
(
uid
)
;
Object
obj
=
redisUtil
.
get
(
redisKey
);
if
(
obj
==
null
)
{
return
(
List
<
StoneScoreLogs
>)
mongoUtils
.
logList
(
uid
,
1
,
40
).
get
(
"data"
);
}
else
{
return
(
List
<
StoneScoreLog
s
>)
obj
;
}
}
/**
* 设置 用户
积分
缓存
* 设置 用户
任务
缓存
*
* @param uid
* @param data
...
...
@@ -183,7 +218,7 @@ public class StoneRedisUtils {
}
/**
* 获取 用户
积分
缓存
* 获取 用户
任务
缓存
*
* @param uid
*/
...
...
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