package com.talentcard.server.mapper;
|
|
import java.util.List;
|
import java.util.Map;
|
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.talentcard.server.entity.TransportParkingCardLevelRight;
|
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Select;
|
|
@Mapper
|
public interface TransportParkingCardLevelRightMapper extends BaseMapper<TransportParkingCardLevelRight> {
|
|
@Select("""
|
select r.id as rightId,
|
r.merchant_id as merchantId,
|
m.merchant_name as merchantName,
|
m.contact_mobile as contactMobile,
|
m.address,
|
m.cover_url as coverUrl,
|
m.status as merchantStatus,
|
r.card_level as cardLevel,
|
r.enabled,
|
r.label,
|
r.benefit_detail as benefitDetail,
|
r.charge_type as chargeType,
|
r.selection_mode as selectionMode,
|
r.store_consume_enabled as storeConsumeEnabled,
|
r.discount_text as discountText,
|
r.government_subsidy as governmentSubsidy,
|
r.consume_usage_text as consumeUsageText,
|
r.status as rightStatus,
|
r.updated_at as updatedAt,
|
b.id as benefitId,
|
b.action_mode as actionMode,
|
b.status as benefitStatus
|
from transport_parking_card_level_right r
|
join merchant m on m.id = r.merchant_id and m.deleted = 0 and m.merchant_type_code = 'parking'
|
left join transport_parking_benefit b on b.merchant_id = m.id and b.deleted = 0
|
where r.deleted = 0
|
and (#{merchantId} is null or r.merchant_id = #{merchantId})
|
and (#{cardLevel} is null or #{cardLevel} = '' or r.card_level = #{cardLevel})
|
and (#{enabled} is null or r.enabled = #{enabled})
|
and (#{keyword} is null or #{keyword} = '' or m.merchant_name like concat('%', #{keyword}, '%') or m.address like concat('%', #{keyword}, '%'))
|
order by m.sort_no desc, m.created_at desc, m.id desc,
|
case r.card_level when '卓越人才卡' then 1 when '杰出人才卡' then 2 when '菁英人才卡' then 3 else 99 end
|
limit #{size} offset #{offset}
|
""")
|
List<Map<String, Object>> selectConfigPage(@Param("merchantId") Long merchantId,
|
@Param("cardLevel") String cardLevel,
|
@Param("enabled") Integer enabled,
|
@Param("keyword") String keyword,
|
@Param("size") int size,
|
@Param("offset") int offset);
|
|
@Select("""
|
select count(*)
|
from transport_parking_card_level_right r
|
join merchant m on m.id = r.merchant_id and m.deleted = 0 and m.merchant_type_code = 'parking'
|
where r.deleted = 0
|
and (#{merchantId} is null or r.merchant_id = #{merchantId})
|
and (#{cardLevel} is null or #{cardLevel} = '' or r.card_level = #{cardLevel})
|
and (#{enabled} is null or r.enabled = #{enabled})
|
and (#{keyword} is null or #{keyword} = '' or m.merchant_name like concat('%', #{keyword}, '%') or m.address like concat('%', #{keyword}, '%'))
|
""")
|
Long countConfigPage(@Param("merchantId") Long merchantId,
|
@Param("cardLevel") String cardLevel,
|
@Param("enabled") Integer enabled,
|
@Param("keyword") String keyword);
|
|
@Select("""
|
select r.id as rightId,
|
r.merchant_id as merchantId,
|
m.merchant_name as merchantName,
|
m.contact_mobile as contactMobile,
|
m.address,
|
m.cover_url as coverUrl,
|
m.status as merchantStatus,
|
r.card_level as cardLevel,
|
r.enabled,
|
r.label,
|
r.benefit_detail as benefitDetail,
|
r.charge_type as chargeType,
|
r.selection_mode as selectionMode,
|
r.store_consume_enabled as storeConsumeEnabled,
|
r.discount_text as discountText,
|
r.government_subsidy as governmentSubsidy,
|
r.consume_usage_text as consumeUsageText,
|
r.status as rightStatus,
|
r.updated_at as updatedAt,
|
b.id as benefitId,
|
b.action_mode as actionMode,
|
b.status as benefitStatus
|
from transport_parking_card_level_right r
|
join merchant m on m.id = r.merchant_id and m.deleted = 0 and m.merchant_type_code = 'parking'
|
left join transport_parking_benefit b on b.merchant_id = m.id and b.deleted = 0
|
where r.deleted = 0
|
and r.merchant_id = #{merchantId}
|
and r.card_level = #{cardLevel}
|
limit 1
|
""")
|
Map<String, Object> selectConfig(@Param("merchantId") Long merchantId, @Param("cardLevel") String cardLevel);
|
|
@Select("""
|
select r.id as rightId,
|
r.merchant_id as merchantId,
|
m.merchant_name as merchantName,
|
m.contact_mobile as contactMobile,
|
m.address,
|
m.cover_url as coverUrl,
|
m.status as merchantStatus,
|
r.card_level as cardLevel,
|
r.enabled,
|
r.label,
|
r.benefit_detail as benefitDetail,
|
r.charge_type as chargeType,
|
r.selection_mode as selectionMode,
|
r.store_consume_enabled as storeConsumeEnabled,
|
r.discount_text as discountText,
|
r.government_subsidy as governmentSubsidy,
|
r.consume_usage_text as consumeUsageText,
|
r.status as rightStatus,
|
b.id as benefitId,
|
b.action_mode as actionMode,
|
b.status as benefitStatus
|
from transport_parking_card_level_right r
|
join merchant m on m.id = r.merchant_id and m.deleted = 0 and m.merchant_type_code = 'parking' and m.status = 1
|
join transport_parking_benefit b on b.merchant_id = m.id and b.deleted = 0 and b.status = 1
|
where r.deleted = 0
|
and r.enabled = 1
|
and r.status = 1
|
and r.card_level = #{cardLevel}
|
and (#{merchantId} is null or r.merchant_id = #{merchantId})
|
order by m.sort_no desc, m.created_at desc, m.id desc
|
""")
|
List<Map<String, Object>> selectAvailableForCard(@Param("cardLevel") String cardLevel, @Param("merchantId") Long merchantId);
|
}
|