Browse Source

后台经纪人申请

linwu 1 year ago
parent
commit
6d4bc66c3e

+ 100 - 2
app/admin/controller/Broker.php

@@ -50,6 +50,7 @@ class Broker extends BaseController
             'province'    => input('province/s', ""),
             'city'        => input('city/s', ""),
             'district'    => input('district/s', ""),
+            'region'      => input('region/s', ""),
             'details'     => input('details/s', ""),
             'powerreport' => input('powerreport/d') == 1 ? 1 : 2,
             'status'      => input('status/d') == 1 ? 1 : 2,
@@ -403,7 +404,7 @@ class Broker extends BaseController
         }
 
         //更改状态
-        $status         = input('status/d', 0);
+        $status = input('status/d', 0);
         if (empty($status)) {
             exit(json_encode([
                 'code' => 1,
@@ -417,7 +418,7 @@ class Broker extends BaseController
 
         //审核失败,退钱
         if ($status == 3) {
-            $broker = BrokerModel::where('id', $income['brokerid'])->find();
+            $broker         = BrokerModel::where('id', $income['brokerid'])->find();
             $broker->income += abs($income['value']);
             $broker->save();
         }
@@ -426,4 +427,101 @@ class Broker extends BaseController
             'code' => 0,
         ]));
     }
+
+    public function applyList()
+    {
+        return view('broker/applylist');
+    }
+
+    public function listApply()
+    {
+        $limit  = input('limit/d', 20);
+        $page   = input('page/d', 1);
+        $map    = [];
+        $mobile = input('mobile/s');
+        if (!empty($mobile)) {
+            $map[] = ['mobile', 'like', '%' . $mobile . '%'];
+        }
+        $status = input('status/d');
+        if (!empty($status)) {
+            $map[] = ['status', '=', $status];
+        }
+        $list  = BrokerFormModel::with(['worker', 'agent'])->where($map)->order('id', 'DESC')->limit($limit)->page($page)->append(['status_text'])->select();
+        $count = BrokerFormModel::where($map)->count();
+        if ($count == 0) {
+            exit(json_encode([
+                'code' => 1,
+                'msg'  => "未查询到数据",
+            ]));
+        }
+        exit(json_encode([
+            'code'  => 0,
+            'msg'   => "",
+            'count' => $count,
+            'data'  => $list,
+        ]));
+    }
+
+    public function delApply()
+    {
+        $idarr   = input('idarr/a');
+        $fbroker = BrokerFormModel::whereIn('id', $idarr)->select();
+        $result  = $fbroker->delete();
+        if ($result) {
+            exit(json_encode([
+                'code' => 0,
+                'msg'  => "",
+            ]));
+        }
+        exit(json_encode([
+            'code' => 1,
+            'msg'  => "删除失败,请稍后重试",
+        ]));
+    }
+
+    public function statusApply()
+    {
+        $id      = input('id');
+        $status  = input('status', 1);
+        $fbroker = BrokerFormModel::where('id', $id)->find();
+        if ($fbroker['status'] != 1) {
+            exit(json_encode([
+                'code' => 1,
+                'msg'  => "请不要重复审核",
+            ]));
+        }
+
+        $fbroker->status = $status;
+        $fbroker->save();
+
+        if ($status == 2) {
+            $broker_user = BrokerModel::where('userid', $fbroker['userid'])->find();
+            if (!empty($broker_user)) {
+                exit(json_encode([
+                    'code' => 0,
+                    'msg'  => "",
+                ]));
+            }
+
+            $data['userid']     = $fbroker['userid'];
+            $data['workerid']   = $fbroker['workerid'];
+            $data['agentid']    = $fbroker['agentid'];
+            $data['title']      = $fbroker['title'];
+            $data['avatar']     = $fbroker['avatar'];
+            $data['mobile']     = $fbroker['mobile'];
+            $data['province']   = $fbroker['province'];
+            $data['city']       = $fbroker['city'];
+            $data['district']   = $fbroker['district'];
+            $data['region']     = $fbroker['region'];
+            $data['createtime'] = time();
+            $broker             = BrokerModel::create($data);
+
+            event('brokerAdd', $broker);
+        }
+
+        exit(json_encode([
+            'code' => 0,
+            'msg'  => "",
+        ]));
+    }
 }

+ 184 - 0
app/admin/view/broker/applylist.html

