Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
H
haoban-manage3.0
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
haoban3.0
haoban-manage3.0
Commits
7e750ded
Commit
7e750ded
authored
Apr 24, 2021
by
fudahua
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
企业门店初始化
parent
7c793873
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
147 additions
and
9 deletions
+147
-9
FlushStoreMqDTO.java
...n/java/com/gic/haoban/manage/api/dto/FlushStoreMqDTO.java
+47
-0
WxEnterpriseRelatedApiService.java
...ban/manage/api/service/WxEnterpriseRelatedApiService.java
+14
-0
StoreSyncPojo.java
...ava/com/gic/haoban/manage/service/pojo/StoreSyncPojo.java
+11
-0
WxEnterpriseRelatedApiServiceImpl.java
...e/service/out/impl/WxEnterpriseRelatedApiServiceImpl.java
+38
-0
KafkaMessageServiceImpl.java
...c/haoban/manage/service/task/KafkaMessageServiceImpl.java
+37
-9
No files found.
haoban-manage3-api/src/main/java/com/gic/haoban/manage/api/dto/FlushStoreMqDTO.java
0 → 100644
View file @
7e750ded
package
com
.
gic
.
haoban
.
manage
.
api
.
dto
;
import
java.io.Serializable
;
/**
* Created 2021/4/24.
*
* @author hua
*/
public
class
FlushStoreMqDTO
implements
Serializable
{
private
String
enterpriseId
;
private
String
wxEnterpriseId
;
private
String
optStaffId
;
private
int
channalCode
;
public
String
getEnterpriseId
()
{
return
enterpriseId
;
}
public
void
setEnterpriseId
(
String
enterpriseId
)
{
this
.
enterpriseId
=
enterpriseId
;
}
public
String
getWxEnterpriseId
()
{
return
wxEnterpriseId
;
}
public
void
setWxEnterpriseId
(
String
wxEnterpriseId
)
{
this
.
wxEnterpriseId
=
wxEnterpriseId
;
}
public
String
getOptStaffId
()
{
return
optStaffId
;
}
public
void
setOptStaffId
(
String
optStaffId
)
{
this
.
optStaffId
=
optStaffId
;
}
public
int
getChannalCode
()
{
return
channalCode
;
}
public
void
setChannalCode
(
int
channalCode
)
{
this
.
channalCode
=
channalCode
;
}
}
haoban-manage3-api/src/main/java/com/gic/haoban/manage/api/service/WxEnterpriseRelatedApiService.java
View file @
7e750ded
...
...
@@ -39,6 +39,20 @@ public interface WxEnterpriseRelatedApiService {
ServiceResponse
wxEnterpriseBind
(
WxEnterpriseRelationDetailDTO
detailDTO
);
/**
* 异步刷新门店
*
* @param message
*/
public
void
flushBindStoreByDelayMq
(
String
message
);
/**
* 刷新门店绑定到延迟队列
*
* @param enterpriseId
*/
public
void
flushBindStoreToDelayMq
(
String
enterpriseId
,
FlushStoreMqDTO
mqDTO
);
/**
* 刷新企业门店
*
* @param enterpriseId
...
...
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/pojo/StoreSyncPojo.java
View file @
7e750ded
...
...
@@ -11,6 +11,9 @@ public class StoreSyncPojo extends BinlogBasePojo {
@JSONField
(
name
=
"store_group_id"
)
private
String
storeGroupId
;
@JSONField
(
name
=
"old_store_group_id"
)
private
String
oldStoreGroupId
;
@JSONField
(
name
=
"storeId"
)
private
String
storeId
;
...
...
@@ -24,6 +27,14 @@ public class StoreSyncPojo extends BinlogBasePojo {
private
Integer
oldStatus
;
public
String
getOldStoreGroupId
()
{
return
oldStoreGroupId
;
}
public
void
setOldStoreGroupId
(
String
oldStoreGroupId
)
{
this
.
oldStoreGroupId
=
oldStoreGroupId
;
}
public
String
getStoreGroupId
()
{
return
storeGroupId
;
}
...
...
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/service/out/impl/WxEnterpriseRelatedApiServiceImpl.java
View file @
7e750ded
...
...
@@ -7,6 +7,7 @@ import java.util.stream.Collectors;
import
com.alibaba.fastjson.JSONObject
;
import
com.gic.api.base.commons.Page
;
import
com.gic.commons.util.GICMQClientUtil
;
import
com.gic.commons.util.ToolUtil
;
import
com.gic.enterprise.api.dto.*
;
import
com.gic.enterprise.api.service.AuthorizeService
;
...
...
@@ -18,6 +19,7 @@ import com.gic.haoban.manage.api.dto.*;
import
com.gic.haoban.manage.api.enums.ChannelCodeEnum
;
import
com.gic.haoban.manage.service.entity.*
;
import
com.gic.haoban.manage.service.service.*
;
import
com.gic.mq.sdk.GicMQClient
;
import
com.gic.redis.data.util.RedisUtil
;
import
com.google.common.collect.Sets
;
import
org.apache.commons.collections.CollectionUtils
;
...
...
@@ -69,6 +71,12 @@ public class WxEnterpriseRelatedApiServiceImpl implements WxEnterpriseRelatedApi
private
static
final
String
FLUSH_HAOBAN_BIND_STORE
=
"flush_haoban_bind_store:"
;
private
static
final
String
FLUSH_HAOBAN_BIND_STORE_MQ
=
"flushHaobanBindStoreMq"
;
//延迟判断redis的key
private
static
final
String
FLUSH_HAOBAN_BIND_STORE_MQ_DELAY
=
"flushHaobanBindStoreMqDelay"
;
private
static
final
int
DELAY_TIME
=
10
;
//获取门店详情
public
boolean
isEnterpriseOver
(
String
eid
)
{
...
...
@@ -267,6 +275,7 @@ public class WxEnterpriseRelatedApiServiceImpl implements WxEnterpriseRelatedApi
return
resp
;
}
/**
* 如果是总部的话 校验是否是自己本身 并且可以执行下去
* 如果是代理 标识可以执行下 如果存在总部且不是保存的不能执行的
...
...
@@ -313,6 +322,35 @@ public class WxEnterpriseRelatedApiServiceImpl implements WxEnterpriseRelatedApi
}
@Override
public
void
flushBindStoreByDelayMq
(
String
message
)
{
logger
.
info
(
"刷新绑定门店:{}"
,
message
);
FlushStoreMqDTO
flushStoreMqDTO
=
JSONObject
.
parseObject
(
message
,
FlushStoreMqDTO
.
class
);
ServiceResponse
response
=
this
.
flushBindStoreByEnterpriseId
(
flushStoreMqDTO
.
getEnterpriseId
(),
flushStoreMqDTO
.
getWxEnterpriseId
()
,
flushStoreMqDTO
.
getOptStaffId
(),
flushStoreMqDTO
.
getChannalCode
());
logger
.
info
(
"刷新绑定结束:{}"
,
JSONObject
.
toJSONString
(
response
));
}
@Override
public
void
flushBindStoreToDelayMq
(
String
enterpriseId
,
FlushStoreMqDTO
mqDTO
)
{
String
str
=
JSONObject
.
toJSONString
(
mqDTO
);
String
key
=
FLUSH_HAOBAN_BIND_STORE_MQ_DELAY
+
":"
+
enterpriseId
;
Object
cache
=
RedisUtil
.
getCache
(
key
);
if
(
null
==
cache
)
{
logger
.
info
(
"放入队列,刷新绑定门店:{}"
,
enterpriseId
);
RedisUtil
.
setCache
(
key
,
1
,
Long
.
valueOf
(
DELAY_TIME
));
GicMQClient
clientInstance
=
GICMQClientUtil
.
getClientInstance
();
try
{
clientInstance
.
sendMessage
(
FLUSH_HAOBAN_BIND_STORE_MQ
,
str
,
DELAY_TIME
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
logger
.
info
(
"发送消息异常:{}"
,
str
);
}
}
else
{
logger
.
info
(
"最近已有在刷新,无需重复刷新:{}"
,
JSONObject
.
toJSONString
(
mqDTO
));
}
}
@Override
public
ServiceResponse
flushBindStoreByEnterpriseId
(
String
enterpriseId
,
String
wxEnterpriseId
,
String
optStaffId
,
int
channalCode
)
{
ServiceResponse
resp
=
new
ServiceResponse
();
String
key
=
FLUSH_HAOBAN_BIND_STORE
+
enterpriseId
;
...
...
haoban-manage3-service/src/main/java/com/gic/haoban/manage/service/task/KafkaMessageServiceImpl.java
View file @
7e750ded
...
...
@@ -11,10 +11,12 @@ import com.gic.commons.util.GICMQClientUtil;
import
com.gic.dubbo.entity.ProviderLocalTag
;
import
com.gic.haoban.base.api.common.ServiceResponse
;
import
com.gic.haoban.contacts.manage.api.enums.StatusEnum
;
import
com.gic.haoban.manage.api.dto.FlushStoreMqDTO
;
import
com.gic.haoban.manage.api.dto.StaffClerkBindLogInfoDTO
;
import
com.gic.haoban.manage.api.dto.StaffClerkRelationDTO
;
import
com.gic.haoban.manage.api.enums.ChannelCodeEnum
;
import
com.gic.haoban.manage.api.service.StaffClerkRelationApiService
;
import
com.gic.haoban.manage.api.service.WxEnterpriseRelatedApiService
;
import
com.gic.haoban.manage.service.pojo.BinlogBasePojo
;
import
com.gic.haoban.manage.service.pojo.ClerkSyncPojo
;
import
com.gic.haoban.manage.service.pojo.GroupSyncPojo
;
...
...
@@ -66,6 +68,9 @@ public class KafkaMessageServiceImpl implements MessageListener<String, GicRecor
@Autowired
private
StoreRangeService
storeRangeService
;
@Autowired
private
WxEnterpriseRelatedApiService
wxEnterpriseRelatedApiService
;
@Override
...
...
@@ -197,7 +202,11 @@ public class KafkaMessageServiceImpl implements MessageListener<String, GicRecor
if
(
gicField
.
getName
().
equals
(
"status"
)
&&
recordType
.
equals
(
GicRecordType
.
UPDATE
)
&&!
mid
.
containsKey
(
"oldStatus"
))
{
mid
.
put
(
"oldStatus"
,
gicField
.
getValue
());
mid
.
put
(
"oldStatus"
,
gicField
.
getValue
());
}
else
if
(
gicField
.
getName
().
equals
(
"store_group_id"
)
&&
recordType
.
equals
(
GicRecordType
.
UPDATE
)
&&
!
mid
.
containsKey
(
"oldStoreGroupId"
))
{
mid
.
put
(
"oldStoreGroupId"
,
gicField
.
getValue
());
}
else
{
mid
.
put
(
gicField
.
getName
(),
gicField
.
getValue
());
}
...
...
@@ -214,24 +223,43 @@ public class KafkaMessageServiceImpl implements MessageListener<String, GicRecor
* @param syncPojo
*/
private
void
dealStore
(
StoreSyncPojo
syncPojo
)
{
//删除门店 删除门店关联门店
if
(
syncPojo
.
getStatus
()
==
0
)
{
storeRangeService
.
delStoreRangeByRelationId
(
syncPojo
.
getEnterpriseId
(),
syncPojo
.
getStoreId
());
//删除门店
storeRangeService
.
delStoreRelationByStoreId
(
syncPojo
.
getEnterpriseId
(),
syncPojo
.
getStoreId
());
//门店状态变更 包括删除
if
(
syncPojo
.
getRecordType
()
==
GicRecordType
.
UPDATE
.
value
()
&&
(!
syncPojo
.
getStatus
().
equals
(
syncPojo
.
getOldStatus
())))
{
logger
.
info
(
"门店状态变更:{}"
,
JSONObject
.
toJSONString
(
syncPojo
));
bindStoreToMq
(
syncPojo
.
getEnterpriseId
());
//新增门店
}
else
if
(
syncPojo
.
getRecordType
()
==
GicRecordType
.
INSERT
.
value
())
{
logger
.
info
(
"新增门店:{}"
,
JSONObject
.
toJSONString
(
syncPojo
));
bindStoreToMq
(
syncPojo
.
getEnterpriseId
());
}
else
if
(!
syncPojo
.
getStoreGroupId
().
equals
(
syncPojo
.
getOldStoreGroupId
()))
{
logger
.
info
(
"门店分组变更:{}"
,
JSONObject
.
toJSONString
(
syncPojo
));
bindStoreToMq
(
syncPojo
.
getEnterpriseId
());
}
else
{
logger
.
info
(
"门店变更,无需操作同步:{}"
,
JSONObject
.
toJSONString
(
syncPojo
));
}
}
private
void
bindStoreToMq
(
String
enterrpriseId
)
{
//放入延时队列刷新
FlushStoreMqDTO
mqDTO
=
new
FlushStoreMqDTO
();
mqDTO
.
setEnterpriseId
(
enterrpriseId
);
mqDTO
.
setWxEnterpriseId
(
"-1"
);
mqDTO
.
setChannalCode
(
ChannelCodeEnum
.
SYNC_UNBIND
.
getCode
());
mqDTO
.
setOptStaffId
(
"-1"
);
wxEnterpriseRelatedApiService
.
flushBindStoreToDelayMq
(
enterrpriseId
,
mqDTO
);
}
/**
* 门店分组的处理
*
* @param syncPojo
*/
private
void
dealStoreGroup
(
GroupSyncPojo
syncPojo
)
{
//删除
//删除
同步绑定门店
if
(
syncPojo
.
getOldStatus
()
==
1
&&
syncPojo
.
getStatus
()
==
0
)
{
storeRangeService
.
delStoreRangeByRelationId
(
syncPojo
.
getEnterpriseId
(),
syncPojo
.
getStoreGroupId
());
logger
.
info
(
"门店分组变更,同步绑定门店:{}"
,
JSONObject
.
toJSONString
(
syncPojo
));
this
.
bindStoreToMq
(
syncPojo
.
getEnterpriseId
());
}
}
...
...
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