新增账号注销功能

This commit is contained in:
Cool 2023-12-04 12:27:17 +08:00
parent ae6e79947d
commit 2fdcf5dbfd
10 changed files with 73 additions and 21 deletions

View File

@ -1,5 +1,6 @@
package com.example.chat.controller;
import com.example.chat.service.ChatIndex;
import com.example.chat.service.HeadOss;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
@ -15,9 +16,14 @@ public class IndexController {
@Resource
HeadOss headOss;
@RequestMapping("/chat/modifyHead")
@Resource
ChatIndex chatIndex;
@RequestMapping("/index/modifyHead")
public void modifyHead(@RequestParam("file")MultipartFile file, @RequestParam("username") String username) {
headOss.ModifyHead(username,file);
}
@GetMapping("/index/deleteUser")
public void deleteUser(@RequestParam("account")String account){
chatIndex.deleteUser(account);
}
}

View File

@ -1,16 +1,12 @@
package com.example.chat.controller;
import com.example.chat.ChatApplication;
import com.example.chat.dao.UserMapper;
import com.example.chat.dao.chat.ChatMapper;
import com.example.chat.entity.Email;
import com.example.chat.entity.Result;
import com.example.chat.entity.User;
import com.example.chat.entity.chat.Message;
import com.example.chat.service.CodeCheck;
import com.example.chat.service.LoginService;
import com.example.chat.service.mail.MailUtil;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@ -68,6 +64,6 @@ public class LoginController {
@PostMapping("/getHead")
public User getHead(@RequestBody User user) throws IOException {
return userMapper.getHead(user.getAccount());
return userMapper.getUserByAccount(user.getAccount());
}
}

View File

@ -3,14 +3,13 @@ package com.example.chat.dao;
import com.example.chat.entity.User;
import com.example.chat.dao.mybatis.MybatisSingleton;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import org.springframework.stereotype.Repository;
import java.io.IOException;
@Repository
public class Login implements UserMapper {
public class UserDao implements UserMapper {
@Override
public void addUser(User user) throws IOException {
@ -21,8 +20,11 @@ public class Login implements UserMapper {
}
@Override
public void delUser(User user) {
public void delUser(User user) throws IOException {
SqlSession sqlSession=MybatisSingleton.getSqlSessionFactory().openSession();
sqlSession.delete("dao.Login.deleteUser",user);
sqlSession.commit();
sqlSession.close();
}
@Override
@ -55,12 +57,14 @@ public class Login implements UserMapper {
}
@Override
public User getHead(String account) throws IOException {
public User getUserByAccount(String account) throws IOException {
SqlSession sqlSession=MybatisSingleton.getSqlSessionFactory().openSession();
User user=sqlSession.selectOne("dao.Login.getHead",account);
User user=sqlSession.selectOne("dao.Login.getUserByAccount",account);
sqlSession.close();
return user;
}
}

View File

@ -8,7 +8,7 @@ import java.io.IOException;
public interface UserMapper {
public abstract void addUser(User user) throws IOException;
public abstract void delUser(User user);
public abstract void delUser(User user) throws IOException;
public abstract void updateUser(User oldUser,User newUser);
@ -16,6 +16,7 @@ public interface UserMapper {
public abstract User emailCheck(User user) throws IOException;
public abstract void modifyHead(String Pic,String username) throws IOException;
public abstract User getHead(String account)throws IOException;
public abstract User getUserByAccount(String account)throws IOException;
}

View File

@ -10,7 +10,7 @@ import java.util.List;
public interface ChatMapper {
public abstract void addMessage(Message message) throws IOException;
public abstract void deleteMessage();
public abstract void deleteMessage(String str) throws IOException;
public abstract List<Message> getMessage() throws IOException;

View File

@ -37,7 +37,11 @@ public class ChatMessage implements ChatMapper {
}
@Override
public void deleteMessage() {
public void deleteMessage(String nickname) throws IOException {
SqlSession sqlSession=MybatisSingleton.getSqlSessionFactory().openSession();
sqlSession.update("dao.chat.Message.updateUser",nickname);
sqlSession.commit();
sqlSession.close();
}
}

View File

@ -18,7 +18,7 @@ public class MapperTest {
@Resource(name = "chatMessage")
ChatMapper mapper;
@Resource(name = "login")
@Resource(name = "userDao")
UserMapper userMapper;

View File

@ -0,0 +1,32 @@
package com.example.chat.service;
import com.example.chat.dao.UserMapper;
import com.example.chat.dao.chat.ChatMapper;
import com.example.chat.entity.User;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.io.IOException;
@Slf4j
@Service
public class ChatIndex {
@Resource
UserMapper userMapper;
@Resource
ChatMapper chatMapper;
public void deleteUser(String account) {
User user = new User();
user.setAccount(account);
try {
userMapper.delUser(user);
user = userMapper.getUserByAccount(account);
chatMapper.deleteMessage(user.getUsername());//修改用户的聊天记录的头像与昵称
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}

View File

@ -13,7 +13,13 @@
<update id="updateHead" parameterType="com.example.chat.entity.chat.Message">
update message
set and pic = #{pic}
set pic = #{pic}
where nickname = #{nickname}
</update>
<update id="updateUser" parameterType="com.example.chat.entity.chat.Message">
update message
set nickname='用户已注销' and pic = 'http://www.oss.coollh.cn/delete.jpg'
where nickname = #{nickname}
</update>

View File

@ -16,7 +16,7 @@
insert into user(account, password, username, email, pic)
values (#{account}, #{password}, #{username}, #{email}, #{pic});
</insert>
<delete id="delUser">
<delete id="deleteUser" parameterType="com.example.chat.entity.User">
delete
from user
where account = #{account};
@ -31,9 +31,12 @@
set pic=#{pic}
where account = #{account}
</update>
<select id="getHead" resultType="com.example.chat.entity.User">
<select id="getUserByAccount" resultType="com.example.chat.entity.User">
select *
from user
where account = #{account}
</select>
</mapper>