diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/controller/VersionController.java b/src/main/java/com/chaozhanggui/system/cashierservice/controller/VersionController.java new file mode 100644 index 0000000..73247ed --- /dev/null +++ b/src/main/java/com/chaozhanggui/system/cashierservice/controller/VersionController.java @@ -0,0 +1,40 @@ +package com.chaozhanggui.system.cashierservice.controller; + +import com.chaozhanggui.system.cashierservice.entity.TbVersion; +import com.chaozhanggui.system.cashierservice.service.LoginService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +/** + * @author yijiegong + */ +@RestController +@RequestMapping("/version") +public class VersionController { + + @Autowired + LoginService loginService; + + @GetMapping("pcDownload") + public ResponseEntity pcDownload(HttpServletRequest request, HttpServletResponse response) { + TbVersion pcVersion = loginService.getCurrentPcVersion(); + + if (pcVersion == null) { + throw new RuntimeException("未找到PC版本信息"); + } + + // 重定向到下载地址 + HttpHeaders headers = new HttpHeaders(); + headers.setLocation(java.net.URI.create(pcVersion.getUrl())); + return new ResponseEntity<>(headers, HttpStatus.FOUND); + } + +} diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/interceptor/SignInterceptor.java b/src/main/java/com/chaozhanggui/system/cashierservice/interceptor/SignInterceptor.java index ad1dba3..acf8bf3 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/interceptor/SignInterceptor.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/interceptor/SignInterceptor.java @@ -37,7 +37,7 @@ public class SignInterceptor implements HandlerInterceptor { public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { - String requestURI = request.getRequestURI(); + String requestUri = request.getRequestURI(); if (HttpMethod.OPTIONS.toString().equals(request.getMethod())) { response.setStatus(HttpServletResponse.SC_OK); @@ -45,6 +45,10 @@ public class SignInterceptor implements HandlerInterceptor { return true; } + if (requestUri.contains("/version/pcDownload")) { + return true; + } + String token=request.getHeader("token"); String loginName=request.getHeader("loginName"); String clientType=request.getHeader("clientType"); diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/service/LoginService.java b/src/main/java/com/chaozhanggui/system/cashierservice/service/LoginService.java index dcc52f1..709dffa 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/LoginService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/LoginService.java @@ -146,14 +146,17 @@ public class LoginService { } public Result findVersion() { + TbVersion pcVersion = getCurrentPcVersion(); + return new Result(SUCCESS, pcVersion); + } + + public TbVersion getCurrentPcVersion() { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(TbVersion::getSource,"PC"); queryWrapper.eq(TbVersion::getSel,1); - return new Result(SUCCESS,versionMapper.selectOne(queryWrapper)); + return versionMapper.selectOne(queryWrapper); } - - public Result logout(String loginName, String clientType, String token, String status) { String key = RedisCst.ONLINE_USER.concat(":").concat(clientType).concat(":").concat(loginName);