Quellcode durchsuchen

Merge branch 'master' of http://git.hiwavo.com/Fohow/fohow_api

abiao vor 4 Jahren
Ursprung
Commit
9deea86428

+ 23 - 0
go/gopath/src/fohow.com/apps/controllers/promotion_controller/init.go

@@ -0,0 +1,23 @@
+package promotion_controller
+
+import (
+	"github.com/astaxie/beego/context"
+
+	"fohow.com/apps"
+)
+
+var (
+	//以下Action无需登录校验,exceptCheckUserLoginAction = []string{"*"} *代表全部不需要
+	exceptCheckUserLoginAction   = []string{""}
+	exceptCheckWxUserLoginAction = []string{""}
+)
+
+type PromotionController struct {
+	apps.BaseController
+}
+
+func (self *PromotionController) Init(ctx *context.Context, controllerName, actionName string, app interface{}) {
+	self.BaseController.Init(ctx, controllerName, actionName, app)
+	self.ExceptCheckUserLoginAction = exceptCheckUserLoginAction
+	self.ExceptCheckWxUserLoginAction = exceptCheckWxUserLoginAction
+}

+ 36 - 0
go/gopath/src/fohow.com/apps/controllers/promotion_controller/promotion_controller.go

@@ -0,0 +1,36 @@
+package promotion_controller
+
+import (
+	"fohow.com/apps/models/product_model"
+	"fohow.com/apps/models/promotion_model"
+)
+
+//赠券列表
+func (self *PromotionController) GetList() {
+
+	//page, _ := self.GetInt64("page", 1)
+	perPage, _ := self.GetInt64("per_page", 20)
+	if perPage <= 0 || perPage > 100 {
+		perPage = 20
+	}
+	type Result struct {
+		Presents []*promotion_model.Present `json:"present"`
+		Count    int64                      `json:"count"`
+	}
+	wxUId := self.GetCurrentWxUserId()
+
+	promotionList := promotion_model.GetAllNoPatchPresents(wxUId)
+	for _, v := range promotionList {
+		v.SourceName = promotion_model.SOURCE_CN[v.Source]
+		product := product_model.GetProductById(v.SendProd, false)
+		if product != nil {
+			v.ProductName = product.Name
+		}
+	}
+
+	list := new(Result)
+	list.Presents = promotionList
+	list.Count = int64(len(promotionList))
+	self.Data["json"] = list
+	self.ServeJSON()
+}

+ 42 - 0
go/gopath/src/fohow.com/apps/controllers/railsadmin_controller/order_award_controller.go

@@ -0,0 +1,42 @@
+package railsadmin_controller
+
+import (
+	"fohow.com/apps"
+	"fohow.com/apps/helpers"
+	"fohow.com/apps/models/order_model"
+	"fohow.com/apps/models/user_model"
+	"github.com/astaxie/beego"
+	"strconv"
+	"sync"
+)
+
+var orderAwardLock sync.Mutex
+
+//订单发货
+func (self *RailsadminController) OrderAward() {
+
+	_id := self.Ctx.Input.Param(":id")
+	id, _ := strconv.ParseInt(_id, 10, 64)
+
+	beego.BeeLogger.Warn("OrderAward id:(%d)", id)
+
+	defer orderAwardLock.Unlock()
+	orderAwardLock.Lock()
+	o := order_model.GetOrderByIntId(id)
+	if o == nil {
+		self.ReturnError(404, apps.OrderNotExist, "", nil)
+	}
+	//只能处理待发货订单
+	if o.Status != order_model.STATUS_PROCESSING && !o.HasCommission {
+		self.ReturnError(403, apps.OrderStatusNotSuit, "", nil)
+	}
+
+	o.HasCommission = true
+	if !o.Save() {
+		beego.BeeLogger.Error("user[%d]", id)
+	}
+	wxUser := user_model.GetWxUserById(o.WxUserId, true)
+	go helpers.NewSendInviterBenefit(wxUser, o.OrderId, user_model.SOURCE_PRODUCT_BENEFIT)
+
+	self.ServeJSON()
+}

+ 4 - 2
go/gopath/src/fohow.com/apps/models/order_model/order.go

