| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255 |
- <?php
- namespace App\Http\Controllers\Admins;
- use App\Modes\AdminArea;
- use App\Modes\MsgTemplate;
- use App\Modes\SystemUser;
- use App\Modes\User;
- use Illuminate\Http\Request;
- use App\Http\Controllers\Controller;
- use Illuminate\Support\Facades\Auth;
- use Illuminate\Support\Facades\DB;
- use Illuminate\Support\Facades\Validator;
- use Spatie\Permission\Models\Role;
- class SystemUserController extends Controller
- {
- /*
- * 消息模板列表
- * wsl 20190812
- * */
- public function msgTemplateList(Request $request){
- $list=MsgTemplate::get();
- return showJsonSucc('数据获取成功',$list);
- }
- /*
- * 编辑消息模板
- * wsl20190812
- * */
- public function editMsgTemplate(Request $request){
- $params=$request->all();
- if(empty($params['id']))return showJsonErr('模板id不能为空');
- if(empty($params['content']))return showJsonErr('模板内容不能为空');
- if(empty($params['title']))return showJsonErr('模板标题不能为空');
- $r=MsgTemplate::editById($params['id'],$params['content'],$params['title']);
- if($r['code']==false) return showJsonErr($r['message']);
- return showJsonSucc($r['message']);
- }
- /**
- * 管理员列表
- * @author fatty
- * @date 2019/1/8
- * @description
- */
- public function index(Request $request)
- {
- $param = $request->all();
- $res = User::whereIsFrontend(0);
- if (Auth::user()->is_super == 3) {
- $res = $res->whereIn('id', getIds());
- }
- if (!empty($param['mobile'])) {
- $res->where('mobile', 'like', "%{$param['mobile']}%");
- }
- if (!empty($param['real_name'])) {
- $res->where('real_name', 'like', "%{$param['real_name']}%");
- }
- $res->with(['roles' => function () {
- }]);
- $res = $res->paginate(perPage());
- if ($res->isNotEmpty()) {
- collect($res->items())->each(function ($item, $key) {
- $adminarea=AdminArea::where('admin_id','=',$item->id)->first();
- // $adminarea=DB::table('admin_area')->where('admin_id', $item->id)->first();
- if(!empty($adminarea)){
- $item->manageProvince=$adminarea->province;
- $item->manageCity=$adminarea->city;
- $item->manageDistrict=$adminarea->district;
- }
- });
- }
- return showJson(101, 1001, $res);
- }
- /**
- *系统日志 wsl 20190806
- *
- */
- public function operationLogs(Request $request){
- $logs=DB::table('system_operation_log as s')->join('user as u','s.operator','=','u.id')
- ->select('s.*','u.mobile','u.nick_name')
- ->orderBy('s.id','desc')
- ->groupBy('s.id')
- ->paginate(perPage());
- return showJsonSucc('数据读取成功',$logs);
- }
- /**
- * 用户拥有的权限
- * @author fatty
- * @date 2019/1/8
- * @return \Illuminate\Contracts\Routing\ResponseFactory|\Symfony\Component\HttpFoundation\Response
- * @description
- */
- public function userPermission()
- {
- return showJson(101, 1001, \Auth::user()->permissions);
- }
- /**
- * 添加管理员
- * @author fatty
- * @date 2019/1/8
- * @param Request $request
- * @description
- */
- public function create(Request $request)
- {
- $validator = Validator::make($param = $request->all(), [
- 'mobile' => [
- 'required',
- 'string',
- ],
- 'password' => 'required|min:6',
- 'real_name' => 'required',
- ]);
- if ($validator->fails()) {
- return showJson(102, $validator->errors()->first());
- }
- // 判断是否存在账号
- if (User::whereMobile($param['mobile'])->whereIsFrontend(0)->exists() !== false) {
- return showJsonErr('当前账号已存在');
- }
- // 如果当前用户是代理管理员,则创建的用户是影子用户
- if (Auth::user()->is_super == 3) {
- $shadow = 1;
- $is_super = 3;
- }
- $users = User::create([
- 'mobile' => $param['mobile'],
- 'real_name' => $param['real_name'],
- 'password' => bcrypt($param['password']),
- 'is_super' => isset($is_super) ? $is_super : 2,
- 'invitor' => Auth::id(),
- 'shadow' => isset($shadow) ? $shadow : 0
- ]);
- if (is_int($users)) {
- return showJson(102, $users);
- }
- return showJson(101, '添加成功', $users);
- }
- /**
- * 当前用户的权限
- * @author fatty
- * @date 2019/1/8
- * @description
- */
- public function permission()
- {
- return showJson(101, 1001, Auth::user()->getAllPermissions());
- }
- /**
- * 编辑管理员信息
- * @author fatty
- * @date 2019/1/8
- * @description
- */
- public function edit(Request $request)
- {
- $validator = Validator::make($param = $request->all(), [
- 'mobile' => [
- 'string',
- function ($attribute, $value, $fail) { // 判断是否存在账号
- if (SystemUser::where('mobile', $value)->exists() !== false) {
- return $fail(lang(10001));
- }
- },
- ],
- 'password' => 'min:6',
- 'id' => 'required|exists:user,id',
- 'role' => 'string',
- 'status' => 'integer|between:1,2'
- ]);
- if ($validator->fails()) {
- return showJson(102, $validator->errors()->first());
- }
- if (isset($param['password'])) {
- $param['password'] = bcrypt($param['password']);
- }
- // if (isset($param['role'])) {
- // SystemUser::givePermissionTo('edit articles');
- // }
- $users = User::whereId($param['id'])->update($param);
- if (empty($users)) {
- return showJson(102, '编辑失败');
- }
- return showJson(101, '编辑成功');
- }
- /**
- * 删除管理员
- * @author fatty
- * @date 2019/1/8
- * @param $id
- * @description
- */
- public function del($id)
- {
- $user = User::find($id);
- if (empty($user)) {
- return showJsonErr('管理员记录不存在');
- }
- // 如果待删除的管理员是超管则不可删除
- if ($user->is_super == 1) {
- return showJson(101, '抱歉您没有权限删除该管理员');
- }
- // 如果待删除的用户是影子代理商可删除
- if ($user->is_super == 3 && $user->shadow == 0) {
- return showJson(101, '抱歉,该用户是地区代理,不能删除');
- }
- $role = $user->getRoleNames();
- foreach ($role as $item) {
- $user->removeRole($item);
- }
- if (!$user->delete()) {
- return showJson(102, '删除管理员失败');
- }
- return showJson(101, '删除管理员成功');
- }
- /**
- * 更新密码
- * @author fatty
- * @date 2019/3/11
- * @param Request $request
- * @return \Illuminate\Contracts\Routing\ResponseFactory|\Symfony\Component\HttpFoundation\Response
- * @description
- */
- public function update(Request $request)
- {
- $password = $request->post('password', null);
- if (empty($password)) {
- return showJson(102, '修改密码失败');
- }
- if (!SystemUser::whereId(Auth::id())->update(['password' => User::encodePassword($password)])) {
- return showJson(102, '修改密码失败');
- }
- return showJson(101, '修改密码成功');
- }
- }
|