Kaynağa Gözat

配置双十一促销

shen 4 yıl önce
ebeveyn
işleme
ae47757d4e

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

@@ -25,7 +25,7 @@ type PayUrl struct {
 func (self *PayController) Pay() {
 	oId := self.GetString("order_id")
 	payWay := self.GetString("pay_way")
-	tradPwd := self.GetString("trad_pwd")
+	//tradPwd := self.GetString("trad_pwd")
 	remark := self.GetString("remark")
 
 	source := self.GetString("s")
@@ -54,7 +54,7 @@ func (self *PayController) Pay() {
 		order := order_model.GetOrderById(oId, false)
 
 		if order != nil && order.OrderType != order_model.ORDER_TYPE_CENT {
-			self.payExchange(oId, payWay, tradPwd, returnUrl, source, remark, useCoupon)
+			self.payExchange(oId, payWay, returnUrl, source, remark, useCoupon)
 		} else {
 			self.payCentExchange(oId, returnUrl, source, remark)
 		}

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

@@ -32,17 +32,15 @@ var createDrawCode sync.Mutex
 var payOrder sync.Mutex
 
 //支付订单
-func (self *PayController) payExchange(oId, payWay, tradPwd, returnUrl, source, remark string, useCoupon bool) {
+func (self *PayController) payExchange(oId, payWay, returnUrl, source, remark string, useCoupon bool) {
 	payOrder.Lock()
 	defer payOrder.Unlock()
-	var payUrl string
+	var payUrl, tel, addr, concat, specialstr string
 	var payData map[string]string
+	var specialPromotion bool
 	wxUId := self.GetCurrentWxUserId()
 	uId := self.GetCurrentUserId()
-
-	var concat string
-	var tel string
-	var addr string
+	specialPromotion, specialstr = sys_config.GetSpetialPromotion()
 	pick_dept_id, _ := self.GetInt64("pick_dept")
 	pick_way, _ := self.GetInt64("pick_way")
 	//地址
@@ -137,7 +135,7 @@ func (self *PayController) payExchange(oId, payWay, tradPwd, returnUrl, source,
 			}
 		}
 		//微信支付金额统计
-		if product.Pv >= product.Price {
+		if product.Pv >= product.Price || specialPromotion {
 			total_quan += product.Price * item.Count
 		}
 		total_price += product.Price * item.Count
@@ -159,6 +157,9 @@ func (self *PayController) payExchange(oId, payWay, tradPwd, returnUrl, source,
 	order.TotalPrice = total_price
 	order.PickDept = pick_dept_id
 	order.PickWay = pick_way
+	if specialPromotion {
+		order.Promotions = specialstr
+	}
 	//第一次支付已更新支付方式,第一次支付才计算支付金额
 	if len(order.PayWay) <= 0 {
 		order.PayWay = payWay

+ 9 - 1
go/gopath/src/fohow.com/apps/models/order_model/order.go

@@ -4,6 +4,8 @@ import (
 	"crypto/md5"
 	"encoding/hex"
 	"fmt"
+	"fohow.com/apps/helper"
+	"fohow.com/apps/models/sys_config"
 	"strconv"
 	"strings"
 	"time"
@@ -122,9 +124,10 @@ type Order struct {
 	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
+	Promotions     string             `orm:"column(promotions);null"                           json:"-"`   // varchar(255)
+	SpecialPro     bool               `orm:"-"                                 json:"special_promotion"`   // int(11)
 	WxUser         *user_model.WxUser `orm:"-"                                 json:"wx_user"`
 	ProductList    []*OrderDetail     `orm:"-"                                 json:"product_list"` // varchar(255)
-
 }
 
 func (self *Order) TableName() string {
@@ -198,6 +201,11 @@ func GetOrderById(oId string, useCache bool) (order *Order) {
 		item.CTime = item.CreatedAt.Unix()
 		item.DTime = item.DispatchTime.Unix()
 	}
+	item.SpecialPro = false
+	pro := helper.NewStr(item.Promotions).Strrpos(sys_config.SPECIAL_PROMOTION, 0)
+	if pro >= 0 {
+		item.SpecialPro = true
+	}
 	cache.Cache.Put(k, item, 5*time.Minute)
 	return item
 

+ 21 - 1
go/gopath/src/fohow.com/apps/models/sys_config/sys_config.go

@@ -2,6 +2,7 @@ package sys_config
 
 import (
 	"fmt"
+	"fohow.com/apps/helper"
 	"fohow.com/cache"
 	"github.com/astaxie/beego"
 	"github.com/astaxie/beego/orm"
@@ -21,6 +22,7 @@ const (
 	CODE_AGENT_SHOP_APPLY = "AGENT_SHOP_APPLY"
 	CODE_AGENT_APPLY_RET  = "AGENT_APPLY_RET"
 	CODE_AGENT_APPLY_QUAN = "AGENT_APPLY_QUAN"
+	SPECIAL_PROMOTION     = "SPECIAL_PROMOTION"
 	CODE_FOHOW_OUBIAO     = "oubiao"
 	CODE_FOHOW            = "fohow"
 	sys_configs_tablename = "sys_configs"
@@ -209,7 +211,6 @@ func GetAgentAward() int64 {
 	SysConfig := &SysConfig{}
 	if err := orm.NewOrm().QueryTable(SysConfig).Filter("code", CODE_AGENT_APPLY_RET).Limit(1).One(SysConfig); err != nil {
 		beego.BeeLogger.Error("get SysConfig by  err=%s", err)
-		SysConfig = nil
 		return int64(0)
 	}
 	value, err := strconv.ParseInt(SysConfig.CodeValue, 10, 64)
@@ -241,3 +242,22 @@ func GetPayConfigByDepart(depart int64, useCache bool) string {
 	}
 	return item.PayCode
 }
+
+//获取特殊促销时间段配置
+func GetSpetialPromotion() (bool, string) {
+	sysConfig := SysConfig{}
+	if err := orm.NewOrm().QueryTable(&sysConfig).Filter("code", SPECIAL_PROMOTION).Limit(1).One(&sysConfig); err != nil {
+		beego.BeeLogger.Error("get sysConfig by  err=%s", err)
+		return false, ""
+	}
+	promotionArr := helper.NewStr(sysConfig.CodeValue).Explode("_")
+	if len(promotionArr) > 2 {
+		beginTime := helper.NewStr(promotionArr[0]).ToInt64()
+		endTime := helper.NewStr(promotionArr[1]).ToInt64()
+		nowTime := time.Now().Unix()
+		if nowTime >= beginTime && nowTime <= endTime {
+			return true, sysConfig.CodeValue
+		}
+	}
+	return false, ""
+}