Skip to content

Commit f02ebf8

Browse files
committed
开发首页欠费信息
1 parent 68a0bed commit f02ebf8

20 files changed

Lines changed: 580 additions & 40 deletions

File tree

Lines changed: 223 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,223 @@
1+
package com.java110.api.listener.fee;
2+
3+
4+
import com.alibaba.fastjson.JSONObject;
5+
import com.java110.api.listener.AbstractServiceApiDataFlowListener;
6+
import com.java110.common.constant.FeeTypeConstant;
7+
import com.java110.common.constant.ResponseConstant;
8+
import com.java110.common.constant.ServiceCodeConstant;
9+
import com.java110.common.exception.ListenerExecuteException;
10+
import com.java110.common.util.Assert;
11+
import com.java110.common.util.BeanConvertUtil;
12+
import com.java110.common.util.DateUtil;
13+
import com.java110.core.annotation.Java110Listener;
14+
import com.java110.core.context.DataFlowContext;
15+
import com.java110.core.smo.fee.IFeeInnerServiceSMO;
16+
import com.java110.core.smo.floor.IFloorInnerServiceSMO;
17+
import com.java110.core.smo.owner.IOwnerInnerServiceSMO;
18+
import com.java110.core.smo.owner.IOwnerRoomRelInnerServiceSMO;
19+
import com.java110.core.smo.room.IRoomInnerServiceSMO;
20+
import com.java110.core.smo.unit.IUnitInnerServiceSMO;
21+
import com.java110.dto.FeeDto;
22+
import com.java110.dto.OwnerDto;
23+
import com.java110.dto.OwnerRoomRelDto;
24+
import com.java110.dto.RoomDto;
25+
import com.java110.event.service.api.ServiceDataFlowEvent;
26+
import com.java110.vo.api.ApiArrearsFeeDataVo;
27+
import com.java110.vo.api.ApiArrearsFeeVo;
28+
import com.java110.vo.api.ApiFeeVo;
29+
import org.springframework.beans.factory.annotation.Autowired;
30+
import org.springframework.http.HttpMethod;
31+
import org.springframework.http.HttpStatus;
32+
import org.springframework.http.ResponseEntity;
33+
34+
import java.util.ArrayList;
35+
import java.util.List;
36+
37+
/**
38+
* @ClassName FloorDto
39+
* @Description 小区楼数据层侦听类
40+
* @Author wuxw
41+
* @Date 2019/4/24 8:52
42+
* @Version 1.0
43+
* add by wuxw 2019/4/24
44+
**/
45+
@Java110Listener("queryArrearsFee")
46+
public class QueryArrearsFeeListener extends AbstractServiceApiDataFlowListener {
47+
48+
@Autowired
49+
private IFeeInnerServiceSMO feeInnerServiceSMOImpl;
50+
51+
@Autowired
52+
private IRoomInnerServiceSMO roomInnerServiceSMOImpl;
53+
54+
@Autowired
55+
private IUnitInnerServiceSMO unitInnerServiceSMOImpl;
56+
57+
@Autowired
58+
private IFloorInnerServiceSMO floorInnerServiceSMOImpl;
59+
60+
@Autowired
61+
private IOwnerInnerServiceSMO ownerInnerServiceSMOImpl;
62+
63+
@Autowired
64+
private IOwnerRoomRelInnerServiceSMO ownerRoomRelInnerServiceSMOImpl;
65+
66+
@Override
67+
public String getServiceCode() {
68+
return ServiceCodeConstant.SERVICE_CODE_QUERY_ARREARS_FEE;
69+
}
70+
71+
@Override
72+
public HttpMethod getHttpMethod() {
73+
return HttpMethod.GET;
74+
}
75+
76+
/**
77+
* 业务层数据处理
78+
*
79+
* @param event 时间对象
80+
*/
81+
@Override
82+
public void soService(ServiceDataFlowEvent event) {
83+
DataFlowContext dataFlowContext = event.getDataFlowContext();
84+
//获取请求数据
85+
JSONObject reqJson = dataFlowContext.getReqJson();
86+
validateFeeData(reqJson);
87+
FeeDto feeDtoParamIn = BeanConvertUtil.covertBean(reqJson, FeeDto.class);
88+
feeDtoParamIn.setArrearsEndTime(DateUtil.getCurrentDate());
89+
90+
//车位时处理为 查询多个
91+
if(FeeTypeConstant.FEE_TYPE_HIRE_PARKING_SPACE.equals(feeDtoParamIn.getFeeTypeCd())){
92+
feeDtoParamIn.setFeeTypeCd("");
93+
feeDtoParamIn.setFeeTypeCds(new String[]{FeeTypeConstant.FEE_TYPE_HIRE_DOWN_PARKING_SPACE,
94+
FeeTypeConstant.FEE_TYPE_HIRE_UP_PARKING_SPACE});
95+
}
96+
97+
int feeCount = feeInnerServiceSMOImpl.queryFeesCount(feeDtoParamIn);
98+
ResponseEntity<String> responseEntity = null;
99+
if (feeCount == 0) {
100+
responseEntity = new ResponseEntity<String>(JSONObject.toJSONString(new ApiArrearsFeeVo()), HttpStatus.OK);
101+
dataFlowContext.setResponseEntity(responseEntity);
102+
return;
103+
}
104+
105+
List<FeeDto> feeDtos = feeInnerServiceSMOImpl.queryFees(feeDtoParamIn);
106+
107+
List<ApiArrearsFeeDataVo> apiFeeVo = BeanConvertUtil.covertBeanList(feeDtos, ApiArrearsFeeDataVo.class);
108+
109+
String[] objIds = this.getObjIds(feeDtos);
110+
111+
if (FeeTypeConstant.FEE_TYPE_PROPERTY.equals(feeDtoParamIn.getFeeTypeCd())) {
112+
113+
OwnerDto ownerDto = new OwnerDto();
114+
ownerDto.setRoomIds(objIds);
115+
List<OwnerDto> ownerDtos = ownerInnerServiceSMOImpl.queryOwnersByRoom(ownerDto);
116+
freshRoomAndOwnerData(apiFeeVo, ownerDtos);
117+
} else {
118+
119+
}
120+
121+
122+
responseEntity = new ResponseEntity<String>(JSONObject.toJSONString(apiFeeVo), HttpStatus.OK);
123+
124+
125+
dataFlowContext.setResponseEntity(responseEntity);
126+
}
127+
128+
/**
129+
* 刷新 房间号
130+
*
131+
* @param apiFeeVos 费用出参对象
132+
* @param ownerDtos 房屋信息
133+
*/
134+
private void freshRoomAndOwnerData(List<ApiArrearsFeeDataVo> apiFeeVos, List<OwnerDto> ownerDtos) {
135+
136+
for (ApiArrearsFeeDataVo apiFeeVo : apiFeeVos) {
137+
for (OwnerDto ownerDto : ownerDtos) {
138+
if(apiFeeVo.getPayerObjId().equals(ownerDto.getRoomId())){
139+
apiFeeVo.setNum(ownerDto.getRoomNum());
140+
apiFeeVo.setOwnerName(ownerDto.getName());
141+
apiFeeVo.setTel(ownerDto.getLink());
142+
}
143+
}
144+
}
145+
}
146+
147+
/**
148+
* 校验查询条件是否满足条件
149+
*
150+
* @param reqJson 包含查询条件
151+
*/
152+
private void validateFeeData(JSONObject reqJson) {
153+
Assert.jsonObjectHaveKey(reqJson, "communityId", "请求中未包含communityId信息");
154+
Assert.jsonObjectHaveKey(reqJson, "feeTypeCd", "请求中未包含feeTypeCd信息");
155+
156+
}
157+
158+
private String[] getObjIds(List<FeeDto> feeDtos) {
159+
List<String> objIds = new ArrayList<String>();
160+
for (FeeDto feeDto : feeDtos) {
161+
objIds.add(feeDto.getPayerObjId());
162+
}
163+
164+
return objIds.toArray(new String[objIds.size()]);
165+
}
166+
167+
@Override
168+
public int getOrder() {
169+
return super.DEFAULT_ORDER;
170+
}
171+
172+
public IFeeInnerServiceSMO getFeeInnerServiceSMOImpl() {
173+
return feeInnerServiceSMOImpl;
174+
}
175+
176+
public void setFeeInnerServiceSMOImpl(IFeeInnerServiceSMO feeInnerServiceSMOImpl) {
177+
this.feeInnerServiceSMOImpl = feeInnerServiceSMOImpl;
178+
}
179+
180+
181+
public IRoomInnerServiceSMO getRoomInnerServiceSMOImpl() {
182+
return roomInnerServiceSMOImpl;
183+
}
184+
185+
public void setRoomInnerServiceSMOImpl(IRoomInnerServiceSMO roomInnerServiceSMOImpl) {
186+
this.roomInnerServiceSMOImpl = roomInnerServiceSMOImpl;
187+
}
188+
189+
190+
public IFloorInnerServiceSMO getFloorInnerServiceSMOImpl() {
191+
return floorInnerServiceSMOImpl;
192+
}
193+
194+
public void setFloorInnerServiceSMOImpl(IFloorInnerServiceSMO floorInnerServiceSMOImpl) {
195+
this.floorInnerServiceSMOImpl = floorInnerServiceSMOImpl;
196+
}
197+
198+
public IUnitInnerServiceSMO getUnitInnerServiceSMOImpl() {
199+
return unitInnerServiceSMOImpl;
200+
}
201+
202+
public void setUnitInnerServiceSMOImpl(IUnitInnerServiceSMO unitInnerServiceSMOImpl) {
203+
this.unitInnerServiceSMOImpl = unitInnerServiceSMOImpl;
204+
}
205+
206+
public IOwnerInnerServiceSMO getOwnerInnerServiceSMOImpl() {
207+
return ownerInnerServiceSMOImpl;
208+
}
209+
210+
public void setOwnerInnerServiceSMOImpl(IOwnerInnerServiceSMO ownerInnerServiceSMOImpl) {
211+
this.ownerInnerServiceSMOImpl = ownerInnerServiceSMOImpl;
212+
}
213+
214+
public IOwnerRoomRelInnerServiceSMO getOwnerRoomRelInnerServiceSMOImpl() {
215+
return ownerRoomRelInnerServiceSMOImpl;
216+
}
217+
218+
public void setOwnerRoomRelInnerServiceSMOImpl(IOwnerRoomRelInnerServiceSMO ownerRoomRelInnerServiceSMOImpl) {
219+
this.ownerRoomRelInnerServiceSMOImpl = ownerRoomRelInnerServiceSMOImpl;
220+
}
221+
222+
223+
}

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

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,4 +98,12 @@ public interface IOwnerServiceDao {
9898
*/
9999
int queryNoEnterRoomOwnerCount(Map info);
100100

101+
/**
102+
* 根据房屋查询业主信息
103+
* @param info 房屋信息
104+
* @return 业主信息
105+
* @throws DAOException 异常信息
106+
*/
107+
List<Map> queryOwnersByRoom(Map info) throws DAOException;
108+
101109
}

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

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -176,5 +176,14 @@ public int queryNoEnterRoomOwnerCount(Map info) {
176176
return Integer.parseInt(businessOwnerInfos.get(0).get("count").toString());
177177
}
178178

