|
@@ -2,6 +2,7 @@
|
|
|
|
|
|
namespace app\admin\controller\order;
|
|
|
|
|
|
+use app\admin\service\member\MemberService;
|
|
|
use app\admin\service\order\OrderService;
|
|
|
use app\admin\validate\coupon\CouponValidate;
|
|
|
use app\admin\validate\device\DeviceValidate;
|
|
@@ -381,12 +382,12 @@ class WholeController extends Curd
|
|
|
if (isset($orderConfigJson['table'])) {
|
|
|
$order->table = $orderConfigJson['table'];
|
|
|
}
|
|
|
- // if(isset($orderConfigJson['express'])){
|
|
|
- // $order->express = $orderConfigJson['express'];
|
|
|
- // }
|
|
|
- // if(isset($orderConfigJson['premises'])){
|
|
|
- // $order->premises = $orderConfigJson['premises'];
|
|
|
- // }
|
|
|
+ if(isset($orderConfigJson['express'])){
|
|
|
+ $order->express = $orderConfigJson['express'];
|
|
|
+ }
|
|
|
+ if(isset($orderConfigJson['premises'])){
|
|
|
+ $order->premises = $orderConfigJson['premises'];
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
$order->premises = $premises;
|
|
@@ -525,8 +526,17 @@ class WholeController extends Curd
|
|
|
$params = $request->post();
|
|
|
Db::beginTransaction();
|
|
|
try {
|
|
|
+ if (empty($params['join_order_member_id']) && !empty($params['mobile'])){
|
|
|
+ if (Member::where('member_mobile',$params['mobile'])->exists()){
|
|
|
+ Db::rollBack();
|
|
|
+ return json_fail('会员已存在');
|
|
|
+ }
|
|
|
+ $params['join_order_member_id'] = $params['member_id'] = 'MR'.date('YmdHis').random_string(6,'up');
|
|
|
+ // 创建会员
|
|
|
+ MemberService::createMember($params);
|
|
|
+ }
|
|
|
// 余额支付
|
|
|
- if ($params['pay_category'] == 'CASH') {
|
|
|
+ if ($params['pay_category'] == 'CASH' && $params['order_status_payment'] == 'SUCCESS') {
|
|
|
$account = MemberAccount::where('join_account_member_id', $params['join_order_member_id'])
|
|
|
->where('member_account_classify', 'CASH')
|
|
|
->where('member_account_status', 'ACTIVED')
|
|
@@ -548,7 +558,7 @@ class WholeController extends Curd
|
|
|
}
|
|
|
$account->member_account_expend = $account->member_account_expend + $params['order_sheet_pay'];
|
|
|
$account->save();
|
|
|
- } else if ($params['pay_category'] == 'WELFARE') { // 福利账户
|
|
|
+ } else if ($params['pay_category'] == 'WELFARE' && $params['order_status_payment'] == 'SUCCESS') { // 福利账户
|
|
|
$account = MemberAccount::where('join_account_member_id', $params['join_order_member_id'])
|
|
|
->where('member_account_classify', 'WELFARE')
|
|
|
->where('member_account_status', 'ACTIVED')
|
|
@@ -566,6 +576,36 @@ class WholeController extends Curd
|
|
|
$account->member_account_surplus = $account->member_account_surplus - $params['order_sheet_pay'];
|
|
|
$account->member_account_expend = $account->member_account_expend + $params['order_sheet_pay'];
|
|
|
$account->save();
|
|
|
+ } else if ($params['pay_category'] == 'CARD' && $params['order_status_payment'] == 'SUCCESS') { // 储值卡账户
|
|
|
+ $cardNbr = $params['card_nbr'];
|
|
|
+ if (!$cardNbr){
|
|
|
+ Db::rollBack();
|
|
|
+ return json_fail('账户异常');
|
|
|
+ }
|
|
|
+ $account = MemberAccount::where('join_account_member_id', $params['join_order_member_id'])
|
|
|
+ ->where('member_account_nbr', $cardNbr)
|
|
|
+ ->where('member_account_status', 'ACTIVED')
|
|
|
+ ->first();
|
|
|
+
|
|
|
+ dump($cardNbr);
|
|
|
+ if (!$account) {
|
|
|
+ Db::rollBack();
|
|
|
+ return json_fail('账户异常');
|
|
|
+ }
|
|
|
+ $amount = $account->member_account_surplus + $account->member_account_added;
|
|
|
+ if (!$account || $params['order_sheet_pay'] > $amount) {
|
|
|
+ Db::rollBack();
|
|
|
+ return json_fail('账户余额不足');
|
|
|
+ }
|
|
|
+ if ($params['order_sheet_pay'] > $account->member_account_surplus) {
|
|
|
+ $cut = $account->member_account_added - ($params['order_sheet_pay'] - $account->member_account_surplus);
|
|
|
+ $account->member_account_surplus = 0;
|
|
|
+ $account->member_account_added = $cut;
|
|
|
+ } else {
|
|
|
+ $account->member_account_surplus = $account->member_account_surplus - $params['order_sheet_pay'];
|
|
|
+ }
|
|
|
+ $account->member_account_expend = $account->member_account_expend + $params['order_sheet_pay'];
|
|
|
+ $account->save();
|
|
|
}
|
|
|
|
|
|
$goods = Goods::where('goods_id', $params['join_sheet_goods_id'])
|
|
@@ -588,18 +628,27 @@ class WholeController extends Curd
|
|
|
$params['orderGroupId'] = 'OD' . date('YmdHis') . random_string(6, 'up');
|
|
|
$params['benefitId'] = 'BF' . date('YmdHis') . random_string(6, 'up');
|
|
|
|
|
|
+ $orderConfigJson = [];
|
|
|
+ // 优惠
|
|
|
+ if (!empty($params['preferential'])){
|
|
|
+ $orderConfigJson['preferential'] = $params['preferential'];
|
|
|
+ }
|
|
|
+
|
|
|
// 配送方式
|
|
|
- // if ($params['delivery'] == 'PICKUP') { // 自提
|
|
|
- // // $params['order_config_json'] = json_encode([
|
|
|
- // // // 'express' => 'S',
|
|
|
- // // 'premises' => $params['dept_premises_id']
|
|
|
- // // ]);
|
|
|
- // } else if ($params['delivery'] == 'LOGISTICS') {
|
|
|
- // // $params['order_express_json'] = json_encode([
|
|
|
- // // 'express' => 'Y',
|
|
|
- // // ]);
|
|
|
- // }
|
|
|
+ if ($params['delivery'] == 'PICKUP' || $params['delivery'] == 'ARRIVAL') { // 自提/到店
|
|
|
+ $orderConfigJson['premises'] = $params['dept_premises_id'];
|
|
|
+ } else if ($params['delivery'] == 'LOGISTICS') {
|
|
|
+ // $params['order_express_json'] = json_encode([
|
|
|
+ // 'express' => 'Y',
|
|
|
+ // ]);
|
|
|
+ }
|
|
|
+ $params['order_config_json'] = json_encode($orderConfigJson);
|
|
|
|
|
|
+ // 如果是扫码支付
|
|
|
+ if($params['pay_category'] == 'QRCODE' && !empty($params['qrcode_nbr'])){
|
|
|
+ $result = OrderService::qrcodePay($params);
|
|
|
+ dump($result);
|
|
|
+ }
|
|
|
// 写入主订单
|
|
|
$this->insertMain($params);
|
|
|
// 订单详情
|
|
@@ -623,6 +672,18 @@ class WholeController extends Curd
|
|
|
$params['order_express_address'] = $premises->dept_address;
|
|
|
$params['order_express_telephone'] = $premises->dept_telephone;
|
|
|
|
|
|
+ $this->saveExpress($params);
|
|
|
+ } else if ($params['delivery'] == 'ARRIVAL') {
|
|
|
+ $premises = SysDept::where('dept_name', $params['dept_premises_id'])->first();
|
|
|
+ $params['order_express_type'] = '到店';
|
|
|
+ if (!$premises) {
|
|
|
+ throw new BusinessException('门店不存在');
|
|
|
+ }
|
|
|
+
|
|
|
+ $params['order_express_city'] = $premises->dept_city;
|
|
|
+ $params['order_express_address'] = $premises->dept_address;
|
|
|
+ $params['order_express_telephone'] = $premises->dept_telephone;
|
|
|
+
|
|
|
$this->saveExpress($params);
|
|
|
}
|
|
|
// 买的单个服务
|
|
@@ -705,9 +766,11 @@ class WholeController extends Curd
|
|
|
'order_status_system' => $params['order_status_system'],
|
|
|
'order_status_payment' => $params['order_status_payment'],
|
|
|
'order_status_storage' => $params['order_status_storage'],
|
|
|
+ 'order_platform' => $params['order_platform'],
|
|
|
'order_remark' => $params['order_remark'] ?? '',
|
|
|
'order_config_json' => $params['order_config_json'] ?? '[]',
|
|
|
'order_express_json' => $params['order_express_json'] ?? '[]',
|
|
|
+ 'order_extend_json' => $params['order_extend_json'] ?? '[]',
|
|
|
'order_addtimes' => time()
|
|
|
];
|
|
|
|
|
@@ -862,10 +925,10 @@ class WholeController extends Curd
|
|
|
{
|
|
|
$params['order_express_goods'] = json_encode(['sheet' => [$params['sheet_id']]]);
|
|
|
if ($params['delivery'] == 'PICKUP') { // 自提
|
|
|
- $params['order_config_json'] = json_encode([
|
|
|
+ // $params['order_config_json'] = json_encode([
|
|
|
// 'express' => 'S',
|
|
|
// 'premises' => $params['dept_premises_id']
|
|
|
- ]);
|
|
|
+ // ]);
|
|
|
} else if ($params['delivery'] == 'LOGISTICS') {
|
|
|
// $params['order_express_json'] = json_encode([
|
|
|
// 'express' => 'Y',
|