@@ -0,0 +1,184 @@
+<div class="layui-fluid">
+	<div class="layui-card">
+		<div class="layui-form layui-form-pane layui-card-header layuiadmin-card-header-auto" lay-filter="LAY-broker-brokerlist-search">
+			<div class="layui-form-item">
+				<div class="layui-inline">
+					<label class="layui-form-label">手机号</label>
+					<div class="layui-input-block">
+						<input type="text" name="mobile" placeholder="请输入" autocomplete="off" class="layui-input">
+					</div>
+				</div>
+				<div class="layui-inline">
+					<label class="layui-form-label">状态</label>
+					<div class="layui-input-block">
+						<select name="status">
+							<option value="">全部状态</option>
+							<option value="1">待审核</option>
+							<option value="2">审核通过</option>
+							<option value="2">审核拒绝</option>
+						</select>
+					</div>
+				</div>
+				<div class="layui-inline">
+					<button class="layui-btn" lay-submit lay-filter="LAY-broker-brokerlist-btn">
+						<i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>
+					</button>
+				</div>
+			</div>
+		</div>
+
+		<div class="layui-card-body">
+			<div style="padding-bottom: 10px;">
+				<button class="layui-btn layuiadmin-btn" data-type="batchdel">删除</button>
+			</div>
+
+			<table id="LAY-broker-brokerlist-table" lay-filter="LAY-broker-brokerlist-table"></table>
+			<script type="text/html" id="address">
+					{{d.province}} - {{d.city}} - {{d.district}}
+			</script>
+			<script type="text/html" id="workertitleTpl">
+				{{d.worker.title}}
+			</script>
+			<script type="text/html" id="agenttitleTpl">
+				{{d.agent.title}}
+			</script>
+			<script type="text/html" id="setTpl">
+				{{#  if(d.status == 1){ }}
+					<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="apply"><i class="layui-icon layui-icon-edit"></i>审核通过</a>
+					<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="reject"><i class="layui-icon layui-icon-edit"></i>审核拒绝</a>
+				{{#  } }}
+				<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del"><i class="layui-icon layui-icon-delete"></i>删除</a>
+			</script>
+		</div>
+	</div>
+</div>
+
+<script>
+	layui.config({
+		base: '/static/echoui/' //静态资源所在路径
+	}).extend({
+		index: 'lib/index' //主入口模块
+	}).use(['index', 'form', 'set', 'table'], function() {
+		var $ = layui.$,
+			setter = layui.setter,
+			admin = layui.admin,
+			form = layui.form,
+			table = layui.table;
+		form.render();
+
+		table.render({
+			elem: '#LAY-broker-brokerlist-table',
+			url: setter.baseAdminUrl + 'broker/listapply',
+			cols: [
+				[
+					{ type: 'checkbox', fixed: 'left' },
+					{ field: 'id', width: 80, title: '表ID', sort: true },
+					{ field: 'title', title: '姓名' },
+					{ field: 'mobile', title: '手机号' },
+					{ field: 'address', title: '省市区', templet: '#address' },
+					{ field: 'region', title: '区域', width: 100, align: 'center'},
+					{ field: 'workertitle', title: '劳务公司', templet: '#workertitleTpl' },
+					{ field: 'agenttitle', title: '代理门店', templet: '#agenttitleTpl' },
+					{ field: 'status_text', title: '状态', width: 100, align: 'center' },
+					{ field: 'createtime', title: '申请时间', width: 170 },
+					{ title: '操作', width: 260, align: 'center', fixed: 'right', toolbar: '#setTpl' }
+				]
+			],
+			page: true,
+			limit: 50,
+			cellMinWidth: 150,
+			text: '对不起,加载出现异常!'
+		});
+
+		form.on('submit(LAY-broker-brokerlist-btn)', function(data) {
+			table.reload('LAY-broker-brokerlist-table', {
+				where: data.field,
+				page: {
+					curr: 1
+				}
+			});
+		});
+
+		var active = {
+			batchdel: function() {
+				var checkStatus = table.checkStatus('LAY-broker-brokerlist-table'),
+					checkData = checkStatus.data; //得到选中的数据
+				if (checkData.length === 0) {
+					return layer.msg('请选择数据');
+				}
+				var idarr = [];
+				for (var i = 0; i < checkData.length; i++) {
+					idarr.push(checkData[i].id);
+				}
+				layer.confirm('确定删除此申请吗?', function(index) {
+					admin.req({
+						url: setter.baseAdminUrl + 'broker/delApply',
+						data: {
+							idarr: idarr
+						},
+						done: function(res) {
+							table.reload('LAY-broker-brokerlist-table');
+							layer.msg('已删除');
+						}
+					});
+					layer.close(index);
+				});
+			},
+		};
+
+		table.on('tool(LAY-broker-brokerlist-table)', function(obj) {
+			var data = obj.data;
+			if (obj.event === 'del') {
+				layer.confirm('确定删除此申请吗?', function(index) {
+					admin.req({
+						url: setter.baseAdminUrl + 'broker/delApply',
+						data: {
+							idarr: [data.id]
+						},
+						done: function(res) {
+							obj.del();
+							layer.msg('已删除');
+						}
+					});
+					layer.close(index);
+				});
+			} else if (obj.event === 'apply') {
+				layer.confirm('确定通过吗?', function(index) {
+					admin.req({
+						url: setter.baseAdminUrl + 'broker/statusApply',
+						data: {
+							id: data.id,
+							status: 2,
+						},
+						done: function(res) {
+							table.reload('LAY-broker-brokerlist-table');
+							layer.msg('操作成功');
+						}
+					});
+					layer.close(index);
+				});
+			} else if (obj.event === 'reject') {
+				layer.confirm('确定拒绝吗?', function(index) {
+					admin.req({
+						url: setter.baseAdminUrl + 'broker/statusApply',
+						data: {
+							id: data.id,
+							status: 3,
+						},
+						done: function(res) {
+							table.reload('LAY-broker-brokerlist-table');
+							layer.msg('操作成功');
+						}
+					});
+					layer.close(index);
+				});
+			}
+		});
+
+		$('.layui-btn.layuiadmin-btn').on('click', function() {
+			var type = $(this).data('type');
+			active[type] ? active[type].call(this) : '';
+		});
+
+	});
+</script>

+ 6 - 0
app/admin/view/broker/brokerform.html

@@ -66,6 +66,12 @@
 								</select>
 							</div>
 						</div>
+						<div class="layui-form-item">
+							<label class="layui-form-label">区域</label>
+							<div class="layui-input-block">
+								<input type="text" name="region" value="{$broker.region}" placeholder="请输入..." autocomplete="off" class="layui-input">
+							</div>
+						</div>
 						<div class="layui-form-item" id="formdetails">
 							<label class="layui-form-label">基本介绍</label>
 							<div class="layui-input-block">

+ 1 - 2
app/admin/view/broker/brokerlist.html

@@ -89,9 +89,8 @@
 					{ field: 'id', width: 80, title: '表ID', sort: true },
 					{ field: 'title', title: '姓名', edit: 'text' },
 					{ field: 'mobile', title: '手机号' },
-					{ field: 'weixin', title: '微信号', edit: 'text' },
-					{ field: 'qq', title: 'QQ号', edit: 'text' },
 					{ field: 'muser', title: '关联的用户(姓名-手机号)', templet: '#muserTpl', minWidth: 250, align: 'left' },
+					{ field: 'region', title: '区域' },
 					{ field: 'workertitle', title: '劳务公司', templet: '#workertitleTpl' },
 					{ field: 'agenttitle', title: '代理门店', templet: '#agenttitleTpl' },
 					{ field: 'usercount', title: '用户邀请数', templet: '#usercountTpl', width: 100, align: 'center' },

+ 1 - 0
app/agent/controller/Broker.php

@@ -47,6 +47,7 @@ class Broker extends BaseController
             'province'    => input('province/s', ""),
             'city'        => input('city/s', ""),
             'district'    => input('district/s', ""),
+            'region'      => input('region/s', ""),
             'details'     => input('details/s', ""),
             'powerreport' => input('powerreport/d', 0) == 1 ? 1 : 2,
             'status'      => input('status/d') == 1 ? 1 : 2,

+ 6 - 0
app/agent/view/broker/brokerform.html

@@ -68,6 +68,12 @@
 								</select>
 							</div>
 						</div>
+						<div class="layui-form-item">
+							<label class="layui-form-label">区域</label>
+							<div class="layui-input-block">
+								<input type="text" name="region" value="{$broker.region}" placeholder="请输入..." autocomplete="off" class="layui-input">
+							</div>
+						</div>
 						<div class="layui-form-item" id="formdetails">
 							<label class="layui-form-label">基本介绍</label>
 							<div class="layui-input-block">

+ 1 - 0
app/agent/view/broker/brokerlist.html

@@ -82,6 +82,7 @@
 					{ field: 'income', title: '收益', width: 120 },
 					{ field: 'income_total', title: '总收益', width: 120 },
 					{ field: 'muser', title: '关联的用户(姓名-手机号)', templet: '#muserTpl', minWidth: 250, align: 'left' },
+					{ field: 'region', title: '区域' },
 					{ field: 'agenttitle', title: '代理门店', templet: '#agenttitleTpl' },
 					{ field: 'usercount', title: '用户邀请数', templet: '#usercountTpl', width: 100, align: 'center' },
 					{ field: 'weixin', title: '微信号', edit: 'text' },

+ 1 - 0
app/common/model/Broker.php

@@ -32,6 +32,7 @@ class Broker extends Model
         'createtime'   => 'int',
         'income'       => 'decimal',
         'income_total' => 'decimal',
+        'region'       => 'string',
     ];
 
     // 设置字段自动转换类型

+ 36 - 22
app/common/model/BrokerForm.php

@@ -1,34 +1,48 @@
 <?php
+
 namespace app\common\model;
 
 use think\Model;
 
 class BrokerForm extends Model
 {
-	// 设置字段信息
+    // 设置字段信息
     protected $schema = [
-        'id'			=> 'int',
-		'realname'		=> 'string',
-		'mobile'		=> 'string',
-		'address'		=> 'string',
-		'idcard'		=> 'string',
-		'recommender'	=> 'string',
-		'status'		=> 'tinyint',
-		'remark'		=> 'string',
-		'createtime'    => 'int'
+        'id'         => 'int',
+        'userid'     => 'int',
+        'workerid'   => 'int',
+        'agentid'    => 'int',
+        'title'      => 'string',
+        'avatar'     => 'string',
+        'mobile'     => 'string',
+        'province'   => 'string',
+        'city'       => 'string',
+        'district'   => 'string',
+        'region'     => 'string',
+        'createtime' => 'int',
+        'status'     => 'tinyint',
     ];
-	
-	// 设置字段自动转换类型
-	protected $type = [
-		'createtime'	=> 'timestamp:Y-m-d H:i:s'
+
+    // 设置字段自动转换类型
+    protected $type = [
+        'createtime' => 'timestamp:Y-m-d H:i:s',
     ];
-	
-	public function getStatusTextAttr($value,$data)
-	{
-		$status = [1=>'待处理',2=>'处理中',3=>'已处理'];
-		return $status[$data['status']];
-	}
-	
-	
 
+    public function getStatusTextAttr($value, $data)
+    {
+        $status = [1 => '待审核', 2 => '审核通过', 3 => '审核拒绝'];
+        return $status[$data['status']];
+    }
+
+    // 关联Worker
+    public function worker()
+    {
+        return $this->hasOne(Worker::class, "id", "workerid");
+    }
+
+    // 关联Agent
+    public function agent()
+    {
+        return $this->hasOne(Agent::class, "id", "agentid");
+    }
 }

+ 1 - 0
app/worker/controller/Broker.php

@@ -49,6 +49,7 @@ class Broker extends BaseController
             'province'    => input('province/s', ""),
             'city'        => input('city/s', ""),
             'district'    => input('district/s', ""),
+            'region'      => input('region/s', ""),
             'details'     => input('details/s', ""),
             'powerreport' => input('powerreport/d', 0) == 1 ? 1 : 2,
             'status'      => input('status/d', 0) == 1 ? 1 : 2,

+ 6 - 0
app/worker/view/broker/brokerform.html

@@ -80,6 +80,12 @@
 								</select>
 							</div>
 						</div>
+						<div class="layui-form-item">
+							<label class="layui-form-label">区域</label>
+							<div class="layui-input-block">
+								<input type="text" name="region" value="{$broker.region}" placeholder="请输入..." autocomplete="off" class="layui-input">
+							</div>
+						</div>
 						<div class="layui-form-item" id="formdetails">
 							<label class="layui-form-label">基本介绍</label>
 							<div class="layui-input-block">

+ 1 - 0
app/worker/view/broker/brokerlist.html

@@ -90,6 +90,7 @@
 					{ field: 'income', title: '收益', width: 120 },
 					{ field: 'income_total', title: '总收益', width: 120 },
 					{ field: 'muser', title: '关联的用户(姓名-手机号)', templet: '#muserTpl', minWidth: 250, align: 'left' },
+					{ field: 'region', title: '区域' },
 					{ field: 'agenttitle', title: '代理门店', templet: '#agenttitleTpl' },
 					{ field: 'usercount', title: '用户邀请数', templet: '#usercountTpl', width: 100, align: 'center' },
 					{ field: 'weixin', title: '微信号', edit: 'text' },