UserController.class.php 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215
  1. <?php
  2. namespace Admin\Controller;
  3. use Think\Page;
  4. /**
  5. * 用户控制器
  6. *
  7. */
  8. class UserController extends AdminController
  9. {
  10. /**
  11. * 用户列表
  12. *
  13. */
  14. public function index()
  15. {
  16. // 搜索
  17. $keyword = I('keyword', '', 'string');
  18. $condition = array('like', '%' . $keyword . '%');
  19. $map['id|username|nickname|email|mobile'] = array(
  20. $condition,
  21. $condition,
  22. $condition,
  23. $condition,
  24. $condition,
  25. '_multi' => true,
  26. );
  27. // 获取所有用户
  28. $session_config=$session_config=I('session.ly_admin_');
  29. $addtype=$session_config['user_auth']['addtype'];
  30. if($addtype==1){//为用户登陆,只能查看自己
  31. $id=$session_config['user_auth']['uid'];//自己的id;
  32. $map['id'] = $id;
  33. }
  34. $map['status'] = array('egt', '0'); // 禁用和正常状态
  35. $p = !empty($_GET["p"]) ? $_GET['p'] : 1;
  36. $user_object = D('User');
  37. $data_list = $user_object
  38. ->page($p, C('ADMIN_PAGE_ROWS'))
  39. ->where($map)
  40. ->order('id asc')
  41. ->select();
  42. $page = new Page(
  43. $user_object->where($map)->count(),
  44. C('ADMIN_PAGE_ROWS')
  45. );
  46. // 使用Builder快速建立列表页面。
  47. $builder = new \Common\Builder\ListBuilder();
  48. if($addtype==0){//管理员有所有的权限
  49. $builder->setMetaTitle('用户列表') // 设置页面标题
  50. ->addTopButton('addnew') // 添加新增按钮
  51. ->addTopButton('resume') // 添加启用按钮
  52. ->addTopButton('forbid') // 添加禁用按钮
  53. ->addTopButton('delete') // 添加删除按钮
  54. ->setSearch('请输入ID/用户名/邮箱/手机号', U('index'))
  55. ->addTableColumn('id', 'UID')
  56. ->addTableColumn('avatar', '头像', 'picture')
  57. ->addTableColumn('nickname', '昵称')
  58. ->addTableColumn('username', '用户名')
  59. ->addTableColumn('email', '邮箱')
  60. ->addTableColumn('mobile', '手机号')
  61. ->addTableColumn('create_time', '注册时间', 'time')
  62. ->addTableColumn('status', '状态', 'status')
  63. ->addTableColumn('right_button', '操作', 'btn')
  64. ->setTableDataList($data_list) // 数据列表
  65. ->setTableDataPage($page->show()) // 数据列表分页
  66. ->addRightButton('edit') // 添加编辑按钮
  67. ->addRightButton('forbid') // 添加禁用/启用按钮
  68. ->addRightButton('recycle') // 添加删除按钮
  69. ->display();
  70. }else{
  71. $builder->setMetaTitle('用户列表') // 设置页面标题
  72. ->setSearch('请输入ID/用户名/邮箱/手机号', U('index'))
  73. ->addTableColumn('id', 'UID')
  74. ->addTableColumn('avatar', '头像', 'picture')
  75. ->addTableColumn('nickname', '昵称')
  76. ->addTableColumn('username', '用户名')
  77. ->addTableColumn('email', '邮箱')
  78. ->addTableColumn('mobile', '手机号')
  79. ->addTableColumn('create_time', '注册时间', 'time')
  80. ->addTableColumn('status', '状态', 'status')
  81. ->addTableColumn('right_button', '操作', 'btn')
  82. ->setTableDataList($data_list) // 数据列表
  83. ->setTableDataPage($page->show()) // 数据列表分页
  84. ->addRightButton('edit') // 添加编辑按钮
  85. ->display();
  86. }
  87. }
  88. /**
  89. * 新增用户
  90. *
  91. */
  92. public function add()
  93. {
  94. if (IS_POST) {
  95. $user_object = D('User');
  96. $session_config=I('session.ly_admin_');
  97. $data = $user_object->create();
  98. $data = $_POST;
  99. $data['password'] = user_md5($data['password']);
  100. if($session_config['user_auth']['addtype']==0){//表示当前最高管理员添加用户账号
  101. $data['addtype']=1;
  102. }
  103. if ($data) {
  104. $id = $user_object->add($data);
  105. if ($id) {
  106. $this->success('新增成功', U('index'));
  107. } else {
  108. $this->error('新增失败');
  109. }
  110. } else {
  111. $this->error($user_object->getError());
  112. }
  113. } else {
  114. // 使用FormBuilder快速建立表单页面。
  115. $builder = new \Common\Builder\FormBuilder();
  116. $builder->setMetaTitle('新增用户') //设置页面标题
  117. ->setPostUrl(U('add')) //设置表单提交地址
  118. ->addFormItem('reg_type', 'hidden', '注册方式', '注册方式')
  119. ->addFormItem('nickname', 'text', '供应商昵称', '昵称')
  120. ->addFormItem('printer_code', 'text','供应商编码','供应商编码')
  121. ->addFormItem('postcode', 'num','邮政编码','邮政编码')
  122. ->addFormItem('company_address', 'text','地址','详细地址')
  123. ->addFormItem('username', 'text', '用户名', '用户名')
  124. ->addFormItem('password', 'password', '密码', '密码')
  125. ->addFormItem('email', 'text', '邮箱', '邮箱')
  126. ->addFormItem('email_bind', 'radio', '邮箱绑定', '手机绑定', array('1' => '已绑定', '0' => '未绑定'))
  127. ->addFormItem('mobile', 'text', '手机号', '手机号')
  128. ->addFormItem('mobile_bind', 'radio', '手机绑定', '手机绑定', array('1' => '已绑定', '0' => '未绑定'))
  129. ->addFormItem('avatar', 'picture', '头像', '头像')
  130. ->setFormData(array('reg_type' => 'admin'))
  131. ->display();
  132. }
  133. }
  134. /**
  135. * 编辑用户
  136. *
  137. */
  138. public function edit($id)
  139. {
  140. if (IS_POST) {
  141. // 密码为空表示不修改密码
  142. if ($_POST['password'] === '') {
  143. unset($_POST['password']);
  144. }
  145. // 提交数据
  146. $user_object = D('User');
  147. $data = $user_object->create();
  148. if ($data) {
  149. $result = $user_object
  150. ->field('id,nickname,username,password,email,email_bind,mobile,mobile_bind,gender,avatar,update_time,printer_code,postcode,company_address')
  151. ->save($data);
  152. if ($result) {
  153. $this->success('更新成功', U('index'));
  154. } else {
  155. $this->error('更新失败', $user_object->getError());
  156. }
  157. } else {
  158. $this->error($user_object->getError());
  159. }
  160. } else {
  161. // 获取账号信息
  162. $info = D('User')->find($id);
  163. unset($info['password']);
  164. // 使用FormBuilder快速建立表单页面。
  165. $builder = new \Common\Builder\FormBuilder();
  166. $builder->setMetaTitle('编辑用户') // 设置页面标题
  167. ->setPostUrl(U('edit')) // 设置表单提交地址
  168. ->addFormItem('id', 'hidden', 'ID', 'ID')
  169. ->addFormItem('nickname', 'text', '供应商名称', '供应商名称')
  170. ->addFormItem('printer_code', 'text','供应商编码','供应商编码')
  171. ->addFormItem('postcode', 'num','邮政编码','邮政编码')
  172. ->addFormItem('company_address', 'text','地址','详细地址')
  173. ->addFormItem('username', 'text', '用户名', '用户名')
  174. ->addFormItem('password', 'password', '密码', '密码')
  175. ->addFormItem('email', 'text', '邮箱', '邮箱')
  176. ->addFormItem('email_bind', 'radio', '邮箱绑定', '手机绑定', array('1' => '已绑定', '0' => '未绑定'))
  177. ->addFormItem('mobile', 'text', '手机号', '手机号')
  178. ->addFormItem('mobile_bind', 'radio', '手机绑定', '手机绑定', array('1' => '已绑定', '0' => '未绑定'))
  179. ->addFormItem('avatar', 'picture', '头像', '头像')
  180. ->setFormData($info)
  181. ->display();
  182. }
  183. }
  184. /**
  185. * 设置一条或者多条数据的状态
  186. *
  187. */
  188. public function setStatus($model = CONTROLLER_NAME)
  189. {
  190. $ids = I('request.ids');
  191. if (is_array($ids)) {
  192. if (in_array('1', $ids)) {
  193. $this->error('超级管理员不允许操作');
  194. }
  195. } else {
  196. if ($ids === '1') {
  197. $this->error('超级管理员不允许操作');
  198. }
  199. }
  200. parent::setStatus($model);
  201. }
  202. }