forked from Gitlink/microservices
385 lines
19 KiB
XML
385 lines
19 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.microservices.dms.resourceLibrary.mapper.ProjectResourceLibraryMapper">
|
|
|
|
<select id="selectProjectListCondition" resultType="com.microservices.dms.resourceLibrary.domain.vo.ProjectListVo">
|
|
select name,id,
|
|
(select version_releases_count from repositories where project_id=projects.id) as versionReleasesCount,
|
|
(select name from project_languages where id=project_language_id) as projectLanguages,
|
|
(select c.name from project_categories c where id = project_category_id) as projectCategories,
|
|
forked_count,praises_count,watchers_count,issues_count,pull_requests_count,license_id,visits,
|
|
(select count(*) from searchers where search_type='Project' and search_id=projects.id) as
|
|
projectSearchCount,created_on,
|
|
(select count(*) from commit_logs where project_id=projects.id) as commitsCount,
|
|
(select count(*) from members where project_id=projects.id) as membersCount,
|
|
(select count(*) from members where (created_on >= NOW() - INTERVAL 1 MONTH ) and project_id=projects.id) as
|
|
membersMonthAddCount
|
|
from projects
|
|
<where>
|
|
<if test="categoryId != null">
|
|
AND project_category_id = #{categoryId}
|
|
</if>
|
|
<if test="name != null and name.trim() != ''">
|
|
AND `name` like concat('%', #{name}, '%')
|
|
</if>
|
|
</where>
|
|
</select>
|
|
|
|
<select id="selectCodeCommitCondition"
|
|
resultType="com.microservices.dms.resourceLibrary.domain.vo.UserActionDataVo">
|
|
select '' as itemType, project_id as itemId, user_id as userId, created_at as createAt,
|
|
(select login from users where id = user_id) as userName from commit_logs
|
|
<where>
|
|
<if test="itemId != null">
|
|
AND project_id = #{itemId}
|
|
</if>
|
|
</where>
|
|
</select>
|
|
|
|
<select id="selectForkCondition"
|
|
resultType="com.microservices.dms.resourceLibrary.domain.vo.UserActionDataVo">
|
|
select '' as itemType, fork_project_id as itemId, user_id as userId, created_at as createAt,
|
|
(select login from users where id = user_id) as userName from fork_users
|
|
<where>
|
|
<if test="itemId != null">
|
|
AND fork_project_id = #{itemId}
|
|
</if>
|
|
</where>
|
|
</select>
|
|
|
|
<select id="selectIssueCondition"
|
|
resultType="com.microservices.dms.resourceLibrary.domain.vo.UserActionDataVo">
|
|
select '' as itemType, project_id as itemId, assigned_to_id as userId, created_on as createAt,
|
|
(select login from users where id = assigned_to_id) as userName from issues
|
|
<where>
|
|
<if test="itemId != null">
|
|
AND project_id = #{itemId}
|
|
</if>
|
|
</where>
|
|
</select>
|
|
|
|
|
|
<select id="selectPRCondition"
|
|
resultType="com.microservices.dms.resourceLibrary.domain.vo.UserActionDataVo">
|
|
select '' as itemType, project_id as itemId, user_id as userId, created_on as createAt,
|
|
(select login from users where id = user_id) as userName from pull_requests
|
|
<where>
|
|
<if test="itemId != null">
|
|
AND project_id = #{itemId}
|
|
</if>
|
|
</where>
|
|
</select>
|
|
|
|
<select id="selectPraisesCondition"
|
|
resultType="com.microservices.dms.resourceLibrary.domain.vo.UserActionDataVo">
|
|
select praise_tread_object_type as itemType, project_id as itemId, user_id as userId, created_at as createAt,
|
|
(select login from users where id = user_id) as userName from praise_treads
|
|
<where>
|
|
<if test="itemId != null">
|
|
AND project_id = #{itemId}
|
|
</if>
|
|
<if test="itemType != null and itemType.trim() != ''">
|
|
AND praise_tread_object_type = #{itemType}
|
|
</if>
|
|
</where>
|
|
</select>
|
|
|
|
<select id="selectSearchCondition"
|
|
resultType="com.microservices.dms.resourceLibrary.domain.vo.UserActionDataVo">
|
|
select search_type as itemType, search_id as itemId, user_id as userId, created_at as createAt,
|
|
(select login from users where id = user_id) as userName from searchers
|
|
<where>
|
|
<if test="itemId != null">
|
|
AND search_id = #{itemId}
|
|
</if>
|
|
<if test="itemType != null and itemType.trim() != ''">
|
|
AND search_type = #{itemType}
|
|
</if>
|
|
</where>
|
|
</select>
|
|
|
|
|
|
<resultMap type="ProjectResourceLibrary" id="ProjectResourceLibraryResult">
|
|
<result property="id" column="id"/>
|
|
<result property="openSourceProjectId" column="open_source_project_id"/>
|
|
<result property="projectId" column="project_id"/>
|
|
<result property="repositoryId" column="repository_id"/>
|
|
<result property="versionReleasesId" column="version_releases_id"/>
|
|
<result property="isPublic" column="is_public"/>
|
|
<result property="releaseName" column="release_name"/>
|
|
<result property="releaseDate" column="release_date"/>
|
|
<result property="releasePerson" column="release_person"/>
|
|
<result property="releaseType" column="release_type"/>
|
|
<result property="releaseUnit" column="release_unit"/>
|
|
<result property="releaseSummary" column="release_summary"/>
|
|
<result property="releaseDetails" column="release_details"/>
|
|
<result property="contactPerson" column="contact_person"/>
|
|
<result property="contactPhone" column="contact_phone"/>
|
|
<result property="isTransferredToAchievement" column="is_transferred_to_achievement"/>
|
|
<result property="transferDate" column="transfer_date"/>
|
|
<result property="isSelectedAchievement" column="is_selected_achievement"/>
|
|
<result property="images" column="images"/>
|
|
<result property="attachments" column="attachments"/>
|
|
<result property="createBy" column="create_by"/>
|
|
<result property="createTime" column="create_time"/>
|
|
<result property="updateBy" column="update_by"/>
|
|
<result property="updateTime" column="update_time"/>
|
|
<result property="projectDomain" column="project_domain"/>
|
|
</resultMap>
|
|
|
|
|
|
<sql id="selectProjectResourceLibraryVo">
|
|
select id,
|
|
project_id,
|
|
repository_id,
|
|
version_releases_id,
|
|
is_public,
|
|
release_name,
|
|
release_date,
|
|
release_person,
|
|
release_type,
|
|
release_unit,
|
|
release_summary,
|
|
release_details,
|
|
contact_person,
|
|
contact_phone,
|
|
is_transferred_to_achievement,
|
|
transfer_date,
|
|
is_selected_achievement,
|
|
images,
|
|
attachments,
|
|
create_by,
|
|
create_time,
|
|
update_by,
|
|
update_time,project_domain
|
|
from project_resource_library
|
|
</sql>
|
|
|
|
<select id="selectProjectResourceLibraryList" parameterType="ProjectResourceLibrary"
|
|
resultType="com.microservices.dms.resourceLibrary.domain.ProjectResourceLibrary">
|
|
select pl.id,
|
|
p.name as project_name,
|
|
p.identifier,
|
|
p.id as project_id,
|
|
r.id as repository_id,
|
|
v.id as version_releases_id,
|
|
p.is_public as is_public,
|
|
v.name as release_name,
|
|
v.updated_at as release_date,
|
|
(select login from users where id=v.user_id) as release_person,
|
|
(select login from users where id=v.user_id) as user_identifier,
|
|
IFNULL(pl.project_domain,p.project_category_id) as project_domain,
|
|
pl.release_type,
|
|
pl.release_unit,
|
|
v.body,
|
|
IFNULL( pl.release_summary,v.body) as release_summary,
|
|
IFNULL( pl.release_details,v.body) as release_details,
|
|
p.description as release_summary,
|
|
p.description as release_details,
|
|
pl.contact_person,
|
|
pl.contact_phone,
|
|
pl.is_transferred_to_achievement,
|
|
pl.transfer_date,
|
|
pl.is_selected_achievement,
|
|
pl.images,
|
|
v.zipball_url as attachments,
|
|
pl.create_by,
|
|
pl.create_time,
|
|
pl.update_by,
|
|
pl.update_time
|
|
from projects p
|
|
join repositories r on p.id = r.project_id
|
|
join version_releases v on r.id = v.repository_id
|
|
left join project_resource_library pl on v.id = pl.version_releases_id
|
|
<where>
|
|
<if test="projectName != null and projectName != ''">and p.name like concat('%', #{projectName}, '%')</if>
|
|
<if test="versionReleasesId != null ">and version_releases_id = #{versionReleasesId}</if>
|
|
<if test="isPublic != null ">and pl.is_public = #{isPublic}</if>
|
|
<if test="releaseName != null and releaseName != ''">and release_name like concat('%', #{releaseName},
|
|
'%')
|
|
</if>
|
|
<if test="releaseDate != null ">and release_date = #{releaseDate}</if>
|
|
<if test="releasePerson != null and releasePerson != ''">and release_person = #{releasePerson}</if>
|
|
<if test="releaseType != null and releaseType != ''">and release_type = #{releaseType}</if>
|
|
<if test="releaseUnit != null and releaseUnit != ''">and release_unit = #{releaseUnit}</if>
|
|
<if test="releaseSummary != null and releaseSummary != ''">and release_summary = #{releaseSummary}</if>
|
|
<if test="releaseDetails != null and releaseDetails != ''">and release_details = #{releaseDetails}</if>
|
|
<if test="contactPerson != null and contactPerson != ''">and contact_person = #{contactPerson}</if>
|
|
<if test="contactPhone != null and contactPhone != ''">and contact_phone = #{contactPhone}</if>
|
|
<if test="isTransferredToAchievement != null ">and is_transferred_to_achievement =
|
|
#{isTransferredToAchievement}
|
|
</if>
|
|
<if test="transferDate != null ">and transfer_date = #{transferDate}</if>
|
|
<if test="isSelectedAchievement != null ">and is_selected_achievement = #{isSelectedAchievement}</if>
|
|
<if test="images != null and images != ''">and images = #{images}</if>
|
|
<if test="attachments != null and attachments != ''">and attachments = #{attachments}</if>
|
|
<if test="projectDomain != null and projectDomain != ''">and project_domain = #{projectDomain}</if>
|
|
</where>
|
|
order by is_transferred_to_achievement
|
|
</select>
|
|
|
|
<select id="selectProjectResourceLibraryById" parameterType="Long" resultMap="ProjectResourceLibraryResult">
|
|
<include refid="selectProjectResourceLibraryVo"/>
|
|
where id = #{id}
|
|
</select>
|
|
|
|
<insert id="insertProjectResourceLibrary" parameterType="ProjectResourceLibrary" useGeneratedKeys="true"
|
|
keyProperty="id">
|
|
insert into project_resource_library
|
|
<trim prefix="(" suffix=")" suffixOverrides=",">
|
|
|
|
<if test="projectId != null">project_id,</if>
|
|
<if test="repositoryId != null">repository_id,</if>
|
|
<if test="versionReleasesId != null">version_releases_id,</if>
|
|
<if test="isPublic != null">is_public,</if>
|
|
<if test="releaseName != null">release_name,</if>
|
|
<if test="releaseDate != null">release_date,</if>
|
|
<if test="releasePerson != null">release_person,</if>
|
|
<if test="releaseType != null">release_type,</if>
|
|
<if test="releaseUnit != null">release_unit,</if>
|
|
<if test="releaseSummary != null">release_summary,</if>
|
|
<if test="releaseDetails != null">release_details,</if>
|
|
<if test="contactPerson != null">contact_person,</if>
|
|
<if test="contactPhone != null">contact_phone,</if>
|
|
<if test="isTransferredToAchievement != null">is_transferred_to_achievement,</if>
|
|
<if test="transferDate != null">transfer_date,</if>
|
|
<if test="isSelectedAchievement != null">is_selected_achievement,</if>
|
|
<if test="images != null">images,</if>
|
|
<if test="attachments != null">attachments,</if>
|
|
<if test="createBy != null">create_by,</if>
|
|
<if test="createTime != null">create_time,</if>
|
|
<if test="updateBy != null">update_by,</if>
|
|
<if test="updateTime != null">update_time,</if>
|
|
<if test="projectDomain != null">project_domain,</if>
|
|
</trim>
|
|
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
|
|
|
<if test="projectId != null">#{projectId},</if>
|
|
<if test="repositoryId != null">#{repositoryId},</if>
|
|
<if test="versionReleasesId != null">#{versionReleasesId},</if>
|
|
<if test="isPublic != null">#{isPublic},</if>
|
|
<if test="releaseName != null">#{releaseName},</if>
|
|
<if test="releaseDate != null">#{releaseDate},</if>
|
|
<if test="releasePerson != null">#{releasePerson},</if>
|
|
<if test="releaseType != null">#{releaseType},</if>
|
|
<if test="releaseUnit != null">#{releaseUnit},</if>
|
|
<if test="releaseSummary != null">#{releaseSummary},</if>
|
|
<if test="releaseDetails != null">#{releaseDetails},</if>
|
|
<if test="contactPerson != null">#{contactPerson},</if>
|
|
<if test="contactPhone != null">#{contactPhone},</if>
|
|
<if test="isTransferredToAchievement != null">#{isTransferredToAchievement},</if>
|
|
<if test="transferDate != null">#{transferDate},</if>
|
|
<if test="isSelectedAchievement != null">#{isSelectedAchievement},</if>
|
|
<if test="images != null">#{images},</if>
|
|
<if test="attachments != null">#{attachments},</if>
|
|
<if test="createBy != null">#{createBy},</if>
|
|
<if test="createTime != null">#{createTime},</if>
|
|
<if test="updateBy != null">#{updateBy},</if>
|
|
<if test="updateTime != null">#{updateTime},</if>
|
|
<if test="projectDomain != null">#{projectDomain},</if>
|
|
</trim>
|
|
</insert>
|
|
|
|
<update id="updateProjectResourceLibrary" parameterType="ProjectResourceLibrary">
|
|
update project_resource_library
|
|
<trim prefix="SET" suffixOverrides=",">
|
|
<if test="projectId != null">project_id = #{projectId},</if>
|
|
<if test="repositoryId != null">repository_id = #{repositoryId},</if>
|
|
<if test="versionReleasesId != null">version_releases_id = #{versionReleasesId},</if>
|
|
<if test="isPublic != null">is_public = #{isPublic},</if>
|
|
<if test="releaseName != null">release_name = #{releaseName},</if>
|
|
<if test="releaseDate != null">release_date = #{releaseDate},</if>
|
|
<if test="releasePerson != null">release_person = #{releasePerson},</if>
|
|
<if test="releaseType != null">release_type = #{releaseType},</if>
|
|
<if test="releaseUnit != null">release_unit = #{releaseUnit},</if>
|
|
<if test="releaseSummary != null">release_summary = #{releaseSummary},</if>
|
|
<if test="releaseDetails != null">release_details = #{releaseDetails},</if>
|
|
<if test="contactPerson != null">contact_person = #{contactPerson},</if>
|
|
<if test="contactPhone != null">contact_phone = #{contactPhone},</if>
|
|
<if test="isTransferredToAchievement != null">is_transferred_to_achievement =
|
|
#{isTransferredToAchievement},
|
|
</if>
|
|
<if test="transferDate != null">transfer_date = #{transferDate},</if>
|
|
<if test="isSelectedAchievement != null">is_selected_achievement = #{isSelectedAchievement},</if>
|
|
<if test="images != null">images = #{images},</if>
|
|
<if test="attachments != null">attachments = #{attachments},</if>
|
|
<if test="createBy != null">create_by = #{createBy},</if>
|
|
<if test="createTime != null">create_time = #{createTime},</if>
|
|
<if test="updateBy != null">update_by = #{updateBy},</if>
|
|
<if test="updateTime != null">update_time = #{updateTime},</if>
|
|
<if test="projectDomain != null">project_domain = #{projectDomain},</if>
|
|
</trim>
|
|
where id = #{id}
|
|
</update>
|
|
|
|
<delete id="deleteProjectResourceLibraryById" parameterType="Long">
|
|
delete
|
|
from project_resource_library
|
|
where id = #{id}
|
|
</delete>
|
|
|
|
<delete id="deleteProjectResourceLibraryByIds" parameterType="String">
|
|
delete from project_resource_library where id in
|
|
<foreach item="id" collection="array" open="(" separator="," close=")">
|
|
#{id}
|
|
</foreach>
|
|
</delete>
|
|
|
|
<select id="getTotalProjectCount" resultType="java.lang.Long">
|
|
select COUNT(distinct p.id)
|
|
from projects p
|
|
join repositories r on p.id = r.project_id
|
|
join version_releases v on r.id = v.repository_id
|
|
</select>
|
|
<select id="getPublicProjectCount" resultType="java.lang.Long">
|
|
select COUNT(distinct p.id)
|
|
from projects p
|
|
join repositories r on p.id = r.project_id
|
|
join version_releases v on r.id = v.repository_id
|
|
where p.is_public = 1
|
|
</select>
|
|
<select id="getTotalReleaseCount" resultType="java.lang.Long">
|
|
select COUNT(*)
|
|
from version_releases
|
|
</select>
|
|
<select id="getTotalConversionCount" resultType="java.lang.Long">
|
|
select COUNT(*)
|
|
from project_resource_library
|
|
where is_transferred_to_achievement = 1
|
|
</select>
|
|
|
|
<select id="getAttachments" resultType="com.microservices.dms.resourceLibrary.domain.vo.KeyValVo">
|
|
select uuid as v, filename as k
|
|
from attachments
|
|
where container_type = 'VersionRelease'
|
|
and container_id = #{containerId}
|
|
union
|
|
select tarball_url as v,concat(tag_name,'.tar.gz') as k
|
|
from version_releases
|
|
where id = #{containerId}
|
|
union
|
|
select zipball_url as v,concat(tag_name,'.zip') as k
|
|
from version_releases
|
|
where id = #{containerId}
|
|
|
|
</select>
|
|
|
|
<select id="getProjectDomainNameByKey" resultType="String">
|
|
select name from project_categories where id=#{projectDomain}
|
|
</select>
|
|
|
|
<select id="selectProjectInfos" resultType="com.microservices.dms.achievementLibrary.domain.TokenListVo">
|
|
select p.id ,p.name ,created_on, r.identifier repositoryName, r.id as repositoryId from projects p
|
|
join repositories r on p.id = r.project_id where p.use_blockchain = 1
|
|
</select>
|
|
|
|
<select id="sumProjectIssueToken" resultType="java.lang.Long">
|
|
select IFNULL(sum(i.blockchain_token_num),0)
|
|
from issues i
|
|
inner join projects p on i.project_id = p.id
|
|
where p.id=#{id}
|
|
</select>
|
|
|
|
</mapper>
|