Skip to content

Commit fec26df

Browse files
author
wuxw7
committed
事件侦听改为注解方式,方便后期开发,取消配置文件方式
1 parent a0877c1 commit fec26df

22 files changed

Lines changed: 631 additions & 39 deletions

File tree

CenterService/src/main/java/com/java110/center/CenterServiceApplicationStart.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
import com.java110.center.smo.ICenterServiceCacheSMO;
44
import com.java110.common.factory.ApplicationContextFactory;
5+
import com.java110.core.annotation.Java110ListenerDiscovery;
6+
import com.java110.event.center.DataFlowEventPublishing;
57
import com.java110.event.center.init.EventConfigInit;
68
import com.java110.service.init.ServiceStartInit;
79
import org.springframework.boot.SpringApplication;
@@ -29,6 +31,8 @@
2931
@SpringBootApplication(scanBasePackages={"com.java110.service","com.java110.center","com.java110.core","com.java110.event.center","com.java110.cache"})
3032
@EnableDiscoveryClient
3133
//@EnableConfigurationProperties(EventProperties.class)
34+
@Java110ListenerDiscovery(listenerPublishClass = DataFlowEventPublishing.class,
35+
basePackages = {"com.java110.center.listener"})
3236
public class CenterServiceApplicationStart {
3337

3438
/**
@@ -61,7 +65,7 @@ public static void main(String[] args) throws Exception{
6165
ServiceStartInit.initSystemConfig(context);
6266

6367
//加载事件数据
64-
EventConfigInit.initSystemConfig();
68+
//EventConfigInit.initSystemConfig();
6569

6670
//刷新缓存
6771
flushMainCache(args);

java110-event/src/main/java/com/java110/event/center/listener/DealUserIdListener.java renamed to CenterService/src/main/java/com/java110/center/listener/DealUserIdListener.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,21 @@
1-
package com.java110.event.center.listener;
1+
package com.java110.center.listener;
22

33
import com.java110.common.constant.ResponseConstant;
44
import com.java110.common.exception.ListenerExecuteException;
5+
import com.java110.core.annotation.Java110Listener;
56
import com.java110.core.context.DataFlow;
67
import com.java110.event.app.order.Ordered;
78
import com.java110.event.center.event.InvokeBusinessSystemEvent;
9+
import com.java110.event.center.listener.DataFlowListener;
810
import org.slf4j.Logger;
911
import org.slf4j.LoggerFactory;
10-
import org.springframework.stereotype.Component;
1112

1213
/**
1314
* 用户ID处理 侦听
1415
* Created by wuxw on 2018/7/2.
1516
*/
16-
@Component
17+
//@Component
18+
@Java110Listener(name="dealUserIdListener")
1719
public class DealUserIdListener implements DataFlowListener<InvokeBusinessSystemEvent>,Ordered {
1820

1921
private final static Logger logger = LoggerFactory.getLogger(DealUserIdListener.class);
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package com.java110.center.listener;
2+
3+
import com.java110.core.annotation.Java110Listener;
4+
import com.java110.event.app.order.Ordered;
5+
import com.java110.event.center.event.ReceiveRequestEvent;
6+
import com.java110.event.center.listener.DataFlowListener;
7+
import org.slf4j.Logger;
8+
import org.slf4j.LoggerFactory;
9+
10+
import java.util.Map;
11+
12+
/**
13+
* Created by wuxw on 2018/7/2.
14+
*/
15+
@Java110Listener(name = "receiveRequestListener")
16+
public class ReceiveRequestListener implements DataFlowListener<ReceiveRequestEvent>,Ordered {
17+
18+
private final static Logger logger = LoggerFactory.getLogger(ReceiveRequestListener.class);
19+
20+
@Override
21+
public int getOrder() {
22+
return 1;
23+
}
24+
25+
@Override
26+
public void soService(ReceiveRequestEvent event) {
27+
28+
Map<String,String> headers = event.getHeaders();
29+
logger.debug("请求头信息为:{}",headers);
30+
String requestData = event.getRequestData();
31+
logger.debug("请求报文为:{}",requestData);
32+
}
33+
}

CenterService/src/main/java/com/java110/center/smo/impl/CenterServiceSMOImpl.java

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -70,19 +70,23 @@ public String service(String reqJson, Map<String, String> headers) throws SMOExc
7070
DataFlowEventPublishing.preValidateData(reqJson,headers);
7171
//1.0 创建数据流
7272
dataFlow = DataFlowFactory.newInstance(DataFlow.class).builder(reqJson, headers);
73+
DataFlowEventPublishing.initDataFlowComplete(dataFlow);
7374

74-
/*LogAgent.sendLog(dataFlow.reBuilder(dataFlow.getTransactionId(),LogAgent.LOG_TYPE_S,LogAgent.LOG_STATUS_S,
75-
dataFlow.getRequestURL(),dataFlow.getReqData(),dataFlow.getHeaders()));
76-
*/
7775
//2.0 加载配置信息
7876
initConfigData(dataFlow);
77+
DataFlowEventPublishing.loadConfigDataComplete(dataFlow);
78+
7979
//3.0 校验 APPID是否有权限操作serviceCode
8080
judgeAuthority(dataFlow);
8181
//4.0 调用规则校验
8282
ruleValidate(dataFlow);
83+
DataFlowEventPublishing.ruleValidateComplete(dataFlow);
84+
8385
//5.0 保存订单和业务项 c_orders c_order_attrs c_business c_business_attrs
8486
saveOrdersAndBusiness(dataFlow);
87+
8588
//6.0 调用下游系统
89+
DataFlowEventPublishing.invokeBusinessSystem(dataFlow);
8690
invokeBusinessSystem(dataFlow);
8791

8892
responseJson = DataTransactionFactory.createCommonResponseJson(dataFlow);
@@ -144,11 +148,10 @@ public String service(String reqJson, Map<String, String> headers) throws SMOExc
144148
AuthenticationFactory.putSign(dataFlow, responseJson);
145149
saveLogMessage(dataFlow,LogAgent.createLogMessage(dataFlow.getRequestHeaders(),dataFlow.getReqJson().toJSONString()),
146150
LogAgent.createLogMessage(dataFlow.getResponseHeaders(),dataFlow.getResJson().toJSONString()),endDate.getTime()-dataFlow.getStartDate().getTime());
147-
151+
DataFlowEventPublishing.dataResponse(dataFlow,reqJson,headers);
148152
}
149153
resJson = encrypt(responseJson.toJSONString(),headers);
150154
//这里保存耗时,以及日志
151-
152155
return resJson;
153156

154157
}

