Skip to content

Commit 7276c85

Browse files
吴学文吴学文
authored andcommitted
加入房屋保存接口信息
1 parent 36a6566 commit 7276c85

18 files changed

Lines changed: 564 additions & 34 deletions

File tree

Lines changed: 155 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,155 @@
1+
package com.java110.api.listener.room;
2+
3+
import com.alibaba.fastjson.JSONArray;
4+
import com.alibaba.fastjson.JSONObject;
5+
import com.java110.api.listener.AbstractServiceApiDataFlowListener;
6+
import com.java110.common.constant.BusinessTypeConstant;
7+
import com.java110.common.constant.CommonConstant;
8+
import com.java110.common.constant.ServiceCodeConstant;
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.smo.unit.IUnitInnerServiceSMO;
13+
import com.java110.dto.UnitDto;
14+
import com.java110.entity.center.AppService;
15+
import com.java110.event.service.api.ServiceDataFlowEvent;
16+
import org.slf4j.Logger;
17+
import org.slf4j.LoggerFactory;
18+
import org.springframework.beans.factory.annotation.Autowired;
19+
import org.springframework.http.HttpHeaders;
20+
import org.springframework.http.HttpMethod;
21+
import org.springframework.http.ResponseEntity;
22+
23+
import java.util.List;
24+
25+
/**
26+
* @ClassName SaveUnitListener
27+
* @Description TODO 保存房屋信息
28+
* @Author wuxw
29+
* @Date 2019/5/3 11:54
30+
* @Version 1.0
31+
* add by wuxw 2019/5/3
32+
**/
33+
@Java110Listener("saveRoomListener")
34+
public class SaveRoomListener extends AbstractServiceApiDataFlowListener {
35+
private static Logger logger = LoggerFactory.getLogger(SaveRoomListener.class);
36+
37+
38+
@Autowired
39+
private IUnitInnerServiceSMO unitInnerServiceSMOImpl;
40+
41+
@Override
42+
public String getServiceCode() {
43+
return ServiceCodeConstant.SERVICE_CODE_SAVE_ROOM;
44+
}
45+
46+
@Override
47+
public HttpMethod getHttpMethod() {
48+
return HttpMethod.POST;
49+
}
50+
51+
@Override
52+
public void soService(ServiceDataFlowEvent event) {
53+
54+
logger.debug("ServiceDataFlowEvent : {}", event);
55+
56+
DataFlowContext dataFlowContext = event.getDataFlowContext();
57+
AppService service = event.getAppService();
58+
59+
String paramIn = dataFlowContext.getReqData();
60+
61+
//校验数据
62+
validate(paramIn);
63+
JSONObject paramObj = JSONObject.parseObject(paramIn);
64+
65+
HttpHeaders header = new HttpHeaders();
66+
dataFlowContext.getRequestCurrentHeaders().put(CommonConstant.HTTP_ORDER_TYPE_CD, "D");
67+
JSONArray businesses = new JSONArray();
68+
69+
//添加单元信息
70+
businesses.add(addRoom(paramObj, dataFlowContext));
71+
72+
JSONObject paramInObj = super.restToCenterProtocol(businesses, dataFlowContext.getRequestCurrentHeaders());
73+
74+
//将 rest header 信息传递到下层服务中去
75+
super.freshHttpHeader(header, dataFlowContext.getRequestCurrentHeaders());
76+
77+
ResponseEntity<String> responseEntity = this.callService(dataFlowContext, service.getServiceCode(), paramInObj);
78+
79+
dataFlowContext.setResponseEntity(responseEntity);
80+
81+
}
82+
83+
/**
84+
* 添加小区楼信息
85+
*
86+
* @param paramInJson 接口调用放传入入参
87+
* @param dataFlowContext 数据上下文
88+
* @return 订单服务能够接受的报文
89+
*/
90+
private JSONObject addRoom(JSONObject paramInJson, DataFlowContext dataFlowContext) {
91+
92+
93+
JSONObject business = JSONObject.parseObject("{\"datas\":{}}");
94+
business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_SAVE_ROOM_INFO);
95+
business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ);
96+
business.put(CommonConstant.HTTP_INVOKE_MODEL, CommonConstant.HTTP_INVOKE_MODEL_S);
97+
JSONObject businessUnit = new JSONObject();
98+
businessUnit.putAll(paramInJson);
99+
businessUnit.put("room_id", "-1");
100+
businessUnit.put("userId", dataFlowContext.getRequestCurrentHeaders().get(CommonConstant.HTTP_USER_ID));
101+
business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put("businessUnit", businessUnit);
102+
103+
return business;
104+
}
105+
106+
/**
107+
* 数据校验
108+
*
109+
* @param paramIn "communityId": "7020181217000001",
110+
* "memberId": "3456789",
111+
* "memberTypeCd": "390001200001"
112+
*/
113+
private void validate(String paramIn) {
114+
Assert.jsonObjectHaveKey(paramIn, "communityId", "请求报文中未包含communityId节点");
115+
Assert.jsonObjectHaveKey(paramIn, "unitId", "请求报文中未包含unitId节点");
116+
Assert.jsonObjectHaveKey(paramIn, "roomNum", "请求报文中未包含roomNum节点");
117+
Assert.jsonObjectHaveKey(paramIn, "layer", "请求报文中未包含layer节点");
118+
Assert.jsonObjectHaveKey(paramIn, "section", "请求报文中未包含section节点");
119+
Assert.jsonObjectHaveKey(paramIn, "apartment", "请求报文中未包含apartment节点");
120+
Assert.jsonObjectHaveKey(paramIn, "builtUpArea", "请求报文中未包含builtUpArea节点");
121+
Assert.jsonObjectHaveKey(paramIn, "unitPrice", "请求报文中未包含unitPrice节点");
122+
JSONObject reqJson = JSONObject.parseObject(paramIn);
123+
Assert.isInteger(reqJson.getString("section"), "房间数不是有效数字");
124+
Assert.isMoney(reqJson.getString("builtUpArea"), "建筑面积数据格式错误");
125+
Assert.isMoney(reqJson.getString("unitPrice"), "房屋单价数据格式错误");
126+
127+
if (!"1010".equals(reqJson.getString("apartment")) && !"2020".equals(reqJson.getString("apartment"))) {
128+
throw new IllegalArgumentException("不是有效房屋户型 传入数据错误");
129+
}
130+
131+
UnitDto unitDto = new UnitDto();
132+
unitDto.setCommunityId(reqJson.getString("communityId"));
133+
unitDto.setUnitId(reqJson.getString("unitId"));
134+
//校验小区楼ID和小区是否有对应关系
135+
List<UnitDto> units = unitInnerServiceSMOImpl.queryUnitsByCommunityId(unitDto);
136+
137+
if (units == null || units.size() < 1) {
138+
throw new IllegalArgumentException("传入单元ID不是该小区的单元");
139+
}
140+
141+
}
142+
143+
@Override
144+
public int getOrder() {
145+
return DEFAULT_ORDER;
146+
}
147+
148+
public IUnitInnerServiceSMO getUnitInnerServiceSMOImpl() {
149+
return unitInnerServiceSMOImpl;
150+
}
151+
152+
public void setUnitInnerServiceSMOImpl(IUnitInnerServiceSMO unitInnerServiceSMOImpl) {
153+
this.unitInnerServiceSMOImpl = unitInnerServiceSMOImpl;
154+
}
155+
}

