['title' => '已审核', 'url' => url('index', ['status' => '-1'])],
'2' => ['title' => '待审核', 'url' => url('index', ['status' => '2'])],
'3' => ['title' => '驳回', 'url' => url('index', ['status' => '3'])],
];
switch ($status) {
case '-1':
$order = $this->getOrder();
if($order===''){
$order='id desc';
}
$map = $this->getMap();
$data_list = Db::name('salesmen')->where('status','in','0,1')->where($map)->order($order)->paginate();
$page = $data_list->render();
return ZBuilder::make('table')
->setPageTitle('') // 设置页面标题
->setPageTips('') // 设置页面提示信息
->setTabNav($list_tab, $status)//分组
->hideCheckbox() //隐藏第一列多选框
->setTableName('salesmen') // 指定数据表名
->addOrder('id,created_at') // 添加排序
->addTimeFilter('created_at') // 添加时间段筛选
->setSearch(['id' => 'ID', 'truename' => '姓名','mobile'=>'手机'], '', '', '搜索') // 设置搜索参数
->addTopSelect('level', '区域类型', ['1'=>'一级','2'=>'二级']) //添加顶部下拉筛选
->addColumns([
['id', 'ID'],
['truename', '姓名'],
['mobile', '手机号码'],
['level', '区域类型','callback','array_v',['1'=>'一级','2'=>'二级']],
['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__'],
['status', '状态', 'status', '', ['禁用', '正常']],
['created_at', '注册时间','datetime', '未知','Y-m-d H:i'],
['right_button', '操作', 'btn'],
]) //添加多列数据
->addRightButton('edit',['title'=>'修改'])
->setRowList($data_list) // 设置表格数据
->setPages($page) // 设置分页数据
->fetch();
break;
case '2':
$order = $this->getOrder();
if($order===''){
$order='id desc';
}
$map = $this->getMap();
$data_list = Db::name('salesmen')->where('status','2')->where($map)->order($order)->paginate();
$page = $data_list->render();
return ZBuilder::make('table')
->setPageTitle('') // 设置页面标题
->setPageTips('') // 设置页面提示信息
->setTabNav($list_tab, $status)//分组
->hideCheckbox() //隐藏第一列多选框
->setTableName('salesmen') // 指定数据表名
->addOrder('id,created_at') // 添加排序
->addTimeFilter('created_at') // 添加时间段筛选
->setSearch(['id' => 'ID', 'truename' => '姓名','mobile'=>'手机'], '', '', '搜索') // 设置搜索参数
->addTopSelect('level', '区域类型', ['1'=>'一级','2'=>'二级']) //添加顶部下拉筛选
->addColumns([
['id', 'ID'],
['truename', '姓名'],
['mobile', '手机号码'],
['level', '区域类型','callback','array_v',['1'=>'一级','2'=>'二级']],
['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__'],
['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 '3':
$order = $this->getOrder();
if($order===''){
$order='id desc';
}
$map = $this->getMap();
$data_list = Db::name('salesmen')->where('status','3')->where($map)->order($order)->paginate();
$page = $data_list->render();
return ZBuilder::make('table')
->setPageTitle('') // 设置页面标题
->setPageTips('') // 设置页面提示信息
->setTabNav($list_tab, $status)//分组
->hideCheckbox() //隐藏第一列多选框
->setTableName('salesmen') // 指定数据表名
->addOrder('id,created_at') // 添加排序
->addTimeFilter('created_at') // 添加时间段筛选
->setSearch(['id' => 'ID', 'truename' => '姓名','mobile'=>'手机'], '', '', '搜索') // 设置搜索参数
->addTopSelect('level', '区域类型', ['1'=>'一级','2'=>'二级']) //添加顶部下拉筛选
->addColumns([
['id', 'ID'],
['truename', '姓名'],
['mobile', '手机号码'],
['level', '区域类型','callback','array_v',['1'=>'一级','2'=>'二级']],
['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__'],
['created_at', '注册时间','datetime', '未知','Y-m-d H:i'],
['auditmsg','上次驳回原因','callback',function($value,$data){
return db('salesman_audits')->where('salesman_id',$data['id'])->order('audit_at desc')->value('auditmsg');
},'__data__']
//['right_button', '操作', 'btn'],
]) //添加多列数据
//->addRightButton('custom',['title'=>'查看详情','href'=>url('look',['id'=>'__ID__'])],true)
->setRowList($data_list) // 设置表格数据
->setPages($page) // 设置分页数据
->fetch();
break;
default:
break;
}
}
public function audit($id=''){
//判断是否为post请求
if (Request::instance()->isPost()) {
$now=time();
//获取请求的post数据
$data=input('post.');
// 查处数据
$salesman=Db::name("salesmen")->where('status','1')->where('id',$data['id'])->find();
if(!$salesman){
return $this->error('请求错误');
}
//数据输入验证
$validate = new Validate([
'status|审核' => 'require|in:1,3',
]);
if (!$validate->check($data)) {
return $this->error($validate->getError());
}
if($data['status']=='3'){
$validate = new Validate([
'auditmsg|驳回理由' => 'require|length:1,20',
]);
if (!$validate->check($data)) {
return $this->error($validate->getError());
}
Db::name('salesman_audits')->insertGetId(['salesman_id'=>$data['id'],'auditmsg'=>$data['auditmsg'],'audit_at'=>$now]);
}
//数据处理
$update=array();
$update['id']=$data['id'];
$update['status']=$data['status'];
$update['updated_at']=$now;
//数据更新
$rt=Db::name("salesmen")->update($update);
//跳转
if($rt!==false){
//正式发短信
if($salesman['mobile']!=''){
import('aliyun_sms.SmsDemo');
if($data['status']=='1'){
$response = \SmsDemo::sendSms(
"五金商城", // 短信签名
"SMS_125022257", // 短信模板编号
$salesman['mobile'], // 短信接收者
Array(),
"001" // 流水号,选填
);
}else{
$response = \SmsDemo::sendSms(
"五金商城", // 短信签名
"SMS_125027328", // 短信模板编号
$salesman['mobile'], // 短信接收者
Array(
"auditmsg"=>trim(trim($data['auditmsg'],'。'),'.'),
),
"001" // 流水号,选填
);
}
}
return $this->success('审核成功',url('index',['status'=>$data['status']=='3'?'3':'-1']));
} else {
return $this->error('审核失败');
}
}
// 接收id
if ($id>0) {
// 查处数据
$salesman=Db::name("salesmen")->where('status','1')->where('id',$id)->find();
if(!$salesman){
return $this->error('请求错误');
}
$province=db('regions')->where('id',$salesman['province_id'])->value('name');
$city=db('regions')->where('id',$salesman['city_id'])->value('name');
$area=db('regions')->where('id',$salesman['area_id'])->value('name');
$region=$province.' '.$city.' '.$area;
switch ($salesman['level']) {
case '1':
$level='大区代理';
break;
case '2':
$level='县级代理';
break;
default:
$level='';
break;
}
// 使用ZBuilder快速创建表单
return ZBuilder::make('form')
->setPageTitle('代理商审核') // 设置页面标题
->setPageTips('请认真审核相关信息') // 设置页面提示信息
->setBtnTitle('submit', '确定') //修改默认按钮标题
//->addBtn('') //添加额外按钮
->addStatic('truename', '姓名','',$salesman['truename'])
->addStatic('mobile', '手机号码','',$salesman['mobile'])
->addStatic('idcard_pic', '照片','应为手持身份证照片,否则无效',staticText($salesman['idcard_pic'],'pic'))
->addStatic('idcard', '身份证号码','',$salesman['idcard'])
->addStatic('level', '代理类型','',$level)
->addStatic('region', '负责地区','',$region)
->addRadio('status', '审核', '必选', ['1' => '通过', '3' => '驳回'])
->addText('auditmsg', '驳回理由','必填,限制在20字以内')
->addHidden('id',$salesman['id'])
->setTrigger('status', '3', 'auditmsg',false)
//->isAjax(false) //默认为ajax的post提交
->fetch();
}
}
public function edit($id=''){
//判断是否为post请求
if (Request::instance()->isPost()) {
$now=time();
//获取请求的post数据
$data=input('post.');
// 查处数据
$salesman=Db::name("salesmen")->where('status','in','0,1')->where('id',$data['id'])->find();
if(!$salesman){
return $this->error('请求错误');
}
//数据输入验证
$validate = new Validate([
'level|代理类型' => 'require|in:1,2',
'status|代理状态' => 'require|in:0,1',
]);
if (!$validate->check($data)) {
return $this->error($validate->getError());
}
$update=array();
if($data['level']=='1'){
$validate = new Validate([
'region1|负责地区' => 'require',
]);
if (!$validate->check($data)) {
return $this->error($validate->getError());
}
$update['area_id']='0';
$update['city_id']=$data['region1'];
$update['province_id']=db('regions')->where('id',$data['region1'])->value('parent_id');
}
if($data['level']=='2'){
$validate = new Validate([
'region2|负责地区' => 'require',
]);
if (!$validate->check($data)) {
return $this->error($validate->getError());
}
$update['area_id']=$data['region2'];
$update['city_id']=db('regions')->where('id',$data['region2'])->value('parent_id');
$update['province_id']=db('regions')->where('id',$update['city_id'])->value('parent_id');
}
if($data['status']=='0'){
$validate = new Validate([
'disablemsg|禁用理由' => 'require|length:1,20',
]);
if (!$validate->check($data)) {
return $this->error($validate->getError());
}
Db::name('salesman_disables')->insertGetId(['salesman_id'=>$data['id'],'disablemsg'=>$data['disablemsg'],'audit_at'=>$now]);
}
//数据处理
$update['id']=$data['id'];
$update['status']=$data['status'];
$update['level']=$data['level'];
$update['updated_at']=$now;
//数据更新
$rt=Db::name("salesmen")->update($update);
//跳转
if($rt!==false){
return $this->success('修改成功',url('index',['status'=>$data['status']=='3'?'3':'-1']));
} else {
return $this->error('修改失败');
}
}
// 接收id
if ($id>0) {
// 查处数据
$salesman=Db::name("salesmen")->where('status','in','0,1')->where('id',$id)->find();
if(!$salesman){
return $this->error('请求错误');
}
$disable=db('salesman_disables')->where('salesman_id',$id)->order('disable_at desc')->find();
if($disable){
$disablemsg=$disable['disablemsg'];
}else{
$disablemsg='';
}
if($salesman['level']=='1' && $salesman['area_id']=='0') {
$salesman['area_id']=db('regions')->where('parent_id',$salesman['city_id'])->value('id');
$user_num=db('users')->where('city_id',$salesman['city_id'])->count('id');
$order_num_1=db('orders a')->join('users b','a.user_id=b.id','LEFT')->where('b.city_id',$salesman['city_id'])->where('a.state','in','1,3,4,5,8')->where('a.refund_state','in','-1,0,1,2,3,6,9,10,11')->count('a.id');
$order_num_2=db('collage_orders a')->join('users b','a.user_id=b.id','LEFT')->where('b.city_id',$salesman['city_id'])->where('a.state','in','1,4')->count('a.id');
$order_num=$order_num_1+$order_num_2;
$amount_num=db('trades a')->join('users b','a.user_id=b.id','LEFT')->where('b.city_id',$salesman['city_id'])->where('a.state','1')->count('a.id');
}else{
$user_num=db('users')->where('area_id',$salesman['area_id'])->count('id');
$order_num_1=db('orders a')->join('users b','a.user_id=b.id','LEFT')->where('b.area_id',$salesman['area_id'])->where('a.state','in','1,3,4,5,8')->where('a.refund_state','in','-1,0,1,2,3,6,9,10,11')->count('a.id');
$order_num_2=db('collage_orders a')->join('users b','a.user_id=b.id','LEFT')->where('b.area_id',$salesman['area_id'])->where('a.state','in','1,4')->count('a.id');
$order_num=$order_num_1+$order_num_2;
$amount_num=db('trades a')->join('users b','a.user_id=b.id','LEFT')->where('b.area_id',$salesman['area_id'])->where('a.state','1')->count('a.id');
}
// 使用ZBuilder快速创建表单
return ZBuilder::make('form')
->setPageTitle('修改代理商') // 设置页面标题
->setPageTips('请认真修改相关信息') // 设置页面提示信息
->setBtnTitle('submit', '确定') //修改默认按钮标题
->addBtn('') //添加额外按钮
->addStatic('truename', '姓名','',$salesman['truename'])
->addStatic('mobile', '手机号码','',$salesman['mobile'])
->addStatic('idcard_pic', '照片','应为手持身份证照片,否则无效',staticText($salesman['idcard_pic'],'pic'))
->addStatic('idcard', '身份证号码','',$salesman['idcard'])
->addStatic('survey_num', '调研信息数量','',db('surveys')->where('salesman_id',$salesman['id'])->count('id'))
->addStatic('user_num', '地区用户数量','',$user_num)
->addStatic('order_num', '地区订单数量','',$order_num)
->addStatic('amount_num', '地区交易额','',$amount_num)
->addStatic('complaint_num', '被投诉次数','',db('feedbacks')->where(['type_id'=>'3','salesman_id'=>$salesman['id']])->count('id'))
->addRadio('level', '代理类型', '必选', ['1' => '大区代理','2' => '县级代理'],$salesman['level'])
->addLinkages('region1', '负责地区', '必选', 'regions', 3, $salesman['city_id'], 'id,name,parent_id')
->addLinkages('region2', '负责地区', '必选', 'regions', 4, $salesman['area_id'], 'id,name,parent_id')
->addRadio('status', '代理状态', '必选', ['1' => '正常','0' => '禁用'],$salesman['status'])
->addText('disablemsg', '禁用理由','必填,限制在20字以内',$disablemsg)
->addHidden('id',$salesman['id'])
->setTrigger('level', '1', 'region1',false)
->setTrigger('level', '2', 'region2',false)
->setTrigger('status', '0', 'disablemsg',false)
//->isAjax(false) //默认为ajax的post提交
->fetch();
}
}
}