123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140 |
- <?php
- namespace app\index\controller;
- use think\Controller;
- use think\Db;
- use think\Cache;
- class Plantask extends Controller
- {
- //计划任务
- //定时跑用户活跃,改成离线
- public function user_active(){
- $actitime = time() - 600;
- //$map = ['requesttime' < $actitime];
- $sql = 'update `mt_user` set is_active = 0 where id in (select user_id from mt_user_active where requesttime < '.$actitime.')';
- //echo $sql;
- db()->query($sql);
- }
- //计划任务
- //代替公会的人10秒内发出五句话
- public function firstuser_send()
- {
- //找出24小时内注册的男人
- $map = [
- 'jointime' => ['gt',time()-86400],
- 'gender' => 1,
- 'gh_id' => 0,
- ];
- $oneuser = Db::name('user')->where($map)->orderRaw('rand()')->value('id');
- //dump($oneuser);
- //找出公会的人
- $map = [
- 'gh_id' => ['gt',0],
- 'gender' => 0,
- ];
- $ghuser = Db::name('user')->where($map)->orderRaw('rand()')->limit(5)->column('id');
- //dump($ghuser);
- //随机取出一句话
- $oneword = Db::name('plantask_accost')->orderRaw('rand()')->limit(5)->column('title');
- //dump($oneword);
- //发送出去
- $cache = Cache::connect(['type'=>'Redis']);
- $times = $cache->get('plantask_first_word_'.$oneuser);
- //dump($times);
- if($times === false){
- $times = 0;
- }
- if($times < 5){
- $tenim = new \app\common\library\Tenim;
- for($i = 0;$i < 5;$i++){
- $ghuser_one = isset($ghuser[$i]) ? $ghuser[$i] : $ghuser[array_rand($ghuser)];
- $oneword_one = isset($oneword[$i]) ? $oneword[$i] : $oneword[array_rand($oneword)];
- $tenim->sendMessageToUser($ghuser_one,$oneuser,$oneword_one);
- }
- $cache->set('plantask_first_word_'.$oneuser, 5);
- }
- }
- //计划任务,二期之后,废弃
- //代替公会的人发出第一句话
- public function firstword_send()
- {
- exit;
- //找出24小时内注册的男人
- $map = [
- 'jointime' => ['gt',time()-86400],
- 'gender' => 1,
- 'gh_id' => 0,
- ];
- $oneuser = Db::name('user')->where($map)->orderRaw('rand()')->value('id');
- //dump($oneuser);
- //找出公会的人
- $map = [
- 'gh_id' => ['gt',0],
- 'gender' => 0,
- ];
- $ghuser = Db::name('user')->where($map)->orderRaw('rand()')->value('id');
- //dump($ghuser);
- //随机取出一句话
- $oneword = Db::name('plantask_accost')->orderRaw('rand()')->value('title');
- //dump($oneword);
- //发送出去
- $cache = Cache::connect(['type'=>'Redis']);
- $times = $cache->get('plantask_first_word_'.$oneuser);
- //dump($times);
- if($times === false){
- $times = 0;
- }
- if($times < 5){
- $tenim = new \app\common\library\Tenim;
- $tenim->sendMessageToUser($ghuser,$oneuser,$oneword);
- $cache->set('plantask_first_word_'.$oneuser, $times + 1);
- }
- }
- //计划任务
- //清空没用的redis
- public function firstword_clear(){
- $map = [
- 'jointime' => ['between',[time()-172800,time()-86400]],
- 'gender' => 1,
- 'gh_id' => 0,
- ];
- $map = [];
- $userlist = Db::name('user')->where($map)->order('id asc')->column('id');
- if(empty($userlist)){
- echo 'empty';
- exit;
- }
- //清除
- $cache = Cache::connect(['type'=>'Redis']);
- foreach($userlist as $key => $val){
- $cache->rm('plantask_first_word_'.$val);
- }
- }
- //测试用
- //清空redis
- public function clear_redis(){
- $val = input('uid');
- $cache = Cache::connect(['type'=>'Redis']);
- $cache->rm('plantask_first_word_'.$val);
- }
- }
|