| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275 |
- <?php
- /**
- * Niushop商城系统 - 团队十年电商经验汇集巨献!
- * =========================================================
- * Copy right 2019-2029 上海牛之云网络科技有限公司, 保留所有权利。
- * ----------------------------------------------
- * 官方网址: https://www.niushop.com
- * 这不是一个自由软件!您只能在不用于商业目的的前提下对程序代码进行修改和使用。
- * 任何企业和个人不允许对程序代码以任何形式任何目的再发布。
- * =========================================================
- */
- namespace addon\store\shopapi\controller;
- use app\model\express\ExpressCompany;
- use app\model\express\ExpressCompanyTemplate;
- use app\model\order\OrderCommon as OrderCommonModel;
- use app\model\order\OrderCommon;
- use app\model\order\OrderTrade as OrderTradeModel;
- use app\model\verify\Verify as VerifyModel;
- /**
- * 订单控制器
- * Class Sysorder
- * @package addon\shop\siteapi\controller
- */
- class Ordertrade extends BaseStoreApi
- {
- /**
- * 订单修改收货地址
- * @return mixed
- */
- public function editAddress()
- {
- $order_id = input('order_id', 0);
- $order_common_model = new OrderCommon();
- $province_id = $this->params[ 'province_id' ] ?? 0;
- $city_id = $this->params[ 'city_id' ] ?? 0;
- $district_id = $this->params[ 'district_id' ] ?? 0;
- $community_id = $this->params[ 'community_id' ] ?? 0;
- $address = $this->params[ 'address' ] ?? '';
- $full_address = $this->params[ 'full_address' ] ?? '';
- $longitude = $this->params[ 'longitude' ] ?? '';
- $latitude = $this->params[ 'latitude' ] ?? '';
- $mobile = $this->params[ 'mobile' ] ?? '';
- $telephone = $this->params[ 'telephone' ] ?? '';
- $name = $this->params[ 'name' ] ?? '';
- $data = array (
- 'province_id' => $province_id,
- 'city_id' => $city_id,
- 'district_id' => $district_id,
- 'community_id' => $community_id,
- 'address' => $address,
- 'full_address' => $full_address,
- 'longitude' => $longitude,
- 'latitude' => $latitude,
- 'mobile' => $mobile,
- 'telephone' => $telephone,
- 'name' => $name,
- 'order_id' => $order_id,
- 'site_id' => $this->site_id,
- 'uid' => $this->uid,
- );
- $condition = array (
- [ 'order_id', '=', $order_id ],
- [ 'site_id', '=', $this->site_id ]
- );
- $result = $order_common_model->orderAddressUpdate($data, $condition);
- return $this->response($result);
- }
- /************************************************************* 物流相关 start **************************************************************************/
- /**
- * 获取待发货项
- */
- public function getOrderExpressLists()
- {
- $order_id = $this->params[ 'order_id' ] ?? 0;
- //查询订单的可配送订单项
- $order_trade_model = new OrderTradeModel();
- $condition = array (
- [ 'oe.site_id', '=', $this->site_id ],
- [ 'oe.order_id', '=', $order_id ]
- );
- $result = $order_trade_model->getExpressOrderLists($condition);
- return $this->response($result);
- }
- /**
- * 订单发货
- * @return mixed
- */
- public function delivery()
- {
- $order_common_model = new OrderCommon();
- $data = array (
- 'order_goods_ids' => $this->params[ 'order_goods_ids' ] ?? 0,//商品id
- 'express_company_id' => $this->params[ 'express_company_id' ] ?? 0,//物流公司
- 'delivery_no' => $this->params[ 'delivery_no' ] ?? '',//快递单号
- 'order_id' => $this->params[ 'order_id' ] ?? 0,//订单id
- 'delivery_type' => $this->params[ 'delivery_type' ] ?? 'not',//是否需要物流
- 'site_id' => $this->site_id,
- 'uid' => $this->uid
- );
- $result = $order_common_model->delivery($data);
- return $this->response($result);
- }
- /**
- * 确认收货(应该不会有)
- */
- public function takeDelivery()
- {
- $order_id = $this->params[ 'order_id' ] ?? 0;
- $order_model = new OrderCommonModel();
- $result = $order_model->orderCommonTakeDelivery($order_id);
- return $this->response($result);
- }
- /**
- * 查询可用的物流公司
- * @return array
- */
- public function getShopCompany()
- {
- $express_company_template_model = new ExpressCompanyTemplate();
- //平台公用的物流公司
- $company_list_result = $express_company_template_model->getExpressCompanyTemplateList([ [ "site_id", "=", 0 ] ]);
- $company_list = $company_list_result[ "data" ];
- $company_list = array_column($company_list, "company_id");
- $express_company_model = new ExpressCompany();
- $result = $express_company_model->getExpressCompanyList([ [ "site_id", "=", $this->site_id ], [ 'company_id', 'in', $company_list ] ]);
- return $this->response($result);
- }
- /************************************************************* 物流相关 end **************************************************************************/
- /************************************************************* 自提相关 start **************************************************************************/
- /**
- * 获取待发货项
- */
- public function getOrderStoreLists()
- {
- $order_id = $this->params[ 'order_id' ] ?? 0;
- //查询订单的可配送订单项
- $order_trade_model = new OrderTradeModel();
- $condition = array (
- [ 'site_id', '=', $this->site_id ],
- [ 'order_id', '=', $order_id ]
- );
- $store_info = $order_trade_model->getOrderStore($condition, 'status')[ 'data' ] ?? [];
- if (empty($store_info))
- return $this->response($this->error());
- $order_common_model = new OrderCommon();
- $order_info = $order_common_model->getOrderInfo($condition)[ 'data' ] ?? [];
- if (empty($order_info))
- return $this->response($this->error());
- $order_goods_list = $order_common_model->getOrderGoodsList($condition)[ 'data' ] ?? [];
- if (empty($order_goods_list))
- return $this->response($this->error());
- foreach ($order_goods_list as $k => $v) {
- $order_goods_list[ $k ][ 'store_info' ] = $store_info;
- }
- $order_info[ 'order_goods_list' ] = $order_goods_list;
- return $this->response($order_common_model->success($order_info));
- }
- /**
- * 自提操作
- */
- public function takeStore()
- {
- $order_id = $this->params[ 'order_id' ] ?? 0;
- $store_type = $this->params[ 'store_type' ] ?? 'code';//提货方式 code 需要提货码 no_code无需提货码
- $store_no = $this->params[ 'store_no' ] ?? '';//提货码
- $order_trade_model = new OrderTradeModel();
- $condition = array (
- [ 'site_id', '=', $this->site_id ],
- [ 'order_id', '=', $order_id ]
- );
- $store_info = $order_trade_model->getOrderStore($condition, 'member_verify_id')[ 'data' ] ?? [];
- if (empty($store_info))
- return $this->response($this->error());
- $member_verify_id = $store_info[ 'member_verify_id' ];
- $verify_model = new VerifyModel();
- switch ( $store_type ) {
- case 'code':
- if (empty($store_no)) {
- return $this->response($verify_model->error([], '核销码不能为空!'));
- }
- $verify_info = $verify_model->getMemberVerifyInfo([ [ 'verify_code', '=', $store_no ] ])[ 'data' ] ?? [];
- if (empty($verify_info)) {
- return $this->response($verify_model->error([], '核销码不是有效的!'));
- }
- if ($member_verify_id != $verify_info[ 'id' ])
- return $this->response($verify_model->error([], '核销码和当前提货商品不匹配!'));
- break;
- case 'no_code':
- break;
- }
- $result = $verify_model->verify($member_verify_id, $this->uid, $this->site_id);
- return $this->response($result);
- }
- /************************************************************* 自提相关 end **************************************************************************/
- /************************************************************* 本地配送相关 start **************************************************************************/
- /**
- * 获取待发货项
- */
- public function getOrderLocalLists()
- {
- $order_id = $this->params[ 'order_id' ] ?? 0;
- //查询订单的可配送订单项
- $order_trade_model = new OrderTradeModel();
- $condition = array (
- [ 'site_id', '=', $this->site_id ],
- [ 'order_id', '=', $order_id ]
- );
- $local_info = $order_trade_model->getOrderLocal($condition, 'status')[ 'data' ] ?? [];
- if (empty($local_info))
- return $this->error();
- $order_common_model = new OrderCommon();
- $order_info = $order_common_model->getOrderInfo($condition)[ 'data' ] ?? [];
- if (empty($order_info))
- return $this->error();
- $order_goods_list = $order_common_model->getOrderGoodsList($condition)[ 'data' ] ?? [];
- if (empty($order_goods_list))
- return $this->error();
- foreach ($order_goods_list as $k => $v) {
- $order_goods_list[ $k ][ 'local_info' ] = $local_info;
- }
- $order_info[ 'order_goods_list' ] = $order_goods_list;
- return $this->response($order_common_model->success($order_info));
- }
- /**
- * 配送操作
- */
- public function doLocal()
- {
- $order_id = $this->params[ 'order_id' ] ?? 0;
- $delivery_clerk_id = $this->params[ 'delivery_clerk_id' ] ?? 0;//配送员
- $order_common_model = new OrderCommon();
- $data = array (
- 'order_id' => $order_id,
- 'delivery_clerk_id' => $delivery_clerk_id,
- 'site_id' => $this->site_id,
- );
- $result = $order_common_model->localDelivery($data);
- return $this->response($result);
- }
- /************************************************************* 本地配送相关 end **************************************************************************/
- }
|