QueryAdminOwnerAccountCmd.java 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  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.queryAdminOwnerAccount")
  32. public class QueryAdminOwnerAccountCmd 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. super.validatePageInfo(reqJson);
  48. super.validateAdmin(context);
  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. *
  77. * @param reqJson
  78. * @param accountDto
  79. */
  80. private void hasFeeId(JSONObject reqJson, AccountDto accountDto) {
  81. if (!reqJson.containsKey("feeId")) {
  82. return;
  83. }
  84. String feeId = reqJson.getString("feeId");
  85. if (StringUtil.isEmpty(feeId)) {
  86. return;
  87. }
  88. String ownerId = "";
  89. FeeDto feeDto = new FeeDto();
  90. feeDto.setFeeId(feeId);
  91. List<FeeDto> feeDtos = feeInnerServiceSMOImpl.queryFees(feeDto);
  92. Assert.listOnlyOne(feeDtos, "查询费用信息错误!");
  93. //获取付费对象类型(3333 房屋 6666 是车位)
  94. String payerObjType = feeDtos.get(0).getPayerObjType();
  95. //获取付费对象id
  96. String payerObjId = feeDtos.get(0).getPayerObjId();
  97. if (FeeDto.PAYER_OBJ_TYPE_ROOM.equals(payerObjType)) { //房屋
  98. OwnerRoomRelDto ownerRoomRelDto = new OwnerRoomRelDto();
  99. ownerRoomRelDto.setRoomId(payerObjId);
  100. List<OwnerRoomRelDto> ownerRoomRelDtos = ownerRoomRelInnerServiceSMOImpl.queryOwnerRoomRels(ownerRoomRelDto);
  101. if (ListUtil.isNull(ownerRoomRelDtos)) {
  102. throw new CmdException("房屋未绑定业主关系");
  103. }
  104. ownerId = ownerRoomRelDtos.get(0).getOwnerId();
  105. } else if (FeeDto.PAYER_OBJ_TYPE_CAR.equals(payerObjType)) {
  106. OwnerCarDto ownerCarDto = new OwnerCarDto();
  107. ownerCarDto.setCarId(payerObjId);
  108. List<OwnerCarDto> ownerCarDtos = ownerCarInnerServiceSMOImpl.queryOwnerCars(ownerCarDto);
  109. // Assert.listOnlyOne(ownerCarDtos, "查询业主车辆关系表错误!");
  110. ownerId = ownerCarDtos.get(0).getOwnerId();
  111. } else if (FeeDto.PAYER_OBJ_TYPE_CONTRACT.equals(payerObjType)) {
  112. ContractDto contractDto = new ContractDto();
  113. contractDto.setContractId(payerObjId);
  114. List<ContractDto> contractDtos = contractInnerServiceSMOImpl.queryContracts(contractDto);
  115. // Assert.listOnlyOne(ownerCarDtos, "查询业主车辆关系表错误!");
  116. ownerId = contractDtos.get(0).getObjId();
  117. } else {
  118. ownerId = "-1";
  119. }
  120. accountDto.setObjId(ownerId);
  121. }
  122. }