SELECT
tm.*
FROM
t_technician_moment tm
WHERE
tm.status = 1
AND tm.audit_status = 2
AND tm.visible_range = 1
AND tm.is_recommend = 1
AND tm.is_list = 1
ORDER BY
tm.view_count DESC,
tm.publish_time DESC
SELECT
tm.*
FROM
t_technician_moment tm
WHERE
tm.status = 1
AND tm.audit_status = 2
AND tm.visible_range = 1
AND tm.is_list = 1
AND tm.city_code = #{cityCode}
ORDER BY
tm.publish_time DESC
SELECT
tm.*,
ST_Distance_Sphere(
POINT(tm.longitude, tm.latitude),
POINT(#{longitude}, #{latitude})
) / 1000 AS distance
FROM
t_technician_moment tm
WHERE
tm.status = 1
AND tm.audit_status = 2
AND tm.visible_range = 1
AND tm.is_list = 1
AND tm.latitude IS NOT NULL
AND tm.longitude IS NOT NULL
AND ST_Distance_Sphere(
POINT(tm.longitude, tm.latitude),
POINT(#{longitude}, #{latitude})
) / 1000 <= 10
ORDER BY
distance ASC,
tm.publish_time DESC
UPDATE
t_technician_moment
SET
view_count = view_count + 1
WHERE
id = #{momentId} and is_delete = 0 and audit_status = 2
UPDATE
t_technician_moment
SET
is_recommend = #{isRecommend},
update_time = NOW()
WHERE
id = #{momentId}
AND is_delete = 0
UPDATE
t_technician_moment
SET
is_list = #{isList},
update_time = NOW()
WHERE
id = #{momentId}
AND is_delete = 0
SELECT
COALESCE(SUM(CASE WHEN audit_status = 1 THEN 1 ELSE 0 END), 0) AS pendingCount,
COALESCE(SUM(CASE WHEN audit_status = 2 THEN 1 ELSE 0 END), 0) AS approvedCount,
COALESCE(SUM(CASE WHEN audit_status = 3 THEN 1 ELSE 0 END), 0) AS rejectedCount
FROM
t_technician_moment
WHERE
is_delete = 0
AND audit_status IN (1, 2, 3)
SELECT
a.id,
a.title,
a.content,
a.media_type,
a.audit_status,
a.reject_reason,
GROUP_CONCAT(b.media_url ORDER BY b.sort_order SEPARATOR ',') as media_urls
FROM
t_technician_moment a
LEFT JOIN t_moment_media b ON a.id = b.moment_id AND IFNULL(b.is_delete, 0) = 0
WHERE
a.id = #{momentId}
GROUP BY
a.id, a.title, a.content, a.media_type
SELECT
id,
title,
content,
media_type AS mediaType,
cover_url AS coverUrl,
view_count AS viewCount,
publish_time AS publishTime
FROM t_technician_moment
WHERE technician_id = #{dto.id}
AND status = 1 -- 仅查询正常状态的动态
AND audit_status = 2 -- 仅查询审核通过的动态
AND visible_range = 1 -- 仅查询可见范围的动态
AND is_list = 1 -- 仅查询已上架的动态
ORDER BY publish_time DESC