Просмотр исходного кода

product package item develop---order base dt add send

abiao лет назад: 4
Родитель
Сommit
8e9e8717aa

+ 3 - 0
go/gopath/src/fohow.com/apps/controllers/order_controller/order_controller.go

@@ -522,6 +522,9 @@ func (self *OrderController) List() {
 			if orderItem.Commend || item.Status != order_model.STATUS_COMPLETE {
 			if orderItem.Commend || item.Status != order_model.STATUS_COMPLETE {
 				orderItem.Commend = true
 				orderItem.Commend = true
 			}
 			}
+			if product.Package {
+				orderItem.PacakageList = order_model.GetOrderDetailPackages(product.Id, true)
+			}
 			orderItem.Cover = product.Cover
 			orderItem.Cover = product.Cover
 			item.ProductList = append(item.ProductList, orderItem)
 			item.ProductList = append(item.ProductList, orderItem)
 		}
 		}

+ 18 - 17
go/gopath/src/fohow.com/apps/models/order_model/order_detail.go

@@ -22,23 +22,24 @@ const (
 )
 )
 
 
 type OrderDetail struct {
 type OrderDetail struct {
-	Id                   int64     `orm:"column(id);pk"                                       json:"id"`         // int(11)
-	ProductId            int64     `orm:"column(product_id)"                                  json:"product_id"` // int(11)
-	OrderId              int64     `orm:"column(order_id)"                            json:"-"`                  // int(11)
-	Send                 bool      `orm:"column(is_zeng)"                                json:"send"`
-	OrderNo              string    `orm:"column(order_no)"                            json:"order_id"`             // varchar(64)
-	Price                int64     `orm:"column(price)"                                       json:"price"`        // int(11)
-	CreatedAt            time.Time `orm:"column(created_at);null;auto_now_add;type(datetime)" json:"-"`            // datetime
-	Count                int64     `orm:"column(nums)"                                       json:"count"`         // int(11)
-	ProductName          string    `orm:"column(product_name)"                                json:"product_name"` // varchar(255)
-	SizeName             string    `orm:"column(size_name)"                                json:"size_name"`       // varchar(255)
-	ColorName            string    `orm:"column(color_name)"                                json:"color_name"`     // varchar(255)
-	Cover                string    `orm:"-"     json:"cover"`                                                      // decimal(10,2)
-	OriginalPrice        float64   `orm:"-"     json:"original_price"`                                             // decimal(10,2)
-	Commend              bool      `orm:"column(commend)"                                json:"commend"`
-	UnitRoboBalancePrice int64     `orm:"column(unit_robo_balance_price)"                     json:"unit_robo_balance_price"`
-	Attrs                string    `orm:"-"     json:"attrs"`      // decimal(10,2)
-	Depart               int64     `orm:"column(depart)" json:"-"` // datetime
+	Id                   int64          `orm:"column(id);pk"                                       json:"id"`         // int(11)
+	ProductId            int64          `orm:"column(product_id)"                                  json:"product_id"` // int(11)
+	OrderId              int64          `orm:"column(order_id)"                            json:"-"`                  // int(11)
+	Send                 bool           `orm:"column(is_zeng)"                                json:"send"`
+	OrderNo              string         `orm:"column(order_no)"                            json:"order_id"`             // varchar(64)
+	Price                int64          `orm:"column(price)"                                       json:"price"`        // int(11)
+	CreatedAt            time.Time      `orm:"column(created_at);null;auto_now_add;type(datetime)" json:"-"`            // datetime
+	Count                int64          `orm:"column(nums)"                                       json:"count"`         // int(11)
+	ProductName          string         `orm:"column(product_name)"                                json:"product_name"` // varchar(255)
+	SizeName             string         `orm:"column(size_name)"                                json:"size_name"`       // varchar(255)
+	ColorName            string         `orm:"column(color_name)"                                json:"color_name"`     // varchar(255)
+	Cover                string         `orm:"-"     json:"cover"`                                                      // decimal(10,2)
+	OriginalPrice        float64        `orm:"-"     json:"original_price"`                                             // decimal(10,2)
+	Commend              bool           `orm:"column(commend)"                                json:"commend"`
+	UnitRoboBalancePrice int64          `orm:"column(unit_robo_balance_price)"                     json:"unit_robo_balance_price"`
+	Attrs                string         `orm:"-"     json:"attrs"`                                   // decimal(10,2)
+	Depart               int64          `orm:"column(depart)" json:"-"`                              // datetime
+	PacakageList         []*ProductItem `orm:"-"                                 json:"pakage_list"` // varchar(255)
 }
 }
 
 
 func (self *OrderDetail) TableName() string {
 func (self *OrderDetail) TableName() string {

+ 24 - 0
go/gopath/src/fohow.com/apps/models/order_model/order_dt_item.go

@@ -1,7 +1,9 @@
 package order_model
 package order_model
 
 
 import (
 import (
+	"fmt"
 	"fohow.com/apps/models/product_model"
 	"fohow.com/apps/models/product_model"
+	"fohow.com/cache"
 	"github.com/astaxie/beego"
 	"github.com/astaxie/beego"
 	"github.com/astaxie/beego/orm"
 	"github.com/astaxie/beego/orm"
 	"time"
 	"time"
@@ -71,3 +73,25 @@ func GenerateOrderDtItem(detail_item *OrderDetail) error {
 	beego.BeeLogger.Warn("orderdtbase  GenerateOrderDtItem ")
 	beego.BeeLogger.Warn("orderdtbase  GenerateOrderDtItem ")
 	return nil
 	return nil
 }
 }
+
+//生成订单明细套装
+func GetOrderDetailPackages(productId int64, useCache bool) (list []*ProductItem) {
+	k := fmt.Sprintf("order_model.GetOrderDetailPackages(%d)", productId)
+	if useCache {
+		if ret, ok := cache.Cache.Get(k).([]*ProductItem); ok {
+			return ret
+		}
+	}
+	sql := `
+		select item_id,item_title,nums from
+		product_items
+		where product_id = ? ;
+		`
+	_, err := orm.NewOrm().Raw(sql, productId).QueryRows(&list)
+	if err != nil {
+		beego.BeeLogger.Warn("order_model.GetOrderDetailPackages(%d) err=%s", productId, err)
+		return nil
+	}
+	cache.Cache.Put(k, list, 10*time.Minute)
+	return list
+}