Files
guoju0808/ry-api/ruoyi-business/src/main/resources/mapper/business/BizProjectSponsorAssignMapper.xml
T
2026-08-29 17:52:05 +08:00

49 lines
2.6 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.ruoyi.business.mapper.BizProjectSponsorAssignMapper">
<resultMap id="BaseResultMap" type="BizProjectSponsorAssign">
<id property="id" column="id" />
<result property="projectId" column="project_id" />
<result property="sponsorOrgId" column="sponsor_org_id" />
<result property="monitorUserId" column="monitor_user_id" />
<result property="assignDesc" column="assign_desc" />
<result property="assignPoints" column="assign_points" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="sponsorUserName" column="sponsor_user_name" />
<result property="monitorUserName" column="monitor_user_name" />
<result property="isDeleted" column="is_deleted" />
</resultMap>
<insert id="insertAssign" parameterType="BizProjectSponsorAssign" useGeneratedKeys="true" keyProperty="id">
INSERT INTO biz_project_sponsor_assign
(project_id, sponsor_org_id, monitor_user_id, assign_desc, assign_points, create_by, create_time)
VALUES
(#{projectId}, #{sponsorOrgId}, #{monitorUserId}, #{assignDesc}, #{assignPoints}, #{createBy}, sysdate())
</insert>
<!-- 按 project_id 全删 (支持方分配策略: 一个项目只分配一个 sponsor, 先删后插) -->
<delete id="deleteByProjectId" parameterType="String">
delete from biz_project_sponsor_assign where project_id = #{projectId}
</delete>
<!-- 软删除: 项目级联删除时按 project_id (String) 置 is_deleted=1 -->
<update id="softDeleteByProjectId" parameterType="String">
update biz_project_sponsor_assign set is_deleted = 1 where project_id = #{projectId}
</update>
<select id="selectByProjectId" resultMap="BaseResultMap">
SELECT a.*,
COALESCE(NULLIF(sp.name, ''), s.nick_name) AS sponsor_user_name,
COALESCE(NULLIF(p.name, ''), m.nick_name) AS monitor_user_name
FROM biz_project_sponsor_assign a
LEFT JOIN biz_org o ON o.org_id = a.sponsor_org_id
LEFT JOIN sys_user s ON s.user_id = o.user_id
LEFT JOIN biz_person sp ON sp.user_id = o.user_id
LEFT JOIN biz_person p ON p.user_id = a.monitor_user_id
INNER JOIN sys_user m ON a.monitor_user_id = m.user_id
WHERE a.project_id = #{projectId} and a.is_deleted = 0
ORDER BY a.create_time DESC
</select>
</mapper>