"其他", "1"=>"市场部", "2"=>"运营部" ]; public function lists() { $map = []; if (isset($_REQUEST['time_start']) && isset($_REQUEST['time_end'])) { $map['create_time'] = ['between', [strtotime(I('time_start')), strtotime(I('time_end')) + 86399]]; } elseif (isset($_REQUEST['time_start'])) { $map['create_time'] = ['GT', strtotime(I('time_start'))]; } elseif (isset($_REQUEST['time_end'])) { $map['create_time'] = ['LT', strtotime(I('time_end')) + 86399]; } if ($_REQUEST['verify_status']||$_REQUEST['verify_status']=='0') { $map['verify_status'] = $_REQUEST['verify_status']; } if ($_REQUEST['statement_type']||$_REQUEST['statement_type']=='0') { if($_REQUEST['statement_type']=='2') { $map['second_party_info'] = ['like','%"order_type":1%']; } else { $map['statement_type'] = $_REQUEST['statement_type']; if ($_REQUEST['statement_type']=='1') { $map['second_party_info'] = ['like','%"order_type":0%']; } } // dump($map['second_party_info']);die(); } // var_dump($map);die(); if ($_REQUEST['company_id']) { $map['company_name'] = $_REQUEST['company_id']; // if ($_REQUEST['company_id']=='万盟天下科技') { // $map['company_name'] = '海南万盟天下科技有限公司'; // } } $data = M("statement","tab_") ->where($map) ->order("create_time Desc") ->select(); // var_dump($data);die(); foreach ($data as $key => $value) { $data[$key]['order'] = json_decode($value['second_party_info'],true)['order_type']; } $sumData = M("statement","tab_") ->field('sum(`statement_money`) as sum_money,statement_type') ->where($map) ->group('statement_type') ->select(); $handleSumData = []; foreach ($sumData as $key => $value) { $handleSumData[$value['statement_type']] = $value['sum_money']; } if (!$handleSumData[1]) { $handleSumData[1] = 0; } if (!$handleSumData[0]) { $handleSumData[0] = 0; } $this->checkListOrCountAuthRestMap($map,[]); $this->assign('sum',$handleSumData); // dump($sumData);die(); foreach($data as $key => $value) { $data[$key]['create_time'] = date('Y-m-d H:i:s',$value['create_time']); $data[$key]['statement_begin_time'] = date('Y-m-d H:i:s',$value['statement_begin_time']); $data[$key]['statement_end_time'] = date('Y-m-d H:i:s',$value['statement_end_time']+86399); // $data[$key]['is_confirm'] = $data[$key]['is_confirm']?'确认':'未确认'; // $data[$key]['statement_type'] = $value['statement_type']?'公会对账单':'CP对账单'; } $this->meta_title = '结算单管理'; $this->assign('data',$data); $this->display(); } public function createDownstreamOrder() { $this->display(); } public function saveDownstreamOrder() { $second_party_info = $_REQUEST['second_party_info']; $first_party_info = $_REQUEST['first_party_info']; $statement_info = $_REQUEST['statement_info']; $sumData = $_REQUEST['sum_data']; if ($second_party_info['settlement_type']=='补点订单') { $second_party_info['order_type'] = 1; } else { $second_party_info['order_type'] = 0; } if (!$second_party_info||!$first_party_info||!$statement_info||!$statement_info) { $this->ajaxReturn(['code'=>0, 'msg'=>'数据错误' ]); } $insert['statement_type'] = 1; $insert['company_id'] = $_REQUEST['company_id']; $insert['company_name'] = $second_party_info['partner']; $insert['link_phone'] = $second_party_info['link_phone'];; $statement_begin_time = strtotime($statement_info[0]['statement_begin_time']); $statement_end_time = strtotime($statement_info[0]['statement_end_time']); foreach($statement_info as $key => $value) { if ($statement_begin_time>strtotime($value['statement_begin_time'])&&$value['statement_begin_time']) { $statement_begin_time = strtotime($value['statement_begin_time']); } // var_dump(strtotime($value['statement_begin_time']); if ($statement_end_timewhere(['ext_field'=>$_REQUEST['ext_field']])->find())) { addOperationLog(['op_type'=>0,'key'=>$second_party_info['partner'].'/'.getNowDate(),'op_name'=>'新增下游对账单','url'=>U('StatementMangement/lists'),'menu'=>'推广员-结算管理-结算单管理-新增下游对账单']); M('statement','tab_')->add($insert); $this->ajaxReturn(['code'=>1, 'msg'=>'生成结算单成功']); } else { $this->ajaxReturn(['code'=>0, 'msg'=>'生成结算单失败,结算单已经存在']); } } public function editDownstreamOrder() { $this->display('edit'); } public function editDownstreamOrderSave() { $second_party_info = $_REQUEST['second_party_info']; $first_party_info = $_REQUEST['first_party_info']; $statement_info = $_REQUEST['statement_info']; $sumData = $_REQUEST['sum_data']; if (!$second_party_info||!$first_party_info||!$statement_info||!$statement_info) { $this->ajaxReturn(['code'=>0, 'msg'=>'数据错误' ]); } $insert['statement_type'] = 1; $insert['company_id'] = $_REQUEST['company_id']; $insert['company_name'] = $second_party_info['partner']; $insert['link_phone'] = $second_party_info['link_phone'];; $statement_begin_time = strtotime($statement_info[0]['statement_begin_time']); $statement_end_time = strtotime($statement_info[0]['statement_end_time']); foreach($statement_info as $key => $value) { if ($statement_begin_time>strtotime($value['statement_begin_time'])&&$value['statement_begin_time']) { $statement_begin_time = strtotime($value['statement_begin_time']); } // var_dump(strtotime($value['statement_begin_time']); if ($statement_end_timewhere(['ext_field'=>$_REQUEST['ext_field']])->save($insert))) { addOperationLog(['op_type'=>1,'key'=>$second_party_info['partner'].'/'.getNowDate(),'op_name'=>'编辑下游对账单','url'=>U('StatementMangement/lists'),'menu'=>'推广员-结算管理-结算单管理-新增下游对账单']); $this->ajaxReturn(['code'=>1, 'msg'=>'结算单编辑成功']); } else { $this->ajaxReturn(['code'=>0, 'msg'=>'结算单编辑失败']); } } public function delStatementData() { $id = $_REQUEST['id']; if (!$id) { $this->ajaxReturn(['code'=>2000,'error'=>'no']); } $statementData = M('statement','tab_')->where(['id'=>$id])->find(); $is_del = M('statement','tab_')->where(['id'=>$id])->delete(); if ($is_del) { addOperationLog(['op_type'=>2,'key'=>$statementData['company_name'].'/'.date('YmdHis',$statementData['statement_begin_time']).'/'.date('YmdHis',$statementData['statement_end_time']),'op_name'=>'删除下游对账单','url'=>U('StatementMangement/lists'),'menu'=>'推广员-结算管理-结算单管理-删除下游对账单']); $this->ajaxReturn(['code'=>0,'success'=>'ok']); } else { $this->ajaxReturn(['code'=>2000,'error'=>'no']); } } public function rewardManageList($row = 10, $p = 1) { $companys[1] = array_column(SM('partner', 'tab_')->field('id, partner as name')->select(), 'name', 'id'); $companys[2] = array_column(SM('promote_company', 'tab_')->field('id, company_name as name')->select(), 'name', 'id'); $games = array_column(SM('game', 'tab_')->field('relation_game_id, relation_game_name, partner_id')->group('relation_game_id')->select(), null, 'relation_game_id'); $map = ' 1=1 '; $params = $_GET; if (!empty(I('reward_type'))) { $map .= " and reward_type = {$params['reward_type']}"; } if (I('game_id', -1) !== '' && I('game_id', -1) >= 0) { $map .= " and r.relation_game_id = {$params['game_id']}"; } if (!empty(I('partner_id'))) { $gameIds = []; foreach ($games as $item) { if ($item['partner_id'] == I('partner_id')) { $gameIds[] = $item['relation_game_id']; } } if ($gameIds) { $map .= " and r.relation_game_id in (".implode(',', $gameIds).")"; } else { $map .= " and 1<>1 "; } } if (!empty($params['settlement_type'])) { $map .= " and rd.settlement_type = {$params['settlement_type']} "; } if (!empty($params['detail_reward_type'])) { $map .= " and rd.type = {$params['detail_reward_type']} "; } if (!empty($params['settlement_time_range'])) { list($settlment_time_start, $settlment_time_end) = explode('~', $params['settlement_time_range']); $map .= " and r.settlement_time between " . strtotime(trim($settlment_time_start)) . " and " . (strtotime(trim($settlment_time_end))+86400); } if (!empty($params['confirm_time_range'])) { list($confirm_time_start, $confirm_time_end) = explode('~', $params['confirm_time_range']); $map .= " and r.confirm_time between " . strtotime(trim($confirm_time_start)) . " and " . (strtotime(trim($confirm_time_end))+86400); } if (!empty($params['detail_company_type'])) { $map .= " and rd.company_type = {$params['detail_company_type']} "; } if (!empty($params['detail_settlement_type'])) { $map .= " and rd.settlement_type = {$params['detail_settlement_type']} "; } //按部门搜索 // if (!empty($params['detail_company_name'])) { // $map .= " and rd.company_name like '%{$params['detail_company_name']}%' "; // } $selectCompanyId = true; if(!empty($params['detail_company_type']) && $params['detail_company_type']== 3 && (I('detail_company_id', -1) >= 0)){ $detail_company_name = self::INSIDE_COMPANY[$params['detail_company_id']]; if($detail_company_name == "其他"){ foreach (self::INSIDE_COMPANY as $inside_company_name) { if($inside_company_name != "其他"){ $map .= " and rd.company_name NOT LIKE '%{$inside_company_name}%' "; } } }else{ $map .= " and rd.company_name like '%{$detail_company_name}%' "; } $selectCompanyId = false; } // 判断公司 if (I('detail_company_id', -1) >= 0 && $selectCompanyId) { $map .= " and rd.company_id = {$params['detail_company_id']} "; // if (!empty($params['detail_company_name'])) { // $map .= " and rd.company_name = '{$params['detail_company_name']}' "; // } } //判断内外团 if(!empty($params['detail_company_type']) && $params['detail_company_type']== 2 && (I('company_belong', -1) >= 0)){ $company_belong = $params['company_belong']; $company_id = M("promote_company","tab_")->where("company_belong = '{$company_belong}'")->getField("id",true); $company_id = implode(",",$company_id); $detail_company_name = self::INSIDE_COMPANY[$params['detail_company_id']]; $map .= " and rd.company_id in ({$company_id }) "; } // 判断会长 if (I('detail_promote_account', -1) >= 0) { $map .= " and rd.promote_account like ('%{$params['detail_promote_account']}%') "; } if (!empty($params['detail_promote_account_input'])) { $map .= " and rd.promote_account like ('%{$params['detail_promote_account_input']}%') "; } // dd($map); $result = SM('reward_record', 'tab_')->alias('r') ->field('r.id') ->join('tab_reward_detail as rd on rd.record_id = r.id', 'LEFT') ->where($map) ->group('r.id') ->order('create_time DESC') ->select(); // dd(M()->getLastSql()); if ($result) { $map = []; $allIds = array_column($result, 'id'); // 分页 $count = count($allIds); $currentIds = I('is_export', false) ? $allIds : array_slice($allIds, ($p-1)*$row, $row); $map['r.id'] = ['in', $currentIds]; } else { $map = '1<>1'; } $list = SM('reward_record', 'tab_')->alias('r') ->field(' r.id, r.relation_game_id, r.settlement_time, r.confirm_time, r.content, r.reward_type, r.creater_id,is_verify,verify_detail,IFNULL(pc.company_belong,0) company_belong, rd.id as rid, rd.type as detail_type, rd.company_type as detail_company_type, rd.company_id as detail_company_id , rd.company_name as detail_company_name, rd.settlement_type as detail_settlement_type, rd.promote_account as detail_promote_account,rd.amount as detail_amount ') ->where($map) ->join('tab_reward_detail as rd on rd.record_id = r.id', 'LEFT') ->join('tab_promote_company as pc on rd.company_id =pc.id', 'LEFT') ->order('r.create_time DESC') ->select(); if ($list) { $record = []; foreach ($list as $item) { $item["verify_detail"] = json_decode($item["verify_detail"],true); if($item["is_verify"] == 0) { $verify_detail = "未审核"; } elseif($item["is_verify"] == 1) { $verify_detail="审核通过
"."(".$item["verify_detail"]["user"].")
".$item["verify_detail"]["time"]; } else{ $verify_detail="审核拒绝
"."(".$item["verify_detail"]["user"].")
".$item["verify_detail"]["time"]; } if (!isset($record[$item['id']])) { $record[$item['id']] = [ 'id' => $item['id'], 'relation_game_name' => $games[$item['relation_game_id']]['relation_game_name'] ?? '其他', 'relation_game_partner' => $companys[1][$games[$item['relation_game_id']]['partner_id']] ?? '无', 'settlement_time' => $item['settlement_time'] ? date('Y年m月', $item['settlement_time']) : '-', 'confirm_time' => $item['confirm_time'] ? date('Y-m-d', $item['confirm_time']) : '-', 'content' => $item['content'], 'reward_type_text' => RewardModel::$rewardTypes[$item['reward_type']], 'maxCount' => 0, 'creater_id' => $item['creater_id'], 'totalReward' => 0, 'totalPunish' => 0, 'is_verify'=>$item['is_verify'], 'verify'=>$verify_detail ]; } if (!empty($item['rid'])) { $record[$item['id']]['detail'][$item['detail_type']][] = [ 'company_type_text' => RewardModel::$companyTypes[$item['detail_company_type']] ?? '-', 'settlement_type_text' => RewardModel::$settlementTypes[$item['detail_settlement_type']] ?? '-', 'company_name' => empty($item['detail_company_name']) && !empty($item['detail_company_id']) ? ($companys[$item['detail_company_type']][$item['detail_company_id']] ?? '无') : ($item['detail_company_name'] ?? '无'), 'amount' => $item['detail_type'] == RewardModel::REWARD_TYPE_PUNISH ? -$item['detail_amount'] : $item['detail_amount'], 'promote_account' => $item['detail_promote_account'] ?? '无', 'company_belong'=>$item['detail_company_type'] == 2 ? getCompanyBlong($item['company_belong']) : "无" ]; if ($item['detail_type'] == RewardModel::REWARD_TYPE_REWARD) { $record[$item['id']]['totalReward'] += $item['detail_amount']; } else { $record[$item['id']]['totalPunish'] += $item['detail_amount']; } } // 获取最大行数 if (sizeof($record[$item['id']]['detail'][$item['detail_type']]) > $record[$item['id']]['maxCount']) { $record[$item['id']]['maxCount'] = sizeof($record[$item['id']]['detail'][$item['detail_type']]); } } } $count = sizeof($result); $page = set_pagination($count, $row); if ($page) { $this->assign('_page', $page); } if(IS_SUBSITE) { $this->assign("IS_SUBSITE",true); } // ksort($record); $this->assign('list', $record); $this->assign('promoters', array_column(SM('promote', 'tab_')->where(['level'=>1])->field('id, nickname, account')->select(), null, 'id')); $this->assign('company_belong',getCompanyBlong()); $this->checkListOrCountAuthRestMap($map,[]); if(I('is_export', false)){ $getData = $_GET; unset($getData['export']); addOperationLog(['op_type'=>3,'key'=>getNowDate(),'op_name'=>'导出推广公司','url'=>U('PromoteCompany/lists'),'menu'=>'推广员-推广员管理-推广公司管理-导出推广公司']); //导出 $this->display("rewardExport"); die(); } $this->display(); } public function rewardManageSave($id=0) { if (IS_POST) { $data = [ 'reward_type' => I('reward_type'), 'company_type' => I('company_type'), 'company_id' => I('company_id'), 'relation_game_id' => I('relation_game_id'), 'money' => I('money'), 'content' => I('content'), 'remark' => I('remark'), 'promote_id' => I('promote_id'), //'settlement_info' => json_encode(I('settlement_info') ? array_values(I('settlement_info')) : []), 'reward_time' => strtotime(I('reward_time')), 'confirm_time' => strtotime(I('confirm_time')), 'settlement_time' => strtotime(I('settlement_time')), ]; $settlment_info = I('settlement_info'); $accounts = I('account'); $user_types = I('user_type'); // 处理结算信息 if ($settlment_info) { $tmp = []; foreach($settlment_info as &$item) { if (empty($item)) { unset($item); continue; } // if (!is_numeric($item['price']) || empty($item['price'])) { // return $this->error('请填写正确的奖惩金额'); // } $item = json_decode($item, true); if (!empty($id) && empty($item['id'])) { $item['record_id'] = $id; //$item['id'] = null; } if (!empty($item['company_id']) && $item['company_type'] !=3 ) { $item['company_name'] = ''; } if ( $item['company_type'] ==3 ) { $item['company_id'] = 0; } $item['confirm_time'] = $data['settlement_time']; //$item['settlement_flag'] = sprintf('%s-%s-%s', $item['company_type'], $item['company_name'], $item['']) // 归类奖罚数组 $tmp[$item['type']][] = $item; } if (empty($tmp)) { return $this->error('请填写结算信息'); } $settlment_info = $tmp; // $promoterIds = array_column($settlment_info, 'promote_id'); // if (in_array(0, $promoterIds)) { // return $this->error('请选择合作方后再提交'); // } // if (sizeof(array_unique($promoterIds)) != sizeof($promoterIds)) { // return $this->error('含有重复的结算方,请确认!'); // } } else { return $this->error('请填写结算信息'); } if ($accounts) { foreach ($accounts as $index => $account) { if (trim($account) == '') { unset($accounts[$index]); } else if (checkAccount($user_types[$index],$account)==1) { $data['accounts'][] = array_merge(['account'=>$account], ['user_type'=>$user_types[$index]]); } else { return $this->error('账号'.$account.'不存在,请重新输入'); } // $data['accounts'][] = array_merge(['account'=>$account], ['user_type'=>$user_types[$index]]); } } else { $data['accounts'] = []; } $data['accounts']=a_array_unique($data['accounts']); // dump($data['accounts']);die(); $data['accounts'] = json_encode($data['accounts']); // if (!is_numeric(I('money'))) { // return $this->error('请输入正确的金额'); // } if (empty(I('content'))) { return $this->error('请填写事件内容'); } //dd($settlment_info); // 更新结算信息 if ($id) { SM('reward_detail', 'tab_')->where(['record_id'=>$id])->delete(); } if (!empty($settlment_info[RewardModel::REWARD_TYPE_REWARD]) && !empty($settlment_info[RewardModel::REWARD_TYPE_PUNISH])) { $data['reward_type'] = RewardModel::REWARD_TYPE_ALL; } else if (!empty($settlment_info[RewardModel::REWARD_TYPE_REWARD])) { $data['reward_type'] = RewardModel::REWARD_TYPE_REWARD; } else if (!empty($settlment_info[RewardModel::REWARD_TYPE_PUNISH])) { $data['reward_type'] = RewardModel::REWARD_TYPE_PUNISH; } $settlmentSet = array_merge($settlment_info[RewardModel::REWARD_TYPE_REWARD] ?? [], $settlment_info[RewardModel::REWARD_TYPE_PUNISH] ?? []); // dump($settlmentSet);die(); if ($id) { $checkReward = $this->checkRewardDetail($settlmentSet); if ($checkReward) { return $this->error("奖惩确认时间需在结算时间以后,请重新选择"); } $upt = SM('reward_record', 'tab_')->where(['id'=>$id])->save($data); if ($upt === false) { $this->error('保存失败'); } else { foreach ($settlmentSet as $item) { SM('reward_detail', 'tab_')->add($item); } $companyName = SM('partner','tab_')->field('partner')->where(['id'=>$data['company_id']])->find(); addOperationLog(['op_type'=>1,'key'=>$companyName['partner'].'/'.(($data['reward_type']==1)?'奖励':'惩罚').'/'.$data['money'],'op_name'=>'修改奖惩记录','url'=>U('Query/settlement'),'menu'=>'推广员-结算单管理-奖罚记录管理-修改奖惩记录']); $this->success('保存成功', U('StatementMangement/rewardManageList')); } } else { $checkReward = $this->checkRewardDetail($settlmentSet); if ($checkReward) { return $this->error("奖惩确认时间需在结算时间以后,请重新选择"); } $data['create_time'] = time(); $data['creater_id'] = is_login(); $ins = SM('reward_record', 'tab_')->add($data); $record_id = SM('reward_record', 'tab_')->getLastInsID(); $this->autoVerify($settlmentSet,$record_id); foreach ($settlmentSet as $item) { $item['record_id'] = $record_id; SM('reward_detail', 'tab_')->add($item); } $companyName = SM('partner','tab_')->field('partner')->where(['id'=>$data['company_id']])->find(); addOperationLog(['op_type'=>0,'key'=>$companyName['partner'].'/'.(($data['reward_type']==1)?'奖励':'惩罚').'/'.$data['money'],'op_name'=>'新增奖惩记录','url'=>U('Query/settlement'),'menu'=>'推广员-结算单管理-奖罚记录管理-新增奖惩记录']); return $ins ? $this->success('新增成功', U('StatementMangement/rewardManageList')) : $this->error('新增失败'); } } else { $games = SM('game', 'tab_')->field('relation_game_id, relation_game_name')->group('relation_game_id')->select(); $this->assign('games', $games); if ($id) { if (I('delete')) { $rewardRecordData = SM('reward_record', 'tab_')->where(['id'=>$id])->find(); $upt = SM('reward_record', 'tab_')->where(['id'=>$id])->delete(); SM('reward_detail', 'tab_')->where(['record_id'=>$id])->delete(); $companyName = SM('partner','tab_')->field('partner')->where(['id'=>$rewardRecordData['company_id']])->find(); addOperationLog(['op_type'=>2,'key'=>$companyName['partner'].'/'.(($rewardRecordData['reward_type']==1)?'奖励':'惩罚').'/'.$rewardRecordData['money'],'op_name'=>'删除奖惩记录','url'=>U('StatementMangement/rewardManageList'),'menu'=>'推广员-结算单管理-奖罚记录管理']); return $upt ? $this->success('删除成功') : $this->error('删除失败'); } else { $data = SM('reward_record', 'tab_')->where(['id'=>$id])->find(); if (!$data) return $this->error("未找到该记录"); $data['confirm_time'] = $data['confirm_time'] ? date('Y-m-d', $data['confirm_time']) : ''; $data['accounts'] = json_decode($data['accounts'], true) ?: []; $data['settlement_info'] = json_decode($data['settlement_info'], true) ?: []; //$this->assign('data', $data); } } else { $data['reward_time'] = strtotime(date('Y-m-01')); } $details = SM('reward_detail', 'tab_')->where(['record_id'=>$id])->select(); // 根据type 来合并 foreach ($details as $item) { $item['info'] = $item; if (empty($item['company_name']) && $item['company_id']) { if ($item['company_type'] == RewardModel::COMPANY_TYPE_PARTNER) { $item['company_name'] = SM('partner', 'tab_')->where(['id'=>$item['company_id']])->getField('partner'); } else { $item['company_name'] = SM('promote_company', 'tab_')->where(['id'=>$item['company_id']])->getField('company_name'); } } $tmp[$item['type']][] = $item; } $data['rewardCount'] = sizeof($tmp[RewardModel::REWARD_TYPE_REWARD]); $data['punishCount'] = sizeof($tmp[RewardModel::REWARD_TYPE_PUNISH]); $data['rewardAmount'] = $data['rewardCount'] > 0 ? array_sum(array_column($tmp[RewardModel::REWARD_TYPE_REWARD], 'amount')) : 0; $data['punishAmount'] = $data['punishCount'] > 0 ? array_sum(array_column($tmp[RewardModel::REWARD_TYPE_PUNISH], 'amount')) : 0; $data['maxCount'] = $data['rewardCount'] > $data['punishCount'] ? $data['rewardCount'] : $data['punishCount']; $this->assign('details', $tmp); $this->assign('data', $data); $this->assign('promoters', SM('promote', 'tab_')->where(['level'=>1])->field('id, nickname')->select()); $this->assign('rewardTypes', RewardModel::$rewardTypes); $this->assign('settlementTypes', RewardModel::$settlementTypes); $this->assign('companyTypes', RewardModel::$companyTypes); $this->display(); } } public function checkRewardDetail($settlmentSet = []) { $pool_data = M("company_statement_pool","tab_")->field('id,statement_num,create_lack_ids,verify_status,is_payment,withdraw_type,statement_begin_time,statement_end_time') ->where([ 'verify_status'=>['egt',2], 'withdraw_type'=>['neq',3] ]) ->select(); foreach ($settlmentSet as $key => $value) { if ($value['company_id']) { foreach ($pool_data as $pkey => $pvalue) { $infolist = []; if ($pvalue['verify_status'] != 6) { //获取基本信息 $infolist = M("company_statement_info", "tab_")->field("*,'1' as st") // ->where("pool_id = '{$pvalue['id']}'") ->where([ 'statement_begin_time' => ['elt', $value['confirm_time']], 'statement_end_time' => ['egt', $value['confirm_time']], 'company_id' => $value['company_id'], 'pool_id'=>$pvalue['id'], ]) ->select(); //获取母单 if (!empty($pvalue['create_lack_ids'])) { $l_ids = explode(',',$pvalue['create_lack_ids']); $lack_info = M("company_lack_statement_info", "tab_") ->field("*,'0' as st") // ->where("id in ({$l_ids})") ->where([ 'id'=>['in',$l_ids], 'statement_begin_time' => ['elt', $value['confirm_time']], 'statement_end_time' => ['egt', $value['confirm_time']], 'company_id' => $value['company_id'], ]) ->select(); $infolist = array_merge($infolist, $lack_info); } if ($infolist) { return true; } } } } } return false; } public function rewardManageDetail($id=0) { $games = SM('game', 'tab_')->field('relation_game_id, relation_game_name')->group('relation_game_id')->select(); $this->assign('games', $games); if ($id) { if (I('delete')) { $rewardRecordData = SM('reward_record', 'tab_')->where(['id'=>$id])->find(); $upt = SM('reward_record', 'tab_')->where(['id'=>$id])->delete(); SM('reward_detail', 'tab_')->where(['record_id'=>$id])->delete(); $companyName = SM('partner','tab_')->field('partner')->where(['id'=>$rewardRecordData['company_id']])->find(); addOperationLog(['op_type'=>2,'key'=>$companyName['partner'].'/'.(($rewardRecordData['reward_type']==1)?'奖励':'惩罚').'/'.$rewardRecordData['money'],'op_name'=>'删除奖惩记录','url'=>U('StatementMangement/rewardManageList'),'menu'=>'推广员-结算单管理-奖罚记录管理']); return $upt ? $this->success('删除成功') : $this->error('删除失败'); } else { $data = SM('reward_record', 'tab_')->where(['id'=>$id])->find(); if (!$data) return $this->error("未找到该记录"); $data['confirm_time'] = $data['confirm_time'] ? date('Y-m-d', $data['confirm_time']) : ''; $data['accounts'] = json_decode($data['accounts'], true) ?: []; $data['settlement_info'] = json_decode($data['settlement_info'], true) ?: []; //$this->assign('data', $data); } } else { $data['reward_time'] = strtotime(date('Y-m-01')); } $details = SM('reward_detail', 'tab_')->where(['record_id'=>$id])->select(); // 根据type 来合并 foreach ($details as $item) { $item['info'] = $item; if (empty($item['company_name']) && $item['company_id']) { if ($item['company_type'] == RewardModel::COMPANY_TYPE_PARTNER) { $item['company_name'] = SM('partner', 'tab_')->where(['id'=>$item['company_id']])->getField('partner'); } else { $item['company_name'] = SM('promote_company', 'tab_')->where(['id'=>$item['company_id']])->getField('company_name'); } } $tmp[$item['type']][] = $item; } $data['rewardCount'] = sizeof($tmp[RewardModel::REWARD_TYPE_REWARD]); $data['punishCount'] = sizeof($tmp[RewardModel::REWARD_TYPE_PUNISH]); $data['rewardAmount'] = $data['rewardCount'] > 0 ? array_sum(array_column($tmp[RewardModel::REWARD_TYPE_REWARD], 'amount')) : 0; $data['punishAmount'] = $data['punishCount'] > 0 ? array_sum(array_column($tmp[RewardModel::REWARD_TYPE_PUNISH], 'amount')) : 0; $data['maxCount'] = $data['rewardCount'] > $data['punishCount'] ? $data['rewardCount'] : $data['punishCount']; $this->assign('details', $tmp); $this->assign('data', $data); $this->assign('promoters', SM('promote', 'tab_')->where(['level'=>1])->field('id, nickname')->select()); $this->assign('rewardTypes', RewardModel::$rewardTypes); $this->assign('settlementTypes', RewardModel::$settlementTypes); $this->assign('companyTypes', RewardModel::$companyTypes); $this->display('rewardManagerDetail'); } public function addreward() { $batch = date('Ymd') . date('His') . sp_random_num(3); $this->assign("batch", $batch); $this->meta_title = 'EXCEL导入'; $this->display(); } public function loopAdd() { Vendor('PHPExcel.PHPExcel'); $p = $_REQUEST; // $batch = $p['batch']; $checkarr = $p['checkarr']; //循环获取添加 if (count($checkarr) < 1) { $this->ajaxReturn(["status" => 0, "msg" => "没有数据"]); } $reward_type = [ "无"=>0, "奖励"=>1, "惩罚"=>2, "双向"=>3 ]; $company_type = [ "无"=>0, "上游公司"=>1, "下游公司"=>2, "内部公司"=>3 ]; $type = [ "无"=>0, "奖励方"=>1, "惩罚方"=>2 ]; $settlement_type = [ "线下结算"=>1, "线上结算"=>2 ]; $all_record = []; $all_detail = []; $record = []; $detail = []; $md5 = ''; foreach ($checkarr as $k => $v) { if ($v['game_name']) { $record = []; $detail = []; $game_data = SM("game","tab_")->field("relation_game_id")->where(['relation_game_name'=>$v['game_name']])->find(); $record["reward_type"] = $reward_type[$v['reward_type']]; $record["accounts"] = json_encode([]); $record["relation_game_id"] = $game_data["relation_game_id"]?$game_data["relation_game_id"]:0; $record["content"] = $v["content"]; $record["reward_time"] = strtotime($v["reward_time"]); $record["confirm_time"] = strtotime($v["confirm_time"]); $record["settlement_time"] = strtotime($v["settlement_time"]); $record["create_time"] = time(); $record["creater_id"] = $_SESSION['onethink_admin']['user_auth']['uid']; $md5 = md5($record["relation_game_id"].$record["content"].$record["create_time"].$record["confirm_time"].$record["reward_time"].$record["settlement_time"]); $all_record[$md5] = $record; if ($v["company_name"]!="无") { $company_data = SM("promote_company","tab_")->field("id")->where(['company_name'=>$v["company_name"]])->find(); $detail["company_type"] = $company_type[$v["company_type"]]?$company_type[$v["company_type"]]:0; $detail["type"] = $type[$v["type"]]?$type[$v["type"]]:0; $detail["company_id"] = $company_data["id"]?$company_data["id"]:0; $detail["company_name"] = $v["company_name"]?$v["company_name"]:''; $detail["promote_account"] = $v["promote_account"]?$v["promote_account"]:''; $detail["settlement_type"] = $settlement_type[$v["settlement_type"]]?$settlement_type[$v["settlement_type"]]:0; $detail["amount"] = abs($v["amount"])?abs($v["amount"]):0; $detail["confirm_time"] = $record["confirm_time"]; $all_detail[$md5][] = $detail; } $detail = []; if ($v["company_name_1"]!="无") { $company_data = SM("promote_company","tab_")->field("id")->where(['company_name'=>$v["company_name_1"]])->find(); $detail["company_type"] = $company_type[$v["company_type_1"]]?$company_type[$v["company_type_1"]]:0; $detail["type"] = $type[$v["type_1"]]?$type[$v["type_1"]]:0; $detail["company_id"] = $company_data["id"]?$company_data["id"]:0; $detail["company_name"] = $v["company_name_1"]?$v["company_name_1"]:''; $detail["promote_account"] = $v["promote_account_1"]?$v["promote_account_1"]:''; $detail["settlement_type"] = $settlement_type[$v["settlement_type_1"]]?$settlement_type[$v["settlement_type_1"]]:0; $detail["amount"] = abs($v["amount_1"])?abs($v["amount_1"]):0; $detail["confirm_time"] = $record["confirm_time"]; $all_detail[$md5][] = $detail; } } else { $detail = []; if ($v["company_name"]!="无") { $company_data = SM("promote_company","tab_")->field("id")->where(['company_name'=>$v["company_name"]])->find(); $detail["company_type"] = $company_type[$v["company_type"]]?$company_type[$v["company_type"]]:0; $detail["type"] = $type[$v["type"]]?$type[$v["type"]]:0; $detail["company_id"] = $company_data["id"]?$company_data["id"]:0; $detail["company_name"] = $v["company_name"]?$v["company_name"]:''; $detail["promote_account"] = $v["promote_account"]?$v["promote_account"]:''; $detail["settlement_type"] = $settlement_type[$v["settlement_type"]]?$settlement_type[$v["settlement_type"]]:0; $detail["amount"] = abs($v["amount"])?abs($v["amount"]):0; $detail["confirm_time"] = $record["confirm_time"]; $all_detail[$md5][] = $detail; } $detail = []; if ($v["company_name_1"]!="无") { $company_data = SM("promote_company","tab_")->field("id")->where(['company_name'=>$v["company_name_1"]])->find(); $detail["company_type"] = $company_type[$v["company_type_1"]]; $detail["type"] = $type[$v["type_1"]]?$type[$v["type_1"]]:0; $detail["company_id"] = $company_data["id"]?$company_data["id"]:0; $detail["company_name"] = $v["company_name_1"]?$v["company_name_1"]:''; $detail["promote_account"] = $v["promote_account_1"]?$v["promote_account_1"]:''; $detail["settlement_type"] = $settlement_type[$v["settlement_type_1"]]?$settlement_type[$v["settlement_type_1"]]:0; $detail["amount"] = abs($v["amount_1"])?abs($v["amount_1"]):0; $detail["confirm_time"] = $record["confirm_time"]; $all_detail[$md5][] = $detail; } } } // die(); foreach ($all_record as $key => $value) { $insert_id = SM("reward_record","tab_")->add($value); foreach ($all_detail[$key] as $k => $v) { $all_detail[$key][$k]['record_id'] = $insert_id; } $is_success = SM("reward_detail","tab_")->addAll($all_detail[$key]); } $this->ajaxReturn(["status" => 1, "msg" => "导入成功"]); } //模板导出 public function download() { header("Content-type: text/html; charset=utf-8"); error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '
'); Vendor("PHPExcel.PHPExcel"); $objPHPExcel = new \PHPExcel(); $objReader = \PHPExcel_IOFactory::createReader('Excel2007'); //设置模板文件 $objPHPExcel = $objReader->load("Public/Admin/excel/rewardOrfina.xlsx"); $fileName = "奖惩导入"; ob_end_clean();//清除缓冲区,避免乱码 header('pragma:public'); header('Content-type:application/vnd.ms-excel;charset=utf-8;name="' . $fileName .'".xls'); header("Content-Disposition:attachment;filename={$fileName}.xls");//attachment新窗口打印inline本窗口打印 $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); $objWriter->save('php://output'); exit; } public function getCompanys($type=1) { if ($type == 1) { $data = SM('partner', 'tab_')->field('id, partner as name')->select(); } elseif ($type == 0) { $data = []; } elseif ($type == 3){ $data = []; foreach (self::INSIDE_COMPANY as $key => $value) { $data[] = [ "id"=>$key, "name"=>$value ]; } } else { $data = SM('promote_company', 'tab_')->field('id, company_name as name')->select(); } return $this->success($data, '', true); } public function PersonOrderList() { if ($_REQUEST['time_start'] || $_REQUEST['time_end'] ) { $withdrawMap = []; if ($_REQUEST['time_start']&&!$_REQUEST['time_end']) { $withdrawMap['settlement_begin_time'] = ['egt',strtotime($_REQUEST['time_start'])]; } if (!$_REQUEST['time_start']&&$_REQUEST['time_end']) { $withdrawMap['settlement_end_time'] = ['elt',strtotime($_REQUEST['time_end'])]; } if ($_REQUEST['time_start']&&$_REQUEST['time_end']) { $withdrawMap['settlement_begin_time'] = ['egt',strtotime($_REQUEST['time_start'])]; $withdrawMap['settlement_end_time'] = ['elt',strtotime($_REQUEST['time_end'])]; } $data = M('withdraw',"tab_") ->field("widthdraw_number,settlement_begin_time,settlement_end_time,settlement_type,promote_account") ->join('left join tab_promote_belong on tab_withdraw.promote_id=tab_promote_belong.promote_id') ->join("left join tab_statement as statement on tab_withdraw.widthdraw_number = statement.ext_field") ->where("ext_field is null and tab_promote_belong.company_type=2") ->where($withdrawMap) ->select(); $statement = M('statement','tab_') ->field('ext_field') ->where(['ext_field'=>['like','%,%']]) ->select(); $withdrawData = []; foreach($statement as $key => $value) { $handleData = explode(',',$value['ext_field']); foreach ($handleData as $hk => $hv) { array_push($withdrawData,$hv); } } foreach ($data as $key => $value) { $data[$key]['settlement_begin_time'] = date("Y-m-d H:i:s", $data[$key]['settlement_begin_time']); $data[$key]['settlement_end_time'] = date("Y-m-d H:i:s", $data[$key]['settlement_end_time']); if (in_array($value['widthdraw_number'],$withdrawData)) { unset($data[$key]); } } $this->assign('withdraw_data',$data); } if ($_REQUEST['withdraw']&&$data) { $map = []; $map['widthdraw_number'] = ['in',$_REQUEST['withdraw']]; $data = M('withdraw','tab_') ->field("tab_withdraw.id,pc.company_name,pc.id as cid,tab_withdraw.promote_id,tab_withdraw.promote_account,username,'个人' as type,game_ratio ,mobile_phone,real_name,pc.bank_card,bank_address as account_openin,tab_promote.address,pc.settlement_contact as bank_account") ->join('left join tab_promote_belong on tab_withdraw.promote_id=tab_promote_belong.promote_id') ->join("left join tab_statement as statement on tab_withdraw.widthdraw_number = statement.ext_field") ->join("left join tab_promote on tab_promote.id=tab_promote_belong.promote_id") ->join("left join tab_promote_company as pc on pc.id = tab_promote.company_id") ->join("left join sys_ucenter_member on sys_ucenter_member.id=tab_promote.admin_id") ->where("ext_field is null and tab_promote_belong.company_type=2") ->where($map) ->select(); $game_ratio = []; foreach($data as $dkey => &$dval) { $gameStr = []; // $address = ''; // if (is_array($data['address'])) { // foreach($data['address'] as $key => $value) { // $address = $address.' '.$value; // } // } // $dval['address'] = $address; $rowspan = 0; $dval['rowspan'] = 0; $dval['game_ratio'] = json_decode($dval['game_ratio'],true); if (is_array($dval['game_ratio'])) { foreach ($dval['game_ratio'] as $key => &$value) { foreach ($value as $k => &$v) { // $v['game_id'] = $key; $v['game_name'] = substr(get_gamename($key),0,strpos(get_gamename($key), '(')); if (!in_array($v['game_name'],$gameStr)) { array_push($gameStr,$v['game_name']); } else { // var_dump($key); if (!$game_ratio[$v['game_name']]) { $game_ratio[$v['game_name']] = $v; } else { $game_ratio[$v['game_name']]['sum_amount'] += $v['sum_amount']; } unset($value[$k]); } // } if (!$value) { unset($dval['game_ratio'][$key]); } } foreach ($dval['game_ratio'] as $key => $val) { $val[0]['reward'] = 0; $val[0]['forfeit'] = 0; $startTime = strtotime($val[0]['begin_time']); $endTime = strtotime($val[0]['end_time']); $rewardData = M('reward_record','tab_') ->field("sum(tab_reward_record.money) as money,reward_type,relation_game_name") ->join("left join (select * from tab_game group by relation_game_id)tab_game on tab_reward_record.relation_game_id=tab_game.relation_game_id") ->where(['company_type'=>2,'relation_game_name'=>['like',"%{$val[0]['game_name']}%"],'reward_time'=>['between',[$startTime,$endTime]]]) ->group('reward_type') ->select(); foreach ($rewardData as $rk => $rv) { if ($rv['reward_type'] == 1) { $val[0]['reward'] = $rv['money']; } else { $val[0]['forfeit'] = $rv['money']; } } foreach ($val as $k => &$v) { if ($game_ratio[$v['game_name']]) { $v['sum_amount'] = number_format($v['sum_amount'] + $game_ratio[$v['game_name']]['sum_amount'],2,'.',''); } //计算结算金额 $val[0]['real_amount'] = number_format($val[0]['sum_amount'] * ($val[0]['selle_ratio']/100)+$val[0]['reward']-$val[0]['forfeit'],2,'.',''); } $rowspan++; unset($dval['game_ratio'][$key]); array_push($dval['game_ratio'],$val[0]); } $dval['rowspan'] = $rowspan; } } $this->assign('data',$data); } $this->display(); } public function savePersonOrder() { // dump($_POST); $data['statement_info'] = $_POST['statement_info']; $data['first_party_info'] = json_encode([]); $data['second_party_info'] = $_POST['second_party_info']; $data['statement_begin_time'] = strtotime($_POST['time_start']); $data['statement_end_time'] = strtotime($_POST['time_end']); $data['create_time'] = time(); $data['statement_money'] = 0; $data['pay_amount'] = 0; $data['ext_field'] = ''; $data['company_name'] = '个人结账单'; $data['statement_type'] = 2; if($data['second_party_info'] == '[]' || $data['statement_info'] == '[]') { $this->ajaxReturn(['status'=>1,'msg'=>'数据错误']); } $statement_info = json_decode($data['statement_info'],true); foreach($statement_info as $key => $value) { $data['statement_money'] += $value['sum_amount']; $data['pay_amount'] += $value['real_amount']; } $second_party_info = json_decode($data['second_party_info'],true); foreach($second_party_info as $key => $value) { $data['ext_field'] = $data['ext_field'].$value['widthdraw_number'].','; } $is_exist = M('statement','tab_')->where(['ext_field'=>$data['ext_field'],'statement_type'=>2])->find(); if ($is_exist) { $this->ajaxReturn(['status'=>0,'msg'=>'请勿重复添加']); } $is_save = M('statement','tab_')->add($data); if ($is_save) { addOperationLog(['op_type'=>0,'key'=>'个人结算单'.'/'.getNowDate(),'op_name'=>'生成下游个人结算单','url'=>U('StatementMangement/lists'),'menu'=>'推广员-结算管理-结算单管理-生成下游个人结算单']); $this->ajaxReturn(['status'=>1,'msg'=>'生成成功']); } else { $this->ajaxReturn(['status'=>0,'msg'=>'生成失败']); } } public function PersonOrderEdit() { if ($_REQUEST['time_start'] || $_REQUEST['time_end'] ) { $withdrawMap = []; if ($_REQUEST['time_start']&&!$_REQUEST['time_end']) { $withdrawMap['settlement_begin_time'] = ['egt',strtotime($_REQUEST['time_start'])]; } if (!$_REQUEST['time_start']&&$_REQUEST['time_end']) { $withdrawMap['settlement_end_time'] = ['elt',strtotime($_REQUEST['time_end'])]; } if ($_REQUEST['time_start']&&$_REQUEST['time_end']) { $withdrawMap['settlement_begin_time'] = ['egt',strtotime($_REQUEST['time_start'])]; $withdrawMap['settlement_end_time'] = ['elt',strtotime($_REQUEST['time_end'])]; } $data = M('withdraw',"tab_") ->field("widthdraw_number,settlement_begin_time,settlement_end_time,settlement_type,promote_account") ->join('left join tab_promote_belong on tab_withdraw.promote_id=tab_promote_belong.promote_id') ->join("left join tab_statement as statement on tab_withdraw.widthdraw_number = statement.ext_field") ->where("tab_promote_belong.company_type=2") ->where($withdrawMap) ->select(); // dump($data);die(); $statement = M('statement','tab_') ->field('ext_field') ->where('ext_field is not null') ->select(); $withdrawData = []; foreach($statement as $key => $value) { $handleData = explode(',',$value['ext_field']); foreach ($handleData as $hk => $hv) { array_push($withdrawData,$hv); } } // $thisWithdraw = explode(',',$_REQUEST['withdraw']); $thisWithdraw = explode(',',M('statement','tab_')->where(['id'=>$_REQUEST['id']])->find()['ext_field']); // dump($thisWithdraw);die(); foreach ($data as $key => $value) { // $data[$key]['settlement_begin_time'] = date("Y-m-d H:i:s", $data[$key]['settlement_begin_time']); // $data[$key]['settlement_end_time'] = date("Y-m-d H:i:s", $data[$key]['settlement_end_time']); // var_dump($value['widthdraw_number'].$_REQUEST['withdraw']);die(); if (in_array($value['widthdraw_number'],$withdrawData)&&!in_array($value['widthdraw_number'],$thisWithdraw)) { unset($data[$key]); } } foreach ($data as $key => $value) { $data[$key]['settlement_begin_time'] = date("Y-m-d H:i:s", $data[$key]['settlement_begin_time']); $data[$key]['settlement_end_time'] = date("Y-m-d H:i:s", $data[$key]['settlement_end_time']); } $this->assign('withdraw_data',$data); } if ($_REQUEST['withdraw']&&$data) { $map = []; $map['widthdraw_number'] = ['in',$_REQUEST['withdraw']]; $data = M('withdraw','tab_') ->field("tab_withdraw.id,pc.company_name,pc.id as cid,tab_withdraw.promote_id,tab_withdraw.promote_account,username,'个人' as type,game_ratio ,mobile_phone,real_name,pc.bank_card,bank_address as account_openin,tab_promote.address,pc.settlement_contact as bank_account") ->join('left join tab_promote_belong on tab_withdraw.promote_id=tab_promote_belong.promote_id') ->join("left join tab_statement as statement on tab_withdraw.widthdraw_number = statement.ext_field") ->join("left join tab_promote on tab_promote.id=tab_promote_belong.promote_id") ->join("left join tab_promote_company as pc on pc.id = tab_promote.company_id") ->join("left join sys_ucenter_member on sys_ucenter_member.id=tab_promote.admin_id") ->where("tab_promote_belong.company_type=2") ->where($map) ->select(); $game_ratio = []; foreach($data as $dkey => &$dval) { $gameStr = []; $rowspan = 0; $dval['rowspan'] = 0; $dval['game_ratio'] = json_decode($dval['game_ratio'],true); if (is_array($dval['game_ratio'])) { foreach ($dval['game_ratio'] as $key => &$value) { foreach ($value as $k => &$v) { // $v['game_id'] = $key; $v['game_name'] = substr(get_gamename($key),0,strpos(get_gamename($key), '(')); if (!in_array($v['game_name'],$gameStr)) { array_push($gameStr,$v['game_name']); } else { // var_dump($key); if (!$game_ratio[$v['game_name']]) { $game_ratio[$v['game_name']] = $v; } else { $game_ratio[$v['game_name']]['sum_amount'] += $v['sum_amount']; } unset($value[$k]); } // } if (!$value) { unset($dval['game_ratio'][$key]); } } foreach ($dval['game_ratio'] as $key => $val) { $val[0]['reward'] = 0; $val[0]['forfeit'] = 0; $startTime = strtotime($val[0]['begin_time']); $endTime = strtotime($val[0]['end_time']); $rewardData = M('reward_record','tab_') ->field("sum(tab_reward_record.money) as money,reward_type,relation_game_name") ->join("left join (select * from tab_game group by relation_game_id)tab_game on tab_reward_record.relation_game_id=tab_game.relation_game_id") ->where(['company_type'=>2,'relation_game_name'=>['like',"%{$val[0]['game_name']}%"],'reward_time'=>['between',[$startTime,$endTime]]]) ->group('reward_type') ->select(); foreach ($rewardData as $rk => $rv) { if ($rv['reward_type'] == 1) { $val[0]['reward'] = $rv['money']; } else { $val[0]['forfeit'] = $rv['money']; } } foreach ($val as $k => &$v) { if ($game_ratio[$v['game_name']]) { $v['sum_amount'] = number_format($v['sum_amount'] + $game_ratio[$v['game_name']]['sum_amount'],2,'.',''); } //计算结算金额 $val[0]['real_amount'] = number_format($val[0]['sum_amount'] * ($val[0]['selle_ratio']/100)+$val[0]['reward']-$val[0]['forfeit'],2,'.',''); } $rowspan++; unset($dval['game_ratio'][$key]); array_push($dval['game_ratio'],$val[0]); } $dval['rowspan'] = $rowspan; } } $this->assign('data',$data); } $this->display(); } public function savePersonOrderEdit() { $data['statement_info'] = $_POST['statement_info']; $data['first_party_info'] = json_encode([]); $data['second_party_info'] = $_POST['second_party_info']; $data['statement_begin_time'] = strtotime($_POST['time_start']); $data['statement_end_time'] = strtotime($_POST['time_end']); $data['create_time'] = time(); $data['statement_money'] = 0; $data['pay_amount'] = 0; $data['ext_field'] = ''; $data['company_name'] = '个人结账单'; $data['statement_type'] = 2; if($data['second_party_info'] == '[]' || $data['statement_info'] == '[]') { $this->ajaxReturn(['status'=>1,'msg'=>'数据错误']); } $statement_info = json_decode($data['statement_info'],true); foreach($statement_info as $key => $value) { $data['statement_money'] += $value['sum_amount']; $data['pay_amount'] += $value['real_amount']; } $second_party_info = json_decode($data['second_party_info'],true); foreach($second_party_info as $key => $value) { $data['ext_field'] = $data['ext_field'].$value['widthdraw_number'].','; } $data['ext_field'] = rtrim($data['ext_field'], ","); $is_save = M('statement','tab_')->where(['id'=>$_REQUEST['withdraw_id']])->save($data); // echo M('statement','tab_')->_sql();die(); if ($is_save) { addOperationLog(['op_type'=>1,'key'=>'个人结算单'.'/'.getNowDate(),'op_name'=>'编辑下游个人结算单','url'=>U('StatementMangement/lists'),'menu'=>'推广员-结算管理-结算单管理-编辑下游个人结算单']); $this->ajaxReturn(['status'=>1,'msg'=>'修改成功']); } else { $this->ajaxReturn(['status'=>0,'msg'=>'修改失败']); } } public function personOrderDetail() { $id = $_REQUEST['id']; $map['id'] = $id; $data = M('statement','tab_') ->field("second_party_info,statement_info") ->where($map) ->find(); $data['second_party_info'] = json_decode($data['second_party_info'],true); $data['statemnt_info'] = json_decode($data['statement_info'],true); // dump($data['statemnt_info']);die(); $this->assign('second_party_info',$data['second_party_info']); $this->assign('statemnt_info',$data['statemnt_info']); $this->display(); } public function verifyStatementStatus() { $order = $_REQUEST['order']; if ($order) { $isVerify = M('statement','tab_')->where(['id'=>['in',$order]])->save(['verify_status'=>1]); if ($isVerify) { $data = M('statement','tab_')->where(['id'=>['in',$order]])->select(); foreach ($data as $key => $value) { addOperationLog(['op_type'=>1,'key'=>$value['company_name'].'/'.date('YmdHis',$value['statement_begin_time']).'/'.date('YmdHis',$value['statement_end_time']),'op_name'=>'编辑结算单审核通过','url'=>U('StatementMangement/lists'),'menu'=>'推广员-结算管理-结算单管理-结算单审核通过']); } $this->ajaxReturn(['status'=>1]); } else { $this->ajaxReturn(['status'=>0]); } } else { $this->ajaxReturn(['status'=>0]); } } public function rejectStatementStatus() { $order = $_REQUEST['order']; if ($order) { $isVerify = M('statement','tab_')->where(['id'=>['in',$order]])->save(['verify_status'=>2]); if ($isVerify) { $data = M('statement','tab_')->where(['id'=>['in',$order]])->select(); foreach ($data as $key => $value) { addOperationLog(['op_type'=>1,'key'=>$value['company_name'].'/'.date('YmdHis',$value['statement_begin_time']).'/'.date('YmdHis',$value['statement_end_time']),'op_name'=>'编辑结算单审核通过','url'=>U('StatementMangement/lists'),'menu'=>'推广员-结算管理-结算单管理-结算单审核通过']); } $this->ajaxReturn(['status'=>1]); } else { $this->ajaxReturn(['status'=>0]); } } else { $this->ajaxReturn(['status'=>0]); } } //审核 public function verify() { $id = $_REQUEST["id"]; $status = $_REQUEST["status"]; if (!isset($id)||!isset($status)) { $this->ajaxReturn(["status"=>0,"msg"=>"参数错误"]); } if($status != 2) { $data = SM("reward_record","tab_") ->field("is_verify,company_id,company_belong") ->join("left join tab_reward_detail on record_id=tab_reward_record.id") ->join("left join tab_promote_company on tab_promote_company.id=tab_reward_detail.company_id") ->where(["tab_reward_record.id"=>['in',$id]]) ->select(); foreach ($data as $key => $value) { if ($value['is_verify'] != 0) { $this->ajaxReturn(["status"=>0,"msg"=>"含有已审核无需重新审核"]); } } $detail = json_encode(["user"=>$_SESSION['onethink_admin']['user_auth']['username'],"time"=>date("Y-m-d H:i:s",time())]); $is_success = SM("reward_record","tab_")->where(["id"=>['in',$id]])->save(["is_verify"=>$status,"verify_detail"=>$detail]); if ($is_success) { $this->ajaxReturn(["status"=>1,"msg"=>"操作成功"]); } else { $this->ajaxReturn(["status"=>1,"msg"=>"操作失败"]); } } else { $data = SM("reward_record","tab_") ->field("is_verify,company_id,company_belong") ->join("left join tab_reward_detail on record_id=tab_reward_record.id") ->join("left join tab_promote_company on tab_promote_company.id=tab_reward_detail.company_id") ->where(["tab_reward_record.id"=>['in',$id]]) ->select(); foreach ($data as $key => $value) { if ($value['is_verify'] == 0) { $this->ajaxReturn(["status"=>0,"msg"=>"含有未审核无需撤回审核"]); } } $is_success = SM("reward_record","tab_")->where(["id"=>['in',$id]])->save(["is_verify"=>0,"verify_detail"=>'']); if ($is_success) { $this->ajaxReturn(["status"=>1,"msg"=>"操作成功"]); } else { $this->ajaxReturn(["status"=>1,"msg"=>"操作失败"]); } } } //自动审核通过 public function autoVerify($settlmentSet = [],$id = 0) { if (!$id) { return false; } $i = 0; $count = count($settlmentSet); foreach ($settlmentSet as $key => $value) { if ($value['company_id']) { $data = SM("promote_company","tab_")->where(["id"=>$value['company_id']])->find(); if (in_array($data["company_belong"],[0,3])) { $i++; } } } if ($i == $count) { $detail = json_encode(["user"=>$_SESSION['onethink_admin']['user_auth']['username'],"time"=>date("Y-m-d H:i:s",time())]); SM("reward_record","tab_")->where(["id"=>['in',$id]])->save(["is_verify"=>1,"verify_detail"=>$detail]); } } }