记得上下班打卡 | 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
66f61300
Commit
66f61300
authored
Oct 22, 2021
by
jiangxiulong
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/dev_stone' into dev_stone
parents
f3b69670
60b0cc2f
Changes
22
Hide whitespace changes
Inline
Side-by-side
Showing
22 changed files
with
815 additions
and
75 deletions
+815
-75
StoneConstant.java
...a/com/liquidnet/service/stone/constant/StoneConstant.java
+2
-2
IStoneScoreItemsService.java
...uidnet/service/stone/service/IStoneScoreItemsService.java
+5
-0
IStoneScoreLogsService.java
...quidnet/service/stone/service/IStoneScoreLogsService.java
+59
-0
StoneLogsListVo.java
.../java/com/liquidnet/service/stone/vo/StoneLogsListVo.java
+59
-0
StoneScoreItemVo.java
...java/com/liquidnet/service/stone/vo/StoneScoreItemVo.java
+85
-0
StoneLogsController.java
...in/web/controller/zhengzai/stone/StoneLogsController.java
+22
-6
IScoreService.java
...et/client/admin/zhengzai/stone/service/IScoreService.java
+11
-3
StoneScoreListExportDto.java
...n/zhengzai/stone/service/dto/StoneScoreListExportDto.java
+84
-0
ScoreServiceImpl.java
...t/admin/zhengzai/stone/service/impl/ScoreServiceImpl.java
+16
-2
StoneScoreLogs.java
...va/com/liquidnet/service/stone/entity/StoneScoreLogs.java
+12
-2
StoneScoreUserMapper.java
.../liquidnet/service/stone/mapper/StoneScoreUserMapper.java
+3
-0
StoneTaskVo.java
...main/java/com/liquidnet/service/stone/vo/StoneTaskVo.java
+5
-0
StoneUserVo.java
...main/java/com/liquidnet/service/stone/vo/StoneUserVo.java
+5
-2
StoneScoreUserMapper.xml
...m/liquidnet/service/stone/mapper/StoneScoreUserMapper.xml
+25
-0
StoneItemController.java
...quidnet/service/stone/controller/StoneItemController.java
+9
-0
StoneOrderController.java
...uidnet/service/stone/controller/StoneOrderController.java
+24
-2
StoneUserController.java
...quidnet/service/stone/controller/StoneUserController.java
+65
-7
StoneScoreItemsServiceImpl.java
...ervice/stone/service/impl/StoneScoreItemsServiceImpl.java
+12
-0
StoneScoreLogsServiceImpl.java
...service/stone/service/impl/StoneScoreLogsServiceImpl.java
+188
-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 @
66f61300
...
...
@@ -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/IStoneScoreItemsService.java
View file @
66f61300
...
...
@@ -2,7 +2,10 @@ package com.liquidnet.service.stone.service;
import
com.github.pagehelper.PageInfo
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.stone.entity.StoneScoreItems
;
import
com.liquidnet.service.stone.vo.StoneItemListVo
;
import
com.liquidnet.service.stone.vo.StoneScoreItemVo
;
import
java.util.List
;
...
...
@@ -18,4 +21,6 @@ public interface IStoneScoreItemsService {
PageInfo
<
List
<
StoneItemListVo
>>
itemList
(
Integer
page
,
Integer
size
);
ResponseDto
<
StoneScoreItemVo
>
itemDetails
(
String
itemId
);
}
liquidnet-bus-api/liquidnet-service-stone-api/src/main/java/com/liquidnet/service/stone/service/IStoneScoreLogsService.java
View file @
66f61300
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
com.liquidnet.service.stone.vo.StoneUserVo
;
import
java.util.List
;
/**
* <p>
* 积分日志表 服务类
...
...
@@ -10,4 +18,55 @@ 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
>
doTask
(
Integer
taskId
);
ResponseDto
<
StoneUserVo
>
taskDetail
();
/**
* 积分详情
* @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 @
66f61300
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-api/liquidnet-service-stone-api/src/main/java/com/liquidnet/service/stone/vo/StoneScoreItemVo.java
0 → 100644
View file @
66f61300
package
com
.
liquidnet
.
service
.
stone
.
vo
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
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
lombok.EqualsAndHashCode
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.time.LocalDateTime
;
/**
* <p>
* 积分物品表
* </p>
*
* @author liquidnet
* @since 2021-10-19
*/
@Data
@ApiModel
public
class
StoneScoreItemVo
implements
Serializable
,
Cloneable
{
private
static
final
long
serialVersionUID
=
1L
;
@ApiModelProperty
(
position
=
0
,
value
=
"积分物品id"
)
private
String
itemId
;
@ApiModelProperty
(
position
=
1
,
value
=
"积分物品名称"
)
private
String
targetTitle
;
@ApiModelProperty
(
position
=
2
,
value
=
"目标类型[1-券|1x-商品维度|2x-演出维度]"
)
private
Integer
type
;
@ApiModelProperty
(
position
=
3
,
value
=
"展示图"
)
private
String
img
;
@ApiModelProperty
(
position
=
4
,
value
=
"所需积分"
)
private
Integer
score
;
@ApiModelProperty
(
position
=
5
,
value
=
"所需金额"
)
private
BigDecimal
price
;
@ApiModelProperty
(
position
=
6
,
value
=
"限购数量[0-不限]"
)
private
Integer
limitCount
;
@ApiModelProperty
(
position
=
7
,
value
=
"商品详情"
)
private
String
details
;
@ApiModelProperty
(
position
=
8
,
value
=
"注意事项"
)
private
String
notice
;
@ApiModelProperty
(
position
=
9
,
value
=
"状态[-999-全部|-1-删除|0-未上架|1-已上架|2-定时上架|7-已下架|8-售罄]"
)
private
Integer
status
;
private
static
final
StoneScoreItemVo
obj
=
new
StoneScoreItemVo
();
public
static
StoneScoreItemVo
getNew
()
{
try
{
return
(
StoneScoreItemVo
)
obj
.
clone
();
}
catch
(
CloneNotSupportedException
e
)
{
return
new
StoneScoreItemVo
();
}
}
public
StoneScoreItemVo
copy
(
StoneScoreItems
source
)
{
if
(
null
==
source
)
return
this
;
this
.
setItemId
(
source
.
getItemId
());
this
.
setTargetTitle
(
source
.
getTargetTitle
());
this
.
setType
(
source
.
getType
());
this
.
setImg
(
source
.
getImg
());
this
.
setScore
(
source
.
getScore
().
intValue
());
this
.
setPrice
(
source
.
getPrice
());
this
.
setLimitCount
(
source
.
getLimitCount
());
this
.
setDetails
(
source
.
getDetails
());
this
.
setNotice
(
source
.
getNotice
());
this
.
setStatus
(
source
.
getStatus
());
return
this
;
}
}
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-web/src/main/java/com/liquidnet/client/admin/web/controller/zhengzai/stone/StoneLogsController.java
View file @
66f61300
...
...
@@ -5,8 +5,11 @@ import com.liquidnet.client.admin.common.annotation.Log;
import
com.liquidnet.client.admin.common.core.controller.BaseController
;
import
com.liquidnet.client.admin.common.core.domain.AjaxResult
;
import
com.liquidnet.client.admin.common.core.page.TableDataInfo
;
import
com.liquidnet.client.admin.common.utils.poi.ExcelUtil
;
import
com.liquidnet.client.admin.zhengzai.kylin.dto.OrderExportVo
;
import
com.liquidnet.client.admin.zhengzai.stone.service.IItemService
;
import
com.liquidnet.client.admin.zhengzai.stone.service.IScoreService
;
import
com.liquidnet.client.admin.zhengzai.stone.service.dto.StoneScoreListExportDto
;
import
com.liquidnet.client.admin.zhengzai.stone.service.vo.StoneUserScoreDetailVo
;
import
com.liquidnet.service.stone.dto.StoneScoreListDto
;
import
com.liquidnet.service.stone.entity.StoneScoreItems
;
...
...
@@ -22,6 +25,10 @@ import org.springframework.stereotype.Controller;
import
org.springframework.ui.ModelMap
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.List
;
@Api
(
tags
=
"积分明细"
)
@Controller
@RequestMapping
(
"stone/logs"
)
...
...
@@ -32,19 +39,19 @@ public class StoneLogsController extends BaseController {
private
IScoreService
iScoreService
;
@GetMapping
(
"integralStore"
)
@ApiOperation
(
value
=
"积分明细:列表View"
,
position
=
0
)
@ApiOperation
(
value
=
"积分明细:列表View"
,
position
=
0
)
public
String
integralStore
(
ModelMap
mmap
)
{
return
prefix
+
"/integralList"
;
}
@GetMapping
(
"integralStoreEdit"
)
@ApiOperation
(
value
=
"积分明细:详情View"
,
position
=
1
)
public
String
integralStoreEdit
(
ModelMap
mmap
)
{
@ApiOperation
(
value
=
"积分明细:详情View"
,
position
=
1
)
public
String
integralStoreEdit
(
ModelMap
mmap
)
{
return
prefix
+
"/integralDetail"
;
}
@Log
(
title
=
"积分明细:列表"
)
@ApiOperation
(
value
=
"积分明细:列表"
,
position
=
2
)
@ApiOperation
(
value
=
"积分明细:列表"
,
position
=
2
)
@PostMapping
(
"list"
)
@ResponseBody
public
TableDataInfo
list
(
StoneScoreListParam
listParam
)
{
...
...
@@ -58,7 +65,7 @@ public class StoneLogsController extends BaseController {
@Log
(
title
=
"积分明细:修改状态"
)
@PutMapping
(
"change/status"
)
@ApiOperation
(
value
=
"积分明细:修改状态"
,
position
=
3
)
@ApiOperation
(
value
=
"积分明细:修改状态"
,
position
=
3
)
@ResponseBody
@ApiImplicitParams
({
@ApiImplicitParam
(
type
=
"form"
,
required
=
true
,
dataType
=
"String"
,
name
=
"uid"
,
value
=
"用户id"
),
...
...
@@ -71,7 +78,7 @@ public class StoneLogsController extends BaseController {
@Log
(
title
=
"积分明细:详情"
)
@GetMapping
(
"details"
)
@ApiOperation
(
value
=
"积分明细:详情"
,
position
=
4
)
@ApiOperation
(
value
=
"积分明细:详情"
,
position
=
4
)
@ResponseBody
@ApiImplicitParams
({
@ApiImplicitParam
(
type
=
"form"
,
required
=
true
,
dataType
=
"String"
,
name
=
"uid"
,
value
=
"用户id"
),
...
...
@@ -80,4 +87,13 @@ public class StoneLogsController extends BaseController {
StoneUserScoreDetailVo
result
=
iScoreService
.
userScoreDetail
(
uid
);
return
AjaxResult
.
success
(
result
);
}
@Log
(
title
=
"积分明细:导出列表[根据uid]"
)
@PostMapping
(
"list/export"
)
@ResponseBody
public
AjaxResult
export
(
String
uidString
)
{
List
<
StoneScoreListExportDto
>
list
=
iScoreService
.
listExport
(
uidString
.
split
(
","
));
ExcelUtil
<
StoneScoreListExportDto
>
util
=
new
ExcelUtil
(
StoneScoreListExportDto
.
class
);
return
util
.
exportExcel
(
list
,
"积分导出"
);
}
}
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-zhengzai/src/main/java/com/liquidnet/client/admin/zhengzai/stone/service/IScoreService.java
View file @
66f61300
package
com
.
liquidnet
.
client
.
admin
.
zhengzai
.
stone
.
service
;
import
com.github.pagehelper.PageInfo
;
import
com.liquidnet.client.admin.zhengzai.stone.service.dto.StoneScoreListExportDto
;
import
com.liquidnet.client.admin.zhengzai.stone.service.vo.StoneUserScoreDetailVo
;
import
com.liquidnet.service.stone.dto.StoneScoreListDto
;
import
com.liquidnet.service.stone.param.StoneScoreListParam
;
import
java.util.ArrayList
;
import
java.util.List
;
public
interface
IScoreService
{
PageInfo
<
StoneScoreListDto
>
list
(
StoneScoreListParam
param
);
List
<
StoneScoreListExportDto
>
listExport
(
String
[]
uidList
);
/**
* 修改 用户积分状态
* @param uid 用户ID
* @param status 状态[-999-全部|1-正常|2-冻结]
*
* @param uid 用户ID
* @param status 状态[-999-全部|1-正常|2-冻结]
* @return
*/
String
changeStatus
(
String
uid
,
Integer
status
);
/**
* 获取 用户积分 详情
* @param uid 用户ID
*
* @param uid 用户ID
* @return
*/
StoneUserScoreDetailVo
userScoreDetail
(
String
uid
);
...
...
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-zhengzai/src/main/java/com/liquidnet/client/admin/zhengzai/stone/service/dto/StoneScoreListExportDto.java
0 → 100644
View file @
66f61300
package
com
.
liquidnet
.
client
.
admin
.
zhengzai
.
stone
.
service
.
dto
;
import
com.liquidnet.client.admin.common.annotation.Excel
;
import
com.liquidnet.client.admin.zhengzai.kylin.dto.OrderExportVo
;
import
com.liquidnet.service.kylin.dao.OrderExportDao
;
import
com.liquidnet.service.stone.dto.StoneScoreListDto
;
import
lombok.Data
;
import
java.math.BigDecimal
;
@Data
public
class
StoneScoreListExportDto
implements
Cloneable
{
/**
* 昵称
*/
@Excel
(
name
=
"昵称"
,
cellType
=
Excel
.
ColumnType
.
STRING
)
private
String
nickName
;
/**
* 头像
*/
@Excel
(
name
=
"头像"
,
cellType
=
Excel
.
ColumnType
.
STRING
)
private
String
avatar
;
/**
* 手机号
*/
@Excel
(
name
=
"手机号"
,
cellType
=
Excel
.
ColumnType
.
STRING
)
private
String
mobile
;
/**
* 用户id
*/
@Excel
(
name
=
"用户id"
,
cellType
=
Excel
.
ColumnType
.
STRING
)
private
String
uid
;
/**
* 状态[-999-全部|1-正常|2-冻结]
*/
@Excel
(
name
=
"状态[-999-全部|1-正常|2-冻结]"
,
cellType
=
Excel
.
ColumnType
.
NUMERIC
)
private
Integer
status
;
/**
* 总积分
*/
@Excel
(
name
=
"总积分"
,
cellType
=
Excel
.
ColumnType
.
NUMERIC
)
private
BigDecimal
scoreAll
;
/**
* 已用积分
*/
@Excel
(
name
=
"已用积分"
,
cellType
=
Excel
.
ColumnType
.
NUMERIC
)
private
BigDecimal
scoreUse
;
/**
* 剩余积分
*/
@Excel
(
name
=
"剩余积分"
,
cellType
=
Excel
.
ColumnType
.
NUMERIC
)
private
BigDecimal
scoreRest
;
/**
* 今日是否签到
*/
@Excel
(
name
=
"今日是否签到"
,
cellType
=
Excel
.
ColumnType
.
NUMERIC
)
private
Integer
signIn
;
private
static
final
StoneScoreListExportDto
obj
=
new
StoneScoreListExportDto
();
public
static
StoneScoreListExportDto
getNew
()
{
try
{
return
(
StoneScoreListExportDto
)
obj
.
clone
();
}
catch
(
CloneNotSupportedException
e
)
{
e
.
printStackTrace
();
}
return
new
StoneScoreListExportDto
();
}
public
StoneScoreListExportDto
copyExportVo
(
StoneScoreListDto
source
)
{
this
.
setAvatar
(
source
.
getAvatar
());
this
.
setMobile
(
source
.
getMobile
());
this
.
setNickName
(
source
.
getNickName
());
this
.
setScoreAll
(
source
.
getScoreAll
());
this
.
setScoreRest
(
source
.
getScoreRest
());
this
.
setScoreUse
(
source
.
getScoreUse
());
this
.
setSignIn
(
source
.
getSignIn
());
this
.
setUid
(
source
.
getUid
());
this
.
setStatus
(
source
.
getStatus
());
return
this
;
}
}
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-zhengzai/src/main/java/com/liquidnet/client/admin/zhengzai/stone/service/impl/ScoreServiceImpl.java
View file @
66f61300
...
...
@@ -2,11 +2,14 @@ package com.liquidnet.client.admin.zhengzai.stone.service.impl;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.github.pagehelper.PageInfo
;
import
com.liquidnet.client.admin.zhengzai.kylin.dto.OrderExportVo
;
import
com.liquidnet.client.admin.zhengzai.stone.service.IScoreService
;
import
com.liquidnet.client.admin.zhengzai.stone.service.dto.StoneScoreListExportDto
;
import
com.liquidnet.client.admin.zhengzai.stone.service.utils.StoneMongoUtils
;
import
com.liquidnet.client.admin.zhengzai.stone.service.utils.StoneRedisUtils
;
import
com.liquidnet.client.admin.zhengzai.stone.service.vo.StoneUserScoreDetailVo
;
import
com.liquidnet.commons.lang.util.IDGenerator
;
import
com.liquidnet.service.kylin.dao.OrderExportDao
;
import
com.liquidnet.service.stone.dto.StoneScoreListDto
;
import
com.liquidnet.service.stone.entity.StoneScoreLogs
;
import
com.liquidnet.service.stone.entity.StoneScoreUser
;
...
...
@@ -19,6 +22,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.stereotype.Service
;
import
java.time.LocalDateTime
;
import
java.util.ArrayList
;
import
java.util.List
;
...
...
@@ -44,6 +48,16 @@ public class ScoreServiceImpl implements IScoreService {
return
pageInfo
;
}
@Override
public
List
<
StoneScoreListExportDto
>
listExport
(
String
[]
uidList
)
{
List
<
StoneScoreListDto
>
list
=
stoneScoreUserMapper
.
listExport
(
uidList
);
List
<
StoneScoreListExportDto
>
voList
=
new
ArrayList
();
for
(
StoneScoreListDto
item
:
list
){
voList
.
add
(
StoneScoreListExportDto
.
getNew
().
copyExportVo
(
item
));
}
return
voList
;
}
@Override
public
String
changeStatus
(
String
uid
,
Integer
status
)
{
if
(!(
status
==
1
||
status
==
2
))
{
...
...
@@ -64,7 +78,7 @@ public class ScoreServiceImpl implements IScoreService {
data
.
setUpdatedAt
(
LocalDateTime
.
now
());
count
=
stoneScoreUserMapper
.
update
(
data
,
Wrappers
.
lambdaQuery
(
StoneScoreUser
.
class
).
eq
(
StoneScoreUser:
:
getUid
,
uid
));
//redis
redisUtils
.
setUserData
(
data
.
getUid
()
,
vo
);
redisUtils
.
setUserData
(
uid
,
vo
);
//mongo
mongoUtils
.
userUpdateByUid
(
vo
);
}
else
{
...
...
@@ -73,7 +87,7 @@ public class ScoreServiceImpl implements IScoreService {
data
.
setCreatedAt
(
LocalDateTime
.
now
());
count
=
stoneScoreUserMapper
.
insert
(
data
);
//redis
redisUtils
.
setUserData
(
data
.
getUid
()
,
vo
);
redisUtils
.
setUserData
(
uid
,
vo
);
//mongo
mongoUtils
.
userCreate
(
vo
);
}
...
...
liquidnet-bus-do/liquidnet-service-stone-do/src/main/java/com/liquidnet/service/stone/entity/StoneScoreLogs.java
View file @
66f61300
...
...
@@ -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/mapper/StoneScoreUserMapper.java
View file @
66f61300
...
...
@@ -4,6 +4,7 @@ import com.liquidnet.service.stone.dto.StoneScoreListDto;
import
com.liquidnet.service.stone.param.StoneScoreListParam
;
import
com.liquidnet.service.stone.entity.StoneScoreUser
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
org.apache.ibatis.annotations.Param
;
import
java.util.List
;
...
...
@@ -19,4 +20,6 @@ public interface StoneScoreUserMapper extends BaseMapper<StoneScoreUser> {
List
<
StoneScoreListDto
>
list
(
StoneScoreListParam
param
);
List
<
StoneScoreListDto
>
listExport
(
@Param
(
"uids"
)
String
[]
uids
);
}
liquidnet-bus-do/liquidnet-service-stone-do/src/main/java/com/liquidnet/service/stone/vo/StoneTaskVo.java
View file @
66f61300
...
...
@@ -38,6 +38,11 @@ public class StoneTaskVo implements Serializable,Cloneable {
*/
private
String
taskTime
;
/**
* 是否完成
*/
private
Integer
isFinish
;
private
static
final
StoneTaskVo
obj
=
new
StoneTaskVo
();
public
static
StoneTaskVo
getNew
()
{
try
{
...
...
liquidnet-bus-do/liquidnet-service-stone-do/src/main/java/com/liquidnet/service/stone/vo/StoneUserVo.java
View file @
66f61300
...
...
@@ -8,6 +8,7 @@ import lombok.EqualsAndHashCode;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.time.LocalDateTime
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
...
...
@@ -30,10 +31,10 @@ public class StoneUserVo implements Serializable, Cloneable {
private
Integer
status
;
/**
* 每日任务:签到
* 每日任务:购买演出
* 每日任务:购买商品
* 每日任务:划卡
* 每日任务:签到
* 一次性任务:关注公众号
* 一次性任务:完善信息
* 一次性任务:完善头像
...
...
@@ -50,6 +51,7 @@ public class StoneUserVo implements Serializable, Cloneable {
}
private
List
<
StoneTaskVo
>
initTask
()
{
task
=
new
ArrayList
();
String
[]
taskName
=
new
String
[]{
"签到"
,
"购买演出票务"
,
"购买商品"
,
"在场划卡10次"
,
"关注摩登天空服务号"
,
"完善个人信息"
,
"完善个人照片"
,
"打开消息通知"
,
"首次体验在场"
...
...
@@ -64,7 +66,8 @@ public class StoneUserVo implements Serializable, Cloneable {
vo
.
setTaskType
(
1
);
}
vo
.
setTaskCount
(
0
);
vo
.
setTaskTime
(
""
);
vo
.
setTaskTime
(
"2020-12-01"
);
vo
.
setIsFinish
(
0
);
task
.
add
(
vo
);
}
return
task
;
...
...
liquidnet-bus-do/liquidnet-service-stone-do/src/main/resources/com/liquidnet/service/stone/mapper/StoneScoreUserMapper.xml
View file @
66f61300
...
...
@@ -39,4 +39,29 @@
left join stone_score_logs sslog on sslog.uid = hu.uid
group by hu.uid;
</select>
<select
id=
"listExport"
parameterType=
"java.util.Map"
resultMap=
"StoneScoreListDtoResult"
>
select hu.*,
(case when score
<![CDATA[>]]>
0 then sum(score) else 0 END) as 'score_all',
(case when score
<![CDATA[<]]>
0 then sum(score) else 0 END) as 'score_use',
('score_all' - 'score_use') as 'score_rest'
from (select nickname,
mobile,
au.uid,
IFNULL(ssu.status,1) as 'status'
from adam_user as au
inner join adam_user_info aui on au.uid = aui.uid
left join stone_score_user ssu on ssu.uid = aui.uid
<where>
au.uid IN
<foreach
collection=
"uids"
item=
"uid"
index=
"index"
open=
"("
close=
")"
separator=
","
>
'${uid}'
</foreach>
</where>
) as hu
left join stone_score_logs sslog on sslog.uid = hu.uid
group by hu.uid;
</select>
</mapper>
liquidnet-bus-service/liquidnet-service-stone/liquidnet-service-stone-impl/src/main/java/com/liquidnet/service/stone/controller/StoneItemController.java
View file @
66f61300
...
...
@@ -4,6 +4,7 @@ import com.github.pagehelper.PageInfo;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.stone.service.IStoneScoreItemsService
;
import
com.liquidnet.service.stone.vo.StoneItemListVo
;
import
com.liquidnet.service.stone.vo.StoneScoreItemVo
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiResponse
;
...
...
@@ -29,4 +30,12 @@ public class StoneItemController {
public
ResponseDto
<
PageInfo
<
List
<
StoneItemListVo
>>>
itemList
(
@RequestParam
(
"page"
)
@Valid
Integer
page
)
{
return
ResponseDto
.
success
(
stoneScoreItemsService
.
itemList
(
page
,
40
));
}
@GetMapping
(
"details"
)
@ApiOperation
(
"积分商品详情"
)
@ApiResponse
(
code
=
200
,
message
=
"接口返回对象参数"
)
public
ResponseDto
<
StoneScoreItemVo
>
itemDetails
(
@RequestParam
(
"itemId"
)
@Valid
String
itemId
)
{
return
stoneScoreItemsService
.
itemDetails
(
itemId
);
}
}
liquidnet-bus-service/liquidnet-service-stone/liquidnet-service-stone-impl/src/main/java/com/liquidnet/service/stone/controller/StoneOrderController.java
View file @
66f61300
package
com
.
liquidnet
.
service
.
stone
.
controller
;
import
com.github.pagehelper.PageInfo
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.stone.vo.StoneItemListVo
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiResponse
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.bind.annotation.*
;
import
javax.validation.Valid
;
import
java.util.List
;
@Api
(
tags
=
"积分-订单相关"
)
@RestController
@RequestMapping
(
"order"
)
@Validated
public
class
StoneOrderController
{
@PostMapping
(
"pre"
)
@ApiOperation
(
"纯积分商品下单"
)
@ApiResponse
(
code
=
200
,
message
=
"接口返回对象参数"
)
public
ResponseDto
<
String
>
order
(
@RequestParam
(
"itemId"
)
@Valid
String
itemId
,
@RequestParam
(
"number"
)
@Valid
Integer
number
)
{
return
ResponseDto
.
success
();
}
@GetMapping
(
"list"
)
@ApiOperation
(
"积分订单列表"
)
@ApiResponse
(
code
=
200
,
message
=
"接口返回对象参数"
)
public
ResponseDto
<
PageInfo
<
List
<
StoneItemListVo
>>>
orderList
(
@RequestParam
(
"page"
)
@Valid
Integer
page
)
{
return
ResponseDto
.
success
();
}
}
liquidnet-bus-service/liquidnet-service-stone/liquidnet-service-stone-impl/src/main/java/com/liquidnet/service/stone/controller/StoneUserController.java
View file @
66f61300
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
com.liquidnet.service.stone.vo.StoneUserVo
;
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.RestController
;
import
org.springframework.web.bind.annotation.
*
;
import
java.util.List
;
@Api
(
tags
=
"积分-用户相关"
)
...
...
@@ -21,12 +23,68 @@ public class StoneUserController {
@Autowired
IStoneScoreUserService
stoneScoreUserService
;
@Autowired
IStoneScoreLogsService
stoneScoreLogsService
;
@GetMapping
(
"info"
)
@ApiOperation
(
"
积分商品列表
"
)
@ApiOperation
(
"
用户信息
"
)
@ApiResponse
(
code
=
200
,
message
=
"接口返回对象参数"
)
public
ResponseDto
<
StoneScoreListDto
>
stoneUserInfo
()
{
return
ResponseDto
.
success
(
stoneScoreUserService
.
stoneUserInfo
());
}
@PostMapping
(
"doTask"
)
@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
>
doTask
(
@RequestParam
(
value
=
"taskId"
,
required
=
true
)
Integer
taskId
)
{
return
stoneScoreLogsService
.
doTask
(
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
));
}
@PostMapping
(
"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
));
}
@PostMapping
(
"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
));
}
@GetMapping
(
"task/detail"
)
@ApiOperation
(
"用户任务详情"
)
@ApiResponse
(
code
=
200
,
message
=
"接口返回对象参数"
)
public
ResponseDto
<
StoneUserVo
>
taskDetail
()
{
return
stoneScoreLogsService
.
taskDetail
();
}
}
liquidnet-bus-service/liquidnet-service-stone/liquidnet-service-stone-impl/src/main/java/com/liquidnet/service/stone/service/impl/StoneScoreItemsServiceImpl.java
View file @
66f61300
package
com
.
liquidnet
.
service
.
stone
.
service
.
impl
;
import
com.github.pagehelper.PageInfo
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.base.UserPathDto
;
import
com.liquidnet.service.stone.entity.StoneScoreItems
;
import
com.liquidnet.service.stone.service.IStoneScoreItemsService
;
...
...
@@ -8,6 +9,7 @@ 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.StoneScoreItemVo
;
import
io.netty.util.internal.ObjectUtil
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -66,4 +68,14 @@ public class StoneScoreItemsServiceImpl implements IStoneScoreItemsService {
log
.
info
(
UserPathDto
.
setData
(
"积分商品列表"
,
""
,
voList
));
return
mPageInfo
;
}
@Override
public
ResponseDto
<
StoneScoreItemVo
>
itemDetails
(
String
itemId
)
{
StoneScoreItems
data
=
redisUtils
.
getItemData
(
itemId
);
if
(
redisUtils
.
getStoneGeneralSurplus
(
itemId
)<=
0
){
data
.
setStatus
(
8
);
}
StoneScoreItemVo
vo
=
StoneScoreItemVo
.
getNew
().
copy
(
data
);
return
ResponseDto
.
success
(
vo
);
}
}
liquidnet-bus-service/liquidnet-service-stone/liquidnet-service-stone-impl/src/main/java/com/liquidnet/service/stone/service/impl/StoneScoreLogsServiceImpl.java
View file @
66f61300
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,171 @@ 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
>
doTask
(
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
(
2
)
&&
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
ResponseDto
<
StoneUserVo
>
taskDetail
()
{
String
uid
=
CurrentUtil
.
getCurrentUid
();
StoneUserVo
vo
=
stoneRedisUtils
.
getUserData
(
uid
);
List
<
StoneTaskVo
>
taskList
=
vo
.
getTask
();
for
(
int
i
=
0
;
i
<
taskList
.
size
();
i
++)
{
StoneTaskVo
item
=
taskList
.
get
(
i
);
if
(
item
.
getTaskType
().
equals
(
1
)
&&
item
.
getTaskTime
().
equals
(
DateUtil
.
getNowTime
(
DateUtil
.
DATE_SMALL_STR
)))
{
item
.
setIsFinish
(
1
);
}
else
if
(
item
.
getTaskType
().
equals
(
2
)
&&
item
.
getTaskCount
()
>=
1
)
{
item
.
setIsFinish
(
1
);
}
else
{
item
.
setIsFinish
(
0
);
}
taskList
.
set
(
i
,
item
);
}
vo
.
setTask
(
taskList
);
return
ResponseDto
.
success
(
vo
);
}
@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 @
66f61300
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 @
66f61300
...
...
@@ -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 @
66f61300
...
...
@@ -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