feat: 新增虚拟支付订单与网盘链接检测功能

This commit is contained in:
王鹏
2026-07-28 13:42:30 +08:00
parent 4070179f46
commit 2250f744d1
60 changed files with 3668 additions and 106 deletions

View File

@@ -14,6 +14,8 @@
<result property="isShow" column="is_show" />
<result property="isAd" column="is_ad" />
<result property="adNumber" column="ad_number" />
<result property="priceFen" column="price_fen" />
<result property="virtualProductId" column="virtual_product_id" />
<result property="downNum" column="down_num" />
<result property="weight" column="weight" />
<result property="delFlag" column="del_flag" />
@@ -35,27 +37,34 @@
</resultMap>
<sql id="selectAppResourceVo">
select id, resource_title, show_img, `explain`, resource_type, keyword, is_show, is_ad, ad_number, down_num, weight, del_flag, create_by, create_time, remark from app_resource
select a.id, a.resource_title, a.show_img, a.`explain`, a.resource_type, a.keyword,
a.is_show, a.is_ad, a.ad_number, a.price_fen,
(select vp.product_id from app_virtual_product vp
where vp.price_fen = a.price_fen and vp.status = 1 limit 1) as virtual_product_id,
a.down_num, a.weight, a.del_flag, a.create_by, a.create_time, a.remark
from app_resource a
</sql>
<select id="selectAppResourceList" parameterType="AppResource" resultMap="AppResourceResult">
<include refid="selectAppResourceVo"/>
<where>
<if test="resourceTitle != null and resourceTitle != ''"> and resource_title like concat('%', #{resourceTitle}, '%')</if>
<if test="showImg != null and showImg != ''"> and show_img = #{showImg}</if>
<if test="explain != null and explain != ''"> and `explain` = #{explain}</if>
<if test="resourceType != null "> and resource_type = #{resourceType}</if>
<if test="isShow != null "> and is_show = #{isShow}</if>
<if test="isAd != null "> and is_ad = #{isAd}</if>
<if test="adNumber != null "> and ad_number = #{adNumber}</if>
<if test="downNum != null "> and down_num = #{downNum}</if>
<if test="weight != null "> and weight = #{weight}</if>
<if test="keyword != null and keyword != ''"> and (keyword like concat('%', #{keyword}, '%') or resource_title like concat('%', #{keyword}, '%'))</if>
</where> ORDER BY weight desc, create_time desc
<if test="resourceTitle != null and resourceTitle != ''"> and a.resource_title like concat('%', #{resourceTitle}, '%')</if>
<if test="showImg != null and showImg != ''"> and a.show_img = #{showImg}</if>
<if test="explain != null and explain != ''"> and a.`explain` = #{explain}</if>
<if test="resourceType != null "> and a.resource_type = #{resourceType}</if>
<if test="isShow != null "> and a.is_show = #{isShow}</if>
<if test="isAd != null "> and a.is_ad = #{isAd}</if>
<if test="adNumber != null "> and a.ad_number = #{adNumber}</if>
<if test="downNum != null "> and a.down_num = #{downNum}</if>
<if test="weight != null "> and a.weight = #{weight}</if>
<if test="keyword != null and keyword != ''"> and (a.keyword like concat('%', #{keyword}, '%') or a.resource_title like concat('%', #{keyword}, '%'))</if>
</where> ORDER BY a.weight desc, a.create_time desc
</select>
<select id="selectAppResourceById" parameterType="Long" resultMap="AppResourceAppResourceListResult">
select a.id, a.resource_title, a.show_img, a.`explain`,a.`keyword`, a.resource_type, a.is_show, a.is_ad, a.ad_number, a.down_num, a.weight, a.del_flag, a.create_by, a.create_time, a.remark,
select a.id, a.resource_title, a.show_img, a.`explain`,a.`keyword`, a.resource_type, a.is_show, a.is_ad, a.ad_number, a.price_fen,
(select vp.product_id from app_virtual_product vp where vp.price_fen = a.price_fen and vp.status = 1 limit 1) as virtual_product_id,
a.down_num, a.weight, a.del_flag, a.create_by, a.create_time, a.remark,
b.id as sub_id, b.list_name as sub_list_name, b.list_url as sub_list_url, b.password as sub_password, b.app_resource_id as sub_app_resource_id
from app_resource a
left join app_resource_list b on b.app_resource_id = a.id
@@ -73,6 +82,7 @@
<if test="isShow != null">is_show,</if>
<if test="isAd != null">is_ad,</if>
<if test="adNumber != null">ad_number,</if>
<if test="priceFen != null">price_fen,</if>
<if test="downNum != null">down_num,</if>
<if test="weight != null">weight,</if>
<if test="delFlag != null">del_flag,</if>
@@ -89,6 +99,7 @@
<if test="isShow != null">#{isShow},</if>
<if test="isAd != null">#{isAd},</if>
<if test="adNumber != null">#{adNumber},</if>
<if test="priceFen != null">#{priceFen},</if>
<if test="downNum != null">#{downNum},</if>
<if test="weight != null">#{weight},</if>
<if test="delFlag != null">#{delFlag},</if>
@@ -109,6 +120,7 @@
<if test="isShow != null">is_show = #{isShow},</if>
<if test="isAd != null">is_ad = #{isAd},</if>
<if test="adNumber != null">ad_number = #{adNumber},</if>
<if test="priceFen != null">price_fen = #{priceFen},</if>
<if test="downNum != null">down_num = #{downNum},</if>
<if test="weight != null">weight = #{weight},</if>
<if test="delFlag != null">del_flag = #{delFlag},</if>
@@ -149,16 +161,35 @@
</insert>
<select id="selectAppResourceByIdAndUserId" resultMap="AppResourceAppResourceListResult">
select a.id, a.resource_title, a.show_img, a.`explain`, a.`keyword`, a.resource_type, a.is_show,
select a.id, a.resource_title, a.show_img, a.`explain`, a.`keyword`, a.resource_type, a.is_show,
CASE
WHEN (SELECT COUNT(1) FROM app_integral_record WHERE resource_id = #{id} AND user_id = #{userId}) > 0 THEN 0
WHEN #{userId} is not null and (
(SELECT COUNT(1) FROM app_integral_record
WHERE resource_id = #{id} AND user_id = #{userId}
AND source = '资源兑换' AND is_add = 1) > 0
OR
(SELECT COUNT(1) FROM app_resource_entitlement WHERE resource_id = #{id} AND user_id = #{userId} AND status = 1) > 0
) THEN 0
ELSE a.is_ad
END as is_ad,
a.ad_number, a.down_num, a.weight, a.del_flag, a.create_by, a.create_time, a.remark,
END as is_ad,
a.ad_number, a.price_fen,
(select vp.product_id from app_virtual_product vp where vp.price_fen = a.price_fen and vp.status = 1 limit 1) as virtual_product_id,
a.down_num, a.weight, a.del_flag, a.create_by, a.create_time, a.remark,
b.id as sub_id, b.list_name as sub_list_name, b.list_url as sub_list_url,
b.password as sub_password, b.app_resource_id as sub_app_resource_id
from app_resource a
left join app_resource_list b on b.app_resource_id = a.id
and (
a.is_ad not in (2, 3)
or (
#{userId} is not null and (
exists(select 1 from app_integral_record ir
where ir.resource_id = a.id and ir.user_id = #{userId}
and ir.source = '资源兑换' and ir.is_add = 1)
or exists(select 1 from app_resource_entitlement re where re.resource_id = a.id and re.user_id = #{userId} and re.status = 1)
)
)
)
where a.id = #{id}
</select>
</mapper>
</mapper>