Member.php 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213
  1. <?php
  2. namespace app\common\model;
  3. use think\Model;
  4. class Member extends Model
  5. {
  6. public $page_info;
  7. /**
  8. * 会员列表
  9. * @access public
  10. * @author csdeshang
  11. * @param array $condition 条件
  12. * @param string $field 字段
  13. * @param number $page 分页
  14. * @param string $order 排序
  15. * @return array
  16. */
  17. public function getMemberList($condition = array(), $field = '*', $page = 0, $order = 'member_id desc')
  18. {
  19. if ($page) {
  20. $member_list = db('member')->where($condition)->order($order)->paginate($page, false, ['query' => request()->param()]);
  21. $this->page_info = $member_list;
  22. return $member_list->items();
  23. } else {
  24. return db('member')->where($condition)->order($order)->select();
  25. }
  26. }
  27. /**
  28. * 新增用户
  29. */
  30. public function addMember($data)
  31. {
  32. return db('member')->insertGetId($data);
  33. }
  34. /**
  35. * 编辑用户
  36. */
  37. public function editMember($condition, $data)
  38. {
  39. return db('member')->where($condition)->update($data);
  40. }
  41. /**
  42. * 删除用户
  43. */
  44. public function delMember($condition)
  45. {
  46. return db('member')->where($condition)->delete();
  47. }
  48. /**
  49. * 取单个用户
  50. */
  51. public function getMemberInfo($condition, $field = '*')
  52. {
  53. return db('member')->field($field)->where($condition)->find();
  54. }
  55. /**
  56. * 取得会员详细信息(优先查询缓存)
  57. * 如果未找到,则缓存所有字段
  58. * @param int $member_id
  59. * @param string $field 需要取得的缓存键值, 例如:'*','member_name,member_sex'
  60. * @return array
  61. */
  62. public function getMemberInfoByID($member_id, $fields = '*')
  63. {
  64. $member_info = rcache($member_id, 'member', $fields);
  65. if (empty($member_info)) {
  66. $member_info = $this->getMemberInfo(array('member_id' => $member_id), '*', true);
  67. wcache($member_id, $member_info, 'member');
  68. }
  69. return $member_info;
  70. }
  71. /**
  72. * 注册
  73. */
  74. public function register($register_info)
  75. {
  76. // 验证用户名是否重复
  77. $check_member_name = $this->getMemberInfo(array('member_name' => $register_info['member_name']));
  78. if (is_array($check_member_name) and count($check_member_name) > 0) {
  79. return array('error' => '用户名已存在');
  80. }
  81. // 会员添加
  82. $member_info = array();
  83. $member_info['member_name'] = $register_info['member_name'];
  84. $member_info['member_password'] = md5($register_info['member_password']);
  85. if (isset($register_info['member_mobilebind'])) {
  86. $member_info['member_mobile_bind'] = $register_info['member_mobilebind'];
  87. $member_info['member_mobile'] = $register_info['member_mobile'];
  88. }
  89. $member_id = $this->addMember($member_info);
  90. $member_res = $this->getMemberInfo(['member_id' => $member_id]);
  91. if ($member_id) {
  92. return $member_res;
  93. } else {
  94. return false;
  95. }
  96. }
  97. /**
  98. * 7天内自动登录 v3-b12
  99. */
  100. public function auto_login()
  101. {
  102. // 自动登录标记 保存7天
  103. cookie('auto_login', encrypt(session('member_id'), MD5_KEY), 7 * 24 * 60 * 60);
  104. }
  105. public function set_avatar_cookie()
  106. {
  107. cookie('member_avatar', session('avatar'), 365 * 24 * 60 * 60);
  108. }
  109. /**
  110. * 登录时创建会话SESSION
  111. *
  112. * @param array $member_info 会员信息
  113. */
  114. public function createSession($member_info = array(), $reg = false)
  115. {
  116. if (empty($member_info) || !is_array($member_info)) {
  117. return;
  118. }
  119. session('is_login', '1');
  120. session('member_id', $member_info['member_id']);
  121. session('member_name', $member_info['member_name']);
  122. session('member_email', $member_info['member_email']);
  123. if (!empty($member_info['member_logintime'])) {
  124. $update_info = array(
  125. 'member_loginnum' => ($member_info['member_loginnum'] + 1),
  126. 'member_logintime' => TIMESTAMP,
  127. 'member_old_logintime' => $member_info['member_logintime'],
  128. 'member_login_ip' => request()->ip(),
  129. 'member_old_login_ip' => $member_info['member_login_ip']
  130. );
  131. $this->editMember(array('member_id' => $member_info['member_id']), $update_info);
  132. }
  133. }
  134. /**
  135. * 会员登录检查
  136. *
  137. */
  138. public function checkloginMember()
  139. {
  140. if (session('is_login') == '1') {
  141. @header("Location: " . url('Home/Member/index'));
  142. exit();
  143. }
  144. }
  145. //有效期选择
  146. public function validity($usetime){
  147. if($usetime == "一个月"){
  148. $validitytime = strtotime('+1 month');
  149. }elseif($usetime == "一季度"){
  150. $validitytime = strtotime('+3 month');
  151. }elseif($usetime == "半年"){
  152. $validitytime = strtotime('+6 month');
  153. }else{
  154. $validitytime = strtotime('+12 month');
  155. }
  156. return $validitytime;
  157. }
  158. //查询所有公司或者未参与的公司
  159. public function allcompany($gsid){
  160. $where['member_status'] = 1;
  161. $where['member_id'] = array('neq',$gsid);
  162. return db('member')->field('member_name,member_id')->where($where)->select();
  163. }
  164. //查询所有客服
  165. public function allservice(){
  166. $where['member_group'] = 2;
  167. $where['member_status'] = 1;
  168. return db('member')->field('member_id,member_name')->where($where)->select();
  169. }
  170. //所属公司 uid--用户id
  171. public function suoscompany($uid){
  172. $where['member_id'] = $uid;
  173. $suosid = db('member')->field('member_id')->where($where)->find();
  174. $suosgsid = $suosid['member_id'];
  175. if($suosid['member_id']){
  176. $he['member_id'] = $suosid['member_id'];
  177. $gssuos = db('member')->field('member_id')->where($he)->find();
  178. $suosgsid = $gssuos['member_id'];
  179. }
  180. return $suosgsid;
  181. }
  182. //所属公司下的所有人员id
  183. public function allsuoscompany($uid){
  184. $companyid = $this->suoscompany($uid);
  185. $where['member_id'] = $uid;
  186. $allglylist = db('member')->where($where)->column("member_id");
  187. $allglyid = implode(",",$allglylist);
  188. return $allglyid.','.$uid;
  189. }
  190. }