| | |
| | | seCardOperate.setClientId(clientId); |
| | | seCardOperate.setMoney(po.getBalance()); |
| | | seCardOperate.setRefundAmount(po.getSupplementMoney()); |
| | | seCardOperate.setOperateType(OperateTypeENUM.WRITE_BACK.getCode()); |
| | | seCardOperate.setOperateType(OperateTypeENUM.SUPPLEMENT.getCode()); |
| | | seCardOperate.setRemarks(po.getRemarks()); |
| | | seCardOperate.setOperator(po.getOperator()); |
| | | seCardOperate.setOperateDt(operateTime); |
| | |
| | | Integer operateType = po.getOperateType(); |
| | | String orderNumber = po.getOrderNumber(); |
| | | |
| | | // 先检查是否为管理卡 |
| | | if (operateType.equals(OperateTypeENUM.MANAGEMENT_CARD_WRITE.getCode().intValue())) { |
| | | // 管理类型卡写卡逻辑 |
| | | return handleManagementCardWrite(cardAddr, orderNumber); |
| | | } |
| | | |
| | | // 处理农户卡逻辑 |
| | | Long cardId = seClientCardMapper.getCardIdByAddr(cardAddr); |
| | | if (cardId == null || cardId.equals(0)) { |
| | | map.put("msg", "您指定的水卡不存在"); |
| | | return map; |
| | | } |
| | | |
| | | if (operateType == 1) { |
| | | if (operateType.equals(OperateTypeENUM.ACTIVE.getCode().intValue())) { |
| | | /** |
| | | * 开卡操作执行通知 |
| | | * 1.依据订单号将无效状态的操作记录改为有效 |
| | |
| | | turnRechargeHistoryValidByOrderNumber(orderNumber); |
| | | updateCard(cardId, orderNumber + "p"); |
| | | } |
| | | } else if (operateType == 2) { |
| | | } else if (operateType.equals(OperateTypeENUM.RECHARGE.getCode().intValue())) { |
| | | /** |
| | | * 充值操作执行通知 |
| | | * 1. 操作记录改为有效 |
| | |
| | | turnOperateValidByOrderNumber(orderNumber + "p"); |
| | | turnRechargeHistoryValidByOrderNumber(orderNumber); |
| | | updateCard(cardId, orderNumber + "p"); |
| | | } else if (operateType == 3) { |
| | | } else if (operateType.equals(OperateTypeENUM.CANCEL.getCode().intValue())) { |
| | | /** |
| | | * 销卡操作执行通知 |
| | | * 1. 操作记录改为有效 |
| | |
| | | return map; |
| | | } |
| | | |
| | | } else if (operateType == 4) { |
| | | } else if (operateType.equals(OperateTypeENUM.REISSUE.getCode().intValue())) { |
| | | /** |
| | | * 补卡操作执行通知 |
| | | * 1. 新水卡记录改为有效 |
| | |
| | | map.put("msg", "补卡回调失败"); |
| | | return map; |
| | | } |
| | | } else if (operateType == 5) { |
| | | } else if (operateType.equals(OperateTypeENUM.REFUND.getCode().intValue())) { |
| | | /** |
| | | * 补扣操作执行通知 |
| | | * 1. 操作记录改为有效 |
| | |
| | | map.put("msg", "补扣回调失败"); |
| | | return map; |
| | | } |
| | | } else if (operateType == 6) { |
| | | } else if (operateType.equals(OperateTypeENUM.SUPPLEMENT.getCode().intValue())) { |
| | | /** |
| | | * 返还操作执行通知 |
| | | * 1. 操作记录改为有效 |
| | |
| | | return map; |
| | | } |
| | | |
| | | /** |
| | | * 处理管理类型卡写卡回调 |
| | | * |
| | | * @param cardAddr 卡地址 |
| | | * @param orderNumber 订单号 |
| | | * @return 处理结果 |
| | | */ |
| | | private Map<String, Object> handleManagementCardWrite(String cardAddr, String orderNumber) { |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("success", false); |
| | | map.put("content", null); |
| | | |
| | | try { |
| | | // 根据卡地址和订单号查找管理卡 |
| | | SeManagementCard managementCard = seManagementCardMapper.selectOne( |
| | | com.baomidou.mybatisplus.core.toolkit.Wrappers.<SeManagementCard>lambdaQuery() |
| | | .eq(SeManagementCard::getCardAddr, cardAddr) |
| | | .eq(SeManagementCard::getOrderNo, orderNumber)); |
| | | |
| | | if (managementCard == null) { |
| | | map.put("msg", "未找到对应的管理卡记录"); |
| | | return map; |
| | | } |
| | | |
| | | // 更新管理卡状态为正常 |
| | | managementCard.setState(ManagementCardStateENUM.NORMAL.getCode()); |
| | | |
| | | int updateResult = seManagementCardMapper.updateByPrimaryKeySelective(managementCard); |
| | | if (updateResult > 0) { |
| | | map.put("success", true); |
| | | map.put("msg", "管理卡写卡完成,状态已更新为正常"); |
| | | } else { |
| | | map.put("msg", "管理卡状态更新失败"); |
| | | } |
| | | } catch (Exception e) { |
| | | log.error("处理管理卡写卡回调异常", e); |
| | | map.put("msg", "处理管理卡写卡回调时发生异常:" + e.getMessage()); |
| | | } |
| | | |
| | | return map; |
| | | } |
| | | |
| | | // 根据订单号将操作记录改为有效 |
| | | public Integer turnOperateValidByOrderNumber(String orderNumber) { |
| | | return seCardOperateMapper.turnOperateValidByOrderNumber(orderNumber); |