R通用类:
package com.dongdong.dingdong.common;
import lombok.Data;
import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;
@Data
public class R<T> implements Serializable {
private Integer code; //编码:1成功,0和其他数字为失败
private String msg; //信息错误
private T data; //数据
private Map map = new HashMap(); //动态数据
public static <T> R<T> success(T object){
R<T> r = new R<T>();
r.data = object;
r.code = 1;
return r;
}
public static <T> R<T> error(String msg){
R<T> r = new R<T>();
r.msg = msg;
r.code = 0;
return r;
}
}
entity:
package com.dongdong.dingdong.entity;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
@Data
public class Employee implements Serializable {
private static final long serialVersionUID = 1L;
private Long id;
private String username;
private String name;
private String password;
private String phone;
private String sex;
private String idNumber;
private Integer status;
@TableField(fill = FieldFill.INSERT)
private LocalDateTime createTime;
@TableField(fill = FieldFill.INSERT_UPDATE)
private LocalDateTime updateTime;
@TableField(fill = FieldFill.INSERT)
private Long createUser;
@TableField(fill = FieldFill.INSERT_UPDATE)
private Long updateUser;
}
mapper:
package com.dongdong.dingdong.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dongdong.dingdong.entity.Employee;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface EmployeeMapper extends BaseMapper<Employee> {
//根据用户名查询员工信息
Employee getOne(String username);
}
mapper.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.dongdong.dingdong.mapper.EmployeeMapper">
<sql id="Base_Column_List">
id,name,username,password,phone,sex,id_number,
status,create_time,update_time,create_user,update_user
</sql>
<!-- 根据用户名查询员工信息-->
<select id="getOne" resultType="com.dongdong.dingdong.entity.Employee">
select
<include refid="Base_Column_List"></include>
from
employee
where
username =
#{username}
</select>
</mapper>
server:
package com.dongdong.dingdong.server;
import com.baomidou.mybatisplus.extension.service.IService;
import com.dongdong.dingdong.entity.Employee;
public interface EmployeeService extends IService<Employee> {
//根据用户名查询员工信息
Employee getOne(String username);
}
impl:
package com.dongdong.dingdong.server.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.dongdong.dingdong.entity.Employee;
import com.dongdong.dingdong.mapper.EmployeeMapper;
import com.dongdong.dingdong.server.EmployeeService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@Service
public class EmployeeServiceImpl extends ServiceImpl<EmployeeMapper, Employee> implements EmployeeService {
@Resource
private EmployeeMapper employeeMapper;
@Override
public Employee getOne(String username) {
return employeeMapper.getOne(username);
}
}
controller:
package com.dongdong.dingdong.controller;
import com.dongdong.dingdong.common.R;
import com.dongdong.dingdong.entity.Employee;
import com.dongdong.dingdong.server.EmployeeService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.DigestUtils;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
@Slf4j
@RestController
@RequestMapping("/employee")
public class EmployeeController {
@Autowired
private EmployeeService employeeService;
/**
* 员工登录
* @return
*/
@PostMapping("/login")
public R<Employee> login(HttpServletRequest request,
@RequestBody Employee employee){
log.info("进入登录接口...");
String pwd = employee.getPassword();
pwd = DigestUtils.md5DigestAsHex(pwd.getBytes());
//将页面提交的密码进行md5加密
Employee emp = employeeService.getOne(employee.getUsername());
//将页面提交的用户名在数据库中去查询
if (emp==null){
return R.error("用户不存在,登录失败!!!");
}
//如果用户不存在则返回登录失败结果
if (!emp.getPassword().equals(pwd)){
return R.error("密码错误,登录失败!!!");
}
//对比密码
if (emp.getStatus()==0){
return R.error("此账号被禁用,登录失败!!!");
}
//对比员工状态
request.getSession().setAttribute("employee",employee.getId());
//将员工id存入session
return R.success(emp);
}
/**
* 退出登录
* @return
*/
@PostMapping("/logout")
public R<String> logout(HttpServletRequest request){
log.info("退出...");
request.getSession().removeAttribute("employee");
return R.success("退出成功!!!");
}
}