123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295 |
- <?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.hssx.cloudmodel.mapper.ProjectMapper">
- <!-- 通用查询映射结果 -->
- <resultMap id="BaseResultMap" type="com.hssx.cloudmodel.entity.Project">
- <id column="id" property="id" />
- <result column="project_name" property="projectName" />
- <result column="project_no" property="projectNo" />
- <result column="start_time" property="startTime" />
- <result column="end_time" property="endTime" />
- <result column="content" property="content" />
- <result column="creator_id" property="creatorId" />
- <result column="creator" property="creator" />
- <result column="is_delete" property="isDelete" />
- <result column="owner_company" property="ownerCompany" />
- <result column="owner_company_name" property="ownerCompanyName" />
- <result column="indate" property="indate" />
- <result column="manager_id" property="managerId" />
- <result column="manager" property="manager" />
- </resultMap>
- <resultMap id="BaseResultMapList" type="com.hssx.cloudmodel.entity.vo.ProjectVO">
- <id column="id" property="id" />
- <result column="project_name" property="projectName" />
- <result column="project_no" property="projectNo" />
- <result column="start_time" property="startTime" />
- <result column="end_time" property="endTime" />
- <result column="content" property="content" />
- <result column="creator_id" property="creatorId" />
- <result column="creator" property="creator" />
- <result column="is_delete" property="isDelete" />
- <result column="owner_company" property="ownerCompany" />
- <result column="owner_company_name" property="ownerCompanyName" />
- <result column="indate" property="indate" />
- <result column="manager_id" property="managerId" />
- <result column="manager" property="manager" />
- <!--以下是分页插件的一对多-->
- <collection property="customCompanies" javaType="java.util.List" ofType="com.hssx.cloudmodel.entity.CustomCompany"
- select="queryCustomCompaniesId" column="id">
- </collection>
- </resultMap>
- <!-- 以上一对多的映射-->
- <resultMap id="getCustomCompany" type="com.hssx.cloudmodel.entity.CustomCompany">
- <result column="company_id" property="companyId" />
- <result column="company_name" property="companyName" />
- </resultMap>
- <select id="getProjectListByUid" resultMap="BaseResultMapList">
- select
- p.id id,p.project_name project_name, p.creator creator,p.owner_company owner_company,
- p.owner_company_name owner_company_name,p.manager_id manager_id,p.manager manager,
- p.indate indate
- from
- tb_project p
- left join tb_project_user pu
- on p.id = pu.project_id
- left join tb_project_approve tpa
- on tpa.project_id = p.id
- <where>
- <!--<if test="currentUser.id != 1">
- pu.user_id = #{currentUser.id} OR p.`creator_id` = #{currentUser.id} OR p.`manager_id` = #{currentUser.id} OR tpa.approver_id = #{currentUser.id}
- </if>-->
- <if test="keyName != null and keyName != ''">
- AND p.project_name like concat('%',#{keyName},'%')
- </if>
- </where>
- GROUP BY p.id
- order by p.id desc
- </select>
- <select id="getProjectListByUidInProjectIds" resultMap="BaseResultMapList">
- select
- p.id id,p.project_name project_name, p.creator creator,p.owner_company owner_company,
- p.owner_company_name owner_company_name,p.manager_id manager_id,p.manager manager,
- p.indate indate
- from
- tb_project p
- left join tb_project_user pu
- on p.id = pu.project_id
- left join tb_project_approve tpa
- on tpa.project_id = p.id
- <where>
- p.id in <foreach collection="list" separator="," close=")" item="item" open="(" index="index">
- #{item}
- </foreach>
- <!--<if test="currentUser.id != 1">
- pu.user_id = #{currentUser.id} OR p.`creator_id` = #{currentUser.id} OR p.`manager_id` = #{currentUser.id} OR tpa.approver_id = #{currentUser.id}
- </if>-->
- <if test="keyName != null and keyName != ''">
- AND p.project_name like concat('%',#{keyName},'%')
- </if>
- </where>
- GROUP BY p.id
- order by p.id desc
- </select>
- <!--一对多的子查询 queryCustomCompaniesId-->
- <select id="queryCustomCompaniesId" resultMap="getCustomCompany">
- SELECT
- c.company_id company_id,c.company_name company_name
- from
- tb_project p
- RIGHT JOIN
- tb_custom_company c
- on
- c.project_id = p.id
- WHERE
- p.id = #{id}
- GROUP BY c.company_id
- </select>
- <!-- 通用查询结果列 -->
- <sql id="Base_Column_List">
- id, project_name, project_no, start_time, end_time, content, creator_id, creator, is_delete, owner_company, owner_company_name, indate, manager_id, manager
- </sql>
- <resultMap id="BaseResultMapVO" type="com.hssx.cloudmodel.entity.vo.ProjectVO">
- <id column="id" property="id" />
- <result column="project_name" property="projectName" />
- <result column="project_no" property="projectNo" />
- <result column="creator_id" property="creatorId" />
- <result column="creator" property="creator" />
- <result column="is_delete" property="isDelete" />
- <result column="pindate" property="indate" />
- <result column="manager_id" property="managerId" />
- <result column="manager" property="manager" />
- <result column="owner_company" property="ownerCompany" />
- <result column="owner_company_name" property="ownerCompanyName" />
- <collection property="models" ofType="com.hssx.cloudmodel.entity.Mould">
- <id column="model_id" property="id" />
- <result column="model_no" property="modelNo" />
- <result column="model_name" property="modelName" />
- <result column="produce_company_id" property="produceCompanyId" />
- <result column="belong_project_grade" property="belongProjectGrade" />
- <result column="produce_company_name" property="produceCompanyName" />
- </collection>
- <collection property="approves" ofType="com.hssx.cloudmodel.entity.ProjectApprove">
- <result column="approver_id" property="approverId" />
- <result column="approver_name" property="approverName" />
- <result column="company_id" property="companyId" />
- <result column="company_name" property="companyName" />
- <result column="subordinate_type" property="subordinateType" />
- <result column="project_id" property="projectId" />
- </collection>
- <collection property="customCompanies" ofType="com.hssx.cloudmodel.entity.CustomCompany">
- <result column="companyid" property="companyId" />
- <result column="companyname" property="companyName" />
- </collection>
- </resultMap>
- <select id="getProjectById" resultMap="BaseResultMapVO">
- select
- p.id id, p.project_name project_name, p.project_no project_no, p.creator_id creator_id,p.manager_id manager_id,p.manager manager,
- p.creator creator, p.owner_company owner_company,p.owner_company_name owner_company_name,p.indate pindate,m.belong_project_grade,
- m.id model_id, m.model_no model_no,m.model_name model_name,a.approver_id approver_id,a.approver_name approver_name,a.subordinate_type subordinate_type,
- c.company_id companyid,c.company_name companyname,tbc.company_name produce_company_name,tbc.id produce_company_id
- from
- tb_project p
- left join tb_mould m
- on p.id = m.project_id
- left join tb_project_approve a
- on p.id = a.project_id
- left join tb_custom_company c
- on c.project_id = p.id
- LEFT JOIN tb_company tbc
- ON tbc.`id` = m.`produce_company_id`
- where
- p.id = #{id}
- </select>
- <resultMap id="UserResultMap" type="com.hssx.cloudmodel.entity.User">
- <id column="id" property="id" />
- <result column="username" property="username" />
- <result column="role_type" property="roleType" />
- <result column="company_id" property="companyId" />
- <result column="head_imgurl" property="headImgurl" />
- <result column="subordinate_type" property="subordinateType" />
- </resultMap>
- <select id="getProjectUserById" resultMap="UserResultMap">
- select
- u.id id, u.username username, u.indate indate, u.head_imgurl head_imgurl, u.subordinate_type subordinate_type
- from
- tb_project_user pu
- RIGHT join
- tb_user u
- on
- pu.user_id = u.id
- where
- pu.project_id = #{id} and pu.role_type IS NULL
- </select>
- <resultMap id="BaseResultMapPowerList" type="com.hssx.cloudmodel.entity.vo.ProjectVO">
- <id column="id" property="id" />
- <result column="project_name" property="projectName" />
- <result column="project_id" property="projectId" />
- <result column="user_id" property="userId" />
- <result column="company_name" property="companyName" />
- <result column="powerString" property="powerString" />
- </resultMap>
- <select id="selectUserPowerList1" resultMap="BaseResultMapPowerList">
- SELECT
- tbpu.user_id ,tbpu.project_id ,GROUP_CONCAT(tbpu.power_type) powerString,
- tbu.username ,tbc.company_name,
- tbp.project_name
- FROM `tb_power` tbpu
- left join
- tb_project tbp
- on tbp.id = tbpu.project_id
- left join
- tb_user tbu
- on tbpu.user_id = tbu.id
- left join
- tb_company tbc
- on tbc.id = tbu.company_id
- <where>
- <if test="user.projectId != null">
- tbpu.project_id = #{user.projectId}
- </if>
- <if test="user.companyId != null">
- tbu.company_id = #{user.companyId}
- </if>
- <if test="user.keyName != null and user.keyName != ''">
- tbu.username like concat('%',#{user.keyName},'%')
- </if>
- <if test="type == 0">
- tbp.creator_id = #{user.id}
- </if>
- <if test="type == 1">
- tbp.manager_id = #{user.id}
- </if>
- </where>
- GROUP BY tbpu.user_id ,tbpu.project_id;
- order by tbpu.user_id
- </select>
- <resultMap id="BaseResultMapPower" type="com.hssx.cloudmodel.entity.vo.ProjectVO">
- <id column="id" property="id" />
- <result column="project_name" property="projectName" />
- <result column="project_id" property="projectId" />
- <result column="user_id" property="userId" />
- <result column="username" property="username"/>
- <result column="company_name" property="companyName" />
- <result column="powerString" property="powerString" />
- <collection property="powers" javaType="java.util.List" ofType="com.hssx.cloudmodel.entity.Power"
- select="queryPowerByUserIdAndProject" column="{userId = user_id,projectId = project_id}">
- </collection>
- </resultMap>
- <resultMap id="BasePower" type="com.hssx.cloudmodel.entity.Power">
- <result column="power_type" property="powerType" />
- <result column="user_id" property="userId" />
- <result column="project_id" property="projectId" />
- </resultMap>
- <select id="selectUserPowerList" resultMap="BaseResultMapPower">
- SELECT
- tbpu.user_id user_id,tbpu.project_id project_id,tbu.username username,tbc.company_name,
- tbp.project_name
- FROM
- `tb_project_user` tbpu
- LEFT JOIN
- tb_project tbp
- ON tbp.id = tbpu.project_id
- LEFT JOIN
- tb_user tbu
- ON tbpu.user_id = tbu.id
- LEFT JOIN
- tb_company tbc
- ON tbc.id = tbu.company_id
- <where>
- <if test="user.projectId != null and user.projectId !=''">
- AND tbpu.project_id = #{user.projectId}
- </if>
- <if test="user.cId != null and user.cId !=''">
- AND tbu.company_id = #{user.cId}
- </if>
- <if test="user.keyName != null and user.keyName != ''">
- AND tbu.username like concat('%',#{user.keyName},'%')
- </if>
- <if test="type == 0">
- AND tbp.creator_id = #{user.id}
- </if>
- <if test="type == 1">
- AND tbp.manager_id = #{user.id}
- </if>
- </where>
- </select>
- <!--一对多的子查询 queryCustomCompaniesId-->
- <select id="queryPowerByUserIdAndProject" resultMap="BasePower" parameterType="java.util.Map">
- SELECT
- tbpw.user_id,tbpw.project_id,tbpw.power_type
- from
- `tb_power` tbpw
- WHERE
- tbpw.project_id = #{projectId}
- and
- tbpw.user_id =#{userId}
- </select>
- </mapper>
|