package com.template.controller; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.template.annotation.DESRespondSecret; import com.template.api.SmartCarAccessControllerAPI; import com.template.api.SmartFaceDiscernControllerAPI; import com.template.common.utils.*; import com.template.config.ControlConfig; import com.template.model.pojo.SmartCarAccess; import com.template.model.pojo.SmartFaceDiscern; import com.template.model.pojo.SmartQrcode; import com.template.model.pojo.SmartUser; import com.template.model.result.CommonResult; import com.template.services.SmartCarAccessService; import com.template.services.SmartFaceDiscernService; import com.template.services.SmartQrcodeService; import com.template.services.SmartUserService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import java.net.URLDecoder; import java.net.URLEncoder; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.List; import static com.template.common.utils.AesTestOne.decrypt; /** *

* 前端控制器 *

* * @author ceshi * @since 2024-01-18 */ @RestController //返回参数加密注解 @DESRespondSecret public class SmartFaceDiscernController implements SmartFaceDiscernControllerAPI { private static Logger logger = LoggerFactory.getLogger(SmartFaceDiscernController.class); @Autowired SmartFaceDiscernService smartFaceDiscernService; @Autowired SmartQrcodeService smartQrcodeService; @Autowired SmartCarAccessService smartCarAccessService; @Override @DESRespondSecret(validated = true) public CommonResult track(Integer id, int dateTime) { JSONObject date = getDate(dateTime); String stateTime = date.getString("stateTime"); String endTime = date.getString("endTime"); List smartFaceDiscerns = smartFaceDiscernService.track(stateTime, endTime, id); return CommonResult.ok(smartFaceDiscerns); } @Override @DESRespondSecret(validated = true) public CommonResult access() { LocalDateTime now = LocalDateTime.now(); DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); JSONArray jsonArray = new JSONArray(); for (int i = 0; i < 30; i++) { LocalDateTime stateTime = now.minusDays(i + 1); LocalDateTime endTime = now.minusDays(i); String dateTime = endTime.format(dateTimeFormatter); LambdaQueryWrapper faceDiscernWrapper = new LambdaQueryWrapper<>(); faceDiscernWrapper.between(SmartFaceDiscern::getDateTime, stateTime, endTime) .ne(SmartFaceDiscern::getType, "人脸比对"); int faceDiscernCount = smartFaceDiscernService.count(faceDiscernWrapper); LambdaQueryWrapper qrcodeWrapper = new LambdaQueryWrapper<>(); qrcodeWrapper.between(SmartQrcode::getCreateTime, stateTime, endTime); int qrcodeCount = smartQrcodeService.count(qrcodeWrapper); LambdaQueryWrapper smartCarAccessWrapper = new LambdaQueryWrapper<>(); smartCarAccessWrapper.between(SmartCarAccess::getEnterTime, stateTime, endTime); int carCount = smartCarAccessService.count(smartCarAccessWrapper); JSONObject jsonObject = new JSONObject(); jsonObject.put("date", dateTime); jsonObject.put("face", faceDiscernCount); jsonObject.put("code", qrcodeCount); jsonObject.put("car", carCount); jsonArray.add(jsonObject); } return CommonResult.ok(jsonArray); } public static JSONObject getDate(Integer date) { JSONObject jsonObject = new JSONObject(); DateTimeFormatter dateTimeFormatter1 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); LocalDateTime now = LocalDateTime.now(); LocalDateTime stateTime = now.withHour(0).withMinute(0).withSecond(0).minusDays(date); LocalDateTime endTime = now.withHour(23).withMinute(59).withSecond(59).minusDays(date); jsonObject.put("stateTime", stateTime.format(dateTimeFormatter1)); jsonObject.put("endTime", endTime.format(dateTimeFormatter1)); return jsonObject; } public static void main(String[] args) { LocalDateTime now = LocalDateTime.now(); DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); for (int i = 1; i <= 30; i++) { LocalDateTime endTime = now.minusDays(i); String dateTime = endTime.format(dateTimeFormatter); logger.info("dateTime = " + dateTime); } } }