Kaynağa Gözat

商品增加仅发货区域

abiao 4 yıl önce
ebeveyn
işleme
2dfa7e4456

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

@@ -2,10 +2,10 @@ package pay_controller
 
 import (
 	"fmt"
+	"fohow.com/apps/helper"
 	"fohow.com/apps/models/cent_model"
 	"fohow.com/apps/models/sys_config"
 	"fohow.com/libs/lib_redis"
-
 	// "net/url"
 	// "strings"
 	"time"
@@ -35,7 +35,7 @@ var payOrder sync.Mutex
 func (self *PayController) payExchange(oId, payWay, returnUrl, source, remark string, useCoupon bool) {
 	payOrder.Lock()
 	defer payOrder.Unlock()
-	var payUrl, tel, addr, concat string
+	var payUrl, tel, addr, concat, allowAddr string
 	var payData map[string]string
 	var specialPromotion bool
 	wxUId := self.GetCurrentWxUserId()
@@ -55,7 +55,7 @@ func (self *PayController) payExchange(oId, payWay, returnUrl, source, remark st
 		concat = address.Contact
 		tel = address.Tel
 		addr = fmt.Sprintf("%s%s%s%s", address.Province, address.City, address.District, address.Address)
-
+		allowAddr = fmt.Sprintf("%s%s", address.Province, address.City)
 	} else {
 		//物流方式
 		pick_addr_id, _ := self.GetInt64("pick_addr_id")
@@ -67,6 +67,8 @@ func (self *PayController) payExchange(oId, payWay, returnUrl, source, remark st
 		concat = pick_address.Contact
 		tel = pick_address.Tel
 		addr = pick_dept.PickAddress
+		allow_arr := strings.Split(addr, "市")
+		allowAddr = fmt.Sprintf("%s市", allow_arr[0])
 	}
 	if source != order_model.SOURCE_XCX && source != order_model.SOURCE_APP {
 		self.ReturnError(403, apps.ParamsError, "", nil)
@@ -86,7 +88,7 @@ func (self *PayController) payExchange(oId, payWay, returnUrl, source, remark st
 	}
 	SaleNumsMap := make(map[int64]int64)
 	storeMap := make(map[int64]int64)
-	specialPromotion=order.SpecialPro
+	specialPromotion = order.SpecialPro
 	//支付方式判断
 	if order.OrderType == order_model.ORDER_TYPE_SHOP && payWay == pay_model.PAYWAY_BALANCE {
 		self.ReturnError(403, apps.NotRightPayWay, "", nil)
@@ -133,6 +135,13 @@ func (self *PayController) payExchange(oId, payWay, returnUrl, source, remark st
 				}
 			}
 		}
+		//仅发货地区判断
+		if len(product.OnlyDeliveryArea) > 0 {
+			if helper.NewStr(product.OnlyDeliveryArea).Strpos(allowAddr, 0) < 0 {
+				self.ReturnError(403, []string{apps.OnlyDeliveryArea[0], fmt.Sprintf("%s产品不在限售区域内", product.Name)}, "", nil)
+			}
+		}
+
 		//微信支付金额统计
 		if product.Pv >= product.Price || specialPromotion {
 			total_quan += product.Price * item.Count

+ 4 - 5
go/gopath/src/fohow.com/apps/init.go

@@ -105,11 +105,10 @@ var (
 	ProductOffSale        = []string{"productOffSale", "产品已经下架"}
 	OverLimitCount        = []string{"overLimitCount", "超过限购数量"}
 	SingleOverLimitCount  = []string{"singleOverLimitCount", "超过限购数量"}
-
-	PurchasedReachLimit = []string{"purchasedReachLimit", "已购买总数已达到限购数量"}
-
-	RedirectTo = []string{"redirectTo", "302跳转"}
-	ReduceFail = []string{"reduceFail", "帮砍失败"}
+	PurchasedReachLimit   = []string{"purchasedReachLimit", "已购买总数已达到限购数量"}
+	OnlyDeliveryArea      = []string{"onlyDeliveryArea", "产品不在限售区域内"}
+	RedirectTo            = []string{"redirectTo", "302跳转"}
+	ReduceFail            = []string{"reduceFail", "帮砍失败"}
 
 	UserNotExist = []string{"userNotExist", "用户不存在"}
 

+ 3 - 2
go/gopath/src/fohow.com/apps/models/product_model/product.go

@@ -95,8 +95,9 @@ type Product struct {
 	IsOnlyNew  bool  `orm:"column(is_only_new)"                                        json:"is_only_new"`
 	OrderCount int64 `orm:"-"                                   json:"order_count"` // int(11)
 
-	Specification  string `orm:"column(specification)"                          json:"specification"`    // varchar(255)
-	NoDeliveryArea string `orm:"column(no_delivery_area)"                       json:"no_delivery_area"` // varchar(255)
+	Specification    string `orm:"column(specification)"                          json:"specification"`      // varchar(255)
+	NoDeliveryArea   string `orm:"column(no_delivery_area)"                       json:"no_delivery_area"`   // varchar(255)
+	OnlyDeliveryArea string `orm:"column(only_delivery_area)"                     json:"only_delivery_area"` // varchar(255)
 
 	//视频资料
 	VideoState bool   `orm:"column(video_state)"                                        json:"video_state"`