jh-admin/addon/supply/shop/controller/Ordercreate.php

150 lines
5.8 KiB
PHP

<?php
/**
* SAAS应用系统 --- 十年开发经验汇集巨献!
* ==========================================================
* Copy right 2020-2050 成都众联思索科技有限公司,保留所有权利。
* ----------------------------------------------------------
* 官方网址: https://www.zoomtk.com
* 这不是自由软件!未经允许不得用于商业目或程序代码摘取及修改。
* 任何企业和个人不允许对程序代码以任何形式任何目的再发布传播。
* 唯一发布渠道www.zoomtk.com;非官方渠道统一视为侵权行为。
* ==========================================================
*/
namespace addon\supply\shop\controller;
use addon\supply\model\order\OrderCreate as OrderCreateModel;
use app\model\system\Address;
/**
* 订单创建
* @author Administrator
*
*/
class Ordercreate extends BaseSupplyshop
{
public function initialize()
{
parent::initialize();
$check_login_result = $this->checkLogin();
if ($check_login_result['code'] < 0) {
echo json_encode($check_login_result);
exit();
}
}
/**
* 创建订单
*/
public function create()
{
$order_create = new OrderCreateModel();
$buyer_message = input("buyer_message", '');
$buyer_message = !empty($buyer_message) ? json_decode($buyer_message, true) : [];
$delivery = input("delivery", '');
$delivery = !empty($delivery) ? json_decode($delivery, true) : [];
$member_address = input("member_address", '');
$member_address = !empty($delivery) ? json_decode($member_address, true) : [];
$data = [
'cart_ids' => input('cart_ids', ''),
'sku_id' => input('sku_id', ''),
'num' => input('num', ''),
'buyer_shop_id' => $this->site_id,
'buyer_shop_name' => $this->shop_info['site_name'],
'is_balance' => input('is_balance', 0),//是否使用余额
'order_from' => 'pc',
'order_from_name' => "PC",
'pay_password' => input('pay_password', ''),//支付密码
'buyer_message' => $buyer_message,
'delivery' => $delivery,
'buyer_uid' => $this->uid,
'member_address' => $member_address,
];
if (empty($data['cart_ids']) && empty($data['sku_id'])) {
return $order_create->error('', '缺少必填参数商品数据');
}
$res = $order_create->create($data);
return $res;
}
/**
* 计算信息
* @return array|void
*/
public function calculate()
{
$order_create = new OrderCreateModel();
$buyer_message = input("buyer_message", '');
$buyer_message = !empty($buyer_message) ? json_decode($buyer_message, true) : [];
$delivery = input("delivery", '');
$delivery = !empty($delivery) ? json_decode($delivery, true) : [];
$member_address = input("member_address", '');
$member_address = !empty($delivery) ? json_decode($member_address, true) : [];
$data = array(
'cart_ids' => input('cart_ids', ''),
'sku_id' => input('sku_id', ''),
'num' => input('num', ''),
'buyer_shop_id' => $this->site_id,
'is_balance' => input('is_balance', 0),//是否使用余额
'order_from' => 'pc',
'order_from_name' => "PC",
'pay_password' => input('pay_password', ''),//支付密码
'buyer_message' => $buyer_message,
'delivery' => $delivery,
'member_address' => $member_address,
);
if (empty($data['cart_ids']) && empty($data['sku_id'])) {
return $order_create->error('', '缺少必填参数商品数据');
}
$res = $order_create->calculate($data);
return $this->success($res);
}
/**
* 待支付订单 数据初始化
* @return array|mixed
*/
public function payment()
{
$cart_ids = input('cart_ids', '');
$sku_id = input('sku_id', '');
$num = input('num', 0);
if (request()->isAjax()) {
$order_create = new OrderCreateModel();
$buyer_message = input("buyer_message", '');
$buyer_message = !empty($buyer_message) ? json_decode($buyer_message, true) : [];
$delivery = input("delivery", '');
$delivery = !empty($delivery) ? json_decode($delivery, true) : [];
$member_address = input("member_address", '');
$member_address = !empty($delivery) ? json_decode($member_address, true) : [];
$data = [
'cart_ids' => $cart_ids,
'sku_id' => $sku_id,
'num' => $num,
'buyer_shop_id' => $this->site_id,
'is_balance' => input('is_balance', 0),//是否使用余额
'order_from' => 'pc',
'order_from_name' => "PC",
'pay_password' => input('pay_password', ''),//支付密码
'buyer_message' => $buyer_message,
'delivery' => $delivery,
'member_address' => $member_address,
];
if (empty($data['cart_ids']) && empty($data['sku_id'])) {
return $order_create->error('', '缺少必填参数商品数据');
}
$res = $order_create->orderPayment($data);
return $order_create->success($res);
} else {
$this->assign('cart_ids', $cart_ids);
$this->assign('sku_id', $sku_id);
$this->assign('num', $num);
//查询省级数据列表
$address_model = new Address();
$list = $address_model->getAreaList([["pid", "=", 0], ["level", "=", 1]]);
$this->assign("province_list", $list["data"]);
return $this->fetch("ordercreate/payment", [], $this->replace);
}
}
}