FamilyAction.class.php 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | Fanwe 方维直播系统
  4. // +----------------------------------------------------------------------
  5. // | Copyright (c) 2011 http://www.fanwe.com All rights reserved.
  6. // +----------------------------------------------------------------------
  7. // | Author: 云淡风轻(1956838968@qq.com)
  8. // +----------------------------------------------------------------------
  9. class FamilyAction extends CommonAction
  10. {
  11. protected static function str_trim($str)
  12. {
  13. $str = preg_replace("@<script(.*?)</script>@is", "", $str);
  14. $str = preg_replace("@<iframe(.*?)</iframe>@is", "", $str);
  15. $str = preg_replace("@<style(.*?)</style>@is", "", $str);
  16. return preg_replace("@<(.*?)>@is", "", $str);
  17. }
  18. public function index()
  19. {
  20. $where = 'f.user_id = u.id';
  21. if (isset($_REQUEST['name'])) {
  22. $where .= ' and f.name like \'%' . addslashes($_REQUEST['name']) . '%\'';
  23. }
  24. if (isset($_REQUEST['nick_name'])) {
  25. $where .= ' and u.nick_name like \'%' . addslashes($_REQUEST['nick_name']) . '%\'';
  26. }
  27. if ($_REQUEST['begin_time']) {
  28. $where .= ' and f.create_time>=' . strtotime($_REQUEST['begin_time']);
  29. }
  30. if ($_REQUEST['end_time']) {
  31. $where .= ' and f.create_time<=' . strtotime($_REQUEST['end_time']);
  32. }
  33. if (!isset($_REQUEST['status'])) {
  34. $_REQUEST['status'] = -1;
  35. }
  36. if ($_REQUEST['status'] != -1) {
  37. $where .= ' and f.status=' . intval($_REQUEST['status']);
  38. }
  39. $model = M('family');
  40. $table = DB_PREFIX .'family f,'.DB_PREFIX .'user u';
  41. $count = $model->table($table)->where($where)->count();
  42. $p = new Page($count, $listRows = 20);
  43. if ($count) {
  44. $field = 'f.*,u.nick_name';
  45. $list = $model->table($table)->where($where)->field($field)->order('f.id desc')->limit($p->firstRow . ',' . $p->listRows)->select();
  46. foreach ($list as $key => $value) {
  47. $list[$key]['create_time'] = to_date($value['create_time']);
  48. $list[$key]['nick_name'] = emoji_decode($value['nick_name']);
  49. if($list[$key]['logo'] !=''){
  50. $list[$key]['logo'] = get_spec_image($value['logo']);
  51. }
  52. //ljz
  53. //if(defined('OPEN_FAMILY_JOIN')&&OPEN_FAMILY_JOIN==1){
  54. //统计家族总人数
  55. $f_id = $value['id'];
  56. $f_table = DB_PREFIX .'user';
  57. $f_where = ' family_id = '.$f_id;
  58. $list[$key]['nums'] = $model->table($f_table)->where($f_where)->count();
  59. //}
  60. }
  61. }
  62. $this->assign("page", $p->show());
  63. $this->assign("list", $list);
  64. $this->display();
  65. }
  66. public function edit()
  67. {
  68. $id = intval($_REQUEST['id']);
  69. $model = M('family');
  70. $table = DB_PREFIX .'family f,'.DB_PREFIX .'user u';
  71. $field = 'f.*,u.nick_name';
  72. $where = 'f.user_id = u.id and f.id=' . $id;
  73. $family = $model->table($table)->where($where)->field($field)->find();
  74. if ($family) {
  75. $family['create_time'] = to_date($family['create_time']);
  76. $family['logo'] = get_spec_image($family['logo']);
  77. }
  78. $this->assign('vo', $family);
  79. $this->display();
  80. }
  81. public function view()
  82. {
  83. $id = intval($_REQUEST['id']);
  84. $model = M('family');
  85. $field = 'name';
  86. $where = 'id=' . $id;
  87. $family = $model->where($where)->field($field)->find();
  88. //修改了判定,不需要从家族申请表中查询 ljz
  89. if((defined('OPEN_FAMILY_JOIN')&&OPEN_FAMILY_JOIN==1)){
  90. $table = DB_PREFIX .'family f,'.DB_PREFIX .'user u';
  91. $where = 'u.family_id =f.id and f.id ='.$id ;
  92. $count = $model->table($table)->where($where)->count();
  93. $p = new Page($count, $listRows = 20);
  94. if ($count) {
  95. $field = 'f.*,u.nick_name,u.id,u.head_image,f.name';
  96. $list = $model->table($table)->where($where)->field($field)->order('f.id desc')->limit($p->firstRow . ',' . $p->listRows)->select();
  97. foreach ($list as $key => $value) {
  98. $list[$key]['create_time'] = to_date($value['create_time']);
  99. $list[$key]['head_image'] = get_spec_image($value['head_image']);
  100. $list[$key]['nick_name'] = emoji_decode($value['nick_name']);
  101. }
  102. }
  103. $this->assign('family_seek', 0);//搜索功能 0关闭
  104. }else{
  105. $table = DB_PREFIX .'family f,'.DB_PREFIX .'user u,'.DB_PREFIX .'family_join j';
  106. $where = 'u.id =j.user_id and f.id ='.$id.' and j.family_id='.$id ;
  107. if (!isset($_REQUEST['status'])) {
  108. $_REQUEST['status'] = -1;
  109. }
  110. if ($_REQUEST['status'] != -1) {
  111. $where .= ' and j.status=' . intval($_REQUEST['status']);
  112. } else {
  113. $where .= ' and j.status<3';
  114. }
  115. $count = $model->table($table)->where($where)->count();
  116. $p = new Page($count, $listRows = 20);
  117. if ($count) {
  118. $field = 'f.*,u.nick_name,u.id,u.head_image,j.family_id,j.`status`,f.name';
  119. $list = $model->table($table)->where($where)->field($field)->order('f.id desc')->limit($p->firstRow . ',' . $p->listRows)->select();
  120. foreach ($list as $key => $value) {
  121. $list[$key]['create_time'] = to_date($value['create_time']);
  122. $list[$key]['head_image'] = get_spec_image($value['head_image']);
  123. $list[$key]['nick_name'] = emoji_decode($value['nick_name']);
  124. }
  125. }
  126. $this->assign('family_seek', 1);//搜索功能 1开启
  127. }
  128. $this->assign('id', $id);
  129. $this->assign('family', $family);
  130. $this->assign('list', $list);
  131. $this->assign("page", $p->show());
  132. $this->display();
  133. }
  134. public function update()
  135. {
  136. $id = intval($_REQUEST['id']);
  137. $status = intval($_REQUEST['status']);
  138. $memo = self::str_trim($_REQUEST['memo']);
  139. $manifesto = strim($_REQUEST['manifesto']);
  140. $name = strim($_REQUEST['name']);
  141. $this->assign("jumpUrl", u(MODULE_NAME . "/edit", array("id" => $id)));
  142. if (!$id) {
  143. $this->error("参数错误");
  144. }
  145. $mod = M('family');
  146. $family = $mod->field('name,user_id,status')->where("id=" . $id)->find();
  147. $log_info = $family['name'];
  148. $user_id = $family['user_id'];
  149. $status = $family['status'] == '1' ? 1 : $status;
  150. $res = $mod->save(array('memo' => $memo,'name'=>$name,'manifesto'=>$manifesto,'status' => $status, 'id' => $id));
  151. if (false === $res) {
  152. //错误提示
  153. save_log($log_info . L("UPDATE_FAILED"), 0);
  154. $this->error(L("UPDATE_FAILED"), 0, $log_info . L("UPDATE_FAILED"));
  155. } else {
  156. //成功提示
  157. clear_auto_cache("banner_list");
  158. load_auto_cache("banner_list");
  159. save_log($log_info . L("UPDATE_SUCCESS"), 1);
  160. $this->success(L("UPDATE_SUCCESS"));
  161. }
  162. }
  163. public function join()
  164. {
  165. $id = intval($_REQUEST['id']);
  166. $model = M('family_join');
  167. $count = $model->where(array('id' => $id))->count();
  168. $p = new Page($count, $listRows = 20);
  169. if ($count) {
  170. $table = DB_PREFIX .'family_join j,'.DB_PREFIX.'user u';
  171. $where = 'j.user_id = u.id';
  172. $field = 'j.*,u.nick_name';
  173. $list = $model->table($table)->where($where)->field($field)->order('j.id desc')->limit($p->firstRow . ',' . $p->listRows)->select();
  174. }
  175. $this->assign("page", $p->show());
  176. $this->assign("list", $list);
  177. $this->display();
  178. }
  179. public function updateJoin()
  180. {
  181. $id = intval($_REQUEST['id']);
  182. $status = intval($_REQUEST['status']);
  183. $memo = self::str_trim($_REQUEST['memo']);
  184. $this->assign("jumpUrl", u(MODULE_NAME . "/editJoin", array("id" => $data['id'])));
  185. if (!$id) {
  186. $this->error("参数错误");
  187. }
  188. $log_info = M('family_join')->where("id=" . $id)->getField("id");
  189. $res = M('family_join')->save($data);
  190. if (false === $res) {
  191. //错误提示
  192. save_log($log_info . L("UPDATE_FAILED"), 0);
  193. $this->error(L("UPDATE_FAILED"), 0, $log_info . L("UPDATE_FAILED"));
  194. } else {
  195. //成功提示
  196. clear_auto_cache("banner_list");
  197. load_auto_cache("banner_list");
  198. save_log($log_info . L("UPDATE_SUCCESS"), 1);
  199. $this->success(L("UPDATE_SUCCESS"));
  200. }
  201. }
  202. //解散家族1
  203. public function dissolve(){
  204. $id = intval($_REQUEST['id']);
  205. if (!$id) {
  206. $this->error("参数错误");
  207. }
  208. $model = M('family');
  209. //$family_member =$GLOBALS['db']->getOne( "select count(*) from ".DB_PREFIX."family_join where status=1 and family_id=".$id);
  210. //ljz 判断家族是否还有其他人员
  211. $family_member1 =$GLOBALS['db']->getAll( "select count(*) as zh from ".DB_PREFIX."user where family_id=".$id);
  212. $family_member = $family_member1[0]['zh'];
  213. if (intval($family_member) > 1){
  214. $this->error("家族还有未退出的成员");
  215. }else{
  216. $data = array();
  217. $data['family_id'] = 0;
  218. $data['family_chieftain'] = 0;
  219. $user_id = $model->where('id='.$id)->getField('user_id');
  220. M('user')->where('id='.$user_id)->save($data);
  221. fanwe_require(APP_ROOT_PATH . 'mapi/lib/redis/BaseRedisService.php');
  222. fanwe_require(APP_ROOT_PATH . 'mapi/lib/redis/UserRedisService.php');
  223. $user_redis = new UserRedisService();
  224. $user_redis->update_db($user_id, array('family_id' => 0, 'family_chieftain' => 0));
  225. //将请求加入家族的申请设为拒绝
  226. M('family_join')->where('status=0 and family_id='.$id)->setField("status",2);
  227. $res = $model->where("id=".$id)->delete();
  228. $log_info = $id;
  229. if ($res === false) {
  230. //错误提示
  231. save_log($log_info . "家族解散失败", 0);
  232. $this->error(L("家族解散失败"), 0, $log_info . L("家族解散失败"));
  233. } else {
  234. //成功提示
  235. save_log($log_info . L("家族解散成功"), 1);
  236. $this->success(L("家族解散成功"));
  237. }
  238. }
  239. }
  240. public function test()
  241. {
  242. fanwe_require(APP_ROOT_PATH . 'mapi/lib/redis/BaseRedisService.php');
  243. fanwe_require(APP_ROOT_PATH . 'mapi/lib/redis/UserRedisService.php');
  244. $user_redis = new UserRedisService();
  245. $res = $user_redis->getRow_db(100990);
  246. echo "<pre>";
  247. var_dump($res);
  248. }
  249. //公会长收益统计
  250. public function statistics()
  251. {
  252. $map = $this->com_search(); //获取时间搜索状态
  253. $id = strim($_REQUEST['id']); //公会ID
  254. $sql = "SELECT user_id from ".DB_PREFIX."family where id = ".$id;
  255. $chief_id = $GLOBALS['db']->getOne($sql);//获取公会长ID
  256. $user_name = emoji_decode($GLOBALS['db']->getOne("select nick_name from ".DB_PREFIX."user where id = ".$chief_id));//会长昵称
  257. $this->assign("chiefid",$user_name);
  258. /*admin_ajax_return($chief_id);*/
  259. $parameter = '';
  260. $sql_w = '';
  261. //查看是否有进行时间搜索
  262. if($map['start_time'] != '' && $map['end_time'] != ''){
  263. $parameter.=" log_time between '". $map['start_time'] . "' and '". $map['end_time'] ."'&";
  264. $sql_w .=" log_time between '". $map['start_time']. "' and '". $map['end_time'] ."' and ";
  265. }
  266. //查看是否有进行贡献会员的ID或昵称搜索
  267. if(strim($_REQUEST['mid'])!=''){
  268. $sql_w .= " u2.id like '%".strim($_REQUEST['mid'])."%' and ";
  269. }
  270. if(strim($_REQUEST['nick_name'])!=''){
  271. $sql_w .= " nick_name like '%".strim($_REQUEST['nick_name'])."%' and ";
  272. }
  273. $m_config = load_auto_cache("m_config");//初始化手机端配置
  274. if($m_config['society_pattern'] == 1){
  275. $utype = 8;
  276. }elseif ($m_config['society_pattern'] == 2){
  277. $utype = 10;
  278. }else{
  279. $utype = 4;
  280. }
  281. $model = D ();
  282. $sql_str = "SELECT u2.id as mid,nick_name,u1.ticket,u1.log_time as time "."FROM ".DB_PREFIX."user_log u1,".DB_PREFIX."user u2 where u1.contribution_id = u2.id and u1.type = ".$utype." and u1.user_id = ".$chief_id;
  283. $sql_str .= " and ".$sql_w." 1=1 ";
  284. /*if(strim($_REQUEST['name'])!=''){
  285. admin_ajax_return($sql_str);
  286. } */
  287. $voList = $this->_Sql_list($model, $sql_str, "&".$parameter,'u1.log_time');
  288. for($i=0;$i<count($voList);$i++)
  289. {
  290. $voList[$i]['time'] = to_date($voList[$i]['time']);
  291. $voList[$i]['nick_name'] = emoji_decode($voList[$i]['nick_name']);
  292. }
  293. $this->assign ( 'list', $voList );
  294. //获取总量与总金额
  295. $sql_count = "SELECT sum(u1.ticket) as count "."FROM ".DB_PREFIX."user_log u1,".DB_PREFIX."user u2 where u1.contribution_id = u2.id and u1.type = ".$utype." and u1.user_id = ".$chief_id;
  296. $sql_count .= " and ".$sql_w." 1=1 ";
  297. /*admin_ajax_return($sql_count);*/
  298. $count = $GLOBALS['db']->getOne($sql_count);
  299. $this->assign("count",$count);
  300. $this->display ();
  301. return;
  302. }
  303. }