@@ -116,10 +116,12 @@ type Order struct {
 	DispatchTime   time.Time          `orm:"column(dispatch_time);null;type(datetime)"           json:"dispatch_time"`
 	ReceiveTime    time.Time          `orm:"column(receive_time);null;type(datetime)"            json:"receive_time"`
 	PaiedTime      time.Time          `orm:"column(paied_time);null;type(datetime)"              json:"paied_time"` // int(11)
-	CreatedAt      time.Time          `orm:"column(created_at);null;auto_now_add;type(datetime)" json:"-"`          // datetime
-	UpdatedAt      time.Time          `orm:"column(updated_at);null;auto_now;type(datetime)"     json:"-"`          // datetime
+	HasCommission  bool               `orm:"has_commission"                                      json:"-"`
+	CreatedAt      time.Time          `orm:"column(created_at);null;auto_now_add;type(datetime)" json:"-"` // datetime
+	UpdatedAt      time.Time          `orm:"column(updated_at);null;auto_now;type(datetime)"     json:"-"` // datetime
 	WxUser         *user_model.WxUser `orm:"-"                                 json:"wx_user"`
 	ProductList    []*OrderDetail     `orm:"-"                                 json:"product_list"` // varchar(255)
+
 }
 
 func (self *Order) TableName() string {

+ 21 - 12
go/gopath/src/fohow.com/apps/models/promotion_model/present.go

@@ -11,22 +11,31 @@ import (
 const (
 	SOURCE_BALANCE     = "balance"
 	SOURCE_SHOP        = "shop"
+	SOURCE_OTHERS      = "others"
 	presents_tablename = "presents"
 )
 
+var SOURCE_CN = map[string]string{
+	SOURCE_SHOP:    "店长促销发放",
+	SOURCE_BALANCE: "充值促销发放",
+	SOURCE_OTHERS:  "手工添加",
+}
+
 type Present struct {
-	Id        int64     `orm:"column(id);pk"                                       json:"id"`             // int(11)
-	WxUId     int64     `orm:"column(wx_user_id)"                                  json:"wx_user_id"`     // int(11)
-	Price     int64     `orm:"column(price)"                                        json:"price"`         // int(11)
-	Total     int64     `orm:"column(total)"                                        json:"total"`         // int(11)
-	SendProd  int64     `orm:"column(send_prod1)"                                  json:"send_prod1"`     // int(11)
-	SendNums  int64     `orm:"column(send_nums1)"                                  json:"send_nums1"`     // int(11)
-	OrderId   string    `orm:"column(order_id);null"                                     json:"order_id"` // varchar(32)
-	Source    string    `orm:"column(source);null"                                     json:"source"`     // varchar(32)
-	Remark    string    `orm:"column(remark);null"                                     json:"remark"`     // varchar(32)
-	Status    bool      `orm:"column(status)"                         json:"-"`                           // int(11)
-	CreatedAt time.Time `orm:"column(created_at);null;auto_now_add;type(datetime)" json:"created_at"`     // datetime
-	UpdatedAt time.Time `orm:"column(updated_at);null;auto_now;type(datetime)"     json:"updated_at"`     // datetime
+	Id          int64     `orm:"column(id);pk"                                       json:"id"`             // int(11)
+	WxUId       int64     `orm:"column(wx_user_id)"                                  json:"wx_user_id"`     // int(11)
+	Price       int64     `orm:"column(price)"                                        json:"price"`         // int(11)
+	Total       int64     `orm:"column(total)"                                        json:"total"`         // int(11)
+	SendProd    int64     `orm:"column(send_prod1)"                                  json:"send_prod1"`     // int(11)
+	SendNums    int64     `orm:"column(send_nums1)"                                  json:"send_nums1"`     // int(11)
+	OrderId     string    `orm:"column(order_id);null"                                     json:"order_id"` // varchar(32)
+	Source      string    `orm:"column(source);null"                                     json:"source"`     // varchar(32)
+	Remark      string    `orm:"column(remark);null"                                     json:"remark"`     // varchar(32)
+	Status      bool      `orm:"column(status)"                         json:"-"`                           // int(11)
+	SourceName  string    `orm:"-"                                                   json:"source_name"`    // varchar(255)
+	ProductName string    `orm:"-"                                                   json:"product_name"`   // varchar(255)
+	CreatedAt   time.Time `orm:"column(created_at);null;auto_now_add;type(datetime)" json:"created_at"`     // datetime
+	UpdatedAt   time.Time `orm:"column(updated_at);null;auto_now;type(datetime)"     json:"updated_at"`     // datetime
 }
 
 func (self *Present) TableName() string {

+ 5 - 0
go/gopath/src/fohow.com/routers/routes.go

@@ -3,6 +3,7 @@ package routers
 import (
 	"fohow.com/apps/controllers/cent_controller"
 	"fohow.com/apps/controllers/live_controller"
+	"fohow.com/apps/controllers/promotion_controller"
 	"fohow.com/apps/controllers/sys_controller"
 	"fohow.com/apps/controllers/test_controller"
 	// "fohow.com/apps"
@@ -238,6 +239,7 @@ func init() {
 	beego.Router("/railsadmin/live/award/:id([0-9]+)", &railsadmin_controller.RailsadminController{}, "get:LiveAward")
 	beego.Router("/railsadmin/recharge/award/:id([0-9]+)", &railsadmin_controller.RailsadminController{}, "get:PatchCashAward")
 	beego.Router("/railsadmin/balance_order/confirm/:id([0-9]+)", &railsadmin_controller.RailsadminController{}, "get:ConfirmBalanceOrder")
+	beego.Router("/railsadmin/order/award/:id([0-9]+)", &railsadmin_controller.RailsadminController{}, "get:OrderAward")
 
 	//设置群主
 	beego.Router("/railsadmin/update/intro/:id([0-9]+)", &railsadmin_controller.RailsadminController{}, "get:UpdateIntroUser")
@@ -280,6 +282,9 @@ func init() {
 	//-----导航图标
 	beego.Router("/v1/navigate/icons", &category_controller.CategoryController{}, "get:GetNavigateIcons")
 
+	//促销列表
+	beego.Router("/v1/promotion/list", &promotion_controller.PromotionController{}, "get:GetList")
+
 	//获取物流信息对照表
 	beego.Router("/v1/experess_company/query", &tool_controller.ToolController{}, "get:GetExpressCompany")
 	beego.Router("/v1/experess_info/query", &tool_controller.ToolController{}, "post:GetExpressInfo")