基于SSM的订餐系统---登录功能

登录功能需求分析

页面原型展示:
在这里插入图片描述
登录功能处理逻辑:
在这里插入图片描述

登录界面代码开发

点击登录时,页面会发送请求并提交参数,因此我们需要编写相应的Controller层,Service层,Mapper层至DB进行请求处理。

前端vue登录部分代码块:后端需要返回res.code、res.data、res.msg信息给前端

  methods: {
        async handleLogin() {
          this.$refs.loginForm.validate(async (valid) => {
            if (valid) {
              this.loading = true
              let res = await loginApi(this.loginForm)
              if (String(res.code) === '1') { //1表示登录成功
                localStorage.setItem('userInfo',JSON.stringify(res.data))
                window.location.href= '/backend/index.html'
              } else {
                this.$message.error(res.msg)
                this.loading = false
              }
            }
          })
        }
      }

创建包结构:
在这里插入图片描述
创建Employee实体类,使用lombok注解

/**
 * 员工实体
 */
@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;
    private LocalDateTime createTime;
    private LocalDateTime updateTime;
    @TableField(fill = FieldFill.INSERT)
    private Long createUser;
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Long updateUser;
}

创建通用结果返回类,目的在于保证传递数据的一致性(根据前端的要求进行编写)

@Data
public class R<T> {
    private Integer code; //编码:1成功,0和其它数字为失败
    private String msg; //错误信息
    private T data; //数据
    
    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 r = new R();
        r.msg = msg; //传递错误信息
        r.code = 0;
        return r;
    }
}

创建Mapper层,创建 EmployeeMapper接口,使用lombok注解

@Mapper
public interface EmployeeMapper extends BaseMapper<Employee> {
}

创建Service层,创建EmployeeService接口及其实现类,使用lombok注解

public interface EmployeeService extends IService<Employee> {
}
@Service
public class EmployeeServiceImpl extends ServiceImpl<EmployeeMapper, Employee> implements EmployeeService {
}

创建Controller层,创建EmployeeController

@Slf4j
@RestController()
@RequestMapping("/employee")
public class EmployeeController {

    @Autowired
    private EmployeeService employeeService;

    /**
     * 员工登录
     * @param request
     * @param employee
     * @return
     */
    @PostMapping("/login") //前端设置发送post请求
    public R<Employee> login(HttpServletRequest request, @RequestBody Employee employee){
        /**
         * 1.将页面提交的password进行md5加密
         * 2.根据页面提交的用户名username查询数据库
         * 3.如果没有查询到则返回登录失败结果
         * 4.密码对比,如果不一致则返回登录失败结果
         * 5.查看员工状态,如果为已禁用状态,则返回员工禁用结果
         * 6.登录成功,将用户id存入Session并返回登录成功结果
         */
//        1.将页面提交的password进行md5加密
        String password = employee.getPassword();
        password = DigestUtils.md5DigestAsHex(password.getBytes());

//        2.根据页面提交的用户名username查询数据库
        LambdaQueryWrapper<Employee> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(Employee::getUsername,employee.getUsername());
        Employee emp = employeeService.getOne(queryWrapper);//数据库中已经设置唯一约束

//        3.如果没有查询到则返回登录失败结果
        if(emp == null){
            return R.error("用户不存在,登陆失败");
        }

//        4.密码对比,如果不一致则返回登录失败结果
        if(!emp.getPassword().equals(password)){
            return R.error("密码错误,登陆失败");
        }

//        5.查看员工状态,如果为已禁用状态,则返回员工禁用结果
        if(emp.getStatus() == 0){
            return R.error("禁用状态,登陆失败");
        }

//        6.登录成功,将用户id存入Session并返回登录成功结果
        request.getSession().setAttribute("employee",emp.getId());
        return R.success(emp);
    }
}

功能测试

进行Debug调试
注意清理浏览器缓存

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
随着信息化的发展,电子人力资源管理系统(e-hr)成为了企业信息化建设的重要组成部分。本文针对ssm框架(Spring + SpringMVC + MyBatis)下的e-hr管理系统进行了设计与实现。 系统采用了B/S(浏览器/服务器)模式,前端采用HTML、CSS、JavaScript等技术,后端采用Spring框架作为控制反转的容器和AOP(面向切面编程)的框架,SpringMVC框架作为请求的分发器,MyBatis框架作为持久化框架,实现了基于Web的电子人力资源管理。 系统主要功能包括: 1.用户管理:实现新建、删除、修改、查询用户信息的功能。 2.部门管理:实现部门的管理和查询功能。 3.员工管理:实现员工的管理和查询功能。 4.考勤管理:实现考勤记录的管理和查询功能。 5.薪酬管理:实现薪酬计算和统计功能。 6.培训管理:实现培训计划制定和实施情况的查询。 7.绩效管理:实现绩效考核的制定和绩效报告的查询。 在具体实现过程中,我采用了Maven作为项目管理工具,并使用Git作为版本控制工具,保证了项目组合作的高效性。此外,我还在代码编写阶段,注重使用了面向对象的编程思想,提高了代码的可扩展性和可维护性。 综上所述,该e-hr管理系统基于ssm框架,以其良好的组合、普遍的适用性和效率较高的特点,实现了基于Web的电子人力资源管理,为企业管理和人力资源管理提供了便利,同时提高了信息化运营的效率和质量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值