*/ class ToolController extends ThinkController { public $pay_type = [ 0 => ['name' => '支付宝', 'paytag' => 'alipay' ], 1 => ['name' => '微信', 'paytag' => 'wxpay'], 2 => ['name' => '易宝', 'paytag' => 'yeepay'], 3 => ['name' => '双乾', 'paytag' => 'sqpay'], ]; /** *保存设置 */ public function saveTool($value='') { $name = $_POST['name']; $config = I('config'); $data = array('config'=>json_encode($config),'template'=>$_POST['template'],'status'=>$_POST['status']); $map['name']=$name; $day_pay = $config['day_pay_limit']; $month_pay = $config['month_pay_limit']; if(!empty($day_pay) && !empty($month_pay)) { if($month_pay / date('t') > $day_pay) { $this->error('月支付限量较日支付限量过大'); } elseif ($month_pay < $day_pay) { $this->error('月支付限量不能小于日支付限量'); } } if($_POST['status']==1&&$name=="weixin"){ $map_['name']=array("in",'wei_xin,wei_xin_app,weixin_gf'); M('tool','tab_')->where($map_)->setField('status','0'); } if($_POST['status']==1&&$name=="wei_xin"||$name=="wei_xin_app"){ $map_['name']=['in','weixin,weixin_gf']; M('tool','tab_')->where($map_)->setField('status','0'); } if($_POST['status']==1&&$name=="weixin_gf"){ $map_['name']=array("in",'wei_xin,wei_xin_app,weixin'); M('tool','tab_')->where($map_)->setField('status','0'); } if (isset($config['channel_rate']) && ($config['channel_rate'] > 100 || !is_numeric($config['channel_rate']))) { $this->error('请输入正确的渠道费率'); } if (isset($config['channel_rate'])) $config['channel_rate'] = round($config['channel_rate'], 2); $flag = M('Tool','tab_')->where($map)->setField($data); if($flag !== false){ $config['status']=$_POST['status']; $this->set_config($name,$config); \Think\Log::actionLog('Tool/saveTool','Tool',1); $this->success('保存成功'); }else{ $this->error('保存失败'); } } /** * 给图片添加水印 * @author 鹿文学 * @date 2018-05-03 */ public function addWatermarkOnPic() { // watermark $tool = M('tool',"tab_")->field('config,status')->where(['name'=>'watermark'])->find(); if(empty($tool)){$this->error('没有此设置');} if($tool['status']==0) {$this->error('添加水印已关闭');exit;} $piclist = M('picture')->field('path,url,water')->where(['status'=>1,'water'=>array('neq','')])->select(); if (!is_array($piclist)) {$this->error('没有图片需要添加');exit;} $water = json_decode($tool['config'],true); $temp = explode(',',$water['position']); $position = 3*$temp[0]+$temp[1]+1; $image = new \Think\Image(); if ($water['types']==1) { // 文字 $offset = array( $water['hoffset']?$water['hoffset']:0, $water['voffset']?$water['voffset']:0 ); foreach ($piclist as $k => $v) { $image->open(ROOTTT.$v['path'])->text($water['font_text'],FONTS.$water['font'],$water['font_size'],$water['font_color'],$position,$offset)->save(ROOTTT.$v['water'],$image->type(),$water['quality']); } } else { // 图片 foreach ($piclist as $k => $v) { $img_url=M('picture')->find($water['icon']); $img_url=$img_url['path']; $image->open(ROOTTT.$v['path'])->water(ROOTTT.$img_url,$position,$water['transparency'])->save(ROOTTT.$v['water'],$image->type(),$water['quality']); } } $this->success('水印添加成功'); } public function save($config){ $name = $_POST['name']; $a = $this->set_config($name,$config); if ($a){ return true; }else{ return false; } } /** *显示扩展设置信息 */ protected function BaseConfig($name='') { $map['name'] = array('in',$name); $tool = M('tool',"tab_")->where($map)->select(); if(empty($tool)){$this->error('没有此设置');} foreach ($tool as $key => $val) { $this->assign($tool[$key]['name'],json_decode($tool[$key]['config'],true)); unset($tool[$key]['config']); $this->assign($tool[$key]['name']."_data",$tool[$key]); } } /** * 打款设置 */ public function transfer_set() { $this->BaseConfig("transfer_set"); $this->meta_title = '打款设置'; //TODO:获取 当前账号余额 $money = 10000; $this->assign("money",$money); $this->display(); } public function saveTransferSet() { $name = $_POST['name']; $config = I('config'); if(empty($config['user_id']) || empty($config['user_num']) || empty($config['phone'])){ $this->error('会员id,打款账号,打款验证手机号 均不允许为空'); } if(!checkPhone($config['phone'])) { $this->error('联系电话格式不正确'); } $data = array('config'=>json_encode($config)); $map['name']=$name; $flag = M('Tool','tab_')->where($map)->setField($data); if($flag !== false){ $this->success('保存成功'); }else{ $this->error('保存失败'); } } /** *短信设置 */ public function smsset($value='') { $this->BaseConfig("sms_set,alidayu,jiguang,alidayunew,zhongwang,juhedata"); $this->meta_title = '短信设置'; $this->m_title = '短信设置'; $url = 'Tool/smsset'; $this->m_url = $url; $this->assign('commonset',M('Kuaijieicon')->where(['url'=>$url,'status'=>1])->find()); $this->display(); } /** *防沉迷设置 */ public function age($value='') { $this->BaseConfig("tool_age,juhe_age"); $this->meta_title = '实名认证'; $this->m_title = '实名认证'; $url = 'Tool/age'; $this->m_url = $url; $this->assign('commonset',M('Kuaijieicon')->where(['url'=>$url,'status'=>1])->find()); $this->display(); } /** *文件存储 */ public function storage($value='') { $str = "oss_storage,qiniu_storage,cos_storage,bos_storage,ks3_storage"; $this->BaseConfig($str); $this->meta_title = '文件存储'; $this->m_title = '文件存储'; $url = 'Tool/storage'; $this->m_url = $url; $this->assign('commonset',M('Kuaijieicon')->where(['url'=>$url,'status'=>1])->find()); $this->display(); } /** *动态密保 */ public function cooperate($value='') { $str = "set_cooperate"; $this->BaseConfig($str); $this->meta_title = '动态密保'; $this->m_title = '动态密保'; $url = 'Tool/cooperate'; $this->m_url = $url; $this->assign('commonset',M('Kuaijieicon')->where(['url'=>$url,'status'=>1])->find()); $this->display(); } /** *支付设置 */ public function payset($value='') { $str = "alipay,weixin,wei_xin,wei_xin_app,jubaobar,weixin_gf,jft,jft_wap,goldpig,ptb_pay,bind_pay,sqpay,heepay,yeepay,ptb_pay"; $this->BaseConfig($str); $this->meta_title = '支付设置'; $this->m_title = '支付设置'; $url = 'Tool/payset'; $this->m_url = $url; $this->assign('commonset',M('Kuaijieicon')->where(['url'=>$url,'status'=>1])->find()); $this->display(); } /** *邮件设置 */ public function email($value='') { $str = "email_set"; $this->BaseConfig($str); $this->meta_title = '邮件设置'; $this->m_title = '邮件设置'; $url = 'Tool/email'; $this->m_url = $url; $this->assign('commonset',M('Kuaijieicon')->where(['url'=>$url,'status'=>1])->find()); $this->display(); } /** *第三方登录设置 */ public function qq_thirdparty($value='') { $str = "qq_login,weixin_login,fb_login,gg_login"; $this->BaseConfig($str); $this->meta_title = '第三方登录'; $this->m_title = '第三方登录'; $url = 'Tool/qq_thirdparty'; $this->m_url = $url; $this->assign('commonset',M('Kuaijieicon')->where(['url'=>$url,'status'=>1])->find()); $this->display(); } /** *第三方登录设置 */ public function wx_thirdparty($value='') { $str = "weixin_login"; $this->BaseConfig($str); $this->meta_title = '第三方登录'; $this->display(); } /** *第三方登录设置 */ public function wb_thirdparty($value='') { $str = "sina_login"; $this->BaseConfig($str); $this->meta_title = '第三方登录'; $this->display(); } /** *第三方登录设置 */ public function bd_thirdparty($value='') { $str = "baidu_login"; $this->BaseConfig($str); $this->meta_title = '第三方登录'; $this->display(); } /** *畅言设置 */ public function changyan($value=''){ $str = "changyan"; $this->BaseConfig($str); $this->meta_title = '畅言设置'; $this->m_title = '畅言设置'; $url = 'Tool/changyan'; $this->m_url = $url; $this->assign('commonset',M('Kuaijieicon')->where(['url'=>$url,'status'=>1])->find()); $this->display(); } /** *聚宝云 */ public function saveTool_jubaobar(){ $name = $_POST['name']; $config = I('config'); $data = array('config'=>json_encode($config),'template'=>$_POST['template'],'status'=>$_POST['status']); $map['name']=$name; $flag = M('Tool','tab_')->where($map)->setField($data); if($flag !== false){ $this->set_config($name,$config); $this->update_xml($config['key']); $this->success('保存成功'); }else{ $this->error('保存失败'); } } /** *修改 聚宝云 安全口令 */ private function update_xml($key=""){ // $file = $_SERVER['DOCUMENT_ROOT'].'Application/Sdk/SecretKey/jubaopay/jubaopay.ini'; $file = './Application/Sdk/SecretKey/jubaopay/jubaopay.ini'; //创建DOMDocument的对象 $dom = new \DOMDocument('1.0'); //载入mainchart.xml文件 $dom->load($file); $dom->getElementsByTagName('psw')->item(0)->nodeValue = $key; $dom->save($file); } /** *设置config */ private function set_config($name="",$config=""){ $config_file ="./Application/Common/Conf/pay_config.php"; if(file_exists($config_file)){ $configs=include $config_file; }else { $configs=array(); } #定义一个数组 $data = array(); #给数组赋值 $data[$name] = $config; $configs=array_merge($configs,$data); $result = file_put_contents($config_file, "where([ 'name' => $name ])->save([ 'config' => $ageConfigJson, 'type' => 1, 'status' => isset($config['status']) ? $config['status'] : $config['bat'] ]); } public function ios_game(){ if($_GET['t']==1){ $url="qq"; }elseif($_GET['t']==2){ $url="wx"; }elseif($_GET['t']==3){ $url="wb"; }else{ $url="bd"; } $this->meta_title = '第三方登录'; $this->assign('thirdparty',$url."_thirdparty"); $this->assign('param_lists',$url."_param_lists"); $this->display(); } public function qq_param_lists(){ if(isset($_GET['game_id'])){ $map['game_id']=$_GET['game_id']; } $map['type']=1; $model = array( 'm_name' => 'param', 'map' => $map, 'fields'=>'id,game_id,openid,key,callback,status,create_time', 'order' =>'id desc', 'title' => "第三方登录", 'template_list' =>'qq_param_lists', ); $this->meta_title = '第三方登录'; $user = A('User','Event'); $user->user_join_($model,$_GET['p']); } public function wx_param_lists(){ if(isset($_GET['game_id'])){ $map['game_id']=$_GET['game_id']; } $map['type']=2; $model = array( 'm_name' => 'param', 'map' => $map, 'fields'=>'id,game_id,wx_appid,appsecret,callback,status,create_time', 'order' =>'id desc', 'title' => "第三方登录", 'template_list' =>'wx_param_lists', ); $this->meta_title = '第三方登录'; $user = A('User','Event'); $user->user_join_($model,$_GET['p']); } public function wb_param_lists(){ if(isset($_GET['game_id'])){ $map['game_id']=$_GET['game_id']; } $map['type']=3; $model = array( 'm_name' => 'param', 'map' => $map, 'field'=>'id,game_id,appkey,scope,callback,status,create_time', 'order' =>'id desc', 'title' => "第三方登录", 'template_list' =>'wb_param_lists', ); $this->meta_title = '第三方登录'; $user = A('User','Event'); $user->user_join_($model,$_GET['p']); } public function bd_param_lists(){ if(isset($_GET['game_id'])){ $map['game_id']=$_GET['game_id']; } $map['type']=4; $model = array( 'm_name' => 'param', 'map' => $map, 'field'=>'id,game_id,openid,key,callback,status,create_time', 'order' =>'id desc', 'title' => "第三方登录", 'template_list' =>'bd_param_lists', ); $this->meta_title = '第三方登录'; $user = A('User','Event'); $user->user_join_($model,$_GET['p']); } public function add_thirdparty(){ if(IS_POST){ if($_POST['type']==1){ if(empty($_POST['openid'])){ $this->error('openid不能为空');exit; } if(empty($_POST['key'])){ $this->error('安全校验码不能为空');exit; } $url="qq_param_lists"; }elseif($_POST['type']==2){ if(empty($_POST['wx_appid'])){ $this->error('APPID不能为空');exit; } if(empty($_POST['appsecret'])){ $this->error('APPSECRET不能为空');exit; } $url="wx_param_lists"; }elseif($_POST['type']==3){ if(empty($_POST['appkey'])||empty($_POST['scope'])){ $this->error('参数不能为空');exit; } $url="wb_param_lists"; }else{ if(empty($_POST['clientid'])){ $this->error('参数不能为空');exit; } $url="bd_param_lists"; } $find=M('param','tab_')->where(['game_id'=>$_POST['game_id'],'type'=>$_POST['type']])->find(); if(null!==$find){ $this->error('该游戏已经设置过参数');exit; } if($_POST['game_id']==0){ $count=M('param','tab_')->where(['game_id'=>['gt',0],'type'=>$_POST['type']])->count(); if($count>=1){ $this->error('如需设置全部游戏 请先将其他游戏数据删除');exit; } } $add=M('param','tab_')->add($_POST); if($add){ $this->success('新增成功',U($url)); }else{ $this->error('新增失败',U($url)); } }else{ switch($_GET['type']) { case 1:$this->meta_title = '第三方登录';break; case 2:$this->meta_title = '第三方登录';break; } $this->display(); } } public function edit_thirdparty($id){ if(IS_POST){ if($_POST['type']==1){ if(empty($_POST['openid'])){ $this->error('openid不能为空');exit; } if(empty($_POST['key'])) { $this->error('安全校验码不能为空');exit; } $url="qq_param_lists"; }elseif($_POST['type']==2){ if(empty($_POST['wx_appid'])){ $this->error('APPID不能为空');exit; } if(empty($_POST['appsecret'])){ $this->error('APPSECRET不能为空');exit; } $url="wx_param_lists"; }elseif($_POST['type']==3){ if(empty($_POST['appkey'])||empty($_POST['scope'])){ $this->error('参数不能为空');exit; } $url="wb_param_lists"; }else{ if(empty($_POST['clientid'])){ $this->error('参数不能为空');exit; } $url="bd_param_lists"; } $add=M('param','tab_')->save($_POST); if($add){ $this->success('修改成功',U($url)); }else{ $this->error('修改失败',U($url)); } }else{ $find=M('param','tab_')->where(['id'=>$id])->find(); $this->assign('data',$find); switch($_GET['type']) { case 1:$this->meta_title = '第三方登录';break; case 2:$this->meta_title = '第三方登录';break; } $this->display(); } } /** * 删除 * @author 麦当苗儿 */ public function del(){ $id = array_unique((array)I('ids',0)); if ( empty($id) ) { $this->error('请选择要操作的数据!'); } $map = array('id' => array('in', $id) ); if(M('param','tab_')->where($map)->delete()){ $this->success('删除成功'); } else { $this->error('删除失败!'); } } public function changeStatus($field = null,$value=null) { $id = array_unique((array)I('id', 0)); $id = is_array($id) ? implode(',', $id) : $id; if (empty($id)) { $this->error('请选择要操作的数据!'); } $map['id'] = array('in', $id); $result = M('param','tab_')->where($map)->setField($field,$value); $msg = $value == 0?"关闭":"开启"; if($result !== false){ $this->success($msg.'成功'); }else{ $this->error($msg.'失败'); } } /* * 水印 */ public function watermark() { $this->BaseConfig("watermark"); $this->meta_title = '水印设置'; $this->m_title = '水印设置'; $url = 'Tool/watermark'; $this->m_url = $url; $this->assign('commonset',M('Kuaijieicon')->where(['url'=>$url,'status'=>1])->find()); $this->display(); } /** * 支付宝参数设置 * @author 鹿文学 */ public function alipay_param($value='') { $str = "alipay_param"; $this->BaseConfig($str); $this->meta_title = '支付宝认证'; $this->m_title = '支付宝认证'; $url = 'Tool/alipay_param'; $this->m_url = $url; $this->assign('commonset',M('Kuaijieicon')->where(['url'=>$url,'status'=>1])->find()); $this->display(); } /** * 用户VIP设置 * @author 鹿文学 */ public function vip($value='') { $str = "viplevel"; $this->BaseConfig($str); $this->meta_title = '用户VIP设置'; $this->m_title = '用户VIP设置'; $url = 'Tool/vip'; $this->m_url = $url; $this->assign('commonset',M('Kuaijieicon')->where(['url'=>$url,'status'=>1])->find()); $this->display(); } /** *公司信息列表 */ public function company_info() { $model = M('company_info', 'tab_'); $map = []; $id = intval(I('id', 0)); if (!empty($id)) { $map['tab_company_info.id'] = $id; $parameter['id'] = $id; } if (isset($_REQUEST['partner']) && $_REQUEST['partner'] !== '') { $map['p.partner'] = ["like","%{$_REQUEST['partner']}%"]; } $page = intval(I('get.p', 0)); $page = $page ? $page : 1; //默认显示第一页数据 $row = intval(I('row', 0)); $row = empty($row) ? 10 : $row;//每页条数 $data = $model->alias('p') ->field('p.id,p.partner,p.status,p.create_time,link_man,link_phone,address,company_tax_no,payee_name, bank_account,opening_bank,m.nickname') ->join('left join sys_member as m on m.uid = p.uid') ->where($map) ->order('id desc') ->page($page, $row) ->select(); /* 查询记录总数 */ $count = $model ->alias('p') ->where($map) ->count(); if (!empty($data)) { foreach ($data as &$list) { $list['status'] = ($list['status'] == 0) ? '已关闭' : '已开启'; $list['create_time'] = date('Y-m-d H:i:s', $list['create_time']); } } //分页 $parameter['p'] = $page; $parameter['row'] = $row; $page = set_pagination($count, $row, $parameter); if ($page) { $this->assign('_page', $page); } $this->assign('listData', $data); $this->assign('count', $count); $this->meta_title = '公司信息管理'; $this->display(); } //添加 public function company_add() { if ($_POST) { $partner = I('post.partner', ''); $status = intval(I('post.status', 1)); if (empty($partner)) { $this->error('请输入公司名称'); } if (empty(I('link_man'))) { $this->error('请输入联系人'); } if (empty(I('link_phone'))) { $this->error('请输入联系电话'); } if (!in_array($status, [0, 1])) { $this->error('参数异常'); } if (!empty(I('fax_ratio'))) { if(!preg_match('/^[0-9]+(.[0-9]{1,3})?$/', I('fax_ratio'))){ $this->error('税率只能数字'); } } $model = M('company_info', 'tab_'); $map['partner'] = $partner; $res = $model->where($map)->getField('id'); if ($res) { $this->error('公司名称已存在'); } if(!checkPhone(I('link_phone'))) { $this->error('联系电话格式不正确'); } // $res2 = $model->where(['link_phone' => I('link_phone')])->getField('id'); // if ($res2) { // $this->error('已存在此联系电话'); // } $time = time(); $save['partner'] = $partner; $save['status'] = $status; $save['link_man'] = I('link_man'); $save['link_phone'] = I('link_phone'); $save['address'] = I('address'); $save['company_tax_no'] = I('company_tax_no'); $save['payee_name'] = I('payee_name'); $save['bank_account'] = I('bank_account'); $save['opening_bank'] = I('opening_bank'); $save['fax_ratio'] = I('fax_ratio'); $save['ali_account'] = I('ali_account'); $save['invoice_item'] = I('invoice_item'); $save['invoice_type'] = I('invoice_type'); $save['register_address'] = I('register_address'); $save['register_phone'] = I('register_phone'); $save['uid'] = UID; $save['create_time'] = $time; $save['last_up_time'] = $time; $res = $model->add($save); if ($res) { \Think\Log::actionLog('company/add', 'company_info', $res); $this->success('保存成功', U('company_info')); } else { $this->error('保存失败'); } } else { $this->meta_title = '新增公司'; $this->display(); } } //编辑 public function company_edit() { $model = M('company_info', 'tab_'); if ($_POST) { $partner = I('post.partner', ''); $status = intval(I('post.status', 1)); $id = intval(I('post.id', 0)); if (empty($partner)) { $this->error('请输入合作方名称'); } if (empty(I('link_man'))) { $this->error('请输入联系人'); } if (empty(I('link_phone'))) { $this->error('请输入联系电话'); } if (!in_array($status, [0, 1])) { $this->error('参数异常'); } if (!empty(I('fax_ratio'))) { if(!preg_match('/^[0-9]+(.[0-9]{1,3})?$/', I('fax_ratio'))){ $this->error('税率只能数字'); } } $data = $model ->field('id,partner,link_man,link_phone,address,company_tax_no,payee_name,bank_account,opening_bank') ->find($id); if (empty($data)) { $this->error('数据异常'); } $map['partner'] = $partner; $res = $model->where($map)->getField('id'); if ($res && $res != $id) { $this->error('公司名称已存在'); } if(!checkPhone(I('link_phone'))) { $this->error('联系电话格式不正确'); } // $res2 = $model->where([ // 'link_phone' => I('link_phone'), // 'id' => ['neq', $id] // ])->getField('id'); // if ($res2) { // $this->error('已存在此联系电话'); // } $time = time(); $save['id'] = $id; $save['partner'] = $partner; $save['link_man'] = I('link_man'); $save['link_phone'] = I('link_phone'); $save['address'] = I('address'); $save['company_tax_no'] = I('company_tax_no'); $save['payee_name'] = I('payee_name'); $save['bank_account'] = I('bank_account'); $save['opening_bank'] = I('opening_bank'); $save['fax_ratio'] = I('fax_ratio'); $save['ali_account'] = I('ali_account'); $save['invoice_item'] = I('invoice_item'); $save['invoice_type'] = I('invoice_type'); $save['register_address'] = I('register_address'); $save['register_phone'] = I('register_phone'); $save['status'] = $status; $save['last_up_time'] = $time; $res = $model->save($save); if ($res === false) { $this->error('保存失败'); } else { \Think\Log::actionLog('company/edit', 'company_info', $id); $this->success('保存成功', U('company_info')); } } else { $id = intval(I('get.id', 0)); $map['id'] = $id; $data = $model ->field('*') ->find($id); if (empty($data)) { $this->error('数据异常', U('company_info')); } $this->assign('company_info', $data); $this->meta_title = '编辑公司'; $this->display(); } } //删除 public function company_del() { if (!empty($_POST['ids'])) { if (!is_array($_POST['ids'])) { $this->error('参数异常'); } $id = implode(',', $_POST['ids']); } else { $id = intval(I('get.id', 0)); if ($id == 0) { $this->error('参数异常'); } } $res = M('company_info', 'tab_')->delete($id); if ($res === false) { $this->error('删除失败'); } $this->success('删除成功', U('company_info')); } /** *公司信息管理(旧版备份) */ public function company_info_old() { $str = "company_info"; $this->BaseConfig($str); $this->meta_title = '公司信息管理'; $this->display(); } public function limitPay($page = 1) { $page = intval(I('get.p', 0)); $page = $page ? $page : 1; //默认显示第一页数据 $row = intval(I('row', 0)); $row = empty($row) ? 10 : $row;//每页条数 $payType = $_REQUEST['pay_type']; $limit_type = $_REQUEST['limit_type']; $limit_time_type = $_REQUEST['limit_time_type']; $map = []; if (!empty($payType)) { $map['pay_type'] = $payType; $parameter['pay_type'] = $payType; } if (!empty($limit_type)) { $map['limit_type'] = $limit_type; $parameter['limit_type'] = $limit_type; } $datas = M('pay_limit_conf', 'tab_') ->where($map) ->order('id desc') ->page($page, $row) ->select(); /* 查询记录总数 */ $count = M('pay_limit_conf', 'tab_') ->where($map) ->count(); foreach ($datas as $key => $data) { $limit_rule = ''; if (!empty(intval($data['user_total_limit']))) { $limit_rule .= '玩家全渠道总流水限额'.$data['user_total_limit']."    "; } if (!empty(intval($data['total_limit']))) { $limit_rule .= '全渠道总流水限额'.$data['total_limit']."    "; } if (!empty(intval($data['user_one_limit']))) { $limit_rule .= '玩家单笔限制'.$data['user_one_limit']; } if ($limit_rule == '') { $limit_rule = '暂无规则'; } if ($data['limit_time_type'] == 'day') { $data['limit_time_type'] = '每日,'; $remarkStr = ''; } if ($data['limit_time_type'] == 'week') { $data['limit_time_type'] = '每周,'; if ($data['limit_time_type_remark'] == 1) $remarkStr = "周一"; if ($data['limit_time_type_remark'] == 2) $remarkStr = "周二"; if ($data['limit_time_type_remark'] == 3) $remarkStr = "周三"; if ($data['limit_time_type_remark'] == 4) $remarkStr = "周四"; if ($data['limit_time_type_remark'] == 5) $remarkStr = "周五"; if ($data['limit_time_type_remark'] == 6) $remarkStr = "周六"; if ($data['limit_time_type_remark'] == 7) $remarkStr = "周七"; } if ($data['limit_time_type'] == 'month') { $data['limit_time_type'] = '每月,'; $remarkStr = $data['limit_time_type_remark'].'日'; } if ($data['limit_time_type'] == 'fix') { $data['limit_time_type'] = '特殊,'; $remarks = str_split($data['limit_time_type_remark'], 1); $remarkStr = ''; foreach($remarks as $keyR => $remark) { if ($keyR == 3 || $keyR == 5){ $remarkStr .= $remark. '-'; }else { $remarkStr .= $remark; } } } if ($data['limit_type'] == 'force') { $datas[$key]['limit_type'] = '强制限制'; } if ($data['limit_type'] == 'obstacles') { $datas[$key]['limit_type'] = '支付体验障碍'; } if ($data['pay_type'] == 'alipay') { $pay_type = '支付宝'; } if ($data['pay_type'] == 'wxpay') { $pay_type = '微信'; } if ($data['pay_type'] == 'yeepay') { $pay_type = '易宝'; } if ($data['pay_type'] == 'sqpay') { $pay_type = '双乾'; } $start_timeArr = str_split($data['start_time'], 1); $startTimeStr = ''; foreach ($start_timeArr as $timeKey => $start_time) { if ($timeKey == 1 || $timeKey == 3) { $startTimeStr .= $start_time.':'; }else { $startTimeStr .= $start_time; } } $end_timeArr = str_split($data['end_time'], 1); $endTimeStr = ''; foreach ($end_timeArr as $timeKey1 => $end_time) { if ($timeKey1 == 1 || $timeKey1 == 3) { $endTimeStr .= $end_time. ':'; }else { $endTimeStr .= $end_time; } } $datas[$key]['pay_type'] = $pay_type; $datas[$key]['limit_rule'] = $limit_rule; $datas[$key]['limit_time'] = $data['limit_time_type'] .$remarkStr.' '.$startTimeStr.'~'.$endTimeStr; } //分页 $parameter['p'] = $page; $parameter['row'] = $row; $page = set_pagination($count, $row, $parameter); if ($page) { $this->assign('_page', $page); } if (empty($payType)) { $this->assign('pay_type', " "); }else { $this->assign('pay_type', $payType); } if (empty($limit_type)) { $this->assign('limit_type', " "); }else { $this->assign('limit_type', $limit_type); } $this->assign('datas', $datas); $this->display(); } public function addLimitPay() { if ($_POST) { $pay_type = $_REQUEST['pay_type']; $total_limit = empty($_REQUEST['total_limit']) ? 0 : $_REQUEST['total_limit']; $user_total_limit = empty($_REQUEST['user_total_limit']) ? 0 : $_REQUEST['user_total_limit']; $user_one_limit = empty($_REQUEST['user_one_limit']) ? 0 : $_REQUEST['user_one_limit']; $limit_type = $_REQUEST['limit_type']; $status = $_REQUEST['status']; $startTime = ''; $endTime = ''; if (empty($pay_type)) { return $this->error('限制支付渠道不能为空'); } if (empty(intval($total_limit))&&empty(intval($user_total_limit))&&empty(intval($user_one_limit))) { return $this->error('限额不能为空'); } if (!is_numeric($total_limit) || !is_numeric($user_total_limit) || !is_numeric($user_one_limit) || $total_limit < 0 ||$user_total_limit < 0 ||$user_one_limit < 0 ) { return $this->error('限制金额出错'); } if (intval($total_limit) > 1000000000000.00 || intval($user_total_limit) > 1000000000000.00 ||intval($user_one_limit) > 1000000000000.00) { return $this->error('限制金额超出范围'); } if (empty($limit_type)) { return $this->error('限制方式不能为空'); } $paramsName = $status.'_start'; for ($i = 1; $i < 13; $i++) { $name = $paramsName.$i; if ($_REQUEST[$name] == '') { return $this->error('时间选择不能为空'); }else { if ($i < 7) { $startTime .= $_REQUEST[$name]; }else { $endTime .= $_REQUEST[$name]; } } $this->checkTimeFormat($i, $startTime, $endTime, $_REQUEST[$name]); } $start_timeArr = str_split($startTime, 1); $startTimeStr = ''; foreach ($start_timeArr as $timeKey => $start_time) { if ($timeKey == 1 || $timeKey == 3) { $startTimeStr .= $start_time.':'; }else { $startTimeStr .= $start_time; } } $st = '2020-03-23'.' '.$startTimeStr; $startTimeStamp = strtotime($st); $end_timeArr = str_split($endTime, 1); $endTimeStr = ''; foreach ($end_timeArr as $timeKey1 => $end_time) { if ($timeKey1 == 1 || $timeKey1 == 3) { $endTimeStr .= $end_time.':'; }else { $endTimeStr .= $end_time; } } $et = '2020-03-23'.' '.$endTimeStr; $endTimeStamp = strtotime($et); if ($startTimeStamp >= $endTimeStamp) { return $this->error('开始时间不能大于结束时间'); } switch($status) { case 'daily': $limit_time_type = 'day'; break; case 'week': $limit_time_type = 'week'; if (empty($_REQUEST['week_remark'])) { return $this->error('每周限制时间未确定'); }else { $data['limit_time_type_remark'] = $_REQUEST['week_remark']; } break; case 'month': $limit_time_type = 'month'; if (empty($_REQUEST['month_remark'])) { return $this->error('每月限制时间未确定'); }else { $data['limit_time_type_remark'] = $_REQUEST['month_remark']; } break; case 'day': $limit_time_type = 'fix'; if (empty($_REQUEST['day_remark'])) { return $this->error('每月限制时间未确定'); }else { $fixStr = str_replace('-','',$_REQUEST['day_remark']); $data['limit_time_type_remark'] = $fixStr; $data['fix_date'] = $fixStr; } break; } if (!is_numeric($startTime) || !is_numeric($endTime)) { $this->error('时间格式出错'); } $data['pay_type'] = $pay_type; $data['limit_type'] = $limit_type; $data['limit_time_type'] = $limit_time_type; $data['start_time'] = $startTime; $data['end_time'] = $endTime; $data['total_limit'] = $total_limit; $data['user_total_limit'] = $user_total_limit; $data['user_one_limit'] = $user_one_limit; $data['create_time'] = time(); $res = M('pay_limit_conf', 'tab_')->add($data); if($res) { $this->success('新增成功',U('limitPay')); } }else { // $id = $_REQUEST['id']; // $limitConf = M('pay_limit_conf', 'tab_')->where(['id'=>$id])->find(); // if (empty($limitConf)) { // return $this->error('未找到该条信息'); // } // foreach ($limitConf as $key => $conf) { // } $monthDay = $this->getMonthDay(); $this->assign('monthday', $monthDay); $this->display(); } } public function editLimitPay() { if ($_POST) { $id = $_REQUEST['id']; $pay_type = $_POST['pay_type']; $total_limit = $_POST['total_limit']; $user_total_limit = $_POST['user_total_limit']; $user_one_limit = $_POST['user_one_limit']; $limit_type = $_POST['limit_type']; $status = $_POST['status']; $startTime = ''; $endTime = ''; if (empty(intval($total_limit))&&empty(intval($user_total_limit))&&empty(intval($user_one_limit))) { return $this->error('限额不能为空'); } if (!is_numeric($total_limit) || !is_numeric($user_total_limit) || !is_numeric($user_one_limit) || $total_limit < 0 ||$user_total_limit < 0 ||$user_one_limit < 0 ) { return $this->error('限额金额出错'); } if (empty($id)) { return $this->error('编辑信息出错'); } if (intval($total_limit) > 1000000000000.00 || intval($user_total_limit) > 1000000000000.00 ||intval($user_one_limit) > 1000000000000.00) { return $this->error('限制金额超出范围'); } $confInfo = M('pay_limit_conf', 'tab_')->where(['id'=>$id])->find(); $confInfo['pay_type'] = $pay_type; $confInfo['total_limit'] = $total_limit; $confInfo['user_total_limit'] = $user_total_limit; $confInfo['user_one_limit'] = $user_one_limit; $confInfo['limit_type'] = $limit_type; $paramsName = $status.'_start'; for ($i = 1; $i < 13; $i++) { $name = $paramsName.$i; if ($_REQUEST[$name] == '') { return $this->error('时间选择不能为空'); }else { if ($i < 7) { $startTime .= $_REQUEST[$name]; }else { $endTime .= $_REQUEST[$name]; } } $this->checkTimeFormat($i, $startTime, $endTime, $_REQUEST[$name]); } $st = '2020-03-23'.' '.$startTimeStr; $startTimeStamp = strtotime($st); $end_timeArr = str_split($endTime, 1); $endTimeStr = ''; foreach ($end_timeArr as $timeKey1 => $end_time) { if ($timeKey1 == 1 || $timeKey1 == 3) { $endTimeStr .= $end_time.':'; }else { $endTimeStr .= $end_time; } } $et = '2020-03-23'.' '.$endTimeStr; $endTimeStamp = strtotime($et); if ($startTimeStamp >= $endTimeStamp) { return $this->error('开始时间不能大于结束时间'); } $confInfo['start_time'] = $startTime; $confInfo['end_time'] = $endTime; switch($status) { case 'daily': $limit_time_type = 'day'; $confInfo['limit_time_type_remark'] = ""; $confInfo['fix_date'] = ''; break; case 'week': $limit_time_type = 'week'; if (empty($_REQUEST['week_remark'])) { return $this->error('每周限制时间未确定'); }else { $confInfo['limit_time_type_remark'] = $_REQUEST['week_remark']; } $confInfo['fix_date'] = ''; break; case 'month': $limit_time_type = 'month'; if (empty($_REQUEST['month_remark'])) { return $this->error('每月限制时间未确定'); }else { $confInfo['limit_time_type_remark'] = $_REQUEST['month_remark']; } $confInfo['fix_date'] = ''; break; case 'day': $limit_time_type = 'fix'; if (empty($_REQUEST['day_remark'])) { return $this->error('每月限制时间未确定'); }else { $fixStr = str_replace('-','',$_REQUEST['day_remark']); $confInfo['limit_time_type_remark'] = $fixStr; $confInfo['fix_date'] = $fixStr; } // $confInfo['limit_time_type_remark'] = $_REQUEST['day_remark']; break; } $confInfo['limit_time_type'] = $limit_time_type; $update = M('pay_limit_conf', 'tab_')->where(['id'=>$id])->save($confInfo); if ($update) { $this->success('编辑成功',U('limitPay')); }else { $this->error('未修改资料,请确认'); } }else { $id = $_REQUEST['id']; $data = M('pay_limit_conf', 'tab_')->where(['id'=>$id])->find(); $start_time = $data['start_time']; $end_time = $data['end_time']; $monthDay = $this->getMonthDay(); if ($data['limit_time_type'] == 'fix') { $remarks = str_split($data['limit_time_type_remark'], 1); $remarkStr = ''; foreach($remarks as $keyR => $remark) { if ($keyR == 3 || $keyR == 5){ $remarkStr .= $remark. '-'; }else { $remarkStr .= $remark; } } $data['limit_time_type_remark'] = $remarkStr; } $this->assign('monthday', $monthDay); $this->assign('startTime', $start_time); $this->assign('endTime', $end_time); $this->assign('data', $data); // var_dump($this->pay_type);die(); $this->assign('pay_type', $this->pay_type); $this->display(); } } public function delLimitPay($id) { $res = M('pay_limit_conf', 'tab_')->where(['id'=>$id])->delete(); if($res) { $this->success('删除成功',U('limitPay')); } } public function getMonthDay() { $arr = []; for ($i = 1;$i < 32; $i++ ) { $arr[] = $i; } return $arr; } public function checkTimeFormat($i, $startTime = '' , $endTime = '', $name) { if ($i == 2) { if ($startTime < 0 || $startTime > 23) { return $this->error("时间选择出错"); } } if ($i == 3 || $i == 5) { if ($name < 0 || $name > 5) { return $this->error("时间选择出错"); } } if ($i == 4 || $i == 6) { if ($name < 0 || $name > 9) { return $this->error("时间选择出错"); } } if ($i == 8) { if ($endTime < 0 || $endTime > 23) { return $this->error("时间选择出错"); } } if ($i == 9 || $i == 11) { if ($name < 0 || $name > 5) { return $this->error("时间选择出错"); } } if ($i == 10 || $i == 12) { if ($name < 0 || $name > 9) { return $this->error("时间选择出错"); } } } 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(); } public function cmdTasksDel() { $id = $_REQUEST['id']; $res = M("cmd_tasks","tab_")->where("id = {$id}")->delete(); if($res !== false){ $this->ajaxReturn(array("success"=>"ok","code"=>0)); }else{ $this->ajaxReturn(array("error"=>"database error","code"=>2000)); } } }