linwu 1 жил өмнө
parent
commit
ed596bcb0a

+ 9 - 5
app/admin/controller/User.php

@@ -20,7 +20,6 @@ use app\common\model\Agent as AgentModel;
 use app\common\model\Broker as BrokerModel;
 
 use app\common\service\BalanceService;
-use app\common\service\IntegralService;
 use app\common\service\UserService;
 use app\common\validate\User as UserValidate;
 use think\exception\ValidateException;
@@ -715,7 +714,7 @@ class User extends BaseController
                 'msg'  => "请选择经纪人。",
             ]));
         }
-        UserModel::whereIn('id', $idarr)->update(['brokerid' => $brokerid]);
+        UserModel::whereIn('id', $idarr)->update(['brokerid' => $brokerid, 'broker_channel' => 2]);
         exit(json_encode([
             'code' => 0,
             'msg'  => "",
@@ -801,9 +800,10 @@ class User extends BaseController
         ];
         $password       = input('password/s');
         if (empty($id)) {
-            $data['integral']  = 0;
-            $data['wxampcode'] = '';
-            $user              = UserModel::create($data);
+            $data['integral']       = 0;
+            $data['wxampcode']      = '';
+            $data['broker_channel'] = 2;
+            $user                   = UserModel::create($data);
             UserAuthsModel::create([
                 'userid'       => $user->id,
                 'identitytype' => "mobile",
@@ -815,6 +815,10 @@ class User extends BaseController
             ]);
         } else {
             $data['id'] = $id;
+            $user       = UserModel::find($id);
+            if ($user['brokerid'] != $brokerid) {
+                $data['broker_channel'] = 2;
+            }
             UserModel::update($data);
             $adata = ['identifier' => $mobile];
             if (!empty($password)) {

+ 6 - 0
app/admin/view/user/userform.html

@@ -23,6 +23,12 @@
 							<div class="layui-input-block" id="agentbroker">
 							</div>
 						</div>
+						<div class="layui-form-item">
+							<label class="layui-form-label">来源</label>
+							<div class="layui-input-block">
+								<input type="text" readonly value="{$user.broker_channel_text}" class="layui-input">
+							</div>
+						</div>
 						<div class="layui-form-item">
 							<label class="layui-form-label"><span style="color:#f90c05;">*</span>昵称</label>
 							<div class="layui-input-block">

+ 7 - 0
app/common/model/User.php

@@ -53,6 +53,7 @@ class User extends Model
         'is_perfect'     => 'int',
         'is_auth'        => 'int',
         'balance'        => 'decimal',
+        'broker_channel' => 'tinyint',
     ];
 
     // 设置字段自动转换类型
@@ -103,6 +104,12 @@ class User extends Model
         return $experience[$data['workexperience']];
     }
 
+    public function getBrokerChannelTextAttr($value, $data)
+    {
+        $arr = ['' => '', 1 => '扫码绑定', 2 => '后台分配'];
+        return $arr[$data['broker_channel']];
+    }
+
     public function getJobintentionTextAttr($value, $data)
     {
         $title = '';

+ 53 - 0
app/mainapp/controller/Broker.php

@@ -15,6 +15,7 @@ use app\common\model\BrokerForm as BrokerFormModel;
 use app\common\model\DemandSnatch as DemandSnatchModel;
 use app\common\model\DemandReport as DemandReportModel;
 use app\common\model\Agent as AgentModel;
+use app\common\model\Worker as WorkerModel;
 
 use app\common\validate\DemandReport as DemandReportValidate;
 use think\exception\ValidateException;
@@ -446,6 +447,10 @@ class Broker extends BaseController
         if (!empty($followstatus)) {
             $map[] = ['followstatus', '=', $followstatus];
         }
+        $keyword = input('keyword', '');
+        if (!empty($keyword)) {
+            $map[] = ['nickname|mobile', 'like', "%{$keyword}%"];
+        }
         $plist = UserModel::with(['userFollow'])->where($map)->order(['id' => 'desc'])->page($ppage)->limit($psize)->select();
         page_result(0, "", [
             'plist'   => $plist,
@@ -524,4 +529,52 @@ class Broker extends BaseController
 
         page_result(0, '', $agent);
     }
+
+    public function center()
+    {
+        $brokerid = input('brokerid/d', 0);
+        empty($brokerid) && page_result(1, "用户不存在。");
+
+        $broker = BrokerModel::find($brokerid);
+        empty($broker) && page_result(1, "用户不存在。");
+
+        $user_ids     = UserModel::where('brokerid', $brokerid)->column('id');
+        $worker_count = WorkerModel::where('userid', 'in', $user_ids)->where('status', 5)->count();
+
+        $statistics = [
+            'income_total' => $broker['income_total'],
+            'income'       => $broker['income'],
+            'user'         => count($user_ids),
+            'worker'       => $worker_count,
+        ];
+
+        page_result(0, '', $statistics);
+    }
+
+    public function listWorker()
+    {
+        $ppage        = input('ppage/d', 1);
+        $psize        = input('psize/d', 20);
+        $map          = [];
+        $brokerid     = input('brokerid/d', 0);
+        $user_ids     = UserModel::where('brokerid', $brokerid)->column('id');
+        if (empty($user_ids)) {
+            page_result(0, "", [
+                'plist'   => [],
+                'pstatus' => 'noMore',
+            ]);
+        }
+
+        $map[]        = ['userid', 'in', $user_ids];
+        $map[]        = ['status', '=', 5];
+        $keyword = input('keyword', '');
+        if (!empty($keyword)) {
+            $map[] = ['title|mobile', 'like', "%{$keyword}%"];
+        }
+        $plist = WorkerModel::where($map)->page($ppage)->limit($psize)->select();
+        page_result(0, "", [
+            'plist'   => $plist,
+            'pstatus' => $psize > count($plist) ? 'noMore' : 'more',
+        ]);
+    }
 }

BIN
public/static/images/applet/brokerCenter.jpg