From d56316ea0ac43f6ec0ea754318cd2c96c06d669a Mon Sep 17 00:00:00 2001 From: tortoise <2891138827@qq.com> Date: Sun, 11 Aug 2024 02:10:33 +0800 Subject: [PATCH] =?UTF-8?q?=E7=99=BB=E9=99=86,=E6=B3=A8=E5=86=8C,=E5=8A=A0?= =?UTF-8?q?=E4=B8=8A=E5=BC=82=E5=B8=B8=E9=9B=86=E4=B8=AD=E5=A4=84=E7=90=86?= =?UTF-8?q?,mybatis=E5=92=8Cmybatisplus=E4=B8=8D=E5=85=BC=E5=AE=B9?= =?UTF-8?q?=E5=A5=BD=E5=83=8F=E6=98=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 5 ++ .../java/top/suyiiyii/sims/common/Result.java | 45 ++++++++++ .../sims/controller/HelloController.java | 5 ++ .../sims/controller/UserController.java | 65 ++++++++++++++ .../top/suyiiyii/sims/entity/Attachment.java | 5 ++ .../sims/entity/HierarchyRelation.java | 6 +- .../suyiiyii/sims/entity/Notification.java | 6 ++ .../top/suyiiyii/sims/entity/Permissions.java | 6 +- .../suyiiyii/sims/entity/RevokeRequest.java | 7 +- .../suyiiyii/sims/entity/RevokedRecord.java | 7 +- .../sims/entity/RewardPunishmentCategory.java | 6 +- .../sims/entity/RewardPunishmentRecord.java | 6 +- .../java/top/suyiiyii/sims/entity/Role.java | 6 +- .../suyiiyii/sims/entity/RolePermission.java | 7 +- .../java/top/suyiiyii/sims/entity/User.java | 6 +- .../top/suyiiyii/sims/entity/UserRole.java | 6 +- .../sims/exception/GlobalException.java | 23 +++++ .../sims/exception/ServiceException.java | 25 ++++++ .../top/suyiiyii/sims/mapper/UserMapper.java | 69 +++++++++++++++ .../suyiiyii/sims/service/UserService.java | 87 +++++++++++++++++++ 20 files changed, 388 insertions(+), 10 deletions(-) create mode 100644 src/main/java/top/suyiiyii/sims/common/Result.java create mode 100644 src/main/java/top/suyiiyii/sims/controller/UserController.java create mode 100644 src/main/java/top/suyiiyii/sims/exception/GlobalException.java create mode 100644 src/main/java/top/suyiiyii/sims/exception/ServiceException.java create mode 100644 src/main/java/top/suyiiyii/sims/mapper/UserMapper.java create mode 100644 src/main/java/top/suyiiyii/sims/service/UserService.java diff --git a/pom.xml b/pom.xml index ce45c54..6019dae 100644 --- a/pom.xml +++ b/pom.xml @@ -56,6 +56,11 @@ mysql-connector-j runtime + + cn.hutool + hutool-all + 5.8.11 + org.springframework.boot spring-boot-configuration-processor diff --git a/src/main/java/top/suyiiyii/sims/common/Result.java b/src/main/java/top/suyiiyii/sims/common/Result.java new file mode 100644 index 0000000..6303948 --- /dev/null +++ b/src/main/java/top/suyiiyii/sims/common/Result.java @@ -0,0 +1,45 @@ +package top.suyiiyii.sims.common; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @Author tortoise + * @Date 2024/8/10 21:18 + * @PackageName:top.suyiiyii.sims.common + * @ClassName: Result + * @Description: TODO + * @Version 1.0 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class Result { + + public static final String CODE_SUCCESS="200"; + public static final String CODE_AUTH_ERROR="401"; + public static final String CODE_SYS_ERROR="500"; + private String code; + + private String msg; + private Object data; + public static Result success(){ + return new Result(CODE_SUCCESS,"success",null); + } + public static Result success(Object data){ + return new Result(CODE_SUCCESS,"success",data); + } + public static Result error(String msg) { + return new Result(CODE_SYS_ERROR, msg, null); + } + + public static Result error(String code,String msg){ + return new Result(code,msg,null); + } + public static Result authError(String msg){ + return new Result(CODE_AUTH_ERROR,"系统错误",null); + } +} diff --git a/src/main/java/top/suyiiyii/sims/controller/HelloController.java b/src/main/java/top/suyiiyii/sims/controller/HelloController.java index b9f4c20..9962cad 100644 --- a/src/main/java/top/suyiiyii/sims/controller/HelloController.java +++ b/src/main/java/top/suyiiyii/sims/controller/HelloController.java @@ -3,6 +3,7 @@ package top.suyiiyii.sims.controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RestController; +import top.suyiiyii.sims.common.Result; import java.util.List; @@ -18,5 +19,9 @@ public class HelloController { List list = List.of(username,age.toString()); return list; } + @GetMapping("/helloResult") + public Result healthz() { + return Result.success("Hello World"); + } } diff --git a/src/main/java/top/suyiiyii/sims/controller/UserController.java b/src/main/java/top/suyiiyii/sims/controller/UserController.java new file mode 100644 index 0000000..2f75848 --- /dev/null +++ b/src/main/java/top/suyiiyii/sims/controller/UserController.java @@ -0,0 +1,65 @@ +package top.suyiiyii.sims.controller; + +import cn.hutool.core.util.StrUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import top.suyiiyii.sims.common.Result; +import top.suyiiyii.sims.entity.User; +import top.suyiiyii.sims.exception.ServiceException; +import top.suyiiyii.sims.service.UserService; + +import java.util.List; + + +/** + * @Author tortoise + * @Date 2024/8/10 22:25 + * @PackageName:top.suyiiyii.sims.controller + * @ClassName: UserController + * @Description: TODO + * @Version 1.0 + */ +@RestController +@RequestMapping("/user") +public class UserController { + @Autowired + UserService userService; + @GetMapping("/") + public Result hello(){ + + return Result.success("success"); + + } + @PostMapping("/login") + public Result login(@RequestBody User user){ + if(StrUtil.isBlank(user.getUsername())||StrUtil.isBlank(user.getPassword())){ + + return Result.error("用户名或密码不能为空"); + } + user =userService.login(user); + + + return Result.success(user); + } + @PostMapping("/register") + public Result register(@RequestBody User user){ + if(StrUtil.isBlank(user.getUsername())||StrUtil.isBlank(user.getPassword())){ + + return Result.error("用户名或密码不能为空"); + } + if(user.getPassword() == null || user.getPassword().length() < 3) { + throw new ServiceException("密码长度不能小于3位"); + } + + user =userService.register(user); + + return Result.success(user); + } + + + @GetMapping("/selectAll") + public Result selectAll() { + List users = userService.selectAll(); + return Result.success(users); + } +} diff --git a/src/main/java/top/suyiiyii/sims/entity/Attachment.java b/src/main/java/top/suyiiyii/sims/entity/Attachment.java index 1a3f602..c9606c4 100644 --- a/src/main/java/top/suyiiyii/sims/entity/Attachment.java +++ b/src/main/java/top/suyiiyii/sims/entity/Attachment.java @@ -4,7 +4,9 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.tangzc.mpe.autotable.annotation.Table; +import lombok.AllArgsConstructor; import lombok.Data; +import lombok.NoArgsConstructor; /** * @Author tortoise @@ -16,7 +18,10 @@ import lombok.Data; */ @Data @Table +@AllArgsConstructor +@NoArgsConstructor public class Attachment { + @TableId("id") private Integer id; private Integer recordId; // 文件路径 diff --git a/src/main/java/top/suyiiyii/sims/entity/HierarchyRelation.java b/src/main/java/top/suyiiyii/sims/entity/HierarchyRelation.java index a0f2724..def612c 100644 --- a/src/main/java/top/suyiiyii/sims/entity/HierarchyRelation.java +++ b/src/main/java/top/suyiiyii/sims/entity/HierarchyRelation.java @@ -4,7 +4,9 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.tangzc.mpe.autotable.annotation.Table; +import lombok.AllArgsConstructor; import lombok.Data; +import lombok.NoArgsConstructor; /** * @Author tortoise @@ -16,8 +18,10 @@ import lombok.Data; */ @Data @Table +@AllArgsConstructor +@NoArgsConstructor public class HierarchyRelation { - + @TableId("id") private Integer id; // 上级用户ID diff --git a/src/main/java/top/suyiiyii/sims/entity/Notification.java b/src/main/java/top/suyiiyii/sims/entity/Notification.java index 402b5b0..d3a5779 100644 --- a/src/main/java/top/suyiiyii/sims/entity/Notification.java +++ b/src/main/java/top/suyiiyii/sims/entity/Notification.java @@ -1,7 +1,10 @@ package top.suyiiyii.sims.entity; +import com.baomidou.mybatisplus.annotation.TableId; import com.tangzc.mpe.autotable.annotation.Table; +import lombok.AllArgsConstructor; import lombok.Data; +import lombok.NoArgsConstructor; import java.time.LocalDateTime; @@ -15,7 +18,10 @@ import java.time.LocalDateTime; */ @Data @Table +@AllArgsConstructor +@NoArgsConstructor public class Notification { + @TableId("id") private Integer id; private String title; private String content; diff --git a/src/main/java/top/suyiiyii/sims/entity/Permissions.java b/src/main/java/top/suyiiyii/sims/entity/Permissions.java index 33c19f2..7ac059f 100644 --- a/src/main/java/top/suyiiyii/sims/entity/Permissions.java +++ b/src/main/java/top/suyiiyii/sims/entity/Permissions.java @@ -3,7 +3,9 @@ package top.suyiiyii.sims.entity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.tangzc.mpe.autotable.annotation.Table; +import lombok.AllArgsConstructor; import lombok.Data; +import lombok.NoArgsConstructor; /** * @Author tortoise @@ -15,8 +17,10 @@ import lombok.Data; */ @Data @Table +@AllArgsConstructor +@NoArgsConstructor public class Permissions { - + @TableId("id") private Integer id; //权限id private Integer permissionId; diff --git a/src/main/java/top/suyiiyii/sims/entity/RevokeRequest.java b/src/main/java/top/suyiiyii/sims/entity/RevokeRequest.java index 66b8b34..f72ccc7 100644 --- a/src/main/java/top/suyiiyii/sims/entity/RevokeRequest.java +++ b/src/main/java/top/suyiiyii/sims/entity/RevokeRequest.java @@ -1,7 +1,10 @@ package top.suyiiyii.sims.entity; +import com.baomidou.mybatisplus.annotation.TableId; import com.tangzc.mpe.autotable.annotation.Table; +import lombok.AllArgsConstructor; import lombok.Data; +import lombok.NoArgsConstructor; import java.time.LocalDateTime; @@ -15,8 +18,10 @@ import java.time.LocalDateTime; */ @Data @Table +@AllArgsConstructor +@NoArgsConstructor public class RevokeRequest { - + @TableId("id") private Integer id; private Integer recordId; private Integer userId; diff --git a/src/main/java/top/suyiiyii/sims/entity/RevokedRecord.java b/src/main/java/top/suyiiyii/sims/entity/RevokedRecord.java index 4dc5b2e..1fa6277 100644 --- a/src/main/java/top/suyiiyii/sims/entity/RevokedRecord.java +++ b/src/main/java/top/suyiiyii/sims/entity/RevokedRecord.java @@ -1,7 +1,10 @@ package top.suyiiyii.sims.entity; +import com.baomidou.mybatisplus.annotation.TableId; import com.tangzc.mpe.autotable.annotation.Table; +import lombok.AllArgsConstructor; import lombok.Data; +import lombok.NoArgsConstructor; import java.time.LocalDateTime; @@ -15,8 +18,10 @@ import java.time.LocalDateTime; */ @Data @Table +@AllArgsConstructor +@NoArgsConstructor public class RevokedRecord { - + @TableId("id") private Integer id; // 被撤销的奖惩记录ID private Integer recordId; diff --git a/src/main/java/top/suyiiyii/sims/entity/RewardPunishmentCategory.java b/src/main/java/top/suyiiyii/sims/entity/RewardPunishmentCategory.java index 02b052a..8b705f7 100644 --- a/src/main/java/top/suyiiyii/sims/entity/RewardPunishmentCategory.java +++ b/src/main/java/top/suyiiyii/sims/entity/RewardPunishmentCategory.java @@ -3,7 +3,9 @@ package top.suyiiyii.sims.entity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.tangzc.mpe.autotable.annotation.Table; +import lombok.AllArgsConstructor; import lombok.Data; +import lombok.NoArgsConstructor; /** * @Author tortoise @@ -15,8 +17,10 @@ import lombok.Data; */ @Data @Table +@AllArgsConstructor +@NoArgsConstructor public class RewardPunishmentCategory { - + @TableId("id") private Integer id; private Integer categoryId; diff --git a/src/main/java/top/suyiiyii/sims/entity/RewardPunishmentRecord.java b/src/main/java/top/suyiiyii/sims/entity/RewardPunishmentRecord.java index 6081c68..f7ec825 100644 --- a/src/main/java/top/suyiiyii/sims/entity/RewardPunishmentRecord.java +++ b/src/main/java/top/suyiiyii/sims/entity/RewardPunishmentRecord.java @@ -4,7 +4,9 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.tangzc.mpe.autotable.annotation.Table; +import lombok.AllArgsConstructor; import lombok.Data; +import lombok.NoArgsConstructor; import java.time.LocalDateTime; @@ -18,8 +20,10 @@ import java.time.LocalDateTime; */ @Data @Table +@AllArgsConstructor +@NoArgsConstructor public class RewardPunishmentRecord { - + @TableId("id") private Integer id; // 用户ID private Integer userId; diff --git a/src/main/java/top/suyiiyii/sims/entity/Role.java b/src/main/java/top/suyiiyii/sims/entity/Role.java index 0b1b59f..9c5a4c5 100644 --- a/src/main/java/top/suyiiyii/sims/entity/Role.java +++ b/src/main/java/top/suyiiyii/sims/entity/Role.java @@ -3,7 +3,9 @@ package top.suyiiyii.sims.entity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.tangzc.mpe.autotable.annotation.Table; +import lombok.AllArgsConstructor; import lombok.Data; +import lombok.NoArgsConstructor; /** * @Author tortoise @@ -15,8 +17,10 @@ import lombok.Data; */ @Data @Table +@AllArgsConstructor +@NoArgsConstructor public class Role { - + @TableId("id") private Integer id; private Integer roleId; //管理员,普通用户,组员,组长,队长 diff --git a/src/main/java/top/suyiiyii/sims/entity/RolePermission.java b/src/main/java/top/suyiiyii/sims/entity/RolePermission.java index 02b863b..f838187 100644 --- a/src/main/java/top/suyiiyii/sims/entity/RolePermission.java +++ b/src/main/java/top/suyiiyii/sims/entity/RolePermission.java @@ -4,7 +4,9 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.tangzc.mpe.autotable.annotation.Table; +import lombok.AllArgsConstructor; import lombok.Data; +import lombok.NoArgsConstructor; import java.security.Permission; @@ -18,8 +20,11 @@ import java.security.Permission; */ @Data @Table +@AllArgsConstructor +@NoArgsConstructor public class RolePermission { - private Integer rolePermissionId; + @TableId("id") + private Integer id; private Integer roleId; private Integer permissionId; } diff --git a/src/main/java/top/suyiiyii/sims/entity/User.java b/src/main/java/top/suyiiyii/sims/entity/User.java index ab369d2..6bf6cce 100644 --- a/src/main/java/top/suyiiyii/sims/entity/User.java +++ b/src/main/java/top/suyiiyii/sims/entity/User.java @@ -4,7 +4,9 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.tangzc.mpe.autotable.annotation.Table; +import lombok.AllArgsConstructor; import lombok.Data; +import lombok.NoArgsConstructor; /** * @Author tortoise @@ -16,8 +18,10 @@ import lombok.Data; */ @Data @Table +@AllArgsConstructor +@NoArgsConstructor public class User { - + @TableId("id") private Integer id; private Integer userId; private String username; diff --git a/src/main/java/top/suyiiyii/sims/entity/UserRole.java b/src/main/java/top/suyiiyii/sims/entity/UserRole.java index 7d82f6d..323df76 100644 --- a/src/main/java/top/suyiiyii/sims/entity/UserRole.java +++ b/src/main/java/top/suyiiyii/sims/entity/UserRole.java @@ -3,7 +3,9 @@ package top.suyiiyii.sims.entity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.tangzc.mpe.autotable.annotation.Table; +import lombok.AllArgsConstructor; import lombok.Data; +import lombok.NoArgsConstructor; /** * @Author tortoise @@ -15,8 +17,10 @@ import lombok.Data; */ @Data @Table +@AllArgsConstructor +@NoArgsConstructor public class UserRole { - + @TableId("id") private Integer id; private Integer userId; private Integer roleId; diff --git a/src/main/java/top/suyiiyii/sims/exception/GlobalException.java b/src/main/java/top/suyiiyii/sims/exception/GlobalException.java new file mode 100644 index 0000000..fc85068 --- /dev/null +++ b/src/main/java/top/suyiiyii/sims/exception/GlobalException.java @@ -0,0 +1,23 @@ +package top.suyiiyii.sims.exception; + +import org.springframework.web.bind.annotation.ControllerAdvice; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.bind.annotation.ResponseBody; +import top.suyiiyii.sims.common.Result; + +/** + * @Author tortoise + * @Date 2024/8/11 1:38 + * @PackageName:top.suyiiyii.sims.exception + * @ClassName: GlobalException + * @Description: TODO + * @Version 1.0 + */ +@ControllerAdvice +public class GlobalException { + @ExceptionHandler(ServiceException.class) + @ResponseBody + public Result ServiceException(ServiceException e){ + return Result.error(e.getCode(),e.getMessage()); + } +} diff --git a/src/main/java/top/suyiiyii/sims/exception/ServiceException.java b/src/main/java/top/suyiiyii/sims/exception/ServiceException.java new file mode 100644 index 0000000..0b3e6d5 --- /dev/null +++ b/src/main/java/top/suyiiyii/sims/exception/ServiceException.java @@ -0,0 +1,25 @@ +package top.suyiiyii.sims.exception; + +import lombok.Getter; + +/** + * @Author tortoise + * @Date 2024/8/11 1:38 + * @PackageName:top.suyiiyii.sims.exception + * @ClassName: ServiceException + * @Description: TODO + * @Version 1.0 + */ +@Getter +public class ServiceException extends RuntimeException{ + public final String code; + + public ServiceException(String msg){ + super(msg); + this.code = "500"; + } + public ServiceException(String code ,String msg){ + super(msg); + this.code = code; + } +} diff --git a/src/main/java/top/suyiiyii/sims/mapper/UserMapper.java b/src/main/java/top/suyiiyii/sims/mapper/UserMapper.java new file mode 100644 index 0000000..4c1734e --- /dev/null +++ b/src/main/java/top/suyiiyii/sims/mapper/UserMapper.java @@ -0,0 +1,69 @@ +package top.suyiiyii.sims.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.*; +import top.suyiiyii.sims.entity.User; + +import java.util.List; + +/** + * @Author tortoise + * @Date 2024/8/10 22:21 + * @PackageName:top.suyiiyii.sims.mapper + * @ClassName: UserMapper + * @Description: TODO + * @Version 1.0 + */ +@Mapper +public interface UserMapper extends BaseMapper { + /** + * 添加新用户 + * @param user 新用户对象 + * @return 影响的行数 + */ + @Insert("insert INTO users (userId, username, password, name, email, group) " + + "VALUES (#{userId}, #{username}, #{password}, #{name}, #{email}, #{group})") + int addUser(User user); + + /** + * 根据ID删除用户 + * @param id 用户ID + * @return 影响的行数 + */ + @Delete("DELETE FROM users WHERE id = #{id}") + int deleteUser(Integer id); + + /** + * 更新用户信息 + * @param user 更新后的用户对象 + * @return 影响的行数 + */ + @Update("UPDATE users SET " + + "userId = #{userId}, " + + "username = #{username}, " + + "password = #{password}, " + + "name = #{name}, " + + "email = #{email}, " + + "group = #{group} " + + "WHERE id = #{id}") + int updateUser(User user); + + /** + * 根据ID查询用户信息 + * @param userId 用户ID + * @return 用户对象 + */ + @Select("SELECT id, userId, username, password, name, email, group FROM users WHERE userId = #{userId}") + User selectByUserId(Integer userId); + + /** + * 查询所有用户信息 + * @return 用户列表 + */ + @Select("SELECT id, userId, username, password, name, email, group FROM users") + List selectAll(); + + @Select("select * from user where username = #{username}") + User selectByUserName(@Param("username") String username); + +} diff --git a/src/main/java/top/suyiiyii/sims/service/UserService.java b/src/main/java/top/suyiiyii/sims/service/UserService.java new file mode 100644 index 0000000..28a0aef --- /dev/null +++ b/src/main/java/top/suyiiyii/sims/service/UserService.java @@ -0,0 +1,87 @@ +package top.suyiiyii.sims.service; + + + +import jakarta.annotation.Resource; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import top.suyiiyii.sims.entity.User; +import top.suyiiyii.sims.exception.ServiceException; +import top.suyiiyii.sims.mapper.UserMapper; + +import java.util.List; + +/** + * @Author tortoise + * @Date 2024/8/10 22:22 + * @PackageName:top.suyiiyii.sims.service + * @ClassName: UserService + * @Description: TODO + * @Version 1.0 + */ +@Service +public class UserService { + @Autowired + UserMapper userMapper; + + public void addUser(User user) { + userMapper.addUser(user); + } + + public User selectByUserId(int id) { + return userMapper.selectByUserId(id); + } + + public void updateUser(User user) { + userMapper.updateUser(user); + } + + public void deleteUser(int id) { + userMapper.deleteUser(id); + } + + public List selectAll() { + return userMapper.selectAll(); + } + + public User login(User user) { + User dbUser = userMapper.selectByUserName(user.getUsername()); + if (dbUser == null) { + throw new ServiceException("账号不存在"); + } + if (!dbUser.getPassword().equals(user.getPassword())) { + throw new ServiceException("密码或用户名错误"); + } + return dbUser; + } + + public User register(User user) { + + User dbUser = userMapper.selectByUserId(user.getUserId()); + + if (user.getUsername() == null || user.getUsername().equals("")) { + throw new ServiceException("用户名不能为空"); + } + if (dbUser != null) { + throw new ServiceException("账号已经存在"); + } + if (user.getUserId() == null || user.getUserId().equals("")) { + throw new ServiceException("用户id不能为空"); + } + if( user.getPassword() == null || user.getPassword().equals("")) { + throw new ServiceException("密码不能为空"); + } + if (user.getEmail() == null || user.getEmail().equals("")) { + throw new ServiceException("邮箱不能为空"); + } + if (user.getGroup() == null || user.getGroup().equals("")) { + throw new ServiceException("组别不能为空"); + } + + userMapper.addUser(user); + return user; + + + } +}