<?xml version="1.0" encoding="UTF-8"?>
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
<mapper namespace="com.tcm.training.admin.member.mapper.UserMapper">
|
|
<sql id="UserListWhere">
|
WHERE s.deleted = 0
|
<if test="nickname != null and nickname.trim() != ''">
|
AND s.nickname LIKE CONCAT('%', #{nickname}, '%')
|
</if>
|
<if test="phone != null and phone.trim() != ''">
|
AND s.phone LIKE CONCAT('%', #{phone}, '%')
|
</if>
|
<if test="clinicId != null">
|
AND s.clinic_id = #{clinicId}
|
</if>
|
<if test="status != null">
|
AND s.status = #{status}
|
</if>
|
<if test="isMember != null and isMember == 1">
|
AND s.member_expire_at IS NOT NULL AND s.member_expire_at > NOW()
|
</if>
|
<if test="isMember != null and isMember == 0">
|
AND (s.member_expire_at IS NULL OR s.member_expire_at <= NOW())
|
</if>
|
<if test="memberStatus != null and memberStatus == 'ALL'">
|
AND s.member_expire_at IS NOT NULL
|
</if>
|
<if test="memberStatus != null and memberStatus == 'ACTIVE'">
|
AND s.member_expire_at IS NOT NULL AND s.member_expire_at > NOW()
|
</if>
|
<if test="memberStatus != null and memberStatus == 'EXPIRED'">
|
AND s.member_expire_at IS NOT NULL AND s.member_expire_at <= NOW()
|
</if>
|
<if test="memberExpireFrom != null">
|
AND s.member_expire_at >= #{memberExpireFrom}
|
</if>
|
<if test="memberExpireTo != null">
|
AND s.member_expire_at <= #{memberExpireTo}
|
</if>
|
<if test="registeredFrom != null">
|
AND s.created_at >= #{registeredFrom}
|
</if>
|
<if test="registeredTo != null">
|
AND s.created_at <= #{registeredTo}
|
</if>
|
</sql>
|
|
<select id="selectUserPage" resultType="com.tcm.training.admin.member.row.UserListRow">
|
SELECT
|
s.id,
|
s.nickname,
|
s.phone,
|
s.avatar,
|
s.type,
|
s.gender,
|
s.age,
|
s.status,
|
s.clinic_id AS clinicId,
|
c.name AS clinicName,
|
CASE
|
WHEN s.member_expire_at IS NOT NULL AND s.member_expire_at > NOW() THEN 1
|
ELSE 0
|
END AS isMember,
|
s.member_expire_at AS memberExpireAt,
|
s.created_at AS createdAt
|
FROM tcm_app_user s
|
LEFT JOIN tcm_clinic c ON c.id = s.clinic_id AND c.deleted = 0
|
<include refid="UserListWhere"/>
|
ORDER BY s.id DESC
|
</select>
|
|
<select id="selectUserList" resultType="com.tcm.training.admin.member.row.UserListRow">
|
SELECT
|
s.id,
|
s.nickname,
|
s.phone,
|
s.avatar,
|
s.type,
|
s.gender,
|
s.age,
|
s.status,
|
s.clinic_id AS clinicId,
|
c.name AS clinicName,
|
CASE
|
WHEN s.member_expire_at IS NOT NULL AND s.member_expire_at > NOW() THEN 1
|
ELSE 0
|
END AS isMember,
|
s.member_expire_at AS memberExpireAt,
|
s.created_at AS createdAt
|
FROM tcm_app_user s
|
LEFT JOIN tcm_clinic c ON c.id = s.clinic_id AND c.deleted = 0
|
<include refid="UserListWhere"/>
|
ORDER BY s.id DESC
|
</select>
|
|
<select id="selectUserDetail" resultType="com.tcm.training.admin.member.row.UserDetailRow">
|
SELECT
|
s.id,
|
s.nickname,
|
s.phone,
|
s.avatar,
|
s.type,
|
s.gender,
|
s.age,
|
s.intro,
|
s.status,
|
s.clinic_id AS clinicId,
|
s.member_expire_at AS memberExpireAt,
|
CASE
|
WHEN s.member_expire_at IS NOT NULL AND s.member_expire_at > NOW() THEN 1
|
ELSE 0
|
END AS isMember,
|
c.name AS clinicName,
|
c.contact_name AS clinicContactName,
|
c.contact_phone AS clinicContactPhone,
|
c.address AS clinicAddress,
|
s.wechat_nickname AS wechatNickname,
|
s.wechat_avatar AS wechatAvatar,
|
s.wechat_bound_at AS wechatBoundAt,
|
s.apple_user_identifier AS appleUserIdentifier,
|
s.apple_identity_subject AS appleIdentitySubject,
|
s.apple_bound_at AS appleBoundAt,
|
s.created_at AS createdAt,
|
s.updated_at AS updatedAt
|
FROM tcm_app_user s
|
LEFT JOIN tcm_clinic c ON c.id = s.clinic_id AND c.deleted = 0
|
WHERE s.deleted = 0 AND s.id = #{id}
|
</select>
|
|
</mapper>
|