<?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.bonus.canteen.core.auth.user.mapper.MgrUserMapper">
<!--    <resultMap id="mgrUserMap" type="com.bonus.canteen.core.auth.user.entity.MgrUser">-->
<!--        <id property="id" column="id"/>-->
<!--        <result property="userId" column="user_id"/>-->
<!--        <result property="username" column="username"/>-->
<!--        <result property="password" column="password"/>-->
<!--        <result property="realName" column="real_name"/>-->
<!--        <result property="salt" column="salt"/>-->
<!--        <result property="phone" column="phone"/>-->
<!--        <result property="avatar" column="avatar"/>-->
<!--        <result property="deptId" column="dept_id"/>-->
<!--        <result property="lockFlag" column="lock_flag"/>-->
<!--        <result property="delFlag" column="del_flag"/>-->
<!--        <result property="wxOpenid" column="wx_openid"/>-->
<!--        <result property="miniOpenid" column="mini_openid"/>-->
<!--        <result property="qqOpenid" column="qq_openid"/>-->
<!--        <result property="giteeLogin" column="gitee_login"/>-->
<!--        <result property="oscId" column="osc_id"/>-->
<!--        <result property="revision" column="revision"/>-->
<!--        <result property="crby" column="crby"/>-->
<!--        <result property="crtime" column="crtime"/>-->
<!--        <result property="upby" column="upby"/>-->
<!--        <result property="uptime" column="uptime"/>-->
<!--    </resultMap>-->

<!--&lt;!&ndash;    <resultMap id="mgrUserPageVOMap" type="com.bonus.canteen.core.auth.user.vo.MgrUserPageVO">&ndash;&gt;-->
<!--&lt;!&ndash;        <result property="userId" column="user_id"/>&ndash;&gt;-->
<!--&lt;!&ndash;        <result property="custId" column="cust_id"/>&ndash;&gt;-->
<!--&lt;!&ndash;        <result property="areaId" column="area_id"/>&ndash;&gt;-->
<!--&lt;!&ndash;        <result property="areaName" column="area_name"/>&ndash;&gt;-->
<!--&lt;!&ndash;        <result property="username" column="username"/>&ndash;&gt;-->
<!--&lt;!&ndash;        <result property="realName" column="real_name"/>&ndash;&gt;-->
<!--&lt;!&ndash;        <result property="phone" column="phone"/>&ndash;&gt;-->
<!--&lt;!&ndash;        <result property="avatar" column="avatar"/>&ndash;&gt;-->
<!--&lt;!&ndash;        <result property="lockFlag" column="lock_flag"/>&ndash;&gt;-->
<!--&lt;!&ndash;        <result property="wxOpenid" column="wx_openid"/>&ndash;&gt;-->
<!--&lt;!&ndash;        <result property="miniOpenid" column="mini_openid"/>&ndash;&gt;-->
<!--&lt;!&ndash;        <result property="qqOpenid" column="qq_openid"/>&ndash;&gt;-->
<!--&lt;!&ndash;        <result property="giteeLogin" column="gitee_login"/>&ndash;&gt;-->
<!--&lt;!&ndash;        <result property="oscId" column="osc_id"/>&ndash;&gt;-->
<!--&lt;!&ndash;        <result property="crby" column="crby"/>&ndash;&gt;-->
<!--&lt;!&ndash;        <result property="crtime" column="crtime"/>&ndash;&gt;-->
<!--&lt;!&ndash;        <result property="upby" column="upby"/>&ndash;&gt;-->
<!--&lt;!&ndash;        <result property="uptime" column="uptime"/>&ndash;&gt;-->
<!--&lt;!&ndash;        <result property="loginTime" column="login_time"/>&ndash;&gt;-->
<!--&lt;!&ndash;        <collection property="roleList" ofType="net.xnzn.core.auth.user.vo.MgrUserRolePageVO">&ndash;&gt;-->
<!--&lt;!&ndash;            <result property="roleId" column="role_id"/>&ndash;&gt;-->
<!--&lt;!&ndash;            <result property="roleName" column="role_name"/>&ndash;&gt;-->
<!--&lt;!&ndash;            <result property="roleCode" column="role_code"/>&ndash;&gt;-->
<!--&lt;!&ndash;            <result property="roleDesc" column="role_desc"/>&ndash;&gt;-->
<!--&lt;!&ndash;        </collection>&ndash;&gt;-->
<!--&lt;!&ndash;    </resultMap>&ndash;&gt;-->


