update point tier rule

This commit is contained in:
Timi
2026-08-14 18:26:38 +08:00
parent e369a38e2e
commit 9dfca25f8c
12 changed files with 324 additions and 48 deletions
@@ -0,0 +1,10 @@
ALTER TABLE `gao_event`
ADD COLUMN `value_type` VARCHAR(16) NOT NULL DEFAULT 'NONE' COMMENT '数值类型,NONE 不携带数值,NUMBER 携带整数数值' AFTER `description`,
ADD COLUMN `value_unit` VARCHAR(16) NULL COMMENT '数值单位,CENT 金额分,COUNT 次数' AFTER `value_type`,
ADD COLUMN `require_value` BOOLEAN NOT NULL DEFAULT FALSE COMMENT 'true 为登记时必须提交 numberValue' AFTER `value_unit`;
ALTER TABLE `gao_event_record`
ADD COLUMN `point_value` BIGINT NULL COMMENT '本次登记提交的积分值' AFTER `operator_user_id`,
ADD COLUMN `earned_point_value` BIGINT NOT NULL DEFAULT 0 COMMENT '本次登记通过积分规则获得的积分总和' AFTER `point_value`,
ADD COLUMN `number_value` BIGINT NULL COMMENT '本次登记提交的整数业务数值' AFTER `earned_point_value`,
ADD KEY `idx_gao_event_record_value_sum` (`store_id`, `customer_id`, `event_id`, `deleted_at`, `registered_at`);
@@ -26,6 +26,39 @@
AND `deleted_at` IS NULL
</select>
<select id="countByEventIdAndNumberValue" resultType="java.lang.Long">
SELECT
COUNT(1)
FROM `gao_event_record`
WHERE
`event_id` = #{eventId}
AND `number_value` IS NOT NULL
AND `deleted_at` IS NULL
</select>
<select id="sumNumberValue" resultType="java.lang.Long">
SELECT
COALESCE(SUM(`number_value`), 0)
FROM `gao_event_record`
WHERE
`store_id` = #{storeId}
AND `customer_id` = #{customerId}
AND `event_id` = #{eventId}
AND `registered_at` &gt;= #{beginAt}
AND `registered_at` &lt; #{endAt}
AND `deleted_at` IS NULL
</select>
<update id="updateEarnedPointValue">
UPDATE `gao_event_record`
SET
`earned_point_value` = #{earnedPointValue},
`updated_at` = ROUND(UNIX_TIMESTAMP(CURRENT_TIMESTAMP(3)) * 1000)
WHERE
`id` = #{id}
AND `deleted_at` IS NULL
</update>
<select id="countByStoreIdAndRegisteredDateValue" resultType="java.lang.Long">
SELECT
COUNT(1)
@@ -10,6 +10,6 @@
AND (`begin_at` IS NULL OR `begin_at` &lt;= #{now})
AND (`end_at` IS NULL OR #{now} &lt;= `end_at`)
AND `deleted_at` IS NULL
ORDER BY `priority` ASC, `created_at` ASC, `id` ASC
ORDER BY `priority`, `created_at`, `id`
</select>
</mapper>