qiangdanxitong/database/V14__score_pool_auto_grant.sql
Your Name d412a7ad42 feat: 需求部门积分池自动发放功能
- 数据库:新增team_score_pool自动发放字段,新建score_grant_record表
- 后端:新增ScoreAutoGrantService定时任务服务
- 后端:新增ScoreGrantRecord实体和Mapper
- 后端:DepartmentController新增发放记录和手动发放接口
- 后端:TeamScorePoolService新增自动发放配置更新方法
- 前端:部门编辑弹窗新增积分自动发放配置
- 前端:积分池弹窗新增发放记录展示和手动发放按钮
- 前端:department.ts新增相关API
- 前端:config.ts TeamScorePool类型新增自动发放字段
2026-01-19 22:44:25 +08:00

62 lines
3.0 KiB
SQL
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- V14__score_pool_auto_grant.sql
-- 需求部门积分池自动发放功能数据库迁移脚本
-- 创建日期:2026-01-19
-- =====================================================
-- 1. 修改 team_score_pool 表,新增自动发放相关字段
-- =====================================================
-- 是否启用自动发放
ALTER TABLE team_score_pool ADD COLUMN auto_grant_enabled TINYINT DEFAULT 0 COMMENT '是否启用自动发放:0-否,1-是';
-- 自动发放周期
ALTER TABLE team_score_pool ADD COLUMN auto_grant_period VARCHAR(20) DEFAULT 'WEEKLY' COMMENT '自动发放周期:WEEKLY-每周,MONTHLY-每月';
-- 每次自动发放积分数量
ALTER TABLE team_score_pool ADD COLUMN auto_grant_amount INT DEFAULT 0 COMMENT '每次自动发放积分数量';
-- 发放日期
ALTER TABLE team_score_pool ADD COLUMN auto_grant_day INT DEFAULT 1 COMMENT '发放日期:周发放为1-7(周一到周日),月发放为1-28';
-- 过期未使用是否清零
ALTER TABLE team_score_pool ADD COLUMN expire_unused TINYINT DEFAULT 0 COMMENT '过期未使用是否清零:0-否,1-是';
-- 上次自动发放时间
ALTER TABLE team_score_pool ADD COLUMN last_grant_time DATETIME COMMENT '上次自动发放时间';
-- 下次自动发放时间
ALTER TABLE team_score_pool ADD COLUMN next_grant_time DATETIME COMMENT '下次自动发放时间';
-- =====================================================
-- 2. 创建积分发放记录表
-- =====================================================
CREATE TABLE IF NOT EXISTS score_grant_record (
id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID',
dept_id BIGINT NOT NULL COMMENT '部门ID',
dept_name VARCHAR(100) COMMENT '部门名称',
grant_type VARCHAR(20) NOT NULL COMMENT '发放类型:AUTO-自动发放,MANUAL-手动充值',
grant_amount INT NOT NULL COMMENT '发放积分数量',
expired_amount INT DEFAULT 0 COMMENT '过期清零积分数量',
balance_before INT COMMENT '发放前余额',
balance_after INT COMMENT '发放后余额',
grant_period VARCHAR(20) COMMENT '发放周期:WEEKLY/MONTHLY',
period_start DATE COMMENT '周期开始日期',
period_end DATE COMMENT '周期结束日期',
remark VARCHAR(500) COMMENT '备注',
create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
INDEX idx_dept_id (dept_id),
INDEX idx_grant_type (grant_type),
INDEX idx_create_time (create_time)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='积分发放记录表';
-- =====================================================
-- 3. 为现有数据设置默认值
-- =====================================================
UPDATE team_score_pool SET auto_grant_enabled = 0 WHERE auto_grant_enabled IS NULL;
UPDATE team_score_pool SET auto_grant_period = 'WEEKLY' WHERE auto_grant_period IS NULL;
UPDATE team_score_pool SET auto_grant_amount = 0 WHERE auto_grant_amount IS NULL;
UPDATE team_score_pool SET auto_grant_day = 1 WHERE auto_grant_day IS NULL;
UPDATE team_score_pool SET expire_unused = 0 WHERE expire_unused IS NULL;