From 476c886eae7123d71785459194be2e05ba71b817 Mon Sep 17 00:00:00 2001 From: s1lentdragon <22919zpw@gmail.com> Date: Sun, 3 Dec 2023 14:46:40 +0800 Subject: [PATCH] =?UTF-8?q?[Feature#]=E4=BF=AE=E5=A4=8D=E4=BA=86=E6=99=AE?= =?UTF-8?q?=E9=80=9A=E6=88=90=E5=91=98=E5=8F=AF=E4=BB=A5=E7=9C=8B=E5=88=B0?= =?UTF-8?q?=E8=81=8C=E5=8A=A1=E7=9A=84=E9=97=AE=E9=A2=98=EF=BC=8C=E7=BB=99?= =?UTF-8?q?=E6=96=B0=E5=BB=BA=E7=94=A8=E6=88=B7=E5=A2=9E=E5=8A=A0=E4=BA=86?= =?UTF-8?q?=E8=BF=94=E5=9B=9Eid=EF=BC=8C=E7=BB=99=E6=8F=92=E5=85=A5?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E5=A2=9E=E5=8A=A0=E4=BA=86=E4=BA=8B=E7=89=A9?= =?UTF-8?q?=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/sipc/stellar/biz/IUserInfoBiz.java | 3 +- .../com/sipc/stellar/biz/impl/AdminBiz.java | 11 +++--- .../sipc/stellar/biz/impl/UserInfoBiz.java | 36 +++++++++++-------- .../controller/UserInfoController.java | 3 +- .../model/result/InsertUserInfoResult.java | 8 +++++ .../com/sipc/stellar/service/UserService.java | 1 + .../stellar/service/impl/UserServiceImpl.java | 19 ++++++++-- 7 files changed, 54 insertions(+), 27 deletions(-) create mode 100644 src/main/java/com/sipc/stellar/pojo/model/result/InsertUserInfoResult.java diff --git a/src/main/java/com/sipc/stellar/biz/IUserInfoBiz.java b/src/main/java/com/sipc/stellar/biz/IUserInfoBiz.java index e5d3339..fddca1a 100644 --- a/src/main/java/com/sipc/stellar/biz/IUserInfoBiz.java +++ b/src/main/java/com/sipc/stellar/biz/IUserInfoBiz.java @@ -6,6 +6,7 @@ import com.sipc.stellar.pojo.model.dto.UserInfoDto; import com.sipc.stellar.pojo.model.pageData.PageData; import com.sipc.stellar.pojo.model.request.InsertUserRequest; import com.sipc.stellar.pojo.model.request.UpdateUserInfoRequest; +import com.sipc.stellar.pojo.model.result.InsertUserInfoResult; import com.sipc.stellar.pojo.model.result.SimpleUserInfoResult; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.multipart.MultipartFile; @@ -27,5 +28,5 @@ public interface IUserInfoBiz { SipcResponse<List<AcademyMajorMerge>> getAllMajor(); - SipcResponse<String> insertUserInfo(InsertUserRequest request); + SipcResponse<InsertUserInfoResult> insertUserInfo(InsertUserRequest request); } diff --git a/src/main/java/com/sipc/stellar/biz/impl/AdminBiz.java b/src/main/java/com/sipc/stellar/biz/impl/AdminBiz.java index 8f29ed4..e611b35 100644 --- a/src/main/java/com/sipc/stellar/biz/impl/AdminBiz.java +++ b/src/main/java/com/sipc/stellar/biz/impl/AdminBiz.java @@ -113,17 +113,14 @@ public class AdminBiz implements IAdminBiz { user.setPassword(MD5Utils.encrypt(password)); //密ç 进行å•md5åŠ å¯†å˜å…¥ user.setPermission(1); //默认æƒé™ä¸ºæˆå‘˜ user.setCreateBy(username); - userService.insertUser(user); UserInfo userInfo = new UserInfo(); - userInfo.setId(user.getId()); userInfo.setName("未设置"); - userInfo.setMobile(mobile); + userInfo.setMobile(user.getPhone()); userInfo.setPosition("干事"); - userInfo.setCreateBy(username); - userInfo.setUpdateBy(username); - userService.insertUserInfo(userInfo); - //todo:这里需è¦åŠ é”,ä¿è¯id一致 + userInfo.setCreateBy(user.getCreateBy()); + userInfo.setUpdateBy(user.getCreateBy()); + userService.insertUserAndUserInfoByDefault(user,userInfo); TokenModel tokenModel = new TokenModel(); tokenModel.setId(user.getId()); diff --git a/src/main/java/com/sipc/stellar/biz/impl/UserInfoBiz.java b/src/main/java/com/sipc/stellar/biz/impl/UserInfoBiz.java index 942ce32..7073a11 100644 --- a/src/main/java/com/sipc/stellar/biz/impl/UserInfoBiz.java +++ b/src/main/java/com/sipc/stellar/biz/impl/UserInfoBiz.java @@ -12,6 +12,7 @@ import com.sipc.stellar.exception.SipcBaseException; import com.sipc.stellar.pojo.model.pageData.PageData; import com.sipc.stellar.pojo.model.request.InsertUserRequest; import com.sipc.stellar.pojo.model.request.UpdateUserInfoRequest; +import com.sipc.stellar.pojo.model.result.InsertUserInfoResult; import com.sipc.stellar.pojo.model.result.SimpleUserInfoResult; import com.sipc.stellar.pojo.model.resultEnum.ResultCode; import com.sipc.stellar.service.MajorService; @@ -56,15 +57,15 @@ public class UserInfoBiz implements IUserInfoBiz { userInfoDto.setResearchId(userInfo.getResearchId()); userInfoDto.setPosition(userInfo.getPosition()); userInfoDto.setBirthday(userInfo.getBirthday()); - userInfoDto.setEmail(userInfo.getEmail()); + userInfoDto.setWechat(userInfo.getWechat()); userInfoDto.setFeishu(userInfo.getFeishu()); - userInfoDto.setMobile(userInfo.getMobile()); userInfoDto.setBlogUrl(userInfo.getBlogUrl()); userInfoDto.setPhotoUrl(userInfo.getPhotoUrl()); userInfoDto.setDescription(userInfo.getDescription()); userInfoDto.setSuggestion(userInfo.getSuggestion()); if (TokenHandler.getTokenModelThreadLocal().getId().equals(id) || TokenHandler.getTokenModelThreadLocal().getPermission() == 3) { - userInfoDto.setWechat(userInfo.getWechat()); + userInfoDto.setEmail(userInfo.getEmail()); + userInfoDto.setMobile(userInfo.getMobile()); } return SipcResponse.success(userInfoDto); } @@ -83,10 +84,11 @@ public class UserInfoBiz implements IUserInfoBiz { q.getGrade(), q.getSex(), q.getMajorId(), q.getResearchId(), q.getPosition(), - q.getBirthday(), q.getEmail(), - q.getFeishu(), q.getMobile(), - //微信ä¸å‘å…¶ä»–æˆå‘˜å±•示 - tokenModel.getId().equals(q.getId()) || tokenModel.getPermission().equals(3) ? q.getWechat() : null, + q.getBirthday(), + tokenModel.getId().equals(q.getId()) || tokenModel.getPermission().equals(3) ? q.getEmail() : null, + q.getFeishu(), + tokenModel.getId().equals(q.getId()) || tokenModel.getPermission().equals(3) ? q.getMobile() : null, + q.getWechat(), q.getBlogUrl(), q.getPhotoUrl(), q.getDescription(), q.getSuggestion())).toList()); @@ -145,7 +147,7 @@ public class UserInfoBiz implements IUserInfoBiz { userInfo.setEmail(updateUserInfoRequest.getEmail()); userInfo.setFeishu(updateUserInfoRequest.getFeishu()); userInfo.setMobile(updateUserInfoRequest.getMobile()); - if(updateUserInfoRequest.getMobile() != null){ + if (updateUserInfoRequest.getMobile() != null) { User user = new User(); user.setId(updateUserInfoRequest.getId()); user.setPhone(updateUserInfoRequest.getMobile()); @@ -219,20 +221,23 @@ public class UserInfoBiz implements IUserInfoBiz { } @Override - public SipcResponse<String> insertUserInfo(InsertUserRequest request) { + public SipcResponse<InsertUserInfoResult> insertUserInfo(InsertUserRequest request) { TokenModel tokenModel = TokenHandler.getTokenModelThreadLocal(); - if(!tokenModel.getPermission().equals(3)){ + if (!tokenModel.getPermission().equals(3)) { return SipcResponse.failure(ResultCode.PERMISSION_WRONG, "Insufficient permissions"); } + if(userService.getUserByMobileOrUsername(request.getMobile(),request.getUsername()) != null){ + return SipcResponse.failure(ResultCode.INVALID_PARAM, "username or phone is already exist"); + } User user = new User(); user.setUsername(request.getUsername()); //默认密ç sipc115 user.setPassword(MD5Utils.encrypt("sipc115")); user.setPhone(request.getMobile()); user.setCreateBy(tokenModel.getUsername()); - userService.insertUser(user); + user.setPermission(1); + UserInfo userInfo = new UserInfo(); - userInfo.setId(user.getId()); userInfo.setName(request.getName()); userInfo.setSex(request.getSex()); userInfo.setGrade(request.getGrade()); @@ -250,8 +255,9 @@ public class UserInfoBiz implements IUserInfoBiz { userInfo.setSuggestion(request.getSuggestion()); userInfo.setCreateBy(tokenModel.getUsername()); userInfo.setUpdateBy(tokenModel.getUsername()); - userService.insertUserInfo(userInfo); - //todo:需è¦åŠ äº‹ç‰©ä¿è¯åŽŸåæ€§ - return SipcResponse.success("insert success!"); + Integer id = userService.insertUserAndUserInfoByDefault(user, userInfo); + InsertUserInfoResult result = new InsertUserInfoResult(); + result.setId(id); + return SipcResponse.success(result); } } diff --git a/src/main/java/com/sipc/stellar/controller/UserInfoController.java b/src/main/java/com/sipc/stellar/controller/UserInfoController.java index 711beca..6e785ba 100644 --- a/src/main/java/com/sipc/stellar/controller/UserInfoController.java +++ b/src/main/java/com/sipc/stellar/controller/UserInfoController.java @@ -7,6 +7,7 @@ import com.sipc.stellar.pojo.model.dto.UserInfoDto; import com.sipc.stellar.pojo.model.pageData.PageData; import com.sipc.stellar.pojo.model.request.InsertUserRequest; import com.sipc.stellar.pojo.model.request.UpdateUserInfoRequest; +import com.sipc.stellar.pojo.model.result.InsertUserInfoResult; import com.sipc.stellar.pojo.model.result.SimpleUserInfoResult; import jakarta.validation.Valid; import jakarta.validation.constraints.NotNull; @@ -59,7 +60,7 @@ public class UserInfoController { } @PutMapping("/archive/user") - public SipcResponse<String> insertUserInfo(@RequestBody @Valid InsertUserRequest request){ + public SipcResponse<InsertUserInfoResult> insertUserInfo(@RequestBody @Valid InsertUserRequest request){ return userInfoBiz.insertUserInfo(request); } diff --git a/src/main/java/com/sipc/stellar/pojo/model/result/InsertUserInfoResult.java b/src/main/java/com/sipc/stellar/pojo/model/result/InsertUserInfoResult.java new file mode 100644 index 0000000..be9a992 --- /dev/null +++ b/src/main/java/com/sipc/stellar/pojo/model/result/InsertUserInfoResult.java @@ -0,0 +1,8 @@ +package com.sipc.stellar.pojo.model.result; + +import lombok.Data; + +@Data +public class InsertUserInfoResult { + private Integer id; +} diff --git a/src/main/java/com/sipc/stellar/service/UserService.java b/src/main/java/com/sipc/stellar/service/UserService.java index b23b437..2ac9cc0 100644 --- a/src/main/java/com/sipc/stellar/service/UserService.java +++ b/src/main/java/com/sipc/stellar/service/UserService.java @@ -11,6 +11,7 @@ public interface UserService { User getUserByMobileOrUsername(String phone,String username); User getUserById(Integer id); void insertUser(User user); + Integer insertUserAndUserInfoByDefault(User user,UserInfo userInfo); void updateUser(User user); UserInfo getUserInfoById(int id); void insertUserInfo(UserInfo userInfo); diff --git a/src/main/java/com/sipc/stellar/service/impl/UserServiceImpl.java b/src/main/java/com/sipc/stellar/service/impl/UserServiceImpl.java index 231fa52..5e99b15 100644 --- a/src/main/java/com/sipc/stellar/service/impl/UserServiceImpl.java +++ b/src/main/java/com/sipc/stellar/service/impl/UserServiceImpl.java @@ -17,6 +17,7 @@ import com.sipc.stellar.service.UserService; import com.sipc.stellar.util.StringUtils; import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.util.List; @@ -30,8 +31,7 @@ public class UserServiceImpl implements UserService { @Override public User getUserByMobileOrUsername(String phone, String username) { - User user = userMapper.getUserByMobileOrUsername(phone,username); - return user; + return userMapper.getUserByMobileOrUsername(phone,username); } @Override @@ -46,6 +46,19 @@ public class UserServiceImpl implements UserService { } } + @Override + @Transactional + public Integer insertUserAndUserInfoByDefault(User user,UserInfo userInfo) { + if (userMapper.insert(user) == 0) { + throw new SipcBaseException(ResultCode.DATABASE_ERROR, "insert error!"); + } + userInfo.setId(user.getId()); + if(userInfoMapper.insert(userInfo) == 0){ + throw new SipcBaseException(ResultCode.DATABASE_ERROR, "insert error!"); + } + return user.getId(); + } + @Override public void updateUser(User user) { if (userMapper.updateById(user) == 0) { @@ -77,12 +90,12 @@ public class UserServiceImpl implements UserService { } @Override + @Transactional public void deleteUserInfo(Integer id, String updateBy) { UserInfo userInfo = userInfoMapper.selectById(id); if (userInfo == null) { throw new SipcBaseException(ResultCode.INVALID_PARAM, "user_info waiting to be deleted is not existed !"); } - //todo:需è¦åŠ äº‹ç‰©ï¼Œä¿è¯ä¸€è‡´æ€§ userInfo.setUpdateBy(updateBy); if (userInfoMapper.updateById(userInfo) == 0) { throw new SipcBaseException(ResultCode.DATABASE_ERROR, "update user_info error !"); -- GitLab