BusinessLicenseMapper.java 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. package com.xuekairui.user.mapper;
  2. import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  3. import com.baomidou.mybatisplus.core.metadata.IPage;
  4. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  5. import com.xuekairui.user.dto.BusinessLicenseReviewResponse;
  6. import com.xuekairui.user.entity.BusinessLicense;
  7. import org.apache.ibatis.annotations.*;
  8. import java.util.List;
  9. /**
  10. * 入驻信息Mapper
  11. */
  12. @Mapper
  13. public interface BusinessLicenseMapper extends BaseMapper<BusinessLicense> {
  14. /**
  15. * 查询用户的入驻信息
  16. */
  17. @Select("SELECT * FROM t_business_license WHERE user_id = #{userId} LIMIT 1")
  18. BusinessLicense selectByUserId(Long userId);
  19. /**
  20. * 原子标记入驻奖励已发放(CAS:仅当 reward_granted=0 时更新为1)
  21. * @return 受影响行数(1=首次标记成功,0=已被其他请求标记)
  22. */
  23. @Update("UPDATE t_business_license SET reward_granted = 1 WHERE id = #{id} AND reward_granted = 0")
  24. int markRewardGranted(@Param("id") Long id);
  25. /**
  26. * 审核列表分页查询(LEFT JOIN t_user,支持按审核状态筛选 + 手机号/联系电话关键词搜索)
  27. */
  28. @Select("<script>" +
  29. "SELECT bl.id, bl.store_name, bl.terminal_type, bl.province, bl.city, bl.district, " +
  30. "bl.store_address, bl.contact_person, bl.contact_phone, bl.credit_code, " +
  31. "bl.license_image_url, bl.drug_license_url, bl.medical_device_class2_url, bl.medical_device_class3_url, " +
  32. "bl.review_status, bl.reject_reason, bl.remark, bl.sync_source, bl.show_verified_badge, " +
  33. "bl.external_id, bl.status, " +
  34. "bl.reviewer_id, bl.review_time, bl.create_time, bl.update_time, " +
  35. "bl.user_id AS submitterUserId, " +
  36. "u.phone AS submitterPhone, u.nickname AS submitterNickname, u.user_name AS submitterUserName, " +
  37. "u.membership_level AS submitterMembershipLevel, " +
  38. "u.membership_expire_at AS submitterMembershipExpireAt, " +
  39. "u.status AS submitterUserStatus, " +
  40. "u.create_time AS submitterCreateTime " +
  41. "FROM t_business_license bl LEFT JOIN t_user u ON bl.user_id = u.id " +
  42. "<where>" +
  43. "<if test='reviewStatus != null and reviewStatus != \"\"'>bl.review_status = #{reviewStatus}</if>" +
  44. "<if test='keyword != null and keyword != \"\"'>" +
  45. "AND (u.phone LIKE CONCAT('%', #{keyword}, '%') OR bl.contact_phone LIKE CONCAT('%', #{keyword}, '%'))" +
  46. "</if>" +
  47. "</where>" +
  48. "ORDER BY bl.create_time DESC" +
  49. "</script>")
  50. IPage<BusinessLicenseReviewResponse> selectReviewPage(Page<?> page,
  51. @Param("reviewStatus") String reviewStatus,
  52. @Param("keyword") String keyword);
  53. }