pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeClientCardMapper.java
@@ -1,15 +1,28 @@
package com.dy.pipIrrGlobal.daoSe;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dy.pipIrrGlobal.pojoSe.SeClientCard;
import com.dy.pipIrrGlobal.voSe.VoCardInfo;
import com.dy.pipIrrGlobal.voSe.VoCardInfo1;
import com.dy.pipIrrGlobal.voSe.VoCards;
import com.dy.pipIrrGlobal.voSe.VoCards2;
import com.dy.pipIrrGlobal.voSt.VoCardUsage;
import com.dy.pipIrrGlobal.voWe.VoCards3;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
/**
 * @author ZhuBaoMin
 * @date 2023/12/7 9:06
 * @LastEditTime 2023/12/7 9:06
 * @date 2023/12/22 16:04
 * @LastEditTime 2023/12/22 16:04
 * @Description
 */
public interface SeClientCardMapper {
@Mapper
public interface SeClientCardMapper extends BaseMapper<SeClientCard> {
    int deleteByPrimaryKey(Long id);
    int insert(SeClientCard record);
@@ -23,10 +36,219 @@
    int updateByPrimaryKey(SeClientCard record);
    /**
     * 依据水卡地址获取水卡编号(主键)
     * 依据水卡地址获取水卡编号(12月19日废弃)
     * 2024-06-30取消废弃,恢复使用
     * @param cardAddr
     * @return
     */
    Long getCardIdByAddr(@Param("cardAddr") String cardAddr);
    /**
     * 根据水卡编号获取水卡表主键(12月19日添加后废弃)
     * @param cardNum 16位水卡编号
     * @return 水卡表主键
     */
    Long getCardIdByNum(@Param("cardNum") String cardNum);
    /**
     * 根据行政区划串模块查询水卡编号
     * @param areaCode
     * @return
     */
    String getCardNumOfMax(@Param("areaCode") String areaCode);
    /**
     * 根据水卡编号获取水卡表主键及农户编号
     * @param cardNum
     * @return
     */
    Map getCardIdAndClientNum(@Param("cardNum") Long cardNum);
    /**
     * 根据水卡编号获取水卡对应的农户id和姓名
     * @param cardAddr
     * @param cardNum
     * @return
     */
    Map getClientIdAndNameByCardAddrAndCardNo(@Param("cardAddr") String cardAddr, @Param("cardNum") Long cardNum);
    /**
     * 得到水卡对象
     * @param cardAddr
     * @param cardNum
     * @return
     */
    List<VoCardInfo1> getCardsByAddrAndNum(@Param("cardAddr") String cardAddr, @Param("cardNum") Long cardNum);
    /**
     * 根据农户主键获取水卡列表(物理卡+虚拟卡)
     * @param clientId
     * @return
     */
    List<VoCardInfo> getCardInfoByClientId(@Param("clientId") Long clientId);
    /**
     * 根据水卡编号获取操作记录列表
     * @param cardNum 水卡编号
     * @return 水卡操作记录列表
     */
    List<Map<String, Object>> getOperateRecordsByCardNum(@Param("cardNum") Long cardNum);
    /**
     * 根据水卡编号获取余额
     * @param cardNum 水卡编号
     * @return 余额
     */
    Float getMoneyByCardNum(@Param("cardNum") Long cardNum);
    /**
     * 根据水卡编号获取充值总额
     * @param cardNum
     * @return
     */
    Float sumRechargeByCardNum(@Param("cardNum") Long cardNum);
    /**
     * 根据水卡编号获取卡片状态
     * @param cardNum
     * @return
     */
    String getCardStateByCardNum(@Param("cardNum") Long cardNum);
    /**
     * 根据指定条件获取水卡列表记录数,应用程序使用
     * @param params
     * @return
     */
    Long getCardsCount(Map<?, ?> params);
    /**
     * 根据指定条件获取水卡列表,应用程序使用
     * @param params
     * @return
     */
    List<VoCards> getCards(Map<?, ?> params);
    /**
     * 获取已挂失,未补卡的记录数量,应用程序使用
     * @return
     */
    Long getUnreplacedRecordCount();
    /**
     * 获取已挂失,未补卡的记录,应用程序使用
     * @return
     */
    List<VoCards> getUnreplaced(Map<?, ?> params);
    /**
     * 根据指定水卡编号获取挂失记录数量(补卡、解锁使用)
     * @param cardNum
     * @return
     */
    Integer getLostCount(@Param("cardNum") Long cardNum);
    /**
     * 根据指定水卡编号获取已补卡数量(补卡、解锁使用)
     * @param cardNum 水卡编号
     * @return 符合条件记录数,最多一条
     */
    Integer getReplacedCount(@Param("cardNum") Long cardNum);
    /**
     * 根据农户姓名和手机号获取水卡列表记录数,应用程序使用
     * @param params
     * @return
     */
    Long getCardsByClientNameAndPhoneCount(Map<?, ?> params);
    /**
     * 根据农户姓名和手机号获取水卡列表,应用程序使用
     * @param params
     * @return
     */
    List<VoCards2> getCardsByClientNameAndPhone(Map<?, ?> params);
    /**
     * 根据农户ID查询正常状态的水卡列表,小程序使用
     * @param clientId
     * @return
     */
    List<VoCards3> getCardsByClientID(String clientId);
    /**
     * 更新实体卡剩余金额
     * @param id
     * @param money
     */
    void updateMoney(@Param("id")Long id , @Param("money")Double money);
    /**
     *当前余额总量(物理卡)
     * @param
     * @return
     */
    Double getTotalMoneyIcCards();
    /**
     * 根据水卡地址获取水卡数量,用来判断该卡是否允许开卡,无效卡片排除在外
     * @param cardAddr
     * @return
     */
    Long getCountByCardAddr(String cardAddr);
    /**
     * 根据水卡地址获取指定状态的水卡数量,用来判断该卡是否允许开卡
     * @param cardAddr
     * @return
     */
    Long getCountByCardAddrAndState(String cardAddr);
    /**
     * 获取指定时间段水卡使用情况记录数量
     * @param params
     * @return
     */
    List<VoCardUsage> getCardUsagesCount(Map<?, ?> params);
    /**
     * 获取指定时间段水卡使用情况:充值合计、消费合计、余额
     * @param params
     * @return
     */
    List<VoCardUsage> getCardUsages(Map<?, ?> params);
    /**
     * 获取指定时间段内水卡充值总计
     * @param timeStart
     * @param timeStop
     * @return
     */
    Float getTotalRecharge(@Param("timeStart")String timeStart, @Param("timeStop")String timeStop);
    /**
     * 获取指定时间段内水卡消费总计
     * @param timeStart
     * @param timeStop
     * @return
     */
    Float getTotalConsumption(@Param("timeStart")String timeStart, @Param("timeStop")String timeStop);
    /**
     * 依据水卡地址将最后一条无效状态的指定操作记录改为有效
     * @param cardAddr
     * @param operateType
     * @return
     */
    Integer turnCardValidByAddr(@Param("cardAddr")String cardAddr, @Param("operateType")Integer operateType);
    /**
     * 根据水卡ID获取原水卡ID,补卡通知中使用
     * @param cardId
     * @return
     */
    Long getOriginalCardIdByCardId(@Param("cardId") Long cardId);
}