" +
"
您好!
" +
- "
感谢您使用UniLife平台。您的验证码是:
" +
+ "
感谢您使用UniLife平台,本次登录地为" + Location + "您的验证码是:
" +
"
" +
code +
"
" +
@@ -150,7 +172,7 @@ public class UserServiceImpl implements UserService {
}
@Override
- public Result loginWithEmail(LoginEmailDTO loginEmailDTO) {
+ public Result loginWithEmail(LoginEmailDTO loginEmailDTO,HttpServletRequest request) {
String email=loginEmailDTO.getEmail();
if(RegexUtils.isEmailInvalid(email)){
@@ -174,17 +196,17 @@ public class UserServiceImpl implements UserService {
// 5. 查询用户是否存在
User user=userMapper.getUserByEmail(email);
if(user == null){
- user=createUserWithEmail(email);
+ user = createUserWithEmail(email,request);
}
//6.生成登录凭证
- String token=jwtUtil.generateToken(user.getId());
+ //TODO
+ String token = jwtUtil.generateToken(user.getId());
// 8. 返回用户信息和登录凭证
Map
userInfo = new HashMap<>();
- //HashMap userInfo.put("token", token);
- userInfo.put("user", user);
userInfo.put("token", token);
+ userInfo.put("user", user);
return Result.success(userInfo);
}
@@ -192,14 +214,16 @@ public class UserServiceImpl implements UserService {
/**
* 使用邮箱信息创建新用户
*/
- private User createUserWithEmail(String email) {
+ private User createUserWithEmail(String email,HttpServletRequest request) {
User user = new User();
user.setEmail(email);
user.setNickname("用户" + RandomUtil.randomString(6)); // 生成随机昵称
String username = email.split("@")[0]+"_"+ RandomUtil.randomString(4); // 使用@前面的部分作为用户名
user.setUsername(username);
- String password=RandomUtil.randomString(6);
+ String password = RandomUtil.randomString(6);
+ String IPAddress = ipLocationService.getClientIP(request);
+ String Location = ipLocationService.getIPLocation(IPAddress);
user.setPassword(password);
user.setRole((byte)0); // 普通用户角色
@@ -207,7 +231,7 @@ public class UserServiceImpl implements UserService {
user.setIsVerified((byte)0); // 未验证
user.setPoints(0); // 初始积分
user.setGender((byte)0);
-
+ user.setLoginIp(Location);//注册地IP
// 保存用户
try {
userMapper.insert(user);
diff --git a/unilife-server/src/main/resources/application.yml b/unilife-server/src/main/resources/application.yml
index c803148..a4cc4fe 100644
--- a/unilife-server/src/main/resources/application.yml
+++ b/unilife-server/src/main/resources/application.yml
@@ -1,10 +1,10 @@
server:
- port: 8080
+ port: 8087
spring:
datasource:
url: jdbc:mysql://localhost:3306/UniLife?allowPublicKeyRetrieval=true&useSSL=false&serverTimezone=UTC&characterEncoding=UTF-8
username: root
- password: 123456
+ password: zhong20050428
driver-class-name: com.mysql.cj.jdbc.Driver
mail:
host: smtp.163.com
diff --git a/unilife-server/src/main/resources/ipdb/ip2region.xdb b/unilife-server/src/main/resources/ipdb/ip2region.xdb
new file mode 100644
index 0000000..7052c05
Binary files /dev/null and b/unilife-server/src/main/resources/ipdb/ip2region.xdb differ
diff --git a/unilife-server/src/main/resources/mappers/UserMapper.xml b/unilife-server/src/main/resources/mappers/UserMapper.xml
index e422367..2caed2f 100644
--- a/unilife-server/src/main/resources/mappers/UserMapper.xml
+++ b/unilife-server/src/main/resources/mappers/UserMapper.xml
@@ -11,6 +11,7 @@
+
INSERT INTO users (
@@ -37,11 +38,23 @@
+
+
+
+ UPDATE users
+ SET login_ip = #{loginIp}
+ WHERE email = #{email}
+
+