QueryCommunityOwnerAccountCmd.java 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. package com.java110.acct.cmd.account;
  2. import com.alibaba.fastjson.JSONObject;
  3. import com.java110.acct.bmo.account.IGetAccountBMO;
  4. import com.java110.core.annotation.Java110Cmd;
  5. import com.java110.core.context.ICmdDataFlowContext;
  6. import com.java110.core.event.cmd.Cmd;
  7. import com.java110.core.event.cmd.CmdEvent;
  8. import com.java110.core.smo.IOwnerGetDataCheck;
  9. import com.java110.dto.account.AccountDto;
  10. import com.java110.dto.contract.ContractDto;
  11. import com.java110.dto.fee.FeeDto;
  12. import com.java110.dto.owner.OwnerCarDto;
  13. import com.java110.dto.owner.OwnerDto;
  14. import com.java110.dto.owner.OwnerRoomRelDto;
  15. import com.java110.intf.fee.IFeeInnerServiceSMO;
  16. import com.java110.intf.store.IContractInnerServiceSMO;
  17. import com.java110.intf.user.IOwnerCarInnerServiceSMO;
  18. import com.java110.intf.user.IOwnerRoomRelInnerServiceSMO;
  19. import com.java110.utils.exception.CmdException;
  20. import com.java110.utils.util.Assert;
  21. import com.java110.utils.util.BeanConvertUtil;
  22. import com.java110.utils.util.ListUtil;
  23. import com.java110.utils.util.StringUtil;
  24. import org.springframework.beans.factory.annotation.Autowired;
  25. import org.springframework.http.ResponseEntity;
  26. import java.text.ParseException;
  27. import java.util.List;
  28. /**
  29. * 查询账户
  30. */
  31. @Java110Cmd(serviceCode = "account.queryCommunityOwnerAccount")
  32. public class QueryCommunityOwnerAccountCmd extends Cmd {
  33. @Autowired
  34. private IFeeInnerServiceSMO feeInnerServiceSMOImpl;
  35. @Autowired
  36. private IOwnerRoomRelInnerServiceSMO ownerRoomRelInnerServiceSMOImpl;
  37. @Autowired
  38. private IOwnerCarInnerServiceSMO ownerCarInnerServiceSMOImpl;
  39. @Autowired
  40. private IContractInnerServiceSMO contractInnerServiceSMOImpl;
  41. @Autowired
  42. private IOwnerGetDataCheck ownerGetDataCheckImpl;
  43. @Autowired
  44. private IGetAccountBMO getAccountBMOImpl;
  45. @Override
  46. public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
  47. Assert.hasKeyAndValue(reqJson, "communityId", "未包含小区");
  48. super.validatePageInfo(reqJson);
  49. }
  50. @Override
  51. public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
  52. AccountDto accountDto = BeanConvertUtil.covertBean(reqJson, AccountDto.class);
  53. hasFeeId(reqJson, accountDto);
  54. String ownerId = reqJson.getString("ownerId");
  55. if (!StringUtil.isEmpty(ownerId)) {
  56. accountDto.setObjId(ownerId);
  57. }
  58. accountDto.setObjType(AccountDto.OBJ_TYPE_PERSON);
  59. accountDto.setPartId(reqJson.getString("communityId"));
  60. String acctTypes = reqJson.getString("acctTypes");
  61. if (!StringUtil.isNullOrNone(acctTypes)) {
  62. accountDto.setAcctTypes(acctTypes.split(","));
  63. }
  64. //todo 业主账户安全性校验
  65. // ownerGetDataCheckImpl.checkOwnerAccount(appId, userId, BeanConvertUtil.beanCovertJson(accountDto));
  66. OwnerDto ownerDto = new OwnerDto();
  67. ownerDto.setOwnerId(accountDto.getObjId());
  68. ownerDto.setCommunityId(reqJson.getString("communityId"));
  69. ownerDto.setLink(reqJson.getString("link"));
  70. ownerDto.setIdCard(reqJson.getString("idCard"));
  71. ResponseEntity<String> responseEntity = getAccountBMOImpl.queryOwnerAccount(accountDto, ownerDto);
  72. context.setResponseEntity(responseEntity);
  73. }
  74. /**
  75. * 判断参数中是否有feeId
  76. * @param reqJson
  77. * @param accountDto
  78. */
  79. private void hasFeeId(JSONObject reqJson, AccountDto accountDto) {
  80. if (!reqJson.containsKey("feeId")) {
  81. return;
  82. }
  83. String feeId = reqJson.getString("feeId");
  84. if (StringUtil.isEmpty(feeId)) {
  85. return;
  86. }
  87. String ownerId = "";
  88. FeeDto feeDto = new FeeDto();
  89. feeDto.setFeeId(feeId);
  90. List<FeeDto> feeDtos = feeInnerServiceSMOImpl.queryFees(feeDto);
  91. Assert.listOnlyOne(feeDtos, "查询费用信息错误!");
  92. //获取付费对象类型(3333 房屋 6666 是车位)
  93. String payerObjType = feeDtos.get(0).getPayerObjType();
  94. //获取付费对象id
  95. String payerObjId = feeDtos.get(0).getPayerObjId();
  96. if (FeeDto.PAYER_OBJ_TYPE_ROOM.equals(payerObjType)) { //房屋
  97. OwnerRoomRelDto ownerRoomRelDto = new OwnerRoomRelDto();
  98. ownerRoomRelDto.setRoomId(payerObjId);
  99. List<OwnerRoomRelDto> ownerRoomRelDtos = ownerRoomRelInnerServiceSMOImpl.queryOwnerRoomRels(ownerRoomRelDto);
  100. if(ListUtil.isNull(ownerRoomRelDtos)){
  101. throw new CmdException("房屋未绑定业主关系");
  102. }
  103. ownerId = ownerRoomRelDtos.get(0).getOwnerId();
  104. } else if (FeeDto.PAYER_OBJ_TYPE_CAR.equals(payerObjType)) {
  105. OwnerCarDto ownerCarDto = new OwnerCarDto();
  106. ownerCarDto.setCarId(payerObjId);
  107. List<OwnerCarDto> ownerCarDtos = ownerCarInnerServiceSMOImpl.queryOwnerCars(ownerCarDto);
  108. // Assert.listOnlyOne(ownerCarDtos, "查询业主车辆关系表错误!");
  109. ownerId = ownerCarDtos.get(0).getOwnerId();
  110. } else if (FeeDto.PAYER_OBJ_TYPE_CONTRACT.equals(payerObjType)) {
  111. ContractDto contractDto = new ContractDto();
  112. contractDto.setContractId(payerObjId);
  113. List<ContractDto> contractDtos = contractInnerServiceSMOImpl.queryContracts(contractDto);
  114. // Assert.listOnlyOne(ownerCarDtos, "查询业主车辆关系表错误!");
  115. ownerId = contractDtos.get(0).getObjId();
  116. } else {
  117. ownerId = "-1";
  118. }
  119. accountDto.setObjId(ownerId);
  120. }
  121. }