Merge pull request 'feature/more_payment' (#415) from feature/more_payment into master

Reviewed-on: http://8.136.139.249:3000/wmtx/platform/pulls/415
master
廖金灵 4 years ago
commit 2065d8c353

@ -2917,10 +2917,10 @@ function isMarketAdmin()
*/
function getMarketAdmin() {
$map['group_id'] = ['in','11,12,21'];
$map['group_id'] = ['in','11,12,21,25'];
$admin_id = $_SESSION['onethink_admin']['user_auth']['uid'];
$map['menber.uid'] = $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) {
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['menber.uid']);
}

@ -624,7 +624,7 @@ class AuthManagerController extends AdminController{
$data = json_encode($data);
$AuthGroup->where(['id'=>$gid])->syncSave(['market_percentage'=>$data]);
$AuthGroup->where(['id'=>$gid])->save(['market_percentage'=>$data]);
$this->success("编辑成功",U("index"));

@ -85,9 +85,15 @@ class CompanyStatementOfflineController extends ThinkController
->field("c.*,p.statement_num,p.verify_status")
->where($map)
->join("tab_company_statement_pool as p ON c.pool_id = p.id")
->page($page,$row)
->order("id desc")
->select();
->order("id desc");
if (isset($_REQUEST['list_export']) && $_REQUEST['list_export']==1) {
$data = $data->select();
}else{
$data = $data->page($page,$row)->select();
}
$unPayData = SM("company_statement_info_part","tab_")
->field("sum(statement_money) statement_money,info_id")
@ -187,7 +193,25 @@ class CompanyStatementOfflineController extends ThinkController
$count['success_money'] += $countSuccess['success_money'];
$count['statement_money'] -= $countSuccess['success_money'];
$count['error_money'] += $countPart['error_money'];
//新增列表导出
if (isset($_REQUEST['list_export']) && $_REQUEST['list_export']==1) {
$data[]=[
'company_name'=>'合计',
'company_type_str'=>"待打款金额:{$count['statement_money']} / 打款成功金额:{$count['success_money']} / 打款失败金额:{$count['error_money']}"
];
data2csv($data,'线下打款确认',array(
'company_name'=>'合作公司',
'company_type_str'=>'公司类型',
'valid'=>'结算时间',
'statement_money'=>'结算金额',
'surplus_amount'=>'剩余未打款金额',
'platform_amount'=>'结算流水',
'pay_check_str'=>'打款信息确认状态',
'payment'=>'打款状态',
'statement_num'=>'汇总单号'
));
}
$params['p'] = $page;
$params['row'] = $row;

@ -64,7 +64,7 @@ class MarketPercentageController extends ThinkController
->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', '11,12,21,25']])
->select();
if ($admin_data) {
$map['admin_id'] = ['in', array_column($admin_data, 'admin_id')];
@ -125,7 +125,7 @@ class MarketPercentageController extends ThinkController
->field("id,pay_time,promote_account,company_name,company_belong,real_name,develop_type,game_name,
sum(pay_amount) pay_amount,sum(cp_amount) cp_amount,sum(promote_amount) promote_amount,
sum(channel_amount) channel_amount, sum(company_tax) company_tax,sum(company_profit) company_profit,
other_amount,refund_amount");
other_amount,refund_amount,is_tip");
if ($_REQUEST['export']) {
$data = $data->where($map)
@ -222,6 +222,14 @@ class MarketPercentageController extends ThinkController
$this->checkListOrCountAuthRestMap($map, []);
$this->assign("list_data", $data);
$this->assign("is_can_recount",D("CmdTasks")->isCanAddTask("MarketPerformanceSet"));
$scheduleTime = A("MarketPerformanceSet")->getThisMonthFirstMonday();
$this->assign("is_true_data",time() > $scheduleTime );
$this->assign("schedule_time",date('Y-m-d',$scheduleTime) );
$this->display();
}
@ -236,7 +244,8 @@ class MarketPercentageController extends ThinkController
$save = [
'id'=>$id,
'company_profit'=>$dbres['company_profit']-($other_amount-$dbres['other_amount']),
'other_amount'=>$other_amount
'other_amount'=>$other_amount,
'is_tip'=>0
];
M("settleup_marketorder","tab_")->save($save);
$this->ajaxReturn(['status'=>1,'msg'=>'其他扣款添加成功']);
@ -582,17 +591,24 @@ class MarketPercentageController extends ThinkController
} else {
$data = M("auth_group")
->where(['title' => ['like', '%市场专员%']])
->where("title like '%市场%' and title != '市场总监'")
->select(false);
$data = M("auth_group_access")
->field("sys_member.nickname,sys_member.real_name,sys_member.uid,sys_auth_group_access.group_id,IF(coefficient is not NULL, coefficient, 100) coefficient")
->field("sys_member.nickname,sys_member.real_name,sys_member.uid,sys_auth_group_access.group_id,IF(coefficient is not NULL, coefficient, 100) coefficient,sys_ucenter_member.leave_time")
->join("left join ({$data}) auth on auth.id = sys_auth_group_access.group_id")
->join("left join sys_member on sys_member.uid = sys_auth_group_access.uid")
->join("left join sys_ucenter_member on sys_member.uid = sys_ucenter_member.id")
->join("left join tab_coefficient on tab_coefficient.admin_id = sys_member.uid and pay_time='{$pay_time}'")
->where("auth.title is not null")
->select();
$hideTime = strtotime(date('Y-m-01') . " - 1 month")-1;
foreach ($data as &$v) {
$v['is_hide'] = 0;
if($v['leave_time'] > 0 && $v['leave_time'] <= $hideTime){
$v['is_hide'] = 1;
}
}
$this->assign('list_data', $data);
$this->display("coefficient");
@ -605,7 +621,7 @@ class MarketPercentageController extends ThinkController
$map = [];
$map['group_id'] = ['in', '11,12,21'];
$map['group_id'] = ['in', '11,12,21,25'];
//获取权限
$marketPercentage = M("auth_group")->where($map)->getField("id,market_percentage");
@ -616,7 +632,7 @@ 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) {
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();
@ -629,7 +645,7 @@ class MarketPercentageController extends ThinkController
->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', '11,12,21,25']])
// ->where($admin_map)
->select();
if ($admin_data) {
@ -704,13 +720,13 @@ class MarketPercentageController extends ThinkController
if ($_REQUEST['export']) {
$data = $data
->field("*")
->order("pay_time DESC,company_profit DESC")
->order("pay_time DESC,pay_amount DESC")
->select();
} else {
$data = $data
->field("*")
// ->page($p, $row)
->order("pay_time DESC,company_profit DESC")
->order("pay_time DESC,pay_amount DESC")
->select();
}
@ -805,6 +821,8 @@ class MarketPercentageController extends ThinkController
$data[$key]['level'] = '中级';
} else if ($value['level'] == 12) {
$data[$key]['level'] = '高级';
}else if ($value['level'] == 25) {
$data[$key]['level'] = '经理';
}
if (!$value['market_check']) {
@ -910,7 +928,7 @@ class MarketPercentageController extends ThinkController
$sum['wait_commission'] = '-------';
$sum['pay_time'] = '总计';
// dd($data);
if ($_REQUEST['export']) {
$title = ['pay_time' => '时间',
@ -989,6 +1007,12 @@ class MarketPercentageController extends ThinkController
$this->assign("sum", $sum);
$this->assign("list_data", $data);
$this->assign("is_can_recount",D("CmdTasks")->isCanAddTask("MarketPerformanceSet"));
$scheduleTime = A("MarketPerformanceSet")->getThisMonthFirstMonday();
$this->assign("is_true_data",time() > $scheduleTime );
$this->assign("schedule_time",date('Y-m-d',$scheduleTime) );
$this->display("marketstaffsettle");
}
@ -998,7 +1022,7 @@ class MarketPercentageController extends ThinkController
// var_dump(getMarketAdmin());
$map = [];
$map['group_id'] = ['in', '11,12,21'];
$map['group_id'] = ['in', '11,12,21,25'];
//获取权限
$marketPercentage = M("auth_group")->where($map)->getField("id,market_percentage");
@ -1017,14 +1041,14 @@ 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) {
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']])
->where(['group_id' => ['in', '11,12,21,25']])
->select();
if ($admin_data) {
$map['admin_id'] = ['in', array_column($admin_data, 'admin_id')];
@ -1086,12 +1110,12 @@ class MarketPercentageController extends ThinkController
if ($_REQUEST['export']) {
$data = $data
->order("pay_time DESC,company_profit DESC")
->order("pay_time DESC,pay_amount DESC")
->select();
} else {
$data = $data
// ->page($p, $row)
->order("pay_time DESC,company_profit DESC")
->order("pay_time DESC,pay_amount DESC")
->select();
}
@ -1113,7 +1137,6 @@ class MarketPercentageController extends ThinkController
$sum['commission'] = 0;
$sum['extend_commission'] = 0;
$sum['wait_commission'] = 0;
foreach ($data as $key => $value) {
$level = $value['level'];
if (isset($marketPercentage[$level])) {
@ -1131,6 +1154,8 @@ class MarketPercentageController extends ThinkController
$data[$key]['level'] = '中级';
} else if ($value['level'] == 12) {
$data[$key]['level'] = '高级';
}else if ($value['level'] == 25) {
$data[$key]['level'] = '经理';
}
if ($value['status'] > 0) {

@ -22,14 +22,13 @@ class MarketPerformanceSetController extends Controller {
private $gameInfo;
private $companyInfo;
private $settleupMarketorderModel;
private $marketAltogetherModel;
private $taxRatio;
private $oldMarketPerformance;
/**
* 更新某月数据
*/
public function setFreeMonth($count_date)
{
//设置转换精度
private $isInit = false;
private function configInit($count_date){
if($this->isInit) return; //避免重复生成配置
ini_set('serialize_precision',14);
$month = $count_date;
if(empty($month)) die("参数错误");
@ -44,17 +43,19 @@ class MarketPerformanceSetController extends Controller {
$this->beginThismonth=mktime(0,0,0,$tarry[1],1,$tarry[0]);
$this->endThismonth=mktime(0,0,0,$tarry[1]-0+1,1,$tarry[0])-1;
$this->settleupMarketorderModel=SM("settleup_marketorder","tab_");
$this->reCount();
$this->setSettleupMarketorder();
$this->marketAltogetherModel=SM("market_altogether","tab_");
$this->isInit = true;
}
/**
* 强制重新聚合
* 更新某月毛利数据
*/
private function reCount()
public function setFreeMonth($count_date)
{
// $this->settleupMarketorderModel->where(['pay_time'=>$this->date])->delete();
echo "旧数据清理成功".PHP_EOL;
$this->configInit($count_date);
$this->setSettleupMarketorder();
}
/**
* 计算公司毛利
*/
@ -455,7 +456,8 @@ class MarketPerformanceSetController extends Controller {
}
}
}
if($tempArr['promote_amount'] != 0){
//下游流水不等于就要算毛利
if($v['promote_pay_amount'] != 0){
$this->adddata[]= $tempArr;
}
@ -468,8 +470,102 @@ class MarketPerformanceSetController extends Controller {
private function settleupMarketorderDbSave()
{
//删除旧数据
// dd($this->adddata);
$this->settleupMarketorderModel->where(['pay_time'=>$this->date])->delete();
$this->settleupMarketorderModel->addAll($this->adddata);
}
/**
* 市场经理计算
*/
public function marketManagerSet($count_date)
{
if(!$this->isInit) $this->configInit($count_date);
$marketManagerGroupId = "25";
$this->marketAltogetherModel->where(['pay_time'=>$this->date,'level'=>$marketManagerGroupId])->delete();
//获取毛利统计
$dbres = $this->settleupMarketorderModel->where(['pay_time'=>$this->date])->field("sum(pay_amount) pay_amount,sum(refund_amount) refund_amount,develop_type")->group('develop_type')->select();
$count = [
'pay_amount'=>0,
'performance_revenue'=>0,
'appraisal_bonuses'=>0
];
foreach ($dbres as $k => $v) {
$tmpPayAmount = $v['pay_amount']-$v['refund_amount'];
$count['pay_amount'] += $tmpPayAmount;
if($v['develop_type'] == 3){
$count['appraisal_bonuses'] += $tmpPayAmount;
}else{
$count['performance_revenue'] += $tmpPayAmount;
}
}
//获取经理配置及经理
$config = M("auth_group")->where("id = {$marketManagerGroupId}")->getField("market_percentage");
$config = json_decode($config,true);
$user = M("auth_group_access")->alias("access")->join("left join sys_member member on access.uid=member.uid")->where(['group_id'=>$marketManagerGroupId])->field("access.uid,real_name,nickname")->select();
if(!$user) return;
//获取经理抽成公式
$achievement_bonus = round(($count['appraisal_bonuses']*$config['maintain_appraisal_bonuses_ratio'] + $count['performance_revenue']*$config['appraisal_bonuses_ratio'])/100,2);
$baseData = [
'pay_time'=>$this->date,
'level'=>$marketManagerGroupId,
'pay_amount' => $count['pay_amount'],
'extend_commission'=> round($achievement_bonus*$config['month_bonus_ratio']/100,2),
'wait_commission' => round($achievement_bonus*(100-$config['month_bonus_ratio'])/100,2),
'create_time'=>time(),
'performance_revenue'=>$count['performance_revenue'],
'appraisal_bonuses'=>$count['appraisal_bonuses'],
'achievement_bonus'=>$achievement_bonus,
'wait_achievement_commission'=>round($achievement_bonus*(100-$config['month_bonus_ratio'])/100,2)
];
foreach ($user as $k=> $v) {
$baseData['real_name'] = $v['real_name'];
$baseData['nickname'] = $v['nickname'];
$baseData['admin_id'] = $v['uid'];
$res = $this->marketAltogetherModel->add($baseData);
echo "marketManagerSet {$v['real_name']}/{$res}".PHP_EOL;
}
}
/**
* 设置每月第一个周一自动重算
*/
public function setThisMonthFirstMondayScript()
{
$d = date('d',time());
if($d != 1){
return ;
}
// 先取得这个月的 1 号
$scheduleTime = $this->getThisMonthFirstMonday();
$tmdRes = M("cmd_tasks","tab_")->where(['type'=>'MarketPerformanceSet','schedule_time'=>$scheduleTime])->find();
if(!$tmdRes){
$pay_time = date( 'Y-m', strtotime( 'last day of -1 months' ) );
$params = "php ".SUBSITE_INDEX." Timing/caculateMarketStream/time/{$pay_time}";
D("CmdTasks")->addScheduleTask("MarketPerformanceSet",$params,$scheduleTime);
}
}
public function getThisMonthFirstMonday()
{
$year = date('Y',time());
$m = date('m',time());
$iThisMonthFirst = strtotime("{$year}-{$m}-01 4:00:00");
$dThisDay = date("w", $iThisMonthFirst);
if ($dThisDay == '1') {
$dFirstMonday = $iThisMonthFirst;
} else {
//不是星期一先回到星期日
$iDays = 86400 * ($dThisDay * 1);
//找出星期日的日期
$iSunday = $iThisMonthFirst - $iDays;
//星期日 + 8 天就是星期一
$iThisMonthFirstMonday = $iSunday + (86400 * 8);
$dFirstMonday = $iThisMonthFirstMonday;
}
return $dFirstMonday;
}
}

@ -9,6 +9,16 @@ namespace Admin\Controller;
*/
class OldCountController extends \Think\Controller
{
//删除吴宏还是高级时候的数据
public function deleteWuhongAltogether()
{
$where = [
'level'=>12,
'admin_id'=>34
];
$res = M("market_altogether","tab_")->where($where)->delete();
var_dump($res);
}
public function setLackStatementInfo() {

@ -838,6 +838,7 @@ class TimingController extends AdminController {
//计算市场专员业绩公式 参数 time 2020-10
public function caculateMarketStream () {
if ($_REQUEST['time']) {
$count_date = $_REQUEST['time'];
}else{
@ -845,445 +846,10 @@ class TimingController extends AdminController {
}
A("MarketPerformanceSet")->setFreeMonth($count_date);
$this->createMarketBonus($_REQUEST['time']);
A("MarketPerformanceSet")->setThisMonthFirstMondayScript();
die();
echo date("Y-m-d H:i:s")."----------------------市场结算管理计算----------------------\n";
$map['pay_time'] = date('Y-m',strtotime(date('Y',time()).'-'.(date('m',time())-1).'-01'));
if ($_REQUEST['time']) {
$map['pay_time'] = $_REQUEST['time'];
}
$spend_map = [];
$time_start = 0;
$time_end = 0;
$month_time = [];
if($_REQUEST['time'] == 'all') {
$belong_map = [];
$month_time[] = date('Y-m',strtotime(date('Y',time()).'-'.(date('m',time())-1).'-01'));
// $month_time[] = date('Y-m',strtotime(date('Y',time()).'-'.(date('m',time())-2).'-01'));
$map['pay_time'] = ['in',$month_time];
$spend_map['pay_time'] = ['elt',strtotime(date('Y-m-t 23:59:59', strtotime(date('Y',time()).'-'.(date('m',time())-1).'-01')))];
$time_end = strtotime(date('Y-m-t',strtotime($month_time)));
} else {
$month_time = $map['pay_time'];
$time_start = strtotime(date('Y-m-1',strtotime($map['pay_time'])));
$time_end = strtotime(date('Y-m-t',strtotime($map['pay_time'])));
$belong_map = "((begin_time<={$time_start} and (end_time >={$time_start} or end_time=0)) or (begin_time<={$time_end} and end_time >={$time_end}) or (end_time>={$time_start} and end_time <={$time_end}))";
}
if ($map['pay_time']) {
SM("settleup_marketorder","tab_")
->where(['pay_time'=>['in',$month_time]])
->delete();
}
$data = M("auth_group")
->where(['title'=>['like','%市场%']])
->select(false);
$data = M("auth_group_access")
->field("auth.market_percentage,real_name,sys_member.uid,sys_auth_group_access.group_id")
->join("left join ({$data}) auth on auth.id = sys_auth_group_access.group_id")
->join("left join sys_member on sys_member.uid = sys_auth_group_access.uid")
->where("auth.title is not null")
->select(false);
$belong_game = M("company_belong_game","tab_")
->field("game_ids,begin_time,end_time")
->where($belong_map)
->select();
// if($belong_game) {
// unset($spend_map['pay_time']);
// }
$unsettlement = $spend_map;
foreach ($belong_game as $key => $value) {
$value['game_ids'] = explode(',',$value['game_ids']);
foreach ($value['game_ids'] as $k => $v) {
if (!$v) {
unset($value['game_ids'][$k]);
}
}
if (!$value['end_time']) {
$value['end_time'] = $time_end;
}
$value['game_ids'] = implode(',',$value['game_ids']);
if (!$spend_map['_string']) {
$spend_map['_string'] = "(pay_time between {$value['begin_time']} and {$value['end_time']}+86399 and relation_game_id in({$value['game_ids']}))";
} else {
$spend_map['_string'] .= " or (pay_time between {$value['begin_time']} and {$value['end_time']}+86399 and relation_game_id in({$value['game_ids']}))";
}
}
if (!$spend_map['_string']) {
$spend_map['_string'] = "relation_game_id = 0";
}
D("Spend")->addSubsiteWhere($spend_map,"tab_spend");
$spend = M("spend","tab_")
->field("sum(pay_amount) as pay_amount,FROM_UNIXTIME(pay_time,'%Y-%m') pay_time,
substring_index(substring_index(tab_spend.game_name,'(',1),'(',-1) game_name,game_id,relation_game_id,tab_spend.sdk_version,
CASE WHEN substring_index(substring_index(`chain`,'/',2),'/',-1) !='' THEN substring_index(substring_index(`chain`,'/',2),'/',-1) ELSE promote_id END promote_id,pay_way,market_admin_id,0 is_settlement,is_check")
->join("left join tab_promote on tab_spend.promote_id = tab_promote.id")
->join("left join tab_game game on game.id=tab_spend.game_id")
->where(['tab_spend.pay_status'=>1,'pay_way'=>['egt',0]])
->where($spend_map)
->group("tab_spend.id")
->select(false);
$not_in_spend = M("spend","tab_")
->field("tab_spend.id id")
->join("left join tab_promote on tab_spend.promote_id = tab_promote.id")
->join("left join tab_game game on game.id=tab_spend.game_id")
->where(['tab_spend.pay_status'=>1,'pay_way'=>['egt',0]])
->where($spend_map)
->group("tab_spend.id")
->select(false);
$unsettlement['_string'] = "tab_spend.id not in($not_in_spend)";
D("Spend")->addSubsiteWhere($unsettlement,"tab_spend");
$unsettlement_spend = M("spend","tab_")
->field("sum(pay_amount) as pay_amount,FROM_UNIXTIME(pay_time,'%Y-%m') pay_time,
substring_index(substring_index(tab_spend.game_name,'(',1),'(',-1) game_name,game_id,relation_game_id,tab_spend.sdk_version,
CASE WHEN substring_index(substring_index(`chain`,'/',2),'/',-1) !='' THEN substring_index(substring_index(`chain`,'/',2),'/',-1) ELSE promote_id END promote_id,pay_way,market_admin_id,1 is_settlement,is_check")
->join("left join tab_promote on tab_spend.promote_id = tab_promote.id")
->join("left join tab_game game on game.id=tab_spend.game_id")
->where(['tab_spend.pay_status'=>1,'pay_way'=>['egt',0]])
->where($unsettlement)
->group("tab_spend.id")
->select(false);
$spend = "{$spend} UNION ALL {$unsettlement_spend}";
$payway_spend = M()->table("({$spend}) spend")
->field("sum(pay_amount) as pay_amount,pay_time,promote_id,game_name,game_id,relation_game_id,pay_way,sdk_version,market_admin_id,is_settlement")
->where(['is_check'=>['neq',2]])
->where($map)
->group("pay_time,promote_id,game_name,pay_way,market_admin_id,is_settlement")
->select();
$channel_fee = [];
$paywayData = M("tool","tab_")
->field("name,config")
->where(['name'=>['in',"alipay,weixin,wei_xin,wei_xin_app,jubaobar,weixin_gf,jft,jft_wap,goldpig,ptb_pay,bind_pay,sqpay,heepay,yeepay,ptb_pay"]])
->select();
//公司税费计算
$tax_radio = [];
$tax_data = M("tax_radio","tab_")
->field("tax_radio,time")
->order("time ASC")
->select();
foreach ($tax_data as $key => $value) {
$tax_radio[$key]['start'] = $value['time'];
$tax_radio[$key]['end'] = $tax_data[$key+1]['time'];
$tax_radio[$key]['tax_radio'] = $value['tax_radio'];
if (!$tax_data[$key+1]['time']) {
$tax_radio[$key]['end'] = 99999999999;
}
}
$pay_rate = [];
foreach ($paywayData as $key => $value) {
$pay_config = json_decode($value['config'],true);
if ($this->getPayway($value['name'])||$this->getPayway($value['name'])=='0') {
$pay_rate[$this->getPayway($value['name'])] = $pay_config['channel_rate']?$pay_config['channel_rate']:0;
}
}
foreach ($payway_spend as $key => $value) {
switch ($value['pay_way']){
case 3: //微信同步
$value['pay_way'] = '2';
break;
case 10: //双乾同步
$value['pay_way'] = '9';
break;
case 15: //双乾同步
$value['pay_way'] = '9';
break;
}
//将时间、推广员id、游戏名、设备类型作为键值标记渠道费用
if (!$channel_fee[$value['pay_time'].$value['promote_id'].$value['game_name'].$value['market_admin_id'].$value['is_settlement']]) {
if (!$value['pay_way']) {
$channel_fee[$value['pay_time'].$value['promote_id'].$value['game_name'].$value['market_admin_id'].$value['is_settlement']] = 0;
}
$channel_fee[$value['pay_time'].$value['promote_id'].$value['game_name'].$value['market_admin_id'].$value['is_settlement']]
= $value['pay_amount'] * ($pay_rate[$value['pay_way']]/100);
} else {
$channel_fee[$value['pay_time'].$value['promote_id'].$value['game_name'].$value['market_admin_id'].$value['is_settlement']]
= $channel_fee[$value['pay_time'].$value['promote_id'].$value['game_name'].$value['market_admin_id'].$value['is_settlement']]+($value['pay_amount'] * ($pay_rate[$value['pay_way']]/100));
}
}
$spend = M()->table("({$spend}) spend")
->field("sum(pay_amount) as pay_amount,pay_time,promote_id,game_name,game_id,relation_game_id,sdk_version,market_admin_id,is_settlement")
->where(['is_check'=>['neq',2]])
->where($map)
->group("pay_time,promote_id,game_name,market_admin_id,is_settlement")
->select(false);
$promote_data = M()->table("({$spend}) spend")
->field("pay_time,company_id,company.company_name,account as promote_account,company.company_belong,develop_type,spend.promote_id,spend.game_name,game_id,relation_game_id,spend.pay_amount,auth.real_name,market_admin_id as admin_id,market_percentage,sdk_version,is_settlement")
->join("left join tab_promote promote on spend.promote_id = promote.id")
->join("left join tab_promote_company company on promote.company_id = company.id")
->join("left join ({$data}) auth on auth.uid=market_admin_id")
->where(['develop_type'=>['egt',1],'group_id'=>['in',['11','12','21']]])
// ->where(['company_id'=>43,'spend.promote_id'=>1498,'relation_game_id'=>191])
// ->order("is_settlement ASC")
->select();
$specialPayAmount = [];
$unsettlement_amount = [];
foreach ($promote_data as $key => $value) {
if ($value['pay_time'] == date("Y-m",time())) {
continue;
}
$cp_radio = getGameCpRadio($value['game_id'],$value['pay_amount'],true);
if (!$cp_radio) {
$cp_radio = getGameCpRadio($value['game_id'],$value['pay_amount'],false);
}
//上游流水
$promote_data[$key]['cp_amount'] = $value['pay_amount'] * ($cp_radio * 0.01);
//下游
// $promote_radio = getGamePromoteCompanyRadio($value['company_id'],$value['relation_game_id'],time(),$value['pay_amount'],true,$value['company_belong']);
// if (!$promote_radio) {
// $promote_radio = getGamePromoteCompanyRadio($value['company_id'],$value['relation_game_id'],time(),$value['pay_amount'],false,$value['company_belong']);
// }
$begin_pay_time = strtotime(date("Y-m-1",strtotime($value['pay_time'])));
$end_pay_time = strtotime(date("Y-m-t",strtotime($value['pay_time'])))+86399;
$company_belong_game = M("company_belong_game","tab_")
->field("game_ids,begin_time,end_time")
->where("begin_time <={$end_pay_time} AND ( end_time = 0 OR end_time >= {$begin_pay_time})")
// ->where("((begin_time<={$begin_pay_time} and (end_time >={$begin_pay_time} or end_time=0)) or (begin_time<={$end_pay_time} and end_time >={$end_pay_time}) or (end_time>={$begin_pay_time} and end_time <={$end_pay_time}))")
->order("begin_time ASC")
->select();
// dump($company_belong_game);
$promote_data[$key]['promote_amount'] = 0;
foreach ($company_belong_game as $ck => $cv) {
$ungame_ids = explode(',',$cv['game_ids']);
if ($cv['end_time'] == 0 || !$cv['end_time']) {
$cv['end_time'] = 99999999999;
}
$use_begin = 0;
$use_end = 0;
if ($value['is_settlement'] == '0') {
if ($begin_pay_time > $cv['begin_time']) {
$use_begin = $begin_pay_time;
if ($end_pay_time > $cv['end_time']+86399) {
$use_end = $cv['end_time']+86399;
} else {
$use_end = $end_pay_time;
}
} else {
$use_begin = $cv['begin_time'];
if ($end_pay_time > $cv['end_time']) {
$use_end = $cv['end_time']+86399;
} else {
$use_end = $end_pay_time;
}
}
//下游流水
$promote_data[$key]['promote_amount'] += $this->getCompanyGameRadio($value['admin_id'],$value['promote_id'],$value['company_id'],$value['relation_game_id'],$use_begin,$use_end,$value['pay_amount']);
} elseif($value['is_settlement'] == '1') {
if ($ck == 0) {
// echo 1;
if ($cv['begin_time'] >= $begin_pay_time) {
$promote_data[$key]['promote_amount'] += $this->getCompanyGameRadio($value['admin_id'],$value['promote_id'],$value['company_id'],$value['relation_game_id'],$begin_pay_time,$cv['begin_time']-1,$value['pay_amount']);
// dump(date($begin_pay_time)."-".date($cv['begin_time']-1));
// dump($promote_data[$key]['promote_amount']);
}
}
if (!$company_belong_game[$ck+1]) {
// dump($end_pay_time);
// dump($cv['end_time']);
if ($end_pay_time > $cv['end_time']) {
// echo 2;
$promote_data[$key]['promote_amount'] += $this->getCompanyGameRadio($value['admin_id'],$value['promote_id'],$value['company_id'],$value['relation_game_id'],$cv['end_time']+86400,$end_pay_time,$value['pay_amount']);
}
}
if ($ck > 0) {
if (($cv['begin_time'] - $company_belong_game[$ck-1]['end_time'] + 86399) > 1) {
// echo 3;
$promote_data[$key]['promote_amount'] += $this->getCompanyGameRadio($value['admin_id'],$value['promote_id'],$value['company_id'],$value['relation_game_id'],$company_belong_game[$ck-1]['end_time'] + 86400,$cv['begin_time']-1,$value['pay_amount']);
}
}
if (!in_array($value['relation_game_id'],$ungame_ids)) {
// echo 4;
if (($cv['end_time']+86399) > $end_pay_time) {
$cv['end_time'] = $end_pay_time;
} else {
$cv['end_time'] = $cv['end_time']+86399;
}
if ($cv['begin_time'] < $begin_pay_time) {
$cv['begin_time'] = $begin_pay_time;
}
// dump($promote_data[$key]['promote_amount']);
// dump(date($cv['begin_time'])."-".date($cv['end_time']));
$promote_data[$key]['promote_amount'] += $this->getCompanyGameRadio($value['admin_id'],$value['promote_id'],$value['company_id'],$value['relation_game_id'],$cv['begin_time'],$cv['end_time'],$value['pay_amount']);
// dump($promote_data[$key]['promote_amount']);
}
}
// if (!in_array($value['relation_game_id'],$ungame_ids)) {
//
// if ($begin_pay_time > $cv['begin_time']) {
// $use_begin = $begin_pay_time;
// if ($end_pay_time > $cv['end_time']+86399) {
// $use_end = $cv['end_time']+86399;
// } else {
// $use_end = $end_pay_time;
// }
// } else {
//
// $use_begin = $cv['begin_time'];
// if ($end_pay_time > $cv['end_time']) {
// $use_end = $cv['end_time']+86399;
// } else {
// $use_end = $end_pay_time;
// }
//
// }
//
// //下游流水
// $promote_data[$key]['promote_amount'] += $this->getCompanyGameRadio($value['admin_id'],$value['promote_id'],$value['company_id'],$value['relation_game_id'],$use_begin,$use_end,$value['pay_amount']);
// }
}
if (!$company_belong_game) {
$promote_data[$key]['promote_amount'] += $this->getCompanyGameRadio($value['admin_id'],$value['promote_id'],$value['company_id'],$value['relation_game_id'],$begin_pay_time,$end_pay_time,$value['pay_amount']);
}
//下游流水
// $promote_data[$key]['promote_amount'] = $this->getCompanyGameRadio($value['admin_id'],$value['promote_id'],$value['company_id'],$value['relation_game_id'],$value['pay_time'],$value['pay_amount'],$value['is_settlement']);
//下游流水
// $promote_data[$key]['promote_amount'] = $value['pay_amount'] * ($promote_radio * 0.01);
//特殊补点
$specialPayAmount[$value['pay_time']] = $this->getSpecialComplement(strtotime(date("Y-m-1",strtotime($value['pay_time']))),strtotime(date("Y-m-t",strtotime($value['pay_time'])))+86399,$value['promote_id']);
$specialAmount = $specialPayAmount[$value['pay_time']][$value['company_id']."-".$value['promote_id']."-".$value['relation_game_id']]?$specialPayAmount[$value['pay_time']][$value['company_id']."-".$value['promote_id']."-".$value['relation_game_id']]:0;
//渠道费用
$promote_data[$key]['channel_amount'] = $channel_fee[$value['pay_time'].$value['promote_id'].$value['game_name'].$value['admin_id'].$value['is_settlement']];
$tax = 0;
//公司税费
foreach($tax_radio as $k => $v) {
if (strtotime($value['pay_time'])>=$v['start'] && strtotime($value['pay_time'])<$v['end']) {
$tax = $v['tax_radio'];
}
}
// $belong_game = M("company_belong_game","tab_")
// ->field("game_ids")
// ->where("time='{$value['pay_time']}'")
// ->find();
//
// $belong_game = array_values(explode(",",$belong_game['game_ids']));
//
// if ((in_array($value['relation_game_id'],$belong_game) && $value['company_belong'] ==1) || $value['company_belong'] !=1) {
// $promote_data[$key]['is_settlement']=1;
// } else {
// $promote_data[$key]['is_settlement']=0;
// }
$promote_data[$key]['is_settlement'] = $value['is_settlement'];
$promote_data[$key]['promote_amount'] += $specialAmount;
$promote_data[$key]['company_tax'] = ($value['pay_amount']-$promote_data[$key]['cp_amount']- $promote_data[$key]['promote_amount'])*($tax/100);
//毛利
$promote_data[$key]['company_profit'] = $value['pay_amount']-$promote_data[$key]['cp_amount']-$promote_data[$key]['promote_amount']-$promote_data[$key]['channel_amount']-$promote_data[$key]['company_tax'];
// dump($promote_data[$key]['promote_amount']);
if ($value['promote_id'] == 0) {
// $promote_data[$key]['promote_account']='官方渠道';
// $promote_data[$key]['company_id']='0';
// $promote_data[$key]['company_belong']='3';
// $promote_data[$key]['develop_type']='0';
continue;
}
unset($promote_data[$key]['market_percentage']);
$marker_data = SM("settleup_marketorder","tab_")
->where(['pay_time'=>$value['pay_time'],'promote_id'=>$value['promote_id'],'game_name'=>$value['game_name'],'admin_id'=>$value['admin_id'],'is_settlement'=>$value['is_settlement']])
->find();
echo "日期:{$value['pay_time']},游戏:{$value['game_name']},推广员:{$value['promote_account']}\n";
echo "市场员:{$value['admin_id']} 推广员:{$value['promote_id']} 公司id{$value['company_id']} 游戏关联id{$value['relation_game_id']} 支付时间:{$value['pay_time']} 金额:{$value['pay_amount']}\n";
// dump($promote_data[$key]);die();
if (!$marker_data) {
SM("settleup_marketorder","tab_")
->add($promote_data[$key]);
} else {
SM("settleup_marketorder","tab_")
->where(['pay_time'=>$value['pay_time'],'promote_id'=>$value['promote_id'],'game_name'=>$value['game_name'],'admin_id'=>$value['admin_id'],'is_settlement'=>$value['is_settlement']])
->save($promote_data[$key]);
}
}
// var_dump($_REQUEST['time']);
$this->createMarketBonus($_REQUEST['time']);
echo date("Y-m-d H:i:s")."----------------------市场结算管理计算----------------------\n";
}
public function insertAllUserBonus($time) {
// $time = $_REQUEST['time'];
@ -1323,7 +889,6 @@ class TimingController extends AdminController {
$pay_time = date('Y-m',strtotime(date('Y',time()).'-'.(date('m',time())-1).'-01'));
$map['pay_time'] = date('Y-m',strtotime(date('Y',time()).'-'.(date('m',time())-1).'-01'));
}
// dump(date('Y-m',strtotime(date('Y',time()).'-'.(date('m',time())-1).'-01')));die();
if ($pay_time == 'all') {
@ -1338,7 +903,6 @@ class TimingController extends AdminController {
} while ($date < date('Y-m',strtotime(date('Y',time()).'-'.(date('m',time())-1).'-01')));
$map['pay_time'] = date('Y-m',strtotime(date('Y',time()).'-'.(date('m',time())-1).'-01'));;
// unset($map['pay_time']);
} else{
SM("market_altogether","tab_")->where(['pay_time'=>$pay_time])->delete();
$this->insertAllUserBonus($pay_time);
@ -1386,9 +950,6 @@ class TimingController extends AdminController {
$market_percentage['maintain_commission_ratio'] = 0;
$market_percentage['maintain_appraisal_bonuses_ratio'] = 0;
}
// echo "{$value['nickname']}:{$value['pay_time']}\n";
// dump($market_percentage);
$settleup_marketorder = SM("settleup_marketorder","tab_")
->where(['admin_id'=>$value['admin_id'],'pay_time'=>$value['pay_time'],'is_settlement'=>1])
->select();
@ -1468,7 +1029,6 @@ class TimingController extends AdminController {
$insert['achievement_profit'] = number_format($all_data[$key]['achievement_profit'], 2, '.', '');
$insert['performance_profit'] = number_format($all_data[$key]['performance_profit'], 2, '.', '');
// $insert['wait_commission'] = ($insert['wait_performance_commission']+$insert['wait_achievement_commission']);
$is_hav = SM("market_altogether","tab_")
->where(['admin_id'=>$value['admin_id'],'pay_time'=>$value['pay_time']])
->find();
@ -1483,6 +1043,9 @@ class TimingController extends AdminController {
}
//经理计算
A("MarketPerformanceSet")->marketManagerSet($pay_time);
}
public function sendMarketBonus(){

@ -1440,6 +1440,73 @@ class ToolController extends ThinkController {
}
}
}
public function cmdTasksList()
{
$params = I('get.');
$page = $params['p'] ? intval($params['p']) : 1;
$row = $params['row'] ? intval($params['row']) : 10;
$status = [
'0'=>"待处理",
'1'=>"处理中",
'2'=>'处理成功',
'3'=>'处理失败'
];
$where = [
"_string"=>"1 = 1"
];
if(isset($params['status'])){
$where['c.status'] = $params['status'];
}
if(isset($params['type'])){
$where['c.type'] = $params['type'];
}
$records = M("cmd_tasks","tab_")->alias("c")->join("sys_member m on c.uid = m.uid","left")
->field("c.*,ifnull(m.nickname,'system') admin_username")
->page($page,$row)
->where($where)
->order("id desc")
->select();
foreach ($records as $k => &$v) {
$v['params'] = str_replace(' 2>&1','',stristr($v['params'],"php "));
$v['status_str'] = $status[$v['status']];
if($v['schedule_time'] == 0){
$v['schedule_time'] = "立即执行";
}else{
$v['schedule_time'] = date("Y-m-d H:i:s", $v['schedule_time']);
}
if($v['start_time'] == 0){
$v['start_time'] = "--";
}else{
$v['start_time'] = date("Y-m-d H:i:s", $v['start_time']);
}
if($v['end_time'] == 0){
$v['end_time'] = "--";
}else{
$v['end_time'] = date("Y-m-d H:i:s", $v['end_time']);
}
$v['created_time'] = date("Y-m-d H:i:s", $v['created_time']);
}
$this->assign('records', $records);
$count = M("cmd_tasks","tab_")->alias("c")->where($where)->count();
// dd($count);
$params['p'] = $page;
$params['row'] = $row;
$page = set_pagination($count, $row, $params);
if ($page) {
$this->assign('_page', $page);
}
$this->display();
}
}

@ -19,12 +19,15 @@ class CmdTasksModel extends Model{
//获取待执行任务
public function getTask()
{
//按顺序获取任务
$has_run = $this->where(['status'=>"1"])->count();
if($has_run > 0){
$has_run = $this->where(['status'=>"1"])->find();
if($has_run){
return false;
}
$task = $this->field("id,params")->where(['status'=>"0"])->order("id asc")->find();
$where = [
'status'=>"0",
'schedule_time'=>['ELT',time()]
];
$task = $this->field("id,params")->where($where)->order("id asc")->find();
if(empty($task)){
return false;
}else{
@ -49,7 +52,7 @@ class CmdTasksModel extends Model{
}
}
//插入任务
public function addTask($type,$params,$repeat=false,$need_path=true)
public function addTask($type,$params,$repeat=false,$need_path=true,$checkScheduleTime = 0)
{
if(!$repeat){
if(!$this->isCanAddTask($type)) return false;
@ -65,17 +68,30 @@ class CmdTasksModel extends Model{
}
$params = rtrim($params,";").' 2>&1';
$save = [
"uid"=>$_SESSION['onethink_admin']['user_auth']['uid'],
"uid"=>$_SESSION['onethink_admin']['user_auth']['uid']??0,
"created_time"=>time(),
"params"=>$params,
"type"=>$type
"type"=>$type,
"schedule_time"=>$checkScheduleTime
];
return $this->add($save);
}
public function addScheduleTask($type,$params,$checkScheduleTime = 0)
{
$this->addTask($type,$params,true,true,$checkScheduleTime);
}
//验证任务
public function isCanAddTask($type)
public function isCanAddTask($type,$checkScheduleTime=false)
{
$task = $this->field("end_time")->where(['status'=>["in","0,1"],'type'=>$type])->order("id desc")->find();
$where = [
'status'=>["in","0,1"],
'type'=>$type
];
if(!$checkScheduleTime){
$where['schedule_time'] = 0;
}
$task = $this->field("end_time")->where($where)->order("id desc")->find();
if(!empty($task)){
return false;
}

@ -47,13 +47,13 @@
<tr>
<td class="l" style="padding-left: 15px;">开发业绩提成比例:</td>
<td class="r table_radio">
<input type="text" name="develop_commission_ratio" id="develop_commission_ratio" value="{$data['develop_commission_ratio']}" onkeyup ="if(value>100){value=100}else{value=value.replace(/^\D*(\d*(?:\.\d{0,2})?).*$/g, '$1')}if(value.indexOf(0)==0){value=0}">
<input type="text" name="develop_commission_ratio" id="develop_commission_ratio" value="{$data['develop_commission_ratio']}">
</td>
</tr>
<tr>
<td class="l" style="padding-left: 15px;">维护业绩提成比例:</td>
<td class="r table_radio">
<input type="text" name="maintain_commission_ratio" id="maintain_commission_ratio" value="{$data['maintain_commission_ratio']}" onkeyup ="if(value>100){value=100}else{value=value.replace(/^\D*(\d*(?:\.\d{0,2})?).*$/g, '$1')}if(value.indexOf(0)==0){value=0}">
<input type="text" name="maintain_commission_ratio" id="maintain_commission_ratio" value="{$data['maintain_commission_ratio']}">
</td>
</tr>
<tr>
@ -85,14 +85,14 @@
<tr>
<td class="l" style="padding-left: 15px;">开发考核奖金比例:</td>
<td class="r table_radio">
<input type="text" name="appraisal_bonuses_ratio" id="appraisal_bonuses_ratio" value="{$data['appraisal_bonuses_ratio']}" onkeyup ="if(value>100){value=100}else{value=value.replace(/^\D*(\d*(?:\.\d{0,2})?).*$/g, '$1')}if(value.indexOf(0)==0){value=0}">
<input type="text" name="appraisal_bonuses_ratio" id="appraisal_bonuses_ratio" value="{$data['appraisal_bonuses_ratio']}">
</td>
</tr>
<tr>
<td class="l" style="padding-left: 15px;">维护考核奖金比例:</td>
<td class="r table_radio">
<input type="text" name="maintain_appraisal_bonuses_ratio" id="maintain_appraisal_bonuses_ratio" value="{$data['maintain_appraisal_bonuses_ratio']}" onkeyup ="if(value>100){value=100}else{value=value.replace(/^\D*(\d*(?:\.\d{0,2})?).*$/g, '$1')}if(value.indexOf(0)==0){value=0}">
<input type="text" name="maintain_appraisal_bonuses_ratio" id="maintain_appraisal_bonuses_ratio" value="{$data['maintain_appraisal_bonuses_ratio']}">
</td>
</tr>
@ -160,5 +160,17 @@
});
//导航高亮
highlight_subnav('{:U('AuthManager/index')}');
$("#develop_commission_ratio,#maintain_commission_ratio,#appraisal_bonuses_ratio,#maintain_appraisal_bonuses_ratio").keyup(function() {
var val = $(this).val();
var reg = /^(\-|\+)?\d+(\.\d*)?$/g;
if (val == '-') {
return;
}
if( !reg.test(val)){
$(this).val(0)
}
});
</script>
</block>

@ -54,7 +54,7 @@
<if condition="!IS_SUBSITE">
<a href="{:U('AuthManager/category?group_name='.$vo['title'].'&group_id='.$vo['id'])}" >分类授权</a>
<a href="{:U('AuthManager/dataempower?group_name='.$vo['title'].'&group_id='.$vo['id'])}" >数据授权</a>
<if condition="$vo['id'] eq 11 or $vo['id'] eq 12 or $vo['id'] eq 21">
<if condition="$vo['id'] eq 11 or $vo['id'] eq 12 or $vo['id'] eq 21 or $vo['id'] eq 25">
<a href="{:U('AuthManager/AuthMarketMember?group_name='.$vo['title'].'&group_id='.$vo['id'])}" >市场专员分成</a>
</if>
</if>

@ -216,9 +216,7 @@
</div>
<div class="page">
<if condition="$role_export_check eq true ">
<!-- <a class="sch-btn" href="{:U(CONTROLLER_NAME.'/'.ACTION_NAME,array_merge(['export'=>1],I('get.')))}" target="_blank">导出</a> -->
</if>
<a class="sch-btn" href="{:U(CONTROLLER_NAME.'/'.ACTION_NAME,array_merge(['list_export'=>1],I('get.')))}" target="_blank">导出</a>
{$_page|default=''}
</div>
</block>

@ -107,7 +107,7 @@
</tr>
</if>
<volist name="list_data" id="data">
<tr>
<tr <if condition = "$data.is_hide eq 1"> style="display:none;" </if>>
<td >{$data['real_name']}</td>
<td ><input style="width: auto;" name="{$data['nickname']}-{$data['uid']}-{$data['real_name']}" value="{$data['coefficient']/100}"></td>
</tr>

@ -33,7 +33,7 @@
<div class="cf main-place top_nav_list navtab_list">
<h3 class="page_title">市场毛利统计</h3>
<p class="description_text">说明:市场毛利统计</p>
<p class="description_text">说明:每月一号生成临时数据,每月的第一个周一生成准确数据 / 当前月份为:<if condition="$is_true_data">准确数据<else /> <span style="color: red;">临时数据,下次自动更新时间:{$schedule_time}</span></if></p>
</div>
@ -43,7 +43,9 @@
<div class="tools">
<if condition="$caculate_check eq true">
<empty name="show_status">
<a class="recaculate" url="{:U('reCaculateBonus')}" style="width: 60px;text-align: center;padding-right: 0;margin-right: 0;">重算</a>
<if condition="$is_can_recount">
<a class="recaculate" url="{:U('reCaculateBonus')}" style="width: 60px;text-align: center;padding-right: 0;margin-right: 0;">重算</a>
</if>
</empty>
</if>
</div>
@ -145,7 +147,7 @@
</if>
<notemtpy name = "list_data">
<volist name="list_data" id="data">
<tr>
<tr <if condition="$data['is_tip'] eq 1 ">style="color:red;"</if>>
<td>{$data.pay_time}</td>
<td>{$data.company_name}</td>
<td>{$data.promote_account}</td>

@ -103,7 +103,7 @@
<div class="cf main-place top_nav_list navtab_list">
<h3 class="page_title">市场业绩提成</h3>
<p class="description_text">说明:公会统计仅表示符合筛选条件下的数据统计,当搜索所属市场专员时,因为存在换绑等原因,所以不作为市场业绩统计依据</p>
<p class="description_text">说明:公会统计仅表示符合筛选条件下的数据统计,当搜索所属市场专员时,因为存在换绑等原因,所以不作为市场业绩统计依据。 / 当前月份为:<if condition="$is_true_data">准确数据<else /> <span style="color: red;">临时数据,临时数据不允许确认及审批,下次自动更新时间:{$schedule_time}</span></if></p>
</div>
@ -113,7 +113,9 @@
<div class="tools">
<if condition="$caculate_check eq true">
<empty name="show_status">
<a class="recaculate" url="{:U('reCaculateBonus')}" style="width: 60px;text-align: center;padding-right: 0;margin-right: 0;">重算</a>
<if condition="$is_can_recount">
<a class="recaculate" url="{:U('reCaculateBonus')}" style="width: 60px;text-align: center;padding-right: 0;margin-right: 0;">重算</a>
</if>
</empty>
</if>
</div>
@ -153,6 +155,7 @@
<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>
</select>
</div>
<input type="hidden" name="" value="" class="sortBy">
@ -165,26 +168,27 @@
</div>
<div class="butnbox" >
<div class="butnlist jscheckbutn" style="margin-left: 2px">
<if condition="$coefficient_check eq true">
<a class='butn' id='coefficient_check' style='background-color: #3C95C8;'>绩效确认</a>
</if>
<if condition="$market_check eq true">
<a class='butn' id='market_check' style='background-color: #3C95C8;'>市场部确认</a>
</if>
<if condition="$finance_check eq true">
<a class='butn' id='finance_check' style='background-color: #3C95C8;'>财务部审批</a>
</if>
<if condition="$personnel_check eq true">
<a class='butn' id='personnel_check' style='background-color: #3C95C8;'>人事部审批</a>
</if>
<if condition="$coefficient_in_check eq true">
<a class='butn' id='coefficient_in_check' href="{:U('addcoefficient')}" style='background-color: #3C95C8;'>绩效导入</a>
</if>
<if condition="$is_true_data">
<div class="butnbox" >
<div class="butnlist jscheckbutn" style="margin-left: 2px">
<if condition="$coefficient_check eq true">
<a class='butn' id='coefficient_check' style='background-color: #3C95C8;'>绩效确认</a>
</if>
<if condition="$market_check eq true">
<a class='butn' id='market_check' style='background-color: #3C95C8;'>市场部确认</a>
</if>
<if condition="$finance_check eq true">
<a class='butn' id='finance_check' style='background-color: #3C95C8;'>财务部审批</a>
</if>
<if condition="$personnel_check eq true">
<a class='butn' id='personnel_check' style='background-color: #3C95C8;'>人事部审批</a>
</if>
<if condition="$coefficient_in_check eq true">
<a class='butn' id='coefficient_in_check' href="{:U('addcoefficient')}" style='background-color: #3C95C8;'>绩效导入</a>
</if>
</div>
</div>
</div>
</if>
<!-- 数据列表 -->
<div class="data_list">

@ -38,13 +38,13 @@
<div class="cf top_nav_list">
<div class="fl button_list">
<!-- <div class="fl button_list">
<div class="tools">
<if condition="$caculate_check eq true">
<a class="recaculate" url="{:U('reCaculateBonus?pay_time='.$_GET['pay_time'])}" style="width: 60px;text-align: center;padding-right: 0;margin-right: 0;">重算</a>
</if>
</div>
</div>
</div> -->
<!-- 高级搜索 -->
<div class="jssearch fl cf search_list">
<div class="input-list search-title-box">

@ -0,0 +1,212 @@
<extend name="Public/base"/>
<block name="css">
<link rel="stylesheet" href="__CSS__/select2.min.css" type="text/css" />
<link rel="stylesheet" href="__CSS__/promote.css" type="text/css"/>
<link rel="stylesheet" type="text/css" href="__STATIC__/webuploader/webuploader.css" media="all">
<style>
.select2-container--default .select2-selection--single {
color: #000;
resize: none;
border-width: 1px;
border-style: solid;
border-color: #a7b5bc #ced9df #ced9df #a7b5bc;
box-shadow: 0px 3px 3px #F7F8F9 inset;height:35px;
height:28px;border-radius:3px;font-size:12px;
}
.select2-container--default .select2-selection--single .select2-selection__rendered {
line-height:35px;
line-height:28px;
}
.select2-container--default .select2-selection--single .select2-selection__arrow {
height:26px;
}
.select2-container--default .select2-search--dropdown .select2-search__field {
height:26px;line-height:26px;font-size:12px;
}
.select2-results__option[aria-selected] {font-size:12px;}
.textarea-style {
width: 200px;
height: 80px;
border-radius: 5px;
padding: 5px;
}
.mustmark {
color: #FF0000;
font-style: normal;
margin: 0 3px;
}
.el-card {
border-radius: 4px;
border: 1px solid #ebeef5;
background-color: #fff;
overflow: hidden;
color: #303133;
transition: .3s;
}
.el-card .card-body {
padding: 20px;
}
.el-card .card-header {
padding: 18px 20px;
border-bottom: 1px solid #ebeef5;
box-sizing: border-box;
}
.clearfix:after {
content:"";
display: block;
clear:both;
}
.set-default-btn {
border: none;
background: #3C95C8;
font-size: 14px;
font-weight: normal;
color: #fff;
cursor: pointer;
border-radius: 3px;
display: inline-block;
text-align: center;
border-bottom: none;
width: 55px;
height: 28px;
line-height: 26px;
}
</style>
</block>
<block name="body">
<script type="text/javascript" src="__JS__/bootstrap.min.js"></script>
<script type="text/javascript" src="__JS__/select2.min.js"></script>
<script type="text/javascript" src="__JS__/jquery.form.js"></script>
<script type="text/javascript" src="__STATIC__/uploadify/jquery.uploadify.min.js"></script>
<script src="__STATIC__/md5.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript" src="__STATIC__/webuploader/webuploader.js"></script>
<script src="__STATIC__/layer/layer.js" type="text/javascript"></script>
<script type="text/javascript" src="__STATIC__/layer/extend/layer.ext.js"></script>
<div class="cf clearfix main-place top_nav_list navtab_list">
<h3 class="page_title">定时任务查看</h3>
</div>
<div class="cf clearfix top_nav_list">
<!-- 高级搜索 -->
<div class="jssearch fl cf search_list">
<div class="input-list search-title-box">
<label>搜索:</label>
</div>
<div class="input-list">
<input style="width: 200px;" type="text" name="type" class="search-input" value="{:I('type')}" placeholder="请输入类型">&nbsp;
</div>
<div class="input-list input-list-promote search_label_rehab">
<select id="status" name="status" class="select_gallery" style="width:150px;">
<option value="">状态</option>
<option value="0">待处理</option>
<option value="1">处理中</option>
<option value="2">处理成功</option>
<option value="3">处理失败</option>
</select>
</div>
<div class="input-list">
<a class="sch-btn" href="javascript:;" id="search" url="{:U('cmdTasksList')}">搜索</a>
<!-- <a class="sch-btn" style="width: 80px;" href="{:U('PaymentMerchant/add')}">新增商户</a> -->
</div>
</div>
</div>
<!-- 数据列表 -->
<div class="data_list">
<div class="">
<table>
<!-- 表头 -->
<thead>
<tr>
<th>id</th>
<th>类型</th>
<th style="width: 300px;">命令</th>
<th>添加用户</th>
<th>状态</th>
<th>结果</th>
<th>创建时间</th>
<th>预定时间</th>
<th>开始时间</th>
<th>结束时间</th>
</tr>
</thead>
<!-- 列表 -->
<tbody>
<empty name ="records">
<td colspan="9" class="text-center">aOh! 暂时还没有内容!</td>
<else />
<volist name="records" id="data">
<tr data-id="<?=$data['id']?>">
<td>{$data.id}</td>
<td>{$data.type}</td>
<td >{$data.params}</td>
<td>{$data.admin_username}</td>
<td>{$data.status_str}</td>
<td style="width: 100px;height: 30px;">{$data.result}</td>
<td>{$data.created_time}</td>
<td>{$data.schedule_time}</td>
<td>{$data.start_time}</td>
<td>{$data.end_time}</td>
</tr>
</volist>
</empty>
</tbody>
</table>
</div>
</div>
<div class="page">
<if condition="$role_export_check eq true ">
<!-- <a class="sch-btn export-btn"
href="{:U(CONTROLLER_NAME.'/'.ACTION_NAME,array_merge(['export'=>1],I('get.')))}" target="_blank">导出</a> -->
</if>
{$_page|default=''}
</div>
</block>
<block name="script">
<link href="__STATIC__/datetimepicker/css/datetimepicker.css" rel="stylesheet" type="text/css">
<php>if(C('COLOR_STYLE')=='blue_color') echo '<link href="__STATIC__/datetimepicker/css/datetimepicker_blue.css" rel="stylesheet" type="text/css">';</php>
<link href="__STATIC__/datetimepicker/css/dropdown.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="__STATIC__/datetimepicker/js/bootstrap-datetimepicker.min.js"></script>
<script type="text/javascript" src="__STATIC__/datetimepicker/js/locales/bootstrap-datetimepicker.zh-CN.js" charset="UTF-8"></script>
<script src="__STATIC__/layer/layer.js" type="text/javascript"></script>
<script type="text/javascript" src="__STATIC__/layer/extend/layer.ext.js" ></script>
<script src="__STATIC__/jquery.cookie.js" charset="utf-8"></script>
<script>
<volist name=":I('get.')" id="vo">
Think.setValue('{$key}',"{$vo}");
</volist>
$(".select_gallery").select2();
</script>
<script type="text/javascript">
//导航高亮
highlight_subnav("{:U('cmdTasksList')}");
$(function(){
//搜索功能
$("#search").click(function(){
var url = $(this).attr('url');
var query = $('.jssearch').find('input').serialize();
query += "&"+$('.jssearch').find('select').serialize();
query = query.replace(/(&|^)(\w*?\d*?\-*?_*?)*?=?((?=&)|(?=$))/g,'');
query = query.replace(/^&/g,'');
if( url.indexOf('?')>0 ){
url += '&' + query;
}else{
url += '?' + query;
}
window.location.href = url;
});
//回车自动提交
$('.jssearch').find('input').keyup(function(event){
if(event.keyCode===13){
$("#search").click();
}
})
});
</script>
</block>
Loading…
Cancel
Save