1
0

UserServiceImpl.java 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. package com.seecoder.BlueWhale.serviceImpl;
  2. import com.seecoder.BlueWhale.enums.RoleEnum;
  3. import com.seecoder.BlueWhale.exception.BlueWhaleException;
  4. import com.seecoder.BlueWhale.repository.StoreRepository;
  5. import com.seecoder.BlueWhale.repository.UserRepository;
  6. import com.seecoder.BlueWhale.po.Store;
  7. import com.seecoder.BlueWhale.po.User;
  8. import com.seecoder.BlueWhale.service.UserService;
  9. import com.seecoder.BlueWhale.util.SecurityUtil;
  10. import com.seecoder.BlueWhale.util.TokenUtil;
  11. import com.seecoder.BlueWhale.vo.OrderVO;
  12. import com.seecoder.BlueWhale.vo.UserVO;
  13. import java.util.Date;
  14. import org.springframework.beans.factory.annotation.Autowired;
  15. import org.springframework.stereotype.Service;
  16. /**
  17. * @Author: GaoZhaolong
  18. * @Date: 14:46 2023/11/26
  19. *
  20. * 注册登录功能实现
  21. */
  22. @Service
  23. public class UserServiceImpl implements UserService {
  24. @Autowired
  25. UserRepository userRepository;
  26. @Autowired
  27. TokenUtil tokenUtil;
  28. @Autowired
  29. SecurityUtil securityUtil;
  30. @Autowired
  31. StoreRepository storeRepository;
  32. @Override
  33. public Boolean register(UserVO userVO) {
  34. User user = userRepository.findByPhone(userVO.getPhone());
  35. if (user != null) {
  36. throw BlueWhaleException.phoneAlreadyExists();
  37. }
  38. User newUser = userVO.toPO();
  39. newUser.setCreateTime(new Date());
  40. userRepository.save(newUser);
  41. return true;
  42. }
  43. @Override
  44. public String login(String phone, String password) {
  45. User user = userRepository.findByPhoneAndPassword(phone, password);
  46. if (user == null) {
  47. throw BlueWhaleException.phoneOrPasswordError();
  48. }
  49. return tokenUtil.getToken(user);
  50. }
  51. @Override
  52. public UserVO getInformation() {
  53. User user=securityUtil.getCurrentUser();
  54. if (user.getRole()==RoleEnum.STAFF) {
  55. return wrapWithStoreName(user.toVO());
  56. }
  57. return user.toVO();
  58. }
  59. @Override
  60. public Boolean updateInformation(UserVO userVO) {
  61. User user=securityUtil.getCurrentUser();
  62. if (userVO.getPassword()!=null){
  63. user.setPassword(userVO.getPassword());
  64. }
  65. if (userVO.getName()!=null){
  66. user.setName(userVO.getName());
  67. }
  68. if (userVO.getAddress()!=null){
  69. user.setAddress(userVO.getAddress());
  70. }
  71. userRepository.save(user);
  72. return true;
  73. }
  74. private UserVO wrapWithStoreName(UserVO userVO){
  75. Integer storeId = userVO.getStoreId();
  76. if (storeId==null){
  77. return userVO;
  78. }
  79. Store store = storeRepository.findById(storeId).get();
  80. userVO.setStoreName(store.getName());
  81. return userVO;
  82. }
  83. }