StoreService/src/main/java/com/java110/store/StoreServiceApplicationStart.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package com.java110.store;
22

3+
import com.java110.core.annotation.Java110ListenerDiscovery;
4+
import com.java110.event.service.BusinessServiceDataFlowEventPublishing;
35
import com.java110.event.service.init.SystemStartLoadBusinessConfigure;
46
import com.java110.service.init.ServiceStartInit;
57
import org.springframework.boot.SpringApplication;
@@ -26,6 +28,8 @@
2628
*/
2729
@SpringBootApplication(scanBasePackages={"com.java110.service","com.java110.store","com.java110.core","com.java110.cache"})
2830
@EnableDiscoveryClient
31+
@Java110ListenerDiscovery(listenerPublishClass = BusinessServiceDataFlowEventPublishing.class,
32+
basePackages = {"com.java110.store.listener"})
2933
public class StoreServiceApplicationStart {
3034

3135
private final static String LISTENER_PATH = "java110.StoreService.listeners";
@@ -46,6 +50,6 @@ public static void main(String[] args) throws Exception{
4650
ApplicationContext context = SpringApplication.run(StoreServiceApplicationStart.class, args);
4751
ServiceStartInit.initSystemConfig(context);
4852
//加载业务侦听
49-
SystemStartLoadBusinessConfigure.initSystemConfig(LISTENER_PATH);
53+
//SystemStartLoadBusinessConfigure.initSystemConfig(LISTENER_PATH);
5054
}
5155
}
Lines changed: 216 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,216 @@
1+
package com.java110.store.listener;
2+
3+
import com.alibaba.fastjson.JSONArray;
4+
import com.alibaba.fastjson.JSONObject;
5+
import com.java110.common.constant.ResponseConstant;
6+
import com.java110.common.constant.ServiceCodeConstant;
7+
import com.java110.common.constant.StatusConstant;
8+
import com.java110.common.log.LoggerEngine;
9+
import com.java110.common.util.Assert;
10+
import com.java110.core.annotation.Java110Listener;
11+
import com.java110.core.context.DataFlowContext;
12+
import com.java110.core.factory.DataTransactionFactory;
13+
import com.java110.core.factory.GenerateCodeFactory;
14+
import com.java110.entity.center.Business;
15+
import com.java110.event.service.BusinessServiceDataFlowEvent;
16+
import com.java110.event.service.BusinessServiceDataFlowListener;
17+
import com.java110.store.dao.IStoreServiceDao;
18+
import org.springframework.beans.factory.annotation.Autowired;
19+
import org.springframework.transaction.annotation.Transactional;
20+
21+
import java.util.HashMap;
22+
import java.util.List;
23+
import java.util.Map;
24+
25+
/**
26+
* 保存 用户信息 侦听
27+
* Created by wuxw on 2018/5/18.
28+
*/
29+
@Java110Listener("saveStoreInfoListener")
30+
@Transactional
31+
public class SaveStoreInfoListener extends LoggerEngine implements BusinessServiceDataFlowListener{
32+
33+
@Autowired
34+
IStoreServiceDao storeServiceDaoImpl;
35+
36+
@Override
37+
public int getOrder() {
38+
return 0;
39+
}
40+
41+
@Override
42+
public String getServiceCode() {
43+
return ServiceCodeConstant.SERVICE_CODE_SAVE_STORE_INFO;
44+
}
45+
46+
@Override
47+
public void soService(BusinessServiceDataFlowEvent event) {
48+
//这里处理业务逻辑数据
49+
DataFlowContext dataFlowContext = event.getDataFlowContext();
50+
doSaveUserInfo(dataFlowContext);
51+
}
52+
53+
private void doSaveUserInfo(DataFlowContext dataFlowContext){
54+
String businessType = dataFlowContext.getOrder().getBusinessType();
55+
Business business = dataFlowContext.getCurrentBusiness();
56+
//Assert.hasLength(business.getbId(),"bId 不能为空");
57+
// Instance 过程
58+
if(StatusConstant.REQUEST_BUSINESS_TYPE_INSTANCE.equals(businessType)){
59+
//doComplateUserInfo(business);
60+
doSaveInstanceUserInfo(dataFlowContext,business);
61+
}else if(StatusConstant.REQUEST_BUSINESS_TYPE_BUSINESS.equals(businessType)){ // Business过程
62+
doSaveBusinessUserInfo(dataFlowContext,business);
63+
}else if(StatusConstant.REQUEST_BUSINESS_TYPE_DELETE.equals(businessType)){ //撤单过程
64+
doDeleteInstanceUserInfo(dataFlowContext,business);
65+
}
66+
67+
dataFlowContext.setResJson(DataTransactionFactory.createBusinessResponseJson(dataFlowContext,ResponseConstant.RESULT_CODE_SUCCESS,"成功",
68+
dataFlowContext.getParamOut()));
69+
}
70+
71+
/**
72+
* 撤单
73+
* @param business
74+
*/
75+
private void doDeleteInstanceUserInfo(DataFlowContext dataFlowContext,Business business) {
76+
77+
/*String bId = business.getbId();
78+
//Assert.hasLength(bId,"请求报文中没有包含 bId");
79+
Map info = new HashMap();
80+
info.put("bId",bId);
81+
Map userInfo = storeServiceDaoImpl.queryUserInfo(info);
82+
if(userInfo != null && !userInfo.isEmpty()){
83+
info.put("bId",bId);
84+
info.put("userId",userInfo.get("user_id").toString());
85+
info.put("statusCd",StatusConstant.STATUS_CD_INVALID);
86+
storeServiceDaoImpl.updateUserInfoInstance(userInfo);
87+
dataFlowContext.addParamOut("userId",userInfo.get("user_id"));
88+
}
89+
90+
info.clear();
91+
info.put("bId",bId);
92+
93+
List<Map> userAttrs = storeServiceDaoImpl.queryUserInfoAttrs(info);
94+
95+
if(userAttrs != null && userAttrs.size() >0){
96+
info.put("bId",bId);
97+
//info.put("userId",userInfo.get("user_id").toString());
98+
info.put("statusCd",StatusConstant.STATUS_CD_INVALID);
99+
storeServiceDaoImpl.updateUserAttrInstance(info);
100+
}
101+
*/
102+
103+
}
104+
105+
/**
106+
* instance过程
107+
* @param business
108+
*/
109+
private void doSaveInstanceUserInfo(DataFlowContext dataFlowContext,Business business) {
110+
111+
JSONObject data = business.getDatas();
112+
113+
//Assert.notEmpty(data,"没有datas 节点,或没有子节点需要处理");
114+
115+
//Assert.jsonObjectHaveKey(data,"businessUser","datas 节点下没有包含 businessUser 节点");
116+
117+
//JSONObject businessUser = data.getJSONObject("businessUser");
118+
/* Map info = new HashMap();
119+
info.put("bId",business.getbId());
120+
info.put("operate",StatusConstant.OPERATE_ADD);
121+
Map businessUser = storeServiceDaoImpl.queryBusinessUserInfo(info);
122+
if( businessUser != null && !businessUser.isEmpty()) {
123+
storeServiceDaoImpl.saveUserInfoInstance(businessUser);
124+
dataFlowContext.addParamOut("userId",businessUser.get("user_id"));
125+
}
126+
List<Map> businessUserAttrs = storeServiceDaoImpl.queryBusinessUserInfoAttrs(info);
127+
if(businessUserAttrs != null && businessUserAttrs.size() > 0) {
128+
storeServiceDaoImpl.saveUserAttrInstance(businessUser);
129+
}*/
130+
131+
132+
}
133+
134+
/**
135+
* 保存数据至u_user 表中
136+
* @param business
137+
*/
138+
private void doComplateUserInfo(DataFlowContext dataFlowContext,Business business) {
139+
/*String bId = business.getbId();
140+
Map paramIn = new HashMap();
141+
paramIn.put("bId",bId);
142+
paramIn.put("statusCd",StatusConstant.STATUS_CD_VALID);
143+
storeServiceDaoImpl.updateUserInfoInstance(paramIn);
144+
storeServiceDaoImpl.updateUserAttrInstance(paramIn);*/
145+
}
146+
147+
/**
148+
* 处理用户信息
149+
* @param business
150+
*/
151+
private void doSaveBusinessUserInfo(DataFlowContext dataFlowContext,Business business) {
152+
153+
/*JSONObject data = business.getDatas();
154+
155+
Assert.notEmpty(data,"没有datas 节点,或没有子节点需要处理");
156+
157+
Assert.jsonObjectHaveKey(data,"businessUser","datas 节点下没有包含 businessUser 节点");
158+
159+
JSONObject businessUser = data.getJSONObject("businessUser");
160+
161+
Assert.jsonObjectHaveKey(businessUser,"userId","businessUser 节点下没有包含 userId 节点");
162+
163+
if(businessUser.getInteger("userId") < 0){
164+
//生成userId
165+
String userId = GenerateCodeFactory.getUserId();
166+
businessUser.put("userId",userId);
167+
}
168+
dataFlowContext.addParamOut("userId",businessUser.getString("userId"));
169+
businessUser.put("bId",business.getbId());
170+
businessUser.put("operate", StatusConstant.OPERATE_ADD);
171+
//保存用户信息
172+
storeServiceDaoImpl.saveBusinessUserInfo(businessUser);
173+
174+
if(businessUser.containsKey("businessUserAttr")){
175+
doSaveUserAttrs(business);
176+
}*/
177+
178+
//storeServiceDaoImpl.saveUserInfoInstance(businessUser);
179+
180+
181+
182+
}
183+
184+
private void doSaveUserAttrs(Business business){
185+
/*JSONObject data = business.getDatas();
186+
JSONObject businessUser = data.getJSONObject("businessUser");
187+
JSONArray businessUserAttrs = businessUser.getJSONArray("businessUserAttr");
188+
for(int userAttrIndex = 0 ; userAttrIndex < businessUserAttrs.size();userAttrIndex ++){
189+
JSONObject userAttr = businessUserAttrs.getJSONObject(userAttrIndex);
190+
Assert.jsonObjectHaveKey(userAttr,"attrId","businessUserAttr 节点下没有包含 attrId 节点");
191+
192+
if(userAttr.getInteger("attrId") < 0){
193+
String attrId = GenerateCodeFactory.getAttrId();
194+
userAttr.put("attrId",attrId);
195+
}
196+
197+
userAttr.put("bId",business.getbId());
198+
userAttr.put("userId",businessUser.getString("userId"));
199+
userAttr.put("operate", StatusConstant.OPERATE_ADD);
200+
201+
storeServiceDaoImpl.saveBusinessUserAttr(userAttr);
202+
}*/
203+
204+
/*JSONObject attrInstance = new JSONObject();
205+
attrInstance.put("bId",business.getbId());
206+
storeServiceDaoImpl.saveUserAttrInstance(attrInstance);*/
207+
}
208+
209+
public IStoreServiceDao getStoreServiceDaoImpl() {
210+
return storeServiceDaoImpl;
211+
}
212+
213+
public void setStoreServiceDaoImpl(IStoreServiceDao storeServiceDaoImpl) {
214+
this.storeServiceDaoImpl = storeServiceDaoImpl;
215+
}
216+
}

