RuoYi-Vue/xkt/src/main/resources/mapper/UserSubscriptionsMapper.xml

86 lines
3.1 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.xkt.mapper.UserSubscriptionsMapper">
<resultMap type="UserSubscriptions" id="UserSubscriptionsResult">
<result property="id" column="id"/>
<result property="userId" column="user_id"/>
<result property="storeId" column="store_id"/>
<result property="version" column="version"/>
<result property="delFlag" column="del_flag"/>
<result property="createBy" column="create_by"/>
<result property="createTime" column="create_time"/>
<result property="updateBy" column="update_by"/>
<result property="updateTime" column="update_time"/>
</resultMap>
<select id="selectUserSubscPage" resultType="com.ruoyi.xkt.dto.userSubscriptions.UserSubscPageResDTO">
SELECT
us.id AS userSubscId,
us.store_id,
s.store_name,
s.contact_phone,
s.contact_back_phone,
s.wechat_account,
s.qq_account,
s.store_address
FROM
user_subscriptions us
LEFT JOIN store s ON us.store_id = s.id
WHERE
us.del_flag = 0 AND us.user_id = #{userId}
<if test="storeName != null and storeName != ''">and s.store_name = #{storeName}</if>
</select>
<select id="selectTop10List" resultType="com.ruoyi.xkt.dto.dailyStoreTag.DailyStoreTagDTO">
SELECT
us.store_id,
SUM( us.id ) AS count
FROM
user_subscriptions us
WHERE
us.del_flag = 0
GROUP BY
us.store_id
ORDER BY
count DESC
</select>
<select id="getOverall" resultType="com.ruoyi.xkt.dto.userIndex.UserOverallResDTO">
SELECT
( SELECT COUNT( sc.id ) FROM shopping_cart sc WHERE sc.user_id = #{userId} AND sc.del_flag = 0 ) AS shoppingCartCount,
( SELECT COUNT( us.id ) FROM user_subscriptions us WHERE us.user_id = #{userId} AND us.del_flag = 0 ) AS focusStoreCount,
( SELECT COUNT( uf.id ) FROM user_favorites uf WHERE uf.user_id = #{userId} AND uf.del_flag = 0 ) AS collectProdCount,
( SELECT COUNT( so.id ) FROM store_order so WHERE so.order_user_id = #{userId} AND so.del_flag = 0 ) AS sendOrderCount
</select>
<select id="selectUserFocusList">
SELECT
us.user_id
FROM
user_subscriptions us
JOIN user_notice_setting uns ON us.user_id = uns.user_id
WHERE
us.store_id = #{storeId}
AND us.del_flag = 0
AND uns.focus_notice = 1
</select>
<select id="selectFocusAndFavUserIdList" resultType="com.ruoyi.xkt.dto.userNotice.UserFocusAndFavUserIdDTO">
SELECT us.user_id, 3 AS targetNoticeType
FROM user_subscriptions us
WHERE us.del_flag = 0
AND us.store_id = ?
UNION
SELECT uf.user_id , 4 AS targetNoticeType
FROM user_favorites uf
WHERE uf.del_flag = 0
AND uf.store_prod_id = ?
</select>
</mapper>