傅行帆 5 vuotta sitten
vanhempi
commit
a5482f4330

src/main/java/com/huiju/estateagents/controller/SysUserController.java → src/main/java/com/huiju/estateagents/center/sysUser/controller/SysUserController.java Näytä tiedosto

@@ -1,17 +1,25 @@
1
-package com.huiju.estateagents.controller;
1
+package com.huiju.estateagents.center.sysUser.controller;
2 2
 
3
+import com.alibaba.fastjson.JSONObject;
3 4
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
4 5
 import com.baomidou.mybatisplus.core.metadata.IPage;
5 6
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
6 7
 import com.huiju.estateagents.base.BaseController;
7 8
 import com.huiju.estateagents.base.ResponseBean;
8
-import com.huiju.estateagents.entity.SysUser;
9
-import com.huiju.estateagents.service.ISysUserService;
9
+import com.huiju.estateagents.center.sysUser.entity.SysUser;
10
+import com.huiju.estateagents.center.sysUser.service.ISysUserService;
11
+import com.huiju.estateagents.common.CommConstant;
12
+import com.huiju.estateagents.common.JWTUtils;
13
+import com.huiju.estateagents.common.MD5Utils;
14
+import com.huiju.estateagents.entity.TaPerson;
10 15
 import org.slf4j.Logger;
11 16
 import org.slf4j.LoggerFactory;
12 17
 import org.springframework.beans.factory.annotation.Autowired;
13 18
 import org.springframework.web.bind.annotation.*;
14 19
 
20
+import java.util.HashMap;
21
+import java.util.Map;
22
+
15 23
 /**
16 24
  * <p>
17 25
     * 系统用户 系统中心账户 前端控制器
@@ -140,4 +148,36 @@ public class SysUserController extends BaseController {
140 148
         }
141 149
         return responseBean;
142 150
     }
151
+    
152
+    @PostMapping("/center/signin")
153
+    public ResponseBean signin(@RequestBody String paramStr) {
154
+        JSONObject params = JSONObject.parseObject(paramStr);
155
+        if (params == null) {
156
+            return ResponseBean.error("非法参数", ResponseBean.ERROR_MISSING_PARAMS);
157
+        }
158
+        
159
+        String userName = params.getString("userName");
160
+        String userPassword = params.getString("password");
161
+        
162
+        //验证用户名密码是否正确
163
+        QueryWrapper<SysUser> sysUserQueryWrapper = new QueryWrapper<>();
164
+        sysUserQueryWrapper.eq("user_name",userName);
165
+        sysUserQueryWrapper.eq("password", MD5Utils.md5(userPassword));
166
+        SysUser sysUser = iSysUserService.getOne(sysUserQueryWrapper);
167
+        if (sysUser == null) {
168
+            return ResponseBean.error("用户名或密码错误", ResponseBean.ERROR_ILLEGAL_PARAMS);
169
+        }
170
+        
171
+        if (sysUser.getStatus() != CommConstant.STATUS_NORMAL) {
172
+            return ResponseBean.error("用户状态异常", ResponseBean.ERROR_UNAVAILABLE);
173
+        }
174
+        
175
+        String token = JWTUtils.newToken(sysUser.getUserName());
176
+        
177
+        Map<String, Object> result = new HashMap<>();
178
+        result.put("token", token);
179
+        result.put("user", sysUser);
180
+        
181
+        return ResponseBean.success(result);
182
+    }
143 183
 }

src/main/java/com/huiju/estateagents/entity/SysUser.java → src/main/java/com/huiju/estateagents/center/sysUser/entity/SysUser.java Näytä tiedosto

@@ -1,5 +1,7 @@
1
-package com.huiju.estateagents.entity;
1
+package com.huiju.estateagents.center.sysUser.entity;
2 2
 
3
+import com.baomidou.mybatisplus.annotation.IdType;
4
+import com.baomidou.mybatisplus.annotation.TableId;
3 5
 import lombok.Data;
4 6
 import lombok.EqualsAndHashCode;
5 7
 import lombok.experimental.Accessors;
@@ -24,6 +26,7 @@ public class SysUser implements Serializable {
24 26
     /**
25 27
      * 账户登录
26 28
      */
29
+    @TableId(value = "user_name")
27 30
     private String userName;
28 31
 
