123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288 |
- <?php
- /**
- * 用户操作
- * @author Mike <m@9026.com>
- * @version 1.0
- * @date 2015年11月13日
- *
- */
- namespace App\Services\Admin;
- use App\Models\AdminUserModel;
- use Hash;
- use App\Services\Base\BaseProcess;
- class AdminUser extends BaseProcess
- {
- /**
- * 模型
- *
- * @var object
- *
- */
- private $objModel;
- /**
- * 初始化
- */
- public function __construct()
- {
- if( !$this->objModel) $this->objModel = new AdminUserModel();
- }
- public function model()
- {
- $this->setSucessCode();
- return $this->objModel;
- }
- /**
- * 搜索
- * @param $search
- * @param $pagesize
- */
- public function search($search, $orderby = array(), $pagesize = PAGE_NUMS)
- {
- $currentQuery = $this->objModel;
- if(isset($search['keyword']) && !empty($search['keyword'])) {
- $keywords = '%' . $search['keyword'] . '%';
- $currentQuery = $currentQuery->where(function ($query) use ($keywords) {
- $query->where('name' , 'like', $keywords)
- ->orwhere('email', 'like', $keywords)
- ->orwhere('mobile', 'like', $keywords);
- });
- }
- if(isset($search['resetPwd']) && $search['resetPwd']) {
- $currentQuery = $currentQuery->where('reset_password', '<>', '');
- }
- if($orderby && is_array($orderby)){
- foreach ($orderby AS $field => $value){
- $currentQuery = $currentQuery -> orderBy($field, $value);
- }
- }else{
- $currentQuery = $currentQuery->orderBy('id', 'DESC');
- }
- $currentQuery = $currentQuery->paginate($pagesize);
- return $currentQuery;
- }
- /**
- * 添加
- * @param $data
- */
- public function create($data)
- {
- // 判断是否唯一
- if($this->objModel->where('name', '=', $data['name'])->count()){
- $this->setMsg("已经存在【{$data['name']}】用户!");
- return false;
- }
- $data['name'] = isset($data['name']) ? $data['name'] : "";
- $data['email'] = isset($data['email']) ? $data['email'] : "";
- $data['mobile'] = isset($data['mobile']) ? $data['mobile'] : "";
- $data['real_name'] = isset($data['real_name']) ? $data['real_name'] : "";
- if($data['name']== "" && $data['email']=="" && $data['mobile']=="") {
- $this->setMsg("至少有一个登陆凭证");
- return false;
- }
- if(isset($data['name']) && $data['name']) {
- if(is_numeric($data['name'])) {
- $this->setMsg("用户名不能是全数字!");
- return false;
- }
- if(strpos($data['name'],"@")) {
- $this->setMsg("用户名不能有@符号!");
- return false;
- }
- if($this->objModel->where('name', '=', $data['name'])->count()){
- $this->setMsg("已经存在的用户名!");
- return false;
- }
- }
- if(isset($data['email']) && $data['email']) {
- if($this->objModel->where('email', '=', $data['email'])->count()){
- $this->setMsg("已经存在的邮箱!");
- return false;
- }
- }
- if(isset($data['mobile']) && $data['mobile']) {
- if($this->objModel->where('mobile', '=', $data['mobile'])->count()){
- $this->setMsg("已经存在的手机号!");
- return false;
- }
- }
- if(isset($data['password']) && $data['password']){
- $data['password'] = bcrypt($data['password']);
- }
- return $this->objModel->create($data);
- }
- /**
- * 更新
- * @param $id
- * @param $data
- */
- public function update($id, $data)
- {
- $obj = $this->objModel->find($id);
- if(!$obj) {
- return false;
- }
- if(isset($data['real_name']) && $data['real_name']){
- $data['real_name'] = $data['real_name'];
- }
- if(isset($data['password']) && $data['password']){
- $data['password'] = bcrypt($data['password']);
- }
- if(isset($data['name']) && $data['name']) {
- if(is_numeric($data['name'])) {
- $this->setMsg("用户名不能是全数字!");
- return false;
- }
- if(strpos($data['name'],"@")) {
- $this->setMsg("用户名不能有@符号!");
- return false;
- }
- if($this->objModel->where('name', '=', $data['name'])->where('id',"<>",$id)->count()){
- $this->setMsg("已经存在的用户名!");
- return false;
- }
- }
- if(isset($data['email']) && $data['email']) {
- if($this->objModel->where('email', '=', $data['email'])->where('id',"<>",$id)->count()){
- $this->setMsg("已经存在的邮箱!");
- return false;
- }
- }
- if(isset($data['mobile']) && $data['mobile']) {
- if($this->objModel->where('mobile', '=', $data['mobile'])->where('id',"<>",$id)->count()){
- $this->setMsg("已经存在的手机号!");
- return false;
- }
- }
- $ok = $obj->update($data);
- return $ok;
- }
- /**
- * 更新状态
- * @param $id
- * @param $status
- */
- public function updateStatus($id, $status)
- {
- $data = $this->objModel->find($id);
- //禁用
- $mobile = $data->mobile;
- $data->status = $status;
- return $data->save();
- }
- /**
- * 删除
- * @param $id
- */
- public function destroy($id)
- {
- return $this->objModel->destroy($id);
- }
- /**
- * 获取一行数据
- * @param $where
- * @return
- */
- public function find($id)
- {
- return $this->objModel->find($id);
- }
- public function login($login,$password) {
- if(is_numeric($login)) {
- $loginField = "mobile";
- }elseif(strpos($login,"@")) {
- $loginField = "email";
- }else{
- $loginField = "name";
- }
- if (\Auth::guard('admin')->attempt(array($loginField => $login, 'password' =>$password)))
- {
- $data = \Auth::guard('admin')->user();
- if($data->status==0) {
- $this->setMsg('账号正在努力审核中...');
- return false;
- }
- if(!$data->status) {
- $this->setMsg('账号被禁用');
- return false;
- }
- $role = [];
- if($data->is_root) {
- $aclObj = new Acl();
- $data = $aclObj->getRootFunc();
- $role['role'] =$data['func'];
- $role['menus'] =$data['menus'];
- }elseif($data->admin_role_id) {
- $aclObj = new Acl();
- $data = $aclObj->getRoleFunc($data->admin_role_id);
- $role['role'] =$data['func'];
- $role['menus'] =$data['menus'];
- }
- session()->put(LOGIN_MARK_SESSION_KEY, $role);
- session()->save();
- return true;
- }else{
- $this->setMsg('用户密码错误');
- return false;
- }
- }
- /**
- * 重设密码
- * @param $loginName
- * @param $data
- */
- public function resetPwd($loginName,$data) {
- if(is_numeric($loginName)) {
- $loginField = "mobile";
- }elseif(strpos($loginName,"@")) {
- $loginField = "email";
- }else{
- $loginField = "username";
- }
- $user = $this->objModel->where($loginField,$loginName)->first();
- if(!$user) {
- $this->setMsg('没有找到用户');
- return false;
- }
- $user->reset_password = bcrypt($data['reset_password']);
- $user->reset_password_img = $data['reset_password_img'];
- $ok = $user->save();
- if(!$ok) {
- $this->setMsg('操作失败');
- return false;
- }
- return true;
- }
- /**
- * 查询多条数据
- */
- public function get($pagesize = PAGE_NUMS) {
- return $this->objModel->take($pagesize)->orderBy('id', 'DESC')->get();
- }
- /**
- * 查询多条数据并分页
- */
- public function getPage($pagesize = PAGE_NUMS) {
- return $this->objModel->orderBy('id', 'DESC')->paginate($pagesize);
- }
- }
|