family.action.php 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332
  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 familyModule extends baseModule
  10. {
  11. //家族首页1
  12. function index()
  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. $user_id = intval($GLOBALS['user_info']['id']);//创建人id
  22. if ($family_id != '') {
  23. $sql = "SELECT f.id as family_id,f.logo as family_logo,f.name as family_name,f.create_time,f.memo,f.status,f.manifesto as family_manifesto,b.user_count,f.user_id,(select nick_name from " . DB_PREFIX . "user where id=f.user_id) as nick_name from (select family_id, count(*) as user_count from " . DB_PREFIX . "user where family_id = ".$family_id." group by family_id) b LEFT JOIN " . DB_PREFIX . "family AS f on f.id=b.family_id WHERE f.id =".$family_id;
  24. }else{
  25. $root['error'] = "家族ID错误";
  26. $root['status'] = 0;
  27. api_ajax_return($root);
  28. }
  29. $jiainfo =$GLOBALS['db']->getRow($sql);
  30. foreach($jiainfo as $k=>$v){
  31. if($k=='family_manifesto'||$k=='family_name'){
  32. $jiainfo[$k]=htmlspecialchars_decode($v);
  33. }
  34. }
  35. if ($jiainfo) {
  36. if ($jiainfo['status'] == 0) {
  37. $root['error'] = '您的家族正在审核';
  38. $root['status'] = 0;
  39. } elseif ($jiainfo['status'] == 2) {
  40. $root['error'] = '您的家族审核未通过审核';
  41. $root['status'] = 2;
  42. } elseif ($jiainfo['status'] == 1) {
  43. $root['status'] = 1;
  44. $root['error'] = "";
  45. }
  46. $jiainfo['family_logo'] = get_spec_image($jiainfo['family_logo']);
  47. $root['family_info'] = $jiainfo;
  48. } else {
  49. $root['status'] = 3;
  50. $root['error'] = "你的家族不存在或者已被解散";
  51. }
  52. }
  53. api_ajax_return($root);
  54. }
  55. //家族列表
  56. function family_list()
  57. {
  58. $root = array();
  59. if (!$GLOBALS['user_info']) {
  60. $root['error'] = "用户未登陆,请先登陆.";// es_session::id();
  61. $root['status'] = 0;
  62. $root['user_login_status'] = 0;//有这个参数: user_login_status = 0 时,表示服务端未登陆、要求登陆,操作
  63. } else {
  64. //分页
  65. $user_id = intval($GLOBALS['user_info']['id']);
  66. $page = intval($_REQUEST['page']);//取第几页数据
  67. if ($page == 0 || $page == '') {
  68. $page = 1;
  69. }
  70. //每次20条
  71. $page_size = intval($_REQUEST['page_size']);//分页数量;
  72. if ($page_size == '') {
  73. $page_size = 20;
  74. }
  75. $limit = (($page - 1) * $page_size) . "," . $page_size;
  76. //搜索
  77. $jid = intval($_REQUEST['family_name']);
  78. $jia_name = strim($_REQUEST['family_name']);
  79. if (($jid != '' && $jid != 0) || $jia_name != '') {
  80. if ($jia_name == '') {
  81. $jia_name = 'null';
  82. }
  83. //搜索列表
  84. $sql = "SELECT j.id as family_id,j.logo as family_logo,j.name as family_name,j.user_id,u.nick_name,j.create_time,(SELECT COUNT(id) FROM " . DB_PREFIX . "user c WHERE c.family_id=j.id) as user_count,IF ((select count(id) as is_apply from " . DB_PREFIX . "family_join as jo where jo.user_id=" . $user_id . " and jo.family_id=j.id and jo.status=0 )>0,1,IF ((select count(id) as is_apply from " . DB_PREFIX . "family_join as jo where jo.user_id=" . $user_id . " and jo.family_id=j.id and jo.status=1 )>0,2,0)) as is_apply FROM " . DB_PREFIX . "family as j left join " . DB_PREFIX . "user as u on j.user_id=u.id where j.status=1 and ( j.id = '" . $jid . "' or j.name like '%" . $jia_name . "%') limit " . $limit;
  85. } else {
  86. //默认列表
  87. $sql = "SELECT j.id as family_id,j.logo as family_logo,j.name as family_name,j.user_id,u.nick_name,j.create_time,(SELECT COUNT(id) FROM " . DB_PREFIX . "user c WHERE c.family_id=j.id) as user_count,IF ((select count(id) as is_apply from " . DB_PREFIX . "family_join as jo where jo.user_id=" . $user_id . " and jo.family_id=j.id and jo.status=0 )>0,1,IF ((select count(id) as is_apply from " . DB_PREFIX . "family_join as jo where jo.user_id=" . $user_id . " and jo.family_id=j.id and jo.status=1 )>0,2,0)) as is_apply FROM " . DB_PREFIX . "family as j left join " . DB_PREFIX . "user as u on j.user_id=u.id where j.status=1 limit " . $limit;
  88. }
  89. $jia_list = $GLOBALS['db']->getAll($sql, true, true);
  90. foreach ($jia_list as $k => $v) {
  91. $jia_list[$k]['family_logo'] = get_spec_image($v['family_logo']);
  92. $jia_list[$k]['name'] = htmlspecialchars_decode($jia_list[$k]['name']);
  93. $jia_list[$k]['nick_name'] = htmlspecialchars_decode($jia_list[$k]['nick_name']);
  94. $jia_list[$k]['create_time'] = htmlspecialchars_decode($jia_list[$k]['create_time']);
  95. }
  96. if ($jia_list) {
  97. $root['list'] = $jia_list;
  98. $rs_count = $GLOBALS['db']->getOne("SELECT count(*) FROM " . DB_PREFIX . "family where status=1", true, true);//家族数量
  99. if ($page == 0) {
  100. $root['page'] = array('page' => $page, 'has_next' => 0);
  101. } else {
  102. $has_next = ($rs_count > $page * $page_size) ? '1' : '0';
  103. $root['page'] = array('page' => $page, 'has_next' => $has_next);
  104. }
  105. // $root['page'] = $page;
  106. $root['rs_count'] = $rs_count;
  107. $root['status'] = 1;
  108. $root['error'] = '';
  109. } else {
  110. $root['list'] = $jia_list;
  111. $root['page'] = array('page' => $page, 'has_next' => 0);
  112. $root['status'] = 1;
  113. $root['error'] = '';
  114. }
  115. }
  116. api_ajax_return($root);
  117. }
  118. //创建家族
  119. function create()
  120. {
  121. $root = array();
  122. if (!$GLOBALS['user_info']) {
  123. $root['error'] = "用户未登陆,请先登陆.";// es_session::id();
  124. $root['status'] = 0;
  125. $root['user_login_status'] = 0;//有这个参数: user_login_status = 0 时,表示服务端未登陆、要求登陆,操作
  126. } else {
  127. $data['user_id'] = intval($GLOBALS['user_info']['id']);//创建人id
  128. $data['logo'] = strim($_REQUEST['family_logo']);//家族logo
  129. $data['name'] = strim($_REQUEST['family_name']);//家族名称
  130. $data['name']=preg_replace_callback('/[\xf0-\xf7].{3}/', function($r) { return '';}, $data['name']);//过滤表情
  131. $data['manifesto'] = strim($_REQUEST['family_manifesto']);//家族宣言
  132. $data['manifesto']=preg_replace_callback('/[\xf0-\xf7].{3}/', function($r) { return '';}, $data['manifesto']);//过滤表情
  133. $data['notice'] = strim($_REQUEST['family_notice']);//家族公告
  134. $data['notice']=preg_replace_callback('/[\xf0-\xf7].{3}/', function($r) { return '';}, $data['notice']);//过滤表情
  135. $data['status'] = 0;//状态 0:未审核,1:审核通过,2:拒绝通过
  136. $data['create_time'] = NOW_TIME;//创建时间
  137. $data['memo'] = "无";//备注
  138. //
  139. $data['create_date'] =to_date(NOW_TIME,'Y-m-d ');
  140. $data['create_y'] = to_date(NOW_TIME,'Y');
  141. $data['create_m'] = to_date(NOW_TIME,'m');
  142. $data['create_d'] = to_date(NOW_TIME,'d');
  143. $data['create_w'] = to_date(NOW_TIME,'W');
  144. if($data['logo'] == ''){
  145. api_ajax_return(array(
  146. 'status' => '0',
  147. 'error' => '家族LOGO不能为空'
  148. ));
  149. }elseif($data['name'] == ''){
  150. api_ajax_return(array(
  151. 'status' => '0',
  152. 'error' => '家族名称不能为空'
  153. ));
  154. }elseif(strlen($data['name']) > 48){
  155. api_ajax_return(array(
  156. 'status' => '0',
  157. 'error' => '家族名称限制15字以内'
  158. ));
  159. }elseif(strlen($data['manifesto']) > 420){
  160. api_ajax_return(array(
  161. 'status' => '0',
  162. 'error' => '家族宣言限制140字以内'
  163. ));
  164. }
  165. $user = $GLOBALS['db']->getRow("SELECT family_id,family_chieftain FROM " . DB_PREFIX . "user WHERE id =" . $data['user_id']);
  166. $family_status = $GLOBALS['db']->getRow("SELECT status FROM " . DB_PREFIX . "family WHERE id =" . $user['family_id'] . " and user_id=" . $data['user_id']);
  167. if ($user['family_id'] > 0 && $family_status['status'] != 2) {//用户已有家族且家族审核未被拒绝
  168. if ($user['family_chieftain'] == 1){//用户是家族长
  169. if ($family_status['status'] == 1){
  170. $root['error'] = '您已有创建成功的家族';
  171. }
  172. if ($family_status['status'] == 0) {
  173. $root['error'] = '您已创建的家族正在审核';
  174. }
  175. }else{//用户是家族成员
  176. $root['error'] = '您已加入家族,请退出后再创建';
  177. }
  178. $root['status'] = 0;
  179. } else {
  180. // 名称校验
  181. $jia_name = $GLOBALS['db']->getRow("SELECT count(id) as jia_count FROM " . DB_PREFIX . "family WHERE name = '" . $data['name'] . "' and (status=1 or status=0)");
  182. if ($jia_name['jia_count'] > 0) {
  183. $root['error'] = '家族名已存在';
  184. $root['status'] = 0;
  185. } else {
  186. $res = $GLOBALS['db']->autoExecute(DB_PREFIX . "family", $data, "INSERT");//插入数据
  187. if ($res) {
  188. // $jia_info=$GLOBALS['db']->getRow("SELECT id FROM ".DB_PREFIX."family WHERE user_id = ".$data['user_id']." AND name=".$data['name']);//查询创建成功的家族编号
  189. $family_id = $GLOBALS['db']->insert_id();
  190. if ($family_id) {
  191. $userdata['family_id'] = $family_id;
  192. $userdata['family_chieftain'] = 1;
  193. }
  194. $GLOBALS['db']->autoExecute(DB_PREFIX . "user", $userdata, $mode = 'UPDATE', "id=" . $data['user_id']);
  195. // $GLOBALS['db']->query("update ".DB_PREFIX."user set family_id=".$jia_info['id'].",family_chieftain=1 where id=".$data['user_id']);
  196. fanwe_require(APP_ROOT_PATH . 'mapi/lib/redis/UserRedisService.php');
  197. $user_redis = new UserRedisService();
  198. $user_redis->update_db($data['user_id'], array('family_id' => $family_id, 'family_chieftain' => 1));
  199. //更新申请表
  200. $apple_count=$GLOBALS['db']->getOne("SELECT COUNT(id) FROM ".DB_PREFIX ."family_join WHERE user_id = ".$data['user_id']);
  201. if($apple_count>0){
  202. $join['status']=2;
  203. $GLOBALS['db']->autoExecute(DB_PREFIX . "family_join", $join, $mode = 'UPDATE', "user_id=" . $data['user_id']);
  204. }
  205. $root['error'] = '家族创建成功';
  206. $root['status'] = 1;
  207. $root['family_id'] = $family_id;
  208. } else {
  209. $root['error'] = '家族创建失败';
  210. $root['status'] = 0;
  211. }
  212. }
  213. }
  214. }
  215. api_ajax_return($root);
  216. }
  217. //修改家族信息
  218. function save()
  219. {
  220. $root = array();
  221. if (!$GLOBALS['user_info']) {
  222. $root['error'] = "用户未登陆,请先登陆.";// es_session::id();
  223. $root['status'] = 0;
  224. $root['user_login_status'] = 0;//有这个参数: user_login_status = 0 时,表示服务端未登陆、要求登陆,操作
  225. } else {
  226. $jid = intval($_REQUEST['family_id']);
  227. $res = $GLOBALS['db']->getRow("SELECT logo,notice,manifesto FROM " . DB_PREFIX . "family WHERE id = " . $jid);
  228. if (!empty($_REQUEST['family_logo'])) {
  229. $data['logo'] = strim($_REQUEST['family_logo']);
  230. }
  231. if (!empty($_REQUEST['family_notice'])) {
  232. //家族公告
  233. if (strim($_REQUEST['family_notice']) != $res['notice']) {
  234. $data['notice'] = strim($_REQUEST['family_notice']);
  235. $data['notice']=preg_replace_callback('/[\xf0-\xf7].{3}/', function($r) { return '';}, $data['notice']);
  236. } else {
  237. $data['notice'] = $res['notice'];
  238. }
  239. }
  240. if (!empty($_REQUEST['family_manifesto'])) {
  241. if(strlen($_REQUEST['family_manifesto']) > 420){
  242. api_ajax_return(array(
  243. 'status' => '0',
  244. 'error' => '家族宣言限制140字以内'
  245. ));
  246. }
  247. if (strim($_REQUEST['family_manifesto']) != $res['manifesto']) {
  248. $data['manifesto'] = strim($_REQUEST['family_manifesto']);//家族宣言
  249. $data['manifesto']=preg_replace_callback('/[\xf0-\xf7].{3}/', function($r) { return '';}, $data['manifesto']);
  250. } else {
  251. $data['manifesto'] = $res['manifesto'];
  252. }
  253. }
  254. $user_id = intval($GLOBALS['user_info']['id']);//用户ID
  255. $user = $GLOBALS['db']->getRow("SELECT family_id,family_chieftain FROM " . DB_PREFIX . "user WHERE id=" . $user_id);
  256. // $jia_status=$user['jia_status'];//家族状态
  257. $family_chieftain = $user['family_chieftain'];//族长标志:0不是族长。1是组长
  258. if ($family_chieftain != 1) {//判断是否为族长
  259. $root['error'] = '没有权限';
  260. $root['status'] = 0;
  261. $root['family_id'] = $jid;
  262. } else {
  263. $is_refuse = $GLOBALS['db']->getOne("SELECT id FROM " . DB_PREFIX . "family WHERE user_id = " . $user_id . " and status=2 ");
  264. if ($is_refuse > 0) {
  265. $data['name'] = strim($_REQUEST['family_name']);
  266. if(strlen($data['name']) > 48){
  267. api_ajax_return(array(
  268. 'status' => '0',
  269. 'error' => '家族名称限制15字以内'
  270. ));
  271. }
  272. $data['name']=preg_replace_callback('/[\xf0-\xf7].{3}/', function($r) { return '';}, $data['name']);
  273. $jia_name = $GLOBALS['db']->getRow("SELECT count(id) as jia_count FROM " . DB_PREFIX . "family WHERE name = '" . $data['name'] . "' and status=1 ");
  274. if ($jia_name['jia_count'] > 0) {
  275. $root['error'] = '家族名已存在';
  276. $root['status'] = 0;
  277. } else {
  278. $data['status'] = 0;
  279. $update = $GLOBALS['db']->autoExecute(DB_PREFIX . "family", $data, $mode = 'UPDATE', 'id=' . $is_refuse); //如果是被拒绝状态重新编辑更新
  280. if ($update) {
  281. $root['error'] = '家族信息修改成功';
  282. $root['status'] = 1;
  283. $root['family_id'] = $is_refuse;
  284. } else {
  285. $root['error'] = '家族信息修改失败';
  286. $root['status'] = 0;
  287. }
  288. }
  289. } else {
  290. $res = $GLOBALS['db']->autoExecute(DB_PREFIX . "family", $data, "UPDATE", 'id=' . $jid);//更新信息
  291. if ($res) {
  292. $root['error'] = '家族信息修改成功';
  293. $root['status'] = 1;
  294. $root['family_id'] = $jid;
  295. } else {
  296. $root['error'] = '家族信息修改失败';
  297. $root['status'] = 0;
  298. $root['family_id'] = $jid;
  299. }
  300. }
  301. }
  302. api_ajax_return($root);
  303. }
  304. }
  305. // 创建家族(弹窗)
  306. function edit(){
  307. $root = array();
  308. api_ajax_return($root);
  309. }
  310. }
  311. ?>