| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 | <?php/** * Created by PhpStorm. * User: wuzhenke * Date: 2018/12/6 * Time: 11:22 */namespace App\Repositories;use App\Models\Order;use Prettus\Repository\Criteria\RequestCriteria;use Prettus\Repository\Eloquent\BaseRepository;class OrderRepository extends BaseRepository{    public function model()    {        return Order::class;    }    public function boot()    {        $this->pushCriteria(app(RequestCriteria::class));    }    /**创建订单     * @param $user     * @param $order_type     * @param $amount     * @param $pay_amount     * @param $pay_points     * @param $service_name     * @param $payment     * @param $payment_cn     * @param $description     * @param int $is_paid     * @param float $points     * @param int $setmeal     * @param int $payment_time     * @param string $params     * @param string $discount     * @param string $notes     * @return Order     */    public function addOrder($user, $order_type, $amount, $pay_amount, $pay_points, $service_name, $payment, $payment_cn, $description, $is_paid = 1, $points = 0, $setmeal = 0, $payment_time = 0, $params = '', $discount = '', $notes = '')    {        $data = new Order();        $uid = $user->id;        $data->uid = $uid;        $data->utype  = $user->utype;        $data->order_type = $order_type;        if ($pay_amount>0 && $pay_points>0) {            $data->pay_type =3;        } elseif ($pay_amount>0) {            $data->pay_type =2;        } else {            $data->pay_type =1;        }        $data->is_pay =$is_paid;        $data->amount =$amount;        $data->pay_amount =$pay_amount;        $data->pay_points =$pay_points;        $data->payment =$payment;        $data->payment_cn =$payment_cn;        $data->description =$description;        $data->service_name =$service_name;        $data->points =$points;        $data->setmeal =$setmeal;        $data->params =$params;        $data->notes =$notes;        $data->payment_time =$payment_time;        $data->discount =$discount;        if ($payment == 'points') {            $data->fee  = 0;        } else {            $data->fee  =$pay_amount*config("aix.system.pay.$payment.fee")/100;        }        $data->save();        return $data;    }    /**     * @param $oid     * @return mixed     */    public function getOneOder($oid)    {        return $this->model->where('oid', $oid)->first();    }    public function getOrder($where){        return $this->model->where($where)->first();    }    public function updateStatus($oid, $data)    {        return $this->model->where('oid', $oid)->update($data);    }    public function orderList($map, $where)    {        return $this->model->where($map)->whereIn('order_type', $where)->orderBy('created_at', 'desc')->paginate(10);    }    public function canselOrder()    {        return $this->model->where(['is_pay'=>1])->where('created_at','<',date('Y-m-d H:i:s',time()-300))->get()->toArray();    }}
 |