|
|
@@ -381,7 +381,9 @@ class StoreOrder extends BaseModel
|
|
|
return self::setErrorInfo('请选择门店', true);
|
|
|
}
|
|
|
}
|
|
|
+ $is_brokerage=0;
|
|
|
if ($is_type==4||$is_type==5){
|
|
|
+ $is_brokerage=1;
|
|
|
//佣金抵扣
|
|
|
$res2 = true;
|
|
|
$SurplusIntegral = $userInfo['brokerage_price'];
|
|
|
@@ -420,6 +422,7 @@ class StoreOrder extends BaseModel
|
|
|
}else{
|
|
|
// //积分抵扣
|
|
|
$res2 = true;
|
|
|
+ $is_brokerage=0;
|
|
|
$SurplusIntegral = $userInfo['integral'];
|
|
|
if ($payIntegral > 0) {
|
|
|
if ($userInfo['integral'] < $payIntegral) {
|
|
|
@@ -455,7 +458,6 @@ class StoreOrder extends BaseModel
|
|
|
if ($payPrice <= 0) $payPrice = 0;
|
|
|
|
|
|
}
|
|
|
- @file_put_contents('quanju.txt', $deductionPrice . "-抵扣金额\r\n", 8);
|
|
|
|
|
|
if ($test) {
|
|
|
self::rollbackTrans();
|
|
|
@@ -498,6 +500,7 @@ class StoreOrder extends BaseModel
|
|
|
'add_time' => time(),
|
|
|
'unique' => $key,
|
|
|
'shipping_type' => $shipping_type,
|
|
|
+ 'is_brokerage' => $is_brokerage,
|
|
|
];
|
|
|
if ($shipping_type === 2) {
|
|
|
$orderInfo['verify_code'] = self::getStoreCode();
|
|
|
@@ -542,6 +545,11 @@ class StoreOrder extends BaseModel
|
|
|
*/
|
|
|
public static function RegressionIntegral($order)
|
|
|
{
|
|
|
+ if (!empty($order['is_brokerage'])){
|
|
|
+ if ($order['is_brokerage']==1){
|
|
|
+ return self::RegressionBrokerage($order);
|
|
|
+ }
|
|
|
+ }
|
|
|
if ($order['paid'] || $order['status'] == -2 || $order['is_del']) return true;
|
|
|
if ($order['use_integral'] <= 0) return true;
|
|
|
if ((int)$order['status'] != -2 && (int)$order['refund_status'] != 2 && $order['back_integral'] >= $order['use_integral']) return true;
|
|
|
@@ -551,6 +559,21 @@ class StoreOrder extends BaseModel
|
|
|
return false !== self::where('order_id', $order['order_id'])->update(['back_integral' => $order['use_integral']]);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 回退佣金(健康币)
|
|
|
+ * @param $order 订单信息
|
|
|
+ * @return bool
|
|
|
+ */
|
|
|
+ public static function RegressionBrokerage($order)
|
|
|
+ {
|
|
|
+ if ($order['paid'] || $order['status'] == -2 || $order['is_del']) return true;
|
|
|
+ if ($order['use_integral'] <= 0) return true;
|
|
|
+ if ((int)$order['status'] != -2 && (int)$order['refund_status'] != 2 && $order['back_integral'] >= $order['use_integral']) return true;
|
|
|
+ $res = User::bcInc($order['uid'], 'brokerage_price', $order['use_integral']);
|
|
|
+ if (!$res) return self::setErrorInfo('回退健康币增加失败');
|
|
|
+ UserBill::income('健康币回退', $order['uid'], 'brokerage_price', 'deduction', $order['use_integral'], $order['unique'], User::where('uid', $order['uid'])->value('integral'), '购买商品失败,回退健康币' . floatval($order['use_integral']));
|
|
|
+ return false !== self::where('order_id', $order['order_id'])->update(['back_integral' => $order['use_integral']]);
|
|
|
+ }
|
|
|
|
|
|
/**
|
|
|
* 回退库存和销量
|
|
|
@@ -608,7 +631,12 @@ class StoreOrder extends BaseModel
|
|
|
if (!$order) return self::setErrorInfo('没有查到此订单');
|
|
|
self::beginTrans();
|
|
|
try {
|
|
|
- $res = self::RegressionIntegral($order) && self::RegressionStock($order) && self::RegressionCoupon($order);
|
|
|
+ $orderInfo = $order->toArray();
|
|
|
+ if ($orderInfo['is_brokerage']==1){
|
|
|
+ $res = self::RegressionBrokerage($order) && self::RegressionStock($order) && self::RegressionCoupon($order);
|
|
|
+ }else{
|
|
|
+ $res = self::RegressionIntegral($order) && self::RegressionStock($order) && self::RegressionCoupon($order);
|
|
|
+ }
|
|
|
$order->is_del = 1;
|
|
|
if ($res && $order->save()) {
|
|
|
self::commitTrans();
|
|
|
@@ -1663,7 +1691,11 @@ class StoreOrder extends BaseModel
|
|
|
if ($time == 0) return true;
|
|
|
if (($order['add_time'] + bcmul($time, 3600, 0)) < time()) {
|
|
|
$res1 = self::RegressionStock($order);
|
|
|
- $res2 = self::RegressionIntegral($order);
|
|
|
+ if ($order['is_brokerage']==1){
|
|
|
+ $res2 = self::RegressionBrokerage($order);
|
|
|
+ }else{
|
|
|
+ $res2 = self::RegressionIntegral($order);
|
|
|
+ }
|
|
|
$res3 = self::RegressionCoupon($order);
|
|
|
$res = $res1 && $res2 && $res3;
|
|
|
if ($res) $res = false !== self::where('order_id', $order['order_id'])->update(['is_del' => 1, 'mark' => '订单未支付已超过系统预设时间']);
|