Admin.php 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209
  1. <?php
  2. namespace app\admin\controller;
  3. use app\admin\BaseController;
  4. use app\common\model\Admin as AdminModel;
  5. use app\common\model\Menu as MenuModel;
  6. use app\common\validate\Admin as AdminValidate;
  7. use think\exception\ValidateException;
  8. class Admin extends BaseController
  9. {
  10. public function adminList()
  11. {
  12. return view('admin/adminlist');
  13. }
  14. public function adminForm()
  15. {
  16. $id = input('id/d, 0');
  17. $admin = AdminModel::findOrEmpty($id);
  18. $menulist = MenuModel::where(['mtype'=>'admin','status'=>1])->order(['pid'=>'asc','priority'=>'asc','id'=>'asc'])->select()->toArray();
  19. $powerarr = array();
  20. $poweridsarr = ($admin->powerids==null||empty($admin->powerids)) ? [] : explode(",", $admin->powerids);
  21. if (!empty($menulist)){
  22. foreach ($menulist as $k=>$v){
  23. if ($v['pid']==0){
  24. $v['checked'] = false;
  25. $v['children'] = array();
  26. $v['spread'] = true;
  27. $powerarr[$v['id']] = $v;
  28. }else {
  29. $v['checked'] = in_array($v['id'], $poweridsarr);
  30. $powerarr[$v['pid']]['children'][] = $v;
  31. }
  32. }
  33. }
  34. return view('admin/adminform',[
  35. 'admin' => $admin,
  36. 'powerarr' => json_encode( array_values($powerarr) )
  37. ]);
  38. }
  39. public function editAdmin()
  40. {
  41. $id = input('id/d');
  42. $vdata = array(
  43. 'id' => $id,
  44. 'adminname' => input('adminname/s'),
  45. 'realname' => input('realname/s'),
  46. 'mobile' => input('mobile/s')
  47. );
  48. try {
  49. validate(AdminValidate::class)->check($vdata);
  50. } catch (ValidateException $e) {
  51. exit(json_encode(array(
  52. 'code' => 1,
  53. 'msg' => $e->getError()
  54. )));
  55. }
  56. $password = input('password/s');
  57. $role = input('role/d', 2);
  58. $powerids = input('powerids/s', "");
  59. if($role==1){
  60. $idsarr = MenuModel::where(['mtype'=>'admin','status'=>1])->order(['pid'=>'asc','priority'=>'asc','id'=>'asc'])->column('id');
  61. $powerids = implode(",", $idsarr);
  62. }
  63. $data = [
  64. 'role' => $role,
  65. 'adminname' => input('adminname/s', ""),
  66. 'realname' => input('realname/s', ""),
  67. 'mobile' => input('mobile/s', ""),
  68. 'status' => input('status/d')==1 ? 1 : 2,
  69. 'powerids' => $powerids,
  70. 'remark' => input('remark', "")
  71. ];
  72. if (empty($id)){
  73. $data['password'] = empty($password) ? md5("123456789") : md5($password);
  74. $data['joindate'] = time();
  75. $data['joinip'] = $_SERVER['SERVER_ADDR'];
  76. $data['lastdate'] = time();
  77. $data['lastip'] = $_SERVER['SERVER_ADDR'];
  78. $admin = AdminModel::create($data);
  79. }else{
  80. if (!empty($password)){
  81. $data['password'] = md5($password);
  82. }
  83. $admin = AdminModel::find($id);
  84. $admin->save($data);
  85. }
  86. exit(json_encode(array(
  87. 'code' => 0
  88. )));
  89. }
  90. // 删除管理员
  91. public function delAdmin()
  92. {
  93. $access_admin = session('access_admin');
  94. $password = input('password');
  95. if ( $access_admin['password'] !== md5($password) ){
  96. exit(json_encode(array(
  97. 'code' => 1,
  98. 'msg' => "操作密码验证失败"
  99. )));
  100. }
  101. $idarr = input('idarr/a');
  102. $admin = AdminModel::where('role',2)->whereIn('id',$idarr)->select();
  103. $result = $admin->delete();
  104. if ($result){
  105. exit(json_encode(array(
  106. 'code' => 0,
  107. 'msg' => ""
  108. )));
  109. }
  110. exit(json_encode(array(
  111. 'code' => 1,
  112. 'msg' => "删除失败,请稍后重试"
  113. )));
  114. }
  115. public function listAdmin()
  116. {
  117. $limit = input('limit');
  118. $page = input('page');
  119. $map = array();
  120. $adminname = input('adminname');
  121. if (!empty($adminname)){
  122. $map['adminname'] = $adminname;
  123. }
  124. $realname = input('realname');
  125. if (!empty($realname)){
  126. $map['realname'] = $realname;
  127. }
  128. $mobile = input('mobile');
  129. if (!empty($mobile)){
  130. $map['mobile'] = $mobile;
  131. }
  132. $role = input('role');
  133. if (!empty($role)){
  134. $map['role'] = $role;
  135. }
  136. $list = AdminModel::where($map)->order('id','asc')->limit($limit)->page($page)->append(['status_text','role_text'])->select();
  137. $count = AdminModel::where($map)->count();
  138. if ($count==0){
  139. exit(json_encode(array(
  140. 'code' => 1,
  141. 'msg' => "未查询到数据"
  142. )));
  143. }
  144. exit(json_encode(array(
  145. 'code' => 0,
  146. 'msg' => "",
  147. 'count' => $count,
  148. 'data' => $list
  149. )));
  150. }
  151. // 个人信息
  152. public function myInfo()
  153. {
  154. $access_admin = session('access_admin');
  155. $admin = AdminModel::find($access_admin['id']);
  156. return view('admin/myinfo',[
  157. 'admin' => $admin
  158. ]);
  159. }
  160. public function editMyInfo()
  161. {
  162. $access_admin = session('access_admin');
  163. AdminModel::update(['realname'=>input('realname'),'mobile'=>input('mobile'),'remark'=>input('remark')], ['id'=>$access_admin['id']]);
  164. exit(json_encode(array(
  165. 'code' => 0
  166. )));
  167. }
  168. public function myPassword()
  169. {
  170. return view('admin/mypassword');
  171. }
  172. public function editMyPassword()
  173. {
  174. $access_admin = session('access_admin');
  175. $oldpassword = input('oldpassword');
  176. if ( $access_admin['password']!==md5($oldpassword) ){
  177. exit(json_encode(array(
  178. 'code' => 1,
  179. 'msg' => "当前密码不正确。"
  180. )));
  181. }
  182. $password = input('password');
  183. $repassword = input('repassword');
  184. if ( $password!==$repassword ){
  185. exit(json_encode(array(
  186. 'code' => 1,
  187. 'msg' => "两次输入的新密码不一致。"
  188. )));
  189. }
  190. AdminModel::update(['password'=>md5($password)], ['id'=>$access_admin['id']]);
  191. session('access_admin', null);
  192. echo json_encode(array(
  193. 'code' => 0
  194. ));
  195. }
  196. }