Ratelimit.java 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. package com.yihu.base.router.model;
  2. import java.time.LocalDate;
  3. import java.time.LocalDateTime;
  4. import java.time.ZoneOffset;
  5. import java.time.format.DateTimeFormatter;
  6. import java.time.temporal.ChronoUnit;
  7. /**
  8. * Created by chenweida on 2018/4/27 0027.
  9. */
  10. public class Ratelimit {
  11. private String id;//主键
  12. private String includeIp;//ip地址 为空默认是全部的ip都可以访问
  13. private String excludeIp;//ip地址 为空默认是全部的ip都可以访问
  14. private String path;// 限制访问的路径
  15. private Integer accessCount = 0;//次数 默认是0 表示没有限制
  16. private String accessUnit = "2";//访问的次数限制单位 默认是分钟 1秒 2 分钟 3小时 4天 结合accessCount使用
  17. public String getId() {
  18. return id;
  19. }
  20. public void setId(String id) {
  21. this.id = id;
  22. }
  23. public String getIncludeIp() {
  24. return includeIp;
  25. }
  26. public void setIncludeIp(String includeIp) {
  27. this.includeIp = includeIp;
  28. }
  29. public String getExcludeIp() {
  30. return excludeIp;
  31. }
  32. public void setExcludeIp(String excludeIp) {
  33. this.excludeIp = excludeIp;
  34. }
  35. public String getPath() {
  36. return path;
  37. }
  38. public void setPath(String path) {
  39. this.path = path;
  40. }
  41. public Integer getAccessCount() {
  42. return accessCount;
  43. }
  44. public void setAccessCount(Integer accessCount) {
  45. this.accessCount = accessCount;
  46. }
  47. public String getAccessUnit() {
  48. return accessUnit;
  49. }
  50. public void setAccessUnit(String accessUnit) {
  51. this.accessUnit = accessUnit;
  52. }
  53. public String getEndTime() {
  54. switch (accessUnit) {
  55. case "1": {
  56. return LocalDateTime.now().minusSeconds(-1).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
  57. }
  58. case "2": {
  59. return LocalDateTime.now().minusMinutes(-1).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"+":00"));
  60. }
  61. case "3": {
  62. return LocalDateTime.now().minusHours(-1).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH"+":00:00"));
  63. }
  64. case "4": {
  65. return LocalDateTime.now().minusDays(-1).format(DateTimeFormatter.ofPattern("yyyy-MM-dd"+" 00:00:00"));
  66. }
  67. }
  68. return null;
  69. }
  70. }