| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 | <?phpnamespace App\Modules\Subscribe\Services;use App\Modules\Statistic\Services\DataAnalysisSelectUserService;use App\Modules\Subscribe\Models\YearOrder;use Redis;class YearOrderService{    /**     * 获取订购记录     * @param $uid     * @return mixed     */    public static function getRecord($uid)    {        $now = date('Y-m-d H:i:s');        $where = [            ['uid', '=', $uid],            ['begin_time', '<=', $now],            ['end_time', '>=', $now],        ];        return YearOrder::where($where)->select('id', 'uid', 'u', 'begin_time', 'end_time')->first();    }    static function save_year_order($data)    {        $insert_data = array();        $insert_data['uid'] = $data['uid'];        $insert_data['begin_time'] = date('Y-m-d H:i:s');        $insert_data['end_time'] = date('Y-m-d H:i:s', strtotime('+365 day'));        $insert_data['distribution_channel_id'] = $data['distribution_channel_id'];        $insert_data['fee'] = $data['fee'];        $insert_data['send_order_id'] = $data['send_order_id'];        $old = YearOrder::where('uid', $data['uid'])->select('id', 'uid', 'u', 'begin_time', 'end_time', 'fee')->first();        if ($old) {            //如果包过年            if (strtotime($old->end_time) > time()) {                //旧的包年没过期                $old->end_time = date('Y-m-d H:i:s', strtotime($old->end_time) + 86400 * 365);                $old->fee = $old->fee + $data['fee'];                $old->save();            } else {                //旧的包年过期了                $old->end_time = date('Y-m-d H:i:s', strtotime('+365 day'));                $old->fee = $old->fee + $data['fee'];                $old->save();            }            return $old;        } else {            return YearOrder::save_year_order($insert_data);        }    }    static function foreverFree($data)    {        $insert_data = array();        $insert_data['uid'] = $data['uid'];        $insert_data['begin_time'] = date('Y-m-d H:i:s');        $insert_data['end_time'] = date('Y-m-d H:i:s', time() + 86400 * 365 * 80);        $insert_data['distribution_channel_id'] = $data['distribution_channel_id'];        $insert_data['fee'] = $data['fee'];        $insert_data['send_order_id'] = $data['send_order_id'];        $old = YearOrder::where('uid', $data['uid'])->select('id', 'uid', 'u', 'begin_time', 'end_time', 'fee')->first();        if ($old) {            $old->end_time = date('Y-m-d H:i:s', time() + 86400 * 365 * 80);            $old->fee = $old->fee + $data['fee'];            $old->save();            return $old;        } else {            return YearOrder::save_year_order($insert_data);        }    }    /**     * 幸运用户终身免费     * @param $uid     * @param $distribution_channel_id     * @param $send_order_id     * @return bool     */    static function luckyYearOrder($uid,$distribution_channel_id,$send_order_id){        if(empty($uid)){            return false;        }        try{            Redis::sadd('luckyYearOrderUser',$uid);        }catch (\Exception $e){}        self::foreverFree([            'uid'=>$uid,            'distribution_channel_id'=>$distribution_channel_id,            'send_order_id'=>$send_order_id        ]);        return true;    }    static function save_vip_order_daynum($data)    {        $insert_data = array();        $insert_data['uid'] = $data['uid'];        $insert_data['begin_time'] = date('Y-m-d H:i:s');        $insert_data['end_time'] = date('Y-m-d H:i:s', time()+$data['day_num']*86400);        $insert_data['distribution_channel_id'] = $data['distribution_channel_id'];        $insert_data['fee'] = $data['fee'];        $insert_data['send_order_id'] = $data['send_order_id'];        $old = YearOrder::where('uid', $data['uid'])->select('id', 'uid', 'u', 'begin_time', 'end_time', 'fee')->first();        if ($old) {            //如果包过年            if (strtotime($old->end_time) > time()) {                //旧的包年没过期                $old->end_time = date('Y-m-d H:i:s', strtotime($old->end_time) + 86400 * $data['day_num']);                $old->fee = $old->fee + $data['fee'];                $old->save();            } else {                //旧的包年过期了                $old->end_time = $insert_data['end_time'];                $old->fee = $old->fee + $data['fee'];                $old->save();            }            return $old;        } else {            return YearOrder::create($insert_data);        }    }}
 |