用户类 邀请码 商城

Change-Id: If3a9ef5c464386647ae3b876104cbf4c71265c4b
diff --git a/src/main/java/com/pt5/pthouduan/service/UserService.java b/src/main/java/com/pt5/pthouduan/service/UserService.java
index 59865c2..affa9e8 100644
--- a/src/main/java/com/pt5/pthouduan/service/UserService.java
+++ b/src/main/java/com/pt5/pthouduan/service/UserService.java
@@ -2,6 +2,7 @@
 import com.pt5.pthouduan.entity.Invites;
 import com.pt5.pthouduan.entity.User;
 import com.pt5.pthouduan.mapper.InvitesMapper;
+import lombok.extern.java.Log;
 import org.springframework.beans.factory.annotation.Autowired;
 import com.pt5.pthouduan.mapper.UserMapper;
 import org.springframework.stereotype.Service;
@@ -10,8 +11,10 @@
 import java.security.SecureRandom;
 
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 import java.util.UUID;
+import java.util.stream.Collectors;
 
 @Service
 public class UserService {
@@ -53,20 +56,21 @@
             return result;
         }
 
-        // 检查邮箱是否已存在
-        if (userMapper.selectByEmail(user.getEmail()) != null) {
-            result.put("success", false);
-            result.put("message", "邮箱已注册");
-            return result;
-        }
+//        // 检查邮箱是否已存在
+//        if (userMapper.selectByEmail(user.getEmail()) != null) {
+//            result.put("success", false);
+//            result.put("message", "邮箱已注册");
+//            return result;
+//        }
         //检查邀请码是否有效
-        Invites invite= invitesMapper.selectByCode(code);
+        Map<String, Object> invite= invitesMapper.selectByCode(code);
         if(invite==null){//邀请码不存在
             result.put("success", false);
             result.put("message","无效的邀请码");
             return result;
         }
