forked from kidgrow-microservices-platform

zhaoxiaohao
2020-11-16 f30a977b18541d2f1b9a7863b1377e5f366df9dc
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/resources/mapper/SysHospitalMapper.xml
@@ -130,12 +130,40 @@
        <include refid="where"/>
        order by id desc
    </select>
    <sql id="wherelist_last">
        <if test="p.isScreen != null and p.isScreen !=''">
            and is_screen = #{p.isScreen}
        </if>
        <if test="p.isPay != null and p.isPay !=''">
            and is_pay = #{p.isPay}
        </if>
        <if test="p.isAnswer != null and p.isAnswer !=''">
            and is_answer = #{p.isAnswer}
        </if>
        <if test="p.hospitalState != null and p.hospitalState !=''">
            and hospital_state = #{p.hospitalState}
        </if>
        <if test="p.hospitalProvince != null and p.hospitalProvince !=''">
            and hospital_province = #{p.hospitalProvince}
        </if>
        <if test="p.hospitalCity != null and p.hospitalCity !=''">
            and hospital_city = #{p.hospitalCity}
        </if>
        <if test="p.hospitalArea != null and p.hospitalArea !=''">
            and hospital_area = #{p.hospitalArea}
        </if>
        <if test="p.hospitalName != null and p.hospitalName !=''">
            and hospital_name LIKE concat('%',#{p.hospitalName},'%')
        </if>
    </sql>
    <sql id="whereList">
        <where>
            DEP.is_del = 0
            AND HOS.is_del = 0
            hosisdel = 0
            <if test="p.isScreen != null and p.isScreen !=''">
                and is_screen = #{p.isScreen}
            </if>
            <if test="p.isPay != null and p.isPay !=''">
                and is_pay = #{p.isPay}
            </if>
            <if test="p.isAnswer != null and p.isAnswer !=''">
                and is_answer = #{p.isAnswer}
@@ -163,26 +191,28 @@
                        <choose>
                            <when test="inx == 1">
                                <if test="itemto.flag">
                                    and 1=1
                                </if>
                                <if test="!itemto.flag">
                                    or (1=1 and HOS.is_del = 0 and HOS.enabled=1)
                                    or ( hospitals.hosisdel = 0 and hospitals.hosenabled=1 <include refid="wherelist_last"></include>)
                                </if>
                            </when>
                            <when test="inx==2">
                                <if test="itemto.flag">
                                    AND
                                    <foreach item="itemtoto" collection="itemto.object" separator="or" open="(" close=")"
                                    <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=")"
                                    <foreach item="itemtoto" collection="itemto.object" separator="or" open="("
                                             close=")"
                                             index="">
                                        create_user_org_code = #{itemtoto.orgCode}
                                    </foreach>  and HOS.is_del = 0 and HOS.enabled=1
                                    </foreach>
                                    and hospitals.hosisdel = 0 and hospitals.hosenabled=1 <include refid="wherelist_last"></include>
                                    )
                                </if>
                            </when>
@@ -192,7 +222,7 @@
                                    create_user_org_code = #{itemto.object}
                                </if>
                                <if test="!itemto.flag">
                                    or (create_user_org_code = #{itemto.object} and HOS.is_del = 0 and HOS.enabled=1)
                                    or (create_user_org_code = #{itemto.object} and hospitals.hosisdel = 0 and hospitals.hosenabled=1 <include refid="wherelist_last"></include>)
                                </if>
                            </when>
                            <when test="inx == 4">
@@ -201,16 +231,17 @@
                                    create_user_org_code like '${itemto.object}%'
                                </if>
                                <if test="!itemto.flag">
                                    or (create_user_org_code like '${itemto.object}%' and HOS.is_del = 0 and HOS.enabled=1)
                                    or (create_user_org_code like '${itemto.object}%' and hospitals.hosisdel = 0 and
                                    hospitals.hosenabled=1 <include refid="wherelist_last"></include>)
                                </if>
                            </when>
                            <when test="inx == 5">
                                <if test="itemto.flag">
                                    AND
                                    HOS.create_user_id = #{itemto.object}
                                    hospitals.create_user_id = #{itemto.object}
                                </if>
                                <if test="!itemto.flag">
                                    or (HOS.create_user_id = #{itemto.object} and HOS.is_del = 0 and HOS.enabled=1)
                                    or (hospitals.create_user_id = #{itemto.object} and hospitals.hosisdel = 0 and hospitals.hosenabled=1 <include refid="wherelist_last"></include>)
                                </if>
                            </when>
                            <otherwise>
@@ -221,7 +252,7 @@
                    </foreach>
                </foreach>
            </if>
<!--                        <include refid="com.kidgrow.usercenter.mapper.SysRoleOrganizationMapper.Role_Organization"></include>-->
            <!--                        <include refid="com.kidgrow.usercenter.mapper.SysRoleOrganizationMapper.Role_Organization"></include>-->
        </where>
    </sql>
    <select id="findHospitalList" resultType="com.kidgrow.usercenter.vo.HospitalListVo">
@@ -232,7 +263,14 @@
        DEP.server_user_id,
        DEP.org_id,
        DEP.is_del,
        DEP.is_pay,
        DEP.enabled,
        hospitals.*
        FROM
        sys_department DEP
        LEFT JOIN sys_organization DEORG ON DEP.org_id = DEORG.id and DEP.is_del=0
        LEFT JOIN (
        SELECT
        HOS.id hospital_id,
        HOS.hospital_name,
        HOS.hospital_code,
@@ -247,10 +285,15 @@
        HOS.is_answer,
        HOS.tenant_id,
        HOS.area_code,
        HOS.create_time
        HOS.create_time,
        HOS.is_del hosisdel,
        HOS.enabled hosenabled,
        ORG.id AS hosorgid,
        HOS.create_user_id
        FROM
        sys_department DEP
        LEFT JOIN sys_hospital HOS ON DEP.hospital_id = HOS.id
        sys_hospital HOS
        LEFT JOIN sys_organization ORG ON HOS.org_id = ORG.id and ORG.is_del=0
        ) AS hospitals ON DEORG.org_parent_id = hospitals.hosorgid
        <include refid="whereList"/>
        order by create_time desc
    </select>
@@ -258,7 +301,26 @@
        select id,
        hospital_name
        from sys_hospital
        where hospital_name LIKE concat('%',#{hospitalName},'%')
        order by hospital_name desc
        where is_del=0 and enabled=1 and hospital_name LIKE concat('%',#{hospitalName},'%')
        order by hospital_name desc,id desc
    </select>
    <select id="chartHospital" resultType="int" parameterType="int">
        SELECT
        count( DISTINCT hospital_name ) hospitalCount
        FROM
        sys_hospital
        WHERE
        <if test="datatype==0">
            hospital_state =0
        </if>
        <if test="datatype==1">
            hospital_state =1
        </if>
        <if test="datatype==11">
            is_screen =1 and
            hospital_state =1
        </if>
        AND is_del = 0
        AND enabled = 1;
    </select>
</mapper>