1212import org .springframework .stereotype .Service ;
1313import org .springframework .ui .Model ;
1414import org .springframework .util .DigestUtils ;
15+ import org .springframework .util .StringUtils ;
1516import tk .mybatis .mapper .entity .Example ;
1617
1718import javax .servlet .http .Cookie ;
@@ -37,6 +38,7 @@ public class UserServiceImpl implements UserService {
3738 RegisterValidateServiceImpl registerValidateService ;
3839 @ Autowired
3940 RedisTemplate redisTemplate ;
41+
4042 @ Override
4143 public User getUser (User user ) {
4244 return userMapper .selectOne (user );
@@ -45,7 +47,7 @@ public User getUser(User user) {
4547 @ Override
4648 public boolean addUser (User user ) {
4749 if (userMapper .insert (user ) > 0 ) {
48- logger .info ("有新的用户啦!--" + user .getUsername ());
50+ logger .info ("有新的用户啦!--" + user .getUsername ());
4951 return true ;
5052 }
5153 return false ;
@@ -83,13 +85,13 @@ public boolean yzUser(User user, HttpServletRequest request, HttpServletResponse
8385 user1 .setUsername (user .getUsername ());
8486 User user2 = getUser (user1 );
8587 if (user2 != null ) {
86- if (DigestUtils .md5DigestAsHex ((user .getUsername ()+ user .getPassword ()).getBytes ()).equals (user2 .getPassword ())) {
88+ if (DigestUtils .md5DigestAsHex ((user .getUsername () + user .getPassword ()).getBytes ()).equals (user2 .getPassword ())) {
8789 HttpSession sessoin = request .getSession ();
8890 sessoin .setMaxInactiveInterval (60 * 60 * 24 );
8991 user2 .setPassword ("password" );
9092 sessoin .setAttribute ("user" , user2 );
9193 Cookie cookie = new Cookie ("JSESSIONID" , sessoin .getId ());
92- cookie .setMaxAge (60 * 60 * 24 * 7 );
94+ cookie .setMaxAge (60 * 60 * 24 * 7 );
9395 response .addCookie (cookie );
9496 return true ;
9597 }
@@ -106,7 +108,7 @@ public void reg(User user, Model model, String yzm) {
106108 return ;
107109 }
108110
109- if (!Pattern .matches ("^[\u4e00 -\u9fa5 _a-zA-Z0-9]+$" ,user .getUsername ())){
111+ if (!Pattern .matches ("^[\u4e00 -\u9fa5 _a-zA-Z0-9]+$" , user .getUsername ())) {
110112 model .addAttribute ("message" , "用户名不能有符号" );
111113 return ;
112114 }
@@ -122,7 +124,7 @@ public void reg(User user, Model model, String yzm) {
122124 return ;
123125 }
124126 if (user1 == null ) {
125- user .setPassword (DigestUtils .md5DigestAsHex ((user .getUsername ()+ user .getPassword ()).getBytes ()));
127+ user .setPassword (DigestUtils .md5DigestAsHex ((user .getUsername () + user .getPassword ()).getBytes ()));
126128 user .setUserType (1 );
127129 user .setHeadurl ("http://gravatar.com/avatar/" + user .getUsername () + "?s=256&d=identicon" );
128130 if (addUser (user )) {
@@ -159,7 +161,7 @@ public String regapp(User user, String yzm) {
159161 return JSON .toJSONString (map );
160162 }
161163 if (user1 == null ) {
162- user .setPassword (DigestUtils .md5DigestAsHex ((user .getUsername ()+ user .getPassword ()).getBytes ()));
164+ user .setPassword (DigestUtils .md5DigestAsHex ((user .getUsername () + user .getPassword ()).getBytes ()));
163165 user .setUserType (1 );
164166 user .setHeadurl ("http://gravatar.com/avatar/" + user .getUsername () + "?s=256&d=identicon" );
165167 if (addUser (user )) {
@@ -179,29 +181,29 @@ public String regapp(User user, String yzm) {
179181
180182 @ Override
181183 public Token createToken (String username ) {
182- String tokenid = UUID .randomUUID ().toString ().replace ("-" , "" );
183- Token token = new Token (username ,tokenid );
184- redisTemplate .opsForValue ().set (Token .TOKEN + username ,token ,7 , TimeUnit .DAYS );
184+ String tokenid = UUID .randomUUID ().toString ().replace ("-" , "" );
185+ Token token = new Token (username , tokenid );
186+ redisTemplate .opsForValue ().set (Token .TOKEN + username , token , 7 , TimeUnit .DAYS );
185187 return token ;
186188 }
187189
188190 @ Override
189191 public boolean checkToken (Token token ) {
190- if (token == null || token .getUsername ()== null || token .getToken ()== null || token .getUsername ().length ()< 1 | token .getToken ().length ()< 1 ) {
192+ if (token == null || token .getUsername () == null || token .getToken () == null || token .getUsername ().length () < 1 | token .getToken ().length () < 1 ) {
191193 return false ;
192194 }
193- Token rtoken = (Token ) redisTemplate .opsForValue ().get (Token .TOKEN + token .getUsername ());
194- if (rtoken != null && rtoken .getToken ().equals (token .getToken ())){
195+ Token rtoken = (Token ) redisTemplate .opsForValue ().get (Token .TOKEN + token .getUsername ());
196+ if (rtoken != null && rtoken .getToken ().equals (token .getToken ())) {
195197 // 如果验证成功,说明此用户进行了一次有效操作,延长 token 的过期时间
196- redisTemplate .expire (Token .TOKEN + token .getUsername (),7 , TimeUnit .DAYS );
198+ redisTemplate .expire (Token .TOKEN + token .getUsername (), 7 , TimeUnit .DAYS );
197199 return true ;
198200 }
199201 return false ;
200202 }
201203
202204 @ Override
203205 public void deleteToken (String username ) {
204- redisTemplate .delete (Token .TOKEN + username );
206+ redisTemplate .delete (Token .TOKEN + username );
205207 }
206208
207209 @ Override
@@ -211,10 +213,40 @@ public Token login(User user) {
211213 user1 .setUsername (user .getUsername ());
212214 User user2 = getUser (user1 );
213215 if (user2 != null ) {
214- if (DigestUtils .md5DigestAsHex ((user .getUsername ()+user .getPassword ()).getBytes ()).equals (user2 .getPassword ())) {
215- return createToken (user .getUsername ()); }
216+ if (DigestUtils .md5DigestAsHex ((user .getUsername () + user .getPassword ()).getBytes ()).equals (user2 .getPassword ())) {
217+ return createToken (user .getUsername ());
218+ }
216219 }
217220 }
218221 return null ;
219222 }
223+
224+ @ Override
225+ public String forgetPass (User user , String yzm ) {
226+ if (StringUtils .isEmpty (yzm )) {
227+ return "验证码不能为空" ;
228+ }
229+ if (user != null ) {
230+ String str = registerValidateService .getVerificationCode (user .getEmail ());
231+ if (str != null && str .equals (yzm )) {
232+ registerValidateService .deleteVerificationCode (user .getEmail ());
233+ User user2 = new User ();
234+ user2 .setUsername (user .getUsername ());
235+ User user1 = getUser (user2 );
236+ if (!user1 .getEmail ().equals (user .getEmail ())) {
237+ return "用户名和邮箱不匹配" ;
238+ }
239+ user1 .setPassword (DigestUtils .md5DigestAsHex ((user .getUsername () + user .getPassword ()).getBytes ()));
240+ if (userMapper .updateByPrimaryKey (user1 ) == 1 ) {
241+ //退出登录
242+ deleteToken (user1 .getUsername ());
243+ return "修改成功" ;
244+ }
245+
246+ } else {
247+ return "验证码有误" ;
248+ }
249+ }
250+ return "请求数据有误,请检查" ;
251+ }
220252}
0 commit comments