| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185 |
- <?php
- namespace app\api\controller\service;
- use app\common\controller\Api;
- use addons\service\library\Refund;
- use think\Db;
- use think\Exception;
- use think\Loader;
- /**
- * 套餐接口
- */
- class Package extends Api
- {
- protected $noNeedLogin = ['packageList','packageDetail','goodsPackage'];
- protected $noNeedRight = ['*'];
- /**
- * 首页套餐卡列表
- * @return void
- * @throws \think\db\exception\DataNotFoundException
- * @throws \think\db\exception\ModelNotFoundException
- * @throws \think\exception\DbException
- */
- public function packageList()
- {
- if (!$this->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']<time() && $this->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('套餐卡退款申请已提交');
- }
- }
|