UserService/src/main/java/com/java110/user/UserServiceApplicationStart.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
package com.java110.user;
22

3+
import com.java110.core.annotation.Java110ListenerDiscovery;
4+
import com.java110.event.center.DataFlowEventPublishing;
5+
import com.java110.event.service.BusinessServiceDataFlowEventPublishing;
36
import com.java110.event.service.init.SystemStartLoadBusinessConfigure;
47
import com.java110.service.init.ServiceStartInit;
58
import org.apache.catalina.Context;
@@ -32,6 +35,8 @@
3235
*/
3336
@SpringBootApplication(scanBasePackages={"com.java110.service","com.java110.user","com.java110.core","com.java110.cache"})
3437
@EnableDiscoveryClient
38+
@Java110ListenerDiscovery(listenerPublishClass = BusinessServiceDataFlowEventPublishing.class,
39+
basePackages = {"com.java110.user.listener"})
3540
public class UserServiceApplicationStart {
3641

3742
private final static String LISTENER_PATH = "java110.UserService.listeners";
@@ -52,6 +57,6 @@ public static void main(String[] args) throws Exception{
5257
ApplicationContext context = SpringApplication.run(UserServiceApplicationStart.class, args);
5358
ServiceStartInit.initSystemConfig(context);
5459
//加载业务侦听
55-
SystemStartLoadBusinessConfigure.initSystemConfig(LISTENER_PATH);
60+
// SystemStartLoadBusinessConfigure.initSystemConfig(LISTENER_PATH);
5661
}
5762
}

0 commit comments

Comments
 (0)