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
1cae458b
Commit
1cae458b
authored
May 22, 2020
by
陶光胜
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'developer' into 'master'
Developer See merge request
!13
parents
099fe2b1
276678e5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
176 additions
and
5 deletions
+176
-5
ClerkApiService.java
.../src/main/java/com/gic/store/service/ClerkApiService.java
+26
-2
ClerkApiServiceImpl.java
...com/gic/store/service/outer/impl/ClerkApiServiceImpl.java
+59
-3
StoreApiServiceImpl.java
...com/gic/store/service/outer/impl/StoreApiServiceImpl.java
+87
-0
dubbo-gic-store-service.xml
...re-service/src/main/resources/dubbo-gic-store-service.xml
+1
-0
TabClerkMapper.xml
...tore-service/src/main/resources/mapper/TabClerkMapper.xml
+3
-0
No files found.
gic-store-api/src/main/java/com/gic/store/service/ClerkApiService.java
View file @
1cae458b
...
...
@@ -153,12 +153,24 @@ public interface ClerkApiService {
* 如果存在返回 门店下 同导购code 的 clerkId ,如果不存在,新建导购,返回新建的导购i
* @author zhiwj
* @param clerkId
* @param storeId
* @param storeI
nfoI
d
* @param enterpriseId
* @return com.gic.api.base.commons.ServiceResponse<java.lang.Void>
* @throws
*/
ServiceResponse
<
Integer
>
addClerkToOtherStore
(
Integer
clerkId
,
Integer
storeId
,
Integer
enterpriseId
);
ServiceResponse
<
Integer
>
addClerkToOtherStore
(
Integer
clerkId
,
Integer
storeInfoId
,
Integer
enterpriseId
);
/**
* @Title: ensureClerkInStore
* @Description:
* @author zhiwj
* @param clerkId
* @param storeInfoId
* @param enterpriseId
* @return com.gic.api.base.commons.ServiceResponse<java.lang.Void>
* @throws
*/
ServiceResponse
<
Boolean
>
ensureClerkInStore
(
Integer
clerkId
,
Integer
storeInfoId
,
Integer
enterpriseId
);
/**
* @Title: listClerkByStoreBrand
...
...
@@ -185,4 +197,16 @@ public interface ClerkApiService {
ServiceResponse
<
Void
>
syncClerkToWeimob
(
Integer
wmMallStoreId
,
List
<
Integer
>
storeIdList
,
Integer
enterpriseId
);
ServiceResponse
<
Void
>
syncClerkToWeimobTask
(
String
param
);
/**
* 同步失败的重新同步导购
* @Title: syncClerkToWeimobOfAdd
* @Description:
* @author guojuxing
* @param wmMallStoreId
* @param clerkIds
* @param enterpriseId
* @return com.gic.api.base.commons.ServiceResponse<java.lang.Void>
*/
ServiceResponse
<
Void
>
syncClerkToWeimob
(
Integer
wmMallStoreId
,
String
clerkIds
,
Integer
enterpriseId
);
}
gic-store-service/src/main/java/com/gic/store/service/outer/impl/ClerkApiServiceImpl.java
View file @
1cae458b
...
...
@@ -576,13 +576,13 @@ public class ClerkApiServiceImpl implements ClerkApiService {
}
@Override
public
ServiceResponse
<
Integer
>
addClerkToOtherStore
(
Integer
clerkId
,
Integer
storeId
,
Integer
enterpriseId
)
{
logger
.
info
(
"clerkId:{}, storeI
d:{}, enterpriseId:{}"
,
clerkId
,
store
Id
,
enterpriseId
);
public
ServiceResponse
<
Integer
>
addClerkToOtherStore
(
Integer
clerkId
,
Integer
storeI
nfoI
d
,
Integer
enterpriseId
)
{
logger
.
info
(
"clerkId:{}, storeI
nfoId:{}, enterpriseId:{}"
,
clerkId
,
storeInfo
Id
,
enterpriseId
);
TabClerk
clerk
=
this
.
clerkService
.
getById
(
clerkId
);
if
(
clerk
==
null
)
{
return
EnterpriseServiceResponse
.
failure
(
ErrorCode
.
NOTEXISTS
.
getCode
(),
"导购不存在"
);
}
StoreDTO
store
=
this
.
storeApiService
.
getStoreBy
Id
(
enterpriseId
,
store
Id
).
getResult
();
StoreDTO
store
=
this
.
storeApiService
.
getStoreBy
StoreInfoId
(
enterpriseId
,
storeInfo
Id
).
getResult
();
if
(
store
==
null
)
{
return
EnterpriseServiceResponse
.
failure
(
ErrorCode
.
NOTEXISTS
.
getCode
(),
"门店不存在"
);
}
...
...
@@ -604,6 +604,26 @@ public class ClerkApiServiceImpl implements ClerkApiService {
}
@Override
public
ServiceResponse
<
Boolean
>
ensureClerkInStore
(
Integer
clerkId
,
Integer
storeInfoId
,
Integer
enterpriseId
)
{
logger
.
info
(
"clerkId:{}, storeInfoId:{}, enterpriseId:{}"
,
clerkId
,
storeInfoId
,
enterpriseId
);
TabClerk
clerk
=
this
.
clerkService
.
getById
(
clerkId
);
if
(
clerk
==
null
)
{
return
EnterpriseServiceResponse
.
failure
(
ErrorCode
.
NOTEXISTS
.
getCode
(),
"导购不存在"
,
Boolean
.
FALSE
);
}
StoreDTO
store
=
this
.
storeApiService
.
getStoreById
(
enterpriseId
,
storeInfoId
).
getResult
();
if
(
store
==
null
)
{
return
EnterpriseServiceResponse
.
failure
(
ErrorCode
.
NOTEXISTS
.
getCode
(),
"门店不存在"
,
Boolean
.
FALSE
);
}
if
(
clerk
.
getStoreInfoId
().
equals
(
store
.
getStoreInfoId
()))
{
logger
.
info
(
"导购[clerkId:{}]已存在门店[storeId:{}, storeInfoId:{}]下"
,
clerkId
,
store
.
getStoreId
(),
store
.
getStoreInfoId
());
return
EnterpriseServiceResponse
.
success
(
Boolean
.
TRUE
);
}
else
{
logger
.
info
(
"导购[clerkId:{}]不存在门店[storeId:{}, storeInfoId:{}]下"
,
clerkId
,
store
.
getStoreId
(),
store
.
getStoreInfoId
());
return
EnterpriseServiceResponse
.
failure
(
ErrorCode
.
NOTEXISTS
.
getCode
(),
"导购不存在该门店下"
,
Boolean
.
FALSE
);
}
}
@Override
public
ServiceResponse
<
List
<
ClerkDTO
>>
listClerkByStoreBrand
(
Integer
enterpriseId
,
Integer
storeBrandId
,
String
clerkName
)
{
StoreSearchDBDTO
storeSearchDBDTO
=
new
StoreSearchDBDTO
();
storeSearchDBDTO
.
setEnterpriseId
(
enterpriseId
);
...
...
@@ -680,6 +700,42 @@ public class ClerkApiServiceImpl implements ClerkApiService {
return
ServiceResponse
.
success
();
}
@Override
public
ServiceResponse
<
Void
>
syncClerkToWeimob
(
Integer
wmMallStoreId
,
String
clerkIds
,
Integer
enterpriseId
)
{
if
(
StringUtils
.
isBlank
(
clerkIds
))
{
return
ServiceResponse
.
success
();
}
List
<
TabClerk
>
clerkList
=
clerkService
.
listClerkByIds
(
enterpriseId
,
clerkIds
);
if
(
CollectionUtils
.
isNotEmpty
(
clerkList
))
{
List
<
Integer
>
storeInfoIdList
=
clerkList
.
stream
().
map
(
e
->
e
.
getStoreInfoId
()).
collect
(
Collectors
.
toList
());
Map
<
String
,
String
>
storeInfoIdMapStoreCode
=
new
HashMap
<>(
16
);
//查询门店,为了获取门店code
if
(
CollectionUtils
.
isNotEmpty
(
storeInfoIdList
))
{
StoreSearchDBDTO
storeSearchDBDTO
=
new
StoreSearchDBDTO
();
storeSearchDBDTO
.
setStoreInfoIdList
(
storeInfoIdList
);
com
.
github
.
pagehelper
.
Page
<
StoreDTO
>
storePage
=
storeService
.
listStore
(
storeSearchDBDTO
,
0
,
storeInfoIdList
.
size
());
if
(
storePage
!=
null
)
{
List
<
StoreDTO
>
storeList
=
storePage
.
getResult
();
if
(
CollectionUtils
.
isNotEmpty
(
storeList
))
{
storeList
.
forEach
(
store
->
storeInfoIdMapStoreCode
.
put
(
store
.
getStoreInfoId
().
toString
(),
store
.
getStoreName
()));
}
}
}
clerkList
.
forEach
(
clerkTemp
->
{
WeimobGuiderSynDTO
weimobGuiderSynDTO
=
new
WeimobGuiderSynDTO
();
weimobGuiderSynDTO
.
setStoreNumber
(
storeInfoIdMapStoreCode
.
get
(
clerkTemp
.
getStoreInfoId
().
toString
()));
weimobGuiderSynDTO
.
setClerkId
(
clerkTemp
.
getClerkId
());
weimobGuiderSynDTO
.
setGuiderName
(
clerkTemp
.
getClerkName
());
weimobGuiderSynDTO
.
setGuiderPhone
(
clerkTemp
.
getPhoneNumber
());
weimobGuiderSynDTO
.
setJobNumber
(
clerkTemp
.
getClerkCode
());
weimobGuiderSynDTO
.
setStoreInfoId
(
clerkTemp
.
getStoreInfoId
());
asynClerkInfoToWeimobMQ
(
wmMallStoreId
,
enterpriseId
,
weimobGuiderSynDTO
);
});
}
return
ServiceResponse
.
success
();
}
private
void
asynClerkInfoToWeimobMQ
(
Integer
wmMallStoreId
,
Integer
enterpriseId
,
WeimobGuiderSynDTO
wmGuiderDTO
)
{
GicMQClient
client
=
GICMQClientUtil
.
getClientInstance
();
Map
<
String
,
Object
>
params
=
new
HashMap
<>(
4
);
...
...
gic-store-service/src/main/java/com/gic/store/service/outer/impl/StoreApiServiceImpl.java
View file @
1cae458b
...
...
@@ -9,10 +9,12 @@ import com.gic.commons.util.*;
import
com.gic.enterprise.dto.CustomStoreDTO
;
import
com.gic.enterprise.dto.EnterpriseDTO
;
import
com.gic.enterprise.dto.EnterpriseLicenseDTO
;
import
com.gic.enterprise.dto.wm.WmStoreSyncLogDTO
;
import
com.gic.enterprise.error.ErrorCode
;
import
com.gic.enterprise.response.EnterpriseServiceResponse
;
import
com.gic.enterprise.service.CustomStoreApiService
;
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.search.business.api.constant.enums.OperateEnum
;
...
...
@@ -27,6 +29,9 @@ import com.gic.store.entity.*;
import
com.gic.store.service.*
;
import
com.gic.store.strategy.BulkUpdateStoreStrtegy
;
import
com.gic.store.utils.field.*
;
import
com.gic.weimob.api.dto.WeimobPhysicalStoreDTO
;
import
com.gic.weimob.api.dto.WeimobStoreAccountDTO
;
import
com.gic.weimob.api.service.WeimobStoreSiteService
;
import
com.google.common.base.Joiner
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
...
...
@@ -40,6 +45,7 @@ import org.springframework.stereotype.Service;
import
org.springframework.transaction.annotation.Transactional
;
import
java.math.BigDecimal
;
import
java.text.SimpleDateFormat
;
import
java.util.*
;
import
java.util.concurrent.ConcurrentHashMap
;
import
java.util.concurrent.TimeUnit
;
...
...
@@ -101,6 +107,10 @@ public class StoreApiServiceImpl implements StoreApiService {
private
ClerkApiService
clerkApiService
;
@Autowired
private
StoreTagService
storeTagService
;
@Autowired
private
WeimobStoreSiteService
weimobStoreSiteService
;
@Autowired
private
WmStoreSyncLogApiService
wmStoreSyncLogApiService
;
private
Map
<
String
,
BulkUpdateStoreStrtegy
>
storeStrtegyMap
=
new
ConcurrentHashMap
<>();
...
...
@@ -174,6 +184,9 @@ public class StoreApiServiceImpl implements StoreApiService {
}
catch
(
Exception
e
)
{
logger
.
warn
(
"门店编辑日志记录错误"
,
e
);
}
//修改门店同步到微盟
updateStoreToWm
(
storeDTO
);
}
// 自定义属性
String
error
=
storeExtendService
.
saveOrUpdate
(
storeDTO
.
getEnterpriseId
(),
storeDTO
.
getStoreInfoId
(),
storeDTO
.
getStoreExtendList
());
...
...
@@ -1500,4 +1513,78 @@ public class StoreApiServiceImpl implements StoreApiService {
return
ServiceResponse
.
failure
(
error
.
getCode
(),
error
.
getResultInfo
());
}
private
void
updateStoreToWm
(
StoreDTO
storeDTO
)
{
WeimobPhysicalStoreDTO
weimobPhysicalStoreDTO
=
getWeimobPhsicalStore
(
storeDTO
);
logger
.
info
(
"实体门店拼接后对象为:{}"
,
JSON
.
toJSONString
(
weimobPhysicalStoreDTO
));
if
(
weimobPhysicalStoreDTO
!=
null
)
{
ServiceResponse
<
List
<
WmStoreSyncLogDTO
>>
wmStoreListResult
=
wmStoreSyncLogApiService
.
listByStoreId
(
storeDTO
.
getStoreId
(),
storeDTO
.
getEnterpriseId
());
if
(
wmStoreListResult
.
isSuccess
())
{
List
<
WmStoreSyncLogDTO
>
wmStoreList
=
wmStoreListResult
.
getResult
();
wmStoreList
.
forEach
(
wmStore
->
{
ServiceResponse
<
Void
>
weimobResult
=
this
.
weimobStoreSiteService
.
updateWeimobPhysicalStore
(
wmStore
.
getWmMallStoreId
(),
storeDTO
.
getEnterpriseId
(),
weimobPhysicalStoreDTO
);
logger
.
info
(
"门店修改同步到微盟结果:{},店铺ID:{}"
,
JSON
.
toJSONString
(
weimobResult
),
wmStore
.
getWmMallStoreId
());
});
}
}
}
private
WeimobPhysicalStoreDTO
getWeimobPhsicalStore
(
StoreDTO
storeDTO
)
{
if
(
storeDTO
.
getStatus
().
intValue
()
==
1
)
{
WeimobPhysicalStoreDTO
weimobPhysicalStoreDTO
=
new
WeimobPhysicalStoreDTO
();
//用storeInfoId
weimobPhysicalStoreDTO
.
setStoreInfoId
(
storeDTO
.
getStoreInfoId
());
weimobPhysicalStoreDTO
.
setStoreNumber
(
storeDTO
.
getStoreCode
());
weimobPhysicalStoreDTO
.
setStoreName
(
storeDTO
.
getStoreName
());
//经纬度
if
(
org
.
apache
.
commons
.
lang
.
StringUtils
.
isNotBlank
(
storeDTO
.
getLongitude
()))
{
weimobPhysicalStoreDTO
.
setLongitude
(
new
BigDecimal
(
storeDTO
.
getLongitude
()));
}
if
(
org
.
apache
.
commons
.
lang
.
StringUtils
.
isNotBlank
(
storeDTO
.
getLatitude
()))
{
weimobPhysicalStoreDTO
.
setLatitude
(
new
BigDecimal
(
storeDTO
.
getLatitude
()));
}
//省市区名称
String
fullArea
=
org
.
apache
.
commons
.
lang
.
StringUtils
.
isNotBlank
(
storeDTO
.
getProvinces
())
?
storeDTO
.
getProvinces
().
replaceAll
(
"//"
,
""
)
:
""
;
weimobPhysicalStoreDTO
.
setAddress
(
fullArea
+
storeDTO
.
getAddress
());
StringBuilder
businessTime
=
new
StringBuilder
();
SimpleDateFormat
simpleDateFormat
=
new
SimpleDateFormat
(
"HH:mm"
);
List
<
StoreBusinessTimeDTO
>
businessTimeList
=
storeDTO
.
getBusinessTimeList
();
if
(
CollectionUtils
.
isNotEmpty
(
businessTimeList
))
{
businessTimeList
.
stream
().
map
(
e
->
{
String
businessHours
=
simpleDateFormat
.
format
(
e
.
getOpenTime
())
+
"-"
+
simpleDateFormat
.
format
(
e
.
getCloseTime
());
return
e
.
getWeekdayShow
()
+
businessHours
;
}).
forEach
(
businessTime:
:
append
);
}
weimobPhysicalStoreDTO
.
setBussinessHours
(
businessTime
.
toString
());
WeimobStoreAccountDTO
accountDTO
=
new
WeimobStoreAccountDTO
();
ClerkDTO
headClerk
=
getHeadClerk
(
storeDTO
.
getEnterpriseId
(),
storeDTO
.
getStoreId
());
if
(
headClerk
!=
null
)
{
accountDTO
.
setManagerLoginAccount
(
headClerk
.
getPhoneNumber
());
accountDTO
.
setManagerName
(
headClerk
.
getClerkName
());
}
if
(
org
.
apache
.
commons
.
lang
.
StringUtils
.
isNotBlank
(
storeDTO
.
getConactsPhone
()))
{
weimobPhysicalStoreDTO
.
setStoreTel
(
storeDTO
.
getConactsPhone
());
}
else
{
//店长的号码
if
(
headClerk
!=
null
)
{
weimobPhysicalStoreDTO
.
setStoreTel
(
headClerk
.
getPhoneNumber
());
}
}
weimobPhysicalStoreDTO
.
setAccountVo
(
accountDTO
);
return
weimobPhysicalStoreDTO
;
}
return
null
;
}
private
ClerkDTO
getHeadClerk
(
Integer
enterpriseId
,
Integer
storeId
)
{
ServiceResponse
<
ClerkDTO
>
clerkResponse
=
clerkApiService
.
getHeadClerk
(
enterpriseId
,
storeId
);
if
(
clerkResponse
.
isSuccess
())
{
return
clerkResponse
.
getResult
();
}
return
null
;
}
}
gic-store-service/src/main/resources/dubbo-gic-store-service.xml
View file @
1cae458b
...
...
@@ -65,4 +65,5 @@
<dubbo:service
interface=
"com.gic.store.service.DictApiService"
ref=
"dictApiService"
timeout=
"6000"
/>
<dubbo:reference
interface=
"com.gic.weimob.api.service.WeimobStoreSiteService"
id=
"weimobStoreSiteService"
timeout=
"6000"
/>
<dubbo:reference
interface=
"com.gic.enterprise.service.WmStoreSyncLogApiService"
id=
"wmStoreSyncLogApiService"
timeout=
"6000"
/>
</beans>
gic-store-service/src/main/resources/mapper/TabClerkMapper.xml
View file @
1cae458b
...
...
@@ -48,6 +48,9 @@
)
</insert>
<insert
id=
"insertSelective"
parameterType=
"com.gic.store.entity.TabClerk"
>
<selectKey
keyProperty=
"clerkId"
order=
"AFTER"
resultType=
"java.lang.Integer"
>
SELECT LAST_INSERT_ID()
</selectKey>
insert into tab_clerk
<trim
prefix=
"("
suffix=
")"
suffixOverrides=
","
>
<if
test=
"clerkId != null"
>
...
...
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