|
|
@@ -10,6 +10,8 @@ namespace app\models\store;
|
|
|
use app\admin\model\store\StoreProductAttrValue;
|
|
|
use app\admin\model\system\ShippingTemplatesFree;
|
|
|
use app\admin\model\system\ShippingTemplatesRegion;
|
|
|
+use app\models\system\SystemAwardLevel;
|
|
|
+use app\models\system\SystemGroupLevel;
|
|
|
use app\models\system\SystemStoreMember;
|
|
|
use app\models\system\SystemStoreStock;
|
|
|
use app\models\system\SystemUserLevel;
|
|
|
@@ -49,7 +51,7 @@ class StoreOrder extends BaseModel
|
|
|
use ModelTrait;
|
|
|
|
|
|
|
|
|
- protected static $payType = ['weixin' => '微信支付', 'yue' => '余额支付', 'offline' => '线下支付','consumer'=>'消费券支付','jialie'=>'嘉联支付'];
|
|
|
+ protected static $payType = ['weixin' => '微信支付', 'yue' => '余额支付', 'offline' => '线下支付', 'consumer' => '消费券支付', 'jialie' => '嘉联支付'];
|
|
|
|
|
|
protected static $deliveryType = ['send' => '商家配送', 'express' => '快递配送'];
|
|
|
|
|
|
@@ -74,6 +76,7 @@ class StoreOrder extends BaseModel
|
|
|
$totalPrice = self::getOrderSumPrice($cartInfo, 'truePrice');//获取订单总金额
|
|
|
$costPrice = self::getOrderSumPrice($cartInfo, 'costPrice');//获取订单成本价
|
|
|
$vipPrice = self::getOrderSumPrice($cartInfo, 'vip_truePrice');//获取订单会员优惠金额
|
|
|
+ $use_integral = self::getOrderSumPrice($cartInfo, 'use_integral');//获取订单会员优惠金额
|
|
|
//如果满额包邮等于0
|
|
|
if (!$storeFreePostage) {
|
|
|
$storePostage = 0;
|
|
|
@@ -143,7 +146,7 @@ class StoreOrder extends BaseModel
|
|
|
}
|
|
|
if ($storeFreePostage <= $totalPrice) $storePostage = 0;//如果总价大于等于满额包邮 邮费等于0
|
|
|
}
|
|
|
- return compact('storePostage', 'storeFreePostage', 'totalPrice', 'costPrice', 'vipPrice');
|
|
|
+ return compact('use_integral', 'storePostage', 'storeFreePostage', 'totalPrice', 'costPrice', 'vipPrice');
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -267,7 +270,7 @@ class StoreOrder extends BaseModel
|
|
|
* @throws \think\exception\DbException
|
|
|
*/
|
|
|
|
|
|
- public static function cacheKeyCreateOrder($uid, $key, $addressId, $payType, $useIntegral = false, $couponId = 0, $mark = '', $combinationId = 0, $pinkId = 0, $seckill_id = 0, $bargain_id = 0, $test = false, $isChannel = 0, $shipping_type = 1, $real_name = '', $phone = '', $storeId = 0,$is_consumer=0)
|
|
|
+ public static function cacheKeyCreateOrder($uid, $key, $addressId, $payType, $useIntegral = false, $couponId = 0, $mark = '', $combinationId = 0, $pinkId = 0, $seckill_id = 0, $bargain_id = 0, $test = false, $isChannel = 0, $shipping_type = 1, $real_name = '', $phone = '', $storeId = 0, $is_consumer = 0)
|
|
|
{
|
|
|
self::beginTrans();
|
|
|
try {
|
|
|
@@ -284,6 +287,7 @@ class StoreOrder extends BaseModel
|
|
|
$priceGroup = $cartGroup['priceGroup'];
|
|
|
$other = $cartGroup['other'];
|
|
|
$payPrice = (float)$priceGroup['totalPrice'];
|
|
|
+ $useIntegrals = (float)$priceGroup['use_integral'];
|
|
|
$addr = UserAddress::where('uid', $uid)->where('id', $addressId)->find();
|
|
|
if ($payType == 'offline' && sys_config('offline_postage') == 1) {
|
|
|
$payPostage = 0;
|
|
|
@@ -295,7 +299,7 @@ class StoreOrder extends BaseModel
|
|
|
if (!$test && (!UserAddress::be(['uid' => $uid, 'id' => $addressId, 'is_del' => 0]) || !($addressInfo = UserAddress::find($addressId))))
|
|
|
return self::setErrorInfo('地址选择有误!', true);
|
|
|
$addressInfo = UserAddress::find($addressId);
|
|
|
- if(!$test ) {
|
|
|
+ if (!$test) {
|
|
|
if (empty($addressInfo['longitude']) || empty($addressInfo['latitude'])) {
|
|
|
return self::setErrorInfo('收货地址经纬度不能为空!', true);
|
|
|
}
|
|
|
@@ -321,7 +325,8 @@ class StoreOrder extends BaseModel
|
|
|
$cartIds = [];
|
|
|
$totalNum = 0;
|
|
|
$gainIntegral = 0;
|
|
|
- foreach ($cartInfo as $cart){
|
|
|
+ $maxUseIntegral = 0;
|
|
|
+ foreach ($cartInfo as $cart) {
|
|
|
if (!$test && !self::checkProductStock($uid, $cart['product_id'], $cart['cart_num'], $cart['product_attr_unique'], $cart['combination_id'], $cart['seckill_id'], $cart['bargain_id'])) {
|
|
|
return false;
|
|
|
}
|
|
|
@@ -331,7 +336,9 @@ class StoreOrder extends BaseModel
|
|
|
if (!$bargain_id) $bargain_id = $cart['bargain_id'];
|
|
|
if (!$combinationId) $combinationId = $cart['combination_id'];
|
|
|
$cartInfoGainIntegral = isset($cart['productInfo']['give_integral']) ? bcmul($cart['cart_num'], $cart['productInfo']['give_integral'], 2) : 0;
|
|
|
+ $cartInfoMaxUseIntegral = isset($cart['productInfo']['max_use_integral']) ? bcmul($cart['cart_num'], $cart['productInfo']['max_use_integral'], 2) : 0;
|
|
|
$gainIntegral = bcadd($gainIntegral, $cartInfoGainIntegral, 2);
|
|
|
+ $maxUseIntegral = bcadd($maxUseIntegral, $cartInfoMaxUseIntegral, 2);
|
|
|
}
|
|
|
$deduction = $seckill_id || $bargain_id || $combinationId;
|
|
|
if ($deduction) {
|
|
|
@@ -382,29 +389,53 @@ class StoreOrder extends BaseModel
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+// //积分抵扣
|
|
|
+// $res2 = true;
|
|
|
+// $SurplusIntegral = 0;
|
|
|
+// if ($useIntegral && $userInfo['integral'] > 0) {
|
|
|
+// if ($userInfo['integral'] > $maxUseIntegral) {
|
|
|
+// $useIntegral = $maxUseIntegral;
|
|
|
+// } else {
|
|
|
+// $useIntegral = $userInfo['integral'];
|
|
|
+// }
|
|
|
+// if ($useIntegral > 0) {
|
|
|
+// $deductionPrice = (float)bcmul($useIntegral, $other['integralRatio'], 2);
|
|
|
+// if ($deductionPrice < $payPrice) {
|
|
|
+// $payPrice = bcsub($payPrice, $deductionPrice, 2);
|
|
|
+// $usedIntegral = $useIntegral;
|
|
|
+// $SurplusIntegral = 0;
|
|
|
+// $res2 = false !== User::edit(['integral' => bcsub($userInfo['integral'], $usedIntegral, 2)], $userInfo['uid'], 'uid');
|
|
|
+// } else {
|
|
|
+// $deductionPrice = $payPrice;
|
|
|
+// $usedIntegral = (float)bcdiv($payPrice, $other['integralRatio'], 2);
|
|
|
+// $SurplusIntegral = bcsub($userInfo['integral'], $usedIntegral, 2);
|
|
|
+// $res2 = false !== User::bcDec($userInfo['uid'], 'integral', $usedIntegral, 'uid');
|
|
|
+// $payPrice = 0;
|
|
|
+// }
|
|
|
+// $res2 = $res2 && false != UserBill::expend('积分抵扣', $uid, 'integral', 'deduction', $usedIntegral, $key, $userInfo['integral'], '购买商品使用' . floatval($usedIntegral) . '积分抵扣' . floatval($deductionPrice) . '元');
|
|
|
+// } else {
|
|
|
+// $deductionPrice = 0;
|
|
|
+// $usedIntegral = 0;
|
|
|
+// }
|
|
|
+// } else {
|
|
|
+// $deductionPrice = 0;
|
|
|
+// $usedIntegral = 0;
|
|
|
+// }
|
|
|
+// if (!$res2) return self::setErrorInfo('使用积分抵扣失败!', true);
|
|
|
+
|
|
|
//积分抵扣
|
|
|
- $res2 = true;
|
|
|
+ $deductionPrice = 0;
|
|
|
$SurplusIntegral = 0;
|
|
|
- if ($useIntegral && $userInfo['integral'] > 0) {
|
|
|
- $deductionPrice = (float)bcmul($userInfo['integral'], $other['integralRatio'], 2);
|
|
|
- if ($deductionPrice < $payPrice) {
|
|
|
- $payPrice = bcsub($payPrice, $deductionPrice, 2);
|
|
|
- $usedIntegral = $userInfo['integral'];
|
|
|
- $SurplusIntegral = 0;
|
|
|
- $res2 = false !== User::edit(['integral' => 0], $userInfo['uid'], 'uid');
|
|
|
+ if ($useIntegrals > 0) {
|
|
|
+ if ($userInfo['integral'] >= $useIntegrals) {
|
|
|
+ $SurplusIntegral = bcsub($userInfo['integral'], $useIntegrals, 2);
|
|
|
+ $res2 = false !== User::bcDec($userInfo['uid'], 'integral', $useIntegrals, 'uid');
|
|
|
+ $res2 = $res2 && false != UserBill::expend('积分商品', $uid, 'integral', 'deduction', $useIntegrals, $key, $userInfo['integral'], '购买积分商品使用' . floatval($useIntegrals));
|
|
|
} else {
|
|
|
- $deductionPrice = $payPrice;
|
|
|
- $usedIntegral = (float)bcdiv($payPrice, $other['integralRatio'], 2);
|
|
|
- $SurplusIntegral = bcsub($userInfo['integral'], $usedIntegral, 2);
|
|
|
- $res2 = false !== User::bcDec($userInfo['uid'], 'integral', $usedIntegral, 'uid');
|
|
|
- $payPrice = 0;
|
|
|
+ return self::setErrorInfo('积分不足' . $useIntegrals . '!', true);
|
|
|
}
|
|
|
- $res2 = $res2 && false != UserBill::expend('积分抵扣', $uid, 'integral', 'deduction', $usedIntegral, $key, $userInfo['integral'], '购买商品使用' . floatval($usedIntegral) . '积分抵扣' . floatval($deductionPrice) . '元');
|
|
|
- } else {
|
|
|
- $deductionPrice = 0;
|
|
|
- $usedIntegral = 0;
|
|
|
+ if (!$res2) return self::setErrorInfo('使用积分抵扣失败!', true);
|
|
|
}
|
|
|
- if (!$res2) return self::setErrorInfo('使用积分抵扣失败!', true);
|
|
|
if ($payPrice <= 0) $payPrice = 0;
|
|
|
if ($test) {
|
|
|
self::rollbackTrans();
|
|
|
@@ -415,11 +446,12 @@ class StoreOrder extends BaseModel
|
|
|
'coupon_price' => $couponPrice,
|
|
|
'deduction_price' => $deductionPrice,
|
|
|
'SurplusIntegral' => $SurplusIntegral,
|
|
|
+ 'useIntegral' => $useIntegrals,
|
|
|
];
|
|
|
}
|
|
|
$id = self::getkeytoid('order_id');
|
|
|
$orderInfo = [
|
|
|
- 'id'=> $id,
|
|
|
+ 'id' => $id,
|
|
|
'uid' => $uid,
|
|
|
'order_id' => $test ? 0 : self::getNewOrderId(),
|
|
|
'real_name' => $addressInfo['real_name'],
|
|
|
@@ -436,7 +468,7 @@ class StoreOrder extends BaseModel
|
|
|
'deduction_price' => $deductionPrice,
|
|
|
'paid' => 0,
|
|
|
'pay_type' => $payType,
|
|
|
- 'use_integral' => $usedIntegral,
|
|
|
+ 'use_integral' => $useIntegrals,
|
|
|
'gain_integral' => $gainIntegral,
|
|
|
'mark' => htmlspecialchars($mark),
|
|
|
'combination_id' => $combinationId,
|
|
|
@@ -448,25 +480,23 @@ class StoreOrder extends BaseModel
|
|
|
'add_time' => date("Y-m-d H:i:s"),
|
|
|
'unique' => $key,
|
|
|
'shipping_type' => $shipping_type,
|
|
|
- 'is_consumer'=>$is_consumer,
|
|
|
- 'reg_store_id'=>$userInfo['reg_store_id'],
|
|
|
+ 'is_consumer' => $is_consumer,
|
|
|
+ 'reg_store_id' => $userInfo['reg_store_id'],
|
|
|
+ 'suit' => $other['suit'],
|
|
|
];
|
|
|
if ($shipping_type === 2) {
|
|
|
$orderInfo['verify_code'] = self::getStoreCode();
|
|
|
$orderInfo['store_id'] = SystemStore::getStoreDispose($storeId, 'id');
|
|
|
if (!$orderInfo['store_id']) return self::setErrorInfo('暂无门店无法选择门店自提!', true);
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
+ } else {
|
|
|
$orderInfo['store_id'] = $storeId;
|
|
|
}
|
|
|
- $create_store_id = intval(SystemStoreMember::where('uid',$uid)->value('reg_store_id'));
|
|
|
- if($create_store_id==0 && $orderInfo['store_id']>0)
|
|
|
- {
|
|
|
+ $create_store_id = intval(SystemStoreMember::where('uid', $uid)->value('reg_store_id'));
|
|
|
+ if ($create_store_id == 0 && $orderInfo['store_id'] > 0) {
|
|
|
$orderInfo['create_store_id'] = $orderInfo['store_id'];
|
|
|
}
|
|
|
$order = self::create($orderInfo);
|
|
|
- if (!$order) return self::setErrorInfo('订单生成失败-0!'.self::getlastsql(), true);
|
|
|
+ if (!$order) return self::setErrorInfo('订单生成失败-0!' . self::getlastsql(), true);
|
|
|
$res5 = true;
|
|
|
foreach ($cartInfo as $cart) {
|
|
|
//减库存加销量
|
|
|
@@ -479,7 +509,7 @@ class StoreOrder extends BaseModel
|
|
|
$res4 = false !== StoreOrderCartInfo::setCartInfo($order['id'], $cartInfo);
|
|
|
//购物车状态修改
|
|
|
$res6 = false !== StoreCart::where('id', 'IN', $cartIds)->update(['is_pay' => 1]);
|
|
|
- if (!$res4 || !$res5 || !$res6) return self::setErrorInfo('订单生成失败-1!'.$res5.'-'.$res4.'-'.$res6, true);
|
|
|
+ if (!$res4 || !$res5 || !$res6) return self::setErrorInfo('订单生成失败-1!' . $res5 . '-' . $res4 . '-' . $res6, true);
|
|
|
//自动设置默认地址
|
|
|
UserRepository::storeProductOrderCreateEbApi($order, compact('cartInfo', 'addressId'));
|
|
|
self::clearCacheOrderInfo($uid, $key);
|
|
|
@@ -488,10 +518,10 @@ class StoreOrder extends BaseModel
|
|
|
return $order;
|
|
|
} catch (\PDOException $e) {
|
|
|
self::rollbackTrans();
|
|
|
- return self::setErrorInfo('生成订单时SQL执行错误错误原因:' . $e->getMessage().'--'.$e->getFile().'--'.$e->getLine());
|
|
|
+ return self::setErrorInfo('生成订单时SQL执行错误错误原因:' . $e->getMessage() . '--' . $e->getFile() . '--' . $e->getLine());
|
|
|
} catch (\Exception $e) {
|
|
|
self::rollbackTrans();
|
|
|
- return self::setErrorInfo('生成订单时系统错误错误原因:' . $e->getMessage().'--'.$e->getFile().'--'.$e->getLine());
|
|
|
+ return self::setErrorInfo('生成订单时系统错误错误原因:' . $e->getMessage() . '--' . $e->getFile() . '--' . $e->getLine());
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -536,7 +566,7 @@ class StoreOrder extends BaseModel
|
|
|
else if ($bargain_id) $res5 = $res5 && StoreBargain::incBargainStock($cart['cart_info']['cart_num'], $bargain_id, isset($cart['cart_info']['productInfo']['attrInfo']) ? $cart['cart_info']['productInfo']['attrInfo']['unique'] : '');
|
|
|
else {
|
|
|
$res5 = $res5 && StoreProduct::incProductStock($cart['cart_info']['cart_num'], $cart['cart_info']['productInfo']['id'], isset($cart['cart_info']['productInfo']['attrInfo']) ? $cart['cart_info']['productInfo']['attrInfo']['unique'] : '');
|
|
|
- SystemStoreStock::Refund($order,$cart['cart_info']);
|
|
|
+ SystemStoreStock::Refund($order, $cart['cart_info']);
|
|
|
}
|
|
|
}
|
|
|
return $res5;
|
|
|
@@ -692,6 +722,7 @@ class StoreOrder extends BaseModel
|
|
|
self::checkTrans($res);
|
|
|
return $res;
|
|
|
}
|
|
|
+
|
|
|
/**
|
|
|
* 消费券支付
|
|
|
* @param $order_id
|
|
|
@@ -818,11 +849,41 @@ class StoreOrder extends BaseModel
|
|
|
$now_money = User::where('uid', $order['uid'])->value('now_money');
|
|
|
UserBill::expend('购买商品', $order['uid'], 'now_money', 'pay_money', $order['pay_price'], $order['id'], $now_money, '支付' . floatval($order['pay_price']) . '元购买商品');
|
|
|
//支付成功后
|
|
|
+ $res2 = true;
|
|
|
+ $res2 = $res2 && self::addSuit($order);
|
|
|
+ $res2 = $res2 && StoreOrder::sendSuit($order);
|
|
|
+ $res2 = $res2 && StoreOrder::sendGroupAward($order);
|
|
|
+ $res2 = $res2 && SystemGroupLevel::checkLevel($order['uid']);
|
|
|
+ $res2 = $res2 && SystemAwardLevel::checkLevel($order['uid']);
|
|
|
event('OrderPaySuccess', [$order, $formId]);
|
|
|
- $res = $res1 && $resPink;
|
|
|
+ $res = $res1 && $resPink && $res2;
|
|
|
return false !== $res;
|
|
|
}
|
|
|
|
|
|
+ public static function addSuit($order)
|
|
|
+ {
|
|
|
+ if($order['suit']<=0) return true;
|
|
|
+ $userInfo = User::getUserInfo($order['uid']);
|
|
|
+ $spread = User::getUserInfo($userInfo['spread_uid']);
|
|
|
+ if (StoreOrder::where('uid', $order['uid'])->where('paid', 1)->where('refund_status', 0)->where('is_del', 0)->where('is_system_del', 0)
|
|
|
+ ->where('id', '<>', $order['id'])->where('suit', '>', 0)->find()) {
|
|
|
+ $spread = $userInfo;
|
|
|
+ }
|
|
|
+ $re = true;
|
|
|
+ $res = true;
|
|
|
+ while ($spread) {
|
|
|
+ if ($re) {
|
|
|
+ $res = $res && User::where('uid', $spread['uid'])->inc('recommend_suit_num', $order['suit'])
|
|
|
+ ->inc('group_suit_num', $order['suit'])->update();
|
|
|
+ $re = false;
|
|
|
+ } else {
|
|
|
+ $res = $res && User::where('uid', $spread['uid'])->inc('group_suit_num', $order['suit'])->update();
|
|
|
+ }
|
|
|
+ $spread = User::getUserInfo($spread['spread_uid']);
|
|
|
+ }
|
|
|
+ return $res;
|
|
|
+ }
|
|
|
+
|
|
|
/*
|
|
|
* 线下支付消息通知
|
|
|
* 待完善
|
|
|
@@ -1082,7 +1143,7 @@ class StoreOrder extends BaseModel
|
|
|
if (isset($order['delivery_type']))
|
|
|
$status['_deliveryType'] = isset(self::$deliveryType[$order['delivery_type']]) ? self::$deliveryType[$order['delivery_type']] : '其他方式';
|
|
|
$order['_status'] = $status;
|
|
|
- $order['_pay_time'] = isset($order['pay_time']) && $order['pay_time'] != null ? $order['pay_time']: $order['add_time'];
|
|
|
+ $order['_pay_time'] = isset($order['pay_time']) && $order['pay_time'] != null ? $order['pay_time'] : $order['add_time'];
|
|
|
$order['_add_time'] = $order['add_time'];
|
|
|
$order['status_pic'] = '';
|
|
|
//获取产品状态图片
|
|
|
@@ -1361,11 +1422,10 @@ class StoreOrder extends BaseModel
|
|
|
* 获取 今日 昨日 本月 订单金额
|
|
|
* @return mixed
|
|
|
*/
|
|
|
- public static function getOrderTimeData($store_id=0,$is_consumer=0)
|
|
|
+ public static function getOrderTimeData($store_id = 0, $is_consumer = 0)
|
|
|
{
|
|
|
$where = [];
|
|
|
- if($store_id>0)
|
|
|
- {
|
|
|
+ if ($store_id > 0) {
|
|
|
$where['store_id'] = $store_id;
|
|
|
}
|
|
|
$where['is_consumer'] = $is_consumer;
|
|
|
@@ -1420,11 +1480,10 @@ class StoreOrder extends BaseModel
|
|
|
* @param $uid
|
|
|
* @return mixed
|
|
|
*/
|
|
|
- public static function getOrderDataAdmin($store_id=0,$is_consumer=0)
|
|
|
+ public static function getOrderDataAdmin($store_id = 0, $is_consumer = 0)
|
|
|
{
|
|
|
$where = [];
|
|
|
- if($store_id>0)
|
|
|
- {
|
|
|
+ if ($store_id > 0) {
|
|
|
$where['store_id'] = $store_id;
|
|
|
}
|
|
|
$where['is_consumer'] = $is_consumer;
|
|
|
@@ -1707,19 +1766,19 @@ class StoreOrder extends BaseModel
|
|
|
* @throws \think\db\exception\DbException
|
|
|
* @throws \think\db\exception\ModelNotFoundException
|
|
|
*/
|
|
|
- public static function getordermonth($store_id,$start,$end)
|
|
|
+ public static function getordermonth($store_id, $start, $end)
|
|
|
{
|
|
|
$model = new self;
|
|
|
$model = $model->where('pay_time', '>', $start)->where('pay_time', '<=', $end);
|
|
|
$model = $model->where('is_del', 0);
|
|
|
$model = $model->where('paid', 1);
|
|
|
$model = $model->where('refund_status', 0);
|
|
|
- $model = $model->where('store_id',$store_id);
|
|
|
- $data[] = $model->where('is_consumer',0)->where('use_integral',0)->field("sum(pay_price) as price,count(id) as count,'普通订单' as order_type")->find()->toArray();
|
|
|
- $data[] = $model->where('is_consumer',1)->field("sum(pay_price) as price,count(id) as count,'消费券订单' as order_type")->find()->toArray();
|
|
|
- $data[] = $model->where('is_consumer',0)->where('use_integral','>',0)->field("sum(pay_price) as price,count(id) as count,'积分订单' as order_type")->find()->toArray();
|
|
|
- $day = self::where('paid',1)->where('refund_status', 0)->where('store_id',$store_id)->where('pay_time','>',date("y-m-d"))->field('sum(pay_price) as price,count(id) as count')->find();
|
|
|
- return compact('day','data');
|
|
|
+ $model = $model->where('store_id', $store_id);
|
|
|
+ $data[] = $model->where('is_consumer', 0)->where('use_integral', 0)->field("sum(pay_price) as price,count(id) as count,'普通订单' as order_type")->find()->toArray();
|
|
|
+ $data[] = $model->where('is_consumer', 1)->field("sum(pay_price) as price,count(id) as count,'消费券订单' as order_type")->find()->toArray();
|
|
|
+ $data[] = $model->where('is_consumer', 0)->where('use_integral', '>', 0)->field("sum(pay_price) as price,count(id) as count,'积分订单' as order_type")->find()->toArray();
|
|
|
+ $day = self::where('paid', 1)->where('refund_status', 0)->where('store_id', $store_id)->where('pay_time', '>', date("y-m-d"))->field('sum(pay_price) as price,count(id) as count')->find();
|
|
|
+ return compact('day', 'data');
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -1738,7 +1797,7 @@ class StoreOrder extends BaseModel
|
|
|
$count = $model->count('id');
|
|
|
$data = ($data = $model->page((int)$where['page'], (int)$where['limit'])->select()) && count($data) ? $data->toArray() : [];
|
|
|
$data = self::tidyAdminOrder($data);
|
|
|
- return compact('count','data');
|
|
|
+ return compact('count', 'data');
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -2005,14 +2064,13 @@ class StoreOrder extends BaseModel
|
|
|
|
|
|
if (isset($where['real_name']) && $where['real_name'] != '')
|
|
|
$model = $model->where($aler . 'order_id|' . $aler . 'real_name|' . $aler . 'user_phone' . ($join ? '|' . $join . '.nickname|' . $join . '.uid' : ''), 'LIKE', "%$where[real_name]%");
|
|
|
- if (isset($where['store_id']) && $where['store_id'] >0) {
|
|
|
- $model = $model->where($aler . 'store_id', "=", $where['store_id']);
|
|
|
+ if (isset($where['store_id']) && $where['store_id'] > 0) {
|
|
|
+ $model = $model->where($aler . 'store_id', "=", $where['store_id']);
|
|
|
}
|
|
|
- if (isset($where['data']) && $where['data'] !== '')
|
|
|
- {
|
|
|
+ if (isset($where['data']) && $where['data'] !== '') {
|
|
|
list($startTime, $endTime) = explode(' - ', $where['data']);
|
|
|
$model = $model->where($aler . 'add_time', '>', $startTime);
|
|
|
- $model = $model->where($aler . 'add_time', '<', date("Y-m-d H:i:s",bcadd(strtotime($endTime), 86400, 0)));
|
|
|
+ $model = $model->where($aler . 'add_time', '<', date("Y-m-d H:i:s", bcadd(strtotime($endTime), 86400, 0)));
|
|
|
}
|
|
|
return $model;
|
|
|
}
|
|
|
@@ -2071,7 +2129,7 @@ class StoreOrder extends BaseModel
|
|
|
*/
|
|
|
public static function getOrderTimeBusinessVolumePrice($start, $stop)
|
|
|
{
|
|
|
- return self::where('is_del', 0)->where('paid', 1)->where('refund_status', 0)->where('add_time', '>=', date("Y-m-d H:i:s",$start))->where('add_time', '<', date("Y-m-d H:i:s",$stop))->sum('pay_price');
|
|
|
+ return self::where('is_del', 0)->where('paid', 1)->where('refund_status', 0)->where('add_time', '>=', date("Y-m-d H:i:s", $start))->where('add_time', '<', date("Y-m-d H:i:s", $stop))->sum('pay_price');
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -2082,7 +2140,7 @@ class StoreOrder extends BaseModel
|
|
|
*/
|
|
|
public static function getOrderTimeBusinessVolumeNumber($start, $stop)
|
|
|
{
|
|
|
- return self::where('is_del', 0)->where('paid', 1)->where('refund_status', 0)->where('add_time', '>=', date("Y-m-d H:i:s",$start))->where('add_time', '<', date("Y-m-d H:i:s",$stop))->count();
|
|
|
+ return self::where('is_del', 0)->where('paid', 1)->where('refund_status', 0)->where('add_time', '>=', date("Y-m-d H:i:s", $start))->where('add_time', '<', date("Y-m-d H:i:s", $stop))->count();
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -2118,8 +2176,8 @@ class StoreOrder extends BaseModel
|
|
|
$model = $model->where('is_del', 0);
|
|
|
$model = $model->where('paid', 1);
|
|
|
$model = $model->where('refund_status', 0);
|
|
|
- $model = $model->where('add_time', '>=', date("Y-m-d H:i:s",$start));
|
|
|
- $model = $model->where('add_time', '<', date("Y-m-d H:i:s",$stop));
|
|
|
+ $model = $model->where('add_time', '>=', date("Y-m-d H:i:s", $start));
|
|
|
+ $model = $model->where('add_time', '<', date("Y-m-d H:i:s", $stop));
|
|
|
$model = $model->group("TO_DAYS(add_time, '%Y-%m-%d')");
|
|
|
$model = $model->order('add_time ASC');
|
|
|
return $model->select();
|
|
|
@@ -2163,100 +2221,85 @@ class StoreOrder extends BaseModel
|
|
|
//会员升级
|
|
|
$newsum = StoreOrderCartInfo::getProductcount($order['id']);
|
|
|
$cartlist = StoreOrderCartInfo::getProductList($order['id']);
|
|
|
- $user = User::where('uid',$order['uid'])->field('uid,nickname,level,spread_uid')->find();
|
|
|
- $spreaduser = User::where('uid',$order['uid'])->field('uid,nickname,level,spread_uid')->find();
|
|
|
- $upgrade = 0;$code_stock_right = 0;
|
|
|
- foreach ($cartlist as $v)
|
|
|
- {
|
|
|
- if(isset($v['attrInfo']['upgrade'])) {
|
|
|
- $upgrade = bcsub($v['attrInfo']['upgrade'],$upgrade)>0?$v['attrInfo']['upgrade']:$upgrade;
|
|
|
+ $user = User::where('uid', $order['uid'])->field('uid,nickname,level,spread_uid')->find();
|
|
|
+ $spreaduser = User::where('uid', $order['uid'])->field('uid,nickname,level,spread_uid')->find();
|
|
|
+ $upgrade = 0;
|
|
|
+ $code_stock_right = 0;
|
|
|
+ foreach ($cartlist as $v) {
|
|
|
+ if (isset($v['attrInfo']['upgrade'])) {
|
|
|
+ $upgrade = bcsub($v['attrInfo']['upgrade'], $upgrade) > 0 ? $v['attrInfo']['upgrade'] : $upgrade;
|
|
|
}
|
|
|
- if(isset($v['attrInfo']['upgrade']))
|
|
|
- {
|
|
|
- $code_stock_right+=intval($v['attrInfo']['stock_right']);
|
|
|
+ if (isset($v['attrInfo']['upgrade'])) {
|
|
|
+ $code_stock_right += intval($v['attrInfo']['stock_right']);
|
|
|
}
|
|
|
}
|
|
|
- $level = User::where('uid',$order['uid'])->value('level');
|
|
|
- if($upgrade>$level)
|
|
|
- {
|
|
|
- UserLevel::setUserLevel($order['uid'],$upgrade);
|
|
|
- if($upgrade==6)
|
|
|
- {
|
|
|
- UserCode::add_code($order['uid'],$cartlist,$newsum);
|
|
|
- if(intval($spreaduser['level'])==6 || User::where('spread_uid',$spreaduser['uid'])->where('level',6)->count()>1)
|
|
|
- {
|
|
|
- $spreaduser->where('uid',$spreaduser['uid'])->inc('brokerage_price',sys_config('code_recommend',60000))->update();
|
|
|
- $str = sprintf("推荐%s用户升级为总代,获得推荐奖:%d",$user['nickname'],sys_config('code_recommend',60000));
|
|
|
- UserBill::income('总代推荐奖',$spreaduser['uid'],'now_money','brokerage',sys_config('code_recommend',60000),$order['id'],bcadd($spreaduser['brokerage_price'],sys_config('code_recommend',60000),0),$str,1);
|
|
|
+ $level = User::where('uid', $order['uid'])->value('level');
|
|
|
+ if ($upgrade > $level) {
|
|
|
+ UserLevel::setUserLevel($order['uid'], $upgrade);
|
|
|
+ if ($upgrade == 6) {
|
|
|
+ UserCode::add_code($order['uid'], $cartlist, $newsum);
|
|
|
+ if (intval($spreaduser['level']) == 6 || User::where('spread_uid', $spreaduser['uid'])->where('level', 6)->count() > 1) {
|
|
|
+ $spreaduser->where('uid', $spreaduser['uid'])->inc('brokerage_price', sys_config('code_recommend', 60000))->update();
|
|
|
+ $str = sprintf("推荐%s用户升级为总代,获得推荐奖:%d", $user['nickname'], sys_config('code_recommend', 60000));
|
|
|
+ UserBill::income('总代推荐奖', $spreaduser['uid'], 'now_money', 'brokerage', sys_config('code_recommend', 60000), $order['id'], bcadd($spreaduser['brokerage_price'], sys_config('code_recommend', 60000), 0), $str, 1);
|
|
|
}
|
|
|
- }
|
|
|
- elseif ($upgrade==5)
|
|
|
- {
|
|
|
- User::where('uid',$v['uid'])->setField('give_stock_right',20);
|
|
|
+ } elseif ($upgrade == 5) {
|
|
|
+ User::where('uid', $v['uid'])->setField('give_stock_right', 20);
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
//处理团队单数
|
|
|
- User::where('uid',$user['uid'])->inc('team_cts',$newsum);
|
|
|
- User::where('uid',$spreaduser['uid'])->inc('team_cts',$newsum);
|
|
|
+ User::where('uid', $user['uid'])->inc('team_cts', $newsum);
|
|
|
+ User::where('uid', $spreaduser['uid'])->inc('team_cts', $newsum);
|
|
|
UserLevel::setLevelComplete($spreaduser['uid']);
|
|
|
- if(intval($spreaduser['level'])==5 && intval($spreaduser['give_stock_right'])==0)
|
|
|
- {
|
|
|
- User::where('uid',$spreaduser['uid'])->setField('give_stock_right',10);
|
|
|
+ if (intval($spreaduser['level']) == 5 && intval($spreaduser['give_stock_right']) == 0) {
|
|
|
+ User::where('uid', $spreaduser['uid'])->setField('give_stock_right', 10);
|
|
|
}
|
|
|
//处理极差
|
|
|
$users = User::field('uid,level,spread_uid')->select();
|
|
|
- $rs = UtilService::getparentid($users,$spreaduser['uid']);
|
|
|
- $levels = SystemUserLevel::where('is_del',0)->where('is_show',1)->field('id,name,range_award')->select();
|
|
|
- $levela = [];$current_level = $spreaduser['level'];$system_range = sys_config('system_range');$range_award=0;
|
|
|
- foreach ($levels as $v)
|
|
|
- {
|
|
|
- $levela[$v['id']]['bl'] = bcsub($v['id'],$spreaduser['level'],0)<0?true:false;
|
|
|
+ $rs = UtilService::getparentid($users, $spreaduser['uid']);
|
|
|
+ $levels = SystemUserLevel::where('is_del', 0)->where('is_show', 1)->field('id,name,range_award')->select();
|
|
|
+ $levela = [];
|
|
|
+ $current_level = $spreaduser['level'];
|
|
|
+ $system_range = sys_config('system_range');
|
|
|
+ $range_award = 0;
|
|
|
+ foreach ($levels as $v) {
|
|
|
+ $levela[$v['id']]['bl'] = bcsub($v['id'], $spreaduser['level'], 0) < 0 ? true : false;
|
|
|
$levela[$v['id']]['sbl'] = true;
|
|
|
- $levela[$v['id']]['s_range'] = sys_config('PeerAward',1);
|
|
|
+ $levela[$v['id']]['s_range'] = sys_config('PeerAward', 1);
|
|
|
$levela[$v['id']]['range_award'] = $v['range_award'];
|
|
|
$levela[$v['id']]['use'] = 0;
|
|
|
$levela[$v['id']]['team_cts'] = 0;
|
|
|
}
|
|
|
- foreach ($rs as $v)
|
|
|
- {
|
|
|
- if($v['level']>=$current_level)
|
|
|
- {
|
|
|
+ foreach ($rs as $v) {
|
|
|
+ if ($v['level'] >= $current_level) {
|
|
|
//处理第一次
|
|
|
- if($levela[$v['level']]['use']==0)
|
|
|
- {
|
|
|
- $level_award = $range_award==0 ? $levela[$v['level']]['range_award'] : bcsub($levela[$v['level']]['range_award'],$range_award,0);
|
|
|
+ if ($levela[$v['level']]['use'] == 0) {
|
|
|
+ $level_award = $range_award == 0 ? $levela[$v['level']]['range_award'] : bcsub($levela[$v['level']]['range_award'], $range_award, 0);
|
|
|
$levela[$v['level']]['use'] = 1;
|
|
|
$levela[$v['id']]['team_cts'] = $v['team_cts'];
|
|
|
$range_award = $levela[$v['level']]['range_award'];
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- if($levela[$v['id']]['sbl'] && bcsub($levela[$v['id']]['team_cts'],$v['team_cts']))
|
|
|
- {
|
|
|
+ } else {
|
|
|
+ if ($levela[$v['id']]['sbl'] && bcsub($levela[$v['id']]['team_cts'], $v['team_cts'])) {
|
|
|
$level_award = $levela[$v['level']]['s_range'];
|
|
|
- $levela[$v['id']]['sbl'] = false;
|
|
|
- $range_award = bcadd($range_award,$level_award,0);
|
|
|
+ $levela[$v['id']]['sbl'] = false;
|
|
|
+ $range_award = bcadd($range_award, $level_award, 0);
|
|
|
}
|
|
|
}
|
|
|
- if($v['level']>$current_level)
|
|
|
- {
|
|
|
+ if ($v['level'] > $current_level) {
|
|
|
$current_level = $v['level'];
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- if($v['level']==$current_level && $levela[$v['id']]['sbl']==1)
|
|
|
- {
|
|
|
+ } else {
|
|
|
+ if ($v['level'] == $current_level && $levela[$v['id']]['sbl'] == 1) {
|
|
|
$current_level++;
|
|
|
}
|
|
|
}
|
|
|
- $proportion = bcmul(bcsub($order['total_price'],$order['cost'],2),bcdiv($level_award,100,2),2);
|
|
|
- $mark = "订单号".$order['order_id'].'产生极差奖,奖励推广佣金' .$proportion;
|
|
|
+ $proportion = bcmul(bcsub($order['total_price'], $order['cost'], 2), bcdiv($level_award, 100, 2), 2);
|
|
|
+ $mark = "订单号" . $order['order_id'] . '产生极差奖,奖励推广佣金' . $proportion;
|
|
|
//TODO 添加推广记录
|
|
|
- $res1 = UserBill::income('极差奖',$v['uid'] , 'now_money', 'brokerage', $proportion,$order['id'],$proportion, $mark);
|
|
|
+ $res1 = UserBill::income('极差奖', $v['uid'], 'now_money', 'brokerage', $proportion, $order['id'], $proportion, $mark);
|
|
|
//TODO 添加用户余额
|
|
|
- $res2 = User::where('uid',$v['uid'])->inc('brokerage',$proportion)->update();
|
|
|
+ $res2 = User::where('uid', $v['uid'])->inc('brokerage', $proportion)->update();
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -2267,11 +2310,11 @@ class StoreOrder extends BaseModel
|
|
|
public static function sendTen()
|
|
|
{
|
|
|
$switch = sys_config('unpaid_order_switch') ? true : false;
|
|
|
- if($switch){
|
|
|
+ if ($switch) {
|
|
|
$list = self::where('paid', 0)
|
|
|
->where('is_del', 0)
|
|
|
->where('is_system_del', 0)
|
|
|
- ->where('add_time', 'exp','DATE_SUB()')
|
|
|
+ ->where('add_time', 'exp', 'DATE_SUB()')
|
|
|
->where('add_time', '<', time() - 600)
|
|
|
->field('order_id,user_phone')
|
|
|
->select();
|
|
|
@@ -2406,38 +2449,203 @@ class StoreOrder extends BaseModel
|
|
|
}
|
|
|
return true;
|
|
|
}
|
|
|
+
|
|
|
public static function do_jialie()
|
|
|
{
|
|
|
- $rs = self::where('paid',0)->where('jialie_do',1)->where('jialie_count','<',30)->select()->toArray();
|
|
|
- try{
|
|
|
- foreach ($rs as $v)
|
|
|
- {
|
|
|
- self::edit(['jialie_do'=>2],$v['id']);
|
|
|
- if(empty($v['re_order_id']))
|
|
|
- {
|
|
|
- $res = JiaLieService::initialize()::paymentquery(JiaLieService::QUERY,['out_trade_no'=>$v['order_id'],'nonce_str'=>uniqid().mt_rand(1000,9999)]);
|
|
|
+ $rs = self::where('paid', 0)->where('jialie_do', 1)->where('jialie_count', '<', 30)->select()->toArray();
|
|
|
+ try {
|
|
|
+ foreach ($rs as $v) {
|
|
|
+ self::edit(['jialie_do' => 2], $v['id']);
|
|
|
+ if (empty($v['re_order_id'])) {
|
|
|
+ $res = JiaLieService::initialize()::paymentquery(JiaLieService::QUERY, ['out_trade_no' => $v['order_id'], 'nonce_str' => uniqid() . mt_rand(1000, 9999)]);
|
|
|
+ } else {
|
|
|
+ $res = JiaLieService::initialize()::paymentquery(JiaLieService::QUERY, ['out_trade_no' => $v['re_order_id'], 'nonce_str' => uniqid() . mt_rand(1000, 9999)]);
|
|
|
+ }
|
|
|
+ if ($res['ret_code'] == 0 && $res['status'] == 2) {
|
|
|
+ self::paySuccess($v['order_id'], 'jialie');
|
|
|
+ self::edit(['jialie_do' => 0, 'is_del' => 0, 'status' => 2], $v['id']);
|
|
|
+ OrderRepository::storeProductOrderTakeDeliveryAdmin($v);
|
|
|
+ StoreOrderStatus::status($v['id'], 'take_delivery', '已核销');
|
|
|
+ } else {
|
|
|
+ self::where('id', $v['id'])->inc('jialie_count', 1)->update();
|
|
|
+ self::edit(['jialie_do' => 1], $v['id']);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } catch (Exception $e) {
|
|
|
+ @file_put_contents("jialie.txt", $e->getLine() . '--' . $e->getMessage() . "-end\r\n", 8);
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+ public static function sendGroupAward($order): bool
|
|
|
+ {
|
|
|
+// return true;
|
|
|
+ //TODO 营销产品不返佣金
|
|
|
+ if (isset($order['combination_id']) && $order['combination_id']) return true;
|
|
|
+ if (isset($order['seckill_id']) && $order['seckill_id']) return true;
|
|
|
+ if (isset($order['bargain_id']) && $order['bargain_id']) return true;
|
|
|
+
|
|
|
+ $userInfo = User::getUserInfo($order['uid']);
|
|
|
+ $spread = User::getUserInfo($userInfo['spread_uid']);
|
|
|
+ if (StoreOrder::where('uid', $order['uid'])->where('paid', 1)->where('refund_status', 0)->where('is_del', 0)->where('is_system_del', 0)
|
|
|
+ ->where('id', '<>', $order['id'])->where('suit', '>', 0)->find()) {
|
|
|
+ $spread = $userInfo;
|
|
|
+ }
|
|
|
+ $cartInfo = StoreOrderCartInfo::whereIn('cart_id', $order['cart_id'])->column('cart_info');
|
|
|
+ $suit = 0;
|
|
|
+ $suit_price = 0;
|
|
|
+ foreach ($cartInfo as $value) {
|
|
|
+ $product = json_decode($value, true);
|
|
|
+ if (isset($product['productInfo'])) {
|
|
|
+ $productInfo = $product['productInfo'];
|
|
|
+ if ($product['is_suit']) {
|
|
|
+ $suit += $product['cart_num'] ?? 0;
|
|
|
+ $suit_price += ($productInfo['attrInfo']['price'] ?? $product['price']) * $product['cart_num'];
|
|
|
+ }
|
|
|
}
|
|
|
- else
|
|
|
- {
|
|
|
- $res = JiaLieService::initialize()::paymentquery(JiaLieService::QUERY,['out_trade_no'=>$v['re_order_id'],'nonce_str'=>uniqid().mt_rand(1000,9999)]);
|
|
|
+ }
|
|
|
+ $res = true;
|
|
|
+ $suit_recommend = sys_config('suit_recommend', 0, true);
|
|
|
+ if ($spread && $suit_recommend) {
|
|
|
+ //推荐奖
|
|
|
+ $brokeragePrice = bcmul($suit_recommend, $suit, 2);
|
|
|
+ if ($brokeragePrice > 0) {
|
|
|
+ $mark = '用户' . $userInfo['nickname'] . '(' . $order['uid'] . ')' . '购买套装商品,获得推荐奖励' . $brokeragePrice;
|
|
|
+ $res = $res && UserBill::income('套装推荐奖', $spread['uid'], 'now_money', 'brokerage', $brokeragePrice, $order['id'], bcadd($spread['brokerage_price'], $brokeragePrice, 2), $mark);
|
|
|
+ $res = $res && User::where('uid', $spread['uid'])->inc('brokerage_price', $brokeragePrice)->update();
|
|
|
+ $spread['brokerage_price'] = bcadd($spread['brokerage_price'], $brokeragePrice, 2);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ $send = 0;
|
|
|
+ $send_normal = 0;
|
|
|
+ while ($spread) {
|
|
|
+ $group_level = SystemGroupLevel::get($spread['group_level']);
|
|
|
+ $award_level = SystemGroupLevel::get($spread['award_level']);
|
|
|
+ if ($suit) {
|
|
|
+ $award_group = $group_level['suit_award'] ?? 0;
|
|
|
+ $award_award = $award_level['suit_award'] ?? 0;
|
|
|
+ $big = $award_group > $award_award ? $group_level['id'] : $award_level['id'];
|
|
|
+ $brokeragePrice_a = bcmul($award_award, $suit, 2);
|
|
|
+ $brokeragePrice_g = bcmul($award_group, $suit, 2);
|
|
|
+ $brokeragePrice_big = $brokeragePrice_a > $brokeragePrice_g ? $brokeragePrice_a : $brokeragePrice_g;
|
|
|
+ $brokeragePrice_small = $brokeragePrice_a > $brokeragePrice_g ? $brokeragePrice_g : $brokeragePrice_a;
|
|
|
+ if ($brokeragePrice_big == $brokeragePrice_small) {
|
|
|
+ $brokeragePrice = $brokeragePrice_big;
|
|
|
+ if ($brokeragePrice > $send) {
|
|
|
+ $real_send = bcsub($brokeragePrice, $send, 2);
|
|
|
+ if ($real_send > 0) {
|
|
|
+ $mark = '用户' . $userInfo['nickname'] . '(' . $order['uid'] . ')' . '购买套装商品,获得极差奖励' . $real_send;
|
|
|
+ $res = $res && UserBill::income('套装极差奖', $spread['uid'], 'now_money', 'brokerage', $real_send, $order['id'], bcadd($spread['brokerage_price'], $real_send, 2), $mark);
|
|
|
+ $res = $res && User::where('uid', $spread['uid'])->inc('brokerage_price', $real_send)->update();
|
|
|
+ $send = $brokeragePrice;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ $brokeragePrice = $brokeragePrice_small;
|
|
|
+ if ($brokeragePrice > $send) {
|
|
|
+ $real_send = bcsub($brokeragePrice, $send, 2);
|
|
|
+ if ($real_send > 0) {
|
|
|
+ $mark = '用户' . $userInfo['nickname'] . '(' . $order['uid'] . ')' . '购买套装商品,获得极差奖励' . $real_send;
|
|
|
+ $res = $res && UserBill::income('套装极差奖', $spread['uid'], 'now_money', 'brokerage', $real_send, $order['id'], bcadd($spread['brokerage_price'], $real_send, 2), $mark);
|
|
|
+ $res = $res && User::where('uid', $spread['uid'])->inc('brokerage_price', $real_send)->update();
|
|
|
+ $send = $brokeragePrice;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ $brokeragePrice = $brokeragePrice_big;
|
|
|
+ if ($brokeragePrice > $send) {
|
|
|
+ $real_send = bcsub($brokeragePrice, $send, 2);
|
|
|
+ if ($real_send > 0) {
|
|
|
+ $mark = '用户' . $userInfo['nickname'] . '(' . $order['uid'] . ')' . '购买套装商品,获得极差奖励' . $real_send;
|
|
|
+ $res = $res && UserBill::income('套装极差奖', $spread['uid'], 'now_money', 'brokerage', $real_send, $order['id'], bcadd($spread['brokerage_price'], $real_send, 2), $mark, 0, $big);
|
|
|
+ $send = $brokeragePrice;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+// if ($group_level) {
|
|
|
+// if (!$award_level) {
|
|
|
+// $award = SystemGroupLevel::min('suit_award');
|
|
|
+// $brokeragePrice = bcmul($award, $suit, 2);
|
|
|
+// if ($brokeragePrice > $send) {
|
|
|
+// $real_send = bcsub($brokeragePrice, $send, 2);
|
|
|
+// $mark = '用户' . $userInfo['nickname'] . '(' . $order['uid'] . ')' . '购买套装商品,获得极差奖励' . $real_send;
|
|
|
+// $res = $res && UserBill::income('套装极差奖', $spread['uid'], 'now_money', 'brokerage', $real_send, $order['id'], $spread['brokerage_price'], $mark, 0);
|
|
|
+// $send = $brokeragePrice;
|
|
|
+// }
|
|
|
+// } else {
|
|
|
+// $award = $group_level['suit_award'] > $award_level['suit_award'] ? $award_level['suit_award'] : $group_level['suit_award'];
|
|
|
+// $brokeragePrice = bcmul($award, $suit, 2);
|
|
|
+// if ($brokeragePrice > $send) {
|
|
|
+// $real_send = bcsub($brokeragePrice, $send, 2);
|
|
|
+// if ($real_send > 0) {
|
|
|
+// $mark = '用户' . $userInfo['nickname'] . '(' . $order['uid'] . ')' . '购买套装商品,获得极差奖励' . $real_send;
|
|
|
+// $res = $res && UserBill::income('套装极差奖', $spread['uid'], 'now_money', 'brokerage', $real_send, $order['id'], bcadd($spread['brokerage_price'], $real_send, 2), $mark);
|
|
|
+// $res = $res && User::where('uid', $spread['uid'])->inc('brokerage_price', $real_send)->update();
|
|
|
+// $send = $brokeragePrice;
|
|
|
+// }
|
|
|
+// }
|
|
|
+// }
|
|
|
+// }
|
|
|
}
|
|
|
- if($res['ret_code']==0 && $res['status']==2) {
|
|
|
- self::paySuccess($v['order_id'], 'jialie');
|
|
|
- self::edit(['jialie_do' => 0,'is_del'=>0, 'status' => 2], $v['id']);
|
|
|
- OrderRepository::storeProductOrderTakeDeliveryAdmin($v);
|
|
|
- StoreOrderStatus::status($v['id'], 'take_delivery', '已核销');
|
|
|
+ if ($group_level) {
|
|
|
+ $brokeragePrice = bcmul(bcdiv($group_level['group_award'], 100, 4), bcsub($order['pay_price'], $suit_price, 2), 2);
|
|
|
+ if ($order['use_integral'] > 0) $brokeragePrice = bcmul(bcdiv($group_level['integral_group_award'], 100, 4), bcsub($order['pay_price'], $suit_price, 2), 2);
|
|
|
+ if ($brokeragePrice > $send_normal) {
|
|
|
+ $real_send = bcsub($brokeragePrice, $send_normal, 2);
|
|
|
+ if ($real_send > 0) {
|
|
|
+ $mark = '用户' . $userInfo['nickname'] . '(' . $order['uid'] . ')' . '购买' . ($order['use_integral'] > 0 ? '积分' : '普通') . '商品,获得极差奖励' . $real_send;
|
|
|
+ $res = $res && UserBill::income('极差奖', $spread['uid'], 'now_money', 'brokerage', $real_send, $order['id'], bcadd($spread['brokerage_price'], $real_send, 2), $mark);
|
|
|
+ $res = $res && User::where('uid', $spread['uid'])->inc('brokerage_price', $real_send)->update();
|
|
|
+ $send_normal = $brokeragePrice;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
- else
|
|
|
- {
|
|
|
- self::where('id',$v['id'])->inc('jialie_count',1)->update();
|
|
|
- self::edit(['jialie_do'=>1],$v['id']);
|
|
|
+ $spread = User::getUserInfo($spread['spread_uid']);
|
|
|
+ }
|
|
|
+ return $res;
|
|
|
+ }
|
|
|
+
|
|
|
+ public static function sendSuit($order): bool
|
|
|
+ {
|
|
|
+// return true;
|
|
|
+ //TODO 营销产品不返佣金
|
|
|
+ if (isset($order['combination_id']) && $order['combination_id']) return true;
|
|
|
+ if (isset($order['seckill_id']) && $order['seckill_id']) return true;
|
|
|
+ if (isset($order['bargain_id']) && $order['bargain_id']) return true;
|
|
|
+
|
|
|
+ $userInfo = User::getUserInfo($order['uid']);
|
|
|
+ $cartInfo = StoreOrderCartInfo::whereIn('cart_id', $order['cart_id'])->column('cart_info');
|
|
|
+ $suit = 0;
|
|
|
+ foreach ($cartInfo as $value) {
|
|
|
+ $product = json_decode($value, true);
|
|
|
+ if (isset($product['productInfo'])) {
|
|
|
+ if ($product['is_suit']) {
|
|
|
+ $suit += $product['cart_num'] ?? 0;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
- }catch (Exception $e)
|
|
|
- {
|
|
|
- @file_put_contents("jialie.txt",$e->getLine().'--'.$e->getMessage()."-end\r\n",8);
|
|
|
+ $res = true;
|
|
|
+ $suit_give_integral = sys_config('suit_give_integral', 0, true);
|
|
|
+ $suit_give_gf = sys_config('suit_give_gf', 0, true);
|
|
|
+ if ($suit_give_integral > 0) {
|
|
|
+ //获得积分
|
|
|
+ $brokeragePrice = bcmul($suit_give_integral, $suit, 2);
|
|
|
+ if ($brokeragePrice > 0) {
|
|
|
+ $mark = '购买套装商品,获得积分' . $brokeragePrice;
|
|
|
+ $res = $res && UserBill::income('购买套装赠送', $userInfo['uid'], 'integral', 'suit_gain', $brokeragePrice, $order['id'], bcadd($userInfo['integral'], $brokeragePrice, 2), $mark);
|
|
|
+ $res = $res && User::where('uid', $userInfo['uid'])->inc('integral', $brokeragePrice)->update();
|
|
|
+ }
|
|
|
}
|
|
|
- return true;
|
|
|
+
|
|
|
+// if ($suit_give_gf > 0 && SystemStoreMember::be(['uid' => $userInfo['uid']])) {
|
|
|
+// //获得股份
|
|
|
+// $brokeragePrice = bcmul($suit_give_gf, $suit, 2);
|
|
|
+// if ($brokeragePrice > 0) {
|
|
|
+// $res = $res && SystemStoreMember::where('uid', $userInfo['uid'])->inc('consume_rights', $brokeragePrice)->update();
|
|
|
+// }
|
|
|
+// }
|
|
|
+
|
|
|
+ return $res;
|
|
|
}
|
|
|
|
|
|
}
|