123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147 |
- <?php
- /**
- * Created by PhpStorm.
- * User: Administrator
- * Date: 2020-09-23
- * Time: 13:45
- */
-
- namespace api\js\controller;
-
-
- use api\js\model\GoodsModel;
- use api\js\model\GoodsOrderModel;
- use api\js\model\GoodsSeckillModel;
- use cmf\controller\RestUserBaseController;
- use think\Db;
- class GoodsOrderController extends RestUserBaseController
- {
-
- /**
- * 创建订单
- */
- public function addPost()
- {
- $user_id = $this->getUserId();
- $data['user_id'] = $user_id;
- $data['order_sn'] = cmf_get_order_sn();
- $data['goods_id'] = $this->request->param('goods_id');
- $data['seckill_id'] = $this->request->param('seckill_id');
- $data['price'] = GoodsModel::get($data['goods_id'])['price'];
- $data['num'] = $this->request->param('num');
- if($data['seckill_id']){
- $seckill_info = GoodsSeckillModel::get($data['seckill_id']);
- if($seckill_info['end_time'] < time()){
- $this->error('秒杀活动已结束!');
- }
- $goods_ids = $seckill_info->goods()->alias('a')->column('a.id');
- if(!in_array($data['goods_id'],$goods_ids)){
- $this->error('商品不在秒杀活动中!');
- }
- $data['seckill_price'] = GoodsModel::get($data['goods_id'])['seckill_price'];
- $data['pay_price'] = round($data['seckill_price'] * $data['num'],2);
- }else{
- $data['pay_price'] = round($data['price'] * $data['num'],2);
- }
- $data['user_address_id'] = $this->request->param('user_address_id');
- if(!$data['user_address_id']){
- $this->error('请选择地址!');
- }
-
-
-
- $GoodsOrderModel = new GoodsOrderModel();
- $GoodsOrderModel->allowField(true)->isUpdate(false)->save($data);
- $log['admin_id'] = $this->getUserId();
- $log['action_time'] = date('Y-m-d H:i:s');
- $log['obj_id'] = $GoodsOrderModel->id;
- $log['remark'] = '用户创建订单';
- Db::name('goods_order_action_log')->insert($log);
- $this->success('创建订单成功',$GoodsOrderModel->id);
- }
-
-
- public function getlist()
- {
- $GoodsOrderModel = new GoodsOrderModel();
- $status = $this->request->param('status');
- $where['user_id'] = $this->getUserId();
- $page = $this->request->param('page');
- $id = $this->request->param('id');
- if($id){
- $where['id'] = $id;
- }
- if($status !== ''){
- $where['status'] = $status;
- }
-
- $list = $GoodsOrderModel::with(['goods','seckill'])->where($where)->order('id','desc')->page($page,20)->select()->each(function ($list){
- $list->address = Db::name('user_address')->where('id',$list['user_address_id'])->find();
- return $list;
- });
- $this->success('ok',$list);
- }
-
- /**
- * 支付订单
- */
- public function pay()
- {
- $id = $this->request->param('id');
- $pay_type = $this->request->param('pay_type');
- switch ($pay_type)
- {
- case 'alipay';
- $res = aly_pay($id,2);
- if(!empty($res['return_code'])){
- $this->error($res['return_msg']);
- }else{
- $this->success('ok',$res);
- }
-
- break;
- case 'wxpay';
- $res = wx_pay($id,2);
-
- if(!empty($res['result_code'])){
- if($res['err_code_des']){
- $this->error($res['err_code_des']);
- }else{
- $this->error($res['return_msg']);
- }
-
- }else{
- $this->success('ok',$res);
- }
-
- break;
- case 'balance';
- $bool = balance_pay($id,2);
- if($bool === true){
- $this->success('支付成功');
- }else{
- $this->error($bool);
- }
- break;
- }
- }
-
- public function take()
- {
- $id = $this->request->param('order_id');
- $GoodsOrderModel = new GoodsOrderModel();
- $data['status'] = 3;
- $data['take_time'] = time();
- $GoodsOrderModel->allowField(true)->isUpdate(true)->save($data,['id'=>$id]);
- $log['admin_id'] = cmf_get_current_admin_id();
- $log['action_time'] = date('Y-m-d H:i:s');
- $log['obj_id'] = $id;
- $log['remark'] = '订单收货';
- Db::name('goods_order_action_log')->insert($log);
- $this->success('操作成功');
- }
-
-
- }
|