套餐关系表
字段 |
数据类型 |
主键 |
外键 |
是否为空 |
说明 |
Id |
bigint(20) |
是 |
否 |
否 |
|
CategoryId |
bigint(20) |
否 |
否 |
否 |
分类ID |
Name |
varchar(64) |
否 |
否 |
否 |
套餐名称 |
Price |
decimal(10) |
否 |
否 |
否 |
套餐价格 |
Status |
Int(11) |
否 |
否 |
否 |
状态 |
Code |
varchar(32) |
否 |
否 |
否 |
编码 |
Descripte |
varchar(512) |
否 |
否 |
否 |
描述信息 |
Image |
varchar(255) |
否 |
否 |
否 |
图片 |
CreateTime UpdateTime |
datetime datetime |
否 否 |
否 否 |
否 否 |
创建时间 更新时间 |
Createuser |
Bigint(20) |
否 |
否 |
否 |
创建者 |
Updateuser |
Bigint(20) |
否 |
否 |
否 |
修改者 |
Is_Delete |
varchar(50) |
否 |
否 |
否 |
是否删除 |
用户表
购物车表
地址薄表
分类表
菜品表
口味表
员工表
订单表
订单详情表
套餐表
套餐关系表
实体E-R图
6 具体实现
6.1 员工登录
6.1.1 登录功能
内部员工必须输入员工账号和密码,通过验证后才可以访问系统管理后台。过滤器会判断用户是否已经完成了登录,如果没有登录则跳转到登陆页面。
员工登录与退出核心代码:
1. @PostMapping("/employee/login") 2. 3. public R<Employee> login(HttpServletRequest request, @RequestBody Employee employee){ 4. 5. //RequestBody可以接收JSON格式的数据并解析为实体类(Employee) 6. 7. String username = employee.getUsername(); 8. 9. String password = DigestUtils.md5DigestAsHex(employee.getPassword().getBytes()); 10. 11. System.out.println("用户名:"+username+"--密码:"+password); 12. 13. //LambdaQueryWrapper<List<Map>> lambdaQueryWrapper = new LambdaQueryWrapper<>(); 14. 15. LambdaQueryWrapper<Employee> queryWrapper = new LambdaQueryWrapper<>(); 16. 17. //查询结果是单张表,用实体类接收;如果是if交叉查询(多张表查询)用List<Map> 18. 19. queryWrapper.eq(Employee::getUsername,username); 20. 21. //使用LambdaQueryWrapper免除写sql,相当于进行select操作 22. 23. Employee employee1 = employeeService.getOne(queryWrapper); 24. 25. System.out.println("2********username:"+employee1.getPhone()); 26. 27. if (employee1 == null){ 28. 29. return R.error("用户名错误,登录失败,请重试!"); 30. 31. } 32. 33. if (!password.equals(employee1.getPassword())){ 34. 35. return R.error("密码错误,登录失败,请重试!"); 36. 37. } 38. 39. if (employee1.getStatus()!=1){ 40. 41. return R.error("该账户被删除或禁用,登录失败!"); 42. 43. } 44. 45. request.getSession().setAttribute("employee",employee1); //为了filter、后续调用方便 46. 47. BaseContext.setCurrentUserID(employee1.getId()); //为了普通类能够调用 48. 49. return R.success(employee1); 50. 51. } 52. 53. @PostMapping("/employee/logout") 54. 55. public R<Employee> logout(HttpServletRequest request){ 56. 57. request.getSession().removeAttribute("employee"); 58. 59. request.getSession().invalidate(); 60. 61. return R.success(null); 62. 63. }
6.2 员工管理
6.2.1 查询功能
输入对应的员工名称可查找该员工。
6.2.2 添加功能
通过输入新员工的信息实现对员工的新增操作。
6.2.3 修改功能
点击编辑可以对所选员工的个人信息进行修改。
6.2.4 禁用功能
可以点击禁用禁止该员工的登录权限。