feat: 实现社区激励金(公户)系统,经济闭环
- 新增 CommunityFund / FundLog 模型(公户余额单行表 + 6种流水类型) - 新增 FundRepo 仓储(GetBalance / IncrBalance / CreateLog / ListLogs / WithTx) - 改造 EnergyService 五个方法:Energize 税收入公户、DeductOnRename/DeductOnDeletePost 入公户、RefundOnRenameReject 从公户支出、AdminAdjust 拆分为 admin_transfer/system_operation - 新增 ErrInsufficientFund 错误哨兵 - 管理后台新增公户余额展示 + 公户流水页面 + 域能调整资金来源选择 - 新增 energy.css / energy.js 前端交互 - 侧边栏新增公户流水入口
This commit is contained in:
@ -30,6 +30,7 @@ func setupAdminRoutes(r *gin.Engine, cfg *config.Config, d *dependencies) {
|
||||
middleware.RequirePageRole(model.RoleOwner))
|
||||
adminPages.GET("/energy", d.adminEnergyCtrl.EnergyPage)
|
||||
adminPages.GET("/energy/logs", d.adminEnergyCtrl.EnergyLogPage)
|
||||
adminPages.GET("/energy/fund-logs", d.adminEnergyCtrl.FundLogPage)
|
||||
adminPages.GET("/comments", d.adminCommentCtrl.CommentsPage)
|
||||
}
|
||||
|
||||
@ -75,16 +76,17 @@ func setupAdminRoutes(r *gin.Engine, cfg *config.Config, d *dependencies) {
|
||||
adminPostAPI.POST("/:id/restore", d.adminPostCtrl.Restore)
|
||||
}
|
||||
|
||||
// --- 域能管理 API(admin+,调整需要 owner) ---
|
||||
// --- 域能管理 API(admin+,system_operation 仅 owner) ---
|
||||
adminEnergyAPI := r.Group("/api/admin/energy")
|
||||
adminEnergyAPI.Use(d.authMdw.Required())
|
||||
adminEnergyAPI.Use(middleware.RequireMinRole(model.RoleAdmin))
|
||||
adminEnergyAPI.Use(d.authMdw.BannedWriteGuard())
|
||||
adminEnergyAPI.Use(middleware.CSRF(cfg))
|
||||
{
|
||||
adminEnergyAPI.POST("/adjust", d.adminEnergyCtrl.AdjustEnergy,
|
||||
middleware.RequireMinRole(model.RoleOwner))
|
||||
adminEnergyAPI.POST("/adjust", d.adminEnergyCtrl.AdjustEnergy)
|
||||
adminEnergyAPI.GET("/logs", d.adminEnergyCtrl.ListEnergyLogs)
|
||||
adminEnergyAPI.GET("/fund-balance", d.adminEnergyCtrl.GetFundBalance)
|
||||
adminEnergyAPI.GET("/fund-logs", d.adminEnergyCtrl.ListFundLogs)
|
||||
}
|
||||
|
||||
// --- 评论管理 API(admin+) ---
|
||||
|
||||
@ -21,7 +21,9 @@ func buildDeps(db *gorm.DB, cfg *config.Config, siteSettings *config.SiteSetting
|
||||
|
||||
// 域能系统
|
||||
energyRepo := repository.NewEnergyRepo(db)
|
||||
fundRepo := repository.NewFundRepo(db)
|
||||
energyService := service.NewEnergyService(db, energyRepo, nil, notificationService)
|
||||
energyService.SetFundRepo(fundRepo)
|
||||
|
||||
// 等级/签到/任务系统(链式注入域能服务)
|
||||
_, levelSvc, levelCtrl := buildDepsLevel(db, notificationService, authMdw)
|
||||
|
||||
Reference in New Issue
Block a user