心理咨询网
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

UserModel.php 4.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. <?php
  2. /**
  3. * @copyright (C)2016-2099 Hnaoyun Inc.
  4. * @author XingMeng
  5. * @email hnxsh@foxmail.com
  6. * @date 2017年04月07日
  7. * 用户模型类
  8. */
  9. namespace app\admin\model\system;
  10. use core\basic\Model;
  11. class UserModel extends Model
  12. {
  13. // 获取用户列表
  14. public function getList()
  15. {
  16. $result = parent::table('ay_user')->page()
  17. ->order('id DESC')
  18. ->select();
  19. // 获取每用户的第一角色
  20. foreach ($result as $key => $value) {
  21. if ($value->ucode == '10001') {
  22. $value->rolename = '创始人';
  23. continue;
  24. }
  25. $roles = $this->getUserRole($value->ucode);
  26. if ($roles) {
  27. $value->rolename = $roles[0]->name;
  28. } else {
  29. $value->rolename = '';
  30. }
  31. }
  32. return $result;
  33. }
  34. // 查找用户资料
  35. public function findUser($field, $keyword)
  36. {
  37. $result = parent::table('ay_user')->like($field, $keyword)
  38. ->order('id DESC')
  39. ->page()
  40. ->select();
  41. // 获取每用户的第一角色
  42. foreach ($result as $key => $value) {
  43. if ($value->ucode == '10001') {
  44. $value->rolename = '创始人';
  45. continue;
  46. }
  47. $roles = $this->getUserRole($value->ucode);
  48. if ($roles) {
  49. $value->rolename = $roles[0]->name;
  50. } else {
  51. $value->rolename = '';
  52. }
  53. }
  54. return $result;
  55. }
  56. // 获取用户列表
  57. public function getSelect()
  58. {
  59. return parent::table('ay_user')->field('ucode,username,realname')
  60. ->order('id DESC')
  61. ->select();
  62. }
  63. // 检查用户
  64. public function checkUser($where)
  65. {
  66. return parent::table('ay_user')->field('id')
  67. ->where($where)
  68. ->find();
  69. }
  70. // 获取用户详情
  71. public function getUser($ucode)
  72. {
  73. $result = parent::table('ay_user')->where("ucode='$ucode'")->find();
  74. // 用户角色信息
  75. if ($result) {
  76. $roles = $this->getUserRole($ucode);
  77. $result->roles = $roles;
  78. $result->rcodes = get_mapping($roles, 'rcode');
  79. }
  80. return $result;
  81. }
  82. // 获取最后一个code
  83. public function getLastCode()
  84. {
  85. return parent::table('ay_user')->order('id DESC')->value('ucode');
  86. }
  87. // 添加用户
  88. public function addUser(array $data, array $roles)
  89. {
  90. $result = parent::table('ay_user')->insert($data);
  91. if ($result && $roles) {
  92. $this->addUserRole($data['ucode'], $roles);
  93. }
  94. return $result;
  95. }
  96. // 删除用户
  97. public function delUser($ucode)
  98. {
  99. $result = parent::table('ay_user')->where("ucode='$ucode' AND ucode<>10001")->delete();
  100. if ($result) {
  101. $this->delUserRole($ucode);
  102. }
  103. return $result;
  104. }
  105. // 修改用户资料
  106. public function modUser($ucode, $data, array $roles = null)
  107. {
  108. $result = parent::table('ay_user')->where("ucode='$ucode'")->update($data);
  109. if (is_array($roles)) {
  110. $result = $this->delUserRole($ucode);
  111. if ($roles) {
  112. if (array_key_exists('ucode', $data)) {
  113. $ucode = $data['ucode'];
  114. }
  115. if ($ucode != '10001')
  116. $result = $this->addUserRole($ucode, $roles);
  117. }
  118. }
  119. return $result;
  120. }
  121. // 获取指定用户角色表
  122. private function getUserRole($ucode)
  123. {
  124. $table = array(
  125. 'ay_role',
  126. 'ay_user_role'
  127. );
  128. $field = array(
  129. 'ay_role.rcode',
  130. 'ay_role.name'
  131. );
  132. $where = array(
  133. "ay_user_role.ucode='$ucode'",
  134. "ay_role.rcode=ay_user_role.rcode"
  135. );
  136. return parent::table($table)->field($field)
  137. ->where($where)
  138. ->select();
  139. }
  140. // 插入用户角色关联数据
  141. private function addUserRole($ucode, array $roles)
  142. {
  143. return parent::table('ay_user_role')->field('ucode,rcode')
  144. ->relation($ucode, $roles)
  145. ->insert();
  146. }
  147. // 删除用户角色关联数据
  148. private function delUserRole($ucode)
  149. {
  150. return parent::table('ay_user_role')->where("ucode='$ucode' AND ucode<>10001")->delete();
  151. }
  152. }