Bladeren bron

增加是否会员

ZxcZxc123 1 jaar geleden
bovenliggende
commit
e0ae4df828
2 gewijzigde bestanden met toevoegingen van 95 en 94 verwijderingen
  1. 33 32
      app/api/controller/order/StoreOrderController.php
  2. 62 62
      app/api/controller/user/UserController.php

+ 33 - 32
app/api/controller/order/StoreOrderController.php

@@ -363,44 +363,45 @@ class StoreOrderController
         $uid = $request->uid(); // 获取当前用户ID
         $user = User2::getUserInfo($uid);
 
-        // 检查该用户是否是当前用户的下级
-        if ($user['spread_uid'] != $uid) return app('json')->fail('该用户并非你的下级');
-
         // 检查该用户是否已经设置了接点
-        if ($user['parent']) return app('json')->fail('该用户已设置接点');
-
-        // 检查该用户是否已完成报单
-        $storeOrder = StoreOrder::where('uid', $uid)->where('store_order', 1)->where('paid', 1)->find();
-        if (!$storeOrder) return app('json')->fail('该用户尚未完成报单');
+        if ($user['parent']) {
+            return app('json')->fail('该用户已设置接点');
+        }
 
         // 检查该用户是否购买了会员商品
         $isMemberProduct = StoreProduct::where('is_best', 1)->where('id', $user['product_id'])->find();
-        if (!$isMemberProduct) return app('json')->fail('该用户尚未购买会员商品');
+        if (!$isMemberProduct) {
+            return app('json')->fail('该用户尚未购买会员商品');
+        }
+
+        // 检查ABC区是否已满
+        $aCount = User2::where('parent', $uid)->where('parent_area', 'A')->count();
+        $bCount = User2::where('parent', $uid)->where('parent_area', 'B')->count();
+        $cCount = User2::where('parent', $uid)->where('parent_area', 'C')->count();
+
+        if ($cCount > 0 || $aCount > 0 || $bCount > 0) {
+            return app('json')->fail('ABC区已满,无法进行自动绑定');
+        }
 
-        // 根据当前用户的AB区情况选择合适的接点和接点区域
-        $parent = 0;
-        $parent_area = '';
+        // 获取当前用户的上级用户
+        $spreadUser = User2::get($user['spread_uid']);
 
-        if ($request->user()['A_count'] == 0) {
-            $parent = $uid; // 接点为当前用户自己
+        // 检查C区是否是自己直推的
+        if ($spreadUser && $spreadUser['uid'] === $uid) {
+            $parent = $uid;
+            $parent_area = 'C';
+        } else {
+            return app('json')->fail('C区必须是自己直推的');
+        }
+
+        // 查找A区和B区下级最少的区域
+        $aChildCount = User2::where('parent', $uid)->where('parent_area', 'A')->count();
+        $bChildCount = User2::where('parent', $uid)->where('parent_area', 'B')->count();
+
+        if ($aChildCount <= $bChildCount) {
             $parent_area = 'A';
-        } elseif ($request->user()['B_count'] == 0) {
-            $parent = $uid; // 接点为当前用户自己
-            $parent_area = 'B';
-        } elseif ($request->user()['C_count'] == 0) {
-            // 查找当前用户A区和B区下级最少的区域
-            $aCount = User2::where('parent', $uid)->where('parent_area', 'A')->count();
-            $bCount = User2::where('parent', $uid)->where('parent_area', 'B')->count();
-
-            if ($aCount <= $bCount) {
-                $parent = $uid; // 接点为当前用户自己
-                $parent_area = 'A';
-            } else {
-                $parent = $uid; // 接点为当前用户自己
-                $parent_area = 'B';
-            }
         } else {
-            return app('json')->fail('当前用户的ABC区已满');
+            $parent_area = 'B';
         }
 
         // 更新用户的接点和接点区域信息
@@ -410,9 +411,9 @@ class StoreOrderController
         $res = User2::setParentUser($uid, $parent, $parent_area);
 
         if ($res) {
-            return app('json')->success('设置成功');
+            return app('json')->success('自动绑定ABC区成功');
         } else {
-            return app('json')->fail(User2::getErrorInfo('设置失败'));
+            return app('json')->fail('自动绑定ABC区失败');
         }
     }
 

+ 62 - 62
app/api/controller/user/UserController.php

@@ -617,68 +617,68 @@ class UserController
 
 
 
-//    /**
-//     * @param Request $request
-//     * @return mixed
-//     * @throws DataNotFoundException
-//     * @throws DbException
-//     * @throws ModelNotFoundException
-//     */
-//    public function set_parent(Request $request)
-//    {
-//        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('该用户尚未完成报单');
-//
-//        $isMemberProduct = StoreProduct::where('is_best', 1)->where('id', $user['product_id'])->find();
-//        if (!$isMemberProduct) return app('json')->fail('该用户尚未购买会员商品');
-//
-//
-//        $aCount = User::where('parent', $parent)->where('parent_area', 'A')->count();
-//        $bCount = User::where('parent', $parent)->where('parent_area', 'B')->count();
-//        $cCount = User::where('parent', $parent)->where('parent_area', 'C')->count();
-//
-//        if ($parent_area == 'C') {
-//            if ($parent != $request->uid()) {
-//                return app('json')->fail('C区必须是自己直推的');
-//            }
-//            if ($cCount > 0) {
-//                return app('json')->fail('C区已存在下级');
-//            }
-//            if ($aCount == 0 || $bCount == 0) {
-//                return app('json')->fail('AB区未满');
-//            }
-//        } else {
-//            if ($aCount > 0 && $bCount > 0) {
-//                return app('json')->fail('AB区已满');
-//            }
-//            if ($cCount > 0) {
-//                return app('json')->fail('C区下级已满');
-//            }
-//        }
-//
-//        BaseModel::beginTrans();
-//        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('设置失败'));
-//            }
-//        } catch (\Exception $e) {
-//            BaseModel::rollbackTrans();
-//            return app('json')->fail('设置失败' . $e->getMessage());
-//        }
-//    }
+    /**
+     * @param Request $request
+     * @return mixed
+     * @throws DataNotFoundException
+     * @throws DbException
+     * @throws ModelNotFoundException
+     */
+    public function set_parent(Request $request)
+    {
+        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('该用户尚未完成报单');
+
+        $isMemberProduct = StoreProduct::where('is_best', 1)->where('id', $user['product_id'])->find();
+        if (!$isMemberProduct) return app('json')->fail('该用户尚未购买会员商品');
+
+
+        $aCount = User::where('parent', $parent)->where('parent_area', 'A')->count();
+        $bCount = User::where('parent', $parent)->where('parent_area', 'B')->count();
+        $cCount = User::where('parent', $parent)->where('parent_area', 'C')->count();
+
+        if ($parent_area == 'C') {
+            if ($parent != $request->uid()) {
+                return app('json')->fail('C区必须是自己直推的');
+            }
+            if ($cCount > 0) {
+                return app('json')->fail('C区已存在下级');
+            }
+            if ($aCount == 0 || $bCount == 0) {
+                return app('json')->fail('AB区未满');
+            }
+        } else {
+            if ($aCount > 0 && $bCount > 0) {
+                return app('json')->fail('AB区已满');
+            }
+            if ($cCount > 0) {
+                return app('json')->fail('C区下级已满');
+            }
+        }
+
+        BaseModel::beginTrans();
+        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('设置失败'));
+            }
+        } catch (\Exception $e) {
+            BaseModel::rollbackTrans();
+            return app('json')->fail('设置失败' . $e->getMessage());
+        }
+    }