<!--    &lt;!&ndash; 分页获取操作员信息 &ndash;&gt;-->
<!--    <select id="selectRolePage" resultMap="mgrUserPageVOMap">-->
<!--        SELECT mu.user_id,-->
<!--               mu.cust_id,-->
<!--               mu.area_id,-->
<!--               mu.username,-->
<!--               mu.real_name,-->
<!--               mu.phone,-->
<!--               mu.avatar,-->
<!--               mu.user_type,-->
<!--               mu.lock_flag,-->
<!--               mu.mini_openid,-->
<!--               mu.qq_openid,-->
<!--               mu.gitee_login,-->
<!--               mu.osc_id,-->
<!--               mu.crby,-->
<!--               mu.crtime,-->
<!--               mu.upby,-->
<!--               mu.uptime,-->
<!--               aa.area_name,-->
<!--               mu.login_time-->
<!--        FROM mgr_user mu-->
<!--                 LEFT JOIN alloc_area aa ON mu.area_id = aa.area_id-->
<!--        WHERE mu.del_flag = #{userPageDTO.delFlag}-->
<!--          AND EXISTS(SELECT NULL-->
<!--                     FROM mgr_user_role mur-->
<!--                              left join mgr_role mr on mur.role_id = mr.role_id-->
<!--                     WHERE mu.user_id = mur.user_id-->
<!--                       AND mr.role_code != #{userPageDTO.roleCode})-->
<!--        <if test="userPageDTO.username != null and userPageDTO.username != ''">-->
<!--            AND username = #{userPageDTO.username}-->
<!--        </if>-->
<!--        <if test="userPageDTO.realName != null and userPageDTO.realName != ''">-->
<!--            AND real_name = #{userPageDTO.realName,typeHandler=net.xnzn.core.common.encrypt.SM4EncDecHandler}-->
<!--        </if>-->
<!--        <if test="userPageDTO.phone != null and userPageDTO.phone != ''">-->
<!--            AND phone = #{userPageDTO.phone,typeHandler=net.xnzn.core.common.encrypt.SM4EncDecHandler}-->
<!--        </if>-->

<!--        <if test="userPageDTO.keyword != null and userPageDTO.keyword != ''">-->
<!--            AND concat(IFNULL(real_name, ''), IFNULL(phone, ''), IFNULL(phone_suffix, '')) like concat('%', #{userPageDTO.keyword,typeHandler=net.xnzn.core.common.encrypt.SM4EncDecHandler}, '%')-->
<!--        </if>-->

<!--        <if test="userPageDTO.areaIdList != null and userPageDTO.areaIdList.size() != 0">-->
<!--            AND mu.area_id IN-->
<!--            <foreach collection="userPageDTO.areaIdList" item="item" index="index" open="("-->
<!--                     separator="," close=")">-->
<!--                #{item}-->
<!--            </foreach>-->
<!--        </if>-->

<!--        <if test="userPageDTO.authAreaIdList != null and userPageDTO.authAreaIdList.size() != 0">-->
<!--            AND EXISTS (SELECT NULL-->
<!--                        FROM mgr_user_role mur-->
<!--                                 left join mgr_role_area mra on mur.role_id = mra.role_id-->
<!--            WHERE mu.user_id = mur.user_id-->
<!--              AND mra.data_id IN-->
<!--            <foreach collection="userPageDTO.authAreaIdList" item="item" index="index" open="("-->
<!--                     separator="," close=")">-->
<!--                #{item}-->
<!--            </foreach>-->
<!--            AND mra.half_select = 1)-->
<!--        </if>-->
<!--        ORDER BY mu.id DESC-->
<!--    </select>-->

    <!-- 查询指定角色所有用户信息 -->
    <select id="selectAllUserByRoleCode" resultType="com.bonus.canteen.core.auth.role.vo.MgrRoleUserVO">
        SELECT mu.user_id   userId,
               mu.username,
               mu.real_name realName
        FROM mgr_user mu
                 LEFT JOIN cust_info ci ON mu.cust_id = ci.cust_id
        where mu.del_flag = #{delFlag}
        <if test="roleCode != null and roleCode != ''">
            AND ci.job = #{roleCode}
        </if>
    </select>


<!--    &lt;!&ndash;  &ndash;&gt;-->
<!--    <select id="selectUserInfoByUserId" resultType="net.xnzn.core.auth.user.vo.MgrUserDetailVO">-->
<!--        select user_id   userId,-->
<!--               username,-->
<!--               real_name realName,-->
<!--               cust_id,-->
<!--               area_id,-->
<!--               phone,-->
<!--               avatar-->
<!--        from mgr_user-->
<!--        where user_id = #{userId}-->
<!--          and del_flag = #{delFlag}-->
<!--    </select>-->


<!--    <select id="listUserByIdAndRole" resultType="net.xnzn.core.auth.user.vo.MgrUserIdNameVO">-->
<!--        SELECT mu.user_id   userId,-->
<!--               mu.real_name realName-->
<!--        FROM mgr_user mu-->
<!--                 LEFT JOIN cust_info ci ON mu.cust_id = ci.cust_id-->
<!--        where mu.del_flag = #{delFlag}-->
<!--          AND ci.job = #{roleCode}-->
<!--          AND mu.user_id = #{userId}-->
<!--    </select>-->

<!--    <select id="selectUserIdByCustId" resultType="java.lang.Long">-->
<!--        SELECT user_id-->
<!--        FROM mgr_user-->
<!--        WHERE cust_id = #{custId}-->
<!--        AND del_flag = 2-->
<!--    </select>-->

<!--    <select id="selectCustIdByUserId" resultType="java.lang.Long">-->
<!--        SELECT t1.cust_id-->
<!--        FROM mgr_user t1-->
<!--                 LEFT JOIN cust_info t2 ON t1.cust_id = t2.cust_id-->
<!--        WHERE t1.user_id = #{userId}-->
<!--          AND (t2.cust_state = 1 OR t1.cust_id = -2)-->
<!--    </select>-->

<!--    <select id="getUserExcludeSupplier" resultType="net.xnzn.core.auth.role.vo.MgrRoleUserVO">-->
<!--        SELECT mu.user_id   userId,-->
<!--               mu.username,-->
<!--               mu.real_name realName-->
<!--        FROM mgr_user mu-->
<!--                 LEFT JOIN drp_supplier ds ON ds.supplier_user_id = mu.user_id-->
<!--        WHERE mu.del_flag = #{delFlag}-->
<!--          AND ds.supplier_user_id IS NULL;-->
<!--    </select>-->

<!--    <select id="selectUserNameIdByCustId" resultType="java.lang.String">-->
<!--        SELECT username-->
<!--        FROM mgr_user-->
<!--        WHERE cust_id = #{custId}-->
<!--        AND del_flag = 2-->
<!--    </select>-->

<!--    <select id="getUserByRoleCode" resultType="net.xnzn.core.auth.user.entity.MgrUser">-->
<!--        SELECT t1.user_id,-->
<!--               t1.username-->
<!--        FROM mgr_user t1-->
<!--                 INNER JOIN mgr_user_role t2 ON t1.user_id = t2.user_id-->
<!--                 INNER JOIN mgr_role t3 ON t2.role_id = t3.role_id-->
<!--        WHERE t1.del_flag = 2-->
<!--          AND t3.del_flag = 2-->
<!--          AND t3.role_code = #{roleCode}-->
<!--    </select>-->

<!--    <select id="queryByRoles" resultType="net.xnzn.core.auth.user.entity.MgrUser">-->
<!--        SELECT t1.user_id,-->
<!--               t1.username-->
<!--        FROM mgr_user t1-->
<!--                 INNER JOIN mgr_user_role t2 ON t1.user_id = t2.user_id-->
<!--        WHERE t1.del_flag = 2-->
<!--          and t2.role_id in-->
<!--        <foreach collection="roles" item="role" open="(" close=")" separator=",">-->
<!--            #{role}-->
<!--        </foreach>-->
<!--    </select>-->

<!--    <select id="queryMgrUserIdListByCustIdList" resultType="net.xnzn.core.auth.role.vo.MgrRoleUserVO">-->
<!--        SELECT user_id, username, real_name-->
<!--        FROM mgr_user-->
<!--        WHERE cust_id IN-->
<!--        <foreach collection="custIdList" item="custId" open="(" close=")" separator=",">-->
<!--            #{custId}-->
<!--        </foreach>-->
<!--    </select>-->

<!--    <select id="queryCanteenManagerMgrUserList" resultType="net.xnzn.core.auth.role.vo.MgrRoleUserVO">-->
<!--        SELECT t1.user_id, t1.username, t1.real_name-->
<!--        FROM mgr_user t1-->
<!--        WHERE exists(SELECT NULL-->
<!--                     FROM alloc_canteen t2 WHERE t1.cust_id = t2.cust_id-->
<!--                                             AND t2.canteen_id IN-->
<!--        <foreach collection="caneenIdList" item="canteenId" open="(" close=")" separator=",">-->
<!--            #{canteenId}-->
<!--        </foreach>-->
<!--        )-->
<!--    </select>-->

<!--    <select id="getUserByRoleCodeExcludeUserName" resultType="net.xnzn.core.auth.user.entity.MgrUser">-->
<!--        SELECT t1.user_id,-->
<!--               t1.username-->
<!--        FROM mgr_user t1-->
<!--                 INNER JOIN mgr_user_role t2 ON t1.user_id = t2.user_id-->
<!--                 INNER JOIN mgr_role t3 ON t2.role_id = t3.role_id-->
<!--        WHERE t1.del_flag = 2-->
<!--          AND t3.del_flag = 2-->
<!--          AND t3.role_code = #{roleCode}-->
<!--          AND t1.username != #{excludeUserName}-->
<!--    </select>-->
</mapper>




















