'credits2')] = $update_list['golds+']; $msg1='';$flag=0; foreach($msg as $k=>$v) {if($flag==1)$msg1.='、';$msg1.=$k.':'.$v;$flag=1;} $last_login_date = $user['login_date']; $update_list['login_date']=time(); user_update($uid,$update_list); cache_delete('tt_sign'); $code = '+'.$update_list['golds+'].''; $numx = $user['golds'] + $update_list['golds+']; $today0 = strtotime(date('Y-m-d 00:00:00')); $rank = db_count('sign', array('time'=>array('>'=>$today0))); db_insert('user_pay',array('uid'=>$uid,'status'=>1,'num'=>$numx,'type'=>20,'credit_type'=>2,'code'=>$code,'time'=>time())); message('0','签到成功,今日排名:第'.$rank.'名,奖励:+'.$update_list['golds+'].'金币,+'.$update_list['credits+'].'积分'); } }elseif($action == 'sign_lxqds'){ // 接收前端排序参数 sort $sort = param('sort', 'continuous'); $lxqds = db_find('sign', array(), array('time'=>-1), 1, 99999); $userSignData = array(); foreach ($lxqds as $sign) { $user_id = $sign['uid']; if (!isset($userSignData[$user_id])) { $userSignData[$user_id] = array(); } $userSignData[$user_id][] = $sign; } $finalResult = array(); foreach ($userSignData as $user_id => $signRecords) { $continuousDays = 1; $signDates = array(); $lastSignTime = 0; foreach ($signRecords as $sign) { $signDate = date('Y-m-d', $sign['time']); if (!in_array($signDate, $signDates)) { $signDates[] = $signDate; $lastSignTime = $sign['time']; } } $totalDates = count($signDates); if ($totalDates > 1) { for ($i = 0; $i < $totalDates - 1; $i++) { $currentTs = strtotime($signDates[$i]); $nextTs = strtotime($signDates[$i+1]); $dayDiff = ($currentTs - $nextTs) / (24 * 3600); if ($dayDiff == 1) { $continuousDays++; } else { break; } } } $userInfo = user_read($user_id); $finalResult[] = array( 'uid' => $user_id, 'avatar_url' => isset($userInfo['avatar_url']) ? $userInfo['avatar_url'] : '', 'username' => isset($userInfo['username']) ? $userInfo['username'] : '未知用户', 'golds' => isset($userInfo['golds']) ? intval($userInfo['golds']) : 0, 'continuous_sign_days' => $continuousDays, 'last_time' => $lastSignTime ); } // 根据sort切换排序 if($sort == 'time'){ // 按最后签到时间倒序 usort($finalResult, function($a, $b) { return $b['last_time'] - $a['last_time']; }); }else{ // 按连续签到天数降序 usort($finalResult, function($a, $b) { return $b['continuous_sign_days'] - $a['continuous_sign_days']; }); } message(0, array('list' => $finalResult)); exit; }elseif($action == 'sign_today'){ header('Content-Type: application/json; charset=utf-8'); $today = strtotime('today'); // 接收排序参数 $sort = param('sort', 'gold'); // 切换数据库排序规则 if($sort == 'time'){ $order = array('time' => 1); }else{ $order = array('golds' => -1); } $goldslists = db_find('sign', array('time' => array('>' => $today)),$order,1, 20); $todayResult = array(); foreach ($goldslists as $v) { $goldsuser = user_read($v['uid']); $todayResult[] = array( 'avatar_url' => isset($goldsuser['avatar_url']) ? $goldsuser['avatar_url'] : '', 'username' => isset($goldsuser['username']) ? $goldsuser['username'] : '未知用户', 'golds' => isset($v['golds']) ? intval($v['golds']) : 0, 'sign_time' => date('H:i', $v['time']) ); } message(0, array('list' => $todayResult)); exit; }elseif($action == 'sign_stats'){ header('Content-Type: application/json; charset=utf-8'); $today = strtotime('today'); $today_count = db_count('sign', array('time' => array('>' => $today))); $continuous_days = 0; if ($uid > 0) { $signs = db_find('sign', array('uid' => $uid), array('time' => -1), 1, 99999); if (!empty($signs) && is_array($signs)) { $dates = []; foreach ($signs as $sign) { if (isset($sign['time']) && is_numeric($sign['time'])) { $date = date('Y-m-d', $sign['time']); if (!in_array($date, $dates)) { $dates[] = $date; } } } rsort($dates); if (!empty($dates)) { $current_date = $dates[0]; if ($current_date == date('Y-m-d')) { $continuous_days = 1; for ($i = 1; $i < count($dates); $i++) { $prev_day = date('Y-m-d', strtotime($current_date . ' -1 day')); if ($dates[$i] == $prev_day) { $continuous_days++; $current_date = $dates[$i]; } else { break; } } } } } } $full_text = $continuous_days > 0 ? "已连续签到 {$continuous_days} 天,今日已有 {$today_count} 位用户签到" : "今日已有 {$today_count} 位用户签到"; $res = array( 'full_text' => $full_text, 'continuous_days' => $continuous_days, 'today_count' => $today_count ); message(0, $res); exit; } //添加个人中心路径 if($action == 'vapplyo') { if($method == 'GET') { include _include(APP_PATH.'plugin/v_apply/view/htm/my_vapplyo.htm'); } elseif($method == 'POST') { $uid = $user['uid']; $kv = kv_cache_get('v_apply'); $zhuti = $kv['zhuti']; $tiezi = $kv['tiezi']; $tianshu = $kv['tianshu']; if($time - $user['create_date'] > $tianshu AND $user['posts'] >= $tiezi AND $user['threads'] >= $zhuti AND $user['avatar']!= 0) { $v = param('v'); $v_info = param('v_info'); if(empty($v)) message(-1, '请填写认证头衔'); if(empty($v_info)) message(-1, '请填写证明信息'); // 查询用户是否有申请记录 $v_apply = mw_v_apply_read('v_apply','uid',$uid); if(empty($v_apply)){ mw_v_apply_create('v_apply', array('uid'=>$uid, 'create_time'=>time(), 'v'=>$v, 'status'=>0, 'v_info'=>$v_info)); }else{ mw_v_apply_update('v_apply', 'uid', $uid, array( 'create_time'=>time(), 'v'=>$v, 'status'=>0, 'v_info'=>$v_info )); } db_update('user',array('uid'=>$uid),array('v'=>0)); $message = '有新的认证提交,请及时查看!'; notice_send(2, 1, $message, 3); // 3:系统通知 message(0, '提交成功!请耐心等待审核'); } else { message(0, '未满足条件!'); } } }elseif($action == 'vapply') { if($method == 'GET') { include _include(APP_PATH.'plugin/v_apply/view/htm/my_vapply.htm'); } }elseif($action == 'vresult') { if($method == 'GET') { include _include(APP_PATH.'plugin/v_apply/view/htm/my_vapply.htm'); } }elseif($action == 'vapplylist') { if($method == 'GET') { include _include(APP_PATH.'plugin/v_apply/view/htm/my_vapplylist.htm'); } } elseif($action == 'exchange') { if($method == 'GET') { $caijin_set = caijin_get_settings(); $platforms = caijin_get_platforms(); $rate = caijin_get_rate(); $exchange_list = caijin_exchange_find(array('uid'=>$uid), array('id'=>-1), 1, 50); // Explicitly include functions to prevent template errors include_once _include(APP_PATH.'plugin/xn_caijin/model/caijin.func.php'); include _include(APP_PATH.'plugin/xn_caijin/view/htm/my_exchange.htm'); } elseif($method == 'POST') { if(!$uid) { message(-1, '请先登录'); } $platform = param('platform'); $account = param('account'); $amount = intval(param('amount')); $exchange_rate = isset($caijin_set['exchange_rate']) ? intval($caijin_set['exchange_rate']) : 100; $min_exchange = isset($caijin_set['min_exchange']) ? intval($caijin_set['min_exchange']) : 10; $rate = caijin_get_rate(); if(empty($platform)) { message(-1, '请选择兑换平台'); } if(empty($account)) { message(-1, '请输入会员账号'); } if($amount <= 0) { message(-1, '兑换额度必须大于0'); } if($amount < $min_exchange) { message(-1, '单次最低兑换 '.$min_exchange.' 彩金'); } $golds_cost = $amount * $rate; if($user['golds'] < $golds_cost) { message(-1, '金币不足,需要'.$golds_cost.'金币,您当前只有'.$user['golds'].'金币'); } user_update($uid, array('golds-' => $golds_cost)); db_insert('user_pay', array('uid' => $uid, 'status' => 1, 'num' => -$golds_cost, 'type' => 6, 'credit_type' => 2, 'code' => 'caijin_exchange', 'time' => time())); caijin_exchange_create($uid, $platform, $account, $amount, $golds_cost); message(0, '兑换申请已提交,等待审核'); } } elseif($action == 'gift') { if($method == 'GET') { if(!$uid) { http_location(url('user-login')); } $xn_gift_settings = setting_get('xn_gift'); $grouplist = group_list_cache(); // Prepare data for view $gift_list = array(); if(!empty($xn_gift_settings)) { foreach($xn_gift_settings as $bgid => $bconf) { if(empty($bconf['enable'])) continue; $items = array(); $items['gid'] = $bgid; $items['groupname'] = array_value($grouplist, $bgid, array('name'=>'Unknown'))['name']; $items['monthly'] = intval($bconf['monthly']); $items['levelup'] = intval($bconf['levelup']); // Check status for Current User against THIS group // Note: Users can only claim if they ARE in this group. // But we should check if they claimed it previously? // Logic: "Upgrade money is claimable when user upgrades to this group". // Logic: "Monthly money is claimable monthy". $items['is_current'] = ($user['gid'] == $bgid); $items['has_claimed_monthly'] = gift_has_claimed($uid, $bgid, 1); $items['has_claimed_levelup'] = gift_has_claimed($uid, $bgid, 2); $gift_list[$bgid] = $items; } } include _include(APP_PATH.'plugin/xn_gift/view/htm/my_gift.htm'); } exit; } elseif($action == 'task') { // 加载任务模型 include_once _include(APP_PATH.'plugin/xn_task/model/task.func.php'); if($method == 'GET') { // 必须登录 if(!$uid) { http_location(url('user-login')); } $task_conf = task_get_settings(); // 获取今日发帖任务状态 $thread_count = task_count_thread($uid); $thread_target = $task_conf['thread_target']; $thread_claimed = task_has_claimed($uid, 1); // 获取今日回帖任务状态 $post_count = task_count_post($uid); $post_target = $task_conf['post_target']; $post_claimed = task_has_claimed($uid, 2); include _include(APP_PATH.'plugin/xn_task/view/htm/my_task.htm'); } elseif($method == 'POST') { // 领取奖励 if(!$uid) message(-1, '请先登录'); $type = intval(param('type')); // 1=发帖, 2=回帖 $res = task_claim_reward($uid, $type); message($res['code'], $res['message']); } exit; } if(isset($light_config['user_bg_switch']) && $light_config['user_bg_switch'] == 1){ if($action === 'background'){ if($method == 'GET'){ include _include(APP_PATH.'plugin/zaesky_theme_light/view/htm/my_background.htm'); }else if($method == 'POST'){ $imgsrc = param('imgsrc'); if($imgsrc > 0 && $imgsrc <= 9) { user_update($uid, array('bgimg'=>$imgsrc)); message(0, lang('change_bg_success')); }else{ message(0, lang('change_bg_fail')); } } } } ?>