29 32
     /**

src/main/java/com/huiju/estateagents/mapper/SysUserMapper.java → src/main/java/com/huiju/estateagents/center/sysUser/mapper/SysUserMapper.java Näytä tiedosto

@@ -1,7 +1,7 @@
1
-package com.huiju.estateagents.mapper;
1
+package com.huiju.estateagents.center.sysUser.mapper;
2 2
 
3 3
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4
-import com.huiju.estateagents.entity.SysUser;
4
+import com.huiju.estateagents.center.sysUser.entity.SysUser;
5 5
 import org.apache.ibatis.annotations.Mapper;
6 6
 
7 7
 /**

src/main/java/com/huiju/estateagents/service/ISysUserService.java → src/main/java/com/huiju/estateagents/center/sysUser/service/ISysUserService.java Näytä tiedosto

@@ -1,7 +1,7 @@
1
-package com.huiju.estateagents.service;
1
+package com.huiju.estateagents.center.sysUser.service;
2 2
 
3 3
 import com.baomidou.mybatisplus.extension.service.IService;
4
-import com.huiju.estateagents.entity.SysUser;
4
+import com.huiju.estateagents.center.sysUser.entity.SysUser;
5 5
 
6 6
 /**
7 7
  * <p>

src/main/java/com/huiju/estateagents/service/impl/SysUserServiceImpl.java → src/main/java/com/huiju/estateagents/center/sysUser/service/impl/SysUserServiceImpl.java Näytä tiedosto

@@ -1,9 +1,9 @@
1
-package com.huiju.estateagents.service.impl;
1
+package com.huiju.estateagents.center.sysUser.service.impl;
2 2
 
3 3
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
4
-import com.huiju.estateagents.entity.SysUser;
5
-import com.huiju.estateagents.mapper.SysUserMapper;
6
-import com.huiju.estateagents.service.ISysUserService;
4
+import com.huiju.estateagents.center.sysUser.entity.SysUser;
5
+import com.huiju.estateagents.center.sysUser.mapper.SysUserMapper;
6
+import com.huiju.estateagents.center.sysUser.service.ISysUserService;
7 7
 import org.springframework.stereotype.Service;
8 8
 
9 9
 /**

+ 33
- 2
src/main/java/com/huiju/estateagents/common/JWTUtils.java Näytä tiedosto

@@ -1,13 +1,18 @@
1 1
 package com.huiju.estateagents.common;
2 2
 
3
+import com.huiju.estateagents.entity.SysToken;
4
+import com.huiju.estateagents.service.ISysTokenService;
3 5
 import io.jsonwebtoken.Jwts;
4 6
 import io.jsonwebtoken.SignatureAlgorithm;
5 7
 import io.jsonwebtoken.security.Keys;
8
+import org.springframework.beans.factory.annotation.Autowired;
6 9
 
7 10
 import javax.servlet.http.HttpServletRequest;
8 11
 import java.security.Key;
12
+import java.time.LocalDateTime;
9 13
 import java.util.Calendar;
10 14
 import java.util.Date;
15
+import java.util.Map;
11 16
 
12 17
 /**
13 18
  * JWTUtils
@@ -17,6 +22,9 @@ import java.util.Date;
17 22
 public class JWTUtils {
18 23
     // 直接定义常量是不安全的
19 24
     public final static Key key = Keys.hmacShaKeyFor("yansenisahero,2019-5-17 16:18:14".getBytes());
25
+    
26
+    @Autowired
27
+    private static ISysTokenService tokenService;
20 28
 
21 29
     /**
22 30
      * getSubject 获取 jwt subject
@@ -49,7 +57,30 @@ public class JWTUtils {
49 57
         Calendar calendar = Calendar.getInstance();
50 58
         calendar.setTime(new Date());
51 59
         calendar.set(Calendar.DAY_OF_MONTH,calendar.get(Calendar.DAY_OF_MONTH)+7);
52
-
53
-        return Jwts.builder().setSubject(subject).setExpiration(calendar.getTime()).signWith(key).compact();
60
+        String token =  Jwts.builder().setSubject(subject).setExpiration(calendar.getTime()).signWith(key).compact();
61
+        saveToken(token);
62
+        return token;
63
+    }
64
+    
65
+    private static void saveToken(String token) {
66
+        SysToken sysToken = new SysToken();
67
+        sysToken.setToken(token);
68
+        sysToken.setExpDate(LocalDateTime.now());
69
+        tokenService.save(sysToken);
70
+    }
71
+    
72
+    /**
73
+     * newToken 生成新的 token
74
+     * @param subject
75
+     * @return
76
+     */
77
+    public static String newTokenByMap(Map subject) {
78
+        // 有效期 7 天
79
+        Calendar calendar = Calendar.getInstance();
80
+        calendar.setTime(new Date());
81
+        calendar.set(Calendar.DAY_OF_MONTH,calendar.get(Calendar.DAY_OF_MONTH)+7);
82
+        String token = Jwts.builder().setClaims(subject).setExpiration(calendar.getTime()).signWith(key).compact();
83
+        saveToken(token);
84
+        return token;
54 85
     }
55 86
 }

+ 1
- 1
src/main/resources/mapper/SysUserMapper.xml Näytä tiedosto

@@ -1,5 +1,5 @@
1 1
 <?xml version="1.0" encoding="UTF-8"?>
2 2
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
3
-<mapper namespace="com.huiju.estateagents.mapper.SysUserMapper">
3
+<mapper namespace="com.huiju.estateagents.center.sysUser.mapper.SysUserMapper">
4 4
 
5 5
 </mapper>