SmartFaceDiscernController.java 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. package com.template.controller;
  2. import com.alibaba.fastjson.JSONArray;
  3. import com.alibaba.fastjson.JSONObject;
  4. import com.baomidou.mybatisplus.core.conditions.Wrapper;
  5. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  6. import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
  7. import com.template.annotation.DESRespondSecret;
  8. import com.template.api.SmartCarAccessControllerAPI;
  9. import com.template.api.SmartFaceDiscernControllerAPI;
  10. import com.template.common.utils.*;
  11. import com.template.config.ControlConfig;
  12. import com.template.model.pojo.SmartCarAccess;
  13. import com.template.model.pojo.SmartFaceDiscern;
  14. import com.template.model.pojo.SmartQrcode;
  15. import com.template.model.pojo.SmartUser;
  16. import com.template.model.result.CommonResult;
  17. import com.template.services.SmartCarAccessService;
  18. import com.template.services.SmartFaceDiscernService;
  19. import com.template.services.SmartQrcodeService;
  20. import com.template.services.SmartUserService;
  21. import org.slf4j.Logger;
  22. import org.slf4j.LoggerFactory;
  23. import org.springframework.beans.factory.annotation.Autowired;
  24. import org.springframework.beans.factory.annotation.Value;
  25. import org.springframework.scheduling.annotation.Scheduled;
  26. import org.springframework.web.bind.annotation.GetMapping;
  27. import org.springframework.web.bind.annotation.RestController;
  28. import javax.annotation.Resource;
  29. import java.net.URLDecoder;
  30. import java.net.URLEncoder;
  31. import java.time.LocalDateTime;
  32. import java.time.format.DateTimeFormatter;
  33. import java.util.List;
  34. import static com.template.common.utils.AesTestOne.decrypt;
  35. /**
  36. * <p>
  37. * 前端控制器
  38. * </p>
  39. *
  40. * @author ceshi
  41. * @since 2024-01-18
  42. */
  43. @RestController
  44. //返回参数加密注解
  45. @DESRespondSecret
  46. public class SmartFaceDiscernController implements SmartFaceDiscernControllerAPI {
  47. private static Logger logger = LoggerFactory.getLogger(SmartFaceDiscernController.class);
  48. @Autowired
  49. SmartFaceDiscernService smartFaceDiscernService;
  50. @Autowired
  51. SmartQrcodeService smartQrcodeService;
  52. @Autowired
  53. SmartCarAccessService smartCarAccessService;
  54. @Override
  55. @DESRespondSecret(validated = true)
  56. public CommonResult track(Integer id, int dateTime) {
  57. JSONObject date = getDate(dateTime);
  58. String stateTime = date.getString("stateTime");
  59. String endTime = date.getString("endTime");
  60. List<SmartFaceDiscern> smartFaceDiscerns = smartFaceDiscernService.track(stateTime, endTime, id);
  61. return CommonResult.ok(smartFaceDiscerns);
  62. }
  63. @Override
  64. @DESRespondSecret(validated = true)
  65. public CommonResult access() {
  66. LocalDateTime now = LocalDateTime.now();
  67. DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
  68. JSONArray jsonArray = new JSONArray();
  69. for (int i = 0; i < 30; i++) {
  70. LocalDateTime stateTime = now.minusDays(i + 1);
  71. LocalDateTime endTime = now.minusDays(i);
  72. String dateTime = endTime.format(dateTimeFormatter);
  73. LambdaQueryWrapper<SmartFaceDiscern> faceDiscernWrapper = new LambdaQueryWrapper<>();
  74. faceDiscernWrapper.between(SmartFaceDiscern::getDateTime, stateTime, endTime)
  75. .ne(SmartFaceDiscern::getType, "人脸比对");
  76. int faceDiscernCount = smartFaceDiscernService.count(faceDiscernWrapper);
  77. LambdaQueryWrapper<SmartQrcode> qrcodeWrapper = new LambdaQueryWrapper<>();
  78. qrcodeWrapper.between(SmartQrcode::getCreateTime, stateTime, endTime);
  79. int qrcodeCount = smartQrcodeService.count(qrcodeWrapper);
  80. LambdaQueryWrapper<SmartCarAccess> smartCarAccessWrapper = new LambdaQueryWrapper<>();
  81. smartCarAccessWrapper.between(SmartCarAccess::getEnterTime, stateTime, endTime);
  82. int carCount = smartCarAccessService.count(smartCarAccessWrapper);
  83. JSONObject jsonObject = new JSONObject();
  84. jsonObject.put("date", dateTime);
  85. jsonObject.put("face", faceDiscernCount);
  86. jsonObject.put("code", qrcodeCount);
  87. jsonObject.put("car", carCount);
  88. jsonArray.add(jsonObject);
  89. }
  90. return CommonResult.ok(jsonArray);
  91. }
  92. public static JSONObject getDate(Integer date) {
  93. JSONObject jsonObject = new JSONObject();
  94. DateTimeFormatter dateTimeFormatter1 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
  95. LocalDateTime now = LocalDateTime.now();
  96. LocalDateTime stateTime = now.withHour(0).withMinute(0).withSecond(0).minusDays(date);
  97. LocalDateTime endTime = now.withHour(23).withMinute(59).withSecond(59).minusDays(date);
  98. jsonObject.put("stateTime", stateTime.format(dateTimeFormatter1));
  99. jsonObject.put("endTime", endTime.format(dateTimeFormatter1));
  100. return jsonObject;
  101. }
  102. public static void main(String[] args) {
  103. LocalDateTime now = LocalDateTime.now();
  104. DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
  105. for (int i = 1; i <= 30; i++) {
  106. LocalDateTime endTime = now.minusDays(i);
  107. String dateTime = endTime.format(dateTimeFormatter);
  108. logger.info("dateTime = " + dateTime);
  109. }
  110. }
  111. }