This commit is contained in:
luojiaquan
2026-10-19 12:01:08 +08:00
16 changed files with 1396 additions and 34 deletions
@@ -81,6 +81,40 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
)
)
</if>
<!-- Data scope: customer sales / creator / explicit viewer bind.
Super admin / DATA_SCOPE_ALL leaves params.dataScope empty. -->
<if test="params != null and params.dataScope != null and params.dataScope != ''">
AND (
EXISTS (
SELECT 1
FROM prc_customer_price_set cps
INNER JOIN ctr_customer c
ON c.customer_id = cps.customer_id
AND ifnull(c.del_flag, '0') = '0'
INNER JOIN sys_user su
ON su.del_flag = '0'
AND (su.user_name = c.sales_user_id
OR su.user_id = c.sales_user_id + 0)
WHERE cps.price_set_id = s.price_set_id
${params.dataScope}
)
OR EXISTS (
SELECT 1
FROM sys_user su
WHERE su.del_flag = '0'
AND su.user_name = s.created_by
${params.dataScope}
)
<if test="params.viewerUserId != null">
OR EXISTS (
SELECT 1
FROM prc_price_set_user psu
WHERE psu.price_set_id = s.price_set_id
AND psu.user_id = #{params.viewerUserId}
)
</if>
)
</if>
</where>
order by s.price_set_id desc
</select>
@@ -0,0 +1,56 @@
<?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.bms.price.mapper.PrcPriceSetUserMapper">
<resultMap type="PrcPriceSetUser" id="PrcPriceSetUserResult">
<id property="psuId" column="psu_id" />
<result property="priceSetId" column="price_set_id" />
<result property="userId" column="user_id" />
<result property="userName" column="user_name" />
<result property="nickName" column="nick_name" />
<result property="createBy" column="created_by" />
<result property="createTime" column="create_time" />
</resultMap>
<sql id="selectVo">
select psu.psu_id, psu.price_set_id, psu.user_id, psu.user_name,
u.nick_name, psu.created_by, psu.create_time
from prc_price_set_user psu
left join sys_user u on u.user_id = psu.user_id
</sql>
<select id="selectPrcPriceSetUserById" parameterType="Long" resultMap="PrcPriceSetUserResult">
<include refid="selectVo"/>
where psu.psu_id = #{psuId}
</select>
<select id="selectPrcPriceSetUserList" parameterType="PrcPriceSetUser" resultMap="PrcPriceSetUserResult">
<include refid="selectVo"/>
<where>
<if test="priceSetId != null">AND psu.price_set_id = #{priceSetId}</if>
<if test="userId != null">AND psu.user_id = #{userId}</if>
<if test="userName != null and userName != ''">AND psu.user_name = #{userName}</if>
</where>
order by psu.psu_id asc
</select>
<select id="countBySetAndUser" resultType="int">
select count(1) from prc_price_set_user
where price_set_id = #{priceSetId} and user_id = #{userId}
</select>
<insert id="insertPrcPriceSetUser" parameterType="PrcPriceSetUser" useGeneratedKeys="true" keyProperty="psuId">
insert into prc_price_set_user (price_set_id, user_id, user_name, created_by, create_time)
values (#{priceSetId}, #{userId}, #{userName}, #{createBy}, sysdate())
</insert>
<delete id="deletePrcPriceSetUserByIds" parameterType="Long">
delete from prc_price_set_user where psu_id in
<foreach collection="array" item="id" open="(" separator="," close=")">#{id}</foreach>
</delete>
<delete id="deleteByPriceSetId" parameterType="Long">
delete from prc_price_set_user where price_set_id = #{priceSetId}
</delete>
</mapper>