abiao лет назад: 5
Родитель
Сommit
3d4c38d075

+ 1 - 1
go/gopath/src/fohow.com/apps/controllers/cron_controller/order_receive_automatically.go

@@ -74,7 +74,7 @@ func OrderCancelAutomatically() {
 	for _, orderId := range list {
 		beego.BeeLogger.Info("orderId=%s", orderId)
 
-		order := order_model.GetOrderById(orderId)
+		order := order_model.GetOrderById(orderId, false)
 		if order == nil {
 			lib_redis.ThrowOutRedisList(key, orderId)
 			continue

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

@@ -107,7 +107,7 @@ func (self *OrderController) Create() {
 func (self *OrderController) GetExpressNo() {
 
 	oId := self.Ctx.Input.Param(":order_id")
-	o := order_model.GetOrderById(oId)
+	o := order_model.GetOrderById(oId, true)
 
 	type Ret struct {
 		ExpressNo      string `json:"express_no"`
@@ -284,7 +284,7 @@ func (self *OrderController) Detail() {
 
 	cache, _ := self.GetBool("cache", false)
 	oId := self.Ctx.Input.Param(":order_id")
-	o := order_model.GetOrderById(oId)
+	o := order_model.GetOrderById(oId, true)
 	if o == nil {
 		beego.BeeLogger.Error("order not exist id=[%s]", oId)
 		self.ReturnError(404, apps.OrderNotExist, "", nil)
@@ -403,7 +403,7 @@ func (self *OrderController) List() {
 //用户更改订单状态
 func (self *OrderController) Operate() {
 	oId := self.Ctx.Input.Param(":order_id")
-	o := order_model.GetOrderById(oId)
+	o := order_model.GetOrderById(oId, true)
 	if o == nil {
 		self.ReturnError(404, apps.OrderNotExist, "", nil)
 	}

+ 3 - 3
go/gopath/src/fohow.com/apps/controllers/pay_controller/after_pay_controller.go

@@ -184,7 +184,7 @@ func newSendInviterBenefit(wxUser *user_model.WxUser, orderId, source string) {
 	beego.BeeLogger.Warn("benefitWxUser: %s", benefitWxUser)
 	beego.BeeLogger.Warn("newSendInviterBenefit:%v,%v,%s", wxUser, benefitWxUser, orderId)
 	if source == user_model.SOURCE_PRODUCT_BENEFIT {
-		productOrder := order_model.GetOrderById(orderId)
+		productOrder := order_model.GetOrderById(orderId, true)
 		if productOrder == nil {
 			return
 		}
@@ -267,7 +267,7 @@ func shopSendInviterBenefit(wxUser *user_model.WxUser, orderId, source string) {
 	beego.BeeLogger.Warn("shop_benefitWxUser: %s", benefitWxUser)
 	beego.BeeLogger.Warn("shop_newSendInviterBenefit:%v,%v,%s", wxUser, benefitWxUser, orderId)
 	if source == user_model.SOURCE_PRODUCT_BENEFIT {
-		productOrder := order_model.GetOrderById(orderId)
+		productOrder := order_model.GetOrderById(orderId, false)
 		if productOrder == nil || productOrder.OrderType != order_model.ORDER_TYPE_SHOP {
 			return
 		}
@@ -316,7 +316,7 @@ func (self *PayController) wxPayExchangeAsync() {
 	}
 
 	orderId := strings.Split(params.OutTradeNO, "_")[0]
-	order := order_model.GetOrderById(orderId)
+	order := order_model.GetOrderById(orderId, false)
 	totalFee, _ := strconv.ParseInt(params.TotalFee, 10, 64)
 	settlementTotalFee, _ := strconv.ParseInt(params.SettlementTotalFee, 10, 64)
 	beego.BeeLogger.Warn("after_pay_controller.wxPayExchangeAsync.settlementTotalFee(%d)", settlementTotalFee)

+ 1 - 1
go/gopath/src/fohow.com/apps/controllers/pay_controller/pay_exchange_controller.go

@@ -53,7 +53,7 @@ func (self *PayController) payExchange(oId, payWay, tradPwd, returnUrl, source s
 		self.ReturnError(403, apps.UserNeedLogin, "", nil)
 	}
 	//订单状态
-	order := order_model.GetOrderById(oId)
+	order := order_model.GetOrderById(oId, false)
 	if order == nil || order.WxUserId != wxUId {
 		self.ReturnError(404, apps.OrderNotExist, "", nil)
 	}

+ 1 - 1
go/gopath/src/fohow.com/apps/controllers/test_controller/test_controller.go

@@ -28,7 +28,7 @@ func (self *TestController) TestOrderListen() {
 		}
 	}
 	for {
-		order := order_model.GetOrderById(orderId)
+		order := order_model.GetOrderById(orderId, false)
 		go func(v string) {
 			if v == order_model.STATUS_PROCESSING || v == order_model.STATUS_DISPATCH {
 				fmt.Println(v)

+ 1 - 1
go/gopath/src/fohow.com/apps/helpers/promotion_helper.go

@@ -14,7 +14,7 @@ func SetOrderPromotion(orderId string, wxUid int64) {
 	totalFlag := true
 	firstOrder := false
 	//获取订单明细
-	order := order_model.GetOrderById(orderId)
+	order := order_model.GetOrderById(orderId, false)
 	if order == nil {
 		return
 	}

+ 14 - 7
go/gopath/src/fohow.com/apps/models/order_model/order.go

@@ -160,19 +160,26 @@ func (self *Order) CreateNew(wxUserId, uId, totalPrice, freight, orderType int64
 }
 
 // 根据OrderId获取订单记录
-func GetOrderById(oId string) (order *Order) {
-	order = &Order{}
-	if err := orm.NewOrm().QueryTable(order).Filter("order_id", oId).Limit(1).
-		One(order); err != nil {
-		beego.BeeLogger.Error("get order by id=%s err=%s", oId, err)
-		order = nil
+func GetOrderById(oId string, useCache bool) (order *Order) {
+	k := fmt.Sprintf("order_model.GetOrderByOId[%s]", oId)
+	if useCache {
+		if v, ok := cache.Cache.Get(k).(*Order); ok {
+			return v
+		}
+	}
+	item := new(Order)
+	o := orm.NewOrm()
+	if err := o.QueryTable(item).Filter("order_id", oId).One(item); err != nil {
+		return nil
 	}
 	if order != nil && len(order.ExpressOrderNo) > 0 {
 		order.Sign = GenExpressPassword(order.ExpressOrderNo)
 		order.CTime = order.CreatedAt.Unix()
 		order.DTime = order.DispatchTime.Unix()
 	}
-	return order
+	cache.Cache.Put(k, item, 5*time.Minute)
+	return item
+
 }
 
 // 根据Id获取订单记录