pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/clientCard/ClientCardSv.java
@@ -1,12 +1,19 @@
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.Map;
import java.util.*;
/**
 * @author ZhuBaoMin
@@ -54,7 +61,7 @@
     * @param cardNum
     * @return
     */
    public Map getCardIdAndClientNum(String cardNum) {
    public Map getCardIdAndClientNum(Long cardNum) {
        return seClientCardMapper.getCardIdAndClientNum(cardNum);
    }
    /**
@@ -65,4 +72,103 @@
    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)).orElse(new ArrayList<>());
        Float mondy = Optional.ofNullable(seClientCardMapper.getMoneyByCardNum(cardNum)).orElse(0f);
        Float amount = Optional.ofNullable(seClientCardMapper.sumRechargeByCardNum(cardNum)).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 ;
    }
}