小程序一些功能更新

This commit is contained in:
李琦
2026-09-30 17:01:18 +08:00
parent 75499ba85c
commit 6f51d99a78
46 changed files with 5280 additions and 37 deletions

115
api/user/v1/project.go Normal file
View File

@@ -0,0 +1,115 @@
package v1
import "github.com/gogf/gf/v2/frame/g"
// ============================================================================
// C 端开发项目契约(迭代-2026-09-30 三期)
//
// 流程:后台建单(生成绑定令牌)→ 用户扫小程序码进入绑定页 → POST bind 绑定到
// 当前用户 → 后台维护阶段/小节点/交付物(原型、UI 设计稿等)→ 用户端只读查看。
// ============================================================================
// ProjectStageItem 项目阶段(含小节点与交付物)
type ProjectStageItem struct {
Id int64 `json:"id"`
Title string `json:"title"`
Status int `json:"status"` // 0未开始 1进行中 2已完成
StatusText string `json:"status_text"`
Nodes []ProjectNodeItem `json:"nodes"`
Files []ProjectFileItem `json:"files"`
}
// ProjectNodeItem 阶段小节点
type ProjectNodeItem struct {
Id int64 `json:"id"`
Title string `json:"title"`
IsDone int `json:"is_done"`
DoneAt string `json:"done_at"`
}
// ProjectFileItem 阶段交付物(图片,绝对 URL)
type ProjectFileItem struct {
Id int64 `json:"id"`
FileName string `json:"file_name"`
FileUrl string `json:"file_url"`
}
// ProjectPayItem 项目分期(后台确认到账,用户只读)
type ProjectPayItem struct {
Id int64 `json:"id"`
Seq int `json:"seq"`
Percent int `json:"percent"`
AmountCents int64 `json:"amount_cents"`
Trigger string `json:"trigger"`
TriggerText string `json:"trigger_text"`
Status int `json:"status"` // 0待支付 1已支付
PaidAt string `json:"paid_at"`
}
// ProjectMaintainOut 维护期信息
type ProjectMaintainOut struct {
PlanName string `json:"plan_name"`
FreeYears int `json:"free_years"`
YearlyFeeCents int64 `json:"yearly_fee_cents"`
SourceOnly int `json:"source_only"` // 1=仅源码无售后
Accepted int `json:"accepted"`
AcceptedAt string `json:"accepted_at"`
StartAt string `json:"start_at"` // 维护期起算日(后台可调)
PaidUntil string `json:"paid_until"` // 维护费已缴至(= 下次缴费日)
}
// ProjectItem 项目列表项
type ProjectItem struct {
Id int64 `json:"id"`
Title string `json:"title"`
Description string `json:"description"`
PriceCents int64 `json:"price_cents"`
PriceNote string `json:"price_note"`
DueNote string `json:"due_note"`
Status int `json:"status"`
StatusText string `json:"status_text"`
StageTotal int `json:"stage_total"` // 已完成阶段数(输出时算好,前端直接展示进度)
StageDone int `json:"stage_done"`
CoverUrl string `json:"cover_url"` // 入口图(第一个阶段交付物图片,可能为空)
UpdatedAt string `json:"updated_at"`
}
// ProjectMineReq 我的项目(扫码绑定后可见)
type ProjectMineReq struct {
g.Meta `path:"/service/project/mine" method:"get" tags:"service" summary:"我的开发项目"`
}
type ProjectMineRes struct {
List []ProjectItem `json:"list"`
}
// ProjectDetailReq 项目详情(仅限已绑定用户;含阶段/节点/交付物/分期/维护期)
type ProjectDetailReq struct {
g.Meta `path:"/service/project/detail" method:"get" tags:"service" summary:"开发项目详情"`
Id int64 `v:"required" json:"id"`
}
type ProjectDetailRes struct {
ProjectItem
Stages []ProjectStageItem `json:"stages"`
Pays []ProjectPayItem `json:"pays"` // 分期付款(进度与到账状态)
Maintain *ProjectMaintainOut `json:"maintain"` // 维护期信息(未选模板为 null)
CanAccept int `json:"can_accept"` // 1=可点「确认验收」(已交付且未验收)
}
// ProjectAcceptReq 用户确认验收:进入维护期(维护期起点=确认当天,后台可调整)。
type ProjectAcceptReq struct {
g.Meta `path:"/service/project/accept" method:"post" tags:"service" summary:"确认验收进入维护期"`
Id int64 `v:"required" json:"id"`
}
type ProjectAcceptRes struct {
MaintainStartAt string `json:"maintain_start_at"`
PaidUntil string `json:"paid_until"`
}
// ProjectBindReq 扫码绑定项目(令牌来自小程序码 scene)
type ProjectBindReq struct {
g.Meta `path:"/service/project/bind" method:"post" tags:"service" summary:"绑定开发项目"`
Token string `v:"required#缺少绑定令牌" json:"token"`
}
type ProjectBindRes struct {
ProjectId int64 `json:"project_id"`
}