request->isPost()) { $this->error('请求方式异常'); } $limit = 10; $page = input('page/d',1); $page = empty($page)?0:($page-1)*$limit; $limit = $page.','.$limit; $list = \app\api\model\service\PackageCard::where(['status'=>'normal'])->field('id,name,images,original_price,price,salenums,info_images,flow_images')->order('weigh desc')->limit($limit)->select(); if($list) { foreach ($list as &$value) { $value = \app\api\model\service\PackageCard::packageInfo($value); } } $this->success('信息返回成功',$list); } public function goodsPackage() { if (!$this->request->isPost()) { $this->error('请求方式异常'); } $goodsId = input('goods_id',''); $list = \app\api\model\service\PackageGoods::where(['package_card_id'=>$goodsId,'status'=>'normal'])->field('package_card_id')->group('package_card_id')->order('id desc')->select(); $data = []; if($list) { foreach ($list as $value) { $package = \app\api\model\service\PackageCard::where(['id'=>$value['package_card_id'],'status'=>'normal'])->field('id,name,images,original_price,price,salenums,content')->find(); if($package) { $data[] = \app\api\model\service\PackageCard::packageInfo($package); } } } $this->success('信息返回成功',$data); } public function packageDetail() { if (!$this->request->isPost()) { $this->error('请求方式异常'); } $id = input('id',''); $uid = $this->auth->isLogin()?$this->auth->id:''; $money = $uid?\app\api\model\service\User::where('id',$uid)->value('money'):0.00; $isPlus = $uid?\app\api\model\service\UserInfo::where('user_id',$uid)->value('is_plus'):0; $discount = $uid?\app\api\model\service\UserInfo::where('user_id',$uid)->value('discount '):0; $package = \app\api\model\service\PackageCard::where(['status'=>'normal','id'=>$id])->find(); !$package && $this->error('套餐产品信息异常'); $package = \app\api\model\service\PackageCard::packageInfo($package); $package['goods'] = \app\api\model\service\PackageGoods::getList($package['id']); $this->success('信息返回成功',['package'=>$package,'money'=>$money,'isPlus'=>$isPlus,'discount'=>$discount]); } public function createPackageOrder() { if (!$this->request->isPost()) { $this->error('请求方式异常'); } $uid = $this->auth->id; $post = input('post.','','trim,strip_tags,htmlspecialchars,xss_clean'); $validate = Loader::validate('service.PackageOrder'); if(!$validate->scene('add')->check($post)){ $this->error($validate->getError()); } $re = ''; Db::startTrans(); try{ $post['user_id'] = $uid; $re = \app\api\model\service\PackageOrder::createOrder($post); Db::commit(); } catch (Exception $e) { Db::rollback(); $this->error($e->getMessage()); } $this->success('支付信息返回成功',$re); } public function packageOrderList() { if (!$this->request->isPost()) { $this->error('请求方式异常'); } $uid = $this->auth->id; $post = input('post.','','trim,strip_tags'); $post['user_id'] = $uid; $re = []; try{ $re = \app\api\model\service\PackageOrder::getOrderList($post); } catch (Exception $e) { $this->error($e->getMessage()); } $this->success('信息返回成功',$re); } public function getPackageDetail() { if (!$this->request->isPost()) { $this->error('请求方式异常'); } $type = input('type',''); if($type == 'detail') { $detailId = input('detail_id',''); $info = \app\api\model\service\PackageOrderDetail::where(['id'=>$detailId])->find(); !$info && $this->error('信息异常'); $this->success('信息返回成功',$info); } $id = input('id',''); $list = \app\api\model\service\PackageOrderDetail::where(['package_order_id'=>$id])->select(); $this->success('信息返回成功',$list); } public function createServiceOrder() { if (!$this->request->isPost()) { $this->error('请求方式异常'); } $uid = $this->auth->id; $post = input('post.','','trim,strip_tags'); $post['user_id'] = $uid; try{ \app\api\model\service\Order::createPackageOrder($post); } catch (Exception $e) { $this->error($e->getMessage()); } $this->success('订单预约成功'); } public function cancelPackage() { if (!$this->request->isPost()) { $this->error('请求方式异常'); } $uid = $this->auth->id; $id = input('id',''); $info = \app\api\model\service\PackageOrder::where(['id'=>$id,'status'=>['in',[1,-1]],'user_id'=>$uid])->field('id,status,user_id,starttime,endtime,orderId,payprice,trade_no,paytype')->find(); !$info && $this->error('当前订单无法申请退款'); //$info['endtime']error('订单已超出有效期,无法退款'); $totalPrice = sprintf("%.2f",\app\api\model\service\PackageOrderDetail::getRefundPrice($info)); \app\api\model\service\PackageOrder::where(['id'=>$id])->update(['is_service'=>1,'status'=>-2,'original_status'=>$info['status'],'total_refund_price'=>$totalPrice,'refund_price'=>$totalPrice]); $this->success('套餐卡退款申请已提交'); } }