|
|
@@ -72,8 +72,8 @@ type CoursesActivity struct {
|
|
|
View int32 `gorm:"column:view;not null;default:0" json:"view"` // 浏览量(后台可见)|枚举:无|写入:详情页访问自增|FK:无|红线:非资金字段,可异步
|
|
|
Memo *string `gorm:"column:memo;size:500" json:"memo,omitempty"` // 备注|枚举:无|写入:创建/编辑|FK:无|红线:脱敏
|
|
|
CreateUserID *string `gorm:"column:create_user_id;size:26" json:"createUserId,omitempty"` // 创建人(ULID;原 create_userid)|枚举:无|写入:创建时|FK:→ t_user(逻辑)|红线:禁止旧 int id
|
|
|
- CreateTime time.Time `gorm:"column:create_time;not null" json:"createTime"` // 创建时间(datetime(3))|枚举:无|写入:DB 默认|FK:无|红线:勿手改
|
|
|
- UpdatedAt time.Time `gorm:"column:updated_at;not null" json:"updatedAt"` // 更新时间(datetime(3),ON UPDATE;新增列)|枚举:无|写入:DB 自动|FK:无|红线:勿手改
|
|
|
+ CreateTime time.Time `gorm:"column:create_time;not null;default:CURRENT_TIMESTAMP" json:"createTime"` // 创建时间(datetime(3))|枚举:无|写入:DB 默认|FK:无|红线:勿手改
|
|
|
+ UpdatedAt time.Time `gorm:"column:updated_at;not null;default:CURRENT_TIMESTAMP" json:"updatedAt"` // 更新时间(datetime(3),ON UPDATE;新增列)|枚举:无|写入:DB 自动|FK:无|红线:勿手改
|
|
|
}
|
|
|
|
|
|
// TableName 指定表名。
|
|
|
@@ -96,7 +96,7 @@ type CoursesActivitySigned struct {
|
|
|
ActivityMoneyUsed string `gorm:"column:activity_money_used;type:decimal(12,2);not null;default:0.00" json:"activityMoneyUsed"` // 已使用活动金额(元;老带新=已充值到账户)|枚举:无|写入:结算|FK:无|红线:取消报名时归零;与 used_log 累计须一致
|
|
|
RecommendUserID *string `gorm:"column:recommend_user_id;size:26" json:"recommendUserId,omitempty"` // 推荐人(ULID;原 recommend_userid;0→NULL)|枚举:无|写入:报名时|FK:→ t_user(逻辑)|红线:双边入账的对手方,禁止自荐(业务校验)
|
|
|
CreateUserID *string `gorm:"column:create_user_id;size:26" json:"createUserId,omitempty"` // 创建人(原 create_userid)|枚举:无|写入:报名时|FK:→ t_user(逻辑)|红线:禁止旧 int id
|
|
|
- CreateTime time.Time `gorm:"column:create_time;not null" json:"createTime"` // 报名时间(datetime(3))|枚举:无|写入:DB 默认|FK:无|红线:勿手改(对账依据)
|
|
|
+ CreateTime time.Time `gorm:"column:create_time;not null;default:CURRENT_TIMESTAMP" json:"createTime"` // 报名时间(datetime(3))|枚举:无|写入:DB 默认|FK:无|红线:勿手改(对账依据)
|
|
|
Imgs *string `gorm:"column:imgs;size:255" json:"imgs,omitempty"` // 图片备注(JSON 字符串)|枚举:无|写入:报名时|FK:无|红线:含个人信息,输出按需裁剪
|
|
|
Memo *string `gorm:"column:memo;size:500" json:"memo,omitempty"` // 备注|枚举:无|写入:报名/审核|FK:无|红线:脱敏
|
|
|
RequestNo *string `gorm:"index:idx_request_no;column:request_no;size:100" json:"requestNo,omitempty"` // 申请单号(原 requestid)|枚举:无|写入:报名时|FK:弱关联 t_user_balance_request.biz_no|红线:字符串保留(非 int64 FK),勿 JOIN id
|
|
|
@@ -122,7 +122,7 @@ type CoursesActivityUserDiscount struct {
|
|
|
Income string `gorm:"column:income;type:decimal(12,2);not null;default:0.00" json:"income"` // 充值金额(元;触发赠送的充值额)|枚举:无|写入:入池时|FK:无|红线:审计口径列,只写不改
|
|
|
DiscountAmount string `gorm:"column:discount_amount;type:decimal(12,2);not null;default:0.00" json:"discountAmount"` // 赠送金额(元;负数=扣减/正数=赠送)|枚举:无|写入:入池时|FK:无|红线:可用额=本列−已用,禁止直接改本列做消费
|
|
|
DiscountAmountUsed string `gorm:"column:discount_amount_used;type:decimal(12,2);not null;default:0.00" json:"discountAmountUsed"` // 已使用赠送金额(元;<= discount_amount)|枚举:无|写入:使用/退回(原子增减)|FK:无|红线:须与 discount_log 累计一致(对账恒等式)
|
|
|
- CreateTime time.Time `gorm:"column:create_time;not null" json:"createTime"` // 创建时间(datetime(3))|枚举:无|写入:DB 默认|FK:无|红线:勿手改
|
|
|
+ CreateTime time.Time `gorm:"column:create_time;not null;default:CURRENT_TIMESTAMP" json:"createTime"` // 创建时间(datetime(3))|枚举:无|写入:DB 默认|FK:无|红线:勿手改
|
|
|
}
|
|
|
|
|
|
// TableName 指定表名。
|
|
|
@@ -138,7 +138,7 @@ type CoursesActivityUserDiscountLog struct {
|
|
|
CoursesStudentID *int64 `gorm:"index:idx_student;column:courses_student_id" json:"coursesStudentId,omitempty"` // 报课记录 ID(原 courses_studentid UUID → t_courses_student.id;未回填前 NULL)|枚举:无|写入:使用/退回时|FK:→ t_courses_student.id|红线:NULL 期间用 courses_student_no 回溯
|
|
|
CoursesStudentNo *string `gorm:"index:idx_student_no;column:courses_student_no;size:32" json:"coursesStudentNo,omitempty"` // 报课记录旧单号(迁移期保留旧 UUID)|枚举:无|写入:迁移搬入|FK:弱关联 t_courses_student.biz_no|红线:回填完成后停用,禁止新写入
|
|
|
DiscountAmountUsed string `gorm:"column:discount_amount_used;type:decimal(12,2);not null;default:0.00" json:"discountAmountUsed"` // 变动金额(元;负=消费/正=退回)|枚举:无|写入:使用/退回时|FK:无|红线:符号方向固定,退回按 ABS 等额回冲
|
|
|
- CreateTime time.Time `gorm:"column:create_time;not null" json:"createTime"` // 使用时间(datetime(3))|枚举:无|写入:DB 默认|FK:无|红线:同秒多行用 id 排序(退回游标 DESC)
|
|
|
+ CreateTime time.Time `gorm:"column:create_time;not null;default:CURRENT_TIMESTAMP" json:"createTime"` // 使用时间(datetime(3))|枚举:无|写入:DB 默认|FK:无|红线:同秒多行用 id 排序(退回游标 DESC)
|
|
|
Memo *string `gorm:"column:memo;size:500" json:"memo,omitempty"` // 备注(默认文案"使用充值赠送金额")|枚举:无|写入:使用/退回时|FK:无|红线:脱敏
|
|
|
}
|
|
|
|
|
|
@@ -159,7 +159,7 @@ type CoursesActivityUsedLog struct {
|
|
|
RecommendUserID *string `gorm:"column:recommend_user_id;size:26" json:"recommendUserId,omitempty"` // 推荐人(ULID;原 recommend_userid;0→NULL)|枚举:无|写入:结算|FK:→ t_user(逻辑)|红线:双边入账对手方
|
|
|
OrderNo *string `gorm:"index:idx_order_no;column:order_no;size:100" json:"orderNo,omitempty"` // 订单号(原 orderid:老带新=报课信息 id;copy 重放=courses_studentid)|枚举:无|写入:结算/重放|FK:弱关联 t_courses_student.biz_no|红线:字符串保留,勿当 int64 FK
|
|
|
ActivityMoneyUsed string `gorm:"column:activity_money_used;type:decimal(12,2);not null;default:0.00" json:"activityMoneyUsed"` // 活动金额变动(元;老带新结算=负值)|枚举:无|写入:结算/重放|FK:无|红线:符号方向 ★ 结算负值,重放可能正值(双跑重点比对)
|
|
|
- CreateTime time.Time `gorm:"column:create_time;not null" json:"createTime"` // 创建时间(datetime(3))|枚举:无|写入:DB 默认|FK:无|红线:勿手改
|
|
|
+ CreateTime time.Time `gorm:"column:create_time;not null;default:CURRENT_TIMESTAMP" json:"createTime"` // 创建时间(datetime(3))|枚举:无|写入:DB 默认|FK:无|红线:勿手改
|
|
|
Memo *string `gorm:"column:memo;size:255" json:"memo,omitempty"` // 备注|枚举:无|写入:结算/重放|FK:无|红线:脱敏
|
|
|
}
|
|
|
|
|
|
@@ -186,8 +186,8 @@ type CoursesActivityRequest struct {
|
|
|
ResponseTime *time.Time `gorm:"column:response_time" json:"responseTime,omitempty"` // 审批时间(datetime(3))|枚举:无|写入:审批动作|FK:无|红线:与 approved 同事务
|
|
|
ResponseMsg *string `gorm:"column:response_msg;type:longtext" json:"responseMsg,omitempty"` // 审批意见|枚举:无|写入:审批动作|FK:无|红线:用户输入,转义
|
|
|
Approved int8 `gorm:"index:idx_inst_campus_approved,priority:3;column:approved;not null;default:0" json:"approved"` // 审批状态(-1 不通过/0 未处理/1 通过;原 aproved 错拼修正)|枚举:ActivityRequestApproved*|写入:审批动作|FK:无|红线:0→1 才可入池,重复审批幂等
|
|
|
- CreatedAt time.Time `gorm:"column:created_at;not null" json:"createdAt"` // 创建时间(datetime(3))|枚举:无|写入:DB 默认|FK:无|红线:勿手改
|
|
|
- UpdatedAt time.Time `gorm:"column:updated_at;not null" json:"updatedAt"` // 更新时间(datetime(3),ON UPDATE)|枚举:无|写入:DB 自动|FK:无|红线:勿手改
|
|
|
+ CreatedAt time.Time `gorm:"column:created_at;not null;default:CURRENT_TIMESTAMP" json:"createdAt"` // 创建时间(datetime(3))|枚举:无|写入:DB 默认|FK:无|红线:勿手改
|
|
|
+ UpdatedAt time.Time `gorm:"column:updated_at;not null;default:CURRENT_TIMESTAMP" json:"updatedAt"` // 更新时间(datetime(3),ON UPDATE)|枚举:无|写入:DB 自动|FK:无|红线:勿手改
|
|
|
}
|
|
|
|
|
|
// TableName 指定表名。
|
|
|
@@ -200,7 +200,7 @@ type CoursesActivityVisit struct {
|
|
|
ID int64 `gorm:"column:id;primaryKey;autoIncrement" json:"id"` // 回访 ID(D3 自增)|枚举:无|写入:INSERT 自动|FK:无|红线:只增不改
|
|
|
ActivitySignedID *int64 `gorm:"index:idx_signed;column:activity_signed_id" json:"activitySignedId,omitempty"` // 报名记录 ID(原 activity_signedid)|枚举:无|写入:回访登记时|FK:→ t_courses_activity_signed.id|红线:NULL=历史脏数据,勿据此做业务判断
|
|
|
CreateUserID *string `gorm:"column:create_user_id;size:26" json:"createUserId,omitempty"` // 回访人(ULID;原 create_userid)|枚举:无|写入:回访登记时|FK:→ t_user(逻辑)|红线:禁止旧 int id
|
|
|
- CreateTime time.Time `gorm:"column:create_time;not null" json:"createTime"` // 回访时间(datetime(3))|枚举:无|写入:DB 默认/录入|FK:无|红线:勿手改
|
|
|
+ CreateTime time.Time `gorm:"column:create_time;not null;default:CURRENT_TIMESTAMP" json:"createTime"` // 回访时间(datetime(3))|枚举:无|写入:DB 默认/录入|FK:无|红线:勿手改
|
|
|
Memo *string `gorm:"column:memo;size:500" json:"memo,omitempty"` // 回访内容|枚举:无|写入:回访登记时|FK:无|红线:含学员沟通内容,按权限裁剪输出
|
|
|
}
|
|
|
|