|
|
@@ -327,12 +327,12 @@ class StoreOrder extends BaseModel
|
|
|
if (!$combinationId) $combinationId = $cart['combination_id'];
|
|
|
$cartInfoGainIntegral = isset($cart['productInfo']['give_integral']) ? bcmul($cart['cart_num'], $cart['productInfo']['give_integral'], 2) : 0;
|
|
|
$gainIntegral = bcadd($gainIntegral, $cartInfoGainIntegral, 2);
|
|
|
- if ($cart['productInfo']['is_health']==1){
|
|
|
+ if ($cart['productInfo']['is_health'] == 1) {
|
|
|
$is_type = 4;
|
|
|
- }elseif($cart['productInfo']['is_life']==1){
|
|
|
+ } elseif ($cart['productInfo']['is_life'] == 1) {
|
|
|
$is_type = 5;
|
|
|
}
|
|
|
- if ($cart['productInfo']['is_explosive']!=1&&$userInfo['is_first']==0){
|
|
|
+ if ($cart['productInfo']['is_explosive'] != 1 && $userInfo['is_first'] == 0) {
|
|
|
return self::setErrorInfo('首单只能购买报单商品', true);
|
|
|
}
|
|
|
}
|
|
|
@@ -384,9 +384,9 @@ class StoreOrder extends BaseModel
|
|
|
return self::setErrorInfo('请选择门店', true);
|
|
|
}
|
|
|
}
|
|
|
- $is_brokerage=0;
|
|
|
- if ($is_type==4||$is_type==5){
|
|
|
- $is_brokerage=1;
|
|
|
+ $is_brokerage = 0;
|
|
|
+ if ($is_type == 4 || $is_type == 5) {
|
|
|
+ $is_brokerage = 1;
|
|
|
//佣金抵扣
|
|
|
$res2 = true;
|
|
|
$SurplusIntegral = $userInfo['brokerage_price'];
|
|
|
@@ -422,10 +422,10 @@ class StoreOrder extends BaseModel
|
|
|
if (!$res2) return self::setErrorInfo('使用健康币抵扣失败!', true);
|
|
|
if ($payPrice <= 0) $payPrice = 0;
|
|
|
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
// //积分抵扣
|
|
|
$res2 = true;
|
|
|
- $is_brokerage=0;
|
|
|
+ $is_brokerage = 0;
|
|
|
$SurplusIntegral = $userInfo['integral'];
|
|
|
if ($payIntegral > 0) {
|
|
|
if ($userInfo['integral'] < $payIntegral) {
|
|
|
@@ -548,8 +548,8 @@ class StoreOrder extends BaseModel
|
|
|
*/
|
|
|
public static function RegressionIntegral($order)
|
|
|
{
|
|
|
- if (!empty($order['is_brokerage'])){
|
|
|
- if ($order['is_brokerage']==1){
|
|
|
+ if (!empty($order['is_brokerage'])) {
|
|
|
+ if ($order['is_brokerage'] == 1) {
|
|
|
return self::RegressionBrokerage($order);
|
|
|
}
|
|
|
}
|
|
|
@@ -635,9 +635,9 @@ class StoreOrder extends BaseModel
|
|
|
self::beginTrans();
|
|
|
try {
|
|
|
$orderInfo = $order->toArray();
|
|
|
- if ($orderInfo['is_brokerage']==1){
|
|
|
+ if ($orderInfo['is_brokerage'] == 1) {
|
|
|
$res = self::RegressionBrokerage($order) && self::RegressionStock($order) && self::RegressionCoupon($order);
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
$res = self::RegressionIntegral($order) && self::RegressionStock($order) && self::RegressionCoupon($order);
|
|
|
}
|
|
|
$order->is_del = 1;
|
|
|
@@ -760,6 +760,7 @@ class StoreOrder extends BaseModel
|
|
|
self::checkTrans($res);
|
|
|
return $res;
|
|
|
}
|
|
|
+
|
|
|
/**
|
|
|
* 佣金(健康币)支付
|
|
|
* @param $order_id
|
|
|
@@ -795,6 +796,7 @@ class StoreOrder extends BaseModel
|
|
|
self::checkTrans($res);
|
|
|
return $res;
|
|
|
}
|
|
|
+
|
|
|
/**
|
|
|
* 微信支付 为 0元时
|
|
|
* @param $order_id
|
|
|
@@ -896,19 +898,21 @@ class StoreOrder extends BaseModel
|
|
|
//支付成功后
|
|
|
event('OrderPaySuccess', [$order, $formId]);
|
|
|
$type = User::where('uid', $order['uid'])->value('is_first');
|
|
|
- if ($type == 1){
|
|
|
+ if ($type == 1) {
|
|
|
self::team_rewards($order, 2); //分发团队奖励 2复购
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
self::team_rewards($order, 1); //分发团队奖励 1首单
|
|
|
User::where('uid', $order['uid'])->update(['is_first' => 1]); //修改用户是否首单
|
|
|
}
|
|
|
$res = $res1 && $resPink && UserSpread::setSpreadSure($order['uid']) && User::backOrderBrokerage($order);
|
|
|
return false !== $res;
|
|
|
}
|
|
|
+
|
|
|
// 分发团队奖励 1首单 2复购
|
|
|
public static function team_rewards($order, $type)
|
|
|
{
|
|
|
try {
|
|
|
+ $nickname = User::where('uid', $order['uid'])->value('nickname');
|
|
|
$user_spread_group = self::get_spread_user($order['uid']); //获取所有上级id
|
|
|
@file_put_contents('quanju.txt', json_encode($user_spread_group) . "-所有上级\r\n", 8);
|
|
|
$group_info = User::where('uid', 'in', $user_spread_group)->column('uid,level'); //获取所有上级信息
|
|
|
@@ -920,16 +924,16 @@ class StoreOrder extends BaseModel
|
|
|
// 统计每个level出现的次数
|
|
|
$levelCounts = array_count_values($groupIds);
|
|
|
@file_put_contents('quanju.txt', json_encode($levelCounts) . "-所有等级的人数2222\r\n", 8);
|
|
|
- $levelCounts2=[];
|
|
|
+ $levelCounts2 = [];
|
|
|
foreach ($levelCounts as $k => $v) { //遍历所有等级
|
|
|
- $level_id=$make->where('id',$k)->value('grade');
|
|
|
+ $level_id = $make->where('id', $k)->value('grade');
|
|
|
$levelCounts2[$level_id] = $v;
|
|
|
}
|
|
|
|
|
|
if ($type == 1) {
|
|
|
$field = 'first_ratio';
|
|
|
$title = '首单奖励';
|
|
|
- }elseif ($type == 2){
|
|
|
+ } elseif ($type == 2) {
|
|
|
$field = 'ratio';
|
|
|
$title = '复购奖励';
|
|
|
}
|
|
|
@@ -938,36 +942,53 @@ class StoreOrder extends BaseModel
|
|
|
$last_num = 0;
|
|
|
$last_level = 0;
|
|
|
foreach ($levelCounts2 as $k => $v) { //遍历所有等级
|
|
|
- if ($v>0){
|
|
|
+ if ($v > 0) {
|
|
|
@file_put_contents('quanju.txt', $v . "-当前等级的人数\r\n", 8);
|
|
|
@file_put_contents('quanju.txt', $k . "-当前等级\r\n", 8);
|
|
|
$level_group = User::where('level', $k)->where('uid', 'in', $user_spread_group)->column('uid,nickname,brokerage_price,level'); //获取这个等级的所有用户
|
|
|
|
|
|
- $level = $make->where('grade',$k)->find(); //用户等级
|
|
|
+ $level = $make->where('grade', $k)->find(); //用户等级
|
|
|
if ($level) {
|
|
|
- $ratio = bcmul($level[$field],0.01,2); //奖励比例
|
|
|
+ $ratio = bcmul($level[$field], 0.01, 2); //奖励比例
|
|
|
@file_put_contents('quanju.txt', $ratio . "-当前等级比例\r\n", 8);
|
|
|
$award_price = bcmul($order['total_price'], $ratio, 2); //奖励金额
|
|
|
@file_put_contents('quanju.txt', $award_price . "-当前等级分到的总金额\r\n", 8);
|
|
|
- if ($last_num>0){
|
|
|
- $award_price = bcsub($award_price,$last_num,2); //当前等级分到的总金额扣除上个等级分到的总金额
|
|
|
+ if ($last_num > 0) {
|
|
|
+ $award_price = bcsub($award_price, $last_num, 2); //当前等级分到的总金额扣除上个等级分到的总金额
|
|
|
}
|
|
|
@file_put_contents('quanju.txt', $award_price . "-扣除上个等级分到的总金额后的当前等级分到的总金额\r\n", 8);
|
|
|
- $last_num = bcadd($last_num,$award_price,2); //之前等级分到的总金额
|
|
|
+ $last_num = bcadd($last_num, $award_price, 2); //之前等级分到的总金额
|
|
|
@file_put_contents('quanju.txt', $last_num . "-需要扣除的上个等级分到的总金额\r\n", 8);
|
|
|
- $user_award = bcdiv($award_price,$v,2); //每个用户奖励金额
|
|
|
+ $user_award = bcdiv($award_price, $v, 2); //每个用户奖励金额
|
|
|
@file_put_contents('quanju.txt', $user_award . "-当前等级分到的个人金额\r\n", 8);
|
|
|
- if ($user_award <=0){
|
|
|
+ if ($user_award <= 0) {
|
|
|
continue;
|
|
|
}
|
|
|
- foreach ($level_group as $key => $value){
|
|
|
+ foreach ($level_group as $key => $value) {
|
|
|
$after = bcadd($value['brokerage_price'], $user_award, 2); //更新用户奖励金额
|
|
|
@file_put_contents('quanju.txt', $after . "-当前等级分到个人金额结算之后\r\n", 8);
|
|
|
- $mark = $value['nickname'].'获得分账健康币'.$title . ':' . $user_award . '元';
|
|
|
+ $mark = $value['nickname'] . '获得分账健康币' . $title . ':' . $user_award . '元';
|
|
|
$res = UserBill::income('获得分账健康币', $value['uid'], 'brokerage_price', 'spread_award', $user_award, $order['id'], $after, $mark, 1);
|
|
|
User::where('uid', $value['uid'])->update(['brokerage_price' => $after]);
|
|
|
+ // 通知提现用户
|
|
|
+ $openid = WechatUser::where('uid', $value['uid'])->value('openid');
|
|
|
+ if (!empty($openid)) {
|
|
|
+ $group = [
|
|
|
+ 'first' => '获得健康币分账',
|
|
|
+ 'remark' => '点击查看订单详情'
|
|
|
+ ];
|
|
|
+ $time = date('Y-m-d H:i:s', time());
|
|
|
+ $group = array_merge($group, [
|
|
|
+ 'amount1' => $user_award, //到账金额
|
|
|
+ 'thing12' => $nickname, //付款人
|
|
|
+ 'time3' => $time, //支付时间
|
|
|
+ ]);
|
|
|
+
|
|
|
+ @file_put_contents('quanju.txt', json_encode($group) . "-模版消息5\r\n", 8);
|
|
|
+ $res = WechatTemplateService::sendTemplate($openid, WechatTemplateService::BROKERAGE_PRICE, $group);
|
|
|
+ @file_put_contents('quanju.txt', json_encode($res) . "-模版消息返回5\r\n", 8);
|
|
|
+ }
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -976,13 +997,14 @@ class StoreOrder extends BaseModel
|
|
|
@file_put_contents('quanju.txt', $e->getLine() . "-团队奖励错误位置\r\n", 8);
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
//获取所有上级id
|
|
|
public static function get_spread_user($id, $init = true, $parentMap = null)
|
|
|
{
|
|
|
if ($init) {
|
|
|
// 获取所有用户的上级映射 (uid => spread_uid)
|
|
|
$us = User::column('spread_uid', 'uid');
|
|
|
- @file_put_contents('quanju.txt',json_encode($us) . "-所有人选\r\n", 8);
|
|
|
+ @file_put_contents('quanju.txt', json_encode($us) . "-所有人选\r\n", 8);
|
|
|
$parentMap = $us; // 存储 uid->上级ID 的映射
|
|
|
$id = (array)$id; // 确保ID转为数组
|
|
|
}
|
|
|
@@ -1711,9 +1733,9 @@ class StoreOrder extends BaseModel
|
|
|
if ($time == 0) return true;
|
|
|
if (($order['add_time'] + bcmul($time, 3600, 0)) < time()) {
|
|
|
$res1 = self::RegressionStock($order);
|
|
|
- if ($order['is_brokerage']==1){
|
|
|
+ if ($order['is_brokerage'] == 1) {
|
|
|
$res2 = self::RegressionBrokerage($order);
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
$res2 = self::RegressionIntegral($order);
|
|
|
}
|
|
|
$res3 = self::RegressionCoupon($order);
|