blob: 365580fcef77436bcc678b79b2cdef18866023b5 [file] [log] [blame]
刘嘉昕f28ea232025-04-15 16:55:43 +08001package com.pt5.pthouduan.service;
Sure2338188c5d2025-05-28 11:43:06 +08002import com.pt5.pthouduan.entity.Invites;
刘嘉昕f28ea232025-04-15 16:55:43 +08003import com.pt5.pthouduan.entity.User;
Sure2338188c5d2025-05-28 11:43:06 +08004import com.pt5.pthouduan.mapper.InvitesMapper;
5import org.springframework.beans.factory.annotation.Autowired;
6import com.pt5.pthouduan.mapper.UserMapper;
7import org.springframework.stereotype.Service;
8import org.springframework.util.DigestUtils;
9import org.springframework.util.StringUtils;
10import java.security.SecureRandom;
刘嘉昕f28ea232025-04-15 16:55:43 +080011
Sure2338188c5d2025-05-28 11:43:06 +080012import java.util.HashMap;
13import java.util.Map;
14import java.util.UUID;
刘嘉昕f28ea232025-04-15 16:55:43 +080015
Sure2338188c5d2025-05-28 11:43:06 +080016@Service
17public class UserService {
18 @Autowired
19 private UserMapper userMapper;
20 @Autowired
21 private InvitesMapper invitesMapper;
22 // 注册业务
23 public Map<String, Object> register(User user,String code) {
24 Map<String, Object> result = new HashMap<>();
刘嘉昕f28ea232025-04-15 16:55:43 +080025
Sure2338188c5d2025-05-28 11:43:06 +080026 // 参数校验
27 if (!StringUtils.hasText(user.getUsername())){
28 result.put("success", false);
29 result.put("message", "用户名不能为空");
30 return result;
31 }
32
33 if (!StringUtils.hasText(user.getPassword())) {
34 result.put("success", false);
35 result.put("message", "密码不能为空");
36 return result;
37 }
38
39 // 检查用户名是否已存在
40 if (userMapper.selectByUsername(user.getUsername()) != null) {
41 result.put("success", false);
42 result.put("message", "用户名已存在");
43 return result;
44 }
45
46 // 检查邮箱是否已存在
47 if (userMapper.selectByEmail(user.getEmail()) != null) {
48 result.put("success", false);
49 result.put("message", "邮箱已注册");
50 return result;
51 }
52 //检查邀请码是否有效
53 Invites invite= invitesMapper.selectByCode(code);
54 if(invite==null){//邀请码不存在
55 result.put("success", false);
56 result.put("message","无效的邀请码");
57 return result;
58 }
59 if(invite.getIsUsed()==1){//邀请码已被使用
60 result.put("success", false);
61 result.put("message","邀请码已被使用");
62 return result;
63 }
64 //邮箱发送验证码验证
65 //To do... ..
66 //生成passkey
67 SecureRandom random = new SecureRandom();
68 user.setPasskey(String.valueOf(10000000 + random.nextInt(90000000)));
69 // 保存用户
70 userMapper.insert(user);
71 invitesMapper.updateInviteByCode(code,user.getUsername());
72 result.put("success", true);
73 result.put("message", "注册成功");
74 return result;
75 }
76
77 // 登录业务
78 public Map<String, Object> login(String username, String password) {
79 Map<String, Object> result = new HashMap<>();
80
81 User user = userMapper.selectByUsername(username);//首先验证用户名
82 if (user == null) {
83 result.put("success", false);
84 result.put("message", "用户不存在");
85 return result;
86 }
87
88 //验证密码
89 if(!password.equals(user.getPassword())){
90 result.put("success", false);
91 result.put("message","密码错误,请检查后重新输入");
92 return result;
93 }
94 // 登录成功,返回用户信息(密码置空)
95 user.setPassword(null);
96 result.put("success", true);
97 result.put("message", "登录成功");
98 result.put("user", user);
99 return result;
100 }
101 //更新用户等级
102 public Map<String, Object> CalGrade(String username){
103 Map<String, Object> result = new HashMap<>();
104 //上传量+下载量0-500000 一级 510000-2000000 二级 2010000-3500000 三级 3510000-6500000 四级 6500000以上 五级
105 User user = userMapper.selectByUsername(username);
106 if(user.getUserUpload()+user.getUserDownload()<=500000*1024){
107 user.setGradeId(1);
108 }else if(user.getUserUpload()+user.getUserDownload()<=2000000*1024){
109 user.setGradeId(2);
110 }else if(user.getUserUpload()+user.getUserDownload()<= 3500000L *1024){
111 user.setGradeId(3);
112 }else if(user.getUserUpload()+user.getUserDownload()<= 6500000L *1024){
113 user.setGradeId(4);
114 }else{ user.setGradeId(5);}
115 userMapper.updateGrade(username,user.getGradeId());
116 result.put("success", true);
117 result.put("message", "等级更新成功");
118 result.put("grade", user.getGradeId());
119 return result;
120 }
121 //设置性别
122 public Map<String, Object> changesex(String username,String sex){
123 Map<String, Object> result = new HashMap<>();
124 userMapper.updatesex(username,sex);
125 result.put("success", true);
126 result.put("message", "性别设置成功");
127 return result;
128 }
129 //设置头像
130 public Map<String, Object> changeImage(String username,String image){
131 Map<String, Object> result = new HashMap<>();
132 userMapper.updateimage(username,image);
133 result.put("success", true);
134 result.put("message", "头像设置成功");
135 return result;
136 }
137 //更改密码
138 public Map<String, Object> changePassword(String username,String oldpassword,String newpassword){
139 Map<String, Object> result = new HashMap<>();
140 User user = userMapper.selectByUsername(username);//首先验证用户名
141 if (user == null) {
142 result.put("success", false);
143 result.put("message", "用户不存在");
144 return result;
145 }
146
147 //验证密码
148 if(!oldpassword.equals(user.getPassword())){
149 result.put("success", false);
150 result.put("message","密码错误,请检查后重新输入");
151 return result;
152 }
153 //更改数据库中的密码
154 userMapper.updatePassword(username,newpassword);
155 result.put("success", true);
156 result.put("message", "密码重置成功");
157 return result;
158 }
刘嘉昕f28ea232025-04-15 16:55:43 +0800159}