first(); } /** * 根据id获取信息 * @param $id * @return mixed */ static function getById($id) { return SendOrder::find($id); } /* * 更新派单时间 */ static function updateSendOrderTime($send_order_id) { return SendOrder::where('id', $send_order_id)->update(['send_time' => date('Y-m-d H:i:s')]); } /** * 废弃不用 * 记录用户派单id * @param $uid * @param $send_order_id */ static function recordUserSendOrder_($uid,$send_order_id){ $info = QappUserSendOrderId::where('uid',$uid)->select('send_order_id')->orderBy('id','desc')->first(); if($info && $info->send_order_id == $send_order_id){ return ; } QappUserSendOrderId::create([ 'uid'=>$uid,'send_order_id'=>$send_order_id ]); } /* 注册派单id:第一次的环境派单id,在用户表里面,以后不再更新 环境派单id: 1)有30天保护期,保护期到期后,更新为下个环境派单id(针对uid级别的保护) 2)保护期间,用户点击派单,表记录还存在,只是是否生效为否 3)派单id生效期间,后面重复点击,是否生效为否,以第一次的点击时间为准,只是为了不再更新到期时间 $send_order_id = Redis::hget('book_read:' . $uid, 'send_order_id'); 这个字段也根据保护期间逻辑来,如果保护期内,则点击新的不更新这个字段 */ static function recordUserSendOrder($uid,$send_order_id){ /*$info = QappUserSendOrderId::where('uid',$uid) ->where('end_time','>',date('Y-m-d H:i:s')) ->orderBy('id')->first();*/ $redis_time = UserService::getUserSendOrderTime($uid); if($redis_time && ($redis_time+30*86400) > time()){ return false; } $info = DB::table('qapp_user_valid_send_order_id')->where('uid',$uid) ->where('end_time','>',date('Y-m-d H:i:s')) ->where('is_valid',1) ->orderBy('id')->first(); if($info){ /*QappUserSendOrderId::create([ 'uid'=>$uid,'send_order_id'=>$send_order_id,'end_time'=>date('Y-m-d H:i:s'),'is_valid'=>0 ]);*/ return false; } /*QappUserSendOrderId::create([ 'uid'=>$uid,'send_order_id'=>$send_order_id,'end_time'=>date('Y-m-d H:i:s',time()+30*86400),'is_valid'=>1 ]);*/ try{ DB::table('qapp_user_valid_send_order_id')->insert([ 'uid'=>$uid,'send_order_id'=>$send_order_id,'end_time'=>date('Y-m-d H:i:s',time()+30*86400),'is_valid'=>1, 'created_at'=>date('Y-m-d H:i:s'),'updated_at'=>date('Y-m-d H:i:s') ]); }catch (\Exception $e){ } return true; } }