| | |
| | | package com.dy.pipIrrTerminal.card; |
| | | |
| | | import com.dy.common.webUtil.BaseResponseUtils; |
| | | import com.dy.pipIrrGlobal.daoPr.PrWaterPriceMapper; |
| | | import com.dy.pipIrrGlobal.daoSe.SeCardOperateMapper; |
| | | import com.dy.pipIrrGlobal.daoSe.SeClientCardMapper; |
| | |
| | | import com.dy.pipIrrGlobal.pojoSe.SeRechargeHistory; |
| | | import com.dy.pipIrrGlobal.voSe.VoTermActiveCard; |
| | | import com.dy.pipIrrGlobal.voSe.VoTermRecharge; |
| | | import com.dy.pipIrrTerminal.card.dto.ActiveCard; |
| | | import com.dy.pipIrrTerminal.card.dto.CardSimple; |
| | | import com.dy.pipIrrTerminal.card.dto.DtoRecharge; |
| | | import com.dy.pipIrrTerminal.card.dto.DtoReissue; |
| | | import com.dy.pipIrrTerminal.card.dto.*; |
| | | import com.dy.pipIrrTerminal.card.enums.CardStateENUM; |
| | | import com.dy.pipIrrTerminal.card.enums.LastOperateENUM; |
| | | import com.dy.pipIrrTerminal.card.enums.OperateTypeENUM; |
| | |
| | | } |
| | | |
| | | map.put("success", true); |
| | | return map; |
| | | } |
| | | |
| | | /** |
| | | * 根据水卡编号判断该卡是否可以挂失 |
| | | * @param po |
| | | * @return true:可以报失 |
| | | */ |
| | | public Map canReportLoss(DtoLoss po) { |
| | | Map map = new HashMap<>(); |
| | | map.put("success", false); |
| | | map.put("content", null); |
| | | |
| | | Long cardNum = po.getCardNum(); |
| | | String stateName = seClientCardMapper.getCardStateByCardNum(cardNum); |
| | | if(stateName == null || stateName.equals("") || !stateName.equals("正常")) { |
| | | map.put("msg", stateName + ", " + "水卡状态不支持当前操作"); |
| | | return map; |
| | | } |
| | | |
| | | /** |
| | | * 依据水卡编号获取水卡表主键及农户编号 |
| | | */ |
| | | Map map_card = Optional.ofNullable(seClientCardMapper.getCardIdAndClientNum(cardNum)).orElse(new HashMap()); |
| | | if (map_card == null || map_card.size() <= 0) { |
| | | map.put("msg", "卡号错误,该卡不存在"); |
| | | return map; |
| | | } |
| | | CardSimple card = new CardSimple(); |
| | | card.setCardId(Long.parseLong(map_card.get("cardId").toString())); |
| | | card.setClientId(Long.parseLong(map_card.get("clientId").toString())); |
| | | //card.setProtocol(map_card.get("protocol").toString()); |
| | | |
| | | map.put("success", true); |
| | | map.put("content", card); |
| | | return map; |
| | | } |
| | | |
| | |
| | | return dtf.format(dateTime) + sb.toString(); |
| | | } |
| | | |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public Map addCardAndOperate(ActiveCard po, Long cardNum, String orderNo) { |
| | | Map map = new HashMap<>(); |
| | | map.put("success", false); |
| | |
| | | * @param cardNum |
| | | * @return |
| | | */ |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public Map plusRecharge(ActiveCard po, Long cardNum) { |
| | | Map map = new HashMap<>(); |
| | | map.put("success", false); |
| | |
| | | map.put("content", voTermActiveCard); |
| | | return map; |
| | | } |
| | | |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public Map reportLoss(DtoLoss po) { |
| | | Map map = new HashMap<>(); |
| | | map.put("success", false); |
| | | map.put("content", null); |
| | | |
| | | Map map_canReportLoss = canReportLoss(po); |
| | | if(map_canReportLoss.get("success").equals(false)) { |
| | | map.put("msg", map_canReportLoss.get("msg").toString()); |
| | | return map; |
| | | } |
| | | CardSimple card = (CardSimple) map_canReportLoss.get("content"); |
| | | Long cardId = card.getCardId(); |
| | | Long clientId = card.getClientId(); |
| | | |
| | | Float money = Optional.ofNullable(po.getMoney()).orElse(0f); |
| | | Float refund = Optional.ofNullable(po.getRefund()).orElse(0f); |
| | | |
| | | SeClientCard seClientCard = new SeClientCard(); |
| | | seClientCard.setId(cardId); |
| | | seClientCard.setMoney(money); |
| | | seClientCard.setLossdtdt(new Date()); |
| | | seClientCard.setState(CardStateENUM.LOSS.getCode()); |
| | | seClientCard.setLastoper(LastOperateENUM.LOSS.getCode()); |
| | | Integer rec_updateClientCard = Optional.ofNullable(seClientCardMapper.updateByPrimaryKeySelective(seClientCard)).orElse(0); |
| | | if (rec_updateClientCard == 0) { |
| | | map.put("msg", "挂失失败-农户卡修改异常"); |
| | | return map; |
| | | } |
| | | |
| | | SeCardOperate seCardOperate = new SeCardOperate(); |
| | | seCardOperate.setCardId(cardId); |
| | | seCardOperate.setClientId(clientId); |
| | | seCardOperate.setMoney(money); |
| | | seCardOperate.setTradeAmount(-refund); |
| | | seCardOperate.setPaymentId(1L); |
| | | seCardOperate.setOperateType(OperateTypeENUM.LOSS.getCode()); |
| | | seCardOperate.setRemarks(po.getRemarks()); |
| | | seCardOperate.setOperator(po.getOperator()); |
| | | seCardOperate.setOperateDt(new Date()); |
| | | seCardOperate.setOperateValid((byte) 2); |
| | | seCardOperateMapper.insert(seCardOperate); |
| | | if (seCardOperate.getId() == 0) { |
| | | map.put("msg", "挂失失败-挂失记录写入异常"); |
| | | return map; |
| | | } |
| | | |
| | | map.put("success", true); |
| | | map.put("msg", "操作成功"); |
| | | return map; |
| | | } |
| | | |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public Map callBack(DtoCallBack po) { |
| | | Map map = new HashMap<>(); |
| | | map.put("success", false); |
| | | map.put("content", null); |
| | | |
| | | String cardAddr = po.getCardAddr(); |
| | | Integer operateType = po.getOperateType(); |
| | | String orderNumber = po.getOrderNumber(); |
| | | |
| | | Long cardId = seClientCardMapper.getCardIdByAddr(cardAddr); |
| | | if (cardId == null || cardId.equals(0)) { |
| | | map.put("msg", "您指定的水卡不存在"); |
| | | return map; |
| | | } |
| | | |
| | | if(operateType == 1) { |
| | | /** |
| | | * 开卡操作执行通知 |
| | | * 1.依据水卡地址、订单号将无效状态的操作记录改为有效 |
| | | * 2.依据水卡ID将无效状态的水卡记录改为有效 |
| | | * 3.如果开卡同步充值 |
| | | * 修改充值操作记录为有效 |
| | | * 修改充值历史记录为有效 |
| | | * 修改水卡表的操作信息 |
| | | */ |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | map.put("success", true); |
| | | map.put("msg", "操作成功"); |
| | | return map; |
| | | } |
| | | } |