118 lines
4.9 KiB
XML
118 lines
4.9 KiB
XML
|
<?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.hcy.common.mapper.staff.StaffMapper">
|
||
|
<!-- 通用查询映射结果 -->
|
||
|
<resultMap id="BaseResultMap" type="com.hcy.common.entity.staff.Staff">
|
||
|
<!-- <id column="id" property="id"/>
|
||
|
<result column="create_id" property="createId"/>
|
||
|
<result column="create_time" property="createTime"/>
|
||
|
<result column="update_id" property="updateId"/>
|
||
|
<result column="update_time" property="updateTime"/>
|
||
|
<result column="company_id" property="companyId"/>
|
||
|
<result column="account_id" property="accountId"/>
|
||
|
<result column="account_chart_id" property="accountChartId"/>
|
||
|
<result column="is_add_next_level" property="isAddNextLevel"/>
|
||
|
<result column="is_reallocate" property="isReallocate"/>
|
||
|
<result column="tenant_id" property="tenantId"/>-->
|
||
|
</resultMap>
|
||
|
|
||
|
<select id="page" resultType="com.hcy.common.dto.result.StaffResultDto">
|
||
|
select a.*,
|
||
|
b.sn as userSn,
|
||
|
b.avatar as avatarUri,
|
||
|
b.nickname,
|
||
|
b.username,
|
||
|
b.mobile
|
||
|
from la_staff a
|
||
|
left join la_user b on a.user_id = b.id
|
||
|
<where>
|
||
|
a.is_delete = 0
|
||
|
<if test="form.status != null">
|
||
|
and a.status = #{form.status}
|
||
|
</if>
|
||
|
<if test="form.userInfo != null and form.userInfo != ''">
|
||
|
and (b.nickname like concat('%', #{form.userInfo}, '%') or
|
||
|
b.mobile like concat('%', #{form.userInfo}, '%'))
|
||
|
</if>
|
||
|
<if test="form.staffInfo != null and form.staffInfo != ''">
|
||
|
and (a.sn like concat('%', #{form.staffInfo}, '%')
|
||
|
or a.name like concat('%', #{form.staffInfo}, '%')
|
||
|
or a.mobile like concat('%', #{form.staffInfo}, '%'))
|
||
|
</if>
|
||
|
<if test="form.isRecommend != null">
|
||
|
and a.is_recommend = #{form.isRecommend}
|
||
|
</if>
|
||
|
<if test="form.provinceId != null">
|
||
|
and a.province_id = #{form.provinceId}
|
||
|
</if>
|
||
|
<if test="form.cityId != null">
|
||
|
and a.city_id = #{form.cityId }
|
||
|
</if>
|
||
|
<if test="form.districtId != null">
|
||
|
and a.district_id = #{form.districtId}
|
||
|
</if>
|
||
|
<if test="form.userInfo != null and form.userInfo != ''">
|
||
|
and (b.nickname like concat('%', #{form.userInfo}, '%') or
|
||
|
b.mobile like concat('%', #{form.userInfo}, '%'))
|
||
|
</if>
|
||
|
<if test="form.isReceiveOrder != null">
|
||
|
and a.is_receive_order = #{form.isReceiveOrder}
|
||
|
</if>
|
||
|
<if test="form.isOrder != null">
|
||
|
and a.is_order = #{form.isOrder}
|
||
|
</if>
|
||
|
<if test="form.isReceiveOrder != null and form.isOrder != null">
|
||
|
and ((a.id NOT IN (
|
||
|
SELECT DISTINCT
|
||
|
staff_id
|
||
|
FROM
|
||
|
la_order
|
||
|
WHERE
|
||
|
is_delete = 0
|
||
|
AND ( order_status = 1 OR order_status = 2 )
|
||
|
AND is_dispatch = 1
|
||
|
AND ( appoint_time_start > ${form.appointTimeStart} AND appoint_time_end < ${form.appointTimeEnd} )) or a.is_operational = 1)
|
||
|
or a.is_operational = 1)
|
||
|
</if>
|
||
|
</where>
|
||
|
order by a.create_time desc
|
||
|
</select>
|
||
|
|
||
|
<select id="getReceiveOrderStaffByOrderId" resultType="com.hcy.common.entity.staff.Staff">
|
||
|
SELECT
|
||
|
*
|
||
|
FROM
|
||
|
la_staff
|
||
|
WHERE
|
||
|
is_delete = 0
|
||
|
and FIND_IN_SET((
|
||
|
SELECT
|
||
|
gc.id
|
||
|
FROM
|
||
|
la_order AS o
|
||
|
LEFT JOIN la_order_goods AS og ON o.id = og.order_id
|
||
|
LEFT JOIN la_goods AS g ON g.id = og.goods_id
|
||
|
LEFT JOIN la_goods_category AS gc ON gc.id = g.category_id
|
||
|
WHERE
|
||
|
o.id = #{orderId}
|
||
|
),
|
||
|
goods_category_ids)
|
||
|
</select>
|
||
|
|
||
|
<select id="getNotPhysicalExaminationStaff" resultType="com.hcy.common.entity.staff.Staff">
|
||
|
SELECT
|
||
|
s.*
|
||
|
FROM
|
||
|
la_staff AS s
|
||
|
LEFT JOIN la_staff_physical_examination AS spe ON spe.staff_id = s.id
|
||
|
<where>
|
||
|
s.is_delete = 0
|
||
|
AND (s.physical_examination is null or s.physical_examination = '')
|
||
|
AND (spe.`status` != 0 or spe.`status` is null)
|
||
|
<if test="keyword != null and keyword != ''">
|
||
|
AND (s.name like CONCAT('%',#{keyword},'%') or s.sn like CONCAT('%',#{keyword},'%') or s.mobile like CONCAT('%',#{keyword},'%'))
|
||
|
</if>
|
||
|
</where>
|
||
|
</select>
|
||
|
</mapper>
|