| | |
| | | import com.java110.core.event.cmd.Cmd; |
| | | import com.java110.core.event.cmd.CmdEvent; |
| | | import com.java110.dto.fee.FeeConfigDto; |
| | | import com.java110.intf.fee.IFeeConfigInnerServiceSMO; |
| | | import com.java110.intf.fee.IPayFeeConfigV1InnerServiceSMO; |
| | | import com.java110.dto.fee.FeeDto; |
| | | import com.java110.dto.payFee.PayFeeRuleDto; |
| | | import com.java110.intf.fee.*; |
| | | import com.java110.po.fee.PayFeeConfigPo; |
| | | import com.java110.po.fee.PayFeePo; |
| | | import com.java110.utils.exception.CmdException; |
| | | import com.java110.utils.util.Assert; |
| | | import com.java110.utils.util.BeanConvertUtil; |
| | |
| | | |
| | | @Autowired |
| | | private IFeeConfigInnerServiceSMO feeConfigInnerServiceSMOImpl; |
| | | |
| | | @Autowired |
| | | private IFeeInnerServiceSMO feeInnerServiceSMO; |
| | | |
| | | @Autowired |
| | | private IPayFeeRuleV1InnerServiceSMO payFeeRuleV1InnerServiceSMOImpl; |
| | | |
| | | @Autowired |
| | | private IPayFeeV1InnerServiceSMO payFeeV1InnerServiceSMOImpl; |
| | | |
| | | @Override |
| | | public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) throws CmdException { |
| | |
| | | feeConfigDto.setConfigId(reqJson.getString("configId")); |
| | | List<FeeConfigDto> feeConfigDtos = feeConfigInnerServiceSMOImpl.queryFeeConfigs(feeConfigDto); |
| | | Assert.listOnlyOne(feeConfigDtos, "未找到该费用项"); |
| | | // int validCount = feeInnerServiceSMO.countValidPayFeeByConfigId(reqJson.getString("configId")); |
| | | // if (validCount > 0) { |
| | | // throw new CmdException("关联生效中费用,无法修改,请撤销关联费用后重试!"); |
| | | // } |
| | | JSONObject businessFeeConfig = new JSONObject(); |
| | | businessFeeConfig.putAll(reqJson); |
| | | businessFeeConfig.put("isDefault", feeConfigDtos.get(0).getIsDefault()); |
| | | PayFeeConfigPo payFeeConfigPo = BeanConvertUtil.covertBean(businessFeeConfig, PayFeeConfigPo.class); |
| | | if("NA".equals(payFeeConfigPo.getState())){ |
| | | payFeeConfigPo.setState("N"); |
| | | } |
| | | int flag = payFeeConfigV1InnerServiceSMOImpl.updatePayFeeConfig(payFeeConfigPo); |
| | | if (flag < 1) { |
| | | throw new CmdException("修改费用项失败"); |
| | | } |
| | | cmdDataFlowContext.setResponseEntity(ResultVo.success()); |
| | | |
| | | //todo 结束费用 |
| | | finishFee(reqJson,feeConfigDtos); |
| | | |
| | | //todo 修改费用标识 |
| | | if (!reqJson.containsKey("feeFlag")) { |
| | | return; |
| | | } |
| | | String feeFlag = reqJson.getString("feeFlag"); |
| | | //todo 说明没有修改费用项标识 |
| | | if (feeFlag.equals(feeConfigDtos.get(0).getFeeFlag())) { |
| | | return; |
| | | } |
| | | |
| | | // todo 检查是否为账单模式,也就是在 poy_fee_rule 中是否有数据,这里有数据不让修改 |
| | | PayFeeRuleDto payFeeRuleDto = new PayFeeRuleDto(); |
| | | payFeeRuleDto.setConfigId(feeConfigDtos.get(0).getConfigId()); |
| | | payFeeRuleDto.setCommunityId(reqJson.getString("communityId")); |
| | | int count = payFeeRuleV1InnerServiceSMOImpl.queryPayFeeRulesCount(payFeeRuleDto); |
| | | if (count > 0) { |
| | | return; |
| | | } |
| | | |
| | | PayFeePo payFeePo = new PayFeePo(); |
| | | payFeePo.setConfigId(feeConfigDtos.get(0).getConfigId()); |
| | | payFeePo.setFeeFlag(reqJson.getString("feeFlag")); |
| | | |
| | | payFeeV1InnerServiceSMOImpl.updatePayFee(payFeePo); |
| | | } |
| | | |
| | | /** |
| | | * 结束费用 |
| | | * @param reqJson |
| | | * @param feeConfigDtos |
| | | */ |
| | | private void finishFee(JSONObject reqJson, List<FeeConfigDto> feeConfigDtos) { |
| | | String state = reqJson.getString("state"); |
| | | if(!"NA".equals(state)){ |
| | | return; |
| | | } |
| | | PayFeePo payFeePo = new PayFeePo(); |
| | | payFeePo.setConfigId(feeConfigDtos.get(0).getConfigId()); |
| | | payFeePo.setState(FeeDto.STATE_FINISH); |
| | | |
| | | payFeeV1InnerServiceSMOImpl.updatePayFee(payFeePo); |
| | | |
| | | } |
| | | } |