From f3c2bae6bfc4d9270cf60a3c5ef87386dc5bd437 Mon Sep 17 00:00:00 2001 From: sion123 <450702724@qq.com> Date: Sat, 7 Mar 2026 17:29:22 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../member/AppMemberProfileController.java | 2 + .../service/MemberUserProfileService.java | 7 +++ .../service/MemberUserProfileServiceImpl.java | 11 +++++ .../src/views/muye/pointrecord/index.vue | 47 +++++++++++++++++-- 4 files changed, 63 insertions(+), 4 deletions(-) diff --git a/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/member/AppMemberProfileController.java b/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/member/AppMemberProfileController.java index cb3c3f717e..50614066d1 100644 --- a/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/member/AppMemberProfileController.java +++ b/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/member/AppMemberProfileController.java @@ -31,6 +31,8 @@ public class AppMemberProfileController { public CommonResult getProfile() { Long userId = SecurityFrameworkUtils.getLoginUserId(); MemberUserProfileDO profile = memberUserProfileService.createIfAbsent(userId); + // 更新最后登录时间 + memberUserProfileService.updateLastLoginTime(userId); return success(profile); } diff --git a/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/muye/memberuserprofile/service/MemberUserProfileService.java b/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/muye/memberuserprofile/service/MemberUserProfileService.java index e77bbdb8e7..de291a2c85 100644 --- a/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/muye/memberuserprofile/service/MemberUserProfileService.java +++ b/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/muye/memberuserprofile/service/MemberUserProfileService.java @@ -98,4 +98,11 @@ public interface MemberUserProfileService { */ boolean decreaseUsedStorage(String userId, long fileSizeBytes); + /** + * 更新最后登录时间 + * + * @param userId 用户ID + */ + void updateLastLoginTime(Long userId); + } \ No newline at end of file diff --git a/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/muye/memberuserprofile/service/MemberUserProfileServiceImpl.java b/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/muye/memberuserprofile/service/MemberUserProfileServiceImpl.java index dd4a8e316e..19598142cb 100644 --- a/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/muye/memberuserprofile/service/MemberUserProfileServiceImpl.java +++ b/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/muye/memberuserprofile/service/MemberUserProfileServiceImpl.java @@ -160,4 +160,15 @@ public class MemberUserProfileServiceImpl implements MemberUserProfileService { return affectedRows > 0; } + @Override + public void updateLastLoginTime(Long userId) { + MemberUserProfileDO profile = memberUserProfileMapper.selectByUserId(userId); + if (profile != null) { + MemberUserProfileDO updateObj = new MemberUserProfileDO(); + updateObj.setId(profile.getId()); + updateObj.setLastLoginTime(LocalDateTime.now()); + memberUserProfileMapper.updateById(updateObj); + } + } + } \ No newline at end of file diff --git a/yudao-ui-admin-vue3/src/views/muye/pointrecord/index.vue b/yudao-ui-admin-vue3/src/views/muye/pointrecord/index.vue index 6e8fc9e32d..ff08793082 100644 --- a/yudao-ui-admin-vue3/src/views/muye/pointrecord/index.vue +++ b/yudao-ui-admin-vue3/src/views/muye/pointrecord/index.vue @@ -106,12 +106,23 @@ - + + + - - - + + + + + + @@ -157,6 +168,34 @@ import PointRecordForm from './PointRecordForm.vue' /** 积分记录 列表 */ defineOptions({ name: 'PointRecord' }) +// 格式化映射 +const typeMap: Record = { + increase: '增加', + decrease: '减少' +} +const bizTypeMap: Record = { + signin: '签到', + recharge: '充值', + exchange: '兑换', + admin: '后台调整', + gift: '礼包赠送', + voice_tts: '语音合成', + tikhub_fetch: 'TikHub获取', + digital_human: '数字人', + dify_chat: 'AI对话' +} + +const typeFormat = (type: string) => typeMap[type] || type +const bizTypeFormat = (bizType: string) => bizTypeMap[bizType] || bizType +// reason 格式化:处理 "xxx(预扣)" 格式 +const reasonFormat = (reason: string) => { + if (!reason) return reason + const isPending = reason.includes('(预扣)') + const bizType = reason.replace('(预扣)', '') + const bizName = bizTypeMap[bizType] || bizType + return isPending ? `${bizName}(预扣)` : bizName +} + const message = useMessage() // 消息弹窗 const { t } = useI18n() // 国际化