forked from kidgrow-microservices-platform

houruijun
2020-08-09 92257d291a9d171a15b22c1fc6527b1a909ac3f6
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/resources/mapper/SysHospitalMapper.xml
@@ -1,6 +1,6 @@
<?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.kidgrow.usercenter.mapper.SysHospitalMapper">
    <!--定义查询列-->
    <sql id="Column_List">
@@ -12,48 +12,114 @@
        <where>
            <!--查询条件自行添加-->
            is_del=0
            <if test="id != null">
                and id = #{id}
            <if test="p.id != null and p.id !=''">
                and id = #{p.id}
            </if>
            <if test="hospitalName != null and hospitalName !=''">
                and hospital_name = #{hospitalName}
            <if test="p.hospitalName != null and p.hospitalName !=''">
                and hospital_name =#{p.hospitalName}%
            </if>
            <if test="createUserId != null and createUserId != ''">
                and create_user_id = #{createUserId}
            <if test="p.orgId != null and p.orgId !=''">
                and org_id = #{p.orgId}
            </if>
            <if test="createUserName != null and createUserName !=''">
                and create_user_name = #{createUserName}
            <if test="p.hospitalShortName != null and p.hospitalShortName !=''">
                and hospital_short_name = #{p.hospitalShortName}
            </if>
            <if test="updateUserId != null and updateUserId != ''">
                and update_user_id = #{updateUserId}
            <if test="p.hospitalCode != null and p.hospitalCode !=''">
                and hospital_code = #{p.hospitalCode}
            </if>
            <if test="updateUserName != null and updateUserName !=''">
                and update_user_name = #{updateUserName}
            <if test="p.hospitalTypeId != null and p.hospitalTypeId !=''">
                and hospital_type_id = #{p.hospitalTypeId}
            </if>
            <if test="createTime != null and createTime !=''">
                and create_time = #{createTime}
            <if test="p.hospitalTypeName != null and p.hospitalTypeName !=''">
                and hospital_type_name = #{p.hospitalTypeName}
            </if>
            <if test="updateTime != null and updateTime !=''">
                and update_time = #{updateTime}
            <if test="p.hospitalTel != null and p.hospitalTel !=''">
                and hospital_tel = #{p.hospitalTel}
            </if>
            <if test="isDel != null">
                and is_del = #{isDel}
            <if test="p.hospitalArea != null and p.hospitalArea !=''">
                and hospital_area = #{p.hospitalArea}
            </if>
            <if test="tenantId != null">
                and tenant_id = #{tenantId}
            <if test="p.areaCode != null and p.areaCode !=''">
                and area_code = #{p.areaCode}
            </if>
            <if test="enabled != null">
                and enabled = #{enabled}
            <if test="p.hospitalAdress != null and p.hospitalAdress !=''">
                and hospital_adress = #{p.hospitalAdress}
            </if>
            <if test="p.latitude != null and p.latitude !=''">
                and latitude = #{p.latitude}
            </if>
            <if test="p.longitude != null and p.longitude !=''">
                and longitude = #{p.longitude}
            </if>
            <if test="p.hospitalQualifiedId != null and p.hospitalQualifiedId !=''">
                and hospital_qualified_id = #{p.hospitalQualifiedId}
            </if>
            <if test="p.hospitalQualifiedName != null and p.hospitalQualifiedName !=''">
                and hospital_qualified_name = #{p.hospitalQualifiedName}
            </if>
            <if test="p.hospitalLitLogo != null and p.hospitalLitLogo !=''">
                and hospital_lit_logo = #{p.hospitalLitLogo}
            </if>
            <if test="p.hospitalLogo != null and p.hospitalLogo !=''">
                and hospital_logo = #{p.hospitalLogo}
            </if>
            <if test="p.hospitalAdimage != null and p.hospitalAdimage !=''">
                and hospital_adimage = #{p.hospitalAdimage}
            </if>
            <if test="p.hospitalAbout != null and p.hospitalAbout !=''">
                and hospital_about = #{p.hospitalAbout}
            </if>
            <if test="p.isScreen != null and p.isScreen !=''">
                and is_screen = #{p.isScreen}
            </if>
            <if test="p.serverUserId != null and p.serverUserId !=''">
                and server_user_id = #{p.serverUserId}
            </if>
            <if test="p.serverUserName != null and p.serverUserName !=''">
                and server_user_name = #{p.serverUserName}
            </if>
            <if test="p.hospitalState != null and p.hospitalState !=''">
                and hospital_state = #{p.hospitalState}
            </if>
            <if test="p.enabled != null and p.enabled !=''">
                and enabled = #{p.enabled}
            </if>
            <if test="p.tenantId != null and p.tenantId !=''">
                and tenant_id = #{p.tenantId}
            </if>
            <if test="p.isDel != null and p.isDel !=''">
                and is_del = #{p.isDel}
            </if>
            <if test="p.createUserId != null and p.createUserId !=''">
                and create_user_id = #{p.createUserId}
            </if>
            <if test="p.createUserName != null and p.createUserName !=''">
                and create_user_name = #{p.createUserName}
            </if>
            <if test="p.updateUserId != null and p.updateUserId !=''">
                and update_user_id = #{p.updateUserId}
            </if>
            <if test="p.updateUserName != null and p.updateUserName !=''">
                and update_user_name = #{p.updateUserName}
            </if>
            <if test="p.createTime != null and p.createTime !=''">
                and create_time = #{p.createTime}
            </if>
            <if test="p.updateTime != null and p.updateTime !=''">
                and update_time = #{p.updateTime}
            </if>
        </where>
    </sql>
    <!--定义根据-SysHospital当作查询条件返回对象-->
    <select id="findByObject"  resultType="com.kidgrow.usercenter.model.SysHospital">
    <select id="findByObject" resultType="com.kidgrow.usercenter.model.SysHospital">
        select
        <include refid="Column_List"/>
        from sys_hospital
        <include refid="where"></include>
        <include refid="where"/>
        order by id desc
        limit 1
    </select>
    <!--定义根据-SysHospital当作查询条件返回对象集合-->
