新增账号注销功能

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; package com.example.chat.controller;
import com.example.chat.service.ChatIndex;
import com.example.chat.service.HeadOss; import com.example.chat.service.HeadOss;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -15,9 +16,14 @@ public class IndexController {
@Resource @Resource
HeadOss headOss; HeadOss headOss;
@Resource
@RequestMapping("/chat/modifyHead") ChatIndex chatIndex;
@RequestMapping("/index/modifyHead")
public void modifyHead(@RequestParam("file")MultipartFile file, @RequestParam("username") String username) { public void modifyHead(@RequestParam("file")MultipartFile file, @RequestParam("username") String username) {
headOss.ModifyHead(username,file); 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; package com.example.chat.controller;
import com.example.chat.ChatApplication;
import com.example.chat.dao.UserMapper; import com.example.chat.dao.UserMapper;
import com.example.chat.dao.chat.ChatMapper;
import com.example.chat.entity.Email; import com.example.chat.entity.Email;
import com.example.chat.entity.Result; import com.example.chat.entity.Result;
import com.example.chat.entity.User; import com.example.chat.entity.User;
import com.example.chat.entity.chat.Message;
import com.example.chat.service.CodeCheck; import com.example.chat.service.CodeCheck;
import com.example.chat.service.LoginService; import com.example.chat.service.LoginService;
import com.example.chat.service.mail.MailUtil; import com.example.chat.service.mail.MailUtil;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -68,6 +64,6 @@ public class LoginController {
@PostMapping("/getHead") @PostMapping("/getHead")
public User getHead(@RequestBody User user) throws IOException { 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.entity.User;
import com.example.chat.dao.mybatis.MybatisSingleton; import com.example.chat.dao.mybatis.MybatisSingleton;
import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import java.io.IOException; import java.io.IOException;
@Repository @Repository
public class Login implements UserMapper { public class UserDao implements UserMapper {
@Override @Override
public void addUser(User user) throws IOException { public void addUser(User user) throws IOException {
@ -21,8 +20,11 @@ public class Login implements UserMapper {
} }
@Override @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 @Override
@ -55,12 +57,14 @@ public class Login implements UserMapper {
} }
@Override @Override
public User getHead(String account) throws IOException { public User getUserByAccount(String account) throws IOException {
SqlSession sqlSession=MybatisSingleton.getSqlSessionFactory().openSession(); SqlSession sqlSession=MybatisSingleton.getSqlSessionFactory().openSession();
User user=sqlSession.selectOne("dao.Login.getHead",account); User user=sqlSession.selectOne("dao.Login.getUserByAccount",account);
sqlSession.close(); sqlSession.close();
return user; return user;
} }
} }

View File

@ -8,7 +8,7 @@ import java.io.IOException;
public interface UserMapper { public interface UserMapper {
public abstract void addUser(User user) throws IOException; 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); 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 User emailCheck(User user) throws IOException;
public abstract void modifyHead(String Pic,String username) 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 interface ChatMapper {
public abstract void addMessage(Message message) throws IOException; 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; public abstract List<Message> getMessage() throws IOException;

View File

@ -37,7 +37,11 @@ public class ChatMessage implements ChatMapper {
} }
@Override @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") @Resource(name = "chatMessage")
ChatMapper mapper; ChatMapper mapper;
@Resource(name = "login") @Resource(name = "userDao")
UserMapper userMapper; 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 id="updateHead" parameterType="com.example.chat.entity.chat.Message">
update 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} where nickname = #{nickname}
</update> </update>

View File

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