记得上下班打卡 | 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
52f00ce0
Commit
52f00ce0
authored
Jun 15, 2021
by
张国柄
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix.lock for member no;
parent
d2b3306c
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
54 additions
and
38 deletions
+54
-38
IAdamRdmService.java
...a/com/liquidnet/service/adam/service/IAdamRdmService.java
+3
-3
pom.xml
...iquidnet-service-adam/liquidnet-service-adam-impl/pom.xml
+16
-2
AdamRedisConst.java
...a/com/liquidnet/service/adam/constant/AdamRedisConst.java
+1
-1
AdamRdmServiceImpl.java
...quidnet/service/adam/service/impl/AdamRdmServiceImpl.java
+7
-6
AdamUserMemberServiceImpl.java
.../service/adam/service/impl/AdamUserMemberServiceImpl.java
+26
-18
pom.xml
liquidnet-bus-service/liquidnet-service-adam/pom.xml
+1
-8
No files found.
liquidnet-bus-api/liquidnet-service-adam-api/src/main/java/com/liquidnet/service/adam/service/IAdamRdmService.java
View file @
52f00ce0
...
@@ -84,11 +84,11 @@ public interface IAdamRdmService {
...
@@ -84,11 +84,11 @@ public interface IAdamRdmService {
void
delShotMemberOrderVoByOrderNo
(
String
uid
,
String
orderNo
);
void
delShotMemberOrderVoByOrderNo
(
String
uid
,
String
orderNo
);
boolean
setM
emberNoByMemberId
(
String
memberId
,
long
val
);
boolean
setM
axMemberNo
(
int
val
);
long
incrMemberNoByMemberId
(
String
memberId
);
int
incrMemberNo
(
);
Object
getMemberMaxNoByMemberId
(
String
memberId
);
int
getMaxMemberNo
(
);
boolean
setMemberCodeVoByCode
(
String
memberCode
,
AdamMemberCodeVo
vo
);
boolean
setMemberCodeVoByCode
(
String
memberCode
,
AdamMemberCodeVo
vo
);
...
...
liquidnet-bus-service/liquidnet-service-adam/liquidnet-service-adam-impl/pom.xml
View file @
52f00ce0
...
@@ -17,7 +17,15 @@
...
@@ -17,7 +17,15 @@
<dependencies>
<dependencies>
<dependency>
<dependency>
<groupId>
com.liquidnet
</groupId>
<groupId>
com.liquidnet
</groupId>
<artifactId>
liquidnet-service-adam-api
</artifactId>
<artifactId>
liquidnet-common-swagger
</artifactId>
</dependency>
<dependency>
<groupId>
com.liquidnet
</groupId>
<artifactId>
liquidnet-common-web
</artifactId>
</dependency>
<dependency>
<groupId>
com.liquidnet
</groupId>
<artifactId>
liquidnet-common-mq
</artifactId>
<version>
1.0-SNAPSHOT
</version>
<version>
1.0-SNAPSHOT
</version>
</dependency>
</dependency>
<dependency>
<dependency>
...
@@ -27,10 +35,16 @@
...
@@ -27,10 +35,16 @@
</dependency>
</dependency>
<dependency>
<dependency>
<groupId>
com.liquidnet
</groupId>
<groupId>
com.liquidnet
</groupId>
<artifactId>
liquidnet-common-
mq
</artifactId>
<artifactId>
liquidnet-common-
cache-redisson
</artifactId>
<version>
1.0-SNAPSHOT
</version>
<version>
1.0-SNAPSHOT
</version>
</dependency>
</dependency>
<dependency>
<groupId>
com.liquidnet
</groupId>
<artifactId>
liquidnet-service-adam-api
</artifactId>
<version>
1.0-SNAPSHOT
</version>
</dependency>
<dependency>
<dependency>
<groupId>
com.liquidnet
</groupId>
<groupId>
com.liquidnet
</groupId>
<artifactId>
liquidnet-api-feign-kylin
</artifactId>
<artifactId>
liquidnet-api-feign-kylin
</artifactId>
...
...
liquidnet-bus-service/liquidnet-service-adam/liquidnet-service-adam-impl/src/main/java/com/liquidnet/service/adam/constant/AdamRedisConst.java
View file @
52f00ce0
...
@@ -34,7 +34,7 @@ public class AdamRedisConst {
...
@@ -34,7 +34,7 @@ public class AdamRedisConst {
public
static
final
String
INCR
=
ADAM
.
concat
(
"incr:"
);
public
static
final
String
INCR
=
ADAM
.
concat
(
"incr:"
);
public
static
final
String
INCR_MEMBER_NO
=
INCR
.
concat
(
"
:member_no:
"
);
public
static
final
String
INCR_MEMBER_NO
=
INCR
.
concat
(
"
member_no
"
);
public
static
final
String
INFO_MEMBERS
=
ADAM
.
concat
(
":list:members"
);
public
static
final
String
INFO_MEMBERS
=
ADAM
.
concat
(
":list:members"
);
public
static
final
String
INFO_MEMBERS_INFO
=
ADAM
.
concat
(
":list:members:info:"
);
public
static
final
String
INFO_MEMBERS_INFO
=
ADAM
.
concat
(
":list:members:info:"
);
...
...
liquidnet-bus-service/liquidnet-service-adam/liquidnet-service-adam-impl/src/main/java/com/liquidnet/service/adam/service/impl/AdamRdmServiceImpl.java
View file @
52f00ce0
...
@@ -370,18 +370,19 @@ public class AdamRdmServiceImpl implements IAdamRdmService {
...
@@ -370,18 +370,19 @@ public class AdamRdmServiceImpl implements IAdamRdmService {
}
}
@Override
@Override
public
boolean
setM
emberNoByMemberId
(
String
memberId
,
long
val
)
{
public
boolean
setM
axMemberNo
(
int
val
)
{
return
redisUtil
.
set
(
AdamRedisConst
.
INCR_MEMBER_NO
.
concat
(
memberId
)
,
val
);
return
redisUtil
.
set
(
AdamRedisConst
.
INCR_MEMBER_NO
,
val
);
}
}
@Override
@Override
public
long
incrMemberNoByMemberId
(
String
memberId
)
{
public
int
incrMemberNo
(
)
{
return
redisUtil
.
incr
(
AdamRedisConst
.
INCR_MEMBER_NO
.
concat
(
memberId
)
,
1
);
return
(
int
)
redisUtil
.
incr
(
AdamRedisConst
.
INCR_MEMBER_NO
,
1
);
}
}
@Override
@Override
public
Object
getMemberMaxNoByMemberId
(
String
memberId
)
{
public
int
getMaxMemberNo
()
{
return
redisUtil
.
get
(
AdamRedisConst
.
INCR_MEMBER_NO
.
concat
(
memberId
));
Object
o
=
redisUtil
.
get
(
AdamRedisConst
.
INCR_MEMBER_NO
);
return
null
==
o
?
-
1
:
(
int
)
o
;
}
}
@Override
@Override
...
...
liquidnet-bus-service/liquidnet-service-adam/liquidnet-service-adam-impl/src/main/java/com/liquidnet/service/adam/service/impl/AdamUserMemberServiceImpl.java
View file @
52f00ce0
package
com
.
liquidnet
.
service
.
adam
.
service
.
impl
;
package
com
.
liquidnet
.
service
.
adam
.
service
.
impl
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.liquidnet.common.cache.redisson.util.RedisLockUtil
;
import
com.liquidnet.service.adam.constant.AdamRedisConst
;
import
com.liquidnet.service.adam.dto.vo.AdamMemberVo
;
import
com.liquidnet.service.adam.dto.vo.AdamMemberVo
;
import
com.liquidnet.service.adam.dto.vo.AdamUserMemberVo
;
import
com.liquidnet.service.adam.dto.vo.AdamUserMemberVo
;
import
com.liquidnet.service.adam.entity.AdamUserMember
;
import
com.liquidnet.service.adam.entity.AdamUserMember
;
...
@@ -25,32 +27,38 @@ public class AdamUserMemberServiceImpl extends ServiceImpl<AdamUserMemberMapper,
...
@@ -25,32 +27,38 @@ public class AdamUserMemberServiceImpl extends ServiceImpl<AdamUserMemberMapper,
@Autowired
@Autowired
IAdamRdmService
adamRdmService
;
IAdamRdmService
adamRdmService
;
private
static
final
String
LOCK_KEY_UMEMBER_NO
=
"adam:lk:member_no"
;
@Override
@Override
public
String
getNextMemberNo
(
String
memberId
)
{
public
String
getNextMemberNo
(
String
memberId
)
{
Object
memberMaxNoByMemberId
=
adamRdmService
.
getMemberMaxNoByMemberId
(
memberId
);
int
memberMaxNo
=
adamRdmService
.
getMaxMemberNo
();
if
(
null
==
memberMaxNoByMemberId
)
{
if
(-
1
==
memberMaxNo
)
{
// TODO: 2021/6/8 +锁:查取MONGO当前最大会员号
if
(
RedisLockUtil
.
tryLock
(
LOCK_KEY_UMEMBER_NO
,
1
,
3000
))
{
memberMaxNo
=
adamRdmService
.
getMaxMemberNo
();
Query
query
=
Query
.
query
(
Criteria
.
where
(
"memberId"
).
is
(
memberId
)).
with
(
Sort
.
by
(
Sort
.
Direction
.
DESC
,
"memberNo"
)).
limit
(
1
);
if
(-
1
==
memberMaxNo
)
{
Query
query
=
Query
.
query
(
Criteria
.
where
(
"memberId"
).
is
(
memberId
)).
with
(
Sort
.
by
(
Sort
.
Direction
.
DESC
,
"memberNo"
)).
limit
(
1
);
AdamUserMemberVo
latestMaxMemberNoVo
=
mongoTemplate
.
findOne
(
query
,
AdamUserMemberVo
.
class
,
AdamUserMemberVo
.
class
.
getSimpleName
());
AdamUserMemberVo
latestMaxMemberNoVo
=
mongoTemplate
.
findOne
(
query
,
AdamUserMemberVo
.
class
,
AdamUserMemberVo
.
class
.
getSimpleName
());
if
(
null
==
latestMaxMemberNoVo
)
{
if
(
null
==
latestMaxMemberNoVo
)
{
AdamMemberVo
memberVo
=
adamRdmService
.
getMemberVoByMemberId
(
memberId
);
AdamMemberVo
memberVo
=
adamRdmService
.
getMemberVoByMemberId
(
memberId
);
adamRdmService
.
setMemberNoByMemberId
(
memberId
,
memberVo
.
getStartNo
());
adamRdmService
.
setMaxMemberNo
(
memberVo
.
getStartNo
());
}
else
{
adamRdmService
.
setMaxMemberNo
(
Integer
.
parseInt
(
latestMaxMemberNoVo
.
getMemberNo
()));
}
}
RedisLockUtil
.
unlock
(
LOCK_KEY_UMEMBER_NO
);
}
else
{
}
else
{
adamRdmService
.
setMemberNoByMemberId
(
memberId
,
Long
.
parseLong
(
latestMaxMemberNoVo
.
getMemberNo
()))
;
return
null
;
}
}
return
String
.
valueOf
(
adamRdmService
.
incrMemberNoByMemberId
(
memberId
));
}
else
{
String
nextMemberNoStr
=
String
.
valueOf
(
adamRdmService
.
incrMemberNoByMemberId
(
memberId
));
if
(
Pattern
.
matches
(
"([\\d])\\1{"
+
(
nextMemberNoStr
.
length
()
-
1
)
+
"}"
,
nextMemberNoStr
))
{
// 不能是完全相同的数字
nextMemberNoStr
=
String
.
valueOf
(
adamRdmService
.
incrMemberNoByMemberId
(
memberId
));
}
return
nextMemberNoStr
;
}
}
String
nextMemberNoStr
=
String
.
valueOf
(
adamRdmService
.
incrMemberNo
());
if
(
Pattern
.
matches
(
"([\\d])\\1{"
+
(
nextMemberNoStr
.
length
()
-
1
)
+
"}"
,
nextMemberNoStr
))
{
// 不能是完全相同的数字
nextMemberNoStr
=
String
.
valueOf
(
adamRdmService
.
incrMemberNo
());
}
return
nextMemberNoStr
;
}
}
// @Override
// @Override
...
...
liquidnet-bus-service/liquidnet-service-adam/pom.xml
View file @
52f00ce0
...
@@ -17,14 +17,7 @@
...
@@ -17,14 +17,7 @@
</modules>
</modules>
<dependencies>
<dependencies>
<dependency>
<groupId>
com.liquidnet
</groupId>
<artifactId>
liquidnet-common-swagger
</artifactId>
</dependency>
<dependency>
<groupId>
com.liquidnet
</groupId>
<artifactId>
liquidnet-common-web
</artifactId>
</dependency>
</dependencies>
</dependencies>
...
...
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