|
@@ -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
|
|
|
- ];
|
|
|
}
|
|
|
|
|
|
|