table_admingroup.class.php 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. <?php
  2. /**
  3. * 数据库表:管理员组
  4. *
  5. * @createtime 2018/03/01
  6. * @author 空竹
  7. * @copyright 芝麻开发(http://www.zhimawork.com)
  8. */
  9. class Table_admingroup extends Table {
  10. protected $table_name = 'admingroup';//表名,不带前缀,前缀在config中定义
  11. protected $table_id = 'admingroup_id';//指定ID字段名称,必须
  12. protected $table_status = '';//指定状态字段名称,如果有
  13. protected $table_order = 'admingroup_order';//指定排序字段名称,如果有
  14. //数据库结构
  15. protected function struct(){
  16. $attr = array();
  17. $attr['id'] = 'admingroup_id';
  18. $attr['name'] = 'admingroup_name';//名称
  19. $attr['auth'] = 'admingroup_auth';//管理权限,示例值:7001|7002|7003。超级权限值为SUPER。
  20. $attr['order'] = 'admingroup_order';//排序,默认值99
  21. return $attr;
  22. }
  23. //增
  24. //@param $attr array -- 键值同struct()返回的数组
  25. public function add($attr){
  26. $param = array (
  27. 'admingroup_name' => array('string', $attr['name'])
  28. );
  29. return $this->pdo->sqlinsert($this->table_fullname, $param);
  30. }
  31. //获取列表(分页)
  32. //$count、$page和$pagesize都为0时,返回全部结果(适用于无需分页的情况)
  33. //
  34. //@param $filter array -- 过滤条件,格式见Table::filterToWhere
  35. //@param $count -- 0:返回列表 1:返回结果数量
  36. //@param $page -- 当前第几页
  37. //@param $pagesize -- 每页数量
  38. public function getList($filter = array(), $count = 0, $page = 0, $pagesize = 0){
  39. $where = $this->filterToWhere($filter);
  40. if($count == 0){//列表
  41. $sql = "select * from ". $this->table_fullname ." $where order by admingroup_order asc, admingroup_id desc";
  42. if($page > 0){//分页
  43. $startrow = ($page - 1) * $pagesize;
  44. $sql_limit = " limit $startrow, $pagesize";
  45. $sql .= $sql_limit;
  46. }
  47. $rs = $this->pdo->sqlQuery($sql);
  48. $r = array();
  49. if($rs){
  50. foreach($rs as $key => $val){
  51. $r[$key] = $this->dataToAttr($val);
  52. }
  53. return $r;
  54. }else{
  55. return $r;
  56. }
  57. }else{//统计
  58. $sql = "select count(*) as c from ". $this->table_fullname . " $where ";
  59. $rs = $this->pdo->sqlQuery($sql);
  60. if($rs){
  61. return $rs[0]['c'];
  62. }else{
  63. return 0;
  64. }
  65. }
  66. }
  67. /**
  68. * getInfoByName() 根据名称获取管理员组详情
  69. *
  70. * @param $name 管理员组名
  71. *
  72. * @return
  73. */
  74. public function getInfoByName($name){
  75. $name = $this->pdo->sql_check_input(array('string', $name));
  76. $sql = "select * from ". $this->table_fullname ." where admingroup_name = $name limit 1";
  77. $rs = $this->pdo->sqlQuery($sql);
  78. $r = array();
  79. if($rs){
  80. foreach($rs as $key => $val){
  81. $r[$key] = $this->dataToAttr($val);
  82. }
  83. return $r[0];
  84. }else{
  85. return $r;
  86. }
  87. }
  88. /**
  89. * 修改管理员组信息
  90. *
  91. * @param $attr 组属性数组
  92. * @param $id 组ID
  93. */
  94. public function edit($id, $attr){
  95. $param = array (
  96. 'admingroup_name' => array('string', $attr['name'])
  97. );
  98. $where = array(
  99. "admingroup_id" => array('number', $id)
  100. );
  101. return $this->pdo->sqlupdate($this->table_fullname, $param, $where);
  102. }
  103. /**
  104. * 修改管理员组权限
  105. *
  106. * @param $id 管理组ID
  107. * @param $auth 权限字符串
  108. * @return
  109. */
  110. public function updateAuth($id, $auth){
  111. $param = array (
  112. 'admingroup_auth' => array('string', $auth)
  113. );
  114. $where = array(
  115. "admingroup_id" => array('number', $id)
  116. );
  117. return $this->pdo->sqlupdate($this->table_fullname, $param, $where);
  118. }
  119. }
  120. ?>