-        if(invite.getIsUsed()==1){//邀请码已被使用
+        Boolean isused = (Boolean) invite.get("isUsed");
+        if(isused){//邀请码已被使用
             result.put("success", false);
             result.put("message","邀请码已被使用");
             return result;
@@ -93,7 +97,7 @@
     public Map<String, Object> login(String username, String password) {
         Map<String, Object> result = new HashMap<>();
 
-        User user = userMapper.selectByUsername(username);//首先验证用户名
+        Map<String, Object> user = userMapper.selectByUsername(username);//首先验证用户名
         if (user == null) {
             result.put("success", false);
             result.put("message", "用户不存在");
@@ -101,13 +105,12 @@
         }
 
         //验证密码
-        if(!password.equals(user.getPassword())){
+        if(!password.equals(user.get("password"))){
             result.put("success", false);
             result.put("message","密码错误,请检查后重新输入");
             return result;
         }
         // 登录成功,返回用户信息(密码置空)
-        user.setPassword(null);
         result.put("success", true);
         result.put("message", "登录成功");
         result.put("user", user);
@@ -117,20 +120,25 @@
     public Map<String, Object> CalGrade(String username){
         Map<String, Object> result = new HashMap<>();
         //上传量+下载量0-500000 一级  510000-2000000 二级 2010000-3500000 三级 3510000-6500000 四级 6500000以上 五级
-        User user = userMapper.selectByUsername(username);
-        if(user.getUserUpload()+user.getUserDownload()<=500000*1024){
-            user.setGradeId(1);
-        }else if(user.getUserUpload()+user.getUserDownload()<=2000000*1024){
-            user.setGradeId(2);
-        }else if(user.getUserUpload()+user.getUserDownload()<= 3500000L *1024){
-            user.setGradeId(3);
-        }else if(user.getUserUpload()+user.getUserDownload()<= 6500000L *1024){
-            user.setGradeId(4);
-        }else{ user.setGradeId(5);}
-        userMapper.updateGrade(username,user.getGradeId());
+        Map<String, Object> user = userMapper.selectByUsername(username);
+        Number downloadNum = (Number) user.get("user_download");
+        long download = downloadNum.longValue();
+        Number uploadNum = (Number) user.get("user_upload");
+        long upload = uploadNum.longValue();
+        int grade=0;
+        if(upload+download<=500000*1024){
+            grade=1;
+        }else if(upload+download<=2000000*1024){
+            grade=2;
+        }else if(upload+download<= 3500000L *1024){
+            grade=3;
+        }else if(upload+download<= 6500000L *1024){
+            grade=4;
+        }else{ grade=5;}
+        userMapper.updateGrade(username,grade);
         result.put("success", true);
         result.put("message", "等级更新成功");
-        result.put("grade", user.getGradeId());
+        result.put("grade", grade);
         return result;
     }
     //设置性别
@@ -152,7 +160,7 @@
     //更改密码
     public Map<String, Object> changePassword(String username,String oldpassword,String newpassword){
         Map<String, Object> result = new HashMap<>();
-        User user = userMapper.selectByUsername(username);//首先验证用户名
+        Map<String, Object> user = userMapper.selectByUsername(username);//首先验证用户名
         if (user == null) {
             result.put("success", false);
             result.put("message", "用户不存在");
@@ -160,7 +168,7 @@
         }
 
         //验证密码
-        if(!oldpassword.equals(user.getPassword())){
+        if(!oldpassword.equals(user.get("password"))){
             result.put("success", false);
             result.put("message","密码错误,请检查后重新输入");
             return result;
@@ -174,15 +182,17 @@
     //获取用户信息(前端)
     public Map<String, Object> UserInfo(String username){
         Map<String, Object> result = new HashMap<>();
-        User user = userMapper.selectByUsername(username);
+        Map<String, Object> user = userMapper.selectByUsername(username);
         result.put("success", true);
         result.put("message", "用户信息获取成功");
         result.put("user", user);
         return result;
     }
     //直接创建用户
-    public Map<String, Object> CreateUser(User user){
+    public Map<String, Object> CreateUser(User user){//用户名、密码、邮箱
         Map<String, Object> result = new HashMap<>();
+        SecureRandom random = new SecureRandom();
+        user.setPasskey(String.valueOf(10000000 + random.nextInt(90000000)));
         userMapper.insert(user);
         result.put("success", true);
         result.put("message", "用户创建成功");
@@ -196,5 +206,44 @@
         result.put("message", "用户删除成功");
         return result;
     }
+    //获取所有用户
+    public Map<String, Object> getAllUser(){
+        Map<String, Object> result = new HashMap<>();
+        List<Map<String, Object>> users =userMapper.selectAllUsers();
+        result.put("data", users);
+        result.put("success", true);
+        result.put("message", "用户获取成功");
+        return result;
+    }
+    //模糊搜索用户名
+    public Map<String, Object> findUser(String keyword){
+        Map<String, Object> result = new HashMap<>();
+        String regexPattern = keyword.chars()
+                .mapToObj(c -> String.valueOf((char) c))
+                .collect(Collectors.joining(".*"));
+        List<Map<String, Object>> users = userMapper.selectUserByFuzzyKeyword(regexPattern);
+        result.put("data", users);
+        result.put("success", true);
+        result.put("message", "用户查找成功");
+        return result;
+    }
+    //根据用户id返回用户的头像和装饰
+    public Map<String, Object> getDecoration(Long userid){
+        Map<String, Object> result = new HashMap<>();
+        Map<String, Object> info = userMapper.selectdecorationByUserid(userid);
+        result.put("data", info);
+        result.put("success", true);
+        result.put("message", "获取信息成功");
+        return result;
+    }
+    //根据用户名返回用户id
+    public Map<String, Object> getuserid(String username){
+        Map<String, Object> result = new HashMap<>();
+        String userid = userMapper.selectUseridByusername(username);
+        result.put("data",userid);
+        result.put("success", true);
+        result.put("message", "获取信息成功");
+        return result;
+    }
 
 }