| package com.dy.pipIrrSell.clientCard; | 
|   | 
| import com.dy.common.webUtil.QueryResultVo; | 
| import com.dy.pipIrrGlobal.daoSe.SeClientCardMapper; | 
| import com.dy.pipIrrGlobal.pojoSe.SeClientCard; | 
| import com.dy.pipIrrGlobal.voSe.VoCardInfo; | 
| import com.dy.pipIrrGlobal.voSe.VoCards; | 
| import com.dy.pipIrrGlobal.voSe.VoCards2; | 
| import com.dy.pipIrrSell.clientCard.qo.QoCards; | 
| import com.dy.pipIrrSell.clientCard.qo.QoCards2; | 
| import lombok.extern.slf4j.Slf4j; | 
| import org.apache.dubbo.common.utils.PojoUtils; | 
| import org.springframework.beans.factory.annotation.Autowired; | 
| import org.springframework.stereotype.Service; | 
|   | 
| import java.util.*; | 
|   | 
| /** | 
|  * @author ZhuBaoMin | 
|  * @date 2023/12/7 9:18 | 
|  * @LastEditTime 2023/12/7 9:18 | 
|  * @Description | 
|  */ | 
|   | 
| @Slf4j | 
| @Service | 
| public class ClientCardSv { | 
|     @Autowired | 
|     private SeClientCardMapper seClientCardMapper; | 
|   | 
|     /** | 
|      * 添加农户水卡记录 | 
|      * @param po | 
|      * @return | 
|      */ | 
|     public Long add(SeClientCard po) { | 
|         seClientCardMapper.insert(po); | 
|         return po.getId(); | 
|     } | 
|   | 
|     /** | 
|      * 依据水卡地址获取水卡编号(12月19日废弃) | 
|      * @param cardAddr | 
|      * @return | 
|      */ | 
|     public Long getCardIdByAddr(String cardAddr) { | 
|         return seClientCardMapper.getCardIdByAddr(cardAddr); | 
|     } | 
|   | 
|     /** | 
|      * 根据水卡编号获取水卡表主键(12月19日添加后废弃) | 
|      * @param cardNum 16位水卡编号 | 
|      * @return 水卡表主键 | 
|      */ | 
|     public Long getCardIdByNum(String cardNum) { | 
|         return seClientCardMapper.getCardIdByNum(cardNum); | 
|     } | 
|   | 
|     /** | 
|      * 根据水卡编号获取水卡表主键及农户编号 | 
|      * @param cardNum | 
|      * @return | 
|      */ | 
|     public Map getCardIdAndClientNum(Long cardNum) { | 
|         return seClientCardMapper.getCardIdAndClientNum(cardNum); | 
|     } | 
|     /** | 
|      * 根据水卡编号(主键)修改农户卡信息 | 
|      * @param po | 
|      * @return | 
|      */ | 
|     public Integer UpdateClientCard(SeClientCard po) { | 
|         return seClientCardMapper.updateByPrimaryKeySelective(po); | 
|     } | 
|   | 
|     /** | 
|      * 根据农户主键获取水卡列表(物理卡+虚拟卡) | 
|      * @param clientId | 
|      * @return | 
|      */ | 
|     public List<VoCardInfo> getCardInfoByClientId(Long clientId){ | 
|         List<VoCardInfo> list = Optional.ofNullable(seClientCardMapper.getCardInfoByClientId(clientId)).orElse(new ArrayList<>()); | 
|         if(list.size() > 0) { | 
|             return list; | 
|         }else { | 
|             return new ArrayList<>(); | 
|         } | 
|     } | 
|   | 
|     /** | 
|      * 根据水卡编号获取操作记录及余额 | 
|      * @param cardNum | 
|      * @return | 
|      */ | 
|     public Map getOperateRecordsAndMoney(Long cardNum) { | 
|         List<Map<String, Object>> list = Optional.ofNullable(seClientCardMapper.getOperateRecordsByCardNum(cardNum, null)).orElse(new ArrayList<>()); | 
|         Float mondy = Optional.ofNullable(seClientCardMapper.getMoneyByCardNum(cardNum,null)).orElse(0f); | 
|         Float amount = Optional.ofNullable(seClientCardMapper.sumRechargeByCardNum(cardNum, null)).orElse(0f); | 
|   | 
|         Map map = new HashMap(); | 
|         map.put("mondy", mondy); | 
|         map.put("amount", amount); | 
|         map.put("list", list); | 
|         return map; | 
|     } | 
|   | 
|     /** | 
|      * 根据水卡编号获取卡片状态 | 
|      * @param cardNum | 
|      * @return | 
|      */ | 
|     public String getCardStateByCardNum(Long cardNum) { | 
|         return Optional.ofNullable(seClientCardMapper.getCardStateByCardNum(cardNum)).orElse(""); | 
|     } | 
|   | 
|     /** | 
|      * 根据指定条件获取水卡列表,应用程序使用 | 
|      * @param queryVo | 
|      * @return | 
|      */ | 
|     public QueryResultVo<List<VoCards>> getCards(QoCards queryVo){ | 
|         Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo) ; | 
|         Long itemTotal = seClientCardMapper.getCardsCount(params); | 
|   | 
|         QueryResultVo<List<VoCards>> rsVo = new QueryResultVo<>() ; | 
|         rsVo.pageSize = queryVo.pageSize ; | 
|         rsVo.pageCurr = queryVo.pageCurr ; | 
|   | 
|         rsVo.calculateAndSet(itemTotal, params); | 
|         rsVo.obj = seClientCardMapper.getCards(params); | 
|   | 
|         return rsVo ; | 
|     } | 
|   | 
|     /** | 
|      * 获取已挂失,未补卡的记录,应用程序使用 | 
|      * @param queryVo | 
|      * @return | 
|      */ | 
|     public QueryResultVo<List<VoCards>> getUnreplaced(QoCards queryVo){ | 
|         Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo) ; | 
|         Long itemTotal = seClientCardMapper.getUnreplacedRecordCount(); | 
|   | 
|         QueryResultVo<List<VoCards>> rsVo = new QueryResultVo<>() ; | 
|         rsVo.pageSize = queryVo.pageSize ; | 
|         rsVo.pageCurr = queryVo.pageCurr ; | 
|   | 
|         rsVo.calculateAndSet(itemTotal, params); | 
|         rsVo.obj = seClientCardMapper.getUnreplaced(params); | 
|   | 
|         return rsVo ; | 
|     } | 
|   | 
|     /** | 
|      * 根据农户姓名、电话查询正常状态的水卡列表 | 
|      * @param queryVo | 
|      * @return | 
|      */ | 
|     public QueryResultVo<List<VoCards2>> getCardsByClientNameAndPhone(QoCards2 queryVo){ | 
|         Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo) ; | 
|         Long itemTotal = seClientCardMapper.getCardsByClientNameAndPhoneCount(params); | 
|   | 
|         QueryResultVo<List<VoCards2>> rsVo = new QueryResultVo<>() ; | 
|         rsVo.pageSize = queryVo.pageSize ; | 
|         rsVo.pageCurr = queryVo.pageCurr ; | 
|   | 
|         rsVo.calculateAndSet(itemTotal, params); | 
|         rsVo.obj = seClientCardMapper.getCardsByClientNameAndPhone(params); | 
|   | 
|         return rsVo ; | 
|     } | 
|   | 
|   | 
| } |