| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454 |
- <?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.jzg.organization.mapper.SysUserJzgInfoMapper">
- <resultMap id="BaseResultMap" type="com.jzg.commons.entity.dto.SysUserJzgInfoDto">
- <id column="id" jdbcType="VARCHAR" property="id"/>
- <result column="user_id" jdbcType="VARCHAR" property="userId"/>
- <result column="username" jdbcType="VARCHAR" property="username"/>
- <result column="name" jdbcType="VARCHAR" property="name"/>
- <result column="mobile" jdbcType="VARCHAR" property="mobile"/>
- <result column="work_number" jdbcType="VARCHAR" property="workNumber"/>
- <result column="dept_id" jdbcType="VARCHAR" property="deptId"/>
- <result column="dept_name" jdbcType="VARCHAR" property="deptName"/>
- <result column="type_attr" jdbcType="VARCHAR" property="typeAttr"/>
- <result column="status" jdbcType="INTEGER" property="status"/>
- <result column="is_enable" jdbcType="INTEGER" property="isEnable"/>
- <result column="leader_id" jdbcType="VARCHAR" property="leaderId"/>
- <result column="leader_name" jdbcType="VARCHAR" property="leaderName"/>
- <result column="referrer_id" jdbcType="VARCHAR" property="referrerId"/>
- <result column="referrer_name" jdbcType="VARCHAR" property="referrerName"/>
- <result column="role_name" jdbcType="VARCHAR" property="roleName"/>
- <result column="organization_id" jdbcType="VARCHAR" property="organizationId"/>
- <result column="organization_name" jdbcType="VARCHAR" property="organizationName"/>
- </resultMap>
- <update id="updatePartnerByUserId">
- UPDATE partner_user SET name = #{sysUserJzgInfo.name} WHERE user_id = #{sysUserJzgInfo.userId}
- </update>
- <!-- 对业务员进行逻辑删除 lipf 2026年4月24日15:33:17 -->
- <delete id="updateUserByUserId">
- update sys_user_jzg_info a set a.is_delete = 1 where a.user_id = #{userId,jdbcType=DECIMAL}
- </delete>
- <update id="partnerReview">
- UPDATE sys_user_jzg_info_salesman SET partner_status = #{reviewStatus},partner_review_time = NOW(),partner_reviewer = #{userId} WHERE
- sys_user_jzg_info_id in
- <foreach item="item" index="index" collection="userInfoId" open="(" separator="," close=")">
- #{item}
- </foreach>
- </update>
- <select id="getUserInfoByIdentity" resultType="com.jzg.commons.entity.po.SysUserJzgInfo">
- SELECT
- *
- FROM
- sys_user_jzg_info suji
- left join sys_user su on su.id = suji.user_id
- WHERE
- suji.is_delete = 0
- <if test="identity != null and identity != ''">
- AND su.identity = #{identity}
- </if>
- <if test="userId != null and userId != ''">
- AND suji.user_id = #{userId}
- </if>
- </select>
- <!-- 查询业务员 lipf 2026年4月24日11:22:18 -->
- <select id="queryYwy" resultMap="BaseResultMap">
- select
- suji.id,
- suji.user_id,
- suji.work_number,
- su.username,
- su.mobile,
- suji.name,
- suji.dept_id,
- sd.name as dept_name,
- suji.status,
- suji.is_enable,
- lsu.user_id as leader_id,
- lsu.name AS leader_name,
- suji.referrer_id,
- su.username as referrer_name,
- -- soul.organization_id as organization_id,
- suji.create_time as createTime,
- suji.create_by as createBy
- from
- sys_user_jzg_info suji
- left join sys_user su on su.id = suji.user_id
- LEFT JOIN sys_user_jzg_info lsu on lsu.id = suji.leader_id
- left join sys_dept sd on sd.id = suji.dept_id
- -- left join sys_user_role sur on sur.user_id = su.id
- -- left join sys_organization_user_link soul on soul.user_id = suji.user_id
- -- join sys_organization so on so.id = soul.organization_id
- LEFT JOIN sys_dept d ON suji.dept_id = d.id
- where 1=1
- and suji.is_delete = 0
- and suji.id in (
- select sujis.sys_user_jzg_info_id from sys_user_jzg_info_salesman sujis where sujis.type_attr != 2 AND sujis.type_attr != 3
- )
- <if test="leaderId != null and leaderId != ''">
- and suji.leader_id = #{leaderId}
- </if>
- <if test="sysUserInfoListVo.deptId != null and sysUserInfoListVo.deptId != ''">
- and d.route LIKE CONCAT('%', #{sysUserInfoListVo.deptId}, '%')
- </if>
- <if test="sysUserInfoListVo.deptName != null and sysUserInfoListVo.deptName != ''">
- and so.name like concat('%',#{sysUserInfoListVo.deptName},'%')
- </if>
- <if test="sysUserInfoListVo.typeAttr != null and sysUserInfoListVo.typeAttr != ''">
- and suji.type_attr = #{sysUserInfoListVo.typeAttr}
- </if>
- <if test="sysUserInfoListVo.status != null and sysUserInfoListVo.status != '-1'">
- and suji.status = #{sysUserInfoListVo.status}
- </if>
- <if test="sysUserInfoListVo.typeStatus != null and sysUserInfoListVo.typeStatus.size() > 0">
- AND suji.status IN
- <foreach item="status" collection="sysUserInfoListVo.typeStatus"
- open="(" separator="," close=")">
- #{status}
- </foreach>
- </if>
- <if test="sysUserInfoListVo.isEnable != null and sysUserInfoListVo.isEnable != ''">
- and suji.is_enable = #{sysUserInfoListVo.isEnable}
- </if>
- <if test="sysUserInfoListVo.sysOrganizationId != null and sysUserInfoListVo.sysOrganizationId != ''">
- and so.id = #{sysUserInfoListVo.sysOrganizationId}
- </if>
- <if test="sysUserInfoListVo.leaderId != null and sysUserInfoListVo.leaderId != ''">
- and (suji.leader_id = #{sysUserInfoListVo.leaderId}
- or lsu.name = #{sysUserInfoListVo.leaderId})
- </if>
- <if test="sysUserInfoListVo.salesman != null and sysUserInfoListVo.salesman != ''">
- and (suji.name like concat('%',#{sysUserInfoListVo.salesman},'%')
- or su.mobile = #{sysUserInfoListVo.salesman}
- or suji.work_number = #{sysUserInfoListVo.salesman}
- or su.id = #{sysUserInfoListVo.salesman})
- </if>
- order by suji.create_time desc
- </select>
- <!-- 查询成员 lipf 2026年4月24日11:10:15 -->
- <select id="queryMember" resultMap="BaseResultMap">
- select
- suji.id,
- suji.user_id,
- suji.work_number,
- su.username,
- su.mobile,
- suji.name,
- suji.dept_id,
- sd.name as dept_name,
- suji.status,
- suji.is_enable,
- lsu.user_id as leader_id,
- lsu.name AS leader_name,
- suji.referrer_id,
- su.username as referrer_name,
- soul.organization_id as organization_id,
- suji.create_time as createTime,
- suji.create_by as createBy
- from
- sys_user_jzg_info suji
- left join sys_user su on su.id = suji.user_id
- LEFT JOIN sys_user_jzg_info lsu on lsu.id = suji.leader_id
- left join sys_dept sd on sd.id = suji.dept_id
- -- left join sys_user_role sur on sur.user_id = su.id
- left join sys_organization_user_link soul on soul.user_id = suji.user_id
- LEFT JOIN sys_dept d ON suji.dept_id = d.id
- where
- 1=1
- and suji.is_delete = 0
- and suji.id in (
- select sujis.sys_user_jzg_info_id from sys_user_jzg_info_salesman sujis where sujis.type_attr =2
- )
- <if test="sysUserInfoListVo.deptId != null and sysUserInfoListVo.deptId != ''">
- and d.route LIKE CONCAT('%', #{sysUserInfoListVo.deptId}, '%')
- </if>
- <if test="sysUserInfoListVo.deptName != null and sysUserInfoListVo.deptName != ''">
- and so.name like concat('%',#{sysUserInfoListVo.deptName},'%')
- </if>
- <if test="sysUserInfoListVo.typeAttr != null and sysUserInfoListVo.typeAttr != ''">
- and suji.type_attr = #{sysUserInfoListVo.typeAttr}
- </if>
- <if test="sysUserInfoListVo.status != null and sysUserInfoListVo.status != '-1'">
- and suji.status = #{sysUserInfoListVo.status}
- </if>
- <if test="sysUserInfoListVo.typeStatus != null and sysUserInfoListVo.typeStatus.size() > 0">
- AND suji.status IN
- <foreach item="status" collection="sysUserInfoListVo.typeStatus"
- open="(" separator="," close=")">
- #{status}
- </foreach>
- </if>
- <if test="sysUserInfoListVo.isEnable != null and sysUserInfoListVo.isEnable != ''">
- and suji.is_enable = #{sysUserInfoListVo.isEnable}
- </if>
- <if test="sysUserInfoListVo.sysOrganizationId != null and sysUserInfoListVo.sysOrganizationId != ''">
- and so.id = #{sysUserInfoListVo.sysOrganizationId}
- </if>
- <if test="sysUserInfoListVo.leaderId != null and sysUserInfoListVo.leaderId != ''">
- and (suji.leader_id = #{sysUserInfoListVo.leaderId}
- or lsu.name = #{sysUserInfoListVo.leaderId})
- </if>
- <if test="sysUserInfoListVo.salesman != null and sysUserInfoListVo.salesman != ''">
- and (suji.name like concat('%',#{sysUserInfoListVo.salesman},'%')
- or su.mobile = #{sysUserInfoListVo.salesman}
- or suji.work_number = #{sysUserInfoListVo.salesman}
- or su.id = #{sysUserInfoListVo.salesman})
- </if>
- order by suji.create_time desc
- </select>
- <!-- modify by lipf , 2026年4月14日15:33:13 解决 业务管理-成员管理 页面,管理人和管理人工号不对的问题 -->
- <select id="getUserInfoList" resultMap="BaseResultMap">
- select
- suji.id,
- suji.user_id,
- suji.work_number,
- su.username,
- su.mobile,
- suji.name,
- suji.dept_id,
- sd.name as dept_name,
- (SELECT GROUP_CONCAT( s.type_attr SEPARATOR ',' ) FROM sys_user_jzg_info_salesman s WHERE s.sys_user_jzg_info_id = suji.id ) AS type_attr,
- suji.status,
- suji.is_enable,
- lsu.user_id as leader_id,
- lsu.name AS leader_name,
- suji.referrer_id,
- su.username as referrer_name,
- GROUP_CONCAT(DISTINCT sr.name) as role_name,
- soul.organization_id as organization_id,
- so.name as organization_name,
- suji.create_time as createTime,
- suji.create_by as createBy
- from
- sys_user_jzg_info suji
- left join sys_user su on su.id = suji.user_id
- LEFT JOIN sys_user_jzg_info lsu on lsu.id = suji.leader_id
- left join sys_dept sd on sd.id = suji.dept_id
- left join sys_user_role sur on sur.user_id = su.id
- left join sys_role sr on sr.id = sur.role_id
- left join sys_organization_user_link soul on soul.user_id = suji.user_id
- inner join sys_organization so on so.id = soul.organization_id
- LEFT JOIN sys_dept d ON suji.dept_id = d.id
- left join sys_user_jzg_info_salesman sujis on sujis.sys_user_jzg_info_id = suji.id
- where
- 1=1
- and suji.is_delete = 0
- <if test="sysUserInfoListVo.deptId != null and sysUserInfoListVo.deptId != ''">
- and d.route LIKE CONCAT('%', #{sysUserInfoListVo.deptId}, '%')
- </if>
- <if test="sysUserInfoListVo.deptName != null and sysUserInfoListVo.deptName != ''">
- and so.name like concat('%',#{sysUserInfoListVo.deptName},'%')
- </if>
- <if test="sysUserInfoListVo.typeAttr != null and sysUserInfoListVo.typeAttr != ''">
- and suji.type_attr = #{sysUserInfoListVo.typeAttr}
- </if>
- <if test="sysUserInfoListVo.status != null and sysUserInfoListVo.status != '-1'">
- and suji.status = #{sysUserInfoListVo.status}
- </if>
- <if test="sysUserInfoListVo.typeStatus != null and sysUserInfoListVo.typeStatus.size() > 0">
- AND suji.status IN
- <foreach item="status" collection="sysUserInfoListVo.typeStatus"
- open="(" separator="," close=")">
- #{status}
- </foreach>
- </if>
- <if test="sysUserInfoListVo.isEnable != null and sysUserInfoListVo.isEnable != ''">
- and suji.is_enable = #{sysUserInfoListVo.isEnable}
- </if>
- <if test="sysUserInfoListVo.sysOrganizationId != null and sysUserInfoListVo.sysOrganizationId != ''">
- and so.id = #{sysUserInfoListVo.sysOrganizationId}
- </if>
- <if test="sysUserInfoListVo.leaderId != null and sysUserInfoListVo.leaderId != ''">
- and (suji.leader_id = #{sysUserInfoListVo.leaderId}
- or lsu.name = #{sysUserInfoListVo.leaderId})
- </if>
- <if test="sysUserInfoListVo.salesman != null and sysUserInfoListVo.salesman != ''">
- and (suji.name like concat('%',#{sysUserInfoListVo.salesman},'%')
- or su.mobile = #{sysUserInfoListVo.salesman}
- or suji.work_number = #{sysUserInfoListVo.salesman}
- or su.id = #{sysUserInfoListVo.salesman})
- </if>
- <if test="sysUserInfoListVo.isMember!= null and sysUserInfoListVo.isMember!= ''">
- <if test="sysUserInfoListVo.isMember == 1">
- and sujis.type_attr = 2
- </if>
- <if test="sysUserInfoListVo.isMember == 2">
- and sujis.type_attr != 2 AND sujis.type_attr != 3
- </if>
- </if>
- group by suji.id, soul.organization_id, so.name
- order by suji.create_time desc
- </select>
- <select id="getUserByMobile" resultType="com.jzg.commons.entity.po.SysUserJzgInfo">
- SELECT
- *
- FROM
- sys_user_jzg_info suji
- LEFT JOIN sys_user su ON suji.user_id = su.id
- where su.mobile = #{mobile} and suji.is_delete = 0 and su.is_delete = 0
- </select>
- <select id="getTenantList" resultType="com.jzg.commons.entity.user.vo.SysTennatVo">
- SELECT
- ss.sys_code as system_code,
- ss.sys_name,
- sd.name as dept_name,
- suf.file_name as sys_icon
- FROM
- sys_user su
- LEFT JOIN sys_user_jzg_info suji ON su.id = suji.user_id and suji.is_delete = 0
- LEFT JOIN sys_system ss ON suji.system_code = ss.sys_code
- LEFT JOIN sys_dept sd ON sd.id = suji.dept_id
- LEFT JOIN sys_upload_files suf on suf.id = ss.sys_icon
- WHERE
- ( mobile = #{userId} OR username = #{userId})
- AND suji.system_code != 'APP'
- AND suji.is_enable = 0
- </select>
- <select id="getUserJzgInfoByUserId" resultType="com.jzg.commons.entity.po.SysUserJzgInfo">
- SELECT
- *,
- su.identity,
- su.identity_time_start,
- su.identity_time_end,
- (select GROUP_CONCAT(type_attr SEPARATOR ',' ) from sys_user_jzg_info_salesman where sys_user_jzg_info_id = suji.id) as partnerTypeAttr,
- IF(EXISTS ( SELECT id FROM sys_user_jzg_info_salesman WHERE type_attr = 3 AND sys_user_jzg_info_id = suji.id),
- (SELECT GROUP_CONCAT(grade SEPARATOR ',' ) FROM partner_user WHERE user_id = suji.user_id), NULL ) AS gradeList
- FROM
- sys_user_jzg_info suji
- LEFT JOIN sys_user su ON suji.user_id = su.id
- WHERE
- user_id = #{userId}
- </select>
- <select id="getUserInfoBySystemCodeAndUserId" resultType="com.jzg.commons.entity.vo.SalesmanVo">
- SELECT
- suji.name,
- suji.dept_Id as deptId,
- sd.name as deptName,
- suji.type_attr as typeAttr,
- su.mobile as mobile ,
- suji.dept_id as deptId,
- so.name as organizationName,
- so.id as organizationId,
- suji.system_code as systemCode,
- ss.sys_name as systemName,
- ss.short_name as systemShortName
- FROM
- sys_user_jzg_info suji
- LEFT JOIN sys_user su ON suji.user_id = su.id
- left join sys_dept sd on sd.id = suji.dept_id
- left join sys_organization_user_link soul on soul.user_id = su.id
- left join sys_organization so on so.id = soul.organization_id
- left join sys_system ss on ss.sys_code = suji.system_code
- WHERE
- suji.user_id = #{userId}
- </select>
- <select id="selectByUserNameAndMobile" resultType="com.jzg.commons.entity.vo.PartnerRecommenderVo">
- SELECT
- p.grade,
- info.id user_id,
- info.dept_id,
- info.`name`,
- u.mobile,
- ( SELECT GROUP_CONCAT( sa.type_attr SEPARATOR ',' ) FROM sys_user_jzg_info_salesman sa WHERE sa.sys_user_jzg_info_id = p.user_id ) AS typeAttr
- FROM
- partner_user p
- LEFT JOIN sys_user_jzg_info info ON info.id = p.user_id
- LEFT JOIN sys_user u ON u.id = info.user_id
- WHERE
- p.grade = #{grade}
- GROUP BY
- p.grade,
- info.`name`,
- u.mobile,
- info.dept_id,
- p.user_id
- </select>
- <select id="selectPartnerReviewVo" resultType="com.jzg.commons.entity.vo.PartnerReviewVo">
- SELECT
- info.id userInfoId,
- info.`name`,
- info.dept_id,
- info.create_time,
- info.leader_id,
- info.referrer_id,
- u.mobile,
- d.`name` deptName,
- referrer.`name` AS referrerName,
- leader.`name` AS leaderIdName,
- sa.partner_review_time,
- pa.`name` partner_reviewer,
- (SELECT GROUP_CONCAT(grade SEPARATOR ',' ) FROM partner_user p WHERE p.user_id = info.id) gradeList
- FROM
- sys_user_jzg_info info
- LEFT JOIN sys_user u ON u.id = info.user_id
- LEFT JOIN sys_dept d ON d.id = info.dept_id
- LEFT JOIN sys_user_jzg_info referrer ON referrer.id = info.referrer_id
- LEFT JOIN sys_user_jzg_info leader ON leader.id = info.leader_id
- LEFT JOIN sys_user_jzg_info_salesman sa ON sa.sys_user_jzg_info_id = info.id
- LEFT JOIN sys_user_jzg_info pa ON pa.user_id = sa.partner_reviewer
- WHERE
- sa.type_attr = 3
- AND sa.partner_status = #{partnerReviewParam.partnerStatus}
- </select>
- <select id="isPartnerPresent" resultType="java.lang.Boolean">
- SELECT
- IF(COUNT(*) > 0, 1, 0)
- FROM sys_user_jzg_info_salesman
- WHERE type_attr = 3
- AND sys_user_jzg_info_id = #{id};
- </select>
- <select id="isGeneration" resultType="java.lang.Boolean">
- SELECT
- IF(COUNT(*) > 0, 1, 0)
- FROM sys_user_jzg_info_salesman
- WHERE type_attr = 6
- AND sys_user_jzg_info_id = #{id};
- </select>
- <select id="selectByUserIdInfo" resultType="com.jzg.commons.entity.po.SysUserJzgInfo">
- SELECT info.*
- FROM sys_user_jzg_info info
- INNER JOIN sys_user_jzg_info_salesman sa ON sa.sys_user_jzg_info_id = info.id
- WHERE sa.type_attr = 3 AND info.user_id = #{userId}
- </select>
- <select id="selectTypeAttrs" resultType="java.lang.String">
- SELECT
- sjis.type_attr
- FROM
- sys_user_jzg_info_salesman sjis
- INNER JOIN sys_user_jzg_info suji ON sjis.sys_user_jzg_info_id = suji.id
- WHERE
- suji.user_id = #{userId}
- AND suji.is_delete = 0
- AND suji.is_enable = 0
- AND sjis.sys_user_jzg_info_id IS NOT NULL
- </select>
- <select id="getPartUserInfoByMobile" resultType="com.jzg.commons.entity.po.SysUserJzgInfo">
- SELECT DISTINCT info.id
- FROM sys_user_jzg_info info
- INNER JOIN partner_user p ON p.user_id = info.id
- INNER JOIN sys_user u ON u.id = info.user_id
- INNER JOIN sys_user_jzg_info_salesman sa ON sa.sys_user_jzg_info_id = info.id
- WHERE
- p.grade > 4
- AND u.mobile = #{mobile}
- AND sa.type_attr = 3
- </select>
- </mapper>
|