| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 | <?phpnamespace App\Modules\Subscribe\Services;use App\Modules\Subscribe\Models\BookOrder;use DB;class BookOrderService{    /**     * 获取订购记录     * @param $uid     * @return mixed     */    public static function getRecord($uid, $page_size = 15)    {        return BookOrder::getRecord($uid, $page_size);    }    /**     * 获取订购记录     * @param $uid     * @return mixed     */    public static function getRecordByuidBid($uid, $bid)    {        return BookOrder::getRecordByuidBid($uid, $bid);    }    /**     * 是否订阅短片     * @param $uid     * @return mixed     */    public static function isHasBookOrder($uid){        $result =  BookOrder::where('uid',$uid)->select('id')->first();        if($result){            return true;        }        return false;    }    /**     * 根据用户id获取用户的订购记录     * @param $uid  用户id     * @param string $startTime 开始时间     * @param string $endTime 结束时间     * @param bool $isAll 获取所有     * @return mixed     */    public static function getRecordByUid($uid, $startTime = "", $endTime = "", $isAll = false)    {        return BookOrder::getRecordByUid($uid, $startTime, $endTime, $isAll);    }    static function save_book_order($data)    {        $insert_data = array();        $insert_data['uid'] = $data['uid'];        $insert_data['distribution_channel_id'] = $data['distribution_channel_id'];        $insert_data['fee'] = $data['fee'];        $insert_data['bid'] = $data['bid'];        $insert_data['book_name'] = $data['book_name'];        $insert_data['send_order_id'] = $data['send_order_id'];        $insert_data['charge_balance'] = $data['charge_balance'];        $insert_data['reward_balance'] = $data['reward_balance'];        return BookOrder::save_book_order($insert_data);    }    /**     * data = [uid,fee,u,distribution_channel_id,bid,book_name,send_order_id]     * 单本订购并扣余额     * @param $uid     * @return mixed     */    public static function addOrderRecodeAndDecrUserBalance(array $data, $uid)    {        return BookOrder::addOrderRecodeAndDecrUserBalance($data, $uid);    }    public static function getBookTotalConsume($uid)    {        return BookOrder::where('uid', $uid)->sum('fee');    }    /**     * 根据用户id获取用户的一段时间内的消费总额     * @param $uid  用户id     * @param string $startTime 开始时间     * @param string $endTime 结束时间     * @return mixed     */    public static function getBookTotalConsumeByUserIdAndTime($uid, $startTime = "", $endTime = "")    {        return BookOrder::getBookTotalConsumeByUserIdAndTime($uid, $startTime, $endTime);    }    /**     * @param $send_order_id     * @param $start_time     * @param $end_time     * @return array ['total'=>133,'charge_balance'=>45,'reward_balance'=>$reward_balance]     */    public static function getSendorderTotal($send_order_id, $start_time, $end_time)    {        //$charge_balance = BookOrder::where('send_order_id', $send_order_id)->whereBetween('created_at', [$start_time, $end_time])->sum('charge_balance');        //$reward_balance = BookOrder::where('send_order_id', $send_order_id)->whereBetween('created_at', [$start_time, $end_time])->sum('reward_balance');        //$fee = BookOrder::where('send_order_id', $send_order_id)->whereBetween('created_at', [$start_time, $end_time])->sum('fee');        $res = BookOrder::select(DB::raw('sum(charge_balance) as charge_balance_sum,sum(reward_balance) as reward_balance_sum,sum(fee) as fee_sum'))            ->where('send_order_id', $send_order_id)            ->whereBetween('created_at', [$start_time, $end_time])            ->first();        return [            'total' => $res->fee_sum,            'charge_balance' => $res->charge_balance_sum,            'reward_balance' => $res->reward_balance_sum        ];        //return ['total' => $fee, 'charge_balance' => $charge_balance, 'reward_balance' => $reward_balance];    }    public static function getOrderInfos($id_begin, $id_end)    {        return BookOrder::getOrderInfos($id_begin, $id_end);    }    public static function getCount()    {        return BookOrder::getOrderInfoCount();    }}
 |