| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- package com.xuekairui.user.mapper;
- import com.baomidou.mybatisplus.core.mapper.BaseMapper;
- import com.baomidou.mybatisplus.core.metadata.IPage;
- import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
- import com.xuekairui.user.dto.BusinessLicenseReviewResponse;
- import com.xuekairui.user.entity.BusinessLicense;
- import org.apache.ibatis.annotations.*;
- import java.util.List;
- /**
- * 入驻信息Mapper
- */
- @Mapper
- public interface BusinessLicenseMapper extends BaseMapper<BusinessLicense> {
- /**
- * 查询用户的入驻信息
- */
- @Select("SELECT * FROM t_business_license WHERE user_id = #{userId} LIMIT 1")
- BusinessLicense selectByUserId(Long userId);
- /**
- * 原子标记入驻奖励已发放(CAS:仅当 reward_granted=0 时更新为1)
- * @return 受影响行数(1=首次标记成功,0=已被其他请求标记)
- */
- @Update("UPDATE t_business_license SET reward_granted = 1 WHERE id = #{id} AND reward_granted = 0")
- int markRewardGranted(@Param("id") Long id);
- /**
- * 审核列表分页查询(LEFT JOIN t_user,支持按审核状态筛选 + 手机号/联系电话关键词搜索)
- */
- @Select("<script>" +
- "SELECT bl.id, bl.store_name, bl.terminal_type, bl.province, bl.city, bl.district, " +
- "bl.store_address, bl.contact_person, bl.contact_phone, bl.credit_code, " +
- "bl.license_image_url, bl.drug_license_url, bl.medical_device_class2_url, bl.medical_device_class3_url, " +
- "bl.review_status, bl.reject_reason, bl.remark, bl.sync_source, bl.show_verified_badge, " +
- "bl.external_id, bl.status, " +
- "bl.reviewer_id, bl.review_time, bl.create_time, bl.update_time, " +
- "bl.user_id AS submitterUserId, " +
- "u.phone AS submitterPhone, u.nickname AS submitterNickname, u.user_name AS submitterUserName, " +
- "u.membership_level AS submitterMembershipLevel, " +
- "u.membership_expire_at AS submitterMembershipExpireAt, " +
- "u.status AS submitterUserStatus, " +
- "u.create_time AS submitterCreateTime " +
- "FROM t_business_license bl LEFT JOIN t_user u ON bl.user_id = u.id " +
- "<where>" +
- "<if test='reviewStatus != null and reviewStatus != \"\"'>bl.review_status = #{reviewStatus}</if>" +
- "<if test='keyword != null and keyword != \"\"'>" +
- "AND (u.phone LIKE CONCAT('%', #{keyword}, '%') OR bl.contact_phone LIKE CONCAT('%', #{keyword}, '%'))" +
- "</if>" +
- "</where>" +
- "ORDER BY bl.create_time DESC" +
- "</script>")
- IPage<BusinessLicenseReviewResponse> selectReviewPage(Page<?> page,
- @Param("reviewStatus") String reviewStatus,
- @Param("keyword") String keyword);
- }
|