<?xml version="1.0" encoding="UTF-8" ?>
|
|
<sqls>
|
<dataSpace name="user">
|
|
<!-- 获取审批人信息 -->
|
<sql name="getApproverInfo">
|
<![CDATA[
|
select md_employee.*
|
from sys_user
|
inner join md_employee on sys_user.employee_id = md_employee.id
|
where sys_user.id = '@{userId}'
|
]]>
|
</sql>
|
|
<!-- 保存重置密码 -->
|
<sql name="resetUserVerifyCode">
|
<![CDATA[
|
update sys_user
|
set verify_code = null
|
where name = '@{account}'
|
]]>
|
</sql>
|
|
<!-- 保存重置密码 -->
|
<sql name="saveResetUserPassword">
|
<![CDATA[
|
update sys_user
|
set password = '@{password}',
|
verify_code = null
|
where name = '@{account}'
|
]]>
|
</sql>
|
|
<!-- 更新验证码 -->
|
<sql name="saveVerifyCode">
|
<![CDATA[
|
update sys_user
|
set verify_code = '@{verifyCode}'
|
where name = '@{account}'
|
]]>
|
</sql>
|
|
<!-- 根据岗位-医院, 查看经销商指标 -->
|
<sql name="queryDealerTargetBypositionLimit">
|
<![CDATA[
|
exists (
|
select 1 from md_hospital
|
left join md_org_hospital on md_org_hospital.hospital_id = md_hospital.id
|
where exists (select code from (select code
|
from (select t1.*,
|
case when find_in_set(@{IfEmpty}(CONVERT( parent_code USING utf8mb4 ), ''), @pids) = 0 when null
|
else @pids := concat(@pids, ',', code))end as ischild
|
from (select *
|
from md_position t
|
order by parent_id, code) t1, (select @pids := '@{user.position_code}') t2
|
) t3
|
where (ischild is not null or code = '@{user.position_code}' )) t4
|
where t4.code = md_hospital.position_code)
|
and @{tableName}.customer_id = md_org_hospital.parent_id )
|
]]>
|
</sql>
|
|
<!-- 经销商指标权限 -->
|
<sql name="creatorDealerTargetLimit">
|
<![CDATA[
|
EXISTS (
|
SELECT 1
|
FROM (
|
select code
|
from
|
(select t1.*, if (find_in_set( @{IfEmpty}( CONVERT ( parent_code USING utf8mb4 ), '' ), @pids ) = 0, NULL, @pids := concat( @pids, ',', CODE )) AS ischild
|
from ( SELECT * FROM md_position t ORDER BY parent_id, CODE ) t1, ( SELECT @pids := '@{user.position_code}' ) t2
|
) t3
|
where ( ischild IS NOT NULL OR CODE = '@{user.position_code}' )) t4
|
inner join md_employee on t4.code = md_employee.position_code
|
inner join sys_user on md_employee.id = sys_user.employee_id
|
where sys_user.id = @{tableName}.creator_id )
|
]]>
|
</sql>
|
|
<!-- 医院指标 -->
|
<sql name="hospitalTargetLimit">
|
<![CDATA[
|
exists (select t4.code
|
from (select code
|
from (select t1.*,
|
case when find_in_set(@{IfEmpty}(CONVERT ( parent_code USING utf8mb4 ), ''), @pids) = 0 then null
|
else @pids := concat(@pids, ',', code)) end as ischild
|
from (select *
|
from md_position t
|
order by parent_id, code) t1, (select @pids := '@{user.position_code}') t2
|
) t3
|
where (ischild is not null or code = '@{user.position_code}' )) t4
|
inner join md_hospital on t4.code = md_hospital.position_code
|
where @{tableName}.hospital_id = md_hospital.id)
|
]]>
|
</sql>
|
|
<!-- 医院管理权限 -->
|
<sql name="creatorHospitalLimit">
|
<![CDATA[
|
EXISTS (
|
SELECT 1
|
FROM (
|
select code
|
from
|
(select t1.*, if (find_in_set( @{IfEmpty}( CONVERT ( parent_code USING utf8mb4 ), '' ), @pids ) = 0, NULL, @pids := concat( @pids, ',', CODE )) AS ischild
|
from ( SELECT * FROM md_position t ORDER BY parent_id, CODE ) t1, ( SELECT @pids := '@{user.position_code}' ) t2
|
) t3
|
where ( ischild IS NOT NULL OR CODE = '@{user.position_code}' )) t4
|
inner join md_employee on t4.code = md_employee.position_code
|
inner join sys_user on md_employee.id = sys_user.employee_id
|
where sys_user.id = @{tableName}.create_id )
|
]]>
|
</sql>
|
|
<sql name="getUser">
|
<![CDATA[
|
select sys_user.*, md_employee.name as employee_name from sys_user
|
left join md_employee on sys_user.employee_id = md_employee.id
|
where sys_user.name = '@{userName}'
|
and password = '@{password}'
|
and sys_user.is_active = '@{is_active}'
|
]]>
|
</sql>
|
|
<sql name="getUserBySystem">
|
<![CDATA[
|
select distinct sys_user.*, md_employee.name as employee_name
|
from sys_user
|
left join sys_user_employee on sys_user.id = sys_user_employee.user_id
|
left join md_employee on sys_user_employee.employee_id = md_employee.id
|
where @{userNameField} = '@{unionId}'
|
and sys_user.is_active = '@{is_active}'
|
]]>
|
</sql>
|
|
<sql name="getUserByUsername">
|
<![CDATA[
|
select sys_user.*, md_employee.name as employee_name
|
from sys_user
|
left join sys_user_employee on sys_user_employee.user_id = sys_user.id
|
inner join md_employee on sys_user_employee.employee_id = md_employee.id
|
where @{filter}
|
]]>
|
</sql>
|
|
<sql name="getEmployeeInfo">
|
<![CDATA[
|
select @{IfEmpty}(md_employee.phone,md_org_account.business_phone) phone from sys_user
|
left join md_employee on sys_user.employee_id = md_employee.id
|
left join md_org_account on md_org_account.org_id = sys_user.org_id
|
where sys_user.name = '@{userName}'
|
and sys_user.is_active = '@{is_active}'
|
]]>
|
</sql>
|
|
<sql name="denyLimit">
|
<![CDATA[
|
1 <> 1
|
]]>
|
</sql>
|
|
<sql name="unlimit">
|
<![CDATA[
|
1 = 1
|
]]>
|
</sql>
|
|
<!-- 审批数据权限 -->
|
<sql name="writerLimit">
|
<![CDATA[
|
workflow_step_user.user_id = '@{user_id}'
|
]]>
|
</sql>
|
|
<!-- 销售 根据岗位查看指标明细(tgt_planning_detail) -->
|
<sql name="positionPlanningDetailLimit">
|
<![CDATA[
|
exists (
|
select 1 from md_position_hierarchy
|
where md_position_hierarchy.@{user.position_level_field} = '@{user.position_id}'
|
and md_position_hierarchy.position_id = @{tableName}.position_id)
|
]]>
|
</sql>
|
|
<sql name="hierarchyAndCreatorLimit">
|
<![CDATA[
|
exists (
|
select 1 from speed_user_province
|
where speed_user_province.user_id = '@{user.id}'
|
and speed_user_province.province = @{tableName}.province
|
)
|
and @{tableName}.creator_id = '@{user.id}'
|
]]>
|
</sql>
|
|
<sql name="noTempLimit">
|
<![CDATA[
|
(state_code = 'Open' or state_code is null)
|
]]>
|
</sql>
|
|
<sql name="creatorLimit">
|
<![CDATA[
|
@{tableName}.creator_id = '@{user.id}'
|
]]>
|
</sql>
|
|
<sql name="getUserLimitActive">
|
<![CDATA[
|
select is_line_limit_active from sys_user
|
where name = '@{userName}'
|
]]>
|
</sql>
|
|
<sql name="userLimit">
|
<![CDATA[
|
exists (
|
select 1 from sys_user_employee
|
inner join sys_user on sys_user.id = sys_user_employee.user_id
|
where sys_user.id = '@{user.id}')
|
]]>
|
</sql>
|
|
<sql name="getDistinctPositionUserByActor">
|
<![CDATA[
|
select md_position_employee.id, sys_right_actor_target.actor_id, sys_right_actor_target.type_code,
|
md_position.code md_position__code, md_position.name md_position__name, md_position_employee.remark md_position_employee__remark,
|
md_employee.code md_employee__code, md_employee.name md_employee__name, md_employee.phone md_employee__phone, md_employee.mail md_employee__mail,
|
sys_user.id sys_user__id
|
from sys_right_actor_target
|
left join md_position on sys_right_actor_target.target_id = md_position.id
|
inner join md_position_employee on md_position.id = md_position_employee.position_id
|
left join md_employee on md_position_employee.employee_id = md_employee.id and md_employee.is_active = 'T'
|
left join sys_user_employee on sys_user_employee.employee_id = md_employee.id
|
left join sys_user on sys_user.id = sys_user_employee.user_id and sys_user.is_active = 'T'
|
where @{filter} @{orderby}@{limit}
|
]]>
|
</sql>
|
|
<sql name="getUserMail">
|
<![CDATA[
|
select distinct * from (
|
select sys_user.name, mail from sys_user
|
inner join sys_user_employee on sys_user_employee.user_id = sys_user.id
|
inner join md_employee on md_employee.id = sys_user_employee.employee_id
|
where sys_user.is_active = 'T' and mail is not null
|
union
|
select sys_user.name, md_org_account.business_email mail from sys_user
|
inner join md_org_account on md_org_account.org_id = sys_user.org_id
|
where sys_user.is_active = 'T' and state_code = 'Open' and business_email is not null) user_mail
|
where @{filter} @{orderby}@{limit}
|
]]>
|
</sql>
|
|
</dataSpace>
|
|
</sqls>
|