0
0

更新代码

This commit is contained in:
2020-08-04 10:09:42 +08:00
parent 6118b5b63b
commit c2ac5d964e
478 changed files with 34410 additions and 0 deletions

View File

@@ -0,0 +1,391 @@
<?php
namespace App\Admin\Controllers;
use App\Models\Seller;
use App\User;
use Illuminate\Http\Request;
use RuLong\Identity\Models\Identity;
use RuLong\Identity\Models\IdentityLog;
use RuLong\UserRelation\Models\UserRelation;
use Validator;
class UserController extends Controller
{
public function index(Request $request)
{
$user_id = $request->user_id;
$mobile = $request->mobile;
$nickname = $request->nickname;
$identity = $request->identity;
$parent_id = $request->parent_id;
$start = $request->start;
$end = $request->end;
$is_salesman = $request->is_salesman;
$orderField = $request->orderField;
$orderDirection = $request->orderDirection;
$numPerPage = $request->numPerPage ?: 30;
$users = User::with('organ')->when($mobile, function ($query) use ($mobile) {
return $query->where('mobile', 'like', "%{$mobile}%");
})->when($user_id, function ($query) use ($user_id) {
return $query->where('id', $user_id);
})->when(is_numeric($is_salesman), function ($query) use ($is_salesman) {
return $query->where('is_salesman', $is_salesman);
})->when($nickname, function ($query) use ($nickname) {
return $query->whereHas('info', function ($query) use ($nickname) {
$query->where('nickname', 'like', "%{$nickname}%");
});
})->when(is_numeric($identity), function ($query) use ($identity) {
$query->whereHas('identity', function ($query) use ($identity) {
$query->where('identity_id', $identity);
});
})->when($parent_id, function ($query) use ($parent_id) {
$query->whereHas('relation', function ($query) use ($parent_id) {
$query->where('parent_id', $parent_id);
});
})->when($start && $end, function ($query) use ($start, $end) {
return $query->whereBetween('created_at', [$start, date('Y-m-d', strtotime("+1 days", strtotime($end)))]);
})->when($start && !$end, function ($query) use ($start) {
return $query->where('created_at', '>=', $start);
})->when(!$start && $end, function ($query) use ($end) {
return $query->where('created_at', '<=', date('Y-m-d', strtotime("+1 days", strtotime($end))));
})->when($orderField, function ($query) use ($orderField, $orderDirection) {
$query->orderBy($orderField, $orderDirection);
})->with(['info', 'lastLogin'])->withCount('logins')->orderBy('created_at', 'desc')->paginate($numPerPage);
$identitys = Identity::get();
return view('Admin::users.index', compact('users', 'identitys'));
}
public function edit(User $user)
{
return view('Admin::users.edit', compact('user'));
}
public function update(Request $request, User $user)
{
$validator = Validator::make($request->all(), [
'password' => 'nullable|between:6,32',
], [
'password.between' => '登录密码长度应在:min-:max位之间',
]);
if ($validator->fails()) {
return $this->error($validator->errors()->first());
}
if ($user->update($request->all())) {
return $this->success('修改成功', 'close');
} else {
return $this->error();
}
}
/**
* 软删除
* @Author:<C.Jason>
* @Date:2018-11-02T13:44:52+0800
* @param User $user [description]
* @return [type] [description]
*/
public function destroy(User $user)
{
if ($user->delete()) {
return $this->success();
} else {
return $this->error();
}
}
/**
* 回收站
* @Author:<C.Jason>
* @Date:2018-11-02T13:43:57+0800
* @return [type] [description]
*/
public function recycle(Request $request)
{
$mobile = $request->mobile;
$nickname = $request->nickname;
$orderField = $request->orderField;
$orderDirection = $request->orderDirection;
$numPerPage = $request->numPerPage ?: 30;
$users = User::onlyTrashed()->when($mobile, function ($query) use ($mobile) {
return $query->where('mobile', 'like', "%{$mobile}%");
})->when($nickname, function ($query) use ($nickname) {
return $query->whereHas('info', function ($query) use ($nickname) {
$query->where('nickname', 'like', "%{$nickname}%");
});
})->when($orderField, function ($query) use ($orderField, $orderDirection) {
$query->orderBy($orderField, $orderDirection);
})->with(['info', 'lastLogin'])->withCount('logins')->paginate($numPerPage);
return view('Admin::users.recycle', compact('users'));
}
/**
* 清空回收站
* 未考虑删除关联数据的问题
* @Author:<C.Jason>
* @Date:2018-11-02T13:41:40+0800
* @return [type] [description]
*/
public function clean()
{
if (User::onlyTrashed()->forceDelete()) {
return $this->success();
} else {
return $this->error();
}
}
/**
* 还原
* @Author:<C.Jason>
* @Date:2018-11-02T13:43:47+0800
* @param [type] $user [description]
* @return [type] [description]
*/
public function resume($user)
{
if (User::withTrashed()->where('id', $user)->restore()) {
return $this->success();
} else {
return $this->error();
}
}
/**
* 彻底删除单条目
* @Author:<C.Jason>
* @Date:2018-11-02T13:43:36+0800
* @param [type] $user [description]
* @return [type] [description]
*/
public function delete($user)
{
if (User::withTrashed()->where('id', $user)->forceDelete()) {
return $this->success();
} else {
return $this->error();
}
}
/**
* 线下开通身份
* @Author:<Leady>
* @Date:2018-11-20T15:32:24+0800
* @param Request $request [description]
* @param [type] $user [description]
* @return [type] [description]
*/
public function identity(User $user)
{
if ($user->seller_id) {
$identity = Identity::where('id', '>', $user->identity->identity_id)->get();
} else {
$identity = Identity::where('id', '>', $user->identity->identity_id)->whereIn('id', [1, 2])->get();
}
return view('Admin::users.identity', compact('user', 'identity'));
}
/**
* 开通身份执行事件
* @Author:<Leady>
* @Date:2018-11-20T15:34:36+0800
* @param Request $request [description]
* @return [type] [description]
*/
public function identityrun(Request $request, User $user)
{
$identity_id = $request->identity_id ?? '';
$pay = $request->pay ?? '';
$max_key = $request->max_key ?? '0';
if (!$identity_id) {
return $this->error('请选择要变更的身份');
}
$user->identityUpdate($identity_id, 'AdminUp', $pay, $max_key);
return $this->success('变更成功', 'close');
}
/**
* 缴费用户列表
* @Author:<Leady>
* @Date:2018-11-26T12:03:39+0800
* @param Request $request [description]
* @return [type] [description]
*/
public function paycostUser(Request $request)
{
$numPerPage = $request->numPerPage ?: 30;
$identity = $request->identity;
$mobile = $request->mobile;
$nickname = $request->nickname;
$lists = IdentityLog::where('channel', 'AdminUp')
->when(is_numeric($identity), function ($query) use ($identity) {
$query->where('after', $identity);
})
->when($mobile, function ($query) use ($mobile) {
$query->whereHas('user_obj', function ($query) use ($mobile) {
$query->where('mobile', 'like', "%{$mobile}%");
});
})
->when($nickname, function ($query) use ($nickname) {
$query->whereHas('user_obj', function ($query) use ($nickname) {
return $query->whereHas('info', function ($query) use ($nickname) {
$query->where('nickname', 'like', "%{$nickname}%");
});
});
})->orderBy('created_at', 'desc')->paginate($numPerPage);
$identitys = Identity::get();
return view('Admin::users.paycostuser', compact('lists', 'identitys'));
}
/**
* 缴费用户确认返款
* @Author:<Leady>
* @Date:2018-11-26T12:03:30+0800
* @param Request $request [description]
* @param IdentityLog $log [description]
* @return [type] [description]
*/
public function rebates(Request $request, IdentityLog $log)
{
return view('Admin::users.rebates', compact('log'));
}
/**
* 缴费用户确认返款
* @Author:<Leady>
* @Date:2018-11-26T12:03:30+0800
* @param Request $request [description]
* @param IdentityLog $log [description]
* @return [type] [description]
*/
public function rebatesdo(Request $request, IdentityLog $log)
{
$log->other = array_merge($log->other, ['rebates' => '已返款', 'rebates_remark' => $request->rebates_remark]);
if ($log->save()) {
return $this->success('操作成功', 'close');
} else {
return $this->error();
}
}
/**
* 更改上级ID
* @Author:<Leady>
* @Date:2018-11-20T15:32:24+0800
* @param Request $request [description]
* @param [type] $user [description]
* @return [type] [description]
*/
public function parent(User $user)
{
return view('Admin::users.parent', compact('user'));
}
/**
* 更改上级ID执行事件
* @Author:<Leady>
* @Date:2018-11-20T15:34:36+0800
* @param Request $request [description]
* @return [type] [description]
*/
public function parentrun(Request $request, User $user)
{
$parent_id = $request->parent_id ?? '';
if (!$parent_id || !is_numeric($parent_id)) {
return $this->error('请输入正确的编号');
}
$parent = UserRelation::where('user_id', (int) $parent_id)->first();
if ($parent) {
$user = $user->relation;
$bloodline = $parent->bloodline . $parent_id . ','; //改变后血缘线
$oldblood = $user->bloodline . $user->user_id . ','; //目标替换血缘线
$newblood = $bloodline . $user->user_id . ','; //目标新血缘线
$layer_cha = ($parent->layer + 1) - $user->layer;
$user->layer += $layer_cha;
$user->parent_id = $parent_id;
$user->bloodline = $bloodline;
$user->save();
$user->user->update(['seller_id' => $parent->user->seller_id]);
$childs = UserRelation::where('bloodline', 'like', '%,' . $user->user_id . ',%')->get();
foreach ($childs as $key => $child) {
$child->bloodline = str_replace($oldblood, $newblood, $child->bloodline);
$child->layer += $layer_cha;
$child->save();
$child->user->update(['seller_id' => $parent->user->seller_id]);
}
} else {
return $this->error('推荐人不存在');
}
return $this->success('变更成功', 'close');
}
public function direct(User $user)
{
// if ($user->direct != 2) {
// return $this->error('状态不正确');
// }
// $payment_vip = \App\Models\VipPament::where('user_id', $user->id)->where('state', 'SUCCESS')->first();
// \App\Bonus\Direct::settlement($user, ['orderid' => 'vip' . $payment_vip->id]);
return $this->success('执行完毕');
}
public function bloodview(User $user)
{
$lists = $user->relation->list2tree('user_id', 'parent_id', 'children', $user->id);
$root = [
"text" => $user->id . ' - ' . $user->info->nickname . '' . ($user->identity->identity_id > 0 ? '已激活' : '未激活') . '',
"children" => $lists,
];
return view('Admin::users.bloodview', compact('root'));
}
//更改组织
public function seller(Request $request, User $user)
{
$sellers = Seller::where('type', 'organ')->whereNotIn('id', [$user->seller_id])->get();
return view('Admin::users.seller', compact('user', 'sellers'));
}
//更改组织执行
public function sellerdo(Request $request, User $user)
{
$seller_id = $request->organ_id;
if (!$seller_id || !is_numeric($seller_id)) {
return $this->error('请选择组织');
}
$seller = Seller::find($seller_id);
if ($seller) {
$uids = UserRelation::where('bloodline', 'like', "%," . $user->id . ",%")
->orWhere('user_id', $user->id)
->pluck('user_id')
->toArray();
User::whereIn('id', $uids)->update(['seller_id' => $seller->id]);
} else {
return $this->error('组织不存在');
}
return $this->success('变更成功', 'close');
}
//设置取消业务员
public function salesman(Request $request, User $user)
{
$value = $request->value;
if ($user->update(['is_salesman' => $value])) {
return $this->success('设置成功');
} else {
return $this->error('设置失败');
}
}
}