123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366 |
- <?php
- /**
- * Index.php
- * Niushop商城系统 - 团队十年电商经验汇集巨献!
- * =========================================================
- * Copy right 2015-2025 山西牛酷信息科技有限公司, 保留所有权利。
- * ----------------------------------------------
- * 官方网址: http://www.niushop.com.cn
- * 这不是一个自由软件!您只能在不用于商业目的的前提下对程序代码进行修改和使用。
- * 任何企业和个人不允许对程序代码以任何形式任何目的再发布。
- * =========================================================
- * @author : niuteam
- * @date : 2015.1.17
- * @version : v1.0.0.0
- */
- namespace app\api\controller;
- use app\model\express\ExpressPackage;
- use app\model\member\Member;
- use app\model\member\MemberVip;
- use app\model\order\Invoice;
- use app\model\order\Order as OrderModel;
- use app\model\order\OrderCommon;
- use app\model\order\OrderCommon as OrderCommonModel;
- class Order extends BaseApi
- {
-
- /**
- * 详情信息
- */
- public function detail()
- {
- $token = $this->checkToken();
- if ($token['code'] < 0) return $this->response($token);
- $order_common_model = new OrderCommonModel();
- $order_id = isset($this->params['order_id']) ? $this->params['order_id'] : 0;
- $result = $order_common_model->getMemberOrderDetail($order_id, $this->member_id);
- $goods_model = new \app\model\goods\Goods();
- $result['data']['create_time']=date('Y-m-d H:i:s',$result['data']['create_time']);
- $result['data']['pay_time']=date('Y-m-d H:i:s',$result['data']['pay_time']);
- $result['data']['delivery_time']=date('Y-m-d H:i:s',$result['data']['delivery_time']);
- $result['data']['finish_time']=date('Y-m-d H:i:s',$result['data']['finish_time']);
- foreach ($result['data']['order_goods'] as &$vv) {
- $sku_spec_format = $goods_model->getGoodsSkuInfo([['sku_id', '=', $vv['sku_id']]], 'sku_spec_format');
- $vv['sku_spec_format'] = $sku_spec_format['data']['sku_spec_format'];
- }
- return $this->response($result);
- }
-
- /**
- * 列表信息
- */
- public function lists()
- {
- $token = $this->checkToken();
- if ($token['code'] < 0) return $this->response($token);
- $order_common_model = new OrderCommonModel();
- $condition = array(
- [ "member_id", "=", $this->member_id ],
- );
- $order_status = isset($this->params['order_status']) ? $this->params['order_status'] : 'all';
- switch ($order_status) {
- case "waitpay"://待付款
- $condition[] = [ "order_status", "=", 0 ];
- break;
- case "waitsend"://待发货
- $condition[] = [ "order_status", "=", 1 ];
- break;
- case "waitconfirm"://待收货
- $condition[] = [ "order_status", "=", 3 ];
- break;
- case "waitrate"://待评价
- $condition[] = [ "order_status", "in", [ 4, 10 ] ];
- $condition[] = [ "is_evaluate", "=", 1 ];
- break;
- }
- // if (c !== "all") {
- // $condition[] = [ "order_status", "=", $order_status ];
- // }
- $page_index = isset($this->params['page']) ? $this->params['page'] : 1;
- $page_size = isset($this->params['page_size']) ? $this->params['page_size'] : PAGE_LIST_ROWS;
- $res = $order_common_model->getMemberOrderPageList($condition, $page_index, $page_size, "create_time desc");
- $goods_model = new \app\model\goods\Goods();
- foreach ($res['data']['list'] as &$v){
- $v['create_time']=date('Y-m-d H:i:s',$v['create_time']);
- foreach ($v['order_goods'] as &$vv) {
- $sku_spec_format = $goods_model->getGoodsSkuInfo([['sku_id', '=', $vv['sku_id']]], 'sku_spec_format');
- $vv['sku_spec_format'] = $sku_spec_format['data']['sku_spec_format'];
- }
- }
- return $this->response($res);
- }
-
- /**
- * 订单评价基础信息
- */
- public function evluateinfo()
- {
- $token = $this->checkToken();
- if ($token['code'] < 0) return $this->response($token);
-
- $order_id = isset($this->params['order_id']) ? $this->params['order_id'] : 0;
- if (empty($order_id)) {
- return $this->response($this->error('', 'REQUEST_ORDER_ID'));
- }
-
- $order_common_model = new OrderCommonModel();
- $order_info = $order_common_model->getOrderInfo([
- [ 'order_id', '=', $order_id ],
- [ 'member_id', '=', $token['data']['member_id'] ],
- [ 'order_status', 'in', ('4,10') ],
- [ 'is_evaluate', '=', 1 ],
- ], 'evaluate_status,evaluate_status_name');
-
- $res = $order_info['data'];
- if (!empty($res)) {
- if ($res['evaluate_status'] == 2) {
- return $this->response($this->error('', '该订单已评价'));
- } else {
-
- $condition = [
- [ 'order_id', '=', $order_id ],
- [ 'member_id', '=', $token['data']['member_id'] ],
- [ 'refund_status', '<>', 3],
- ];
- $list = $order_common_model->getOrderGoodsList($condition, 'order_goods_id,order_id,order_no,site_id,site_name,member_id,goods_id,sku_id,sku_name,sku_image,price,num');
- $list = $list['data'];
- $res['list'] = $list;
- return $this->response($this->success($res));
- }
- } else {
- return $this->response($this->error('', '没有找到该订单'));
- }
-
- }
-
- /**
- * 订单收货(收到所有货物)
- */
- public function takeDelivery()
- {
- $token = $this->checkToken();
- if ($token['code'] < 0) return $this->response($token);
-
- $order_id = isset($this->params['order_id']) ? $this->params['order_id'] : 0;
- if (empty($order_id)) {
- return $this->response($this->error('', 'REQUEST_ORDER_ID'));
- }
- $order_model = new OrderCommonModel();
- $result = $order_model->orderCommonTakeDelivery($order_id);
- return $this->response($result);
- }
- /**
- * @return void
- * 订单完成店铺佣金
- */
- public function shop_commission($order_id){
- $order_model = new \app\model\order\Order();
- $order = $order_model->getOrderInfo([['order_id','=',$order_id]]);
- print_r($order);die;
- }
-
-
- /**
- * 关闭订单
- */
- public function close()
- {
- $token = $this->checkToken();
- if ($token['code'] < 0) return $this->response($token);
-
- $order_id = isset($this->params['order_id']) ? $this->params['order_id'] : 0;
- if (empty($order_id)) {
- return $this->response($this->error('', 'REQUEST_ORDER_ID'));
- }
- $order_model = new OrderModel();
- $result = $order_model->orderClose($order_id);
- return $this->response($result);
- }
-
- /**
- * 获取订单数量
- */
- public function num()
- {
- $token = $this->checkToken();
- if ($token['code'] < 0) return $this->response($token);
-
- if (empty($this->params['order_status'])) {
- return $this->response($this->error('', 'REQUEST_ORDER_STATUS'));
- }
-
- $order_common_model = new OrderCommonModel();
- $data = [];
- foreach (explode(',', $this->params['order_status']) as $order_status) {
- $condition = array(
- [ "member_id", "=", $this->member_id ],
- );
- switch ($order_status) {
- case "waitpay"://待付款
- $condition[] = [ "order_status", "=", 0 ];
- break;
- case "waitsend"://待发货
- $condition[] = [ "order_status", "=", 1 ];
- break;
- case "waitconfirm"://待收货
- $condition[] = [ "order_status", "=", 3 ];
- break;
- case "waitrate"://待评价
- $condition[] = [ "order_status", "in", [ 4, 10 ] ];
- $condition[] = [ "is_evaluate", "=", 1 ];
- break;
- }
- $result = $order_common_model->getOrderCount($condition);
- $data[ $order_status ] = $result['data'];
- }
- $data['sum'] = $data['waitpay']+$data['waitsend']+$data['waitconfirm']+$data['waitrate'];
- return $this->response(success(0, '', $data));
- }
-
- /**
- * 订单包裹信息
- */
- public function package()
- {
- $token = $this->checkToken();
- if ($token['code'] < 0) return $this->response($token);
- $order_id = isset($this->params['order_id']) ? $this->params['order_id'] : '';//订单id
- $express_package_model = new ExpressPackage();
- $condition = array(
- [ "member_id", "=", $this->member_id ],
- [ "order_id", "=", $order_id ],
- );
- $result = $express_package_model->package($condition);
- if ($result) return $this->response($this->success($result));
- else return $this->response($this->error());
- }
-
- /**
- * 订单支付
- * @return string
- */
- public function pay()
- {
- $token = $this->checkToken();
- if ($token['code'] < 0) return $this->response($token);
- $order_ids = isset($this->params['order_ids']) ? $this->params['order_ids'] : '';//订单id
- if (empty($order_ids)) return $this->response($this->error('', "订单数据为空"));
- $order_common_model = new OrderCommon();
- $result = $order_common_model->splitOrderPay($order_ids);
- return $this->response($result);
- }
- /**
- * @return false|string
- * 修改订单地址
- */
- public function edit_address(){
- $token = $this->checkToken();
- if ($token['code'] < 0) return $this->response($token);
- $order_id = isset($this->params['order_id']) ? $this->params['order_id'] : '';//订单id
- if (empty($order_id)) return $this->response($this->error('', "订单数据为空"));
- $addredd_id = isset($this->params['address_id']) ? $this->params['address_id'] : '';//地址id
- if (empty($addredd_id)) return $this->response($this->error('', "订单数据为空"));
- $address = new \app\model\order\OrderCreate();
- $data=['member_id'=> $token['data']['member_id'],
- 'address_id'=>$addredd_id];
- $member_address = $address->member_address($data);
- $data=[
- 'name' => $member_address['name'],
- 'mobile' => $member_address['mobile'],
- 'telephone' => $member_address['telephone'],
- 'province_id' => $member_address['province_id'],
- 'city_id' => $member_address['city_id'],
- 'district_id' => $member_address['district_id'],
- 'community_id' => $member_address['community_id'] ,
- 'address' => $member_address['address'] ,
- 'full_address' => $member_address['full_address'] ,
- 'longitude' => $member_address['longitude'] ,
- 'latitude' => $member_address['latitude'] ,
- ];
- $order_common_model = new OrderCommon();
- $result = $order_common_model->orderUpdate($data,['order_id'=>$order_id]);
- return $this->response($result);
- }
- /**
- * @return false|string
- *申请开票
- */
- public function invoice(){
- $token = $this->checkToken();
- if ($token['code'] < 0) return $this->response($token);
- $order_id = isset($this->params['order_id']) ? $this->params['order_id'] : '';//订单id
- if (empty($order_id)) return $this->response($this->error('', "订单数据为空"));
- $order_no = isset($this->params['order_no']) ? $this->params['order_no'] : '';//订单id
- if (empty($order_no)) return $this->response($this->error('', "订单号为空"));
- $invoice_rise = isset($this->params['invoice_rise']) ? $this->params['invoice_rise'] : '';//地址id
- if (empty($invoice_rise)) return $this->response($this->error('', "发票抬头不能为空"));
- $invoice_type = isset($this->params['invoice_type']) ? $this->params['invoice_type'] : '';//地址id
- if (empty($invoice_type)) return $this->response($this->error('', "发票类型不能为空"));
- $invoice_price = isset($this->params['invoice_price']) ? $this->params['invoice_price'] : '';//地址id
- if (empty($invoice_price)) return $this->response($this->error('', "发票金额不能为空"));
- $member_model = new \app\model\member\Member();
- $member = $member_model->getMemberInfo([['member_id','=',$token['data']['member_id']]],'username');
- $order_common_model = new OrderCommonModel();
- $site_id = $order_common_model->getOrderInfo(['order_id'=>$order_id],'site_id,sign_time');
- $invoice_time = $site_id['data']['sign_time']+86400*20;
- if ($invoice_time<time()) return $this->response($this->error('', "签收二十天后才能申请开票"));
- $data = [
- 'member_id'=>$token['data']['member_id'],
- 'member_username'=>$member['data']['username'],
- 'order_id'=>$order_id,
- 'order_no'=>$order_no,
- 'invoice_rise'=>$invoice_rise,
- 'invoice_type'=>$invoice_type,
- 'invoice_price'=>$invoice_price,
- 'site_id'=>$site_id['data']['site_id'],
- 'create_time'=>time()
- ];
- $invoice_model = new Invoice();
- $res = $invoice_model->add_invoice($data);
- return $this->response($res);
- }
- public function order_pay(){
- $token = $this->checkToken();
- if ($token['code'] < 0) return $this->response($token);
- $order_id = isset($this->params['order_id']) ? $this->params['order_id'] : '';//订单id
- if (empty($order_id)) return $this->response($this->error('', "订单数据为空"));
- $pay_money = isset($this->params['pay_money']) ? $this->params['pay_money'] : '';//订单id
- if (empty($pay_money)) return $this->response($this->error('', "支付金额不能为空"));
- $pay_type = isset($this->params['pay_type']) ? $this->params['pay_type'] : '';//订单id
- if (empty($pay_type)) return $this->response($this->error('', "支付类型不能为空"));
- $member_model = new Member();
- $member_data = $member_model->getMemberInfo([['member_id','=',$token['data']['member_id']]],'balance_money');
- $member_money = $member_data['data']['balance_money'];
- if($pay_money>$member_money){
- return $this->response($this->error('', "账户余额不足"));
- }
- $order_list = model("order")->getList([ [ 'order_id', 'in', $order_id ] ], '*');
- foreach ($order_list as &$v){
- if($v['order_status']>0){
- return $this->response($this->error('存在已支付订单'));
- break;
- }
- }
- $data = ['member_id' => $token['data']['member_id'], 'pay_money' => $pay_money, 'pay_type' => $pay_type, 'order_id' => $order_id];
- $order_common_model = new OrderCommon();
- $result = $order_common_model->order_pay($data);
- return $this->response($result);
- }
- }
|