table_admin.class.php 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. <?php
  2. /**
  3. * 数据库表:管理员表
  4. *
  5. * @createtime 2018/03/01
  6. * @author 空竹
  7. * @copyright 芝麻开发(http://www.zhimawork.com)
  8. */
  9. class Table_admin extends Table {
  10. protected $table_name = 'admin';//表名
  11. protected $table_id = 'admin_id';//指定ID字段名称,必须
  12. protected $table_status = '';//指定状态字段名称,如果有
  13. protected $table_order = '';//指定排序字段名称,如果有
  14. //数据库结构
  15. protected function struct(){
  16. $attr = array();
  17. $attr['id'] = 'admin_id';
  18. $attr['name'] = 'admin_name';//名称
  19. $attr['account'] = 'admin_account';//账号
  20. $attr['password'] = 'admin_password';//加密后的密码
  21. $attr['salt'] = 'admin_salt';//密码salt
  22. $attr['group'] = 'admin_group';//所属管理员组ID
  23. $attr['loginip'] = 'admin_lastloginip';//最后一次登录IP
  24. $attr['logintime'] = 'admin_lastlogintime';//最后一次登陆时间
  25. $attr['logincount'] = 'admin_logincount';//登录次数,默认值0
  26. $attr['addtime'] = 'admin_addtime';//添加时间
  27. return $attr;
  28. }
  29. //增
  30. //@param $attr array -- 键值同struct()返回的数组
  31. public function add($attr){
  32. $param = array (
  33. 'admin_account' => array('string', $attr['account']),
  34. 'admin_password' => array('string', $attr['password']),
  35. 'admin_salt' => array('string', $attr['salt']),
  36. 'admin_group' => array('number', $attr['group']),
  37. 'admin_addtime' => array('number', time())
  38. );
  39. return $this->pdo->sqlinsert($this->table_fullname, $param);
  40. }
  41. /**
  42. * 根据账号获取详情
  43. *
  44. * @param $acount 管理员账号
  45. *
  46. */
  47. public function getInfoByAccount($account){
  48. $account = $this->pdo->sql_check_input(array('string', $account));
  49. $sql = "select * from ". $this->table_fullname ." where admin_account = $account limit 1";
  50. $rs = $this->pdo->sqlQuery($sql);
  51. $r = array();
  52. if($rs){
  53. foreach($rs as $key => $val){
  54. $r[$key] = $this->dataToAttr($val);
  55. }
  56. return $r[0];
  57. }else{
  58. return $r;
  59. }
  60. }
  61. /**
  62. * 登录时更新管理员信息
  63. *
  64. * @param $id 管理员ID
  65. *
  66. */
  67. public function updateLoginInfo($id){
  68. $ip = Env::getIP();
  69. $param = array(
  70. 'admin_lastloginip' => array('string', $ip),
  71. 'admin_lastlogintime' => array('number', time()),
  72. 'admin_logincount' => array('expression', 'admin_logincount+1'),
  73. );
  74. $where = array(
  75. 'admin_id' =>array('number', $id)
  76. );
  77. return $this->pdo->sqlupdate($this->table_fullname, $param, $where);
  78. }
  79. /**
  80. * 修改管理员账号和组信息
  81. *
  82. * @param $id 管理员ID
  83. * @param $attr 管理员属性数组,数组键值参考add()函数
  84. *
  85. */
  86. public function edit($id, $attr){
  87. $param = array (
  88. 'admin_account' => array('string', $attr['account']),
  89. 'admin_group' => array('number', $attr['group'])
  90. );
  91. $where = array(
  92. 'admin_id' => array('number', $id)
  93. );
  94. return $this->pdo->sqlupdate($this->table_fullname, $param, $where);
  95. }
  96. /**
  97. * 修改密码
  98. *
  99. * @param $id 管理员ID
  100. * @param $newpass 新密码
  101. * @param $salt Salt
  102. *
  103. */
  104. public function updatePwd($id, $newpass, $salt){
  105. $param = array(
  106. "admin_password" => array('string', $newpass),
  107. "admin_salt" => array('string', $salt)
  108. );
  109. $where = array(
  110. "admin_id" => array('number', $id)
  111. );
  112. return $this->pdo->sqlupdate($this->table_fullname, $param, $where);
  113. }
  114. }
  115. ?>