| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144 | <?phpnamespace app\admin\server\life;use app\admin\model\LifeFarmLandOrder;use app\admin\model\LifeFarmLand;use app\admin\model\LifeFarmLandOrderDetail;class FarmLandOrderServer{    /**     * Notes:获取订单列表     * @param string $keywords     * @param int $page     * @param int $limit     * @return array     * User: YCP     * Date: 2022/10/25     */    public static function getOrderList(int $page, int $limit, string $keywords)    {        [$list, $count] =  LifeFarmLandOrder::getOrderList($page, $limit,$keywords);        return compact('list', 'page', 'limit', 'count');    }    /**     * Notes:获取订单详情     * @param int $order_id     * @return int     * User: YCP     * Date: 2022/10/25     */    public static function orderInfo(int $order_id)    {        LifeFarmLandOrder::affairBegin();        try {            $where = [];            $where['order_id'] = $order_id;            $result = LifeFarmLandOrder::with(['User','LifeFarmLandOrderDetail'])->where($where)->first();            if (!empty($result)){                LifeFarmLandOrder::affairCommit();                return $result;            }else{                return false;            }        }catch (\Exception $exception){            LifeFarmLandOrder::affairRollback();            throw new \Exception($exception->getMessage(), 500);        }    }    /**     * Notes: 下单     * @param string $package_name     * @param array $package_rules     * @return int     * User: YCP     * Date: 2022/10/25     */    public static function insertOrder(array $params, int $user_id)    {        $land_id = explode(',',$params['order_goods_id']);        $params['order_price'] = 0;        foreach ($land_id as &$v) {            $res = LifeFarmLand::where(['land_id'=>$v])->first();            if(empty($res) || $res === false)            {                throw new \Exception('地块id'.$v.'信息不存在');            }            $params['order_price']+=$res['land_price'];            $log = LifeFarmLandOrderDetail::where(['detail_goods_id'=>$v,'detail_pay_status'=>2])->where('detail_expire_time','>',time())->first();            //var_dump($log);            if($log){                throw new \Exception($res['land_name'].'已售出');            }        }        LifeFarmLandOrder::affairBegin();        try {            $params['order_user_id'] = $user_id;            //$params['order_price'] = $res['land_price'];            $params['order_dno'] = "YMXT".rand(99999,999999);            $params['order_create_time'] = time();            $result =  LifeFarmLandOrder::insertGetId($params);            if (!empty($result)){                $msg = '用户' . $user_id . '在:' . date("Y-m-d H:i:s", time()) . '下单-编号: ' . $result;                plog('life-farm-land-order', '悦活-生态农场-一亩心田-下单', $msg);                //写入订单详情                foreach ($land_id as $value){                    $land = LifeFarmLand::where(['land_id'=>$value])->first();                    $item = [                      'detail_order_id'     =>$result,                      'detail_user_id'      =>$user_id,                      'detail_goods_id'     =>$value,                      'detail_goods_name'   =>$land['land_name'],                      'detail_goods_price'  =>$land['land_price'],                      'detail_create_time'  =>time(),                      'detail_expire_time'  =>time()+365*24*60*60,//一年有效期                    ];                    LifeFarmLandOrderDetail::insert($item);                }                LifeFarmLandOrder::affairCommit();                return $result;            }            throw new \Exception('操作失败!');        }catch (\Exception $exception){            LifeFarmLandOrder::affairRollback();            throw new \Exception($exception->getMessage(), 500);        }    }    /**     * Notes:修改订单支付状态     * @param string $order_id     * @param int $order_finish     * @return int     * User: YCP     * Date: 2022/11/28     */    public static function updatePayStatus($order_id, $order_pay_status)    {        LifeFarmLandOrder::affairBegin();        try {            $where = [];            $where['order_id'] = $order_id;            $data = [];            $data['order_pay_status'] = $order_pay_status;            if($order_pay_status == 1){                $data['order_pay_time'] = time();            }else{                $data['order_pay_time'] = "";            }            $result = LifeFarmLandOrder::where($where)->update($data);            if ($result !== false){                LifeFarmLandOrder::affairCommit();                return true;            }            throw new \Exception('操作失败!');        }catch (\Exception $exception){            LifeFarmLandOrder::affairRollback();            throw new \Exception($exception->getMessage(), 500);        }    }}
 |