diff --git a/backend/app/services/user/member/MemberCardServices.php b/backend/app/services/user/member/MemberCardServices.php index 17af4e4e5..47dd2f12e 100644 --- a/backend/app/services/user/member/MemberCardServices.php +++ b/backend/app/services/user/member/MemberCardServices.php @@ -72,16 +72,24 @@ class MemberCardServices extends BaseService //批量查询用户信息 $userIds = array_column($list->toArray(), 'use_uid'); $userList = $userService->getColumn([['uid', 'in', $userIds]], 'nickname,phone,real_name', 'uid'); - foreach ($list as $k => $v) { - if ($v['use_uid']) { - $list[$k]['username'] = $userList[$v['use_uid']]['real_name'] ?: $userList[$v['use_uid']]['nickname']; - $list[$k]['phone'] = $userList[$v['use_uid']] ? $userList[$v['use_uid']]['phone'] : ""; + // Model 写入整型字段会被截断(如 "2026-10-26 ..." → 2026),先转普通数组再格式化时间 + $rows = []; + foreach ($list as $v) { + $item = is_object($v) ? $v->hidden([])->toArray() : (array)$v; + if (!empty($item['use_uid'])) { + $user = $userList[$item['use_uid']] ?? null; + $item['username'] = $user ? (($user['real_name'] ?: $user['nickname']) ?: '') : ''; + $item['phone'] = $user['phone'] ?? ''; + } else { + $item['username'] = ''; + $item['phone'] = ''; } - $list[$k]['add_time'] = date('Y-m-d H:i:s', $v['add_time']); - $list[$k]['use_time'] = $v['use_time'] != 0 ? date('Y-m-d H:i:s', $v['use_time']) : "未使用"; + $item['add_time'] = !empty($item['add_time']) ? date('Y-m-d H:i:s', (int)$item['add_time']) : ''; + $item['use_time'] = !empty($item['use_time']) ? date('Y-m-d H:i:s', (int)$item['use_time']) : '未使用'; + $rows[] = $item; } $count = $this->dao->count($where); - return compact('list', 'count'); + return ['list' => $rows, 'count' => $count]; } @@ -333,19 +341,22 @@ class MemberCardServices extends BaseService $userService = app()->make(UserServices::class); /** @var MemberCardBatchServices $batchService */ $batchService = app()->make(MemberCardBatchServices::class); - foreach ($data as $k => $v) { - $data[$k]['use_time'] = $v['use_time'] != 0 ? date('Y-m-d H:i:s', $v['use_time']) : ""; - $data[$k]['user_name'] = ''; - $data[$k]['user_phone'] = ''; - if ($v['use_uid'] != 0) { - $userInfo = $userService->get($v['use_uid']); - $data[$k]['user_name'] = $userInfo['nickname'] ?: $userInfo['account']; - $data[$k]['user_phone'] = $userInfo['phone']; + $rows = []; + foreach ($data as $v) { + $item = is_object($v) ? $v->hidden([])->toArray() : (array)$v; + $item['use_time'] = !empty($item['use_time']) ? date('Y-m-d H:i:s', (int)$item['use_time']) : ''; + $item['user_name'] = ''; + $item['user_phone'] = ''; + if (!empty($item['use_uid'])) { + $userInfo = $userService->get($item['use_uid']); + $item['user_name'] = $userInfo['nickname'] ?: $userInfo['account']; + $item['user_phone'] = $userInfo['phone']; } + $rows[] = $item; } $batchInfo = $batchService->getOne($where['batch_card_id']); $dataArray['title'] = $batchInfo ? $batchInfo['title'] : ""; - $dataArray['data'] = $data; + $dataArray['data'] = $rows; return $dataArray; } diff --git a/frontend/admin/src/pages/user/member/pages/card/list.vue b/frontend/admin/src/pages/user/member/pages/card/list.vue index d1f88ac95..19c5352d8 100644 --- a/frontend/admin/src/pages/user/member/pages/card/list.vue +++ b/frontend/admin/src/pages/user/member/pages/card/list.vue @@ -43,9 +43,9 @@ >{{ scope.row.phone ? scope.row.phone : '-' }} - + {{ scope.row.use_time }} @@ -132,3 +132,9 @@ function formSubmit() { getMemberCard(); } + +