PageRenderTime 46ms CodeModel.GetById 19ms RepoModel.GetById 0ms app.codeStats 0ms

/backend/protected/models/MUser.php

https://bitbucket.org/yishenggudou/101xd
PHP | 383 lines | 276 code | 65 blank | 42 comment | 20 complexity | 66cfff5a2762ecdde19c6152c1e2f2f6 MD5 | raw file
  1. <?php
  2. class MUser extends CModel
  3. {
  4. // 根据id 和用户名名验证 用户
  5. public function checkUserByIdAndName($id, $name) {
  6. $tmp = $this->db->table('`user`')
  7. ->where("UserID='{$id}'")
  8. ->where("Name = '{$name}'")
  9. ->getFirst();
  10. if(empty($tmp)) { return false; }
  11. return $tmp['UserID'];
  12. }
  13. public function CheckUserByName($name){
  14. $tmp = $this->db->table('`user`')
  15. ->where("Name = '{$name}'")
  16. ->getFirst();
  17. if(empty($tmp)) { return false; }
  18. return $tmp['UserID'];
  19. }
  20. public function CheckQuDaoUserByName($name){
  21. $tmp = $this->db->table('`user`')
  22. ->where("Name = '{$name}'")
  23. ->where("UserType=1")
  24. ->getFirst();
  25. if(empty($tmp)) { return false; }
  26. return $tmp['UserID'];
  27. }
  28. // 根据id 获取用户资料
  29. public function getUserData($user_id) {
  30. $data = $this->db->table('`user`')
  31. ->select('*')
  32. ->where("UserID={$user_id}")
  33. ->getFirst();
  34. return $data;
  35. }
  36. //保存修改会员用户的信息/user/editmember
  37. public function SaveEditUserInfo($data) {
  38. if ($data['user_id']){
  39. $user = $this->getUserRelateData($data['user_id']);
  40. //检查关联的company表是否存在
  41. if ($user['CompanyID']){
  42. $this->db->exec("UPDATE company SET `category_id`='{$data['category_id']}', `ip`='{$data['ip']}', `contact_name`='{$data['company_contact_name']}', `postcode`='{$data['company_postcode']}', `contact_tel`={$data['company_contact_tel']}, `url`='{$data['company_url']}', `key`='{$data['company_key']}', `desc`='{$data['company_desc']}', `position`='{$data['company_position']}' WHERE id={$user['CompanyID']}");
  43. //company村在的话却存在address关联
  44. if ($user['company']['address_id'])
  45. {
  46. $this->db->exec("UPDATE address SET `desc`='{$data['address_desc']}' WHERE id={$user['company']['address_id']}");
  47. };
  48. };
  49. $this->db->exec("UPDATE user SET UserTel='{$data['usertel']}', UserType='{$data['usertype']}', Note='{$data['note']}', Cooperation='{$data['cooperation']}', ContactName='{$data['contactname']}',`QQ`='{$data['qq']}',`Email`='{$data['email']}' WHERE UserID={$data['user_id']}");}
  50. else{
  51. }
  52. }
  53. // 根据id 获取用户资料并获取关联的ip值
  54. public function getUserRelateData($user_id) {
  55. $data = $this->db->table('`user`')
  56. ->select('*')
  57. ->where("UserID={$user_id}")
  58. ->getFirst();
  59. //检查关联的company表是否存在
  60. if($data['CompanyID']) {
  61. $company = $this->db->table('`company`')->select('*')->where("id={$data['CompanyID']}")->getFirst();
  62. $data['company'] = $company;
  63. $data['ip']=$company['ip'];
  64. //检查类别category关联表是否存在
  65. if($company['category_id']) {
  66. $category = $this->db->table('`category`')->select('*')->where("id={$company['category_id']}")->getFirst();
  67. $data['category'] = $category;
  68. }
  69. if ($company['address_id']) {
  70. $address = $this->db->table('`address`')->select('*')->where("id={$company['address_id']}")->getFirst();
  71. $province = $this->db->table('`province`')->select('*')->where("id={$address['province_id']}")->getFirst();
  72. $province = $province['name'];
  73. $city = $this->db->table('`city`')->select('*')->where("id={$address['area_id']}")->getFirst();
  74. $city = $city['name'];
  75. $address['province'] = $province;
  76. $address['city'] = $city;
  77. $data['address'] = $address;
  78. }
  79. }
  80. return $data;
  81. }
  82. //获取建议用户名
  83. public function GetSuggestUsername($q){
  84. $data = $this->db->table('`user`')
  85. ->select('Name')
  86. ->where("Name like '%{$q}%'")
  87. ->getNum(10);
  88. $res = array();
  89. foreach($data as $key=>$value){
  90. array_push($res,$value['Name']);
  91. }
  92. return $res;
  93. }
  94. public function getUserDataList($page=1,$num=10, $user_type=null) {
  95. $type_cond = FALSE;
  96. if(!is_null($user_type)) {
  97. $type_cond = "gu.UserType={$user_type}";
  98. }
  99. $data = $this->db->table('`user` gu')
  100. ->select('*')
  101. ->where("Deleted!=1")
  102. ->where($type_cond)
  103. ->order('UserID','desc')
  104. ->getNum($num, ($page-1)*$num);
  105. $relate_data = array();
  106. foreach($data as $item){
  107. if($item['CompanyID']) {
  108. $ip= $this->db ->table('`company`')
  109. ->select('ip,url')
  110. ->where("id={$item['CompanyID']}")
  111. ->getFirst();
  112. $item['url'] = $ip['url'];
  113. $item['IP'] = $ip['ip'];
  114. }
  115. $relate_data[]=$item;
  116. }
  117. $count = $this->getUserCount($user_type);
  118. return array('list'=>$relate_data, 'count'=>$count);
  119. }
  120. public function getUserCount($user_type=null) {
  121. $type_cond = FALSE;
  122. if(!is_null($user_type)) {
  123. $type_cond = "UserType={$user_type}";
  124. }
  125. return $this->db->table('`user`')
  126. ->where("Deleted!=1")
  127. ->where($type_cond)
  128. ->getCount();
  129. }
  130. public function getGroupByUserId($user_id) {
  131. $data = $this->db->table('`company` c,`user` u')
  132. ->select('c.id,c.name,c.url')
  133. ->where('c.id=u.CompanyID')
  134. ->where("u.UserID={$user_id}")
  135. ->getFirst();
  136. return $data;
  137. }
  138. // 删除用户 会员管理
  139. public function delUser($user_id) {
  140. $result = $this->db->exec("update `user` set Deleted=1 where UserID in ({$user_id})");
  141. return $result;
  142. }
  143. // 更新用户信息 查看资料
  144. public function updateUserInfo($user, $id) {
  145. $result = $this->db->exec("update `user` set ContactName='{$user['ContactName']}', UserTel='{$user['UserTel']}', QQ='{$user['QQ']}', Email='{$user['Email']}', CompanyID='{$user['CompanyID']}' where UserID='{$id}'");
  146. return $result;
  147. }
  148. // 修改个人头像 修改头像
  149. public function updatePhoto($image, $user_id) {
  150. $data = $this->db->exec("update user set Photo='{$image}' where UserID='{$user_id}'");
  151. return $data;
  152. }
  153. // 修改个人密码 查看资料 修改密码
  154. public function updateUserPass($pass, $id){
  155. $data = $this->db->exec("update user set Password='{$pass}' where UserID='{$id}'");
  156. return $data;
  157. }
  158. public function getUserList($page=1, $num=15) {
  159. $data = $this->db->table('`user`')
  160. ->select('UserID,Name')
  161. ->where('Deleted!=1')
  162. ->where('Admin!=1')
  163. ->getNum($num,($page-1)*$num);
  164. $count = $this->db->table('`user`')
  165. ->select('UserID,Name')
  166. ->where('Deleted!=1')
  167. ->where('Admin!=1')
  168. ->getCount();
  169. $arr = array('data'=>$data, 'count'=>$count);
  170. return $arr;
  171. }
  172. // 根据用户ID 和模块ID获取权限
  173. public function userRolePermssion($user_id, $module_id) {
  174. $tmp = $this->db->table('`user` u, `admin_user_role` ur, `admin_module_role` mr')
  175. ->select('u.UserID, mr.permission')
  176. ->where('u.UserID = ur.user_id')
  177. ->where('ur.role_id = mr.role_id')
  178. ->where("mr.module_id = '{$module_id}'")
  179. ->where("u.UserID = '{$user_id}'")
  180. ->getFirst();
  181. return $tmp;
  182. }
  183. /**
  184. * news
  185. * 修改user资料
  186. */
  187. function updateUserData($user){
  188. if($user['set_cod']=='1'){
  189. $data = $this->db->exec("update `user` set CompanyName='{$user['CompanyName']}', UserTel='{$user['UserTel']}', Email='{$user['Email']}', CompanyID='{$user['CompanyID']}' where UserID='{$user['UserID']}'");
  190. } else {
  191. $data = $this->db->exec("update `user` set CompanyName='{$user['CompanyName']}', Email='{$user['Email']}', CompanyID='{$user['CompanyID']}' where UserID='{$user['UserID']}'");
  192. }
  193. return $data;
  194. }
  195. /**
  196. * news
  197. * 查找vip user list
  198. */
  199. function vipUserList(){
  200. $data = $this->db->table('`user`')
  201. ->select('UserID, Name')
  202. ->where("UserType='0'")
  203. ->getList();
  204. return $data;
  205. }
  206. /**
  207. * news
  208. * 查找渠道商列表
  209. */
  210. function getChanneUserlDataList($page, $num){
  211. $data = $this->db->table('`user` u')
  212. ->select('distinct u.UserID, u.Name, u.UserTel, u.CompanyName')
  213. //->where('u.CompanyID=com.id')
  214. ->where("u.vip!='0'")
  215. ->where("u.UserType='1'")
  216. //->debug()
  217. ->getNum($num,($page-1)*$num);
  218. if(!empty($data)){
  219. foreach($data as $k=>$v){
  220. $data["{$k}"]['contact_name'] = "";
  221. $data["{$k}"]['key'] = "";
  222. $data["{$k}"]['address_id'] = "";
  223. $data["{$k}"]['category_id'] = "";
  224. $data["{$k}"]['cname'] = "";
  225. if($v['CompanyID']){
  226. $company = $this->db->table('`vipcategory` com')
  227. ->select('com.user_id, com.contact_name, com.key ,com.category_id, com.address_id')
  228. ->where("id='{$v['CompanyID']}'")
  229. ->getFirst();
  230. $data["{$k}"]['contact_name'] = $company['contact_name'];
  231. $data["{$k}"]['key'] = $company['key'];
  232. $data["{$k}"]['address_id'] = $company['address_id'];
  233. $data["{$k}"]['category_id'] = $company['category_id'];
  234. }
  235. if($company['category_id']){
  236. $category = $this->db->table('`vipcategory`')
  237. ->select('name')
  238. ->where("id='{$company['category_id']}'")
  239. ->getFirst();
  240. $data["{$k}"]['cname'] = $category['name'];
  241. }
  242. }
  243. }
  244. $count = $this->db->table('`user`')
  245. ->where("vip!='0'")
  246. ->where("UserType='1'")
  247. ->getCount();
  248. $arr = array('list'=>$data, 'count'=>$count);
  249. return $arr;
  250. }
  251. //验证手机发送短信是否超过配额
  252. public function VerifyMobile($mobile){
  253. $code = $this->db->table('`auth_code`')
  254. ->select('*')
  255. ->where("tel_ip = {$mobile}")
  256. ->order('insert_date', 'desc')
  257. ->getFirst();
  258. $codes = $this->db->table('`auth_code`')
  259. ->select('*')
  260. ->where("tel_ip = {$mobile}")
  261. ->order('insert_date', 'desc')
  262. ->getList();
  263. $last = intval($code['insert_date']);
  264. //echo '最后一条的时间';
  265. //echo $last;
  266. $now = time();
  267. //echo '当前时间';
  268. //echo $now;
  269. $interval = intval((intval($now)-$last));
  270. //echo $interval;
  271. //$res = new array();
  272. //验证是否在发送时间是否超过一分钟
  273. if ($interval>60){
  274. $res['result_minute'] = 1;
  275. $res['msg_minute'] = '离上一条短息发送时间超过60秒';
  276. }
  277. else{
  278. $res['result_minute'] = 0;
  279. $res['msg_minute'] = '离上次发送时间不超过一分钟';
  280. };
  281. //验证是否在小时内超过发送的配额
  282. $item = $codes[5];
  283. if (intval(intval($now)-3600) > intval($item['insert_date'])){
  284. $res['result_hour'] = 1;
  285. $res['msg_hour'] = '上一个小时内的发送数量小于限制数量';
  286. }
  287. else{
  288. $res['result_hour'] = 0;
  289. $res['msg_hour'] = '上一个小时的发送数量超过限制数量';
  290. }
  291. return $res;
  292. }
  293. //存储验证码
  294. public function SaveCode($mobile, $code){
  295. $now = time();
  296. $now = intval($now);
  297. $this->db->exec("INSERT INTO `auth_code` (ctype, tel_ip, code, insert_date) VALUES ('3', '{$mobile}', '{$code}', '{$now}')");
  298. }
  299. /*为该用户添加专页
  300. *0为普通用户1为vip用户
  301. */
  302. public function AddVipPage($user){
  303. $res=$this->db->exec("UPDATE `user` set vip='2' where Name='{$user}'");
  304. return $res;
  305. }
  306. //验证验证码是否正确
  307. public function VerifyCode($mobile,$code){
  308. $r_ = $this->db->table('`auth_code`')
  309. ->select('*')
  310. ->where("code = '{$code}'")
  311. ->where("tel_ip = '{$mobile}'")
  312. ->order('insert_date','desc')
  313. ->getFirst();
  314. if (!empty($r_['code'])){return true;}
  315. return false;
  316. }
  317. }
  318. ?>