暑期项目实训SaaS云服务系统开发—云会议系统—— 7.9实体类重构,编写service层controller层的代码

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);
        }

    }


}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值