记得上下班打卡 | 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
ff0327fb
Commit
ff0327fb
authored
Feb 15, 2022
by
张国柄
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
~API:POS机、专业版:扫码记录;
parent
aa279494
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
141 additions
and
64 deletions
+141
-64
AdamRedisConst.java
...a/com/liquidnet/service/adam/constant/AdamRedisConst.java
+3
-0
PlatformAdamPosController.java
...e/platform/controller/adam/PlatformAdamPosController.java
+2
-2
PlatformAdamProController.java
...e/platform/controller/adam/PlatformAdamProController.java
+1
-1
PlatformAdamUserPosService.java
...latform/service/impl/adam/PlatformAdamUserPosService.java
+38
-46
PlatformAdamUserProService.java
...latform/service/impl/adam/PlatformAdamUserProService.java
+97
-15
No files found.
liquidnet-bus-api/liquidnet-service-adam-api/src/main/java/com/liquidnet/service/adam/constant/AdamRedisConst.java
View file @
ff0327fb
...
...
@@ -59,6 +59,9 @@ public class AdamRedisConst {
public
static
final
String
SERIAL_NUMBER_MEMBER
=
PREFIX
.
concat
(
"serial_no:"
);
// 专业版用户指定演出扫码记录KEY
public
static
final
String
CACHE_USER_PERFORMANCE_MARK
=
PREFIX
.
concat
(
"c_u_p_m:"
);
/* ----------------------------------------------------------------- */
// public static final String LOCK_KEY_UMEMBER_NO = "adam:lk:member:no";
...
...
liquidnet-bus-service/liquidnet-service-platform/liquidnet-service-platform-impl/src/main/java/com/liquidnet/service/platform/controller/adam/PlatformAdamPosController.java
View file @
ff0327fb
...
...
@@ -28,12 +28,12 @@ public class PlatformAdamPosController {
PlatformAdamUserPosService
platformAdamUserPosService
;
@ApiOperationSupport
(
order
=
1
)
@ApiOperation
(
value
=
"扫一扫"
)
@ApiOperation
(
value
=
"
POS
扫一扫"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
type
=
"form"
,
required
=
true
,
dataType
=
"String"
,
name
=
"code"
,
value
=
"用户QRCODE"
),
})
@GetMapping
(
value
=
{
"scanit"
})
public
ResponseDto
<
AdamPosScanitVo
>
scanit
(
@NotBlank
(
message
=
"参数有误"
)
@RequestParam
String
code
)
{
return
ResponseDto
.
success
(
platformAdamUserPosService
.
scanitProcess
(
code
)
.
desensitize
()
);
return
ResponseDto
.
success
(
platformAdamUserPosService
.
scanitProcess
(
code
));
}
}
liquidnet-bus-service/liquidnet-service-platform/liquidnet-service-platform-impl/src/main/java/com/liquidnet/service/platform/controller/adam/PlatformAdamProController.java
View file @
ff0327fb
...
...
@@ -26,7 +26,7 @@ public class PlatformAdamProController {
PlatformAdamUserProService
platformAdamUserProService
;
@ApiOperationSupport
(
order
=
1
)
@ApiOperation
(
value
=
"扫一扫"
)
@ApiOperation
(
value
=
"
PRO
扫一扫"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
type
=
"form"
,
required
=
true
,
dataType
=
"String"
,
name
=
"pidco"
,
value
=
"格式[用户QRCODE@演出ID]"
),
@ApiImplicitParam
(
type
=
"form"
,
required
=
true
,
dataType
=
"String"
,
name
=
"pname"
,
value
=
"演出名称"
),
...
...
liquidnet-bus-service/liquidnet-service-platform/liquidnet-service-platform-impl/src/main/java/com/liquidnet/service/platform/service/impl/adam/PlatformAdamUserPosService.java
View file @
ff0327fb
...
...
@@ -3,76 +3,68 @@ package com.liquidnet.service.platform.service.impl.adam;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.liquidnet.common.cache.redis.util.AbstractRedisUtil
;
import
com.liquidnet.common.cache.redis.util.RedisDataSourceUtil
;
import
com.liquidnet.
commons.lang.util.DateUtil
;
import
com.liquidnet.
service.adam.constant.AdamRedisConst
;
import
com.liquidnet.service.adam.dto.vo.AdamPosScanitVo
;
import
com.liquidnet.service.adam.dto.vo.AdamProPerformMarkVo
;
import
com.liquidnet.service.adam.dto.vo.AdamProScanitVo
;
import
com.liquidnet.service.adam.dto.vo.AdamUserInfoVo
;
import
com.liquidnet.service.adam.dto.vo.AdamUserMemberVo
;
import
com.liquidnet.service.adam.entity.AdamUser
;
import
com.liquidnet.service.adam.entity.AdamUserInfo
;
import
com.liquidnet.service.adam.entity.AdamUserMember
;
import
com.liquidnet.service.adam.mapper.AdamUserInfoMapper
;
import
com.liquidnet.service.adam.mapper.AdamUserMapper
;
import
com.liquidnet.service.adam.mapper.AdamUserMemberMapper
;
import
com.liquidnet.service.platform.utils.ObjectUtil
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.time.LocalDate
;
import
java.time.LocalDateTime
;
import
java.util.ArrayList
;
@Service
public
class
PlatformAdamUserPosService
extends
ServiceImpl
<
AdamUserInfoMapper
,
AdamUserInfo
>
{
@Autowired
private
RedisDataSourceUtil
redisDataSourceUtil
;
@Autowired
private
AdamUserMemberMapper
adamUserMemberMapper
;
@Autowired
private
AdamUserMapper
adamUserMapper
;
//
@Autowired
//
private AdamUserMemberMapper adamUserMemberMapper;
//
@Autowired
//
private AdamUserMapper adamUserMapper;
public
AdamPosScanitVo
scanitProcess
(
String
code
)
{
LambdaQueryWrapper
<
AdamUserInfo
>
userInfoLambdaQueryWrapper
=
Wrappers
.
lambdaQuery
(
AdamUserInfo
.
class
);
userInfoLambdaQueryWrapper
.
eq
(
AdamUserInfo:
:
getQrCode
,
code
);
userInfoLambdaQueryWrapper
.
select
(
AdamUserInfo:
:
getUid
,
AdamUserInfo:
:
getNickname
);
userInfoLambdaQueryWrapper
.
select
(
AdamUserInfo:
:
getUid
);
AdamUserInfo
userInfo
=
this
.
getOne
(
userInfoLambdaQueryWrapper
);
AdamPosScanitVo
scanitVo
=
AdamPosScanitVo
.
getNew
();
if
(
null
!=
userInfo
)
{
LambdaQueryWrapper
<
AdamUser
>
adamUserLambdaQueryWrapper
=
Wrappers
.
lambdaQuery
(
AdamUser
.
class
);
adamUserLambdaQueryWrapper
.
eq
(
AdamUser:
:
getUid
,
userInfo
.
getUid
());
adamUserLambdaQueryWrapper
.
eq
(
AdamUser:
:
getState
,
1
);
// LambdaQueryWrapper<AdamUser> adamUserLambdaQueryWrapper = Wrappers.lambdaQuery(AdamUser.class);
// adamUserLambdaQueryWrapper.eq(AdamUser::getUid, userInfo.getUid());
// adamUserLambdaQueryWrapper.eq(AdamUser::getState, 1);
// adamUserLambdaQueryWrapper.select(AdamUser::getUid, AdamUser::getMobile);
// AdamUser user = adamUserMapper.selectOne(adamUserLambdaQueryWrapper);
AbstractRedisUtil
redisAdamUtil
=
redisDataSourceUtil
.
getRedisAdamUtil
();
AdamUserInfoVo
userInfoVo
=
(
AdamUserInfoVo
)
redisAdamUtil
.
get
(
AdamRedisConst
.
INFO_USER
.
concat
(
userInfo
.
getUid
()));
if
(
null
!=
userInfoVo
)
{
scanitVo
.
setNickname
(
userInfoVo
.
getNickname
());
scanitVo
.
setMobile
(
userInfoVo
.
getMobile
());
scanitVo
.
setUid
(
userInfoVo
.
getUid
());
adamUserLambdaQueryWrapper
.
select
(
AdamUser:
:
getUid
,
AdamUser:
:
getMobile
);
AdamUser
user
=
adamUserMapper
.
selectOne
(
adamUserLambdaQueryWrapper
);
scanitVo
.
setNickname
(
userInfo
.
getNickname
());
scanitVo
.
setMobile
(
user
.
getMobile
());
scanitVo
.
setUid
(
user
.
getUid
());
LambdaQueryWrapper
<
AdamUserMember
>
userMemberLambdaQueryWrapper
=
Wrappers
.
lambdaQuery
(
AdamUserMember
.
class
);
userMemberLambdaQueryWrapper
.
eq
(
AdamUserMember:
:
getUid
,
userInfo
.
getUid
());
userMemberLambdaQueryWrapper
.
eq
(
AdamUserMember:
:
getState
,
1
);
userMemberLambdaQueryWrapper
.
select
(
AdamUserMember:
:
getUid
,
AdamUserMember:
:
getState
,
AdamUserMember:
:
getExpiryAt
,
AdamUserMember:
:
getCreatedAt
,
AdamUserMember:
:
getUpdatedAt
);
AdamUserMember
userMember
=
adamUserMemberMapper
.
selectOne
(
userMemberLambdaQueryWrapper
);
if
(
null
==
userMember
)
{
scanitVo
.
setStageMarker
(
0
);
}
else
{
AdamUserMemberVo
userMemberVo
=
AdamUserMemberVo
.
getNew
().
copy
(
userMember
);
if
(
userMemberVo
.
isActive
())
{
scanitVo
.
setStageMarker
(
userMemberVo
.
isOldMember
()
?
10
:
11
);
// LambdaQueryWrapper<AdamUserMember> userMemberLambdaQueryWrapper = Wrappers.lambdaQuery(AdamUserMember.class);
// userMemberLambdaQueryWrapper.eq(AdamUserMember::getUid, userInfo.getUid());
// userMemberLambdaQueryWrapper.eq(AdamUserMember::getState, 1);
// userMemberLambdaQueryWrapper.select(AdamUserMember::getUid,
// AdamUserMember::getState,
// AdamUserMember::getExpiryAt,
// AdamUserMember::getCreatedAt,
// AdamUserMember::getUpdatedAt
// );
// AdamUserMember userMember = adamUserMemberMapper.selectOne(userMemberLambdaQueryWrapper);
AdamUserMemberVo
userMemberVo
=
(
AdamUserMemberVo
)
redisAdamUtil
.
get
(
AdamRedisConst
.
INFO_USER_MEMBER
.
concat
(
userInfo
.
getUid
()));
if
(
null
==
userMemberVo
)
{
scanitVo
.
setStageMarker
(
0
);
}
else
{
scanitVo
.
setStageMarker
(
2
);
if
(
userMemberVo
.
isActive
())
{
scanitVo
.
setStageMarker
(
userMemberVo
.
isOldMember
()
?
10
:
11
);
}
else
{
scanitVo
.
setStageMarker
(
2
);
}
}
}
}
return
scanitVo
;
...
...
liquidnet-bus-service/liquidnet-service-platform/liquidnet-service-platform-impl/src/main/java/com/liquidnet/service/platform/service/impl/adam/PlatformAdamUserProService.java
View file @
ff0327fb
package
com
.
liquidnet
.
service
.
platform
.
service
.
impl
.
adam
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.fasterxml.jackson.core.type.TypeReference
;
import
com.liquidnet.common.cache.redis.util.AbstractRedisUtil
;
import
com.liquidnet.common.cache.redis.util.RedisDataSourceUtil
;
import
com.liquidnet.commons.lang.util.DateUtil
;
import
com.liquidnet.commons.lang.util.JsonUtils
;
import
com.liquidnet.service.adam.constant.AdamRedisConst
;
import
com.liquidnet.service.adam.dto.vo.AdamProPerformMarkVo
;
import
com.liquidnet.service.adam.dto.vo.AdamProScanitVo
;
import
com.liquidnet.service.adam.entity.AdamUser
;
import
com.liquidnet.service.adam.dto.vo.AdamUserInfoVo
;
import
com.liquidnet.service.adam.dto.vo.AdamUserMemberVo
;
import
com.liquidnet.service.adam.entity.AdamUserInfo
;
import
com.liquidnet.service.adam.mapper.AdamUserInfoMapper
;
import
com.liquidnet.service.adam.mapper.AdamUserMapper
;
import
com.liquidnet.service.kylin.constant.KylinRedisConst
;
import
com.liquidnet.service.platform.utils.ObjectUtil
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.CollectionUtils
;
import
java.time.LocalDate
;
import
java.util.ArrayList
;
import
java.time.LocalDateTime
;
import
java.util.*
;
@Service
public
class
PlatformAdamUserProService
extends
ServiceImpl
<
AdamUser
Mapper
,
AdamUser
>
{
public
class
PlatformAdamUserProService
extends
ServiceImpl
<
AdamUser
InfoMapper
,
AdamUserInfo
>
{
@Autowired
private
RedisDataSourceUtil
redisDataSourceUtil
;
@Autowired
private
AdamUserMapper
adamUserMapper
;
public
AdamProScanitVo
scanitProcess
(
String
pid
,
String
pna
,
String
cod
)
{
LambdaQueryWrapper
<
AdamUserInfo
>
userInfoLambdaQueryWrapper
=
Wrappers
.
lambdaQuery
(
AdamUserInfo
.
class
);
userInfoLambdaQueryWrapper
.
eq
(
AdamUserInfo:
:
getQrCode
,
cod
);
userInfoLambdaQueryWrapper
.
select
(
AdamUserInfo:
:
getUid
);
AdamUserInfo
userInfo
=
this
.
getOne
(
userInfoLambdaQueryWrapper
);
AdamProScanitVo
scanitVo
=
AdamProScanitVo
.
getNew
();
scanitVo
.
setNickname
(
"nk"
);
scanitVo
.
setMobile
(
"13700000000"
);
scanitVo
.
setStageMarker
(
11
);
ArrayList
<
AdamProPerformMarkVo
>
performMarkVoArrayList
=
ObjectUtil
.
getAdamProPerformMarkVoArrayList
();
AdamProPerformMarkVo
performMarkVo
=
AdamProPerformMarkVo
.
getNew
();
performMarkVo
.
setPid
(
"1"
);
performMarkVo
.
setPname
(
"aname"
);
performMarkVo
.
setTime
(
DateUtil
.
Formatter
.
yyyy_MM_dd
.
format
(
LocalDate
.
now
()));
performMarkVo
.
setCount
(
1
);
performMarkVoArrayList
.
add
(
performMarkVo
);
scanitVo
.
setPerformMarkVos
(
performMarkVoArrayList
);
if
(
null
!=
userInfo
)
{
String
uid
=
userInfo
.
getUid
();
AbstractRedisUtil
redisAdamUtil
=
redisDataSourceUtil
.
getRedisAdamUtil
();
AdamUserInfoVo
userInfoVo
=
(
AdamUserInfoVo
)
redisAdamUtil
.
get
(
AdamRedisConst
.
INFO_USER
.
concat
(
uid
));
if
(
null
!=
userInfoVo
)
{
scanitVo
.
setNickname
(
userInfoVo
.
getNickname
());
scanitVo
.
setMobile
(
userInfoVo
.
getMobile
());
AdamUserMemberVo
userMemberVo
=
(
AdamUserMemberVo
)
redisAdamUtil
.
get
(
AdamRedisConst
.
INFO_USER_MEMBER
.
concat
(
uid
));
if
(
null
==
userMemberVo
)
{
scanitVo
.
setStageMarker
(
0
);
}
else
{
if
(
userMemberVo
.
isActive
())
{
scanitVo
.
setStageMarker
(
userMemberVo
.
isOldMember
()
?
10
:
11
);
}
else
{
scanitVo
.
setStageMarker
(
2
);
}
}
this
.
performanceMarkProcessing
(
scanitVo
,
uid
,
pid
,
pna
);
}
}
return
scanitVo
;
}
private
void
performanceMarkProcessing
(
AdamProScanitVo
scanitVo
,
String
uid
,
String
pid
,
String
pname
)
{
AbstractRedisUtil
redisAdamUtil
=
redisDataSourceUtil
.
getRedisAdamUtil
();
LocalDateTime
now
=
LocalDateTime
.
now
();
String
rk
=
AdamRedisConst
.
CACHE_USER_PERFORMANCE_MARK
.
concat
(
uid
);
String
rkv
=
(
String
)
redisAdamUtil
.
get
(
rk
);
List
<
AdamProPerformMarkVo
>
performMarkVos
=
JsonUtils
.
fromJson
(
rkv
,
new
TypeReference
<
List
<
AdamProPerformMarkVo
>>()
{});
if
(!
CollectionUtils
.
isEmpty
(
performMarkVos
))
{
Optional
<
AdamProPerformMarkVo
>
optional
=
performMarkVos
.
stream
().
filter
(
vo
->
vo
.
getPid
().
equals
(
pid
)).
findAny
();
if
(
optional
.
isPresent
())
{
AdamProPerformMarkVo
proPerformMarkVo
=
optional
.
get
();
performMarkVos
.
remove
(
proPerformMarkVo
);
proPerformMarkVo
.
setTime
(
DateUtil
.
Formatter
.
yyyyMMddHHmmss
.
format
(
now
));
proPerformMarkVo
.
setCount
(
proPerformMarkVo
.
getCount
()
+
1
);
performMarkVos
.
add
(
proPerformMarkVo
);
}
else
{
AdamProPerformMarkVo
proPerformMarkVo
=
AdamProPerformMarkVo
.
getNew
();
proPerformMarkVo
.
setPid
(
pid
);
proPerformMarkVo
.
setPname
(
pname
);
proPerformMarkVo
.
setTime
(
DateUtil
.
Formatter
.
yyyyMMddHHmmss
.
format
(
now
));
proPerformMarkVo
.
setCount
(
1
);
performMarkVos
.
add
(
proPerformMarkVo
);
}
performMarkVos
.
sort
(
Comparator
.
comparing
(
AdamProPerformMarkVo:
:
getTime
).
reversed
());
Iterator
<
AdamProPerformMarkVo
>
iterator
=
performMarkVos
.
iterator
();
while
(
iterator
.
hasNext
())
{
AdamProPerformMarkVo
next
=
iterator
.
next
();
LocalDateTime
time
=
DateUtil
.
Formatter
.
yyyyMMddHHmmss
.
parse
(
next
.
getTime
());
if
(
null
==
time
||
time
.
plusDays
(
7
).
isBefore
(
now
))
{
iterator
.
remove
();
}
}
}
else
{
performMarkVos
=
ObjectUtil
.
getAdamProPerformMarkVoArrayList
();
AdamProPerformMarkVo
performMarkVo
=
AdamProPerformMarkVo
.
getNew
();
performMarkVo
.
setPid
(
pid
);
performMarkVo
.
setPname
(
pname
);
performMarkVo
.
setTime
(
DateUtil
.
Formatter
.
yyyyMMddHHmmss
.
format
(
now
));
performMarkVo
.
setCount
(
1
);
performMarkVos
.
add
(
performMarkVo
);
}
redisAdamUtil
.
set
(
rk
,
JsonUtils
.
toJson
(
performMarkVos
),
864000
);
// 缓存时效10天
scanitVo
.
setPerformMarkVos
(
performMarkVos
);
}
}
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