Files
junhong_cmp_fiber/internal/model/shop_dto.go
huang 18f35f3ef4 feat: 完成B端认证系统和商户管理模块测试补全
主要变更:
- 新增B端认证系统(后台+H5):登录、登出、Token刷新、密码修改
- 完善商户管理和商户账号管理功能
- 补全单元测试(ShopService: 72.5%, ShopAccountService: 79.8%)
- 新增集成测试(商户管理+商户账号管理)
- 归档OpenSpec提案(add-shop-account-management, implement-b-end-auth-system)
- 完善文档(使用指南、API文档、认证架构说明)

测试统计:
- 13个测试套件,37个测试用例,100%通过率
- 平均覆盖率76.2%,达标

OpenSpec验证:通过(strict模式)
2026-01-15 18:15:17 +08:00

56 lines
2.6 KiB
Go

package model
type ShopListRequest struct {
Page int `json:"page" query:"page" validate:"omitempty,min=1"`
PageSize int `json:"page_size" query:"page_size" validate:"omitempty,min=1,max=100"`
ShopName string `json:"shop_name" query:"shop_name" validate:"omitempty,max=100"`
ShopCode string `json:"shop_code" query:"shop_code" validate:"omitempty,max=50"`
ParentID *uint `json:"parent_id" query:"parent_id" validate:"omitempty,min=1"`
Level *int `json:"level" query:"level" validate:"omitempty,min=1,max=7"`
Status *int `json:"status" query:"status" validate:"omitempty,oneof=0 1"`
}
type CreateShopRequest struct {
ShopName string `json:"shop_name" validate:"required,min=1,max=100"`
ShopCode string `json:"shop_code" validate:"required,min=1,max=50"`
ParentID *uint `json:"parent_id" validate:"omitempty,min=1"`
ContactName string `json:"contact_name" validate:"omitempty,max=50"`
ContactPhone string `json:"contact_phone" validate:"omitempty,len=11"`
Province string `json:"province" validate:"omitempty,max=50"`
City string `json:"city" validate:"omitempty,max=50"`
District string `json:"district" validate:"omitempty,max=50"`
Address string `json:"address" validate:"omitempty,max=255"`
InitPassword string `json:"init_password" validate:"required,min=8,max=32"`
InitUsername string `json:"init_username" validate:"required,min=3,max=50"`
InitPhone string `json:"init_phone" validate:"required,len=11"`
}
type UpdateShopRequest struct {
ShopName string `json:"shop_name" validate:"required,min=1,max=100"`
ContactName string `json:"contact_name" validate:"omitempty,max=50"`
ContactPhone string `json:"contact_phone" validate:"omitempty,len=11"`
Province string `json:"province" validate:"omitempty,max=50"`
City string `json:"city" validate:"omitempty,max=50"`
District string `json:"district" validate:"omitempty,max=50"`
Address string `json:"address" validate:"omitempty,max=255"`
Status int `json:"status" validate:"required,oneof=0 1"`
}
// ShopResponse 店铺响应
type ShopResponse struct {
ID uint `json:"id"`
ShopName string `json:"shop_name"`
ShopCode string `json:"shop_code"`
ParentID *uint `json:"parent_id,omitempty"`
Level int `json:"level"`
ContactName string `json:"contact_name"`
ContactPhone string `json:"contact_phone"`
Province string `json:"province"`
City string `json:"city"`
District string `json:"district"`
Address string `json:"address"`
Status int `json:"status"`
CreatedAt string `json:"created_at"`
UpdatedAt string `json:"updated_at"`
}