- 数据库:新增team_score_pool自动发放字段,新建score_grant_record表 - 后端:新增ScoreAutoGrantService定时任务服务 - 后端:新增ScoreGrantRecord实体和Mapper - 后端:DepartmentController新增发放记录和手动发放接口 - 后端:TeamScorePoolService新增自动发放配置更新方法 - 前端:部门编辑弹窗新增积分自动发放配置 - 前端:积分池弹窗新增发放记录展示和手动发放按钮 - 前端:department.ts新增相关API - 前端:config.ts TeamScorePool类型新增自动发放字段
62 lines
3.0 KiB
SQL
62 lines
3.0 KiB
SQL
-- 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;
|