fix(distribution): 修正商品归属回填、禁止全站灌货并拒绝无效站点头
用货架写入时间与上传来源回滚误标产地,不再依赖绝对时间戳;同步仅收本站上传与显式勾选。
This commit is contained in:
@@ -891,6 +891,14 @@ func TestCreateListingWithDistributionSiteCode(t *testing.T) {
|
||||
t.Fatalf("expected enabled, got %s", dsa.DisplayStatus)
|
||||
}
|
||||
|
||||
var stored model.RentalListing
|
||||
if err := db.First(&stored, dto.ID).Error; err != nil {
|
||||
t.Fatalf("load listing: %v", err)
|
||||
}
|
||||
if stored.SourceChannel != site.SiteCode {
|
||||
t.Fatalf("stored source_channel = %q, want %q", stored.SourceChannel, site.SiteCode)
|
||||
}
|
||||
|
||||
// 验证审核工作台列表展示分销站来源
|
||||
pending, err := repo.ListPendingReview(context.Background())
|
||||
if err != nil {
|
||||
@@ -904,6 +912,43 @@ func TestCreateListingWithDistributionSiteCode(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestCreateListingInvalidDistributionSiteCode(t *testing.T) {
|
||||
db := database.NewTestDB()
|
||||
if err := database.MigrateListingLifecycleTestSchema(db); err != nil {
|
||||
t.Fatalf("migrate err: %v", err)
|
||||
}
|
||||
repo := NewRepository(db, nil)
|
||||
|
||||
user := model.User{Phone: "18800000011", Nickname: "分销卖家", RealnameStatus: "verified", Status: "active"}
|
||||
db.Create(&user)
|
||||
|
||||
inactive := model.DistributionSite{
|
||||
SiteCode: "dist_inactive",
|
||||
SiteName: "已停用分销站",
|
||||
Domain: "inactive.example.com",
|
||||
Status: "disabled",
|
||||
DisplayAccountEnabled: true,
|
||||
}
|
||||
db.Create(&inactive)
|
||||
|
||||
req := CreateRequest{Title: "无效站点商品", ServerRegion: "QQ", LoginPlatform: "PC", PriceCent: 1000}
|
||||
|
||||
if _, err := repo.Create(context.Background(), user.ID, req, true, 0, "does_not_exist"); !errors.Is(err, ErrDistributionSiteInvalid) {
|
||||
t.Fatalf("unknown site err = %v, want ErrDistributionSiteInvalid", err)
|
||||
}
|
||||
if _, err := repo.Create(context.Background(), user.ID, req, true, 0, "dist_inactive"); !errors.Is(err, ErrDistributionSiteInvalid) {
|
||||
t.Fatalf("inactive site err = %v, want ErrDistributionSiteInvalid", err)
|
||||
}
|
||||
|
||||
var count int64
|
||||
if err := db.Model(&model.RentalListing{}).Count(&count).Error; err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if count != 0 {
|
||||
t.Fatalf("invalid site must not create listing, got %d", count)
|
||||
}
|
||||
}
|
||||
|
||||
func TestListMineSiteIsolation(t *testing.T) {
|
||||
db := database.NewTestDB()
|
||||
if err := database.MigrateListingLifecycleTestSchema(db); err != nil {
|
||||
|
||||
Reference in New Issue
Block a user