parent
4466400bc1
commit
35e2d9d621
@ -0,0 +1,65 @@
|
||||
<?php
|
||||
namespace app\common;
|
||||
|
||||
use think\facade\Db;
|
||||
|
||||
class Affiliate{
|
||||
public static function calculateProfitShare($order){
|
||||
$affiliate = json_decode(getConfigValue('affiliate'),true);
|
||||
|
||||
//是否開啟分銷
|
||||
if(!$affiliate['on']){
|
||||
return ['code'=>-1,'msg'=>'未開啟分銷'];
|
||||
}
|
||||
|
||||
//檢查是否已經計算過
|
||||
$is_calculate = Db::name('affiliate_log')->where('order_id', $order['order_id'])->count();
|
||||
if($is_calculate){
|
||||
return ['code'=>-1,'msg'=>'已經計算過'];
|
||||
}
|
||||
|
||||
|
||||
try {
|
||||
//找出第一二三四層介紹人
|
||||
$sso_user_id = Db::name('users')->where('user_id', $order['user_id'])->value('sso_user_id');
|
||||
|
||||
$parents = self::getAffiliate($sso_user_id, 1);
|
||||
|
||||
foreach ($parents as $key => $value) {
|
||||
//計算分銷金額
|
||||
$money[$key] = $order['order_amount'] * $affiliate['item'][$key]['level_money'] / 100;
|
||||
|
||||
//寫入affiliate_log
|
||||
$affiliate_log = [
|
||||
'user_id' => Db::name('users')->where('sso_user_id', $value)->value('user_id'),
|
||||
'order_id' => $order['order_id'],
|
||||
'time' => time(),
|
||||
'user_name' => Db::name('users')->where('sso_user_id', $value)->value('real_name'),
|
||||
'money' => $money[$key],
|
||||
];
|
||||
Db::name('affiliate_log')->insert($affiliate_log);
|
||||
//增加介紹人的獎金
|
||||
Db::name('users')->where('sso_user_id', $value)->inc('frozen_money', $money[$key])->update();
|
||||
}
|
||||
return true;
|
||||
} catch (\Exception $e) {
|
||||
print_r($e->getMessage());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
private static function getAffiliate($sso_user_id, $level = 1)
|
||||
{
|
||||
$parents = [];
|
||||
$parent_id = Db::name('users')->where('sso_user_id', $sso_user_id)->value('parent_id');
|
||||
|
||||
if ($parent_id) {
|
||||
$parents[$level] = $parent_id;
|
||||
$level++;
|
||||
$return = self::getAffiliate($parent_id, $level);
|
||||
$parents = array_merge($parents, $return);
|
||||
}
|
||||
|
||||
return $parents;
|
||||
}
|
||||
}
|
||||
Loading…
Reference in new issue