family_user.action.php 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | Fanwe 方维p2p借贷系统
  4. // +----------------------------------------------------------------------
  5. // | Copyright (c) 2011 http://www.fanwe.com All rights reserved.
  6. // +----------------------------------------------------------------------
  7. // | Author: 云淡风轻(1956838968@qq.com)
  8. // +----------------------------------------------------------------------
  9. class family_userModule extends baseModule
  10. {
  11. //家族成员列表
  12. public function user_list()
  13. {
  14. $root = array();
  15. if (!$GLOBALS['user_info']) {
  16. $root['error'] = "用户未登陆,请先登陆.";// es_session::id();
  17. $root['status'] = 0;
  18. $root['user_login_status'] = 0;//有这个参数: user_login_status = 0 时,表示服务端未登陆、要求登陆,操作
  19. } else {
  20. $family_id = intval($_REQUEST['family_id']);//家族ID
  21. $family = $GLOBALS['db']->getRow("SELECT * FROM " . DB_PREFIX . "family WHERE id=" . $family_id, true, true);//查找是否有此家族
  22. if ($family_id > 0 && $family) {
  23. $root['status'] = 1;
  24. $count = $GLOBALS['db']->getOne("SELECT COUNT(id) as rs_count FROM " . DB_PREFIX . "user WHERE family_id=" . $family_id, true, true);
  25. $root['rs_count'] = $count;//家族成员总数
  26. //申请人数
  27. $apply_count = $GLOBALS['db']->getOne("SELECT COUNT(id) as apply_count FROM " . DB_PREFIX . "family_join WHERE family_id=" . $family_id . " and status=0", true, true);
  28. $root['apply_count'] = $apply_count;
  29. //分页
  30. $page = intval($_REQUEST['page']);//当前页
  31. $page_size = 20;//分页数量
  32. if ($page == 0) {
  33. $page = 1;
  34. }
  35. $limit = (($page - 1) * $page_size) . "," . $page_size;
  36. $user = $GLOBALS['db']->getAll("SELECT id as user_id,nick_name,sex,v_type,v_icon,head_image,signature,user_level,family_chieftain FROM " . DB_PREFIX . "user WHERE family_id=" . $family_id . " ORDER BY family_chieftain desc limit " . $limit, true, true);
  37. foreach ($user as $k => $v) {
  38. $user[$k]['head_image'] = get_spec_image($v['head_image']);
  39. }
  40. $root['list'] = $user;//家族成员信息
  41. $has_next = ($count > $page * $page_size) ? '1' : '0';
  42. // if ($count > $page*$page_size){
  43. // $has_next = 1;
  44. // }else{
  45. // $has_next = 0;
  46. // }
  47. $root['page'] = array('page' => $page, 'has_next' => $has_next);
  48. }
  49. }
  50. api_ajax_return($root);
  51. }
  52. //家族成员申请列表
  53. public function r_user_list()
  54. {
  55. $root = array();
  56. if (!$GLOBALS['user_info']) {
  57. $root['error'] = "用户未登陆,请先登陆.";// es_session::id();
  58. $root['status'] = 0;
  59. $root['user_login_status'] = 0;//有这个参数: user_login_status = 0 时,表示服务端未登陆、要求登陆,操作
  60. } else {
  61. $family_id = intval($_REQUEST['family_id']);//家族ID
  62. $family = $GLOBALS['db']->getRow("SELECT * FROM " . DB_PREFIX . "family WHERE id=" . $family_id, true, true);//查找是否有此家族
  63. $user = $GLOBALS['db']->getRow("SELECT family_chieftain FROM " . DB_PREFIX . "user WHERE id=" . intval($GLOBALS['user_info']['id']));
  64. $family_chieftain = intval($user['family_chieftain']);//jai_chieftain 为1时候,身份家族长
  65. if ($family_id > 0 && $family_chieftain == 1 && $family) {
  66. $root['status'] = 1;
  67. $count = $GLOBALS['db']->getOne("SELECT COUNT(id) as rs_count FROM " . DB_PREFIX . "user WHERE family_id=" . $family_id, true, true);
  68. $root['rs_count'] = $count;//家族成员总数
  69. //申请人数
  70. $apply_count = $GLOBALS['db']->getOne("SELECT COUNT(id) as apply_count FROM " . DB_PREFIX . "family_join WHERE family_id=" . $family_id . " and status=0", true, true);
  71. $root['apply_count'] = $apply_count;
  72. //分页
  73. $page = intval($_REQUEST['page']);//当前页
  74. $page_size = 20;//分页数量
  75. if ($page == 0) {
  76. $page = 1;
  77. }
  78. $limit = (($page - 1) * $page_size) . "," . $page_size;
  79. $user = $GLOBALS['db']->getAll("SELECT a.id as user_id,a.nick_name,a.sex,a.v_type,a.v_icon,a.head_image,a.signature,user_level FROM " . DB_PREFIX . "user as a," . DB_PREFIX . "family_join as b WHERE a.id=b.user_id and b.status=0 and b.family_id=" . $family_id . " limit " . $limit, true, true);
  80. foreach ($user as $k => $v) {
  81. $user[$k]['head_image'] = get_spec_image($v['head_image']);
  82. }
  83. $root['list'] = $user;//家族成员信息
  84. $has_next = ($count > $page * $page_size) ? '1' : '0';
  85. $root['page'] = array('page' => $page, 'has_next' => $has_next);
  86. }
  87. }
  88. api_ajax_return($root);
  89. }
  90. //家族成员删除
  91. public function user_del()
  92. {
  93. $root = array();
  94. if (!$GLOBALS['user_info']) {
  95. $root['error'] = "用户未登陆,请先登陆.";// es_session::id();
  96. $root['status'] = 0;
  97. $root['user_login_status'] = 0;//有这个参数: user_login_status = 0 时,表示服务端未登陆、要求登陆,操作
  98. } else {
  99. $r_user_id = intval($_REQUEST['r_user_id']);//删除成员ID
  100. $info = $GLOBALS['db']->getRow("SELECT * FROM " . DB_PREFIX . "user WHERE id=" . $r_user_id, true, true);//查找是否有此ID
  101. $user_family = intval($info['family_id']);//用户家族ID
  102. $user = $GLOBALS['db']->getRow("SELECT family_chieftain FROM " . DB_PREFIX . "user WHERE id=" . intval($GLOBALS['user_info']['id']));
  103. $family_chieftain = intval($user['family_chieftain']);//jai_chieftain 为1时候,身份家族长
  104. if ($info && $family_chieftain == 1) {
  105. $user['family_id'] = 0;
  106. $delet = $GLOBALS['db']->autoExecute(DB_PREFIX . "user", $user, $mode = 'UPDATE', "id=" . $r_user_id);
  107. $family['status'] = 3;
  108. $info = $GLOBALS['db']->autoExecute(DB_PREFIX . "family_join", $family, $mode = 'UPDATE', "user_id=" . $r_user_id . " and family_id=" . $user_family);
  109. if ($delet && $info) {
  110. $root['status'] = 1;
  111. $root['error'] = "家族成员已移除";
  112. fanwe_require(APP_ROOT_PATH . 'mapi/lib/redis/UserRedisService.php');
  113. $user_redis = new UserRedisService();
  114. $user_redis->update_db($r_user_id, array('family_id' => 0));
  115. }
  116. }
  117. }
  118. api_ajax_return($root);
  119. }
  120. //申请加入家族
  121. public function user_join()
  122. {
  123. $root = array();
  124. if (!$GLOBALS['user_info']) {
  125. $root['error'] = "用户未登陆,请先登陆.";// es_session::id();
  126. $root['status'] = 0;
  127. $root['user_login_status'] = 0;//有这个参数: user_login_status = 0 时,表示服务端未登陆、要求登陆,操作
  128. } else {
  129. $family_id = intval($_REQUEST['family_id']);//家族ID
  130. $user_id = intval($GLOBALS['user_info']['id']);//申请加入ID
  131. $user = $GLOBALS['db']->getRow("SELECT family_id FROM " . DB_PREFIX . "user WHERE id=" . $user_id, true, true);//查找ID是否有加入家族
  132. if ($user['family_id'] > 0) {
  133. $root['status'] = 0;
  134. $root['error'] = "您已经加入家族";
  135. api_ajax_return($root);
  136. }
  137. $user_family = $GLOBALS['db']->getRow("SELECT * FROM " . DB_PREFIX . "family_join WHERE family_id=" . $family_id . " and user_id=" . $user_id . " and status<2", true, true);//查找是否申请过此家族
  138. if ($user_family) {
  139. $root['status'] = 0;
  140. $root['error'] = "已经申请过此家族";
  141. api_ajax_return($root);
  142. }
  143. $family_info = $GLOBALS['db']->getRow("SELECT * FROM " . DB_PREFIX . "family_join WHERE family_id=" . $family_id . " and user_id=" . $user_id . " and status>1", true, true);//查找是否有申请家族记录
  144. $family = $GLOBALS['db']->getRow("SELECT * FROM " . DB_PREFIX . "family WHERE id=" . $family_id, true, true);//查找是否有此家族
  145. if ($family_info) {
  146. $data['status'] = 0;
  147. $info = $GLOBALS['db']->autoExecute(DB_PREFIX . "family_join", $data, $mode = 'UPDATE', "user_id=" . $user_id . " and family_id=" . $family_id);
  148. if ($info) {
  149. $root['status'] = 1;
  150. $root['error'] = "申请已提交";
  151. $root['family_id'] = $family_id;
  152. }
  153. } elseif ($family && $user) {
  154. $data['family_id'] = $family_id;
  155. $data['user_id'] = $user_id;
  156. $data['create_time'] = NOW_TIME;//获取当前时间
  157. $data['status'] = 0;
  158. $data['memo'] = $user_id . "申请加入";
  159. $info = $GLOBALS['db']->autoExecute(DB_PREFIX . "family_join", $data, "INSERT");
  160. if ($info) {
  161. $root['status'] = 1;
  162. $root['error'] = "申请已提交";
  163. $root['family_id'] = $family_id;
  164. }
  165. } else {
  166. $root['status'] = 0;
  167. $root['error'] = "家族不存在";
  168. }
  169. }
  170. api_ajax_return($root);
  171. }
  172. //成员申请审核
  173. public function confirm()
  174. {
  175. $root = array();
  176. if (!$GLOBALS['user_info']) {
  177. $root['error'] = "用户未登陆,请先登陆.";// es_session::id();
  178. $root['status'] = 0;
  179. $root['user_login_status'] = 0;//有这个参数: user_login_status = 0 时,表示服务端未登陆、要求登陆,操作
  180. } else {
  181. fanwe_require(APP_ROOT_PATH . 'mapi/lib/redis/UserRedisService.php');
  182. $user_redis = new UserRedisService();
  183. $r_user_id = intval($_REQUEST['r_user_id']);//审核成员ID
  184. $is_agree = intval($_REQUEST['is_agree']);//审核标志,1通过,2拒绝
  185. $user_id = intval($GLOBALS['user_info']['id']);//用户ID
  186. $user = $GLOBALS['db']->getRow("SELECT family_id,family_chieftain FROM " . DB_PREFIX . "user WHERE id=" . $user_id);
  187. $family_id = $user['family_id'];//家族编号
  188. // $jia_status=$user['jia_status'];//家族状态
  189. $family_chieftain = $user['family_chieftain'];//族长标志:0不是族长。1是组长
  190. $has_family = $GLOBALS['db']->getRow("SELECT family_id,family_chieftain FROM " . DB_PREFIX . "user WHERE id=" . $r_user_id);
  191. $family = $GLOBALS['db']->getRow("SELECT COUNT(id) AS is_success FROM " . DB_PREFIX . "family WHERE user_id=" . $r_user_id . " and status != 2");
  192. if ($family_chieftain != 1) {//判断是否为族长
  193. $root['error'] = '没有权限';
  194. $root['status'] = 0;
  195. $root['r_user_id'] = $r_user_id;
  196. api_ajax_return($root);
  197. } else {
  198. $data['family_chieftain'] = 0;
  199. //更新用户信息
  200. if ($is_agree == 1) {
  201. if ($has_family['family_id'] != 0 || $family['is_success'] > 0) {
  202. $root['error'] = '该成员已有家族';
  203. $root['status'] = 0;
  204. $root['r_user_id'] = $r_user_id;
  205. api_ajax_return($root);
  206. } else {
  207. $r_family_id=$family_id;
  208. $GLOBALS['db']->query("UPDATE " . DB_PREFIX . "family_join SET status=2 WHERE family_id != " . $family_id . " and user_id=" . $r_user_id . " and status=0");
  209. $GLOBALS['db']->query("UPDATE " . DB_PREFIX . "family SET status=2 WHERE user_id=" . $r_user_id . " and status=0");
  210. $sql = "update " . DB_PREFIX . "user set family_id = " . $family_id . ",family_chieftain = 0 where id=" . $r_user_id;
  211. }
  212. } elseif ($is_agree == 2) {
  213. $sql = "update " . DB_PREFIX . "user set family_id = 0,family_chieftain = 0 where id = " . $r_user_id;
  214. $r_family_id = 0;
  215. }
  216. $re = $GLOBALS['db']->query($sql);
  217. if ($re) {
  218. //redis更新
  219. $user_redis->update_db($r_user_id, array('family_id' => $r_family_id, 'family_chieftain' => 0));
  220. $jsql = "update " . DB_PREFIX . "family_join set status = " . $is_agree . " where user_id = " . $r_user_id . " and family_id = " . $family_id . " and status=0";
  221. $GLOBALS['db']->query($jsql);
  222. if (empty($root)) {
  223. $root['error'] = '申请已审核';
  224. $root['status'] = 1;
  225. $root['r_user_id'] = $r_user_id;
  226. api_ajax_return($root);
  227. }
  228. } else {
  229. $root['error'] = '';
  230. $root['status'] = 0;
  231. $root['r_user_id'] = $r_user_id;
  232. api_ajax_return($root);
  233. }
  234. }
  235. }
  236. }
  237. //退出家族
  238. public function logout()
  239. {
  240. if (!$GLOBALS['user_info']['id']) {
  241. //有这个参数: user_login_status = 0 时,表示服务端未登陆、要求登陆,操作
  242. ajax_return(array('error' => '用户未登陆,请先登陆.', 'status' => 0, 'user_login_status' => 0));
  243. }
  244. $user_id = intval($GLOBALS['user_info']['id']);//登陆用户ID
  245. $user_info = $GLOBALS['db']->getRow("SELECT * FROM " . DB_PREFIX . "user WHERE id=" . $user_id . " and family_chieftain=0", true, true);//查询是否是家族成员
  246. $user_family = intval($user_info['family_id']);//用户家族ID
  247. if ($user_info) {
  248. $user['family_id'] = 0;
  249. $delet = $GLOBALS['db']->autoExecute(DB_PREFIX . "user", $user, $mode = 'UPDATE', "id=" . $user_id);
  250. $family['status'] = 3;
  251. $info = $GLOBALS['db']->autoExecute(DB_PREFIX . "family_join", $family, $mode = 'UPDATE', "user_id=" . $user_id . " and family_id=" . $user_family);
  252. if ($delet && $info) {
  253. fanwe_require(APP_ROOT_PATH . 'mapi/lib/redis/UserRedisService.php');
  254. $user_redis = new UserRedisService();
  255. $user_redis->update_db($user_id, array('family_id' => 0));
  256. es_session::set("user_info", $user_info);
  257. }
  258. ajax_return(array('error' => '已退出家族', 'status' => 1));
  259. } else {
  260. ajax_return(array('error' => '操作的业务动作失败', 'status' => 10002));
  261. }
  262. }
  263. }
  264. ?>