已完成用户APP首期功能开发

交付用户端首期页面、配套接口、后台资源及测试文档。用户APP构建、静态分析和三个管理后台构建通过;完整测试仍有2项失败,后端模型注释检查未通过,详见交付记录。
This commit is contained in:
czl231
2026-09-13 00:57:32 +08:00
parent a0a4bb1218
commit 3ef33b531d
793 changed files with 40959 additions and 1204 deletions

View File

@@ -142,6 +142,14 @@ func registerProductRoute(group *gin.RouterGroup) {
info.PATCH("/:identity/status", product.UpdateProductInfoRecordStatus)
info.PATCH("/:identity/lifecycle", product.UpdateProductInfoLifecycle)
registerRestrictedNoDeleteResource(
group,
"/dev_usage_stat",
&models.DevUsageStat{},
[]string{"stat_date", "usage_kg", "breakfast_kg", "lunch_kg", "dinner_kg", "source", "calc_version", "calculated_at"},
requiredRelation("product_info_identity", "product_info_id", &models.ProductInfo{}),
)
repairList, repairCreate, repairGet, repairUpdate := product.ProductRepairHandlers(
requiredRelation("product_info_identity", "product_info_id", &models.ProductInfo{}),
)
@@ -190,6 +198,13 @@ func registerCommerceRoute(group *gin.RouterGroup) {
registerReadOnlyHandlers(group, "/ec_order", func(ctx *gin.Context) { common.ListResource(ctx, &models.EcOrder{}) }, ec.GetEcOrder)
registerReadOnlyResource(group, "/ec_order_item", &models.EcOrderItem{})
registerReadOnlyResource(group, "/ec_review", &models.EcReview{})
registerRestrictedWritableResource(group, "/deposit_policy", &models.DepositPolicy{}, []string{"name", "amount", "rule_text"}, requiredRelation("product_type_identity", "product_type_id", &models.ProductType{}))
registerReadOnlyResource(group, "/deposit_record", &models.DepositRecord{})
registerReadOnlyResource(group, "/deposit_return_request", &models.DepositReturnRequest{})
returns := group.Group("/deposit_return_request")
returns.POST("/:identity/confirm-pickup", platformbase.ConfirmDepositPickup)
returns.POST("/:identity/inspect", platformbase.InspectDepositReturn)
returns.POST("/:identity/complete-refund", platformbase.CompleteDepositRefund)
}
func registerStaffRoute(group *gin.RouterGroup) {
@@ -249,7 +264,8 @@ func registerFinanceRoute(group *gin.RouterGroup) {
func registerContentRoute(group *gin.RouterGroup) {
registerRestrictedWritableResource(group, "/cms_content", &models.CmsContent{}, []string{"content_type", "title", "body", "version_no", "publish_status"})
registerRestrictedWritableResource(group, "/cs_ticket", &models.CsTicket{}, []string{"ticket_no", "category", "priority"}, requiredRelation("user_account_identity", "user_account_id", &models.UserAccount{}))
ticketList, ticketCreate, ticketGet, ticketUpdate := common.ResourceHandlers(&models.CsTicket{}, []string{"ticket_no", "category", "priority"}, []string{"ticket_no", "category", "priority"}, requiredRelation("user_account_identity", "user_account_id", &models.UserAccount{}))
registerWritableResource(group, "/cs_ticket", ticketList, ticketCreate, ticketGet, platformbase.GuardContractTicketUpdate(ticketUpdate), &models.CsTicket{})
}
func registerWritableResource(group *gin.RouterGroup, path string, list, create, get, update gin.HandlerFunc, model any) {