123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202 |
- <?php
- namespace app\api\controller;
- use app\common\controller\Api;
- use app\common\model\Goods;
- use app\common\model\DiscountCoupon;
- use addons\epay\controller\Index;
- use app\common\model\Order;
- use app\common\model\Cart;
- use app\common\model\OrderInvoice;
- use think\Exception;
- use think\Db;
- /**
- * 定价接口
- */
- class Pricing extends Api
- {
- protected $noNeedLogin = ['goodslist'];
- protected $noNeedRight = ['*'];
- /**
- *
- * @ApiTitle (定价产品列表)
- * @ApiMethod (POST)
- * @ApiReturnParams (name="name",description="商品名称")
- * @ApiReturnParams (name="price",description="价格")
- * @ApiReturnParams (name="retail",description="划线价格")
- * @ApiReturnParams (name="image",description="商品图片")
- */
- public function goodslist(){
- $list = Goods::field('id,name,price,retail,image')->where('id','in','1,2,3')->select();
- $list?$this->success('请求成功',$list):$this->error('请求失败',$list);
- }
- /**
- *
- * @ApiTitle (定价产品详情)
- * @ApiMethod (POST)
- * @ApiParams (name="id",description="产品id")
- * @ApiReturnParams (name="name",description="商品名称")
- * @ApiReturnParams (name="price",description="价格")
- * @ApiReturnParams (name="retail",description="划线价格")
- * @ApiReturnParams (name="image",description="商品图片")
- * @ApiReturnParams (name="after_sale",description="售后服务")
- */
- public function gooddetail(){
- $gooddetail = Goods::where('id',input('id'))->field('id,name,price,retail,image,after_sale,after_sale')->find();
- $gooddetail['coupon'] = DiscountCoupon::where(['uid'=>$this->auth->id,'status'=>1])->select();
- $gooddetail?$this->success('请求成功',$gooddetail):$this->error('请求失败',$gooddetail);
- }
- /**
- * 定价产品下单
- * @ApiMethod (POST)
- * @ApiParams (name="deploy_type",description="部署方式0自己部署 1授权部署")
- * @ApiParams (name="deploy",description="授权部署信息(授权部署时传)")
- * @ApiParams (name="type",description="1页面下单,2是购物车下单")
- * @ApiParams (name="goods_id",description="商品id")
- * @ApiParams (name="discount_id",description="优惠券id")
- */
- public function place_order(){
- if(input('deploy_type')==1 && empty(input('deploy'))){
- $this->error('请填写授权部署信息');
- }
- $data = [
- 'uid' => $this->auth->id,
- 'type' => 1,
- 'goods_id' => input('goods_id'),
- 'goods_name' => Goods::where('id',input('goods_id'))->value('name'),
- 'order_no' => pay_no($this->auth->id),
- 'discount_id' => input('discount_id'),
- 'discount' => DiscountCoupon::where('id',input('discount_id'))->value('price'),
- // 'payment_type' => input('payment_type'),
- // 'number_goods' => 1,
- 'deploy_type' => input('deploy_type'),
- 'deploy' => input('deploy'),
- ];
- Db::startTrans();
- if(input('discount_id')){
- $data['amount_real'] = Goods::where('id',input('goods_id'))->value('price') - DiscountCoupon::where('id',input('discount_id'))->value('price');
- DiscountCoupon::where('id',input('discount_id'))->update(['status'=>2]);
- }else{
- $data['amount_real'] = Goods::where('id',input('goods_id'))->value('price');
- }
- try {
- $id = Order::insertGetId($data);
- if(input('type')==2){
- if(!Cart::where(['user_id'=>$this->auth->id,'goods_id'=>input('goods_id')])->delete()){
- $this->error('参数错误');
- }
- }
- // $this->pay_order($data['amount_real'],$data['order_no'],$data['payment_type'],$data['goods_name'],'scan');
- Db::commit();
- $this->success('下单成功',$id);
- }catch (Exception $exception){
- Db::rollback();
- $this->error($exception);
- return false;
- }
- }
- /**
- * 取消订单
- * @ApiMethod (POST)
- * @ApiParams (name="id")
- */
- public function cancellation_order(){
- $dispose = Order::where(['id'=>input('id')])->update(['status'=>0,'cancel_datetime'=>date('Y-m-d H:i:s')]);
- if($dispose){
- $this->success('取消成功');
- }else{
- $this->success('取消失败');
- }
- }
- /**
- * 定价产品支付
- * @ApiMethod (POST)
- * @ApiParams (name="id",description="订单id")
- */
- public function pay_order($amount,$orderid,$type,$title,$method){
- return '1';
- $params = [
- 'amount'=>$amount,
- 'orderid'=>$orderid,
- 'type'=>$type,//可选alipay或wechat
- 'title'=>$title,
- 'notifyurl'=>"回调地址",
- 'returnurl'=>"返回地址",
- 'method'=>$method
- // 'openid'=>"用户的OpenID",
- // 'auth_code'=>"验证码"
- ];
- \addons\epay\library\Service::submitOrder($params);
- }
- /**
- * 购物车列表
- * @ApiMethod (POST)
- * @ApiReturnParams (name="item",description="规格0自己部署 1授权部署")
- * @ApiReturnParams (name="remark",description="备注")
- */
- public function cart_list(){
- $list = Cart::all(function ($query){
- $query->where('user_id',$this->auth->id)->order('id desc');
- });
- foreach ($list as $v){
- $v['goods'] = Goods::field('name,price,image')->find(['id'=>$v['goods_id']]);
- }
- $this->success('请求成功',$list);
- }
- /**
- * 购物车详情
- * @ApiMethod (POST)
- * @ApiParams (name="id",description="记录id")
- * @ApiReturnParams (name="item",description="规格0自己部署 1授权部署")
- * @ApiReturnParams (name="remark",description="备注")
- */
- public function cart_details(){
- $list = Cart::get(function ($query){
- $query->where(['user_id'=>$this->auth->id,'id'=>input('id')])->order('id desc');
- });
- $list['goods'] = Goods::field('name,price,image,after_sale')->find(['id'=>$list['goods_id']]);
- $list['coupon'] = DiscountCoupon::where(['uid'=>$this->auth->id,'status'=>1])->select();
- $this->success('请求成功',$list);
- }
- /**
- * 加入购物车
- * @ApiMethod ("POST")
- * @ApiParams (name="goods_id",description="商品id")
- * @ApiParams (name="item",description="规格0自己部署 1授权部署")
- * @ApiParams (name="remark",description="备注")
- */
- public function add_cart(){
- if(input('item') == 1 && !input('remark')){
- $this->error('部署信息不能为空');
- }
- $cart = Cart::get(['user_id'=>$this->auth->id,'goods_id'=>input('goods_id')]);
- if ($cart){
- $this->success('购物车已存在该商品');
- }else{
- Cart::create(['user_id'=>$this->auth->id,'goods_id'=>input('goods_id'),'item'=>input('item'),'remark'=>input('remark')]);
- $this->success('添加成功');
- }
- }
- /**
- * 删除购物车
- * @ApiMethod ("POST")
- * @ApiParams (name="id",description="记录id")
- */
- public function del_cart(){
- $cart = Cart::get(['user_id'=>$this->auth->id,'id'=>input('id')]);
- if (!$cart){
- $this->error('记录不存在');
- }else{
- $cart->delete();
- $this->success('删除成功');
- }
- }
- }
|