|
@@ -4,6 +4,7 @@ namespace app\api\controller;
|
|
|
|
|
|
use app\common\controller\Api;
|
|
|
use think\Db;
|
|
|
+use app\utils\RedisUtil;
|
|
|
/**
|
|
|
* 示例接口
|
|
|
*/
|
|
@@ -115,80 +116,81 @@ class Demo extends Api
|
|
|
//业务员奖
|
|
|
public function yewuyuan(){
|
|
|
$user_id = 1;
|
|
|
+ $last_month = date('Ym',strtotime(date('Y-m-01')) - 86400);
|
|
|
|
|
|
- //我直推商家的总数量。以后需要冗余到user表
|
|
|
+ //我直推线下商家的总数量。
|
|
|
$invite_count = Db::name('offline_shop')->where('invite_id',$user_id)->count();
|
|
|
|
|
|
- //我上个月直推商家的总数量
|
|
|
+ //我上个月直推线下商家的总数量
|
|
|
$invite_count_mon = Db::name('offline_shop')->where('invite_id',$user_id)->whereTime('create_time','last month')->count();
|
|
|
|
|
|
- //我的直推业绩
|
|
|
+ //我的个人业绩。我所有直推线下商家的3-20%的让利总额
|
|
|
$invite_amount = Db::name('bill')->where('shop_invite_id',$user_id)->where('table_name','offline_shop_order')->where('back_status','neq',0)
|
|
|
->whereTime('createtime','last month')->sum('back_amount');
|
|
|
|
|
|
//我团队业绩
|
|
|
- $invite_uids = $this->get_all_down_uids();
|
|
|
+ $invite_uids = $this->get_all_down_uids($user_id);
|
|
|
$invite_amount_tuandui = Db::name('bill')->where('shop_invite_id','IN',$invite_uids)->where('table_name','offline_shop_order')->where('back_status','neq',0)
|
|
|
->whereTime('createtime','last month')->sum('back_amount');
|
|
|
|
|
|
//补贴/提成
|
|
|
$butie = 0; //补贴
|
|
|
- $ticheng_rate = 0; //个人业绩提成 比例
|
|
|
- $ticheng = 0; //个人业绩提成
|
|
|
+ $yeji = 0; //个人业绩提成
|
|
|
+ $yingxiao_level = 0;//用户的营销等级
|
|
|
|
|
|
//各级的条件
|
|
|
$level_list = Db::name('yingxiao_level')->order('id asc')->select();
|
|
|
foreach($level_list as $level){
|
|
|
- if($level['type'] == 1){
|
|
|
+ if($level['type'] == 1 || 1==1){
|
|
|
//营销经理
|
|
|
if($invite_amount_tuandui >= $level['invite_amount_tuandui'] && $invite_amount >= $level['invite_amount'] && $invite_count >= $level['invite_count']){
|
|
|
- $butie = $level['butie'];
|
|
|
- $ticheng_rate = $level['ticheng_rate'];
|
|
|
+ $butie = $level['butie'];
|
|
|
+ $yeji_rate = $level['yeji_rate'];
|
|
|
|
|
|
- $ticheng = bcdiv(bcmul($invite_amount,$ticheng_rate,2),100,2);
|
|
|
+ $yeji = bcdiv(bcmul($invite_amount,$yeji_rate,2),100,2);
|
|
|
|
|
|
- //公司分红(a%评分,b%业绩加权)
|
|
|
+ $yingxiao_level = $level['id'];
|
|
|
+
|
|
|
+ //公司分红(a%平分,b%业绩加权)
|
|
|
+ $redis_key_a = $last_month . '_yingxiao_a_' . $yingxiao_level;
|
|
|
+ RedisUtil::getInstance($redis_key_a)->lPush($user_id);
|
|
|
+
|
|
|
+ //redis左推入当前用户
|
|
|
+ $redis_key_b = $last_month . '_yingxiao_b_' . $yingxiao_level;
|
|
|
+ RedisUtil::getInstance($redis_key_b)->lPush([
|
|
|
+ 'user_id' => $user_id,'invite_amount_tuandui' => $invite_amount_tuandui,
|
|
|
+ ]);
|
|
|
+
|
|
|
+ continue;
|
|
|
}
|
|
|
}else{
|
|
|
//营销员
|
|
|
if($invite_amount >= 60000 && $invite_count_mon >= 5){
|
|
|
- $butie = 5000;
|
|
|
- $ticheng_rate = 5;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- //高级营销经理
|
|
|
- if($invite_amount_tuandui >= 800000 && $invite_amount >= 70000 && $invite_count >= 10){
|
|
|
- $butie = 12000;
|
|
|
- $ticheng_rate = 5;
|
|
|
+ $butie = $level['butie'];
|
|
|
+ $yeji_rate = $level['yeji_rate'];
|
|
|
|
|
|
- $ticheng = bcdiv(bcmul($invite_amount,$ticheng_rate,2),100,2);
|
|
|
+ $yeji = bcdiv(bcmul($invite_amount,$yeji_rate,2),100,2);
|
|
|
|
|
|
- //公司分红(a%评分,b%业绩加权)
|
|
|
- }
|
|
|
+ $yingxiao_level = $level['id'];
|
|
|
|
|
|
- //初级营销经理
|
|
|
- if($invite_amount_tuandui >= 200000 && $invite_amount >= 70000 && $invite_count >= 10){
|
|
|
- $butie = 7000;
|
|
|
- $ticheng_rate = 5;
|
|
|
- }
|
|
|
-
|
|
|
- //高级营销员
|
|
|
- if($invite_amount >= 60000 && $invite_count_mon >= 5){
|
|
|
- $butie = 5000;
|
|
|
- $ticheng_rate = 5;
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
- //初级营销员
|
|
|
- if($invite_amount >= 30000 && $invite_count_mon >= 3){
|
|
|
- $butie = 3000;
|
|
|
- $ticheng_rate = 3;
|
|
|
+ if($yingxiao_level != 0){
|
|
|
+ if($butie > 0){
|
|
|
+ //给 $user_id 发 补贴
|
|
|
+ }
|
|
|
+ if($yeji > 0){
|
|
|
+ //给 $user_id 发 个人业绩
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
+ }
|
|
|
|
|
|
-
|
|
|
-
|
|
|
+ private function get_all_down_uids($user_id){
|
|
|
+ return $user_id;
|
|
|
}
|
|
|
|
|
|
//每月初执行,跑代理辅助表,把上个月的数据全部推送到 代理队列
|