179+
@Override
180+
public List<Map> queryOwnersByRoom(Map info) throws DAOException {
181+
logger.debug("queryOwnersByRoom 入参 info : {}", info);
182+
183+
List<Map> businessOwnerInfos = sqlSessionTemplate.selectList("ownerServiceDaoImpl.queryOwnersByRoom", info);
184+
185+
return businessOwnerInfos;
186+
}
187+
179188

180189
}

UserService/src/main/java/com/java110/user/smo/impl/OwnerInnerServiceSMOImpl.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -200,6 +200,11 @@ public int queryNoEnterRoomOwnerCount(OwnerDto ownerDto) {
200200
return ownerServiceDaoImpl.queryNoEnterRoomOwnerCount(BeanConvertUtil.beanCovertMap(ownerDto));
201201
}
202202

203+
@Override
204+
public List<OwnerDto> queryOwnersByRoom(OwnerDto ownerDto) {
205+
return BeanConvertUtil.covertBeanList(ownerServiceDaoImpl.queryOwnersByRoom(BeanConvertUtil.beanCovertMap(ownerDto)),OwnerDto.class);
206+
}
207+
203208
public IUserInnerServiceSMO getUserInnerServiceSMOImpl() {
204209
return userInnerServiceSMOImpl;
205210
}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
package com.java110.web.components.fee;
2+
3+
import com.java110.core.context.IPageData;
4+
import com.java110.web.smo.IFeeServiceSMO;
5+
import org.springframework.beans.factory.annotation.Autowired;
6+
import org.springframework.http.ResponseEntity;
7+
import org.springframework.stereotype.Component;
8+
9+
/**
10+
* @ClassName ListArrearsComponent
11+
* @Description TODO
12+
* @Author wuxw
13+
* @Date 2019/6/18 19:11
14+
* @Version 1.0
15+
* add by wuxw 2019/6/18
16+
**/
17+
18+
@Component("listArrears")
19+
public class ListArrearsComponent {
20+
21+
@Autowired
22+
private IFeeServiceSMO feeServiceSMOImpl;
23+
24+
public ResponseEntity<String> list(IPageData pd) {
25+
return feeServiceSMOImpl.listArrearsFee(pd);
26+
}
27+
28+
29+
public IFeeServiceSMO getFeeServiceSMOImpl() {
30+
return feeServiceSMOImpl;
31+
}
32+
33+
public void setFeeServiceSMOImpl(IFeeServiceSMO feeServiceSMOImpl) {
34+
this.feeServiceSMOImpl = feeServiceSMOImpl;
35+
}
36+
}

