*/ class MendController extends ThinkController { public $tempid = 0; public function lists($p=1){ $this->checkListOrCountAuthRestMap($map,[]); $this->m_title = '推广补链'; $this->assign('commonset',M('Kuaijieicon')->where(['url'=>'Mend/lists','status'=>1])->find()); $this->mendList(); } public function mendList(){ if(isset($_REQUEST['account'])){ if ($_REQUEST['account']=='全部') { unset($_REQUEST['account']); } $map['account']=array('like','%'.$_REQUEST['account'].'%'); unset($_REQUEST['account']); } $map['puid']=0; $map['length(account)'] = array('gt', 0); $map['register_time'] = array('gt', 0); $p = I('p'); $map['register_type'] = array('in','(0,1,2,3,4,5,6,7)'); //为数据权限添加 setPowerPromoteIds($map); $show_data_power = (is_administrator()|| session('user_auth')['show_data']); $this->assign('show_data_power', $show_data_power); parent::lists("user",$p,$map); } /** * 补链记录 * @param integer $p 分页 * @param booble IS_POST post请求时为下一页ajax请求 * @param booble export 是否导出 * @return void */ public function recordList($p=1,$export=false) { $page = intval($p); $page = $page ? $page : 1; if (isset($_REQUEST['row'])) { $row = $_REQUEST['row']; } else { $row = 10; } if(isset($_REQUEST['account'])) $map['user_account']=array('like','%'.$_REQUEST['account'].'%'); if(isset($_REQUEST['promote_account'])) $map['promote_account']=array('like','%'.$_REQUEST['promote_account'].'%'); if(isset($_REQUEST['promote_account_to'])) $map['promote_account_to']=array('like','%'.$_REQUEST['promote_account_to'].'%'); if(isset($_REQUEST['op_account'])) $map['op_account']=array('like','%'.$_REQUEST['op_account'].'%'); if (isset($_REQUEST['time_start']) && isset($_REQUEST['time_end'])) { $map['order_time'] = ['between', [strtotime($_REQUEST['time_start']), strtotime($_REQUEST['time_end']) + 86399]]; } elseif (isset($_REQUEST['time_start'])) { $map['order_time'] = ['GT', strtotime($_REQUEST['time_start'])]; } elseif (isset($_REQUEST['time_end'])) { $map['order_time'] = ['LT', strtotime($_REQUEST['time_end']) + 86399]; } $show_data_power = (is_administrator()|| session('user_auth')['show_data']); //为数据权限添加 setPowerPromoteIds($map); $data = M("Mend","tab_") ->field("user_account,promote_account,pay_amount,promote_account_to,order_time,create_time,op_account,remark,status") ->where($map) ->order("create_time desc"); if($export){ $data = $data->select(); }else{ $data = $data->page($page, $row)->select(); } //格式化信息 $mendService = new MendService(); foreach ($data as $key => $value) { ($data[$key]['promote_account']=='官方渠道')?($data[$key]['promote_account']=C('OFFICIEL_CHANNEL')):''; $data[$key]['create_time'] = date("Y-m-d H:i:s",$value['create_time']); $data[$key]['order_time'] = date("Y-m-d H:i:s",$value['order_time']); if(!$show_data_power){ $data[$key]['user_account'] = encryptStr($data[$key]['user_account']); } $data[$key]['status'] = $mendService->getStatusText($value['status']); } if($export) db2csv($data,"推广员管理_推广补链_补链记录",["玩家账号","补链前渠道","补链前归属金额","补链后渠道","切分时间","补链时间","操作人员","备注","处理状态"]); if(IS_POST){ $page = set_pagination($_REQUEST['row_count'],$row); $this->ajaxReturn(array( "list_data"=>$data, "page"=>$page )); die(); } $this->checkListOrCountAuthRestMap($map,[]); $count = M("Mend","tab_")->where($map)->count(); $this->assign('row_count',$count); $this->assign('list_data', $data); $page = set_pagination($count,$row); if($page) {$this->assign('_page', $page);} $this->assign('show_data_power', $show_data_power); $this->display(); } public function edit($id = null) { if (IS_POST) { $params = I('post.'); $service = new MendService(); try { if (session('user_auth')['allow_over_week'] && $params['allow_over_week'] == 1) { $params['allow_over_week'] = 1; } else { $params['allow_over_week'] = 0; } $service->addMendTask($params); $userData = M('user','tab_')->field(['account', 'promote_id', 'promote_account'])->where(['id' => $params['user_id']])->find(); $promoteToData = M('promote','tab_')->field('account')->where(['id'=> $params['prmoote_id_to']])->find(); addOperationLog([ 'op_type' => 1, 'key' => $userData['account'].'/'.$userData['promote_account'].'/'.$promoteToData['account'], 'op_name' => '编辑推广补链', 'url' => U('Mend/edit', ['id' => $userData['id']]), 'menu' => '推广员-推广员管理-推广补链-编辑推广补链', 'content' => json_encode($params) ]); $this->success('补链成功', U('lists'), 2); } catch (\Exception $e) { $this->error($e->getMessage()); } } else { // echo 1;die(); $map['id'] = $id; $data = M("user","tab_")->where($map)->find(); // $user = A('User', 'Event'); // $user_data = $user->user_entity($id); // $user_data || $this->error("用户数据异常"); // var_dump($user_data);die; $this->assign("data", $data); $this->meta_title = '编辑推广补链'; $this->m_title = '推广补链'; $this->assign('commonset',M('Kuaijieicon')->where(['url'=>'Mend/lists','status'=>1])->find()); $this->assign('allow_over_week', session('user_auth')['allow_over_week']); $this->display(); } } private function checkOrderTime($order_time){ $sdefaultDate = date("Y-m-d"); $first=1;//周一开始 $w=date('w',strtotime($sdefaultDate)); $checktime=strtotime("$sdefaultDate -".($w ? $w - $first : 6).' days'); //本周开始时间 if($order_time >= $checktime){ //在本周允许换绑 return false; } return true; } /** * 2020.1.3 之后判断订单是否已经结算 */ private function checkSpend($order_time,$account){ //获取所有涉及订单 $map = array( "pay_status"=>1, "user_account"=>$account, "payed_time"=>array("EGT",$order_time) ); $spendlist = M("Spend","tab_")->field("id,selle_status,pay_order_number")->where($map)->select(); if(count($spendlist) < 1){ //无流水可换绑 return false; } //获取结算方式 $c_id = M("User","tab_") ->alias('a') ->field("IFNULL(p.company_id,0) company_id") ->join('tab_promote p ON a.promote_id= p.id') ->where("a.account = '{$account}'") ->find(); if(empty($c_id) || $c_id['company_id'] == 0){ //官方渠道不结算,可换绑 return false; } $c_id = $c_id['company_id']; $r = M("CompanyRelation","tab_")->where("(first_company_type = 2 AND first_company_id = '{$c_id}') OR (second_company_type = 2 AND second_company_id = '{$c_id}')")->find(); if(empty($r) || $r['settlement_type'] == 0){ //不结算的公司允许换绑 return false; } $checktime = 0; if($r['settlement_type'] == 1){ //周结 $sdefaultDate = date("Y-m-d"); $first=1; $w=date('w',strtotime($sdefaultDate)); $checktime=strtotime("$sdefaultDate -".($w ? $w - $first : 6).' days'); //本周开始时间 }else{ //月结 $y = date("Y", time()); //年 $m = date("m", time()); //月 $checktime = mktime(0, 0, 0, $m, 1, $y); // 本月开始时间 } if($order_time >= $checktime){ //未在结算期内,允许换绑 return false; } //其他情况不允许换绑 return true; } /** * 2020.1.3 之前判断订单是否已经结算 */ private function checkSettlement($order_time,$prmote_id) { //判断是否已经结算,后台只会对会长进行结算 //获取会长信息 $Promote = M('promote','tab_'); $prmotedata = $Promote->field('chain')->find($prmote_id); $chain = trim($prmotedata['chain'], '/'); if ($chain == '') { $prmote_id = $prmote_id; } else { $prmote_id = explode('/', $chain)[0]; } $jsres = M("Settlement","tab_")->where(array( "total_money"=>array("GT",0), "starttime"=>array("ELT",$order_time), "endtime"=>array("EGT",$order_time), "promote_id"=>$prmote_id ))->find(); if($jsres) return true; return false; } //判断是否跨推广员进行补链 private function checkPromote($order_time,$account) { $res = M("Spend","tab_")->field("promote_id")->where(["pay_time"=>array("EGT",$order_time),"user_account"=>$account])->group("promote_id")->select(); if(count($res)>1) return true; return false; } //补链详情 public function shiftInfo() { $id = I('id'); $info = M("mend", 'tab_')->where("id = {$id} and status = 0")->find(); if(empty($info)){ $this->error("补链不存在或已处理"); } $info['order_time'] = date("Y-m-d",$info['order_time']); $this->assign('data',$info); $this->display(); } //取消补链 public function cancelShift() { $id = I('id'); $model = new Model(); $model->startTrans(); $status1 = M('ShiftTask')->where(['id' => $id,'status' => 0])->save(['status' => 2]); $status2 = M('mend', 'tab_')->where(['task_id' => $id, 'status' => 0])->save(['status' => 2, 'update_time' => time()]); if ($status1 && $status2) { $model->commit(); addOperationLog(['op_type'=>1,'key'=>$id,'op_name'=>'取消补链','url'=>U('Mend/shiftInfo',['id'=>$id]),'menu'=>'推广员-推广员管理-推广补链-取消补链']); $this->ajaxReturn(array("status"=>1,"url"=> U('lists'))); } else { $this->ajaxReturn(array("status"=>0,"url"=> U('lists'))); } } }