CommunityService/src/main/java/com/java110/community/dao/IUnitServiceDao.java

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,6 @@
22

33

44
import com.java110.common.exception.DAOException;
5-
import com.java110.entity.merchant.BoMerchant;
6-
import com.java110.entity.merchant.BoMerchantAttr;
7-
import com.java110.entity.merchant.Merchant;
8-
import com.java110.entity.merchant.MerchantAttr;
9-
105

116
import java.util.List;
127
import java.util.Map;
@@ -15,55 +10,54 @@
1510
* 小区单元组件内部之间使用,没有给外围系统提供服务能力
1611
* 小区单元服务接口类,要求全部以字符串传输,方便微服务化
1712
* 新建客户,修改客户,删除客户,查询客户等功能
18-
*
13+
* <p>
1914
* Created by wuxw on 2016/12/27.
2015
*/
2116
public interface IUnitServiceDao {
2217

2318
/**
2419
* 保存 小区单元信息
20+
*
2521
* @param businessUnitInfo 小区单元信息 封装
2622
* @throws DAOException 操作数据库异常
2723
*/
2824
public void saveBusinessUnitInfo(Map businessUnitInfo) throws DAOException;
2925

3026

31-
3227
/**
3328
* 查询小区单元信息(business过程)
3429
* 根据bId 查询小区单元信息
30+
*
3531
* @param info bId 信息
3632
* @return 小区单元信息
3733
* @throws DAOException
3834
*/
3935
public List<Map> getBusinessUnitInfo(Map info) throws DAOException;
4036

4137

42-
43-
4438
/**
4539
* 保存 小区单元信息 Business数据到 Instance中
40+
*
4641
* @param info
4742
* @throws DAOException
4843
*/
4944
public void saveUnitInfoInstance(Map info) throws DAOException;
5045

5146

52-
53-
5447
/**
5548
* 查询小区单元信息(instance过程)
5649
* 根据bId 查询小区单元信息
50+
*
5751
* @param info bId 信息
5852
* @return 小区单元信息
5953
* @throws DAOException
6054
*/
6155
public List<Map> getUnitInfo(Map info) throws DAOException;
6256

6357

64-
6558
/**
6659
* 修改小区单元信息
60+
*
6761
* @param info 修改信息
6862
* @throws DAOException
6963
*/
@@ -78,4 +72,13 @@ public interface IUnitServiceDao {
7872
*/
7973
int queryUnitsCount(Map info);
8074

75+
76+
/**
77+
* 根据小区ID查询单元信息
78+
*
79+
* @param info 小区单元信息
80+
* @return 小区单元
81+
*/
82+
List<Map> queryUnitsByCommunityId(Map info);
83+
8184
}

CommunityService/src/main/java/com/java110/community/dao/impl/UnitServiceDaoImpl.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import com.java110.common.util.DateUtil;
77
import com.java110.community.dao.IUnitServiceDao;
88
import com.java110.core.base.dao.BaseServiceDao;
9+
import com.java110.dto.UnitDto;
910
import org.slf4j.Logger;
1011
import org.slf4j.LoggerFactory;
1112
import org.springframework.stereotype.Service;
@@ -131,4 +132,14 @@ public int queryUnitsCount(Map info) {
131132
}
132133

133134

135+
@Override
136+
public List<Map> queryUnitsByCommunityId(Map info) {
137+
logger.debug("查询queryUnitsByCommunityId数据 入参 info : {}", info);
138+
139+
List<Map> units = sqlSessionTemplate.selectList("unitServiceDaoImpl.queryUnitsByCommunityId", info);
140+
141+
return units;
142+
}
143+
144+
134145
}

