animeic 2 tahun lalu
induk
melakukan
b4449681db
2 mengubah file dengan 28 tambahan dan 1 penghapusan
  1. 20 0
      3dshow-customer/api/order.go
  2. 8 1
      3dshow-customer/db/model/product.go

+ 20 - 0
3dshow-customer/api/order.go

@@ -162,13 +162,33 @@ func OrderCancelOrComplete(c *gin.Context, apictx *ApiSession) (interface{}, err
 		// 且都为未发货状态时 可以取消订单
 		// 取消流程
 		if _, ok := statusMap[-1]; ok && order.Status == -1 {
+			// 更新产品状态
+			for _, p := range order.Products {
+				repo.RepoDocArrayOneUpdate(apictx.CreateRepoCtx(), &repo.ArrayOneUpdateOption{
+					CollectName: repo.CollectionOrder,
+					Id:          order.Id.Hex(),
+					Query:       repo.Map{"products.id": p.Id},
+					Set:         repo.Map{"products.$.status": 3},
+				})
+
+			}
+
 			return repo.RepoUpdateSetDoc(apictx.CreateRepoCtx(), repo.CollectionOrder, _id, &model.Order{Status: 3, IsCancel: -1})
 		}
 
 		// 且都为已发货状态时 可以取消订单
 		// 完成流程
 		if _, ok := statusMap[1]; ok && order.Status == 1 {
+			// 更新产品状态
+			for _, p := range order.Products {
+				repo.RepoDocArrayOneUpdate(apictx.CreateRepoCtx(), &repo.ArrayOneUpdateOption{
+					CollectName: repo.CollectionOrder,
+					Id:          order.Id.Hex(),
+					Query:       repo.Map{"products.id": p.Id},
+					Set:         repo.Map{"products.$.status": 2},
+				})
 
+			}
 			return repo.RepoUpdateSetDoc(apictx.CreateRepoCtx(), repo.CollectionOrder, _id, &model.Order{Status: 2, IsCancel: -1})
 		}
 	}

+ 8 - 1
3dshow-customer/db/model/product.go

@@ -17,7 +17,8 @@ type Product struct {
 	Unit       string             `bson:"unit,omitempty" json:"unit"` // 型号
 	Price      float64            `bson:"price,omitempty" json:"price"`
 	Cover      string             `bson:"cover,omitempty" json:"cover"` // 封面图
-	Color      []string           `bson:"color,omitempty" json:"color"`
+	Color      []string           `bson:"color,omitempty" json:"color"` // todo old
+	Colors     []*ColorObj        `bson:"colors,omitempty" json:"colors"`
 	Size       []int              `bson:"size,omitempty" json:"size"`                 // 尺寸
 	Thumbnail  []string           `bson:"thumbnail,omitempty" json:"thumbnail"`       // 缩略图集合
 	Status     int                `bson:"status,omitempty" json:"status"`             // -1:下架 1:上架
@@ -25,3 +26,9 @@ type Product struct {
 	CreateTime time.Time          `bson:"createTime,omitempty" json:"createTime"`
 	UpdateTime time.Time          `bson:"updateTime,omitempty" json:"updateTime"`
 }
+
+type ColorObj struct {
+	ColorStr string `bson:"colorStr,omitempty" json:"colorStr"`
+	DevLink  string `bson:"devLink,omitempty" json:"devLink"`
+	ProdLink string `bson:"prodLink,omitempty" json:"prodLink"`
+}