WebService/src/main/java/com/java110/web/smo/IFeeServiceSMO.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,12 @@ public interface IFeeServiceSMO {
7373
*/
7474
ResponseEntity<String> saveOrUpdateParkingSpaceFeeConfig(IPageData pd);
7575

76+
/**
77+
* 查询费用信息
78+
* @param pd 页面数据封装
79+
* @return 费用信息
80+
*/
81+
ResponseEntity<String> listArrearsFee(IPageData pd);
7682

7783

7884
}

WebService/src/main/java/com/java110/web/smo/impl/FeeServiceSMOImpl.java

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -319,6 +319,34 @@ public ResponseEntity<String> saveOrUpdateParkingSpaceFeeConfig(IPageData pd) {
319319
return responseEntity;
320320
}
321321

322+
@Override
323+
public ResponseEntity<String> listArrearsFee(IPageData pd) {
324+
validateListFee(pd);
325+
326+
//校验员工是否有权限操作
327+
//super.checkUserHasPrivilege(pd, restTemplate, PrivilegeCodeConstant.PRIVILEGE_PARKING_SPACE_CONFIG_FEE);
328+
329+
JSONObject paramIn = JSONObject.parseObject(pd.getReqData());
330+
String communityId = paramIn.getString("communityId");
331+
ResponseEntity responseEntity = super.getStoreInfo(pd, restTemplate);
332+
if (responseEntity.getStatusCode() != HttpStatus.OK) {
333+
return responseEntity;
334+
}
335+
Assert.jsonObjectHaveKey(responseEntity.getBody().toString(), "storeId", "根据用户ID查询商户ID失败,未包含storeId节点");
336+
Assert.jsonObjectHaveKey(responseEntity.getBody().toString(), "storeTypeCd", "根据用户ID查询商户类型失败,未包含storeTypeCd节点");
337+
338+
String storeId = JSONObject.parseObject(responseEntity.getBody().toString()).getString("storeId");
339+
String storeTypeCd = JSONObject.parseObject(responseEntity.getBody().toString()).getString("storeTypeCd");
340+
//数据校验是否 商户是否入驻该小区
341+
super.checkStoreEnterCommunity(pd, storeId, storeTypeCd, communityId, restTemplate);
342+
343+
responseEntity = this.callCenterService(restTemplate, pd, paramIn.toJSONString(),
344+
ServiceConstant.SERVICE_API_URL + "/api/fee.queryArrearsFee",
345+
HttpMethod.POST);
346+
347+
return responseEntity;
348+
}
349+
322350

323351
private void validateLoadFee(IPageData pd) {
324352
Assert.jsonObjectHaveKey(pd.getReqData(), "communityId", "请求报文中未包含communityId节点");
@@ -342,6 +370,16 @@ private void validateLoadParkingSpaceFee(IPageData pd) {
342370
}
343371

344372

373+
private void validateListFee(IPageData pd){
374+
Assert.jsonObjectHaveKey(pd.getReqData(), "communityId", "请求报文中未包含communityId节点");
375+
Assert.jsonObjectHaveKey(pd.getReqData(), "feeTypeCd", "请求报文中未包含feeTypeCd节点");
376+
377+
JSONObject paramIn = JSONObject.parseObject(pd.getReqData());
378+
Assert.hasLength(paramIn.getString("communityId"), "小区ID不能为空");
379+
Assert.hasLength(paramIn.getString("feeTypeCd"), "停车位feeTypeCd不能为空");
380+
}
381+
382+
345383
/**
346384
* 校验缴费参数
347385
*

0 commit comments

Comments
 (0)