@@ -61,7 +127,169 @@
        select
        <include refid="Column_List"/>
        from sys_hospital
        <include refid="where"/>
        order by id desc
    </select>
    <sql id="whereList">
        <where>
            hosisdel = 0
            <if test="p.isScreen != null and p.isScreen !=''">
                and is_screen = #{p.isScreen}
            </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>
            <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 ( HOS.is_del = 0 and HOS.enabled=1)
                                </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 HOS.is_del = 0 and HOS.enabled=1
                                    )
                                </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 HOS.is_del = 0 and HOS.enabled=1)
                                </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 HOS.is_del = 0 and
                                    HOS.enabled=1)
                                </if>
                            </when>
                            <when test="inx == 5">
                                <if test="itemto.flag">
                                    AND
                                    HOS.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)
                                </if>
                            </when>
                            <otherwise>
                                AND id is null
                            </otherwise>
                        </choose>
                    </foreach>
                </foreach>
            </if>
            <!--                        <include refid="com.kidgrow.usercenter.mapper.SysRoleOrganizationMapper.Role_Organization"></include>-->
        </where>
    </sql>
    <select id="findHospitalList" resultType="com.kidgrow.usercenter.vo.HospitalListVo">
        SELECT
        DEP.department_name,
        DEP.id department_id,
        DEP.server_user_name,
        DEP.server_user_id,
        DEP.org_id,
        DEP.is_del,
        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,
        HOS.hospital_province,
        HOS.hospital_city,
        HOS.hospital_area,
        HOS.hospital_tel,
        HOS.hospital_state,
        HOS.hospital_link,
        HOS.org_id hospital_org_id,
        HOS.is_screen,
        HOS.is_answer,
        HOS.tenant_id,
        HOS.area_code,
        HOS.create_time,
        HOS.is_del hosisdel,
        HOS.enabled hosenabled,
        ORG.id AS hosorgid
        FROM
        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>
    <select id="findByName" resultType="com.kidgrow.usercenter.model.SysHospital">
        select id,
        hospital_name
        from sys_hospital
        where is_del=0 and enabled=1 and hospital_name LIKE concat('%',#{hospitalName},'%')
        order by hospital_name 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>