已完成用户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

@@ -37,6 +37,36 @@ func main() {
os.Exit(1)
}
switch os.Args[1] {
case "migrate-family-sharing":
if err := migrateFamilySharing(); err != nil {
fmt.Fprintln(os.Stderr, err)
os.Exit(1)
}
fmt.Println("family sharing tables ready")
case "migrate-usage-messages":
if err := migrateUsageMessages(); err != nil {
fmt.Fprintln(os.Stderr, err)
os.Exit(1)
}
fmt.Println("usage statistics and message read tables ready")
case "migrate-device-groups":
if err := migrateDeviceGroups(); err != nil {
fmt.Fprintln(os.Stderr, err)
os.Exit(1)
}
fmt.Println("device group table ready")
case "migrate-device-mapping":
if err := migrateDeviceMapping(); err != nil {
fmt.Fprintln(os.Stderr, err)
os.Exit(1)
}
fmt.Println("device mapping columns ready")
case "migrate-emergency-contacts":
if err := migrateEmergencyContacts(); err != nil {
fmt.Fprintln(os.Stderr, err)
os.Exit(1)
}
fmt.Println("emergency contact table ready")
case "version":
fmt.Println("platform-cli 0.1.0")
case "resource-contract":
@@ -88,11 +118,48 @@ func main() {
os.Exit(1)
}
fmt.Printf("mock refund reviewers repaired: %d\n", count)
case "repair-mock-user-password":
count, err := repairMockUserPassword()
if err != nil {
fmt.Fprintln(os.Stderr, err)
os.Exit(1)
}
fmt.Printf("mock user passwords repaired: %d\n", count)
case "repair-legacy-gas-account":
if err := repairLegacyGasAccount(os.Args[2:], os.Stdout); err != nil {
fmt.Fprintln(os.Stderr, err)
os.Exit(1)
}
case "migrate-user-address":
if err := migrateUserAddress(); err != nil {
fmt.Fprintln(os.Stderr, err)
os.Exit(1)
}
fmt.Println("user address additive migration completed")
case "migrate-ec-favorite":
if err := migrateEcFavorite(); err != nil {
fmt.Fprintln(os.Stderr, err)
os.Exit(1)
}
fmt.Println("ec favorite additive migration completed")
case "migrate-deposit":
if err := migrateDeposit(); err != nil {
fmt.Fprintln(os.Stderr, err)
os.Exit(1)
}
fmt.Println("deposit additive migration completed")
case "migrate-ticket-contact":
if err := migrateTicketContact(); err != nil {
fmt.Fprintln(os.Stderr, err)
os.Exit(1)
}
fmt.Println("ticket contact additive migration completed")
case "migrate-ticket-contract":
if err := migrateTicketContract(); err != nil {
fmt.Fprintln(os.Stderr, err)
os.Exit(1)
}
fmt.Println("ticket contract additive migration completed")
case "migrate":
if err := migrateDatabase(); err != nil {
fmt.Fprintln(os.Stderr, err)
@@ -107,7 +174,7 @@ func main() {
}
func printUsage() {
fmt.Fprintln(os.Stderr, "usage: platform-cli <version|resource-contract|gas-resource-contract|delivery-resource-contract|migrate|mock-data|repair-mock-gasorder-status|repair-mock-ec-order|repair-mock-track-point|repair-mock-refund-reviewer|repair-legacy-gas-account>")
fmt.Fprintln(os.Stderr, "usage: platform-cli <version|resource-contract|gas-resource-contract|delivery-resource-contract|migrate|migrate-family-sharing|migrate-device-groups|migrate-device-mapping|migrate-emergency-contacts|migrate-user-address|migrate-ticket-contact|migrate-ticket-contract|migrate-ec-favorite|migrate-deposit|mock-data|repair-mock-gasorder-status|repair-mock-ec-order|repair-mock-track-point|repair-mock-refund-reviewer|repair-mock-user-password|repair-legacy-gas-account>")
}
type route struct {
@@ -302,6 +369,23 @@ func repairMockRefundReviewer() (int64, error) {
return count, nil
}
// repairMockUserPassword 使用当前远程配置,只恢复固定开发账号凭据。
func repairMockUserPassword() (int64, error) {
config.New(serviceKey)
if config.Spec.Databases == nil {
return 0, fmt.Errorf("database configuration is required")
}
databaseService, err := database.NewDatabase(
config.Spec.Databases.Driver,
config.Spec.Databases.Source,
dbsql.SetOptions(nil),
)
if err != nil {
return 0, fmt.Errorf("connect database: %w", err)
}
return seed.RepairMockUserPassword(databaseService)
}
// repairLegacyGasAccount 显式修复唯一历史 010 气站账号,并将前后值写入操作审计表。
func repairLegacyGasAccount(arguments []string, output io.Writer) error {
flags := flag.NewFlagSet("repair-legacy-gas-account", flag.ContinueOnError)