|
@@ -35,7 +35,7 @@ var payOrder sync.Mutex
|
|
|
func (self *PayController) payExchange(oId, payWay, returnUrl, source, remark string, useCoupon bool) {
|
|
func (self *PayController) payExchange(oId, payWay, returnUrl, source, remark string, useCoupon bool) {
|
|
|
payOrder.Lock()
|
|
payOrder.Lock()
|
|
|
defer payOrder.Unlock()
|
|
defer payOrder.Unlock()
|
|
|
- var payUrl, tel, addr, concat, allowAddr string
|
|
|
|
|
|
|
+ var payUrl, tel, addr, concat, allowAddr, allowPro string
|
|
|
var payData map[string]string
|
|
var payData map[string]string
|
|
|
var specialPromotion bool
|
|
var specialPromotion bool
|
|
|
wxUId := self.GetCurrentWxUserId()
|
|
wxUId := self.GetCurrentWxUserId()
|
|
@@ -56,6 +56,7 @@ func (self *PayController) payExchange(oId, payWay, returnUrl, source, remark st
|
|
|
tel = address.Tel
|
|
tel = address.Tel
|
|
|
addr = fmt.Sprintf("%s%s%s%s", address.Province, address.City, address.District, address.Address)
|
|
addr = fmt.Sprintf("%s%s%s%s", address.Province, address.City, address.District, address.Address)
|
|
|
allowAddr = fmt.Sprintf("%s%s", address.Province, address.City)
|
|
allowAddr = fmt.Sprintf("%s%s", address.Province, address.City)
|
|
|
|
|
+ allowPro = address.Province
|
|
|
} else {
|
|
} else {
|
|
|
//物流方式
|
|
//物流方式
|
|
|
pick_addr_id, _ := self.GetInt64("pick_addr_id")
|
|
pick_addr_id, _ := self.GetInt64("pick_addr_id")
|
|
@@ -69,6 +70,8 @@ func (self *PayController) payExchange(oId, payWay, returnUrl, source, remark st
|
|
|
addr = pick_dept.PickAddress
|
|
addr = pick_dept.PickAddress
|
|
|
allow_arr := strings.Split(addr, "市")
|
|
allow_arr := strings.Split(addr, "市")
|
|
|
allowAddr = fmt.Sprintf("%s市", allow_arr[0])
|
|
allowAddr = fmt.Sprintf("%s市", allow_arr[0])
|
|
|
|
|
+ allow_prv_arr := strings.Split(addr, "省")
|
|
|
|
|
+ allowPro = fmt.Sprintf("%s省", allow_prv_arr[0])
|
|
|
}
|
|
}
|
|
|
if source != order_model.SOURCE_XCX && source != order_model.SOURCE_APP {
|
|
if source != order_model.SOURCE_XCX && source != order_model.SOURCE_APP {
|
|
|
self.ReturnError(403, apps.ParamsError, "", nil)
|
|
self.ReturnError(403, apps.ParamsError, "", nil)
|
|
@@ -87,6 +90,7 @@ func (self *PayController) payExchange(oId, payWay, returnUrl, source, remark st
|
|
|
self.ReturnError(403, apps.NotUnPay, "", nil)
|
|
self.ReturnError(403, apps.NotUnPay, "", nil)
|
|
|
}
|
|
}
|
|
|
SaleNumsMap := make(map[int64]int64)
|
|
SaleNumsMap := make(map[int64]int64)
|
|
|
|
|
+
|
|
|
storeMap := make(map[int64]int64)
|
|
storeMap := make(map[int64]int64)
|
|
|
specialPromotion = order.SpecialPro
|
|
specialPromotion = order.SpecialPro
|
|
|
//支付方式判断
|
|
//支付方式判断
|
|
@@ -109,6 +113,7 @@ func (self *PayController) payExchange(oId, payWay, returnUrl, source, remark st
|
|
|
if product.Status == product_model.PRODUCT_STATUS_DOWN {
|
|
if product.Status == product_model.PRODUCT_STATUS_DOWN {
|
|
|
self.ReturnError(403, []string{apps.ProductOffSale[0], fmt.Sprintf("%s产品已经下架", product.Name)}, "", nil)
|
|
self.ReturnError(403, []string{apps.ProductOffSale[0], fmt.Sprintf("%s产品已经下架", product.Name)}, "", nil)
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
//秒杀逻辑: 判断是否处于秒杀时间段内
|
|
//秒杀逻辑: 判断是否处于秒杀时间段内
|
|
|
if product.SeckilShowPrice > 0 {
|
|
if product.SeckilShowPrice > 0 {
|
|
|
now := time.Now()
|
|
now := time.Now()
|
|
@@ -135,9 +140,9 @@ func (self *PayController) payExchange(oId, payWay, returnUrl, source, remark st
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- //仅发货地区判断
|
|
|
|
|
|
|
+ //仅发货地区省,市判断
|
|
|
if len(product.OnlyDeliveryArea) > 0 {
|
|
if len(product.OnlyDeliveryArea) > 0 {
|
|
|
- if helper.NewStr(product.OnlyDeliveryArea).Strpos(allowAddr, 0) < 0 {
|
|
|
|
|
|
|
+ if product_model.GetProductByIdAndProvince(product.Id, allowPro, true) == nil || helper.NewStr(product.OnlyDeliveryArea).Strpos(allowAddr, 0) < 0 {
|
|
|
self.ReturnError(403, []string{apps.OnlyDeliveryArea[0], fmt.Sprintf("%s产品不在限售区域内", product.Name)}, "", nil)
|
|
self.ReturnError(403, []string{apps.OnlyDeliveryArea[0], fmt.Sprintf("%s产品不在限售区域内", product.Name)}, "", nil)
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|