Переглянути джерело

提现打款成功,扣余额

gorden 5 місяців тому
батько
коміт
02e121091d

+ 26 - 1
app/admin/controller/finance/WithdrawalListController.php

@@ -7,9 +7,12 @@ use app\admin\service\member\MemberService;
 use app\controller\Curd;
 use app\model\ClientConfig;
 use app\model\Member;
+use app\model\MemberAccount;
 use app\model\MemberAccountList;
 use app\model\Order;
 use app\model\OrderSheet;
+use support\Db;
+use support\exception\BusinessException;
 use support\Request;
 use support\Response;
 
@@ -140,10 +143,11 @@ class WithdrawalListController extends Curd
         $memberAccountListId = $request->post('member_account_list_id');
         $status = $request->post('status');
         $password = $request->post('pay_pwd');
-        if ($status == 'ACTIVED' && $password != '888666'){
+        if ($status == 'ACTIVED' && $password != '888666') {
             return json_fail('密码错误');
         }
 
+        Db::beginTransaction();
         try {
             $withdraw = MemberAccountList::where('member_account_list_id', $memberAccountListId)->first();
             $withdraw->member_account_list_status = $status;
@@ -153,13 +157,34 @@ class WithdrawalListController extends Curd
             }
             if ($status == 'ACTIVED') {
                 $memberAccountListJson['resulttime'] = date('Y-m-d H:i:s');
+                // 扣账户余额
+                $account = MemberAccount::where('join_account_member_id', $withdraw->join_member_account_list_member_id)
+                    ->where('member_account_classify', 'CASH')
+                    ->where('member_account_status', 'ACTIVED')
+                    ->first();
+                if (empty($account)) {
+                    throw new BusinessException("账户异常");
+                }
+                if ($account->member_account_surplus < $withdraw->member_account_list_amount) {
+                    throw new BusinessException("账户余额不足");
+                }
+                $account->member_account_surplus = $account->member_account_surplus - $withdraw->member_account_list_amount;
+                $account->member_account_expend = $account->member_account_expend + $withdraw->member_account_list_amount;
+                $account->save();
             }
             $withdraw->save();
 
             _syslog('提现', '修改状态成功');
 
+            Db::commit();
             return json_success('success');
+        } catch (BusinessException $e) {
+
+            Db::rollBack();
+            return json_fail($e->getMessage());
         } catch (\Exception $e) {
+
+            Db::rollBack();
             return json_fail("修改状态失败");
         }
 

+ 8 - 1
app/admin/controller/order/DishesController.php

@@ -129,7 +129,7 @@ class DishesController extends Curd
         if ($field) {
             $model = $model->orderBy($field, $order);
         }
-        $model = $model->select('order.*', 'order_return.orders_return_id', 'order_return.join_return_order_id', 'order_return.order_return_status', 'order_return.order_return_apply_json', 'order_return.order_return_remark');
+        $model = $model->select('order.*', 'order_return.orders_return_id', 'order_return.join_return_order_id', 'order_return.order_return_status', 'order_return.order_return_apply_json', 'order_return.order_return_refund_json', 'order_return.order_return_remark');
         return $model;
     }
 
@@ -148,6 +148,7 @@ class DishesController extends Curd
                 $item['sheet']['order_sheet_num'] = intval($item['sheet']['order_sheet_num']);
             }
             unset($item['sheets']);
+            $item['order_return_amount'] = 0;
             if (isset($item['orders_return_id'])) {
                 $item['return'] = [
                     'orders_return_id' => $item['orders_return_id'],
@@ -156,6 +157,12 @@ class DishesController extends Curd
                     'order_return_apply_json' => $item['order_return_apply_json'],
                     'order_return_remark' => $item['order_return_remark']
                 ];
+                if (!empty($item['order_return_refund_json'])) {
+                    $refundJson = json_decode($item['order_return_refund_json'], true);
+                    if (isset($refundJson['amount'])) {
+                        $item['order_return_amount'] = $refundJson['amount'];
+                    }
+                }
             }
         }
 

+ 9 - 2
app/admin/controller/order/WholeController.php

@@ -220,7 +220,7 @@ class WholeController extends Curd
         if ($field) {
             $model = $model->orderBy($field, $order);
         }
-        $model = $model->select('order.*', 'order_express.join_express_order_id', 'order_express.order_express_type', 'order_return.orders_return_id', 'order_return.join_return_order_id', 'order_return.order_return_status', 'order_return.order_return_apply_json', 'order_return.order_return_remark');
+        $model = $model->select('order.*', 'order_express.join_express_order_id', 'order_express.order_express_type', 'order_return.orders_return_id', 'order_return.join_return_order_id', 'order_return.order_return_status', 'order_return.order_return_apply_json', 'order_return.order_return_refund_json', 'order_return.order_return_remark');
         return $model;
     }
 
@@ -239,14 +239,21 @@ class WholeController extends Curd
                 $item['sheet']['order_sheet_num'] = intval($item['sheet']['order_sheet_num']);
             }
             unset($item['sheets']);
+            $item['order_return_amount'] = 0;
             if (isset($item['orders_return_id'])) {
                 $item['return'] = [
                     'orders_return_id' => $item['orders_return_id'],
                     'join_return_order_id' => $item['join_return_order_id'],
                     'order_return_status' => $item['order_return_status'],
                     'order_return_apply_json' => $item['order_return_apply_json'],
-                    'order_return_remark' => $item['order_return_remark']
+                    'order_return_remark' => $item['order_return_remark'],
                 ];
+                if (!empty($item['order_return_refund_json'])) {
+                    $refundJson = json_decode($item['order_return_refund_json'], true);
+                    if (isset($refundJson['amount'])) {
+                        $item['order_return_amount'] = $refundJson['amount'];
+                    }
+                }
             }
             if (isset($item['join_express_order_id'])) {
                 $item['express'] = [

+ 1 - 0
app/admin/service/member/MemberService.php

@@ -957,6 +957,7 @@ class MemberService
 //            ->toArray();
 
         $memberAccountList = MemberAccountList::where('join_member_account_list_member_id', $memberId)
+            ->where('member_account_list_status','ACTIVED')
             ->selectRaw('
                 member_account_list_extend_json as join_pay_object_json,
                 join_member_account_list_member_id as join_pay_member_id,