diff --git a/apitest.out b/apitest.out new file mode 100644 index 0000000..c94ccc2 --- /dev/null +++ b/apitest.out @@ -0,0 +1,2861 @@ +[INFO] Scanning for projects... +[INFO] ------------------------------------------------------------------------ +[INFO] Detecting the operating system and CPU architecture +[INFO] ------------------------------------------------------------------------ +[INFO] os.detected.name: osx +[INFO] os.detected.arch: aarch_64 +[INFO] os.detected.bitness: 64 +[INFO] os.detected.version: 15.6 +[INFO] os.detected.version.major: 15 +[INFO] os.detected.version.minor: 6 +[INFO] os.detected.classifier: osx-aarch_64 +[INFO] ------------------------------------------------------------------------ +[INFO] Reactor Build Order: +[INFO] +[INFO] play-with [pom] +[INFO] play-common [jar] +[INFO] play-generator [jar] +[INFO] play-admin [jar] +[INFO] +[INFO] ------------------------< com.starry:play-with >------------------------ +[INFO] Building play-with 1.1 [1/4] +[INFO] from pom.xml +[INFO] --------------------------------[ pom ]--------------------------------- +[INFO] +[INFO] --- spotless:2.43.0:check (default) @ play-with --- +[INFO] +[INFO] -----------------------< com.starry:play-common >----------------------- +[INFO] Building play-common 1.1 [2/4] +[INFO] from play-common/pom.xml +[INFO] --------------------------------[ jar ]--------------------------------- +[INFO] +[INFO] --- spotless:2.43.0:check (default) @ play-common --- +[INFO] Spotless.Java is keeping 60 files clean - 0 needs changes to be clean, 0 were already clean, 60 were skipped because caching determined they were already clean +[INFO] +[INFO] --- resources:3.2.0:resources (default-resources) @ play-common --- +[INFO] Using 'UTF-8' encoding to copy filtered resources. +[INFO] Using 'UTF-8' encoding to copy filtered properties files. +[INFO] skip non existing resourceDirectory /Volumes/main/code/yunpei/peipei-backend/play-common/src/main/resources +[INFO] skip non existing resourceDirectory /Volumes/main/code/yunpei/peipei-backend/play-common/src/main/resources +[INFO] +[INFO] --- compiler:3.8.1:compile (default-compile) @ play-common --- +[INFO] Nothing to compile - all classes are up to date +[INFO] +[INFO] --- resources:3.2.0:testResources (default-testResources) @ play-common --- +[INFO] Using 'UTF-8' encoding to copy filtered resources. +[INFO] Using 'UTF-8' encoding to copy filtered properties files. +[INFO] skip non existing resourceDirectory /Volumes/main/code/yunpei/peipei-backend/play-common/src/test/resources +[INFO] +[INFO] --- compiler:3.8.1:testCompile (default-testCompile) @ play-common --- +[INFO] No sources to compile +[INFO] +[INFO] --- surefire:2.22.2:test (default-test) @ play-common --- +[INFO] +[INFO] ---------------------< com.starry:play-generator >---------------------- +[INFO] Building play-generator 1.1 [3/4] +[INFO] from play-generator/pom.xml +[INFO] --------------------------------[ jar ]--------------------------------- +[WARNING] The artifact mysql:mysql-connector-java:jar:8.0.33 has been relocated to com.mysql:mysql-connector-j:jar:8.0.33: MySQL Connector/J artifacts moved to reverse-DNS compliant Maven 2+ coordinates. +[INFO] +[INFO] --- spotless:2.43.0:check (default) @ play-generator --- +[INFO] Spotless.Java is keeping 17 files clean - 0 needs changes to be clean, 0 were already clean, 17 were skipped because caching determined they were already clean +[INFO] +[INFO] --- resources:3.2.0:resources (default-resources) @ play-generator --- +[INFO] Using 'UTF-8' encoding to copy filtered resources. +[INFO] Using 'UTF-8' encoding to copy filtered properties files. +[INFO] Copying 0 resource +[INFO] Copying 19 resources +[INFO] +[INFO] --- compiler:3.8.1:compile (default-compile) @ play-generator --- +[INFO] Nothing to compile - all classes are up to date +[INFO] +[INFO] --- resources:3.2.0:testResources (default-testResources) @ play-generator --- +[INFO] Using 'UTF-8' encoding to copy filtered resources. +[INFO] Using 'UTF-8' encoding to copy filtered properties files. +[INFO] skip non existing resourceDirectory /Volumes/main/code/yunpei/peipei-backend/play-generator/src/test/resources +[INFO] +[INFO] --- compiler:3.8.1:testCompile (default-testCompile) @ play-generator --- +[INFO] No sources to compile +[INFO] +[INFO] --- surefire:2.22.2:test (default-test) @ play-generator --- +[INFO] +[INFO] -----------------------< com.starry:play-admin >------------------------ +[INFO] Building play-admin 1.1 [4/4] +[INFO] from play-admin/pom.xml +[INFO] --------------------------------[ jar ]--------------------------------- +[INFO] +[INFO] --- spotless:2.43.0:check (default) @ play-admin --- +[INFO] Spotless.Java is keeping 796 files clean - 0 needs changes to be clean, 1 were already clean, 795 were skipped because caching determined they were already clean +[INFO] +[INFO] --- resources:3.2.0:resources (default-resources) @ play-admin --- +[INFO] Using 'UTF-8' encoding to copy filtered resources. +[INFO] Using 'UTF-8' encoding to copy filtered properties files. +[INFO] Copying 6 resources +[INFO] Copying 41 resources +[INFO] +[INFO] --- compiler:3.8.1:compile (default-compile) @ play-admin --- +[INFO] Nothing to compile - all classes are up to date +[INFO] +[INFO] --- resources:3.2.0:testResources (default-testResources) @ play-admin --- +[INFO] Using 'UTF-8' encoding to copy filtered resources. +[INFO] Using 'UTF-8' encoding to copy filtered properties files. +[INFO] skip non existing resourceDirectory /Volumes/main/code/yunpei/peipei-backend/play-admin/src/test/resources +[INFO] +[INFO] --- compiler:3.8.1:testCompile (default-testCompile) @ play-admin --- +[INFO] Nothing to compile - all classes are up to date +[INFO] +[INFO] --- surefire:3.0.0-M7:test (default-test) @ play-admin --- +[INFO] Using auto detected provider org.apache.maven.surefire.junitplatform.JUnitPlatformProvider +[INFO] +[INFO] ------------------------------------------------------- +[INFO] T E S T S +[INFO] ------------------------------------------------------- +[INFO] Running com.starry.admin.api.WxOrderRelationApiTest +21:45:08.165 [main] INFO o.s.b.t.c.SpringBootTestContextBootstrapper - Neither @ContextConfiguration nor @ContextHierarchy found for test class [com.starry.admin.api.WxOrderRelationApiTest], using SpringBootContextLoader +21:45:08.167 [main] INFO o.s.t.c.s.AbstractContextLoader - Could not detect default resource locations for test class [com.starry.admin.api.WxOrderRelationApiTest]: no resource found for suffixes {-context.xml, Context.groovy}. +21:45:08.167 [main] INFO o.s.t.c.s.AnnotationConfigContextLoaderUtils - Could not detect default configuration classes for test class [com.starry.admin.api.WxOrderRelationApiTest]: WxOrderRelationApiTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration. +21:45:08.224 [main] INFO o.s.b.t.c.SpringBootTestContextBootstrapper - Found @SpringBootConfiguration com.starry.admin.Application for test class com.starry.admin.api.WxOrderRelationApiTest +21:45:08.255 [main] INFO o.s.b.t.c.SpringBootTestContextBootstrapper - Loaded default TestExecutionListener class names from location [META-INF/spring.factories]: [org.springframework.test.context.web.ServletTestExecutionListener, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener, org.springframework.test.context.event.ApplicationEventsTestExecutionListener, org.springframework.test.context.support.DependencyInjectionTestExecutionListener, org.springframework.test.context.support.DirtiesContextTestExecutionListener, org.springframework.test.context.transaction.TransactionalTestExecutionListener, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener, org.springframework.test.context.event.EventPublishingTestExecutionListener, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener, org.springframework.boot.test.autoconfigure.webservices.client.MockWebServiceServerTestExecutionListener, org.springframework.security.test.context.support.WithSecurityContextTestExecutionListener, org.springframework.security.test.context.support.ReactorContextTestExecutionListener] +21:45:08.262 [main] INFO o.s.b.t.c.SpringBootTestContextBootstrapper - Using TestExecutionListeners: [org.springframework.test.context.web.ServletTestExecutionListener@c96a4ea, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener@28782602, org.springframework.test.context.event.ApplicationEventsTestExecutionListener@60c16548, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener@68105edc, org.springframework.boot.test.autoconfigure.SpringBootDependencyInjectionTestExecutionListener@511816c0, org.springframework.test.context.support.DirtiesContextTestExecutionListener@38b972d7, org.springframework.test.context.transaction.TransactionalTestExecutionListener@5339bbad, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener@3935e9a8, org.springframework.test.context.event.EventPublishingTestExecutionListener@288a4658, org.springframework.security.test.context.support.WithSecurityContextTestExecutionListener@5b56b654, org.springframework.security.test.context.support.ReactorContextTestExecutionListener@452c8a40, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener@534243e4, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener@29006752, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener@470a9030, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener@66d57c1b, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener@27494e46, org.springframework.boot.test.autoconfigure.webservices.client.MockWebServiceServerTestExecutionListener@d59970a] + + . ____ _ __ _ _ + /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ +( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ + \\/ ___)| |_)| | | | | || (_| | ) ) ) ) + ' |____| .__|_| |_|_| |_\__, | / / / / + =========|_|==============|___/=/_/_/_/ + :: Spring Boot :: (v2.5.4) + +2025-12-31 21:45:08.453 INFO 68358 --- [kground-preinit] o.h.validator.internal.util.Version : HV000001: Hibernate Validator 6.2.0.Final +2025-12-31 21:45:08.462 INFO 68358 --- [ main] c.s.admin.api.WxOrderRelationApiTest : Starting WxOrderRelationApiTest using Java 11.0.28 on oushuns-Mac-mini.local with PID 68358 (started by oujunyi in /Volumes/main/code/yunpei/peipei-backend/play-admin) +2025-12-31 21:45:08.463 INFO 68358 --- [ main] c.s.admin.api.WxOrderRelationApiTest : The following profiles are active: apitest +2025-12-31 21:45:09.151 INFO 68358 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode! +2025-12-31 21:45:09.153 INFO 68358 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data Redis repositories in DEFAULT mode. +2025-12-31 21:45:09.200 INFO 68358 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 35 ms. Found 0 Redis repository interfaces. +2025-12-31 21:45:09.678 INFO 68358 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.security.access.expression.method.DefaultMethodSecurityExpressionHandler@433b546f' of type [org.springframework.security.access.expression.method.DefaultMethodSecurityExpressionHandler] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +2025-12-31 21:45:09.686 INFO 68358 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'methodSecurityMetadataSource' of type [org.springframework.security.access.method.DelegatingMethodSecurityMetadataSource] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +2025-12-31 21:45:10.001 INFO 68358 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 0 (http) +2025-12-31 21:45:10.005 INFO 68358 --- [ main] o.a.coyote.http11.Http11NioProtocol : Initializing ProtocolHandler ["http-nio-auto-1"] +2025-12-31 21:45:10.006 INFO 68358 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat] +2025-12-31 21:45:10.006 INFO 68358 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.52] +2025-12-31 21:45:10.051 INFO 68358 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/api] : Initializing Spring embedded WebApplicationContext +2025-12-31 21:45:10.052 INFO 68358 --- [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 1582 ms +2025-12-31 21:45:10.245 INFO 68358 --- [ main] c.g.y.a.MybatisPlusJoinAutoConfiguration : mybatis plus join properties config complete +2025-12-31 21:45:10.422 INFO 68358 --- [ main] com.alibaba.druid.pool.DruidDataSource : {dataSource-1} inited +2025-12-31 21:45:10.457 INFO 68358 --- [ main] c.g.y.a.MybatisPlusJoinAutoConfiguration : mybatis plus join SqlInjector init + _ _ |_ _ _|_. ___ _ | _ +| | |\/|_)(_| | |_\ |_)||_|_\ + / | + 3.5.3.2 +2025-12-31 21:45:10.890 INFO 68358 --- [ main] o.f.c.internal.license.VersionPrinter : Flyway Community Edition 7.15.0 by Redgate +2025-12-31 21:45:10.890 INFO 68358 --- [ main] o.f.c.i.database.base.BaseDatabaseType : Database: jdbc:mysql://localhost:33306/peipei_apitest (MySQL 8.0) +2025-12-31 21:45:10.989 INFO 68358 --- [ main] o.f.core.internal.command.DbMigrate : Current version of schema `peipei_apitest`: 18 +2025-12-31 21:45:10.990 INFO 68358 --- [ main] o.f.core.internal.command.DbMigrate : Schema `peipei_apitest` is up to date. No migration necessary. +2025-12-31 21:45:11.826 INFO 68358 --- [ main] .s.s.UserDetailsServiceAutoConfiguration : + +Using generated security password: ac5439ed-d71f-4bb1-b7b3-016124634a22 + +2025-12-31 21:45:12.958 INFO 68358 --- [ main] o.s.s.web.DefaultSecurityFilterChain : Will secure any request with [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@6846e4e8, org.springframework.security.web.context.SecurityContextPersistenceFilter@a9339e5, org.springframework.security.web.header.HeaderWriterFilter@7bbd133c, com.starry.admin.common.security.filter.ApiTestAuthenticationFilter@140cfc5f, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@6fa73db5, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@73e054c0, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@41861964, org.springframework.security.web.session.SessionManagementFilter@1fba15d7, org.springframework.security.web.access.ExceptionTranslationFilter@2e90a3de, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@224855fe] +2025-12-31 21:45:12.985 INFO 68358 --- [ main] pertySourcedRequestMappingHandlerMapping : Mapped URL path [/v2/api-docs] onto method [springfox.documentation.swagger2.web.Swagger2ControllerWebMvc#getDocumentation(String, HttpServletRequest)] + _ _ |_ _ _|_. ___ _ | _ . _ . _ +| | |\/|_)(_| | |_\ |_)||_|_\ | (_) | | | + / | / + 1.4.10 +2025-12-31 21:45:13.266 INFO 68358 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/api] : Initializing Spring TestDispatcherServlet '' +2025-12-31 21:45:13.266 INFO 68358 --- [ main] o.s.t.web.servlet.TestDispatcherServlet : Initializing Servlet '' +2025-12-31 21:45:13.267 INFO 68358 --- [ main] o.s.t.web.servlet.TestDispatcherServlet : Completed initialization in 1 ms +2025-12-31 21:45:13.382 INFO 68358 --- [ main] o.a.coyote.http11.Http11NioProtocol : Starting ProtocolHandler ["http-nio-auto-1"] +2025-12-31 21:45:13.395 INFO 68358 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 56286 (http) with context path '/api' +2025-12-31 21:45:13.395 INFO 68358 --- [ main] d.s.w.p.DocumentationPluginsBootstrapper : Documentation plugins bootstrapped +2025-12-31 21:45:13.397 INFO 68358 --- [ main] d.s.w.p.DocumentationPluginsBootstrapper : Found 1 custom documentation plugin(s) +2025-12-31 21:45:13.441 INFO 68358 --- [ main] s.d.s.w.s.ApiListingReferenceScanner : Scanning for api listing references +2025-12-31 21:45:13.529 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_1 +2025-12-31 21:45:13.532 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_1 +2025-12-31 21:45:13.533 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_2 +2025-12-31 21:45:13.535 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPUT_1 +2025-12-31 21:45:13.543 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_1 +2025-12-31 21:45:13.550 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_2 +2025-12-31 21:45:13.553 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_1 +2025-12-31 21:45:13.559 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_2 +2025-12-31 21:45:13.561 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_2 +2025-12-31 21:45:13.563 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_1 +2025-12-31 21:45:13.565 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingPOST_1 +2025-12-31 21:45:13.566 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_3 +2025-12-31 21:45:13.568 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_2 +2025-12-31 21:45:13.569 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_3 +2025-12-31 21:45:13.571 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_3 +2025-12-31 21:45:13.573 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_3 +2025-12-31 21:45:13.573 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listAllUsingGET_1 +2025-12-31 21:45:13.574 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_4 +2025-12-31 21:45:13.574 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_3 +2025-12-31 21:45:13.576 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_4 +2025-12-31 21:45:13.578 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_4 +2025-12-31 21:45:13.579 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_4 +2025-12-31 21:45:13.581 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_5 +2025-12-31 21:45:13.581 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_4 +2025-12-31 21:45:13.586 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingPOST_2 +2025-12-31 21:45:13.587 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_6 +2025-12-31 21:45:13.589 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_5 +2025-12-31 21:45:13.590 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_5 +2025-12-31 21:45:13.592 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_5 +2025-12-31 21:45:13.593 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_5 +2025-12-31 21:45:13.594 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_7 +2025-12-31 21:45:13.594 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_6 +2025-12-31 21:45:13.596 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_6 +2025-12-31 21:45:13.598 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_6 +2025-12-31 21:45:13.598 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listAllUsingGET_2 +2025-12-31 21:45:13.599 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_8 +2025-12-31 21:45:13.600 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_7 +2025-12-31 21:45:13.607 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listByPageUsingPOST_1 +2025-12-31 21:45:13.611 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_7 +2025-12-31 21:45:13.613 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_7 +2025-12-31 21:45:13.614 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_6 +2025-12-31 21:45:13.615 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_9 +2025-12-31 21:45:13.615 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_8 +2025-12-31 21:45:13.618 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_8 +2025-12-31 21:45:13.621 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_8 +2025-12-31 21:45:13.623 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingPOST_3 +2025-12-31 21:45:13.624 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_10 +2025-12-31 21:45:13.625 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_9 +2025-12-31 21:45:13.626 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_9 +2025-12-31 21:45:13.628 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listByPageUsingPOST_2 +2025-12-31 21:45:13.628 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_11 +2025-12-31 21:45:13.630 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_10 +2025-12-31 21:45:13.637 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_9 +2025-12-31 21:45:13.641 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_7 +2025-12-31 21:45:13.648 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listByPageUsingPOST_3 +2025-12-31 21:45:13.649 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listByPageUsingPOST_4 +2025-12-31 21:45:13.649 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_12 +2025-12-31 21:45:13.658 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_11 +2025-12-31 21:45:13.663 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listByPageUsingPOST_5 +2025-12-31 21:45:13.663 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_13 +2025-12-31 21:45:13.664 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_12 +2025-12-31 21:45:13.666 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_10 +2025-12-31 21:45:13.667 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_10 +2025-12-31 21:45:13.669 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_8 +2025-12-31 21:45:13.669 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_14 +2025-12-31 21:45:13.670 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_13 +2025-12-31 21:45:13.673 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingPOST_4 +2025-12-31 21:45:13.674 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingPOST_5 +2025-12-31 21:45:13.675 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_11 +2025-12-31 21:45:13.676 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_11 +2025-12-31 21:45:13.677 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_15 +2025-12-31 21:45:13.679 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_14 +2025-12-31 21:45:13.681 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_12 +2025-12-31 21:45:13.682 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_12 +2025-12-31 21:45:13.686 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listByPageUsingPOST_6 +2025-12-31 21:45:13.686 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_16 +2025-12-31 21:45:13.688 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_15 +2025-12-31 21:45:13.689 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_16 +2025-12-31 21:45:13.692 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_13 +2025-12-31 21:45:13.695 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_13 +2025-12-31 21:45:13.697 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingPOST_6 +2025-12-31 21:45:13.698 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_17 +2025-12-31 21:45:13.702 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_17 +2025-12-31 21:45:13.704 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_14 +2025-12-31 21:45:13.705 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_14 +2025-12-31 21:45:13.706 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_9 +2025-12-31 21:45:13.707 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_18 +2025-12-31 21:45:13.707 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_18 +2025-12-31 21:45:13.709 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_15 +2025-12-31 21:45:13.710 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_15 +2025-12-31 21:45:13.711 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_10 +2025-12-31 21:45:13.711 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_19 +2025-12-31 21:45:13.712 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_19 +2025-12-31 21:45:13.713 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_16 +2025-12-31 21:45:13.714 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_16 +2025-12-31 21:45:13.715 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_11 +2025-12-31 21:45:13.716 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_20 +2025-12-31 21:45:13.716 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_20 +2025-12-31 21:45:13.718 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_17 +2025-12-31 21:45:13.719 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_17 +2025-12-31 21:45:13.720 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingPOST_7 +2025-12-31 21:45:13.721 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_21 +2025-12-31 21:45:13.721 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_21 +2025-12-31 21:45:13.722 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_18 +2025-12-31 21:45:13.723 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_18 +2025-12-31 21:45:13.725 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_22 +2025-12-31 21:45:13.725 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_22 +2025-12-31 21:45:13.727 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingPOST_8 +2025-12-31 21:45:13.731 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_19 +2025-12-31 21:45:13.734 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_19 +2025-12-31 21:45:13.744 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingPOST_9 +2025-12-31 21:45:13.745 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_23 +2025-12-31 21:45:13.745 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_23 +2025-12-31 21:45:13.746 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateStateUsingPOST_1 +2025-12-31 21:45:13.748 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_20 +2025-12-31 21:45:13.750 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_20 +2025-12-31 21:45:13.751 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_12 +2025-12-31 21:45:13.752 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_24 +2025-12-31 21:45:13.752 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_24 +2025-12-31 21:45:13.754 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_21 +2025-12-31 21:45:13.755 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_21 +2025-12-31 21:45:13.758 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingPOST_10 +2025-12-31 21:45:13.758 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_25 +2025-12-31 21:45:13.759 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_25 +2025-12-31 21:45:13.762 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingPOST_11 +2025-12-31 21:45:13.765 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingPOST_12 +2025-12-31 21:45:13.766 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_26 +2025-12-31 21:45:13.766 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_26 +2025-12-31 21:45:13.769 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_22 +2025-12-31 21:45:13.771 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listByPageUsingPOST_7 +2025-12-31 21:45:13.776 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_27 +2025-12-31 21:45:13.783 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_27 +2025-12-31 21:45:13.785 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_22 +2025-12-31 21:45:13.787 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_23 +2025-12-31 21:45:13.789 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingPOST_13 +2025-12-31 21:45:13.789 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_28 +2025-12-31 21:45:13.790 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_28 +2025-12-31 21:45:13.794 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_24 +2025-12-31 21:45:13.795 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listByPageUsingPOST_8 +2025-12-31 21:45:13.795 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_29 +2025-12-31 21:45:13.797 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createBaseInfoUsingPOST_1 +2025-12-31 21:45:13.798 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listByPageUsingPOST_9 +2025-12-31 21:45:13.799 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_30 +2025-12-31 21:45:13.799 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateBaseInfoUsingPOST_1 +2025-12-31 21:45:13.804 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listAllUsingGET_3 +2025-12-31 21:45:13.806 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listByPageUsingPOST_10 +2025-12-31 21:45:13.807 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createBaseInfoUsingPOST_2 +2025-12-31 21:45:13.808 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listByPageUsingPOST_11 +2025-12-31 21:45:13.808 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_31 +2025-12-31 21:45:13.809 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateBaseInfoUsingPOST_2 +2025-12-31 21:45:13.810 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_23 +2025-12-31 21:45:13.812 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listByPageUsingPOST_12 +2025-12-31 21:45:13.812 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listByPageUsingPOST_13 +2025-12-31 21:45:13.813 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_32 +2025-12-31 21:45:13.814 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_24 +2025-12-31 21:45:13.815 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listByPageUsingPOST_14 +2025-12-31 21:45:13.816 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listByPageUsingPOST_15 +2025-12-31 21:45:13.816 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_33 +2025-12-31 21:45:13.817 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: uploadFileUsingPOST_1 +2025-12-31 21:45:13.821 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_25 +2025-12-31 21:45:13.823 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_26 +2025-12-31 21:45:13.824 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_29 +2025-12-31 21:45:13.826 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_27 +2025-12-31 21:45:13.828 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_13 +2025-12-31 21:45:13.830 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_30 +2025-12-31 21:45:13.831 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_25 +2025-12-31 21:45:13.832 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_28 +2025-12-31 21:45:13.833 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_14 +2025-12-31 21:45:13.834 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_34 +2025-12-31 21:45:13.835 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_31 +2025-12-31 21:45:13.836 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_26 +2025-12-31 21:45:13.838 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_29 +2025-12-31 21:45:13.839 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_15 +2025-12-31 21:45:13.839 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_35 +2025-12-31 21:45:13.840 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_32 +2025-12-31 21:45:13.842 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_30 +2025-12-31 21:45:13.843 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_16 +2025-12-31 21:45:13.844 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_36 +2025-12-31 21:45:13.847 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_27 +2025-12-31 21:45:13.848 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: deleteUsingPOST_1 +2025-12-31 21:45:13.850 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_31 +2025-12-31 21:45:13.854 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_17 +2025-12-31 21:45:13.856 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: treeselectUsingGET_1 +2025-12-31 21:45:13.857 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_33 +2025-12-31 21:45:13.859 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_28 +2025-12-31 21:45:13.861 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_32 +2025-12-31 21:45:13.863 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_18 +2025-12-31 21:45:13.863 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_37 +2025-12-31 21:45:13.863 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_34 +2025-12-31 21:45:13.864 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: exportUsingPOST_1 +2025-12-31 21:45:13.872 WARN 68358 --- [ main] s.d.s.w.r.p.ParameterDataTypeReader : Trying to infer dataType java.lang.String[] +2025-12-31 21:45:13.873 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_29 +2025-12-31 21:45:13.874 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: deleteUsingDELETE_1 +2025-12-31 21:45:13.875 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_33 +2025-12-31 21:45:13.876 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listAllUsingGET_4 +2025-12-31 21:45:13.876 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listPageUsingGET_1 +2025-12-31 21:45:13.876 WARN 68358 --- [ main] s.d.s.w.r.p.ParameterDataTypeReader : Trying to infer dataType java.lang.String[] +2025-12-31 21:45:13.878 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_35 +2025-12-31 21:45:13.882 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_30 +2025-12-31 21:45:13.885 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_34 +2025-12-31 21:45:13.902 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listByPageUsingPOST_16 +2025-12-31 21:45:13.903 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_38 +2025-12-31 21:45:13.905 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_36 +2025-12-31 21:45:13.907 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_31 +2025-12-31 21:45:13.908 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_35 +2025-12-31 21:45:13.909 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_19 +2025-12-31 21:45:13.910 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_39 +2025-12-31 21:45:13.910 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_37 +2025-12-31 21:45:13.910 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: exportUsingPOST_2 +2025-12-31 21:45:13.911 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_32 +2025-12-31 21:45:13.912 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_36 +2025-12-31 21:45:13.913 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingPOST_14 +2025-12-31 21:45:13.914 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_40 +2025-12-31 21:45:13.915 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_38 +2025-12-31 21:45:13.920 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: deleteUsingPOST_2 +2025-12-31 21:45:13.921 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_37 +2025-12-31 21:45:13.921 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_38 +2025-12-31 21:45:13.922 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listPageUsingGET_2 +2025-12-31 21:45:13.927 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_39 +2025-12-31 21:45:13.930 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_20 +2025-12-31 21:45:13.945 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listAllCommodityUsingGET_1 +2025-12-31 21:45:13.946 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: queryByIdUsingGET_1 +2025-12-31 21:45:13.954 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateAudioUsingPOST_1 +2025-12-31 21:45:13.954 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateAudioUsingPOST_2 +2025-12-31 21:45:13.963 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: deleteUsingDELETE_2 +2025-12-31 21:45:13.964 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: uploadUsingPOST_1 +2025-12-31 21:45:13.968 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: clerkQueryWagesDetailsUsingGET_1 +2025-12-31 21:45:13.977 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: cancellationOrderUsingPOST_1 +2025-12-31 21:45:13.982 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: queryByIdUsingGET_2 +2025-12-31 21:45:13.982 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: queryByIdUsingGET_3 +2025-12-31 21:45:13.984 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: queryOrderByPageUsingPOST_1 +2025-12-31 21:45:13.988 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: customListByAllUsingGET_1 +2025-12-31 21:45:13.989 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: queryByIdUsingGET_4 +2025-12-31 21:45:13.990 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: checkSubscribeUsingGET_1 +2025-12-31 21:45:14.002 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateReviewStateUsingPOST_1 +2025-12-31 21:45:14.005 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: testUsingGET_1 +2025-12-31 21:45:14.010 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: sendSmsUsingGET_1 +2025-12-31 21:45:14.014 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getProfileUsingGET_1 +2025-12-31 21:45:14.028 INFO 68358 --- [ main] c.s.admin.api.WxOrderRelationApiTest : Started WxOrderRelationApiTest in 5.701 seconds (JVM running for 6.393) +2025-12-31 21:45:14.092 INFO 68358 --- [ main] c.s.a.common.apitest.ApiTestDataSeeder : API test tenant package pkg-basic already exists +2025-12-31 21:45:14.107 INFO 68358 --- [ main] c.s.a.common.apitest.ApiTestDataSeeder : API test tenant tenant-apitest already exists +2025-12-31 21:45:14.131 INFO 68358 --- [ main] c.s.a.common.apitest.ApiTestDataSeeder : API test admin user user-apitest-admin already exists +2025-12-31 21:45:14.138 INFO 68358 --- [ main] c.s.a.common.apitest.ApiTestDataSeeder : API test personnel group group-basic already exists +2025-12-31 21:45:14.145 INFO 68358 --- [ main] c.s.a.common.apitest.ApiTestDataSeeder : API test clerk level lvl-basic already exists +2025-12-31 21:45:14.160 INFO 68358 --- [ main] c.s.a.common.apitest.ApiTestDataSeeder : API test commodity svc-basic already exists +2025-12-31 21:45:14.175 INFO 68358 --- [ main] c.s.a.common.apitest.ApiTestDataSeeder : API test commodity pricing for svc-basic already exists +2025-12-31 21:45:14.365 INFO 68358 --- [ main] c.s.a.common.apitest.ApiTestDataSeeder : API test clerk clerk-apitest already exists +2025-12-31 21:45:14.371 INFO 68358 --- [ main] c.s.a.common.apitest.ApiTestDataSeeder : API test clerk commodity clerk-svc-basic already exists +2025-12-31 21:45:14.375 INFO 68358 --- [ main] c.s.a.common.apitest.ApiTestDataSeeder : API test gift gift-basic already exists +2025-12-31 21:45:14.400 INFO 68358 --- [ main] c.s.a.common.apitest.ApiTestDataSeeder : API test customer customer-apitest already exists, state refreshed +2025-12-31 21:45:14.528 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/commodity from 127.0.0.1 [Unknown] +2025-12-31 21:45:14.578 WARN 68358 --- [ main] javax.persistence.spi : javax.persistence.spi::No valid providers found. +2025-12-31 21:45:14.619 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=SPECIFIED rewardFlag? false +2025-12-31 21:45:14.766 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/commodity - 200 OK (238ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:14.825 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/clerk/order/accept from 127.0.0.1 [Unknown] +2025-12-31 21:45:14.859 INFO 68358 --- [ main] c.s.a.m.o.s.i.PlayOrderInfoServiceImpl : Order accepted successfully. orderId=7v2owyn63, orderNo=20251231214514456, acceptBy=clerk-apitest, operatorByType=1 +2025-12-31 21:45:14.864 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/clerk/order/accept - 200 OK (39ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:14.868 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/clerk/order/start from 127.0.0.1 [Unknown] +2025-12-31 21:45:14.881 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/clerk/order/start - 200 OK (13ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:14.884 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/clerk/order/complete from 127.0.0.1 [Unknown] +2025-12-31 21:45:14.975 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/clerk/order/complete - 200 OK (91ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:15.002 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/blind-box/order/purchase from 127.0.0.1 [Unknown] +2025-12-31 21:45:15.018 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=REWARD rewardFlag? true +2025-12-31 21:45:15.077 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/blind-box/order/purchase - 200 OK (75ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:15.091 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/clerk/order/queryById from 127.0.0.1 [Unknown] +2025-12-31 21:45:15.107 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/clerk/order/queryById - 200 OK (16ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:15.146 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/commodity from 127.0.0.1 [Unknown] +2025-12-31 21:45:15.157 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=SPECIFIED rewardFlag? false +2025-12-31 21:45:15.186 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/commodity - 200 OK (40ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:15.209 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/blind-box/order/purchase from 127.0.0.1 [Unknown] +2025-12-31 21:45:15.220 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=REWARD rewardFlag? true +2025-12-31 21:45:15.261 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/blind-box/order/purchase - 200 OK (52ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:15.273 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/clerk/order/queryByPage from 127.0.0.1 [Unknown] +2025-12-31 21:45:15.297 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/clerk/order/queryByPage - 200 OK (24ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:15.327 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/commodity from 127.0.0.1 [Unknown] +2025-12-31 21:45:15.333 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=SPECIFIED rewardFlag? false +2025-12-31 21:45:15.355 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/commodity - 200 OK (28ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:15.361 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/clerk/order/accept from 127.0.0.1 [Unknown] +2025-12-31 21:45:15.371 INFO 68358 --- [ main] c.s.a.m.o.s.i.PlayOrderInfoServiceImpl : Order accepted successfully. orderId=4psjwac0o, orderNo=202512312145158456, acceptBy=clerk-apitest, operatorByType=1 +2025-12-31 21:45:15.376 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/clerk/order/accept - 200 OK (15ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:15.379 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/commodity from 127.0.0.1 [Unknown] +2025-12-31 21:45:15.384 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=SPECIFIED rewardFlag? false +2025-12-31 21:45:15.399 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/commodity - 200 OK (20ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:15.405 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/clerk/order/accept from 127.0.0.1 [Unknown] +2025-12-31 21:45:15.414 INFO 68358 --- [ main] c.s.a.m.o.s.i.PlayOrderInfoServiceImpl : Order accepted successfully. orderId=rrf2ce3iu, orderNo=202512312145152927, acceptBy=clerk-apitest, operatorByType=1 +2025-12-31 21:45:15.418 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/clerk/order/accept - 200 OK (13ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:15.421 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/clerk/order/queryByPage from 127.0.0.1 [Unknown] +2025-12-31 21:45:15.434 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/clerk/order/queryByPage - 200 OK (13ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:15.463 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/commodity from 127.0.0.1 [Unknown] +2025-12-31 21:45:15.470 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=SPECIFIED rewardFlag? false +2025-12-31 21:45:15.491 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/commodity - 200 OK (28ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:15.499 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/clerk/order/accept from 127.0.0.1 [Unknown] +2025-12-31 21:45:15.507 INFO 68358 --- [ main] c.s.a.m.o.s.i.PlayOrderInfoServiceImpl : Order accepted successfully. orderId=dnkmgdhav, orderNo=202512312145151069, acceptBy=clerk-apitest, operatorByType=1 +2025-12-31 21:45:15.511 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/clerk/order/accept - 200 OK (12ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:15.514 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/clerk/order/start from 127.0.0.1 [Unknown] +2025-12-31 21:45:15.521 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/clerk/order/start - 200 OK (7ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:15.523 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/clerk/order/complete from 127.0.0.1 [Unknown] +2025-12-31 21:45:15.559 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/clerk/order/complete - 200 OK (36ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:15.562 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/reward from 127.0.0.1 [Unknown] +2025-12-31 21:45:15.566 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=REWARD rewardFlag? true +2025-12-31 21:45:15.610 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/reward - 200 OK (48ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:15.616 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/clerk/order/queryById from 127.0.0.1 [Unknown] +2025-12-31 21:45:15.622 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/clerk/order/queryById - 200 OK (6ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:15.649 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/commodity from 127.0.0.1 [Unknown] +2025-12-31 21:45:15.654 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=SPECIFIED rewardFlag? false +2025-12-31 21:45:15.672 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/commodity - 200 OK (23ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:15.678 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/clerk/order/accept from 127.0.0.1 [Unknown] +2025-12-31 21:45:15.687 INFO 68358 --- [ main] c.s.a.m.o.s.i.PlayOrderInfoServiceImpl : Order accepted successfully. orderId=6hk99cize, orderNo=202512312145152515, acceptBy=clerk-apitest, operatorByType=1 +2025-12-31 21:45:15.690 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/clerk/order/accept - 200 OK (12ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:15.693 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/clerk/order/start from 127.0.0.1 [Unknown] +2025-12-31 21:45:15.702 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/clerk/order/start - 200 OK (9ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:15.704 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/clerk/order/complete from 127.0.0.1 [Unknown] +2025-12-31 21:45:15.749 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/clerk/order/complete - 200 OK (45ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:15.752 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/commodity from 127.0.0.1 [Unknown] +2025-12-31 21:45:15.756 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=SPECIFIED rewardFlag? false +2025-12-31 21:45:15.772 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/commodity - 200 OK (20ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:15.777 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/clerk/order/accept from 127.0.0.1 [Unknown] +2025-12-31 21:45:15.791 INFO 68358 --- [ main] c.s.a.m.o.s.i.PlayOrderInfoServiceImpl : Order accepted successfully. orderId=2oos5pwlo, orderNo=202512312145153407, acceptBy=clerk-apitest, operatorByType=1 +2025-12-31 21:45:15.795 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/clerk/order/accept - 200 OK (18ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:15.799 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/clerk/order/queryByPage from 127.0.0.1 [Unknown] +2025-12-31 21:45:15.808 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/clerk/order/queryByPage - 200 OK (8ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:15.842 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/commodity from 127.0.0.1 [Unknown] +2025-12-31 21:45:15.852 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=SPECIFIED rewardFlag? false +2025-12-31 21:45:15.874 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/commodity - 200 OK (32ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:15.880 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/commodity from 127.0.0.1 [Unknown] +2025-12-31 21:45:15.885 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=SPECIFIED rewardFlag? false +2025-12-31 21:45:15.900 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/commodity - 200 OK (19ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:15.905 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/clerk/order/accept from 127.0.0.1 [Unknown] +2025-12-31 21:45:15.915 INFO 68358 --- [ main] c.s.a.m.o.s.i.PlayOrderInfoServiceImpl : Order accepted successfully. orderId=sxthiu2ms, orderNo=202512312145155444, acceptBy=clerk-apitest, operatorByType=1 +2025-12-31 21:45:15.918 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/clerk/order/accept - 200 OK (13ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:15.922 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/clerk/order/queryByPage from 127.0.0.1 [Unknown] +2025-12-31 21:45:15.930 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/clerk/order/queryByPage - 200 OK (8ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:15.953 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/commodity from 127.0.0.1 [Unknown] +2025-12-31 21:45:15.957 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=SPECIFIED rewardFlag? false +2025-12-31 21:45:15.973 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/commodity - 200 OK (20ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:15.978 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/clerk/order/accept from 127.0.0.1 [Unknown] +2025-12-31 21:45:15.985 INFO 68358 --- [ main] c.s.a.m.o.s.i.PlayOrderInfoServiceImpl : Order accepted successfully. orderId=kjvkkamjl, orderNo=202512312145154095, acceptBy=clerk-apitest, operatorByType=1 +2025-12-31 21:45:15.988 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/clerk/order/accept - 200 OK (10ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:15.990 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/queryByPage from 127.0.0.1 [Unknown] +2025-12-31 21:45:16.024 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/queryByPage - 200 OK (34ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:16.057 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/commodity from 127.0.0.1 [Unknown] +2025-12-31 21:45:16.061 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=SPECIFIED rewardFlag? false +2025-12-31 21:45:16.077 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/commodity - 200 OK (20ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:16.083 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/clerk/order/accept from 127.0.0.1 [Unknown] +2025-12-31 21:45:16.091 INFO 68358 --- [ main] c.s.a.m.o.s.i.PlayOrderInfoServiceImpl : Order accepted successfully. orderId=ebmoibyvc, orderNo=202512312145168454, acceptBy=clerk-apitest, operatorByType=1 +2025-12-31 21:45:16.094 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/clerk/order/accept - 200 OK (11ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:16.097 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/queryByPage from 127.0.0.1 [Unknown] +2025-12-31 21:45:16.107 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/queryByPage - 200 OK (10ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:16.129 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/commodity from 127.0.0.1 [Unknown] +2025-12-31 21:45:16.134 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=SPECIFIED rewardFlag? false +2025-12-31 21:45:16.154 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/commodity - 200 OK (25ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:16.159 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/clerk/order/accept from 127.0.0.1 [Unknown] +2025-12-31 21:45:16.167 INFO 68358 --- [ main] c.s.a.m.o.s.i.PlayOrderInfoServiceImpl : Order accepted successfully. orderId=xsz37bddn, orderNo=20251231214516171, acceptBy=clerk-apitest, operatorByType=1 +2025-12-31 21:45:16.169 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/clerk/order/accept - 200 OK (10ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:16.172 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/clerk/order/queryByPage from 127.0.0.1 [Unknown] +2025-12-31 21:45:16.178 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/clerk/order/queryByPage - 200 OK (6ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:16.181 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/commodity from 127.0.0.1 [Unknown] +2025-12-31 21:45:16.185 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=SPECIFIED rewardFlag? false +2025-12-31 21:45:16.200 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/commodity - 200 OK (19ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:16.205 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/clerk/order/accept from 127.0.0.1 [Unknown] +2025-12-31 21:45:16.214 INFO 68358 --- [ main] c.s.a.m.o.s.i.PlayOrderInfoServiceImpl : Order accepted successfully. orderId=wlofvmuqn, orderNo=202512312145161803, acceptBy=clerk-apitest, operatorByType=1 +2025-12-31 21:45:16.217 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/clerk/order/accept - 200 OK (12ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:16.219 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/clerk/order/start from 127.0.0.1 [Unknown] +2025-12-31 21:45:16.226 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/clerk/order/start - 200 OK (7ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:16.228 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/clerk/order/complete from 127.0.0.1 [Unknown] +2025-12-31 21:45:16.251 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/clerk/order/complete - 200 OK (23ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:16.253 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/clerk/order/queryByPage from 127.0.0.1 [Unknown] +2025-12-31 21:45:16.260 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/clerk/order/queryByPage - 200 OK (7ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:16.289 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/blind-box/order/purchase from 127.0.0.1 [Unknown] +2025-12-31 21:45:16.293 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=REWARD rewardFlag? true +2025-12-31 21:45:16.324 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/blind-box/order/purchase - 200 OK (35ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:16.341 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/blind-box/order/purchase from 127.0.0.1 [Unknown] +2025-12-31 21:45:16.345 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=REWARD rewardFlag? true +2025-12-31 21:45:16.370 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/blind-box/order/purchase - 200 OK (30ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:16.376 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/clerk/order/queryByPage from 127.0.0.1 [Unknown] +2025-12-31 21:45:16.382 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/clerk/order/queryByPage - 200 OK (6ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:16.402 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/commodity from 127.0.0.1 [Unknown] +2025-12-31 21:45:16.406 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=SPECIFIED rewardFlag? false +2025-12-31 21:45:16.420 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/commodity - 200 OK (18ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:16.425 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/clerk/order/accept from 127.0.0.1 [Unknown] +2025-12-31 21:45:16.433 INFO 68358 --- [ main] c.s.a.m.o.s.i.PlayOrderInfoServiceImpl : Order accepted successfully. orderId=qkra6wdu1, orderNo=202512312145165584, acceptBy=clerk-apitest, operatorByType=1 +2025-12-31 21:45:16.435 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/clerk/order/accept - 200 OK (10ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:16.437 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/clerk/order/start from 127.0.0.1 [Unknown] +2025-12-31 21:45:16.443 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/clerk/order/start - 200 OK (6ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:16.446 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/clerk/order/complete from 127.0.0.1 [Unknown] +2025-12-31 21:45:16.478 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/clerk/order/complete - 200 OK (32ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:16.481 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/commodity from 127.0.0.1 [Unknown] +2025-12-31 21:45:16.485 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=SPECIFIED rewardFlag? false +2025-12-31 21:45:16.498 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/commodity - 200 OK (17ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:16.503 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/clerk/order/accept from 127.0.0.1 [Unknown] +2025-12-31 21:45:16.510 INFO 68358 --- [ main] c.s.a.m.o.s.i.PlayOrderInfoServiceImpl : Order accepted successfully. orderId=1kqesz7ll, orderNo=202512312145167132, acceptBy=clerk-apitest, operatorByType=1 +2025-12-31 21:45:16.512 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/clerk/order/accept - 200 OK (9ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:16.514 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/clerk/order/queryByPage from 127.0.0.1 [Unknown] +2025-12-31 21:45:16.520 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/clerk/order/queryByPage - 200 OK (6ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:16.522 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/commodity from 127.0.0.1 [Unknown] +2025-12-31 21:45:16.526 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=SPECIFIED rewardFlag? false +2025-12-31 21:45:16.539 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/commodity - 200 OK (17ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:16.543 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/clerk/order/accept from 127.0.0.1 [Unknown] +2025-12-31 21:45:16.550 INFO 68358 --- [ main] c.s.a.m.o.s.i.PlayOrderInfoServiceImpl : Order accepted successfully. orderId=enmqcybol, orderNo=20251231214516120, acceptBy=clerk-apitest, operatorByType=1 +2025-12-31 21:45:16.552 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/clerk/order/accept - 200 OK (9ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:16.554 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/clerk/order/start from 127.0.0.1 [Unknown] +2025-12-31 21:45:16.560 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/clerk/order/start - 200 OK (6ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:16.562 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/clerk/order/complete from 127.0.0.1 [Unknown] +2025-12-31 21:45:16.585 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/clerk/order/complete - 200 OK (23ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:16.587 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/clerk/order/queryByPage from 127.0.0.1 [Unknown] +2025-12-31 21:45:16.593 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/clerk/order/queryByPage - 200 OK (6ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:16.613 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/random from 127.0.0.1 [Unknown] +2025-12-31 21:45:16.617 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=RANDOM rewardFlag? false +2025-12-31 21:45:16.633 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/random - 200 OK (20ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:16.638 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/clerk/order/accept from 127.0.0.1 [Unknown] +2025-12-31 21:45:16.648 INFO 68358 --- [ main] c.s.a.m.o.s.i.PlayOrderInfoServiceImpl : Order accepted successfully. orderId=smaloakj8, orderNo=202512312145164626, acceptBy=clerk-apitest, operatorByType=1 +2025-12-31 21:45:16.650 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/clerk/order/accept - 200 OK (12ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:16.652 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/clerk/order/queryByPage from 127.0.0.1 [Unknown] +2025-12-31 21:45:16.658 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/clerk/order/queryByPage - 200 OK (6ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:16.674 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/commodity from 127.0.0.1 [Unknown] +2025-12-31 21:45:16.677 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=SPECIFIED rewardFlag? false +2025-12-31 21:45:16.690 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/commodity - 200 OK (16ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:16.695 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/clerk/order/accept from 127.0.0.1 [Unknown] +2025-12-31 21:45:16.702 INFO 68358 --- [ main] c.s.a.m.o.s.i.PlayOrderInfoServiceImpl : Order accepted successfully. orderId=d9syvaye8, orderNo=202512312145166315, acceptBy=clerk-apitest, operatorByType=1 +2025-12-31 21:45:16.704 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/clerk/order/accept - 200 OK (9ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:16.706 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/custom/order/queryById from 127.0.0.1 [Unknown] +2025-12-31 21:45:16.716 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/custom/order/queryById - 200 OK (10ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:16.737 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/commodity from 127.0.0.1 [Unknown] +2025-12-31 21:45:16.740 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=SPECIFIED rewardFlag? false +2025-12-31 21:45:16.755 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/commodity - 200 OK (18ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:16.759 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/clerk/order/queryByPage from 127.0.0.1 [Unknown] +2025-12-31 21:45:16.765 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/clerk/order/queryByPage - 200 OK (6ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:16.784 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/random from 127.0.0.1 [Unknown] +2025-12-31 21:45:16.787 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=RANDOM rewardFlag? false +2025-12-31 21:45:16.799 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/random - 200 OK (15ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:16.803 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/clerk/order/accept from 127.0.0.1 [Unknown] +2025-12-31 21:45:16.810 INFO 68358 --- [ main] c.s.a.m.o.s.i.PlayOrderInfoServiceImpl : Order accepted successfully. orderId=6ztbb6jwk, orderNo=202512312145161060, acceptBy=clerk-apitest, operatorByType=1 +2025-12-31 21:45:16.815 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/clerk/order/accept - 200 OK (11ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:16.817 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/random from 127.0.0.1 [Unknown] +2025-12-31 21:45:16.819 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=RANDOM rewardFlag? false +2025-12-31 21:45:16.830 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/random - 200 OK (13ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:16.834 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/clerk/order/accept from 127.0.0.1 [Unknown] +2025-12-31 21:45:16.839 INFO 68358 --- [ main] c.s.a.m.o.s.i.PlayOrderInfoServiceImpl : Order accepted successfully. orderId=mj7aowhb6, orderNo=202512312145163460, acceptBy=clerk-apitest, operatorByType=1 +2025-12-31 21:45:16.842 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/clerk/order/accept - 200 OK (8ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:16.844 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/clerk/order/queryByPage from 127.0.0.1 [Unknown] +2025-12-31 21:45:16.849 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/clerk/order/queryByPage - 200 OK (5ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:16.865 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/commodity from 127.0.0.1 [Unknown] +2025-12-31 21:45:16.871 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=SPECIFIED rewardFlag? false +2025-12-31 21:45:16.884 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/commodity - 200 OK (19ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:16.888 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/clerk/order/accept from 127.0.0.1 [Unknown] +2025-12-31 21:45:16.896 INFO 68358 --- [ main] c.s.a.m.o.s.i.PlayOrderInfoServiceImpl : Order accepted successfully. orderId=zdyvexe0v, orderNo=202512312145163730, acceptBy=clerk-apitest, operatorByType=1 +2025-12-31 21:45:16.899 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/clerk/order/accept - 200 OK (11ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:16.901 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/clerk/order/start from 127.0.0.1 [Unknown] +2025-12-31 21:45:16.907 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/clerk/order/start - 200 OK (6ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:16.911 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/commodity from 127.0.0.1 [Unknown] +2025-12-31 21:45:16.917 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=SPECIFIED rewardFlag? false +2025-12-31 21:45:16.933 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/commodity - 200 OK (22ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:16.937 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/clerk/order/accept from 127.0.0.1 [Unknown] +2025-12-31 21:45:16.943 INFO 68358 --- [ main] c.s.a.m.o.s.i.PlayOrderInfoServiceImpl : Order accepted successfully. orderId=mx8bgneky, orderNo=202512312145168660, acceptBy=clerk-apitest, operatorByType=1 +2025-12-31 21:45:16.945 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/clerk/order/accept - 200 OK (8ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:16.948 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/clerk/order/queryByPage from 127.0.0.1 [Unknown] +2025-12-31 21:45:16.956 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/clerk/order/queryByPage - 200 OK (8ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:16.976 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/random from 127.0.0.1 [Unknown] +2025-12-31 21:45:16.979 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=RANDOM rewardFlag? false +2025-12-31 21:45:16.992 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/random - 200 OK (16ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:16.996 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/clerk/order/accept from 127.0.0.1 [Unknown] +2025-12-31 21:45:17.003 INFO 68358 --- [ main] c.s.a.m.o.s.i.PlayOrderInfoServiceImpl : Order accepted successfully. orderId=icj0mw0ht, orderNo=202512312145167944, acceptBy=clerk-apitest, operatorByType=1 +2025-12-31 21:45:17.006 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/clerk/order/accept - 200 OK (10ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:17.008 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/order/clerk/selectRandomOrderById from 127.0.0.1 [Unknown] +2025-12-31 21:45:17.019 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/order/clerk/selectRandomOrderById - 200 OK (11ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:17.046 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/gift from 127.0.0.1 [Unknown] +2025-12-31 21:45:17.053 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=REWARD rewardFlag? true +2025-12-31 21:45:17.090 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/gift - 200 OK (44ms) businessCode=200 success=true message=成功 +2025-12-31 21:45:17.093 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/gift from 127.0.0.1 [Unknown] +2025-12-31 21:45:17.097 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=REWARD rewardFlag? true +2025-12-31 21:45:17.127 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/gift - 200 OK (34ms) businessCode=200 success=true message=成功 +2025-12-31 21:45:17.129 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/clerk/order/queryByPage from 127.0.0.1 [Unknown] +2025-12-31 21:45:17.136 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/clerk/order/queryByPage - 200 OK (7ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:17.163 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/commodity from 127.0.0.1 [Unknown] +2025-12-31 21:45:17.166 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=SPECIFIED rewardFlag? false +2025-12-31 21:45:17.185 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/commodity - 200 OK (22ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:17.190 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/clerk/order/accept from 127.0.0.1 [Unknown] +2025-12-31 21:45:17.198 INFO 68358 --- [ main] c.s.a.m.o.s.i.PlayOrderInfoServiceImpl : Order accepted successfully. orderId=q70o1l1wz, orderNo=202512312145173227, acceptBy=clerk-apitest-extra-gt3bgf, operatorByType=1 +2025-12-31 21:45:17.201 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/clerk/order/accept - 200 OK (11ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:17.203 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/clerk/order/queryByPage from 127.0.0.1 [Unknown] +2025-12-31 21:45:17.209 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/clerk/order/queryByPage - 200 OK (6ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:17.230 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/commodity from 127.0.0.1 [Unknown] +2025-12-31 21:45:17.233 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=SPECIFIED rewardFlag? false +2025-12-31 21:45:17.244 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/commodity - 200 OK (14ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:17.248 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/clerk/order/accept from 127.0.0.1 [Unknown] +2025-12-31 21:45:17.254 INFO 68358 --- [ main] c.s.a.m.o.s.i.PlayOrderInfoServiceImpl : Order accepted successfully. orderId=muiv1dejx, orderNo=202512312145171995, acceptBy=clerk-apitest, operatorByType=1 +2025-12-31 21:45:17.257 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/clerk/order/accept - 200 OK (9ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:17.259 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/clerk/order/start from 127.0.0.1 [Unknown] +2025-12-31 21:45:17.264 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/clerk/order/start - 200 OK (5ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:17.266 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/clerk/order/complete from 127.0.0.1 [Unknown] +2025-12-31 21:45:17.285 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/clerk/order/complete - 200 OK (19ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:17.287 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/commodity from 127.0.0.1 [Unknown] +2025-12-31 21:45:17.290 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=SPECIFIED rewardFlag? false +2025-12-31 21:45:17.305 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/commodity - 200 OK (18ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:17.309 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/clerk/order/accept from 127.0.0.1 [Unknown] +2025-12-31 21:45:17.316 INFO 68358 --- [ main] c.s.a.m.o.s.i.PlayOrderInfoServiceImpl : Order accepted successfully. orderId=pglo6ofxw, orderNo=202512312145172557, acceptBy=clerk-apitest, operatorByType=1 +2025-12-31 21:45:17.318 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/clerk/order/accept - 200 OK (9ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:17.320 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/queryByPage from 127.0.0.1 [Unknown] +2025-12-31 21:45:17.327 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/queryByPage - 200 OK (7ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:17.342 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/commodity from 127.0.0.1 [Unknown] +2025-12-31 21:45:17.345 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=SPECIFIED rewardFlag? false +2025-12-31 21:45:17.357 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/commodity - 200 OK (15ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:17.361 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/reward from 127.0.0.1 [Unknown] +2025-12-31 21:45:17.362 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=REWARD rewardFlag? true +2025-12-31 21:45:17.382 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/reward - 200 OK (21ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:17.386 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/clerk/order/queryByPage from 127.0.0.1 [Unknown] +2025-12-31 21:45:17.393 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/clerk/order/queryByPage - 200 OK (7ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:17.410 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/commodity from 127.0.0.1 [Unknown] +2025-12-31 21:45:17.414 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=SPECIFIED rewardFlag? false +2025-12-31 21:45:17.426 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/commodity - 200 OK (16ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:17.430 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/clerk/order/accept from 127.0.0.1 [Unknown] +2025-12-31 21:45:17.437 INFO 68358 --- [ main] c.s.a.m.o.s.i.PlayOrderInfoServiceImpl : Order accepted successfully. orderId=bdpyulmnj, orderNo=202512312145172202, acceptBy=clerk-apitest, operatorByType=1 +2025-12-31 21:45:17.439 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/clerk/order/accept - 200 OK (9ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:17.441 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/clerk/order/queryById from 127.0.0.1 [Unknown] +2025-12-31 21:45:17.445 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/clerk/order/queryById - 200 OK (4ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:17.461 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/commodity from 127.0.0.1 [Unknown] +2025-12-31 21:45:17.464 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=SPECIFIED rewardFlag? false +2025-12-31 21:45:17.479 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/commodity - 200 OK (18ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:17.483 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/clerk/order/accept from 127.0.0.1 [Unknown] +2025-12-31 21:45:17.490 INFO 68358 --- [ main] c.s.a.m.o.s.i.PlayOrderInfoServiceImpl : Order accepted successfully. orderId=edtdcoszx, orderNo=202512312145174378, acceptBy=clerk-apitest, operatorByType=1 +2025-12-31 21:45:17.492 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/clerk/order/accept - 200 OK (9ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:17.494 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/clerk/order/start from 127.0.0.1 [Unknown] +2025-12-31 21:45:17.500 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/clerk/order/start - 200 OK (6ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:17.501 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/clerk/order/complete from 127.0.0.1 [Unknown] +2025-12-31 21:45:17.522 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/clerk/order/complete - 200 OK (21ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:17.531 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/commodity from 127.0.0.1 [Unknown] +2025-12-31 21:45:17.535 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=SPECIFIED rewardFlag? false +2025-12-31 21:45:17.550 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/commodity - 200 OK (19ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:17.554 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/clerk/order/accept from 127.0.0.1 [Unknown] +2025-12-31 21:45:17.560 INFO 68358 --- [ main] c.s.a.m.o.s.i.PlayOrderInfoServiceImpl : Order accepted successfully. orderId=x6qjxrzfn, orderNo=202512312145173265, acceptBy=clerk-apitest-other-se1skj, operatorByType=1 +2025-12-31 21:45:17.562 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/clerk/order/accept - 200 OK (8ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:17.564 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/clerk/order/queryByPage from 127.0.0.1 [Unknown] +2025-12-31 21:45:17.569 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/clerk/order/queryByPage - 200 OK (5ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:17.597 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/commodity from 127.0.0.1 [Unknown] +2025-12-31 21:45:17.601 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=SPECIFIED rewardFlag? false +2025-12-31 21:45:17.618 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/commodity - 200 OK (21ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:17.625 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/clerk/order/accept from 127.0.0.1 [Unknown] +2025-12-31 21:45:17.632 INFO 68358 --- [ main] c.s.a.m.o.s.i.PlayOrderInfoServiceImpl : Order accepted successfully. orderId=cymvgon7k, orderNo=202512312145174449, acceptBy=clerk-apitest, operatorByType=1 +2025-12-31 21:45:17.634 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/clerk/order/accept - 200 OK (9ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:17.636 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/clerk/order/queryByPage from 127.0.0.1 [Unknown] +2025-12-31 21:45:17.642 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/clerk/order/queryByPage - 200 OK (6ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:17.663 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/commodity from 127.0.0.1 [Unknown] +2025-12-31 21:45:17.666 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=SPECIFIED rewardFlag? false +2025-12-31 21:45:17.680 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/commodity - 200 OK (17ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:17.684 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/clerk/order/accept from 127.0.0.1 [Unknown] +2025-12-31 21:45:17.689 INFO 68358 --- [ main] c.s.a.m.o.s.i.PlayOrderInfoServiceImpl : Order accepted successfully. orderId=jfaontesb, orderNo=202512312145176364, acceptBy=clerk-apitest, operatorByType=1 +2025-12-31 21:45:17.692 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/clerk/order/accept - 200 OK (8ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:17.694 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/clerk/order/start from 127.0.0.1 [Unknown] +2025-12-31 21:45:17.699 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/clerk/order/start - 200 OK (5ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:17.700 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/clerk/order/complete from 127.0.0.1 [Unknown] +2025-12-31 21:45:17.719 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/clerk/order/complete - 200 OK (19ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:17.720 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/commodity from 127.0.0.1 [Unknown] +2025-12-31 21:45:17.723 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=SPECIFIED rewardFlag? false +2025-12-31 21:45:17.734 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/commodity - 200 OK (14ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:17.738 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/clerk/order/accept from 127.0.0.1 [Unknown] +2025-12-31 21:45:17.745 INFO 68358 --- [ main] c.s.a.m.o.s.i.PlayOrderInfoServiceImpl : Order accepted successfully. orderId=v5bzofyj1, orderNo=202512312145172271, acceptBy=clerk-apitest, operatorByType=1 +2025-12-31 21:45:17.748 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/clerk/order/accept - 200 OK (10ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:17.749 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/queryByPage from 127.0.0.1 [Unknown] +2025-12-31 21:45:17.758 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/queryByPage - 200 OK (9ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:17.775 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/gift from 127.0.0.1 [Unknown] +2025-12-31 21:45:17.777 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=REWARD rewardFlag? true +2025-12-31 21:45:17.800 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/gift - 200 OK (25ms) businessCode=200 success=true message=成功 +2025-12-31 21:45:17.802 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/clerk/order/queryByPage from 127.0.0.1 [Unknown] +2025-12-31 21:45:17.806 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/clerk/order/queryByPage - 200 OK (4ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:17.831 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/commodity from 127.0.0.1 [Unknown] +2025-12-31 21:45:17.835 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=SPECIFIED rewardFlag? false +2025-12-31 21:45:17.846 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/commodity - 200 OK (15ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:17.850 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/clerk/order/accept from 127.0.0.1 [Unknown] +2025-12-31 21:45:17.855 INFO 68358 --- [ main] c.s.a.m.o.s.i.PlayOrderInfoServiceImpl : Order accepted successfully. orderId=t4qwfs66g, orderNo=202512312145174951, acceptBy=clerk-apitest, operatorByType=1 +2025-12-31 21:45:17.857 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/clerk/order/accept - 200 OK (7ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:17.859 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/clerk/order/queryById from 127.0.0.1 [Unknown] +2025-12-31 21:45:17.862 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/clerk/order/queryById - 200 OK (3ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:17.878 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/commodity from 127.0.0.1 [Unknown] +2025-12-31 21:45:17.881 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=SPECIFIED rewardFlag? false +2025-12-31 21:45:17.895 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/commodity - 200 OK (17ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:17.899 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/gift from 127.0.0.1 [Unknown] +2025-12-31 21:45:17.902 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=REWARD rewardFlag? true +2025-12-31 21:45:17.923 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/gift - 200 OK (24ms) businessCode=200 success=true message=成功 +2025-12-31 21:45:17.925 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/clerk/order/queryByPage from 127.0.0.1 [Unknown] +2025-12-31 21:45:17.930 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/clerk/order/queryByPage - 200 OK (5ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:17.947 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/reward from 127.0.0.1 [Unknown] +2025-12-31 21:45:17.948 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=REWARD rewardFlag? true +2025-12-31 21:45:17.972 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/reward - 200 OK (25ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:17.989 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/reward from 127.0.0.1 [Unknown] +2025-12-31 21:45:17.991 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=REWARD rewardFlag? true +2025-12-31 21:45:18.015 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/reward - 200 OK (26ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:18.019 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/clerk/order/queryByPage from 127.0.0.1 [Unknown] +2025-12-31 21:45:18.024 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/clerk/order/queryByPage - 200 OK (5ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:18.047 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/commodity from 127.0.0.1 [Unknown] +2025-12-31 21:45:18.050 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=SPECIFIED rewardFlag? false +2025-12-31 21:45:18.065 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/commodity - 200 OK (18ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:18.069 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/clerk/order/accept from 127.0.0.1 [Unknown] +2025-12-31 21:45:18.075 INFO 68358 --- [ main] c.s.a.m.o.s.i.PlayOrderInfoServiceImpl : Order accepted successfully. orderId=wgp1lgojl, orderNo=202512312145188774, acceptBy=clerk-apitest, operatorByType=1 +2025-12-31 21:45:18.077 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/clerk/order/accept - 200 OK (8ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:18.079 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/clerk/order/start from 127.0.0.1 [Unknown] +2025-12-31 21:45:18.084 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/clerk/order/start - 200 OK (5ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:18.086 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/clerk/order/complete from 127.0.0.1 [Unknown] +2025-12-31 21:45:18.106 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/clerk/order/complete - 200 OK (20ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:18.108 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/gift from 127.0.0.1 [Unknown] +2025-12-31 21:45:18.111 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=REWARD rewardFlag? true +2025-12-31 21:45:18.133 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/gift - 200 OK (25ms) businessCode=200 success=true message=成功 +2025-12-31 21:45:18.136 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/clerk/order/queryById from 127.0.0.1 [Unknown] +2025-12-31 21:45:18.140 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/clerk/order/queryById - 200 OK (4ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:18.159 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/commodity from 127.0.0.1 [Unknown] +2025-12-31 21:45:18.162 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=SPECIFIED rewardFlag? false +2025-12-31 21:45:18.176 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/commodity - 200 OK (17ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:18.180 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/clerk/order/accept from 127.0.0.1 [Unknown] +2025-12-31 21:45:18.186 INFO 68358 --- [ main] c.s.a.m.o.s.i.PlayOrderInfoServiceImpl : Order accepted successfully. orderId=ss8lyis6q, orderNo=202512312145181894, acceptBy=clerk-apitest, operatorByType=1 +2025-12-31 21:45:18.189 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/clerk/order/accept - 200 OK (9ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:18.191 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/clerk/order/start from 127.0.0.1 [Unknown] +2025-12-31 21:45:18.196 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/clerk/order/start - 200 OK (5ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:18.198 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/clerk/order/complete from 127.0.0.1 [Unknown] +2025-12-31 21:45:18.219 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/clerk/order/complete - 200 OK (21ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:18.221 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/random from 127.0.0.1 [Unknown] +2025-12-31 21:45:18.223 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=RANDOM rewardFlag? false +2025-12-31 21:45:18.235 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/random - 200 OK (14ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:18.239 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/clerk/order/accept from 127.0.0.1 [Unknown] +2025-12-31 21:45:18.246 INFO 68358 --- [ main] c.s.a.m.o.s.i.PlayOrderInfoServiceImpl : Order accepted successfully. orderId=nqygwj7zv, orderNo=202512312145187242, acceptBy=clerk-apitest, operatorByType=1 +2025-12-31 21:45:18.248 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/clerk/order/accept - 200 OK (9ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:18.250 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/clerk/order/queryByPage from 127.0.0.1 [Unknown] +2025-12-31 21:45:18.255 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/clerk/order/queryByPage - 200 OK (5ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:18.271 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/reward from 127.0.0.1 [Unknown] +2025-12-31 21:45:18.273 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=REWARD rewardFlag? true +2025-12-31 21:45:18.300 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/reward - 200 OK (29ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:18.305 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/clerk/order/queryByPage from 127.0.0.1 [Unknown] +2025-12-31 21:45:18.310 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/clerk/order/queryByPage - 200 OK (5ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:18.331 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/random from 127.0.0.1 [Unknown] +2025-12-31 21:45:18.334 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=RANDOM rewardFlag? false +2025-12-31 21:45:18.350 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/random - 200 OK (19ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:18.354 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/clerk/order/accept from 127.0.0.1 [Unknown] +2025-12-31 21:45:18.360 INFO 68358 --- [ main] c.s.a.m.o.s.i.PlayOrderInfoServiceImpl : Order accepted successfully. orderId=zpgasemle, orderNo=202512312145186625, acceptBy=clerk-apitest, operatorByType=1 +2025-12-31 21:45:18.363 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/clerk/order/accept - 200 OK (9ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:18.364 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/clerk/order/start from 127.0.0.1 [Unknown] +2025-12-31 21:45:18.369 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/clerk/order/start - 200 OK (5ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:18.371 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/clerk/order/complete from 127.0.0.1 [Unknown] +2025-12-31 21:45:18.391 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/clerk/order/complete - 200 OK (20ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:18.393 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/random from 127.0.0.1 [Unknown] +2025-12-31 21:45:18.395 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=RANDOM rewardFlag? false +2025-12-31 21:45:18.405 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/random - 200 OK (12ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:18.410 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/clerk/order/accept from 127.0.0.1 [Unknown] +2025-12-31 21:45:18.416 INFO 68358 --- [ main] c.s.a.m.o.s.i.PlayOrderInfoServiceImpl : Order accepted successfully. orderId=dzvj0y5hl, orderNo=20251231214518294, acceptBy=clerk-apitest, operatorByType=1 +2025-12-31 21:45:18.418 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/clerk/order/accept - 200 OK (8ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:18.420 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/clerk/order/queryByPage from 127.0.0.1 [Unknown] +2025-12-31 21:45:18.425 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/clerk/order/queryByPage - 200 OK (5ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:18.447 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/commodity from 127.0.0.1 [Unknown] +2025-12-31 21:45:18.450 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=SPECIFIED rewardFlag? false +2025-12-31 21:45:18.465 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/commodity - 200 OK (18ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:18.469 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/clerk/order/accept from 127.0.0.1 [Unknown] +2025-12-31 21:45:18.475 INFO 68358 --- [ main] c.s.a.m.o.s.i.PlayOrderInfoServiceImpl : Order accepted successfully. orderId=cedwlfb0d, orderNo=202512312145183412, acceptBy=clerk-apitest, operatorByType=1 +2025-12-31 21:45:18.478 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/clerk/order/accept - 200 OK (9ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:18.480 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/clerk/order/start from 127.0.0.1 [Unknown] +2025-12-31 21:45:18.485 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/clerk/order/start - 200 OK (5ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:18.487 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/clerk/order/complete from 127.0.0.1 [Unknown] +2025-12-31 21:45:18.507 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/clerk/order/complete - 200 OK (20ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:18.509 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/random from 127.0.0.1 [Unknown] +2025-12-31 21:45:18.511 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=RANDOM rewardFlag? false +2025-12-31 21:45:18.522 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/random - 200 OK (13ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:18.526 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/clerk/order/accept from 127.0.0.1 [Unknown] +2025-12-31 21:45:18.532 INFO 68358 --- [ main] c.s.a.m.o.s.i.PlayOrderInfoServiceImpl : Order accepted successfully. orderId=ahf7omd6t, orderNo=202512312145188646, acceptBy=clerk-apitest, operatorByType=1 +2025-12-31 21:45:18.534 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/clerk/order/accept - 200 OK (8ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:18.536 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/order/clerk/selectRandomOrderById from 127.0.0.1 [Unknown] +2025-12-31 21:45:18.539 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/order/clerk/selectRandomOrderById - 200 OK (3ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:18.557 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/commodity from 127.0.0.1 [Unknown] +2025-12-31 21:45:18.560 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=SPECIFIED rewardFlag? false +2025-12-31 21:45:18.575 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/commodity - 200 OK (18ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:18.579 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/clerk/order/accept from 127.0.0.1 [Unknown] +2025-12-31 21:45:18.585 INFO 68358 --- [ main] c.s.a.m.o.s.i.PlayOrderInfoServiceImpl : Order accepted successfully. orderId=r5pjrdt2k, orderNo=202512312145184129, acceptBy=clerk-apitest, operatorByType=1 +2025-12-31 21:45:18.589 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/clerk/order/accept - 200 OK (10ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:18.591 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/custom/order/queryById from 127.0.0.1 [Unknown] +2025-12-31 21:45:18.596 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/custom/order/queryById - 200 OK (5ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:18.612 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/random from 127.0.0.1 [Unknown] +2025-12-31 21:45:18.614 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=RANDOM rewardFlag? false +2025-12-31 21:45:18.624 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/random - 200 OK (12ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:18.628 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/clerk/order/accept from 127.0.0.1 [Unknown] +2025-12-31 21:45:18.634 INFO 68358 --- [ main] c.s.a.m.o.s.i.PlayOrderInfoServiceImpl : Order accepted successfully. orderId=mgtb2h4du, orderNo=202512312145183417, acceptBy=clerk-apitest, operatorByType=1 +2025-12-31 21:45:18.636 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/clerk/order/accept - 200 OK (8ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:18.637 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/custom/order/queryById from 127.0.0.1 [Unknown] +2025-12-31 21:45:18.642 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/custom/order/queryById - 200 OK (5ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:18.666 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/blind-box/order/purchase from 127.0.0.1 [Unknown] +2025-12-31 21:45:18.671 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=REWARD rewardFlag? true +2025-12-31 21:45:18.699 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/blind-box/order/purchase - 200 OK (33ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:18.706 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/clerk/order/queryByPage from 127.0.0.1 [Unknown] +2025-12-31 21:45:18.711 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/clerk/order/queryByPage - 200 OK (5ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:18.728 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/commodity from 127.0.0.1 [Unknown] +2025-12-31 21:45:18.732 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=SPECIFIED rewardFlag? false +2025-12-31 21:45:18.745 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/commodity - 200 OK (17ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:18.749 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/clerk/order/accept from 127.0.0.1 [Unknown] +2025-12-31 21:45:18.755 INFO 68358 --- [ main] c.s.a.m.o.s.i.PlayOrderInfoServiceImpl : Order accepted successfully. orderId=zzmcakaug, orderNo=202512312145183740, acceptBy=clerk-apitest, operatorByType=1 +2025-12-31 21:45:18.757 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/clerk/order/accept - 200 OK (8ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:18.759 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/clerk/order/start from 127.0.0.1 [Unknown] +2025-12-31 21:45:18.766 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/clerk/order/start - 200 OK (7ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:18.768 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/clerk/order/complete from 127.0.0.1 [Unknown] +2025-12-31 21:45:18.790 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/clerk/order/complete - 200 OK (22ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:18.798 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/commodity from 127.0.0.1 [Unknown] +2025-12-31 21:45:18.800 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=SPECIFIED rewardFlag? false +2025-12-31 21:45:18.812 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/commodity - 200 OK (14ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:18.816 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/clerk/order/accept from 127.0.0.1 [Unknown] +2025-12-31 21:45:18.822 INFO 68358 --- [ main] c.s.a.m.o.s.i.PlayOrderInfoServiceImpl : Order accepted successfully. orderId=j1obi5alt, orderNo=202512312145186424, acceptBy=clerk-apitest, operatorByType=1 +2025-12-31 21:45:18.825 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/clerk/order/accept - 200 OK (9ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:18.827 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/clerk/order/queryByPage from 127.0.0.1 [Unknown] +2025-12-31 21:45:18.832 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/clerk/order/queryByPage - 200 OK (5ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:18.852 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/random from 127.0.0.1 [Unknown] +2025-12-31 21:45:18.854 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=RANDOM rewardFlag? false +2025-12-31 21:45:18.864 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/random - 200 OK (12ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:18.868 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/clerk/order/accept from 127.0.0.1 [Unknown] +2025-12-31 21:45:18.874 INFO 68358 --- [ main] c.s.a.m.o.s.i.PlayOrderInfoServiceImpl : Order accepted successfully. orderId=h4lxlliip, orderNo=2025123121451870, acceptBy=clerk-apitest, operatorByType=1 +2025-12-31 21:45:18.876 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/clerk/order/accept - 200 OK (8ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:18.877 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/order/clerk/selectRandomOrderById from 127.0.0.1 [Unknown] +2025-12-31 21:45:18.880 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/order/clerk/selectRandomOrderById - 200 OK (3ms) businessCode=200 success=true message=操作成功 +[INFO] Tests run: 39, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 10.81 s - in com.starry.admin.api.WxOrderRelationApiTest +[INFO] Running com.starry.admin.api.WxCustomSpecifiedOrderApiTest +2025-12-31 21:45:18.885 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Neither @ContextConfiguration nor @ContextHierarchy found for test class [com.starry.admin.api.WxCustomSpecifiedOrderApiTest], using SpringBootContextLoader +2025-12-31 21:45:18.885 INFO 68358 --- [ main] o.s.t.c.support.AbstractContextLoader : Could not detect default resource locations for test class [com.starry.admin.api.WxCustomSpecifiedOrderApiTest]: no resource found for suffixes {-context.xml, Context.groovy}. +2025-12-31 21:45:18.885 INFO 68358 --- [ main] t.c.s.AnnotationConfigContextLoaderUtils : Could not detect default configuration classes for test class [com.starry.admin.api.WxCustomSpecifiedOrderApiTest]: WxCustomSpecifiedOrderApiTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration. +2025-12-31 21:45:18.886 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Found @SpringBootConfiguration com.starry.admin.Application for test class com.starry.admin.api.WxCustomSpecifiedOrderApiTest +2025-12-31 21:45:18.887 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Loaded default TestExecutionListener class names from location [META-INF/spring.factories]: [org.springframework.test.context.web.ServletTestExecutionListener, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener, org.springframework.test.context.event.ApplicationEventsTestExecutionListener, org.springframework.test.context.support.DependencyInjectionTestExecutionListener, org.springframework.test.context.support.DirtiesContextTestExecutionListener, org.springframework.test.context.transaction.TransactionalTestExecutionListener, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener, org.springframework.test.context.event.EventPublishingTestExecutionListener, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener, org.springframework.boot.test.autoconfigure.webservices.client.MockWebServiceServerTestExecutionListener, org.springframework.security.test.context.support.WithSecurityContextTestExecutionListener, org.springframework.security.test.context.support.ReactorContextTestExecutionListener] +2025-12-31 21:45:18.887 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Using TestExecutionListeners: [org.springframework.test.context.web.ServletTestExecutionListener@25df80f7, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener@63cb03ba, org.springframework.test.context.event.ApplicationEventsTestExecutionListener@1717167e, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener@321fc4c5, org.springframework.boot.test.autoconfigure.SpringBootDependencyInjectionTestExecutionListener@6b9e3249, org.springframework.test.context.support.DirtiesContextTestExecutionListener@50732a53, org.springframework.test.context.transaction.TransactionalTestExecutionListener@7f7872c5, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener@330da803, org.springframework.test.context.event.EventPublishingTestExecutionListener@291bd851, org.springframework.security.test.context.support.WithSecurityContextTestExecutionListener@60734e93, org.springframework.security.test.context.support.ReactorContextTestExecutionListener@5c21f602, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener@2321035, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener@751c8972, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener@fe15694, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener@5ca3308c, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener@4e023095, org.springframework.boot.test.autoconfigure.webservices.client.MockWebServiceServerTestExecutionListener@5fc4773e] + + . ____ _ __ _ _ + /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ +( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ + \\/ ___)| |_)| | | | | || (_| | ) ) ) ) + ' |____| .__|_| |_|_| |_\__, | / / / / + =========|_|==============|___/=/_/_/_/ + :: Spring Boot :: (v2.5.4) + +2025-12-31 21:45:18.907 INFO 68358 --- [ main] c.s.a.api.WxCustomSpecifiedOrderApiTest : Starting WxCustomSpecifiedOrderApiTest using Java 11.0.28 on oushuns-Mac-mini.local with PID 68358 (started by oujunyi in /Volumes/main/code/yunpei/peipei-backend/play-admin) +2025-12-31 21:45:18.907 INFO 68358 --- [ main] c.s.a.api.WxCustomSpecifiedOrderApiTest : The following profiles are active: apitest +2025-12-31 21:45:19.261 INFO 68358 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode! +2025-12-31 21:45:19.262 INFO 68358 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data Redis repositories in DEFAULT mode. +2025-12-31 21:45:19.289 INFO 68358 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 27 ms. Found 0 Redis repository interfaces. +2025-12-31 21:45:19.342 INFO 68358 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.security.access.expression.method.DefaultMethodSecurityExpressionHandler@293b7870' of type [org.springframework.security.access.expression.method.DefaultMethodSecurityExpressionHandler] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +2025-12-31 21:45:19.345 INFO 68358 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'methodSecurityMetadataSource' of type [org.springframework.security.access.method.DelegatingMethodSecurityMetadataSource] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +2025-12-31 21:45:19.392 INFO 68358 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 0 (http) +2025-12-31 21:45:19.392 INFO 68358 --- [ main] o.a.coyote.http11.Http11NioProtocol : Initializing ProtocolHandler ["http-nio-auto-2"] +2025-12-31 21:45:19.392 INFO 68358 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat] +2025-12-31 21:45:19.392 INFO 68358 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.52] +2025-12-31 21:45:19.401 INFO 68358 --- [ main] o.a.c.c.C.[Tomcat-1].[localhost].[/api] : Initializing Spring embedded WebApplicationContext +2025-12-31 21:45:19.401 INFO 68358 --- [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 493 ms +2025-12-31 21:45:19.486 INFO 68358 --- [ main] c.g.y.a.MybatisPlusJoinAutoConfiguration : mybatis plus join properties config complete +2025-12-31 21:45:19.519 INFO 68358 --- [ main] com.alibaba.druid.pool.DruidDataSource : {dataSource-2} inited +2025-12-31 21:45:19.544 INFO 68358 --- [ main] c.g.y.a.MybatisPlusJoinAutoConfiguration : mybatis plus join SqlInjector init + _ _ |_ _ _|_. ___ _ | _ +| | |\/|_)(_| | |_\ |_)||_|_\ + / | + 3.5.3.2 +2025-12-31 21:45:19.686 INFO 68358 --- [ main] o.f.c.internal.license.VersionPrinter : Flyway Community Edition 7.15.0 by Redgate +2025-12-31 21:45:19.686 INFO 68358 --- [ main] o.f.c.i.database.base.BaseDatabaseType : Database: jdbc:mysql://localhost:33306/peipei_apitest (MySQL 8.0) +2025-12-31 21:45:19.718 INFO 68358 --- [ main] o.f.core.internal.command.DbMigrate : Current version of schema `peipei_apitest`: 18 +2025-12-31 21:45:19.719 INFO 68358 --- [ main] o.f.core.internal.command.DbMigrate : Schema `peipei_apitest` is up to date. No migration necessary. +2025-12-31 21:45:20.158 INFO 68358 --- [ main] .s.s.UserDetailsServiceAutoConfiguration : + +Using generated security password: dc2d5727-31dc-42d7-bd36-3fa8e8649949 + +2025-12-31 21:45:20.722 INFO 68358 --- [ main] o.s.s.web.DefaultSecurityFilterChain : Will secure any request with [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@7270c811, org.springframework.security.web.context.SecurityContextPersistenceFilter@b9971c8, org.springframework.security.web.header.HeaderWriterFilter@77279ead, com.starry.admin.common.security.filter.ApiTestAuthenticationFilter@10eb9604, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@295f6c8b, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@62465dfb, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@1dae615d, org.springframework.security.web.session.SessionManagementFilter@259c2915, org.springframework.security.web.access.ExceptionTranslationFilter@33a228d8, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@64110f88] +2025-12-31 21:45:20.735 INFO 68358 --- [ main] pertySourcedRequestMappingHandlerMapping : Mapped URL path [/v2/api-docs] onto method [springfox.documentation.swagger2.web.Swagger2ControllerWebMvc#getDocumentation(String, HttpServletRequest)] + _ _ |_ _ _|_. ___ _ | _ . _ . _ +| | |\/|_)(_| | |_\ |_)||_|_\ | (_) | | | + / | / + 1.4.10 +2025-12-31 21:45:20.877 INFO 68358 --- [ main] o.a.c.c.C.[Tomcat-1].[localhost].[/api] : Initializing Spring TestDispatcherServlet '' +2025-12-31 21:45:20.877 INFO 68358 --- [ main] o.s.t.web.servlet.TestDispatcherServlet : Initializing Servlet '' +2025-12-31 21:45:20.878 INFO 68358 --- [ main] o.s.t.web.servlet.TestDispatcherServlet : Completed initialization in 1 ms +2025-12-31 21:45:20.899 INFO 68358 --- [ main] o.a.coyote.http11.Http11NioProtocol : Starting ProtocolHandler ["http-nio-auto-2"] +2025-12-31 21:45:20.900 INFO 68358 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 56304 (http) with context path '/api' +2025-12-31 21:45:20.900 INFO 68358 --- [ main] d.s.w.p.DocumentationPluginsBootstrapper : Documentation plugins bootstrapped +2025-12-31 21:45:20.900 INFO 68358 --- [ main] d.s.w.p.DocumentationPluginsBootstrapper : Found 1 custom documentation plugin(s) +2025-12-31 21:45:20.916 INFO 68358 --- [ main] s.d.s.w.s.ApiListingReferenceScanner : Scanning for api listing references +2025-12-31 21:45:20.952 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_1 +2025-12-31 21:45:20.953 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_1 +2025-12-31 21:45:20.953 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_2 +2025-12-31 21:45:20.955 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPUT_1 +2025-12-31 21:45:20.958 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_1 +2025-12-31 21:45:20.960 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_2 +2025-12-31 21:45:20.962 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_1 +2025-12-31 21:45:20.965 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_2 +2025-12-31 21:45:20.966 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_2 +2025-12-31 21:45:20.967 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_1 +2025-12-31 21:45:20.968 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingPOST_1 +2025-12-31 21:45:20.968 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_3 +2025-12-31 21:45:20.969 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_2 +2025-12-31 21:45:20.970 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_3 +2025-12-31 21:45:20.970 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_3 +2025-12-31 21:45:20.971 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_3 +2025-12-31 21:45:20.971 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listAllUsingGET_1 +2025-12-31 21:45:20.971 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_4 +2025-12-31 21:45:20.972 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_3 +2025-12-31 21:45:20.973 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_4 +2025-12-31 21:45:20.973 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_4 +2025-12-31 21:45:20.974 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_4 +2025-12-31 21:45:20.975 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_5 +2025-12-31 21:45:20.975 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_4 +2025-12-31 21:45:20.977 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingPOST_2 +2025-12-31 21:45:20.977 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_6 +2025-12-31 21:45:20.977 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_5 +2025-12-31 21:45:20.978 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_5 +2025-12-31 21:45:20.979 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_5 +2025-12-31 21:45:20.979 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_5 +2025-12-31 21:45:20.979 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_7 +2025-12-31 21:45:20.980 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_6 +2025-12-31 21:45:20.980 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_6 +2025-12-31 21:45:20.981 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_6 +2025-12-31 21:45:20.982 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listAllUsingGET_2 +2025-12-31 21:45:20.982 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_8 +2025-12-31 21:45:20.982 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_7 +2025-12-31 21:45:20.986 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listByPageUsingPOST_1 +2025-12-31 21:45:20.988 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_7 +2025-12-31 21:45:20.989 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_7 +2025-12-31 21:45:20.989 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_6 +2025-12-31 21:45:20.990 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_9 +2025-12-31 21:45:20.990 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_8 +2025-12-31 21:45:20.991 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_8 +2025-12-31 21:45:20.993 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_8 +2025-12-31 21:45:20.994 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingPOST_3 +2025-12-31 21:45:20.994 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_10 +2025-12-31 21:45:20.994 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_9 +2025-12-31 21:45:20.995 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_9 +2025-12-31 21:45:20.996 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listByPageUsingPOST_2 +2025-12-31 21:45:20.996 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_11 +2025-12-31 21:45:20.997 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_10 +2025-12-31 21:45:21.001 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_9 +2025-12-31 21:45:21.003 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_7 +2025-12-31 21:45:21.007 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listByPageUsingPOST_3 +2025-12-31 21:45:21.008 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listByPageUsingPOST_4 +2025-12-31 21:45:21.008 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_12 +2025-12-31 21:45:21.010 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_11 +2025-12-31 21:45:21.012 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listByPageUsingPOST_5 +2025-12-31 21:45:21.012 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_13 +2025-12-31 21:45:21.013 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_12 +2025-12-31 21:45:21.014 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_10 +2025-12-31 21:45:21.015 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_10 +2025-12-31 21:45:21.015 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_8 +2025-12-31 21:45:21.015 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_14 +2025-12-31 21:45:21.016 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_13 +2025-12-31 21:45:21.017 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingPOST_4 +2025-12-31 21:45:21.018 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingPOST_5 +2025-12-31 21:45:21.019 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_11 +2025-12-31 21:45:21.020 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_11 +2025-12-31 21:45:21.020 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_15 +2025-12-31 21:45:21.021 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_14 +2025-12-31 21:45:21.022 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_12 +2025-12-31 21:45:21.023 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_12 +2025-12-31 21:45:21.025 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listByPageUsingPOST_6 +2025-12-31 21:45:21.026 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_16 +2025-12-31 21:45:21.026 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_15 +2025-12-31 21:45:21.026 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_16 +2025-12-31 21:45:21.028 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_13 +2025-12-31 21:45:21.030 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_13 +2025-12-31 21:45:21.031 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingPOST_6 +2025-12-31 21:45:21.031 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_17 +2025-12-31 21:45:21.034 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_17 +2025-12-31 21:45:21.035 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_14 +2025-12-31 21:45:21.036 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_14 +2025-12-31 21:45:21.036 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_9 +2025-12-31 21:45:21.036 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_18 +2025-12-31 21:45:21.037 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_18 +2025-12-31 21:45:21.038 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_15 +2025-12-31 21:45:21.038 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_15 +2025-12-31 21:45:21.039 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_10 +2025-12-31 21:45:21.039 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_19 +2025-12-31 21:45:21.039 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_19 +2025-12-31 21:45:21.040 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_16 +2025-12-31 21:45:21.041 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_16 +2025-12-31 21:45:21.041 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_11 +2025-12-31 21:45:21.042 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_20 +2025-12-31 21:45:21.042 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_20 +2025-12-31 21:45:21.043 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_17 +2025-12-31 21:45:21.044 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_17 +2025-12-31 21:45:21.045 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingPOST_7 +2025-12-31 21:45:21.045 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_21 +2025-12-31 21:45:21.045 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_21 +2025-12-31 21:45:21.046 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_18 +2025-12-31 21:45:21.047 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_18 +2025-12-31 21:45:21.047 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_22 +2025-12-31 21:45:21.048 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_22 +2025-12-31 21:45:21.049 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingPOST_8 +2025-12-31 21:45:21.051 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_19 +2025-12-31 21:45:21.053 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_19 +2025-12-31 21:45:21.060 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingPOST_9 +2025-12-31 21:45:21.061 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_23 +2025-12-31 21:45:21.061 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_23 +2025-12-31 21:45:21.062 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateStateUsingPOST_1 +2025-12-31 21:45:21.063 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_20 +2025-12-31 21:45:21.064 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_20 +2025-12-31 21:45:21.064 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_12 +2025-12-31 21:45:21.065 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_24 +2025-12-31 21:45:21.065 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_24 +2025-12-31 21:45:21.066 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_21 +2025-12-31 21:45:21.067 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_21 +2025-12-31 21:45:21.069 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingPOST_10 +2025-12-31 21:45:21.069 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_25 +2025-12-31 21:45:21.069 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_25 +2025-12-31 21:45:21.071 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingPOST_11 +2025-12-31 21:45:21.074 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingPOST_12 +2025-12-31 21:45:21.074 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_26 +2025-12-31 21:45:21.074 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_26 +2025-12-31 21:45:21.076 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_22 +2025-12-31 21:45:21.078 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listByPageUsingPOST_7 +2025-12-31 21:45:21.080 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_27 +2025-12-31 21:45:21.085 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_27 +2025-12-31 21:45:21.087 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_22 +2025-12-31 21:45:21.088 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_23 +2025-12-31 21:45:21.089 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingPOST_13 +2025-12-31 21:45:21.090 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_28 +2025-12-31 21:45:21.090 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_28 +2025-12-31 21:45:21.093 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_24 +2025-12-31 21:45:21.094 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listByPageUsingPOST_8 +2025-12-31 21:45:21.094 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_29 +2025-12-31 21:45:21.095 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createBaseInfoUsingPOST_1 +2025-12-31 21:45:21.096 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listByPageUsingPOST_9 +2025-12-31 21:45:21.096 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_30 +2025-12-31 21:45:21.096 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateBaseInfoUsingPOST_1 +2025-12-31 21:45:21.100 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listAllUsingGET_3 +2025-12-31 21:45:21.101 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listByPageUsingPOST_10 +2025-12-31 21:45:21.102 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createBaseInfoUsingPOST_2 +2025-12-31 21:45:21.103 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listByPageUsingPOST_11 +2025-12-31 21:45:21.103 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_31 +2025-12-31 21:45:21.103 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateBaseInfoUsingPOST_2 +2025-12-31 21:45:21.104 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_23 +2025-12-31 21:45:21.105 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listByPageUsingPOST_12 +2025-12-31 21:45:21.106 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listByPageUsingPOST_13 +2025-12-31 21:45:21.106 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_32 +2025-12-31 21:45:21.106 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_24 +2025-12-31 21:45:21.108 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listByPageUsingPOST_14 +2025-12-31 21:45:21.108 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listByPageUsingPOST_15 +2025-12-31 21:45:21.108 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_33 +2025-12-31 21:45:21.109 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: uploadFileUsingPOST_1 +2025-12-31 21:45:21.110 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_25 +2025-12-31 21:45:21.111 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_26 +2025-12-31 21:45:21.111 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_29 +2025-12-31 21:45:21.113 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_27 +2025-12-31 21:45:21.114 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_13 +2025-12-31 21:45:21.115 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_30 +2025-12-31 21:45:21.116 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_25 +2025-12-31 21:45:21.117 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_28 +2025-12-31 21:45:21.117 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_14 +2025-12-31 21:45:21.118 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_34 +2025-12-31 21:45:21.118 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_31 +2025-12-31 21:45:21.119 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_26 +2025-12-31 21:45:21.121 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_29 +2025-12-31 21:45:21.121 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_15 +2025-12-31 21:45:21.121 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_35 +2025-12-31 21:45:21.122 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_32 +2025-12-31 21:45:21.123 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_30 +2025-12-31 21:45:21.124 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_16 +2025-12-31 21:45:21.124 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_36 +2025-12-31 21:45:21.126 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_27 +2025-12-31 21:45:21.127 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: deleteUsingPOST_1 +2025-12-31 21:45:21.128 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_31 +2025-12-31 21:45:21.129 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_17 +2025-12-31 21:45:21.130 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: treeselectUsingGET_1 +2025-12-31 21:45:21.130 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_33 +2025-12-31 21:45:21.132 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_28 +2025-12-31 21:45:21.133 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_32 +2025-12-31 21:45:21.134 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_18 +2025-12-31 21:45:21.134 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_37 +2025-12-31 21:45:21.135 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_34 +2025-12-31 21:45:21.135 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: exportUsingPOST_1 +2025-12-31 21:45:21.140 WARN 68358 --- [ main] s.d.s.w.r.p.ParameterDataTypeReader : Trying to infer dataType java.lang.String[] +2025-12-31 21:45:21.141 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_29 +2025-12-31 21:45:21.141 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: deleteUsingDELETE_1 +2025-12-31 21:45:21.142 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_33 +2025-12-31 21:45:21.142 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listAllUsingGET_4 +2025-12-31 21:45:21.143 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listPageUsingGET_1 +2025-12-31 21:45:21.143 WARN 68358 --- [ main] s.d.s.w.r.p.ParameterDataTypeReader : Trying to infer dataType java.lang.String[] +2025-12-31 21:45:21.144 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_35 +2025-12-31 21:45:21.147 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_30 +2025-12-31 21:45:21.149 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_34 +2025-12-31 21:45:21.151 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listByPageUsingPOST_16 +2025-12-31 21:45:21.151 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_38 +2025-12-31 21:45:21.153 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_36 +2025-12-31 21:45:21.155 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_31 +2025-12-31 21:45:21.155 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_35 +2025-12-31 21:45:21.156 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_19 +2025-12-31 21:45:21.156 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_39 +2025-12-31 21:45:21.157 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_37 +2025-12-31 21:45:21.157 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: exportUsingPOST_2 +2025-12-31 21:45:21.158 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_32 +2025-12-31 21:45:21.159 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_36 +2025-12-31 21:45:21.159 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingPOST_14 +2025-12-31 21:45:21.160 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_40 +2025-12-31 21:45:21.160 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_38 +2025-12-31 21:45:21.164 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: deleteUsingPOST_2 +2025-12-31 21:45:21.164 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_37 +2025-12-31 21:45:21.164 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_38 +2025-12-31 21:45:21.165 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listPageUsingGET_2 +2025-12-31 21:45:21.168 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_39 +2025-12-31 21:45:21.171 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_20 +2025-12-31 21:45:21.182 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listAllCommodityUsingGET_1 +2025-12-31 21:45:21.183 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: queryByIdUsingGET_1 +2025-12-31 21:45:21.188 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateAudioUsingPOST_1 +2025-12-31 21:45:21.188 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateAudioUsingPOST_2 +2025-12-31 21:45:21.195 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: deleteUsingDELETE_2 +2025-12-31 21:45:21.196 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: uploadUsingPOST_1 +2025-12-31 21:45:21.198 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: clerkQueryWagesDetailsUsingGET_1 +2025-12-31 21:45:21.207 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: cancellationOrderUsingPOST_1 +2025-12-31 21:45:21.213 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: queryByIdUsingGET_2 +2025-12-31 21:45:21.214 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: queryByIdUsingGET_3 +2025-12-31 21:45:21.216 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: queryOrderByPageUsingPOST_1 +2025-12-31 21:45:21.226 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: customListByAllUsingGET_1 +2025-12-31 21:45:21.229 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: queryByIdUsingGET_4 +2025-12-31 21:45:21.232 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: checkSubscribeUsingGET_1 +2025-12-31 21:45:21.260 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateReviewStateUsingPOST_1 +2025-12-31 21:45:21.263 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: testUsingGET_1 +2025-12-31 21:45:21.267 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: sendSmsUsingGET_1 +2025-12-31 21:45:21.271 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getProfileUsingGET_1 +2025-12-31 21:45:21.275 INFO 68358 --- [ main] c.s.a.api.WxCustomSpecifiedOrderApiTest : Started WxCustomSpecifiedOrderApiTest in 2.387 seconds (JVM running for 13.64) +2025-12-31 21:45:21.281 INFO 68358 --- [ main] c.s.a.common.apitest.ApiTestDataSeeder : API test tenant package pkg-basic already exists +2025-12-31 21:45:21.283 INFO 68358 --- [ main] c.s.a.common.apitest.ApiTestDataSeeder : API test tenant tenant-apitest already exists +2025-12-31 21:45:21.285 INFO 68358 --- [ main] c.s.a.common.apitest.ApiTestDataSeeder : API test admin user user-apitest-admin already exists +2025-12-31 21:45:21.286 INFO 68358 --- [ main] c.s.a.common.apitest.ApiTestDataSeeder : API test personnel group group-basic already exists +2025-12-31 21:45:21.287 INFO 68358 --- [ main] c.s.a.common.apitest.ApiTestDataSeeder : API test clerk level lvl-basic already exists +2025-12-31 21:45:21.289 INFO 68358 --- [ main] c.s.a.common.apitest.ApiTestDataSeeder : API test commodity svc-basic already exists +2025-12-31 21:45:21.290 INFO 68358 --- [ main] c.s.a.common.apitest.ApiTestDataSeeder : API test commodity pricing for svc-basic already exists +2025-12-31 21:45:21.293 INFO 68358 --- [ main] c.s.a.common.apitest.ApiTestDataSeeder : API test clerk clerk-apitest already exists +2025-12-31 21:45:21.294 INFO 68358 --- [ main] c.s.a.common.apitest.ApiTestDataSeeder : API test clerk commodity clerk-svc-basic already exists +2025-12-31 21:45:21.296 INFO 68358 --- [ main] c.s.a.common.apitest.ApiTestDataSeeder : API test gift gift-basic already exists +2025-12-31 21:45:21.303 INFO 68358 --- [ main] c.s.a.common.apitest.ApiTestDataSeeder : API test customer customer-apitest already exists, state refreshed +2025-12-31 21:45:21.320 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/commodity from 127.0.0.1 [Unknown] +2025-12-31 21:45:21.332 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=SPECIFIED rewardFlag? false +2025-12-31 21:45:21.356 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/commodity - 200 OK (36ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:21.383 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/commodity from 127.0.0.1 [Unknown] +2025-12-31 21:45:21.387 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=SPECIFIED rewardFlag? false +2025-12-31 21:45:21.393 WARN 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/commodity - 200 OK (10ms) businessCode=998 success=false message=余额不足 +2025-12-31 21:45:21.415 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/coupon/custom/obtainCoupon from 127.0.0.1 [Unknown] +2025-12-31 21:45:21.440 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/coupon/custom/obtainCoupon - 200 OK (25ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:21.445 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/coupon/custom/queryByOrder from 127.0.0.1 [Unknown] +2025-12-31 21:45:21.459 INFO 68358 --- [ main] c.s.a.m.w.controller.WxCouponController : {"clerkId":"clerk-apitest","commodityId":"svc-basic","commodityQuantity":1,"levelId":"","placeType":"0"} +2025-12-31 21:45:21.512 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/coupon/custom/queryByOrder - 200 OK (67ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:21.516 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/commodity from 127.0.0.1 [Unknown] +2025-12-31 21:45:21.519 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=SPECIFIED rewardFlag? false +2025-12-31 21:45:21.536 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/commodity - 200 OK (20ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:21.543 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/cancellation from 127.0.0.1 [Unknown] +2025-12-31 21:45:21.559 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/cancellation - 200 OK (16ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:21.576 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/coupon/custom/obtainCoupon from 127.0.0.1 [Unknown] +2025-12-31 21:45:21.585 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/coupon/custom/obtainCoupon - 200 OK (9ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:21.587 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/coupon/custom/queryByOrder from 127.0.0.1 [Unknown] +2025-12-31 21:45:21.589 INFO 68358 --- [ main] c.s.a.m.w.controller.WxCouponController : {"clerkId":"clerk-apitest","commodityId":"svc-basic","commodityQuantity":1,"levelId":"","placeType":"0"} +2025-12-31 21:45:21.614 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/coupon/custom/queryByOrder - 200 OK (28ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:21.616 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/commodity from 127.0.0.1 [Unknown] +2025-12-31 21:45:21.619 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=SPECIFIED rewardFlag? false +2025-12-31 21:45:21.635 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/commodity - 200 OK (19ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:21.641 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/clerk/order/accept from 127.0.0.1 [Unknown] +2025-12-31 21:45:21.648 INFO 68358 --- [ main] c.s.a.m.o.s.i.PlayOrderInfoServiceImpl : Order accepted successfully. orderId=dra2fo9e2, orderNo=202512312145212245, acceptBy=clerk-apitest, operatorByType=1 +2025-12-31 21:45:21.651 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/clerk/order/accept - 200 OK (10ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:21.676 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/coupon/custom/obtainCoupon from 127.0.0.1 [Unknown] +2025-12-31 21:45:21.685 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/coupon/custom/obtainCoupon - 200 OK (9ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:21.688 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/coupon/custom/queryByOrder from 127.0.0.1 [Unknown] +2025-12-31 21:45:21.690 INFO 68358 --- [ main] c.s.a.m.w.controller.WxCouponController : {"clerkId":"clerk-apitest","commodityId":"svc-basic","commodityQuantity":1,"levelId":"","placeType":"0"} +2025-12-31 21:45:21.715 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/coupon/custom/queryByOrder - 200 OK (27ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:21.717 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/commodity from 127.0.0.1 [Unknown] +2025-12-31 21:45:21.720 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=SPECIFIED rewardFlag? false +2025-12-31 21:45:21.736 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/commodity - 200 OK (19ms) businessCode=200 success=true message=操作成功 +[INFO] Tests run: 5, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 2.868 s - in com.starry.admin.api.WxCustomSpecifiedOrderApiTest +[INFO] Running com.starry.admin.api.WxCustomOrderQueryApiTest +2025-12-31 21:45:21.753 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Neither @ContextConfiguration nor @ContextHierarchy found for test class [com.starry.admin.api.WxCustomOrderQueryApiTest], using SpringBootContextLoader +2025-12-31 21:45:21.753 INFO 68358 --- [ main] o.s.t.c.support.AbstractContextLoader : Could not detect default resource locations for test class [com.starry.admin.api.WxCustomOrderQueryApiTest]: no resource found for suffixes {-context.xml, Context.groovy}. +2025-12-31 21:45:21.753 INFO 68358 --- [ main] t.c.s.AnnotationConfigContextLoaderUtils : Could not detect default configuration classes for test class [com.starry.admin.api.WxCustomOrderQueryApiTest]: WxCustomOrderQueryApiTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration. +2025-12-31 21:45:21.754 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Found @SpringBootConfiguration com.starry.admin.Application for test class com.starry.admin.api.WxCustomOrderQueryApiTest +2025-12-31 21:45:21.754 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Loaded default TestExecutionListener class names from location [META-INF/spring.factories]: [org.springframework.test.context.web.ServletTestExecutionListener, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener, org.springframework.test.context.event.ApplicationEventsTestExecutionListener, org.springframework.test.context.support.DependencyInjectionTestExecutionListener, org.springframework.test.context.support.DirtiesContextTestExecutionListener, org.springframework.test.context.transaction.TransactionalTestExecutionListener, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener, org.springframework.test.context.event.EventPublishingTestExecutionListener, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener, org.springframework.boot.test.autoconfigure.webservices.client.MockWebServiceServerTestExecutionListener, org.springframework.security.test.context.support.WithSecurityContextTestExecutionListener, org.springframework.security.test.context.support.ReactorContextTestExecutionListener] +2025-12-31 21:45:21.754 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Using TestExecutionListeners: [org.springframework.test.context.web.ServletTestExecutionListener@4330f93c, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener@ad194d1, org.springframework.test.context.event.ApplicationEventsTestExecutionListener@efb30da, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener@728dfa37, org.springframework.boot.test.autoconfigure.SpringBootDependencyInjectionTestExecutionListener@36300443, org.springframework.test.context.support.DirtiesContextTestExecutionListener@30417948, org.springframework.test.context.transaction.TransactionalTestExecutionListener@67ebf27a, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener@7a2ae0f2, org.springframework.test.context.event.EventPublishingTestExecutionListener@4c0ef1e8, org.springframework.security.test.context.support.WithSecurityContextTestExecutionListener@773e5a18, org.springframework.security.test.context.support.ReactorContextTestExecutionListener@4f7e0ea7, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener@62fe5aca, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener@59c476cc, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener@5caf0976, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener@631b2f72, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener@732301d1, org.springframework.boot.test.autoconfigure.webservices.client.MockWebServiceServerTestExecutionListener@92b6b6f] + + . ____ _ __ _ _ + /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ +( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ + \\/ ___)| |_)| | | | | || (_| | ) ) ) ) + ' |____| .__|_| |_|_| |_\__, | / / / / + =========|_|==============|___/=/_/_/_/ + :: Spring Boot :: (v2.5.4) + +2025-12-31 21:45:21.764 INFO 68358 --- [ main] c.s.admin.api.WxCustomOrderQueryApiTest : Starting WxCustomOrderQueryApiTest using Java 11.0.28 on oushuns-Mac-mini.local with PID 68358 (started by oujunyi in /Volumes/main/code/yunpei/peipei-backend/play-admin) +2025-12-31 21:45:21.764 INFO 68358 --- [ main] c.s.admin.api.WxCustomOrderQueryApiTest : The following profiles are active: apitest +2025-12-31 21:45:21.903 INFO 68358 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode! +2025-12-31 21:45:21.903 INFO 68358 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data Redis repositories in DEFAULT mode. +2025-12-31 21:45:21.929 INFO 68358 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 25 ms. Found 0 Redis repository interfaces. +2025-12-31 21:45:21.978 INFO 68358 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.security.access.expression.method.DefaultMethodSecurityExpressionHandler@996ed93' of type [org.springframework.security.access.expression.method.DefaultMethodSecurityExpressionHandler] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +2025-12-31 21:45:21.981 INFO 68358 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'methodSecurityMetadataSource' of type [org.springframework.security.access.method.DelegatingMethodSecurityMetadataSource] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +2025-12-31 21:45:22.018 INFO 68358 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 0 (http) +2025-12-31 21:45:22.019 INFO 68358 --- [ main] o.a.coyote.http11.Http11NioProtocol : Initializing ProtocolHandler ["http-nio-auto-3"] +2025-12-31 21:45:22.019 INFO 68358 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat] +2025-12-31 21:45:22.019 INFO 68358 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.52] +2025-12-31 21:45:22.027 INFO 68358 --- [ main] o.a.c.c.C.[Tomcat-2].[localhost].[/api] : Initializing Spring embedded WebApplicationContext +2025-12-31 21:45:22.027 INFO 68358 --- [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 263 ms +2025-12-31 21:45:22.106 INFO 68358 --- [ main] c.g.y.a.MybatisPlusJoinAutoConfiguration : mybatis plus join properties config complete +2025-12-31 21:45:22.137 INFO 68358 --- [ main] com.alibaba.druid.pool.DruidDataSource : {dataSource-3} inited +2025-12-31 21:45:22.150 INFO 68358 --- [ main] c.g.y.a.MybatisPlusJoinAutoConfiguration : mybatis plus join SqlInjector init + _ _ |_ _ _|_. ___ _ | _ +| | |\/|_)(_| | |_\ |_)||_|_\ + / | + 3.5.3.2 +2025-12-31 21:45:22.289 INFO 68358 --- [ main] o.f.c.internal.license.VersionPrinter : Flyway Community Edition 7.15.0 by Redgate +2025-12-31 21:45:22.289 INFO 68358 --- [ main] o.f.c.i.database.base.BaseDatabaseType : Database: jdbc:mysql://localhost:33306/peipei_apitest (MySQL 8.0) +2025-12-31 21:45:22.305 INFO 68358 --- [ main] o.f.core.internal.command.DbMigrate : Current version of schema `peipei_apitest`: 18 +2025-12-31 21:45:22.305 INFO 68358 --- [ main] o.f.core.internal.command.DbMigrate : Schema `peipei_apitest` is up to date. No migration necessary. +2025-12-31 21:45:22.741 INFO 68358 --- [ main] .s.s.UserDetailsServiceAutoConfiguration : + +Using generated security password: 99ae7299-0380-4b2a-9c6d-45d1e5879820 + +2025-12-31 21:45:23.410 INFO 68358 --- [ main] o.s.s.web.DefaultSecurityFilterChain : Will secure any request with [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@29090b4b, org.springframework.security.web.context.SecurityContextPersistenceFilter@57f59036, org.springframework.security.web.header.HeaderWriterFilter@258f3e5, com.starry.admin.common.security.filter.ApiTestAuthenticationFilter@17a7842f, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@6e5ffaee, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@2b5dfb1b, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@72d4ff34, org.springframework.security.web.session.SessionManagementFilter@45f675a4, org.springframework.security.web.access.ExceptionTranslationFilter@77c9db55, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@73270956] +2025-12-31 21:45:23.422 INFO 68358 --- [ main] pertySourcedRequestMappingHandlerMapping : Mapped URL path [/v2/api-docs] onto method [springfox.documentation.swagger2.web.Swagger2ControllerWebMvc#getDocumentation(String, HttpServletRequest)] + _ _ |_ _ _|_. ___ _ | _ . _ . _ +| | |\/|_)(_| | |_\ |_)||_|_\ | (_) | | | + / | / + 1.4.10 +2025-12-31 21:45:23.545 INFO 68358 --- [ main] o.a.c.c.C.[Tomcat-2].[localhost].[/api] : Initializing Spring TestDispatcherServlet '' +2025-12-31 21:45:23.545 INFO 68358 --- [ main] o.s.t.web.servlet.TestDispatcherServlet : Initializing Servlet '' +2025-12-31 21:45:23.545 INFO 68358 --- [ main] o.s.t.web.servlet.TestDispatcherServlet : Completed initialization in 0 ms +2025-12-31 21:45:23.566 INFO 68358 --- [ main] o.a.coyote.http11.Http11NioProtocol : Starting ProtocolHandler ["http-nio-auto-3"] +2025-12-31 21:45:23.566 INFO 68358 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 56321 (http) with context path '/api' +2025-12-31 21:45:23.567 INFO 68358 --- [ main] d.s.w.p.DocumentationPluginsBootstrapper : Documentation plugins bootstrapped +2025-12-31 21:45:23.567 INFO 68358 --- [ main] d.s.w.p.DocumentationPluginsBootstrapper : Found 1 custom documentation plugin(s) +2025-12-31 21:45:23.583 INFO 68358 --- [ main] s.d.s.w.s.ApiListingReferenceScanner : Scanning for api listing references +2025-12-31 21:45:23.613 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_1 +2025-12-31 21:45:23.614 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_1 +2025-12-31 21:45:23.614 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_2 +2025-12-31 21:45:23.614 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPUT_1 +2025-12-31 21:45:23.617 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_1 +2025-12-31 21:45:23.618 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_2 +2025-12-31 21:45:23.620 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_1 +2025-12-31 21:45:23.622 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_2 +2025-12-31 21:45:23.624 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_2 +2025-12-31 21:45:23.625 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_1 +2025-12-31 21:45:23.626 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingPOST_1 +2025-12-31 21:45:23.626 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_3 +2025-12-31 21:45:23.627 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_2 +2025-12-31 21:45:23.628 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_3 +2025-12-31 21:45:23.628 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_3 +2025-12-31 21:45:23.629 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_3 +2025-12-31 21:45:23.629 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listAllUsingGET_1 +2025-12-31 21:45:23.629 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_4 +2025-12-31 21:45:23.630 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_3 +2025-12-31 21:45:23.631 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_4 +2025-12-31 21:45:23.631 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_4 +2025-12-31 21:45:23.631 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_4 +2025-12-31 21:45:23.632 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_5 +2025-12-31 21:45:23.632 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_4 +2025-12-31 21:45:23.634 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingPOST_2 +2025-12-31 21:45:23.634 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_6 +2025-12-31 21:45:23.634 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_5 +2025-12-31 21:45:23.635 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_5 +2025-12-31 21:45:23.635 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_5 +2025-12-31 21:45:23.636 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_5 +2025-12-31 21:45:23.636 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_7 +2025-12-31 21:45:23.636 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_6 +2025-12-31 21:45:23.637 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_6 +2025-12-31 21:45:23.638 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_6 +2025-12-31 21:45:23.638 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listAllUsingGET_2 +2025-12-31 21:45:23.638 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_8 +2025-12-31 21:45:23.638 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_7 +2025-12-31 21:45:23.641 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listByPageUsingPOST_1 +2025-12-31 21:45:23.643 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_7 +2025-12-31 21:45:23.644 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_7 +2025-12-31 21:45:23.644 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_6 +2025-12-31 21:45:23.645 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_9 +2025-12-31 21:45:23.645 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_8 +2025-12-31 21:45:23.646 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_8 +2025-12-31 21:45:23.647 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_8 +2025-12-31 21:45:23.648 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingPOST_3 +2025-12-31 21:45:23.648 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_10 +2025-12-31 21:45:23.649 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_9 +2025-12-31 21:45:23.649 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_9 +2025-12-31 21:45:23.650 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listByPageUsingPOST_2 +2025-12-31 21:45:23.650 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_11 +2025-12-31 21:45:23.651 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_10 +2025-12-31 21:45:23.654 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_9 +2025-12-31 21:45:23.656 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_7 +2025-12-31 21:45:23.660 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listByPageUsingPOST_3 +2025-12-31 21:45:23.660 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listByPageUsingPOST_4 +2025-12-31 21:45:23.660 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_12 +2025-12-31 21:45:23.662 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_11 +2025-12-31 21:45:23.664 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listByPageUsingPOST_5 +2025-12-31 21:45:23.664 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_13 +2025-12-31 21:45:23.665 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_12 +2025-12-31 21:45:23.666 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_10 +2025-12-31 21:45:23.666 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_10 +2025-12-31 21:45:23.667 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_8 +2025-12-31 21:45:23.667 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_14 +2025-12-31 21:45:23.667 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_13 +2025-12-31 21:45:23.668 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingPOST_4 +2025-12-31 21:45:23.669 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingPOST_5 +2025-12-31 21:45:23.670 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_11 +2025-12-31 21:45:23.670 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_11 +2025-12-31 21:45:23.671 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_15 +2025-12-31 21:45:23.671 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_14 +2025-12-31 21:45:23.673 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_12 +2025-12-31 21:45:23.673 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_12 +2025-12-31 21:45:23.675 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listByPageUsingPOST_6 +2025-12-31 21:45:23.675 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_16 +2025-12-31 21:45:23.676 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_15 +2025-12-31 21:45:23.676 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_16 +2025-12-31 21:45:23.677 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_13 +2025-12-31 21:45:23.679 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_13 +2025-12-31 21:45:23.680 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingPOST_6 +2025-12-31 21:45:23.680 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_17 +2025-12-31 21:45:23.682 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_17 +2025-12-31 21:45:23.683 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_14 +2025-12-31 21:45:23.684 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_14 +2025-12-31 21:45:23.684 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_9 +2025-12-31 21:45:23.684 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_18 +2025-12-31 21:45:23.685 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_18 +2025-12-31 21:45:23.686 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_15 +2025-12-31 21:45:23.687 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_15 +2025-12-31 21:45:23.687 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_10 +2025-12-31 21:45:23.688 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_19 +2025-12-31 21:45:23.688 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_19 +2025-12-31 21:45:23.689 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_16 +2025-12-31 21:45:23.689 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_16 +2025-12-31 21:45:23.690 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_11 +2025-12-31 21:45:23.690 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_20 +2025-12-31 21:45:23.690 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_20 +2025-12-31 21:45:23.703 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_17 +2025-12-31 21:45:23.704 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_17 +2025-12-31 21:45:23.705 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingPOST_7 +2025-12-31 21:45:23.705 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_21 +2025-12-31 21:45:23.705 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_21 +2025-12-31 21:45:23.706 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_18 +2025-12-31 21:45:23.707 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_18 +2025-12-31 21:45:23.707 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_22 +2025-12-31 21:45:23.708 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_22 +2025-12-31 21:45:23.709 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingPOST_8 +2025-12-31 21:45:23.711 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_19 +2025-12-31 21:45:23.713 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_19 +2025-12-31 21:45:23.719 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingPOST_9 +2025-12-31 21:45:23.720 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_23 +2025-12-31 21:45:23.720 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_23 +2025-12-31 21:45:23.720 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateStateUsingPOST_1 +2025-12-31 21:45:23.722 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_20 +2025-12-31 21:45:23.722 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_20 +2025-12-31 21:45:23.723 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_12 +2025-12-31 21:45:23.723 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_24 +2025-12-31 21:45:23.723 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_24 +2025-12-31 21:45:23.724 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_21 +2025-12-31 21:45:23.725 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_21 +2025-12-31 21:45:23.727 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingPOST_10 +2025-12-31 21:45:23.727 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_25 +2025-12-31 21:45:23.727 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_25 +2025-12-31 21:45:23.729 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingPOST_11 +2025-12-31 21:45:23.731 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingPOST_12 +2025-12-31 21:45:23.731 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_26 +2025-12-31 21:45:23.731 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_26 +2025-12-31 21:45:23.732 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_22 +2025-12-31 21:45:23.734 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listByPageUsingPOST_7 +2025-12-31 21:45:23.736 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_27 +2025-12-31 21:45:23.740 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_27 +2025-12-31 21:45:23.741 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_22 +2025-12-31 21:45:23.743 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_23 +2025-12-31 21:45:23.744 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingPOST_13 +2025-12-31 21:45:23.744 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_28 +2025-12-31 21:45:23.744 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_28 +2025-12-31 21:45:23.747 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_24 +2025-12-31 21:45:23.747 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listByPageUsingPOST_8 +2025-12-31 21:45:23.748 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_29 +2025-12-31 21:45:23.748 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createBaseInfoUsingPOST_1 +2025-12-31 21:45:23.749 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listByPageUsingPOST_9 +2025-12-31 21:45:23.749 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_30 +2025-12-31 21:45:23.750 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateBaseInfoUsingPOST_1 +2025-12-31 21:45:23.753 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listAllUsingGET_3 +2025-12-31 21:45:23.755 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listByPageUsingPOST_10 +2025-12-31 21:45:23.755 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createBaseInfoUsingPOST_2 +2025-12-31 21:45:23.756 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listByPageUsingPOST_11 +2025-12-31 21:45:23.756 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_31 +2025-12-31 21:45:23.756 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateBaseInfoUsingPOST_2 +2025-12-31 21:45:23.757 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_23 +2025-12-31 21:45:23.758 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listByPageUsingPOST_12 +2025-12-31 21:45:23.759 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listByPageUsingPOST_13 +2025-12-31 21:45:23.759 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_32 +2025-12-31 21:45:23.759 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_24 +2025-12-31 21:45:23.761 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listByPageUsingPOST_14 +2025-12-31 21:45:23.761 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listByPageUsingPOST_15 +2025-12-31 21:45:23.761 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_33 +2025-12-31 21:45:23.761 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: uploadFileUsingPOST_1 +2025-12-31 21:45:23.762 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_25 +2025-12-31 21:45:23.763 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_26 +2025-12-31 21:45:23.764 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_29 +2025-12-31 21:45:23.766 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_27 +2025-12-31 21:45:23.766 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_13 +2025-12-31 21:45:23.767 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_30 +2025-12-31 21:45:23.768 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_25 +2025-12-31 21:45:23.769 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_28 +2025-12-31 21:45:23.769 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_14 +2025-12-31 21:45:23.770 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_34 +2025-12-31 21:45:23.770 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_31 +2025-12-31 21:45:23.772 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_26 +2025-12-31 21:45:23.773 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_29 +2025-12-31 21:45:23.774 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_15 +2025-12-31 21:45:23.775 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_35 +2025-12-31 21:45:23.775 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_32 +2025-12-31 21:45:23.777 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_30 +2025-12-31 21:45:23.777 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_16 +2025-12-31 21:45:23.777 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_36 +2025-12-31 21:45:23.779 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_27 +2025-12-31 21:45:23.780 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: deleteUsingPOST_1 +2025-12-31 21:45:23.781 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_31 +2025-12-31 21:45:23.782 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_17 +2025-12-31 21:45:23.783 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: treeselectUsingGET_1 +2025-12-31 21:45:23.783 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_33 +2025-12-31 21:45:23.785 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_28 +2025-12-31 21:45:23.786 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_32 +2025-12-31 21:45:23.786 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_18 +2025-12-31 21:45:23.787 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_37 +2025-12-31 21:45:23.787 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_34 +2025-12-31 21:45:23.787 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: exportUsingPOST_1 +2025-12-31 21:45:23.791 WARN 68358 --- [ main] s.d.s.w.r.p.ParameterDataTypeReader : Trying to infer dataType java.lang.String[] +2025-12-31 21:45:23.792 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_29 +2025-12-31 21:45:23.793 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: deleteUsingDELETE_1 +2025-12-31 21:45:23.793 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_33 +2025-12-31 21:45:23.793 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listAllUsingGET_4 +2025-12-31 21:45:23.794 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listPageUsingGET_1 +2025-12-31 21:45:23.794 WARN 68358 --- [ main] s.d.s.w.r.p.ParameterDataTypeReader : Trying to infer dataType java.lang.String[] +2025-12-31 21:45:23.795 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_35 +2025-12-31 21:45:23.797 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_30 +2025-12-31 21:45:23.799 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_34 +2025-12-31 21:45:23.801 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listByPageUsingPOST_16 +2025-12-31 21:45:23.801 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_38 +2025-12-31 21:45:23.803 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_36 +2025-12-31 21:45:23.804 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_31 +2025-12-31 21:45:23.805 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_35 +2025-12-31 21:45:23.805 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_19 +2025-12-31 21:45:23.806 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_39 +2025-12-31 21:45:23.806 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_37 +2025-12-31 21:45:23.806 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: exportUsingPOST_2 +2025-12-31 21:45:23.807 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_32 +2025-12-31 21:45:23.808 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_36 +2025-12-31 21:45:23.808 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingPOST_14 +2025-12-31 21:45:23.809 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_40 +2025-12-31 21:45:23.809 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_38 +2025-12-31 21:45:23.812 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: deleteUsingPOST_2 +2025-12-31 21:45:23.813 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_37 +2025-12-31 21:45:23.813 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_38 +2025-12-31 21:45:23.813 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listPageUsingGET_2 +2025-12-31 21:45:23.816 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_39 +2025-12-31 21:45:23.819 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_20 +2025-12-31 21:45:23.829 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listAllCommodityUsingGET_1 +2025-12-31 21:45:23.829 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: queryByIdUsingGET_1 +2025-12-31 21:45:23.834 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateAudioUsingPOST_1 +2025-12-31 21:45:23.834 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateAudioUsingPOST_2 +2025-12-31 21:45:23.839 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: deleteUsingDELETE_2 +2025-12-31 21:45:23.840 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: uploadUsingPOST_1 +2025-12-31 21:45:23.842 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: clerkQueryWagesDetailsUsingGET_1 +2025-12-31 21:45:23.849 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: cancellationOrderUsingPOST_1 +2025-12-31 21:45:23.852 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: queryByIdUsingGET_2 +2025-12-31 21:45:23.852 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: queryByIdUsingGET_3 +2025-12-31 21:45:23.854 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: queryOrderByPageUsingPOST_1 +2025-12-31 21:45:23.857 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: customListByAllUsingGET_1 +2025-12-31 21:45:23.858 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: queryByIdUsingGET_4 +2025-12-31 21:45:23.858 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: checkSubscribeUsingGET_1 +2025-12-31 21:45:23.867 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateReviewStateUsingPOST_1 +2025-12-31 21:45:23.869 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: testUsingGET_1 +2025-12-31 21:45:23.873 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: sendSmsUsingGET_1 +2025-12-31 21:45:23.876 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getProfileUsingGET_1 +2025-12-31 21:45:23.881 INFO 68358 --- [ main] c.s.admin.api.WxCustomOrderQueryApiTest : Started WxCustomOrderQueryApiTest in 2.125 seconds (JVM running for 16.246) +2025-12-31 21:45:23.901 INFO 68358 --- [ main] c.s.a.common.apitest.ApiTestDataSeeder : API test tenant package pkg-basic already exists +2025-12-31 21:45:23.905 INFO 68358 --- [ main] c.s.a.common.apitest.ApiTestDataSeeder : API test tenant tenant-apitest already exists +2025-12-31 21:45:23.908 INFO 68358 --- [ main] c.s.a.common.apitest.ApiTestDataSeeder : API test admin user user-apitest-admin already exists +2025-12-31 21:45:23.909 INFO 68358 --- [ main] c.s.a.common.apitest.ApiTestDataSeeder : API test personnel group group-basic already exists +2025-12-31 21:45:23.910 INFO 68358 --- [ main] c.s.a.common.apitest.ApiTestDataSeeder : API test clerk level lvl-basic already exists +2025-12-31 21:45:23.913 INFO 68358 --- [ main] c.s.a.common.apitest.ApiTestDataSeeder : API test commodity svc-basic already exists +2025-12-31 21:45:23.920 INFO 68358 --- [ main] c.s.a.common.apitest.ApiTestDataSeeder : API test commodity pricing for svc-basic already exists +2025-12-31 21:45:23.926 INFO 68358 --- [ main] c.s.a.common.apitest.ApiTestDataSeeder : API test clerk clerk-apitest already exists +2025-12-31 21:45:23.928 INFO 68358 --- [ main] c.s.a.common.apitest.ApiTestDataSeeder : API test clerk commodity clerk-svc-basic already exists +2025-12-31 21:45:23.930 INFO 68358 --- [ main] c.s.a.common.apitest.ApiTestDataSeeder : API test gift gift-basic already exists +2025-12-31 21:45:23.938 INFO 68358 --- [ main] c.s.a.common.apitest.ApiTestDataSeeder : API test customer customer-apitest already exists, state refreshed +2025-12-31 21:45:23.992 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/queryByPage from 127.0.0.1 [Unknown] +2025-12-31 21:45:24.020 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/queryByPage - 200 OK (28ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:24.072 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/queryByPage from 127.0.0.1 [Unknown] +2025-12-31 21:45:24.085 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/queryByPage - 200 OK (13ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:24.118 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/random from 127.0.0.1 [Unknown] +2025-12-31 21:45:24.130 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=RANDOM rewardFlag? false +2025-12-31 21:45:24.151 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/random - 200 OK (33ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:24.166 INFO 68358 --- [ main] c.s.a.m.o.s.i.PlayOrderInfoServiceImpl : Order accepted successfully. orderId=vr3y03jao, orderNo=202512312145242145, acceptBy=clerk-apitest, operatorByType=1 +2025-12-31 21:45:24.205 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /order/order/revokeCompleted from 127.0.0.1 [Unknown] +2025-12-31 21:45:24.212 WARN 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /order/order/revokeCompleted - 200 OK (7ms) businessCode=500 success=false message=仅支持撤销普通服务订单 +2025-12-31 21:45:24.242 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/queryByPage from 127.0.0.1 [Unknown] +2025-12-31 21:45:24.256 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/queryByPage - 200 OK (14ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:24.285 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/queryByPage from 127.0.0.1 [Unknown] +2025-12-31 21:45:24.292 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/queryByPage - 200 OK (7ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:24.294 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/queryByPage from 127.0.0.1 [Unknown] +2025-12-31 21:45:24.304 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/queryByPage - 200 OK (10ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:24.317 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/random from 127.0.0.1 [Unknown] +2025-12-31 21:45:24.320 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=RANDOM rewardFlag? false +2025-12-31 21:45:24.339 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/random - 200 OK (22ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:24.370 INFO 68358 --- [ main] c.s.a.m.o.s.i.PlayOrderInfoServiceImpl : Order accepted successfully. orderId=pl6gczahd, orderNo=202512312145241775, acceptBy=clerk-apitest, operatorByType=1 +2025-12-31 21:45:24.405 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /order/order/revokeCompleted from 127.0.0.1 [Unknown] +2025-12-31 21:45:24.416 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /order/order/revokeCompleted - 200 OK (11ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:24.418 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/queryByPage from 127.0.0.1 [Unknown] +2025-12-31 21:45:24.429 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/queryByPage - 200 OK (11ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:24.433 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/custom/order/queryById from 127.0.0.1 [Unknown] +2025-12-31 21:45:24.444 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/custom/order/queryById - 200 OK (11ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:24.471 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/queryByPage from 127.0.0.1 [Unknown] +2025-12-31 21:45:24.484 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/queryByPage - 200 OK (13ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:24.538 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/queryByPage from 127.0.0.1 [Unknown] +2025-12-31 21:45:24.551 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/queryByPage - 200 OK (13ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:24.555 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/queryByPage from 127.0.0.1 [Unknown] +2025-12-31 21:45:24.566 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/queryByPage - 200 OK (11ms) businessCode=200 success=true message=操作成功 +[INFO] Tests run: 8, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 2.819 s - in com.starry.admin.api.WxCustomOrderQueryApiTest +[INFO] Running com.starry.admin.api.WxClerkUserBackwardCompatApiTest +2025-12-31 21:45:24.572 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Neither @ContextConfiguration nor @ContextHierarchy found for test class [com.starry.admin.api.WxClerkUserBackwardCompatApiTest], using SpringBootContextLoader +2025-12-31 21:45:24.572 INFO 68358 --- [ main] o.s.t.c.support.AbstractContextLoader : Could not detect default resource locations for test class [com.starry.admin.api.WxClerkUserBackwardCompatApiTest]: no resource found for suffixes {-context.xml, Context.groovy}. +2025-12-31 21:45:24.572 INFO 68358 --- [ main] t.c.s.AnnotationConfigContextLoaderUtils : Could not detect default configuration classes for test class [com.starry.admin.api.WxClerkUserBackwardCompatApiTest]: WxClerkUserBackwardCompatApiTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration. +2025-12-31 21:45:24.573 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Found @SpringBootConfiguration com.starry.admin.Application for test class com.starry.admin.api.WxClerkUserBackwardCompatApiTest +2025-12-31 21:45:24.573 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Loaded default TestExecutionListener class names from location [META-INF/spring.factories]: [org.springframework.test.context.web.ServletTestExecutionListener, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener, org.springframework.test.context.event.ApplicationEventsTestExecutionListener, org.springframework.test.context.support.DependencyInjectionTestExecutionListener, org.springframework.test.context.support.DirtiesContextTestExecutionListener, org.springframework.test.context.transaction.TransactionalTestExecutionListener, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener, org.springframework.test.context.event.EventPublishingTestExecutionListener, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener, org.springframework.boot.test.autoconfigure.webservices.client.MockWebServiceServerTestExecutionListener, org.springframework.security.test.context.support.WithSecurityContextTestExecutionListener, org.springframework.security.test.context.support.ReactorContextTestExecutionListener] +2025-12-31 21:45:24.573 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Using TestExecutionListeners: [org.springframework.test.context.web.ServletTestExecutionListener@15ff0f79, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener@15e0b2f5, org.springframework.test.context.event.ApplicationEventsTestExecutionListener@393830f3, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener@78c03d5d, org.springframework.boot.test.autoconfigure.SpringBootDependencyInjectionTestExecutionListener@15a971fb, org.springframework.test.context.support.DirtiesContextTestExecutionListener@54e0ea1, org.springframework.test.context.transaction.TransactionalTestExecutionListener@7d891953, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener@4dae96a, org.springframework.test.context.event.EventPublishingTestExecutionListener@5a2266a3, org.springframework.security.test.context.support.WithSecurityContextTestExecutionListener@2f6c4040, org.springframework.security.test.context.support.ReactorContextTestExecutionListener@1a1a977f, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener@4958acef, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener@86cc19, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener@4d25f209, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener@3ca35bd, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener@f79deff, org.springframework.boot.test.autoconfigure.webservices.client.MockWebServiceServerTestExecutionListener@39292d0d] +2025-12-31 21:45:24.589 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/clerk/user/queryByPage from 127.0.0.1 [Unknown] +2025-12-31 21:45:24.631 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/clerk/user/queryByPage - 200 OK (42ms) businessCode=200 success=true message=操作成功 +[INFO] Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.088 s - in com.starry.admin.api.WxClerkUserBackwardCompatApiTest +[INFO] Running com.starry.admin.api.WxCustomRewardOrderApiTest +2025-12-31 21:45:24.660 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Neither @ContextConfiguration nor @ContextHierarchy found for test class [com.starry.admin.api.WxCustomRewardOrderApiTest], using SpringBootContextLoader +2025-12-31 21:45:24.660 INFO 68358 --- [ main] o.s.t.c.support.AbstractContextLoader : Could not detect default resource locations for test class [com.starry.admin.api.WxCustomRewardOrderApiTest]: no resource found for suffixes {-context.xml, Context.groovy}. +2025-12-31 21:45:24.660 INFO 68358 --- [ main] t.c.s.AnnotationConfigContextLoaderUtils : Could not detect default configuration classes for test class [com.starry.admin.api.WxCustomRewardOrderApiTest]: WxCustomRewardOrderApiTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration. +2025-12-31 21:45:24.661 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Found @SpringBootConfiguration com.starry.admin.Application for test class com.starry.admin.api.WxCustomRewardOrderApiTest +2025-12-31 21:45:24.662 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Loaded default TestExecutionListener class names from location [META-INF/spring.factories]: [org.springframework.test.context.web.ServletTestExecutionListener, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener, org.springframework.test.context.event.ApplicationEventsTestExecutionListener, org.springframework.test.context.support.DependencyInjectionTestExecutionListener, org.springframework.test.context.support.DirtiesContextTestExecutionListener, org.springframework.test.context.transaction.TransactionalTestExecutionListener, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener, org.springframework.test.context.event.EventPublishingTestExecutionListener, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener, org.springframework.boot.test.autoconfigure.webservices.client.MockWebServiceServerTestExecutionListener, org.springframework.security.test.context.support.WithSecurityContextTestExecutionListener, org.springframework.security.test.context.support.ReactorContextTestExecutionListener] +2025-12-31 21:45:24.662 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Using TestExecutionListeners: [org.springframework.test.context.web.ServletTestExecutionListener@7c06c9ed, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener@3223ac36, org.springframework.test.context.event.ApplicationEventsTestExecutionListener@bf982de, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener@44eeaf3, org.springframework.boot.test.autoconfigure.SpringBootDependencyInjectionTestExecutionListener@4ecd1236, org.springframework.test.context.support.DirtiesContextTestExecutionListener@61a045c5, org.springframework.test.context.transaction.TransactionalTestExecutionListener@2608d45d, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener@55e2bb1d, org.springframework.test.context.event.EventPublishingTestExecutionListener@73985f35, org.springframework.security.test.context.support.WithSecurityContextTestExecutionListener@1075a2ee, org.springframework.security.test.context.support.ReactorContextTestExecutionListener@70bf2681, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener@304551d8, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener@115c112, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener@3c4a710c, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener@35c8d32a, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener@2f198fda, org.springframework.boot.test.autoconfigure.webservices.client.MockWebServiceServerTestExecutionListener@abc67a] +2025-12-31 21:45:24.683 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/reward from 127.0.0.1 [Unknown] +2025-12-31 21:45:24.688 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=REWARD rewardFlag? true +2025-12-31 21:45:24.694 WARN 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/reward - 200 OK (11ms) businessCode=998 success=false message=余额不足 +2025-12-31 21:45:24.717 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/reward from 127.0.0.1 [Unknown] +2025-12-31 21:45:24.720 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=REWARD rewardFlag? true +2025-12-31 21:45:24.749 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/reward - 200 OK (32ms) businessCode=200 success=true message=操作成功 +[INFO] Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.096 s - in com.starry.admin.api.WxCustomRewardOrderApiTest +[INFO] Running com.starry.admin.api.SysTenantPackageControllerApiTest +2025-12-31 21:45:24.756 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Neither @ContextConfiguration nor @ContextHierarchy found for test class [com.starry.admin.api.SysTenantPackageControllerApiTest], using SpringBootContextLoader +2025-12-31 21:45:24.756 INFO 68358 --- [ main] o.s.t.c.support.AbstractContextLoader : Could not detect default resource locations for test class [com.starry.admin.api.SysTenantPackageControllerApiTest]: no resource found for suffixes {-context.xml, Context.groovy}. +2025-12-31 21:45:24.756 INFO 68358 --- [ main] t.c.s.AnnotationConfigContextLoaderUtils : Could not detect default configuration classes for test class [com.starry.admin.api.SysTenantPackageControllerApiTest]: SysTenantPackageControllerApiTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration. +2025-12-31 21:45:24.757 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Found @SpringBootConfiguration com.starry.admin.Application for test class com.starry.admin.api.SysTenantPackageControllerApiTest +2025-12-31 21:45:24.757 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Loaded default TestExecutionListener class names from location [META-INF/spring.factories]: [org.springframework.test.context.web.ServletTestExecutionListener, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener, org.springframework.test.context.event.ApplicationEventsTestExecutionListener, org.springframework.test.context.support.DependencyInjectionTestExecutionListener, org.springframework.test.context.support.DirtiesContextTestExecutionListener, org.springframework.test.context.transaction.TransactionalTestExecutionListener, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener, org.springframework.test.context.event.EventPublishingTestExecutionListener, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener, org.springframework.boot.test.autoconfigure.webservices.client.MockWebServiceServerTestExecutionListener, org.springframework.security.test.context.support.WithSecurityContextTestExecutionListener, org.springframework.security.test.context.support.ReactorContextTestExecutionListener] +2025-12-31 21:45:24.757 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Using TestExecutionListeners: [org.springframework.test.context.web.ServletTestExecutionListener@43d05fc1, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener@3d7081f4, org.springframework.test.context.event.ApplicationEventsTestExecutionListener@73171817, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener@3ce820c4, org.springframework.boot.test.autoconfigure.SpringBootDependencyInjectionTestExecutionListener@7d075ecf, org.springframework.test.context.support.DirtiesContextTestExecutionListener@44411fba, org.springframework.test.context.transaction.TransactionalTestExecutionListener@fdd7085, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener@724e8fba, org.springframework.test.context.event.EventPublishingTestExecutionListener@3578461a, org.springframework.security.test.context.support.WithSecurityContextTestExecutionListener@790833c0, org.springframework.security.test.context.support.ReactorContextTestExecutionListener@1d352d3c, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener@1b80527f, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener@6c3f8f83, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener@541137f7, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener@6079ac84, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener@7973195e, org.springframework.boot.test.autoconfigure.webservices.client.MockWebServiceServerTestExecutionListener@6920c264] +2025-12-31 21:45:24.760 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /platform/package/get-simple-list from 127.0.0.1 [Unknown] +2025-12-31 21:45:24.765 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /platform/package/get-simple-list - 200 OK (5ms) businessCode=200 success=true message=操作成功 +[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.015 s - in com.starry.admin.api.SysTenantPackageControllerApiTest +[INFO] Running com.starry.admin.api.WxOrderInfoControllerApiTest +2025-12-31 21:45:24.770 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Neither @ContextConfiguration nor @ContextHierarchy found for test class [com.starry.admin.api.WxOrderInfoControllerApiTest], using SpringBootContextLoader +2025-12-31 21:45:24.771 INFO 68358 --- [ main] o.s.t.c.support.AbstractContextLoader : Could not detect default resource locations for test class [com.starry.admin.api.WxOrderInfoControllerApiTest]: no resource found for suffixes {-context.xml, Context.groovy}. +2025-12-31 21:45:24.771 INFO 68358 --- [ main] t.c.s.AnnotationConfigContextLoaderUtils : Could not detect default configuration classes for test class [com.starry.admin.api.WxOrderInfoControllerApiTest]: WxOrderInfoControllerApiTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration. +2025-12-31 21:45:24.771 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Found @SpringBootConfiguration com.starry.admin.Application for test class com.starry.admin.api.WxOrderInfoControllerApiTest +2025-12-31 21:45:24.772 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Loaded default TestExecutionListener class names from location [META-INF/spring.factories]: [org.springframework.test.context.web.ServletTestExecutionListener, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener, org.springframework.test.context.event.ApplicationEventsTestExecutionListener, org.springframework.test.context.support.DependencyInjectionTestExecutionListener, org.springframework.test.context.support.DirtiesContextTestExecutionListener, org.springframework.test.context.transaction.TransactionalTestExecutionListener, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener, org.springframework.test.context.event.EventPublishingTestExecutionListener, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener, org.springframework.boot.test.autoconfigure.webservices.client.MockWebServiceServerTestExecutionListener, org.springframework.security.test.context.support.WithSecurityContextTestExecutionListener, org.springframework.security.test.context.support.ReactorContextTestExecutionListener] +2025-12-31 21:45:24.772 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Using TestExecutionListeners: [org.springframework.test.context.web.ServletTestExecutionListener@1e49f8ca, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener@7711bbd9, org.springframework.test.context.event.ApplicationEventsTestExecutionListener@4c08b45e, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener@a5810be, org.springframework.boot.test.autoconfigure.SpringBootDependencyInjectionTestExecutionListener@5b863697, org.springframework.test.context.support.DirtiesContextTestExecutionListener@2133814d, org.springframework.test.context.transaction.TransactionalTestExecutionListener@28906b71, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener@6287533d, org.springframework.test.context.event.EventPublishingTestExecutionListener@8dff374, org.springframework.security.test.context.support.WithSecurityContextTestExecutionListener@355b32cb, org.springframework.security.test.context.support.ReactorContextTestExecutionListener@1e3b1cf2, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener@46fdaab3, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener@31ceb54b, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener@5def14d3, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener@1b755f10, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener@3076d6ff, org.springframework.boot.test.autoconfigure.webservices.client.MockWebServiceServerTestExecutionListener@74565957] +2025-12-31 21:45:24.793 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/random from 127.0.0.1 [Unknown] +2025-12-31 21:45:24.796 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=RANDOM rewardFlag? false +2025-12-31 21:45:24.811 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/random - 200 OK (18ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:24.815 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/clerk/order/queryById from 127.0.0.1 [Unknown] +2025-12-31 21:45:24.818 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/clerk/order/queryById - 200 OK (3ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:24.833 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/random from 127.0.0.1 [Unknown] +2025-12-31 21:45:24.835 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=RANDOM rewardFlag? false +2025-12-31 21:45:24.844 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/random - 200 OK (11ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:24.851 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/clerk/order/queryById from 127.0.0.1 [Unknown] +2025-12-31 21:45:24.854 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/clerk/order/queryById - 200 OK (3ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:24.867 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/random from 127.0.0.1 [Unknown] +2025-12-31 21:45:24.869 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=RANDOM rewardFlag? false +2025-12-31 21:45:24.882 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/random - 200 OK (15ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:24.890 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/clerk/order/queryByPage from 127.0.0.1 [Unknown] +2025-12-31 21:45:24.899 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/clerk/order/queryByPage - 200 OK (9ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:24.913 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/random from 127.0.0.1 [Unknown] +2025-12-31 21:45:24.917 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=RANDOM rewardFlag? false +2025-12-31 21:45:24.930 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/random - 200 OK (17ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:24.934 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/clerk/order/accept from 127.0.0.1 [Unknown] +2025-12-31 21:45:24.940 INFO 68358 --- [ main] c.s.a.m.o.s.i.PlayOrderInfoServiceImpl : Order accepted successfully. orderId=gilmirny4, orderNo=20251231214524953, acceptBy=clerk-apitest, operatorByType=1 +2025-12-31 21:45:24.942 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/clerk/order/accept - 200 OK (8ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:24.944 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/order/clerk/continue from 127.0.0.1 [Unknown] +2025-12-31 21:45:24.959 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/order/clerk/continue - 200 OK (15ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:24.962 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/order/clerk/continue from 127.0.0.1 [Unknown] +2025-12-31 21:45:24.967 WARN 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/order/clerk/continue - 200 OK (5ms) businessCode=500 success=false message=同一场订单只能续单一次 +2025-12-31 21:45:24.984 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/random from 127.0.0.1 [Unknown] +2025-12-31 21:45:24.986 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=RANDOM rewardFlag? false +2025-12-31 21:45:25.000 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/random - 200 OK (16ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:25.008 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/order/clerk/selectRandomOrderById from 127.0.0.1 [Unknown] +2025-12-31 21:45:25.012 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/order/clerk/selectRandomOrderById - 200 OK (4ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:25.050 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/random from 127.0.0.1 [Unknown] +2025-12-31 21:45:25.052 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=RANDOM rewardFlag? false +2025-12-31 21:45:25.062 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/random - 200 OK (12ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:25.070 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/order/clerk/selectRandomOrderById from 127.0.0.1 [Unknown] +2025-12-31 21:45:25.074 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/order/clerk/selectRandomOrderById - 200 OK (4ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:25.115 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/random from 127.0.0.1 [Unknown] +2025-12-31 21:45:25.119 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=RANDOM rewardFlag? false +2025-12-31 21:45:25.138 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/random - 200 OK (23ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:25.145 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/order/clerk/selectRandomOrderById from 127.0.0.1 [Unknown] +2025-12-31 21:45:25.148 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/order/clerk/selectRandomOrderById - 200 OK (3ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:25.164 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/random from 127.0.0.1 [Unknown] +2025-12-31 21:45:25.167 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=RANDOM rewardFlag? false +2025-12-31 21:45:25.181 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/random - 200 OK (17ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:25.189 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/order/clerk/selectRandomOrderById from 127.0.0.1 [Unknown] +2025-12-31 21:45:25.192 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/order/clerk/selectRandomOrderById - 200 OK (3ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:25.205 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/random from 127.0.0.1 [Unknown] +2025-12-31 21:45:25.207 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=RANDOM rewardFlag? false +2025-12-31 21:45:25.218 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/random - 200 OK (13ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:25.225 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/order/clerk/selectRandomOrderById from 127.0.0.1 [Unknown] +2025-12-31 21:45:25.229 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/order/clerk/selectRandomOrderById - 200 OK (4ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:25.241 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/random from 127.0.0.1 [Unknown] +2025-12-31 21:45:25.243 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=RANDOM rewardFlag? false +2025-12-31 21:45:25.258 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/random - 200 OK (17ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:25.269 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/order/clerk/selectRandomOrderById from 127.0.0.1 [Unknown] +2025-12-31 21:45:25.278 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/order/clerk/selectRandomOrderById - 200 OK (9ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:25.299 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/random from 127.0.0.1 [Unknown] +2025-12-31 21:45:25.301 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=RANDOM rewardFlag? false +2025-12-31 21:45:25.323 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/random - 200 OK (24ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:25.349 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/order/clerk/selectRandomOrderById from 127.0.0.1 [Unknown] +2025-12-31 21:45:25.354 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/order/clerk/selectRandomOrderById - 200 OK (5ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:25.387 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/random from 127.0.0.1 [Unknown] +2025-12-31 21:45:25.392 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=RANDOM rewardFlag? false +2025-12-31 21:45:25.412 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/random - 200 OK (25ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:25.425 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/order/clerk/selectRandomOrderById from 127.0.0.1 [Unknown] +2025-12-31 21:45:25.430 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/order/clerk/selectRandomOrderById - 200 OK (5ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:25.451 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/random from 127.0.0.1 [Unknown] +2025-12-31 21:45:25.454 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=RANDOM rewardFlag? false +2025-12-31 21:45:25.490 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/random - 200 OK (39ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:25.511 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/order/clerk/selectRandomOrderById from 127.0.0.1 [Unknown] +2025-12-31 21:45:25.517 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/order/clerk/selectRandomOrderById - 200 OK (6ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:25.537 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/random from 127.0.0.1 [Unknown] +2025-12-31 21:45:25.540 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=RANDOM rewardFlag? false +2025-12-31 21:45:25.558 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/random - 200 OK (21ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:25.576 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/order/clerk/selectRandomOrderById from 127.0.0.1 [Unknown] +2025-12-31 21:45:25.584 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/order/clerk/selectRandomOrderById - 200 OK (8ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:25.604 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/random from 127.0.0.1 [Unknown] +2025-12-31 21:45:25.607 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=RANDOM rewardFlag? false +2025-12-31 21:45:25.629 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/random - 200 OK (25ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:25.640 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/order/clerk/selectRandomOrderById from 127.0.0.1 [Unknown] +2025-12-31 21:45:25.644 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/order/clerk/selectRandomOrderById - 200 OK (4ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:25.659 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/random from 127.0.0.1 [Unknown] +2025-12-31 21:45:25.662 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=RANDOM rewardFlag? false +2025-12-31 21:45:25.673 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/random - 200 OK (14ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:25.682 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/order/clerk/selectRandomOrderById from 127.0.0.1 [Unknown] +2025-12-31 21:45:25.685 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/order/clerk/selectRandomOrderById - 200 OK (3ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:25.705 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/random from 127.0.0.1 [Unknown] +2025-12-31 21:45:25.708 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=RANDOM rewardFlag? false +2025-12-31 21:45:25.724 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/random - 200 OK (19ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:25.734 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/order/clerk/selectRandomOrderById from 127.0.0.1 [Unknown] +2025-12-31 21:45:25.740 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/order/clerk/selectRandomOrderById - 200 OK (6ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:25.757 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/random from 127.0.0.1 [Unknown] +2025-12-31 21:45:25.759 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=RANDOM rewardFlag? false +2025-12-31 21:45:25.778 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/random - 200 OK (21ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:25.791 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/order/clerk/selectRandomOrderById from 127.0.0.1 [Unknown] +2025-12-31 21:45:25.797 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/order/clerk/selectRandomOrderById - 200 OK (6ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:25.819 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/random from 127.0.0.1 [Unknown] +2025-12-31 21:45:25.822 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=RANDOM rewardFlag? false +2025-12-31 21:45:25.840 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/random - 200 OK (21ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:25.849 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/clerk/order/queryById from 127.0.0.1 [Unknown] +2025-12-31 21:45:25.853 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/clerk/order/queryById - 200 OK (4ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:25.876 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/random from 127.0.0.1 [Unknown] +2025-12-31 21:45:25.880 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=RANDOM rewardFlag? false +2025-12-31 21:45:25.905 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/random - 200 OK (30ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:25.917 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/clerk/order/queryById from 127.0.0.1 [Unknown] +2025-12-31 21:45:25.920 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/clerk/order/queryById - 200 OK (3ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:25.935 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/random from 127.0.0.1 [Unknown] +2025-12-31 21:45:25.938 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=RANDOM rewardFlag? false +2025-12-31 21:45:25.952 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/random - 200 OK (17ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:25.962 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/order/clerk/selectRandomOrderById from 127.0.0.1 [Unknown] +2025-12-31 21:45:25.966 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/order/clerk/selectRandomOrderById - 200 OK (4ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:25.980 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/random from 127.0.0.1 [Unknown] +2025-12-31 21:45:25.982 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=RANDOM rewardFlag? false +2025-12-31 21:45:25.992 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/random - 200 OK (12ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:25.996 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/order/clerk/selectRandomOrderById from 127.0.0.1 [Unknown] +2025-12-31 21:45:25.999 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/order/clerk/selectRandomOrderById - 200 OK (3ms) businessCode=200 success=true message=操作成功 +[INFO] Tests run: 22, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.231 s - in com.starry.admin.api.WxOrderInfoControllerApiTest +[INFO] Running com.starry.admin.api.AdminWithdrawalControllerApiTest +2025-12-31 21:45:26.002 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Neither @ContextConfiguration nor @ContextHierarchy found for test class [com.starry.admin.api.AdminWithdrawalControllerApiTest], using SpringBootContextLoader +2025-12-31 21:45:26.003 INFO 68358 --- [ main] o.s.t.c.support.AbstractContextLoader : Could not detect default resource locations for test class [com.starry.admin.api.AdminWithdrawalControllerApiTest]: no resource found for suffixes {-context.xml, Context.groovy}. +2025-12-31 21:45:26.003 INFO 68358 --- [ main] t.c.s.AnnotationConfigContextLoaderUtils : Could not detect default configuration classes for test class [com.starry.admin.api.AdminWithdrawalControllerApiTest]: AdminWithdrawalControllerApiTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration. +2025-12-31 21:45:26.005 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Found @SpringBootConfiguration com.starry.admin.Application for test class com.starry.admin.api.AdminWithdrawalControllerApiTest +2025-12-31 21:45:26.010 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Loaded default TestExecutionListener class names from location [META-INF/spring.factories]: [org.springframework.test.context.web.ServletTestExecutionListener, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener, org.springframework.test.context.event.ApplicationEventsTestExecutionListener, org.springframework.test.context.support.DependencyInjectionTestExecutionListener, org.springframework.test.context.support.DirtiesContextTestExecutionListener, org.springframework.test.context.transaction.TransactionalTestExecutionListener, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener, org.springframework.test.context.event.EventPublishingTestExecutionListener, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener, org.springframework.boot.test.autoconfigure.webservices.client.MockWebServiceServerTestExecutionListener, org.springframework.security.test.context.support.WithSecurityContextTestExecutionListener, org.springframework.security.test.context.support.ReactorContextTestExecutionListener] +2025-12-31 21:45:26.010 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Using TestExecutionListeners: [org.springframework.test.context.web.ServletTestExecutionListener@d538268, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener@cdbfd3a, org.springframework.test.context.event.ApplicationEventsTestExecutionListener@1cc21bf1, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener@ef77a7b, org.springframework.boot.test.autoconfigure.SpringBootDependencyInjectionTestExecutionListener@1fa6f90f, org.springframework.test.context.support.DirtiesContextTestExecutionListener@4c47e5ec, org.springframework.test.context.transaction.TransactionalTestExecutionListener@40d67206, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener@7547fcc5, org.springframework.test.context.event.EventPublishingTestExecutionListener@5d010de3, org.springframework.security.test.context.support.WithSecurityContextTestExecutionListener@2e9afb2a, org.springframework.security.test.context.support.ReactorContextTestExecutionListener@5d2ffabd, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener@17449409, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener@42ffed17, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener@3b451dc9, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener@191df20e, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener@2acad9f8, org.springframework.boot.test.autoconfigure.webservices.client.MockWebServiceServerTestExecutionListener@17600ee3] +2025-12-31 21:45:26.033 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /admin/withdraw/requests/withdraw-audit-vn7sd7bnw/audit from 127.0.0.1 [Unknown] +2025-12-31 21:45:26.048 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /admin/withdraw/requests/withdraw-audit-vn7sd7bnw/audit - 200 OK (15ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:26.061 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /admin/withdraw/requests/withdraw-audit-px43qze9d/audit from 127.0.0.1 [Unknown] +2025-12-31 21:45:26.065 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /admin/withdraw/requests/withdraw-audit-px43qze9d/audit - 200 OK (4ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:26.073 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /admin/withdraw/requests/withdraw-audit-qqtjcd7ak/audit from 127.0.0.1 [Unknown] +2025-12-31 21:45:26.075 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /admin/withdraw/requests/withdraw-audit-qqtjcd7ak/audit - 200 OK (2ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:26.115 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /admin/withdraw/requests/withdraw-audit-lik3ofqhw/audit from 127.0.0.1 [Unknown] +2025-12-31 21:45:26.123 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /admin/withdraw/requests/withdraw-audit-lik3ofqhw/audit - 200 OK (8ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:26.148 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /admin/withdraw/requests/withdraw-audit-ai2fbaoch/audit from 127.0.0.1 [Unknown] +2025-12-31 21:45:26.155 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /admin/withdraw/requests/withdraw-audit-ai2fbaoch/audit - 200 OK (7ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:26.165 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /admin/withdraw/requests/withdraw-audit-5rvt8tzvu/audit from 127.0.0.1 [Unknown] +2025-12-31 21:45:26.166 WARN 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /admin/withdraw/requests/withdraw-audit-5rvt8tzvu/audit - 200 OK (1ms) businessCode=500 success=false message=提现申请不存在或无权查看 +2025-12-31 21:45:26.170 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /admin/withdraw/requests/missing-request/audit from 127.0.0.1 [Unknown] +2025-12-31 21:45:26.171 WARN 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /admin/withdraw/requests/missing-request/audit - 200 OK (1ms) businessCode=500 success=false message=提现申请不存在或无权查看 +[INFO] Tests run: 7, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.17 s - in com.starry.admin.api.AdminWithdrawalControllerApiTest +[INFO] Running com.starry.admin.api.LegacyOrderIntegrationTest +2025-12-31 21:45:26.173 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Neither @ContextConfiguration nor @ContextHierarchy found for test class [com.starry.admin.api.LegacyOrderIntegrationTest], using SpringBootContextLoader +2025-12-31 21:45:26.173 INFO 68358 --- [ main] o.s.t.c.support.AbstractContextLoader : Could not detect default resource locations for test class [com.starry.admin.api.LegacyOrderIntegrationTest]: no resource found for suffixes {-context.xml, Context.groovy}. +2025-12-31 21:45:26.173 INFO 68358 --- [ main] t.c.s.AnnotationConfigContextLoaderUtils : Could not detect default configuration classes for test class [com.starry.admin.api.LegacyOrderIntegrationTest]: LegacyOrderIntegrationTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration. +2025-12-31 21:45:26.174 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Found @SpringBootConfiguration com.starry.admin.Application for test class com.starry.admin.api.LegacyOrderIntegrationTest +2025-12-31 21:45:26.174 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Loaded default TestExecutionListener class names from location [META-INF/spring.factories]: [org.springframework.test.context.web.ServletTestExecutionListener, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener, org.springframework.test.context.event.ApplicationEventsTestExecutionListener, org.springframework.test.context.support.DependencyInjectionTestExecutionListener, org.springframework.test.context.support.DirtiesContextTestExecutionListener, org.springframework.test.context.transaction.TransactionalTestExecutionListener, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener, org.springframework.test.context.event.EventPublishingTestExecutionListener, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener, org.springframework.boot.test.autoconfigure.webservices.client.MockWebServiceServerTestExecutionListener, org.springframework.security.test.context.support.WithSecurityContextTestExecutionListener, org.springframework.security.test.context.support.ReactorContextTestExecutionListener] +2025-12-31 21:45:26.174 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Using TestExecutionListeners: [org.springframework.test.context.web.ServletTestExecutionListener@53ca55c, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener@4e003f28, org.springframework.test.context.event.ApplicationEventsTestExecutionListener@19e6fa30, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener@e1cc4e5, org.springframework.boot.test.autoconfigure.SpringBootDependencyInjectionTestExecutionListener@6eea863f, org.springframework.test.context.support.DirtiesContextTestExecutionListener@215c0db5, org.springframework.test.context.transaction.TransactionalTestExecutionListener@fc544d4, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener@67968225, org.springframework.test.context.event.EventPublishingTestExecutionListener@5d773b96, org.springframework.security.test.context.support.WithSecurityContextTestExecutionListener@1c87b428, org.springframework.security.test.context.support.ReactorContextTestExecutionListener@39c1b088, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener@6a158a3f, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener@edab760, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener@2fdd7467, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener@1b2cd4e4, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener@5d2ee1cc, org.springframework.boot.test.autoconfigure.webservices.client.MockWebServiceServerTestExecutionListener@6143cbe] +2025-12-31 21:45:26.196 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /order/order/listByPage from 127.0.0.1 [Unknown] +2025-12-31 21:45:26.216 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /order/order/listByPage - 200 OK (19ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:26.242 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/queryByPage from 127.0.0.1 [Unknown] +2025-12-31 21:45:26.250 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/queryByPage - 200 OK (8ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:26.264 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/custom/order/queryById from 127.0.0.1 [Unknown] +2025-12-31 21:45:26.269 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/custom/order/queryById - 200 OK (5ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:26.279 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /order/order/legacy-dmuqp6ngd from 127.0.0.1 [Unknown] +2025-12-31 21:45:26.282 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /order/order/legacy-dmuqp6ngd - 200 OK (3ms) businessCode=200 success=true message=操作成功 +[INFO] Tests run: 6, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.115 s - in com.starry.admin.api.LegacyOrderIntegrationTest +[INFO] Running com.starry.admin.api.WxClerkAlbumUpdateApiTest +2025-12-31 21:45:26.291 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Neither @ContextConfiguration nor @ContextHierarchy found for test class [com.starry.admin.api.WxClerkAlbumUpdateApiTest], using SpringBootContextLoader +2025-12-31 21:45:26.291 INFO 68358 --- [ main] o.s.t.c.support.AbstractContextLoader : Could not detect default resource locations for test class [com.starry.admin.api.WxClerkAlbumUpdateApiTest]: no resource found for suffixes {-context.xml, Context.groovy}. +2025-12-31 21:45:26.291 INFO 68358 --- [ main] t.c.s.AnnotationConfigContextLoaderUtils : Could not detect default configuration classes for test class [com.starry.admin.api.WxClerkAlbumUpdateApiTest]: WxClerkAlbumUpdateApiTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration. +2025-12-31 21:45:26.291 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Found @SpringBootConfiguration com.starry.admin.Application for test class com.starry.admin.api.WxClerkAlbumUpdateApiTest +2025-12-31 21:45:26.292 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Loaded default TestExecutionListener class names from location [META-INF/spring.factories]: [org.springframework.test.context.web.ServletTestExecutionListener, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener, org.springframework.test.context.event.ApplicationEventsTestExecutionListener, org.springframework.test.context.support.DependencyInjectionTestExecutionListener, org.springframework.test.context.support.DirtiesContextTestExecutionListener, org.springframework.test.context.transaction.TransactionalTestExecutionListener, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener, org.springframework.test.context.event.EventPublishingTestExecutionListener, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener, org.springframework.boot.test.autoconfigure.webservices.client.MockWebServiceServerTestExecutionListener, org.springframework.security.test.context.support.WithSecurityContextTestExecutionListener, org.springframework.security.test.context.support.ReactorContextTestExecutionListener] +2025-12-31 21:45:26.292 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Using TestExecutionListeners: [org.springframework.test.context.web.ServletTestExecutionListener@50f9f2c3, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener@259a3d8c, org.springframework.test.context.event.ApplicationEventsTestExecutionListener@6da33794, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener@386686c1, org.springframework.boot.test.autoconfigure.SpringBootDependencyInjectionTestExecutionListener@271614e4, org.springframework.test.context.support.DirtiesContextTestExecutionListener@53142bd7, org.springframework.test.context.transaction.TransactionalTestExecutionListener@277fb9b6, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener@2ba37316, org.springframework.test.context.event.EventPublishingTestExecutionListener@3c05f3b2, org.springframework.security.test.context.support.WithSecurityContextTestExecutionListener@4e3d2d76, org.springframework.security.test.context.support.ReactorContextTestExecutionListener@14d59f0e, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener@24de6541, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener@37559a0b, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener@10a4570a, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener@283187ff, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener@7f121bd5, org.springframework.boot.test.autoconfigure.webservices.client.MockWebServiceServerTestExecutionListener@640c43fe] +2025-12-31 21:45:26.299 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/clerk/user/updateAlbum from 127.0.0.1 [Unknown] +2025-12-31 21:45:26.310 WARN 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/clerk/user/updateAlbum - 200 OK (11ms) businessCode=500 success=false message=最少上传一张照片 +2025-12-31 21:45:26.342 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/clerk/user/updateAlbum from 127.0.0.1 [Unknown] +2025-12-31 21:45:26.345 INFO 68358 --- [ main] c.s.a.m.w.controller.WxClerkController : [ClerkAlbumUpdate] clerkId=clerk-apitest tenantId=tenant-apitest requestedSet=[media-c2419413-55be-49, media-7abb9d23-961c-4c, media-ce8b113c-1e14-47] approvedIds=[ov3qxxqs0, media-7abb9d23-961c-4c, iaj6lu4sl, media-c2419413-55be-49, media-ce8b113c-1e14-47] newMediaIds=[] +2025-12-31 21:45:26.387 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/clerk/user/updateAlbum - 200 OK (45ms) businessCode=200 success=true message=修改成功 +2025-12-31 21:45:26.410 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/clerk/user/updateAlbum from 127.0.0.1 [Unknown] +2025-12-31 21:45:26.414 INFO 68358 --- [ main] c.s.a.m.w.controller.WxClerkController : [ClerkAlbumUpdate] clerkId=clerk-apitest tenantId=tenant-apitest requestedSet=[https://oss.apitest/legacy-1.png, https://oss.apitest/legacy-2.png, media-829e42d0-8095-49] approvedIds=[media-7abb9d23-961c-4c, media-c2419413-55be-49, media-ce8b113c-1e14-47] newMediaIds=[https://oss.apitest/legacy-1.png, media-829e42d0-8095-49, https://oss.apitest/legacy-2.png] +2025-12-31 21:45:26.416 WARN 68358 --- [ main] c.s.a.m.w.controller.WxClerkController : [ClerkAlbumUpdate] some album entries not found in play_media, treating as legacy values, clerkId=clerk-apitest tenantId=tenant-apitest missingIds=[https://oss.apitest/legacy-1.png, https://oss.apitest/legacy-2.png] existingIds=[media-829e42d0-8095-49] +2025-12-31 21:45:26.416 INFO 68358 --- [ main] c.s.a.m.w.controller.WxClerkController : [ClerkAlbumUpdate] loaded newMediaEntities for validation, clerkId=clerk-apitest tenantId=tenant-apitest mediaSummaries=[id=media-829e42d0-8095-49,status=ready,ownerType=clerk,ownerId=clerk-apitest,tenantId=tenant-apitest] +2025-12-31 21:45:26.425 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/clerk/user/updateAlbum - 200 OK (15ms) businessCode=200 success=true message=提交成功,等待审核~ +2025-12-31 21:45:26.450 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/clerk/user/updateAlbum from 127.0.0.1 [Unknown] +2025-12-31 21:45:26.453 INFO 68358 --- [ main] c.s.a.m.w.controller.WxClerkController : [ClerkAlbumUpdate] clerkId=clerk-apitest tenantId=tenant-apitest requestedSet=[media-d443b004-e581-46] approvedIds=[media-3aa75293-b3bb-45, media-7abb9d23-961c-4c, media-c2419413-55be-49, media-ce8b113c-1e14-47, media-d443b004-e581-46] newMediaIds=[] +2025-12-31 21:45:26.496 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/clerk/user/updateAlbum - 200 OK (46ms) businessCode=200 success=true message=修改成功 +[INFO] Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.217 s - in com.starry.admin.api.WxClerkAlbumUpdateApiTest +[INFO] Running com.starry.admin.api.HealthControllerApiTest +2025-12-31 21:45:26.507 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Neither @ContextConfiguration nor @ContextHierarchy found for test class [com.starry.admin.api.HealthControllerApiTest], using SpringBootContextLoader +2025-12-31 21:45:26.508 INFO 68358 --- [ main] o.s.t.c.support.AbstractContextLoader : Could not detect default resource locations for test class [com.starry.admin.api.HealthControllerApiTest]: no resource found for suffixes {-context.xml, Context.groovy}. +2025-12-31 21:45:26.508 INFO 68358 --- [ main] t.c.s.AnnotationConfigContextLoaderUtils : Could not detect default configuration classes for test class [com.starry.admin.api.HealthControllerApiTest]: HealthControllerApiTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration. +2025-12-31 21:45:26.508 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Found @SpringBootConfiguration com.starry.admin.Application for test class com.starry.admin.api.HealthControllerApiTest +2025-12-31 21:45:26.509 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Loaded default TestExecutionListener class names from location [META-INF/spring.factories]: [org.springframework.test.context.web.ServletTestExecutionListener, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener, org.springframework.test.context.event.ApplicationEventsTestExecutionListener, org.springframework.test.context.support.DependencyInjectionTestExecutionListener, org.springframework.test.context.support.DirtiesContextTestExecutionListener, org.springframework.test.context.transaction.TransactionalTestExecutionListener, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener, org.springframework.test.context.event.EventPublishingTestExecutionListener, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener, org.springframework.boot.test.autoconfigure.webservices.client.MockWebServiceServerTestExecutionListener, org.springframework.security.test.context.support.WithSecurityContextTestExecutionListener, org.springframework.security.test.context.support.ReactorContextTestExecutionListener] +2025-12-31 21:45:26.509 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Using TestExecutionListeners: [org.springframework.test.context.web.ServletTestExecutionListener@1002f8d9, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener@4dba01ce, org.springframework.test.context.event.ApplicationEventsTestExecutionListener@27b92d20, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener@7d1e40f3, org.springframework.boot.test.autoconfigure.SpringBootDependencyInjectionTestExecutionListener@7addbbb9, org.springframework.test.context.support.DirtiesContextTestExecutionListener@6774715d, org.springframework.test.context.transaction.TransactionalTestExecutionListener@94a80be, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener@6dc50bc, org.springframework.test.context.event.EventPublishingTestExecutionListener@114b23ad, org.springframework.security.test.context.support.WithSecurityContextTestExecutionListener@55715640, org.springframework.security.test.context.support.ReactorContextTestExecutionListener@8e36320, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener@6c5e9b30, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener@24c08b5d, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener@7bdc0ad3, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener@68b59ceb, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener@70aa1dd6, org.springframework.boot.test.autoconfigure.webservices.client.MockWebServiceServerTestExecutionListener@5090eafd] +2025-12-31 21:45:26.514 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /health/ping from 127.0.0.1 [Unknown] +2025-12-31 21:45:26.514 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /health/ping - 200 OK (0ms) businessCode=200 success=true message=操作成功 +[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.009 s - in com.starry.admin.api.HealthControllerApiTest +[INFO] Running com.starry.admin.api.PlayCommodityInfoApiTest +2025-12-31 21:45:26.518 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Neither @ContextConfiguration nor @ContextHierarchy found for test class [com.starry.admin.api.PlayCommodityInfoApiTest], using SpringBootContextLoader +2025-12-31 21:45:26.519 INFO 68358 --- [ main] o.s.t.c.support.AbstractContextLoader : Could not detect default resource locations for test class [com.starry.admin.api.PlayCommodityInfoApiTest]: no resource found for suffixes {-context.xml, Context.groovy}. +2025-12-31 21:45:26.519 INFO 68358 --- [ main] t.c.s.AnnotationConfigContextLoaderUtils : Could not detect default configuration classes for test class [com.starry.admin.api.PlayCommodityInfoApiTest]: PlayCommodityInfoApiTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration. +2025-12-31 21:45:26.520 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Found @SpringBootConfiguration com.starry.admin.Application for test class com.starry.admin.api.PlayCommodityInfoApiTest +2025-12-31 21:45:26.520 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Loaded default TestExecutionListener class names from location [META-INF/spring.factories]: [org.springframework.test.context.web.ServletTestExecutionListener, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener, org.springframework.test.context.event.ApplicationEventsTestExecutionListener, org.springframework.test.context.support.DependencyInjectionTestExecutionListener, org.springframework.test.context.support.DirtiesContextTestExecutionListener, org.springframework.test.context.transaction.TransactionalTestExecutionListener, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener, org.springframework.test.context.event.EventPublishingTestExecutionListener, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener, org.springframework.boot.test.autoconfigure.webservices.client.MockWebServiceServerTestExecutionListener, org.springframework.security.test.context.support.WithSecurityContextTestExecutionListener, org.springframework.security.test.context.support.ReactorContextTestExecutionListener] +2025-12-31 21:45:26.520 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Using TestExecutionListeners: [org.springframework.test.context.web.ServletTestExecutionListener@7d9b0c1f, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener@b74ce29, org.springframework.test.context.event.ApplicationEventsTestExecutionListener@14788eec, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener@3978cbe6, org.springframework.boot.test.autoconfigure.SpringBootDependencyInjectionTestExecutionListener@1c26d322, org.springframework.test.context.support.DirtiesContextTestExecutionListener@318e5309, org.springframework.test.context.transaction.TransactionalTestExecutionListener@6151a43a, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener@1e09740d, org.springframework.test.context.event.EventPublishingTestExecutionListener@349c0b2d, org.springframework.security.test.context.support.WithSecurityContextTestExecutionListener@774900ac, org.springframework.security.test.context.support.ReactorContextTestExecutionListener@1bd51a0b, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener@4e29ac60, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener@1a3803eb, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener@25cb3c60, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener@167d7f90, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener@15348b93, org.springframework.boot.test.autoconfigure.webservices.client.MockWebServiceServerTestExecutionListener@4f49e585] +2025-12-31 21:45:26.523 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /shop/commodity/listAll from 127.0.0.1 [Unknown] +2025-12-31 21:45:26.545 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /shop/commodity/listAll - 200 OK (22ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:26.549 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /shop/commodity/updateInfo from 127.0.0.1 [Unknown] +{"id":"svc-basic","lvl-basic":null} +2025-12-31 21:45:26.552 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /shop/commodity/updateInfo - 200 OK (3ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:26.572 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/random from 127.0.0.1 [Unknown] +2025-12-31 21:45:26.575 WARN 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/random - 200 OK (3ms) businessCode=500 success=false message=服务项目不存在 +2025-12-31 21:45:26.590 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /shop/commodity/updateInfo from 127.0.0.1 [Unknown] +{"id":"svc-child-mdphrxng9","lvl-basic":"188.50"} +2025-12-31 21:45:26.596 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /shop/commodity/updateInfo - 200 OK (6ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:26.614 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /shop/commodity/getTableName from 127.0.0.1 [Unknown] +2025-12-31 21:45:26.615 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /shop/commodity/getTableName - 200 OK (1ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:26.626 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /shop/commodity/update/svc-child-gu47dj9o0 from 127.0.0.1 [Unknown] +2025-12-31 21:45:26.659 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /shop/commodity/update/svc-child-gu47dj9o0 - 200 OK (33ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:26.689 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/commodity/custom/queryClerkAllCommodity from 127.0.0.1 [Unknown] +2025-12-31 21:45:26.701 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/commodity/custom/queryClerkAllCommodity - 200 OK (12ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:26.731 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/commodity/custom/queryClerkAllCommodityByLevel from 127.0.0.1 [Unknown] +2025-12-31 21:45:26.733 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/commodity/custom/queryClerkAllCommodityByLevel - 200 OK (2ms) businessCode=200 success=true message=操作成功 +[INFO] Tests run: 8, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.229 s - in com.starry.admin.api.PlayCommodityInfoApiTest +[INFO] Running com.starry.admin.api.WxCouponControllerApiTest +2025-12-31 21:45:26.747 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Neither @ContextConfiguration nor @ContextHierarchy found for test class [com.starry.admin.api.WxCouponControllerApiTest], using SpringBootContextLoader +2025-12-31 21:45:26.747 INFO 68358 --- [ main] o.s.t.c.support.AbstractContextLoader : Could not detect default resource locations for test class [com.starry.admin.api.WxCouponControllerApiTest]: no resource found for suffixes {-context.xml, Context.groovy}. +2025-12-31 21:45:26.747 INFO 68358 --- [ main] t.c.s.AnnotationConfigContextLoaderUtils : Could not detect default configuration classes for test class [com.starry.admin.api.WxCouponControllerApiTest]: WxCouponControllerApiTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration. +2025-12-31 21:45:26.748 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Found @SpringBootConfiguration com.starry.admin.Application for test class com.starry.admin.api.WxCouponControllerApiTest +2025-12-31 21:45:26.748 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Loaded default TestExecutionListener class names from location [META-INF/spring.factories]: [org.springframework.test.context.web.ServletTestExecutionListener, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener, org.springframework.test.context.event.ApplicationEventsTestExecutionListener, org.springframework.test.context.support.DependencyInjectionTestExecutionListener, org.springframework.test.context.support.DirtiesContextTestExecutionListener, org.springframework.test.context.transaction.TransactionalTestExecutionListener, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener, org.springframework.test.context.event.EventPublishingTestExecutionListener, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener, org.springframework.boot.test.autoconfigure.webservices.client.MockWebServiceServerTestExecutionListener, org.springframework.security.test.context.support.WithSecurityContextTestExecutionListener, org.springframework.security.test.context.support.ReactorContextTestExecutionListener] +2025-12-31 21:45:26.748 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Using TestExecutionListeners: [org.springframework.test.context.web.ServletTestExecutionListener@4a6ed4c6, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener@7464e79f, org.springframework.test.context.event.ApplicationEventsTestExecutionListener@3592044, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener@72900861, org.springframework.boot.test.autoconfigure.SpringBootDependencyInjectionTestExecutionListener@4ee43a11, org.springframework.test.context.support.DirtiesContextTestExecutionListener@1def744d, org.springframework.test.context.transaction.TransactionalTestExecutionListener@57fe2cb4, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener@255ff52a, org.springframework.test.context.event.EventPublishingTestExecutionListener@4a047722, org.springframework.security.test.context.support.WithSecurityContextTestExecutionListener@2c2f2f33, org.springframework.security.test.context.support.ReactorContextTestExecutionListener@a123d8e, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener@503e7f43, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener@39eaaf01, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener@6ce949b8, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener@770cf7e6, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener@546b5a23, org.springframework.boot.test.autoconfigure.webservices.client.MockWebServiceServerTestExecutionListener@38957508] +2025-12-31 21:45:26.766 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/coupon/custom/obtainCoupon from 127.0.0.1 [Unknown] +2025-12-31 21:45:26.770 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/coupon/custom/obtainCoupon - 200 OK (4ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:26.784 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/coupon/custom/obtainCoupon from 127.0.0.1 [Unknown] +2025-12-31 21:45:26.793 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/coupon/custom/obtainCoupon - 200 OK (9ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:26.797 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/coupon/custom/obtainCoupon from 127.0.0.1 [Unknown] +2025-12-31 21:45:26.800 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/coupon/custom/obtainCoupon - 200 OK (3ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:26.818 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/coupon/custom/obtainCoupon from 127.0.0.1 [Unknown] +2025-12-31 21:45:26.826 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/coupon/custom/obtainCoupon - 200 OK (8ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:26.854 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/coupon/custom/queryByOrder from 127.0.0.1 [Unknown] +2025-12-31 21:45:26.856 INFO 68358 --- [ main] c.s.a.m.w.controller.WxCouponController : {"clerkId":"","commodityId":"svc-basic","commodityQuantity":1,"levelId":"lvl-basic","placeType":"1"} +2025-12-31 21:45:26.902 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/coupon/custom/queryByOrder - 200 OK (48ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:26.923 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/coupon/custom/queryAll from 127.0.0.1 [Unknown] +2025-12-31 21:45:26.937 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/coupon/custom/queryAll - 200 OK (14ms) businessCode=200 success=true message=操作成功 +[INFO] Tests run: 5, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.199 s - in com.starry.admin.api.WxCouponControllerApiTest +[INFO] Running com.starry.admin.api.BlindBoxServiceWeightTest +2025-12-31 21:45:26.947 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Neither @ContextConfiguration nor @ContextHierarchy found for test class [com.starry.admin.api.BlindBoxServiceWeightTest], using SpringBootContextLoader +2025-12-31 21:45:26.948 INFO 68358 --- [ main] o.s.t.c.support.AbstractContextLoader : Could not detect default resource locations for test class [com.starry.admin.api.BlindBoxServiceWeightTest]: no resource found for suffixes {-context.xml, Context.groovy}. +2025-12-31 21:45:26.948 INFO 68358 --- [ main] t.c.s.AnnotationConfigContextLoaderUtils : Could not detect default configuration classes for test class [com.starry.admin.api.BlindBoxServiceWeightTest]: BlindBoxServiceWeightTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration. +2025-12-31 21:45:26.948 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Found @SpringBootConfiguration com.starry.admin.Application for test class com.starry.admin.api.BlindBoxServiceWeightTest +2025-12-31 21:45:26.948 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Loaded default TestExecutionListener class names from location [META-INF/spring.factories]: [org.springframework.test.context.web.ServletTestExecutionListener, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener, org.springframework.test.context.event.ApplicationEventsTestExecutionListener, org.springframework.test.context.support.DependencyInjectionTestExecutionListener, org.springframework.test.context.support.DirtiesContextTestExecutionListener, org.springframework.test.context.transaction.TransactionalTestExecutionListener, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener, org.springframework.test.context.event.EventPublishingTestExecutionListener, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener, org.springframework.boot.test.autoconfigure.webservices.client.MockWebServiceServerTestExecutionListener, org.springframework.security.test.context.support.WithSecurityContextTestExecutionListener, org.springframework.security.test.context.support.ReactorContextTestExecutionListener] +2025-12-31 21:45:26.949 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Using TestExecutionListeners: [org.springframework.test.context.web.ServletTestExecutionListener@87a5f58, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener@3a4a95ad, org.springframework.test.context.event.ApplicationEventsTestExecutionListener@15ee1971, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener@d2d0bde, org.springframework.boot.test.autoconfigure.SpringBootDependencyInjectionTestExecutionListener@57f715bc, org.springframework.test.context.support.DirtiesContextTestExecutionListener@39fe0512, org.springframework.test.context.transaction.TransactionalTestExecutionListener@5cbea6cd, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener@39a8357f, org.springframework.test.context.event.EventPublishingTestExecutionListener@561d8d03, org.springframework.security.test.context.support.WithSecurityContextTestExecutionListener@1f82c447, org.springframework.security.test.context.support.ReactorContextTestExecutionListener@362381b4, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener@4ed849c2, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener@7417b08f, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener@7dbee2b6, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener@57bae294, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener@5b2027f8, org.springframework.boot.test.autoconfigure.webservices.client.MockWebServiceServerTestExecutionListener@127a77db] +[INFO] Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 6.212 s - in com.starry.admin.api.BlindBoxServiceWeightTest +[INFO] Running com.starry.admin.api.WxCustomOrderEvaluationApiTest +2025-12-31 21:45:33.160 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Neither @ContextConfiguration nor @ContextHierarchy found for test class [com.starry.admin.api.WxCustomOrderEvaluationApiTest], using SpringBootContextLoader +2025-12-31 21:45:33.160 INFO 68358 --- [ main] o.s.t.c.support.AbstractContextLoader : Could not detect default resource locations for test class [com.starry.admin.api.WxCustomOrderEvaluationApiTest]: no resource found for suffixes {-context.xml, Context.groovy}. +2025-12-31 21:45:33.160 INFO 68358 --- [ main] t.c.s.AnnotationConfigContextLoaderUtils : Could not detect default configuration classes for test class [com.starry.admin.api.WxCustomOrderEvaluationApiTest]: WxCustomOrderEvaluationApiTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration. +2025-12-31 21:45:33.161 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Found @SpringBootConfiguration com.starry.admin.Application for test class com.starry.admin.api.WxCustomOrderEvaluationApiTest +2025-12-31 21:45:33.161 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Loaded default TestExecutionListener class names from location [META-INF/spring.factories]: [org.springframework.test.context.web.ServletTestExecutionListener, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener, org.springframework.test.context.event.ApplicationEventsTestExecutionListener, org.springframework.test.context.support.DependencyInjectionTestExecutionListener, org.springframework.test.context.support.DirtiesContextTestExecutionListener, org.springframework.test.context.transaction.TransactionalTestExecutionListener, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener, org.springframework.test.context.event.EventPublishingTestExecutionListener, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener, org.springframework.boot.test.autoconfigure.webservices.client.MockWebServiceServerTestExecutionListener, org.springframework.security.test.context.support.WithSecurityContextTestExecutionListener, org.springframework.security.test.context.support.ReactorContextTestExecutionListener] +2025-12-31 21:45:33.161 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Using TestExecutionListeners: [org.springframework.test.context.web.ServletTestExecutionListener@69462656, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener@30d379ea, org.springframework.test.context.event.ApplicationEventsTestExecutionListener@1c1c5f02, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener@5ca30d06, org.springframework.boot.test.autoconfigure.SpringBootDependencyInjectionTestExecutionListener@48ff452, org.springframework.test.context.support.DirtiesContextTestExecutionListener@2f38d100, org.springframework.test.context.transaction.TransactionalTestExecutionListener@51a27faa, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener@15ad83a5, org.springframework.test.context.event.EventPublishingTestExecutionListener@6e7bd826, org.springframework.security.test.context.support.WithSecurityContextTestExecutionListener@722b438, org.springframework.security.test.context.support.ReactorContextTestExecutionListener@453fd459, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener@3c76d7f0, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener@c7c82b0, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener@1e6d6473, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener@25cbe6fb, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener@2f887ce5, org.springframework.boot.test.autoconfigure.webservices.client.MockWebServiceServerTestExecutionListener@478902a6] +2025-12-31 21:45:33.177 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/random from 127.0.0.1 [Unknown] +2025-12-31 21:45:33.180 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=RANDOM rewardFlag? false +2025-12-31 21:45:33.195 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/random - 200 OK (18ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:33.203 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/evaluate/add from 127.0.0.1 [Unknown] +2025-12-31 21:45:33.215 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/evaluate/add - 200 OK (12ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:33.218 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/custom/order/evaluate/queryByOrderId from 127.0.0.1 [Unknown] +2025-12-31 21:45:33.223 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/custom/order/evaluate/queryByOrderId - 200 OK (5ms) businessCode=200 success=true message=操作成功 +[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.065 s - in com.starry.admin.api.WxCustomOrderEvaluationApiTest +[INFO] Running com.starry.admin.api.BlindBoxPoolControllerApiTest +2025-12-31 21:45:33.226 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Neither @ContextConfiguration nor @ContextHierarchy found for test class [com.starry.admin.api.BlindBoxPoolControllerApiTest], using SpringBootContextLoader +2025-12-31 21:45:33.227 INFO 68358 --- [ main] o.s.t.c.support.AbstractContextLoader : Could not detect default resource locations for test class [com.starry.admin.api.BlindBoxPoolControllerApiTest]: no resource found for suffixes {-context.xml, Context.groovy}. +2025-12-31 21:45:33.227 INFO 68358 --- [ main] t.c.s.AnnotationConfigContextLoaderUtils : Could not detect default configuration classes for test class [com.starry.admin.api.BlindBoxPoolControllerApiTest]: BlindBoxPoolControllerApiTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration. +2025-12-31 21:45:33.228 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Found @SpringBootConfiguration com.starry.admin.Application for test class com.starry.admin.api.BlindBoxPoolControllerApiTest +2025-12-31 21:45:33.229 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Loaded default TestExecutionListener class names from location [META-INF/spring.factories]: [org.springframework.test.context.web.ServletTestExecutionListener, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener, org.springframework.test.context.event.ApplicationEventsTestExecutionListener, org.springframework.test.context.support.DependencyInjectionTestExecutionListener, org.springframework.test.context.support.DirtiesContextTestExecutionListener, org.springframework.test.context.transaction.TransactionalTestExecutionListener, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener, org.springframework.test.context.event.EventPublishingTestExecutionListener, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener, org.springframework.boot.test.autoconfigure.webservices.client.MockWebServiceServerTestExecutionListener, org.springframework.security.test.context.support.WithSecurityContextTestExecutionListener, org.springframework.security.test.context.support.ReactorContextTestExecutionListener] +2025-12-31 21:45:33.229 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Using TestExecutionListeners: [org.springframework.test.context.web.ServletTestExecutionListener@ace4d91, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener@db9a774, org.springframework.test.context.event.ApplicationEventsTestExecutionListener@33bc02d5, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener@33cfde71, org.springframework.boot.test.autoconfigure.SpringBootDependencyInjectionTestExecutionListener@4b95af5c, org.springframework.test.context.support.DirtiesContextTestExecutionListener@b57235d, org.springframework.test.context.transaction.TransactionalTestExecutionListener@58ae2248, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener@155f437a, org.springframework.test.context.event.EventPublishingTestExecutionListener@7356f1c2, org.springframework.security.test.context.support.WithSecurityContextTestExecutionListener@41a9793e, org.springframework.security.test.context.support.ReactorContextTestExecutionListener@683cbf21, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener@71775cf, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener@430b5c0e, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener@49e1bdd8, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener@4429d672, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener@78ac7a35, org.springframework.boot.test.autoconfigure.webservices.client.MockWebServiceServerTestExecutionListener@615ea202] +2025-12-31 21:45:33.239 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /play/blind-box/pool/gifts from 127.0.0.1 [Unknown] +2025-12-31 21:45:33.244 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /play/blind-box/pool/gifts - 200 OK (5ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:33.244 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /play/blind-box/pool from 127.0.0.1 [Unknown] +2025-12-31 21:45:33.250 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /play/blind-box/pool - 200 OK (6ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:33.252 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: PUT /play/blind-box/pool/2006557376496287746 from 127.0.0.1 [Unknown] +2025-12-31 21:45:33.258 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: PUT /play/blind-box/pool/2006557376496287746 - 200 OK (6ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:33.260 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /play/blind-box/pool from 127.0.0.1 [Unknown] +2025-12-31 21:45:33.265 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /play/blind-box/pool - 200 OK (5ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:33.270 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: PUT /play/blind-box/pool/2006557376555008001 from 127.0.0.1 [Unknown] +2025-12-31 21:45:33.276 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: PUT /play/blind-box/pool/2006557376555008001 - 200 OK (6ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:33.277 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: DELETE /play/blind-box/pool/2006557376555008001 from 127.0.0.1 [Unknown] +2025-12-31 21:45:33.281 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: DELETE /play/blind-box/pool/2006557376555008001 - 200 OK (4ms) businessCode=200 success=true message=操作成功 +[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.062 s - in com.starry.admin.api.BlindBoxPoolControllerApiTest +[INFO] Running com.starry.admin.api.WxCustomRandomOrderApiTest +2025-12-31 21:45:33.289 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Neither @ContextConfiguration nor @ContextHierarchy found for test class [com.starry.admin.api.WxCustomRandomOrderApiTest], using SpringBootContextLoader +2025-12-31 21:45:33.290 INFO 68358 --- [ main] o.s.t.c.support.AbstractContextLoader : Could not detect default resource locations for test class [com.starry.admin.api.WxCustomRandomOrderApiTest]: no resource found for suffixes {-context.xml, Context.groovy}. +2025-12-31 21:45:33.290 INFO 68358 --- [ main] t.c.s.AnnotationConfigContextLoaderUtils : Could not detect default configuration classes for test class [com.starry.admin.api.WxCustomRandomOrderApiTest]: WxCustomRandomOrderApiTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration. +2025-12-31 21:45:33.292 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Found @SpringBootConfiguration com.starry.admin.Application for test class com.starry.admin.api.WxCustomRandomOrderApiTest +2025-12-31 21:45:33.292 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Loaded default TestExecutionListener class names from location [META-INF/spring.factories]: [org.springframework.test.context.web.ServletTestExecutionListener, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener, org.springframework.test.context.event.ApplicationEventsTestExecutionListener, org.springframework.test.context.support.DependencyInjectionTestExecutionListener, org.springframework.test.context.support.DirtiesContextTestExecutionListener, org.springframework.test.context.transaction.TransactionalTestExecutionListener, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener, org.springframework.test.context.event.EventPublishingTestExecutionListener, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener, org.springframework.boot.test.autoconfigure.webservices.client.MockWebServiceServerTestExecutionListener, org.springframework.security.test.context.support.WithSecurityContextTestExecutionListener, org.springframework.security.test.context.support.ReactorContextTestExecutionListener] +2025-12-31 21:45:33.292 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Using TestExecutionListeners: [org.springframework.test.context.web.ServletTestExecutionListener@36136c04, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener@5555496b, org.springframework.test.context.event.ApplicationEventsTestExecutionListener@56160a76, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener@262d5fd8, org.springframework.boot.test.autoconfigure.SpringBootDependencyInjectionTestExecutionListener@b737455, org.springframework.test.context.support.DirtiesContextTestExecutionListener@74126a41, org.springframework.test.context.transaction.TransactionalTestExecutionListener@12318b0f, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener@5e2ed50e, org.springframework.test.context.event.EventPublishingTestExecutionListener@4eefd342, org.springframework.security.test.context.support.WithSecurityContextTestExecutionListener@29c8f8bc, org.springframework.security.test.context.support.ReactorContextTestExecutionListener@37bf6779, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener@1f114225, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener@2f54f746, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener@4137e708, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener@d7fc4f8, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener@18eabf18, org.springframework.boot.test.autoconfigure.webservices.client.MockWebServiceServerTestExecutionListener@108c9584] +2025-12-31 21:45:33.318 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/coupon/custom/obtainCoupon from 127.0.0.1 [Unknown] +2025-12-31 21:45:33.326 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/coupon/custom/obtainCoupon - 200 OK (8ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:33.327 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/coupon/custom/queryByOrder from 127.0.0.1 [Unknown] +2025-12-31 21:45:33.329 INFO 68358 --- [ main] c.s.a.m.w.controller.WxCouponController : {"clerkId":"","commodityId":"svc-basic","commodityQuantity":1,"levelId":"lvl-basic","placeType":"1"} +2025-12-31 21:45:33.355 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/coupon/custom/queryByOrder - 200 OK (28ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:33.358 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/random from 127.0.0.1 [Unknown] +2025-12-31 21:45:33.361 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=RANDOM rewardFlag? false +2025-12-31 21:45:33.375 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/random - 200 OK (17ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:33.380 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/clerk/order/accept from 127.0.0.1 [Unknown] +2025-12-31 21:45:33.387 INFO 68358 --- [ main] c.s.a.m.o.s.i.PlayOrderInfoServiceImpl : Order accepted successfully. orderId=prl4cjcq8, orderNo=202512312145334868, acceptBy=clerk-apitest, operatorByType=1 +2025-12-31 21:45:33.389 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/clerk/order/accept - 200 OK (9ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:33.412 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/random from 127.0.0.1 [Unknown] +2025-12-31 21:45:33.414 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=RANDOM rewardFlag? false +2025-12-31 21:45:33.415 WARN 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/random - 200 OK (3ms) businessCode=998 success=false message=余额不足 +2025-12-31 21:45:33.428 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/coupon/custom/obtainCoupon from 127.0.0.1 [Unknown] +2025-12-31 21:45:33.434 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/coupon/custom/obtainCoupon - 200 OK (6ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:33.436 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/coupon/custom/queryByOrder from 127.0.0.1 [Unknown] +2025-12-31 21:45:33.437 INFO 68358 --- [ main] c.s.a.m.w.controller.WxCouponController : {"clerkId":"","commodityId":"svc-basic","commodityQuantity":1,"levelId":"lvl-basic","placeType":"1"} +2025-12-31 21:45:33.464 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/coupon/custom/queryByOrder - 200 OK (28ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:33.466 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/random from 127.0.0.1 [Unknown] +2025-12-31 21:45:33.469 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=RANDOM rewardFlag? false +2025-12-31 21:45:33.483 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/random - 200 OK (17ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:33.491 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/cancellation from 127.0.0.1 [Unknown] +2025-12-31 21:45:33.503 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/cancellation - 200 OK (12ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:33.517 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /statistics/performance/overview from 127.0.0.1 [Unknown] +2025-12-31 21:45:33.548 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /statistics/performance/overview - 200 OK (31ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:33.552 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/random from 127.0.0.1 [Unknown] +2025-12-31 21:45:33.555 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=RANDOM rewardFlag? false +2025-12-31 21:45:33.565 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/random - 200 OK (13ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:33.570 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/clerk/order/accept from 127.0.0.1 [Unknown] +2025-12-31 21:45:33.577 INFO 68358 --- [ main] c.s.a.m.o.s.i.PlayOrderInfoServiceImpl : Order accepted successfully. orderId=6skvudj1o, orderNo=202512312145334596, acceptBy=clerk-apitest, operatorByType=1 +2025-12-31 21:45:33.581 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/clerk/order/accept - 200 OK (11ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:33.585 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/clerk/order/start from 127.0.0.1 [Unknown] +2025-12-31 21:45:33.593 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/clerk/order/start - 200 OK (8ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:33.598 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/custom/order/end from 127.0.0.1 [Unknown] +2025-12-31 21:45:33.632 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/custom/order/end - 200 OK (34ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:33.639 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /statistics/performance/overview from 127.0.0.1 [Unknown] +2025-12-31 21:45:33.648 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /statistics/performance/overview - 200 OK (9ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:33.682 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/random from 127.0.0.1 [Unknown] +2025-12-31 21:45:33.690 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=RANDOM rewardFlag? false +2025-12-31 21:45:33.716 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/random - 200 OK (34ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:33.742 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/coupon/custom/obtainCoupon from 127.0.0.1 [Unknown] +2025-12-31 21:45:33.751 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/coupon/custom/obtainCoupon - 200 OK (9ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:33.752 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/coupon/custom/queryByOrder from 127.0.0.1 [Unknown] +2025-12-31 21:45:33.753 INFO 68358 --- [ main] c.s.a.m.w.controller.WxCouponController : {"clerkId":"","commodityId":"svc-basic","commodityQuantity":1,"levelId":"lvl-basic","placeType":"1"} +2025-12-31 21:45:33.789 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/coupon/custom/queryByOrder - 200 OK (37ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:33.792 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/random from 127.0.0.1 [Unknown] +2025-12-31 21:45:33.795 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=RANDOM rewardFlag? false +2025-12-31 21:45:33.812 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/random - 200 OK (20ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:33.818 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/clerk/order/accept from 127.0.0.1 [Unknown] +2025-12-31 21:45:33.825 INFO 68358 --- [ main] c.s.a.m.o.s.i.PlayOrderInfoServiceImpl : Order accepted successfully. orderId=rmcxhhgpg, orderNo=202512312145334695, acceptBy=clerk-apitest, operatorByType=1 +2025-12-31 21:45:33.828 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/clerk/order/accept - 200 OK (10ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:33.831 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/clerk/order/start from 127.0.0.1 [Unknown] +2025-12-31 21:45:33.836 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/clerk/order/start - 200 OK (5ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:33.838 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/custom/order/end from 127.0.0.1 [Unknown] +2025-12-31 21:45:33.852 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/custom/order/end - 200 OK (14ms) businessCode=200 success=true message=操作成功 +[INFO] Tests run: 6, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.57 s - in com.starry.admin.api.WxCustomRandomOrderApiTest +[INFO] Running com.starry.admin.api.WxBlindBoxOrderApiTest +2025-12-31 21:45:33.859 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Neither @ContextConfiguration nor @ContextHierarchy found for test class [com.starry.admin.api.WxBlindBoxOrderApiTest], using SpringBootContextLoader +2025-12-31 21:45:33.860 INFO 68358 --- [ main] o.s.t.c.support.AbstractContextLoader : Could not detect default resource locations for test class [com.starry.admin.api.WxBlindBoxOrderApiTest]: no resource found for suffixes {-context.xml, Context.groovy}. +2025-12-31 21:45:33.860 INFO 68358 --- [ main] t.c.s.AnnotationConfigContextLoaderUtils : Could not detect default configuration classes for test class [com.starry.admin.api.WxBlindBoxOrderApiTest]: WxBlindBoxOrderApiTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration. +2025-12-31 21:45:33.860 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Found @SpringBootConfiguration com.starry.admin.Application for test class com.starry.admin.api.WxBlindBoxOrderApiTest +2025-12-31 21:45:33.861 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Loaded default TestExecutionListener class names from location [META-INF/spring.factories]: [org.springframework.test.context.web.ServletTestExecutionListener, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener, org.springframework.test.context.event.ApplicationEventsTestExecutionListener, org.springframework.test.context.support.DependencyInjectionTestExecutionListener, org.springframework.test.context.support.DirtiesContextTestExecutionListener, org.springframework.test.context.transaction.TransactionalTestExecutionListener, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener, org.springframework.test.context.event.EventPublishingTestExecutionListener, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener, org.springframework.boot.test.autoconfigure.webservices.client.MockWebServiceServerTestExecutionListener, org.springframework.security.test.context.support.WithSecurityContextTestExecutionListener, org.springframework.security.test.context.support.ReactorContextTestExecutionListener] +2025-12-31 21:45:33.861 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Using TestExecutionListeners: [org.springframework.test.context.web.ServletTestExecutionListener@156087f, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener@1f472b7c, org.springframework.test.context.event.ApplicationEventsTestExecutionListener@491f352f, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener@29267983, org.springframework.boot.test.autoconfigure.SpringBootDependencyInjectionTestExecutionListener@18829928, org.springframework.test.context.support.DirtiesContextTestExecutionListener@3eb85d8f, org.springframework.test.context.transaction.TransactionalTestExecutionListener@e3eb13a, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener@14ce2b1f, org.springframework.test.context.event.EventPublishingTestExecutionListener@1809ab77, org.springframework.security.test.context.support.WithSecurityContextTestExecutionListener@6421d9dc, org.springframework.security.test.context.support.ReactorContextTestExecutionListener@1fed0303, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener@7a9e4532, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener@2f991b05, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener@451cd813, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener@329e2ea8, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener@3a215a1c, org.springframework.boot.test.autoconfigure.webservices.client.MockWebServiceServerTestExecutionListener@5d073f6e] +2025-12-31 21:45:33.892 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/blind-box/order/purchase from 127.0.0.1 [Unknown] +2025-12-31 21:45:33.900 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=REWARD rewardFlag? true +2025-12-31 21:45:33.901 WARN 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/blind-box/order/purchase - 200 OK (9ms) businessCode=998 success=false message=余额不足 +2025-12-31 21:45:33.932 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/blind-box/order/purchase from 127.0.0.1 [Unknown] +2025-12-31 21:45:33.935 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=REWARD rewardFlag? true +2025-12-31 21:45:33.961 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/blind-box/order/purchase - 200 OK (29ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:34.272 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/blind-box/reward/h5waigu7h/dispatch from 127.0.0.1 [Unknown] +2025-12-31 21:45:34.279 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=REWARD rewardFlag? true +2025-12-31 21:45:34.328 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/blind-box/reward/h5waigu7h/dispatch - 200 OK (56ms) businessCode=200 success=true message=操作成功 +[INFO] Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.487 s - in com.starry.admin.api.WxBlindBoxOrderApiTest +[INFO] Running com.starry.admin.api.PlayOrderInfoControllerApiTest +2025-12-31 21:45:34.347 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Neither @ContextConfiguration nor @ContextHierarchy found for test class [com.starry.admin.api.PlayOrderInfoControllerApiTest], using SpringBootContextLoader +2025-12-31 21:45:34.348 INFO 68358 --- [ main] o.s.t.c.support.AbstractContextLoader : Could not detect default resource locations for test class [com.starry.admin.api.PlayOrderInfoControllerApiTest]: no resource found for suffixes {-context.xml, Context.groovy}. +2025-12-31 21:45:34.348 INFO 68358 --- [ main] t.c.s.AnnotationConfigContextLoaderUtils : Could not detect default configuration classes for test class [com.starry.admin.api.PlayOrderInfoControllerApiTest]: PlayOrderInfoControllerApiTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration. +2025-12-31 21:45:34.348 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Found @SpringBootConfiguration com.starry.admin.Application for test class com.starry.admin.api.PlayOrderInfoControllerApiTest +2025-12-31 21:45:34.348 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Loaded default TestExecutionListener class names from location [META-INF/spring.factories]: [org.springframework.test.context.web.ServletTestExecutionListener, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener, org.springframework.test.context.event.ApplicationEventsTestExecutionListener, org.springframework.test.context.support.DependencyInjectionTestExecutionListener, org.springframework.test.context.support.DirtiesContextTestExecutionListener, org.springframework.test.context.transaction.TransactionalTestExecutionListener, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener, org.springframework.test.context.event.EventPublishingTestExecutionListener, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener, org.springframework.boot.test.autoconfigure.webservices.client.MockWebServiceServerTestExecutionListener, org.springframework.security.test.context.support.WithSecurityContextTestExecutionListener, org.springframework.security.test.context.support.ReactorContextTestExecutionListener] +2025-12-31 21:45:34.349 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Using TestExecutionListeners: [org.springframework.test.context.web.ServletTestExecutionListener@4289232a, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener@1b99c0bc, org.springframework.test.context.event.ApplicationEventsTestExecutionListener@52f95c26, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener@bba7be1, org.springframework.boot.test.autoconfigure.SpringBootDependencyInjectionTestExecutionListener@2189cf, org.springframework.test.context.support.DirtiesContextTestExecutionListener@55682557, org.springframework.test.context.transaction.TransactionalTestExecutionListener@4d685bb0, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener@1555448f, org.springframework.test.context.event.EventPublishingTestExecutionListener@19b6d81b, org.springframework.security.test.context.support.WithSecurityContextTestExecutionListener@de014e7, org.springframework.security.test.context.support.ReactorContextTestExecutionListener@25a6b30, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener@3d9436c8, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener@12cd4761, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener@1f072ef3, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener@4e55d5c8, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener@52eb98bc, org.springframework.boot.test.autoconfigure.webservices.client.MockWebServiceServerTestExecutionListener@2a652bcf] +2025-12-31 21:45:34.364 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /order/order/listByPage from 127.0.0.1 [Unknown] +2025-12-31 21:45:34.374 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /order/order/listByPage - 200 OK (10ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:34.374 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /order/order/listByPage from 127.0.0.1 [Unknown] +2025-12-31 21:45:34.383 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /order/order/listByPage - 200 OK (9ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:34.397 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /order/order/revokeCompleted from 127.0.0.1 [Unknown] +2025-12-31 21:45:34.408 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /order/order/revokeCompleted - 200 OK (11ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:34.423 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /order/order/listByPage from 127.0.0.1 [Unknown] +2025-12-31 21:45:34.433 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /order/order/listByPage - 200 OK (10ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:34.445 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /order/order/revokeCompleted from 127.0.0.1 [Unknown] +2025-12-31 21:45:34.454 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /order/order/revokeCompleted - 200 OK (9ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:34.466 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /order/order/listByPage from 127.0.0.1 [Unknown] +2025-12-31 21:45:34.474 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /order/order/listByPage - 200 OK (8ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:34.486 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /order/order/listByPage from 127.0.0.1 [Unknown] +2025-12-31 21:45:34.493 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /order/order/listByPage - 200 OK (7ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:34.512 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /order/order/listByPage from 127.0.0.1 [Unknown] +2025-12-31 21:45:34.518 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /order/order/listByPage - 200 OK (6ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:34.519 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /order/order/listByPage from 127.0.0.1 [Unknown] +2025-12-31 21:45:34.528 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /order/order/listByPage - 200 OK (9ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:34.529 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /order/order/listByPage from 127.0.0.1 [Unknown] +2025-12-31 21:45:34.537 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /order/order/listByPage - 200 OK (8ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:34.538 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /order/order/listByPage from 127.0.0.1 [Unknown] +2025-12-31 21:45:34.545 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /order/order/listByPage - 200 OK (7ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:34.546 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /order/order/listByPage from 127.0.0.1 [Unknown] +2025-12-31 21:45:34.553 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /order/order/listByPage - 200 OK (7ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:34.554 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /order/order/listByPage from 127.0.0.1 [Unknown] +2025-12-31 21:45:34.562 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /order/order/listByPage - 200 OK (8ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:34.562 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /order/order/listByPage from 127.0.0.1 [Unknown] +2025-12-31 21:45:34.572 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /order/order/listByPage - 200 OK (10ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:34.572 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /order/order/listByPage from 127.0.0.1 [Unknown] +2025-12-31 21:45:34.580 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /order/order/listByPage - 200 OK (8ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:34.580 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /order/order/listByPage from 127.0.0.1 [Unknown] +2025-12-31 21:45:34.587 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /order/order/listByPage - 200 OK (7ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:34.587 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /order/order/listByPage from 127.0.0.1 [Unknown] +2025-12-31 21:45:34.596 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /order/order/listByPage - 200 OK (9ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:34.596 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /order/order/listByPage from 127.0.0.1 [Unknown] +2025-12-31 21:45:34.605 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /order/order/listByPage - 200 OK (9ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:34.606 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /order/order/listByPage from 127.0.0.1 [Unknown] +2025-12-31 21:45:34.619 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /order/order/listByPage - 200 OK (13ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:34.620 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /order/order/listByPage from 127.0.0.1 [Unknown] +2025-12-31 21:45:34.629 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /order/order/listByPage - 200 OK (9ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:34.629 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /order/order/listByPage from 127.0.0.1 [Unknown] +2025-12-31 21:45:34.638 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /order/order/listByPage - 200 OK (9ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:34.639 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /order/order/listByPage from 127.0.0.1 [Unknown] +2025-12-31 21:45:34.648 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /order/order/listByPage - 200 OK (9ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:34.649 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /order/order/listByPage from 127.0.0.1 [Unknown] +2025-12-31 21:45:34.657 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /order/order/listByPage - 200 OK (8ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:34.689 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /order/order/revokeCompleted from 127.0.0.1 [Unknown] +2025-12-31 21:45:34.704 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /order/order/revokeCompleted - 200 OK (15ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:34.734 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /order/order/revokeCompleted from 127.0.0.1 [Unknown] +2025-12-31 21:45:34.742 WARN 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /order/order/revokeCompleted - 200 OK (8ms) businessCode=500 success=false message=本单店员收益已全部扣回 +2025-12-31 21:45:34.763 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /order/order/listByPage from 127.0.0.1 [Unknown] +2025-12-31 21:45:34.779 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /order/order/listByPage - 200 OK (16ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:34.793 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /order/order/listByPage from 127.0.0.1 [Unknown] +2025-12-31 21:45:34.803 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /order/order/listByPage - 200 OK (10ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:34.822 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /order/order/revokeCompleted from 127.0.0.1 [Unknown] +2025-12-31 21:45:34.839 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /order/order/revokeCompleted - 200 OK (17ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:34.857 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /order/order/revokeCompleted from 127.0.0.1 [Unknown] +2025-12-31 21:45:34.863 WARN 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /order/order/revokeCompleted - 200 OK (6ms) businessCode=500 success=false message=仅支持撤销普通服务订单 +2025-12-31 21:45:34.891 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /order/order/revokeCompleted from 127.0.0.1 [Unknown] +2025-12-31 21:45:34.898 WARN 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /order/order/revokeCompleted - 200 OK (7ms) businessCode=500 success=false message=扣回金额不能超过本单收益40.00 +2025-12-31 21:45:34.917 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /order/order/listByPage from 127.0.0.1 [Unknown] +2025-12-31 21:45:34.923 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /order/order/listByPage - 200 OK (6ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:34.933 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /order/order/listByPage from 127.0.0.1 [Unknown] +2025-12-31 21:45:34.939 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /order/order/listByPage - 200 OK (6ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:34.952 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /order/order/listByPage from 127.0.0.1 [Unknown] +2025-12-31 21:45:34.961 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /order/order/listByPage - 200 OK (9ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:34.980 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /order/order/order-limits-hohgvelz/revocationLimits from 127.0.0.1 [Unknown] +2025-12-31 21:45:34.985 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /order/order/order-limits-hohgvelz/revocationLimits - 200 OK (5ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:34.999 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /order/order/listByPage from 127.0.0.1 [Unknown] +2025-12-31 21:45:35.005 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /order/order/listByPage - 200 OK (6ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:35.019 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /order/order/revokeCompleted from 127.0.0.1 [Unknown] +2025-12-31 21:45:35.030 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /order/order/revokeCompleted - 200 OK (11ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:35.050 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /order/order/revokeCompleted from 127.0.0.1 [Unknown] +2025-12-31 21:45:35.057 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /order/order/revokeCompleted - 200 OK (7ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:35.073 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /order/order/revokeCompleted from 127.0.0.1 [Unknown] +2025-12-31 21:45:35.082 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /order/order/revokeCompleted - 200 OK (9ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:35.096 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /order/order/revokeCompleted from 127.0.0.1 [Unknown] +2025-12-31 21:45:35.104 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /order/order/revokeCompleted - 200 OK (8ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:35.119 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /order/order/listByPage from 127.0.0.1 [Unknown] +2025-12-31 21:45:35.125 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /order/order/listByPage - 200 OK (6ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:35.135 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /order/order/listByPage from 127.0.0.1 [Unknown] +2025-12-31 21:45:35.141 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /order/order/listByPage - 200 OK (6ms) businessCode=200 success=true message=操作成功 +[INFO] Tests run: 25, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.799 s - in com.starry.admin.api.PlayOrderInfoControllerApiTest +[INFO] Running com.starry.admin.api.WxWithdrawControllerApiTest +2025-12-31 21:45:35.147 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Neither @ContextConfiguration nor @ContextHierarchy found for test class [com.starry.admin.api.WxWithdrawControllerApiTest], using SpringBootContextLoader +2025-12-31 21:45:35.147 INFO 68358 --- [ main] o.s.t.c.support.AbstractContextLoader : Could not detect default resource locations for test class [com.starry.admin.api.WxWithdrawControllerApiTest]: no resource found for suffixes {-context.xml, Context.groovy}. +2025-12-31 21:45:35.147 INFO 68358 --- [ main] t.c.s.AnnotationConfigContextLoaderUtils : Could not detect default configuration classes for test class [com.starry.admin.api.WxWithdrawControllerApiTest]: WxWithdrawControllerApiTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration. +2025-12-31 21:45:35.148 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Found @SpringBootConfiguration com.starry.admin.Application for test class com.starry.admin.api.WxWithdrawControllerApiTest +2025-12-31 21:45:35.148 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Loaded default TestExecutionListener class names from location [META-INF/spring.factories]: [org.springframework.test.context.web.ServletTestExecutionListener, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener, org.springframework.test.context.event.ApplicationEventsTestExecutionListener, org.springframework.test.context.support.DependencyInjectionTestExecutionListener, org.springframework.test.context.support.DirtiesContextTestExecutionListener, org.springframework.test.context.transaction.TransactionalTestExecutionListener, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener, org.springframework.test.context.event.EventPublishingTestExecutionListener, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener, org.springframework.boot.test.autoconfigure.webservices.client.MockWebServiceServerTestExecutionListener, org.springframework.security.test.context.support.WithSecurityContextTestExecutionListener, org.springframework.security.test.context.support.ReactorContextTestExecutionListener] +2025-12-31 21:45:35.148 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Using TestExecutionListeners: [org.springframework.test.context.web.ServletTestExecutionListener@38f66fd0, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener@58bf10eb, org.springframework.test.context.event.ApplicationEventsTestExecutionListener@47445dd6, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener@16f92f07, org.springframework.boot.test.autoconfigure.SpringBootDependencyInjectionTestExecutionListener@1dfa4ae7, org.springframework.test.context.support.DirtiesContextTestExecutionListener@3de229fb, org.springframework.test.context.transaction.TransactionalTestExecutionListener@582d797c, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener@773f469, org.springframework.test.context.event.EventPublishingTestExecutionListener@48912b12, org.springframework.security.test.context.support.WithSecurityContextTestExecutionListener@64907e0a, org.springframework.security.test.context.support.ReactorContextTestExecutionListener@57c51d7d, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener@4f8d7b50, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener@e851008, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener@69825ffc, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener@16d38944, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener@32202735, org.springframework.boot.test.autoconfigure.webservices.client.MockWebServiceServerTestExecutionListener@14036429] + + . ____ _ __ _ _ + /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ +( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ + \\/ ___)| |_)| | | | | || (_| | ) ) ) ) + ' |____| .__|_| |_|_| |_\__, | / / / / + =========|_|==============|___/=/_/_/_/ + :: Spring Boot :: (v2.5.4) + +2025-12-31 21:45:35.192 INFO 68358 --- [ main] c.s.a.api.WxWithdrawControllerApiTest : Starting WxWithdrawControllerApiTest using Java 11.0.28 on oushuns-Mac-mini.local with PID 68358 (started by oujunyi in /Volumes/main/code/yunpei/peipei-backend/play-admin) +2025-12-31 21:45:35.192 INFO 68358 --- [ main] c.s.a.api.WxWithdrawControllerApiTest : The following profiles are active: apitest +2025-12-31 21:45:35.563 INFO 68358 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode! +2025-12-31 21:45:35.563 INFO 68358 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data Redis repositories in DEFAULT mode. +2025-12-31 21:45:35.593 INFO 68358 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 29 ms. Found 0 Redis repository interfaces. +2025-12-31 21:45:35.707 INFO 68358 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.security.access.expression.method.DefaultMethodSecurityExpressionHandler@125e9032' of type [org.springframework.security.access.expression.method.DefaultMethodSecurityExpressionHandler] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +2025-12-31 21:45:35.715 INFO 68358 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'methodSecurityMetadataSource' of type [org.springframework.security.access.method.DelegatingMethodSecurityMetadataSource] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +2025-12-31 21:45:35.772 INFO 68358 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 0 (http) +2025-12-31 21:45:35.773 INFO 68358 --- [ main] o.a.coyote.http11.Http11NioProtocol : Initializing ProtocolHandler ["http-nio-auto-4"] +2025-12-31 21:45:35.773 INFO 68358 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat] +2025-12-31 21:45:35.773 INFO 68358 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.52] +2025-12-31 21:45:35.786 INFO 68358 --- [ main] o.a.c.c.C.[Tomcat-3].[localhost].[/api] : Initializing Spring embedded WebApplicationContext +2025-12-31 21:45:35.786 INFO 68358 --- [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 594 ms +2025-12-31 21:45:35.914 INFO 68358 --- [ main] c.g.y.a.MybatisPlusJoinAutoConfiguration : mybatis plus join properties config complete +2025-12-31 21:45:35.952 INFO 68358 --- [ main] com.alibaba.druid.pool.DruidDataSource : {dataSource-4} inited +2025-12-31 21:45:35.974 INFO 68358 --- [ main] c.g.y.a.MybatisPlusJoinAutoConfiguration : mybatis plus join SqlInjector init + _ _ |_ _ _|_. ___ _ | _ +| | |\/|_)(_| | |_\ |_)||_|_\ + / | + 3.5.3.2 +2025-12-31 21:45:36.159 INFO 68358 --- [ main] o.f.c.internal.license.VersionPrinter : Flyway Community Edition 7.15.0 by Redgate +2025-12-31 21:45:36.159 INFO 68358 --- [ main] o.f.c.i.database.base.BaseDatabaseType : Database: jdbc:mysql://localhost:33306/peipei_apitest (MySQL 8.0) +2025-12-31 21:45:36.217 INFO 68358 --- [ main] o.f.core.internal.command.DbMigrate : Current version of schema `peipei_apitest`: 18 +2025-12-31 21:45:36.218 INFO 68358 --- [ main] o.f.core.internal.command.DbMigrate : Schema `peipei_apitest` is up to date. No migration necessary. +2025-12-31 21:45:36.595 INFO 68358 --- [ main] .s.s.UserDetailsServiceAutoConfiguration : + +Using generated security password: 8cf6f97c-87c6-4f18-9eda-a658d1f8b474 + +2025-12-31 21:45:37.088 INFO 68358 --- [ main] o.s.s.web.DefaultSecurityFilterChain : Will secure any request with [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@7b1e1c25, org.springframework.security.web.context.SecurityContextPersistenceFilter@59769135, org.springframework.security.web.header.HeaderWriterFilter@7e5d59f1, com.starry.admin.common.security.filter.ApiTestAuthenticationFilter@113406dd, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@27df6c88, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@33592b53, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@5310bf15, org.springframework.security.web.session.SessionManagementFilter@28bf1203, org.springframework.security.web.access.ExceptionTranslationFilter@b5ea122, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@282afe91] +2025-12-31 21:45:37.098 INFO 68358 --- [ main] pertySourcedRequestMappingHandlerMapping : Mapped URL path [/v2/api-docs] onto method [springfox.documentation.swagger2.web.Swagger2ControllerWebMvc#getDocumentation(String, HttpServletRequest)] + _ _ |_ _ _|_. ___ _ | _ . _ . _ +| | |\/|_)(_| | |_\ |_)||_|_\ | (_) | | | + / | / + 1.4.10 +2025-12-31 21:45:37.207 INFO 68358 --- [ main] o.a.c.c.C.[Tomcat-3].[localhost].[/api] : Initializing Spring TestDispatcherServlet '' +2025-12-31 21:45:37.207 INFO 68358 --- [ main] o.s.t.web.servlet.TestDispatcherServlet : Initializing Servlet '' +2025-12-31 21:45:37.207 INFO 68358 --- [ main] o.s.t.web.servlet.TestDispatcherServlet : Completed initialization in 0 ms +2025-12-31 21:45:37.231 INFO 68358 --- [ main] o.a.coyote.http11.Http11NioProtocol : Starting ProtocolHandler ["http-nio-auto-4"] +2025-12-31 21:45:37.232 INFO 68358 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 56348 (http) with context path '/api' +2025-12-31 21:45:37.232 INFO 68358 --- [ main] d.s.w.p.DocumentationPluginsBootstrapper : Documentation plugins bootstrapped +2025-12-31 21:45:37.232 INFO 68358 --- [ main] d.s.w.p.DocumentationPluginsBootstrapper : Found 1 custom documentation plugin(s) +2025-12-31 21:45:37.260 INFO 68358 --- [ main] s.d.s.w.s.ApiListingReferenceScanner : Scanning for api listing references +2025-12-31 21:45:37.276 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_1 +2025-12-31 21:45:37.277 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_1 +2025-12-31 21:45:37.277 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_2 +2025-12-31 21:45:37.277 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPUT_1 +2025-12-31 21:45:37.279 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_1 +2025-12-31 21:45:37.281 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_2 +2025-12-31 21:45:37.282 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_1 +2025-12-31 21:45:37.284 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_2 +2025-12-31 21:45:37.285 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_2 +2025-12-31 21:45:37.286 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_1 +2025-12-31 21:45:37.287 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingPOST_1 +2025-12-31 21:45:37.287 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_3 +2025-12-31 21:45:37.288 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_2 +2025-12-31 21:45:37.288 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_3 +2025-12-31 21:45:37.289 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_3 +2025-12-31 21:45:37.289 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_3 +2025-12-31 21:45:37.289 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listAllUsingGET_1 +2025-12-31 21:45:37.289 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_4 +2025-12-31 21:45:37.290 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_3 +2025-12-31 21:45:37.290 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_4 +2025-12-31 21:45:37.291 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_4 +2025-12-31 21:45:37.291 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_4 +2025-12-31 21:45:37.292 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_5 +2025-12-31 21:45:37.292 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_4 +2025-12-31 21:45:37.293 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingPOST_2 +2025-12-31 21:45:37.293 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_6 +2025-12-31 21:45:37.294 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_5 +2025-12-31 21:45:37.294 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_5 +2025-12-31 21:45:37.295 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_5 +2025-12-31 21:45:37.295 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_5 +2025-12-31 21:45:37.295 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_7 +2025-12-31 21:45:37.295 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_6 +2025-12-31 21:45:37.296 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_6 +2025-12-31 21:45:37.297 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_6 +2025-12-31 21:45:37.297 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listAllUsingGET_2 +2025-12-31 21:45:37.297 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_8 +2025-12-31 21:45:37.298 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_7 +2025-12-31 21:45:37.300 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listByPageUsingPOST_1 +2025-12-31 21:45:37.302 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_7 +2025-12-31 21:45:37.303 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_7 +2025-12-31 21:45:37.303 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_6 +2025-12-31 21:45:37.303 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_9 +2025-12-31 21:45:37.304 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_8 +2025-12-31 21:45:37.305 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_8 +2025-12-31 21:45:37.306 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_8 +2025-12-31 21:45:37.307 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingPOST_3 +2025-12-31 21:45:37.307 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_10 +2025-12-31 21:45:37.308 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_9 +2025-12-31 21:45:37.308 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_9 +2025-12-31 21:45:37.309 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listByPageUsingPOST_2 +2025-12-31 21:45:37.309 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_11 +2025-12-31 21:45:37.310 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_10 +2025-12-31 21:45:37.313 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_9 +2025-12-31 21:45:37.315 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_7 +2025-12-31 21:45:37.318 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listByPageUsingPOST_3 +2025-12-31 21:45:37.319 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listByPageUsingPOST_4 +2025-12-31 21:45:37.319 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_12 +2025-12-31 21:45:37.320 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_11 +2025-12-31 21:45:37.322 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listByPageUsingPOST_5 +2025-12-31 21:45:37.323 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_13 +2025-12-31 21:45:37.323 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_12 +2025-12-31 21:45:37.324 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_10 +2025-12-31 21:45:37.324 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_10 +2025-12-31 21:45:37.325 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_8 +2025-12-31 21:45:37.325 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_14 +2025-12-31 21:45:37.325 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_13 +2025-12-31 21:45:37.326 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingPOST_4 +2025-12-31 21:45:37.327 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingPOST_5 +2025-12-31 21:45:37.328 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_11 +2025-12-31 21:45:37.328 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_11 +2025-12-31 21:45:37.329 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_15 +2025-12-31 21:45:37.329 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_14 +2025-12-31 21:45:37.330 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_12 +2025-12-31 21:45:37.331 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_12 +2025-12-31 21:45:37.333 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listByPageUsingPOST_6 +2025-12-31 21:45:37.333 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_16 +2025-12-31 21:45:37.334 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_15 +2025-12-31 21:45:37.334 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_16 +2025-12-31 21:45:37.335 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_13 +2025-12-31 21:45:37.337 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_13 +2025-12-31 21:45:37.338 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingPOST_6 +2025-12-31 21:45:37.338 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_17 +2025-12-31 21:45:37.340 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_17 +2025-12-31 21:45:37.341 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_14 +2025-12-31 21:45:37.342 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_14 +2025-12-31 21:45:37.342 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_9 +2025-12-31 21:45:37.342 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_18 +2025-12-31 21:45:37.342 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_18 +2025-12-31 21:45:37.343 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_15 +2025-12-31 21:45:37.344 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_15 +2025-12-31 21:45:37.344 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_10 +2025-12-31 21:45:37.344 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_19 +2025-12-31 21:45:37.345 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_19 +2025-12-31 21:45:37.345 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_16 +2025-12-31 21:45:37.346 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_16 +2025-12-31 21:45:37.346 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_11 +2025-12-31 21:45:37.346 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_20 +2025-12-31 21:45:37.347 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_20 +2025-12-31 21:45:37.347 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_17 +2025-12-31 21:45:37.348 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_17 +2025-12-31 21:45:37.349 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingPOST_7 +2025-12-31 21:45:37.349 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_21 +2025-12-31 21:45:37.349 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_21 +2025-12-31 21:45:37.350 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_18 +2025-12-31 21:45:37.350 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_18 +2025-12-31 21:45:37.351 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_22 +2025-12-31 21:45:37.351 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_22 +2025-12-31 21:45:37.352 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingPOST_8 +2025-12-31 21:45:37.355 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_19 +2025-12-31 21:45:37.356 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_19 +2025-12-31 21:45:37.362 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingPOST_9 +2025-12-31 21:45:37.363 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_23 +2025-12-31 21:45:37.363 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_23 +2025-12-31 21:45:37.363 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateStateUsingPOST_1 +2025-12-31 21:45:37.364 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_20 +2025-12-31 21:45:37.365 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_20 +2025-12-31 21:45:37.366 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_12 +2025-12-31 21:45:37.366 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_24 +2025-12-31 21:45:37.366 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_24 +2025-12-31 21:45:37.367 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_21 +2025-12-31 21:45:37.368 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_21 +2025-12-31 21:45:37.370 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingPOST_10 +2025-12-31 21:45:37.370 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_25 +2025-12-31 21:45:37.370 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_25 +2025-12-31 21:45:37.372 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingPOST_11 +2025-12-31 21:45:37.375 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingPOST_12 +2025-12-31 21:45:37.375 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_26 +2025-12-31 21:45:37.375 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_26 +2025-12-31 21:45:37.377 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_22 +2025-12-31 21:45:37.380 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listByPageUsingPOST_7 +2025-12-31 21:45:37.383 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_27 +2025-12-31 21:45:37.393 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_27 +2025-12-31 21:45:37.395 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_22 +2025-12-31 21:45:37.397 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_23 +2025-12-31 21:45:37.399 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingPOST_13 +2025-12-31 21:45:37.399 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_28 +2025-12-31 21:45:37.400 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_28 +2025-12-31 21:45:37.403 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_24 +2025-12-31 21:45:37.404 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listByPageUsingPOST_8 +2025-12-31 21:45:37.404 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_29 +2025-12-31 21:45:37.405 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createBaseInfoUsingPOST_1 +2025-12-31 21:45:37.406 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listByPageUsingPOST_9 +2025-12-31 21:45:37.407 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_30 +2025-12-31 21:45:37.407 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateBaseInfoUsingPOST_1 +2025-12-31 21:45:37.411 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listAllUsingGET_3 +2025-12-31 21:45:37.412 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listByPageUsingPOST_10 +2025-12-31 21:45:37.413 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createBaseInfoUsingPOST_2 +2025-12-31 21:45:37.414 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listByPageUsingPOST_11 +2025-12-31 21:45:37.414 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_31 +2025-12-31 21:45:37.415 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateBaseInfoUsingPOST_2 +2025-12-31 21:45:37.415 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_23 +2025-12-31 21:45:37.416 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listByPageUsingPOST_12 +2025-12-31 21:45:37.417 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listByPageUsingPOST_13 +2025-12-31 21:45:37.417 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_32 +2025-12-31 21:45:37.418 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_24 +2025-12-31 21:45:37.419 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listByPageUsingPOST_14 +2025-12-31 21:45:37.420 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listByPageUsingPOST_15 +2025-12-31 21:45:37.420 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_33 +2025-12-31 21:45:37.420 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: uploadFileUsingPOST_1 +2025-12-31 21:45:37.422 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_25 +2025-12-31 21:45:37.422 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_26 +2025-12-31 21:45:37.423 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_29 +2025-12-31 21:45:37.425 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_27 +2025-12-31 21:45:37.425 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_13 +2025-12-31 21:45:37.426 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_30 +2025-12-31 21:45:37.427 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_25 +2025-12-31 21:45:37.428 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_28 +2025-12-31 21:45:37.428 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_14 +2025-12-31 21:45:37.429 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_34 +2025-12-31 21:45:37.429 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_31 +2025-12-31 21:45:37.430 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_26 +2025-12-31 21:45:37.431 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_29 +2025-12-31 21:45:37.431 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_15 +2025-12-31 21:45:37.431 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_35 +2025-12-31 21:45:37.432 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_32 +2025-12-31 21:45:37.433 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_30 +2025-12-31 21:45:37.433 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_16 +2025-12-31 21:45:37.433 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_36 +2025-12-31 21:45:37.435 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_27 +2025-12-31 21:45:37.435 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: deleteUsingPOST_1 +2025-12-31 21:45:37.437 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_31 +2025-12-31 21:45:37.438 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_17 +2025-12-31 21:45:37.438 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: treeselectUsingGET_1 +2025-12-31 21:45:37.439 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_33 +2025-12-31 21:45:37.440 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_28 +2025-12-31 21:45:37.442 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_32 +2025-12-31 21:45:37.442 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_18 +2025-12-31 21:45:37.443 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_37 +2025-12-31 21:45:37.443 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_34 +2025-12-31 21:45:37.443 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: exportUsingPOST_1 +2025-12-31 21:45:37.447 WARN 68358 --- [ main] s.d.s.w.r.p.ParameterDataTypeReader : Trying to infer dataType java.lang.String[] +2025-12-31 21:45:37.448 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_29 +2025-12-31 21:45:37.448 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: deleteUsingDELETE_1 +2025-12-31 21:45:37.449 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_33 +2025-12-31 21:45:37.449 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listAllUsingGET_4 +2025-12-31 21:45:37.449 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listPageUsingGET_1 +2025-12-31 21:45:37.450 WARN 68358 --- [ main] s.d.s.w.r.p.ParameterDataTypeReader : Trying to infer dataType java.lang.String[] +2025-12-31 21:45:37.451 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_35 +2025-12-31 21:45:37.453 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_30 +2025-12-31 21:45:37.455 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_34 +2025-12-31 21:45:37.456 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listByPageUsingPOST_16 +2025-12-31 21:45:37.457 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_38 +2025-12-31 21:45:37.459 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_36 +2025-12-31 21:45:37.460 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_31 +2025-12-31 21:45:37.460 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_35 +2025-12-31 21:45:37.461 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_19 +2025-12-31 21:45:37.461 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_39 +2025-12-31 21:45:37.461 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_37 +2025-12-31 21:45:37.462 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: exportUsingPOST_2 +2025-12-31 21:45:37.462 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_32 +2025-12-31 21:45:37.463 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_36 +2025-12-31 21:45:37.464 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingPOST_14 +2025-12-31 21:45:37.464 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_40 +2025-12-31 21:45:37.465 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_38 +2025-12-31 21:45:37.468 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: deleteUsingPOST_2 +2025-12-31 21:45:37.468 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_37 +2025-12-31 21:45:37.468 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_38 +2025-12-31 21:45:37.469 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listPageUsingGET_2 +2025-12-31 21:45:37.472 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_39 +2025-12-31 21:45:37.475 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_20 +2025-12-31 21:45:37.486 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listAllCommodityUsingGET_1 +2025-12-31 21:45:37.487 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: queryByIdUsingGET_1 +2025-12-31 21:45:37.492 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateAudioUsingPOST_1 +2025-12-31 21:45:37.492 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateAudioUsingPOST_2 +2025-12-31 21:45:37.498 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: deleteUsingDELETE_2 +2025-12-31 21:45:37.499 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: uploadUsingPOST_1 +2025-12-31 21:45:37.501 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: clerkQueryWagesDetailsUsingGET_1 +2025-12-31 21:45:37.508 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: cancellationOrderUsingPOST_1 +2025-12-31 21:45:37.512 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: queryByIdUsingGET_2 +2025-12-31 21:45:37.513 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: queryByIdUsingGET_3 +2025-12-31 21:45:37.514 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: queryOrderByPageUsingPOST_1 +2025-12-31 21:45:37.518 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: customListByAllUsingGET_1 +2025-12-31 21:45:37.519 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: queryByIdUsingGET_4 +2025-12-31 21:45:37.520 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: checkSubscribeUsingGET_1 +2025-12-31 21:45:37.529 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateReviewStateUsingPOST_1 +2025-12-31 21:45:37.532 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: testUsingGET_1 +2025-12-31 21:45:37.535 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: sendSmsUsingGET_1 +2025-12-31 21:45:37.539 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getProfileUsingGET_1 +2025-12-31 21:45:37.543 INFO 68358 --- [ main] c.s.a.api.WxWithdrawControllerApiTest : Started WxWithdrawControllerApiTest in 2.393 seconds (JVM running for 29.908) +2025-12-31 21:45:37.552 INFO 68358 --- [ main] c.s.a.common.apitest.ApiTestDataSeeder : API test tenant package pkg-basic already exists +2025-12-31 21:45:37.555 INFO 68358 --- [ main] c.s.a.common.apitest.ApiTestDataSeeder : API test tenant tenant-apitest already exists +2025-12-31 21:45:37.558 INFO 68358 --- [ main] c.s.a.common.apitest.ApiTestDataSeeder : API test admin user user-apitest-admin already exists +2025-12-31 21:45:37.562 INFO 68358 --- [ main] c.s.a.common.apitest.ApiTestDataSeeder : API test personnel group group-basic already exists +2025-12-31 21:45:37.567 INFO 68358 --- [ main] c.s.a.common.apitest.ApiTestDataSeeder : API test clerk level lvl-basic already exists +2025-12-31 21:45:37.571 INFO 68358 --- [ main] c.s.a.common.apitest.ApiTestDataSeeder : API test commodity svc-basic already exists +2025-12-31 21:45:37.574 INFO 68358 --- [ main] c.s.a.common.apitest.ApiTestDataSeeder : API test commodity pricing for svc-basic already exists +2025-12-31 21:45:37.579 INFO 68358 --- [ main] c.s.a.common.apitest.ApiTestDataSeeder : API test clerk clerk-apitest already exists +2025-12-31 21:45:37.580 INFO 68358 --- [ main] c.s.a.common.apitest.ApiTestDataSeeder : API test clerk commodity clerk-svc-basic already exists +2025-12-31 21:45:37.581 INFO 68358 --- [ main] c.s.a.common.apitest.ApiTestDataSeeder : API test gift gift-basic already exists +2025-12-31 21:45:37.588 INFO 68358 --- [ main] c.s.a.common.apitest.ApiTestDataSeeder : API test customer customer-apitest already exists, state refreshed +2025-12-31 21:45:37.635 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/withdraw/earnings from 127.0.0.1 [Unknown] +2025-12-31 21:45:37.654 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/withdraw/earnings - 200 OK (19ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:37.698 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/withdraw/requests from 127.0.0.1 [Unknown] +2025-12-31 21:45:37.724 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/withdraw/requests - 200 OK (26ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:37.747 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/withdraw/requests from 127.0.0.1 [Unknown] +2025-12-31 21:45:37.758 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/withdraw/requests - 200 OK (11ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:37.762 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/withdraw/requests from 127.0.0.1 [Unknown] +2025-12-31 21:45:37.771 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/withdraw/requests - 200 OK (9ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:37.795 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /wx/withdraw/balance from 127.0.0.1 [Unknown] +2025-12-31 21:45:37.800 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /wx/withdraw/balance - 200 OK (5ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:37.815 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/withdraw/requests from 127.0.0.1 [Unknown] +2025-12-31 21:45:37.824 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/withdraw/requests - 200 OK (9ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:37.847 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/withdraw/requests from 127.0.0.1 [Unknown] +2025-12-31 21:45:37.849 WARN 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/withdraw/requests - 200 OK (2ms) businessCode=500 success=false message=提现金额必须大于0 +[INFO] Tests run: 5, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 2.703 s - in com.starry.admin.api.WxWithdrawControllerApiTest +[INFO] Running com.starry.admin.api.WxCustomGiftOrderApiTest +2025-12-31 21:45:37.851 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Neither @ContextConfiguration nor @ContextHierarchy found for test class [com.starry.admin.api.WxCustomGiftOrderApiTest], using SpringBootContextLoader +2025-12-31 21:45:37.851 INFO 68358 --- [ main] o.s.t.c.support.AbstractContextLoader : Could not detect default resource locations for test class [com.starry.admin.api.WxCustomGiftOrderApiTest]: no resource found for suffixes {-context.xml, Context.groovy}. +2025-12-31 21:45:37.851 INFO 68358 --- [ main] t.c.s.AnnotationConfigContextLoaderUtils : Could not detect default configuration classes for test class [com.starry.admin.api.WxCustomGiftOrderApiTest]: WxCustomGiftOrderApiTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration. +2025-12-31 21:45:37.852 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Found @SpringBootConfiguration com.starry.admin.Application for test class com.starry.admin.api.WxCustomGiftOrderApiTest +2025-12-31 21:45:37.852 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Loaded default TestExecutionListener class names from location [META-INF/spring.factories]: [org.springframework.test.context.web.ServletTestExecutionListener, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener, org.springframework.test.context.event.ApplicationEventsTestExecutionListener, org.springframework.test.context.support.DependencyInjectionTestExecutionListener, org.springframework.test.context.support.DirtiesContextTestExecutionListener, org.springframework.test.context.transaction.TransactionalTestExecutionListener, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener, org.springframework.test.context.event.EventPublishingTestExecutionListener, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener, org.springframework.boot.test.autoconfigure.webservices.client.MockWebServiceServerTestExecutionListener, org.springframework.security.test.context.support.WithSecurityContextTestExecutionListener, org.springframework.security.test.context.support.ReactorContextTestExecutionListener] +2025-12-31 21:45:37.853 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Using TestExecutionListeners: [org.springframework.test.context.web.ServletTestExecutionListener@f1eeaab, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener@79d99c22, org.springframework.test.context.event.ApplicationEventsTestExecutionListener@74a3fd06, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener@17cf8dc8, org.springframework.boot.test.autoconfigure.SpringBootDependencyInjectionTestExecutionListener@6f7c6628, org.springframework.test.context.support.DirtiesContextTestExecutionListener@5a71df69, org.springframework.test.context.transaction.TransactionalTestExecutionListener@315152ec, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener@5a1b38c3, org.springframework.test.context.event.EventPublishingTestExecutionListener@56da488e, org.springframework.security.test.context.support.WithSecurityContextTestExecutionListener@2845fab, org.springframework.security.test.context.support.ReactorContextTestExecutionListener@39f9bb25, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener@3a2741f9, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener@3e3de00b, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener@1ee48960, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener@6a30390a, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener@6a18853c, org.springframework.boot.test.autoconfigure.webservices.client.MockWebServiceServerTestExecutionListener@3b741dcc] +2025-12-31 21:45:37.870 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/gift from 127.0.0.1 [Unknown] +2025-12-31 21:45:37.875 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=REWARD rewardFlag? true +2025-12-31 21:45:37.897 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/gift - 200 OK (27ms) businessCode=200 success=true message=成功 +2025-12-31 21:45:37.912 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/custom/order/gift from 127.0.0.1 [Unknown] +2025-12-31 21:45:37.915 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=REWARD rewardFlag? true +2025-12-31 21:45:37.916 WARN 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/custom/order/gift - 200 OK (4ms) businessCode=998 success=false message=余额不足 +[INFO] Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.069 s - in com.starry.admin.api.WxCustomGiftOrderApiTest +[INFO] Running com.starry.admin.api.PlayClerkUserInfoApiTest +2025-12-31 21:45:37.920 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Neither @ContextConfiguration nor @ContextHierarchy found for test class [com.starry.admin.api.PlayClerkUserInfoApiTest], using SpringBootContextLoader +2025-12-31 21:45:37.920 INFO 68358 --- [ main] o.s.t.c.support.AbstractContextLoader : Could not detect default resource locations for test class [com.starry.admin.api.PlayClerkUserInfoApiTest]: no resource found for suffixes {-context.xml, Context.groovy}. +2025-12-31 21:45:37.920 INFO 68358 --- [ main] t.c.s.AnnotationConfigContextLoaderUtils : Could not detect default configuration classes for test class [com.starry.admin.api.PlayClerkUserInfoApiTest]: PlayClerkUserInfoApiTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration. +2025-12-31 21:45:37.921 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Found @SpringBootConfiguration com.starry.admin.Application for test class com.starry.admin.api.PlayClerkUserInfoApiTest +2025-12-31 21:45:37.921 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Loaded default TestExecutionListener class names from location [META-INF/spring.factories]: [org.springframework.test.context.web.ServletTestExecutionListener, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener, org.springframework.test.context.event.ApplicationEventsTestExecutionListener, org.springframework.test.context.support.DependencyInjectionTestExecutionListener, org.springframework.test.context.support.DirtiesContextTestExecutionListener, org.springframework.test.context.transaction.TransactionalTestExecutionListener, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener, org.springframework.test.context.event.EventPublishingTestExecutionListener, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener, org.springframework.boot.test.autoconfigure.webservices.client.MockWebServiceServerTestExecutionListener, org.springframework.security.test.context.support.WithSecurityContextTestExecutionListener, org.springframework.security.test.context.support.ReactorContextTestExecutionListener] +2025-12-31 21:45:37.921 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Using TestExecutionListeners: [org.springframework.test.context.web.ServletTestExecutionListener@6bc26806, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener@328f03a7, org.springframework.test.context.event.ApplicationEventsTestExecutionListener@63cf575, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener@5f9c5c88, org.springframework.boot.test.autoconfigure.SpringBootDependencyInjectionTestExecutionListener@27e68d25, org.springframework.test.context.support.DirtiesContextTestExecutionListener@6d3e3045, org.springframework.test.context.transaction.TransactionalTestExecutionListener@cc8e7ca, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener@310d92c7, org.springframework.test.context.event.EventPublishingTestExecutionListener@2211be66, org.springframework.security.test.context.support.WithSecurityContextTestExecutionListener@3eb10e79, org.springframework.security.test.context.support.ReactorContextTestExecutionListener@758c58d2, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener@284a670e, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener@7870eef, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener@31730aa0, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener@262e8e94, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener@5d27ef48, org.springframework.boot.test.autoconfigure.webservices.client.MockWebServiceServerTestExecutionListener@62e86275] +2025-12-31 21:45:37.927 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /clerk/level/update from 127.0.0.1 [Unknown] +2025-12-31 21:45:37.942 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /clerk/level/update - 200 OK (15ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:37.961 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /clerk/user/list from 127.0.0.1 [Unknown] +2025-12-31 21:45:37.976 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /clerk/user/list - 200 OK (15ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:38.060 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /clerk/user/list from 127.0.0.1 [Unknown] +2025-12-31 21:45:38.066 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /clerk/user/list - 200 OK (6ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:38.088 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /clerk/user/list from 127.0.0.1 [Unknown] +2025-12-31 21:45:38.093 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /clerk/user/list - 200 OK (5ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:38.104 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /clerk/level/update from 127.0.0.1 [Unknown] +2025-12-31 21:45:38.110 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /clerk/level/update - 200 OK (6ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:38.127 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /clerk/user/list from 127.0.0.1 [Unknown] +2025-12-31 21:45:38.133 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /clerk/user/list - 200 OK (6ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:38.405 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /clerk/user/list from 127.0.0.1 [Unknown] +2025-12-31 21:45:38.422 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /clerk/user/list - 200 OK (17ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:38.445 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: GET /clerk/user/list from 127.0.0.1 [Unknown] +2025-12-31 21:45:38.451 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: GET /clerk/user/list - 200 OK (6ms) businessCode=200 success=true message=操作成功 +[INFO] Tests run: 8, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.54 s - in com.starry.admin.api.PlayClerkUserInfoApiTest +[INFO] Running com.starry.admin.api.WxClerkMediaControllerApiTest +2025-12-31 21:45:38.461 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Neither @ContextConfiguration nor @ContextHierarchy found for test class [com.starry.admin.api.WxClerkMediaControllerApiTest], using SpringBootContextLoader +2025-12-31 21:45:38.461 INFO 68358 --- [ main] o.s.t.c.support.AbstractContextLoader : Could not detect default resource locations for test class [com.starry.admin.api.WxClerkMediaControllerApiTest]: no resource found for suffixes {-context.xml, Context.groovy}. +2025-12-31 21:45:38.461 INFO 68358 --- [ main] t.c.s.AnnotationConfigContextLoaderUtils : Could not detect default configuration classes for test class [com.starry.admin.api.WxClerkMediaControllerApiTest]: WxClerkMediaControllerApiTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration. +2025-12-31 21:45:38.462 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Found @SpringBootConfiguration com.starry.admin.Application for test class com.starry.admin.api.WxClerkMediaControllerApiTest +2025-12-31 21:45:38.463 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Loaded default TestExecutionListener class names from location [META-INF/spring.factories]: [org.springframework.test.context.web.ServletTestExecutionListener, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener, org.springframework.test.context.event.ApplicationEventsTestExecutionListener, org.springframework.test.context.support.DependencyInjectionTestExecutionListener, org.springframework.test.context.support.DirtiesContextTestExecutionListener, org.springframework.test.context.transaction.TransactionalTestExecutionListener, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener, org.springframework.test.context.event.EventPublishingTestExecutionListener, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener, org.springframework.boot.test.autoconfigure.webservices.client.MockWebServiceServerTestExecutionListener, org.springframework.security.test.context.support.WithSecurityContextTestExecutionListener, org.springframework.security.test.context.support.ReactorContextTestExecutionListener] +2025-12-31 21:45:38.463 INFO 68358 --- [ main] .b.t.c.SpringBootTestContextBootstrapper : Using TestExecutionListeners: [org.springframework.test.context.web.ServletTestExecutionListener@4f52904d, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener@4cc40b45, org.springframework.test.context.event.ApplicationEventsTestExecutionListener@4368ab6f, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener@62516919, org.springframework.boot.test.autoconfigure.SpringBootDependencyInjectionTestExecutionListener@395a5de6, org.springframework.test.context.support.DirtiesContextTestExecutionListener@55a8e7ab, org.springframework.test.context.transaction.TransactionalTestExecutionListener@539d0da2, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener@3aedbf69, org.springframework.test.context.event.EventPublishingTestExecutionListener@51b360bf, org.springframework.security.test.context.support.WithSecurityContextTestExecutionListener@4334509d, org.springframework.security.test.context.support.ReactorContextTestExecutionListener@787fa544, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener@2f3e4bd5, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener@65c26015, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener@4136488, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener@1c3b4cb, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener@5c7e27c5, org.springframework.boot.test.autoconfigure.webservices.client.MockWebServiceServerTestExecutionListener@2aca2697] + + . ____ _ __ _ _ + /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ +( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ + \\/ ___)| |_)| | | | | || (_| | ) ) ) ) + ' |____| .__|_| |_|_| |_\__, | / / / / + =========|_|==============|___/=/_/_/_/ + :: Spring Boot :: (v2.5.4) + +2025-12-31 21:45:38.484 INFO 68358 --- [ main] c.s.a.api.WxClerkMediaControllerApiTest : Starting WxClerkMediaControllerApiTest using Java 11.0.28 on oushuns-Mac-mini.local with PID 68358 (started by oujunyi in /Volumes/main/code/yunpei/peipei-backend/play-admin) +2025-12-31 21:45:38.484 INFO 68358 --- [ main] c.s.a.api.WxClerkMediaControllerApiTest : The following profiles are active: apitest +2025-12-31 21:45:38.614 INFO 68358 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode! +2025-12-31 21:45:38.614 INFO 68358 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data Redis repositories in DEFAULT mode. +2025-12-31 21:45:38.638 INFO 68358 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 24 ms. Found 0 Redis repository interfaces. +2025-12-31 21:45:38.681 INFO 68358 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.security.access.expression.method.DefaultMethodSecurityExpressionHandler@64409234' of type [org.springframework.security.access.expression.method.DefaultMethodSecurityExpressionHandler] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +2025-12-31 21:45:38.683 INFO 68358 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'methodSecurityMetadataSource' of type [org.springframework.security.access.method.DelegatingMethodSecurityMetadataSource] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +2025-12-31 21:45:38.719 INFO 68358 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 0 (http) +2025-12-31 21:45:38.720 INFO 68358 --- [ main] o.a.coyote.http11.Http11NioProtocol : Initializing ProtocolHandler ["http-nio-auto-5"] +2025-12-31 21:45:38.720 INFO 68358 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat] +2025-12-31 21:45:38.720 INFO 68358 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.52] +2025-12-31 21:45:38.727 INFO 68358 --- [ main] o.a.c.c.C.[Tomcat-4].[localhost].[/api] : Initializing Spring embedded WebApplicationContext +2025-12-31 21:45:38.727 INFO 68358 --- [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 242 ms +2025-12-31 21:45:38.789 INFO 68358 --- [ main] c.g.y.a.MybatisPlusJoinAutoConfiguration : mybatis plus join properties config complete +2025-12-31 21:45:38.812 INFO 68358 --- [ main] com.alibaba.druid.pool.DruidDataSource : {dataSource-5} inited +2025-12-31 21:45:38.824 INFO 68358 --- [ main] c.g.y.a.MybatisPlusJoinAutoConfiguration : mybatis plus join SqlInjector init + _ _ |_ _ _|_. ___ _ | _ +| | |\/|_)(_| | |_\ |_)||_|_\ + / | + 3.5.3.2 +2025-12-31 21:45:38.954 INFO 68358 --- [ main] o.f.c.internal.license.VersionPrinter : Flyway Community Edition 7.15.0 by Redgate +2025-12-31 21:45:38.954 INFO 68358 --- [ main] o.f.c.i.database.base.BaseDatabaseType : Database: jdbc:mysql://localhost:33306/peipei_apitest (MySQL 8.0) +2025-12-31 21:45:38.979 INFO 68358 --- [ main] o.f.core.internal.command.DbMigrate : Current version of schema `peipei_apitest`: 18 +2025-12-31 21:45:38.979 INFO 68358 --- [ main] o.f.core.internal.command.DbMigrate : Schema `peipei_apitest` is up to date. No migration necessary. +2025-12-31 21:45:39.297 INFO 68358 --- [ main] .s.s.UserDetailsServiceAutoConfiguration : + +Using generated security password: f871a62e-7d1a-4dd0-b1ad-167ff9f7da4e + +2025-12-31 21:45:39.785 INFO 68358 --- [ main] o.s.s.web.DefaultSecurityFilterChain : Will secure any request with [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@17ff6dc2, org.springframework.security.web.context.SecurityContextPersistenceFilter@5f057b, org.springframework.security.web.header.HeaderWriterFilter@5dfd5087, com.starry.admin.common.security.filter.ApiTestAuthenticationFilter@57fa97ea, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@757dd98, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@3099dc9d, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@36b073a5, org.springframework.security.web.session.SessionManagementFilter@3152b357, org.springframework.security.web.access.ExceptionTranslationFilter@12f2afbf, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@2bf85ae6] +2025-12-31 21:45:39.796 INFO 68358 --- [ main] pertySourcedRequestMappingHandlerMapping : Mapped URL path [/v2/api-docs] onto method [springfox.documentation.swagger2.web.Swagger2ControllerWebMvc#getDocumentation(String, HttpServletRequest)] + _ _ |_ _ _|_. ___ _ | _ . _ . _ +| | |\/|_)(_| | |_\ |_)||_|_\ | (_) | | | + / | / + 1.4.10 +2025-12-31 21:45:39.920 INFO 68358 --- [ main] o.a.c.c.C.[Tomcat-4].[localhost].[/api] : Initializing Spring TestDispatcherServlet '' +2025-12-31 21:45:39.920 INFO 68358 --- [ main] o.s.t.web.servlet.TestDispatcherServlet : Initializing Servlet '' +2025-12-31 21:45:39.920 INFO 68358 --- [ main] o.s.t.web.servlet.TestDispatcherServlet : Completed initialization in 0 ms +2025-12-31 21:45:39.937 INFO 68358 --- [ main] o.a.coyote.http11.Http11NioProtocol : Starting ProtocolHandler ["http-nio-auto-5"] +2025-12-31 21:45:39.937 INFO 68358 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 56357 (http) with context path '/api' +2025-12-31 21:45:39.937 INFO 68358 --- [ main] d.s.w.p.DocumentationPluginsBootstrapper : Documentation plugins bootstrapped +2025-12-31 21:45:39.938 INFO 68358 --- [ main] d.s.w.p.DocumentationPluginsBootstrapper : Found 1 custom documentation plugin(s) +2025-12-31 21:45:39.950 INFO 68358 --- [ main] s.d.s.w.s.ApiListingReferenceScanner : Scanning for api listing references +2025-12-31 21:45:39.965 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_1 +2025-12-31 21:45:39.966 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_1 +2025-12-31 21:45:39.966 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_2 +2025-12-31 21:45:39.966 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPUT_1 +2025-12-31 21:45:39.968 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_1 +2025-12-31 21:45:39.970 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_2 +2025-12-31 21:45:39.971 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_1 +2025-12-31 21:45:39.973 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_2 +2025-12-31 21:45:39.973 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_2 +2025-12-31 21:45:39.974 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_1 +2025-12-31 21:45:39.975 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingPOST_1 +2025-12-31 21:45:39.975 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_3 +2025-12-31 21:45:39.975 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_2 +2025-12-31 21:45:39.976 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_3 +2025-12-31 21:45:39.976 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_3 +2025-12-31 21:45:39.977 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_3 +2025-12-31 21:45:39.977 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listAllUsingGET_1 +2025-12-31 21:45:39.977 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_4 +2025-12-31 21:45:39.977 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_3 +2025-12-31 21:45:39.978 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_4 +2025-12-31 21:45:39.978 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_4 +2025-12-31 21:45:39.979 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_4 +2025-12-31 21:45:39.979 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_5 +2025-12-31 21:45:39.979 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_4 +2025-12-31 21:45:39.980 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingPOST_2 +2025-12-31 21:45:39.981 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_6 +2025-12-31 21:45:39.981 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_5 +2025-12-31 21:45:39.982 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_5 +2025-12-31 21:45:39.982 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_5 +2025-12-31 21:45:39.982 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_5 +2025-12-31 21:45:39.983 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_7 +2025-12-31 21:45:39.983 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_6 +2025-12-31 21:45:39.983 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_6 +2025-12-31 21:45:39.984 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_6 +2025-12-31 21:45:39.984 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listAllUsingGET_2 +2025-12-31 21:45:39.984 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_8 +2025-12-31 21:45:39.985 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_7 +2025-12-31 21:45:39.987 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listByPageUsingPOST_1 +2025-12-31 21:45:39.989 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_7 +2025-12-31 21:45:39.989 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_7 +2025-12-31 21:45:39.990 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_6 +2025-12-31 21:45:39.990 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_9 +2025-12-31 21:45:39.990 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_8 +2025-12-31 21:45:39.991 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_8 +2025-12-31 21:45:39.992 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_8 +2025-12-31 21:45:39.993 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingPOST_3 +2025-12-31 21:45:39.993 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_10 +2025-12-31 21:45:39.993 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_9 +2025-12-31 21:45:39.994 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_9 +2025-12-31 21:45:39.995 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listByPageUsingPOST_2 +2025-12-31 21:45:39.995 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_11 +2025-12-31 21:45:39.995 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_10 +2025-12-31 21:45:39.998 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_9 +2025-12-31 21:45:40.000 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_7 +2025-12-31 21:45:40.003 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listByPageUsingPOST_3 +2025-12-31 21:45:40.003 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listByPageUsingPOST_4 +2025-12-31 21:45:40.003 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_12 +2025-12-31 21:45:40.004 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_11 +2025-12-31 21:45:40.006 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listByPageUsingPOST_5 +2025-12-31 21:45:40.006 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_13 +2025-12-31 21:45:40.007 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_12 +2025-12-31 21:45:40.008 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_10 +2025-12-31 21:45:40.008 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_10 +2025-12-31 21:45:40.008 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_8 +2025-12-31 21:45:40.009 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_14 +2025-12-31 21:45:40.009 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_13 +2025-12-31 21:45:40.010 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingPOST_4 +2025-12-31 21:45:40.010 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingPOST_5 +2025-12-31 21:45:40.011 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_11 +2025-12-31 21:45:40.012 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_11 +2025-12-31 21:45:40.012 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_15 +2025-12-31 21:45:40.013 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_14 +2025-12-31 21:45:40.014 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_12 +2025-12-31 21:45:40.014 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_12 +2025-12-31 21:45:40.016 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listByPageUsingPOST_6 +2025-12-31 21:45:40.016 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_16 +2025-12-31 21:45:40.016 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_15 +2025-12-31 21:45:40.017 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_16 +2025-12-31 21:45:40.018 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_13 +2025-12-31 21:45:40.019 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_13 +2025-12-31 21:45:40.020 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingPOST_6 +2025-12-31 21:45:40.020 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_17 +2025-12-31 21:45:40.021 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_17 +2025-12-31 21:45:40.022 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_14 +2025-12-31 21:45:40.023 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_14 +2025-12-31 21:45:40.023 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_9 +2025-12-31 21:45:40.024 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_18 +2025-12-31 21:45:40.024 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_18 +2025-12-31 21:45:40.025 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_15 +2025-12-31 21:45:40.025 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_15 +2025-12-31 21:45:40.025 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_10 +2025-12-31 21:45:40.026 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_19 +2025-12-31 21:45:40.026 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_19 +2025-12-31 21:45:40.026 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_16 +2025-12-31 21:45:40.027 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_16 +2025-12-31 21:45:40.027 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_11 +2025-12-31 21:45:40.027 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_20 +2025-12-31 21:45:40.028 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_20 +2025-12-31 21:45:40.028 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_17 +2025-12-31 21:45:40.029 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_17 +2025-12-31 21:45:40.030 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingPOST_7 +2025-12-31 21:45:40.030 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_21 +2025-12-31 21:45:40.030 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_21 +2025-12-31 21:45:40.030 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_18 +2025-12-31 21:45:40.031 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_18 +2025-12-31 21:45:40.032 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_22 +2025-12-31 21:45:40.032 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_22 +2025-12-31 21:45:40.033 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingPOST_8 +2025-12-31 21:45:40.034 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_19 +2025-12-31 21:45:40.036 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_19 +2025-12-31 21:45:40.040 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingPOST_9 +2025-12-31 21:45:40.040 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_23 +2025-12-31 21:45:40.040 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_23 +2025-12-31 21:45:40.041 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateStateUsingPOST_1 +2025-12-31 21:45:40.041 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_20 +2025-12-31 21:45:40.042 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_20 +2025-12-31 21:45:40.042 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_12 +2025-12-31 21:45:40.042 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_24 +2025-12-31 21:45:40.043 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_24 +2025-12-31 21:45:40.043 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_21 +2025-12-31 21:45:40.044 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_21 +2025-12-31 21:45:40.045 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingPOST_10 +2025-12-31 21:45:40.045 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_25 +2025-12-31 21:45:40.046 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_25 +2025-12-31 21:45:40.047 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingPOST_11 +2025-12-31 21:45:40.048 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingPOST_12 +2025-12-31 21:45:40.049 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_26 +2025-12-31 21:45:40.049 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_26 +2025-12-31 21:45:40.050 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_22 +2025-12-31 21:45:40.051 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listByPageUsingPOST_7 +2025-12-31 21:45:40.052 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_27 +2025-12-31 21:45:40.055 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_27 +2025-12-31 21:45:40.056 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_22 +2025-12-31 21:45:40.057 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_23 +2025-12-31 21:45:40.058 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingPOST_13 +2025-12-31 21:45:40.058 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_28 +2025-12-31 21:45:40.058 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_28 +2025-12-31 21:45:40.060 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_24 +2025-12-31 21:45:40.061 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listByPageUsingPOST_8 +2025-12-31 21:45:40.061 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_29 +2025-12-31 21:45:40.062 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createBaseInfoUsingPOST_1 +2025-12-31 21:45:40.063 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listByPageUsingPOST_9 +2025-12-31 21:45:40.063 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_30 +2025-12-31 21:45:40.063 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateBaseInfoUsingPOST_1 +2025-12-31 21:45:40.066 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listAllUsingGET_3 +2025-12-31 21:45:40.066 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listByPageUsingPOST_10 +2025-12-31 21:45:40.067 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createBaseInfoUsingPOST_2 +2025-12-31 21:45:40.067 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listByPageUsingPOST_11 +2025-12-31 21:45:40.067 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_31 +2025-12-31 21:45:40.068 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateBaseInfoUsingPOST_2 +2025-12-31 21:45:40.068 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_23 +2025-12-31 21:45:40.069 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listByPageUsingPOST_12 +2025-12-31 21:45:40.069 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listByPageUsingPOST_13 +2025-12-31 21:45:40.070 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_32 +2025-12-31 21:45:40.070 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_24 +2025-12-31 21:45:40.071 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listByPageUsingPOST_14 +2025-12-31 21:45:40.071 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listByPageUsingPOST_15 +2025-12-31 21:45:40.071 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_33 +2025-12-31 21:45:40.071 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: uploadFileUsingPOST_1 +2025-12-31 21:45:40.072 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_25 +2025-12-31 21:45:40.073 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_26 +2025-12-31 21:45:40.073 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_29 +2025-12-31 21:45:40.074 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_27 +2025-12-31 21:45:40.075 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_13 +2025-12-31 21:45:40.076 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_30 +2025-12-31 21:45:40.076 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_25 +2025-12-31 21:45:40.077 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_28 +2025-12-31 21:45:40.077 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_14 +2025-12-31 21:45:40.078 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_34 +2025-12-31 21:45:40.078 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_31 +2025-12-31 21:45:40.079 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_26 +2025-12-31 21:45:40.079 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_29 +2025-12-31 21:45:40.080 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_15 +2025-12-31 21:45:40.080 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_35 +2025-12-31 21:45:40.080 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_32 +2025-12-31 21:45:40.081 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_30 +2025-12-31 21:45:40.081 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_16 +2025-12-31 21:45:40.082 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_36 +2025-12-31 21:45:40.083 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_27 +2025-12-31 21:45:40.083 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: deleteUsingPOST_1 +2025-12-31 21:45:40.084 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_31 +2025-12-31 21:45:40.085 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_17 +2025-12-31 21:45:40.086 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: treeselectUsingGET_1 +2025-12-31 21:45:40.086 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_33 +2025-12-31 21:45:40.087 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_28 +2025-12-31 21:45:40.088 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_32 +2025-12-31 21:45:40.088 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_18 +2025-12-31 21:45:40.088 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_37 +2025-12-31 21:45:40.089 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_34 +2025-12-31 21:45:40.089 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: exportUsingPOST_1 +2025-12-31 21:45:40.092 WARN 68358 --- [ main] s.d.s.w.r.p.ParameterDataTypeReader : Trying to infer dataType java.lang.String[] +2025-12-31 21:45:40.093 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_29 +2025-12-31 21:45:40.093 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: deleteUsingDELETE_1 +2025-12-31 21:45:40.094 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_33 +2025-12-31 21:45:40.094 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listAllUsingGET_4 +2025-12-31 21:45:40.094 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listPageUsingGET_1 +2025-12-31 21:45:40.094 WARN 68358 --- [ main] s.d.s.w.r.p.ParameterDataTypeReader : Trying to infer dataType java.lang.String[] +2025-12-31 21:45:40.095 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_35 +2025-12-31 21:45:40.097 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_30 +2025-12-31 21:45:40.098 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_34 +2025-12-31 21:45:40.099 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listByPageUsingPOST_16 +2025-12-31 21:45:40.100 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_38 +2025-12-31 21:45:40.111 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_36 +2025-12-31 21:45:40.113 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_31 +2025-12-31 21:45:40.113 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_35 +2025-12-31 21:45:40.114 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_19 +2025-12-31 21:45:40.114 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_39 +2025-12-31 21:45:40.114 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_37 +2025-12-31 21:45:40.115 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: exportUsingPOST_2 +2025-12-31 21:45:40.115 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: createUsingPOST_32 +2025-12-31 21:45:40.116 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_36 +2025-12-31 21:45:40.116 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingPOST_14 +2025-12-31 21:45:40.116 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: removeUsingDELETE_40 +2025-12-31 21:45:40.117 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_38 +2025-12-31 21:45:40.119 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: deleteUsingPOST_2 +2025-12-31 21:45:40.119 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_37 +2025-12-31 21:45:40.119 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getInfoUsingGET_38 +2025-12-31 21:45:40.120 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listPageUsingGET_2 +2025-12-31 21:45:40.122 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPOST_39 +2025-12-31 21:45:40.124 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listUsingGET_20 +2025-12-31 21:45:40.131 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: listAllCommodityUsingGET_1 +2025-12-31 21:45:40.132 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: queryByIdUsingGET_1 +2025-12-31 21:45:40.135 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateAudioUsingPOST_1 +2025-12-31 21:45:40.135 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateAudioUsingPOST_2 +2025-12-31 21:45:40.139 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: deleteUsingDELETE_2 +2025-12-31 21:45:40.140 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: uploadUsingPOST_1 +2025-12-31 21:45:40.142 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: clerkQueryWagesDetailsUsingGET_1 +2025-12-31 21:45:40.146 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: cancellationOrderUsingPOST_1 +2025-12-31 21:45:40.149 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: queryByIdUsingGET_2 +2025-12-31 21:45:40.149 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: queryByIdUsingGET_3 +2025-12-31 21:45:40.150 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: queryOrderByPageUsingPOST_1 +2025-12-31 21:45:40.153 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: customListByAllUsingGET_1 +2025-12-31 21:45:40.153 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: queryByIdUsingGET_4 +2025-12-31 21:45:40.153 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: checkSubscribeUsingGET_1 +2025-12-31 21:45:40.160 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateReviewStateUsingPOST_1 +2025-12-31 21:45:40.162 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: testUsingGET_1 +2025-12-31 21:45:40.164 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: sendSmsUsingGET_1 +2025-12-31 21:45:40.167 INFO 68358 --- [ main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getProfileUsingGET_1 +2025-12-31 21:45:40.170 INFO 68358 --- [ main] c.s.a.api.WxClerkMediaControllerApiTest : Started WxClerkMediaControllerApiTest in 1.706 seconds (JVM running for 32.535) +2025-12-31 21:45:40.183 INFO 68358 --- [ main] c.s.a.common.apitest.ApiTestDataSeeder : API test tenant package pkg-basic already exists +2025-12-31 21:45:40.186 INFO 68358 --- [ main] c.s.a.common.apitest.ApiTestDataSeeder : API test tenant tenant-apitest already exists +2025-12-31 21:45:40.188 INFO 68358 --- [ main] c.s.a.common.apitest.ApiTestDataSeeder : API test admin user user-apitest-admin already exists +2025-12-31 21:45:40.190 INFO 68358 --- [ main] c.s.a.common.apitest.ApiTestDataSeeder : API test personnel group group-basic already exists +2025-12-31 21:45:40.191 INFO 68358 --- [ main] c.s.a.common.apitest.ApiTestDataSeeder : API test clerk level lvl-basic already exists +2025-12-31 21:45:40.193 INFO 68358 --- [ main] c.s.a.common.apitest.ApiTestDataSeeder : API test commodity svc-basic already exists +2025-12-31 21:45:40.194 INFO 68358 --- [ main] c.s.a.common.apitest.ApiTestDataSeeder : API test commodity pricing for svc-basic already exists +2025-12-31 21:45:40.198 INFO 68358 --- [ main] c.s.a.common.apitest.ApiTestDataSeeder : API test clerk clerk-apitest already exists +2025-12-31 21:45:40.199 INFO 68358 --- [ main] c.s.a.common.apitest.ApiTestDataSeeder : API test clerk commodity clerk-svc-basic already exists +2025-12-31 21:45:40.200 INFO 68358 --- [ main] c.s.a.common.apitest.ApiTestDataSeeder : API test gift gift-basic already exists +2025-12-31 21:45:40.205 INFO 68358 --- [ main] c.s.a.common.apitest.ApiTestDataSeeder : API test customer customer-apitest already exists, state refreshed +2025-12-31 21:45:40.270 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/clerk/media/upload from 127.0.0.1 [Unknown] +2025-12-31 21:45:40.315 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/clerk/media/upload - 200 OK (45ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:40.326 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/clerk/media/upload from 127.0.0.1 [Unknown] +2025-12-31 21:45:40.444 INFO 68358 --- [ main] ws.schild.jave.ConversionOutputAnalyzer : Unhandled message in step: 2 Line: 23 message: <[libx264 @ 0x12a01fa00] using SAR=1/1> +2025-12-31 21:45:40.444 INFO 68358 --- [ main] ws.schild.jave.ConversionOutputAnalyzer : Unhandled message in step: 2 Line: 24 message: <[libx264 @ 0x12a01fa00] using cpu capabilities: ARMv8 NEON> +2025-12-31 21:45:40.445 INFO 68358 --- [ main] ws.schild.jave.ConversionOutputAnalyzer : Unhandled message in step: 2 Line: 25 message: <[libx264 @ 0x12a01fa00] profile High, level 2.1, 4:2:0, 8-bit> +2025-12-31 21:45:40.445 INFO 68358 --- [ main] ws.schild.jave.ConversionOutputAnalyzer : Unhandled message in step: 2 Line: 26 message: <[libx264 @ 0x12a01fa00] 264 - core 164 r3075 66a5bc1 - H.264/MPEG-4 AVC codec - Copyleft 2003-2021 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=8 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=abr mbtree=1 bitrate=1500 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00> +2025-12-31 21:45:41.047 INFO 68358 --- [ main] ws.schild.jave.ConversionOutputAnalyzer : Unhandled message in step: 3 Line: 49 message: <[mp4 @ 0x12a01e800] Starting second pass: moving the moov atom to the beginning of the file> +2025-12-31 21:45:41.070 INFO 68358 --- [ main] ws.schild.jave.ConversionOutputAnalyzer : Unhandled message in step: 2 Line: 19 message: <[swscaler @ 0x158478000] deprecated pixel format used, make sure you did set range correctly> +2025-12-31 21:45:41.094 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/clerk/media/upload - 200 OK (768ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:41.107 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/clerk/media/upload from 127.0.0.1 [Unknown] +2025-12-31 21:45:41.121 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/clerk/media/upload - 200 OK (14ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:41.123 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/clerk/media/upload from 127.0.0.1 [Unknown] +2025-12-31 21:45:41.135 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/clerk/media/upload - 200 OK (12ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:41.138 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/clerk/media/upload from 127.0.0.1 [Unknown] +2025-12-31 21:45:41.149 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/clerk/media/upload - 200 OK (11ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:41.152 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/clerk/media/upload from 127.0.0.1 [Unknown] +2025-12-31 21:45:41.164 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/clerk/media/upload - 200 OK (12ms) businessCode=200 success=true message=操作成功 +2025-12-31 21:45:41.166 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/clerk/user/updateAlbum from 127.0.0.1 [Unknown] +2025-12-31 21:45:41.170 INFO 68358 --- [ main] c.s.a.m.w.controller.WxClerkController : [ClerkAlbumUpdate] clerkId=clerk-apitest tenantId=tenant-apitest requestedSet=[tcpwruqkv, d9cy3ksd3, u9vdshako, lw7x7fnod] approvedIds=[media-d443b004-e581-46] newMediaIds=[lw7x7fnod, u9vdshako, tcpwruqkv, d9cy3ksd3] +2025-12-31 21:45:41.171 INFO 68358 --- [ main] c.s.a.m.w.controller.WxClerkController : [ClerkAlbumUpdate] loaded newMediaEntities for validation, clerkId=clerk-apitest tenantId=tenant-apitest mediaSummaries=[id=d9cy3ksd3,status=ready,ownerType=clerk,ownerId=clerk-apitest,tenantId=tenant-apitest, id=lw7x7fnod,status=ready,ownerType=clerk,ownerId=clerk-apitest,tenantId=tenant-apitest, id=tcpwruqkv,status=ready,ownerType=clerk,ownerId=clerk-apitest,tenantId=tenant-apitest, id=u9vdshako,status=ready,ownerType=clerk,ownerId=clerk-apitest,tenantId=tenant-apitest] +2025-12-31 21:45:41.174 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/clerk/user/updateAlbum - 200 OK (8ms) businessCode=200 success=true message=提交成功,等待审核~ +2025-12-31 21:45:41.243 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request started: POST /wx/clerk/user/updateAlbum from 127.0.0.1 [Unknown] +2025-12-31 21:45:41.245 INFO 68358 --- [ main] c.s.a.m.w.controller.WxClerkController : [ClerkAlbumUpdate] clerkId=clerk-apitest tenantId=tenant-apitest requestedSet=[tcpwruqkv, u9vdshako] approvedIds=[lw7x7fnod, u9vdshako, tcpwruqkv, d9cy3ksd3] newMediaIds=[] +2025-12-31 21:45:41.269 INFO 68358 --- [ main] c.s.c.i.RequestLoggingInterceptor : Request completed: POST /wx/clerk/user/updateAlbum - 200 OK (26ms) businessCode=200 success=true message=修改成功 +[INFO] Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 2.818 s - in com.starry.admin.api.WxClerkMediaControllerApiTest +[INFO] Running com.starry.admin.modules.weichat.controller.WxClerkMediaControllerTest +2025-12-31 21:45:41.358 INFO 68358 --- [ main] o.s.mock.web.MockServletContext : Initializing Spring TestDispatcherServlet '' +2025-12-31 21:45:41.358 INFO 68358 --- [ main] o.s.t.web.servlet.TestDispatcherServlet : Initializing Servlet '' +2025-12-31 21:45:41.358 INFO 68358 --- [ main] o.s.t.web.servlet.TestDispatcherServlet : Completed initialization in 0 ms +2025-12-31 21:45:41.368 INFO 68358 --- [ main] o.s.mock.web.MockServletContext : Initializing Spring TestDispatcherServlet '' +2025-12-31 21:45:41.368 INFO 68358 --- [ main] o.s.t.web.servlet.TestDispatcherServlet : Initializing Servlet '' +2025-12-31 21:45:41.369 INFO 68358 --- [ main] o.s.t.web.servlet.TestDispatcherServlet : Completed initialization in 1 ms +2025-12-31 21:45:41.375 INFO 68358 --- [ main] o.s.mock.web.MockServletContext : Initializing Spring TestDispatcherServlet '' +2025-12-31 21:45:41.375 INFO 68358 --- [ main] o.s.t.web.servlet.TestDispatcherServlet : Initializing Servlet '' +2025-12-31 21:45:41.375 INFO 68358 --- [ main] o.s.t.web.servlet.TestDispatcherServlet : Completed initialization in 0 ms +2025-12-31 21:45:41.379 INFO 68358 --- [ main] o.s.mock.web.MockServletContext : Initializing Spring TestDispatcherServlet '' +2025-12-31 21:45:41.379 INFO 68358 --- [ main] o.s.t.web.servlet.TestDispatcherServlet : Initializing Servlet '' +2025-12-31 21:45:41.379 INFO 68358 --- [ main] o.s.t.web.servlet.TestDispatcherServlet : Completed initialization in 0 ms +[INFO] Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.099 s - in com.starry.admin.modules.weichat.controller.WxClerkMediaControllerTest +[INFO] Running com.starry.admin.modules.weichat.service.MediaUploadServiceTest +2025-12-31 21:45:41.382 WARN 68358 --- [ main] c.s.a.m.w.service.MediaUploadService : Unsupported media type: txt / text/plain +[INFO] Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.009 s - in com.starry.admin.modules.weichat.service.MediaUploadServiceTest +[INFO] Running com.starry.admin.modules.weichat.service.WxCustomMpServiceTest +[INFO] Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.09 s - in com.starry.admin.modules.weichat.service.WxCustomMpServiceTest +[INFO] Running com.starry.admin.modules.statistics.controller.PlayClerkPerformanceControllerTest +2025-12-31 21:45:41.486 INFO 68358 --- [ main] o.s.mock.web.MockServletContext : Initializing Spring TestDispatcherServlet '' +2025-12-31 21:45:41.486 INFO 68358 --- [ main] o.s.t.web.servlet.TestDispatcherServlet : Initializing Servlet '' +2025-12-31 21:45:41.486 INFO 68358 --- [ main] o.s.t.web.servlet.TestDispatcherServlet : Completed initialization in 0 ms +2025-12-31 21:45:41.503 INFO 68358 --- [ main] o.s.mock.web.MockServletContext : Initializing Spring TestDispatcherServlet '' +2025-12-31 21:45:41.503 INFO 68358 --- [ main] o.s.t.web.servlet.TestDispatcherServlet : Initializing Servlet '' +2025-12-31 21:45:41.503 INFO 68358 --- [ main] o.s.t.web.servlet.TestDispatcherServlet : Completed initialization in 0 ms +[INFO] Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.026 s - in com.starry.admin.modules.statistics.controller.PlayClerkPerformanceControllerTest +[INFO] Running com.starry.admin.modules.statistics.service.PlayClerkPerformanceServiceImplTest +[INFO] Tests run: 7, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.06 s - in com.starry.admin.modules.statistics.service.PlayClerkPerformanceServiceImplTest +[INFO] Running com.starry.admin.modules.order.listener.OrderRevocationEarningsListenerTest +[INFO] Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.029 s - in com.starry.admin.modules.order.listener.OrderRevocationEarningsListenerTest +[INFO] Running com.starry.admin.modules.order.service.impl.PlayOrderInfoServiceImplTest +[INFO] Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.01 s - in com.starry.admin.modules.order.service.impl.PlayOrderInfoServiceImplTest +[INFO] Running com.starry.admin.modules.order.service.impl.OrderLifecycleServiceImplTest +2025-12-31 21:45:41.666 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=REWARD rewardFlag? true +2025-12-31 21:45:41.668 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : Refund already processed for order d4af73df-61bc-4423-931d-c9377618299a, skipping duplicate credit +2025-12-31 21:45:41.669 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=SPECIFIED rewardFlag? false +2025-12-31 21:45:41.672 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=OTHER rewardFlag? false +2025-12-31 21:45:41.673 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=RANDOM rewardFlag? false +2025-12-31 21:45:41.674 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=RANDOM rewardFlag? false +2025-12-31 21:45:41.676 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=SPECIFIED rewardFlag? false +2025-12-31 21:45:41.676 WARN 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : Unsupported coupon discount type X, couponId=null +2025-12-31 21:45:41.677 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=SPECIFIED rewardFlag? false +2025-12-31 21:45:41.679 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=SPECIFIED rewardFlag? false +2025-12-31 21:45:41.680 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=SPECIFIED rewardFlag? false +2025-12-31 21:45:41.680 WARN 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : Percentage coupon rate <= 0, couponId=null +2025-12-31 21:45:41.718 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=REWARD rewardFlag? true +2025-12-31 21:45:41.721 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=OTHER rewardFlag? false +2025-12-31 21:45:41.722 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=REWARD rewardFlag? true +2025-12-31 21:45:41.723 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=OTHER rewardFlag? false +2025-12-31 21:45:41.724 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=SPECIFIED rewardFlag? false +2025-12-31 21:45:41.724 WARN 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : Unsupported coupon discount type X, couponId=null +2025-12-31 21:45:41.725 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=OTHER rewardFlag? false +2025-12-31 21:45:41.727 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=SPECIFIED rewardFlag? false +2025-12-31 21:45:41.728 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=SPECIFIED rewardFlag? false +2025-12-31 21:45:41.729 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=SPECIFIED rewardFlag? false +2025-12-31 21:45:41.732 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=SPECIFIED rewardFlag? false +2025-12-31 21:45:41.733 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=SPECIFIED rewardFlag? false +2025-12-31 21:45:41.734 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=SPECIFIED rewardFlag? false +2025-12-31 21:45:41.738 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=OTHER rewardFlag? false +2025-12-31 21:45:41.741 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=SPECIFIED rewardFlag? false +2025-12-31 21:45:41.743 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=REWARD rewardFlag? true +2025-12-31 21:45:41.745 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=SPECIFIED rewardFlag? false +2025-12-31 21:45:41.746 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=RANDOM rewardFlag? false +2025-12-31 21:45:41.748 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=OTHER rewardFlag? false +2025-12-31 21:45:41.749 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=SPECIFIED rewardFlag? false +2025-12-31 21:45:41.750 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=SPECIFIED rewardFlag? false +2025-12-31 21:45:41.752 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=SPECIFIED rewardFlag? false +2025-12-31 21:45:41.755 INFO 68358 --- [ main] c.s.a.m.o.s.i.OrderLifecycleServiceImpl : placeOrder placeType=RANDOM rewardFlag? false +[INFO] Tests run: 46, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.149 s - in com.starry.admin.modules.order.service.impl.OrderLifecycleServiceImplTest +[INFO] Running com.starry.admin.modules.order.service.OrderCreationContextTest +[INFO] Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.001 s - in com.starry.admin.modules.order.service.OrderCreationContextTest +[INFO] Running com.starry.admin.modules.blindbox.service.BlindBoxPoolAdminServiceTest +[INFO] Tests run: 11, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.032 s - in com.starry.admin.modules.blindbox.service.BlindBoxPoolAdminServiceTest +[INFO] Running com.starry.admin.modules.blindbox.service.BlindBoxServiceTest +[INFO] Tests run: 6, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.026 s - in com.starry.admin.modules.blindbox.service.BlindBoxServiceTest +[INFO] Running com.starry.admin.modules.blindbox.service.BlindBoxInventoryServiceTest +[INFO] Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.001 s - in com.starry.admin.modules.blindbox.service.BlindBoxInventoryServiceTest +[INFO] Running com.starry.admin.modules.shop.service.impl.PlayCouponInfoServiceImplTest +[INFO] Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.008 s - in com.starry.admin.modules.shop.service.impl.PlayCouponInfoServiceImplTest +[INFO] Running com.starry.admin.modules.shop.service.CouponWhitelistTest +2025-12-31 21:45:41.843 INFO 68358 --- [ main] c.s.a.m.w.controller.WxCouponController : {"clerkId":"","commodityId":"cmd-1","commodityQuantity":1,"levelId":"level-1","placeType":"0"} +[INFO] Tests run: 5, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.02 s - in com.starry.admin.modules.shop.service.CouponWhitelistTest +[INFO] Running com.starry.admin.modules.withdraw.service.impl.EarningsServiceImplTest +[INFO] Tests run: 10, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.015 s - in com.starry.admin.modules.withdraw.service.impl.EarningsServiceImplTest +[INFO] Running com.starry.admin.modules.withdraw.service.impl.EarningsBackfillServiceImplTest +[INFO] Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0 s - in com.starry.admin.modules.withdraw.service.impl.EarningsBackfillServiceImplTest +[INFO] Running com.starry.admin.modules.clerk.service.impl.PlayClerkMediaAssetServiceImplTest +[INFO] Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.019 s - in com.starry.admin.modules.clerk.service.impl.PlayClerkMediaAssetServiceImplTest +[INFO] Running com.starry.admin.modules.clerk.service.impl.PlayClerkDataReviewInfoServiceImplTest +[INFO] Tests run: 6, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.02 s - in com.starry.admin.modules.clerk.service.impl.PlayClerkDataReviewInfoServiceImplTest +[INFO] Running com.starry.admin.modules.clerk.service.impl.PlayClerkUserInfoServiceImplTest +[INFO] Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.001 s - in com.starry.admin.modules.clerk.service.impl.PlayClerkUserInfoServiceImplTest +2025-12-31 21:45:43.940 INFO 68358 --- [ionShutdownHook] sys-user : ====关闭后台任务任务线程池==== +[ERROR] Surefire is going to kill self fork JVM. The exit has elapsed 30 seconds after System.exit(0). +[INFO] +[INFO] Results: +[INFO] +[INFO] Tests run: 290, Failures: 0, Errors: 0, Skipped: 0 +[INFO] +[INFO] ------------------------------------------------------------------------ +[INFO] Reactor Summary for play-with 1.1: +[INFO] +[INFO] play-with .......................................... SUCCESS [ 0.126 s] +[INFO] play-common ........................................ SUCCESS [ 0.570 s] +[INFO] play-generator ..................................... SUCCESS [ 0.047 s] +[INFO] play-admin ......................................... SUCCESS [01:05 min] +[INFO] ------------------------------------------------------------------------ +[INFO] BUILD SUCCESS +[INFO] ------------------------------------------------------------------------ +[INFO] Total time: 01:06 min +[INFO] Finished at: 2025-12-31T21:46:12-05:00 +[INFO] ------------------------------------------------------------------------ diff --git a/play-admin/src/main/java/com/starry/admin/common/task/ClerkWagesSettlementTask.java b/play-admin/src/main/java/com/starry/admin/common/task/ClerkWagesSettlementTask.java index a749cea..70bf50c 100644 --- a/play-admin/src/main/java/com/starry/admin/common/task/ClerkWagesSettlementTask.java +++ b/play-admin/src/main/java/com/starry/admin/common/task/ClerkWagesSettlementTask.java @@ -1,24 +1,25 @@ package com.starry.admin.common.task; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.starry.admin.common.exception.CustomException; import com.starry.admin.modules.clerk.module.entity.PlayClerkUserInfoEntity; import com.starry.admin.modules.clerk.module.entity.PlayClerkWagesDetailsInfoEntity; import com.starry.admin.modules.clerk.module.entity.PlayClerkWagesInfoEntity; import com.starry.admin.modules.clerk.service.IPlayClerkUserInfoService; import com.starry.admin.modules.clerk.service.IPlayClerkWagesDetailsInfoService; import com.starry.admin.modules.clerk.service.IPlayClerkWagesInfoService; +import com.starry.admin.modules.order.module.constant.OrderConstant; import com.starry.admin.modules.order.module.entity.PlayOrderInfoEntity; import com.starry.admin.modules.order.service.IPlayOrderInfoService; -import com.starry.admin.modules.system.module.entity.SysTenantEntity; -import com.starry.admin.modules.system.service.ISysTenantService; -import com.starry.admin.utils.SecurityUtils; import com.starry.common.utils.IdUtils; import java.math.BigDecimal; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.temporal.ChronoUnit; import java.util.List; +import java.util.stream.Collectors; import javax.annotation.Resource; import lombok.extern.slf4j.Slf4j; import org.springframework.scheduling.annotation.Scheduled; @@ -128,14 +129,13 @@ public class ClerkWagesSettlementTask { finalAmount = finalAmount.add(orderInfo.getFinalAmount()); orderNumber++; estimatedRevenue = estimatedRevenue.add(orderInfo.getEstimatedRevenue()); - if ("0".equals(orderInfo.getFirstOrder())) { - orderContinueNumber++; - orderContinueMoney = orderContinueMoney.add(orderInfo.getFinalAmount()); - } if ("1".equals(orderInfo.getOrdersExpiredState())) { ordersExpiredNumber++; } } + ContinuationMetrics continuationMetrics = calculateContinuationMetrics(orderInfoEntities); + orderContinueNumber = continuationMetrics.count; + orderContinueMoney = continuationMetrics.money; PlayClerkWagesInfoEntity wagesInfo = new PlayClerkWagesInfoEntity(); wagesInfo.setId(wagesId); @@ -158,4 +158,51 @@ public class ClerkWagesSettlementTask { playClerkWagesInfoService.saveOrUpdate(wagesInfo); } + + private ContinuationMetrics calculateContinuationMetrics(List orders) { + List completedOrders = orders.stream() + .filter(order -> OrderConstant.OrderStatus.COMPLETED.getCode().equals(order.getOrderStatus())) + .collect(Collectors.toList()); + if (completedOrders.isEmpty()) { + return new ContinuationMetrics(0, BigDecimal.ZERO); + } + int continuedCount = 0; + BigDecimal continuedMoney = BigDecimal.ZERO; + for (PlayOrderInfoEntity order : completedOrders) { + String customerId = order.getPurchaserBy(); + if (StrUtil.isBlank(customerId)) { + throw new CustomException("订单缺少顾客信息,无法统计续单"); + } + OrderConstant.OrderRelationType relationType = normalizeRelationType(order); + if (relationType == OrderConstant.OrderRelationType.CONTINUED) { + continuedCount++; + continuedMoney = continuedMoney.add(order.getFinalAmount()); + } + } + return new ContinuationMetrics(continuedCount, continuedMoney); + } + + private OrderConstant.OrderRelationType normalizeRelationType(PlayOrderInfoEntity order) { + OrderConstant.OrderRelationType relationType = order.getOrderRelationType(); + if (relationType == null) { + throw new CustomException("订单关系类型不能为空"); + } + if (OrderConstant.PlaceType.RANDOM.getCode().equals(order.getPlaceType())) { + return OrderConstant.OrderRelationType.FIRST; + } + if (relationType == OrderConstant.OrderRelationType.NEUTRAL) { + return OrderConstant.OrderRelationType.FIRST; + } + return relationType; + } + + private static final class ContinuationMetrics { + private final int count; + private final BigDecimal money; + + private ContinuationMetrics(int count, BigDecimal money) { + this.count = count; + this.money = money; + } + } } diff --git a/play-admin/src/main/java/com/starry/admin/common/task/OrderRankingSettlementTask.java b/play-admin/src/main/java/com/starry/admin/common/task/OrderRankingSettlementTask.java index 5492d9b..953dd03 100644 --- a/play-admin/src/main/java/com/starry/admin/common/task/OrderRankingSettlementTask.java +++ b/play-admin/src/main/java/com/starry/admin/common/task/OrderRankingSettlementTask.java @@ -1,9 +1,12 @@ package com.starry.admin.common.task; +import cn.hutool.core.util.StrUtil; +import com.starry.admin.common.exception.CustomException; import com.starry.admin.modules.clerk.module.entity.PlayClerkRankingInfoEntity; import com.starry.admin.modules.clerk.module.entity.PlayClerkUserInfoEntity; import com.starry.admin.modules.clerk.service.IPlayClerkRankingInfoService; import com.starry.admin.modules.clerk.service.IPlayClerkUserInfoService; +import com.starry.admin.modules.order.module.constant.OrderConstant; import com.starry.admin.modules.order.module.entity.PlayOrderInfoEntity; import com.starry.admin.modules.order.service.IPlayOrderInfoService; import com.starry.admin.modules.system.module.entity.SysTenantEntity; @@ -20,6 +23,7 @@ import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; +import java.util.stream.Collectors; import javax.annotation.Resource; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; @@ -134,14 +138,13 @@ public class OrderRankingSettlementTask { for (PlayOrderInfoEntity orderInfoEntity : orderInfoEntities) { customIds.add(orderInfoEntity.getAcceptBy()); orderMoney = orderMoney.add(orderInfoEntity.getOrderMoney()); - if ("0".equals(orderInfoEntity.getFirstOrder())) { - orderContinueNumber++; - orderContinueMoney = orderContinueMoney.add(orderInfoEntity.getOrderMoney()); - } if ("1".equals(orderInfoEntity.getOrdersExpiredState())) { ordersExpiredNumber++; } } + ContinuationMetrics continuationMetrics = calculateContinuationMetrics(orderInfoEntities); + orderContinueNumber = continuationMetrics.count; + orderContinueMoney = continuationMetrics.money; BigDecimal orderContinueProportion = orderNumber == 0 ? BigDecimal.ZERO : new BigDecimal(ordersExpiredNumber).divide(new BigDecimal(orderNumber), 4, RoundingMode.HALF_UP).add(new BigDecimal(100)); BigDecimal averageUnitPrice = customIds.isEmpty() ? BigDecimal.ZERO : orderMoney.divide(new BigDecimal(customIds.size()), 4, RoundingMode.HALF_UP); PlayClerkRankingInfoEntity rankingInfo = new PlayClerkRankingInfoEntity(); @@ -170,4 +173,51 @@ public class OrderRankingSettlementTask { return rankingInfo; } + private ContinuationMetrics calculateContinuationMetrics(List orders) { + List completedOrders = orders.stream() + .filter(order -> OrderConstant.OrderStatus.COMPLETED.getCode().equals(order.getOrderStatus())) + .collect(Collectors.toList()); + if (completedOrders.isEmpty()) { + return new ContinuationMetrics(0, BigDecimal.ZERO); + } + int continuedCount = 0; + BigDecimal continuedMoney = BigDecimal.ZERO; + for (PlayOrderInfoEntity order : completedOrders) { + String customerId = order.getPurchaserBy(); + if (StrUtil.isBlank(customerId)) { + throw new CustomException("订单缺少顾客信息,无法统计续单"); + } + OrderConstant.OrderRelationType relationType = normalizeRelationType(order); + if (relationType == OrderConstant.OrderRelationType.CONTINUED) { + continuedCount++; + continuedMoney = continuedMoney.add(order.getOrderMoney()); + } + } + return new ContinuationMetrics(continuedCount, continuedMoney); + } + + private OrderConstant.OrderRelationType normalizeRelationType(PlayOrderInfoEntity order) { + OrderConstant.OrderRelationType relationType = order.getOrderRelationType(); + if (relationType == null) { + throw new CustomException("订单关系类型不能为空"); + } + if (OrderConstant.PlaceType.RANDOM.getCode().equals(order.getPlaceType())) { + return OrderConstant.OrderRelationType.FIRST; + } + if (relationType == OrderConstant.OrderRelationType.NEUTRAL) { + return OrderConstant.OrderRelationType.FIRST; + } + return relationType; + } + + private static final class ContinuationMetrics { + private final int count; + private final BigDecimal money; + + private ContinuationMetrics(int count, BigDecimal money) { + this.count = count; + this.money = money; + } + } + } diff --git a/play-admin/src/main/java/com/starry/admin/modules/blindbox/service/BlindBoxDispatchService.java b/play-admin/src/main/java/com/starry/admin/modules/blindbox/service/BlindBoxDispatchService.java index 0332e1e..a0fda60 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/blindbox/service/BlindBoxDispatchService.java +++ b/play-admin/src/main/java/com/starry/admin/modules/blindbox/service/BlindBoxDispatchService.java @@ -62,6 +62,7 @@ public class BlindBoxDispatchService { .orderType(OrderConstant.OrderType.GIFT) .placeType(OrderConstant.PlaceType.REWARD) .rewardType(OrderConstant.RewardType.GIFT) + .orderRelationType(OrderConstant.OrderRelationType.UNASSIGNED) .paymentSource(OrderConstant.PaymentSource.BLIND_BOX) .sourceRewardId(reward.getId()) .paymentInfo(paymentInfo) diff --git a/play-admin/src/main/java/com/starry/admin/modules/clerk/service/impl/PlayClerkUserInfoServiceImpl.java b/play-admin/src/main/java/com/starry/admin/modules/clerk/service/impl/PlayClerkUserInfoServiceImpl.java index e414fd3..8e554ab 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/clerk/service/impl/PlayClerkUserInfoServiceImpl.java +++ b/play-admin/src/main/java/com/starry/admin/modules/clerk/service/impl/PlayClerkUserInfoServiceImpl.java @@ -40,6 +40,7 @@ import com.starry.admin.modules.custom.service.IPlayCustomFollowInfoService; import com.starry.admin.modules.media.entity.PlayMediaEntity; import com.starry.admin.modules.media.enums.MediaStatus; import com.starry.admin.modules.media.service.IPlayMediaService; +import com.starry.admin.modules.order.module.constant.OrderConstant; import com.starry.admin.modules.order.module.entity.PlayOrderInfoEntity; import com.starry.admin.modules.order.service.IPlayOrderInfoService; import com.starry.admin.modules.personnel.module.entity.PlayPersonnelAdminInfoEntity; @@ -510,7 +511,17 @@ public class PlayClerkUserInfoServiceImpl extends ServiceImpl { + + @Select("SELECT * FROM play_clerk_customer_relation " + + "WHERE tenant_id = #{tenantId} AND purchaser_by = #{purchaserBy} AND accept_by = #{acceptBy} " + + "AND deleted = 0 FOR UPDATE") + PlayClerkCustomerRelationEntity selectForUpdate(@Param("tenantId") String tenantId, + @Param("purchaserBy") String purchaserBy, + @Param("acceptBy") String acceptBy); + + @Update("UPDATE play_clerk_customer_relation " + + "SET deleted = 0, has_completed = '0', first_completed_order_id = NULL, first_completed_time = NULL " + + "WHERE tenant_id = #{tenantId} AND purchaser_by = #{purchaserBy} AND accept_by = #{acceptBy}") + int restoreRelation(@Param("tenantId") String tenantId, + @Param("purchaserBy") String purchaserBy, + @Param("acceptBy") String acceptBy); + + @Delete("DELETE FROM play_clerk_customer_relation WHERE tenant_id = #{tenantId}") + int hardDeleteByTenant(@Param("tenantId") String tenantId); +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/order/module/constant/OrderConstant.java b/play-admin/src/main/java/com/starry/admin/modules/order/module/constant/OrderConstant.java index e7c5a35..d61532f 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/order/module/constant/OrderConstant.java +++ b/play-admin/src/main/java/com/starry/admin/modules/order/module/constant/OrderConstant.java @@ -123,6 +123,37 @@ public class OrderConstant { } } + /** + * 订单关系类型 + */ + @Getter + public enum OrderRelationType { + UNASSIGNED("UNASSIGNED", "未分配"), + LEGACY("LEGACY", "历史存量"), + FIRST("FIRST", "首单"), + CONTINUED("CONTINUED", "续单"), + NEUTRAL("NEUTRAL", "中性"); + + @com.baomidou.mybatisplus.annotation.EnumValue + @com.fasterxml.jackson.annotation.JsonValue + private final String code; + private final String description; + + OrderRelationType(String code, String description) { + this.code = code; + this.description = description; + } + + public static OrderRelationType fromCode(String code) { + for (OrderRelationType type : values()) { + if (type.code.equals(code)) { + return type; + } + } + throw new IllegalArgumentException("Unknown order relation type code: " + code); + } + } + /** * 性别枚举 */ diff --git a/play-admin/src/main/java/com/starry/admin/modules/order/module/dto/OrderCreationContext.java b/play-admin/src/main/java/com/starry/admin/modules/order/module/dto/OrderCreationContext.java index 9dc9315..9c9f573 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/order/module/dto/OrderCreationContext.java +++ b/play-admin/src/main/java/com/starry/admin/modules/order/module/dto/OrderCreationContext.java @@ -33,7 +33,8 @@ public class OrderCreationContext { private OrderConstant.RewardType rewardType; - private boolean isFirstOrder; + @NotNull(message = "订单关系类型不能为空") + private OrderConstant.OrderRelationType orderRelationType; private OrderConstant.PaymentSource paymentSource; @@ -64,10 +65,6 @@ public class OrderCreationContext { @Nullable private String creatorId; - public String getFirstOrderString() { - return isFirstOrder ? "1" : "0"; - } - public boolean isValidForRandomOrder() { return placeType == OrderConstant.PlaceType.RANDOM && randomOrderRequirements != null; } diff --git a/play-admin/src/main/java/com/starry/admin/modules/order/module/entity/PlayClerkCustomerRelationEntity.java b/play-admin/src/main/java/com/starry/admin/modules/order/module/entity/PlayClerkCustomerRelationEntity.java new file mode 100644 index 0000000..af74386 --- /dev/null +++ b/play-admin/src/main/java/com/starry/admin/modules/order/module/entity/PlayClerkCustomerRelationEntity.java @@ -0,0 +1,58 @@ +package com.starry.admin.modules.order.module.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.starry.common.domain.BaseEntity; +import java.time.LocalDateTime; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 客户-店员关系(完成历史快照) + */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("play_clerk_customer_relation") +public class PlayClerkCustomerRelationEntity extends BaseEntity { + + /** + * 主键 + */ + private String id; + + /** + * 顾客ID + */ + @TableField("purchaser_by") + private String purchaserBy; + + /** + * 租户ID + */ + @TableField("tenant_id") + private String tenantId; + + /** + * 店员ID + */ + @TableField("accept_by") + private String acceptBy; + + /** + * 是否有已完成历史 + */ + @TableField("has_completed") + private String hasCompleted; + + /** + * 首次完成订单ID + */ + @TableField("first_completed_order_id") + private String firstCompletedOrderId; + + /** + * 首次完成时间 + */ + @TableField("first_completed_time") + private LocalDateTime firstCompletedTime; +} diff --git a/play-admin/src/main/java/com/starry/admin/modules/order/module/entity/PlayOrderInfoEntity.java b/play-admin/src/main/java/com/starry/admin/modules/order/module/entity/PlayOrderInfoEntity.java index fb7dd3e..e02e01b 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/order/module/entity/PlayOrderInfoEntity.java +++ b/play-admin/src/main/java/com/starry/admin/modules/order/module/entity/PlayOrderInfoEntity.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; import com.starry.admin.common.conf.StringTypeHandler; +import com.starry.admin.modules.order.module.constant.OrderConstant; import com.starry.admin.modules.order.module.constant.OrderConstant.OrderStatus; import com.starry.admin.modules.order.service.impl.OrderLifecycleServiceImpl; import com.starry.common.domain.BaseEntity; @@ -64,8 +65,15 @@ public class PlayOrderInfoEntity extends BaseEntity { /** * 是否是首单【0:不是,1:是】 */ + @TableField(exist = false) private String firstOrder; + /** + * 订单关系类型(UNASSIGNED/FIRST/CONTINUED/NEUTRAL) + */ + @TableField("order_relation_type") + private OrderConstant.OrderRelationType orderRelationType; + /** * 退款类型【0:未退款,1:已退款】 */ @@ -368,4 +376,14 @@ public class PlayOrderInfoEntity extends BaseEntity { } this.orderEndTime = orderEndTime; } + + public String getFirstOrder() { + if (orderRelationType == null) { + throw new IllegalStateException("订单关系类型不能为空"); + } + if (orderRelationType == OrderConstant.OrderRelationType.CONTINUED) { + return OrderConstant.YesNoFlag.NO.getCode(); + } + return OrderConstant.YesNoFlag.YES.getCode(); + } } diff --git a/play-admin/src/main/java/com/starry/admin/modules/order/module/vo/PlayOrderDetailsReturnVo.java b/play-admin/src/main/java/com/starry/admin/modules/order/module/vo/PlayOrderDetailsReturnVo.java index b81e3fa..711d0bc 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/order/module/vo/PlayOrderDetailsReturnVo.java +++ b/play-admin/src/main/java/com/starry/admin/modules/order/module/vo/PlayOrderDetailsReturnVo.java @@ -126,6 +126,11 @@ public class PlayOrderDetailsReturnVo { */ private String placeType; + /** + * 订单关系类型(FIRST/CONTINUED/NEUTRAL) + */ + private com.starry.admin.modules.order.module.constant.OrderConstant.OrderRelationType orderRelationType; + /** * 要求店员性别(0:未知;1:男;2:女)- 仅随机单有效 */ diff --git a/play-admin/src/main/java/com/starry/admin/modules/order/module/vo/PlayOrderInfoReturnVo.java b/play-admin/src/main/java/com/starry/admin/modules/order/module/vo/PlayOrderInfoReturnVo.java index ce163b3..7ac7c83 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/order/module/vo/PlayOrderInfoReturnVo.java +++ b/play-admin/src/main/java/com/starry/admin/modules/order/module/vo/PlayOrderInfoReturnVo.java @@ -140,6 +140,11 @@ public class PlayOrderInfoReturnVo { */ private String firstOrder; + /** + * 订单关系类型(UNASSIGNED/FIRST/CONTINUED/NEUTRAL) + */ + private com.starry.admin.modules.order.module.constant.OrderConstant.OrderRelationType orderRelationType; + /** * 订单最终金额(支付金额) */ diff --git a/play-admin/src/main/java/com/starry/admin/modules/order/service/IPlayOrderInfoService.java b/play-admin/src/main/java/com/starry/admin/modules/order/service/IPlayOrderInfoService.java index 7872046..396609a 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/order/service/IPlayOrderInfoService.java +++ b/play-admin/src/main/java/com/starry/admin/modules/order/service/IPlayOrderInfoService.java @@ -2,6 +2,7 @@ package com.starry.admin.modules.order.service; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; +import com.starry.admin.modules.order.module.constant.OrderConstant; import com.starry.admin.modules.order.module.dto.*; import com.starry.admin.modules.order.module.entity.PlayOrderInfoEntity; import com.starry.admin.modules.order.module.vo.*; @@ -51,39 +52,40 @@ public interface IPlayOrderInfoService extends IService { * @param clerkId 店员ID * @param croupIds 优惠券ID列表 * @param placeType 下单类型(-1:其他类型;0:指定单;1:随机单;2:打赏单) - * @param firstOrder 是否是首单【0:不是,1:是】 + * @param relationType 订单关系类型 * @param orderAmount 订单金额 * @return com.starry.admin.modules.order.module.vo.ClerkEstimatedRevenueVo * @author admin * @since 2024/7/18 16:39 **/ ClerkEstimatedRevenueVo getClerkEstimatedRevenue(String clerkId, List croupIds, String placeType, - String firstOrder, BigDecimal orderAmount); + OrderConstant.OrderRelationType relationType, BigDecimal orderAmount); /** * 根据店员等级和订单金额,获取店员预计收入 * * @param clerkId 店员ID * @param placeType 下单类型(-1:其他类型;0:指定单;1:随机单;2:打赏单) - * @param firstOrder 是否是首单【0:不是,1:是】 + * @param relationType 订单关系类型 * @param orderAmount 订单金额 * @return math.BigDecimal 店员预计收入 * @author admin * @since 2024/6/3 11:12 **/ - BigDecimal getEstimatedRevenue(String clerkId, String placeType, String firstOrder, BigDecimal orderAmount); + BigDecimal getEstimatedRevenue(String clerkId, String placeType, OrderConstant.OrderRelationType relationType, + BigDecimal orderAmount); /** * 根据店员等级,获取店员提成比例 * * @param clerkId 店员ID * @param placeType 下单类型(-1:其他类型;0:指定单;1:随机单;2:打赏单) - * @param firstOrder 是否是首单【0:不是,1:是】 + * @param relationType 订单关系类型 * @return math.BigDecimal 店员预计收入 * @author admin * @since 2024/6/3 11:12 **/ - Integer getEstimatedRevenueRatio(String clerkId, String placeType, String firstOrder); + Integer getEstimatedRevenueRatio(String clerkId, String placeType, OrderConstant.OrderRelationType relationType); /** * 根据订单结算状态查询订单 diff --git a/play-admin/src/main/java/com/starry/admin/modules/order/service/impl/OrderLifecycleServiceImpl.java b/play-admin/src/main/java/com/starry/admin/modules/order/service/impl/OrderLifecycleServiceImpl.java index b084392..1344c88 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/order/service/impl/OrderLifecycleServiceImpl.java +++ b/play-admin/src/main/java/com/starry/admin/modules/order/service/impl/OrderLifecycleServiceImpl.java @@ -9,6 +9,7 @@ import com.starry.admin.common.exception.CustomException; import com.starry.admin.common.exception.ServiceException; import com.starry.admin.modules.custom.module.entity.PlayCustomUserInfoEntity; import com.starry.admin.modules.custom.service.IPlayCustomUserInfoService; +import com.starry.admin.modules.order.mapper.PlayClerkCustomerRelationMapper; import com.starry.admin.modules.order.mapper.PlayOrderInfoMapper; import com.starry.admin.modules.order.mapper.PlayOrderLogInfoMapper; import com.starry.admin.modules.order.module.constant.OrderConstant; @@ -37,6 +38,7 @@ import com.starry.admin.modules.order.module.dto.OrderRefundContext; import com.starry.admin.modules.order.module.dto.OrderRevocationContext; import com.starry.admin.modules.order.module.dto.PaymentInfo; import com.starry.admin.modules.order.module.dto.RandomOrderRequirements; +import com.starry.admin.modules.order.module.entity.PlayClerkCustomerRelationEntity; import com.starry.admin.modules.order.module.entity.PlayOrderInfoEntity; import com.starry.admin.modules.order.module.entity.PlayOrderLogInfoEntity; import com.starry.admin.modules.order.module.event.OrderRevocationEvent; @@ -68,6 +70,7 @@ import javax.annotation.PostConstruct; import javax.annotation.Resource; import lombok.extern.slf4j.Slf4j; import org.springframework.context.ApplicationEventPublisher; +import org.springframework.dao.DuplicateKeyException; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -112,6 +115,9 @@ public class OrderLifecycleServiceImpl implements IOrderLifecycleService { @Resource private PlayOrderLogInfoMapper orderLogInfoMapper; + @Resource + private PlayClerkCustomerRelationMapper clerkCustomerRelationMapper; + @Resource private IPlayBalanceDetailsInfoService playBalanceDetailsInfoService; @@ -463,6 +469,9 @@ public class OrderLifecycleServiceImpl implements IOrderLifecycleService { if (latest == null) { throw new CustomException("订单不存在"); } + if (OrderStatus.COMPLETED.getCode().equals(latest.getOrderStatus())) { + updateRelationOnCompletion(latest); + } boolean forceNotify = context != null && context.isForceNotify(); boolean earningsCreated = false; @@ -765,7 +774,16 @@ public class OrderLifecycleServiceImpl implements IOrderLifecycleService { entity.setOrderType(context.getOrderType().getCode()); entity.setPlaceType(context.getPlaceType().getCode()); entity.setRewardType(context.getRewardType().getCode()); - entity.setFirstOrder(resolveFirstOrderFlag(context)); + OrderConstant.OrderRelationType relationType = context.getOrderRelationType(); + if (relationType == null) { + throw new CustomException("订单关系类型不能为空"); + } + if (context.getPlaceType() == OrderConstant.PlaceType.RANDOM + && relationType != OrderConstant.OrderRelationType.FIRST) { + throw new CustomException("随机单必须为首单关系"); + } + entity.setOrderRelationType(relationType); + // entity.setFirstOrder(resolveFirstOrderFlag(context)); entity.setRefundType(OrderRefundFlag.NOT_REFUNDED.getCode()); entity.setBackendEntry(YesNoFlag.NO.getCode()); entity.setOrderSettlementState(OrderSettlementState.NOT_SETTLED.getCode()); @@ -812,11 +830,17 @@ public class OrderLifecycleServiceImpl implements IOrderLifecycleService { return; } entity.setAcceptBy(context.getAcceptBy()); + OrderConstant.OrderRelationType relationType = resolveOrderRelationType( + context.getPurchaserBy(), + context.getAcceptBy(), + context.getOrderId(), + context.getPlaceType()); + entity.setOrderRelationType(relationType); ClerkEstimatedRevenueVo estimatedRevenue = clerkRevenueCalculator.calculateEstimatedRevenue( context.getAcceptBy(), context.getPaymentInfo().getCouponIds(), context.getPlaceType().getCode(), - entity.getFirstOrder(), + relationType, context.getPaymentInfo().getOrderMoney()); entity.setEstimatedRevenue(estimatedRevenue.getRevenueAmount()); entity.setEstimatedRevenueRatio(estimatedRevenue.getRevenueRatio()); @@ -855,21 +879,80 @@ public class OrderLifecycleServiceImpl implements IOrderLifecycleService { } } - private String resolveFirstOrderFlag(OrderCreationContext context) { - if (StrUtil.isBlank(context.getAcceptBy()) || StrUtil.isBlank(context.getPurchaserBy())) { - return context.getFirstOrderString(); + private OrderConstant.OrderRelationType resolveOrderRelationType(String customerId, String clerkId, String orderId, + OrderConstant.PlaceType placeType) { + if (StrUtil.isBlank(orderId)) { + throw new CustomException("订单关系计算缺少订单ID"); } - return isFirstOrder(context.getPurchaserBy(), context.getAcceptBy()) - ? YesNoFlag.YES.getCode() - : YesNoFlag.NO.getCode(); + if (placeType == OrderConstant.PlaceType.RANDOM) { + return OrderConstant.OrderRelationType.FIRST; + } + if (StrUtil.isBlank(customerId) || StrUtil.isBlank(clerkId)) { + return OrderConstant.OrderRelationType.UNASSIGNED; + } + PlayClerkCustomerRelationEntity relation = ensureRelationForUpdate(customerId, clerkId); + if (relation == null) { + throw new CustomException("订单关系初始化失败"); + } + if (StrUtil.isBlank(relation.getHasCompleted())) { + throw new CustomException("订单关系缺少完成标记"); + } + if (OrderConstant.YesNoFlag.YES.getCode().equals(relation.getHasCompleted())) { + return OrderConstant.OrderRelationType.CONTINUED; + } + return OrderConstant.OrderRelationType.FIRST; } - private boolean isFirstOrder(String customerId, String clerkId) { - LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(PlayOrderInfoEntity.class) - .eq(PlayOrderInfoEntity::getPurchaserBy, customerId) - .eq(PlayOrderInfoEntity::getAcceptBy, clerkId) - .eq(PlayOrderInfoEntity::getOrderStatus, OrderStatus.COMPLETED.getCode()); - return orderInfoMapper.selectCount(wrapper) == 0; + private PlayClerkCustomerRelationEntity ensureRelationForUpdate(String customerId, String clerkId) { + String tenantId = SecurityUtils.getTenantId(); + if (StrUtil.isBlank(tenantId)) { + throw new CustomException("租户信息不能为空"); + } + PlayClerkCustomerRelationEntity relation = clerkCustomerRelationMapper.selectForUpdate(tenantId, customerId, clerkId); + if (relation != null) { + return relation; + } + PlayClerkCustomerRelationEntity toCreate = new PlayClerkCustomerRelationEntity(); + toCreate.setId(IdUtils.getUuid()); + toCreate.setPurchaserBy(customerId); + toCreate.setTenantId(tenantId); + toCreate.setAcceptBy(clerkId); + toCreate.setHasCompleted(OrderConstant.YesNoFlag.NO.getCode()); + toCreate.setDeleted(Boolean.FALSE); + try { + clerkCustomerRelationMapper.insert(toCreate); + } catch (DuplicateKeyException ex) { + log.debug("Relation already exists for customer {} and clerk {}", customerId, clerkId); + clerkCustomerRelationMapper.restoreRelation(tenantId, customerId, clerkId); + } + return clerkCustomerRelationMapper.selectForUpdate(tenantId, customerId, clerkId); + } + + private void updateRelationOnCompletion(PlayOrderInfoEntity order) { + if (order == null) { + throw new CustomException("订单信息不能为空"); + } + if (StrUtil.isBlank(order.getPurchaserBy()) || StrUtil.isBlank(order.getAcceptBy())) { + return; + } + PlayClerkCustomerRelationEntity relation = ensureRelationForUpdate(order.getPurchaserBy(), order.getAcceptBy()); + if (relation == null) { + throw new CustomException("订单关系初始化失败"); + } + if (OrderConstant.YesNoFlag.YES.getCode().equals(relation.getHasCompleted()) + && relation.getFirstCompletedTime() != null + && StrUtil.isNotBlank(relation.getFirstCompletedOrderId())) { + return; + } + relation.setHasCompleted(OrderConstant.YesNoFlag.YES.getCode()); + if (relation.getFirstCompletedTime() == null) { + LocalDateTime completionTime = order.getOrderEndTime() != null ? order.getOrderEndTime() : LocalDateTime.now(); + relation.setFirstCompletedTime(completionTime); + } + if (StrUtil.isBlank(relation.getFirstCompletedOrderId())) { + relation.setFirstCompletedOrderId(order.getId()); + } + clerkCustomerRelationMapper.updateById(relation); } private boolean ensureEarnings(PlayOrderInfoEntity order, OrderTriggerSource source) { diff --git a/play-admin/src/main/java/com/starry/admin/modules/order/service/impl/PlayOrderContinueInfoServiceImpl.java b/play-admin/src/main/java/com/starry/admin/modules/order/service/impl/PlayOrderContinueInfoServiceImpl.java index ff8c4a7..59a3dd0 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/order/service/impl/PlayOrderContinueInfoServiceImpl.java +++ b/play-admin/src/main/java/com/starry/admin/modules/order/service/impl/PlayOrderContinueInfoServiceImpl.java @@ -75,9 +75,9 @@ public class PlayOrderContinueInfoServiceImpl entity.setReviewedTime(LocalDateTime.now()); this.baseMapper.updateById(entity); // 添加订单信息 - if ("1".equals(vo.getReviewState())) { - - } + // if ("1".equals(vo.getReviewState())) { + // + // } } @Override diff --git a/play-admin/src/main/java/com/starry/admin/modules/order/service/impl/PlayOrderInfoServiceImpl.java b/play-admin/src/main/java/com/starry/admin/modules/order/service/impl/PlayOrderInfoServiceImpl.java index 8595d17..bfccdac 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/order/service/impl/PlayOrderInfoServiceImpl.java +++ b/play-admin/src/main/java/com/starry/admin/modules/order/service/impl/PlayOrderInfoServiceImpl.java @@ -18,6 +18,7 @@ import com.starry.admin.modules.clerk.service.IPlayClerkUserInfoService; import com.starry.admin.modules.custom.module.entity.PlayCustomLevelInfoEntity; import com.starry.admin.modules.custom.module.entity.PlayCustomUserInfoEntity; import com.starry.admin.modules.custom.service.IPlayCustomUserInfoService; +import com.starry.admin.modules.order.mapper.PlayClerkCustomerRelationMapper; import com.starry.admin.modules.order.mapper.PlayOrderInfoMapper; import com.starry.admin.modules.order.module.constant.OrderConstant; import com.starry.admin.modules.order.module.constant.OrderConstant.BalanceOperationType; @@ -30,6 +31,7 @@ import com.starry.admin.modules.order.module.constant.OrderConstant.OrderStatus; import com.starry.admin.modules.order.module.constant.OrderConstant.OrderTriggerSource; import com.starry.admin.modules.order.module.constant.OrderConstant.ReviewRequirement; import com.starry.admin.modules.order.module.dto.*; +import com.starry.admin.modules.order.module.entity.PlayClerkCustomerRelationEntity; import com.starry.admin.modules.order.module.entity.PlayOrderComplaintInfoEntity; import com.starry.admin.modules.order.module.entity.PlayOrderEvaluateInfoEntity; import com.starry.admin.modules.order.module.entity.PlayOrderInfoEntity; @@ -63,6 +65,7 @@ import java.util.Random; import java.util.stream.Collectors; import javax.annotation.Resource; import lombok.extern.slf4j.Slf4j; +import org.springframework.dao.DuplicateKeyException; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -79,6 +82,9 @@ public class PlayOrderInfoServiceImpl extends ServiceImpl croupIds, String placeType, - String firstOrder, BigDecimal orderAmount) { - return clerkRevenueCalculator.calculateEstimatedRevenue(clerkId, croupIds, placeType, firstOrder, orderAmount); + OrderConstant.OrderRelationType relationType, + BigDecimal orderAmount) { + return clerkRevenueCalculator.calculateEstimatedRevenue(clerkId, croupIds, placeType, relationType, orderAmount); } /** @@ -135,22 +142,22 @@ public class PlayOrderInfoServiceImpl extends ServiceImpl wrapper = Wrappers.lambdaQuery(PlayOrderInfoEntity.class) - .eq(PlayOrderInfoEntity::getPurchaserBy, customId) - .eq(PlayOrderInfoEntity::getAcceptBy, clerkId) - .eq(PlayOrderInfoEntity::getOrderStatus, OrderStatus.COMPLETED.getCode()); - return this.baseMapper.selectCount(wrapper) == 0; + if (StringUtils.isBlank(customId) || StringUtils.isBlank(clerkId)) { + throw new CustomException("用户或店员信息不能为空"); + } + PlayClerkCustomerRelationEntity relation = clerkCustomerRelationMapper.selectOne( + Wrappers.lambdaQuery(PlayClerkCustomerRelationEntity.class) + .eq(PlayClerkCustomerRelationEntity::getPurchaserBy, customId) + .eq(PlayClerkCustomerRelationEntity::getAcceptBy, clerkId) + .eq(PlayClerkCustomerRelationEntity::getDeleted, Boolean.FALSE)); + if (relation == null) { + return Boolean.TRUE; + } + if (StringUtils.isBlank(relation.getHasCompleted())) { + throw new CustomException("订单关系缺少完成标记"); + } + return !OrderConstant.YesNoFlag.YES.getCode().equals(relation.getHasCompleted()); + } + + private OrderConstant.OrderRelationType resolveOrderRelationType(String customId, String clerkId, String orderId, + String placeType) { + if (StringUtils.isBlank(orderId)) { + throw new CustomException("订单关系计算缺少订单ID"); + } + if (OrderConstant.PlaceType.RANDOM.getCode().equals(placeType)) { + return OrderConstant.OrderRelationType.FIRST; + } + if (StringUtils.isBlank(customId) || StringUtils.isBlank(clerkId)) { + return OrderConstant.OrderRelationType.UNASSIGNED; + } + PlayClerkCustomerRelationEntity relation = ensureRelationForUpdate(customId, clerkId); + if (relation == null) { + throw new CustomException("订单关系初始化失败"); + } + if (StringUtils.isBlank(relation.getHasCompleted())) { + throw new CustomException("订单关系缺少完成标记"); + } + if (OrderConstant.YesNoFlag.YES.getCode().equals(relation.getHasCompleted())) { + return OrderConstant.OrderRelationType.CONTINUED; + } + return OrderConstant.OrderRelationType.FIRST; + } + + private PlayClerkCustomerRelationEntity ensureRelationForUpdate(String customerId, String clerkId) { + String tenantId = SecurityUtils.getTenantId(); + if (StringUtils.isBlank(tenantId)) { + throw new CustomException("租户信息不能为空"); + } + PlayClerkCustomerRelationEntity relation = clerkCustomerRelationMapper.selectForUpdate(tenantId, customerId, clerkId); + if (relation != null) { + return relation; + } + PlayClerkCustomerRelationEntity toCreate = new PlayClerkCustomerRelationEntity(); + toCreate.setId(IdUtils.getUuid()); + toCreate.setPurchaserBy(customerId); + toCreate.setTenantId(tenantId); + toCreate.setAcceptBy(clerkId); + toCreate.setHasCompleted(OrderConstant.YesNoFlag.NO.getCode()); + toCreate.setDeleted(Boolean.FALSE); + try { + clerkCustomerRelationMapper.insert(toCreate); + } catch (DuplicateKeyException ex) { + log.debug("Relation already exists for customer {} and clerk {}", customerId, clerkId); + clerkCustomerRelationMapper.restoreRelation(tenantId, customerId, clerkId); + } + return clerkCustomerRelationMapper.selectForUpdate(tenantId, customerId, clerkId); + } + + private String mapFirstOrder(OrderConstant.OrderRelationType relationType) { + if (relationType == null) { + throw new CustomException("订单关系类型不能为空"); + } + if (relationType == OrderConstant.OrderRelationType.CONTINUED) { + return OrderConstant.YesNoFlag.NO.getCode(); + } + return OrderConstant.YesNoFlag.YES.getCode(); + } + + private OrderConstant.OrderRelationType normalizeRelationType(OrderConstant.OrderRelationType relationType, + String placeType) { + if (relationType == null) { + throw new CustomException("订单关系类型不能为空"); + } + if (OrderConstant.PlaceType.RANDOM.getCode().equals(placeType)) { + return OrderConstant.OrderRelationType.FIRST; + } + if (relationType == OrderConstant.OrderRelationType.NEUTRAL) { + return OrderConstant.OrderRelationType.FIRST; + } + return relationType; } /** @@ -380,6 +484,12 @@ public class PlayOrderInfoServiceImpl extends ServiceImpl i.isNull(PlayOrderInfoEntity::getAcceptBy).or().in(PlayOrderInfoEntity::getAcceptBy, clerkIdList)); - return this.baseMapper.selectJoinPage(new Page<>(vo.getPageNum(), vo.getPageSize()), - PlayOrderInfoReturnVo.class, lambdaQueryWrapper); + IPage page = this.baseMapper.selectJoinPage( + new Page<>(vo.getPageNum(), vo.getPageSize()), + PlayOrderInfoReturnVo.class, + lambdaQueryWrapper); + for (PlayOrderInfoReturnVo record : page.getRecords()) { + OrderConstant.OrderRelationType relationType = + normalizeRelationType(record.getOrderRelationType(), record.getPlaceType()); + record.setOrderRelationType(relationType); + record.setFirstOrder(mapFirstOrder(relationType)); + } + return page; } @Override @@ -464,6 +590,10 @@ public class PlayOrderInfoServiceImpl extends ServiceImpl lambdaQueryWrapper = getCommonOrderQueryVo(entity, null); PlayCustomOrderDetailsReturnVo returnVo = this.baseMapper.selectJoinOne(PlayCustomOrderDetailsReturnVo.class, lambdaQueryWrapper); + if (returnVo != null) { + OrderConstant.OrderRelationType relationType = + normalizeRelationType(returnVo.getOrderRelationType(), returnVo.getPlaceType()); + returnVo.setOrderRelationType(relationType); + returnVo.setFirstOrder(mapFirstOrder(relationType)); + } // 如果订单状态为退款,查询订单退款原因 if (returnVo.getOrderStatus().equals(OrderStatus.CANCELLED.getCode())) { PlayOrderRefundInfoEntity orderRefundInfoEntity = playOrderRefundInfoService @@ -598,6 +738,10 @@ public class PlayOrderInfoServiceImpl extends ServiceImpl的结构 PlayOrderComplaintInfoEntity orderComplaintInfoEntity = new PlayOrderComplaintInfoEntity(); @@ -627,6 +771,7 @@ public class PlayOrderInfoServiceImpl extends ServiceImpl couponIds, String placeType, - String firstOrder, + OrderConstant.OrderRelationType relationType, BigDecimal orderAmount) { PlayClerkLevelInfoEntity levelInfo = playClerkUserInfoService.queryLevelCommission(clerkId); BigDecimal baseAmount = orderAmount == null ? BigDecimal.ZERO : orderAmount; @@ -56,13 +56,13 @@ public class ClerkRevenueCalculator { switch (placeTypeEnum) { case SPECIFIED: // 指定单 - fillRegularOrderRevenue(clerkId, firstOrder, baseAmount, levelInfo, estimatedRevenueVo); + fillRegularOrderRevenue(clerkId, relationType, baseAmount, levelInfo, estimatedRevenueVo); break; case RANDOM: // 随机单 - fillRandomOrderRevenue(clerkId, firstOrder, baseAmount, levelInfo, estimatedRevenueVo); + fillRandomOrderRevenue(clerkId, relationType, baseAmount, levelInfo, estimatedRevenueVo); break; case REWARD: // 打赏单 - fillRewardOrderRevenue(clerkId, firstOrder, baseAmount, levelInfo, estimatedRevenueVo); + fillRewardOrderRevenue(clerkId, relationType, baseAmount, levelInfo, estimatedRevenueVo); break; case OTHER: default: @@ -78,9 +78,11 @@ public class ClerkRevenueCalculator { return estimatedRevenueVo; } - private void fillRegularOrderRevenue(String clerkId, String firstOrder, BigDecimal orderAmount, + private void fillRegularOrderRevenue(String clerkId, OrderConstant.OrderRelationType relationType, + BigDecimal orderAmount, PlayClerkLevelInfoEntity levelInfo, ClerkEstimatedRevenueVo vo) { - if ("1".equals(firstOrder)) { + boolean continued = validateRelationType(relationType); + if (!continued) { int ratio = safeRatio(levelInfo.getFirstRegularRatio(), "firstRegularRatio", clerkId); vo.setRevenueRatio(ratio); vo.setRevenueAmount(scaleAmount(orderAmount, ratio)); @@ -91,22 +93,19 @@ public class ClerkRevenueCalculator { } } - private void fillRandomOrderRevenue(String clerkId, String firstOrder, BigDecimal orderAmount, + private void fillRandomOrderRevenue(String clerkId, OrderConstant.OrderRelationType relationType, + BigDecimal orderAmount, PlayClerkLevelInfoEntity levelInfo, ClerkEstimatedRevenueVo vo) { - if ("1".equals(firstOrder)) { - int ratio = safeRatio(levelInfo.getFirstRandomRadio(), "firstRandomRatio", clerkId); - vo.setRevenueRatio(ratio); - vo.setRevenueAmount(scaleAmount(orderAmount, ratio)); - } else { - int ratio = safeRatio(levelInfo.getNotFirstRandomRadio(), "notFirstRandomRatio", clerkId); - vo.setRevenueRatio(ratio); - vo.setRevenueAmount(scaleAmount(orderAmount, ratio)); - } + int ratio = safeRatio(levelInfo.getFirstRandomRadio(), "firstRandomRatio", clerkId); + vo.setRevenueRatio(ratio); + vo.setRevenueAmount(scaleAmount(orderAmount, ratio)); } - private void fillRewardOrderRevenue(String clerkId, String firstOrder, BigDecimal orderAmount, + private void fillRewardOrderRevenue(String clerkId, OrderConstant.OrderRelationType relationType, + BigDecimal orderAmount, PlayClerkLevelInfoEntity levelInfo, ClerkEstimatedRevenueVo vo) { - if ("1".equals(firstOrder)) { + boolean continued = validateRelationType(relationType); + if (!continued) { int ratio = safeRatio(levelInfo.getFirstRewardRatio(), "firstRewardRatio", clerkId); vo.setRevenueRatio(ratio); vo.setRevenueAmount(scaleAmount(orderAmount, ratio)); @@ -125,6 +124,19 @@ public class ClerkRevenueCalculator { return ratio; } + private boolean validateRelationType(OrderConstant.OrderRelationType relationType) { + if (relationType == null) { + throw new IllegalArgumentException("订单关系类型不能为空"); + } + if (relationType == OrderConstant.OrderRelationType.UNASSIGNED) { + throw new IllegalArgumentException("未分配订单不可计算预计收益"); + } + if (relationType == OrderConstant.OrderRelationType.LEGACY) { + return false; + } + return relationType == OrderConstant.OrderRelationType.CONTINUED; + } + private BigDecimal scaleAmount(BigDecimal baseAmount, int ratio) { return baseAmount .multiply(BigDecimal.valueOf(ratio).divide(new BigDecimal(100), 4, RoundingMode.HALF_UP)) diff --git a/play-admin/src/main/java/com/starry/admin/modules/statistics/controller/PlayClerkPerformanceController.java b/play-admin/src/main/java/com/starry/admin/modules/statistics/controller/PlayClerkPerformanceController.java index 4bc84d6..47d6e37 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/statistics/controller/PlayClerkPerformanceController.java +++ b/play-admin/src/main/java/com/starry/admin/modules/statistics/controller/PlayClerkPerformanceController.java @@ -226,12 +226,12 @@ public class PlayClerkPerformanceController { customIds.add(orderInfoEntity.getPurchaserBy()); finalAmount = finalAmount.add(orderInfoEntity.getFinalAmount()); orderMoney = orderMoney.add(orderInfoEntity.getOrderMoney()); - if ("1".equals(orderInfoEntity.getFirstOrder())) { - orderFirstAmount = orderFirstAmount.add(orderInfoEntity.getFinalAmount()); - } else { - orderContinueNumber++; - orderTotalAmount = orderTotalAmount.add(orderInfoEntity.getFinalAmount()); - } + // if ("1".equals(orderInfoEntity.getFirstOrder())) { + // orderFirstAmount = orderFirstAmount.add(orderInfoEntity.getFinalAmount()); + // } else { + // orderContinueNumber++; + // orderTotalAmount = orderTotalAmount.add(orderInfoEntity.getFinalAmount()); + // } if ("2".equals(orderInfoEntity.getPlaceType())) { orderRewardAmount = orderRewardAmount.add(orderInfoEntity.getFinalAmount()); } @@ -303,12 +303,12 @@ public class PlayClerkPerformanceController { customIds.add(orderInfoEntity.getPurchaserBy()); finalAmount = finalAmount.add(orderInfoEntity.getFinalAmount()); orderMoney = orderMoney.add(orderInfoEntity.getOrderMoney()); - if ("1".equals(orderInfoEntity.getFirstOrder())) { - orderFirstAmount = orderFirstAmount.add(orderInfoEntity.getFinalAmount()); - } else { - orderContinueNumber++; - orderTotalAmount = orderTotalAmount.add(orderInfoEntity.getFinalAmount()); - } + // if ("1".equals(orderInfoEntity.getFirstOrder())) { + // orderFirstAmount = orderFirstAmount.add(orderInfoEntity.getFinalAmount()); + // } else { + // orderContinueNumber++; + // orderTotalAmount = orderTotalAmount.add(orderInfoEntity.getFinalAmount()); + // } if ("2".equals(orderInfoEntity.getPlaceType())) { orderRewardAmount = orderRewardAmount.add(orderInfoEntity.getFinalAmount()); } diff --git a/play-admin/src/main/java/com/starry/admin/modules/statistics/service/impl/PlayClerkPerformanceServiceImpl.java b/play-admin/src/main/java/com/starry/admin/modules/statistics/service/impl/PlayClerkPerformanceServiceImpl.java index 2c326f3..bd3471a 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/statistics/service/impl/PlayClerkPerformanceServiceImpl.java +++ b/play-admin/src/main/java/com/starry/admin/modules/statistics/service/impl/PlayClerkPerformanceServiceImpl.java @@ -33,11 +33,9 @@ import com.starry.admin.utils.SecurityUtils; import java.math.BigDecimal; import java.math.RoundingMode; import java.time.LocalDate; -import java.time.LocalDateTime; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; -import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; @@ -91,12 +89,12 @@ public class PlayClerkPerformanceServiceImpl implements IPlayClerkPerformanceSer completedOrderCount++; customIds.add(orderInfoEntity.getPurchaserBy()); finalAmount = finalAmount.add(defaultZero(orderInfoEntity.getFinalAmount())); - if (OrderConstant.YesNoFlag.YES.getCode().equals(orderInfoEntity.getFirstOrder())) { - orderFirstAmount = orderFirstAmount.add(defaultZero(orderInfoEntity.getFinalAmount())); - } else { - orderContinueNumber++; - orderTotalAmount = orderTotalAmount.add(defaultZero(orderInfoEntity.getFinalAmount())); - } + // if (OrderConstant.YesNoFlag.YES.getCode().equals(orderInfoEntity.getFirstOrder())) { + // orderFirstAmount = orderFirstAmount.add(defaultZero(orderInfoEntity.getFinalAmount())); + // } else { + // orderContinueNumber++; + // orderTotalAmount = orderTotalAmount.add(defaultZero(orderInfoEntity.getFinalAmount())); + // } if (OrderConstant.PlaceType.REWARD.getCode().equals(orderInfoEntity.getPlaceType())) { orderRewardAmount = orderRewardAmount.add(defaultZero(orderInfoEntity.getFinalAmount())); } @@ -202,7 +200,7 @@ public class PlayClerkPerformanceServiceImpl implements IPlayClerkPerformanceSer responseVo.setSnapshot(snapshot); responseVo.setComposition(buildComposition(snapshot)); if (Boolean.TRUE.equals(vo.getIncludeTrend())) { - responseVo.setTrend(buildTrend(orders, range, + responseVo.setTrend(buildTrend(clerk.getId(), orders, range, vo.getTrendDays() == null || vo.getTrendDays() <= 0 ? 7 : vo.getTrendDays())); responseVo.setTrendDimension("DAY"); } else { @@ -226,8 +224,8 @@ public class PlayClerkPerformanceServiceImpl implements IPlayClerkPerformanceSer return profile; } - private List buildTrend(List orders, DateRange range, - int trendDays) { + private List buildTrend(String clerkId, List orders, + DateRange range, int trendDays) { List completedOrders = orders.stream() .filter(this::isCompletedOrder) .collect(Collectors.toList()); @@ -277,11 +275,12 @@ public class PlayClerkPerformanceServiceImpl implements IPlayClerkPerformanceSer for (PlayOrderInfoEntity order : orders) { BigDecimal finalAmount = defaultZero(order.getFinalAmount()); gmv = gmv.add(finalAmount); - if (OrderConstant.YesNoFlag.YES.getCode().equals(order.getFirstOrder())) { - firstAmount = firstAmount.add(finalAmount); - } else { + OrderConstant.OrderRelationType relationType = normalizeRelationType(order); + if (relationType == OrderConstant.OrderRelationType.CONTINUED) { continuedAmount = continuedAmount.add(finalAmount); continuedCount++; + } else { + firstAmount = firstAmount.add(finalAmount); } } point.setGmv(gmv); @@ -443,6 +442,23 @@ public class PlayClerkPerformanceServiceImpl implements IPlayClerkPerformanceSer return defaultZero(sum); } + private OrderConstant.OrderRelationType normalizeRelationType(PlayOrderInfoEntity order) { + if (order == null) { + throw new ServiceException("订单不能为空,无法统计首单/续单"); + } + OrderConstant.OrderRelationType relationType = order.getOrderRelationType(); + if (relationType == null) { + throw new ServiceException("订单关系类型不能为空,无法统计首单/续单"); + } + if (OrderConstant.PlaceType.RANDOM.getCode().equals(order.getPlaceType())) { + return OrderConstant.OrderRelationType.FIRST; + } + if (relationType == OrderConstant.OrderRelationType.NEUTRAL) { + return OrderConstant.OrderRelationType.FIRST; + } + return relationType; + } + private ClerkPerformanceSnapshotVo buildSnapshot(PlayClerkUserInfoEntity clerk, List orders, Map levelNameMap, Map groupNameMap, String startTime, String endTime) { ClerkPerformanceSnapshotVo snapshot = new ClerkPerformanceSnapshotVo(); @@ -461,23 +477,20 @@ public class PlayClerkPerformanceServiceImpl implements IPlayClerkPerformanceSer int continuedCount = 0; int refundCount = 0; int expiredCount = 0; - Map userOrderMap = new HashMap<>(); - int orderCount = 0; - for (PlayOrderInfoEntity order : orders) { - if (!isCompletedOrder(order)) { - continue; - } - orderCount++; + List completedOrders = orders.stream() + .filter(this::isCompletedOrder) + .collect(Collectors.toList()); + int orderCount = completedOrders.size(); + Set userIds = new HashSet<>(); + Set continuedUserIds = new HashSet<>(); + for (PlayOrderInfoEntity order : completedOrders) { BigDecimal finalAmount = defaultZero(order.getFinalAmount()); gmv = gmv.add(finalAmount); - userOrderMap.merge(order.getPurchaserBy(), 1, Integer::sum); - if (OrderConstant.YesNoFlag.YES.getCode().equals(order.getFirstOrder())) { - firstCount++; - firstAmount = firstAmount.add(finalAmount); - } else { - continuedCount++; - continuedAmount = continuedAmount.add(finalAmount); + String customerId = order.getPurchaserBy(); + if (StrUtil.isBlank(customerId)) { + throw new ServiceException("订单缺少顾客信息,无法统计首单/续单"); } + userIds.add(customerId); if (OrderConstant.PlaceType.REWARD.getCode().equals(order.getPlaceType())) { rewardAmount = rewardAmount.add(finalAmount); } @@ -488,9 +501,18 @@ public class PlayClerkPerformanceServiceImpl implements IPlayClerkPerformanceSer if (OrderConstant.OrdersExpiredState.EXPIRED.getCode().equals(order.getOrdersExpiredState())) { expiredCount++; } + OrderConstant.OrderRelationType relationType = normalizeRelationType(order); + if (relationType == OrderConstant.OrderRelationType.CONTINUED) { + continuedCount++; + continuedAmount = continuedAmount.add(finalAmount); + continuedUserIds.add(customerId); + } else { + firstCount++; + firstAmount = firstAmount.add(finalAmount); + } } - int userCount = userOrderMap.size(); - int continuedUserCount = (int) userOrderMap.values().stream().filter(cnt -> cnt > 1).count(); + int userCount = userIds.size(); + int continuedUserCount = continuedUserIds.size(); BigDecimal estimatedRevenue = calculateEarningsAmount(clerk.getId(), orders, startTime, endTime); snapshot.setGmv(gmv); snapshot.setFirstOrderAmount(firstAmount); diff --git a/play-admin/src/main/java/com/starry/admin/modules/weichat/controller/WxCustomController.java b/play-admin/src/main/java/com/starry/admin/modules/weichat/controller/WxCustomController.java index 1e6552e..83c0712 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/weichat/controller/WxCustomController.java +++ b/play-admin/src/main/java/com/starry/admin/modules/weichat/controller/WxCustomController.java @@ -235,7 +235,7 @@ public class WxCustomController { .orderType(OrderConstant.OrderType.NORMAL) .placeType(OrderConstant.PlaceType.REWARD) .rewardType(RewardType.BALANCE) - .isFirstOrder(false) + .orderRelationType(OrderConstant.OrderRelationType.UNASSIGNED) .creatorActor(OrderActor.CUSTOMER) .creatorId(userId) .commodityInfo(CommodityInfo.builder() @@ -304,7 +304,7 @@ public class WxCustomController { .orderType(OrderConstant.OrderType.NORMAL) .placeType(OrderConstant.PlaceType.SPECIFIED) .rewardType(RewardType.NOT_APPLICABLE) - .isFirstOrder(true) + .orderRelationType(OrderConstant.OrderRelationType.UNASSIGNED) .creatorActor(OrderActor.CUSTOMER) .creatorId(customId) .commodityInfo(CommodityInfo.builder() @@ -376,7 +376,7 @@ public class WxCustomController { .orderType(OrderConstant.OrderType.NORMAL) .placeType(OrderConstant.PlaceType.RANDOM) .rewardType(RewardType.NOT_APPLICABLE) - .isFirstOrder(true) + .orderRelationType(OrderConstant.OrderRelationType.FIRST) .creatorActor(OrderActor.CUSTOMER) .creatorId(customId) .commodityInfo(CommodityInfo.builder() diff --git a/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayClerkOrderDetailsReturnVo.java b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayClerkOrderDetailsReturnVo.java index 7f4ffb1..c435f40 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayClerkOrderDetailsReturnVo.java +++ b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayClerkOrderDetailsReturnVo.java @@ -34,6 +34,16 @@ public class PlayClerkOrderDetailsReturnVo { */ private String placeType; + /** + * 订单关系类型(FIRST/CONTINUED/NEUTRAL) + */ + private com.starry.admin.modules.order.module.constant.OrderConstant.OrderRelationType orderRelationType; + + /** + * 是否是首单【0:不是,1:是】 + */ + private String firstOrder; + /** * 商品数量 */ diff --git a/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayClerkOrderListReturnVo.java b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayClerkOrderListReturnVo.java index ab46be8..d661303 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayClerkOrderListReturnVo.java +++ b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayClerkOrderListReturnVo.java @@ -34,6 +34,11 @@ public class PlayClerkOrderListReturnVo { */ private String placeType; + /** + * 订单关系类型(FIRST/CONTINUED/NEUTRAL) + */ + private com.starry.admin.modules.order.module.constant.OrderConstant.OrderRelationType orderRelationType; + /** * 是否是首单【0:不是,1:是】 */ diff --git a/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayCustomOrderDetailsReturnVo.java b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayCustomOrderDetailsReturnVo.java index 563524b..d654f03 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayCustomOrderDetailsReturnVo.java +++ b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayCustomOrderDetailsReturnVo.java @@ -35,6 +35,16 @@ public class PlayCustomOrderDetailsReturnVo { */ private String placeType; + /** + * 订单关系类型(FIRST/CONTINUED/NEUTRAL) + */ + private com.starry.admin.modules.order.module.constant.OrderConstant.OrderRelationType orderRelationType; + + /** + * 是否是首单【0:不是,1:是】 + */ + private String firstOrder; + /** * 商品数量 */ diff --git a/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayCustomOrderListReturnVo.java b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayCustomOrderListReturnVo.java index b70bd1e..046d3ac 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayCustomOrderListReturnVo.java +++ b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayCustomOrderListReturnVo.java @@ -35,6 +35,16 @@ public class PlayCustomOrderListReturnVo { */ private String placeType; + /** + * 订单关系类型(FIRST/CONTINUED/NEUTRAL) + */ + private com.starry.admin.modules.order.module.constant.OrderConstant.OrderRelationType orderRelationType; + + /** + * 是否是首单【0:不是,1:是】 + */ + private String firstOrder; + /** * 商品数量 */ diff --git a/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayRandomOrderInfoReturnVo.java b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayRandomOrderInfoReturnVo.java index 4e3f5d3..4782e11 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayRandomOrderInfoReturnVo.java +++ b/play-admin/src/main/java/com/starry/admin/modules/weichat/entity/order/PlayRandomOrderInfoReturnVo.java @@ -32,6 +32,11 @@ public class PlayRandomOrderInfoReturnVo { */ private String placeType; + /** + * 订单关系类型(FIRST/CONTINUED/NEUTRAL) + */ + private com.starry.admin.modules.order.module.constant.OrderConstant.OrderRelationType orderRelationType; + /** * 是否是首单【0:不是,1:是】 */ diff --git a/play-admin/src/main/java/com/starry/admin/modules/weichat/service/WxBlindBoxOrderService.java b/play-admin/src/main/java/com/starry/admin/modules/weichat/service/WxBlindBoxOrderService.java index 2b456ed..996116d 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/weichat/service/WxBlindBoxOrderService.java +++ b/play-admin/src/main/java/com/starry/admin/modules/weichat/service/WxBlindBoxOrderService.java @@ -179,7 +179,7 @@ public class WxBlindBoxOrderService { .orderType(OrderConstant.OrderType.BLIND_BOX_PURCHASE) .placeType(OrderConstant.PlaceType.REWARD) .rewardType(RewardType.GIFT) - .isFirstOrder(false) + .orderRelationType(OrderConstant.OrderRelationType.UNASSIGNED) .creatorActor(OrderActor.CUSTOMER) .creatorId(customer.getId()) .commodityInfo(CommodityInfo.builder() diff --git a/play-admin/src/main/java/com/starry/admin/modules/weichat/service/WxGiftOrderService.java b/play-admin/src/main/java/com/starry/admin/modules/weichat/service/WxGiftOrderService.java index bc01853..782c465 100644 --- a/play-admin/src/main/java/com/starry/admin/modules/weichat/service/WxGiftOrderService.java +++ b/play-admin/src/main/java/com/starry/admin/modules/weichat/service/WxGiftOrderService.java @@ -108,7 +108,7 @@ public class WxGiftOrderService { .orderType(OrderConstant.OrderType.NORMAL) .placeType(OrderConstant.PlaceType.REWARD) .rewardType(RewardType.GIFT) - .isFirstOrder(true) + .orderRelationType(OrderConstant.OrderRelationType.UNASSIGNED) .creatorActor(OrderActor.CUSTOMER) .creatorId(purchaserId) .commodityInfo(CommodityInfo.builder() diff --git a/play-admin/src/main/resources/db/migration/V18__add_order_relation_type.sql b/play-admin/src/main/resources/db/migration/V18__add_order_relation_type.sql new file mode 100644 index 0000000..1840212 --- /dev/null +++ b/play-admin/src/main/resources/db/migration/V18__add_order_relation_type.sql @@ -0,0 +1,67 @@ +CREATE TABLE play_clerk_customer_relation ( + id VARCHAR(64) NOT NULL COMMENT '主键', + purchaser_by VARCHAR(64) NOT NULL COMMENT '顾客ID', + tenant_id VARCHAR(32) DEFAULT NULL COMMENT '租户ID', + accept_by VARCHAR(64) NOT NULL COMMENT '店员ID', + has_completed VARCHAR(1) NOT NULL DEFAULT '0' COMMENT '是否有已完成历史 0否 1是', + first_completed_order_id VARCHAR(64) DEFAULT NULL COMMENT '首次完成订单ID', + first_completed_time DATETIME DEFAULT NULL COMMENT '首次完成时间', + created_by VARCHAR(64) DEFAULT NULL COMMENT '创建人', + created_time DATETIME DEFAULT NULL COMMENT '创建时间', + updated_by VARCHAR(64) DEFAULT NULL COMMENT '更新人', + updated_time DATETIME DEFAULT NULL COMMENT '更新时间', + deleted TINYINT(1) NOT NULL DEFAULT '0' COMMENT '逻辑删除 1已删除 0未删除', + PRIMARY KEY (id), + UNIQUE KEY uk_clerk_customer_relation (tenant_id, purchaser_by, accept_by) +) COMMENT '客户-店员关系(完成历史)'; + +INSERT INTO play_clerk_customer_relation ( + id, + purchaser_by, + tenant_id, + accept_by, + has_completed, + first_completed_time, + created_time, + updated_time, + deleted +) +SELECT + REPLACE(UUID(), '-', ''), + purchaser_by, + tenant_id, + accept_by, + '1', + MIN(COALESCE(order_end_time, purchaser_time)), + NOW(), + NOW(), + 0 +FROM play_order_info +WHERE order_status = '3' + AND purchaser_by IS NOT NULL + AND purchaser_by <> '' + AND tenant_id IS NOT NULL + AND tenant_id <> '' + AND accept_by IS NOT NULL + AND accept_by <> '' +GROUP BY tenant_id, purchaser_by, accept_by; + +ALTER TABLE play_order_info + ADD COLUMN order_relation_type VARCHAR(32) NOT NULL DEFAULT 'LEGACY'; + +UPDATE play_order_info o +LEFT JOIN ( + SELECT purchaser_by, accept_by, MIN(purchaser_time) AS first_completed_time + FROM play_order_info + WHERE order_status = '3' + GROUP BY purchaser_by, accept_by +) h ON o.purchaser_by = h.purchaser_by AND o.accept_by = h.accept_by +SET o.order_relation_type = CASE + WHEN o.place_type = '1' THEN 'FIRST' + WHEN o.accept_by IS NULL OR o.accept_by = '' THEN 'LEGACY' + WHEN h.first_completed_time IS NOT NULL AND o.purchaser_time > h.first_completed_time THEN 'CONTINUED' + ELSE 'FIRST' +END +WHERE o.order_relation_type IS NULL + OR o.order_relation_type = '' + OR o.order_relation_type = 'LEGACY'; diff --git a/play-admin/src/test/java/com/starry/admin/api/LegacyOrderIntegrationTest.java b/play-admin/src/test/java/com/starry/admin/api/LegacyOrderIntegrationTest.java new file mode 100644 index 0000000..94034be --- /dev/null +++ b/play-admin/src/test/java/com/starry/admin/api/LegacyOrderIntegrationTest.java @@ -0,0 +1,197 @@ +package com.starry.admin.api; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; + +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.node.ObjectNode; +import com.starry.admin.common.apitest.ApiTestDataSeeder; +import com.starry.admin.modules.order.module.constant.OrderConstant; +import com.starry.admin.modules.order.module.entity.PlayOrderInfoEntity; +import com.starry.admin.utils.SecurityUtils; +import com.starry.common.constant.Constants; +import com.starry.common.utils.IdUtils; +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.util.Date; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.Test; +import org.springframework.http.MediaType; + +class LegacyOrderIntegrationTest extends WxCustomOrderApiTestSupport { + + private String orderIdToCleanup; + + @AfterEach + void tearDown() { + if (orderIdToCleanup != null) { + ensureTenantContext(); + playOrderInfoService.removeById(orderIdToCleanup); + orderIdToCleanup = null; + } + } + + @Test + void getLegacyOrderDetails_Admin_ShouldReturnLegacyType() throws Exception { + ensureTenantContext(); + PlayOrderInfoEntity legacyOrder = createLegacyOrder(); + + mockMvc.perform(get("/order/order/" + legacyOrder.getId()) + .header(TENANT_HEADER, DEFAULT_TENANT) + .header(USER_HEADER, DEFAULT_USER) + .contentType(MediaType.APPLICATION_JSON)) + .andExpect(status().isOk()) + .andExpect(jsonPath("$.code").value(200)) + .andExpect(jsonPath("$.data.orderRelationType").value("LEGACY")); + } + + @Test + void listByPage_Admin_ShouldReturnLegacyType() throws Exception { + ensureTenantContext(); + PlayOrderInfoEntity legacyOrder = createLegacyOrder(); + + ObjectNode payload = objectMapper.createObjectNode(); + payload.put("pageNum", 1); + payload.put("pageSize", 10); + payload.put("orderNo", legacyOrder.getOrderNo()); + + String response = mockMvc.perform(post("/order/order/listByPage") + .header(TENANT_HEADER, DEFAULT_TENANT) + .header(USER_HEADER, ApiTestDataSeeder.DEFAULT_ADMIN_USER_ID) + .contentType(MediaType.APPLICATION_JSON) + .content(payload.toString())) + .andExpect(status().isOk()) + .andExpect(jsonPath("$.code").value(200)) + .andReturn().getResponse().getContentAsString(); + + JsonNode root = objectMapper.readTree(response); + JsonNode data = root.path("data"); + JsonNode records = data.isArray() ? data : data.path("records"); + String type = records.get(0).path("orderRelationType").asText(); + assertThat(type).isEqualTo("LEGACY"); + } + private String ensureCustomerToken() { + resetCustomerBalance(); + String customerToken = wxTokenService.createWxUserToken(ApiTestDataSeeder.DEFAULT_CUSTOMER_ID); + customUserInfoService.updateTokenById(ApiTestDataSeeder.DEFAULT_CUSTOMER_ID, customerToken); + return customerToken; + } + + @Test + void queryById_WxCustom_ShouldReturnLegacyType() throws Exception { + ensureTenantContext(); + PlayOrderInfoEntity legacyOrder = createLegacyOrder(); + String customerToken = ensureCustomerToken(); + + mockMvc.perform(get("/wx/custom/order/queryById") + .header(TENANT_HEADER, DEFAULT_TENANT) + .header(Constants.CUSTOM_USER_LOGIN_TOKEN, Constants.TOKEN_PREFIX + customerToken) + .param("id", legacyOrder.getId())) + .andExpect(status().isOk()) + .andExpect(jsonPath("$.code").value(200)) + .andExpect(jsonPath("$.data.orderRelationType").value("LEGACY")); + } + + @Test + void queryByPage_WxCustom_ShouldReturnLegacyType() throws Exception { + ensureTenantContext(); + PlayOrderInfoEntity legacyOrder = createLegacyOrder(); + String customerToken = ensureCustomerToken(); + + ObjectNode payload = objectMapper.createObjectNode(); + payload.put("pageNum", 1); + payload.put("pageSize", 20); + + String response = mockMvc.perform(post("/wx/custom/order/queryByPage") + .header(TENANT_HEADER, DEFAULT_TENANT) + .header(Constants.CUSTOM_USER_LOGIN_TOKEN, Constants.TOKEN_PREFIX + customerToken) + .contentType(MediaType.APPLICATION_JSON) + .content(payload.toString())) + .andExpect(status().isOk()) + .andExpect(jsonPath("$.code").value(200)) + .andReturn().getResponse().getContentAsString(); + + JsonNode root = objectMapper.readTree(response); + JsonNode records = root.path("data").isArray() ? root.path("data") : root.path("data").path("records"); + boolean found = false; + for (JsonNode node : records) { + if (legacyOrder.getId().equals(node.path("id").asText())) { + assertThat(node.path("orderRelationType").asText()).isEqualTo("LEGACY"); + found = true; + break; + } + } + assertThat(found).withFailMessage("Legacy order not found in customer list").isTrue(); + } + + @Test + void calculateEstimatedRevenue_ForLegacyOrder_ShouldNotFail() throws Exception { + ensureTenantContext(); + PlayOrderInfoEntity legacyOrder = createLegacyOrder(); + + BigDecimal revenue = playOrderInfoService.getEstimatedRevenue( + legacyOrder.getAcceptBy(), + legacyOrder.getPlaceType(), + legacyOrder.getOrderRelationType(), + legacyOrder.getOrderMoney() + ); + + assertThat(revenue).isNotNull(); + assertThat(revenue).isGreaterThanOrEqualTo(BigDecimal.ZERO); + } + + @Test + void calculateEstimatedRevenue_ForUnassignedOrder_ShouldThrowException() { + ensureTenantContext(); + try { + playOrderInfoService.getEstimatedRevenue( + ApiTestDataSeeder.DEFAULT_CLERK_ID, + "0", // Specified + OrderConstant.OrderRelationType.UNASSIGNED, + new BigDecimal("100.00") + ); + assertThat(true).withFailMessage("Should have thrown exception for UNASSIGNED relation type").isFalse(); + } catch (Exception e) { + assertThat(e).isInstanceOf(RuntimeException.class); + assertThat(e.getMessage()).contains("未分配订单不可计算预计收益"); + } + } + + private PlayOrderInfoEntity createLegacyOrder() { + PlayOrderInfoEntity order = new PlayOrderInfoEntity(); + String id = "legacy-" + IdUtils.getUuid(); + order.setId(id); + order.setOrderNo("LEGACY" + IdUtils.getUuid().substring(0, 6)); + order.setTenantId(ApiTestDataSeeder.DEFAULT_TENANT_ID); + order.setOrderStatus("3"); // Completed + order.setOrderType("2"); // Normal + order.setPlaceType("0"); // Specified + order.setOrderRelationType(OrderConstant.OrderRelationType.LEGACY); + order.setOrderMoney(new BigDecimal("100.00")); + order.setFinalAmount(new BigDecimal("100.00")); + order.setAcceptBy(ApiTestDataSeeder.DEFAULT_CLERK_ID); + order.setPurchaserBy(ApiTestDataSeeder.DEFAULT_CUSTOMER_ID); + order.setPurchaserTime(LocalDateTime.now().minusDays(100)); + order.setCreatedTime(new Date()); + order.setUpdatedTime(new Date()); + order.setDeleted(false); + order.setPayMethod("2"); + order.setUseCoupon("0"); + order.setBackendEntry("0"); + order.setSex("2"); + order.setCommodityType("1"); + order.setCommodityId(ApiTestDataSeeder.DEFAULT_COMMODITY_ID); + order.setCommodityName("Legacy Service"); + order.setCommodityPrice(new BigDecimal("100.00")); + order.setCommodityNumber("1"); + order.setRefundType("0"); + order.setRefundAmount(BigDecimal.ZERO); + + playOrderInfoService.save(order); + orderIdToCleanup = id; + return order; + } +} diff --git a/play-admin/src/test/java/com/starry/admin/api/PlayOrderInfoControllerApiTest.java b/play-admin/src/test/java/com/starry/admin/api/PlayOrderInfoControllerApiTest.java index 0c086cf..1637de4 100644 --- a/play-admin/src/test/java/com/starry/admin/api/PlayOrderInfoControllerApiTest.java +++ b/play-admin/src/test/java/com/starry/admin/api/PlayOrderInfoControllerApiTest.java @@ -42,6 +42,32 @@ class PlayOrderInfoControllerApiTest extends AbstractApiTest { private static final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); private static final BigDecimal DEFAULT_AMOUNT = new BigDecimal("188.00"); + private static final int ID_SUFFIX_LENGTH = 6; + private static final String FIRST_FLAG = OrderConstant.YesNoFlag.YES.getCode(); + private static final String CONTINUED_FLAG = OrderConstant.YesNoFlag.NO.getCode(); + private static final String RELATION_FIRST = OrderConstant.OrderRelationType.FIRST.getCode(); + private static final String RELATION_CONTINUED = OrderConstant.OrderRelationType.CONTINUED.getCode(); + private static final String RELATION_UNASSIGNED = OrderConstant.OrderRelationType.UNASSIGNED.getCode(); + private static final String RELATION_NEUTRAL = OrderConstant.OrderRelationType.NEUTRAL.getCode(); + private static final String RELATION_LEGACY = OrderConstant.OrderRelationType.LEGACY.getCode(); + private static final String FIELD_ORDER_RELATION_TYPE = "orderRelationType"; + private static final String FIELD_FIRST_ORDER = "firstOrder"; + private static final String PREFIX_FIRST_RELATION = "FR"; + private static final String PREFIX_CONTINUED_RELATION = "CR"; + private static final String PREFIX_UNASSIGNED_RELATION = "UR"; + private static final String PREFIX_NEUTRAL_RELATION = "NR"; + private static final String PREFIX_RANDOM_RELATION = "RR"; + private static final String PREFIX_FIRST_FILTER_YES = "FY"; + private static final String PREFIX_FIRST_FILTER_NO = "FN"; + private static final String PREFIX_BACKWARD_COMPAT = "BC"; + private static final String TOKEN_LEGACY_CLIENT = "legacy-client"; + private static final String TOKEN_LEGACY_CONTINUED = "legacy-continued"; + private static final long HOURS_OFFSET_ONE = 1L; + private static final long HOURS_OFFSET_TWO = 2L; + private static final long HOURS_OFFSET_THREE = 3L; + private static final long HOURS_OFFSET_FOUR = 4L; + private static final long HOURS_OFFSET_FIVE = 5L; + private static final long MINUTES_OFFSET_TEN = 10L; @Autowired private IPlayOrderInfoService orderInfoService; @@ -87,20 +113,20 @@ class PlayOrderInfoControllerApiTest extends AbstractApiTest { order.setPayMethod("2"); order.setUseCoupon("1"); order.setBackendEntry("1"); - order.setFirstOrder("0"); + order.setOrderRelationType(OrderConstant.OrderRelationType.CONTINUED); order.setGroupId(ApiTestDataSeeder.DEFAULT_GROUP_ID); order.setSex("2"); order.setAcceptBy(ApiTestDataSeeder.DEFAULT_CLERK_ID); order.setPurchaserBy(ApiTestDataSeeder.DEFAULT_CUSTOMER_ID); }); - persistOrder(marker, "noise", reference.minusDays(3), order -> { + PlayOrderInfoEntity noiseOrder = persistOrder(marker, "noise", reference.minusDays(3), order -> { order.setOrderStatus("0"); order.setPlaceType("0"); order.setPayMethod("0"); order.setUseCoupon("0"); order.setBackendEntry("0"); - order.setFirstOrder("1"); + order.setOrderRelationType(OrderConstant.OrderRelationType.FIRST); order.setGroupId(marker + "-grp"); order.setSex("1"); order.setAcceptBy(null); @@ -149,9 +175,13 @@ class PlayOrderInfoControllerApiTest extends AbstractApiTest { // firstOrder filter ObjectNode firstOrderPayload = queryWithMarker(marker); - firstOrderPayload.put("firstOrder", matching.getFirstOrder()); + firstOrderPayload.put("firstOrder", OrderConstant.YesNoFlag.NO.getCode()); assertFilterMatches(firstOrderPayload, matching.getId()); + ObjectNode firstOrderYesPayload = queryWithMarker(marker); + firstOrderYesPayload.put("firstOrder", OrderConstant.YesNoFlag.YES.getCode()); + assertFilterMatches(firstOrderYesPayload, noiseOrder.getId()); + // groupId filter ObjectNode groupPayload = queryWithMarker(marker); groupPayload.put("groupId", matching.getGroupId()); @@ -192,7 +222,7 @@ class PlayOrderInfoControllerApiTest extends AbstractApiTest { combinedPayload.put("payMethod", matching.getPayMethod()); combinedPayload.put("useCoupon", matching.getUseCoupon()); combinedPayload.put("backendEntry", matching.getBackendEntry()); - combinedPayload.put("firstOrder", matching.getFirstOrder()); + combinedPayload.put("firstOrder", OrderConstant.YesNoFlag.NO.getCode()); combinedPayload.put("groupId", matching.getGroupId()); combinedPayload.put("sex", matching.getSex()); combinedPayload.set("purchaserTime", range( @@ -207,6 +237,191 @@ class PlayOrderInfoControllerApiTest extends AbstractApiTest { assertFilterMatches(combinedPayload, matching.getId()); } + /** + * 验证首单关系在列表中映射为 firstOrder=1。 + */ + @Test + void listByPage_mapsFirstOrderFlagForFirstRelationType() throws Exception { + ensureTenantContext(); + String marker = (PREFIX_FIRST_RELATION + IdUtils.getUuid().replace("-", "").substring(0, ID_SUFFIX_LENGTH)).toUpperCase(); + LocalDateTime reference = LocalDateTime.now().minusHours(HOURS_OFFSET_FOUR).withNano(0); + + PlayOrderInfoEntity order = persistOrder(marker, "first", reference, entity -> { + entity.setOrderRelationType(OrderConstant.OrderRelationType.FIRST); + entity.setPlaceType(OrderConstant.PlaceType.SPECIFIED.getCode()); + }); + + JsonNode record = fetchSingleRecord(queryWithMarker(marker), order.getId()); + assertRelationFields(record, RELATION_FIRST, FIRST_FLAG); + } + + /** + * 验证续单关系在列表中映射为 firstOrder=0。 + */ + @Test + void listByPage_mapsFirstOrderFlagForContinuedRelationType() throws Exception { + ensureTenantContext(); + String marker = (PREFIX_CONTINUED_RELATION + IdUtils.getUuid().replace("-", "").substring(0, ID_SUFFIX_LENGTH)).toUpperCase(); + LocalDateTime reference = LocalDateTime.now().minusHours(HOURS_OFFSET_THREE).withNano(0); + + PlayOrderInfoEntity order = persistOrder(marker, "continued", reference, entity -> { + entity.setOrderRelationType(OrderConstant.OrderRelationType.CONTINUED); + entity.setPlaceType(OrderConstant.PlaceType.SPECIFIED.getCode()); + }); + + JsonNode record = fetchSingleRecord(queryWithMarker(marker), order.getId()); + assertRelationFields(record, RELATION_CONTINUED, CONTINUED_FLAG); + } + + /** + * 验证未分配订单在列表中映射为 firstOrder=1。 + */ + @Test + void listByPage_mapsFirstOrderFlagForUnassignedRelationType() throws Exception { + ensureTenantContext(); + String marker = (PREFIX_UNASSIGNED_RELATION + IdUtils.getUuid().replace("-", "").substring(0, ID_SUFFIX_LENGTH)).toUpperCase(); + LocalDateTime reference = LocalDateTime.now().minusHours(HOURS_OFFSET_TWO).withNano(0); + + PlayOrderInfoEntity order = persistOrder(marker, "unassigned", reference, entity -> { + entity.setOrderRelationType(OrderConstant.OrderRelationType.UNASSIGNED); + entity.setPlaceType(OrderConstant.PlaceType.SPECIFIED.getCode()); + entity.setAcceptBy(null); + }); + + JsonNode record = fetchSingleRecord(queryWithMarker(marker), order.getId()); + assertRelationFields(record, RELATION_UNASSIGNED, FIRST_FLAG); + } + + /** + * 验证历史存量关系在列表中映射为首单。 + */ + @Test + void listByPage_mapsFirstOrderFlagForLegacyRelationType() throws Exception { + ensureTenantContext(); + String marker = (RELATION_LEGACY + IdUtils.getUuid().replace("-", "").substring(0, ID_SUFFIX_LENGTH)).toUpperCase(); + LocalDateTime reference = LocalDateTime.now().minusHours(HOURS_OFFSET_TWO).withNano(0); + + PlayOrderInfoEntity order = persistOrder(marker, "legacy", reference, entity -> { + entity.setOrderRelationType(OrderConstant.OrderRelationType.LEGACY); + entity.setPlaceType(OrderConstant.PlaceType.SPECIFIED.getCode()); + }); + + JsonNode record = fetchSingleRecord(queryWithMarker(marker), order.getId()); + assertRelationFields(record, RELATION_LEGACY, FIRST_FLAG); + } + + /** + * 验证中性关系在列表展示中被视为首单。 + */ + @Test + void listByPage_normalizesNeutralRelationTypeToFirst() throws Exception { + ensureTenantContext(); + String marker = (PREFIX_NEUTRAL_RELATION + IdUtils.getUuid().replace("-", "").substring(0, ID_SUFFIX_LENGTH)).toUpperCase(); + LocalDateTime reference = LocalDateTime.now().minusHours(2).withNano(0); + + PlayOrderInfoEntity order = persistOrder(marker, "neutral", reference, entity -> { + entity.setOrderRelationType(OrderConstant.OrderRelationType.NEUTRAL); + entity.setPlaceType(OrderConstant.PlaceType.SPECIFIED.getCode()); + }); + + JsonNode record = fetchSingleRecord(queryWithMarker(marker), order.getId()); + assertRelationFields(record, RELATION_FIRST, FIRST_FLAG); + } + + /** + * 验证随机单强制展示为首单关系。 + */ + @Test + void listByPage_normalizesRandomRelationTypeToFirst() throws Exception { + ensureTenantContext(); + String marker = (PREFIX_RANDOM_RELATION + IdUtils.getUuid().replace("-", "").substring(0, ID_SUFFIX_LENGTH)).toUpperCase(); + LocalDateTime reference = LocalDateTime.now().minusHours(HOURS_OFFSET_ONE).withNano(0); + + PlayOrderInfoEntity order = persistOrder(marker, "random", reference, entity -> { + entity.setOrderRelationType(OrderConstant.OrderRelationType.CONTINUED); + entity.setPlaceType(OrderConstant.PlaceType.RANDOM.getCode()); + }); + + JsonNode record = fetchSingleRecord(queryWithMarker(marker), order.getId()); + assertRelationFields(record, RELATION_FIRST, FIRST_FLAG); + } + + /** + * 验证首单筛选仅返回首单关系订单。 + */ + @Test + void listByPage_filtersFirstOrderYesMatchesFirstRelationType() throws Exception { + ensureTenantContext(); + String marker = (PREFIX_FIRST_FILTER_YES + IdUtils.getUuid().replace("-", "").substring(0, ID_SUFFIX_LENGTH)).toUpperCase(); + LocalDateTime reference = LocalDateTime.now().minusHours(HOURS_OFFSET_FIVE).withNano(0); + + PlayOrderInfoEntity firstOrder = persistOrder(marker, "first", reference, entity -> { + entity.setOrderRelationType(OrderConstant.OrderRelationType.FIRST); + }); + persistOrder(marker, "continued", reference.plusMinutes(MINUTES_OFFSET_TEN), entity -> { + entity.setOrderRelationType(OrderConstant.OrderRelationType.CONTINUED); + }); + + ObjectNode payload = queryWithMarker(marker); + payload.put("firstOrder", FIRST_FLAG); + assertFilterMatches(payload, firstOrder.getId()); + } + + /** + * 验证续单筛选仅返回续单关系订单。 + */ + @Test + void listByPage_filtersFirstOrderNoMatchesContinuedRelationType() throws Exception { + ensureTenantContext(); + String marker = (PREFIX_FIRST_FILTER_NO + IdUtils.getUuid().replace("-", "").substring(0, ID_SUFFIX_LENGTH)).toUpperCase(); + LocalDateTime reference = LocalDateTime.now().minusHours(HOURS_OFFSET_FIVE).withNano(0); + + persistOrder(marker, "first", reference, entity -> entity.setOrderRelationType(OrderConstant.OrderRelationType.FIRST)); + PlayOrderInfoEntity continuedOrder = persistOrder(marker, "continued", reference.plusMinutes(MINUTES_OFFSET_TEN), entity -> { + entity.setOrderRelationType(OrderConstant.OrderRelationType.CONTINUED); + }); + + ObjectNode payload = queryWithMarker(marker); + payload.put("firstOrder", CONTINUED_FLAG); + assertFilterMatches(payload, continuedOrder.getId()); + } + + /** + * 验证未传首单筛选时,列表仍返回首单字段(向后兼容)。 + */ + @Test + void listByPage_includesFirstOrderFieldWhenFilterNotProvided() throws Exception { + ensureTenantContext(); + String marker = (PREFIX_BACKWARD_COMPAT + IdUtils.getUuid().replace("-", "").substring(0, ID_SUFFIX_LENGTH)).toUpperCase(); + LocalDateTime reference = LocalDateTime.now().minusHours(HOURS_OFFSET_TWO).withNano(0); + + PlayOrderInfoEntity order = persistOrder(marker, TOKEN_LEGACY_CLIENT, reference, entity -> { + entity.setOrderRelationType(OrderConstant.OrderRelationType.FIRST); + entity.setPlaceType(OrderConstant.PlaceType.SPECIFIED.getCode()); + }); + + JsonNode record = fetchSingleRecord(queryWithMarker(marker), order.getId()); + assertRelationFields(record, RELATION_FIRST, FIRST_FLAG); + } + + /** + * 验证续单关系在旧字段中仍保持兼容输出。 + */ + @Test + void listByPage_includesFirstOrderFieldForContinuedRelation() throws Exception { + ensureTenantContext(); + String marker = (PREFIX_BACKWARD_COMPAT + IdUtils.getUuid().replace("-", "").substring(0, ID_SUFFIX_LENGTH)).toUpperCase(); + LocalDateTime reference = LocalDateTime.now().minusHours(HOURS_OFFSET_THREE).withNano(0); + + PlayOrderInfoEntity order = persistOrder(marker, TOKEN_LEGACY_CONTINUED, reference, entity -> { + entity.setOrderRelationType(OrderConstant.OrderRelationType.CONTINUED); + entity.setPlaceType(OrderConstant.PlaceType.SPECIFIED.getCode()); + }); + + JsonNode record = fetchSingleRecord(queryWithMarker(marker), order.getId()); + assertRelationFields(record, RELATION_CONTINUED, CONTINUED_FLAG); + } + @Test void listByPage_keywordFiltersByOrderNoOrClerkName() throws Exception { ensureTenantContext(); @@ -736,7 +951,7 @@ class PlayOrderInfoControllerApiTest extends AbstractApiTest { order.setOrderType("2"); order.setPlaceType("1"); order.setRewardType("0"); - order.setFirstOrder("0"); + order.setOrderRelationType(OrderConstant.OrderRelationType.FIRST); order.setRefundType("0"); order.setRefundAmount(BigDecimal.ZERO); order.setRefundReason(null); @@ -846,6 +1061,25 @@ class PlayOrderInfoControllerApiTest extends AbstractApiTest { .isEqualTo(expectedOrderId); } + private JsonNode fetchSingleRecord(ObjectNode payload, String expectedOrderId) throws Exception { + RecordsResponse response = executeList(payload); + JsonNode records = response.records; + assertThat(records.isArray()) + .withFailMessage("Records payload is not an array for body=%s | response=%s", payload, response.rawResponse) + .isTrue(); + for (JsonNode record : records) { + if (expectedOrderId.equals(record.path("id").asText())) { + return record; + } + } + throw new AssertionError("未找到订单 " + expectedOrderId); + } + + private void assertRelationFields(JsonNode record, String relationCode, String firstOrderFlag) { + assertThat(record.path(FIELD_ORDER_RELATION_TYPE).asText()).isEqualTo(relationCode); + assertThat(record.path(FIELD_FIRST_ORDER).asText()).isEqualTo(firstOrderFlag); + } + private RecordsResponse executeList(ObjectNode payload) throws Exception { MvcResult result = mockMvc.perform(post("/order/order/listByPage") .contentType(MediaType.APPLICATION_JSON) diff --git a/play-admin/src/test/java/com/starry/admin/api/WxCustomOrderQueryApiTest.java b/play-admin/src/test/java/com/starry/admin/api/WxCustomOrderQueryApiTest.java index 5baf4b3..a060390 100644 --- a/play-admin/src/test/java/com/starry/admin/api/WxCustomOrderQueryApiTest.java +++ b/play-admin/src/test/java/com/starry/admin/api/WxCustomOrderQueryApiTest.java @@ -362,7 +362,7 @@ class WxCustomOrderQueryApiTest extends WxCustomOrderApiTestSupport { order.setOrderNo("FOCUS-" + IdUtils.getUuid().substring(0, 4)); order.setUseCoupon("1"); order.setBackendEntry("1"); - order.setFirstOrder("1"); + order.setOrderRelationType(OrderConstant.OrderRelationType.FIRST); order.setGroupId("group-focus"); order.setSex("1"); order.setPurchaserTime(base.plusMinutes(5)); @@ -374,7 +374,7 @@ class WxCustomOrderQueryApiTest extends WxCustomOrderApiTestSupport { order.setPlaceType(OrderConstant.PlaceType.RANDOM.getCode()); order.setUseCoupon("0"); order.setBackendEntry("0"); - order.setFirstOrder("0"); + order.setOrderRelationType(OrderConstant.OrderRelationType.CONTINUED); order.setGroupId("group-noise"); order.setSex("2"); }); @@ -384,7 +384,7 @@ class WxCustomOrderQueryApiTest extends WxCustomOrderApiTestSupport { payload.put("orderNo", target.getOrderNo().substring(0, 6)); payload.put("useCoupon", "1"); payload.put("backendEntry", "1"); - payload.put("firstOrder", "1"); + payload.put("firstOrder", OrderConstant.YesNoFlag.YES.getCode()); payload.put("groupId", "group-focus"); payload.put("sex", "1"); payload.set("purchaserTime", range(target.getPurchaserTime().minusMinutes(1), target.getPurchaserTime().plusMinutes(1))); @@ -455,7 +455,7 @@ class WxCustomOrderQueryApiTest extends WxCustomOrderApiTestSupport { order.setOrderType(OrderConstant.OrderType.NORMAL.getCode()); order.setPlaceType(OrderConstant.PlaceType.SPECIFIED.getCode()); order.setRewardType("0"); - order.setFirstOrder("0"); + order.setOrderRelationType(OrderConstant.OrderRelationType.FIRST); order.setRefundType("0"); order.setRefundAmount(BigDecimal.ZERO); order.setOrderMoney(new BigDecimal("99.00")); diff --git a/play-admin/src/test/java/com/starry/admin/api/WxOrderRelationApiTest.java b/play-admin/src/test/java/com/starry/admin/api/WxOrderRelationApiTest.java new file mode 100644 index 0000000..61befb7 --- /dev/null +++ b/play-admin/src/test/java/com/starry/admin/api/WxOrderRelationApiTest.java @@ -0,0 +1,1284 @@ +package com.starry.admin.api; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.Mockito.doNothing; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; + +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ObjectNode; +import com.starry.admin.common.apitest.ApiTestDataSeeder; +import com.starry.admin.common.task.OverdueOrderHandlerTask; +import com.starry.admin.modules.blindbox.mapper.BlindBoxPoolMapper; +import com.starry.admin.modules.blindbox.module.entity.BlindBoxConfigEntity; +import com.starry.admin.modules.blindbox.module.entity.BlindBoxPoolEntity; +import com.starry.admin.modules.blindbox.service.BlindBoxConfigService; +import com.starry.admin.modules.clerk.module.entity.PlayClerkUserInfoEntity; +import com.starry.admin.modules.custom.module.entity.PlayCustomUserInfoEntity; +import com.starry.admin.modules.order.mapper.PlayClerkCustomerRelationMapper; +import com.starry.admin.modules.order.module.constant.OrderConstant; +import com.starry.admin.modules.order.module.entity.PlayClerkCustomerRelationEntity; +import com.starry.admin.modules.order.module.entity.PlayOrderInfoEntity; +import com.starry.admin.modules.shop.module.entity.PlayGiftInfoEntity; +import com.starry.admin.modules.shop.service.IPlayGiftInfoService; +import com.starry.admin.modules.weichat.service.NotificationSender; +import com.starry.admin.modules.weichat.service.WxCustomMpService; +import com.starry.common.constant.Constants; +import com.starry.common.context.CustomSecurityContextHolder; +import com.starry.common.utils.IdUtils; +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.util.Objects; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.mockito.Mockito; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.http.MediaType; +import org.springframework.test.web.servlet.MvcResult; + +class WxOrderRelationApiTest extends WxCustomOrderApiTestSupport { + + private enum OrderRelationType { + FIRST, + CONTINUED + } + + private static final String RELATION_TYPE_FIELD = "orderRelationType"; + private static final String FIRST_ORDER_FIELD = "firstOrder"; + private static final String CUSTOMER_WECHAT_CODE = "apitest-customer-wx"; + private static final String REMARK_PREFIX_SPECIFIED = "api-relation-specified-"; + private static final String REMARK_PREFIX_RANDOM = "api-relation-random-"; + private static final String REMARK_PREFIX_REWARD = "api-relation-reward-"; + private static final String REMARK_PREFIX_GIFT = "api-relation-gift-"; + private static final String REMARK_PREFIX_BLIND_BOX = "api-relation-blindbox-"; + private static final String SUFFIX_SNAPSHOT_FIRST = "snapshot-first-"; + private static final String SUFFIX_SNAPSHOT_COMPLETED = "snapshot-completed-"; + private static final String SUFFIX_SNAPSHOT_CONTINUED = "snapshot-continued-"; + private static final String SUFFIX_SNAPSHOT_LATER = "snapshot-later-"; + private static final String SUFFIX_HISTORY_RANDOM = "history-random-"; + private static final String SUFFIX_DETAIL_FIRST = "detail-first-"; + private static final String SUFFIX_REWARD_HISTORY = "reward-history-"; + private static final String SUFFIX_REWARD_CONTINUED = "reward-continued-"; + private static final String SUFFIX_GIFT_HISTORY = "gift-history-"; + private static final String SUFFIX_GIFT_CONTINUED = "gift-continued-"; + private static final String SUFFIX_BLINDBOX_HISTORY = "blindbox-history-"; + private static final String SUFFIX_BLINDBOX_CONTINUED = "blindbox-continued-"; + private static final String SUFFIX_LIST_HISTORY = "list-history-"; + private static final String SUFFIX_LIST_CONTINUED = "list-continued-"; + private static final String SUFFIX_CUSTOM_DETAIL_FIRST = "custom-detail-first-"; + private static final String SUFFIX_CUSTOM_LIST_FIRST = "custom-list-first-"; + private static final String SUFFIX_OTHER_CLERK_HISTORY = "other-clerk-history-"; + private static final String SUFFIX_OTHER_CLERK_FIRST = "other-clerk-first-"; + private static final String SUFFIX_OTHER_CUSTOMER_HISTORY = "other-customer-history-"; + private static final String SUFFIX_OTHER_CUSTOMER_FIRST = "other-customer-first-"; + private static final String COMPLETE_REMARK = "apitest-complete"; + private static final int SINGLE_QUANTITY = 1; + private static final int SINGLE_GIFT_QUANTITY = 1; + private static final int DEFAULT_PAGE_NUM = 1; + private static final int DEFAULT_PAGE_SIZE = 10; + private static final BigDecimal HIGH_BALANCE = new BigDecimal("1000.00"); + private static final BigDecimal REWARD_AMOUNT = new BigDecimal("18.00"); + private static final BigDecimal BLIND_BOX_PRICE = new BigDecimal("19.00"); + private static final String LIST_RECORDS_FIELD = "records"; + private static final int ID_SUFFIX_LENGTH = 6; + private static final String FIRST_FLAG = OrderConstant.YesNoFlag.YES.getCode(); + private static final String CONTINUED_FLAG = OrderConstant.YesNoFlag.NO.getCode(); + private static final String CUSTOMER_OPEN_ID_PREFIX = "openid-customer-apitest-"; + private static final String CLERK_OPEN_ID_PREFIX = "openid-clerk-apitest-"; + private static final String USER_STATE_ACTIVE = "1"; + private static final String CLERK_STATE_ACTIVE = "1"; + private static final String CLERK_RANDOM_ORDER_ENABLED = "1"; + private static final String CLERK_DISPLAY_ENABLED = "1"; + private static final String CLERK_LISTING_ENABLED = "1"; + private static final String CLERK_ONLINE_ENABLED = "1"; + private static final int CUSTOM_SEX_FEMALE = 2; + private static final int GIFT_POOL_STATUS_ACTIVE = 1; + private static final int GIFT_POOL_WEIGHT = 100; + + @MockBean + private NotificationSender notificationSender; + + @MockBean + private WxCustomMpService wxCustomMpService; + + @MockBean + private OverdueOrderHandlerTask overdueOrderHandlerTask; + + @Autowired + private PlayClerkCustomerRelationMapper clerkCustomerRelationMapper; + + @org.springframework.beans.factory.annotation.Autowired + private BlindBoxConfigService blindBoxConfigService; + + @org.springframework.beans.factory.annotation.Autowired + private BlindBoxPoolMapper blindBoxPoolMapper; + + @org.springframework.beans.factory.annotation.Autowired + private IPlayGiftInfoService giftInfoService; + + private final ObjectMapper mapper = new ObjectMapper(); + private String customerToken; + private String clerkToken; + + @BeforeEach + void setUp() { + ensureTenantContext(); + setCustomerBalance(HIGH_BALANCE); + customerToken = wxTokenService.createWxUserToken(ApiTestDataSeeder.DEFAULT_CUSTOMER_ID); + customUserInfoService.updateTokenById(ApiTestDataSeeder.DEFAULT_CUSTOMER_ID, customerToken); + clerkToken = wxTokenService.createWxUserToken(ApiTestDataSeeder.DEFAULT_CLERK_ID); + clerkUserInfoService.updateTokenById(ApiTestDataSeeder.DEFAULT_CLERK_ID, clerkToken); + doNothing().when(notificationSender).sendOrderMessageAsync(Mockito.any()); + doNothing().when(notificationSender).sendOrderFinishMessageAsync(Mockito.any()); + doNothing().when(wxCustomMpService).sendCreateOrderMessageBatch( + Mockito.anyList(), + Mockito.anyString(), + Mockito.anyString(), + Mockito.anyString(), + Mockito.anyString(), + Mockito.anyString(), + Mockito.anyString()); + doNothing().when(overdueOrderHandlerTask).enqueue(Mockito.anyString()); + clearOrdersForDefaultCustomer(); + } + + @AfterEach + void tearDown() { + CustomSecurityContextHolder.remove(); + } + + @Test + void specifiedOrderWithoutCompletedHistoryIsFirst() throws Exception { + String orderId = createSpecifiedOrder(REMARK_PREFIX_SPECIFIED + IdUtils.getUuid()); + OrderRelationType relationType = fetchOrderRelationType(orderId, OrderConstant.PlaceType.SPECIFIED); + assertThat(relationType).isEqualTo(OrderRelationType.FIRST); + } + + @Test + void specifiedOrderWithOnlyUncompletedHistoryIsFirst() throws Exception { + String firstOrderId = createSpecifiedOrder(REMARK_PREFIX_SPECIFIED + "pending-" + IdUtils.getUuid()); + acceptOrder(firstOrderId); + String orderId = createSpecifiedOrder(REMARK_PREFIX_SPECIFIED + "neutral-" + IdUtils.getUuid()); + acceptOrder(orderId); + OrderRelationType relationType = fetchOrderRelationType(orderId, OrderConstant.PlaceType.SPECIFIED); + assertThat(relationType).isEqualTo(OrderRelationType.FIRST); + } + + @Test + void specifiedOrderWithOnlyPendingHistoryIsFirst() throws Exception { + createSpecifiedOrder(REMARK_PREFIX_SPECIFIED + "pending-only-" + IdUtils.getUuid()); + String orderId = createSpecifiedOrder(REMARK_PREFIX_SPECIFIED + "neutral-pending-" + IdUtils.getUuid()); + acceptOrder(orderId); + OrderRelationType relationType = fetchOrderRelationType(orderId, OrderConstant.PlaceType.SPECIFIED); + assertThat(relationType).isEqualTo(OrderRelationType.FIRST); + } + + @Test + void specifiedOrderWithInProgressHistoryIsFirst() throws Exception { + String inProgressId = createSpecifiedOrder(REMARK_PREFIX_SPECIFIED + "progress-" + IdUtils.getUuid()); + acceptOrder(inProgressId); + startOrder(inProgressId); + String orderId = createSpecifiedOrder(REMARK_PREFIX_SPECIFIED + "neutral-progress-" + IdUtils.getUuid()); + acceptOrder(orderId); + OrderRelationType relationType = fetchOrderRelationType(orderId, OrderConstant.PlaceType.SPECIFIED); + assertThat(relationType).isEqualTo(OrderRelationType.FIRST); + } + + @Test + void specifiedOrderWithCompletedHistoryIsContinued() throws Exception { + String completedOrderId = createSpecifiedOrder(REMARK_PREFIX_SPECIFIED + "completed-" + IdUtils.getUuid()); + acceptOrder(completedOrderId); + startOrder(completedOrderId); + completeOrder(completedOrderId); + String orderId = createSpecifiedOrder(REMARK_PREFIX_SPECIFIED + "continued-" + IdUtils.getUuid()); + acceptOrder(orderId); + OrderRelationType relationType = fetchOrderRelationType(orderId, OrderConstant.PlaceType.SPECIFIED); + assertThat(relationType).isEqualTo(OrderRelationType.CONTINUED); + } + + @Test + void randomOrderWithoutCompletedHistoryIsFirst() throws Exception { + String orderId = createRandomOrder(REMARK_PREFIX_RANDOM + IdUtils.getUuid()); + acceptOrder(orderId); + OrderRelationType relationType = fetchOrderRelationType(orderId, OrderConstant.PlaceType.RANDOM); + assertThat(relationType).isEqualTo(OrderRelationType.FIRST); + } + + @Test + void randomOrderWithOnlyUncompletedHistoryIsFirst() throws Exception { + String pendingOrderId = createRandomOrder(REMARK_PREFIX_RANDOM + "pending-" + IdUtils.getUuid()); + acceptOrder(pendingOrderId); + String orderId = createRandomOrder(REMARK_PREFIX_RANDOM + "neutral-" + IdUtils.getUuid()); + acceptOrder(orderId); + OrderRelationType relationType = fetchOrderRelationType(orderId, OrderConstant.PlaceType.RANDOM); + assertThat(relationType).isEqualTo(OrderRelationType.FIRST); + } + + @Test + void randomOrderWithCompletedHistoryIsFirst() throws Exception { + String completedOrderId = createRandomOrder(REMARK_PREFIX_RANDOM + "completed-" + IdUtils.getUuid()); + acceptOrder(completedOrderId); + startOrder(completedOrderId); + completeOrder(completedOrderId); + String orderId = createRandomOrder(REMARK_PREFIX_RANDOM + "continued-" + IdUtils.getUuid()); + acceptOrder(orderId); + OrderRelationType relationType = fetchOrderRelationType(orderId, OrderConstant.PlaceType.RANDOM); + assertThat(relationType).isEqualTo(OrderRelationType.FIRST); + } + + @Test + void rewardOrderWithoutCompletedHistoryIsFirst() throws Exception { + String orderId = createRewardOrder(REMARK_PREFIX_REWARD + IdUtils.getUuid()); + OrderRelationType relationType = fetchOrderRelationType(orderId, OrderConstant.PlaceType.REWARD); + assertThat(relationType).isEqualTo(OrderRelationType.FIRST); + } + + @Test + void rewardOrderWithOnlyUncompletedHistoryIsFirst() throws Exception { + createSpecifiedOrder(REMARK_PREFIX_SPECIFIED + "reward-neutral-" + IdUtils.getUuid()); + String orderId = createRewardOrder(REMARK_PREFIX_REWARD + "neutral-" + IdUtils.getUuid()); + OrderRelationType relationType = fetchOrderRelationType(orderId, OrderConstant.PlaceType.REWARD); + assertThat(relationType).isEqualTo(OrderRelationType.FIRST); + } + + @Test + void rewardOrderWithCompletedHistoryIsContinued() throws Exception { + createRewardOrder(REMARK_PREFIX_REWARD + "completed-" + IdUtils.getUuid()); + String orderId = createRewardOrder(REMARK_PREFIX_REWARD + "continued-" + IdUtils.getUuid()); + OrderRelationType relationType = fetchOrderRelationType(orderId, OrderConstant.PlaceType.REWARD); + assertThat(relationType).isEqualTo(OrderRelationType.CONTINUED); + } + + @Test + void giftOrderWithoutCompletedHistoryIsFirst() throws Exception { + String orderId = createGiftOrder(REMARK_PREFIX_GIFT + IdUtils.getUuid()); + OrderRelationType relationType = fetchOrderRelationType(orderId, OrderConstant.PlaceType.REWARD); + assertThat(relationType).isEqualTo(OrderRelationType.FIRST); + } + + @Test + void giftOrderWithOnlyUncompletedHistoryIsFirst() throws Exception { + createSpecifiedOrder(REMARK_PREFIX_SPECIFIED + "gift-neutral-" + IdUtils.getUuid()); + String orderId = createGiftOrder(REMARK_PREFIX_GIFT + "neutral-" + IdUtils.getUuid()); + OrderRelationType relationType = fetchOrderRelationType(orderId, OrderConstant.PlaceType.REWARD); + assertThat(relationType).isEqualTo(OrderRelationType.FIRST); + } + + @Test + void giftOrderWithCompletedHistoryIsContinued() throws Exception { + createGiftOrder(REMARK_PREFIX_GIFT + "completed-" + IdUtils.getUuid()); + String orderId = createGiftOrder(REMARK_PREFIX_GIFT + "continued-" + IdUtils.getUuid()); + OrderRelationType relationType = fetchOrderRelationType(orderId, OrderConstant.PlaceType.REWARD); + assertThat(relationType).isEqualTo(OrderRelationType.CONTINUED); + } + + @Test + void blindBoxOrderWithoutCompletedHistoryIsFirst() throws Exception { + String orderId = createBlindBoxOrder(REMARK_PREFIX_BLIND_BOX + IdUtils.getUuid()); + OrderRelationType relationType = fetchOrderRelationType( + orderId, + OrderConstant.PlaceType.REWARD, + OrderConstant.OrderType.BLIND_BOX_PURCHASE); + assertThat(relationType).isEqualTo(OrderRelationType.FIRST); + } + + @Test + void blindBoxOrderWithOnlyUncompletedHistoryIsFirst() throws Exception { + createSpecifiedOrder(REMARK_PREFIX_SPECIFIED + "blindbox-neutral-" + IdUtils.getUuid()); + String orderId = createBlindBoxOrder(REMARK_PREFIX_BLIND_BOX + "neutral-" + IdUtils.getUuid()); + OrderRelationType relationType = fetchOrderRelationType( + orderId, + OrderConstant.PlaceType.REWARD, + OrderConstant.OrderType.BLIND_BOX_PURCHASE); + assertThat(relationType).isEqualTo(OrderRelationType.FIRST); + } + + @Test + void blindBoxOrderWithCompletedHistoryIsContinued() throws Exception { + createBlindBoxOrder(REMARK_PREFIX_BLIND_BOX + "completed-" + IdUtils.getUuid()); + String orderId = createBlindBoxOrder(REMARK_PREFIX_BLIND_BOX + "continued-" + IdUtils.getUuid()); + OrderRelationType relationType = fetchOrderRelationType( + orderId, + OrderConstant.PlaceType.REWARD, + OrderConstant.OrderType.BLIND_BOX_PURCHASE); + assertThat(relationType).isEqualTo(OrderRelationType.CONTINUED); + } + + @Test + void differentClerkIsFirstOrder() throws Exception { + String clerkId = "clerk-apitest-extra-" + IdUtils.getUuid().substring(0, ID_SUFFIX_LENGTH); + String extraClerkToken = null; + try { + extraClerkToken = createClerk(clerkId); + String orderId = createSpecifiedOrderWithClerk(REMARK_PREFIX_SPECIFIED + SUFFIX_OTHER_CLERK_FIRST + IdUtils.getUuid(), + clerkId); + acceptOrder(orderId, extraClerkToken); + OrderRelationType relationType = + fetchOrderRelationType(orderId, OrderConstant.PlaceType.SPECIFIED, extraClerkToken); + assertThat(relationType).isEqualTo(OrderRelationType.FIRST); + } finally { + removeClerk(clerkId); + } + } + + @Test + void differentCustomerIsFirstOrder() throws Exception { + String customerId = "customer-apitest-extra-" + IdUtils.getUuid().substring(0, ID_SUFFIX_LENGTH); + String extraCustomerToken = null; + try { + extraCustomerToken = createCustomer(customerId); + String orderId = createSpecifiedOrderWithCustomer( + REMARK_PREFIX_SPECIFIED + SUFFIX_OTHER_CUSTOMER_FIRST + IdUtils.getUuid(), + extraCustomerToken); + acceptOrder(orderId); + OrderRelationType relationType = fetchOrderRelationType(orderId, OrderConstant.PlaceType.SPECIFIED); + assertThat(relationType).isEqualTo(OrderRelationType.FIRST); + } finally { + removeCustomer(customerId); + } + } + + /** + * 验证首单快照不会因为后续续单完成而被修改。 + */ + @Test + void firstOrderSnapshotRemainsFirstAfterLaterCompletion() throws Exception { + String firstOrderId = createSpecifiedOrder(REMARK_PREFIX_SPECIFIED + SUFFIX_SNAPSHOT_FIRST + IdUtils.getUuid()); + acceptOrder(firstOrderId); + OrderRelationType initialRelation = fetchOrderRelationType(firstOrderId, OrderConstant.PlaceType.SPECIFIED); + + String completedOrderId = createSpecifiedOrder(REMARK_PREFIX_SPECIFIED + SUFFIX_SNAPSHOT_COMPLETED + IdUtils.getUuid()); + acceptOrder(completedOrderId); + startOrder(completedOrderId); + completeOrder(completedOrderId); + + OrderRelationType relationAfterCompletion = fetchOrderRelationType(firstOrderId, OrderConstant.PlaceType.SPECIFIED); + assertThat(initialRelation).isEqualTo(OrderRelationType.FIRST); + assertThat(relationAfterCompletion).isEqualTo(OrderRelationType.FIRST); + } + + /** + * 验证续单快照不会因为后续订单完成而变化。 + */ + @Test + void continuedOrderSnapshotRemainsContinuedAfterLaterCompletion() throws Exception { + String completedOrderId = createSpecifiedOrder(REMARK_PREFIX_SPECIFIED + SUFFIX_SNAPSHOT_COMPLETED + IdUtils.getUuid()); + acceptOrder(completedOrderId); + startOrder(completedOrderId); + completeOrder(completedOrderId); + + String continuedOrderId = createSpecifiedOrder(REMARK_PREFIX_SPECIFIED + SUFFIX_SNAPSHOT_CONTINUED + IdUtils.getUuid()); + acceptOrder(continuedOrderId); + OrderRelationType continuedRelation = fetchOrderRelationType(continuedOrderId, OrderConstant.PlaceType.SPECIFIED); + + String laterOrderId = createSpecifiedOrder(REMARK_PREFIX_SPECIFIED + SUFFIX_SNAPSHOT_LATER + IdUtils.getUuid()); + acceptOrder(laterOrderId); + startOrder(laterOrderId); + completeOrder(laterOrderId); + + OrderRelationType relationAfterLater = fetchOrderRelationType(continuedOrderId, OrderConstant.PlaceType.SPECIFIED); + assertThat(continuedRelation).isEqualTo(OrderRelationType.CONTINUED); + assertThat(relationAfterLater).isEqualTo(OrderRelationType.CONTINUED); + } + + /** + * 验证完成过订单的老客下随机单仍强制首单。 + */ + @Test + void randomOrderIsFirstEvenAfterCompletedSpecifiedHistory() throws Exception { + String completedOrderId = createSpecifiedOrder(REMARK_PREFIX_SPECIFIED + SUFFIX_HISTORY_RANDOM + IdUtils.getUuid()); + acceptOrder(completedOrderId); + startOrder(completedOrderId); + completeOrder(completedOrderId); + + String randomOrderId = createRandomOrder(REMARK_PREFIX_RANDOM + SUFFIX_HISTORY_RANDOM + IdUtils.getUuid()); + acceptOrder(randomOrderId); + OrderRelationType relationType = fetchOrderRelationType(randomOrderId, OrderConstant.PlaceType.RANDOM); + assertThat(relationType).isEqualTo(OrderRelationType.FIRST); + } + + /** + * 验证随机单详情页始终展示首单关系。 + */ + @Test + void randomOrderDetailShowsFirstRelation() throws Exception { + String completedOrderId = createSpecifiedOrder(REMARK_PREFIX_SPECIFIED + SUFFIX_HISTORY_RANDOM + IdUtils.getUuid()); + acceptOrder(completedOrderId); + startOrder(completedOrderId); + completeOrder(completedOrderId); + + String randomOrderId = createRandomOrder(REMARK_PREFIX_RANDOM + SUFFIX_DETAIL_FIRST + IdUtils.getUuid()); + acceptOrder(randomOrderId); + OrderRelationType relationType = fetchRandomOrderDetailRelationType(randomOrderId); + assertThat(relationType).isEqualTo(OrderRelationType.FIRST); + } + + /** + * 验证完成指定单后,打赏单关系计为续单。 + */ + @Test + void rewardOrderContinuedAfterCompletedSpecifiedHistory() throws Exception { + String completedOrderId = createSpecifiedOrder(REMARK_PREFIX_SPECIFIED + SUFFIX_REWARD_HISTORY + IdUtils.getUuid()); + acceptOrder(completedOrderId); + startOrder(completedOrderId); + completeOrder(completedOrderId); + + String rewardOrderId = createRewardOrder(REMARK_PREFIX_REWARD + SUFFIX_REWARD_CONTINUED + IdUtils.getUuid()); + OrderRelationType relationType = fetchClerkOrderDetailRelationType(rewardOrderId); + assertThat(relationType).isEqualTo(OrderRelationType.CONTINUED); + } + + /** + * 验证完成指定单后,礼物单关系计为续单。 + */ + @Test + void giftOrderContinuedAfterCompletedSpecifiedHistory() throws Exception { + String completedOrderId = createSpecifiedOrder(REMARK_PREFIX_SPECIFIED + SUFFIX_GIFT_HISTORY + IdUtils.getUuid()); + acceptOrder(completedOrderId); + startOrder(completedOrderId); + completeOrder(completedOrderId); + + String giftOrderId = createGiftOrder(REMARK_PREFIX_GIFT + SUFFIX_GIFT_CONTINUED + IdUtils.getUuid()); + OrderRelationType relationType = fetchClerkOrderDetailRelationType(giftOrderId); + assertThat(relationType).isEqualTo(OrderRelationType.CONTINUED); + } + + /** + * 验证完成指定单后,盲盒单关系计为续单。 + */ + @Test + void blindBoxOrderContinuedAfterCompletedSpecifiedHistory() throws Exception { + String completedOrderId = createSpecifiedOrder(REMARK_PREFIX_SPECIFIED + SUFFIX_BLINDBOX_HISTORY + IdUtils.getUuid()); + acceptOrder(completedOrderId); + startOrder(completedOrderId); + completeOrder(completedOrderId); + + String blindBoxOrderId = createBlindBoxOrder(REMARK_PREFIX_BLIND_BOX + SUFFIX_BLINDBOX_CONTINUED + IdUtils.getUuid()); + OrderRelationType relationType = fetchClerkOrderDetailRelationType(blindBoxOrderId); + assertThat(relationType).isEqualTo(OrderRelationType.CONTINUED); + } + + /** + * 验证客户列表返回续单关系。 + */ + @Test + void customOrderListShowsContinuedForSpecifiedOrder() throws Exception { + String completedOrderId = createSpecifiedOrder(REMARK_PREFIX_SPECIFIED + SUFFIX_LIST_HISTORY + IdUtils.getUuid()); + acceptOrder(completedOrderId); + startOrder(completedOrderId); + completeOrder(completedOrderId); + + String continuedOrderId = createSpecifiedOrder(REMARK_PREFIX_SPECIFIED + SUFFIX_LIST_CONTINUED + IdUtils.getUuid()); + acceptOrder(continuedOrderId); + OrderRelationType relationType = fetchCustomOrderListRelationType(continuedOrderId); + assertThat(relationType).isEqualTo(OrderRelationType.CONTINUED); + } + + /** + * 验证客户详情返回随机单首单关系。 + */ + @Test + void customOrderDetailShowsFirstForRandomOrder() throws Exception { + String orderId = createRandomOrder(REMARK_PREFIX_RANDOM + "custom-detail-" + IdUtils.getUuid()); + acceptOrder(orderId); + OrderRelationType relationType = fetchCustomOrderDetailRelationType(orderId); + assertThat(relationType).isEqualTo(OrderRelationType.FIRST); + } + + /** + * 验证不同店员的历史完成不会影响新店员关系判定。 + */ + @Test + void completedHistoryWithOtherClerkDoesNotAffectNewClerk() throws Exception { + String completedOrderId = createSpecifiedOrder(REMARK_PREFIX_SPECIFIED + SUFFIX_OTHER_CLERK_HISTORY + IdUtils.getUuid()); + acceptOrder(completedOrderId); + startOrder(completedOrderId); + completeOrder(completedOrderId); + + String otherClerkId = "clerk-apitest-other-" + IdUtils.getUuid().substring(0, ID_SUFFIX_LENGTH); + String otherClerkToken = null; + try { + otherClerkToken = createClerk(otherClerkId); + String orderId = createSpecifiedOrderWithClerk( + REMARK_PREFIX_SPECIFIED + SUFFIX_OTHER_CLERK_FIRST + IdUtils.getUuid(), + otherClerkId); + acceptOrder(orderId, otherClerkToken); + OrderRelationType relationType = fetchOrderRelationType(orderId, OrderConstant.PlaceType.SPECIFIED, otherClerkToken); + assertThat(relationType).isEqualTo(OrderRelationType.FIRST); + } finally { + removeClerk(otherClerkId); + } + } + + /** + * 验证不同顾客的历史完成不会影响新顾客关系判定。 + */ + @Test + void completedHistoryWithOtherCustomerDoesNotAffectNewCustomer() throws Exception { + String completedOrderId = createSpecifiedOrder(REMARK_PREFIX_SPECIFIED + SUFFIX_OTHER_CUSTOMER_HISTORY + IdUtils.getUuid()); + acceptOrder(completedOrderId); + startOrder(completedOrderId); + completeOrder(completedOrderId); + + String customerId = "customer-apitest-other-" + IdUtils.getUuid().substring(0, ID_SUFFIX_LENGTH); + String otherCustomerToken = null; + try { + otherCustomerToken = createCustomer(customerId); + String orderId = createSpecifiedOrderWithCustomer( + REMARK_PREFIX_SPECIFIED + SUFFIX_OTHER_CUSTOMER_FIRST + IdUtils.getUuid(), + otherCustomerToken); + acceptOrder(orderId); + OrderRelationType relationType = fetchOrderRelationType(orderId, OrderConstant.PlaceType.SPECIFIED); + assertThat(relationType).isEqualTo(OrderRelationType.FIRST); + } finally { + removeCustomer(customerId); + } + } + + private void clearOrdersForDefaultCustomer() { + ensureTenantContext(); + playOrderInfoService.lambdaUpdate() + .eq(PlayOrderInfoEntity::getPurchaserBy, ApiTestDataSeeder.DEFAULT_CUSTOMER_ID) + .remove(); + clerkCustomerRelationMapper.hardDeleteByTenant(ApiTestDataSeeder.DEFAULT_TENANT_ID); + clerkCustomerRelationMapper.update( + null, + Wrappers.lambdaUpdate(PlayClerkCustomerRelationEntity.class) + .set(PlayClerkCustomerRelationEntity::getHasCompleted, OrderConstant.YesNoFlag.NO.getCode()) + .set(PlayClerkCustomerRelationEntity::getFirstCompletedOrderId, null) + .set(PlayClerkCustomerRelationEntity::getFirstCompletedTime, null) + .set(PlayClerkCustomerRelationEntity::getDeleted, Boolean.FALSE) + .eq(PlayClerkCustomerRelationEntity::getTenantId, ApiTestDataSeeder.DEFAULT_TENANT_ID)); + } + + private String createSpecifiedOrder(String remark) throws Exception { + ObjectNode payload = mapper.createObjectNode(); + payload.put("clerkId", ApiTestDataSeeder.DEFAULT_CLERK_ID); + payload.put("commodityId", ApiTestDataSeeder.DEFAULT_COMMODITY_ID); + payload.put("commodityQuantity", SINGLE_QUANTITY); + payload.put("weiChatCode", CUSTOMER_WECHAT_CODE); + payload.put("remark", remark); + payload.putArray("couponIds"); + + mockMvc.perform(post("/wx/custom/order/commodity") + .header(USER_HEADER, DEFAULT_USER) + .header(TENANT_HEADER, DEFAULT_TENANT) + .header(Constants.CUSTOM_USER_LOGIN_TOKEN, Constants.TOKEN_PREFIX + customerToken) + .contentType(MediaType.APPLICATION_JSON) + .content(payload.toString())) + .andExpect(status().isOk()) + .andExpect(jsonPath("$.code").value(200)); + + ensureTenantContext(); + PlayOrderInfoEntity order = playOrderInfoService.lambdaQuery() + .eq(PlayOrderInfoEntity::getPurchaserBy, ApiTestDataSeeder.DEFAULT_CUSTOMER_ID) + .eq(PlayOrderInfoEntity::getRemark, remark) + .orderByDesc(PlayOrderInfoEntity::getCreatedTime) + .last("limit 1") + .one(); + assertThat(order).isNotNull(); + return order.getId(); + } + + private String createRandomOrder(String remark) throws Exception { + ObjectNode payload = mapper.createObjectNode(); + payload.put("sex", OrderConstant.Gender.FEMALE.getCode()); + payload.put("levelId", ApiTestDataSeeder.DEFAULT_CLERK_LEVEL_ID); + payload.put("commodityId", ApiTestDataSeeder.DEFAULT_COMMODITY_ID); + payload.put("commodityQuantity", SINGLE_QUANTITY); + payload.put("weiChatCode", CUSTOMER_WECHAT_CODE); + payload.put("excludeHistory", OrderConstant.EXCLUDE_HISTORY_NO); + payload.put("remark", remark); + payload.putArray("couponIds"); + + mockMvc.perform(post("/wx/custom/order/random") + .header(USER_HEADER, DEFAULT_USER) + .header(TENANT_HEADER, DEFAULT_TENANT) + .header(Constants.CUSTOM_USER_LOGIN_TOKEN, Constants.TOKEN_PREFIX + customerToken) + .contentType(MediaType.APPLICATION_JSON) + .content(payload.toString())) + .andExpect(status().isOk()) + .andExpect(jsonPath("$.code").value(200)); + + ensureTenantContext(); + PlayOrderInfoEntity order = playOrderInfoService.lambdaQuery() + .eq(PlayOrderInfoEntity::getPurchaserBy, ApiTestDataSeeder.DEFAULT_CUSTOMER_ID) + .eq(PlayOrderInfoEntity::getRemark, remark) + .eq(PlayOrderInfoEntity::getPlaceType, OrderConstant.PlaceType.RANDOM.getCode()) + .orderByDesc(PlayOrderInfoEntity::getCreatedTime) + .last("limit 1") + .one(); + assertThat(order).isNotNull(); + return order.getId(); + } + + private String createRewardOrder(String remark) throws Exception { + ObjectNode payload = mapper.createObjectNode(); + payload.put("clerkId", ApiTestDataSeeder.DEFAULT_CLERK_ID); + payload.put("money", REWARD_AMOUNT.toPlainString()); + payload.put("weiChatCode", CUSTOMER_WECHAT_CODE); + payload.put("remark", remark); + + mockMvc.perform(post("/wx/custom/order/reward") + .header(USER_HEADER, DEFAULT_USER) + .header(TENANT_HEADER, DEFAULT_TENANT) + .header(Constants.CUSTOM_USER_LOGIN_TOKEN, Constants.TOKEN_PREFIX + customerToken) + .contentType(MediaType.APPLICATION_JSON) + .content(payload.toString())) + .andExpect(status().isOk()) + .andExpect(jsonPath("$.code").value(200)); + + ensureTenantContext(); + PlayOrderInfoEntity order = playOrderInfoService.lambdaQuery() + .eq(PlayOrderInfoEntity::getPurchaserBy, ApiTestDataSeeder.DEFAULT_CUSTOMER_ID) + .eq(PlayOrderInfoEntity::getRemark, remark) + .eq(PlayOrderInfoEntity::getPlaceType, OrderConstant.PlaceType.REWARD.getCode()) + .orderByDesc(PlayOrderInfoEntity::getCreatedTime) + .last("limit 1") + .one(); + assertThat(order).isNotNull(); + return order.getId(); + } + + private String createGiftOrder(String remark) throws Exception { + ObjectNode payload = mapper.createObjectNode(); + payload.put("clerkId", ApiTestDataSeeder.DEFAULT_CLERK_ID); + payload.put("giftId", ApiTestDataSeeder.DEFAULT_GIFT_ID); + payload.put("giftQuantity", SINGLE_GIFT_QUANTITY); + payload.put("weiChatCode", CUSTOMER_WECHAT_CODE); + payload.put("remark", remark); + + MvcResult result = mockMvc.perform(post("/wx/custom/order/gift") + .header(USER_HEADER, DEFAULT_USER) + .header(TENANT_HEADER, DEFAULT_TENANT) + .header(Constants.CUSTOM_USER_LOGIN_TOKEN, Constants.TOKEN_PREFIX + customerToken) + .contentType(MediaType.APPLICATION_JSON) + .content(payload.toString())) + .andExpect(status().isOk()) + .andExpect(jsonPath("$.code").value(200)) + .andReturn(); + + JsonNode data = mapper.readTree(result.getResponse().getContentAsString()).path("data"); + String orderId = data.asText(); + assertThat(orderId).isNotBlank(); + return orderId; + } + + private String createBlindBoxOrder(String remark) throws Exception { + String configId = "blind-" + IdUtils.getUuid().substring(0, ID_SUFFIX_LENGTH); + Long poolId = null; + try { + ensureTenantContext(); + PlayGiftInfoEntity gift = giftInfoService.getById(ApiTestDataSeeder.DEFAULT_GIFT_ID); + BlindBoxConfigEntity config = new BlindBoxConfigEntity(); + config.setId(configId); + config.setTenantId(ApiTestDataSeeder.DEFAULT_TENANT_ID); + config.setName("API盲盒-" + IdUtils.getUuid().substring(0, ID_SUFFIX_LENGTH)); + config.setPrice(BLIND_BOX_PRICE); + config.setStatus(GIFT_POOL_STATUS_ACTIVE); + blindBoxConfigService.save(config); + + BlindBoxPoolEntity entry = new BlindBoxPoolEntity(); + entry.setTenantId(ApiTestDataSeeder.DEFAULT_TENANT_ID); + entry.setBlindBoxId(configId); + entry.setRewardGiftId(ApiTestDataSeeder.DEFAULT_GIFT_ID); + entry.setRewardPrice(gift.getPrice()); + entry.setWeight(GIFT_POOL_WEIGHT); + entry.setRemainingStock(1); + entry.setStatus(GIFT_POOL_STATUS_ACTIVE); + entry.setValidFrom(LocalDateTime.now().minusDays(1)); + entry.setValidTo(LocalDateTime.now().plusDays(1)); + blindBoxPoolMapper.insert(entry); + poolId = entry.getId(); + + ObjectNode payload = mapper.createObjectNode(); + payload.put("blindBoxId", configId); + payload.put("clerkId", ApiTestDataSeeder.DEFAULT_CLERK_ID); + payload.put("weiChatCode", CUSTOMER_WECHAT_CODE); + payload.put("remark", remark); + + MvcResult result = mockMvc.perform(post("/wx/blind-box/order/purchase") + .header(USER_HEADER, DEFAULT_USER) + .header(TENANT_HEADER, DEFAULT_TENANT) + .header(Constants.CUSTOM_USER_LOGIN_TOKEN, Constants.TOKEN_PREFIX + customerToken) + .contentType(MediaType.APPLICATION_JSON) + .content(payload.toString())) + .andExpect(status().isOk()) + .andExpect(jsonPath("$.code").value(200)) + .andReturn(); + + JsonNode data = mapper.readTree(result.getResponse().getContentAsString()).path("data"); + String orderId = data.path("orderId").asText(); + assertThat(orderId).isNotBlank(); + return orderId; + } finally { + ensureTenantContext(); + if (Objects.nonNull(poolId)) { + blindBoxPoolMapper.deleteById(poolId); + } + blindBoxConfigService.removeById(configId); + } + } + + private String createSpecifiedOrderWithClerk(String remark, String clerkId) throws Exception { + ObjectNode payload = mapper.createObjectNode(); + payload.put("clerkId", clerkId); + payload.put("commodityId", ApiTestDataSeeder.DEFAULT_COMMODITY_ID); + payload.put("commodityQuantity", SINGLE_QUANTITY); + payload.put("weiChatCode", CUSTOMER_WECHAT_CODE); + payload.put("remark", remark); + payload.putArray("couponIds"); + + mockMvc.perform(post("/wx/custom/order/commodity") + .header(USER_HEADER, DEFAULT_USER) + .header(TENANT_HEADER, DEFAULT_TENANT) + .header(Constants.CUSTOM_USER_LOGIN_TOKEN, Constants.TOKEN_PREFIX + customerToken) + .contentType(MediaType.APPLICATION_JSON) + .content(payload.toString())) + .andExpect(status().isOk()) + .andExpect(jsonPath("$.code").value(200)); + + ensureTenantContext(); + PlayOrderInfoEntity order = playOrderInfoService.lambdaQuery() + .eq(PlayOrderInfoEntity::getPurchaserBy, ApiTestDataSeeder.DEFAULT_CUSTOMER_ID) + .eq(PlayOrderInfoEntity::getRemark, remark) + .orderByDesc(PlayOrderInfoEntity::getCreatedTime) + .last("limit 1") + .one(); + assertThat(order).isNotNull(); + return order.getId(); + } + + private String createSpecifiedOrderWithCustomer(String remark, String customToken) throws Exception { + ObjectNode payload = mapper.createObjectNode(); + payload.put("clerkId", ApiTestDataSeeder.DEFAULT_CLERK_ID); + payload.put("commodityId", ApiTestDataSeeder.DEFAULT_COMMODITY_ID); + payload.put("commodityQuantity", SINGLE_QUANTITY); + payload.put("weiChatCode", CUSTOMER_WECHAT_CODE); + payload.put("remark", remark); + payload.putArray("couponIds"); + + mockMvc.perform(post("/wx/custom/order/commodity") + .header(USER_HEADER, DEFAULT_USER) + .header(TENANT_HEADER, DEFAULT_TENANT) + .header(Constants.CUSTOM_USER_LOGIN_TOKEN, Constants.TOKEN_PREFIX + customToken) + .contentType(MediaType.APPLICATION_JSON) + .content(payload.toString())) + .andExpect(status().isOk()) + .andExpect(jsonPath("$.code").value(200)); + + ensureTenantContext(); + PlayOrderInfoEntity order = playOrderInfoService.lambdaQuery() + .eq(PlayOrderInfoEntity::getRemark, remark) + .orderByDesc(PlayOrderInfoEntity::getCreatedTime) + .last("limit 1") + .one(); + assertThat(order).isNotNull(); + return order.getId(); + } + + private String createClerk(String clerkId) { + ensureTenantContext(); + PlayClerkUserInfoEntity entity = new PlayClerkUserInfoEntity(); + entity.setId(clerkId); + entity.setTenantId(ApiTestDataSeeder.DEFAULT_TENANT_ID); + entity.setSysUserId(ApiTestDataSeeder.DEFAULT_ADMIN_USER_ID); + entity.setOpenid(CLERK_OPEN_ID_PREFIX + clerkId); + entity.setNickname("测试店员-" + clerkId); + entity.setGroupId(ApiTestDataSeeder.DEFAULT_GROUP_ID); + entity.setLevelId(ApiTestDataSeeder.DEFAULT_CLERK_LEVEL_ID); + entity.setFixingLevel(USER_STATE_ACTIVE); + entity.setSex(String.valueOf(CUSTOM_SEX_FEMALE)); + entity.setPhone("1390000" + clerkId.substring(0, 4)); + entity.setWeiChatCode("apitest-clerk-" + clerkId); + entity.setAvatar("https://example.com/avatar.png"); + entity.setAccountBalance(BigDecimal.ZERO); + entity.setOnboardingState(USER_STATE_ACTIVE); + entity.setListingState(CLERK_LISTING_ENABLED); + entity.setDisplayState(CLERK_DISPLAY_ENABLED); + entity.setOnlineState(CLERK_ONLINE_ENABLED); + entity.setRandomOrderState(CLERK_RANDOM_ORDER_ENABLED); + entity.setClerkState(CLERK_STATE_ACTIVE); + entity.setEntryTime(LocalDateTime.now()); + clerkUserInfoService.save(entity); + String token = wxTokenService.createWxUserToken(clerkId); + clerkUserInfoService.updateTokenById(clerkId, token); + return token; + } + + private void removeClerk(String clerkId) { + ensureTenantContext(); + clerkUserInfoService.removeById(clerkId); + } + + private String createCustomer(String customerId) { + ensureTenantContext(); + PlayCustomUserInfoEntity entity = new PlayCustomUserInfoEntity(); + entity.setId(customerId); + entity.setTenantId(ApiTestDataSeeder.DEFAULT_TENANT_ID); + entity.setOpenid(CUSTOMER_OPEN_ID_PREFIX + customerId); + entity.setUnionid("unionid-" + customerId); + entity.setNickname("测试顾客-" + customerId); + entity.setSex(CUSTOM_SEX_FEMALE); + entity.setPhone("1370000" + customerId.substring(0, 4)); + entity.setWeiChatCode("apitest-customer-" + customerId); + entity.setAccountBalance(HIGH_BALANCE); + entity.setAccumulatedRechargeAmount(HIGH_BALANCE); + entity.setAccumulatedConsumptionAmount(BigDecimal.ZERO); + entity.setAccountState(USER_STATE_ACTIVE); + entity.setSubscribeState(USER_STATE_ACTIVE); + entity.setPurchaseState(USER_STATE_ACTIVE); + entity.setMobilePhoneState(USER_STATE_ACTIVE); + entity.setRegistrationTime(new java.util.Date()); + entity.setLastLoginTime(new java.util.Date()); + customUserInfoService.save(entity); + String token = wxTokenService.createWxUserToken(customerId); + customUserInfoService.updateTokenById(customerId, token); + return token; + } + + private void removeCustomer(String customerId) { + ensureTenantContext(); + customUserInfoService.removeById(customerId); + } + + @Test + void clerkOrderDetailReturnsRelationType() throws Exception { + String orderId = createSpecifiedOrder(REMARK_PREFIX_SPECIFIED + "detail-" + IdUtils.getUuid()); + acceptOrder(orderId); + + MvcResult result = mockMvc.perform(get("/wx/clerk/order/queryById") + .param("id", orderId) + .header(USER_HEADER, DEFAULT_USER) + .header(TENANT_HEADER, DEFAULT_TENANT) + .header(Constants.CLERK_USER_LOGIN_TOKEN, Constants.TOKEN_PREFIX + clerkToken)) + .andExpect(status().isOk()) + .andExpect(jsonPath("$.code").value(200)) + .andReturn(); + + JsonNode data = mapper.readTree(result.getResponse().getContentAsString()).path("data"); + assertThat(data.hasNonNull(RELATION_TYPE_FIELD)).isTrue(); + } + + /** + * 验证店员详情返回兼容字段 firstOrder。 + */ + @Test + void clerkOrderDetailReturnsFirstOrderField() throws Exception { + String orderId = createSpecifiedOrder(REMARK_PREFIX_SPECIFIED + SUFFIX_DETAIL_FIRST + IdUtils.getUuid()); + acceptOrder(orderId); + + MvcResult result = mockMvc.perform(get("/wx/clerk/order/queryById") + .param("id", orderId) + .header(USER_HEADER, DEFAULT_USER) + .header(TENANT_HEADER, DEFAULT_TENANT) + .header(Constants.CLERK_USER_LOGIN_TOKEN, Constants.TOKEN_PREFIX + clerkToken)) + .andExpect(status().isOk()) + .andExpect(jsonPath("$.code").value(200)) + .andReturn(); + + JsonNode data = mapper.readTree(result.getResponse().getContentAsString()).path("data"); + OrderRelationType relationType = OrderRelationType.valueOf(data.path(RELATION_TYPE_FIELD).asText()); + assertFirstOrderField(data, relationType); + } + + @Test + void customOrderListReturnsRelationType() throws Exception { + String orderId = createSpecifiedOrder(REMARK_PREFIX_SPECIFIED + "custom-list-" + IdUtils.getUuid()); + acceptOrder(orderId); + + ObjectNode payload = mapper.createObjectNode(); + payload.put("pageNum", DEFAULT_PAGE_NUM); + payload.put("pageSize", DEFAULT_PAGE_SIZE); + + MvcResult result = mockMvc.perform(post("/wx/custom/order/queryByPage") + .header(USER_HEADER, DEFAULT_USER) + .header(TENANT_HEADER, DEFAULT_TENANT) + .header(Constants.CUSTOM_USER_LOGIN_TOKEN, Constants.TOKEN_PREFIX + customerToken) + .contentType(MediaType.APPLICATION_JSON) + .content(payload.toString())) + .andExpect(status().isOk()) + .andExpect(jsonPath("$.code").value(200)) + .andReturn(); + + OrderRelationType relationType = extractRelationTypeFromList(result, orderId); + assertThat(relationType).isNotNull(); + } + + /** + * 验证客户列表返回兼容字段 firstOrder。 + */ + @Test + void customOrderListReturnsFirstOrderField() throws Exception { + String orderId = createSpecifiedOrder(REMARK_PREFIX_SPECIFIED + SUFFIX_CUSTOM_LIST_FIRST + IdUtils.getUuid()); + acceptOrder(orderId); + + ObjectNode payload = mapper.createObjectNode(); + payload.put("pageNum", DEFAULT_PAGE_NUM); + payload.put("pageSize", DEFAULT_PAGE_SIZE); + + MvcResult result = mockMvc.perform(post("/wx/custom/order/queryByPage") + .header(USER_HEADER, DEFAULT_USER) + .header(TENANT_HEADER, DEFAULT_TENANT) + .header(Constants.CUSTOM_USER_LOGIN_TOKEN, Constants.TOKEN_PREFIX + customerToken) + .contentType(MediaType.APPLICATION_JSON) + .content(payload.toString())) + .andExpect(status().isOk()) + .andExpect(jsonPath("$.code").value(200)) + .andReturn(); + + assertFirstOrderFieldInList(result, orderId, OrderRelationType.FIRST); + } + + /** + * 验证客户列表在续单场景返回 firstOrder=0。 + */ + @Test + void customOrderListReturnsFirstOrderFlagForContinued() throws Exception { + String completedOrderId = createSpecifiedOrder(REMARK_PREFIX_SPECIFIED + SUFFIX_LIST_HISTORY + IdUtils.getUuid()); + acceptOrder(completedOrderId); + startOrder(completedOrderId); + completeOrder(completedOrderId); + + String orderId = createSpecifiedOrder(REMARK_PREFIX_SPECIFIED + "custom-list-continued-" + IdUtils.getUuid()); + acceptOrder(orderId); + + ObjectNode payload = mapper.createObjectNode(); + payload.put("pageNum", DEFAULT_PAGE_NUM); + payload.put("pageSize", DEFAULT_PAGE_SIZE); + + MvcResult result = mockMvc.perform(post("/wx/custom/order/queryByPage") + .header(USER_HEADER, DEFAULT_USER) + .header(TENANT_HEADER, DEFAULT_TENANT) + .header(Constants.CUSTOM_USER_LOGIN_TOKEN, Constants.TOKEN_PREFIX + customerToken) + .contentType(MediaType.APPLICATION_JSON) + .content(payload.toString())) + .andExpect(status().isOk()) + .andExpect(jsonPath("$.code").value(200)) + .andReturn(); + + assertFirstOrderFieldInList(result, orderId, OrderRelationType.CONTINUED); + } + + @Test + void customOrderDetailReturnsRelationType() throws Exception { + String orderId = createSpecifiedOrder(REMARK_PREFIX_SPECIFIED + "custom-detail-" + IdUtils.getUuid()); + acceptOrder(orderId); + + MvcResult result = mockMvc.perform(get("/wx/custom/order/queryById") + .param("id", orderId) + .header(USER_HEADER, DEFAULT_USER) + .header(TENANT_HEADER, DEFAULT_TENANT) + .header(Constants.CUSTOM_USER_LOGIN_TOKEN, Constants.TOKEN_PREFIX + customerToken)) + .andExpect(status().isOk()) + .andExpect(jsonPath("$.code").value(200)) + .andReturn(); + + JsonNode data = mapper.readTree(result.getResponse().getContentAsString()).path("data"); + assertThat(data.hasNonNull(RELATION_TYPE_FIELD)).isTrue(); + } + + /** + * 验证客户详情返回兼容字段 firstOrder。 + */ + @Test + void customOrderDetailReturnsFirstOrderField() throws Exception { + String orderId = createSpecifiedOrder(REMARK_PREFIX_SPECIFIED + SUFFIX_CUSTOM_DETAIL_FIRST + IdUtils.getUuid()); + acceptOrder(orderId); + + MvcResult result = mockMvc.perform(get("/wx/custom/order/queryById") + .param("id", orderId) + .header(USER_HEADER, DEFAULT_USER) + .header(TENANT_HEADER, DEFAULT_TENANT) + .header(Constants.CUSTOM_USER_LOGIN_TOKEN, Constants.TOKEN_PREFIX + customerToken)) + .andExpect(status().isOk()) + .andExpect(jsonPath("$.code").value(200)) + .andReturn(); + + JsonNode data = mapper.readTree(result.getResponse().getContentAsString()).path("data"); + OrderRelationType relationType = OrderRelationType.valueOf(data.path(RELATION_TYPE_FIELD).asText()); + assertFirstOrderField(data, relationType); + } + + @Test + void randomOrderDetailReturnsRelationType() throws Exception { + String orderId = createRandomOrder(REMARK_PREFIX_RANDOM + "detail-" + IdUtils.getUuid()); + acceptOrder(orderId); + + MvcResult result = mockMvc.perform(get("/wx/order/clerk/selectRandomOrderById") + .param("id", orderId) + .header(USER_HEADER, DEFAULT_USER) + .header(TENANT_HEADER, DEFAULT_TENANT) + .header(Constants.CLERK_USER_LOGIN_TOKEN, Constants.TOKEN_PREFIX + clerkToken)) + .andExpect(status().isOk()) + .andExpect(jsonPath("$.code").value(200)) + .andReturn(); + + JsonNode data = mapper.readTree(result.getResponse().getContentAsString()).path("data"); + assertThat(data.hasNonNull(RELATION_TYPE_FIELD)).isTrue(); + } + + /** + * 验证随机单详情返回兼容字段 firstOrder。 + */ + @Test + void randomOrderDetailReturnsFirstOrderField() throws Exception { + String orderId = createRandomOrder(REMARK_PREFIX_RANDOM + SUFFIX_DETAIL_FIRST + IdUtils.getUuid()); + acceptOrder(orderId); + + MvcResult result = mockMvc.perform(get("/wx/order/clerk/selectRandomOrderById") + .param("id", orderId) + .header(USER_HEADER, DEFAULT_USER) + .header(TENANT_HEADER, DEFAULT_TENANT) + .header(Constants.CLERK_USER_LOGIN_TOKEN, Constants.TOKEN_PREFIX + clerkToken)) + .andExpect(status().isOk()) + .andExpect(jsonPath("$.code").value(200)) + .andReturn(); + + JsonNode data = mapper.readTree(result.getResponse().getContentAsString()).path("data"); + OrderRelationType relationType = OrderRelationType.valueOf(data.path(RELATION_TYPE_FIELD).asText()); + assertFirstOrderField(data, relationType); + } + + private void acceptOrder(String orderId) throws Exception { + mockMvc.perform(get("/wx/clerk/order/accept") + .param("id", orderId) + .header(USER_HEADER, DEFAULT_USER) + .header(TENANT_HEADER, DEFAULT_TENANT) + .header(Constants.CLERK_USER_LOGIN_TOKEN, Constants.TOKEN_PREFIX + clerkToken)) + .andExpect(status().isOk()) + .andExpect(jsonPath("$.code").value(200)); + } + + private OrderRelationType fetchCustomOrderListRelationType(String orderId) throws Exception { + ObjectNode payload = mapper.createObjectNode(); + payload.put("pageNum", DEFAULT_PAGE_NUM); + payload.put("pageSize", DEFAULT_PAGE_SIZE); + + MvcResult result = mockMvc.perform(post("/wx/custom/order/queryByPage") + .header(USER_HEADER, DEFAULT_USER) + .header(TENANT_HEADER, DEFAULT_TENANT) + .header(Constants.CUSTOM_USER_LOGIN_TOKEN, Constants.TOKEN_PREFIX + customerToken) + .contentType(MediaType.APPLICATION_JSON) + .content(payload.toString())) + .andExpect(status().isOk()) + .andExpect(jsonPath("$.code").value(200)) + .andReturn(); + + return extractRelationTypeFromList(result, orderId); + } + + private OrderRelationType fetchCustomOrderDetailRelationType(String orderId) throws Exception { + MvcResult result = mockMvc.perform(get("/wx/custom/order/queryById") + .param("id", orderId) + .header(USER_HEADER, DEFAULT_USER) + .header(TENANT_HEADER, DEFAULT_TENANT) + .header(Constants.CUSTOM_USER_LOGIN_TOKEN, Constants.TOKEN_PREFIX + customerToken)) + .andExpect(status().isOk()) + .andExpect(jsonPath("$.code").value(200)) + .andReturn(); + + JsonNode data = mapper.readTree(result.getResponse().getContentAsString()).path("data"); + assertThat(data.hasNonNull(RELATION_TYPE_FIELD)).isTrue(); + return OrderRelationType.valueOf(data.path(RELATION_TYPE_FIELD).asText()); + } + + private OrderRelationType fetchClerkOrderDetailRelationType(String orderId) throws Exception { + MvcResult result = mockMvc.perform(get("/wx/clerk/order/queryById") + .param("id", orderId) + .header(USER_HEADER, DEFAULT_USER) + .header(TENANT_HEADER, DEFAULT_TENANT) + .header(Constants.CLERK_USER_LOGIN_TOKEN, Constants.TOKEN_PREFIX + clerkToken)) + .andExpect(status().isOk()) + .andExpect(jsonPath("$.code").value(200)) + .andReturn(); + + JsonNode data = mapper.readTree(result.getResponse().getContentAsString()).path("data"); + assertThat(data.hasNonNull(RELATION_TYPE_FIELD)).isTrue(); + return OrderRelationType.valueOf(data.path(RELATION_TYPE_FIELD).asText()); + } + + private OrderRelationType fetchRandomOrderDetailRelationType(String orderId) throws Exception { + MvcResult result = mockMvc.perform(get("/wx/order/clerk/selectRandomOrderById") + .param("id", orderId) + .header(USER_HEADER, DEFAULT_USER) + .header(TENANT_HEADER, DEFAULT_TENANT) + .header(Constants.CLERK_USER_LOGIN_TOKEN, Constants.TOKEN_PREFIX + clerkToken)) + .andExpect(status().isOk()) + .andExpect(jsonPath("$.code").value(200)) + .andReturn(); + + JsonNode data = mapper.readTree(result.getResponse().getContentAsString()).path("data"); + assertThat(data.hasNonNull(RELATION_TYPE_FIELD)).isTrue(); + return OrderRelationType.valueOf(data.path(RELATION_TYPE_FIELD).asText()); + } + + private void acceptOrder(String orderId, String token) throws Exception { + mockMvc.perform(get("/wx/clerk/order/accept") + .param("id", orderId) + .header(USER_HEADER, DEFAULT_USER) + .header(TENANT_HEADER, DEFAULT_TENANT) + .header(Constants.CLERK_USER_LOGIN_TOKEN, Constants.TOKEN_PREFIX + token)) + .andExpect(status().isOk()) + .andExpect(jsonPath("$.code").value(200)); + } + + private void startOrder(String orderId) throws Exception { + mockMvc.perform(get("/wx/clerk/order/start") + .param("id", orderId) + .header(USER_HEADER, DEFAULT_USER) + .header(TENANT_HEADER, DEFAULT_TENANT) + .header(Constants.CLERK_USER_LOGIN_TOKEN, Constants.TOKEN_PREFIX + clerkToken)) + .andExpect(status().isOk()) + .andExpect(jsonPath("$.code").value(200)); + } + + private void completeOrder(String orderId) throws Exception { + ObjectNode payload = mapper.createObjectNode(); + payload.put("orderId", orderId); + payload.put("remark", COMPLETE_REMARK); + + mockMvc.perform(post("/wx/clerk/order/complete") + .header(USER_HEADER, DEFAULT_USER) + .header(TENANT_HEADER, DEFAULT_TENANT) + .header(Constants.CLERK_USER_LOGIN_TOKEN, Constants.TOKEN_PREFIX + clerkToken) + .contentType(MediaType.APPLICATION_JSON) + .content(payload.toString())) + .andExpect(status().isOk()) + .andExpect(jsonPath("$.code").value(200)); + } + + private OrderRelationType extractRelationTypeFromList(MvcResult result, String orderId) throws Exception { + JsonNode root = mapper.readTree(result.getResponse().getContentAsString()); + JsonNode data = root.path("data"); + JsonNode records = data.isArray() ? data : data.path(LIST_RECORDS_FIELD); + assertThat(records.isArray()).isTrue(); + + for (JsonNode node : records) { + if (!orderId.equals(node.path("id").asText())) { + continue; + } + assertThat(node.hasNonNull(RELATION_TYPE_FIELD)).isTrue(); + return OrderRelationType.valueOf(node.path(RELATION_TYPE_FIELD).asText()); + } + throw new AssertionError("未在列表结果中找到订单 " + orderId); + } + + private void assertFirstOrderFieldInList(MvcResult result, String orderId, OrderRelationType relationType) throws Exception { + JsonNode root = mapper.readTree(result.getResponse().getContentAsString()); + JsonNode data = root.path("data"); + JsonNode records = data.isArray() ? data : data.path(LIST_RECORDS_FIELD); + assertThat(records.isArray()).isTrue(); + + for (JsonNode node : records) { + if (!orderId.equals(node.path("id").asText())) { + continue; + } + assertFirstOrderField(node, relationType); + return; + } + throw new AssertionError("未在列表结果中找到订单 " + orderId); + } + + private void assertFirstOrderField(JsonNode data, OrderRelationType relationType) { + assertThat(data.hasNonNull(FIRST_ORDER_FIELD)).isTrue(); + String expected = relationType == OrderRelationType.CONTINUED ? CONTINUED_FLAG : FIRST_FLAG; + assertThat(data.path(FIRST_ORDER_FIELD).asText()).isEqualTo(expected); + } + + private OrderRelationType fetchOrderRelationType(String orderId, OrderConstant.PlaceType placeType) throws Exception { + ObjectNode payload = mapper.createObjectNode(); + payload.put("pageNum", DEFAULT_PAGE_NUM); + payload.put("pageSize", DEFAULT_PAGE_SIZE); + payload.put("id", orderId); + payload.put("placeType", placeType.getCode()); + + MvcResult result = mockMvc.perform(post("/wx/clerk/order/queryByPage") + .header(USER_HEADER, DEFAULT_USER) + .header(TENANT_HEADER, DEFAULT_TENANT) + .header(Constants.CLERK_USER_LOGIN_TOKEN, Constants.TOKEN_PREFIX + clerkToken) + .contentType(MediaType.APPLICATION_JSON) + .content(payload.toString())) + .andExpect(status().isOk()) + .andExpect(jsonPath("$.code").value(200)) + .andReturn(); + + return extractRelationTypeFromList(result, orderId); + } + + private OrderRelationType fetchOrderRelationType( + String orderId, + OrderConstant.PlaceType placeType, + OrderConstant.OrderType orderType) throws Exception { + ObjectNode payload = mapper.createObjectNode(); + payload.put("pageNum", DEFAULT_PAGE_NUM); + payload.put("pageSize", DEFAULT_PAGE_SIZE); + payload.put("id", orderId); + payload.put("placeType", placeType.getCode()); + payload.put("orderType", orderType.getCode()); + + MvcResult result = mockMvc.perform(post("/wx/clerk/order/queryByPage") + .header(USER_HEADER, DEFAULT_USER) + .header(TENANT_HEADER, DEFAULT_TENANT) + .header(Constants.CLERK_USER_LOGIN_TOKEN, Constants.TOKEN_PREFIX + clerkToken) + .contentType(MediaType.APPLICATION_JSON) + .content(payload.toString())) + .andExpect(status().isOk()) + .andExpect(jsonPath("$.code").value(200)) + .andReturn(); + + return extractRelationTypeFromList(result, orderId); + } + + private OrderRelationType fetchOrderRelationType(String orderId, OrderConstant.PlaceType placeType, String token) + throws Exception { + ObjectNode payload = mapper.createObjectNode(); + payload.put("pageNum", DEFAULT_PAGE_NUM); + payload.put("pageSize", DEFAULT_PAGE_SIZE); + payload.put("id", orderId); + payload.put("placeType", placeType.getCode()); + + MvcResult result = mockMvc.perform(post("/wx/clerk/order/queryByPage") + .header(USER_HEADER, DEFAULT_USER) + .header(TENANT_HEADER, DEFAULT_TENANT) + .header(Constants.CLERK_USER_LOGIN_TOKEN, Constants.TOKEN_PREFIX + token) + .contentType(MediaType.APPLICATION_JSON) + .content(payload.toString())) + .andExpect(status().isOk()) + .andExpect(jsonPath("$.code").value(200)) + .andReturn(); + + return extractRelationTypeFromList(result, orderId); + } + + private OrderRelationType fetchOrderRelationType( + String orderId, + OrderConstant.PlaceType placeType, + OrderConstant.OrderType orderType, + String token) throws Exception { + ObjectNode payload = mapper.createObjectNode(); + payload.put("pageNum", DEFAULT_PAGE_NUM); + payload.put("pageSize", DEFAULT_PAGE_SIZE); + payload.put("id", orderId); + payload.put("placeType", placeType.getCode()); + payload.put("orderType", orderType.getCode()); + + MvcResult result = mockMvc.perform(post("/wx/clerk/order/queryByPage") + .header(USER_HEADER, DEFAULT_USER) + .header(TENANT_HEADER, DEFAULT_TENANT) + .header(Constants.CLERK_USER_LOGIN_TOKEN, Constants.TOKEN_PREFIX + token) + .contentType(MediaType.APPLICATION_JSON) + .content(payload.toString())) + .andExpect(status().isOk()) + .andExpect(jsonPath("$.code").value(200)) + .andReturn(); + + return extractRelationTypeFromList(result, orderId); + } +} diff --git a/play-admin/src/test/java/com/starry/admin/modules/order/service/OrderCreationContextTest.java b/play-admin/src/test/java/com/starry/admin/modules/order/service/OrderCreationContextTest.java index 795899b..89f97be 100644 --- a/play-admin/src/test/java/com/starry/admin/modules/order/service/OrderCreationContextTest.java +++ b/play-admin/src/test/java/com/starry/admin/modules/order/service/OrderCreationContextTest.java @@ -49,7 +49,7 @@ class OrderCreationContextTest { .orderType(OrderConstant.OrderType.NORMAL) .placeType(OrderConstant.PlaceType.SPECIFIED) .rewardType(OrderConstant.RewardType.BALANCE) - .isFirstOrder(true) + .orderRelationType(OrderConstant.OrderRelationType.UNASSIGNED) .commodityInfo(commodityInfo) .paymentInfo(paymentInfo) .purchaserBy("customer_001") @@ -64,8 +64,7 @@ class OrderCreationContextTest { assertEquals(OrderConstant.OrderStatus.PENDING, request.getOrderStatus()); assertEquals(OrderConstant.OrderType.NORMAL, request.getOrderType()); assertEquals(OrderConstant.PlaceType.SPECIFIED, request.getPlaceType()); - assertTrue(request.isFirstOrder()); - assertEquals("1", request.getFirstOrderString()); + assertEquals(OrderConstant.OrderRelationType.UNASSIGNED, request.getOrderRelationType()); // 验证商品信息 assertNotNull(request.getCommodityInfo()); @@ -88,7 +87,7 @@ class OrderCreationContextTest { .orderStatus(OrderConstant.OrderStatus.PENDING) .orderType(OrderConstant.OrderType.NORMAL) .placeType(OrderConstant.PlaceType.SPECIFIED) - .isFirstOrder(false) + .orderRelationType(OrderConstant.OrderRelationType.UNASSIGNED) .commodityInfo(CommodityInfo.builder().commodityId("test").build()) .paymentInfo(PaymentInfo.builder().orderMoney(BigDecimal.ZERO).build()) .purchaserBy("customer") @@ -105,7 +104,7 @@ class OrderCreationContextTest { .orderStatus(OrderConstant.OrderStatus.PENDING) .orderType(OrderConstant.OrderType.NORMAL) .placeType(OrderConstant.PlaceType.RANDOM) - .isFirstOrder(false) + .orderRelationType(OrderConstant.OrderRelationType.FIRST) .commodityInfo(CommodityInfo.builder().commodityId("test").build()) .paymentInfo(PaymentInfo.builder().orderMoney(BigDecimal.ZERO).build()) .purchaserBy("customer") @@ -127,7 +126,7 @@ class OrderCreationContextTest { .orderStatus(OrderConstant.OrderStatus.PENDING) .orderType(OrderConstant.OrderType.NORMAL) .placeType(OrderConstant.PlaceType.REWARD) - .isFirstOrder(false) + .orderRelationType(OrderConstant.OrderRelationType.UNASSIGNED) .commodityInfo(CommodityInfo.builder().commodityId("test").build()) .paymentInfo(PaymentInfo.builder().orderMoney(BigDecimal.ZERO).build()) .purchaserBy("customer") @@ -139,37 +138,35 @@ class OrderCreationContextTest { } @Test - @DisplayName("测试首单标识转换") - void testFirstOrderStringConversion() { - // 测试首单 + @DisplayName("测试订单关系类型设置") + void testRelationTypeAssignment() { OrderCreationContext firstOrder = OrderCreationContext.builder() .orderId("order_001") .orderNo("ORD001") .orderStatus(OrderConstant.OrderStatus.PENDING) .orderType(OrderConstant.OrderType.NORMAL) .placeType(OrderConstant.PlaceType.SPECIFIED) - .isFirstOrder(true) + .orderRelationType(OrderConstant.OrderRelationType.FIRST) .commodityInfo(CommodityInfo.builder().commodityId("test").build()) .paymentInfo(PaymentInfo.builder().orderMoney(BigDecimal.ZERO).build()) .purchaserBy("customer") .build(); - assertEquals("1", firstOrder.getFirstOrderString()); + assertEquals(OrderConstant.OrderRelationType.FIRST, firstOrder.getOrderRelationType()); - // 测试非首单 - OrderCreationContext notFirstOrder = OrderCreationContext.builder() + OrderCreationContext continuedOrder = OrderCreationContext.builder() .orderId("order_002") .orderNo("ORD002") .orderStatus(OrderConstant.OrderStatus.PENDING) .orderType(OrderConstant.OrderType.NORMAL) .placeType(OrderConstant.PlaceType.SPECIFIED) - .isFirstOrder(false) + .orderRelationType(OrderConstant.OrderRelationType.CONTINUED) .commodityInfo(CommodityInfo.builder().commodityId("test").build()) .paymentInfo(PaymentInfo.builder().orderMoney(BigDecimal.ZERO).build()) .purchaserBy("customer") .build(); - assertEquals("0", notFirstOrder.getFirstOrderString()); + assertEquals(OrderConstant.OrderRelationType.CONTINUED, continuedOrder.getOrderRelationType()); } @Test @@ -182,7 +179,7 @@ class OrderCreationContextTest { .orderStatus(OrderConstant.OrderStatus.PENDING) .orderType(OrderConstant.OrderType.NORMAL) .placeType(OrderConstant.PlaceType.RANDOM) - .isFirstOrder(false) + .orderRelationType(OrderConstant.OrderRelationType.FIRST) .commodityInfo(CommodityInfo.builder().commodityId("test").build()) .paymentInfo(PaymentInfo.builder().orderMoney(BigDecimal.ZERO).build()) .purchaserBy("customer") @@ -200,7 +197,7 @@ class OrderCreationContextTest { .orderStatus(OrderConstant.OrderStatus.PENDING) .orderType(OrderConstant.OrderType.NORMAL) .placeType(OrderConstant.PlaceType.RANDOM) - .isFirstOrder(false) + .orderRelationType(OrderConstant.OrderRelationType.FIRST) .commodityInfo(CommodityInfo.builder().commodityId("test").build()) .paymentInfo(PaymentInfo.builder().orderMoney(BigDecimal.ZERO).build()) .purchaserBy("customer") diff --git a/play-admin/src/test/java/com/starry/admin/modules/order/service/impl/OrderLifecycleServiceImplTest.java b/play-admin/src/test/java/com/starry/admin/modules/order/service/impl/OrderLifecycleServiceImplTest.java index 58d3dd0..132fb25 100644 --- a/play-admin/src/test/java/com/starry/admin/modules/order/service/impl/OrderLifecycleServiceImplTest.java +++ b/play-admin/src/test/java/com/starry/admin/modules/order/service/impl/OrderLifecycleServiceImplTest.java @@ -17,6 +17,7 @@ import com.starry.admin.common.exception.CustomException; import com.starry.admin.common.exception.ServiceException; import com.starry.admin.modules.custom.module.entity.PlayCustomUserInfoEntity; import com.starry.admin.modules.custom.service.IPlayCustomUserInfoService; +import com.starry.admin.modules.order.mapper.PlayClerkCustomerRelationMapper; import com.starry.admin.modules.order.mapper.PlayOrderInfoMapper; import com.starry.admin.modules.order.mapper.PlayOrderLogInfoMapper; import com.starry.admin.modules.order.module.constant.OrderConstant; @@ -46,6 +47,7 @@ import com.starry.admin.modules.order.module.dto.OrderRefundContext; import com.starry.admin.modules.order.module.dto.OrderRevocationContext; import com.starry.admin.modules.order.module.dto.PaymentInfo; import com.starry.admin.modules.order.module.dto.RandomOrderRequirements; +import com.starry.admin.modules.order.module.entity.PlayClerkCustomerRelationEntity; import com.starry.admin.modules.order.module.entity.PlayOrderInfoEntity; import com.starry.admin.modules.order.module.event.OrderRevocationEvent; import com.starry.admin.modules.order.module.vo.ClerkEstimatedRevenueVo; @@ -60,6 +62,7 @@ import com.starry.admin.modules.shop.service.IPlayCouponInfoService; import com.starry.admin.modules.weichat.service.NotificationSender; import com.starry.admin.modules.withdraw.entity.EarningsLineEntity; import com.starry.admin.modules.withdraw.service.IEarningsService; +import com.starry.admin.utils.SecurityUtils; import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.Arrays; @@ -110,6 +113,9 @@ class OrderLifecycleServiceImplTest { @Mock private PlayOrderLogInfoMapper orderLogInfoMapper; + @Mock + private PlayClerkCustomerRelationMapper clerkCustomerRelationMapper; + @Mock private IPlayBalanceDetailsInfoService playBalanceDetailsInfoService; @@ -118,6 +124,12 @@ class OrderLifecycleServiceImplTest { @BeforeEach void initStrategies() { + SecurityUtils.setTenantId("tenant-test"); + PlayClerkCustomerRelationEntity relation = new PlayClerkCustomerRelationEntity(); + relation.setHasCompleted(YesNoFlag.NO.getCode()); + relation.setDeleted(Boolean.FALSE); + lenient().when(clerkCustomerRelationMapper.selectForUpdate(anyString(), anyString(), anyString())) + .thenReturn(relation); lifecycleService.initPlacementStrategies(); } @@ -302,7 +314,7 @@ class OrderLifecycleServiceImplTest { .orderType(OrderType.NORMAL) .placeType(PlaceType.OTHER) .rewardType(RewardType.NOT_APPLICABLE) - .isFirstOrder(false) + .orderRelationType(OrderConstant.OrderRelationType.UNASSIGNED) .commodityInfo(CommodityInfo.builder() .commodityId("commodity") .commodityType(CommodityType.SERVICE) @@ -332,7 +344,7 @@ class OrderLifecycleServiceImplTest { .orderType(OrderType.NORMAL) .placeType(PlaceType.SPECIFIED) .rewardType(RewardType.NOT_APPLICABLE) - .isFirstOrder(true) + .orderRelationType(OrderConstant.OrderRelationType.UNASSIGNED) .commodityInfo(CommodityInfo.builder() .commodityId("commodity-01") .commodityType(CommodityType.SERVICE) @@ -370,10 +382,10 @@ class OrderLifecycleServiceImplTest { revenueVo.setRevenueAmount(BigDecimal.valueOf(89.5)); revenueVo.setRevenueRatio(50); - when(orderInfoMapper.selectCount(any())).thenReturn(0L); when(orderInfoMapper.insert(any())).thenReturn(1); when(clerkRevenueCalculator.calculateEstimatedRevenue( - anyString(), anyList(), anyString(), anyString(), any())).thenReturn(revenueVo); + anyString(), anyList(), anyString(), any(OrderConstant.OrderRelationType.class), any())) + .thenReturn(revenueVo); doNothing().when(customUserInfoService).saveOrderInfo(any()); doNothing().when(playCouponDetailsService).updateCouponUseStateByIds(anyList(), anyString()); @@ -403,10 +415,10 @@ class OrderLifecycleServiceImplTest { request.getAcceptBy(), request.getPaymentInfo().getCouponIds(), request.getPlaceType().getCode(), - YesNoFlag.YES.getCode(), + OrderConstant.OrderRelationType.FIRST, request.getPaymentInfo().getOrderMoney()); - assertEquals(YesNoFlag.YES.getCode(), created.getFirstOrder()); + assertEquals(OrderConstant.OrderRelationType.FIRST, created.getOrderRelationType()); assertEquals(revenueVo.getRevenueAmount(), created.getEstimatedRevenue()); assertEquals(revenueVo.getRevenueRatio(), created.getEstimatedRevenueRatio()); assertEquals(PayMethod.WECHAT.getCode(), created.getPayMethod()); @@ -1411,7 +1423,8 @@ class OrderLifecycleServiceImplTest { revenueVo.setRevenueAmount(BigDecimal.ZERO); revenueVo.setRevenueRatio(0); lenient().when(clerkRevenueCalculator.calculateEstimatedRevenue( - anyString(), anyList(), anyString(), anyString(), any())).thenReturn(revenueVo); + anyString(), anyList(), anyString(), any(OrderConstant.OrderRelationType.class), any())) + .thenReturn(revenueVo); } private PaymentInfo payment(BigDecimal gross, BigDecimal net, BigDecimal discount, List couponIds) { @@ -1432,7 +1445,9 @@ class OrderLifecycleServiceImplTest { .orderType(OrderType.NORMAL) .placeType(placeType) .rewardType(rewardType) - .isFirstOrder(true) + .orderRelationType(placeType == PlaceType.RANDOM + ? OrderConstant.OrderRelationType.FIRST + : OrderConstant.OrderRelationType.UNASSIGNED) .commodityInfo(CommodityInfo.builder() .commodityId("commodity-" + placeType.getCode()) .commodityType(CommodityType.SERVICE) diff --git a/play-admin/src/test/java/com/starry/admin/modules/statistics/service/PlayClerkPerformanceServiceImplTest.java b/play-admin/src/test/java/com/starry/admin/modules/statistics/service/PlayClerkPerformanceServiceImplTest.java index 8b1b5a3..c249805 100644 --- a/play-admin/src/test/java/com/starry/admin/modules/statistics/service/PlayClerkPerformanceServiceImplTest.java +++ b/play-admin/src/test/java/com/starry/admin/modules/statistics/service/PlayClerkPerformanceServiceImplTest.java @@ -36,6 +36,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.stream.Collectors; +import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; @@ -70,6 +71,11 @@ class PlayClerkPerformanceServiceImplTest { @InjectMocks private PlayClerkPerformanceServiceImpl service; + @BeforeEach + void setupDefaultMocks() { + lenient().when(playOrderInfoService.list(any(Wrapper.class))).thenReturn(Collections.emptyList()); + } + @Test @DisplayName("queryOverview should aggregate metrics and sort clerks by GMV") void queryOverviewAggregatesAndSorts() { @@ -499,7 +505,7 @@ class PlayClerkPerformanceServiceImplTest { PlayOrderInfoEntity order = new PlayOrderInfoEntity(); order.setAcceptBy(clerkId); order.setPurchaserBy(purchaser); - order.setFirstOrder(firstOrder); + order.setOrderRelationType(resolveRelationType(firstOrder, placeType)); order.setPlaceType(placeType); order.setRefundType(refundType); order.setFinalAmount(finalAmount); @@ -511,6 +517,16 @@ class PlayClerkPerformanceServiceImplTest { return order; } + private OrderConstant.OrderRelationType resolveRelationType(String firstOrder, String placeType) { + if (OrderConstant.PlaceType.RANDOM.getCode().equals(placeType)) { + return OrderConstant.OrderRelationType.FIRST; + } + if (OrderConstant.YesNoFlag.NO.getCode().equals(firstOrder)) { + return OrderConstant.OrderRelationType.CONTINUED; + } + return OrderConstant.OrderRelationType.FIRST; + } + private void setAuthentication() { LoginUser loginUser = new LoginUser(); UsernamePasswordAuthenticationToken authentication =