CommunityService/src/main/java/com/java110/community/smo/impl/UnitInnerServiceSMOImpl.java

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ public class UnitInnerServiceSMOImpl extends BaseServiceSMO implements IUnitInne
3434
private IUserInnerServiceSMO userInnerServiceSMOImpl;
3535

3636
@Override
37-
public List<UnitDto> queryUnits(@RequestBody UnitDto unitDto) {
37+
public List<UnitDto> queryUnits(@RequestBody UnitDto unitDto) {
3838

3939
//校验是否传了 分页信息
4040

@@ -64,7 +64,7 @@ public List<UnitDto> queryUnits(@RequestBody UnitDto unitDto) {
6464
/**
6565
* 从用户列表中查询用户,将用户中的信息 刷新到 floor对象中
6666
*
67-
* @param unit 小区楼单元信息
67+
* @param unit 小区楼单元信息
6868
* @param users 用户列表
6969
*/
7070
private void refreshUnit(UnitDto unit, List<UserDto> users) {
@@ -92,7 +92,15 @@ private String[] getUserIds(List<UnitDto> units) {
9292

9393
@Override
9494
public int queryUnitsCount(@RequestBody UnitDto unitDto) {
95-
return unitServiceDaoImpl.queryUnitsCount(BeanConvertUtil.beanCovertMap(unitDto)); }
95+
return unitServiceDaoImpl.queryUnitsCount(BeanConvertUtil.beanCovertMap(unitDto));
96+
}
97+
98+
@Override
99+
public List<UnitDto> queryUnitsByCommunityId(UnitDto unitDto) {
100+
List<UnitDto> units = BeanConvertUtil.covertBeanList(unitServiceDaoImpl.queryUnitsByCommunityId(BeanConvertUtil.beanCovertMap(unitDto)), UnitDto.class);
101+
return units;
102+
}
103+
96104

97105
public IUnitServiceDao getUnitServiceDaoImpl() {
98106
return unitServiceDaoImpl;

WebService/src/main/java/com/java110/web/components/room/AddRoomComponent.java

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.java110.web.components.room;
22

33
import com.java110.core.context.IPageData;
4+
import com.java110.web.smo.IRoomServiceSMO;
45
import com.java110.web.smo.IUnitServiceSMO;
56
import org.springframework.beans.factory.annotation.Autowired;
67
import org.springframework.http.ResponseEntity;
@@ -20,6 +21,9 @@ public class AddRoomComponent {
2021
@Autowired
2122
private IUnitServiceSMO unitServiceSMOImpl;
2223

24+
@Autowired
25+
private IRoomServiceSMO roomServiceSMOImpl;
26+
2327
/**
2428
* 根据 floorId 查询单元信息
2529
*
@@ -30,6 +34,16 @@ public ResponseEntity<String> loadUnits(IPageData pd) {
3034
return unitServiceSMOImpl.listUnits(pd);
3135
}
3236

37+
/**
38+
* 保存房屋信息
39+
*
40+
* @param pd 房屋信息
41+
* @return 单元信息
42+
*/
43+
public ResponseEntity<String> save(IPageData pd) {
44+
return roomServiceSMOImpl.saveRoom(pd);
45+
}
46+
3347

3448
public IUnitServiceSMO getUnitServiceSMOImpl() {
3549
return unitServiceSMOImpl;
@@ -38,4 +52,12 @@ public IUnitServiceSMO getUnitServiceSMOImpl() {
3852
public void setUnitServiceSMOImpl(IUnitServiceSMO unitServiceSMOImpl) {
3953
this.unitServiceSMOImpl = unitServiceSMOImpl;
4054
}
55+
56+
public IRoomServiceSMO getRoomServiceSMOImpl() {
57+
return roomServiceSMOImpl;
58+
}
59+
60+
public void setRoomServiceSMOImpl(IRoomServiceSMO roomServiceSMOImpl) {
61+
this.roomServiceSMOImpl = roomServiceSMOImpl;
62+
}
4163
}

0 commit comments

Comments
 (0)