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 ; 
 | 
    } 
 | 
  
 | 
  
 | 
} 
 |