forked from kidgrow-microservices-platform

liuke
2020-11-03 23a84db2fb05817e23b60839345f6ed96ed57857
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/resources/mapper/SysDoctorMapper.xml
@@ -6,12 +6,7 @@
    <sql id="Column_List">
     DISTINCT *
   </sql>
    <!--sql查询片段-->
    <sql id="where">
        <where>
            <!--查询条件自行添加-->
            is_del=0
    <sql id="where_condition">
            <if test="p.id != null and p.id !=''">
                and id = #{p.id}
            </if>
@@ -90,7 +85,90 @@
            <if test="p.updateTime != null and p.updateTime !=''">
                and update_time = #{p.updateTime}
            </if>
            <include refid="com.kidgrow.usercenter.mapper.SysRoleOrganizationMapper.Role_Organization"/>
    </sql>
    <!--sql查询片段-->
    <sql id="where_list">
        <where>
            <!--查询条件自行添加-->
            is_del=0
            <include refid="where_condition"></include>
            <include refid="Role_Organization"/>
        </where>
    </sql>
    <!--定义数据权限的查询-->
    <sql id="Role_Organization">
        <if test="p.roleOrg != null and p.roleOrg.size>0">
            <foreach item="item" collection="p.roleOrg" index="">
                <foreach item="itemto" collection="item" index="inx">
                    <choose>
                        <when test="inx == 1">
                            <if test="itemto.flag">
                            </if>
                            <if test="!itemto.flag">
                                or ( is_del = 0 and enabled=1) <include refid="where_condition"></include>
                            </if>
                        </when>
                        <when test="inx==2">
                            <if test="itemto.flag">
                                AND
                                <foreach item="itemtoto" collection="itemto.object" separator="or" open="(" close=")"
                                         index="">
                                    create_user_org_code = #{itemtoto.orgCode}
                                </foreach>
                            </if>
                            <if test="!itemto.flag">
                                or (
                                <foreach item="itemtoto" collection="itemto.object" separator="or" open="(" close=")"
                                         index="">
                                    create_user_org_code = #{itemtoto.orgCode}
                                </foreach>
                                and is_del = 0 and enabled=1  <include refid="where_condition"></include>
                                )
                            </if>
                        </when>
                        <when test="inx == 3">
                            <if test="itemto.flag">
                                AND
                                create_user_org_code = #{itemto.object}
                            </if>
                            <if test="!itemto.flag">
                                or (create_user_org_code = #{itemto.object} and is_del = 0 and enabled=1) <include refid="where_condition"></include>
                            </if>
                        </when>
                        <when test="inx == 4">
                            <if test="itemto.flag">
                                AND
                                create_user_org_code like '${itemto.object}%'
                            </if>
                            <if test="!itemto.flag">
                                or (create_user_org_code like '${itemto.object}%' and is_del = 0 and enabled=1) <include refid="where_condition"></include>
                            </if>
                        </when>
                        <when test="inx == 5">
                            <if test="itemto.flag">
                                AND
                                create_user_id = #{itemto.object}
                            </if>
                            <if test="!itemto.flag">
                                or (create_user_id = #{itemto.object} and is_del = 0 and enabled=1) <include refid="where_condition"></include>
                            </if>
                        </when>
                        <otherwise>
                            AND id is null
                        </otherwise>
                    </choose>
                </foreach>
            </foreach>
        </if>
    </sql>
    <sql id="where">
        <where>
            <!--查询条件自行添加-->
            is_del=0
            <include refid="where_condition"></include>
        </where>
    </sql>
@@ -109,7 +187,7 @@
        select
        <include refid="Column_List"/>
        from sys_doctor
        <include refid="where"/>
        <include refid="where_list"/>
        order by id desc
    </select>