王总上门按摩后台代码
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
shangmenanmo/app/card/model/CardValue.php

195 lines
7.3 KiB

<?php
namespace app\card\model;
use app\BaseModel;
use app\dynamic\model\CardShareGroup;
use think\Model;
class CardValue extends BaseModel
{
//定义表名
protected $name = 'longbing_card_value';
protected static function init ()
{
//TODO:初始化内容
}
public function getlist($where){
return $this->where($where)->order('update_time','desc')->find();
}
public function bossGetAiValue ( $id,$uniacid )
{
$value = [
'client' => 0, // 获客能力值
'charm' => 0, // 个人魅力值
'interaction' => 0, // 客户互动值
'product' => 0, // 产品推广值
'website' => 0, // 官网推广度
'active' => 0, // 销售主动性值
];
$check = $this->getlist([ 'staff_id' => $id ]);
if ( !$check || ( $check && time() - $check[ 'update_time' ] > 24 * 60 * 60 ) ) {
$colle = new Collection();
// 获客能力值
$client = $colle->getlistCount(['status' => 1, 'to_uid' => $id,]);
if ( $client > 0 ) {
$client -= 1;
}
$value[ 'client' ] = $client;
$card_count = new CardCount();
// 个人魅力值
$list1 = $card_count->getCount([ 'sign' => 'praise', 'type' => 1, 'to_uid' => $id ]);
$list2 = $card_count->getCount( [ 'sign' => 'praise', 'type' => 3, 'to_uid' => $id ]);
$list3 = $card_count->getCount([ 'sign' => 'copy', 'to_uid' => $id ]);
$count = $list1 + $list2+ $list3;
$value[ 'charm' ] = $count;
$card_message = new CardMessage();
// 客户互动值
$list1 = $card_message->getCount([ 'user_id' => $id ]);
$list2 = $card_message->getCount([ 'target_id' => $id ]);
$list3 = $card_count->getCount([ 'sign' => 'view', 'to_uid' => $id ]);
$count = $list1 + $list2 + $list3;
$value[ 'interaction' ] = $count;
$extension = new CardExtension();
$mark = new UserMark();
$forward = new CardForward();
$group = new CardShareGroup();
// 产品推广值
$list1 = $extension->getCount([ 'user_id' => $id, 'uniacid' => $uniacid ]);
$list2 = $mark->getCount([ 'staff_id' => $id, 'uniacid' => $uniacid, 'mark' => 2 ]);
$list3 = $forward->forwardCount([ 'staff_id' => $id, 'uniacid' => $uniacid, 'type' => 2 ]);
$where=[['user_id','=',$id],['uniacid','=',$uniacid], ['view_goods','<>',''] ];
$list4 = $group->getCount($where);
$count = $list1 + $list2 + $list3 + $list4;
$value[ 'product' ] = $count;
// 官网推广度
$list1 = $card_count->getCount([ 'sign' => 'view', 'type' => 6, 'to_uid' => $id ]);
$list2 = $forward->forwardCount([ 'staff_id' => $id, 'uniacid' => $uniacid, 'type' => 4 ]);
$count = $list1 + $list2;
$value[ 'website' ] = $count;
$follow = new UserFollow();
// 销售主动性值
$list1 = $card_message->getCount([ 'user_id' => $id ]);
$list2 = $card_message->getCount([ 'target_id' => $id ]);
$list3 = $follow->getCount([ 'staff_id' => $id ]);
$list4 = $mark->getCount([ 'staff_id' => $id ]);
$count = $list1 + $list2 + $list3+ $list4;
$value[ 'active' ] = $count;
$insertData = $value;
$insertData[ 'staff_id' ] = $id;
$time = time();
$insertData[ 'update_time' ] = $time;
$insertData[ 'uniacid' ] = $uniacid;
if ( !$check ) {
$insertData[ 'create_time' ] = $time;
$this->createRow($insertData);
} else {
$insertData[ 'update_time' ] = $time;
$this->upsave([ 'id' => $check[ 'id' ]],$insertData);
}
} else {
$value = [
'client' => $check[ 'client' ], // 获客能力值
'charm' => $check[ 'charm' ], // 个人魅力值
'interaction' => $check[ 'interaction' ], // 客户互动值
'product' => $check[ 'product' ], // 产品推广值
'website' => $check[ 'website' ], // 官网推广度
'active' => $check[ 'active' ], // 销售主动性值
];
}
$max=array_sum(array($value[ 'active' ],$value[ 'charm' ],$value[ 'client' ],$value[ 'interaction' ],$value[ 'product' ],$value[ 'website' ]));
$web_name = tabbarName(4,$uniacid);
$data = [
[
'name'=>'销售主动性值',
'number'=>$value[ 'active' ],
],
[
'name'=>!empty($web_name)?$web_name.'推广度':'官网推广度',
'number'=>$value[ 'website' ],
$bb[] = $value[ 'website' ]
],
[
'name'=>'产品推广值',
'number'=>$value[ 'product' ],
],
[
'name'=>'客户互动值',
'number'=>$value[ 'interaction' ],
],
[
'name'=>'获客能力值',
'number'=>$value[ 'client' ],
],
[
'name'=>'个人魅力值',
'number'=>$value[ 'charm' ],
],
];
return ['max'=>$max,'data'=>$data];
}
function bossAi ($user_list, $uniacid )
{
$max = [
0 => 0, // 销售主动性值
1 => 0, // 官网推广度
2 => 0, // 产品推广值
3 => 0, // 客户互动值
4 => 0, // 获客能力值
5 => 0, // 个人魅力值
];
$staff_list = User::where( [ [ 'uniacid', '=', $uniacid ], [ 'is_staff', '=', 1 ] ] )
->field( [ 'id', 'nickName' ] )
->where('id','in',$user_list)
->select()
->toArray();
foreach ( $staff_list as $k => $v )
{
$total = 0;
$value = $this->bossGetAiValue( $v[ 'id' ], $uniacid );
foreach ( $value['data'] as $k2 => $v2 )
{
if ( $v2[ 'number' ] > $max[ $k2 ] )
{
$max[ $k2 ] = $v2[ 'number' ];
}
$total += $v2[ 'number' ];
}
$staff_list[ $k ][ 'number' ] = $value['data'];
//$staff_list[ $k ][ 'total' ] = $total;
// $staff_list[ $k ][ 'info' ] = $info;
}
// // 二维数组排序
// array_multisort( array_column( $staff_list, 'total' ), SORT_DESC, $staff_list );
//
// $staff_list = array_splice( $staff_list, 0, 3 );
$data = ['max_data' => $max,'max_number'=>max($max) ];
return $data;
}
}