package com.jsowell.pile.mapper; import com.jsowell.pile.domain.PileBillingDetail; import com.jsowell.pile.domain.PileBillingRelation; import com.jsowell.pile.domain.PileBillingTemplate; import com.jsowell.pile.vo.web.BillingTemplateVO; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; import java.util.List; /** * 计费模板Mapper接口 * * @author jsowell * @date 2022-09-20 */ @Repository public interface PileBillingTemplateMapper { /** * 查询计费模板 * * @param id 计费模板主键 * @return 计费模板 */ PileBillingTemplate selectPileBillingTemplateById(Long id); /** * 查询计费模板列表 * * @param pileBillingTemplate 计费模板 * @return 计费模板集合 */ List selectPileBillingTemplateList(PileBillingTemplate pileBillingTemplate); /** * 新增计费模板 * * @param pileBillingTemplate 计费模板 * @return 结果 */ int insertPileBillingTemplate(PileBillingTemplate pileBillingTemplate); /** * 修改计费模板 * * @param pileBillingTemplate 计费模板 * @return 结果 */ int updatePileBillingTemplate(PileBillingTemplate pileBillingTemplate); /** * 删除计费模板 * * @param id 计费模板主键 * @return 结果 */ int deletePileBillingTemplateById(Long id); /** * 批量删除计费模板 * * @param ids 需要删除的数据主键集合 * @return 结果 */ int deletePileBillingTemplateByIds(Long[] ids); /** * 批量删除计费模板详情 * * @param templateCodes 需要删除的templateCode集合 * @return 结果 */ int deletePileBillingDetailByTemplateCodes(@Param("templateCodes") List templateCodes); /** * 批量新增计费模板详情 * * @param pileBillingDetailList 计费模板详情列表 * @return 结果 */ int batchPileBillingDetail(List pileBillingDetailList); /** * 通过计费模板主键删除计费模板详情信息 * * @param templateCode 计费模板code * @return 结果 */ int deletePileBillingDetailByTemplateCode(String templateCode); /** * 查询公共计费模板列表 * @return */ List queryPublicBillingTemplateList(); /** * 根据站点id查询站点计费模板列表 * 根据发布时间倒序,最新一条就是目前正在使用的计费模板 * @param stationId 站点id * @return */ List queryStationBillingTemplateListWithAuth(@Param("stationId") String stationId, @Param("stationDeptIds") List stationDeptIds, @Param("memberFlag") String memberFlag); /** * 根据站点id查询站点计费模板列表 * 根据发布时间倒序,最新一条就是目前正在使用的计费模板 * @param stationId 站点id * @return */ List queryStationBillingTemplateList(@Param("stationId") String stationId); /** * 通过桩sn号查询计费模板 * * @param pileSn 桩sn * @return 计费模板编号 */ BillingTemplateVO selectBillingTemplateByPileSn(@Param("pileSn") String pileSn); /** * 通过计费模板id查询 * @param templateId 计费模板id * @return */ BillingTemplateVO selectBillingTemplateByTemplateId(@Param("templateId") String templateId); /** * 查询站点最新发布的计费模板 * @param stationId * @return */ BillingTemplateVO selectBillingTemplateByStationId(@Param("stationId") String stationId); /** * 批量查询站点正在使用的计费模板信息 * @param stationIdList 站点id集合 * @return */ List selectBillingTemplateByStationIdList(@Param("stationIdList") List stationIdList); /** * 通过模板id数组批量查询计费模板详情列表 */ List queryBillingDetailByTemplateIds(@Param("templateIds") Long[] templateIds); /** * 通过模板id查询计费模板详情列表 */ List queryBillingDetailByTemplateId(@Param("templateId") Long templateId); /** * 插入充电桩和计费模板关系 */ void insertPileBillingRelation(List relationList); /** * 根据桩号删除计费模板关系 * @param pileSnList */ void deleteRelationByPileSn(@Param("pileSnList") List pileSnList); /** * 根据站点id修改状态 * * @param stationId * @param status * @param deviceType */ void updateStatusByStationId(@Param("stationId") String stationId, @Param("status") String status, @Param("deviceType")String deviceType); void updateStatusByTemplateId(@Param("templateId") String templateId, @Param("status") String status); /** * 查询站点的集团会员优惠计费模板 * @param stationId * @return */ BillingTemplateVO queryPreferentialBillingTemplate(String stationId); }