|  |  |  | 
|---|
|  |  |  | import com.dy.common.webUtil.BaseResponse; | 
|---|
|  |  |  | import com.dy.common.webUtil.BaseResponseUtils; | 
|---|
|  |  |  | import com.dy.common.webUtil.QueryResultVo; | 
|---|
|  |  |  | import com.dy.pipIrrGlobal.daoSe.SeCardOperateMapper; | 
|---|
|  |  |  | import com.dy.pipIrrGlobal.daoSe.SeClientCardMapper; | 
|---|
|  |  |  | import com.dy.pipIrrGlobal.daoSe.SeClientMapper; | 
|---|
|  |  |  | import com.dy.pipIrrGlobal.daoSe.SeGeneralMapper; | 
|---|
|  |  |  | import com.dy.pipIrrGlobal.daoBa.BaSettingsMapper; | 
|---|
|  |  |  | import com.dy.pipIrrGlobal.daoSe.*; | 
|---|
|  |  |  | import com.dy.pipIrrGlobal.pojoSe.SeCardOperate; | 
|---|
|  |  |  | import com.dy.pipIrrGlobal.pojoSe.SeClientCard; | 
|---|
|  |  |  | import com.dy.pipIrrGlobal.pojoSe.SeManagerCard; | 
|---|
|  |  |  | import com.dy.pipIrrGlobal.voSe.*; | 
|---|
|  |  |  | import com.dy.pipIrrSell.cardOperate.dto.DtoRecharge; | 
|---|
|  |  |  | import com.dy.pipIrrSell.cardOperate.enums.OperateTypeENUM; | 
|---|
|  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private SeGeneralMapper seGeneralMapper; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private BaSettingsMapper baSettingsMapper; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private SeManagerCardMapper seManagerCardMapper; | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 添加开卡记录 | 
|---|
|  |  |  | 
|---|
|  |  |  | * @param clientNum 农户编号 | 
|---|
|  |  |  | * @return 5级行政区划代码 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public Long getAreaCodeByNum(String clientNum) { | 
|---|
|  |  |  | return seClientMapper.getAreaCodeByNum(clientNum); | 
|---|
|  |  |  | public String getAreaCodeByNum(String clientNum) { | 
|---|
|  |  |  | Long areaCode = seClientMapper.getAreaCodeByNum(clientNum); | 
|---|
|  |  |  | if (areaCode == null) { | 
|---|
|  |  |  | return ""; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return String.valueOf(areaCode); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | 
|---|
|  |  |  | public Long getAreaCodeById(Long clientId) { | 
|---|
|  |  |  | return seClientMapper.getAreaCodeById(clientId); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 根据行政区划串模块查询水卡编号,开卡使用 | 
|---|
|  |  |  | * @param areaCode | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | String getCardNumOfMax(String areaCode) { | 
|---|
|  |  |  | public String getCardNumOfMax(String areaCode) { | 
|---|
|  |  |  | return seClientCardMapper.getCardNumOfMax(areaCode); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 根据行政区划串模糊查询管理卡编号,创建管理卡使用 | 
|---|
|  |  |  | * @param areaCode | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public String getManagerCardNumOfMax(String areaCode) { | 
|---|
|  |  |  | return seManagerCardMapper.getManagerCardNumOfMax(areaCode); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 创建管理卡 | 
|---|
|  |  |  | * @param po | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public Long addManagerCard(SeManagerCard po) { | 
|---|
|  |  |  | seManagerCardMapper.insert(po); | 
|---|
|  |  |  | return po.getId(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | Long cardId = 0L; | 
|---|
|  |  |  | Long clientId = 0L; | 
|---|
|  |  |  | String cardNum = po.getCardNum(); | 
|---|
|  |  |  | Long cardNum = po.getCardNum(); | 
|---|
|  |  |  | Float money = po.getMoney(); | 
|---|
|  |  |  | Float amount = po.getAmount(); | 
|---|
|  |  |  | Float gift = po.getGift(); | 
|---|
|  |  |  | 
|---|
|  |  |  | Long operator = po.getOperator(); | 
|---|
|  |  |  | Date rechargeTime = new Date(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 验证水卡状态是否支持当前操作 | 
|---|
|  |  |  | String stateName = Optional.ofNullable(clientCardSv.getCardStateByCardNum(Long.parseLong(cardNum))).orElse(""); | 
|---|
|  |  |  | String stateName = Optional.ofNullable(clientCardSv.getCardStateByCardNum(cardNum)).orElse(""); | 
|---|
|  |  |  | if(stateName.length() == 0 || !stateName.equals("正常")) { | 
|---|
|  |  |  | return BaseResponseUtils.buildFail(stateName + ", " + SellResultCode.THE_CARD_NOT_SUPPORT_THIS_OPERATION.getMessage()); | 
|---|
|  |  |  | return BaseResponseUtils.buildErrorMsg(stateName + ", " + SellResultCode.THE_CARD_NOT_SUPPORT_THIS_OPERATION.getMessage()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | Map map = Optional.ofNullable(clientCardSv.getCardIdAndClientNum(cardNum)).orElse(new HashMap()); | 
|---|
|  |  |  | if(map == null || map.size() <= 0) { | 
|---|
|  |  |  | return BaseResponseUtils.buildFail(SellResultCode.CARD_NUMBER_MISTAKE.getMessage()); | 
|---|
|  |  |  | return BaseResponseUtils.buildErrorMsg(SellResultCode.CARD_NUMBER_MISTAKE.getMessage()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | cardId = Long.parseLong(map.get("cardId").toString()); | 
|---|
|  |  |  | clientId = Long.parseLong(map.get("clientId").toString()); | 
|---|
|  |  |  | 
|---|
|  |  |  | seClientCard.setLastoper(LastOperateENUM.RECHARGE.getCode ()); | 
|---|
|  |  |  | Integer rec_updateClientCard = Optional.ofNullable(clientCardSv.UpdateClientCard(seClientCard)).orElse(0); | 
|---|
|  |  |  | if(rec_updateClientCard == 0) { | 
|---|
|  |  |  | return BaseResponseUtils.buildFail(SellResultCode.RECHARGE_FAIL_WRITE_CLIENT_CARD_ERROR.getMessage()); | 
|---|
|  |  |  | return BaseResponseUtils.buildErrorMsg(SellResultCode.RECHARGE_FAIL_WRITE_CLIENT_CARD_ERROR.getMessage()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | 
|---|
|  |  |  | seCardOperateMapper.insert(seCardOperate); | 
|---|
|  |  |  | Long rec = Optional.ofNullable(seCardOperate.getId()).orElse(0L); | 
|---|
|  |  |  | if(rec == 0) { | 
|---|
|  |  |  | return BaseResponseUtils.buildFail(SellResultCode.REPLACE_FAIL_WRITE_RECHARGE_ERROR.getMessage()); | 
|---|
|  |  |  | return BaseResponseUtils.buildErrorMsg(SellResultCode.REPLACE_FAIL_WRITE_RECHARGE_ERROR.getMessage()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return BaseResponseUtils.buildSuccess(true) ; | 
|---|
|  |  |  | Map map_response = new HashMap(); | 
|---|
|  |  |  | map_response.put("projectNo", String.format("%02x", Integer.parseInt(getProjectNo()))); | 
|---|
|  |  |  | map_response.put("orderNumber", rec); | 
|---|
|  |  |  | map_response.put("cardNum", cardNum); | 
|---|
|  |  |  | return BaseResponseUtils.buildSuccess(map_response) ; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 根据指定条件获取充值记录 | 
|---|
|  |  |  | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public QueryResultVo<List<VoRecharge>> getRecharges(QoRecharge queryVo) { | 
|---|
|  |  |  | //完善查询充值记录的起止时间 | 
|---|
|  |  |  | String rechargeTimeStart = queryVo.rechargeTimeStart; | 
|---|
|  |  |  | String rechargeTimeStop = queryVo.rechargeTimeStop; | 
|---|
|  |  |  | if(rechargeTimeStart != null) { | 
|---|
|  |  |  | rechargeTimeStart = rechargeTimeStart + " 00:00:00"; | 
|---|
|  |  |  | queryVo.setRechargeTimeStart(rechargeTimeStart); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(rechargeTimeStop != null) { | 
|---|
|  |  |  | rechargeTimeStop = rechargeTimeStop + " 23:59:59"; | 
|---|
|  |  |  | queryVo.setRechargeTimeStop(rechargeTimeStop); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //String rechargeTimeStart = queryVo.rechargeTimeStart; | 
|---|
|  |  |  | //String rechargeTimeStop = queryVo.rechargeTimeStop; | 
|---|
|  |  |  | //if(rechargeTimeStart != null) { | 
|---|
|  |  |  | //    rechargeTimeStart = rechargeTimeStart + " 00:00:00"; | 
|---|
|  |  |  | //    queryVo.setRechargeTimeStart(rechargeTimeStart); | 
|---|
|  |  |  | //} | 
|---|
|  |  |  | //if(rechargeTimeStop != null) { | 
|---|
|  |  |  | //    rechargeTimeStop = rechargeTimeStop + " 23:59:59"; | 
|---|
|  |  |  | //    queryVo.setRechargeTimeStop(rechargeTimeStop); | 
|---|
|  |  |  | //} | 
|---|
|  |  |  |  | 
|---|
|  |  |  | Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | rsVo.obj = seCardOperateMapper.getRecharges(params); | 
|---|
|  |  |  | return rsVo ; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 根据指定条件获取交易记录 | 
|---|
|  |  |  | 
|---|
|  |  |  | * @param queryVo | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public QueryResultVo<List<VoActiveCardNew>> getActiveCards(QoActiveCard queryVo) { | 
|---|
|  |  |  | public QueryResultVo<List<VoActiveCard>> getActiveCards(QoActiveCard queryVo) { | 
|---|
|  |  |  | //完善查询充值记录的起止时间 | 
|---|
|  |  |  | String activeTimeStart = queryVo.activeTimeStart; | 
|---|
|  |  |  | String activeTimeStop = queryVo.activeTimeStop; | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | Long itemTotal = seCardOperateMapper.getActiveCardRecordCount(params); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | QueryResultVo<List<VoActiveCardNew>> rsVo = new QueryResultVo<>() ; | 
|---|
|  |  |  | QueryResultVo<List<VoActiveCard>> rsVo = new QueryResultVo<>() ; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | rsVo.pageSize = queryVo.pageSize ; | 
|---|
|  |  |  | rsVo.pageCurr = queryVo.pageCurr ; | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 根据指定条件获取IC卡注销记录 | 
|---|
|  |  |  | * @param queryVo | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public QueryResultVo<List<VoOperate>> getCommonOperations(QoCommonOperate queryVo) { | 
|---|
|  |  |  | //完善查询充值记录的起止时间 | 
|---|
|  |  |  | String timeStart = queryVo.getTimeStart(); | 
|---|
|  |  |  | String timeStop = queryVo.getTimeStop(); | 
|---|
|  |  |  | if(timeStart != null) { | 
|---|
|  |  |  | timeStart = timeStart + " 00:00:00"; | 
|---|
|  |  |  | queryVo.setTimeStart(timeStart); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(timeStop != null) { | 
|---|
|  |  |  | timeStop = timeStop + " 23:59:59"; | 
|---|
|  |  |  | queryVo.setTimeStop(timeStop); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | Long itemTotal = Optional.ofNullable(seCardOperateMapper.getCommonOperationRecordCount(params)).orElse(0L); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | QueryResultVo<List<VoOperate>> rsVo = new QueryResultVo<>() ; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | rsVo.pageSize = queryVo.pageSize ; | 
|---|
|  |  |  | rsVo.pageCurr = queryVo.pageCurr ; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | rsVo.calculateAndSet(itemTotal, params); | 
|---|
|  |  |  | rsVo.obj = seCardOperateMapper.getCommonOperations(params); | 
|---|
|  |  |  | return rsVo ; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 根据指定条件获取收据列表 | 
|---|
|  |  |  | * @param queryVo | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return map_result; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 判断指定水卡是否为挂失状态且无补卡记录 | 
|---|
|  |  |  | * @param cardNum 水卡编号 | 
|---|
|  |  |  | * @return 是否已挂失未补卡 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public Boolean isLostAndUnreplaced(Long cardNum) { | 
|---|
|  |  |  | Integer lostCount = seClientCardMapper.getLostCount(cardNum); | 
|---|
|  |  |  | Integer replacedCount = seClientCardMapper.getReplacedCount(cardNum); | 
|---|
|  |  |  | if(lostCount > 0 && replacedCount == 0) { | 
|---|
|  |  |  | return true; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return false; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 修改农户水卡 | 
|---|
|  |  |  | * @param po | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public Integer updateClientCard(SeClientCard po) { | 
|---|
|  |  |  | return seClientCardMapper.updateByPrimaryKeySelective(po); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 获取项目编号 | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public String getProjectNo() { | 
|---|
|  |  |  | return baSettingsMapper.getItemValue("projectNo"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 根据水卡编号获取其挂失时退款金额(补卡时判断使用) | 
|---|
|  |  |  | * @param cardNum | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public Double getTradeAmountByCardNo(Long cardNum) { | 
|---|
|  |  |  | return seCardOperateMapper.getTradeAmountByCardNo(cardNum); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|