Browse Source

完善功能

gorden 10 months ago
parent
commit
89bc155988

+ 72 - 0
app/admin/controller/member/AccountController.php

@@ -0,0 +1,72 @@
+<?php
+
+namespace app\admin\controller\member;
+
+use app\controller\Curd;
+use app\model\MemberAccount;
+use app\model\MemberBenefit;
+use support\exception\BusinessException;
+use support\Request;
+
+class AccountController extends Curd
+{
+    public function __construct()
+    {
+        $this->model = new MemberAccount();
+    }
+
+    public function my($id)
+    {
+        $account = MemberAccount::where('join_account_member_id', $id)->get()->toArray();
+        if (!$account) {
+            // 账户表
+            $accountData = [
+                'join_account_member_id' => $id,
+                'member_account_classify' => 'POINTS',
+                'member_account_status' => 'ACTIVED',
+                'member_account_category' => 'NORMAL',
+                'member_account_nbr' => $id . '-POINTS',
+                'member_account_name' => '积分账户',
+                'member_account_addtimes' => time()
+            ];
+            // 积分账户
+            MemberAccount::insert($accountData);
+            $accountData['member_account_classify'] = 'CASH';
+            $accountData['member_account_nbr'] = $id . '-CASH';
+            $accountData['member_account_name'] = '余额账户';
+            // 现金/余额账户
+            MemberAccount::insert($accountData);
+
+            $account = MemberAccount::where('join_account_member_id', $id)->get()->toArray();
+        }
+
+        return json_success('', $account);
+
+    }
+
+    public function incomeExpend(Request $request)
+    {
+        $params = $request->post();
+        $account = MemberAccount::where('member_account_id', $params['member_account_id'])->first();
+        if (!$account) {
+            return json_fail('账户不存在');
+        }
+        try {
+            if (!empty($params['type']) && $params['type'] == 'income') {
+                $account->member_account_income = $account->member_account_income + $params['income'];
+                $account->member_account_surplus = $account->member_account_surplus + $params['income'];
+                $account->save();
+            } elseif (!empty($params['type']) && $params['type'] == 'expend') {
+                $account->member_account_expend = $account->member_account_expend + $params['expend'];
+                $account->member_account_surplus = $account->member_account_surplus - $params['expend'];
+                $account->save();
+            }
+
+            _syslog("账户出入账", $params['type'] == 'income' ? '入账' : '出账');
+
+            return json_success("操作成功");
+        } catch (\Exception $e) {
+            return json_fail('操作失败');
+        }
+    }
+}

+ 50 - 14
app/admin/service/goods/GoodsService.php

@@ -59,6 +59,9 @@ class GoodsService
 
         foreach ($rows as &$row) {
             $row['goods_cover'] = getenv('STORAGE_DOMAIN') . $row['goods_cover'];
+            if (isset($row['running'])){
+                $row['running']['goods_running_storage'] = intval($row['running']['goods_running_storage']);
+            }
         }
 
         return json_success('', compact('rows', 'page', 'pageSize', 'total'));
