Skip to content

Commit d89d297

Browse files
author
wuxw7
committed
完成用户地址信息保存
1 parent 288d590 commit d89d297

9 files changed

Lines changed: 715 additions & 8 deletions

File tree

UserService/doc/saveUserAddress.json

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,6 @@
2525
"postalCode": "810504",
2626
"isDefault": "0"
2727
}
28-
},
29-
"attrs": [{
30-
"specCd": "配置的字段ID",
31-
"value": "具体值"
32-
}]
28+
}
3329
}]
3430
}

UserService/src/main/java/com/java110/user/dao/IUserServiceDao.java

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,9 @@ public interface IUserServiceDao {
173173
public void saveBusinessUserAttr(Map userAttr) throws DAOException;
174174

175175

176+
177+
178+
176179
public void saveUserInfoInstance(Map businessUser);
177180

178181
public void saveUserAttrInstance(Map attrInstance);
@@ -212,4 +215,38 @@ public interface IUserServiceDao {
212215
* @throws DAOException
213216
*/
214217
public List<Map> queryUserInfoAttrs(Map info) throws DAOException;
218+
219+
220+
/**
221+
* 保存用户地址信息
222+
* Business 过程
223+
* @param userAddress 用户地址信息
224+
* @throws DAOException
225+
*/
226+
public void saveBusinessUserAddress(Map userAddress) throws DAOException;
227+
228+
229+
/**
230+
* 查询用户地址信息
231+
* business 过程
232+
* @param info b_id
233+
* @return 查询到的用户地址信息
234+
* @throws DAOException
235+
*/
236+
public Map queryBusinessUserAddress(Map info) throws DAOException;
237+
238+
/**
239+
* 保存Business 数据到 Instance
240+
* @param businessUserAddress 从business 中查出的数据
241+
* @throws DAOException 数据处理异常
242+
*/
243+
public void saveUserAddressInstance(Map businessUserAddress) throws DAOException;
244+
245+
246+
/**
247+
* 作废用户信息数据
248+
* @param businessUserAddress 用户地址信息 b_id
249+
* @throws DAOException 数据处理异常
250+
*/
251+
public void updateUserAddressInstance(Map businessUserAddress) throws DAOException;
215252
}

UserService/src/main/java/com/java110/user/dao/impl/UserServiceDaoImpl.java

Lines changed: 63 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -348,7 +348,7 @@ public void saveUserAttrInstance(Map attrInstance) {
348348
@Override
349349
public void updateUserInfoInstance(Map businessUser) {
350350
LoggerEngine.debug("----【UserServiceDAOImpl.updateUserInfoInstance】保存数据入参 : " + JSONObject.toJSONString(businessUser));
351-
int saveFlag = sqlSessionTemplate.insert("userServiceDAOImpl.updateUserInfoInstance",businessUser);
351+
int saveFlag = sqlSessionTemplate.update("userServiceDAOImpl.updateUserInfoInstance",businessUser);
352352

353353
if(saveFlag < 1){
354354
throw new DAOException(ResponseConstant.RESULT_PARAM_ERROR,"修改用户Instance数据失败:"+JSONObject.toJSONString(businessUser));
@@ -358,13 +358,28 @@ public void updateUserInfoInstance(Map businessUser) {
358358
@Override
359359
public void updateUserAttrInstance(Map attrInstance) {
360360
LoggerEngine.debug("----【UserServiceDAOImpl.updateUserAttrInstance】保存数据入参 : " + JSONObject.toJSONString(attrInstance));
361-
int saveFlag = sqlSessionTemplate.insert("userServiceDAOImpl.updateUserAttrInstance",attrInstance);
361+
int saveFlag = sqlSessionTemplate.update("userServiceDAOImpl.updateUserAttrInstance",attrInstance);
362362

363363
if(saveFlag < 1){
364364
throw new DAOException(ResponseConstant.RESULT_PARAM_ERROR,"修改用户Instance数据失败:"+JSONObject.toJSONString(attrInstance));
365365
}
366366
}
367367

368+
/**
369+
* 保存用户地址信息
370+
* Business 过程
371+
* @param userAddress 用户地址信息
372+
* @throws DAOException
373+
*/
374+
public void saveBusinessUserAddress(Map userAddress) throws DAOException{
375+
LoggerEngine.debug("----【UserServiceDAOImpl.saveBusinessUserAddress】保存数据入参 : " + JSONObject.toJSONString(userAddress));
376+
int saveFlag = sqlSessionTemplate.insert("userServiceDAOImpl.saveBusinessUserAddress",userAddress);
377+
378+
if(saveFlag < 1){
379+
throw new DAOException(ResponseConstant.RESULT_PARAM_ERROR,"保存用户地址数据失败:"+JSONObject.toJSONString(userAddress));
380+
}
381+
}
382+
368383
/**
369384
* 查询用户信息
370385
* @param info
@@ -424,4 +439,50 @@ public List<Map> queryUserInfoAttrs(Map info) throws DAOException{
424439
List<Map> userAttrs = sqlSessionTemplate.selectList("userServiceDAOImpl.queryUserInfoAttrs",info);
425440
return userAttrs;
426441
}
442+
443+
444+
/**
445+
* 查询用户地址信息
446+
* business 过程
447+
* @param info b_id
448+
* @return 查询到的用户地址信息
449+
* @throws DAOException
450+
*/
451+
public Map queryBusinessUserAddress(Map info) throws DAOException{
452+
Assert.notNull(info,"queryBusinessUserAddress 的参数不能为空");
453+
LoggerEngine.debug("----【UserServiceDAOImpl.queryBusinessUserAddress】保存数据入参 : " + JSONObject.toJSONString(info));
454+
List<Map> users = sqlSessionTemplate.selectList("userServiceDAOImpl.queryBusinessUserAddress",info);
455+
if(users == null || users.size() == 0){
456+
return null;
457+
}
458+
return users.get(0);
459+
}
460+
461+
/**
462+
* 保存用户地址 Business 数据到 Instance
463+
* @param businessUserAddress 从business 中查出的数据
464+
* @throws DAOException 数据处理异常
465+
*/
466+
public void saveUserAddressInstance(Map businessUserAddress) throws DAOException{
467+
LoggerEngine.debug("----【UserServiceDAOImpl.saveUserAddressInstance】保存数据入参 : " + JSONObject.toJSONString(businessUserAddress));
468+
int saveFlag = sqlSessionTemplate.insert("userServiceDAOImpl.saveUserAddressInstance",businessUserAddress);
469+
470+
if(saveFlag < 1){
471+
throw new DAOException(ResponseConstant.RESULT_PARAM_ERROR,"保存用户地址Instance数据失败:"+JSONObject.toJSONString(businessUserAddress));
472+
}
473+
}
474+
475+
/**
476+
* 作废用户地址信息数据
477+
* @param businessUserAddress 用户地址信息 b_id
478+
* @throws DAOException 数据处理异常
479+
*/
480+
public void updateUserAddressInstance(Map businessUserAddress) throws DAOException{
481+
LoggerEngine.debug("----【UserServiceDAOImpl.updateUserAddressInstance】保存数据入参 : " + JSONObject.toJSONString(businessUserAddress));
482+
int saveFlag = sqlSessionTemplate.update("userServiceDAOImpl.updateUserAddressInstance",businessUserAddress);
483+
484+
if(saveFlag < 1){
485+
throw new DAOException(ResponseConstant.RESULT_PARAM_ERROR,"修改用户Instance数据失败:"+JSONObject.toJSONString(businessUserAddress));
486+
}
487+
}
427488
}
Lines changed: 152 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,152 @@
1+
package com.java110.user.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.exception.ListenerExecuteException;
9+
import com.java110.common.log.LoggerEngine;
10+
import com.java110.common.util.Assert;
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.user.dao.IUserServiceDao;
18+
import org.slf4j.Logger;
19+
import org.slf4j.LoggerFactory;
20+
import org.springframework.beans.factory.annotation.Autowired;
21+
import org.springframework.stereotype.Service;
22+
import org.springframework.transaction.annotation.Transactional;
23+
24+
import java.util.HashMap;
25+
import java.util.List;
26+
import java.util.Map;
27+
28+
/**
29+
* 保存 用户信息 侦听
30+
* Created by wuxw on 2018/5/18.
31+
*/
32+
@Service("saveUserAddress")
33+
@Transactional
34+
public class SaveUserAddressListener implements BusinessServiceDataFlowListener{
35+
36+
private final static Logger logger = LoggerFactory.getLogger(SaveUserAddressListener.class);
37+
38+
@Autowired
39+
IUserServiceDao userServiceDaoImpl;
40+
41+
@Override
42+
public int getOrder() {
43+
return 1;
44+
}
45+
46+
@Override
47+
public String getServiceCode() {
48+
return ServiceCodeConstant.SERVICE_CODE_SAVE_USER_ADDRESS;
49+
}
50+
51+
@Override
52+
public void soService(BusinessServiceDataFlowEvent event) {
53+
//这里处理业务逻辑数据
54+
DataFlowContext dataFlowContext = event.getDataFlowContext();
55+
doSaveUserAddress(dataFlowContext);
56+
}
57+
58+
private void doSaveUserAddress(DataFlowContext dataFlowContext){
59+
String businessType = dataFlowContext.getOrder().getBusinessType();
60+
Business business = dataFlowContext.getCurrentBusiness();
61+
//Assert.hasLength(business.getbId(),"bId 不能为空");
62+
// Instance 过程
63+
if(StatusConstant.REQUEST_BUSINESS_TYPE_INSTANCE.equals(businessType)){
64+
//doComplateUserInfo(business);
65+
doSaveInstanceUserAddress(dataFlowContext,business);
66+
}else if(StatusConstant.REQUEST_BUSINESS_TYPE_BUSINESS.equals(businessType)){ // Business过程
67+
doSaveBusinessUserAddress(dataFlowContext,business);
68+
}else if(StatusConstant.REQUEST_BUSINESS_TYPE_DELETE.equals(businessType)){ //撤单过程
69+
doDeleteInstanceUserAddress(dataFlowContext,business);
70+
}
71+
72+
dataFlowContext.setResJson(DataTransactionFactory.createBusinessResponseJson(dataFlowContext,ResponseConstant.RESULT_CODE_SUCCESS,"成功",
73+
dataFlowContext.getParamOut()));
74+
}
75+
76+
/**
77+
* 撤单
78+
* @param business
79+
*/
80+
private void doDeleteInstanceUserAddress(DataFlowContext dataFlowContext, Business business) {
81+
82+
String bId = business.getbId();
83+
//Assert.hasLength(bId,"请求报文中没有包含 bId");
84+
Map info = new HashMap();
85+
info.put("bId",bId);
86+
Map userAddress = userServiceDaoImpl.queryBusinessUserAddress(info);
87+
if(userAddress != null && !userAddress.isEmpty()){
88+
info.put("bId",bId);
89+
info.put("userId",userAddress.get("user_id").toString());
90+
info.put("addressId",userAddress.get("address_id").toString());
91+
info.put("statusCd",StatusConstant.STATUS_CD_INVALID);
92+
userServiceDaoImpl.updateUserAddressInstance(userAddress);
93+
dataFlowContext.addParamOut("userId",userAddress.get("user_id"));
94+
}
95+
}
96+
97+
/**
98+
* instance过程
99+
* @param business
100+
*/
101+
private void doSaveInstanceUserAddress(DataFlowContext dataFlowContext, Business business) {
102+
103+
JSONObject data = business.getDatas();
104+
105+
Map info = new HashMap();
106+
info.put("bId",business.getbId());
107+
info.put("operate",StatusConstant.OPERATE_ADD);
108+
Map businessUserAddress = userServiceDaoImpl.queryBusinessUserAddress(info);
109+
if( businessUserAddress != null && !businessUserAddress.isEmpty()) {
110+
userServiceDaoImpl.saveUserAddressInstance(businessUserAddress);
111+
dataFlowContext.addParamOut("userId",businessUserAddress.get("user_id"));
112+
return ;
113+
}
114+
115+
throw new ListenerExecuteException(ResponseConstant.RESULT_CODE_ERROR,"当前数据未找到business 数据"+info);
116+
}
117+
118+
/**
119+
* 处理用户地址信息
120+
* @param business 业务信息
121+
*/
122+
private void doSaveBusinessUserAddress(DataFlowContext dataFlowContext, Business business) {
123+
124+
JSONObject data = business.getDatas();
125+
126+
Assert.notEmpty(data,"没有datas 节点,或没有子节点需要处理");
127+
128+
Assert.jsonObjectHaveKey(data,"businessUserAddress","datas 节点下没有包含 businessUser 节点");
129+
130+
JSONObject businessUser = data.getJSONObject("businessUserAddress");
131+
132+
Assert.jsonObjectHaveKey(businessUser,"userId","businessUser 节点下没有包含 userId 节点");
133+
134+
if(businessUser.getLong("userId") <= 0){
135+
throw new ListenerExecuteException(ResponseConstant.RESULT_PARAM_ERROR,"用户地址(saveUserAddress)保存失败,userId 不正确"+businessUser.getInteger("userId"));
136+
}
137+
dataFlowContext.addParamOut("userId",businessUser.getString("userId"));
138+
businessUser.put("bId",business.getbId());
139+
businessUser.put("operate", StatusConstant.OPERATE_ADD);
140+
//保存用户信息
141+
userServiceDaoImpl.saveBusinessUserAddress(businessUser);
142+
143+
}
144+
145+
public IUserServiceDao getUserServiceDaoImpl() {
146+
return userServiceDaoImpl;
147+
}
148+
149+
public void setUserServiceDaoImpl(IUserServiceDao userServiceDaoImpl) {
150+
this.userServiceDaoImpl = userServiceDaoImpl;
151+
}
152+
}

0 commit comments

Comments
 (0)