Files
BMS/bms-back/ruoyi-system/src/main/resources/mapper/price/PrcPriceSetMapper.xml
T
2026-09-14 09:13:29 +08:00

157 lines
7.7 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.ruoyi.price.mapper.PrcPriceSetMapper">
<resultMap type="PrcPriceSet" id="PrcPriceSetResult">
<id property="priceSetId" column="price_set_id" />
<result property="priceSetCode" column="price_set_code" />
<result property="priceSetName" column="price_set_name" />
<result property="priceSetNote" column="price_set_note" />
<result property="setType" column="set_type" />
<result property="defaultDiscount" column="default_discount" />
<result property="defaultType" column="default_type" />
<result property="calculateSign" column="calculate_sign" />
<result property="effectiveDate" column="effective_date" />
<result property="expireDate" column="expire_date" />
<result property="status" column="status" />
<result property="tmsId" column="tms_id" />
<result property="createBy" column="created_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="updated_by" />
<result property="updateTime" column="update_time" />
<result property="productCount" column="product_count" />
<result property="customerCount" column="customer_count" />
</resultMap>
<sql id="selectPrcPriceSetVo">
select s.price_set_id, s.price_set_code, s.price_set_name, s.price_set_note,
s.set_type, s.default_discount, s.default_type, s.calculate_sign,
s.effective_date, s.expire_date, s.status, s.tms_id,
s.created_by, s.create_time, s.updated_by, s.update_time,
(select count(distinct d.product_code) from prc_price_set_detail d where d.price_set_id = s.price_set_id) as product_count,
(select count(1) from prc_customer_price_set c where c.price_set_id = s.price_set_id) as customer_count
from prc_price_set s
</sql>
<select id="selectPrcPriceSetById" parameterType="Long" resultMap="PrcPriceSetResult">
<include refid="selectPrcPriceSetVo"/>
where s.price_set_id = #{priceSetId}
</select>
<select id="selectPrcPriceSetList" parameterType="PrcPriceSet" resultMap="PrcPriceSetResult">
<include refid="selectPrcPriceSetVo"/>
<where>
<if test="setType != null and setType != ''">
AND s.set_type = #{setType}
</if>
<if test="status != null and status != ''">
AND s.status = #{status}
</if>
<if test="tmsId != null">
AND s.tms_id = #{tmsId}
</if>
<if test="priceSetName != null and priceSetName != ''">
AND s.price_set_name like concat('%', #{priceSetName}, '%')
</if>
<if test="keyword != null and keyword != ''">
AND (
s.price_set_code like concat('%', #{keyword}, '%')
OR s.price_set_name like concat('%', #{keyword}, '%')
OR exists (
select 1 from prc_customer_price_set c
where c.price_set_id = s.price_set_id
and (
c.customer_name like concat('%', #{keyword}, '%')
or concat(c.customer_id, '') like concat('%', #{keyword}, '%')
)
)
)
</if>
</where>
order by s.price_set_id desc
</select>
<select id="countByName" parameterType="PrcPriceSet" resultType="int">
select count(1) from prc_price_set
where price_set_name = #{priceSetName}
<if test="priceSetId != null">
AND price_set_id &lt;&gt; #{priceSetId}
</if>
<if test="tmsId != null">
AND tms_id = #{tmsId}
</if>
</select>
<insert id="insertPrcPriceSet" parameterType="PrcPriceSet" useGeneratedKeys="true" keyProperty="priceSetId">
insert into prc_price_set (
<if test="priceSetCode != null and priceSetCode != ''">price_set_code,</if>
<if test="priceSetName != null and priceSetName != ''">price_set_name,</if>
<if test="priceSetNote != null">price_set_note,</if>
<if test="setType != null and setType != ''">set_type,</if>
<if test="defaultDiscount != null">default_discount,</if>
<if test="defaultType != null">default_type,</if>
<if test="calculateSign != null">calculate_sign,</if>
<if test="effectiveDate != null">effective_date,</if>
<if test="expireDate != null">expire_date,</if>
<if test="status != null and status != ''">status,</if>
<if test="tmsId != null">tms_id,</if>
<if test="createBy != null and createBy != ''">created_by,</if>
create_time
) values (
<if test="priceSetCode != null and priceSetCode != ''">#{priceSetCode},</if>
<if test="priceSetName != null and priceSetName != ''">#{priceSetName},</if>
<if test="priceSetNote != null">#{priceSetNote},</if>
<if test="setType != null and setType != ''">#{setType},</if>
<if test="defaultDiscount != null">#{defaultDiscount},</if>
<if test="defaultType != null">#{defaultType},</if>
<if test="calculateSign != null">#{calculateSign},</if>
<if test="effectiveDate != null">#{effectiveDate},</if>
<if test="expireDate != null">#{expireDate},</if>
<if test="status != null and status != ''">#{status},</if>
<if test="tmsId != null">#{tmsId},</if>
<if test="createBy != null and createBy != ''">#{createBy},</if>
sysdate()
)
</insert>
<update id="updatePrcPriceSet" parameterType="PrcPriceSet">
update prc_price_set
<set>
<if test="priceSetCode != null and priceSetCode != ''">price_set_code = #{priceSetCode},</if>
<if test="priceSetName != null and priceSetName != ''">price_set_name = #{priceSetName},</if>
<if test="priceSetNote != null">price_set_note = #{priceSetNote},</if>
<if test="setType != null and setType != ''">set_type = #{setType},</if>
default_discount = #{defaultDiscount},
<if test="defaultType != null">default_type = #{defaultType},</if>
<if test="calculateSign != null">calculate_sign = #{calculateSign},</if>
<if test="effectiveDate != null">effective_date = #{effectiveDate},</if>
expire_date = #{expireDate},
<if test="status != null and status != ''">status = #{status},</if>
<if test="tmsId != null">tms_id = #{tmsId},</if>
<if test="updateBy != null and updateBy != ''">updated_by = #{updateBy},</if>
update_time = sysdate()
</set>
where price_set_id = #{priceSetId}
</update>
<update id="updatePrcPriceSetStatus" parameterType="PrcPriceSet">
update prc_price_set
<set>
status = #{status},
<if test="updateBy != null and updateBy != ''">updated_by = #{updateBy},</if>
update_time = sysdate()
</set>
where price_set_id = #{priceSetId}
</update>
<delete id="deletePrcPriceSetByIds" parameterType="Long">
delete from prc_price_set where price_set_id in
<foreach item="priceSetId" collection="array" open="(" separator="," close=")">
#{priceSetId}
</foreach>
</delete>
</mapper>