Browse Source

完善功能

gorden 9 months ago
parent
commit
bdf3ff900f

+ 5 - 0
app/admin/controller/member/MemberController.php

@@ -44,6 +44,11 @@ class MemberController
         return json_success('', $data);
     }
 
+    public function exportMember(Request $request){
+
+        return MemberService::exportMember($request);
+    }
+
     public function selectWriteOffMember()
     {
         $members = Member::with([

+ 8 - 0
app/admin/controller/member/RoleController.php

@@ -139,4 +139,12 @@ class RoleController extends Curd
         return [$id, $data];
     }
 
+    public function selectList()
+    {
+        $roles = MemberRole::select('member_role_id','member_role_name')
+            ->orderBy('member_role_sort','desc')
+            ->get();
+        return json_success('',$roles);
+    }
+
 }

+ 3 - 1
app/admin/controller/order/WholeController.php

@@ -294,8 +294,10 @@ class WholeController extends Curd
                     $payDetail->pay_category = 'CASH';
                 }
             }
-        }else{
+        }else if(!empty($payDetail)){
             $payDetail->pay_category = 'CASH';
+        }else{
+            $payDetail->pay_category = '';
         }
 
         if (!empty($order->order_config_json)){

+ 107 - 2
app/admin/service/member/MemberService.php

@@ -28,6 +28,9 @@ class MemberService
         $pageSize = $request->get('pageSize', 10);
         $name = $request->get('name', '');
         $mobile = $request->get('mobile', '');
+        $level = $request->get('level','');
+        $isAuth = $request->get('is_auth','');
+        $addtime = $request->get('member_addtimes',[]);
 
         $rows = Member::with('account')
             ->where('member_is_owner', 'N')
@@ -40,7 +43,24 @@ class MemberService
                 $query->where('member_cert.member_cert_name', 'like', '%' . $name . '%');
             })->when($mobile != '', function ($query) use ($mobile) {
                 $query->where('member.member_mobile', 'like', '%' . $mobile . '%');
-            })->select('member_id', 'member_is_owner', 'member_classify', 'member_status', 'member_mobile', 'member_from', 'member_addtimes', 'member_extend_json',
+            })->when($level != '', function ($query) use ($level) {
+                if($level == 'other'){
+                    $query->whereNull('member.join_member_role_id');
+                }else{
+                    $query->where('member_role.member_role_id', $level);
+                }
+            })->when($isAuth != '', function ($query) use ($isAuth) {
+                if($isAuth == 'Y'){
+                    $query->where('member_cert.member_cert_name','<>',NULL)->where('member_cert.member_cert_nbr','<>',NULL)->where('member_cert.member_cert_name','<>','')->where('member_cert.member_cert_nbr','<>','');
+                }else{
+                    $query->where('member_cert.member_cert_name',NULL)->orWhere('member_cert.member_cert_nbr',NULL)->orWhere('member_cert.member_cert_name','')->orWhere('member_cert.member_cert_nbr','');
+                }
+            })->when(!empty($addtime), function ($query) use ($addtime) {
+                $addtime[0] = strtotime($addtime[0]);
+                $addtime[1] = strtotime($addtime[1]);
+                $query->whereBetween('member.member_addtimes', $addtime);
+            })
+            ->select('member_id', 'member_is_owner', 'member_classify', 'member_status', 'member_mobile', 'member_from', 'member_addtimes', 'member_extend_json',
                 'member_info.member_info_nickname', 'member_info.member_info_headimg',
                 'member_role.member_role_id', 'member_role.member_role_name',
                 'member_cert.member_cert_birth', 'member_cert.member_cert_gender', 'member_cert.member_cert_name', 'member_cert.member_cert_nbr', 'member_cert.member_cert_province', 'member_cert.member_cert_addr', 'member_cert.member_cert_face', 'member_cert.member_cert_photo', 'member_cert.member_cert_nation',
@@ -55,7 +75,7 @@ class MemberService
 
         foreach ($rows as &$row) {
             $row['info'] = [
-                'member_info_nickname' => $row['member_info_nickname'] ?? '',
+                'member_info_nickname' => $row['member_info_nickname'] ?? substr($row['member_mobile'],-4,4).'用户',
                 'member_info_headimg' => !empty($row['member_info_headimg']) ? $row['member_info_headimg'] : ''
             ];
             $row['cert'] = [
@@ -118,6 +138,91 @@ class MemberService
         return json_success('', compact('rows', 'page', 'pageSize', 'total'));
     }
 
+
+    public static function exportMember(Request $request)
+    {
+        $memberIds = $request->get('member_id','');
+        $rows = Member::with('account')
+            ->where('member_is_owner', 'N')
+            ->leftJoin('member_info', 'member_info.join_info_member_id', 'member.member_id')
+            ->leftJoin('member_cert', 'member_cert.join_cert_member_id', 'member.member_id')
+//            ->leftjoin('member_account', 'member.member_id', '=', 'member_account.join_account_member_id')
+            ->leftJoin('member_role', 'member_role.member_role_id', 'member.join_member_role_id')
+//            ->where('member_account.member_account_classify', 'CASH')
+            ->when($memberIds != '', function ($query) use ($memberIds) {
+                $query->whereIn('member.member_id', $memberIds);
+            })->select('member_id', 'member_is_owner', 'member_classify', 'member_status', 'member_mobile', 'member_from', 'member_addtimes', 'member_extend_json',
+                'member_info.member_info_nickname', 'member_info.member_info_headimg',
+                'member_role.member_role_id', 'member_role.member_role_name',
+                'member_cert.member_cert_birth', 'member_cert.member_cert_gender', 'member_cert.member_cert_name', 'member_cert.member_cert_nbr', 'member_cert.member_cert_province', 'member_cert.member_cert_addr', 'member_cert.member_cert_face', 'member_cert.member_cert_photo', 'member_cert.member_cert_nation',
+//                'member_account.member_account_surplus'
+            )->orderBy('member_addtimes', 'DESC')
+            ->get()
+            ->toArray();
+
+        $exportData = [];
+        foreach ($rows as $row) {
+            $row['info'] = [
+                'member_info_nickname' => $row['member_info_nickname'] ?? '',
+                'member_info_headimg' => !empty($row['member_info_headimg']) ? $row['member_info_headimg'] : ''
+            ];
+            $row['cert'] = [
+                'member_cert_name' => $row['member_cert_name'],
+            ];
+            $account = [];
+            if (!empty($row['account'])) {
+                foreach ($row['account'] as $item) {
+                    if ($item['member_account_classify'] == 'POINTS') {
+                        $account['points'] = [
+                            'member_account_surplus' => $item['member_account_surplus'],
+                            'member_account_added' => $item['member_account_added'],
+                        ];
+                    } else if ($item['member_account_classify'] == 'CASH') {
+                        $account['cash'] = [
+                            'member_account_surplus' => $item['member_account_surplus'],
+                            'member_account_added' => $item['member_account_added'],
+                        ];
+                    } else if ($item['member_account_classify'] == 'CARD') {
+                        $account['card'] = [
+                            'member_account_surplus' => $item['member_account_surplus'],
+                            'member_account_added' => $item['member_account_added'],
+                        ];
+                    }
+                }
+            }
+            // $row['account'] = $account;
+
+            $row['is_auth'] = "未认证";
+            if (!empty($row['member_cert_nbr']) && !empty($row['member_cert_name'])) {
+                $row['is_auth'] = "已认证";
+            }
+
+            $row['source'] = "APP";
+            if (!empty($row['member_extend_json'])) {
+                $extendJson = json_decode($row['member_extend_json'], true);
+                if (isset($extendJson['come_from'])) {
+                    $row['source'] = $extendJson['come_from'] ?? '';
+                }
+            }
+            
+            $sourceStr = ['APP'=>"APP",'CUSTOMER'=>"客户管理",'SYSTEM'=>"后台"];
+            $exportData[] = [
+                'member_id'=>$row['member_id'],
+                'member_info_nickname'=>$row['info']['member_info_nickname'] ?? '',
+                'member_mobile'=>$row['member_mobile'] ?? '',
+                'member_cert_name'=>$row['cert']['member_cert_name'] ?? '',
+                'source'=> in_array($row['source'],$sourceStr) ? $sourceStr[$row['source']] : 'APP',
+                'cash'=>isset($account['cash']) ? $account['cash']['member_account_surplus'] + $account['cash']['member_account_added'] : 0,
+                'points'=>isset($account['points']) ? $account['points']['member_account_surplus'] + $account['points']['member_account_added'] : 0,
+                'is_auth' => $row['is_auth'],
+                'level' => $row['member_role_name'] ?? '普通用户',
+                'member_addtimes'=>$row['member_addtimes']
+            ];
+        }
+        return json_success('',$exportData);
+    }
+
+
     public static function info($memberId)
     {
         $member = Member::with('cert')

+ 2 - 0
route/admin.php

@@ -579,6 +579,7 @@ Route::group('/admin', function () {
             Route::get('/info', [\app\admin\controller\member\MemberController::class, 'info']);
             Route::post('/add', [\app\admin\controller\member\MemberController::class, 'add']);
             Route::post('/update', [\app\admin\controller\member\MemberController::class, 'update']);
+            Route::get('/exportMember', [\app\admin\controller\member\MemberController::class, 'exportMember']);
         })->middleware([
             \app\middleware\AdminAuthCheck::class
         ]);
@@ -657,6 +658,7 @@ Route::group('/admin', function () {
             Route::post('/add', [\app\admin\controller\member\RoleController::class, 'insert']);
             Route::post('/update', [\app\admin\controller\member\RoleController::class, 'update']);
             Route::delete('/delete', [\app\admin\controller\member\RoleController::class, 'delete']);
+            Route::delete('/selectList', [\app\admin\controller\member\RoleController::class, 'selectList']);
         });
         /* 增值包-主记录 */
         Route::group('/ruleAdded', function () {