|
@@ -5,11 +5,17 @@ namespace app\admin\controller\merchant;
|
|
|
use app\admin\controller\AuthController;
|
|
|
use app\admin\model\order\StoreOrder as StoreOrderModel;
|
|
|
use app\admin\model\order\StoreOrderStatus;
|
|
|
+use app\admin\model\store\StoreProductAttr;
|
|
|
+use app\admin\model\store\StoreProductAttrValue;
|
|
|
+use app\admin\model\system\ShippingTemplates;
|
|
|
use app\admin\model\system\SystemStoreBill;
|
|
|
use app\admin\model\system\SystemStoreExtract;
|
|
|
use app\admin\model\system\SystemStorePoint;
|
|
|
+use app\admin\model\system\SystemStoreProductStock;
|
|
|
use app\admin\model\ump\StorePink;
|
|
|
use app\admin\model\user\User;
|
|
|
+use app\models\store\StoreCart;
|
|
|
+use app\models\store\StoreOrder;
|
|
|
use crmeb\repositories\OrderRepository;
|
|
|
use crmeb\services\FormBuilder;
|
|
|
use crmeb\services\JsonService;
|
|
@@ -115,7 +121,67 @@ class SystemStore extends AuthController
|
|
|
if (!$this->store_id) {
|
|
|
$this->failed('未知门店');
|
|
|
}
|
|
|
+// $store_info = SystemStoreModel::get($this->store_id);
|
|
|
+ $stocks = SystemStoreProductStock::getStockList(['excel' => 0, 'page' => 1, 'limit' => PHP_INT_MAX], $this->store_id)['data'];
|
|
|
+ if ($stocks) $stocks = $stocks->toArray();
|
|
|
+// dump($stocks);
|
|
|
+ $products = function () use ($stocks) {
|
|
|
+ $return = [];
|
|
|
+ foreach ($stocks as $v) {
|
|
|
+ $return[] = ['label' => $v['product_info']['store_name'] . "|" . $v['product_info']['product_attr_info']['suk'] . "【库存:{$v['stock']}】", 'value' => $v['unique']];
|
|
|
+ }
|
|
|
+ return $return;
|
|
|
+ };
|
|
|
+ $f = array();
|
|
|
+ $f[] = FormBuilder::select('uni', '商品')->setOptions($products())->filterable(true)->required();
|
|
|
+ $f[] = FormBuilder::number('num', '数量')->step(1)->min(0)->required();
|
|
|
+ $f[] = FormBuilder::input('real_name', '购买人')->required();
|
|
|
+ $f[] = FormBuilder::input('phone', '手机号码')->required();
|
|
|
+ $form = FormBuilder::make_post_form('创建订单', $f, Route::buildUrl('order_save'));
|
|
|
+ $this->assign(compact('form'));
|
|
|
+ return $this->fetch('public/form-builder');
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
+ public function order_save()
|
|
|
+ {
|
|
|
+ if (!$this->store_id) {
|
|
|
+ JsonService::fail('未知门店');
|
|
|
+ }
|
|
|
+ $date = UtilService::postMore([
|
|
|
+ ['uni', ''],
|
|
|
+ ['num', 0],
|
|
|
+ ['real_name', ''],
|
|
|
+ ['phone', ''],
|
|
|
+ ], $this->request);
|
|
|
+ if (!$date['uni']) JsonService::fail('请选择规格');
|
|
|
+ if (!$date['num']) JsonService::fail('请输入购买数量');
|
|
|
+ $uid = User::where('admin_id', $this->adminId)->value('uid');
|
|
|
+ if (!$uid) JsonService::fail('请先绑定前台账户');
|
|
|
+ $product = StoreProductAttrValue::where('unique', $date['uni'])->find();
|
|
|
+ if (!$product) JsonService::fail('规格不存在');
|
|
|
+ $res = StoreCart::setCart($uid, $product['product_id'], $date['num'], $date['uni'], 'product', 1);
|
|
|
+ if ($res) {
|
|
|
+ $cartId = $res->id;
|
|
|
+ $cartGroup = StoreCart::getUserProductCartList($uid, [$cartId], 1);
|
|
|
+ if (count($cartGroup['invalid'])) JsonService::fail($cartGroup['invalid'][0]['productInfo']['store_name'] . '已失效!');
|
|
|
+ if (!$cartGroup['valid']) JsonService::fail('请提交购买的商品');
|
|
|
+ $cartInfo = $cartGroup['valid'];
|
|
|
+ $priceGroup = StoreOrder::getOrderPriceGroup($cartInfo, 0);
|
|
|
+ $other = [
|
|
|
+ 'offlinePostage' => sys_config('offline_postage'),
|
|
|
+ 'integralRatio' => sys_config('integral_ratio')
|
|
|
+ ];
|
|
|
+ $orderKey = StoreOrder::cacheOrderInfo($uid, $cartInfo, $priceGroup, $other);
|
|
|
+ if (!$orderKey) JsonService::fail('生成订单错误!');
|
|
|
+ if (StoreOrder::be(['order_id|unique' => $orderKey, 'uid' => $uid, 'is_del' => 0]))
|
|
|
+ JsonService::fail('订单已生成');
|
|
|
+ $order = StoreOrder::cacheKeyCreateOrder($uid, $orderKey, 0, 'offline', false, 0, '加盟店后台订单', 0, 0, 0, 0, 0, false, 1, 2, $date['real_name'], $date['phone'], $this->store_id, 0, 1);
|
|
|
+ if ($order === false) JsonService::fail(StoreOrder::getErrorInfo('订单生成失败'));
|
|
|
+ else JsonService::success('订单已生成');
|
|
|
+ } else {
|
|
|
+ JsonService::fail('加入购物车失败');
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -443,5 +509,28 @@ class SystemStore extends AuthController
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 立即支付
|
|
|
+ * @param $id
|
|
|
+ */
|
|
|
+ public function offline($id)
|
|
|
+ {
|
|
|
+ if (!$this->store_id) {
|
|
|
+ JsonService::fail('未知门店');
|
|
|
+ }
|
|
|
+ $order = StoreOrder::get($id);
|
|
|
+ if ($order['store_id'] != $this->store_id) {
|
|
|
+ JsonService::fail('订单门店异常');
|
|
|
+ }
|
|
|
+ $res = StoreOrderModel::updateOffline($id);
|
|
|
+ if ($res) {
|
|
|
+ event('StoreProductOrderOffline', [$id]);
|
|
|
+ StoreOrderStatus::setStatus($id, 'offline', '线下付款');
|
|
|
+ return JsonService::successful('修改成功!');
|
|
|
+ } else {
|
|
|
+ return JsonService::fail(StoreOrderModel::getErrorInfo('修改失败!'));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
//TODO 库存管理
|
|
|
}
|