feat: product test com

This commit is contained in:
zzw
2026-08-12 17:53:26 +08:00
parent 92e86c8881
commit bc53f557c7
5 changed files with 48 additions and 48 deletions
+33 -32
View File
@@ -141,11 +141,12 @@ type ProductEditBase struct {
Label string `gorm:"column:label" json:"label"` Label string `gorm:"column:label" json:"label"`
IsIndex uint8 `gorm:"column:is_index" json:"is_index"` IsIndex uint8 `gorm:"column:is_index" json:"is_index"`
IndexImage string `gorm:"column:index_image" json:"index_image"` IndexImage string `gorm:"column:index_image" json:"index_image"`
PeriodValidity int16 `gorm:"column:period_validity" json:"period_validity"` PeriodValidity int16 `gorm:"column:period_validity" json:"period_validity"`
IsBuy uint8 `gorm:"column:is_buy" json:"is_buy"` IsBuy uint8 `gorm:"column:is_buy" json:"is_buy"`
PublishTime time.Time `gorm:"column:publish_time" json:"publish_time"` // Edit 经 json 序列化,time.Time 会变成 RFC3339MySQL datetime 不认,故用字符串
AdminName string `gorm:"column:admin_name" json:"admin_name"` PublishTime string `gorm:"column:publish_time" json:"publish_time"`
AdminId int `gorm:"column:admin_id" json:"admin_id"` AdminName string `gorm:"column:admin_name" json:"admin_name"`
AdminId int `gorm:"column:admin_id" json:"admin_id"`
} }
// ProductEditSusceptible 敏感字段(查询旧值 / 写入 verify 快照) // ProductEditSusceptible 敏感字段(查询旧值 / 写入 verify 快照)
@@ -165,9 +166,9 @@ type ProductEditSusceptible struct {
AdminId int `gorm:"column:admin_id" json:"admin_id"` AdminId int `gorm:"column:admin_id" json:"admin_id"`
} }
// ProductVerifyFirstEditStatus 敏感编辑提交后置为一审中 // ProductVerifyFirstEditStatus 敏感编辑提交后置为一审中Edit 走 json→map,必须带 json tag
type ProductVerifyFirstEditStatus struct { type ProductVerifyFirstEditStatus struct {
VerifyStatus uint8 `gorm:"column:verify_status"` VerifyStatus uint8 `gorm:"column:verify_status" json:"verify_status"`
} }
// ProductInfo 列表/详情查询投影 // ProductInfo 列表/详情查询投影
@@ -246,36 +247,36 @@ type ProductVerifyListRow struct {
BoxNumber float64 `gorm:"column:box_number"` BoxNumber float64 `gorm:"column:box_number"`
} }
// ProductVerifyFirstStatus 一审后回写产品审核状态 // ProductVerifyFirstStatus 一审后回写产品审核状态Edit 走 json→map,必须带 json tag
type ProductVerifyFirstStatus struct { type ProductVerifyFirstStatus struct {
VerifyStatus uint8 `gorm:"column:verify_status"` VerifyStatus uint8 `gorm:"column:verify_status" json:"verify_status"`
VerifyId int `gorm:"column:verify_id"` VerifyId int `gorm:"column:verify_id" json:"verify_id"`
VerifyName string `gorm:"column:verify_name"` VerifyName string `gorm:"column:verify_name" json:"verify_name"`
Reason string `gorm:"column:reason"` Reason string `gorm:"column:reason" json:"reason"`
} }
// ProductVerifySecondStatus 二审驳回回写 // ProductVerifySecondStatus 二审驳回回写Edit 走 json→map,必须带 json tag
type ProductVerifySecondStatus struct { type ProductVerifySecondStatus struct {
VerifyStatus uint8 `gorm:"column:verify_status"` VerifyStatus uint8 `gorm:"column:verify_status" json:"verify_status"`
VerifySecondId int `gorm:"column:verify_second_id"` VerifySecondId int `gorm:"column:verify_second_id" json:"verify_second_id"`
VerifySecondName string `gorm:"column:verify_second_name"` VerifySecondName string `gorm:"column:verify_second_name" json:"verify_second_name"`
Reason string `gorm:"column:reason"` Reason string `gorm:"column:reason" json:"reason"`
} }
// ProductVerifySecondOkStatus 二审通过:应用快照并回写审核人 // ProductVerifySecondOkStatus 二审通过:应用快照并回写审核人Edit 走 json→map,必须带 json tag
type ProductVerifySecondOkStatus struct { type ProductVerifySecondOkStatus struct {
ModelCode string `gorm:"column:model_code"` ModelCode string `gorm:"column:model_code" json:"model_code"`
Price float32 `gorm:"column:price"` Price float32 `gorm:"column:price" json:"price"`
StorePrice float32 `gorm:"column:store_price"` StorePrice float32 `gorm:"column:store_price" json:"store_price"`
SalePrice float32 `gorm:"column:sale_price"` SalePrice float32 `gorm:"column:sale_price" json:"sale_price"`
SharePrice float32 `gorm:"column:share_price"` SharePrice float32 `gorm:"column:share_price" json:"share_price"`
AgentPrice float32 `gorm:"column:agent_price"` AgentPrice float32 `gorm:"column:agent_price" json:"agent_price"`
SaleReward string `gorm:"column:sale_reward"` SaleReward string `gorm:"column:sale_reward" json:"sale_reward"`
Type uint8 `gorm:"column:type"` Type uint8 `gorm:"column:type" json:"type"`
NormsNumber uint8 `gorm:"column:norms_number"` NormsNumber uint8 `gorm:"column:norms_number" json:"norms_number"`
BoxNumber float64 `gorm:"column:box_number"` BoxNumber float64 `gorm:"column:box_number" json:"box_number"`
VerifyStatus uint8 `gorm:"column:verify_status"` VerifyStatus uint8 `gorm:"column:verify_status" json:"verify_status"`
VerifySecondId int `gorm:"column:verify_second_id"` VerifySecondId int `gorm:"column:verify_second_id" json:"verify_second_id"`
VerifySecondName string `gorm:"column:verify_second_name"` VerifySecondName string `gorm:"column:verify_second_name" json:"verify_second_name"`
Reason string `gorm:"column:reason"` Reason string `gorm:"column:reason" json:"reason"`
} }
+11 -12
View File
@@ -69,20 +69,19 @@ type VerifyStatusRow struct {
VerifyTime time.Time `gorm:"column:verify_time"` VerifyTime time.Time `gorm:"column:verify_time"`
} }
// VerifyFirstUpdate 一审回写审核表
type VerifyFirstUpdate struct { type VerifyFirstUpdate struct {
AdminId int `gorm:"column:admin_id"` AdminId int `gorm:"column:admin_id" json:"admin_id"`
AdminName string `gorm:"column:admin_name"` AdminName string `gorm:"column:admin_name" json:"admin_name"`
VerifyStatus uint8 `gorm:"column:verify_status"` VerifyStatus uint8 `gorm:"column:verify_status" json:"verify_status"`
VerifyReason string `gorm:"column:verify_reason"` VerifyReason string `gorm:"column:verify_reason" json:"verify_reason"`
VerifyTime time.Time `gorm:"column:verify_time"` // Edit 经 json 序列化,time.Time 会变成 RFC3339MySQL datetime 不认,故用字符串
VerifyTime string `gorm:"column:verify_time" json:"verify_time"`
} }
// VerifySecondUpdate 二审回写审核表
type VerifySecondUpdate struct { type VerifySecondUpdate struct {
AdminSecondId int `gorm:"column:admin_second_id"` AdminSecondId int `gorm:"column:admin_second_id" json:"admin_second_id"`
AdminSecondName string `gorm:"column:admin_second_name"` AdminSecondName string `gorm:"column:admin_second_name" json:"admin_second_name"`
VerifyStatus uint8 `gorm:"column:verify_status"` VerifyStatus uint8 `gorm:"column:verify_status" json:"verify_status"`
VerifyReason string `gorm:"column:verify_reason"` VerifyReason string `gorm:"column:verify_reason" json:"verify_reason"`
VerifyTime time.Time `gorm:"column:verify_time"` VerifyTime string `gorm:"column:verify_time" json:"verify_time"`
} }
+1 -1
View File
@@ -96,7 +96,7 @@ func (l *EditBaseLogic) EditBase(in *product.EditBaseReq) (*product.Response, er
IsIndex: uint8(req.IsIndex), IsIndex: uint8(req.IsIndex),
IndexImage: req.IndexImage, IndexImage: req.IndexImage,
Label: req.Label, Label: req.Label,
PublishTime: publishTime, PublishTime: publishTime.Format(time.DateTime),
AdminName: adminName, AdminName: adminName,
AdminId: adminId, AdminId: adminId,
IsBuy: uint8(req.IsBuy), IsBuy: uint8(req.IsBuy),
+1 -1
View File
@@ -99,7 +99,7 @@ func (l *VerifyStatusLogic) verifyStatus(expectStatus uint8, in *product.VerifyS
err = l.svcCtx.DB.WithContext(l.ctx).Transaction(func(tx *gorm.DB) error { err = l.svcCtx.DB.WithContext(l.ctx).Transaction(func(tx *gorm.DB) error {
vm := model.VerifyModel{}.Init().WithTX(tx) vm := model.VerifyModel{}.Init().WithTX(tx)
pm := model.ProductModel{}.Init().WithTX(tx) pm := model.ProductModel{}.Init().WithTX(tx)
now := time.Now() now := time.Now().Format(time.DateTime)
if expectStatus == dao.VerifyStatusChecking { if expectStatus == dao.VerifyStatusChecking {
if _, err := vm.Edit(w, &dao.VerifyFirstUpdate{ if _, err := vm.Edit(w, &dao.VerifyFirstUpdate{
+1 -1
View File
@@ -63,7 +63,7 @@ service Product {
body: "*" body: "*"
}; };
} }
// 编辑申请(解锁编辑权限) // 编辑申请
rpc EditApply(EditApplyReq) returns (Response) { rpc EditApply(EditApplyReq) returns (Response) {
option (google.api.http) = { option (google.api.http) = {
post: "/admin/v3/product/edit/apply" post: "/admin/v3/product/edit/apply"