['title' => '已通过', 'url' => url('index', ['status' => '0'])], '1' => ['title' => '待审核', 'url' => url('index', ['status' => '1'])], '2' => ['title' => '驳回', 'url' => url('index', ['status' => '2'])], ]; switch ($status) { case '0': $order = $this->getOrder(); if($order===''){ $order='id desc'; } $map = $this->getMap(); //省市联动条件处理 if(isset($map['province_id']) && $map['province_id']>0){ if(isset($map['city_id']) && $map['city_id']>0){ $parent_id=db('regions')->where('id',$map['city_id'])->value('parent_id'); if($parent_id!=$map['province_id']){ unset($map['city_id']); if(isset($map['area_id'])){ unset($map['area_id']); } }else{ if(isset($map['area_id']) && $map['area_id']>0){ $parent_id=db('regions')->where('id',$map['area_id'])->value('parent_id'); if($parent_id!=$map['city_id']){ unset($map['area_id']); } } } }else{ if(isset($map['area_id'])){ unset($map['area_id']); } } }else{ if(isset($map['city_id'])){ unset($map['city_id']); } if(isset($map['area_id'])){ unset($map['area_id']); } } $data_list = Db::name('users')->where($map)->order($order)->paginate(); $page = $data_list->render(); //省份 $province_selects=[]; $provinces=db('regions')->where('level',1)->select(); foreach ($provinces as $key => $value) { $province_selects[$value['id']]=$value['name']; } //地市 $city_selects=[]; if(isset($map['province_id']) && $map['province_id']>0){ $citys=db('regions')->where('level',2)->where('parent_id',$map['province_id'])->select(); foreach ($citys as $key => $value) { $city_selects[$value['id']]=$value['name']; } } //区县 $area_selects=[]; if(isset($map['city_id']) && $map['city_id']>0){ $areas=db('regions')->where('level',3)->where('parent_id',$map['city_id'])->select(); foreach ($areas as $key => $value) { $area_selects[$value['id']]=$value['name']; } } $data_list = Db::name('suppliers')->where('audit_state','1')->where($map)->order($order)->paginate(); $page = $data_list->render(); return ZBuilder::make('table') ->setPageTitle('') // 设置页面标题 ->setPageTips('') // 设置页面提示信息 ->setTabNav($list_tab, $status)//分组 ->hideCheckbox() //隐藏第一列多选框 ->setTableName('suppliers') // 指定数据表名 ->addOrder('id,created_at') // 添加排序 ->addTopSelect('province_id', '选择省份', $province_selects) //添加顶部下拉筛选 ->addTopSelect('city_id', '选择地市', $city_selects) //添加顶部下拉筛选 ->addTopSelect('area_id', '选择区县', $area_selects) //添加顶部下拉筛选 ->addTopSelect('state', '全部状态', ['1'=>'正常','0'=>'禁用']) //添加顶部下拉筛选 ->addTimeFilter('created_at') // 添加时间段筛选 ->setSearch(['id' => 'ID','serial_num'=>'编号', 'name' => '名称'], '', '', '搜索') // 设置搜索参数 ->addColumns([ ['id', 'ID'], ['serial_num', '编号'], ['name', '名称'], ['region', '区域','callback',function($value,$data){ $province=db('regions')->where('id',$data['province_id'])->value('name'); $city=db('regions')->where('id',$data['city_id'])->value('name'); $area=db('regions')->where('id',$data['area_id'])->value('name'); return $province.' '.$city.' '.$area; }, '__data__'], ['linkman', '联系人'], ['mobile', '联系电话'], ['product_type_id', '分类','callback',function($value){ return db('product_types')->where('id',$value)->value('name'); }], ['rebate', '返点比例','callback',function($value){ return $value.'%'; }], ['created_at', '创建时间','datetime', '未知','Y-m-d H:i'], ['state','状态','switch'], ['right_button', '操作', 'btn'], ]) //添加多列数据 ->addRightButton('custom',['title'=>'查看详情','href'=>url('look',['id'=>'__ID__'])],true) ->addRightButton('edit',['title'=>'修改']) ->setRowList($data_list) // 设置表格数据 ->setPages($page) // 设置分页数据 ->fetch(); break; case '1': $order = $this->getOrder(); if($order===''){ $order='id desc'; } $map = $this->getMap(); $data_list = Db::name('suppliers')->where('audit_state','0')->where($map)->order($order)->paginate(); $page = $data_list->render(); return ZBuilder::make('table') ->setPageTitle('') // 设置页面标题 ->setPageTips('') // 设置页面提示信息 ->setTabNav($list_tab, $status)//分组 ->hideCheckbox() //隐藏第一列多选框 ->setTableName('suppliers') // 指定数据表名 ->addOrder('id,created_at') // 添加排序 ->addTimeFilter('created_at') // 添加时间段筛选 ->setSearch(['id' => 'ID','name' => '名称'], '', '', '搜索') // 设置搜索参数 ->addColumns([ ['id', 'ID'], ['name', '名称'], ['region', '区域','callback',function($value,$data){ $province=db('regions')->where('id',$data['province_id'])->value('name'); $city=db('regions')->where('id',$data['city_id'])->value('name'); $area=db('regions')->where('id',$data['area_id'])->value('name'); return $province.' '.$city.' '.$area; }, '__data__'], ['linkman', '联系人'], ['mobile', '联系电话'], ['product_type_id', '分类','callback',function($value){ return db('product_types')->where('id',$value)->value('name'); }], ['created_at', '创建时间','datetime', '未知','Y-m-d H:i'], ['right_button', '操作', 'btn'], ]) //添加多列数据 ->addRightButton('custom',['title'=>'审核','href'=>url('audit',['id'=>'__ID__'])]) ->setRowList($data_list) // 设置表格数据 ->setPages($page) // 设置分页数据 ->fetch(); break; case '2': $order = $this->getOrder(); if($order===''){ $order='id desc'; } $map = $this->getMap(); $data_list = Db::name('suppliers')->where('audit_state','2')->where($map)->order($order)->paginate(); $page = $data_list->render(); return ZBuilder::make('table') ->setPageTitle('') // 设置页面标题 ->setPageTips('') // 设置页面提示信息 ->setTabNav($list_tab, $status)//分组 ->hideCheckbox() //隐藏第一列多选框 ->setTableName('suppliers') // 指定数据表名 ->addOrder('id,created_at') // 添加排序 ->addTimeFilter('created_at') // 添加时间段筛选 ->setSearch(['id' => 'ID','name' => '名称'], '', '', '搜索') // 设置搜索参数 ->addColumns([ ['id', 'ID'], ['name', '名称'], ['region', '区域','callback',function($value,$data){ $province=db('regions')->where('id',$data['province_id'])->value('name'); $city=db('regions')->where('id',$data['city_id'])->value('name'); $area=db('regions')->where('id',$data['area_id'])->value('name'); return $province.' '.$city.' '.$area; }, '__data__'], ['linkman', '联系人'], ['mobile', '联系电话'], ['product_type_id', '分类','callback',function($value){ return db('product_types')->where('id',$value)->value('name'); }], ['auditmsg','上次驳回原因','callback',function($value,$data){ return db('supplier_audits')->where('supplier_id',$data['id'])->order('audit_at desc')->value('auditmsg'); },'__data__'], ['created_at', '创建时间','datetime', '未知','Y-m-d H:i'], ]) //添加多列数据 ->setRowList($data_list) // 设置表格数据 ->setPages($page) // 设置分页数据 ->fetch(); break; default: break; } } public function audit($id=''){ //判断是否为post请求 if (Request::instance()->isPost()) { $now=time(); //获取请求的post数据 $data=input('post.'); $supplier=Db::name("suppliers")->where('audit_state','0')->where('id',$data['id'])->find(); if(!$supplier){ return $this->error('请求错误'); } //数据输入验证 $validate = new Validate([ 'audit_state|审核' => 'require|in:1,2', ]); if (!$validate->check($data)) { return $this->error($validate->getError()); } $update=array(); if($data['audit_state']=='1'){ $validate = new Validate([ 'rebate|返点比例' => [ 'require', 'egt'=>'0', 'elt'=>'100', 'regex'=>'/^(((\d|[1-9]\d)(\.\d{1,2})?)|100|100.0|100.00)$/', ], ]); if (!$validate->check($data)) { return $this->error($validate->getError()); } $update['rebate']=$data['rebate']; $update['serial_num']=get_supplier_serial_num(); } if($data['audit_state']=='2'){ $validate = new Validate([ 'auditmsg|驳回理由' => 'require|length:1,20', ]); if (!$validate->check($data)) { return $this->error($validate->getError()); } Db::name('supplier_audits')->insertGetId(['supplier_id'=>$data['id'],'auditmsg'=>$data['auditmsg'],'audit_at'=>$now]); } //数据处理 $update['id']=$data['id']; $update['audit_state']=$data['audit_state']; $update['updated_at']=$now; //数据更新 $rt=Db::name("suppliers")->update($update); //跳转 if($rt!==false){ //正式发短信 if($supplier['mobile']!=''){ import('aliyun_sms.SmsDemo'); if($data['audit_state']=='1'){ $response = \SmsDemo::sendSms( "五金商城", // 短信签名 "SMS_125017389", // 短信模板编号 $supplier['mobile'], // 短信接收者 Array( "serial_num"=>$update['serial_num'], ), "001" // 流水号,选填 ); }else{ $response = \SmsDemo::sendSms( "五金商城", // 短信签名 "SMS_125027329", // 短信模板编号 $supplier['mobile'], // 短信接收者 Array( "auditmsg"=>trim(trim($data['auditmsg'],'。'),'.'), ), "001" // 流水号,选填 ); } } return $this->success('审核成功',url('index',['status'=>$data['audit_state']=='2'?'2':'0'])); } else { return $this->error('审核失败'); } } // 接收id if ($id>0) { // 查处数据 $supplier=Db::name("suppliers")->where('audit_state','0')->where('id',$id)->find(); if(!$supplier){ return $this->error('请求错误'); } $province=db('regions')->where('id',$supplier['province_id'])->value('name'); $city=db('regions')->where('id',$supplier['city_id'])->value('name'); $area=db('regions')->where('id',$supplier['area_id'])->value('name'); $region=$province.' '.$city.' '.$area; // 使用ZBuilder快速创建表单 return ZBuilder::make('form') ->setPageTitle('供应商审核') // 设置页面标题 ->setPageTips('请认真审核相关信息') // 设置页面提示信息 ->setBtnTitle('submit', '确定') //修改默认按钮标题 //->addBtn('') //添加额外按钮 ->addStatic('name', '供应商名称','',$supplier['name']) ->addStatic('company', '公司名称','',$supplier['company']) ->addStatic('linkman', '联系人','',$supplier['linkman']) ->addStatic('mobile', '联系电话','',$supplier['mobile']) ->addStatic('region', '区域','',$region) ->addStatic('address', '公司地址','',$supplier['address']) ->addStatic('idcard_pic', '身份证','',staticText($supplier['idcard_pic'],'img')) ->addStatic('license', '营业执照','',staticText($supplier['license'],'img')) ->addRadio('audit_state', '审核', '必选', ['1' => '通过', '2' => '驳回']) ->addText('rebate', '返点比例','必填,百分比,规则范围:0.00~~100.00','',['','%']) ->addText('auditmsg', '驳回理由','必填,限制在20字以内') ->addHidden('id',$supplier['id']) ->setTrigger('audit_state', '1', 'rebate',false) ->setTrigger('audit_state', '2', 'auditmsg',false) //->isAjax(false) //默认为ajax的post提交 ->fetch(); } } public function edit($id=''){ //判断是否为post请求 if (Request::instance()->isPost()) { $now=time(); //获取请求的post数据 $data=input('post.'); // 查处数据 $supplier=Db::name("suppliers")->where('audit_state','1')->where('id',$data['id'])->find(); if(!$supplier){ return $this->error('请求错误'); } //数据输入验证 $validate = new Validate([ 'company|公司名称' => ['require'], 'linkman|联系人' => ['require'], 'mobile|联系电话' => ['require'], 'region|区域' => ['require','number'], 'address|公司地址' => ['require'], 'product_type_id|主营品类' => ['require','number'], 'rebate|返点比例' => [ 'require', 'egt'=>'0', 'elt'=>'100', 'regex'=>'/^(((\d|[1-9]\d)(\.\d{1,2})?)|100|100.0|100.00)$/', ], 'state|状态' => 'require|in:0,1', ]); if (!$validate->check($data)) { return $this->error($validate->getError()); } //数据处理 $update=array(); $update['id']=$data['id']; $update['company']=$data['company']; $update['linkman']=$data['linkman']; $update['mobile']=$data['mobile']; $update['area_id']=$data['region']; $update['city_id']=db('regions')->where('id',$data['region'])->value('parent_id'); $update['province_id']=db('regions')->where('id',$update['city_id'])->value('parent_id'); $update['address']=$data['address']; $update['product_type_id']=$data['product_type_id']; $update['rebate']=$data['rebate']; $update['state']=$data['state']; $update['updated_at']=$now; //数据更新 $rt=Db::name("suppliers")->update($update); //跳转 if($rt!==false){ return $this->success('修改成功',url('index')); } else { return $this->error('修改失败'); } } // 接收id if ($id>0) { // 查处数据 $supplier=Db::name("suppliers")->where('audit_state','1')->where('id',$id)->find(); if(!$supplier){ return $this->error('请求错误'); } $cates=Db::name('product_types')->field('id,parent_id,level,name')->where('level',config('mall.product_class_level'))->order('sort asc')->select(); $cates=get_tree_ids($cates,'0',1); // 使用ZBuilder快速创建表单 return ZBuilder::make('form') ->setPageTitle('修改供应商资料') // 设置页面标题 ->setPageTips('请认真编辑相关信息') // 设置页面提示信息 ->setBtnTitle('submit', '确定') //修改默认按钮标题 //->addBtn('') //添加额外按钮 ->addStatic('name', '供应商名称','',$supplier['name']) ->addText('company', '公司名称','必填',$supplier['company']) ->addText('linkman', '联系人','必填',$supplier['linkman']) ->addText('mobile', '联系电话','必填',$supplier['mobile']) ->addLinkages('region', '区域', '必选', 'regions', 4, $supplier['area_id'], 'id,name,parent_id') ->addText('address', '公司地址','必填',$supplier['address']) ->addSelect('product_type_id', '主营品类','必选',$cates,$supplier['product_type_id']) ->addText('rebate', '返点比例','必填,百分比,规则范围:0.00~~100.00',$supplier['rebate'],['','%']) ->addRadio('state', '状态', '必选', ['1' => '正常','0' => '禁用'],$supplier['state']) ->addHidden('id',$supplier['id']) ->setTrigger('audit_state', '2', 'auditmsg',false) //->isAjax(false) //默认为ajax的post提交 ->fetch(); } } public function look($id=''){ $supplier=Db::name("suppliers")->where('audit_state','1')->where('id',$id)->find(); if(!$supplier){ return $this->error('请求错误'); } $province=db('regions')->where('id',$supplier['province_id'])->value('name'); $city=db('regions')->where('id',$supplier['city_id'])->value('name'); $area=db('regions')->where('id',$supplier['area_id'])->value('name'); $region=$province.' '.$city.' '.$area; // 使用ZBuilder快速创建表单 return ZBuilder::make('form') ->setPageTitle('供应商详情') // 设置页面标题 //->addBtn('') //添加额外按钮 ->hideBtn(['submit', 'back'])//隐藏按钮 ->addStatic('serial_num', '供应商编号','',$supplier['serial_num']) ->addStatic('name', '供应商名称','',$supplier['name']) ->addStatic('company', '公司名称','',$supplier['company']) ->addStatic('linkman', '联系人','',$supplier['linkman']) ->addStatic('mobile', '联系电话','',$supplier['mobile']) ->addStatic('region', '区域','',$supplier['address']) ->addStatic('address', '公司地址','',$supplier['address']) ->addStatic('product_type_id', '主营品类','',db('product_types')->where('id',$supplier['product_type_id'])->value('name')) ->addStatic('address', '商品数','统计的是审核通过的商品数',db('products')->where('audit_state','1')->where('state','in','1,2')->count()) ->addStatic('address', '订单数','','暂未处理') ->addStatic('address', '退款订单数','','暂未处理') ->addStatic('address', '账户余额','','暂未处理') ->addStatic('idcard_pic', '身份证','',staticText($supplier['idcard_pic'],'img')) ->addStatic('license', '营业执照','',staticText($supplier['license'],'img')) ->addStatic('created_at', '创建时间','',staticText($supplier['created_at'],'time')) //->isAjax(false) //默认为ajax的post提交 ->fetch(); } }