<?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.goods.mapper.activity.ActivityMapper">
|
|
<select id="pageMgtActivity" resultType="com.ruoyi.goods.domain.vo.MgtActivityPageVo">
|
SELECT
|
ta.activity_id activityId,
|
ta.activity_name activityName,
|
ta.activity_start_time activityStartTime,
|
ta.activity_end_time activityEndTime,
|
tat.order_total orderTotal,
|
tat.person_total personTotal,
|
CASE ta.shop_flag
|
WHEN 1 THEN '全部'
|
WHEN 2 THEN '部分'
|
END shopFlag,
|
CASE ta.activity_status
|
WHEN 0 THEN '未开始'
|
WHEN 1 THEN '进行中'
|
WHEN 2 THEN '已结束'
|
END activityStatus,
|
CASE ta.recommend_flag
|
WHEN 1 THEN '是'
|
ELSE '否'
|
END recommendFlag,
|
ta.create_time createTime,
|
ta.activity_code activityCode,
|
ta.propaganda_poster propagandaPoster
|
FROM t_activity ta
|
INNER JOIN t_activity_total tat ON ta.activity_id = tat.activity_id
|
WHERE ta.del_flag = 0
|
<if test="param.activityName!=null and param.activityName != ''">
|
AND ta.activity_name LIKE CONCAT('%',#{param.activityName},'%')
|
</if>
|
<if test="param.shopId!=null and param.shopId != ''">
|
AND FIND_IN_SET(#{param.shopId}, ta.applicable_shop) > 0
|
</if>
|
<if test="param.activityStartTime!=null and param.activityStartTime != ''">
|
AND Date(ta.activity_start_time) >= #{param.activityStartTime}
|
</if>
|
<if test="param.activityEndTime!=null and param.activityEndTime != ''">
|
AND Date(ta.activity_start_time) <= #{param.activityEndTime}
|
</if>
|
<if test="param.activityStatus!=null">
|
AND ta.activity_status = #{param.activityStatus}
|
</if>
|
<if test="param.createStartTime!=null and param.createStartTime != ''">
|
AND Date(ta.create_time) >= #{param.createStartTime}
|
</if>
|
<if test="param.createEndTime!=null and param.createEndTime != ''">
|
AND Date(ta.create_time) <= #{param.createEndTime}
|
</if>
|
ORDER BY ta.create_time DESC
|
</select>
|
|
<select id="pageMgtActivityRecord" resultType="com.ruoyi.goods.domain.vo.MgtActivityRecordPageVo">
|
SELECT
|
user_id userId,
|
create_time createTime,
|
CASE WHEN order_id IS NOT NULL THEN '是' ELSE '否' END orderFlag
|
FROM t_activity_record
|
WHERE del_flag = 0 AND activity_id = #{param.activityId}
|
<if test="param.userIds!=null and param.userIds != ''">
|
AND FIND_IN_SET(#{param.userIds}, user_id) > 0
|
</if>
|
<if test="param.createStartTime!=null and param.createStartTime != ''">
|
AND Date(create_time) >= #{param.createStartTime}
|
</if>
|
<if test="param.createEndTime!=null and param.createEndTime != ''">
|
AND Date(create_time) <= #{param.createEndTime}
|
</if>
|
<if test="param.orderFlag!=null and param.orderFlag == 1">
|
AND order_id IS NOT NULL
|
</if>
|
<if test="param.orderFlag!=null and param.orderFlag == 0">
|
AND order_id IS NULL
|
</if>
|
ORDER BY create_time DESC
|
</select>
|
|
<select id="pagePlatformMerActivity" resultType="com.ruoyi.goods.domain.vo.MerActivityPageVo">
|
SELECT
|
ta.activity_id activityId,
|
ta.activity_name activityName,
|
ta.activity_start_time activityStartTime,
|
ta.activity_end_time activityEndTime,
|
CASE ta.activity_status
|
WHEN 0 THEN '未开始'
|
WHEN 1 THEN '活动中'
|
WHEN 2 THEN '已结束'
|
END activityStatus,
|
ta.propaganda_poster propagandaPoster,
|
COUNT(ag.activity_id) goodsNum,
|
ta.activity_code activityCode
|
FROM t_activity ta
|
LEFT JOIN t_activity_goods ag ON ta.activity_id = ag.activity_id AND ag.del_flag = 0
|
WHERE ta.del_flag = 0 AND ((ta.shop_flag = 1 AND ta.area_flag = 1) OR (FIND_IN_SET(#{param.shopId}, ta.applicable_shop) > 0))
|
group by ta.activity_id
|
ORDER BY ta.activity_status ASC,ta.create_time DESC
|
</select>
|
|
<select id="listMgtActivity" resultType="com.ruoyi.goods.domain.vo.MgtActivityListVo">
|
SELECT
|
ta.activity_id activityId,
|
ta.activity_name activityName
|
FROM t_activity ta
|
WHERE ta.del_flag = 0
|
ORDER BY ta.create_time DESC
|
</select>
|
|
<select id="getRecommendActivity" resultType="com.ruoyi.system.api.domain.poji.activity.Activity">
|
SELECT * FROM t_activity
|
WHERE del_flag = 0 AND recommend_flag = 1 AND NOW() BETWEEN activity_start_time AND activity_end_time
|
AND activity_status = 1
|
<if test="shopId != null and shopId != ''">
|
AND ((shop_flag = 1 AND area_flag = 1) OR (FIND_IN_SET(#{shopId}, applicable_shop) > 0))
|
</if>
|
ORDER BY activity_end_time - NOW()
|
LIMIT 1;
|
</select>
|
|
|
<select id="listActivityIdByShopId" resultType="java.lang.String">
|
SELECT activity_id FROM t_activity
|
WHERE del_flag = 0 AND activity_status = 1 AND NOW() BETWEEN activity_start_time AND activity_end_time
|
<if test="shopId != null and shopId != ''">
|
AND ((shop_flag = 1 AND area_flag = 1) OR (FIND_IN_SET(#{shopId}, applicable_shop) > 0))
|
</if>
|
</select>
|
|
<select id="pageAppActivity" resultType="com.ruoyi.goods.domain.vo.AppActivityPageVo">
|
SELECT
|
ta.activity_id activityId,
|
ta.activity_name activityName,
|
ta.activity_start_time activityStartTime,
|
ta.activity_end_time activityEndTime,
|
CASE ta.activity_status
|
WHEN 0 THEN '未开始'
|
WHEN 1 THEN '抢购中'
|
WHEN 2 THEN '已结束'
|
END activityStatus,
|
ta.propaganda_poster propagandaPoster,
|
ta.activity_introduce activityIntroduce
|
FROM t_activity ta
|
WHERE ta.del_flag = 0 AND ta.activity_status <=1 AND CURRENT_TIME < ta.activity_end_time
|
<if test="shopId != null and shopId != ''">
|
AND ((ta.shop_flag = 1 AND ta.area_flag = 1) OR (FIND_IN_SET(#{shopId}, ta.applicable_shop) > 0))
|
</if>
|
group by ta.activity_id
|
ORDER BY ta.activity_status ASC,ta.create_time DESC
|
</select>
|
|
<update id="addActivityGoodsStock">
|
UPDATE t_activity_goods
|
SET sales_number = sales_number - #{param.changeNum},
|
activity_stock = activity_stock + #{param.changeNum},
|
sell_out_flag = 0,
|
sell_out_time = NULL
|
WHERE activity_id = #{param.activityId} AND goods_id = #{param.goodsId}
|
</update>
|
|
<update id="subActivityGoodsStock">
|
UPDATE t_activity_goods
|
SET sales_number = sales_number + #{param.changeNum},
|
activity_stock = activity_stock - #{param.changeNum},
|
sell_out_flag = CASE WHEN activity_stock - #{param.changeNum} = 0 THEN 1 ELSE sell_out_flag END,
|
sell_out_time = CASE WHEN activity_stock - #{param.changeNum} = 0 THEN NOW() ELSE sell_out_time END
|
WHERE activity_id = #{param.activityId} AND goods_id = #{param.goodsId} AND activity_stock >= #{param.changeNum}
|
</update>
|
|
<select id="checkSellOut" resultType="java.lang.Integer">
|
SELECT COUNT(ag_id) FROM t_activity_goods
|
WHERE del_flag = 0 AND activity_id = #{activityId} AND sell_out_flag = 0
|
</select>
|
|
<select id="listStaffActivity" resultType="com.ruoyi.goods.domain.vo.MgtActivityListVo">
|
SELECT
|
ta.activity_id activityId,
|
1 activityType,
|
ta.activity_name activityName
|
FROM t_activity ta
|
WHERE ta.del_flag = 0
|
ORDER BY ta.create_time DESC
|
</select>
|
</mapper>
|