admin_basic

Change-Id: I16f1cd5785730b22e6e1e3fb4905f546ef0b555d
diff --git a/src/main/java/com/example/g8backend/service/AdminService.java b/src/main/java/com/example/g8backend/service/AdminService.java
new file mode 100644
index 0000000..1f84eec
--- /dev/null
+++ b/src/main/java/com/example/g8backend/service/AdminService.java
@@ -0,0 +1,5 @@
+package com.example.g8backend.service;
+
+public interface AdminService {
+    boolean grantVip(Long targetUserId);
+}
\ No newline at end of file
diff --git a/src/main/java/com/example/g8backend/service/impl/AdminServiceImpl.java b/src/main/java/com/example/g8backend/service/impl/AdminServiceImpl.java
new file mode 100644
index 0000000..d3be9fe
--- /dev/null
+++ b/src/main/java/com/example/g8backend/service/impl/AdminServiceImpl.java
@@ -0,0 +1,26 @@
+package com.example.g8backend.service.impl;
+
+import com.example.g8backend.entity.User;
+import com.example.g8backend.mapper.UserMapper;
+import com.example.g8backend.service.AdminService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+@Service
+@RequiredArgsConstructor
+public class AdminServiceImpl implements AdminService {
+    private final UserMapper userMapper;
+
+    @Override
+    @Transactional
+    public boolean grantVip(Long targetUserId) {
+        User user = userMapper.selectById(targetUserId);
+        if (user == null) {
+            return false; // 用户不存在
+        }
+        user.setUserLevel("vip");
+        userMapper.updateById(user);
+        return true;
+    }
+}
\ No newline at end of file