Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
G
gic-store
Overview
Overview
Details
Activity
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
base_platform_enterprise
gic-store
Commits
93b00bfc
Commit
93b00bfc
authored
Aug 20, 2020
by
zhiwj
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改导购同步店长并发问题
parent
661448ad
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
21 additions
and
13 deletions
+21
-13
ClerkDTO.java
gic-store-api/src/main/java/com/gic/store/dto/ClerkDTO.java
+2
-2
ClerkApiServiceImpl.java
...com/gic/store/service/outer/impl/ClerkApiServiceImpl.java
+19
-11
No files found.
gic-store-api/src/main/java/com/gic/store/dto/ClerkDTO.java
View file @
93b00bfc
...
...
@@ -94,7 +94,7 @@ public class ClerkDTO implements Serializable {
}
public
void
setClerkName
(
String
clerkName
)
{
this
.
clerkName
=
clerkName
.
trim
()
;
this
.
clerkName
=
clerkName
;
}
public
String
getClerkCode
()
{
...
...
@@ -102,7 +102,7 @@ public class ClerkDTO implements Serializable {
}
public
void
setClerkCode
(
String
clerkCode
)
{
this
.
clerkCode
=
clerkCode
.
trim
()
;
this
.
clerkCode
=
clerkCode
;
}
public
Integer
getEnterpriseId
()
{
...
...
gic-store-service/src/main/java/com/gic/store/service/outer/impl/ClerkApiServiceImpl.java
View file @
93b00bfc
...
...
@@ -14,6 +14,7 @@ import com.gic.enterprise.response.EnterpriseServiceResponse;
import
com.gic.enterprise.service.EnterpriseApiService
;
import
com.gic.enterprise.service.WmStoreSyncLogApiService
;
import
com.gic.mq.sdk.GicMQClient
;
import
com.gic.redis.data.util.RedisUtil
;
import
com.gic.spark.api.service.SparkJobApiService
;
import
com.gic.store.constant.ClerkLogReasonEnum
;
import
com.gic.store.constant.ImportClerkBatchResultEnum
;
...
...
@@ -79,8 +80,10 @@ public class ClerkApiServiceImpl implements ClerkApiService {
return
ServiceResponse
.
failure
(
ErrorCode
.
PARAMETER_ERROR
.
getCode
(),
"权限不足"
);
}
// 校验参数
if
(
clerkService
.
isRepeatByClerkCode
(
clerkDTO
.
getStoreInfoId
(),
clerkDTO
.
getClerkCode
(),
clerkDTO
.
getClerkId
()))
{
if
(
StringUtils
.
isBlank
(
clerkDTO
.
getClerkCode
()))
{
return
ServiceResponse
.
failure
(
ErrorCode
.
PARAMETER_ERROR
.
getCode
(),
"门店下导购代码不能为空"
);
}
if
(
clerkService
.
isRepeatByClerkCode
(
clerkDTO
.
getStoreInfoId
(),
clerkDTO
.
getClerkCode
(),
clerkDTO
.
getClerkId
()))
{
return
ServiceResponse
.
failure
(
ErrorCode
.
PARAMETER_ERROR
.
getCode
(),
"门店下导购代码重复"
);
}
if
(
StringUtils
.
isNotBlank
(
clerkDTO
.
getPhoneNumber
()))
{
...
...
@@ -110,16 +113,21 @@ public class ClerkApiServiceImpl implements ClerkApiService {
// 店长逻辑
// 如果门店下已经存在有导购是店长, 并且当前导购是店长 则做替换
// 如果门店下没有导购是店长,将当前导购设置成店长
TabClerk
clerkLeader
=
clerkService
.
getClerkLeaderByStoreInfoId
(
clerkDTO
.
getEnterpriseId
(),
clerkDTO
.
getStoreInfoId
());
if
(
clerkLeader
!=
null
&&
com
.
gic
.
store
.
constant
.
Constants
.
CLERK_LEADER_POSITION_ID
.
equals
(
clerkDTO
.
getPositionId
()))
{
clerkLeader
.
setPositionId
(
com
.
gic
.
store
.
constant
.
Constants
.
CLERK_POSITION_ID
);
clerkLeader
.
setPositionName
(
"导购"
);
clerkService
.
update
(
clerkLeader
);
clerkDTO
.
setPositionId
(
com
.
gic
.
store
.
constant
.
Constants
.
CLERK_LEADER_POSITION_ID
);
}
else
if
(
clerkLeader
==
null
)
{
clerkDTO
.
setPositionId
(
com
.
gic
.
store
.
constant
.
Constants
.
CLERK_LEADER_POSITION_ID
);
// 这里并发会出错 加个锁
try
{
RedisUtil
.
lock
(
"enterprise:clerk:position:"
+
clerkDTO
.
getStoreInfoId
(),
1L
);
TabClerk
clerkLeader
=
clerkService
.
getClerkLeaderByStoreInfoId
(
clerkDTO
.
getEnterpriseId
(),
clerkDTO
.
getStoreInfoId
());
if
(
clerkLeader
!=
null
&&
com
.
gic
.
store
.
constant
.
Constants
.
CLERK_LEADER_POSITION_ID
.
equals
(
clerkDTO
.
getPositionId
()))
{
clerkLeader
.
setPositionId
(
com
.
gic
.
store
.
constant
.
Constants
.
CLERK_POSITION_ID
);
clerkLeader
.
setPositionName
(
"导购"
);
clerkService
.
update
(
clerkLeader
);
clerkDTO
.
setPositionId
(
com
.
gic
.
store
.
constant
.
Constants
.
CLERK_LEADER_POSITION_ID
);
}
else
if
(
clerkLeader
==
null
)
{
clerkDTO
.
setPositionId
(
com
.
gic
.
store
.
constant
.
Constants
.
CLERK_LEADER_POSITION_ID
);
}
}
finally
{
RedisUtil
.
unlock
(
"enterprise:clerk:position:"
+
clerkDTO
.
getStoreInfoId
());
}
String
positionName
=
this
.
clerkPositionService
.
getByClerkPositionId
(
clerkDTO
.
getPositionId
()).
getPositionName
();
clerkDTO
.
setPositionName
(
positionName
);
...
...
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