Browse Source

增加是否会员

ZxcZxc123 1 year ago
parent
commit
aee2978d53
1 changed files with 40 additions and 21 deletions
  1. 40 21
      app/api/controller/user/UserController.php

+ 40 - 21
app/api/controller/user/UserController.php

@@ -625,30 +625,54 @@ class UserController
      */
     public function set_parent(Request $request)
     {
-        $uid = $request->param('uid');
+        list($parent, $parent_area, $uid) = UtilService::postMore([
+            ['parent', 0],
+            ['parent_area'],
+            ['uid']
+        ], $request, true);
         $user = User::getUserInfo($uid);
+        if ($user['spread_uid'] != $request->uid()) return app('json')->fail('该用户并非你的下级');
+        if ($user['parent']) return app('json')->fail('该用户已设置接点');
+        if (!StoreOrder::where('uid', $uid)->where('store_order', 1)->where('paid', 1)->find()) return app('json')->fail('该用户尚未完成报单');
+        if (!($request->user()['A_count'] && $request->user()['B_count'])) {
+            if ($parent == $request->uid()) {
+                if ($parent_area == 'C') {
+                    return app('json')->fail('请先在A区和B区报单');
+                }
+                if ($request->user()[$parent_area . '_count'] > 0) {
+                    return app('json')->fail('该区已存在用户,请选择其他区');
+                }
+            } else {
+                return app('json')->fail('请先选择自己的AB区进行报单');
+            }
+        }
 
-        if ($user['spread_uid']) return app('json')->fail('该用户已有上级');
-
-        $p_user = User::where('is_best', 1)->orderBy('id')->find();
-        if (!$p_user) $p_user = $user;
-
-        $user_c = User::where('parent', $p_user['uid'])->find();
-        $user_ab = User::where('parent', $p_user['uid'])->where('parent_area', 'in', ['A', 'B'])->find();
-
-        if (!$user_c) $parent = $p_user['uid'];
-        $parent_area = 'C';
-        if (!$user_ab) $parent = $p_user['uid'];
-        $parent_area = 'A';
-        if ($user_ab && $user_ab['parent_area'] == 'A') $parent = $p_user['uid'];
-        $parent_area = 'B';
+        if (!$parent || !$parent_area) return app('json')->fail('请设置接点');
+        $user_info = User::get($parent);
+        if ($parent_area == 'C') {
+            if ($user_info['parent'] != $request->uid()) {
+                return app('json')->fail('C区必须是自己直推的');
+            }
+            if ($user_info['C_count'] > 0) {
+                return app('json')->fail('C区已存在用户');
+            }
+        }
+        if ($user_info['A_count'] >= 1 && $user_info['B_count'] >= 1) {
+            $parent = $user_info['uid'];
+            $parent_area = 'C';
+        } elseif ($user_info['A_count'] == 0) {
+            $parent_area = 'A';
+        } elseif ($user_info['B_count'] == 0) {
+            $parent_area = 'B';
+        }
 
         BaseModel::beginTrans();
-        try{
+        try {
             User::where('uid', $uid)->update(['parent' => $parent, 'parent_area' => $parent_area]);
             $res = User::setParentUser($uid, $parent, $parent_area);
             if ($res) {
                 BaseModel::commitTrans();
+                return app('json')->success('设置成功');
             } else {
                 BaseModel::rollbackTrans();
                 return app('json')->fail(User::getErrorInfo('设置失败'));
@@ -657,11 +681,6 @@ class UserController
             BaseModel::rollbackTrans();
             return app('json')->fail('设置失败' . $e->getMessage());
         }
-
-        return [
-            'parent' => $parent,
-            'parent_area' => $parent_area
-        ];
     }