WHERE c.deleted = 0
AND (
c.province_code = #{regionCode}
OR c.city_code = #{regionCode}
OR c.district_code = #{regionCode}
)
AND c.name LIKE CONCAT('%', #{name}, '%')
AND c.contact_phone LIKE CONCAT('%', #{phone}, '%')
AND pa.agent_name LIKE CONCAT('%', #{agentName}, '%')
AND c.created_at >= #{createdFrom}
AND c.created_at <= #{createdTo}
AND c.status = #{status}
SELECT
c.id,
c.name,
c.contact_phone AS phone,
CASE
WHEN c.province_name IS NOT NULL AND c.province_name != '' THEN
CONCAT(
c.province_name,
IFNULL(c.city_name, ''),
IFNULL(c.district_name, '')
)
ELSE NULL
END AS regionName,
c.status,
pa.agent_name AS agentName,
COUNT(u.id) AS userCount,
c.created_at AS createdAt,
c.business_license_url AS businessLicenseUrl
FROM tcm_clinic c
LEFT JOIN tcm_provincial_agent pa ON pa.id = c.agent_id AND pa.deleted = 0
LEFT JOIN tcm_app_user u ON u.clinic_id = c.id AND u.deleted = 0
GROUP BY
c.id,
c.name,
c.contact_phone,
c.province_name,
c.city_name,
c.district_name,
c.status,
pa.agent_name,
c.created_at,
c.business_license_url
ORDER BY c.id DESC
SELECT
c.id,
c.name,
c.contact_phone AS phone,
CASE
WHEN c.province_name IS NOT NULL AND c.province_name != '' THEN
CONCAT(
c.province_name,
IFNULL(c.city_name, ''),
IFNULL(c.district_name, '')
)
ELSE NULL
END AS regionName,
c.status,
pa.agent_name AS agentName,
COUNT(u.id) AS userCount,
c.created_at AS createdAt,
c.business_license_url AS businessLicenseUrl
FROM tcm_clinic c
LEFT JOIN tcm_provincial_agent pa ON pa.id = c.agent_id AND pa.deleted = 0
LEFT JOIN tcm_app_user u ON u.clinic_id = c.id AND u.deleted = 0
GROUP BY
c.id,
c.name,
c.contact_phone,
c.province_name,
c.city_name,
c.district_name,
c.status,
pa.agent_name,
c.created_at,
c.business_license_url
ORDER BY c.id DESC
SELECT DISTINCT
CASE
WHEN c.district_code IS NOT NULL AND c.district_code != '' THEN c.district_code
WHEN c.city_code IS NOT NULL AND c.city_code != '' THEN c.city_code
ELSE c.province_code
END AS regionCode,
CASE
WHEN c.province_name IS NOT NULL AND c.province_name != '' THEN
CONCAT(
c.province_name,
IFNULL(c.city_name, ''),
IFNULL(c.district_name, '')
)
ELSE NULL
END AS regionName
FROM tcm_clinic c
WHERE c.deleted = 0
AND c.province_name IS NOT NULL
AND c.province_name != ''
ORDER BY regionCode ASC
SELECT c.id, c.name, c.contact_phone AS contactPhone, c.address, c.province_code AS provinceCode, c.city_code AS cityCode, c.district_code AS districtCode,
c.business_license_url AS businessLicenseUrl,
c.bank_name AS bankName, c.account_holder AS accountHolder,
c.account_number AS accountNumber, c.branch_name AS branchName,
c.status, c.agent_id AS agentId,
u.phone AS loginAccount, u.avatar AS avatar,
COUNT(u.id) AS userCount
FROM tcm_clinic c
LEFT JOIN tcm_app_user u ON u.clinic_id = c.id AND u.deleted = 0 and u.type = 1
WHERE c.deleted = 0 AND c.id = #{id}
GROUP BY c.id, c.name, c.contact_phone, c.address, c.province_code, c.city_code, c.district_code, c.business_license_url,c.status,
c.bank_name, c.account_holder, c.account_number, c.branch_name, u.avatar, u.phone
SELECT
u.id,
u.nickname,
u.phone,
u.avatar,
IFNULL(p.livePoints, 0) AS livePoints,
CASE
WHEN u.member_expire_at IS NOT NULL AND u.member_expire_at > NOW() THEN 1
ELSE 0
END AS isMember,
u.status,
u.created_at AS createdAt
FROM tcm_app_user u
LEFT JOIN (
SELECT
app_user_id,
SUM(points_delta) AS livePoints
FROM tcm_points_ledger
WHERE deleted = 0
AND business_type = 'LIVE_WATCH'
AND income_expense_type = 'INCOME'
GROUP BY app_user_id
) p ON p.app_user_id = u.id
WHERE u.deleted = 0
AND u.clinic_id = #{clinicId}
AND u.nickname LIKE CONCAT('%', #{nickname}, '%')
AND u.phone LIKE CONCAT('%', #{phone}, '%')
AND u.status = #{status}
AND u.member_expire_at IS NOT NULL AND u.member_expire_at > NOW()
AND (u.member_expire_at IS NULL OR u.member_expire_at <= NOW())
AND u.created_at >= #{registeredFrom}
AND u.created_at <= #{registeredTo}
ORDER BY u.id DESC