feat: 添加批量完成LOGGED_IN任务的方法,记录完成原因与可选点数,更新相关实体和映射

This commit is contained in:
yahaozhang
2025-09-16 14:24:49 +08:00
parent 093e72d191
commit cb0ad7f25b
6 changed files with 52 additions and 5 deletions

View File

@@ -23,24 +23,25 @@
<result property="firstRegionSelectAt" column="first_region_select_at" />
<result property="completedPoints" column="completed_points" />
<result property="completionImages" column="completion_images" />
<result property="reason" column="reason" />
</resultMap>
<select id="findById" parameterType="long" resultMap="LinkTaskMap">
SELECT id, batch_id, agent_id, code_no, token_hash, expire_at, status, region, machine_id, login_at, refund_at, revoked_at, created_at, updated_at, need_refresh, refresh_time, qr_created_at, qr_expire_at, first_region_select_at, completed_points, completion_images
SELECT id, batch_id, agent_id, code_no, token_hash, expire_at, status, region, machine_id, login_at, refund_at, revoked_at, created_at, updated_at, need_refresh, refresh_time, qr_created_at, qr_expire_at, first_region_select_at, completed_points, completion_images, reason
FROM link_task
WHERE id = #{id}
LIMIT 1
</select>
<select id="findByCodeNo" parameterType="string" resultMap="LinkTaskMap">
SELECT id, batch_id, agent_id, code_no, token_hash, expire_at, status, region, machine_id, login_at, refund_at, revoked_at, created_at, updated_at, need_refresh, refresh_time, qr_created_at, qr_expire_at, first_region_select_at, completed_points, completion_images
SELECT id, batch_id, agent_id, code_no, token_hash, expire_at, status, region, machine_id, login_at, refund_at, revoked_at, created_at, updated_at, need_refresh, refresh_time, qr_created_at, qr_expire_at, first_region_select_at, completed_points, completion_images, reason
FROM link_task
WHERE code_no = #{codeNo}
LIMIT 1
</select>
<select id="findByTokenHash" parameterType="string" resultMap="LinkTaskMap">
SELECT id, batch_id, agent_id, code_no, token_hash, expire_at, status, region, machine_id, login_at, refund_at, revoked_at, created_at, updated_at, need_refresh, refresh_time, qr_created_at, qr_expire_at, first_region_select_at, completed_points, completion_images
SELECT id, batch_id, agent_id, code_no, token_hash, expire_at, status, region, machine_id, login_at, refund_at, revoked_at, created_at, updated_at, need_refresh, refresh_time, qr_created_at, qr_expire_at, first_region_select_at, completed_points, completion_images, reason
FROM link_task
WHERE token_hash = #{tokenHash}
LIMIT 1
@@ -67,6 +68,7 @@
<if test="firstRegionSelectAt != null">first_region_select_at = #{firstRegionSelectAt},</if>
<if test="completedPoints != null">completed_points = #{completedPoints},</if>
<if test="completionImages != null">completion_images = #{completionImages},</if>
<if test="reason != null">reason = #{reason},</if>
updated_at = NOW()
</set>
WHERE id = #{id}
@@ -90,6 +92,19 @@
AND (completed_points IS NULL OR completed_points &lt; #{newPoints})
</update>
<!-- 将指定设备的 LOGGED_IN 任务批量置为 COMPLETED写入原因与可选点数 -->
<update id="completeLoggedInTasksByMachine">
UPDATE link_task
<set>
status = 'COMPLETED',
reason = #{reason},
<if test="completedPoints != null">completed_points = #{completedPoints},</if>
updated_at = NOW()
</set>
WHERE machine_id = #{machineId}
AND status = 'LOGGED_IN'
</update>
<select id="findByAgentId" resultMap="LinkTaskMap">
SELECT id, batch_id, agent_id, code_no, token_hash, expire_at, status, region, machine_id, login_at, refund_at, revoked_at, created_at, updated_at, need_refresh, refresh_time, qr_created_at, qr_expire_at, first_region_select_at, completed_points, completion_images
FROM link_task