|
@@ -1129,82 +1129,82 @@ class StoreOrderRepository extends BaseRepository
|
|
|
$integral_type = 'spread_pack_integral';
|
|
$integral_type = 'spread_pack_integral';
|
|
|
$number2 = systemConfig('award_integral_gift_pack', 1);
|
|
$number2 = systemConfig('award_integral_gift_pack', 1);
|
|
|
}
|
|
}
|
|
|
- $number2 = bcmul($number2,0.01,2);
|
|
|
|
|
|
|
+ $number2 = bcmul($number2, 0.01, 2);
|
|
|
if ($type == 5 || $type == 0) { //节能油商品和普通商品
|
|
if ($type == 5 || $type == 0) { //节能油商品和普通商品
|
|
|
// $number = systemConfig('award_energy_saving_oil', 1); //获得份额的基准线
|
|
// $number = systemConfig('award_energy_saving_oil', 1); //获得份额的基准线
|
|
|
// if ($order['pay_price'] >= $number) {
|
|
// if ($order['pay_price'] >= $number) {
|
|
|
// $count = app()->make(User::class)->spread_order($order['uid']); //获取推荐下级订单数
|
|
// $count = app()->make(User::class)->spread_order($order['uid']); //获取推荐下级订单数
|
|
|
- $count = $user['spread_pay_count'];
|
|
|
|
|
- $multiple = systemConfig('award_ordinary', 3); //获得份额的倍数
|
|
|
|
|
- @file_put_contents('quanju.txt', $count . "-下级订单数量\r\n", 8);
|
|
|
|
|
- if ($count > 0) {
|
|
|
|
|
- $order_award_range = bcmul($order['pay_price'], $multiple, 2);
|
|
|
|
|
- } else {
|
|
|
|
|
- $multiple = bcsub($multiple, 1, 0);
|
|
|
|
|
- $order_award_range = bcmul($order['pay_price'], 1, 2);
|
|
|
|
|
- $unclaimed_range = bcmul($order['pay_price'], $multiple, 2);
|
|
|
|
|
- $unclaimed_range_after = bcadd($user['unclaimed_range'], $unclaimed_range, 2);
|
|
|
|
|
- // 发放冻结份额
|
|
|
|
|
- $make->incBill($order['uid'], 'award_unclaimed_range', 'unclaimed_range', [
|
|
|
|
|
- 'number' => $unclaimed_range,
|
|
|
|
|
- 'title' => '下单商品获得冻结份额',
|
|
|
|
|
- 'balance' => $unclaimed_range_after,
|
|
|
|
|
- 'status' => 1,
|
|
|
|
|
- 'link_id' => $order['order_id'],
|
|
|
|
|
- 'mark' => $user['nickname'] . '成功消费' . $mark . '商品' . floatval($order['pay_price']) . '元,奖励冻结分红额度' . $order_award_range,
|
|
|
|
|
- ]);
|
|
|
|
|
-
|
|
|
|
|
- User::where('uid', $order['uid'])->update(['unclaimed_range' => $unclaimed_range_after]);
|
|
|
|
|
- }
|
|
|
|
|
-// 发放分红份额
|
|
|
|
|
- $after = bcadd($award_range, $order_award_range, 2);
|
|
|
|
|
- $make->incBill($order['uid'], 'award_range', $range_type, [
|
|
|
|
|
- 'number' => $order_award_range,
|
|
|
|
|
- 'title' => '下单' . $mark . '商品获得分红额度',
|
|
|
|
|
- 'balance' => $after,
|
|
|
|
|
|
|
+ $count = $user['spread_pay_count'];
|
|
|
|
|
+ $multiple = systemConfig('award_ordinary', 3); //获得份额的倍数
|
|
|
|
|
+ @file_put_contents('quanju.txt', $count . "-下级订单数量\r\n", 8);
|
|
|
|
|
+ if ($count > 0) {
|
|
|
|
|
+ $order_award_range = bcmul($order['pay_price'], $multiple, 2);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ $multiple = bcsub($multiple, 1, 0);
|
|
|
|
|
+ $order_award_range = bcmul($order['pay_price'], 1, 2);
|
|
|
|
|
+ $unclaimed_range = bcmul($order['pay_price'], $multiple, 2);
|
|
|
|
|
+ $unclaimed_range_after = bcadd($user['unclaimed_range'], $unclaimed_range, 2);
|
|
|
|
|
+ // 发放冻结份额
|
|
|
|
|
+ $make->incBill($order['uid'], 'award_unclaimed_range', 'unclaimed_range', [
|
|
|
|
|
+ 'number' => $unclaimed_range,
|
|
|
|
|
+ 'title' => '下单商品获得冻结份额',
|
|
|
|
|
+ 'balance' => $unclaimed_range_after,
|
|
|
'status' => 1,
|
|
'status' => 1,
|
|
|
'link_id' => $order['order_id'],
|
|
'link_id' => $order['order_id'],
|
|
|
- 'mark' => $user['nickname'] . '成功消费' . $mark . '商品' . floatval($order['pay_price']) . '元,奖励分红额度' . $order_award_range,
|
|
|
|
|
|
|
+ 'mark' => $user['nickname'] . '成功消费' . $mark . '商品' . floatval($order['pay_price']) . '元,奖励冻结分红额度' . $order_award_range,
|
|
|
]);
|
|
]);
|
|
|
- User::where('uid', $order['uid'])->update(['award_range' => $after]);
|
|
|
|
|
|
|
+
|
|
|
|
|
+ User::where('uid', $order['uid'])->update(['unclaimed_range' => $unclaimed_range_after]);
|
|
|
|
|
+ }
|
|
|
|
|
+// 发放分红份额
|
|
|
|
|
+ $after = bcadd($award_range, $order_award_range, 2);
|
|
|
|
|
+ $make->incBill($order['uid'], 'award_range', $range_type, [
|
|
|
|
|
+ 'number' => $order_award_range,
|
|
|
|
|
+ 'title' => '下单' . $mark . '商品获得分红额度',
|
|
|
|
|
+ 'balance' => $after,
|
|
|
|
|
+ 'status' => 1,
|
|
|
|
|
+ 'link_id' => $order['order_id'],
|
|
|
|
|
+ 'mark' => $user['nickname'] . '成功消费' . $mark . '商品' . floatval($order['pay_price']) . '元,奖励分红额度' . $order_award_range,
|
|
|
|
|
+ ]);
|
|
|
|
|
+ User::where('uid', $order['uid'])->update(['award_range' => $after]);
|
|
|
// }
|
|
// }
|
|
|
} elseif ($type == 6) { //礼包商品
|
|
} elseif ($type == 6) { //礼包商品
|
|
|
// $number = systemConfig('award_energy_saving_oil', 1);
|
|
// $number = systemConfig('award_energy_saving_oil', 1);
|
|
|
@file_put_contents('quanju2.txt', $order['pay_price'] . "-支付金额\r\n", 8);
|
|
@file_put_contents('quanju2.txt', $order['pay_price'] . "-支付金额\r\n", 8);
|
|
|
// if ($order['pay_price'] >= $number) {
|
|
// if ($order['pay_price'] >= $number) {
|
|
|
$multiple = systemConfig('award_gift_pack', 3); //获得份额的倍数
|
|
$multiple = systemConfig('award_gift_pack', 3); //获得份额的倍数
|
|
|
- $order_award_range = bcmul($order['pay_price'], $multiple, 2);
|
|
|
|
|
- $after = bcadd($award_range, $order_award_range, 2);
|
|
|
|
|
- $res = $make->incBill($order['uid'], 'award_range', 'award_gift_pack', [
|
|
|
|
|
- 'number' => $order_award_range,
|
|
|
|
|
- 'title' => '下单礼包获得分红额度',
|
|
|
|
|
- 'balance' => $after,
|
|
|
|
|
- 'status' => 1,
|
|
|
|
|
- 'link_id' => $order['order_id'],
|
|
|
|
|
- 'mark' => $user['nickname'] . '成功消费礼包商品' . floatval($order['pay_price']) . '元,奖励分红额度' . $order_award_range,
|
|
|
|
|
- ]);
|
|
|
|
|
- User::where('uid', $order['uid'])->update(['award_range' => $after]);
|
|
|
|
|
- @file_put_contents('quanju2.txt', $res . "-结果\r\n", 8);
|
|
|
|
|
|
|
+ $order_award_range = bcmul($order['pay_price'], $multiple, 2);
|
|
|
|
|
+ $after = bcadd($award_range, $order_award_range, 2);
|
|
|
|
|
+ $res = $make->incBill($order['uid'], 'award_range', 'award_gift_pack', [
|
|
|
|
|
+ 'number' => $order_award_range,
|
|
|
|
|
+ 'title' => '下单礼包获得分红额度',
|
|
|
|
|
+ 'balance' => $after,
|
|
|
|
|
+ 'status' => 1,
|
|
|
|
|
+ 'link_id' => $order['order_id'],
|
|
|
|
|
+ 'mark' => $user['nickname'] . '成功消费礼包商品' . floatval($order['pay_price']) . '元,奖励分红额度' . $order_award_range,
|
|
|
|
|
+ ]);
|
|
|
|
|
+ User::where('uid', $order['uid'])->update(['award_range' => $after]);
|
|
|
|
|
+ @file_put_contents('quanju2.txt', $res . "-结果\r\n", 8);
|
|
|
// }
|
|
// }
|
|
|
// 礼包购买数
|
|
// 礼包购买数
|
|
|
- $this->pack_count($order['uid'],$product_id);
|
|
|
|
|
|
|
+ $this->pack_count($order['uid'], $product_id);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
$award_integral = $user['award_integral'];
|
|
$award_integral = $user['award_integral'];
|
|
|
// if ($order['pay_price'] >= $number2) {
|
|
// if ($order['pay_price'] >= $number2) {
|
|
|
|
|
|
|
|
- $order_award_range = bcmul($order['pay_price'], $number2, 2);
|
|
|
|
|
- $order_award_range = bcdiv($order_award_range, $price['price'], 2); //20%的业绩除以积分价格得到分红积分
|
|
|
|
|
- $after2 = bcadd($award_integral, $order_award_range, 2);
|
|
|
|
|
- $make->incBill($order['uid'], 'award_integral', $integral_type, [
|
|
|
|
|
- 'number' => $order_award_range,
|
|
|
|
|
- 'title' => '下单' . $mark . '商品获得分红积分',
|
|
|
|
|
- 'balance' => $after2,
|
|
|
|
|
- 'status' => 1,
|
|
|
|
|
- 'link_id' => $order['order_id'],
|
|
|
|
|
- 'mark' => $user['nickname'] . '成功消费' . $mark . '商品' . floatval($order['pay_price']) . '元,奖励分红积分' . $order_award_range . '(积分价格:' . $price['price'] . ')',
|
|
|
|
|
- ]);
|
|
|
|
|
- User::where('uid', $order['uid'])->update(['award_integral' => $after2]);
|
|
|
|
|
|
|
+ $order_award_range = bcmul($order['pay_price'], $number2, 2);
|
|
|
|
|
+ $order_award_range = bcdiv($order_award_range, $price['price'], 2); //20%的业绩除以积分价格得到分红积分
|
|
|
|
|
+ $after2 = bcadd($award_integral, $order_award_range, 2);
|
|
|
|
|
+ $make->incBill($order['uid'], 'award_integral', $integral_type, [
|
|
|
|
|
+ 'number' => $order_award_range,
|
|
|
|
|
+ 'title' => '下单' . $mark . '商品获得分红积分',
|
|
|
|
|
+ 'balance' => $after2,
|
|
|
|
|
+ 'status' => 1,
|
|
|
|
|
+ 'link_id' => $order['order_id'],
|
|
|
|
|
+ 'mark' => $user['nickname'] . '成功消费' . $mark . '商品' . floatval($order['pay_price']) . '元,奖励分红积分' . $order_award_range . '(积分价格:' . $price['price'] . ')',
|
|
|
|
|
+ ]);
|
|
|
|
|
+ User::where('uid', $order['uid'])->update(['award_integral' => $after2]);
|
|
|
// }
|
|
// }
|
|
|
// 解冻冻结奖金
|
|
// 解冻冻结奖金
|
|
|
$UserRepository = app()->make(UserRepository::class);
|
|
$UserRepository = app()->make(UserRepository::class);
|
|
@@ -1247,7 +1247,7 @@ class StoreOrderRepository extends BaseRepository
|
|
|
$UserRepository = app()->make(UserRepository::class);
|
|
$UserRepository = app()->make(UserRepository::class);
|
|
|
$UserRepository->checkAward($order['uid']);
|
|
$UserRepository->checkAward($order['uid']);
|
|
|
// 上级推荐奖励的分红积分
|
|
// 上级推荐奖励的分红积分
|
|
|
- $this->getSpreadIntegral($order, $type, $user,$product_id);
|
|
|
|
|
|
|
+ $this->getSpreadIntegral($order, $type, $user, $product_id);
|
|
|
// 检测节能油或者礼包升级
|
|
// 检测节能油或者礼包升级
|
|
|
// $AwardLake = app()->make(AwardLake::class);
|
|
// $AwardLake = app()->make(AwardLake::class);
|
|
|
$awardLake = app()->make(AwardLake::class);
|
|
$awardLake = app()->make(AwardLake::class);
|
|
@@ -1276,18 +1276,18 @@ class StoreOrderRepository extends BaseRepository
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
//礼包购买数
|
|
//礼包购买数
|
|
|
- public function pack_count($uid,$product_id)
|
|
|
|
|
|
|
+ public function pack_count($uid, $product_id)
|
|
|
{
|
|
{
|
|
|
// 增加上级礼包购买数
|
|
// 增加上级礼包购买数
|
|
|
$spread_uid = User::where('uid', $uid)->value('spread_uid');
|
|
$spread_uid = User::where('uid', $uid)->value('spread_uid');
|
|
|
- if ($spread_uid > 0){
|
|
|
|
|
- $count = GiftReward::where('uid',$spread_uid)->where('product_id',$product_id)->find();
|
|
|
|
|
- if (!empty($count)){
|
|
|
|
|
|
|
+ if ($spread_uid > 0) {
|
|
|
|
|
+ $count = GiftReward::where('uid', $spread_uid)->where('product_id', $product_id)->find();
|
|
|
|
|
+ if (!empty($count)) {
|
|
|
$spread_count = bcadd($count['count'], 1, 0);
|
|
$spread_count = bcadd($count['count'], 1, 0);
|
|
|
- $res =GiftReward::where('uid',$spread_uid)->where('product_id',$product_id)->update(['count' => $spread_count,'update_time'=>time()]);
|
|
|
|
|
|
|
+ $res = GiftReward::where('uid', $spread_uid)->where('product_id', $product_id)->update(['count' => $spread_count, 'update_time' => time()]);
|
|
|
@file_put_contents('quanju.txt', json_encode($res) . "-礼包数量\r\n", 8);
|
|
@file_put_contents('quanju.txt', json_encode($res) . "-礼包数量\r\n", 8);
|
|
|
- }else{
|
|
|
|
|
- $res = GiftReward::create(['uid' => $spread_uid, 'product_id' => $product_id, 'count' => 1,'update_time'=>time()]);
|
|
|
|
|
|
|
+ } else {
|
|
|
|
|
+ $res = GiftReward::create(['uid' => $spread_uid, 'product_id' => $product_id, 'count' => 1, 'update_time' => time()]);
|
|
|
@file_put_contents('quanju.txt', json_encode($res) . "-礼包刷领\r\n", 8);
|
|
@file_put_contents('quanju.txt', json_encode($res) . "-礼包刷领\r\n", 8);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -1300,7 +1300,7 @@ class StoreOrderRepository extends BaseRepository
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// 上级推荐奖励的分红积分
|
|
// 上级推荐奖励的分红积分
|
|
|
- public function getSpreadIntegral($order, $type, $user,$product_id)
|
|
|
|
|
|
|
+ public function getSpreadIntegral($order, $type, $user, $product_id)
|
|
|
{
|
|
{
|
|
|
$price = app()->make(AwardIntegralPriceRepository::class)->awardIntegralPrice(); //分红积分价格
|
|
$price = app()->make(AwardIntegralPriceRepository::class)->awardIntegralPrice(); //分红积分价格
|
|
|
@file_put_contents('quanju.txt', json_encode($price) . "-积分金额3\r\n", 8);
|
|
@file_put_contents('quanju.txt', json_encode($price) . "-积分金额3\r\n", 8);
|
|
@@ -1355,7 +1355,7 @@ class StoreOrderRepository extends BaseRepository
|
|
|
// $pack_count = bcadd($pack_count, 1, 2);
|
|
// $pack_count = bcadd($pack_count, 1, 2);
|
|
|
// @file_put_contents('quanju.txt', $pack_count. "-礼包数加一\r\n", 8);
|
|
// @file_put_contents('quanju.txt', $pack_count. "-礼包数加一\r\n", 8);
|
|
|
$remainder = bcmod($pack_count, 3); //取余
|
|
$remainder = bcmod($pack_count, 3); //取余
|
|
|
- @file_put_contents('quanju.txt', $remainder. "-取余\r\n", 8);
|
|
|
|
|
|
|
+ @file_put_contents('quanju.txt', $remainder . "-取余\r\n", 8);
|
|
|
$award_integral = User::where('uid', $user['spread_uid'])->value('award_integral');
|
|
$award_integral = User::where('uid', $user['spread_uid'])->value('award_integral');
|
|
|
switch ($remainder) {
|
|
switch ($remainder) {
|
|
|
case 1:
|
|
case 1:
|
|
@@ -1476,29 +1476,29 @@ class StoreOrderRepository extends BaseRepository
|
|
|
$field = 'oil_level';
|
|
$field = 'oil_level';
|
|
|
$product_type = 1;
|
|
$product_type = 1;
|
|
|
$title = '节能油团队奖励';
|
|
$title = '节能油团队奖励';
|
|
|
- $performance_ratio = systemConfig('energy_saving_oil_ratio',10);
|
|
|
|
|
|
|
+ $performance_ratio = systemConfig('energy_saving_oil_ratio', 10);
|
|
|
} else {
|
|
} else {
|
|
|
$model = new GiftLevel();
|
|
$model = new GiftLevel();
|
|
|
$field = 'gift_level';
|
|
$field = 'gift_level';
|
|
|
$product_type = 2;
|
|
$product_type = 2;
|
|
|
$title = '礼包团队奖励';
|
|
$title = '礼包团队奖励';
|
|
|
- $performance_ratio = systemConfig('gift_pack_ratio',10);
|
|
|
|
|
|
|
+ $performance_ratio = systemConfig('gift_pack_ratio', 10);
|
|
|
}
|
|
}
|
|
|
- $performance_ratio = bcmul($performance_ratio,0.01,2);
|
|
|
|
|
|
|
+ $performance_ratio = bcmul($performance_ratio, 0.01, 2);
|
|
|
$level = $model->where('award_ratio', '>', 0)->select();
|
|
$level = $model->where('award_ratio', '>', 0)->select();
|
|
|
$price = bcmul($order['pay_price'], $performance_ratio, 2); //分红金额
|
|
$price = bcmul($order['pay_price'], $performance_ratio, 2); //分红金额
|
|
|
$integral_price = app()->make(AwardIntegralPriceRepository::class)->awardIntegralPrice(); //分红积分价格
|
|
$integral_price = app()->make(AwardIntegralPriceRepository::class)->awardIntegralPrice(); //分红积分价格
|
|
|
foreach ($level as $k => $v) { //遍历等级
|
|
foreach ($level as $k => $v) { //遍历等级
|
|
|
$all_performance = 0; //总业绩
|
|
$all_performance = 0; //总业绩
|
|
|
- $ratio = bcmul($v['award_ratio'],0.01,2); //奖励比例
|
|
|
|
|
|
|
+ $ratio = bcmul($v['award_ratio'], 0.01, 2); //奖励比例
|
|
|
$level_price = bcmul($price, $ratio, 2); //等级奖励金额
|
|
$level_price = bcmul($price, $ratio, 2); //等级奖励金额
|
|
|
@file_put_contents('quanju.txt', "------------------------------------------\r\n", 8);
|
|
@file_put_contents('quanju.txt', "------------------------------------------\r\n", 8);
|
|
|
@file_put_contents('quanju.txt', json_encode($v) . "-团队奖励等级信息\r\n", 8);
|
|
@file_put_contents('quanju.txt', json_encode($v) . "-团队奖励等级信息\r\n", 8);
|
|
|
@file_put_contents('quanju.txt', $level_price . "-团队奖励等级奖励金额\r\n", 8);
|
|
@file_put_contents('quanju.txt', $level_price . "-团队奖励等级奖励金额\r\n", 8);
|
|
|
foreach ($group_info as &$value) { //遍历上级统计总业绩
|
|
foreach ($group_info as &$value) { //遍历上级统计总业绩
|
|
|
- $user_grade = $model->where('id',$value[$field])->value('grade'); //用户等级
|
|
|
|
|
|
|
+ $user_grade = $model->where('id', $value[$field])->value('grade'); //用户等级
|
|
|
@file_put_contents('quanju.txt', $user_grade . "-用户等级\r\n", 8);
|
|
@file_put_contents('quanju.txt', $user_grade . "-用户等级\r\n", 8);
|
|
|
- if ($user_grade <= 0){
|
|
|
|
|
|
|
+ if ($user_grade <= 0) {
|
|
|
$user_grade = $value[$field];
|
|
$user_grade = $value[$field];
|
|
|
}
|
|
}
|
|
|
if ($user_grade >= $v['grade']) { //判断是否达到该等级
|
|
if ($user_grade >= $v['grade']) { //判断是否达到该等级
|
|
@@ -1516,8 +1516,8 @@ class StoreOrderRepository extends BaseRepository
|
|
|
@file_put_contents('quanju.txt', $all_performance . "-团队奖励所有人总业绩\r\n", 8);
|
|
@file_put_contents('quanju.txt', $all_performance . "-团队奖励所有人总业绩\r\n", 8);
|
|
|
foreach ($group_info as &$value) { //遍历上级分红
|
|
foreach ($group_info as &$value) { //遍历上级分红
|
|
|
@file_put_contents('quanju.txt', $value[$field] . "-用户等级2\r\n", 8);
|
|
@file_put_contents('quanju.txt', $value[$field] . "-用户等级2\r\n", 8);
|
|
|
- $user_grade = $model->where('id',$value[$field])->value('grade'); //用户等级
|
|
|
|
|
- if ($user_grade <= 0){
|
|
|
|
|
|
|
+ $user_grade = $model->where('id', $value[$field])->value('grade'); //用户等级
|
|
|
|
|
+ if ($user_grade <= 0) {
|
|
|
$user_grade = $value[$field];
|
|
$user_grade = $value[$field];
|
|
|
}
|
|
}
|
|
|
if ($user_grade >= $v['grade']) {
|
|
if ($user_grade >= $v['grade']) {
|
|
@@ -1533,7 +1533,7 @@ class StoreOrderRepository extends BaseRepository
|
|
|
if ($user_integral > 0) {
|
|
if ($user_integral > 0) {
|
|
|
$make->incBill($value['uid'], 'award_integral', 'oil_integral', [
|
|
$make->incBill($value['uid'], 'award_integral', 'oil_integral', [
|
|
|
'number' => $user_integral,
|
|
'number' => $user_integral,
|
|
|
- 'title' => $title.$v['name'],
|
|
|
|
|
|
|
+ 'title' => $title . $v['name'],
|
|
|
'balance' => $after,
|
|
'balance' => $after,
|
|
|
'status' => 1,
|
|
'status' => 1,
|
|
|
'link_id' => $order['order_id'],
|
|
'link_id' => $order['order_id'],
|
|
@@ -3202,6 +3202,7 @@ class StoreOrderRepository extends BaseRepository
|
|
|
event('mini_order_shipping', ['product', $order, 7, '', '']);
|
|
event('mini_order_shipping', ['product', $order, 7, '', '']);
|
|
|
// $this->confirmOil($order);
|
|
// $this->confirmOil($order);
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* 核验并核销部分订单。
|
|
* 核验并核销部分订单。
|
|
|
*
|
|
*
|
|
@@ -3216,64 +3217,70 @@ class StoreOrderRepository extends BaseRepository
|
|
|
*/
|
|
*/
|
|
|
public function verifyPartOrder($order, array $data, $serviceId = 0)
|
|
public function verifyPartOrder($order, array $data, $serviceId = 0)
|
|
|
{
|
|
{
|
|
|
- // 构建待核销商品的数量映射
|
|
|
|
|
- $stauts = 2;
|
|
|
|
|
- foreach ($data as $v) {
|
|
|
|
|
- $splitData[$v['product_id']] = $v['num'];
|
|
|
|
|
- $cart_info = StoreCart::where(['cart_id' => $v['id'],'product_id'=>$v['product_id']])->find();
|
|
|
|
|
- $verify_num = bcadd($cart_info['verify_num'],$v['num'],0);
|
|
|
|
|
- if ($verify_num>$cart_info['cart_num']){
|
|
|
|
|
- throw new ValidateException('核销数量不能大于购买数量');
|
|
|
|
|
- }
|
|
|
|
|
- if ($verify_num<$cart_info['cart_num']){ //核销数量小于购买数量
|
|
|
|
|
- $stauts = 1;
|
|
|
|
|
|
|
+ try {
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ // 构建待核销商品的数量映射
|
|
|
|
|
+ $stauts = 2;
|
|
|
|
|
+ foreach ($data as $v) {
|
|
|
|
|
+ $splitData[$v['product_id']] = $v['num'];
|
|
|
|
|
+ $cart_info = StoreCart::where(['cart_id' => $v['id'], 'product_id' => $v['product_id']])->find();
|
|
|
|
|
+ $verify_num = bcadd($cart_info['verify_num'], $v['num'], 0);
|
|
|
|
|
+ if ($verify_num > $cart_info['cart_num']) {
|
|
|
|
|
+ throw new ValidateException('核销数量不能大于购买数量');
|
|
|
|
|
+ }
|
|
|
|
|
+ if ($verify_num < $cart_info['cart_num']) { //核销数量小于购买数量
|
|
|
|
|
+ $stauts = 1;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
- }
|
|
|
|
|
- // 调用订单分割函数进行订单核销操作,并更新订单对象
|
|
|
|
|
|
|
+ // 调用订单分割函数进行订单核销操作,并更新订单对象
|
|
|
// $spl = app()->make(StoreOrderSplitRepository::class)->splitOrder($order, $splitData, $serviceId, 1);
|
|
// $spl = app()->make(StoreOrderSplitRepository::class)->splitOrder($order, $splitData, $serviceId, 1);
|
|
|
// if ($spl) $order = $spl;
|
|
// if ($spl) $order = $spl;
|
|
|
|
|
|
|
|
- // 更新订单状态为已核销,并设置核销时间和服务人员ID
|
|
|
|
|
- $order->status = 2;
|
|
|
|
|
- $order->verify_uid = 2;
|
|
|
|
|
- $order->verify_status = $stauts;
|
|
|
|
|
- $order->verify_time = date('Y-m-d H:i:s');
|
|
|
|
|
- if ($order->verify_service_id>0&&$order->verify_service_id!=$serviceId){
|
|
|
|
|
- throw new ValidateException('部分核销过的订单不能换人核销');
|
|
|
|
|
- }
|
|
|
|
|
- $order->verify_service_id = $serviceId;
|
|
|
|
|
|
|
+ // 更新订单状态为已核销,并设置核销时间和服务人员ID
|
|
|
|
|
+ $order->status = 2;
|
|
|
|
|
+ $order->verify_uid = 2;
|
|
|
|
|
+ $order->verify_status = $stauts;
|
|
|
|
|
+ $order->verify_time = date('Y-m-d H:i:s');
|
|
|
|
|
+ if ($order->verify_service_id > 0 && $order->verify_service_id != $serviceId) {
|
|
|
|
|
+ throw new ValidateException('部分核销过的订单不能换人核销');
|
|
|
|
|
+ }
|
|
|
|
|
+ $order->verify_service_id = $serviceId;
|
|
|
|
|
|
|
|
- // 触发订单核销前的事件
|
|
|
|
|
|
|
+ // 触发订单核销前的事件
|
|
|
// event('order.verify.before', compact('order'));
|
|
// event('order.verify.before', compact('order'));
|
|
|
|
|
|
|
|
- // 实例化订单状态仓库,用于后续订单状态的变更记录
|
|
|
|
|
- $storeOrderStatusRepository = app()->make(StoreOrderStatusRepository::class);
|
|
|
|
|
- // 使用事务处理订单状态的更新和订单变更日志的记录
|
|
|
|
|
- Db::transaction(function () use ($order, $storeOrderStatusRepository, $serviceId,$data) {
|
|
|
|
|
- // 执行订单核销后的处理逻辑
|
|
|
|
|
|
|
+ // 实例化订单状态仓库,用于后续订单状态的变更记录
|
|
|
|
|
+ $storeOrderStatusRepository = app()->make(StoreOrderStatusRepository::class);
|
|
|
|
|
+ // 使用事务处理订单状态的更新和订单变更日志的记录
|
|
|
|
|
+ Db::transaction(function () use ($order, $storeOrderStatusRepository, $serviceId, $data) {
|
|
|
|
|
+ // 执行订单核销后的处理逻辑
|
|
|
// $this->takeAfter($order, $order->user);
|
|
// $this->takeAfter($order, $order->user);
|
|
|
- // 保存更新后的订单信息
|
|
|
|
|
- $order->save();
|
|
|
|
|
- // 构建订单状态变更信息
|
|
|
|
|
- $orderStatus = [
|
|
|
|
|
- 'order_id' => $order->order_id,
|
|
|
|
|
- 'order_sn' => $order->order_sn,
|
|
|
|
|
- 'type' => $storeOrderStatusRepository::TYPE_ORDER,
|
|
|
|
|
- 'change_message' => '订单核销',
|
|
|
|
|
- 'change_type' => $storeOrderStatusRepository::ORDER_STATUS_TAKE,
|
|
|
|
|
- ];
|
|
|
|
|
- foreach ($data as $v) {
|
|
|
|
|
- StoreCart::where(['cart_id' => $v['id'],'product_id'=>$v['product_id']])->update(['verify_num'=>bcadd($v['num'],$v['num'],0)]);
|
|
|
|
|
- }
|
|
|
|
|
- // 根据服务人员ID是否存在,分别记录服务人员日志或管理员日志
|
|
|
|
|
- if ($serviceId) {
|
|
|
|
|
- $storeOrderStatusRepository->createServiceLog($serviceId, $orderStatus);
|
|
|
|
|
- } else {
|
|
|
|
|
- $storeOrderStatusRepository->createAdminLog($orderStatus);
|
|
|
|
|
|
|
+ // 保存更新后的订单信息
|
|
|
|
|
+ $order->save();
|
|
|
|
|
+ // 构建订单状态变更信息
|
|
|
|
|
+ $orderStatus = [
|
|
|
|
|
+ 'order_id' => $order->order_id,
|
|
|
|
|
+ 'order_sn' => $order->order_sn,
|
|
|
|
|
+ 'type' => $storeOrderStatusRepository::TYPE_ORDER,
|
|
|
|
|
+ 'change_message' => '订单核销',
|
|
|
|
|
+ 'change_type' => $storeOrderStatusRepository::ORDER_STATUS_TAKE,
|
|
|
|
|
+ ];
|
|
|
|
|
+ foreach ($data as $v) {
|
|
|
|
|
+ StoreCart::where(['cart_id' => $v['id'], 'product_id' => $v['product_id']])->update(['verify_num' => bcadd($v['num'], $v['num'], 0)]);
|
|
|
|
|
+ }
|
|
|
|
|
+ // 根据服务人员ID是否存在,分别记录服务人员日志或管理员日志
|
|
|
|
|
+ if ($serviceId) {
|
|
|
|
|
+ $storeOrderStatusRepository->createServiceLog($serviceId, $orderStatus);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ $storeOrderStatusRepository->createAdminLog($orderStatus);
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ if ($stauts == 2) {
|
|
|
|
|
+ self::confirmOil($order);
|
|
|
}
|
|
}
|
|
|
- });
|
|
|
|
|
- if ($stauts == 2){
|
|
|
|
|
- self::confirmOil($order);
|
|
|
|
|
|
|
+ } catch (\think\Exception $exception) {
|
|
|
|
|
+ throw new ValidateException($exception->getMessage());
|
|
|
}
|
|
}
|
|
|
// 触发订单核销完成后的事件
|
|
// 触发订单核销完成后的事件
|
|
|
// event('order.verify', compact('order'));
|
|
// event('order.verify', compact('order'));
|
|
@@ -3282,6 +3289,7 @@ class StoreOrderRepository extends BaseRepository
|
|
|
// event('mini_order_shipping', ['product', $order, 7, '', '']);
|
|
// event('mini_order_shipping', ['product', $order, 7, '', '']);
|
|
|
// $this->confirmOil($order);
|
|
// $this->confirmOil($order);
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* 生成微信二维码
|
|
* 生成微信二维码
|
|
|
*
|
|
*
|