User_model.php 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. <?php
  2. /**
  3. * 用户模型
  4. */
  5. class User_model extends CI_Model {
  6. private $collection_name = 'users';
  7. public function __construct()
  8. {
  9. parent::__construct();
  10. }
  11. public function set_collection_name($collection_name){
  12. $this->collection_name = $collection_name;
  13. return $this;
  14. }
  15. /**
  16. * 用户登录
  17. */
  18. public function get_user_with_username_password($username, $password){
  19. return $this->mongo_db->where_or(array("username"=> $username, "mobile"=> $username , "email"=> $username))->where(array("password"=> $password))->get($this->collection_name);
  20. }
  21. /**
  22. * 判断是否存在
  23. * @param $field
  24. * @param $val
  25. * @return bool
  26. */
  27. public function is_exists($field,$val,$old_val = NULL){
  28. if($old_val){
  29. $users = $this->mongo_db->set_wheres(array('$and'=>array(array($field=>array('$ne'=>$old_val)),array($field=>$val))))->get($this->collection_name);
  30. }else {
  31. $users = $this->mongo_db->where(array($field => $val))->get($this->collection_name);
  32. }
  33. if($users && count($users)>0){
  34. return true;
  35. }else{
  36. return false;
  37. }
  38. }
  39. /**
  40. * 列表用户
  41. */
  42. public function list_user($limit,$offset,$like = NULL,$where = NULL,$order = NULL){
  43. if(!$order){
  44. $order = array("create_time"=>"ASC");
  45. }
  46. if($like && $where){
  47. $where_or = array('username'=>$this->mongo_db->create_like($like),'name'=>$this->mongo_db->create_like($like),'mobile'=>$this->mongo_db->create_like($like),'email'=>$this->mongo_db->create_like($like));
  48. return $this->mongo_db->where_or($where_or)->where($where)->order_by($order)->limit($limit)->offset($offset)->get($this->collection_name);
  49. }else if($like && !$where){
  50. $where_or = array('username'=>$this->mongo_db->create_like($like),'name'=>$this->mongo_db->create_like($like),'mobile'=>$this->mongo_db->create_like($like),'email'=>$this->mongo_db->create_like($like));
  51. return $this->mongo_db->where_or($where_or)->order_by($order)->limit($limit)->offset($offset)->get($this->collection_name);
  52. }else if(!$like && $where){
  53. return $this->mongo_db->where($where)->order_by($order)->limit($limit)->offset($offset)->get($this->collection_name);
  54. }else{
  55. return $this->mongo_db->order_by($order)->limit($limit)->offset($offset)->get($this->collection_name);
  56. }
  57. }
  58. /**
  59. * 批量更新多个字段或者单个字段
  60. * @param $field
  61. * @param $wheres
  62. * @param null $value
  63. * @return mixed
  64. */
  65. public function set_val($field,$wheres,$value = NULL){
  66. if(is_array($field)){
  67. return $this->mongo_db->set_wheres($wheres)->set($field)->update_all($this->collection_name);
  68. }else {
  69. return $this->mongo_db->set_wheres($wheres)->set($field, $value)->update_all($this->collection_name);
  70. }
  71. }
  72. /**
  73. * 用户选择列表
  74. */
  75. public function select_users($user_type,$banch_id=null){
  76. $order = array("create_time"=>"ASC");
  77. if($banch_id != null){
  78. return $this->mongo_db->order_by($order)->where(array("user_type"=>$user_type,"status"=>"10","branch.branch_id"=>$banch_id))->get($this->collection_name);
  79. }else{
  80. return $this->mongo_db->order_by($order)->where(array("user_type"=>$user_type,"status"=>"10"))->get($this->collection_name);
  81. }
  82. }
  83. /**
  84. * 获取用户信息
  85. */
  86. public function get_user_with_user_id($user_id){
  87. return $this->mongo_db->where(array("user_id"=> $user_id))->find_one($this->collection_name);
  88. }
  89. public function get_user_with_code($code){
  90. return $this->mongo_db->where(array("code"=> $code))->find_one($this->collection_name);
  91. }
  92. /**
  93. * 获取数据条数
  94. */
  95. public function count_user($like = NULL,$where = NULL){
  96. if($like && $where){
  97. $where_or = array('username'=>$this->mongo_db->create_like($like),'name'=>$this->mongo_db->create_like($like),'mobile'=>$this->mongo_db->create_like($like),'email'=>$this->mongo_db->create_like($like));
  98. return $this->mongo_db->where_or($where_or)->where($where)->count($this->collection_name);
  99. }else if($like && !$where){
  100. $where_or = array('username'=>$this->mongo_db->create_like($like),'name'=>$this->mongo_db->create_like($like),'mobile'=>$this->mongo_db->create_like($like),'email'=>$this->mongo_db->create_like($like));
  101. return $this->mongo_db->where_or($where_or)->count($this->collection_name);
  102. }else if(!$like && $where){
  103. return $this->mongo_db->where($where)->count($this->collection_name);
  104. }else{
  105. return $this->mongo_db->count($this->collection_name);
  106. }
  107. }
  108. /**
  109. *新增用户
  110. */
  111. public function insert_user($user_data){
  112. return $this->mongo_db->insert($this->collection_name, $user_data);
  113. }
  114. /**
  115. *更新用户
  116. */
  117. public function update_user($user_data){
  118. $data['filter'] = array("user_id"=>$user_data['user_id']);
  119. $data['update'] = $user_data;
  120. return $this->mongo_db->update($this->collection_name,$data);
  121. }
  122. /**
  123. * 删除用户
  124. */
  125. public function delete_user($user_id){
  126. return $this->mongo_db->where(array("user_id"=>$user_id))->delete($this->collection_name);
  127. }
  128. /**
  129. * 删除多个用户
  130. */
  131. public function delete_all_user($user_ids){
  132. return $this->mongo_db->where_in("user_id",$user_ids)->delete($this->collection_name,true);
  133. }
  134. }