1 引言

1.1 版本更新记录

编号 内容 作者 更新时间
1 迭代目标 汪天沛 2022.5.1

1.2 迭代目标

image.png

1.3 数据库建立

建立三个关联的数据表, 用于权限管理

  1. DROP TABLE IF EXISTS `hot_staff`;
  2. CREATE TABLE `hot_staff`(
  3. `staff_id` int NOT NULL AUTO_INCREMENT COMMENT '唯一主键',
  4. `staff_name` varchar(10) DEFAULT NULL COMMENT '员工姓名',
  5. `staff_sex` varchar(1) DEFAULT NULL COMMENT '员工性别',
  6. `id_card` varchar(20) DEFAULT NULL COMMENT '员工身份证',
  7. `staff_phone` varchar(20) DEFAULT NULL COMMENT '手机号码',
  8. `staff_username` varchar(20) DEFAULT NULL COMMENT '系统用户名',
  9. `staff_password` varchar(100) DEFAULT NULL COMMENT '系统密码',
  10. PRIMARY KEY (`staff_id`)
  11. ) ENGINE=InnoDB DEFAULT CHARSET=utf8
  12. ROW_FORMAT = Dynamic;
  13. INSERT INTO `hot_staff` (staff_name,staff_sex,id_card,staff_phone,staff_username,staff_password)
  14. VALUES
  15. ("宙斯","男","440182200111110033","18565340000","root","$2a$10$MCwVAmljwbdKmLtDWNHw3.6BvWPw6KUEMYMNJEXf4N0o6taIZm3Zi"),
  16. ("温兆奇","男","440182200111116666","18565341111","zhaoqi","$2a$10$MCwVAmljwbdKmLtDWNHw3.6BvWPw6KUEMYMNJEXf4N0o6taIZm3Zi"),
  17. ("王绍威","男","440182200111118888","18565342222","shaowei","$2a$10$MCwVAmljwbdKmLtDWNHw3.6BvWPw6KUEMYMNJEXf4N0o6taIZm3Zi"),
  18. ("王子健","男","440182200111117777","18565343333","zijian","$2a$10$MCwVAmljwbdKmLtDWNHw3.6BvWPw6KUEMYMNJEXf4N0o6taIZm3Zi")
  19. ;
  1. -- ----------------------------
  2. -- Table structure for sys_role
  3. -- ----------------------------
  4. DROP TABLE IF EXISTS `sys_role`;
  5. CREATE TABLE `sys_role` (
  6. `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '角色ID',
  7. `name` varchar(64) NOT NULL COMMENT '角色名称',
  8. `code` varchar(64) NOT NULL COMMENT '角色编码',
  9. `remark` varchar(64) NULL DEFAULT NULL COMMENT '角色说明',
  10. PRIMARY KEY (`id`) USING BTREE,
  11. UNIQUE INDEX `name`(`name`) USING BTREE,
  12. UNIQUE INDEX `code`(`code`) USING BTREE
  13. ) ENGINE = InnoDB AUTO_INCREMENT = 3 ROW_FORMAT = Dynamic;
  14. -- ----------------------------
  15. -- Records of sys_role
  16. -- ----------------------------
  17. INSERT INTO `sys_role` VALUES (1, '超级管理员', 'admin', '最高权限,不可编辑');
  18. INSERT INTO `sys_role` VALUES (2, '普通用户', 'normal', '只有基本查看功能');
  1. -- ----------------------------
  2. -- Table structure for sys_user_role
  3. -- ----------------------------
  4. DROP TABLE IF EXISTS `sys_user_role`;
  5. CREATE TABLE `sys_user_role` (
  6. `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '用户角色ID',
  7. `user_id` bigint(20) NOT NULL COMMENT '员工ID',
  8. `role_id` bigint(20) NOT NULL COMMENT '角色ID:1管理员,2普通用户',
  9. PRIMARY KEY (`id`) USING BTREE
  10. ) ENGINE = InnoDB AUTO_INCREMENT = 4 ROW_FORMAT = Dynamic;
  11. -- ----------------------------
  12. -- Records of sys_user_role
  13. -- ----------------------------
  14. INSERT INTO `sys_user_role` VALUES (1, 1, 1);
  15. INSERT INTO `sys_user_role` VALUES (2, 2, 2);
  16. INSERT INTO `sys_user_role` VALUES (3, 3, 2);
  17. INSERT INTO `sys_user_role` VALUES (4, 4, 2);

2 统计接口设计

外部通过countAll()方法获取前端统计页面所需的所有数据

  1. package edu.scau.hot.service;
  2. import edu.scau.hot.vo.CountVO;
  3. import java.util.Date;
  4. import java.util.List;
  5. /**
  6. * IHotCountService统计页面接口类
  7. *
  8. * @author:paper
  9. * @since:2022/5/11-23:55
  10. */
  11. public interface IHotCountService{
  12. /**
  13. * 返回指定日期的CountVO对象
  14. * @return CountVO对象
  15. */
  16. CountVO getCountVO(Date date);
  17. /**
  18. * 更新Redis中数据
  19. * @param countVO
  20. * @return countVO
  21. */
  22. CountVO updateTurnover(CountVO countVO);
  23. /**
  24. * 返回当周所有数据的接口
  25. * @return CountVO对象
  26. */
  27. List<CountVO> countAll();
  28. /**
  29. * 返回当日所有数据的接口
  30. * @return CountVO对象
  31. */
  32. CountVO countAll(CountVO countVO);
  33. /**
  34. * 返回今日总入住率
  35. * @param countVO
  36. * @return CountVO对象
  37. */
  38. CountVO countOccupancyRate(CountVO countVO);
  39. /**
  40. * 当日预办理入住数
  41. * @param countVO
  42. * @return CountVO对象
  43. */
  44. CountVO countPreCheckIn(CountVO countVO);
  45. /**
  46. * 当日办理入住数+1
  47. * @return CountVO对象
  48. */
  49. CountVO addCheckIn();
  50. /**
  51. * 当日预办理退房数
  52. * @param countVO
  53. * @return CountVO对象
  54. */
  55. CountVO countPreCheckOut(CountVO countVO);
  56. /**
  57. * 当日办理退房数+1
  58. * @return CountVO对象
  59. */
  60. CountVO addCheckOut();
  61. /**
  62. * 计算日营业额
  63. */
  64. CountVO countTurnover(CountVO countVO);
  65. }