优化市场部提成

master
chenzhi 4 years ago
parent f66b7088e3
commit 29e03a1718

@ -2917,7 +2917,8 @@ function isMarketAdmin()
*/
function getMarketAdmin() {
$map['group_id'] =['in',A("Market","Event")->getMarketGroupId()];
$map['group_id'] =['in',A("Market","Event")->getNoLeaderMarketGroupId()];
$data = M("auth_group_access")
->field("real_name,menber.uid,nickname")
->join("left join sys_member menber on sys_auth_group_access.uid = menber.uid")

@ -1100,3 +1100,8 @@ function getAffairMember() {
}
function getMarketLevel()
{
return A("Market","Event")->getConfig('LevelConfig');
}

@ -606,9 +606,9 @@ class MarketPercentageController extends ThinkController
} else {
$map['id'] =['in',A("Market","Event")->getNoLeaderMarketGroupId()];
$data = M("auth_group")
->where("title like '%市场%' and title != '市场总监'")
->where($map)
->select(false);
$data = M("auth_group_access")
@ -636,47 +636,30 @@ class MarketPercentageController extends ThinkController
public function marketStaffSettle($row = 10, $p = 1)
{
$map = [];
$map = [
"_string"=>'1=1'
];
$map['group_id'] = ['in', '11,12,21,25'];
//获取权限
$marketPercentage = M("auth_group")->where($map)->getField("id,market_percentage");
// $_REQUEST['pay_time']?($map['pay_time'] = $_REQUEST['pay_time']):'';
$_REQUEST['admin_id'] ? ($map['admin_id'] = $_REQUEST['admin_id']) : '';
$_REQUEST['group_id'] ? ($map['level'] = $_REQUEST['group_id']) : '';
$_REQUEST['level'] ? ($map['level'] = $_REQUEST['level']) : '';
$admin_id = $_SESSION['onethink_admin']['user_auth']['uid'];
$map['admin_id'] = $admin_id;
if (is_administrator() || session('user_group_id') == 15 || session('user_group_id') == 14 || session('user_group_id') == 19 || session('user_group_id') == 23 || session('user_group_id') == 25) {
unset($map['admin_id']);
// $markerData = M("ucenter_member")->field("id")->where(['work_status' => 1])->select();
//
// if ($markerData) {
// $admin_map['sys_member.uid'] = ['not in', array_column($markerData, 'id')];
// }
$admin_data = M("member")
->field("access.uid admin_id")
->join("left join sys_auth_group_access access on sys_member.uid = access.uid")
->join("left join sys_auth_group auth on access.group_id=auth.id")
->where(['group_id' => ['in', '11,12,21,25']])
// ->where($admin_map)
->select();
if ($admin_data) {
$map['admin_id'] = ['in', array_column($admin_data, 'admin_id')];
$gid = session('user_group_id');
$markerGroup = $this->MarketEvent->isMarketAdminGroup($gid);
if($markerGroup){
if( $this->MarketEvent->isDepartmentLeder($markerGroup['department_id'],$admin_id)){
$map['admin_id'] = ['in',$this->MarketEvent->getDepartmentUserId($markerGroup['department_id'])];
}else{
$map['admin_id'] = $admin_id ;
}
// if (!in_array($_REQUEST['admin_id'], array_column($markerData, 'id'))) {
$_REQUEST['admin_id'] ? ($map['admin_id'] = $_REQUEST['admin_id']) : '';
// } else {
// $this->display("marketstaffsettle");
// die();
// }
}
$_REQUEST['admin_id'] ? ($map['_string'] .= " AND admin_id = {$_REQUEST['admin_id']}") : '';
$search_date = [];
if (isset($_REQUEST['time_start']) && isset($_REQUEST['time_end'])) {
@ -832,15 +815,7 @@ class MarketPercentageController extends ThinkController
$data[$key]['start_time'] = date("Y-m-1", strtotime($value['pay_time']));
$data[$key]['end_time'] = date("Y-m-t", strtotime($value['pay_time']));
if ($value['level'] == 21) {
$data[$key]['level'] = '初级';
} else if ($value['level'] == 11) {
$data[$key]['level'] = '中级';
} else if ($value['level'] == 12) {
$data[$key]['level'] = '高级';
}else if ($value['level'] == 25) {
$data[$key]['level'] = '经理';
}
$data[$key]['level'] = $this->MarketEvent->getLevelName($value['level']);
if (!$value['market_check']) {
$data[$key]['market_check_detail'] = "-----";
@ -1036,15 +1011,11 @@ class MarketPercentageController extends ThinkController
public function personMarketStaffSettle($row = 10, $p = 1)
{
// var_dump(getMarketAdmin());
$map = [];
$map['group_id'] = ['in', '11,12,21,25'];
$map = [
"_string"=>'1=1'
];
//获取权限
$marketPercentage = M("auth_group")->where($map)->getField("id,market_percentage");
// $_REQUEST['pay_time']?($map['pay_time'] = $_REQUEST['pay_time']):'';
// $_REQUEST['admin_id']?($map['admin_id'] = $_REQUEST['admin_id']):'';
$_REQUEST['group_id'] ? ($map['group_id'] = $_REQUEST['group_id']) : '';
($_REQUEST['status'] || $_REQUEST['status'] == '0') ? ($map['tab_market_altogether.status'] = $_REQUEST['status']) : '';
@ -1057,22 +1028,17 @@ class MarketPercentageController extends ThinkController
}
$admin_id = $_SESSION['onethink_admin']['user_auth']['uid'];
$map['admin_id'] = $admin_id;
if (is_administrator() || session('user_group_id') == 15 || session('user_group_id') == 14 || session('user_group_id') == 19 || session('user_group_id') == 23 || session('user_group_id') == 25) {
unset($map['admin_id']);
$admin_data = M("member")
->field("access.uid admin_id")
->join("left join sys_auth_group_access access on sys_member.uid = access.uid")
->join("left join sys_auth_group auth on access.group_id=auth.id")
->where(['group_id' => ['in', '11,12,21,25']])
->select();
if ($admin_data) {
$map['admin_id'] = ['in', array_column($admin_data, 'admin_id')];
$gid = session('user_group_id');
$markerGroup = $this->MarketEvent->isMarketAdminGroup($gid);
if($markerGroup){
if( $this->MarketEvent->isDepartmentLeder($markerGroup['department_id'],$admin_id)){
$map['admin_id'] = ['in',$this->MarketEvent->getDepartmentUserId($markerGroup['department_id'])];
}else{
$map['admin_id'] = $admin_id ;
}
$_REQUEST['admin_id'] ? ($map['admin_id'] = $_REQUEST['admin_id']) : '';
}
$_REQUEST['admin_id'] ? ($map['_string'] .= " AND admin_id = {$_REQUEST['admin_id']}") : '';
$search_date = [];
if (isset($_REQUEST['time_start']) && isset($_REQUEST['time_end'])) {
@ -1165,15 +1131,7 @@ class MarketPercentageController extends ThinkController
$market_percentage = json_decode($value['market_percentage'], true);
if ($value['level'] == 21) {
$data[$key]['level'] = '初级';
} else if ($value['level'] == 11) {
$data[$key]['level'] = '中级';
} else if ($value['level'] == 12) {
$data[$key]['level'] = '高级';
}else if ($value['level'] == 25) {
$data[$key]['level'] = '经理';
}
$data[$key]['level'] = $this->MarketEvent->getLevelName($value['level']);
if ($value['status'] > 0) {
$data[$key]['is_send'] = '已发放';
@ -1279,13 +1237,14 @@ class MarketPercentageController extends ThinkController
public function sendBonus()
{
$groupIds = $this->MarketEvent->getMarketGroupId();
$map['pay_time'] = $_REQUEST['pay_time'];
$admin_data = M("member")
->field("access.uid admin_id")
->join("left join sys_auth_group_access access on sys_member.uid = access.uid")
->join("left join sys_auth_group auth on access.group_id=auth.id")
->where(['group_id' => ['in', '11,12,21']])
->where(['group_id' => ['in', $groupIds]])
->select();
if ($admin_data) {
$map['admin_id'] = ['in', array_column($admin_data, 'admin_id')];
@ -1365,12 +1324,12 @@ class MarketPercentageController extends ThinkController
}
$map = [];
$groupIds = $this->MarketEvent->getMarketGroupId();
$admin_data = M("member")
->field("access.uid admin_id")
->join("left join sys_auth_group_access access on sys_member.uid = access.uid")
->join("left join sys_auth_group auth on access.group_id=auth.id")
->where(['group_id' => ['in', '11,12,21']])
->where(['group_id' => ['in', $groupIds]])
->select();
if ($admin_data) {
$map['tab_market_altogether.admin_id'] = ['in', array_column($admin_data, 'admin_id')];
@ -1441,7 +1400,6 @@ class MarketPercentageController extends ThinkController
$map['tab_market_altogether.pay_time'] = $_REQUEST['pay_time'];
}
}
$data = SM("market_altogether", "tab_")
->field("max(tab_market_altogether.pay_time) pay_time,tab_market_altogether.real_name,tab_market_altogether.admin_id,tab_market_altogether.nickname,level,sum(pay_amount) pay_amount,sum(extend_commission) extend_commission,
IF((work_status!=0 and ((leave_time-UNIX_TIMESTAMP(concat(tab_market_altogether.pay_time,'-01'))<86400*30) or UNIX_TIMESTAMP(concat(tab_market_altogether.pay_time,'-01'))>leave_time)),0,performance_commission) performance_commission,
@ -1485,13 +1443,7 @@ class MarketPercentageController extends ThinkController
foreach ($data as $key => $value) {
// dump($value);
if ($value['level'] == 21) {
$data[$key]['level'] = '初级';
} else if ($value['level'] == 11) {
$data[$key]['level'] = '中级';
} else if ($value['level'] == 12) {
$data[$key]['level'] = '高级';
}
$data[$key]['level'] = $this->MarketEvent->getLevelName($value['level']);
//绩效系数计算
// $data[$key]['achievement_bonus'] = $data[$key]['achievement_bonus'] * ($this->coefficient[$value['pay_time']][$value['admin_id']]?$this->coefficient[$value['pay_time']][$value['admin_id']]:1);

@ -8,6 +8,13 @@ class MarketEvent extends Controller
private $MarketDepartmentId = "1,2";
private $ManagerLevel = "4";
private $DirectorLevel = "5";
private $LevelConfig = [
'1'=>'初级',
'2'=>'中级',
'3'=>'高级',
'4'=>'经理'
];
/**
* 获取所有市场部组id
*/
@ -20,6 +27,18 @@ class MarketEvent extends Controller
}
return rtrim($sendData,",");
}
/**
* 获取所有市场部组id
*/
public function getNoLeaderMarketGroupId()
{
$where = [
"department_id"=>['in',$this->MarketDepartmentId],
"department_level"=>['neq',$this->DirectorLevel]
];
$dbres = M('auth_group','sys_')->where($where)->getField("id",true);
return implode(",",$dbres);
}
/**
* 获取普通的市场专员初中高的gid
*/
@ -59,6 +78,10 @@ class MarketEvent extends Controller
{
return $this->$key;
}
public function getLevelName($level)
{
return $this->LevelConfig[$level];
}
public function isMarketAdminGroup($gid)
{
$where = [
@ -74,6 +97,7 @@ class MarketEvent extends Controller
return M('department','sys_')->where("id = '{$department_id}' and leader_group = '$gid'")->field("id")->find();
}
public function getDepartmentUserId($department_id)
{
$res = M("auth_group_access")

@ -150,12 +150,11 @@
</select>
</div>
<div class="input-list input-list-game search_label_rehab">
<select id="group_id" name="group_id" class="select_gallery" style="width:120px;">
<select id="level" name="level" class="select_gallery" style="width:120px;">
<option value="" selected="">请选择级别</option>
<option value="21" <if condition="$_GET['group_id'] eq 1">selected</if>>初级</option>
<option value="11" <if condition="$_GET['group_id'] eq 2">selected</if>>中级</option>
<option value="12" <if condition="$_GET['group_id'] eq 2">selected</if>>高级</option>
<option value="25" <if condition="$_GET['group_id'] eq 2">selected</if>>经理</option>
<volist name=":getMarketLevel()" id="vo">
<option value="{$i}" <if condition="$i eq $_GET['level']">selected=selected</if>>{$vo}</option>
</volist>
</select>
</div>
<input type="hidden" name="" value="" class="sortBy">

@ -88,9 +88,9 @@
<div class="input-list input-list-game search_label_rehab">
<select id="level" name="level" class="select_gallery" style="width:120px;">
<option value="" selected="">请选择级别</option>
<option value="21" <if condition="$_GET['level'] eq 1">selected</if>>初级</option>
<option value="11" <if condition="$_GET['level'] eq 2">selected</if>>中级</option>
<option value="12" <if condition="$_GET['level'] eq 2">selected</if>>高级</option>
<volist name=":getMarketLevel()" id="vo">
<option value="{$i}" <if condition="$i eq $_GET['level']">selected=selected</if>>{$vo}</option>
</volist>
</select>
</div>
<input type="hidden" name="" value="" class="sortBy">

Loading…
Cancel
Save