- 数据概览:去掉代付统计独立卡片,总收入中以小标签显示代付金额 - 数据概览:移除余额统计区块(余额改在用户管理中展示) - 数据概览:恢复转化率卡片(唯一付费用户/总用户) - 用户管理:用户列表新增「余额/提现」列,显示钱包余额和已提现金额 - 后端:DBUsersList 增加 user_balances 查询,返回 walletBalance 字段 - 后端:User model 添加 WalletBalance 非数据库字段 - 包含之前的小程序埋点和管理后台点击统计面板 Made-with: Cursor
31 lines
2.1 KiB
Go
31 lines
2.1 KiB
Go
package model
|
||
|
||
import "time"
|
||
|
||
// Chapter 对应表 chapters(mid 为自增主键,id 保留业务标识如 1.1、preface)
|
||
type Chapter struct {
|
||
MID int `gorm:"column:mid;primaryKey;autoIncrement" json:"mid"`
|
||
ID string `gorm:"column:id;size:20;uniqueIndex" json:"id"`
|
||
PartID string `gorm:"column:part_id;size:20" json:"partId"`
|
||
PartTitle string `gorm:"column:part_title;size:100" json:"partTitle"`
|
||
ChapterID string `gorm:"column:chapter_id;size:20" json:"chapterId"`
|
||
ChapterTitle string `gorm:"column:chapter_title;size:200" json:"chapterTitle"`
|
||
SectionTitle string `gorm:"column:section_title;size:200" json:"sectionTitle"`
|
||
Content string `gorm:"column:content;type:longtext" json:"content,omitempty"`
|
||
WordCount *int `gorm:"column:word_count" json:"wordCount,omitempty"`
|
||
IsFree *bool `gorm:"column:is_free" json:"isFree,omitempty"`
|
||
Price *float64 `gorm:"column:price;type:decimal(10,2)" json:"price,omitempty"`
|
||
SortOrder *int `gorm:"column:sort_order" json:"sortOrder,omitempty"`
|
||
Status *string `gorm:"column:status;size:20" json:"status,omitempty"`
|
||
IsNew *bool `gorm:"column:is_new" json:"isNew,omitempty"` // stitch_soul:目录/首页「最新新增」标记
|
||
// 普通版/增值版:两者分开互斥,添加文章时勾选归属
|
||
EditionStandard *bool `gorm:"column:edition_standard" json:"editionStandard,omitempty"` // 是否属于普通版
|
||
EditionPremium *bool `gorm:"column:edition_premium" json:"editionPremium,omitempty"` // 是否属于增值版
|
||
HotScore float64 `gorm:"column:hot_score;type:decimal(10,2);default:0" json:"hotScore"` // 热度分(加权计算),用于排名算法
|
||
PreviewPercent *int `gorm:"column:preview_percent" json:"previewPercent,omitempty"` // 章节级预览比例(%),nil 表示使用全局设置
|
||
CreatedAt time.Time `gorm:"column:created_at" json:"createdAt"`
|
||
UpdatedAt time.Time `gorm:"column:updated_at" json:"updatedAt"`
|
||
}
|
||
|
||
func (Chapter) TableName() string { return "chapters" }
|