From aefca9dbaf6911ba9260075d9cffb274e0194b51 Mon Sep 17 00:00:00 2001 From: zhanglinhao <1260788704@qq.com> Date: Fri, 10 May 2024 02:11:23 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/softegg/freetogo/Configurer.java | 2 +- .../Login/controller/LoginController.java | 60 +++++++++ .../freetogo/Login/service/LoginService.java | 15 +++ .../Login/service/LoginServiceImpl.java | 61 +++++++++ .../freetogo/User/Dao/UsersRepository.java | 13 ++ .../com/softegg/freetogo/User/bean/Users.java | 46 +++++++ .../User/controller/UsersController.java | 119 ++++++++++++++++++ .../User/service/UserServiceImpl.java | 102 +++++++++++++++ .../freetogo/User/service/UsersService.java | 27 ++++ .../com/softegg/freetogo/helloController.java | 2 +- src/后端/src/main/resources/application.yml | 2 +- 11 files changed, 446 insertions(+), 3 deletions(-) create mode 100644 src/后端/src/main/java/com/softegg/freetogo/Login/controller/LoginController.java create mode 100644 src/后端/src/main/java/com/softegg/freetogo/Login/service/LoginService.java create mode 100644 src/后端/src/main/java/com/softegg/freetogo/Login/service/LoginServiceImpl.java create mode 100644 src/后端/src/main/java/com/softegg/freetogo/User/Dao/UsersRepository.java create mode 100644 src/后端/src/main/java/com/softegg/freetogo/User/bean/Users.java create mode 100644 src/后端/src/main/java/com/softegg/freetogo/User/controller/UsersController.java create mode 100644 src/后端/src/main/java/com/softegg/freetogo/User/service/UserServiceImpl.java create mode 100644 src/后端/src/main/java/com/softegg/freetogo/User/service/UsersService.java diff --git a/src/后端/src/main/java/com/softegg/freetogo/Configurer.java b/src/后端/src/main/java/com/softegg/freetogo/Configurer.java index 5d37224..bc6485f 100644 --- a/src/后端/src/main/java/com/softegg/freetogo/Configurer.java +++ b/src/后端/src/main/java/com/softegg/freetogo/Configurer.java @@ -5,7 +5,7 @@ import org.springframework.web.servlet.config.annotation.CorsRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; /** - * @description: + * @description:重写http接收规则,使前后端可以跨域通联 * @author:zhanglinhao * @date:2024/5/9 15:20 */ diff --git a/src/后端/src/main/java/com/softegg/freetogo/Login/controller/LoginController.java b/src/后端/src/main/java/com/softegg/freetogo/Login/controller/LoginController.java new file mode 100644 index 0000000..fe9745c --- /dev/null +++ b/src/后端/src/main/java/com/softegg/freetogo/Login/controller/LoginController.java @@ -0,0 +1,60 @@ +package com.softegg.freetogo.Login.controller; + +import com.softegg.freetogo.Login.service.LoginService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.Map; + +/** + * @description:登录服务前后端交互 + * @author:zhanglinhao + * @date:2024/5/9 9:35 + */ +@RestController +//@CrossOrigin(origins = "*") +@RequestMapping("/Login") +public class LoginController { + + @Autowired + LoginService loginService; + + /** + * @description: 登录的交互逻辑 + * @param: map + * @return: java.lang.String + * @author: zhanglinhao + * @date: 2024/5/9 22:44 + */ + @PostMapping("login") + public int Login(@RequestBody Map map) { + System.out.println(map); + System.out.println(map.get("username").toString()); + System.out.println(map.get("password").toString()); + return switch (loginService.loginAccount(map.get("username").toString(), map.get("password").toString())) { + case 1000 -> 1;//登陆成功 + case 1001 -> 2;//密码或账号错误 + case 1002 -> 3;//该账户未注册 + default -> 0; + }; + } + + /** + * @description: 注册的交互逻辑 + * @param: map + * @return: java.lang.String + * @author: zhanglinhao + * @date: 2024/5/9 22:45 + */ + @PostMapping("register") + public int Register(@RequestBody Map map) { + return switch (loginService.registerAccount(map.get("username").toString(), map.get("password").toString())) { + case 1003 -> 4;//该账户已经注册 + case 1004 -> 5;//注册成功 + default -> 0; + }; + } +} diff --git a/src/后端/src/main/java/com/softegg/freetogo/Login/service/LoginService.java b/src/后端/src/main/java/com/softegg/freetogo/Login/service/LoginService.java new file mode 100644 index 0000000..9882150 --- /dev/null +++ b/src/后端/src/main/java/com/softegg/freetogo/Login/service/LoginService.java @@ -0,0 +1,15 @@ +package com.softegg.freetogo.Login.service; + +import org.springframework.stereotype.Service; + +/** + * @description:抽象登录服务接口类 + * @author:zhanglinhao + * @date:2024/5/9 8:37 + */ +@Service +public interface LoginService { + int loginAccount(String phone, String password);//登录 + + int registerAccount(String phone, String password);//注册 +} diff --git a/src/后端/src/main/java/com/softegg/freetogo/Login/service/LoginServiceImpl.java b/src/后端/src/main/java/com/softegg/freetogo/Login/service/LoginServiceImpl.java new file mode 100644 index 0000000..f538be8 --- /dev/null +++ b/src/后端/src/main/java/com/softegg/freetogo/Login/service/LoginServiceImpl.java @@ -0,0 +1,61 @@ +package com.softegg.freetogo.Login.service; + +import com.softegg.freetogo.User.bean.Users; +import com.softegg.freetogo.User.service.UsersService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.Objects; + +/** + * @description:登录服务实现类 + * @author:zhanglinhao + * @date:2024/5/9 9:33 + */ +@Component +public class LoginServiceImpl implements LoginService { + @Autowired + UsersService usersService; + + /** + * @description: 登录接口实现函数,根据返回码进行操作 + * @param: phone + * @param: password + * @return: int + * @author: zhanglinhao + * @date: 2024/5/9 22:46 + */ + @Override + public int loginAccount(String phone, String password) { + if(Objects.equals(phone, "")||Objects.equals(password,"")) + return 1005; + if (usersService.isRegister(phone)) { + if (usersService.getUserByPhone(phone).getPassword().equals(password)) + return 1000;//登录成功 + else + return 1001;//密码或账号错误 + } else + return 1002;//该账户未注册 + } + + /** + * @description: 注册接口实现函数,根据返回码进行操作 + * @param: phone + * @param: password + * @return: int + * @author: zhanglinhao + * @date: 2024/5/9 22:47 + */ + @Override + public int registerAccount(String phone, String password) { + if (usersService.isRegister(phone)) + return 1003;//该账户已经注册 + else { + Users user = new Users(); + user.setPhone(phone); + user.setPassword(password); + usersService.add(user); + return 1004;//注册成功 + } + } +} diff --git a/src/后端/src/main/java/com/softegg/freetogo/User/Dao/UsersRepository.java b/src/后端/src/main/java/com/softegg/freetogo/User/Dao/UsersRepository.java new file mode 100644 index 0000000..a67406b --- /dev/null +++ b/src/后端/src/main/java/com/softegg/freetogo/User/Dao/UsersRepository.java @@ -0,0 +1,13 @@ +package com.softegg.freetogo.User.Dao; + +import com.softegg.freetogo.User.bean.Users; +import org.springframework.data.jpa.repository.JpaRepository; + +/** + * @description:继承Jpa数据库接口类 + * @author:zhanglinhao + * @date:2024/5/8 8:50 + */ +public interface UsersRepository extends JpaRepository { + Users findByPhone(String phone);//自定义函数,根据手机号进行查找返回对应对象 +} diff --git a/src/后端/src/main/java/com/softegg/freetogo/User/bean/Users.java b/src/后端/src/main/java/com/softegg/freetogo/User/bean/Users.java new file mode 100644 index 0000000..48d016d --- /dev/null +++ b/src/后端/src/main/java/com/softegg/freetogo/User/bean/Users.java @@ -0,0 +1,46 @@ +package com.softegg.freetogo.User.bean; + +import jakarta.persistence.*; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +/** + * @description:数据库中表users的对应实体类 + * @author:zhanglinhao + * @date:2024/5/7 15:36 + */ +@Entity +@Table(name="users") +@Setter +@Getter +@NoArgsConstructor +@AllArgsConstructor +public class Users { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Integer uid; + @Column + private String name; + @Column + private String email; + @Column + private String password; + @Column + private String createtime; + @Column + private String IDCard; + @Column + private int reputation; + @Column + private boolean gender;//ture:male, false:female + @Column + private boolean membertype;//true:guide, false:visitor + @Column + private String phone; + @Column + private String nickname; + @Column + private int status; +} diff --git a/src/后端/src/main/java/com/softegg/freetogo/User/controller/UsersController.java b/src/后端/src/main/java/com/softegg/freetogo/User/controller/UsersController.java new file mode 100644 index 0000000..c9e54e3 --- /dev/null +++ b/src/后端/src/main/java/com/softegg/freetogo/User/controller/UsersController.java @@ -0,0 +1,119 @@ +package com.softegg.freetogo.User.controller; + +import com.softegg.freetogo.User.bean.Users; +import com.softegg.freetogo.User.service.UsersService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.service.annotation.GetExchange; + +import java.util.List; + +/** + * @description:Users控制类,用于前后端交互 + * @author:zhanglinhao + * @date:2024/5/8 8:28 + */ +@RestController +//@CrossOrigin(origins = "*") +@RequestMapping("/users") +public class UsersController { + @Autowired + private UsersService usersService; + + @GetMapping("findAll") + public List findAll() { + return usersService.findAll(); + } + + @GetMapping("add") + public String add(String name, + String email, + String psw, + String ct, + int rpt, + String phone, + String nkn, + String idc, + boolean gender, + boolean type, + int status) { + Users user = new Users(); + setUsers(name, email, psw, ct, rpt, phone, nkn, idc, gender, type, user, status); + usersService.add(user); + return "添加成功"; + } + + @GetMapping("delbyid") + public String delById(int id) { + usersService.deleteById(id); + return "删除成功"; + } + + @GetMapping("findbyid") + public Users getUserById(int id) { + return usersService.getUserById(id); + } + + @GetMapping("update") + public String update( + String name, + String email, + String psw, + String ct, + int rpt, + String phone, + String nkn, + String idc, + boolean gender, + boolean type, + int status) {//@RequestBody Map map){//HttpServletRequest user) { +// int id = Integer.parseInt(user.getParameter("uid")); +// String name=user.getParameter("name"); +// String email=user.getParameter("email"); +// String psw=user.getParameter("password"); +// String ct=user.getParameter("createtime"); +// int rpt=Integer.parseInt(user.getParameter("reputation")); +// String phone=user.getParameter("phone"); +// String nkn=user.getParameter("nickname"); +// String idc=user.getParameter("IDCard"); +// boolean gender=false; +// boolean type=false; +// int status=Integer.parseInt(user.getParameter("status")); +// String phone = map.get("phone").toString(); +// String name = map.get("name").toString(); +// String email = map.get("email").toString(); +// String psw=map.get("password").toString(); +// String ct=map.get("createtime").toString(); +// int rpt=Integer.parseInt(map.get("reputation").toString()); +// String nkn=map.get("nickname").toString(); +// String idc=map.get("IDCard").toString(); +// boolean gender = true; +// boolean type = false; +// int status = Integer.parseInt(map.get("status").toString()); + Users User = usersService.getUserByPhone(phone); + System.out.println(User); + setUsers(name, email, psw, ct, rpt, phone, nkn, idc, gender, type, User, status); + usersService.update(User); + return "更新成功"; + } + + @GetMapping("getByPhone") + public Users getByPhone(String phone){ + return usersService.getUserByPhone(phone); + } + private void setUsers(String name, String email, String psw, String ct, int rpt, String phone, String nkn, String idc, boolean gender, boolean type, Users user, int status) { + user.setName(name); + user.setGender(gender); + user.setPassword(psw); + user.setEmail(email); + user.setReputation(rpt); + user.setMembertype(type); + user.setCreatetime(ct); + user.setPhone(phone); + user.setNickname(nkn); + user.setIDCard(idc); + user.setStatus(status); + } +} diff --git a/src/后端/src/main/java/com/softegg/freetogo/User/service/UserServiceImpl.java b/src/后端/src/main/java/com/softegg/freetogo/User/service/UserServiceImpl.java new file mode 100644 index 0000000..403e24b --- /dev/null +++ b/src/后端/src/main/java/com/softegg/freetogo/User/service/UserServiceImpl.java @@ -0,0 +1,102 @@ +package com.softegg.freetogo.User.service; + +import com.softegg.freetogo.User.Dao.UsersRepository; +import com.softegg.freetogo.User.bean.Users; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.List; + +/** + * @description:数据库操作接口实现类 + * @author:zhanglinhao + * @date:2024/5/8 8:50 + */ +@Component +public class UserServiceImpl implements UsersService { + @Autowired + private UsersRepository usersRepository; + + /** + * @description: 查找所有用户 + * @param: null + * @return: java.util.List + * @author: zhanglinhao + * @date: 2024/5/9 22:52 + */ + public List findAll() { + System.out.println("查询成功"); + return usersRepository.findAll(); + } + + /** + * @description: 以user为用户入库 + * @param: user + * @return: void + * @author: zhanglinhao + * @date: 2024/5/9 22:53 + */ + public void add(Users user) { + usersRepository.save(user); + System.out.println("添加成功"); + } + + /** + * @description: 删除对应id用户 + * @param: id + * @return: void + * @author: zhanglinhao + * @date: 2024/5/9 22:53 + */ + public void deleteById(int id) { + usersRepository.deleteById(id); + System.out.println("删除成功"); + } + + /** + * @description: 获得对应id用户 + * @param: id + * @return: com.softegg.freetogo.User.Bean.Users + * @author: zhanglinhao + * @date: 2024/5/9 22:54 + */ + public Users getUserById(int id) { + return usersRepository.findById(id).orElse(null); + } + + /** + * @description: 更新用户信息 + * @param: user + * @return: void + * @author: zhanglinhao + * @date: 2024/5/9 22:54 + */ + public void update(Users user) { + usersRepository.save(user); + System.out.println("更新成功"); + } + + /** + * @description: 判断该手机号(账号)是否已经入库 + * @param: phone + * @return: boolean + * @author: zhanglinhao + * @date: 2024/5/9 22:54 + */ + public boolean isRegister(String phone) { + Users users = usersRepository.findByPhone(phone); + System.out.println(users); + return users != null; + } + + /** + * @description: 根据手机号获得用户 + * @param: phone + * @return: com.softegg.freetogo.User.Bean.Users + * @author: zhanglinhao + * @date: 2024/5/9 22:55 + */ + public Users getUserByPhone(String phone) { + return usersRepository.findByPhone(phone); + } +} diff --git a/src/后端/src/main/java/com/softegg/freetogo/User/service/UsersService.java b/src/后端/src/main/java/com/softegg/freetogo/User/service/UsersService.java new file mode 100644 index 0000000..3afc6d9 --- /dev/null +++ b/src/后端/src/main/java/com/softegg/freetogo/User/service/UsersService.java @@ -0,0 +1,27 @@ +package com.softegg.freetogo.User.service; + +import com.softegg.freetogo.User.bean.Users; + +import java.util.List; + +/** + * @description:数据库操作抽象接口类 + * @author:zhanglinhaon + * @date:2024/5/7 16:06 + */ + +public interface UsersService { + List findAll();//查找所有用户 + + void add(Users user);//以user为用户入库 + + void deleteById(int id);//删除对应id用户 + + Users getUserById(int id);//获得对应id用户 + + void update(Users user);//更新用户信息 + + boolean isRegister(String phone);//判断该手机号(账号)是否已经入库 + + Users getUserByPhone(String phone);//根据手机号获得用户 +} diff --git a/src/后端/src/main/java/com/softegg/freetogo/helloController.java b/src/后端/src/main/java/com/softegg/freetogo/helloController.java index c272eb7..2fcc29d 100644 --- a/src/后端/src/main/java/com/softegg/freetogo/helloController.java +++ b/src/后端/src/main/java/com/softegg/freetogo/helloController.java @@ -4,7 +4,7 @@ import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; /** - * @description: + * @description:测试 * @author:zhanglinhao * @date:2024/5/7 23:40 */ diff --git a/src/后端/src/main/resources/application.yml b/src/后端/src/main/resources/application.yml index a49d13e..d1ee177 100644 --- a/src/后端/src/main/resources/application.yml +++ b/src/后端/src/main/resources/application.yml @@ -7,4 +7,4 @@ spring: username: root password: zlh1260788704 url: dbc:mysql://localhost:3306/freetogo?useSSL=false&useUnicode=true&characterEncoding=utf-8 - driverClassName: com.mysql.cj.jdbc.Driver + driverClassName: com.mysql.jdbc.Driver