<?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="jnpf.base.mapper.UploadEditDraftMapper">
|
<resultMap id="draft" type="jnpf.base.model.uploadedit.UploadEditDraft">
|
<id column="id" property="id"/>
|
<result column="tenant_id" property="tenantId"/>
|
<result column="owner_id" property="ownerId"/>
|
<result column="model_id" property="modelId"/>
|
<result column="record_id" property="recordId"/>
|
<result column="field_key" property="field"/>
|
<result column="parent_field" property="parentField"/>
|
<result column="row_id" property="rowId"/>
|
<result column="menu_id" property="menuId"/>
|
<result column="task_id" property="taskId"/>
|
<result column="baseline_json" property="baselineJson"/>
|
<result column="current_json" property="currentJson"/>
|
<result column="edit_origins_json" property="editOriginsJson"/>
|
<result column="revision" property="revision"/>
|
<result column="lease_id" property="leaseId"/>
|
<result column="lease_file_id" property="leaseFileId"/>
|
<result column="lease_result_file_id" property="leaseResultFileId"/>
|
<result column="last_operation_id" property="lastOperationId"/>
|
<result column="updated_at" property="updatedAt"/>
|
</resultMap>
|
<sql id="columns">id, tenant_id, owner_id, model_id, record_id, field_key, parent_field, row_id,
|
menu_id, task_id, baseline_json, current_json, edit_origins_json, revision, lease_id, lease_file_id,
|
lease_result_file_id, last_operation_id, updated_at</sql>
|
<select id="find" resultMap="draft">
|
SELECT <include refid="columns"/> FROM base_upload_edit_draft WHERE tenant_id = #{tenantId} AND id = #{id}
|
</select>
|
<select id="findLease" resultMap="draft">
|
SELECT <include refid="columns"/> FROM base_upload_edit_draft WHERE tenant_id = #{tenantId} AND lease_id = #{leaseId}
|
</select>
|
<select id="lockRecord" resultMap="draft">
|
SELECT <include refid="columns"/> FROM base_upload_edit_draft
|
WHERE tenant_id = #{tenantId} AND model_id = #{modelId} AND record_id = #{recordId}
|
ORDER BY id FOR UPDATE
|
</select>
|
<resultMap id="recordId" type="java.lang.String"><result column="record_id"/></resultMap>
|
<select id="lockDmsRecord" resultMap="recordId" useCache="false" flushCache="true">
|
SELECT f_id AS record_id FROM
|
<choose>
|
<when test="table == 'dms_wenjian_xinzeng_shenhe'">dms_wenjian_xinzeng_shenhe</when>
|
<when test="table == 'dms_wenjian_xiuding_shenhe'">dms_wenjian_xiuding_shenhe</when>
|
<otherwise>(SELECT NULL AS f_id, NULL AS f_tenant_id, NULL AS f_delete_mark WHERE 1=0) unsupported</otherwise>
|
</choose>
|
WHERE f_tenant_id=#{tenantId} AND f_id=#{recordId} AND f_delete_mark IS NULL FOR UPDATE
|
</select>
|
<insert id="insert">
|
INSERT INTO base_upload_edit_draft (<include refid="columns"/>) VALUES
|
(#{id}, #{tenantId}, #{ownerId}, #{modelId}, #{recordId}, #{field}, #{parentField}, #{rowId},
|
#{menuId}, #{taskId}, #{baselineJson}, #{currentJson}, #{editOriginsJson}, #{revision}, #{leaseId}, #{leaseFileId},
|
#{leaseResultFileId}, #{lastOperationId}, #{updatedAt})
|
</insert>
|
<update id="touchLease">
|
UPDATE base_upload_edit_draft SET updated_at = #{now}
|
WHERE tenant_id = #{tenantId} AND id = #{id} AND owner_id = #{ownerId}
|
AND lease_id = #{leaseId} AND updated_at >= #{cutoff}
|
</update>
|
<update id="compareAndSet">
|
UPDATE base_upload_edit_draft SET owner_id = #{draft.ownerId}, baseline_json = #{draft.baselineJson}, current_json = #{draft.currentJson},
|
edit_origins_json = #{draft.editOriginsJson}, revision = #{draft.revision}, lease_id = #{draft.leaseId}, lease_file_id = #{draft.leaseFileId},
|
lease_result_file_id = #{draft.leaseResultFileId}, last_operation_id = #{draft.lastOperationId}, updated_at = #{draft.updatedAt}
|
WHERE tenant_id = #{draft.tenantId} AND id = #{draft.id} AND revision = #{expectedRevision}
|
</update>
|
</mapper>
|