Bläddra i källkod

更改订单类型 + 更新订单逻辑

abiao 5 år sedan
förälder
incheckning
287eb4f4e4

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

@@ -8,6 +8,7 @@ import (
 	"github.com/astaxie/beego"
 	"strconv"
 	"strings"
+	"time"
 )
 
 //加入购物车
@@ -33,6 +34,14 @@ func (self *OrderController) CreateCart() {
 			self.ReturnError(403, apps.OnlyNew, "", nil)
 		}
 	}
+	//秒杀商品不允许加入购物车
+	if product.SeckilShowPrice > 0 {
+		now := time.Now()
+		if now.Unix() >= product.SeckillStart.Unix() && now.Unix() <= product.SeckillEnd.Unix() {
+			self.ReturnError(403, apps.SeckillNotAllow, "", nil)
+		}
+	}
+
 	cart := new(order_model.Cart).Create(wxUId, uId, product.Id, count)
 	result := false
 	if cart != nil {

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

@@ -45,6 +45,7 @@ func (self *OrderController) Create() {
 	//if user.IsBlackUser == 1 {
 	//	self.ReturnError(403, apps.AccountError, "", nil)
 	//}
+	orderType := order_model.ORDER_TYPE_NORMAL
 	//秒杀逻辑: 判断是否处于秒杀时间段内
 	if product.SeckilShowPrice > 0 {
 		now := time.Now()
@@ -53,6 +54,7 @@ func (self *OrderController) Create() {
 		} else if now.Unix() > product.SeckillEnd.Unix() {
 			self.ReturnError(403, apps.SeckillIsEnd, "", nil)
 		}
+		orderType = order_model.ORDER_TYPE_SEKILL
 	}
 	totalPrice := product.Price * count
 	//小兔微信,测试微信支付
@@ -65,7 +67,7 @@ func (self *OrderController) Create() {
 	}
 
 	order := new(order_model.Order).CreateNew(wxUId, uId,
-		totalPrice, freight, order_model.SOURCE_XCX)
+		totalPrice, freight, orderType, order_model.SOURCE_XCX)
 	if order == nil {
 		self.ReturnError(403, apps.CreateOrderFail, "", nil)
 	}
@@ -115,7 +117,7 @@ func (self *OrderController) MultipleCreate() {
 	totalPrice := int64(0)
 	//创建订单
 	order := new(order_model.Order).CreateNew(wxUId, uId,
-		totalPrice, int64(0), order_model.SOURCE_XCX)
+		totalPrice, int64(0), order_model.ORDER_TYPE_NORMAL, order_model.SOURCE_XCX)
 	if order == nil {
 		self.ReturnError(403, apps.CreateOrderFail, "", nil)
 	}

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

@@ -300,7 +300,10 @@ func (self *PayController) wxPayExchangeAsync() {
 
 	//go notice()
 	wxUser := user_model.GetWxUserById(order.WxUserId, true)
-	go newSendInviterBenefit(wxUser, order.OrderId, user_model.SOURCE_PRODUCT_BENEFIT)
+	if order.OrderType == order_model.ORDER_TYPE_NORMAL {
+		go newSendInviterBenefit(wxUser, order.OrderId, user_model.SOURCE_PRODUCT_BENEFIT)
+	}
+
 	//发放赠品
 	productId := int64(0)
 	if beego.AppConfig.String("RunMode") == "dev" {

+ 1 - 10
go/gopath/src/fohow.com/apps/init.go

@@ -177,19 +177,10 @@ var (
 	//微信公众号登录
 	NetworkBusy = []string{"networkBusy", "对不起,网络繁忙,请稍后再试"}
 
-	//销售专题抽奖
-	OverOpenTime                    = []string{"overOpenTime", "开奖时间已经结束"}
-	ProductIdNotSuit                = []string{"productIdNotSuit", "商品与专题配置的商品不一样"}
-	UserSaleProductNotSupportRefund = []string{"productNotSupportRefund", "代销商品暂不支持退款, 请联系客服"}
-
-	//付费课程
-	CourseCodeNoExist    = []string{"courseCodeNoExist", "优惠码不存在"}
-	CourseCodeHasUsed    = []string{"courseCodeHasUsed", "优惠码已使用"}
-	CourseCodeHasExpired = []string{"courseCodeHasExpired", "优惠码已过期"}
-
 	//秒杀活动
 	SeckillNotStart = []string{"seckillNotStart", "秒杀活动尚未开始"}
 	SeckillIsEnd    = []string{"seckillIsEnd", "秒杀活动已经结束"}
+	SeckillNotAllow = []string{"seckillNotAllow", "秒杀商品不允许加入购物车"}
 
 	OnlyNew = []string{"onlyNew", "仅限新人购买"}
 )

+ 6 - 11
go/gopath/src/fohow.com/apps/models/order_model/order.go

@@ -40,11 +40,8 @@ const (
 	OPERATE_CANCEL  = "cancel"  //取消订单
 
 	//订单类型 0:普通订单, 1:代销订单, 2:自用订单
-	ORDER_TYPE_NORMAL = 0
-	ORDER_TYPE_SALE   = 1
-	ORDER_TYPE_SELF   = 2
-	ORDER_COW_BUY     = 3
-	ORDER_COW_CHANGE  = 4
+	ORDER_TYPE_NORMAL = int64(0)
+	ORDER_TYPE_SEKILL = int64(1)
 
 	FREIGHT_LIMIT   = int64(9900)
 	FREIGHT         = int64(500)
@@ -64,9 +61,7 @@ var STATUS_CN_TEXT = map[string]string{
 
 var ORDER_TYPE_CN_TEXT = map[int64]string{
 	ORDER_TYPE_NORMAL: "普通",
-	ORDER_TYPE_SALE:   "代销",
-	ORDER_COW_BUY:     "牛就对了(购买)",
-	ORDER_COW_CHANGE:  "牛就对了(兑奖)",
+	ORDER_TYPE_SEKILL: "秒杀",
 }
 
 type Order struct {
@@ -133,7 +128,7 @@ func (self *Order) Create(wxUserId, uId, count, totalPrice, buyPrice int64, sour
 }
 
 //新创建订单
-func (self *Order) CreateNew(wxUserId, uId, totalPrice, freight int64, source string) *Order {
+func (self *Order) CreateNew(wxUserId, uId, totalPrice, freight, orderType int64, source string) *Order {
 	var oId string
 	oId = createOrderId(ORDER_ID_PREFIX_EX)
 	order := &Order{
@@ -145,6 +140,7 @@ func (self *Order) CreateNew(wxUserId, uId, totalPrice, freight int64, source st
 		PayWay:     PAY_WAY_BALANCE,
 		Status:     STATUS_UNPAY,
 		Source:     source,
+		OrderType:  orderType,
 	}
 	id, err := orm.NewOrm().Insert(order)
 	if err != nil {
@@ -282,7 +278,7 @@ func GetUserSaleOrders() (orders []*Order) {
 		WHERE
 			order_type = %d And status in ("%s","%s");
 	`
-	sql = fmt.Sprintf(sql, ORDER_TYPE_SALE, STATUS_DISPATCH, STATUS_PROCESSING)
+	sql = fmt.Sprintf(sql, STATUS_DISPATCH, STATUS_PROCESSING)
 
 	if _, err := orm.NewOrm().Raw(sql).QueryRows(&orders); err != nil {
 		return nil
@@ -606,7 +602,6 @@ func GetTypeSaleFinishedOrders() (orders []*Order) {
 	order := new(Order)
 	qs := orm.NewOrm().QueryTable(order)
 	qs = qs.Filter("status__in", STATUS_COMPLETE, STATUS_REFUNDED)
-	qs = qs.Filter("order_type", ORDER_TYPE_SALE)
 
 	if _, err := qs.All(&orders); err != nil {
 		beego.BeeLogger.Debug("GetTypeSaleFinishedOrders err=[%s]", err)