package net.mingsoft.tf.wx.gate; import lombok.extern.slf4j.Slf4j; import net.mingsoft.tf.biz.IBrowseBiz; import net.mingsoft.tf.biz.IGateService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.env.Environment; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; /** * 闸机控制 * * @author hosea * @date 2026-01-14 */ @Slf4j @Controller @RequestMapping("/api/SelfDevice") public class GateAction { @Autowired private IGateService gateService; @Autowired private Environment env; @Autowired private IBrowseBiz browseBiz; /** * 心跳 */ @ResponseBody @GetMapping(value = "/Conne/{deviceNumber}") public GateResults heartbeat(@PathVariable("deviceNumber") String deviceNumber) { String message = "Conne " + deviceNumber; log.info(message); return GateResults.builder() .Code(200) .Message(message) .Data(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))) .build(); } /** * 上线 */ @ResponseBody @PostMapping(value = "/DeviceOnline") public GateResults online(@RequestBody GateOnlineRequest request) { String message = "DeviceOnline " + request.toString(); log.info(message); return GateResults.builder() .Code(200) .Message(message) .Data(GateOnlineResponse.builder() .deviceNumber(request.getDeviceNumber()) .deviceType(request.getDeviceType()) .secretKey(env.getProperty("gate.key." + request.getDeviceNumber())) .build()) .build(); } /** * 闸机核销验票接口 */ @ResponseBody @PostMapping(value = "/TicketVerify") public GateResults ticketCheck(@RequestBody TicketCheckRequest request) { String message = "TicketVerify " + request.toString(); log.info(message); TicketCheckResponse.TicketCheckResponseBuilder builder = TicketCheckResponse.builder() .ticketCode(request.getTicketCode()) .code(0) .msg("无效"); if (gateService.checkCode(request.getTicketCode())) { browseBiz.addBrowseAdmission(); builder.code(1) .msg("通过"); } return GateResults.builder() .Code(200) .Message(message) .Data(builder.build()) .build(); } /** * 闸机身份证核销接口 */ @PostMapping(value = "/identityCardCheck") public void identityCardCheck() { } }