QueryAdminFeeDetailCmd.java 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. package com.java110.fee.cmd.fee;
  2. import com.alibaba.fastjson.JSONObject;
  3. import com.java110.core.annotation.Java110Cmd;
  4. import com.java110.core.context.ICmdDataFlowContext;
  5. import com.java110.core.event.cmd.Cmd;
  6. import com.java110.core.event.cmd.CmdEvent;
  7. import com.java110.dto.fee.FeeAccountDetailDto;
  8. import com.java110.dto.fee.FeeDetailDto;
  9. import com.java110.dto.payFee.PayFeeDetailDiscountDto;
  10. import com.java110.intf.fee.IFeeAccountDetailServiceSMO;
  11. import com.java110.intf.fee.IFeeDetailInnerServiceSMO;
  12. import com.java110.intf.fee.IPayFeeDetailDiscountInnerServiceSMO;
  13. import com.java110.utils.exception.CmdException;
  14. import com.java110.utils.util.Assert;
  15. import com.java110.utils.util.BeanConvertUtil;
  16. import com.java110.utils.util.DateUtil;
  17. import com.java110.utils.util.StringUtil;
  18. import com.java110.vo.api.ApiFeeDetailDataVo;
  19. import com.java110.vo.api.ApiFeeDetailVo;
  20. import org.springframework.beans.factory.annotation.Autowired;
  21. import org.springframework.http.HttpStatus;
  22. import org.springframework.http.ResponseEntity;
  23. import java.util.ArrayList;
  24. import java.util.List;
  25. /**
  26. * 查询缴费历史
  27. */
  28. @Java110Cmd(serviceCode = "fee.queryAdminFeeDetail")
  29. public class QueryAdminFeeDetailCmd extends Cmd {
  30. @Autowired
  31. private IFeeDetailInnerServiceSMO feeDetailInnerServiceSMOImpl;
  32. @Autowired
  33. private IFeeAccountDetailServiceSMO feeAccountDetailServiceSMOImpl;
  34. @Autowired
  35. private IPayFeeDetailDiscountInnerServiceSMO payFeeDetailDiscountInnerServiceSMOImpl;
  36. @Override
  37. public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException {
  38. super.validatePageInfo(reqJson);
  39. super.validateAdmin(context);
  40. if (!StringUtil.isEmpty(reqJson.getString("startTime"))) {
  41. String startTime = reqJson.getString("startTime") + " 00:00:00";
  42. reqJson.put("startTime", startTime);
  43. } else {
  44. reqJson.put("startTime", null);
  45. }
  46. //获取结束时间
  47. if (!StringUtil.isEmpty(reqJson.getString("endTime"))) {
  48. String endTime = reqJson.getString("endTime") + " 23:59:59";
  49. reqJson.put("endTime", endTime);
  50. } else {
  51. reqJson.put("endTime", null);
  52. }
  53. }
  54. @Override
  55. public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException {
  56. //查询总记录数
  57. ApiFeeDetailVo apiFeeDetailVo = new ApiFeeDetailVo();
  58. FeeDetailDto feeDetailDto = BeanConvertUtil.covertBean(reqJson, FeeDetailDto.class);
  59. int total = feeDetailInnerServiceSMOImpl.queryFeeDetailsCount(feeDetailDto);
  60. apiFeeDetailVo.setTotal(total);
  61. if (total > 0) {
  62. List<FeeDetailDto> feeDetailDtos = feeDetailInnerServiceSMOImpl.queryFeeDetails(BeanConvertUtil.covertBean(reqJson, FeeDetailDto.class));
  63. List<FeeDetailDto> feeDetailList = new ArrayList<>();
  64. for (FeeDetailDto feeDetail : feeDetailDtos) {
  65. //获取状态
  66. String state = feeDetail.getState();
  67. if ("1300".equals(state) || "1100".equals(state) || "1200".equals(state)) { //退费单、已退费、退费失败状态
  68. //获取周期
  69. String cycles = feeDetail.getCycles();
  70. if (!StringUtil.isEmpty(cycles) && cycles.contains("-")) {
  71. feeDetail.setCycles(cycles.substring(1));
  72. }
  73. //获取应收金额
  74. String receivableAmount = feeDetail.getReceivableAmount();
  75. if (!StringUtil.isEmpty(receivableAmount) && receivableAmount.contains("-")) {
  76. feeDetail.setReceivableAmount(receivableAmount.substring(1));
  77. }
  78. //获取实收金额
  79. String receivedAmount = feeDetail.getReceivedAmount();
  80. if (!StringUtil.isEmpty(receivedAmount) && receivedAmount.contains("-")) {
  81. feeDetail.setReceivedAmount(receivedAmount.substring(1));
  82. }
  83. }
  84. FeeAccountDetailDto feeAccountDetailDto = new FeeAccountDetailDto();
  85. feeAccountDetailDto.setDetailId(feeDetail.getDetailId());
  86. List<FeeAccountDetailDto> feeAccountDetailDtos = feeAccountDetailServiceSMOImpl.queryFeeAccountDetails(feeAccountDetailDto);
  87. feeDetail.setFeeAccountDetailDtoList(feeAccountDetailDtos);
  88. PayFeeDetailDiscountDto payFeeDetailDiscountDto = new PayFeeDetailDiscountDto();
  89. payFeeDetailDiscountDto.setDetailId(feeDetail.getDetailId());
  90. List<PayFeeDetailDiscountDto> payFeeDetailDiscountDtos = payFeeDetailDiscountInnerServiceSMOImpl.queryPayFeeDetailDiscounts(payFeeDetailDiscountDto);
  91. feeDetail.setPayFeeDetailDiscountDtoList(payFeeDetailDiscountDtos);
  92. feeDetailList.add(feeDetail);
  93. }
  94. List<ApiFeeDetailDataVo> feeDetails = BeanConvertUtil.covertBeanList(feeDetailList, ApiFeeDetailDataVo.class);
  95. apiFeeDetailVo.setFeeDetails(feeDetails);
  96. }
  97. int row = reqJson.getInteger("row");
  98. apiFeeDetailVo.setRecords((int) Math.ceil((double) total / (double) row));
  99. ResponseEntity<String> responseEntity = new ResponseEntity<String>(JSONObject.toJSONString(apiFeeDetailVo), HttpStatus.OK);
  100. context.setResponseEntity(responseEntity);
  101. }
  102. }