7月9日开发日志
重构了User类以及相关的方法
package com.rjxy.Entity;
import lombok.Data;
import org.hibernate.annotations.CreationTimestamp;
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.annotation.LastModifiedDate;
import javax.persistence.*;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
@Data
@Entity
@Table(name = "user")
public class User {
@Id
@Column(name = "id", unique = true, nullable = false, length = 11)
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@Column(name = "username", nullable = false)
private String name;
@Column(name = "password", nullable = false)
private String password;
@Column(name = "permission", nullable = false)
private Integer permission = 1;
@Column(name = "telephone")
private String telephone;
@Column(name = "email")
private String email;
@Column(name = "sex")
private Integer sex;
@Column(name = "deleted")
private Boolean deleted = false;
@Column(name = "create_time")
@CreatedDate
private Timestamp createTime;
@Column(name = "modify_time")
@LastModifiedDate
private Timestamp modifyTime;
@Column(name = "company_id")
private Integer companyId;
@Column(name = "department_id")
private Integer departmentId;
public User(String username, String password, Integer permission) {
this.name = username;
this.password = password;
this.permission = permission;
}
public User(String name, String password, String telephone, Integer sex) {
this.name = name;
this.password = password;
this.telephone = telephone;
this.sex = sex;
}
public User() {
}
public String getCreateTime() {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
return dateFormat.format(createTime);
}
public String getModifyTime() {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
return dateFormat.format(modifyTime);
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
", password='" + password + '\'' +
", permission=" + permission +
", telephone=" + telephone +
", sex=" + sex +
", deleted=" + deleted +
", create_time=" + createTime +
", modify_time=" + modifyTime +
'}';
}
}
编写service层的类,如UserService
package com.rjxy.Service.Impl;
import com.rjxy.Entity.Company;
import com.rjxy.Entity.User;
import com.rjxy.Repository.UserRepository;
import com.rjxy.Service.UserService;
import com.rjxy.Util.MD5Util;
import com.rjxy.Util.SessionUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserRepository userRepository;
private User user = new User();
private Company company;
@Override
public Boolean registerUser(User user) {
this.user = user;
this.user.setPassword(MD5Util.string2MD5(user.getPassword()));
if (userRepository.findUserByName(this.user.getName())!=null){
return false;
}else{
userRepository.saveAndFlush(user);
this.user = userRepository.findUserByName(user.getName());
return true;
}
}
@Override
public Boolean deleteUser(User user) {
return null;
}
@Override
public Boolean deleteUserById(Integer id, Integer password) {
return null;
}
@Override
public Boolean deleteUserByName(String name, Integer password) {
return null;
}
@Override
public Boolean checkUserPassword(String name,String password) {
//对于用户进行MD5加密
this.user = userRepository.findUserByNameAndDeleted(name,false);
if(this.user == null){
return false;
}
return this.user.getPassword().equals(MD5Util.string2MD5(password));
}
@Override
public Boolean checkUserPassword(Integer id,String password) {
this.user = userRepository.findUserByIdAndDeleted(id,false);
if(this.user == null){
return false;
}
return this.user.getPassword().equals(MD5Util.string2MD5(password));
}
@Override
public User getUserById(Integer id) {
return userRepository.findUserById(id);
}
@Override
public User getUserByName(String name) {
return userRepository.findUserByName(name);
}
@Override
public List<User> getUserByCompany(Integer companyId) {
return null;
}
}
编写controller层的相关类,如UserController
package com.rjxy.Controller;
import com.rjxy.Entity.User;
import com.rjxy.Enum.ErrorEnum;
import com.rjxy.Exception.UserNotExistException;
import com.rjxy.Model.UserVo;
import com.rjxy.Results.Result;
import com.rjxy.Service.Impl.CompanyServiceImpl;
import com.rjxy.Service.Impl.UserServiceImpl;
import com.rjxy.Util.SessionUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
/**
* @author: Joheey
* Date: 2021/7/6
* Time: 10:27
* Description:用户操作
*/
@RestController
@RequestMapping(value = "/user")
public class UserController {
User user;
UserVo userVo;
@Autowired
private UserServiceImpl userService;
@Autowired
private CompanyServiceImpl companyService;
//用户注册
@RequestMapping(value = "/register", method = RequestMethod.POST)
public Result<UserVo> register(@RequestParam(name = "name") String name,
@RequestParam(name = "password") String password,
@RequestParam(name = "telephone",required = false) String telephone,
@RequestParam(name = "sex",required = false) Integer sex){
//注册了一个用户
user = new User(name, password, telephone, sex);
userVo = new UserVo();
if(userService.registerUser(user)){
System.out.println("注册了一个用户"+user);
userVo.setUserVo(userService.getUserByName(name), companyService.getCompany(user.getCompanyId()));
return Result.success(userVo);
}else {
return Result.error(ErrorEnum.UserNameExistError);
}
}
// 用户登录,成功之后向服务端发送生成的sessionId
@RequestMapping(value = "/login", method = RequestMethod.POST)
public Result<UserVo> login(@RequestParam(name = "name") String name,
@RequestParam(name = "password") String password,
HttpServletRequest httpServletRequest){
if(userService.checkUserPassword(name, password)){
user = userService.getUserByName(name);
userVo = new UserVo();
userVo.setUserVo(user, companyService.getCompany(user.getCompanyId()));
System.out.println(userVo);
try {
SessionUtil.setUserId(httpServletRequest,user.getId());
} catch (UserNotExistException e) {
e.printStackTrace();
}
return Result.success(userVo);
}
else {
return Result.error(ErrorEnum.PasswordWrongError);
}
}
}