@@ -260,9 +263,22 @@ class GoodsService
             }
 
             if ($data['is_support_appointment'] == 'Y') {
-                $extendJson = json_decode($data['goods_extend_json'], true);
-                if (isset($extendJson['times'])){
-                    $data['appointment_times'] = $extendJson['times'];
+                $extendJson = json_decode($data['goods_attribute_json'], true);
+                $data['dates'] = $extendJson['dates'] ?? [];
+                if (isset($extendJson['times'])) {
+                    $times = [];
+                    foreach ($extendJson['times'] as $time) {
+                        if (!empty($time['duration'])) {
+                            $startEndTime = explode('-', $time['duration']);
+                            $times[] = [
+                                'person' => $time['person'],
+                                'appointmentTimeStart' => $startEndTime[0],
+                                'appointmentTimeEnd' => $startEndTime[1],
+                            ];
+                        }
+                    }
+
+                    $data['appointment_times'] = $times;
                 }
             }
 
@@ -609,8 +625,8 @@ class GoodsService
             $model->goods_category = $params['goods_category'] ?? '';
             $model->goods_prefix = $params['goods_prefix'] ?? '';
             $model->goods_name = $params['goods_name'];
-            $model->goods_market_price = $params['goods_market_price'] ?? '';
-            $model->goods_sales_price = $params['goods_sales_price'] ?? '';
+            $model->goods_market_price = $params['goods_market_price'] ?? 0;
+            $model->goods_sales_price = $params['goods_sales_price'] ?? 0;
             $model->goods_sku_json = !empty($params['goods_sku_json_label']) ? json_encode($params['goods_sku_json_label']) : json_encode(['规格' => []]);
             $model->goods_attribute_json = !empty($params['goods_attribute_json']) ? $params['goods_attribute_json'] : '{}';
 //            $model->goods_service_json = !empty($params['goods_service_json']) ? $params['goods_service_json'] : '{}';
@@ -621,12 +637,23 @@ class GoodsService
             $model->goods_groupby = $params['goods_groupby'] ?? '';
             $model->goods_remark = $params['goods_remark'] ?? '';
             $model->goods_extend_json = $params['goods_extend_json'] ?? '{}';
+            $model->is_support_appointment = $params['is_support_appointment'] ?? 'N';
             $model->goods_addtimes = time();
 
-            if (!empty($params['is_support_appointment']) && $params['is_support_appointment'] == 'Y' &&  !empty($params['appointment_times'])) {
-                $model->goods_extend_json = [
-                    'times' => $params['appointment_times']
-                ];
+            if (!empty($params['is_support_appointment']) && $params['is_support_appointment'] == 'Y' && !empty($params['appointment_times'])) {
+                $times = [];
+                foreach ($params['appointment_times'] as $time) {
+                    $times[$time['appointmentTimeStart']] = [
+                        'person' => $time['person'],
+                        'duration' => $time['appointmentTimeStart'] . '-' . $time['appointmentTimeEnd']
+                    ];
+                }
+                $model->goods_attribute_json = json_encode([
+                    'icon' => '',
+                    'dates' => $params['dates'] ?? [],
+                    'times' => $times
+                ]);
+                dump($model->goods_attribute_json);
             }
             if ($model->save()) {
                 return $model->goods_id;
@@ -816,10 +843,19 @@ class GoodsService
                 $newKey = Goods::LISTING_KEY_PREFIX . date('YmdHi', $data['goods_on_addtimes']);
                 $redis->sadd($newKey, $data['goods_id']);
             }
-            if (!empty($params['is_support_appointment']) && $params['is_support_appointment'] == 'Y' &&  !empty($params['appointment_times'])) {
-                $data['goods_extend_json'] = [
-                    'times' => $params['appointment_times']
-                ];
+            if (!empty($params['is_support_appointment']) && $params['is_support_appointment'] == 'Y' && !empty($params['appointment_times'])) {
+                $times = [];
+                foreach ($params['appointment_times'] as $time) {
+                    $times[$time['appointmentTimeStart']] = [
+                        'person' => $time['person'],
+                        'duration' => $time['appointmentTimeStart'] . '-' . $time['appointmentTimeEnd']
+                    ];
+                }
+                $data['goods_attribute_json'] = json_encode([
+                    'icon' => '',
+                    'dates' => $params['dates'] ?? [],
+                    'times' => $times
+                ]);
             }
             foreach ($data as $key => $val) {
                 $row->{$key} = $val;
@@ -977,7 +1013,7 @@ class GoodsService
                     $model->goods_sku_status = $params['goods_status'];
                     $model->goods_sku_specs_json = json_encode($skuArr);
                     $model->goods_sku_title = str_replace('-', ',', $item['sku']) . $params['goods_name'];
-                    $model->goods_sku_market_price = $params['goods_market_price'];
+                    $model->goods_sku_market_price = $params['goods_market_price'] ?? 0;
                     $model->goods_sku_sales_price = $item['price'];
                     $model->goods_sku_storage_json = json_encode(['storage' => $item['stock']]);
                     $model->save();

+ 12 - 2
route/admin.php

@@ -496,6 +496,12 @@ Route::group('/admin', function () {
         })->middleware([
             \app\middleware\AdminAuthCheck::class
         ]);
+        Route::group('/account', function () {
+            Route::get('/my/{id:\w+}', [\app\admin\controller\member\AccountController::class, 'my']);
+            Route::post('/incomeExpend',[\app\admin\controller\member\AccountController::class,'incomeExpend']);
+        })->middleware([
+            \app\middleware\AdminAuthCheck::class
+        ]);
         // 用户管理
         Route::group('', function () {
             Route::get('/selectList', [\app\admin\controller\member\MemberController::class, 'selectList']);
@@ -503,13 +509,17 @@ Route::group('/admin', function () {
             Route::get('/list', [\app\admin\controller\member\MemberController::class, 'list']);
             Route::post('/add', [\app\admin\controller\member\MemberController::class, 'add']);
             Route::post('/update', [\app\admin\controller\member\MemberController::class, 'update']);
-        });
+        })->middleware([
+            \app\middleware\AdminAuthCheck::class
+        ]);
         // 业主管理
         Route::group('/owner', function () {
             Route::get('/selectList', [\app\admin\controller\member\OwnerController::class, 'selectList']);
             Route::get('/list', [\app\admin\controller\member\OwnerController::class, 'list']);
             Route::post('/add', [\app\admin\controller\member\OwnerController::class, 'add']);
-        });
+        })->middleware([
+            \app\middleware\AdminAuthCheck::class
+        ]);
         /* 核销管理 */
         Route::group('/benefit', function () {
             Route::get('/list', [\app\admin\controller\member\BenefitController::class, 'select']);