From 321772afa778022be6ac466235901f754750aa9a Mon Sep 17 00:00:00 2001 From: wuyifan <251226X> Date: Mon, 17 Jun 2024 10:13:54 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=8E=E7=AB=AF=E4=BB=A3=E7=A0=81=E6=8F=90?= =?UTF-8?q?=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/Evaluate/Dao/EvaluateRepository.java | 15 ++ .../java/Evaluate/bean/Evaluations.java | 32 +++ .../controller/EvaluationController.java | 115 ++++++++ .../Evaluate/service/EvaluateService.java | 27 ++ .../Evaluate/service/EvaluateServiceImpl.java | 112 ++++++++ src/后端/java/FeedBack/bean.java | 9 + .../Login/controller/LoginController.java | 77 ++++++ .../java/Login/service/LoginService.java | 21 ++ .../java/Login/service/LoginServiceImpl.java | 98 +++++++ src/后端/java/Login/返回码.txt | 13 + .../java/User/Dao/GuidesRepository.java | 12 + src/后端/java/User/Dao/UsersRepository.java | 13 + src/后端/java/User/bean/Guides.java | 31 +++ src/后端/java/User/bean/Users.java | 60 +++++ .../java/User/controller/UsersController.java | 247 ++++++++++++++++++ .../java/User/service/GuidesService.java | 14 + .../java/User/service/GuidesServiceImpl.java | 49 ++++ .../java/User/service/UserServiceImpl.java | 169 ++++++++++++ .../java/User/service/UsersService.java | 33 +++ 19 files changed, 1147 insertions(+) create mode 100644 src/后端/java/Evaluate/Dao/EvaluateRepository.java create mode 100644 src/后端/java/Evaluate/bean/Evaluations.java create mode 100644 src/后端/java/Evaluate/controller/EvaluationController.java create mode 100644 src/后端/java/Evaluate/service/EvaluateService.java create mode 100644 src/后端/java/Evaluate/service/EvaluateServiceImpl.java create mode 100644 src/后端/java/FeedBack/bean.java create mode 100644 src/后端/java/Login/controller/LoginController.java create mode 100644 src/后端/java/Login/service/LoginService.java create mode 100644 src/后端/java/Login/service/LoginServiceImpl.java create mode 100644 src/后端/java/Login/返回码.txt create mode 100644 src/后端/java/User/Dao/GuidesRepository.java create mode 100644 src/后端/java/User/Dao/UsersRepository.java create mode 100644 src/后端/java/User/bean/Guides.java create mode 100644 src/后端/java/User/bean/Users.java create mode 100644 src/后端/java/User/controller/UsersController.java create mode 100644 src/后端/java/User/service/GuidesService.java create mode 100644 src/后端/java/User/service/GuidesServiceImpl.java create mode 100644 src/后端/java/User/service/UserServiceImpl.java create mode 100644 src/后端/java/User/service/UsersService.java diff --git a/src/后端/java/Evaluate/Dao/EvaluateRepository.java b/src/后端/java/Evaluate/Dao/EvaluateRepository.java new file mode 100644 index 0000000..c786088 --- /dev/null +++ b/src/后端/java/Evaluate/Dao/EvaluateRepository.java @@ -0,0 +1,15 @@ +package com.softegg.freetogo.Evaluate.Dao; + +import com.softegg.freetogo.Evaluate.bean.Evaluations; +import org.springframework.data.jpa.repository.JpaRepository; + +/** + * @description: 继承Jpa数据库接口类 + * @author: zhanglinhao + * @date: 2024/5/10 9:27 + */ +public interface EvaluateRepository extends JpaRepository { +// List findByEditorPhone(String phone); + +// List findByEditedPhone(String phone); +} diff --git a/src/后端/java/Evaluate/bean/Evaluations.java b/src/后端/java/Evaluate/bean/Evaluations.java new file mode 100644 index 0000000..ff5cbc2 --- /dev/null +++ b/src/后端/java/Evaluate/bean/Evaluations.java @@ -0,0 +1,32 @@ +package com.softegg.freetogo.Evaluate.bean; + +import jakarta.persistence.*; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +/** + * @description: + * @author:zhanglinhao + * @date:2024/5/10 9:07 + */ +@Entity +@Table(name = "evaluation") +@Setter +@Getter +@AllArgsConstructor +@NoArgsConstructor +public class Evaluations { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private int eid;//评价id + @Column(name = "createtime") + private String ct;//创建日期 + @Column(name = "modifytime") + private String mt;//编辑日期 + @Column + private String ebody;//评价本体 + @Column + private int satisfaction;//满意度整数1-5 +} diff --git a/src/后端/java/Evaluate/controller/EvaluationController.java b/src/后端/java/Evaluate/controller/EvaluationController.java new file mode 100644 index 0000000..1a7de91 --- /dev/null +++ b/src/后端/java/Evaluate/controller/EvaluationController.java @@ -0,0 +1,115 @@ +package com.softegg.freetogo.Evaluate.controller; + +import com.softegg.freetogo.Evaluate.bean.Evaluations; +import com.softegg.freetogo.Evaluate.service.EvaluateService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.time.LocalDateTime; +import java.util.List; +import java.util.Map; + +/** + * @description: 对评价的操作 + * @author: zhanglinhao + * @date: 2024/5/11 17:33 + */ +@RestController +@RequestMapping("/evaluate") +public class EvaluationController { + @Autowired + EvaluateService evaluateService; + + /** + * @description: 获取所有需求 + * @param: null + * @return: java.util.List + * @author: zhanglinhao + * @date: 2024/5/12 0:11 + */ + @GetMapping("findAllEvaluation") + public List findAllEvaluation() { + return evaluateService.evaluationList(); + } + + /** + * @description: 添加评价 + * @param: ebody + * @return: void + * @author: zhanglinhao + * @date: 2024/5/12 0:28 + */ + @PostMapping("addEvaluation") + public void addEvaluation(@RequestBody Map ebody) { + LocalDateTime currentTime = LocalDateTime.now(); + Evaluations evaluation = new Evaluations(); + evaluation.setEid(Integer.parseInt(ebody.get("eid"))); + evaluation.setEbody(ebody.get("ebody")); + evaluation.setSatisfaction(Integer.parseInt(ebody.get("satisfaction"))); + evaluation.setCt(currentTime.toString()); + evaluation.setMt(currentTime.toString()); + evaluateService.addEvaluation(evaluation); + } + + /** + * @description: 获取该用户对别人的评价 + * @param: phone + * @return: java.util.List + * @author: zhanglinhao + * @date: 2024/5/12 0:30 + */ +// @GetMapping("evaluationByPhone") +// public List evaluationByPhone(String phone) { +// return evaluateService.getEListByPhone(phone); +// } + @GetMapping("getEvaluation") + public Evaluations getEvaluation(int eid) { + return evaluateService.getEvaluationById(eid); + } + + /** + * @description: 编辑评论 + * @param: eid + * @param: ebody + * @return: void + * @author: zhanglinhao + * @date: 2024/5/12 13:31 + */ + @PostMapping("editEvaluation") + public void editEvaluation(@RequestBody Map ebody) { + System.out.println("接收的json:" + ebody); + LocalDateTime currentTime = LocalDateTime.now(); + Evaluations evaluation = new Evaluations(Integer.parseInt(ebody.get("eid")), ebody.get("ct"), currentTime.toString(), ebody.get("ebody"), Integer.parseInt(ebody.get("satisfaction"))); + evaluateService.editEvaluation(evaluation); + } + + /** + * @description: 删除评论 + * @param: eid + * @return: void + * @author: zhanglinhao + * @date: 2024/5/12 13:32 + */ + @GetMapping("deleteEvaluation") + public void deleteEvaluation(int eid) { + evaluateService.deleteEvaluation(eid); + } + + /** + * @description: 获取该用户的受满意程度 + * @param: phone + * @return: int + * @author: zhanglinhao + * @date: 2024/5/12 13:39 + */ +// @GetMapping("getSatisfaction") +// public String getSatisfaction(String phone) { +// List elist = evaluateService.getEvaluatedByPhone(phone); +// float sumOfSatisfaction = 0; +// for (Evaluations evaluation : elist) { +// sumOfSatisfaction += evaluation.getSatisfaction(); +// } +// System.out.println("查询满意度:"+ sumOfSatisfaction); +// return Float.toString(sumOfSatisfaction /elist.size()); +// } +} diff --git a/src/后端/java/Evaluate/service/EvaluateService.java b/src/后端/java/Evaluate/service/EvaluateService.java new file mode 100644 index 0000000..a192a6b --- /dev/null +++ b/src/后端/java/Evaluate/service/EvaluateService.java @@ -0,0 +1,27 @@ +package com.softegg.freetogo.Evaluate.service; + +import com.softegg.freetogo.Evaluate.bean.Evaluations; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @description: + * @author:zhanglinhao + * @date:2024/5/10 8:52 + */ +@Service +public interface EvaluateService { + List evaluationList();//获取所有评论 + +// List getEListByPhone(String phone);//根据电话筛选评价 + + // List getEvaluatedByPhone(String phone); + Evaluations getEvaluationById(int eid);//根据id获取评论 + + void addEvaluation(Evaluations evaluation);//添加评论 + + void editEvaluation(Evaluations evaluation);//编辑评论 + + void deleteEvaluation(int eid);//删除评论 +} diff --git a/src/后端/java/Evaluate/service/EvaluateServiceImpl.java b/src/后端/java/Evaluate/service/EvaluateServiceImpl.java new file mode 100644 index 0000000..ac3f622 --- /dev/null +++ b/src/后端/java/Evaluate/service/EvaluateServiceImpl.java @@ -0,0 +1,112 @@ +package com.softegg.freetogo.Evaluate.service; + +import com.softegg.freetogo.Evaluate.Dao.EvaluateRepository; +import com.softegg.freetogo.Evaluate.bean.Evaluations; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.List; + +/** + * @description: + * @author:zhanglinhao + * @date:2024/5/10 9:25 + */ +@Component +public class EvaluateServiceImpl implements EvaluateService { + + @Autowired + EvaluateRepository evaluateRepository; + + /** + * @description: 获取所有评论 + * @param: null + * @return: void + * @author: zhanglinhao + * @date: 2024/5/10 9:25 + */ + @Override + public List evaluationList() { + System.out.println("查询评论"); + return evaluateRepository.findAll(); + } + + /** + * @description: 根据id获取评论 + * @param: eid + * @return: com.softegg.freetogo.Evaluate.bean.Evaluations + * @author: zhanglinhao + * @date: 2024/5/15 8:13 + */ + @Override + public Evaluations getEvaluationById(int eid) { + return evaluateRepository.findById(eid).get(); + } + + + /** + * @description: 根据电话筛选评价 + * @param: phone + * @return: java.util.List + * @author: zhanglinhao + * @date: 2024/5/11 16:28 + */ +// @Override +// public List getEListByPhone(String phone) { +// System.out.println("查询" + phone + "的评论"); +// return evaluateRepository.findByEditorPhone(phone); +// } + + /** + * @description: 获取该用户所有被他人评价的评价 + * @param: phone + * @return: java.util.List + * @author: zhanglinhao + * @date: 2024/5/12 21:21 + */ +// @Override +// public List getEvaluatedByPhone(String phone) { +// return evaluateRepository.findByEditedPhone(phone); +// } + + /** + * @description: 添加评论 + * @param: evaluation + * @return: void + * @author: zhanglinhao + * @date: 2024/5/10 21:20 + */ + @Override + public void addEvaluation(Evaluations evaluation) { + evaluateRepository.save(evaluation); + System.out.println("添加评论:" + evaluation.getEbody()); + } + + /** + * @description: 编辑评论 + * @param: eid + * @return: void + * @author: zhanglinhao + * @date: 2024/5/11 17:10 + */ + @Override + public void editEvaluation(Evaluations evaluation) { + int eid = evaluation.getEid(); + System.out.println("编辑评论:" + eid); + evaluateRepository.save(evaluation); + System.out.println("编辑成功:" + eid); + } + + /** + * @description: 删除评论 + * @param: eid + * @return: void + * @author: zhanglinhao + * @date: 2024/5/11 17:28 + */ + @Override + public void deleteEvaluation(int eid) { + evaluateRepository.deleteById(eid); + System.out.println("删除评论:" + eid); + } +} diff --git a/src/后端/java/FeedBack/bean.java b/src/后端/java/FeedBack/bean.java new file mode 100644 index 0000000..aacb79d --- /dev/null +++ b/src/后端/java/FeedBack/bean.java @@ -0,0 +1,9 @@ +package com.softegg.freetogo.FeedBack; + +/** + * @description: + * @author: zhanglinhao + * @date: 2024/5/20 11:14 + */ +public class bean { +} diff --git a/src/后端/java/Login/controller/LoginController.java b/src/后端/java/Login/controller/LoginController.java new file mode 100644 index 0000000..c6a6156 --- /dev/null +++ b/src/后端/java/Login/controller/LoginController.java @@ -0,0 +1,77 @@ +package com.softegg.freetogo.Login.controller; + +import com.softegg.freetogo.Login.service.LoginService; +import com.softegg.freetogo.User.Dao.GuidesRepository; +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; + + @Autowired + GuidesRepository guidesRepository; + + /** + * @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("phone:" + map.get("phone").toString()); + System.out.println("password" + map.get("password").toString()); + int tag = loginService.loginAccount(map.get("phone").toString(), map.get("password").toString()); + System.out.println("LoginTag:" + tag); + return switch (tag) { + case 1000 -> 1;//登陆成功 + case 1001 -> 2;//密码或账号错误 + case 1002 -> 3;//该账户未注册 + case 1005 -> 6;//未输入账号密码 + case 1006 -> 7;//未输入账号 + case 1007 -> 8;//未输入密码 + 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) { + System.out.println(map); + int tag = loginService.registerAccount((String) map.get("name"), (String) map.get("password"), (String) map.get("phone"), (String) map.get("nickname"), (String) map.get("IDCard")); + System.out.println("RegisterTag:" + tag); + return switch (tag) { + case 1003 -> 4;//该账户已经注册 + case 1004 -> 5;//注册成功 + case 1008 -> 9;//身份证输入错误18位 + case 1010 -> 11;//手机号输入错误11位 + case 1011 -> 12;//密码过短最少8位 + case 1012 -> 13;//姓名未输入 + default -> 0; + }; + } + +} diff --git a/src/后端/java/Login/service/LoginService.java b/src/后端/java/Login/service/LoginService.java new file mode 100644 index 0000000..71d817e --- /dev/null +++ b/src/后端/java/Login/service/LoginService.java @@ -0,0 +1,21 @@ +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); + + int registerAccount(String name, + String password, + String phone, + String nickname, + String IDCard);//注册 + +} diff --git a/src/后端/java/Login/service/LoginServiceImpl.java b/src/后端/java/Login/service/LoginServiceImpl.java new file mode 100644 index 0000000..c227a13 --- /dev/null +++ b/src/后端/java/Login/service/LoginServiceImpl.java @@ -0,0 +1,98 @@ +package com.softegg.freetogo.Login.service; + +import com.softegg.freetogo.User.Dao.GuidesRepository; +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.time.LocalDateTime; + +/** + * @description:登录服务实现类 + * @author:zhanglinhao + * @date:2024/5/9 9:33 + */ +@Component +public class LoginServiceImpl implements LoginService { + @Autowired + UsersService usersService; + @Autowired + GuidesRepository guidesRepository; + + /** + * @description: 登录接口实现函数,根据返回码进行操作 + * @param: phone + * @param: password + * @return: int + * @author: zhanglinhao + * @date: 2024/5/9 22:46 + */ + @Override + public int loginAccount(String phone, String password) { + if (phone.isEmpty() && password.isEmpty()) + return 1005;//未输入账号密码 + else if (phone.isEmpty()) + return 1006;//未输入账号 + else if (password.isEmpty()) + return 1007;//未输入密码 + if (usersService.isRegister(phone)) { + if (usersService.getUserByPhone(phone).getPassword().equals(password)) + return 1000;//登录成功 + else + return 1001;//密码或账号错误 + } else + return 1002;//该账户未注册 + } + + /** + * @description: 注册接口实现函数,根据返回码进行操作 + * @param: name + * @param: password + * @param: phone + * @param: nickname + * @param: IDCard + * @return: int + * @author: zhanglinhao + * @date: 2024/5/11 15:57 + */ + @Override + public int registerAccount(String name, + String password, + String phone, + String nickname, + String IDCard) { + if (usersService.isRegister(phone)) + return 1003;//该账户已经注册 + else if(name.isEmpty()) + return 1012;//姓名未输入 + else if (IDCard.length() != 18) + return 1008;//身份证输入错误 + else if (phone.length() != 11) + return 1010;//手机号输入错误 + else if (password.length() < 8) + return 1011;//密码过于简单 + else { + LocalDateTime currentTime = LocalDateTime.now(); + System.out.println("注册信息:姓名:" + name + "密码:" + password + "电话:" + phone + "昵称:" + nickname + "身份证:" + IDCard); + Users user = new Users(); + user.setPhone(phone); + user.setPassword(password); + user.setNickname(nickname); + user.setIdcard(IDCard); + user.setName(name); + user.setCreatetime((currentTime.getYear() + "-" + currentTime.getMonthValue() + "-" + currentTime.getDayOfMonth())); + user.setGender(isMale(IDCard)); + user.setStatus(0); + user.setReputation(60); + user.setMembertype(false); + usersService.add(user); + return 1004;//注册成功 + } + } + + boolean isMale(String IDCard) { + System.out.println("根据身份证判断性别:" + IDCard + " 第17位:" + IDCard.charAt(16)); + return (int) IDCard.charAt(16) % 2 != 0; + } +} diff --git a/src/后端/java/Login/返回码.txt b/src/后端/java/Login/返回码.txt new file mode 100644 index 0000000..8cb8156 --- /dev/null +++ b/src/后端/java/Login/返回码.txt @@ -0,0 +1,13 @@ +1000->1 登录成功 +1001->2 密码或账号错误 +1002->3 该账户未注册 +1003->4 该账户已经注册 +1004->5 注册成功 +1005->6 未输入账号密码 +1006->7 未输入账号 +1007->8 身份证输入错误 +1008->9 成功注册导游 +1009->10 已是导游 +1010->11 手机号输入错误 +1011->12 密码过短 +1012->13 未输入姓名 \ No newline at end of file diff --git a/src/后端/java/User/Dao/GuidesRepository.java b/src/后端/java/User/Dao/GuidesRepository.java new file mode 100644 index 0000000..0674c4a --- /dev/null +++ b/src/后端/java/User/Dao/GuidesRepository.java @@ -0,0 +1,12 @@ +package com.softegg.freetogo.User.Dao; + +import com.softegg.freetogo.User.bean.Guides; +import org.springframework.data.jpa.repository.JpaRepository; + +/** + * @description: 继承Jpa数据库接口类 + * @author: zhanglinhao + * @date: 2024/5/16 10:44 + */ +public interface GuidesRepository extends JpaRepository { +} diff --git a/src/后端/java/User/Dao/UsersRepository.java b/src/后端/java/User/Dao/UsersRepository.java new file mode 100644 index 0000000..a67406b --- /dev/null +++ b/src/后端/java/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/后端/java/User/bean/Guides.java b/src/后端/java/User/bean/Guides.java new file mode 100644 index 0000000..d7df762 --- /dev/null +++ b/src/后端/java/User/bean/Guides.java @@ -0,0 +1,31 @@ +package com.softegg.freetogo.User.bean; + +import jakarta.persistence.*; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +/** + * @description: 导游实体类 + * @author: zhanglinhao + * @date: 2024/5/16 10:33 + */ +@Entity +@Table(name = "guides") +@Setter +@Getter +@NoArgsConstructor +@AllArgsConstructor +public class Guides { + @Id + private Integer uid; + @Column(name = "residence") + private String rsd; + @Column(name = "familiarareas") + private String fa; + @Column(name = "synopsis") + private String syns; + @Column(name = "experance") + private boolean re; +} diff --git a/src/后端/java/User/bean/Users.java b/src/后端/java/User/bean/Users.java new file mode 100644 index 0000000..9f6f97a --- /dev/null +++ b/src/后端/java/User/bean/Users.java @@ -0,0 +1,60 @@ +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(name="IDCard") + 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; + + public Users(String name, String email, String psw, String ct, int rpt, String phone, String nkn, String idc, boolean gender, boolean type, int status) { + this.name = name; + this.email = email; + this.password = psw; + this.createtime = ct; + this.reputation = rpt; + this.phone = phone; + this.nickname = nkn; + this.idcard = idc; + this.gender = gender; + this.membertype = type; + this.status = status; + } +} diff --git a/src/后端/java/User/controller/UsersController.java b/src/后端/java/User/controller/UsersController.java new file mode 100644 index 0000000..f947612 --- /dev/null +++ b/src/后端/java/User/controller/UsersController.java @@ -0,0 +1,247 @@ +package com.softegg.freetogo.User.controller; + +import com.softegg.freetogo.User.bean.Guides; +import com.softegg.freetogo.User.bean.Users; +import com.softegg.freetogo.User.service.GuidesService; +import com.softegg.freetogo.User.service.UsersService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; +import java.util.Map; + +/** + * @description:Users控制类,用于前后端交互 + * @author:zhanglinhao + * @date:2024/5/8 8:28 + */ +@RestController +//@CrossOrigin(origins = "*") +@RequestMapping("/users") +public class UsersController { + @Autowired + UsersService usersService; + @Autowired + GuidesService guidesService; + + /** + * @description: 查找users表中所有数据 + * @param: null + * @return: java.util.List + * @author: zhanglinhao + * @date: 2024/5/10 8:16 + */ + @GetMapping("findAll") + public List findAll() { + System.out.println("响应查找所有数据"); + return usersService.findAll(); + } + + /** + * @description: 新增用户 + * @author: zhanglinhao + * @date: 2024/5/10 8:17 + */ + @GetMapping("add") + public String add(String name, + String email, + String password, + String createtime, + int reputation, + String phone, + String nickname, + String IDCard, + boolean gender, + boolean type, + int status) { + Users user = new Users(name, email, password, createtime, reputation, phone, nickname, IDCard, gender, type, status); + usersService.add(user); + System.out.println("添加用户"); + return "添加成功"; + } + + /** + * @description: 根据id删除用户 + * @param: id + * @return: java.lang.String + * @author: zhanglinhao + * @date: 2024/5/10 8:17 + */ + @GetMapping("delbyid") + public String delById(int id) { + usersService.deleteById(id); + System.out.println("通过id删除用户"); + return "删除成功"; + } + + /** + * @description: 根据id获取用户数据 + * @param: id + * @return: com.softegg.freetogo.User.bean.Users + * @author: zhanglinhao + * @date: 2024/5/10 8:17 + */ + @GetMapping("findbyid") + public Users getUserById(int id) { + System.out.println("通过id获取用户数据"); + return usersService.getUserById(id); + } + + /** + * @description: 使用GET接收参数更新用户信息 + * @author: zhanglinhao + * @date: 2024/5/10 8:17 + */ + @GetMapping("update") + public String update(String name, + String email, + String password, + String createtime, + int reputation, + String phone, + String nickname, + String IDCard, + boolean gender, + boolean type, + int status) { + Users User = usersService.getUserByPhone(phone); + System.out.println(User); + setUsers(name, email, password, createtime, reputation, phone, nickname, IDCard, gender, type, status, User); + usersService.update(User); + System.out.println("更新用户信息:" + User); + return "更新成功"; + } + + /** + * @description: 使用POST接受参数更新用户信息 + * @param: user + * @return: void + * @author: zhanglinhao + * @date: 2024/5/10 19:45 + */ +// @PostMapping("pupdate") +// public boolean pupdate(@RequestBody Map> user) { +// Map ubody = user.get("user"); +// +// System.out.println(ubody); +//// System.out.println(ubody.get("uid")); +// Users User = new Users((int) ubody.get("uid"), (String) ubody.get("name"), (String) ubody.get("email"), (String) ubody.get("password"), (String) ubody.get("createtime"), (String) ubody.get("idcard"), (int) ubody.get("reputation"), (boolean) ubody.get("gender"), (boolean) ubody.get("membertype"), (String) ubody.get("phone"), (String) ubody.get("nickname"), (int) ubody.get("status")); +// usersService.update(User); +// return true; +// } + + @PostMapping("Pupdate") + public boolean Pupdate(@RequestBody Map user) { + Users ubody = user.get("user"); + System.out.println(ubody); +// System.out.println(ubody.get("uid")); + Users User = new Users(ubody.getUid(), ubody.getName(), ubody.getEmail(), ubody.getPassword(), ubody.getCreatetime(), ubody.getIdcard(), ubody.getReputation(), ubody.isGender(), ubody.isMembertype(), ubody.getPhone(), ubody.getNickname(), ubody.getStatus()); + usersService.update(User); + return true; + } + + /** + * @description: 通过手机号获取用户信息 + * @param: phone + * @return: com.softegg.freetogo.User.bean.Users + * @author: zhanglinhao + * @date: 2024/5/10 8:17 + */ + @GetMapping("getByPhone") + public Users getByPhone(String phone) { + System.out.println("根据手机号获取用户信息:" + phone); + System.out.println(usersService.getUserByPhone(phone)); + return usersService.getUserByPhone(phone); + } + + /** + * @description: 判断是否是导游 + * @param: phone + * @return: boolean + * @author: zhanglinhao + * @date: 2024/5/15 20:03 + */ + @GetMapping("isGuide") + public boolean isGuide(String phone) { + System.out.println("查寻是否是导游:" + phone); + return usersService.isGuide(phone); + } + + /** + * @description: 获取id + * @param: phone + * @return: int + * @author: zhanglinhao + * @date: 2024/5/16 11:13 + */ + @GetMapping("getUid") + public int getUid(String phone) { + System.out.println("搜索uid使用的电话:" + phone); + return usersService.getIdByPhone(phone); + } + + + /** + * @description: 注册成为导游 + * @param: guide + * @return: int + * @author: zhanglinhao + * @date: 2024/5/16 10:15 + */ +// @PostMapping("registerToGuide") +// public int registerToGuide(@RequestBody Map> grequesting) {//Map> gbody) { +// System.out.println("接收的注册请求:"+grequesting); +// Map gbody = grequesting.get("registerToGuide"); +// System.out.println("处理后的注册请求:"+gbody); +// Guides guide = new Guides(); +// guide.setUid(Integer.parseInt(gbody.get("uid"))); +// guide.setRsd(gbody.get("rsd")); +// guide.setFa(gbody.get("fa")); +// guide.setSyns(gbody.get("syns")); +// guide.setRe(Boolean.parseBoolean(gbody.get("re"))); +// if(guidesService.registerToGuide(guide)) +// return 1; +// else +// return 0; +// } + @PostMapping("registerToGuide") + public int registerToGuide(@RequestBody Map grequesting) {//Map> gbody) { + System.out.println(grequesting); + Guides guide = grequesting.get("registerToGuide"); + System.out.println(guide); + if(guidesService.registerToGuide(guide)) + return 1; + else + return 0; + } + + /** + * @description: 设置user属性 + * @author: zhanglinhao + * @date: 2024/5/10 8:18 + */ + private void setUsers(String name, + String email, + String psw, + String ct, + int rpt, + String phone, + String nkn, + String idc, + boolean gender, + boolean type, + int status, + Users user) { + 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/后端/java/User/service/GuidesService.java b/src/后端/java/User/service/GuidesService.java new file mode 100644 index 0000000..771d990 --- /dev/null +++ b/src/后端/java/User/service/GuidesService.java @@ -0,0 +1,14 @@ +package com.softegg.freetogo.User.service; + +import com.softegg.freetogo.User.bean.Guides; +import org.springframework.stereotype.Service; + +/** + * @description: 数据库操作抽象接口类 + * @author: zhanglinhao + * @date: 2024/5/16 10:45 + */ +@Service +public interface GuidesService { + boolean registerToGuide(Guides guide);//注册成为导游,将导游注册信息入库 +} diff --git a/src/后端/java/User/service/GuidesServiceImpl.java b/src/后端/java/User/service/GuidesServiceImpl.java new file mode 100644 index 0000000..5d1202e --- /dev/null +++ b/src/后端/java/User/service/GuidesServiceImpl.java @@ -0,0 +1,49 @@ +package com.softegg.freetogo.User.service; + +import com.softegg.freetogo.User.Dao.GuidesRepository; +import com.softegg.freetogo.User.bean.Guides; +import com.softegg.freetogo.User.bean.Users; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +/** + * @description: 数据库操作接口实现类 + * @author: zhanglinhao + * @date: 2024/5/16 10:46 + */ +@Component +public class GuidesServiceImpl implements GuidesService { + @Autowired + GuidesRepository guidesRepository; + @Autowired + UsersService usersService; +// +// @Override +// public void registerToGuide(Guides guide) { +// guidesRepository.save(guide); +// System.out.println("成功保存注册导游信息!"); +// } + + /** + * @description: 注册成为导游 + * @param: guide + * @return: int + * @author: zhanglinhao + * @date: 2024/5/15 21:19 + */ + @Override + public boolean registerToGuide(Guides guide) { + System.out.println("注册成为导游id:" + guide.getUid()); + Users user = usersService.getUserById(guide.getUid()); + user.setMembertype(true); + guidesRepository.save(guide); + if (user.isMembertype()) { + System.out.println("注册成功!"); + return true; + }else{ + System.out.println("注册失败!"); + return false; + } + + } +} diff --git a/src/后端/java/User/service/UserServiceImpl.java b/src/后端/java/User/service/UserServiceImpl.java new file mode 100644 index 0000000..86b054e --- /dev/null +++ b/src/后端/java/User/service/UserServiceImpl.java @@ -0,0 +1,169 @@ +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("添加成功:" + user); + } + + /** + * @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("删除成功:" + id); + } + + /** + * @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("更新成功:"); + showInfo(user); + } + + /** + * @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); + if (users == null) { + System.out.println("用户未注册"); + return false; + } else { + System.out.println("用户已注册"); + return true; + } + } + + /** + * @description: 根据手机号获得用户 + * @param: phone + * @return: com.softegg.freetogo.User.Bean.Users + * @author: zhanglinhao + * @date: 2024/5/9 22:55 + */ + public Users getUserByPhone(String phone) { + System.out.println("通过手机号查找用户:" + phone); + return usersRepository.findByPhone(phone); + } + + /** + * @description: 判断是否是导游 + * @param: phone + * @return: boolean + * @author: zhanglinhao + * @date: 2024/5/15 21:32 + */ + @Override + public boolean isGuide(String phone) { + System.out.println("判断是不是导游:" + phone); + Users user = getUserByPhone(phone); + if (user.isMembertype()) { + System.out.println("是导游:" + phone); + return true; + } else { + System.out.println("不是导游:" + phone); + return false; + } + } + + /** + * @description: 查找uid + * @param: phone + * @return: int + * @author: zhanglinhao + * @date: 2024/5/16 10:54 + */ + @Override + public int getIdByPhone(String phone) { + Users user = usersRepository.findByPhone(phone); + if (user == null) { + System.out.println("该电话号码未注册"); + return -1; + } else { + System.out.println("查询到的id:" + user.getUid()); + return user.getUid(); + } + } + + /** + * @description:打印所有信息 + * @author: zhanglinhao + * @date: 2024/5/16 15:55 + */ + @Override + public void showInfo(Users user) { + System.out.println(user.getUid()); + System.out.println(user.getName()); + System.out.println(user.getPhone()); + System.out.println(user.getPassword()); + System.out.println(user.getNickname()); + System.out.println(user.getCreatetime()); + System.out.println(user.getIdcard()); + System.out.println(user.getReputation()); + System.out.println(user.getStatus()); + System.out.println(user.isGender()); + System.out.println(user.isMembertype()); + } +} diff --git a/src/后端/java/User/service/UsersService.java b/src/后端/java/User/service/UsersService.java new file mode 100644 index 0000000..dcc333e --- /dev/null +++ b/src/后端/java/User/service/UsersService.java @@ -0,0 +1,33 @@ +package com.softegg.freetogo.User.service; + +import com.softegg.freetogo.User.bean.Users; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @description:数据库操作抽象接口类 + * @author:zhanglinhaon + * @date:2024/5/7 16:06 + */ +@Service +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);//根据手机号获得用户 + + boolean isGuide(String phone);//查询是否是导游 + + int getIdByPhone(String phone);//查找uid + void showInfo(Users user);//打印所有信息 +}