function replace_task_id($user_id, $task_id, $params) { $do_task = ModelFactory::Usertask()->get(['user_id' => $user_id, 'task_id' => $task_id]); $params['user_id'] = $user_id; $params['task_id'] = $task_id; return $this->replace(isset($do_task) ? $do_task['id'] : 0, $params); }
public function index() { $userdata = ModelFactory::User()->check_login(); $type = $this->input->get('type'); $from = $this->input->get('from'); $pid = $this->input->get('pid'); if ($pid) { $problem = ModelFactory::Problem()->get_by_id($pid); $problem['url'] = site_url('/problem/?p=' . $problem['id']); } elseif ($from == 'invite') { $problem['title'] = '来秒答答题,赢任性壕礼!'; $problem['summary'] = '在秒答快乐分享,授人以渔,还能获得缤纷大礼!'; $problem['desc'] = '你还没来秒答答题赢大奖?全新秒答,任性壕礼!回答问题获得威望点,集齐一定威望点就可以召唤神龙!哦,不对,就可以兑换机械键盘、kindle、魔声耳机、ipad mini 4!'; $problem['pics'] = base_url('/static/image/share_image.jpg'); $problem['url'] = base_url('/share/people?' . http_build_query(['trace' => base64_encode($userdata['id']), 'from_invite' => 1])); } elseif ($from == 'xiaobai') { $problem['title'] = '秒答Beta送送送,看一眼就是赚到!'; $problem['summary'] = '编程有难题,秒答来帮你!'; $problem['desc'] = '外事不决问谷歌,内事不懂问度娘,编程不会就来问秒小答吧!庆祝秒答内测第一个月,注册即送编程大神一对一答疑机会,超有趣超好玩的游戏编程APP开发教程。还有抽iPhone 6s!你不来组成分母?'; $problem['pics'] = base_url('/static/image/share_image.jpg'); $problem['url'] = base_url('/share/people?' . http_build_query(['trace' => base64_encode($userdata['id']), 'from_invite' => 1])); } $task_id = 0; switch ($type) { case 'qq': $url = $this->get_qq_url($problem); $task_id = CONSTFILE::USER_TASK_SHARE_QQ; break; case 'qqz': $url = $this->get_qqz_url($problem); $task_id = CONSTFILE::USER_TASK_SHARE_QQZ; break; case 'sina': if ($from = 'xiaobai') { $problem['title'] = '外事不决问谷歌,内事不懂问度娘,编程不会就来问秒小答吧!庆祝秒答内测第一个月,注册即送编程大神一对一答疑机会,超有趣超好玩的游戏编程APP开发教程。还有抽iPhone 6s!你不来组成分母?'; } $url = $this->get_sina_url($problem); $task_id = CONSTFILE::USER_TASK_SHARE_SINA; break; default: show_404(); } if ($pid) { $do_taask = ModelFactory::Usertask()->get(['user_id' => $userdata['id'], 'task_id' => $task_id]); if (!$do_taask) { ModelFactory::Usertask()->replace($do_taask ? $do_taask['id'] : 0, ['user_id' => $userdata['id'], 'task_id' => $task_id, 'created_at' => time()]); ModelFactory::User()->Integral($userdata['id'], 100, true, 'Integral', CONSTFILE::CHANGE_LOG_COUNT_TYPE_CLICK_USER_SHARE); ModelFactory::User()->coin($userdata['id'], 80, true, 'silver_coin', CONSTFILE::CHANGE_LOG_COUNT_TYPE_CLICK_USER_SHARE); } } redirect($url); }
public function getUserTask($userdata, $task_id) { $cache_key = 'huodong_' . $userdata['id'] . '_' . $task_id; $silver_get = $this->cache()->get($cache_key); if (!$silver_get) { $do_task = ModelFactory::Usertask()->get(['user_id' => $userdata['id'], 'task_id' => $task_id]); if ($do_task) { $this->cache()->save($cache_key, '1', 86400); $silver_get = 1; } } return $silver_get; }
public function get_god_list($params, $page, $count) { $this->db->order_by('follower_count', 'DESC'); $page = $page < 0 ? 0 : $page; return $this->db->where($params)->limit($count, $page * $count)->get($this->table_name)->result_array(); } /** * 增加金币或银币 * @param formUser * @param number * @param type true 为增加false为减少 * @param gold_coin/silver_coin 金币与银币 * @return bool */ public function coin($formUser, $number, $type = true, $coin = "silver_coin", $count_type = 0) { $change_type = 0; switch ($coin) { case 'silver_coin': $change_type = CONSTFILE::USER_SILVER_COIN; break; case 'gold_coin': $change_type = CONSTFILE::USER_SILVER_COIN; break; case 'Integral': $change_type = CONSTFILE::USER_INTEGRAL; break; case 'prestige': $change_type = CONSTFILE::USER_PRESTIGE; break; } if (!$change_type) { throw new Exception("error change type"); } if ($type == false) { $coin_data = $this->db->select(array($coin))->get_where($this->table_name, array("id" => $formUser))->row_array(); if ($coin_data[$coin] - $number < 0) { return false; } } $type = $type ? "+" : "-"; $this->db->query("update `" . $this->table_name . "` SET\r\t\t`{$coin}` = `{$coin}` {$type} {$number}\r\t\tWHERE `id` = {$formUser}"); $data = $this->db->affected_rows() > 0; if ($data) { $this->changelog(array('user_id' => $formUser, 'type' => $change_type, 'count_type' => $count_type, 'count' => $type == '+' ? $number : -$number, 'created_at' => time())); if ($change_type == CONSTFILE::USER_PRESTIGE) { } if ($change_type == CONSTFILE::USER_SILVER_COIN) { $user_data = $this->get_user($formUser); if ($user_data['silver_coin'] >= CONSTFILE::USER_SILVER_CHANGE_PRESTIGE_VALUE) { $god_level = $this->get_god_level($formUser, $user_data); $cg_value = 0; if ($god_level <= 2) { $cg_value = 5; } if ($god_level <= 7 && $god_level >= 3) { $cg_value = 8; } if ($god_level <= 10 && $god_level >= 8) { $cg_value = 15; } $do_task = ModelFactory::Usertask()->get(['user_id' => $formUser, 'task_id' => CONSTFILE::USER_TASK_GOD_5000]); $task_val = isset($do_task['task_val']) ? $do_task['task_val'] : 0;
public function index() { $date = date('Y-m-d'); //当前日期 $first = 1; //$first =1 表示每周星期一为开始日期 0表示每周日为开始日期 $w = date('w', strtotime($date)); //获取当前周的第几天 周日是 0 周一到周六是 1 - 6 $now_start = date('Y-m-d', strtotime("{$date} -" . ($w ? $w - $first : 6) . ' days')); //获取本周开始日期,如果$w是0,则表示周日,减去 6 天 $now_end = date('Y-m-d', strtotime("{$now_start} +6 days")); //本周结束日期 $last_start = date('Y-m-d', strtotime("{$now_start} - 7 days")); //上周开始日期 $last_end = date('Y-m-d', strtotime("{$now_start} - 1 days")); //上周结束日期 echo '本周开始日期:', $now_start, '<br />'; echo '本周结束日期:', $now_end, '<br />'; echo '上周开始日期:', $last_start, '<br />'; echo '上周结束日期:', $last_end, '<br />'; $peoples = ModelFactory::Changelog()->groupBy(['type' => CONSTFILE::USER_INTEGRAL], 20); if ($peoples) { foreach ($peoples as $key => $people) { $key = $key + 1; if ($key == 1) { ModelFactory::User()->coin($people['user_id'], 200, true, 'silver_coin', CONSTFILE::CHANGE_LOG_COUNT_TYPE_INTEGRAL_TOP); } if ($key >= 2 && $key <= 5) { ModelFactory::User()->coin($people['user_id'], 100, true, 'silver_coin', CONSTFILE::CHANGE_LOG_COUNT_TYPE_INTEGRAL_TOP); } if ($key >= 6 && $key <= 20) { ModelFactory::User()->coin($people['user_id'], 50, true, 'silver_coin', CONSTFILE::CHANGE_LOG_COUNT_TYPE_INTEGRAL_TOP); } } } $date = date('Y-m-d'); //当前日期 $first = 1; //$first =1 表示每周星期一为开始日期 0表示每周日为开始日期 $w = date('w', strtotime($date)); //获取当前周的第几天 周日是 0 周一到周六是 1 - 6 $now_start = date('Y-m-d', strtotime("{$date} -" . ($w ? $w - $first : 6) . ' days')); //获取本周开始日期,如果$w是0,则表示周日,减去 6 天 $now_end = date('Y-m-d', strtotime("{$now_start} +6 days")); //本周结束日期 $last_start = date('Y-m-d', strtotime("{$now_start} - 7 days")); //上周开始日期 $last_end = date('Y-m-d', strtotime("{$now_start} - 1 days")); //上周结束日期 echo '本周开始日期:', $now_start, '<br />'; echo '本周结束日期:', $now_end, '<br />'; echo '上周开始日期:', $last_start, '<br />'; echo '上周结束日期:', $last_end, '<br />'; $peoples = ModelFactory::Changelog()->groupBy(['type' => CONSTFILE::USER_INTEGRAL], 20); if ($peoples) { foreach ($peoples as $key => $people) { $key = $key + 1; if ($key == 1) { ModelFactory::User()->coin($people['user_id'], 200, true, 'silver_coin', CONSTFILE::CHANGE_LOG_COUNT_TYPE_INTEGRAL_TOP); } if ($key >= 2 && $key <= 5) { ModelFactory::User()->coin($people['user_id'], 100, true, 'silver_coin', CONSTFILE::CHANGE_LOG_COUNT_TYPE_INTEGRAL_TOP); } if ($key >= 6 && $key <= 20) { ModelFactory::User()->coin($people['user_id'], 50, true, 'silver_coin', CONSTFILE::CHANGE_LOG_COUNT_TYPE_INTEGRAL_TOP); } } } $is_keep = ModelFactory::Usertask()->is_keep_answer($id); ModelFactory::Usertask()->answer_sign($id, date('Y-m-d'), $is_keep + 1); exit; $sign = ModelFactory::User()->coin($id, 3000, true, 'silver_coin'); var_dump($sign); exit; // $sign = ModelFactory::User()->is_sigin($id,['date'=>'2015-08-17','time'=>1]); $userdata = ModelFactory::User()->get_user($id); $sign = ModelFactory::User()->is_sigin($id, $userdata); $keep = ModelFactory::User()->is_keep_sign($id, $userdata); if ($keep) { ModelFactory::User()->sigin($id, date('Y-m-d'), $keep + 1); echo "lx\n"; exit; } else { ModelFactory::User()->sigin($id, date('Y-m-d'), 1); echo "pm\n"; } var_dump($sign); }
/** * 编辑用户信息 * @return [type] [description] */ public function editData() { parent::require_login(); $params = parent::get_params('POST', array("nickname", "name", "email", "cellphone", "alipay", "type")); if (empty($params)) { return; } extract($params); $id = $this->input->post("id"); /* $teacher = !isset($_POST['teacher']) ? false : true; if(isset($_POST['teacher'])){ $params['teacher'] = 1; }else{ $params['teacher'] = 0; } */ $edit_gold_coin = $this->input->post('edit_gold_coin'); $edit_silver_coin = $this->input->post('edit_silver_coin'); $edit_Integral = $this->input->post('edit_Integral'); if ($edit_gold_coin) { ModelFactory::User()->coin($id, $edit_gold_coin, $edit_gold_coin > 0, 'gold_coin', CONSTFILE::CHANGE_LOG_COUNT_TYPE_ADMIN); } if ($edit_silver_coin) { ModelFactory::User()->coin($id, $edit_silver_coin, $edit_silver_coin > 0, 'silver_coin', CONSTFILE::CHANGE_LOG_COUNT_TYPE_ADMIN); } if ($edit_Integral) { ModelFactory::User()->coin($id, $edit_Integral, $edit_Integral > 0, 'Integral', CONSTFILE::CHANGE_LOG_COUNT_TYPE_ADMIN); } $type = $this->input->post('type'); $do_task = ModelFactory::Usertask()->get_count(['user_id' => $id, 'task_id' => CONSTFILE::USER_TASK_AUDIT_GOD_OK]); if ($type == 1 && !$do_task) { $user_data = ModelFactory::User()->get_user($id); if ($user_data['parent_id']) { $parent_user_data = ModelFactory::User()->get_user($user_data['parent_id']); if ($parent_user_data['parent_id'] != $id && !$do_task) { ModelFactory::Usertask()->create(['user_id' => $id, 'created_at' => time(), 'task_id' => CONSTFILE::USER_TASK_AUDIT_GOD_OK]); ModelFactory::User()->coin($user_data['parent_id'], 20, true, 'prestige', CONSTFILE::CHANGE_LOG_COUNT_TYPE_AUDIT_GOD_OK); } } } $password = $this->input->post("password"); if ($password != "") { $userdata = $this->user_model->get(array("id" => $id)); $params['pwd'] = md5($password . $userdata['salt']); } if ($this->user_model->edit($id, $params)) { $this->finish(true); } else { $this->finish(false, "无法修改用户资料"); } }
public function up_problem() { $up_down_type = false; $temp = array(); parent::require_login(); $params = $this->get_params('POST', array('problem_id')); extract($params); $return_data = ModelFactory::Problem()->get_problem($problem_id); $up_users = json_decode($return_data[0]['up_users']); if ($return_data && $return_data[0]['up_count'] >= 20 && $return_data[0]['is_prestige'] != 1) { $god_level = ModelFactory::User()->get_god_level($return_data[0]['answer_id']); $cg_value = 0; if ($god_level >= 1 && $god_level <= 2) { $cg_value = 5; } if ($god_level <= 7 && $god_level >= 3) { $cg_value = 8; } if ($god_level <= 10 && $god_level >= 8) { $cg_value = 15; } if ($cg_value) { try { ModelFactory::Usertask()->begin(); $r2 = ModelFactory::Problem()->edit($problem_id, ['is_prestige' => 1]); if ($r2) { ModelFactory::User()->coin($return_data[0]['answer_id'], $cg_value, true, 'prestige', CONSTFILE::CHANGE_LOG_COUNT_TYPE_ZAN); ModelFactory::Usertask()->commit(); } else { ModelFactory::Usertask()->rollback(); } } catch (Exception $e) { ModelFactory::Usertask()->rollback(); } } } foreach ($up_users as $key => $value) { if ($value->id != $this->me['id']) { array_push($temp, array("id" => $value->id)); } else { $up_down_type = true; } } $up_users = $temp; if ($up_down_type == true) { //取消点赞 if ($this->problem_model->up(array("id" => $problem_id, "up_count" => $return_data[0]["up_count"] - 1, "hot" => $return_data[0]["hot"] - 5, "up_users" => json_encode($up_users)))) { // 积分需求 ModelFactory::User()->Integral($this->me['id'], CONSTFILE::USER_ACTION_ZAN_INTEGRAL_VALUE, false, 'Integral', CONSTFILE::CHANGE_LOG_COUNT_TYPE_CLICK_ZAN); ModelFactory::User()->coin($this->me['id'], CONSTFILE::USER_ACTION_ZAN_SILVER_VALUE, false, 'silver_coin', CONSTFILE::CHANGE_LOG_COUNT_TYPE_CLICK_ZAN); $this->finish(true, "", "1"); } else { $this->finish(false, "未知的网络原因导致操作失败"); } } else { array_push($up_users, array("id" => $this->me['id'])); if ($this->problem_model->up(array("id" => $problem_id, "up_count" => $return_data[0]["up_count"] + 1, "hot" => $return_data[0]["hot"] + 5, "up_users" => json_encode($up_users)))) { ModelFactory::User()->coin($this->me['id'], CONSTFILE::USER_ACTION_ZAN_SILVER_VALUE, true, 'silver_coin', CONSTFILE::CHANGE_LOG_COUNT_TYPE_CLICK_ZAN); ModelFactory::User()->Integral($this->me['id'], CONSTFILE::USER_ACTION_ZAN_INTEGRAL_VALUE, true, 'Integral', CONSTFILE::CHANGE_LOG_COUNT_TYPE_CLICK_ZAN); $this->finish(true, "", "0"); } else { $this->finish(false, "未知的网络原因导致操作失败"); } } }