31 lines
1.2 KiB
XML
31 lines
1.2 KiB
XML
|
|
<?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.qingqiu.interview.mapper.InterviewSessionMapper">
|
||
|
|
|
||
|
|
<select id="selectBySessionId" resultType="com.qingqiu.interview.entity.InterviewSession">
|
||
|
|
SELECT * FROM interview_session
|
||
|
|
WHERE session_id = #{sessionId} AND deleted = 0
|
||
|
|
</select>
|
||
|
|
|
||
|
|
<select id="selectActiveSessionsByModel" resultType="com.qingqiu.interview.entity.InterviewSession">
|
||
|
|
SELECT * FROM interview_session
|
||
|
|
WHERE ai_model = #{aiModel} AND status = 'ACTIVE' AND deleted = 0
|
||
|
|
ORDER BY created_time DESC
|
||
|
|
</select>
|
||
|
|
|
||
|
|
<update id="updateSessionStatus">
|
||
|
|
UPDATE interview_session
|
||
|
|
SET status = #{status}, updated_time = NOW()
|
||
|
|
WHERE session_id = #{sessionId}
|
||
|
|
</update>
|
||
|
|
|
||
|
|
<select id="countRecentInterviews" resultType="com.qingqiu.interview.dto.DashboardStatsResponse$DailyStat">
|
||
|
|
SELECT DATE(created_time) as date, COUNT(*) as count
|
||
|
|
FROM interview_session
|
||
|
|
WHERE created_time >= DATE_SUB(NOW(), INTERVAL #{days} DAY)
|
||
|
|
GROUP BY DATE(created_time)
|
||
|
|
ORDER BY date ASC
|
||
|
|
</select>
|
||
|
|
|
||
|
|
</mapper>
|