From 0620e7ad2ef48d7a5185d307397ce637e7ec4a9a Mon Sep 17 00:00:00 2001 From: taozi <9108791@qq.com> Date: Fri, 12 Nov 2021 21:00:10 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8D=87=E7=BA=A7spring-boot=202.4.12=E3=80=81?= =?UTF-8?q?wx-java=204.2.0=E3=80=81pom=E6=96=87=E4=BB=B6=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E3=80=81swagger=E6=96=87=E6=A1=A3=E5=8D=87=E7=BA=A7=E5=88=B03.?= =?UTF-8?q?0.0=EF=BC=8C=E9=82=AE=E8=B4=B9=E8=AE=A1=E7=AE=97=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 38 +- .../security/service/OnlineUserService.java | 4 +- .../yixiang/common/config/FilterConfig.java | 2 +- .../yixiang/modules/services/AuthService.java | 4 - yshop-common/pom.xml | 2 +- .../java/co/yixiang/config/SwaggerConfig.java | 2 +- .../knife4j/spring/web/Knife4jController.java | 426 ------------------ .../swagger2/web/Swagger2Controller.java | 117 ----- .../service/impl/YxStoreOrderServiceImpl.java | 9 +- 9 files changed, 34 insertions(+), 570 deletions(-) delete mode 100644 yshop-common/src/main/java/com/github/xiaoymin/knife4j/spring/web/Knife4jController.java delete mode 100644 yshop-common/src/main/java/springfox/documentation/swagger2/web/Swagger2Controller.java diff --git a/pom.xml b/pom.xml index d66bb4f7..bea0fb14 100644 --- a/pom.xml +++ b/pom.xml @@ -28,20 +28,30 @@ org.springframework.boot spring-boot-starter-parent - 2.4.11 + 2.4.12 UTF-8 UTF-8 1.8 - 2.9.0 - 2.9.2 + 3.3.0 + 3.0.0 1.2.78 1.2.6 5.5.7 + 4.1.2 2.5.0 1.2.0.Final + 1.5.21 + 1.5.24 + 3.0.3 + 2.11.0 + 1 + 1.6.2 + 1.20 + 6.1.6.Final + 2.8.0 @@ -59,7 +69,7 @@ org.hibernate.validator hibernate-validator - 6.1.6.Final + ${validator.version} org.springframework.boot @@ -85,7 +95,7 @@ redis.clients jedis - 3.3.0 + ${jedis.version} @@ -125,18 +135,18 @@ io.swagger swagger-annotations - 1.5.21 + ${swagger-annotations.version} io.swagger swagger-models - 1.5.21 + ${swagger-models.version} com.github.xiaoymin knife4j-spring-boot-starter - 2.0.1 + ${github-xiaoymin.version} @@ -168,18 +178,18 @@ org.apache.poi poi - 3.17 + ${poi.version} org.apache.poi poi-ooxml - 3.17 + ${poi.version} xerces xercesImpl - 2.11.0 + ${xerces.version} @@ -208,17 +218,17 @@ com.github.whvcse easy-captcha - 1.6.2 + ${whvcse.version} eu.bitwalker UserAgentUtils - 1.20 + ${bitwalker.version} com.google.code.gson gson - 2.8.0 + ${gson.version} diff --git a/yshop-admin/src/main/java/co/yixiang/modules/security/service/OnlineUserService.java b/yshop-admin/src/main/java/co/yixiang/modules/security/service/OnlineUserService.java index 2eada19b..d42745b5 100644 --- a/yshop-admin/src/main/java/co/yixiang/modules/security/service/OnlineUserService.java +++ b/yshop-admin/src/main/java/co/yixiang/modules/security/service/OnlineUserService.java @@ -116,8 +116,8 @@ public class OnlineUserService { * @throws Exception / */ public void kickOutT(String key) throws Exception { - String[] split = StrUtil.split(key, ":"); - String keyt = ShopConstants.YSHOP_APP_LOGIN_USER + split[0] + ":" + EncryptUtils.desDecrypt(split[1]); + String[] split = StrUtil.split(key, StrUtil.COLON); + String keyt = ShopConstants.YSHOP_APP_LOGIN_USER + split[0] + StrUtil.COLON + EncryptUtils.desDecrypt(split[1]); redisUtils.del(keyt); } diff --git a/yshop-app/src/main/java/co/yixiang/common/config/FilterConfig.java b/yshop-app/src/main/java/co/yixiang/common/config/FilterConfig.java index c00433a1..e9e13a44 100644 --- a/yshop-app/src/main/java/co/yixiang/common/config/FilterConfig.java +++ b/yshop-app/src/main/java/co/yixiang/common/config/FilterConfig.java @@ -36,7 +36,7 @@ public class FilterConfig FilterRegistrationBean registration = new FilterRegistrationBean(); registration.setDispatcherTypes(DispatcherType.REQUEST); registration.setFilter(new XssFilter()); - registration.addUrlPatterns(StrUtil.split(urlPatterns, ",")); + registration.addUrlPatterns(StrUtil.split(urlPatterns, StrUtil.COMMA)); registration.setName("xssFilter"); registration.setOrder(Integer.MAX_VALUE); Map initParameters = new HashMap(); diff --git a/yshop-app/src/main/java/co/yixiang/modules/services/AuthService.java b/yshop-app/src/main/java/co/yixiang/modules/services/AuthService.java index b500db99..7aeb2904 100644 --- a/yshop-app/src/main/java/co/yixiang/modules/services/AuthService.java +++ b/yshop-app/src/main/java/co/yixiang/modules/services/AuthService.java @@ -264,11 +264,7 @@ public class AuthService { .nickname(nickname) .openid(wxMpUser.getOpenId()) .unionId(wxMpUser.getUnionId()) - .sex(wxMpUser.getSex()) .language(wxMpUser.getLanguage()) - .city(wxMpUser.getCity()) - .province(wxMpUser.getProvince()) - .country(wxMpUser.getCountry()) .headimgurl(wxMpUser.getHeadImgUrl()) .subscribe(wxMpUser.getSubscribe()) .subscribeTime(wxMpUser.getSubscribeTime()) diff --git a/yshop-common/pom.xml b/yshop-common/pom.xml index c48ca69f..54601282 100644 --- a/yshop-common/pom.xml +++ b/yshop-common/pom.xml @@ -12,7 +12,7 @@ yshop-common 公共模块 - 4.1.0 + 4.2.0 diff --git a/yshop-common/src/main/java/co/yixiang/config/SwaggerConfig.java b/yshop-common/src/main/java/co/yixiang/config/SwaggerConfig.java index 7acfc05e..d131e2d9 100644 --- a/yshop-common/src/main/java/co/yixiang/config/SwaggerConfig.java +++ b/yshop-common/src/main/java/co/yixiang/config/SwaggerConfig.java @@ -84,7 +84,7 @@ public class SwaggerConfig { .apiInfo(apiInfo()) .select() .apis(RequestHandlerSelectors.basePackage("co.yixiang.modules")) - .paths(Predicates.not(PathSelectors.regex("/error.*"))) + .paths(PathSelectors.regex("/error.*").negate()) .build() .globalOperationParameters(pars); } diff --git a/yshop-common/src/main/java/com/github/xiaoymin/knife4j/spring/web/Knife4jController.java b/yshop-common/src/main/java/com/github/xiaoymin/knife4j/spring/web/Knife4jController.java deleted file mode 100644 index cf15c39a..00000000 --- a/yshop-common/src/main/java/com/github/xiaoymin/knife4j/spring/web/Knife4jController.java +++ /dev/null @@ -1,426 +0,0 @@ -package com.github.xiaoymin.knife4j.spring.web; - -import com.github.xiaoymin.knife4j.annotations.ApiOperationSort; -import com.github.xiaoymin.knife4j.annotations.ApiSort; -import com.github.xiaoymin.knife4j.spring.common.SwaggerBootstrapUiHostNameProvider; -import com.github.xiaoymin.knife4j.spring.model.MarkdownFiles; -import com.github.xiaoymin.knife4j.spring.model.RestHandlerMapping; -import com.github.xiaoymin.knife4j.spring.model.SwaggerBootstrapUi; -import com.github.xiaoymin.knife4j.spring.model.SwaggerBootstrapUiPath; -import com.github.xiaoymin.knife4j.spring.model.SwaggerBootstrapUiTag; -import com.github.xiaoymin.knife4j.spring.model.SwaggerExt; -import com.github.xiaoymin.knife4j.spring.util.SwaggerUtil; -import com.google.common.base.Function; -import com.google.common.base.Strings; -import com.google.common.collect.FluentIterable; -import com.google.common.collect.Lists; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import io.swagger.models.Model; -import io.swagger.models.Swagger; -import io.swagger.models.properties.Property; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.BeanFactoryUtils; -import org.springframework.beans.factory.ObjectProvider; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.core.env.Environment; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.stereotype.Controller; -import org.springframework.util.ClassUtils; -import org.springframework.util.StringUtils; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.context.WebApplicationContext; -import org.springframework.web.context.support.WebApplicationContextUtils; -import org.springframework.web.method.HandlerMethod; -import org.springframework.web.servlet.HandlerMapping; -import org.springframework.web.servlet.mvc.condition.PatternsRequestCondition; -import org.springframework.web.servlet.mvc.method.RequestMappingInfo; -import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping; -import org.springframework.web.util.UriComponents; -import springfox.documentation.RequestHandler; -import springfox.documentation.annotations.ApiIgnore; -import springfox.documentation.service.Documentation; -import springfox.documentation.service.Tag; -import springfox.documentation.spi.service.RequestHandlerProvider; -import springfox.documentation.spring.web.DocumentationCache; -import springfox.documentation.spring.web.WebMvcRequestHandler; -import springfox.documentation.spring.web.json.Json; -import springfox.documentation.spring.web.json.JsonSerializer; -import springfox.documentation.swagger.common.HostNameProvider; -import springfox.documentation.swagger2.mappers.ServiceModelToSwagger2Mapper; - -import javax.servlet.http.HttpServletRequest; -import java.lang.reflect.Method; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Optional; -import java.util.Set; -import java.util.regex.Pattern; - -import static org.springframework.util.MimeTypeUtils.APPLICATION_JSON_VALUE; - -/** - * @author LionCitys - */ -@Controller -@ApiIgnore -public class Knife4jController { - private static final String DEFAULT_SORT_URL = "/v2/api-docs-ext"; - private static final String HAL_MEDIA_TYPE = "application/hal+json"; - private static final Logger LOGGER = LoggerFactory.getLogger(Knife4jController.class); - private final ServiceModelToSwagger2Mapper mapper; - private final DocumentationCache documentationCache; - private final JsonSerializer jsonSerializer; - private final String hostNameOverride; - private final List handlerProviders; - private final MarkdownFiles markdownFiles; - private ArrayList globalHandlerMappings = new ArrayList<>(); - private final RequestMethod[] globalRequestMethods; - - @Autowired - public Knife4jController(Environment environment, ServiceModelToSwagger2Mapper mapper, DocumentationCache documentationCache, JsonSerializer jsonSerializer, List handlerProviders, ObjectProvider markdownFilesObjectProvider) { - this.globalRequestMethods = new RequestMethod[]{RequestMethod.POST, RequestMethod.GET, RequestMethod.PUT, RequestMethod.DELETE, RequestMethod.PATCH, RequestMethod.OPTIONS, RequestMethod.HEAD}; - this.mapper = mapper; - this.documentationCache = documentationCache; - this.jsonSerializer = jsonSerializer; - this.hostNameOverride = environment.getProperty("springfox.documentation.swagger.v2.host", "DEFAULT"); - this.handlerProviders = handlerProviders; - this.markdownFiles = markdownFilesObjectProvider.getIfAvailable(); - } - - private Function> handlers() { - return (Function>) input -> input.requestHandlers(); - } - - @RequestMapping(value = DEFAULT_SORT_URL, - method = RequestMethod.GET, - produces = {APPLICATION_JSON_VALUE, HAL_MEDIA_TYPE}) - @ResponseBody - public ResponseEntity apiSorts(@RequestParam(value = "group",required = false) String swaggerGroup, HttpServletRequest request) { - String groupName = Optional.ofNullable(swaggerGroup).orElse("default"); - Documentation documentation = this.documentationCache.documentationByGroup(groupName); - if (documentation == null) { - LOGGER.warn("Unable to find specification for group {},use default", groupName); - documentation = this.documentationCache.documentationByGroup("default"); - if (documentation == null) { - LOGGER.warn("Unable to find specification for group default"); - return new ResponseEntity<>(HttpStatus.NOT_FOUND); - } - } - - Swagger swagger = this.mapper.mapDocumentation(documentation); - UriComponents uriComponents = null; - - try { - uriComponents = HostNameProvider.componentsFrom(request, swagger.getBasePath()); - } catch (Throwable var9) { - LOGGER.error(var9.getClass().getName() + ":" + var9.getMessage()); - if (var9 instanceof NoClassDefFoundError) { - String msg = var9.getMessage(); - if (msg != null && !"".equals(msg) && msg.endsWith("HostNameProvider")) { - uriComponents = SwaggerBootstrapUiHostNameProvider.componentsFrom(request, swagger.getBasePath()); - } - } - } - - swagger.basePath(Strings.isNullOrEmpty(uriComponents.getPath()) ? "/" : uriComponents.getPath()); - if (Strings.isNullOrEmpty(swagger.getHost())) { - swagger.host(this.hostName(uriComponents)); - } - extend(swagger); - SwaggerExt swaggerExt = new SwaggerExt(swagger); - swaggerExt.setSwaggerBootstrapUi(this.initSwaggerBootstrapUi(request, documentation, swaggerExt)); - return new ResponseEntity<>(this.jsonSerializer.toJson(swaggerExt), HttpStatus.OK); - } - - private SwaggerBootstrapUi initSwaggerBootstrapUi(HttpServletRequest request, Documentation documentation, SwaggerExt swaggerExt) { - SwaggerBootstrapUi swaggerBootstrapUi = new SwaggerBootstrapUi(); - WebApplicationContext wc = WebApplicationContextUtils.getWebApplicationContext(request.getServletContext()); - if (wc == null) { - String msg = "WebApplicationContext is Empty~!,Enable SwaggerBootstrapUi fun fail~!"; - LOGGER.warn(msg); - swaggerBootstrapUi.setErrorMsg(msg); - return swaggerBootstrapUi; - } else { - Iterator tags = documentation.getTags().iterator(); - this.initGlobalRequestMappingArray(swaggerExt); - List targetTagLists = Lists.newArrayList(); - - ArrayList targetPathLists; - SwaggerBootstrapUiTag tag; - label64: - for(targetPathLists = Lists.newArrayList(); tags.hasNext(); targetTagLists.add(tag)) { - Tag sourceTag = tags.next(); - String tagName = sourceTag.getName(); - int order = 2147483647; - tag = new SwaggerBootstrapUiTag(order); - tag.name(tagName).description(sourceTag.getDescription()); - Api tagApi = null; - RestHandlerMapping tagMapping = null; - Iterator var15 = this.globalHandlerMappings.iterator(); - while(true) { - while(true) { - while(var15.hasNext()) { - RestHandlerMapping rhm = var15.next(); - Api api = (Api)rhm.getBeanType().getAnnotation(Api.class); - if (api != null) { - api.tags(); - if (api.tags().length > 0) { - if (Lists.newArrayList(api.tags()).contains(tagName)) { - tagApi = api; - tagMapping = rhm; - this.createPathInstance(rhm, targetPathLists); - } else { - String firstTag = api.tags()[0]; - if (StringUtils.isEmpty(firstTag) && this.checkExists(tagName, rhm.getBeanType())) { - tagApi = api; - tagMapping = rhm; - this.createPathInstance(rhm, targetPathLists); - } - } - } else if (this.checkExists(tagName, rhm.getBeanType())) { - if (!StringUtils.isEmpty(api.value())) { - tag.name(api.value()); - } - tagApi = api; - tagMapping = rhm; - this.createPathInstance(rhm, targetPathLists); - } - } else if (this.checkExists(tagName, rhm.getBeanType())) { - tagMapping = rhm; - this.createPathInstance(rhm, targetPathLists); - } - } - if (tagMapping != null) { - tag.setOrder(this.getRestTagOrder(tagMapping.getBeanType(), tagApi)); - } - continue label64; - } - } - } - - Collections.sort(targetTagLists, new Comparator() { - @Override - public int compare(SwaggerBootstrapUiTag o1, SwaggerBootstrapUiTag o2) { - return o1.getOrder().compareTo(o2.getOrder()); - } - }); - targetPathLists.sort(new Comparator() { - @Override - public int compare(SwaggerBootstrapUiPath o1, SwaggerBootstrapUiPath o2) { - return o1.getOrder().compareTo(o2.getOrder()); - } - }); - swaggerBootstrapUi.setTagSortLists(targetTagLists); - swaggerBootstrapUi.setPathSortLists(targetPathLists); - if (this.markdownFiles != null) { - swaggerBootstrapUi.setMarkdownFiles(this.markdownFiles.getMarkdownFiles()); - } - - return swaggerBootstrapUi; - } - } - - private void initGlobalRequestMappingArray(SwaggerExt swaggerExt) { - if (this.globalHandlerMappings.size() == 0) { - String parentPath = ""; - if (!StringUtils.isEmpty(swaggerExt.getBasePath()) && !"/".equals(swaggerExt.getBasePath())) { - parentPath = parentPath + swaggerExt.getBasePath(); - } - - try { - List requestHandlers = FluentIterable.from(this.handlerProviders).transformAndConcat(this.handlers()).toList(); - Iterator var4 = requestHandlers.iterator(); - - while(true) { - RequestHandler requestHandler; - do { - if (!var4.hasNext()) { - return; - } - - requestHandler = var4.next(); - } while(!(requestHandler instanceof WebMvcRequestHandler)); - - WebMvcRequestHandler webMvcRequestHandler = (WebMvcRequestHandler)requestHandler; - Set patterns = webMvcRequestHandler.getRequestMapping().getPatternsCondition().getPatterns(); - Set restMethods = webMvcRequestHandler.getRequestMapping().getMethodsCondition().getMethods(); - HandlerMethod handlerMethod = webMvcRequestHandler.getHandlerMethod(); - Class controllerClazz = ClassUtils.getUserClass(handlerMethod.getBeanType()); - Method method = ClassUtils.getMostSpecificMethod(handlerMethod.getMethod(), controllerClazz); - - String url; - for(Iterator var12 = patterns.iterator(); var12.hasNext(); this.globalHandlerMappings.add(new RestHandlerMapping(parentPath + url, controllerClazz, method, restMethods))) { - url = var12.next(); - if (LOGGER.isDebugEnabled()) { - LOGGER.debug("url:" + url + "\r\nclass:" + controllerClazz.toString() + "\r\nmethod:" + method.toString()); - } - } - } - } catch (Exception var14) { - LOGGER.error(var14.getMessage(), var14); - } - } - - } - - /** @deprecated */ - @Deprecated - private void initGlobalRequestMappingArray(WebApplicationContext wc, SwaggerExt swaggerExt) { - if (this.globalHandlerMappings.size() == 0) { - String parentPath = ""; - if (!StringUtils.isEmpty(swaggerExt.getBasePath()) && !"/".equals(swaggerExt.getBasePath())) { - parentPath = parentPath + swaggerExt.getBasePath(); - } - - Map requestMappings = BeanFactoryUtils.beansOfTypeIncludingAncestors(wc, HandlerMapping.class, true, false); - Iterator var5 = requestMappings.values().iterator(); - - while(true) { - HandlerMapping handlerMapping; - do { - if (!var5.hasNext()) { - return; - } - handlerMapping = var5.next(); - } while(!(handlerMapping instanceof RequestMappingHandlerMapping)); - RequestMappingHandlerMapping rmhMapping = (RequestMappingHandlerMapping)handlerMapping; - Map handlerMethods = rmhMapping.getHandlerMethods(); - for (RequestMappingInfo rmi : handlerMethods.keySet()) { - PatternsRequestCondition prc = rmi.getPatternsCondition(); - Set restMethods = rmi.getMethodsCondition().getMethods(); - Set patterns = prc.getPatterns(); - HandlerMethod handlerMethod = (HandlerMethod) handlerMethods.get(rmi); - - String url; - Class clazz; - Method method; - for (Iterator var15 = patterns.iterator(); var15.hasNext(); this.globalHandlerMappings.add(new RestHandlerMapping(parentPath + url, clazz, method, restMethods))) { - url = var15.next(); - clazz = ClassUtils.getUserClass(handlerMethod.getBeanType()); - method = ClassUtils.getMostSpecificMethod(handlerMethod.getMethod(), clazz); - if (LOGGER.isDebugEnabled()) { - LOGGER.debug("url:" + url + "\r\nclass:" + clazz.toString() + "\r\nmethod:" + method.toString()); - } - } - } - } - } - - } - - private void createPathInstance(RestHandlerMapping rhm, List targetPathLists) { - if (rhm.getRequestMethods() != null && rhm.getRequestMethods().size() != 0) { - Iterator var7 = rhm.getRequestMethods().iterator(); - - while(var7.hasNext()) { - RequestMethod requestMethod = var7.next(); - targetPathLists.add(new SwaggerBootstrapUiPath(rhm.getUrl(), requestMethod.name().toUpperCase(), this.getRestMethodOrder(rhm.getBeanOfMethod()))); - } - } else { - RequestMethod[] var3 = this.globalRequestMethods; - int var4 = var3.length; - - for(int var5 = 0; var5 < var4; ++var5) { - RequestMethod requestMethod = var3[var5]; - targetPathLists.add(new SwaggerBootstrapUiPath(rhm.getUrl(), requestMethod.name().toUpperCase(), this.getRestMethodOrder(rhm.getBeanOfMethod()))); - } - } - - } - - private int getRestTagOrder(Class aClass, Api api) { - int order = 2147483647; - if (api != null) { - int post = api.position(); - if (post == 0) { - if (aClass != null) { - ApiSort annotation = (ApiSort) ClassUtils.getUserClass(aClass).getAnnotation(ApiSort.class); - if (annotation != null) { - order = annotation.value(); - } - } - } else { - order = post; - } - } else if (aClass != null) { - ApiSort annotation = (ApiSort) ClassUtils.getUserClass(aClass).getAnnotation(ApiSort.class); - if (annotation != null) { - order = annotation.value(); - } - } - - return order; - } - - private int getRestMethodOrder(Method target) { - int pathOrder = 2147483647; - ApiOperation apiOperation = (ApiOperation)target.getAnnotation(ApiOperation.class); - ApiOperationSort apiOperationSort; - if (apiOperation != null) { - if (apiOperation.position() != 0) { - pathOrder = apiOperation.position(); - } else { - apiOperationSort = (ApiOperationSort)target.getAnnotation(ApiOperationSort.class); - if (apiOperationSort != null) { - pathOrder = apiOperationSort.value(); - } - } - } else { - apiOperationSort = (ApiOperationSort)target.getAnnotation(ApiOperationSort.class); - if (apiOperationSort != null) { - pathOrder = apiOperationSort.value(); - } - } - - return pathOrder; - } - - private boolean checkExists(String tagName, Class aClass) { - boolean flag = false; - if (!StringUtils.isEmpty(tagName)) { - String regexStr = tagName.replaceAll("-", ".*?"); - Pattern pattern = Pattern.compile(regexStr, 2); - if (pattern.matcher(aClass.getSimpleName()).matches()) { - flag = true; - } - } - - return flag; - } - - private String hostName(UriComponents uriComponents) { - if ("DEFAULT".equals(hostNameOverride)) { - String host = uriComponents.getHost(); - int port = uriComponents.getPort(); - if (port > -1) { - return String.format("%s:%d", host, port); - } - return host; - } - return hostNameOverride; - } - - private void extend(Swagger swagger) { - // 响应返回参数增强 - for (Map.Entry entry : swagger.getDefinitions().entrySet()) { - Model model = entry.getValue(); - String key = entry.getKey(); - if (key.contains("ApiResult") && !SwaggerUtil.getRealType(key).contains("ApiResult")) { - Map props = model.getProperties(); - Property dataProp = props.get("data"); - Property newProp = SwaggerUtil.getNewProp(dataProp, SwaggerUtil.getRealType(key), swagger.getDefinitions()); - props.put("data", newProp); - } - } - } -} diff --git a/yshop-common/src/main/java/springfox/documentation/swagger2/web/Swagger2Controller.java b/yshop-common/src/main/java/springfox/documentation/swagger2/web/Swagger2Controller.java deleted file mode 100644 index 936015cf..00000000 --- a/yshop-common/src/main/java/springfox/documentation/swagger2/web/Swagger2Controller.java +++ /dev/null @@ -1,117 +0,0 @@ -package springfox.documentation.swagger2.web; - -import com.github.xiaoymin.knife4j.spring.util.SwaggerUtil; -import com.google.common.base.Strings; -import io.swagger.models.Model; -import io.swagger.models.Swagger; -import io.swagger.models.properties.Property; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.core.env.Environment; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.util.UriComponents; -import springfox.documentation.annotations.ApiIgnore; -import springfox.documentation.service.Documentation; -import springfox.documentation.spring.web.DocumentationCache; -import springfox.documentation.spring.web.PropertySourcedMapping; -import springfox.documentation.spring.web.json.JsonSerializer; -import springfox.documentation.swagger.common.HostNameProvider; -import springfox.documentation.swagger2.mappers.ServiceModelToSwagger2Mapper; - -import javax.servlet.http.HttpServletRequest; -import java.util.Map; -import java.util.Optional; - -import static org.springframework.util.MimeTypeUtils.APPLICATION_JSON_VALUE; - -/** - * Swagger2控制器 - * - * @author LionCitys - * @date 2020/01/07 - */ -@Controller -@ApiIgnore -public class Swagger2Controller { - private static final String DEFAULT_URL = "/v2/api-docs"; - private static final Logger LOGGER = LoggerFactory.getLogger(Swagger2Controller.class); - private static final String HAL_MEDIA_TYPE = "application/hal+json"; - private final String hostNameOverride; - private final DocumentationCache documentationCache; - private final ServiceModelToSwagger2Mapper mapper; - private final JsonSerializer jsonSerializer; - - @Autowired - public Swagger2Controller(Environment environment, DocumentationCache documentationCache, ServiceModelToSwagger2Mapper mapper, JsonSerializer jsonSerializer) { - this.hostNameOverride = environment.getProperty("springfox.documentation.swagger.v2.host", "DEFAULT"); - this.documentationCache = documentationCache; - this.mapper = mapper; - this.jsonSerializer = jsonSerializer; - } - - @RequestMapping( - value = {DEFAULT_URL}, - method = {RequestMethod.GET}, - produces = {APPLICATION_JSON_VALUE, HAL_MEDIA_TYPE} - ) - @PropertySourcedMapping( - value = "${springfox.documentation.swagger.v2.path}", - propertyKey = "springfox.documentation.swagger.v2.path" - ) - @ResponseBody - public ResponseEntity getDocumentation(@RequestParam(value = "group",required = false) String swaggerGroup, HttpServletRequest servletRequest) { - String groupName = (String) Optional.ofNullable(swaggerGroup).orElse("default"); - Documentation documentation = this.documentationCache.documentationByGroup(groupName); - if (documentation == null) { - LOGGER.warn("Unable to find specification for group {}", groupName); - return new ResponseEntity(HttpStatus.NOT_FOUND); - } else { - Swagger swagger = this.mapper.mapDocumentation(documentation); - UriComponents uriComponents = HostNameProvider.componentsFrom(servletRequest, swagger.getBasePath()); - swagger.basePath(Strings.isNullOrEmpty(uriComponents.getPath()) ? "/" : uriComponents.getPath()); - if (Strings.isNullOrEmpty(swagger.getHost())) { - swagger.host(this.hostName(uriComponents)); - } - // 扩展 - swagger = extend(swagger); - - return new ResponseEntity(this.jsonSerializer.toJson(swagger), HttpStatus.OK); - } - } - - private String hostName(UriComponents uriComponents) { - return getString(uriComponents, this.hostNameOverride); - } - - private static String getString(UriComponents uriComponents, String hostNameOverride) { - if ("DEFAULT".equals(hostNameOverride)) { - String host = uriComponents.getHost(); - int port = uriComponents.getPort(); - return port > -1 ? String.format("%s:%d", host, port) : host; - } else { - return hostNameOverride; - } - } - - private Swagger extend(Swagger swagger) { - // 响应返回参数增强 - for (Map.Entry entry : swagger.getDefinitions().entrySet()) { - Model model = entry.getValue(); - String key = entry.getKey(); - if (key.contains("ApiResult") && !SwaggerUtil.getRealType(key).contains("ApiResult")) { - Map props = model.getProperties(); - Property dataProp = props.get("data"); - Property newProp = SwaggerUtil.getNewProp(dataProp, SwaggerUtil.getRealType(key), swagger.getDefinitions()); - props.put("data", newProp); - } - } - return swagger; - } -} diff --git a/yshop-mall/src/main/java/co/yixiang/modules/order/service/impl/YxStoreOrderServiceImpl.java b/yshop-mall/src/main/java/co/yixiang/modules/order/service/impl/YxStoreOrderServiceImpl.java index 174c609f..cd5a2b0f 100644 --- a/yshop-mall/src/main/java/co/yixiang/modules/order/service/impl/YxStoreOrderServiceImpl.java +++ b/yshop-mall/src/main/java/co/yixiang/modules/order/service/impl/YxStoreOrderServiceImpl.java @@ -2055,7 +2055,7 @@ public class YxStoreOrderServiceImpl extends BaseServiceImpl entry : templateDTOMap.entrySet()) { + jj: for (Map.Entry entry : templateDTOMap.entrySet()) { Integer mapKey = entry.getKey(); TemplateDto mapValue = entry.getValue(); @@ -2067,6 +2067,7 @@ public class YxStoreOrderServiceImpl extends BaseServiceImpl 0) { templateDTOMap.remove(mapKey); + break jj; } } @@ -2079,17 +2080,17 @@ public class YxStoreOrderServiceImpl extends BaseServiceImpl