package com.seecoder.BlueWhale.serviceImpl; import com.seecoder.BlueWhale.enums.RoleEnum; import com.seecoder.BlueWhale.exception.BlueWhaleException; import com.seecoder.BlueWhale.repository.StoreRepository; import com.seecoder.BlueWhale.repository.UserRepository; import com.seecoder.BlueWhale.po.Store; import com.seecoder.BlueWhale.po.User; import com.seecoder.BlueWhale.service.UserService; import com.seecoder.BlueWhale.util.SecurityUtil; import com.seecoder.BlueWhale.util.TokenUtil; import com.seecoder.BlueWhale.vo.OrderVO; import com.seecoder.BlueWhale.vo.UserVO; import java.util.Date; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; /** * @Author: GaoZhaolong * @Date: 14:46 2023/11/26 * * 注册登录功能实现 */ @Service public class UserServiceImpl implements UserService { @Autowired UserRepository userRepository; @Autowired TokenUtil tokenUtil; @Autowired SecurityUtil securityUtil; @Autowired StoreRepository storeRepository; @Override public Boolean register(UserVO userVO) { User user = userRepository.findByPhone(userVO.getPhone()); if (user != null) { throw BlueWhaleException.phoneAlreadyExists(); } User newUser = userVO.toPO(); newUser.setCreateTime(new Date()); userRepository.save(newUser); return true; } @Override public String login(String phone, String password) { User user = userRepository.findByPhoneAndPassword(phone, password); if (user == null) { throw BlueWhaleException.phoneOrPasswordError(); } return tokenUtil.getToken(user); } @Override public UserVO getInformation() { User user=securityUtil.getCurrentUser(); if (user.getRole()==RoleEnum.STAFF) { return wrapWithStoreName(user.toVO()); } return user.toVO(); } @Override public Boolean updateInformation(UserVO userVO) { User user=securityUtil.getCurrentUser(); if (userVO.getPassword()!=null){ user.setPassword(userVO.getPassword()); } if (userVO.getName()!=null){ user.setName(userVO.getName()); } if (userVO.getAddress()!=null){ user.setAddress(userVO.getAddress()); } userRepository.save(user); return true; } private UserVO wrapWithStoreName(UserVO userVO){ Integer storeId = userVO.getStoreId(); if (storeId==null){ return userVO; } Store store = storeRepository.findById(storeId).get(); userVO.setStoreName(store.getName()); return userVO; } }