diff --git a/src/main/java/com/example/chat/controller/IndexController.java b/src/main/java/com/example/chat/controller/IndexController.java index 1b8be8d..a43bc5a 100644 --- a/src/main/java/com/example/chat/controller/IndexController.java +++ b/src/main/java/com/example/chat/controller/IndexController.java @@ -1,5 +1,6 @@ package com.example.chat.controller; +import com.example.chat.entity.User; import com.example.chat.service.ChatIndex; import com.example.chat.service.HeadOss; import lombok.extern.slf4j.Slf4j; @@ -7,23 +8,44 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; -import java.io.File; +import java.io.IOException; +import java.util.Map; @Slf4j @CrossOrigin @RestController +@RequestMapping("/index") public class IndexController { @Resource HeadOss headOss; @Resource ChatIndex chatIndex; - @RequestMapping("/index/modifyHead") - public void modifyHead(@RequestParam("file")MultipartFile file, @RequestParam("username") String username) { - headOss.ModifyHead(username,file); + + @RequestMapping("/modifyHead") + public void modifyHead( @RequestParam("file") MultipartFile file) { + System.out.println(file.getOriginalFilename()); + headOss.modifyHead(file); } - @GetMapping("/index/deleteUser") - public void deleteUser(@RequestParam("account")String account){ + + @GetMapping("/deleteUser") + public void deleteUser(@RequestParam("account") String account) { chatIndex.deleteUser(account); } + @PostMapping("/modifyPassword") + public String updatePassword(@RequestBody Map requestData) throws IOException { + System.out.println(requestData); + User user=new User(); + user.setAccount(requestData.get("account")); + user.setPassword(requestData.get("password")); + String oldPassword=requestData.get("oldPassword"); + System.out.println(user); + System.out.println(oldPassword); + return chatIndex.modifyPassword(user,oldPassword); + } + + @PostMapping("/modifyUsername") + public void modifyUser(@RequestBody User user) throws IOException { + chatIndex.modifyUsername(user); + } } diff --git a/src/main/java/com/example/chat/controller/LoginController.java b/src/main/java/com/example/chat/controller/LoginController.java index 674708e..2da0ff0 100644 --- a/src/main/java/com/example/chat/controller/LoginController.java +++ b/src/main/java/com/example/chat/controller/LoginController.java @@ -7,12 +7,14 @@ import com.example.chat.entity.User; import com.example.chat.service.CodeCheck; import com.example.chat.service.LoginService; import com.example.chat.service.mail.MailUtil; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.io.IOException; +@Slf4j @CrossOrigin @RestController public class LoginController { @@ -64,6 +66,7 @@ public class LoginController { @PostMapping("/getHead") public User getHead(@RequestBody User user) throws IOException { + log.info(user.getAccount()); return userMapper.getUserByAccount(user.getAccount()); } } diff --git a/src/main/java/com/example/chat/dao/UserDao.java b/src/main/java/com/example/chat/dao/UserDao.java index 18fcbe7..11ffe26 100644 --- a/src/main/java/com/example/chat/dao/UserDao.java +++ b/src/main/java/com/example/chat/dao/UserDao.java @@ -21,17 +21,21 @@ public class UserDao implements UserMapper { @Override public void delUser(User user) throws IOException { - SqlSession sqlSession=MybatisSingleton.getSqlSessionFactory().openSession(); - sqlSession.delete("dao.Login.deleteUser",user); + SqlSession sqlSession = MybatisSingleton.getSqlSessionFactory().openSession(); + sqlSession.delete("dao.Login.deleteUser", user); sqlSession.commit(); sqlSession.close(); } @Override - public void updateUser(User oldUser, User newUser) { - + public void updateUser(User user) throws IOException { + SqlSession sqlSession=MybatisSingleton.getSqlSessionFactory().openSession(); + sqlSession.update("dao.Login.updateUsername",user); + sqlSession.commit(); + sqlSession.close(); } + @Override public User getUser(User user) throws IOException { SqlSession sqlSession = MybatisSingleton.getSqlSessionFactory().openSession(); @@ -50,8 +54,8 @@ public class UserDao implements UserMapper { @Override public void modifyHead(String pic, String account) throws IOException { - SqlSession sqlSession=MybatisSingleton.getSqlSessionFactory().openSession(); - sqlSession.update("dao.Login.updateHead",new User("","",account,pic,"")); + SqlSession sqlSession = MybatisSingleton.getSqlSessionFactory().openSession(); + sqlSession.update("dao.Login.updateHead", new User("", "", account, pic, "")); sqlSession.commit(); sqlSession.close(); } @@ -59,12 +63,21 @@ public class UserDao implements UserMapper { @Override public User getUserByAccount(String account) throws IOException { - SqlSession sqlSession=MybatisSingleton.getSqlSessionFactory().openSession(); - User user=sqlSession.selectOne("dao.Login.getUserByAccount",account); + SqlSession sqlSession = MybatisSingleton.getSqlSessionFactory().openSession(); + User user=new User(); + user.setAccount(account); + User user1 = sqlSession.selectOne("dao.Login.getUserByAccount", user); + sqlSession.close(); + return user1; + } + + @Override + public void updatePassword(User user) throws IOException { + SqlSession sqlSession=MybatisSingleton.getSqlSessionFactory().openSession(); + sqlSession.update("dao.Login.updatePassword",user); + sqlSession.commit(); sqlSession.close(); - return user; } - } diff --git a/src/main/java/com/example/chat/dao/UserMapper.java b/src/main/java/com/example/chat/dao/UserMapper.java index 6a71e5c..8cdb7f3 100644 --- a/src/main/java/com/example/chat/dao/UserMapper.java +++ b/src/main/java/com/example/chat/dao/UserMapper.java @@ -4,19 +4,22 @@ import com.example.chat.entity.User; import org.springframework.stereotype.Repository; import java.io.IOException; + @Repository public interface UserMapper { public abstract void addUser(User user) throws IOException; public abstract void delUser(User user) throws IOException; - public abstract void updateUser(User oldUser,User newUser); + public abstract void updateUser(User user) throws IOException; public abstract User getUser(User user) throws IOException; + public abstract User emailCheck(User user) throws IOException; - public abstract void modifyHead(String Pic,String username) throws IOException; - public abstract User getUserByAccount(String account)throws IOException; + public abstract void modifyHead(String Pic, String username) throws IOException; + public abstract User getUserByAccount(String account) throws IOException; + public abstract void updatePassword(User user)throws IOException; } diff --git a/src/main/java/com/example/chat/dao/chat/ChatMapper.java b/src/main/java/com/example/chat/dao/chat/ChatMapper.java index 7b6b853..b2a0124 100644 --- a/src/main/java/com/example/chat/dao/chat/ChatMapper.java +++ b/src/main/java/com/example/chat/dao/chat/ChatMapper.java @@ -1,18 +1,18 @@ package com.example.chat.dao.chat; +import com.example.chat.entity.User; import com.example.chat.entity.chat.Message; -import com.example.chat.entity.chat.UpdateMessage; -import io.netty.handler.codec.MessageAggregator; -import org.springframework.stereotype.Repository; import java.io.IOException; import java.util.List; + public interface ChatMapper { public abstract void addMessage(Message message) throws IOException; - public abstract void deleteMessage(String str) throws IOException; + public abstract void logOffUser(String str) throws IOException; public abstract List getMessage() throws IOException; public abstract void updateMessage(Message message) throws IOException; + public abstract void updateUser(User user) throws IOException; } diff --git a/src/main/java/com/example/chat/dao/chat/ChatMessage.java b/src/main/java/com/example/chat/dao/chat/ChatMessage.java index 2a8cedc..85e9b58 100644 --- a/src/main/java/com/example/chat/dao/chat/ChatMessage.java +++ b/src/main/java/com/example/chat/dao/chat/ChatMessage.java @@ -1,10 +1,12 @@ package com.example.chat.dao.chat; import com.example.chat.dao.mybatis.MybatisSingleton; +import com.example.chat.entity.User; import com.example.chat.entity.chat.Message; import com.example.chat.entity.chat.UpdateMessage; import org.apache.ibatis.session.SqlSession; import org.springframework.stereotype.Repository; +import org.springframework.test.context.jdbc.Sql; import java.io.IOException; import java.util.List; @@ -27,6 +29,23 @@ public class ChatMessage implements ChatMapper { sqlSession.close(); } + + + @Override + public void updateUser(User user) throws IOException { + SqlSession sqlSession=MybatisSingleton.getSqlSessionFactory().openSession(); + if(user.getPassword()==null){ + sqlSession.update("dao.chat.Message.updateUsername",user); + sqlSession.commit(); + sqlSession.close(); + }else { + sqlSession.update("dao.chat.Message.updatePassword",user); + sqlSession.commit(); + sqlSession.close(); + } + + } + @Override public List getMessage() throws IOException { List messageList; @@ -37,11 +56,12 @@ public class ChatMessage implements ChatMapper { } @Override - public void deleteMessage(String nickname) throws IOException { - SqlSession sqlSession=MybatisSingleton.getSqlSessionFactory().openSession(); - sqlSession.update("dao.chat.Message.updateUser",nickname); + public void logOffUser(String account) throws IOException { + SqlSession sqlSession = MybatisSingleton.getSqlSessionFactory().openSession(); + sqlSession.update("dao.chat.Message.logOffUser", account); sqlSession.commit(); sqlSession.close(); } + } diff --git a/src/main/java/com/example/chat/dao/chat/MapperTest.java b/src/main/java/com/example/chat/dao/chat/MapperTest.java index 448bff9..643803d 100644 --- a/src/main/java/com/example/chat/dao/chat/MapperTest.java +++ b/src/main/java/com/example/chat/dao/chat/MapperTest.java @@ -12,6 +12,7 @@ import org.springframework.test.context.junit4.SpringRunner; import javax.annotation.Resource; import java.io.IOException; + @RunWith(SpringRunner.class) @SpringBootTest(classes = ChatApplication.class) public class MapperTest { diff --git a/src/main/java/com/example/chat/entity/chat/Message.java b/src/main/java/com/example/chat/entity/chat/Message.java index f352a64..c311a7b 100644 --- a/src/main/java/com/example/chat/entity/chat/Message.java +++ b/src/main/java/com/example/chat/entity/chat/Message.java @@ -9,16 +9,28 @@ public class Message { private String sendTime; private String message; + private String account; + + public Message(String nickname, String pic, String sendTime, String message, String account) { + this.nickname = nickname; + this.pic = pic; + this.sendTime = sendTime; + this.message = message; + this.account = account; + } + @JSONCreator public static Message create(@JSONField(name= "nickname")String nickname, @JSONField(name= "pic")String pic, @JSONField(name= "sendTime")String sendTime, - @JSONField(name= "message")String message){ + @JSONField(name= "message")String message, + @JSONField(name="account")String account){ Message message1=new Message(); message1.setNickname(nickname); message1.setMessage(message); message1.setPic(pic); message1.setSendTime(sendTime); + message1.setAccount(account); return message1; } @@ -99,4 +111,20 @@ public class Message { public String toString() { return "Message{nickName = " + nickname + ", pic = " + pic + ", time = " + sendTime + ", message = " + message + "}"; } + + /** + * 获取 + * @return account + */ + public String getAccount() { + return account; + } + + /** + * 设置 + * @param account + */ + public void setAccount(String account) { + this.account = account; + } } diff --git a/src/main/java/com/example/chat/jwt/InterceptorConfig.java b/src/main/java/com/example/chat/jwt/InterceptorConfig.java index 2536e1f..b8ad7f1 100644 --- a/src/main/java/com/example/chat/jwt/InterceptorConfig.java +++ b/src/main/java/com/example/chat/jwt/InterceptorConfig.java @@ -24,7 +24,7 @@ public class InterceptorConfig implements WebMvcConfigurer { excludePath.add("/sendCode"); excludePath.add("/register");//注册 excludePath.add("/register"); - + excludePath.add("/index/modifyHead"); registry.addInterceptor(tokenInterceptor)//注册拦截器 .addPathPatterns("/**")//拦截所有请求 .excludePathPatterns(excludePath);//添加拦截白名单 diff --git a/src/main/java/com/example/chat/service/ChatIndex.java b/src/main/java/com/example/chat/service/ChatIndex.java index 4c86c71..757af52 100644 --- a/src/main/java/com/example/chat/service/ChatIndex.java +++ b/src/main/java/com/example/chat/service/ChatIndex.java @@ -23,10 +23,31 @@ public class ChatIndex { user.setAccount(account); try { userMapper.delUser(user); - user = userMapper.getUserByAccount(account); - chatMapper.deleteMessage(user.getUsername());//修改用户的聊天记录的头像与昵称 + + chatMapper.logOffUser(user.getAccount());//修改用户的聊天记录的头像与昵称 } catch (IOException e) { throw new RuntimeException(e); } } + //修改用户User属性以及聊天记录中的User属性 + public void modifyUsername(User user) throws IOException { + chatMapper.updateUser(user); + userMapper.updateUser(user); + } + public String modifyPassword(User user,String oldPassword){ + String returnStr=null; + try { + User dbUser=userMapper.getUserByAccount(user.getAccount()); + System.out.println("dbUser"+dbUser); + if (dbUser.getPassword().equals(oldPassword)){ + userMapper.updatePassword(user); + returnStr= "success"; + } + } catch (IOException e) { + throw new RuntimeException(e); + + } + return returnStr; + } + } diff --git a/src/main/java/com/example/chat/service/HeadOss.java b/src/main/java/com/example/chat/service/HeadOss.java index 186cea6..7668b2c 100644 --- a/src/main/java/com/example/chat/service/HeadOss.java +++ b/src/main/java/com/example/chat/service/HeadOss.java @@ -3,7 +3,6 @@ package com.example.chat.service; import com.example.chat.dao.UserMapper; import com.example.chat.dao.chat.ChatMapper; import com.example.chat.entity.chat.Message; -import com.example.chat.entity.chat.UpdateMessage; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; @@ -11,6 +10,7 @@ import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import java.io.File; import java.io.IOException; +import java.util.Arrays; @Slf4j @Service @@ -21,31 +21,35 @@ public class HeadOss { ChatMapper chatMapper; - public void ModifyHead(String username, MultipartFile file){ + public void modifyHead(MultipartFile file) { String folderPath = "/www/wwwroot/oss"; - String newFoldPath = folderPath + "/"+ username; - String fileName=file.getOriginalFilename(); - File targetFile=new File(newFoldPath+"/"+fileName); + String username; + String fileName = file.getOriginalFilename(); + username= fileName.split("\\.")[0]; + + String newFoldPath = folderPath + "/" + username; + + File targetFile = new File(newFoldPath + "/" + fileName); File newFile = new File(newFoldPath); if (!newFile.exists()) { if (newFile.mkdir()) { log.info("创建成功"); - }else { + } else { log.error("创建失败"); } - }else { + } else { log.info("该文件夹已存在"); } try { - if (targetFile.exists()){ + if (targetFile.exists()) { targetFile.delete(); } file.transferTo(targetFile); log.info("成功添加"); - String head="https://www.oss.coollh.cn/"+username+"/"+fileName; - userMapper.modifyHead(head,username); - Message message=new Message(username,head,"",""); + String head = "http://www.oss.coollh.cn/" + username + "/" + fileName; + userMapper.modifyHead(head, username); + Message message = new Message(username, head, "", ""); chatMapper.updateMessage(message); } catch (IOException e) { throw new RuntimeException(e); diff --git a/src/main/java/com/example/chat/service/LoginService.java b/src/main/java/com/example/chat/service/LoginService.java index 0333aec..fa87a4d 100644 --- a/src/main/java/com/example/chat/service/LoginService.java +++ b/src/main/java/com/example/chat/service/LoginService.java @@ -19,7 +19,6 @@ public class LoginService { RedisUtil redisUtil; - public String LoginCheck(User requestUser) throws IOException { User user; user = userTable.getUser(requestUser); diff --git a/src/main/resources/mapper/MessageMapper.xml b/src/main/resources/mapper/MessageMapper.xml index 5951ed8..7d50499 100644 --- a/src/main/resources/mapper/MessageMapper.xml +++ b/src/main/resources/mapper/MessageMapper.xml @@ -7,8 +7,8 @@ - insert into message (nickname, pic, sendTime, message) - values (#{nickname}, #{pic}, #{sendTime}, #{message}) + insert into message (nickname, pic, sendTime, message,account) + values (#{nickname}, #{pic}, #{sendTime}, #{message},#{account}) @@ -17,10 +17,13 @@ where nickname = #{nickname} - + update message - set nickname='用户已注销' and pic = 'http://www.oss.coollh.cn/delete.jpg' - where nickname = #{nickname} + set nickname='用户已注销' and account='用户已注销' and pic = 'http://www.oss.coollh.cn/delete.jpg' + where account = #{account} + + + update message set nickname=#{username} where account=#{account} diff --git a/src/main/resources/mapper/UserMapper.xml b/src/main/resources/mapper/UserMapper.xml index 5fbb3e2..93cb956 100644 --- a/src/main/resources/mapper/UserMapper.xml +++ b/src/main/resources/mapper/UserMapper.xml @@ -11,7 +11,11 @@ from user where email = #{email}; - + insert into user(account, password, username, email, pic) values (#{account}, #{password}, #{username}, #{email}, #{pic}); @@ -31,12 +35,13 @@ set pic=#{pic} where account = #{account} - - - + diff --git a/src/main/resources/mybatis.xml b/src/main/resources/mybatis.xml index d7291db..aa71987 100644 --- a/src/main/resources/mybatis.xml +++ b/src/main/resources/mybatis.xml @@ -21,7 +21,7 @@ --> - +