Initial commit

This commit is contained in:
南宁网宿科技
2023-10-07 21:36:36 +08:00
commit 92b64cd7ec
1035 changed files with 91911 additions and 0 deletions

BIN
.DS_Store vendored Normal file

Binary file not shown.

31
.gitignore vendored Normal file
View File

@@ -0,0 +1,31 @@
HELP.md
target/
!.mvn/wrapper/maven-wrapper.jar
!**/src/main/**
!**/src/test/**
### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
build/
### VS Code ###
.vscode/

118
.mvn/wrapper/MavenWrapperDownloader.java vendored Normal file
View File

@@ -0,0 +1,118 @@
/*
* Copyright 2007-present the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import java.net.*;
import java.io.*;
import java.nio.channels.*;
import java.util.Properties;
public class MavenWrapperDownloader {
private static final String WRAPPER_VERSION = "0.5.6";
/**
* Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided.
*/
private static final String DEFAULT_DOWNLOAD_URL = "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/"
+ WRAPPER_VERSION + "/maven-wrapper-" + WRAPPER_VERSION + ".jar";
/**
* Path to the maven-wrapper.properties file, which might contain a downloadUrl property to
* use instead of the default one.
*/
private static final String MAVEN_WRAPPER_PROPERTIES_PATH =
".mvn/wrapper/maven-wrapper.properties";
/**
* Path where the maven-wrapper.jar will be saved to.
*/
private static final String MAVEN_WRAPPER_JAR_PATH =
".mvn/wrapper/maven-wrapper.jar";
/**
* Name of the property which should be used to override the default download url for the wrapper.
*/
private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl";
public static void main(String args[]) {
System.out.println("- Downloader started");
File baseDirectory = new File(args[0]);
System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath());
// If the maven-wrapper.properties exists, read it and check if it contains a custom
// wrapperUrl parameter.
File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH);
String url = DEFAULT_DOWNLOAD_URL;
if (mavenWrapperPropertyFile.exists()) {
FileInputStream mavenWrapperPropertyFileInputStream = null;
try {
mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile);
Properties mavenWrapperProperties = new Properties();
mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream);
url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url);
} catch (IOException e) {
System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'");
} finally {
try {
if (mavenWrapperPropertyFileInputStream != null) {
mavenWrapperPropertyFileInputStream.close();
}
} catch (IOException e) {
// Ignore ...
}
}
}
System.out.println("- Downloading from: " + url);
File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH);
if (!outputFile.getParentFile().exists()) {
if (!outputFile.getParentFile().mkdirs()) {
System.out.println(
"- ERROR creating output directory '" + outputFile.getParentFile().getAbsolutePath() + "'");
}
}
System.out.println("- Downloading to: " + outputFile.getAbsolutePath());
try {
downloadFileFromURL(url, outputFile);
System.out.println("Done");
System.exit(0);
} catch (Throwable e) {
System.out.println("- Error downloading");
e.printStackTrace();
System.exit(1);
}
}
private static void downloadFileFromURL(String urlString, File destination) throws Exception {
if (System.getenv("MVNW_USERNAME") != null && System.getenv("MVNW_PASSWORD") != null) {
String username = System.getenv("MVNW_USERNAME");
char[] password = System.getenv("MVNW_PASSWORD").toCharArray();
Authenticator.setDefault(new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
});
}
URL website = new URL(urlString);
ReadableByteChannel rbc;
rbc = Channels.newChannel(website.openStream());
FileOutputStream fos = new FileOutputStream(destination);
fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
fos.close();
rbc.close();
}
}

BIN
.mvn/wrapper/maven-wrapper.jar vendored Normal file

Binary file not shown.

2
.mvn/wrapper/maven-wrapper.properties vendored Normal file
View File

@@ -0,0 +1,2 @@
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip
wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar

0
README.md Normal file
View File

745
hs_err_pid31091.log Normal file
View File

@@ -0,0 +1,745 @@
#
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (signature.cpp:120), pid=31091, tid=0x0000000000007303
# Error: ShouldNotReachHere()
#
# JRE version: OpenJDK Runtime Environment (8.0_322-b06) (build 1.8.0_322-b06)
# Java VM: OpenJDK 64-Bit Server VM (25.322-b06 mixed mode bsd-aarch64 compressed oops)
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# If you would like to submit a bug report, please visit:
# https://bell-sw.com/support
#
--------------- T H R E A D ---------------
Current thread (0x000000012d2c4000): JavaThread "http-nio-9090-exec-4" daemon [_thread_in_vm, id=29443, stack(0x0000000175758000,0x000000017595b000)]
Stack: [0x0000000175758000,0x000000017595b000], sp=0x00000001759578a0, free space=2046k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.dylib+0x54f438]
V [libjvm.dylib+0x18856c]
V [libjvm.dylib+0x4bf228]
V [libjvm.dylib+0x4bf4f0]
V [libjvm.dylib+0x1db018]
V [libjvm.dylib+0x27acec]
j org.springframework.web.method.annotation.ModelFactory.updateModel(Lorg/springframework/web/context/request/NativeWebRequest;Lorg/springframework/web/method/support/ModelAndViewContainer;)V+34
j org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.getModelAndView(Lorg/springframework/web/method/support/ModelAndViewContainer;Lorg/springframework/web/method/annotation/ModelFactory;Lorg/springframework/web/context/request/NativeWebRequest;)Lorg/springframework/web/servlet/ModelAndView;+3
j org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;Lorg/springframework/web/method/HandlerMethod;)Lorg/springframework/web/servlet/ModelAndView;+273
j org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;Lorg/springframework/web/method/HandlerMethod;)Lorg/springframework/web/servlet/ModelAndView;+81
j org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;Ljava/lang/Object;)Lorg/springframework/web/servlet/ModelAndView;+7
j org.springframework.web.servlet.DispatcherServlet.doDispatch(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V+259
j org.springframework.web.servlet.DispatcherServlet.doService(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V+241
j org.springframework.web.servlet.FrameworkServlet.processRequest(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V+71
j org.springframework.web.servlet.FrameworkServlet.doGet(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V+3
j javax.servlet.http.HttpServlet.service(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V+35
j org.springframework.web.servlet.FrameworkServlet.service(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V+33
j javax.servlet.http.HttpServlet.service(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+36
j org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+304
j org.apache.catalina.core.ApplicationFilterChain.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+99
j org.apache.tomcat.websocket.server.WsFilter.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljavax/servlet/FilterChain;)V+21
j org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+135
j org.apache.catalina.core.ApplicationFilterChain.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+99
j org.springframework.web.filter.OncePerRequestFilter.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljavax/servlet/FilterChain;)V+122
j org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+135
j org.apache.catalina.core.ApplicationFilterChain.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+99
j org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+52
j org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(Lorg/springframework/security/web/FilterInvocation;)V+79
j org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljavax/servlet/FilterChain;)V+11
j org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+136
j org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;Ljavax/servlet/FilterChain;)V+3
j org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljavax/servlet/FilterChain;)V+10
j org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+136
j org.springframework.security.web.session.SessionManagementFilter.doFilter(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;Ljavax/servlet/FilterChain;)V+210
j org.springframework.security.web.session.SessionManagementFilter.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljavax/servlet/FilterChain;)V+10
j org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+136
j org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljavax/servlet/FilterChain;)V+105
j org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+136
j org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljavax/servlet/FilterChain;)V+19
j org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+136
j org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljavax/servlet/FilterChain;)V+32
j org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+136
j com.gxwebsoft.common.core.security.JwtAuthenticationFilter.doFilterInternal(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;Ljavax/servlet/FilterChain;)V+275
j org.springframework.web.filter.OncePerRequestFilter.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljavax/servlet/FilterChain;)V+147
j org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+136
j org.springframework.web.filter.CorsFilter.doFilterInternal(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;Ljavax/servlet/FilterChain;)V+43
j org.springframework.web.filter.OncePerRequestFilter.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljavax/servlet/FilterChain;)V+147
j org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+136
j org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;Ljavax/servlet/FilterChain;)V+29
j org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;Ljavax/servlet/FilterChain;)V+21
j org.springframework.web.filter.OncePerRequestFilter.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljavax/servlet/FilterChain;)V+147
j org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+136
j org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;Ljavax/servlet/FilterChain;)V+181
j org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljavax/servlet/FilterChain;)V+10
j org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+136
j org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;Ljavax/servlet/FilterChain;)V+42
j org.springframework.web.filter.OncePerRequestFilter.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljavax/servlet/FilterChain;)V+147
j org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+136
j org.springframework.security.web.FilterChainProxy.doFilterInternal(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljavax/servlet/FilterChain;)V+148
j org.springframework.security.web.FilterChainProxy.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljavax/servlet/FilterChain;)V+48
j org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(Ljavax/servlet/Filter;Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljavax/servlet/FilterChain;)V+5
j org.springframework.web.filter.DelegatingFilterProxy.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljavax/servlet/FilterChain;)V+85
j org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+135
j org.apache.catalina.core.ApplicationFilterChain.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+99
j org.springframework.web.filter.RequestContextFilter.doFilterInternal(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;Ljavax/servlet/FilterChain;)V+21
j org.springframework.web.filter.OncePerRequestFilter.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljavax/servlet/FilterChain;)V+147
j org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+135
j org.apache.catalina.core.ApplicationFilterChain.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+99
j org.springframework.web.filter.FormContentFilter.doFilterInternal(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;Ljavax/servlet/FilterChain;)V+38
j org.springframework.web.filter.OncePerRequestFilter.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljavax/servlet/FilterChain;)V+147
j org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+135
j org.apache.catalina.core.ApplicationFilterChain.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+99
j org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;Ljavax/servlet/FilterChain;)V+53
j org.springframework.web.filter.OncePerRequestFilter.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljavax/servlet/FilterChain;)V+147
j org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+135
j org.apache.catalina.core.ApplicationFilterChain.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+99
j org.apache.catalina.core.StandardWrapperValve.invoke(Lorg/apache/catalina/connector/Request;Lorg/apache/catalina/connector/Response;)V+694
j org.apache.catalina.core.StandardContextValve.invoke(Lorg/apache/catalina/connector/Request;Lorg/apache/catalina/connector/Response;)V+169
j org.apache.catalina.authenticator.AuthenticatorBase.invoke(Lorg/apache/catalina/connector/Request;Lorg/apache/catalina/connector/Response;)V+260
j org.apache.catalina.core.StandardHostValve.invoke(Lorg/apache/catalina/connector/Request;Lorg/apache/catalina/connector/Response;)V+128
j org.apache.catalina.valves.ErrorReportValve.invoke(Lorg/apache/catalina/connector/Request;Lorg/apache/catalina/connector/Response;)V+6
j org.apache.catalina.core.StandardEngineValve.invoke(Lorg/apache/catalina/connector/Request;Lorg/apache/catalina/connector/Response;)V+59
j org.apache.catalina.connector.CoyoteAdapter.service(Lorg/apache/coyote/Request;Lorg/apache/coyote/Response;)V+199
j org.apache.coyote.http11.Http11Processor.service(Lorg/apache/tomcat/util/net/SocketWrapperBase;)Lorg/apache/tomcat/util/net/AbstractEndpoint$Handler$SocketState;+737
j org.apache.coyote.AbstractProcessorLight.process(Lorg/apache/tomcat/util/net/SocketWrapperBase;Lorg/apache/tomcat/util/net/SocketEvent;)Lorg/apache/tomcat/util/net/AbstractEndpoint$Handler$SocketState;+170
j org.apache.coyote.AbstractProtocol$ConnectionHandler.process(Lorg/apache/tomcat/util/net/SocketWrapperBase;Lorg/apache/tomcat/util/net/SocketEvent;)Lorg/apache/tomcat/util/net/AbstractEndpoint$Handler$SocketState;+505
j org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun()V+216
j org.apache.tomcat.util.net.SocketProcessorBase.run()V+21
j org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(Lorg/apache/tomcat/util/threads/ThreadPoolExecutor$Worker;)V+92
j org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run()V+5
j org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run()V+4
j java.lang.Thread.run()V+11
v ~StubRoutines::call_stub
V [libjvm.dylib+0x282778]
V [libjvm.dylib+0x2812a4]
V [libjvm.dylib+0x2814f8]
V [libjvm.dylib+0x3086e4]
V [libjvm.dylib+0x514724]
V [libjvm.dylib+0x5145d0]
V [libjvm.dylib+0x44aeb8]
...<more frames>...
Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j org.springframework.web.method.annotation.ModelFactory.updateModel(Lorg/springframework/web/context/request/NativeWebRequest;Lorg/springframework/web/method/support/ModelAndViewContainer;)V+34
j org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.getModelAndView(Lorg/springframework/web/method/support/ModelAndViewContainer;Lorg/springframework/web/method/annotation/ModelFactory;Lorg/springframework/web/context/request/NativeWebRequest;)Lorg/springframework/web/servlet/ModelAndView;+3
j org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;Lorg/springframework/web/method/HandlerMethod;)Lorg/springframework/web/servlet/ModelAndView;+273
j org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;Lorg/springframework/web/method/HandlerMethod;)Lorg/springframework/web/servlet/ModelAndView;+81
j org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;Ljava/lang/Object;)Lorg/springframework/web/servlet/ModelAndView;+7
j org.springframework.web.servlet.DispatcherServlet.doDispatch(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V+259
j org.springframework.web.servlet.DispatcherServlet.doService(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V+241
j org.springframework.web.servlet.FrameworkServlet.processRequest(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V+71
j org.springframework.web.servlet.FrameworkServlet.doGet(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V+3
j javax.servlet.http.HttpServlet.service(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V+35
j org.springframework.web.servlet.FrameworkServlet.service(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V+33
j javax.servlet.http.HttpServlet.service(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+36
j org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+304
j org.apache.catalina.core.ApplicationFilterChain.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+99
j org.apache.tomcat.websocket.server.WsFilter.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljavax/servlet/FilterChain;)V+21
j org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+135
j org.apache.catalina.core.ApplicationFilterChain.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+99
j org.springframework.web.filter.OncePerRequestFilter.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljavax/servlet/FilterChain;)V+122
j org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+135
j org.apache.catalina.core.ApplicationFilterChain.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+99
j org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+52
j org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(Lorg/springframework/security/web/FilterInvocation;)V+79
j org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljavax/servlet/FilterChain;)V+11
j org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+136
j org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;Ljavax/servlet/FilterChain;)V+3
j org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljavax/servlet/FilterChain;)V+10
j org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+136
j org.springframework.security.web.session.SessionManagementFilter.doFilter(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;Ljavax/servlet/FilterChain;)V+210
j org.springframework.security.web.session.SessionManagementFilter.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljavax/servlet/FilterChain;)V+10
j org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+136
j org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljavax/servlet/FilterChain;)V+105
j org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+136
j org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljavax/servlet/FilterChain;)V+19
j org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+136
j org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljavax/servlet/FilterChain;)V+32
j org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+136
j com.gxwebsoft.common.core.security.JwtAuthenticationFilter.doFilterInternal(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;Ljavax/servlet/FilterChain;)V+275
j org.springframework.web.filter.OncePerRequestFilter.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljavax/servlet/FilterChain;)V+147
j org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+136
j org.springframework.web.filter.CorsFilter.doFilterInternal(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;Ljavax/servlet/FilterChain;)V+43
j org.springframework.web.filter.OncePerRequestFilter.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljavax/servlet/FilterChain;)V+147
j org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+136
j org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;Ljavax/servlet/FilterChain;)V+29
j org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;Ljavax/servlet/FilterChain;)V+21
j org.springframework.web.filter.OncePerRequestFilter.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljavax/servlet/FilterChain;)V+147
j org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+136
j org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;Ljavax/servlet/FilterChain;)V+181
j org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljavax/servlet/FilterChain;)V+10
j org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+136
j org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;Ljavax/servlet/FilterChain;)V+42
j org.springframework.web.filter.OncePerRequestFilter.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljavax/servlet/FilterChain;)V+147
j org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+136
j org.springframework.security.web.FilterChainProxy.doFilterInternal(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljavax/servlet/FilterChain;)V+148
j org.springframework.security.web.FilterChainProxy.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljavax/servlet/FilterChain;)V+48
j org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(Ljavax/servlet/Filter;Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljavax/servlet/FilterChain;)V+5
j org.springframework.web.filter.DelegatingFilterProxy.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljavax/servlet/FilterChain;)V+85
j org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+135
j org.apache.catalina.core.ApplicationFilterChain.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+99
j org.springframework.web.filter.RequestContextFilter.doFilterInternal(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;Ljavax/servlet/FilterChain;)V+21
j org.springframework.web.filter.OncePerRequestFilter.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljavax/servlet/FilterChain;)V+147
j org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+135
j org.apache.catalina.core.ApplicationFilterChain.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+99
j org.springframework.web.filter.FormContentFilter.doFilterInternal(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;Ljavax/servlet/FilterChain;)V+38
j org.springframework.web.filter.OncePerRequestFilter.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljavax/servlet/FilterChain;)V+147
j org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+135
j org.apache.catalina.core.ApplicationFilterChain.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+99
j org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;Ljavax/servlet/FilterChain;)V+53
j org.springframework.web.filter.OncePerRequestFilter.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljavax/servlet/FilterChain;)V+147
j org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+135
j org.apache.catalina.core.ApplicationFilterChain.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V+99
j org.apache.catalina.core.StandardWrapperValve.invoke(Lorg/apache/catalina/connector/Request;Lorg/apache/catalina/connector/Response;)V+694
j org.apache.catalina.core.StandardContextValve.invoke(Lorg/apache/catalina/connector/Request;Lorg/apache/catalina/connector/Response;)V+169
j org.apache.catalina.authenticator.AuthenticatorBase.invoke(Lorg/apache/catalina/connector/Request;Lorg/apache/catalina/connector/Response;)V+260
j org.apache.catalina.core.StandardHostValve.invoke(Lorg/apache/catalina/connector/Request;Lorg/apache/catalina/connector/Response;)V+128
j org.apache.catalina.valves.ErrorReportValve.invoke(Lorg/apache/catalina/connector/Request;Lorg/apache/catalina/connector/Response;)V+6
j org.apache.catalina.core.StandardEngineValve.invoke(Lorg/apache/catalina/connector/Request;Lorg/apache/catalina/connector/Response;)V+59
j org.apache.catalina.connector.CoyoteAdapter.service(Lorg/apache/coyote/Request;Lorg/apache/coyote/Response;)V+199
j org.apache.coyote.http11.Http11Processor.service(Lorg/apache/tomcat/util/net/SocketWrapperBase;)Lorg/apache/tomcat/util/net/AbstractEndpoint$Handler$SocketState;+737
j org.apache.coyote.AbstractProcessorLight.process(Lorg/apache/tomcat/util/net/SocketWrapperBase;Lorg/apache/tomcat/util/net/SocketEvent;)Lorg/apache/tomcat/util/net/AbstractEndpoint$Handler$SocketState;+170
j org.apache.coyote.AbstractProtocol$ConnectionHandler.process(Lorg/apache/tomcat/util/net/SocketWrapperBase;Lorg/apache/tomcat/util/net/SocketEvent;)Lorg/apache/tomcat/util/net/AbstractEndpoint$Handler$SocketState;+505
j org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun()V+216
j org.apache.tomcat.util.net.SocketProcessorBase.run()V+21
j org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(Lorg/apache/tomcat/util/threads/ThreadPoolExecutor$Worker;)V+92
j org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run()V+5
j org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run()V+4
j java.lang.Thread.run()V+11
v ~StubRoutines::call_stub
--------------- P R O C E S S ---------------
Java Threads: ( => current thread )
0x000000012ca6b800 JavaThread "lettuce-eventExecutorLoop-1-1" daemon [_thread_blocked, id=29955, stack(0x0000000175b70000,0x0000000175d73000)]
0x000000012ca9d000 JavaThread "lettuce-nioEventLoop-6-1" daemon [_thread_in_native, id=29703, stack(0x0000000175964000,0x0000000175b67000)]
=>0x000000012d2c4000 JavaThread "http-nio-9090-exec-4" daemon [_thread_in_vm, id=29443, stack(0x0000000175758000,0x000000017595b000)]
0x000000011f0a3800 JavaThread "http-nio-9090-exec-3" daemon [_thread_in_Java, id=38403, stack(0x000000017554c000,0x000000017574f000)]
0x000000011f0a0000 JavaThread "http-nio-9090-exec-2" daemon [_thread_blocked, id=38659, stack(0x0000000175340000,0x0000000175543000)]
0x000000011f09f000 JavaThread "http-nio-9090-exec-1" daemon [_thread_blocked, id=28459, stack(0x0000000175134000,0x0000000175337000)]
0x000000012cad2000 JavaThread "http-nio-9090-Acceptor" daemon [_thread_in_native, id=39171, stack(0x0000000174f28000,0x000000017512b000)]
0x000000012cad1000 JavaThread "http-nio-9090-Poller" daemon [_thread_in_native, id=39431, stack(0x0000000174d1c000,0x0000000174f1f000)]
0x000000014ecb0800 JavaThread "File Watcher" daemon [_thread_blocked, id=27907, stack(0x0000000174b10000,0x0000000174d13000)]
0x000000012cabf000 JavaThread "Live Reload Server" daemon [_thread_in_native, id=27675, stack(0x0000000174904000,0x0000000174b07000)]
0x000000012c8de000 JavaThread "nioEventLoopGroup-4-1" [_thread_in_native, id=27155, stack(0x00000001746f8000,0x00000001748fb000)]
0x000000014d207000 JavaThread "container-0" [_thread_blocked, id=40195, stack(0x00000001744ec000,0x00000001746ef000)]
0x000000014e3a1800 JavaThread "Catalina-utility-2" [_thread_blocked, id=26371, stack(0x00000001742e0000,0x00000001744e3000)]
0x000000014d202000 JavaThread "Catalina-utility-1" [_thread_blocked, id=40455, stack(0x00000001740d4000,0x00000001742d7000)]
0x000000014e755800 JavaThread "lettuce-timer-3-1" daemon [_thread_blocked, id=40719, stack(0x0000000173ec8000,0x00000001740cb000)]
0x000000014d0ae800 JavaThread "RMI TCP Connection(5)-127.0.0.1" daemon [_thread_in_native, id=14599, stack(0x0000000173cbc000,0x0000000173ebf000)]
0x000000014ed3b000 JavaThread "RMI TCP Connection(2)-127.0.0.1" daemon [_thread_in_native, id=41227, stack(0x0000000173ab0000,0x0000000173cb3000)]
0x000000012a00a800 JavaThread "Druid-ConnectionPool-Destroy-1108833840" daemon [_thread_blocked, id=25347, stack(0x00000001738a4000,0x0000000173aa7000)]
0x000000012980b000 JavaThread "Druid-ConnectionPool-Create-1108833840" daemon [_thread_blocked, id=25103, stack(0x0000000173698000,0x000000017389b000)]
0x000000014d1dc800 JavaThread "mysql-cj-abandoned-connection-cleanup" daemon [_thread_blocked, id=24591, stack(0x000000017348c000,0x000000017368f000)]
0x000000014e4ec800 JavaThread "RMI Scheduler(0)" daemon [_thread_blocked, id=24067, stack(0x0000000173280000,0x0000000173483000)]
0x000000014d171000 JavaThread "RMI TCP Connection(4)-127.0.0.1" daemon [_thread_in_native, id=23555, stack(0x0000000173074000,0x0000000173277000)]
0x000000014e453800 JavaThread "Attach Listener" daemon [_thread_blocked, id=23051, stack(0x0000000172e68000,0x000000017306b000)]
0x000000011f8d0000 JavaThread "restartedMain" [_thread_blocked, id=42243, stack(0x0000000172c5c000,0x0000000172e5f000)]
0x000000014e0f1000 JavaThread "Thread-1" [_thread_blocked, id=22787, stack(0x0000000172a50000,0x0000000172c53000)]
0x000000014e0c2000 JavaThread "RMI TCP Accept-0" daemon [_thread_in_native, id=22275, stack(0x0000000172638000,0x000000017283b000)]
0x000000014e09f000 JavaThread "Service Thread" daemon [_thread_blocked, id=22019, stack(0x000000017242c000,0x000000017262f000)]
0x000000014ee0e800 JavaThread "C1 CompilerThread3" daemon [_thread_in_vm, id=16387, stack(0x0000000172220000,0x0000000172423000)]
0x000000014ee0d800 JavaThread "C2 CompilerThread2" daemon [_thread_blocked, id=16899, stack(0x0000000172014000,0x0000000172217000)]
0x000000014ee0c800 JavaThread "C2 CompilerThread1" daemon [_thread_blocked, id=15875, stack(0x0000000171e08000,0x000000017200b000)]
0x000000014ee0b800 JavaThread "C2 CompilerThread0" daemon [_thread_blocked, id=17411, stack(0x0000000171bfc000,0x0000000171dff000)]
0x000000014ee07800 JavaThread "Monitor Ctrl-Break" daemon [_thread_in_native, id=17667, stack(0x00000001719f0000,0x0000000171bf3000)]
0x000000014e810800 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=17923, stack(0x00000001717e4000,0x00000001719e7000)]
0x000000014e029800 JavaThread "Finalizer" daemon [_thread_blocked, id=13827, stack(0x00000001714c0000,0x00000001716c3000)]
0x000000014e027000 JavaThread "Reference Handler" daemon [_thread_blocked, id=19971, stack(0x00000001712b4000,0x00000001714b7000)]
0x000000014e009000 JavaThread "main" [_thread_blocked, id=5635, stack(0x000000016fc30000,0x000000016fe33000)]
Other Threads:
0x000000013c815000 VMThread [stack: 0x00000001710a8000,0x00000001712ab000] [id=13059]
0x000000011f865000 WatcherThread [stack: 0x0000000172844000,0x0000000172a47000] [id=42755]
VM state:not at safepoint (normal execution)
VM Mutex/Monitor currently owned by a thread: ([mutex/lock_event])
[0x0000600002eb2900] CodeCache_lock - owner thread: 0x000000014ee0e800
[0x0000600002eb3f80] Compile_lock - owner thread: 0x000000014ee0e800
[0x0000600002eb8080] MethodCompileQueue_lock - owner thread: 0x000000014ee0e800
heap address: 0x00000005c0000000, size: 8192 MB, Compressed Oops mode: Zero based, Oop shift amount: 3
Narrow klass base: 0x0000000800000000, Narrow klass shift: 0
Compressed class space size: 1073741824 Address: 0x0000000800000000
Heap:
PSYoungGen total 2729984K, used 76175K [0x0000000715580000, 0x00000007bfd00000, 0x00000007c0000000)
eden space 2672128K, 2% used [0x0000000715580000,0x0000000719fe3fc8,0x00000007b8700000)
from space 57856K, 0% used [0x00000007bc480000,0x00000007bc480000,0x00000007bfd00000)
to space 60416K, 0% used [0x00000007b8700000,0x00000007b8700000,0x00000007bc200000)
ParOldGen total 483328K, used 184293K [0x00000005c0000000, 0x00000005dd800000, 0x0000000715580000)
object space 483328K, 38% used [0x00000005c0000000,0x00000005cb3f9600,0x00000005dd800000)
Metaspace used 92443K, capacity 98046K, committed 99632K, reserved 1136640K
class space used 10271K, capacity 11254K, committed 11568K, reserved 1048576K
Card table byte_map: [0x0000000109ecc000,0x000000010aed0000] byte_map_base: 0x00000001070cc000
Marking Bits: (ParMarkBitMap*) 0x000000010184da70
Begin Bits: [0x000000010b97c000, 0x000000011397c000)
End Bits: [0x000000011397c000, 0x000000011b97c000)
Polling page: 0x00000001003dc000
CodeCache: size=131072Kb used=20310Kb max_used=20310Kb free=110761Kb
bounds [0x0000000101ecc000, 0x00000001032ac000, 0x0000000109ecc000]
total_blobs=11280 nmethods=10658 adapters=535
compilation: enabled
Compilation events (10 events):
Event: 18.150 Thread 0x000000014ee0e800 nmethod 10897 0x000000010327fed0 code [0x0000000103280000, 0x0000000103280090]
Event: 18.150 Thread 0x000000014ee0e800 10899 1 org.apache.ibatis.ognl.OgnlContext::getRoot (5 bytes)
Event: 18.150 Thread 0x000000014ee0e800 nmethod 10899 0x0000000103280110 code [0x0000000103280240, 0x00000001032802d0]
Event: 18.150 Thread 0x000000014ee0e800 10898 1 com.alibaba.druid.proxy.jdbc.ConnectionProxyImpl::getRawObject (5 bytes)
Event: 18.150 Thread 0x000000014ee0e800 nmethod 10898 0x0000000103280350 code [0x0000000103280480, 0x0000000103280510]
Event: 18.150 Thread 0x000000014ee0e800 10900 1 net.sf.jsqlparser.parser.CCJSqlParser$JJCalls::<init> (5 bytes)
Event: 18.150 Thread 0x000000014ee0e800 nmethod 10900 0x0000000103280590 code [0x00000001032806c0, 0x0000000103280790]
Event: 18.150 Thread 0x000000014ee0e800 10901 1 java.util.Collections::reverse (125 bytes)
Event: 18.150 Thread 0x000000014ee0e800 nmethod 10901 0x0000000103280810 code [0x0000000103280a00, 0x0000000103280dc0]
Event: 18.176 Thread 0x000000014ee0e800 10902 1 com.alibaba.druid.sql.parser.SQLExprParser::primary (6226 bytes)
GC Heap History (10 events):
Event: 7.500 GC heap before
{Heap before GC invocations=12 (full 3):
PSYoungGen total 1641984K, used 42475K [0x0000000715580000, 0x00000007a1980000, 0x00000007c0000000)
eden space 1599488K, 0% used [0x0000000715580000,0x0000000715580000,0x0000000776f80000)
from space 42496K, 99% used [0x0000000776f80000,0x00000007798facd0,0x0000000779900000)
to space 57856K, 0% used [0x000000079e100000,0x000000079e100000,0x00000007a1980000)
ParOldGen total 189440K, used 64230K [0x00000005c0000000, 0x00000005cb900000, 0x0000000715580000)
object space 189440K, 33% used [0x00000005c0000000,0x00000005c3eb9b00,0x00000005cb900000)
Metaspace used 56074K, capacity 59103K, committed 59184K, reserved 1101824K
class space used 6856K, capacity 7422K, committed 7472K, reserved 1048576K
Event: 7.729 GC heap after
Heap after GC invocations=12 (full 3):
PSYoungGen total 1641984K, used 0K [0x0000000715580000, 0x00000007a1980000, 0x00000007c0000000)
eden space 1599488K, 0% used [0x0000000715580000,0x0000000715580000,0x0000000776f80000)
from space 42496K, 0% used [0x0000000776f80000,0x0000000776f80000,0x0000000779900000)
to space 57856K, 0% used [0x000000079e100000,0x000000079e100000,0x00000007a1980000)
ParOldGen total 327168K, used 104687K [0x00000005c0000000, 0x00000005d3f80000, 0x0000000715580000)
object space 327168K, 31% used [0x00000005c0000000,0x00000005c663bed0,0x00000005d3f80000)
Metaspace used 55901K, capacity 58827K, committed 59184K, reserved 1101824K
class space used 6831K, capacity 7376K, committed 7472K, reserved 1048576K
}
Event: 12.785 GC heap before
{Heap before GC invocations=13 (full 3):
PSYoungGen total 1641984K, used 1599488K [0x0000000715580000, 0x00000007a1980000, 0x00000007c0000000)
eden space 1599488K, 100% used [0x0000000715580000,0x0000000776f80000,0x0000000776f80000)
from space 42496K, 0% used [0x0000000776f80000,0x0000000776f80000,0x0000000779900000)
to space 57856K, 0% used [0x000000079e100000,0x000000079e100000,0x00000007a1980000)
ParOldGen total 327168K, used 104687K [0x00000005c0000000, 0x00000005d3f80000, 0x0000000715580000)
object space 327168K, 31% used [0x00000005c0000000,0x00000005c663bed0,0x00000005d3f80000)
Metaspace used 79446K, capacity 84909K, committed 85040K, reserved 1124352K
class space used 9049K, capacity 9984K, committed 10032K, reserved 1048576K
Event: 12.804 GC heap after
Heap after GC invocations=13 (full 3):
PSYoungGen total 2195456K, used 49272K [0x0000000715580000, 0x00000007a1180000, 0x00000007c0000000)
eden space 2145792K, 0% used [0x0000000715580000,0x0000000715580000,0x0000000798500000)
from space 49664K, 99% used [0x000000079e100000,0x00000007a111e178,0x00000007a1180000)
to space 62976K, 0% used [0x0000000799680000,0x0000000799680000,0x000000079d400000)
ParOldGen total 327168K, used 104703K [0x00000005c0000000, 0x00000005d3f80000, 0x0000000715580000)
object space 327168K, 32% used [0x00000005c0000000,0x00000005c663fed0,0x00000005d3f80000)
Metaspace used 79446K, capacity 84909K, committed 85040K, reserved 1124352K
class space used 9049K, capacity 9984K, committed 10032K, reserved 1048576K
}
Event: 17.034 GC heap before
{Heap before GC invocations=14 (full 3):
PSYoungGen total 2195456K, used 2195064K [0x0000000715580000, 0x00000007a1180000, 0x00000007c0000000)
eden space 2145792K, 100% used [0x0000000715580000,0x0000000798500000,0x0000000798500000)
from space 49664K, 99% used [0x000000079e100000,0x00000007a111e178,0x00000007a1180000)
to space 62976K, 0% used [0x0000000799680000,0x0000000799680000,0x000000079d400000)
ParOldGen total 327168K, used 104703K [0x00000005c0000000, 0x00000005d3f80000, 0x0000000715580000)
object space 327168K, 32% used [0x00000005c0000000,0x00000005c663fed0,0x00000005d3f80000)
Metaspace used 79973K, capacity 85653K, committed 85936K, reserved 1124352K
class space used 9083K, capacity 10044K, committed 10160K, reserved 1048576K
Event: 17.090 GC heap after
Heap after GC invocations=14 (full 3):
PSYoungGen total 2226688K, used 32624K [0x0000000715580000, 0x00000007c0000000, 0x00000007c0000000)
eden space 2163712K, 0% used [0x0000000715580000,0x0000000715580000,0x0000000799680000)
from space 62976K, 51% used [0x0000000799680000,0x000000079b65c2d0,0x000000079d400000)
to space 60928K, 0% used [0x00000007bc480000,0x00000007bc480000,0x00000007c0000000)
ParOldGen total 327168K, used 145593K [0x00000005c0000000, 0x00000005d3f80000, 0x0000000715580000)
object space 327168K, 44% used [0x00000005c0000000,0x00000005c8e2e718,0x00000005d3f80000)
Metaspace used 79973K, capacity 85653K, committed 85936K, reserved 1124352K
class space used 9083K, capacity 10044K, committed 10160K, reserved 1048576K
}
Event: 17.875 GC heap before
{Heap before GC invocations=15 (full 3):
PSYoungGen total 2226688K, used 550337K [0x0000000715580000, 0x00000007c0000000, 0x00000007c0000000)
eden space 2163712K, 23% used [0x0000000715580000,0x0000000734f14408,0x0000000799680000)
from space 62976K, 51% used [0x0000000799680000,0x000000079b65c2d0,0x000000079d400000)
to space 60928K, 0% used [0x00000007bc480000,0x00000007bc480000,0x00000007c0000000)
ParOldGen total 327168K, used 145593K [0x00000005c0000000, 0x00000005d3f80000, 0x0000000715580000)
object space 327168K, 44% used [0x00000005c0000000,0x00000005c8e2e718,0x00000005d3f80000)
Metaspace used 92415K, capacity 98572K, committed 98640K, reserved 1136640K
class space used 10319K, capacity 11401K, committed 11440K, reserved 1048576K
Event: 17.902 GC heap after
Heap after GC invocations=15 (full 3):
PSYoungGen total 2729984K, used 14366K [0x0000000715580000, 0x00000007bfd00000, 0x00000007c0000000)
eden space 2672128K, 0% used [0x0000000715580000,0x0000000715580000,0x00000007b8700000)
from space 57856K, 24% used [0x00000007bc480000,0x00000007bd2878a0,0x00000007bfd00000)
to space 60416K, 0% used [0x00000007b8700000,0x00000007b8700000,0x00000007bc200000)
ParOldGen total 327168K, used 178070K [0x00000005c0000000, 0x00000005d3f80000, 0x0000000715580000)
object space 327168K, 54% used [0x00000005c0000000,0x00000005cade5818,0x00000005d3f80000)
Metaspace used 92415K, capacity 98572K, committed 98640K, reserved 1136640K
class space used 10319K, capacity 11401K, committed 11440K, reserved 1048576K
}
Event: 17.902 GC heap before
{Heap before GC invocations=16 (full 4):
PSYoungGen total 2729984K, used 14366K [0x0000000715580000, 0x00000007bfd00000, 0x00000007c0000000)
eden space 2672128K, 0% used [0x0000000715580000,0x0000000715580000,0x00000007b8700000)
from space 57856K, 24% used [0x00000007bc480000,0x00000007bd2878a0,0x00000007bfd00000)
to space 60416K, 0% used [0x00000007b8700000,0x00000007b8700000,0x00000007bc200000)
ParOldGen total 327168K, used 178070K [0x00000005c0000000, 0x00000005d3f80000, 0x0000000715580000)
object space 327168K, 54% used [0x00000005c0000000,0x00000005cade5818,0x00000005d3f80000)
Metaspace used 92415K, capacity 98572K, committed 98640K, reserved 1136640K
class space used 10319K, capacity 11401K, committed 11440K, reserved 1048576K
Event: 18.135 GC heap after
Heap after GC invocations=16 (full 4):
PSYoungGen total 2729984K, used 0K [0x0000000715580000, 0x00000007bfd00000, 0x00000007c0000000)
eden space 2672128K, 0% used [0x0000000715580000,0x0000000715580000,0x00000007b8700000)
from space 57856K, 0% used [0x00000007bc480000,0x00000007bc480000,0x00000007bfd00000)
to space 60416K, 0% used [0x00000007b8700000,0x00000007b8700000,0x00000007bc200000)
ParOldGen total 483328K, used 184293K [0x00000005c0000000, 0x00000005dd800000, 0x0000000715580000)
object space 483328K, 38% used [0x00000005c0000000,0x00000005cb3f9600,0x00000005dd800000)
Metaspace used 91510K, capacity 97090K, committed 98640K, reserved 1136640K
class space used 10179K, capacity 11150K, committed 11440K, reserved 1048576K
}
Deoptimization events (0 events):
No events
Classes redefined (0 events):
No events
Internal exceptions (10 events):
Event: 18.172 Thread 0x000000011f8d0000 Exception <a 'java/lang/ClassNotFoundException': > (0x00000007166f8760) thrown at [/System/Volumes/Data/ws/workspace/jdk-8u322/label/macosx-aarch64/type/b8/build/hotspot/src/share/vm/prims/jni.cpp, line 738]
Event: 18.172 Thread 0x000000011f8d0000 Exception <a 'java/lang/ClassNotFoundException': > (0x00000007166ffc50) thrown at [/System/Volumes/Data/ws/workspace/jdk-8u322/label/macosx-aarch64/type/b8/build/hotspot/src/share/vm/prims/jni.cpp, line 738]
Event: 18.178 Thread 0x000000011f8d0000 Exception <a 'java/lang/ClassNotFoundException': > (0x00000007168c3b80) thrown at [/System/Volumes/Data/ws/workspace/jdk-8u322/label/macosx-aarch64/type/b8/build/hotspot/src/share/vm/prims/jni.cpp, line 738]
Event: 18.178 Thread 0x000000011f8d0000 Exception <a 'java/lang/ClassNotFoundException': > (0x00000007168cdcf0) thrown at [/System/Volumes/Data/ws/workspace/jdk-8u322/label/macosx-aarch64/type/b8/build/hotspot/src/share/vm/prims/jni.cpp, line 738]
Event: 18.178 Thread 0x000000011f8d0000 Exception <a 'java/lang/ClassNotFoundException': > (0x00000007168d4200) thrown at [/System/Volumes/Data/ws/workspace/jdk-8u322/label/macosx-aarch64/type/b8/build/hotspot/src/share/vm/prims/jni.cpp, line 738]
Event: 18.178 Thread 0x000000011f8d0000 Exception <a 'java/lang/ClassNotFoundException': > (0x00000007168da6e0) thrown at [/System/Volumes/Data/ws/workspace/jdk-8u322/label/macosx-aarch64/type/b8/build/hotspot/src/share/vm/prims/jni.cpp, line 738]
Event: 18.182 Thread 0x000000011f8d0000 Exception <a 'java/lang/ClassNotFoundException': > (0x0000000716b67a70) thrown at [/System/Volumes/Data/ws/workspace/jdk-8u322/label/macosx-aarch64/type/b8/build/hotspot/src/share/vm/prims/jni.cpp, line 738]
Event: 18.182 Thread 0x000000011f8d0000 Exception <a 'java/lang/ClassNotFoundException': > (0x0000000716b6f330) thrown at [/System/Volumes/Data/ws/workspace/jdk-8u322/label/macosx-aarch64/type/b8/build/hotspot/src/share/vm/prims/jni.cpp, line 738]
Event: 18.182 Thread 0x000000011f8d0000 Exception <a 'java/lang/ClassNotFoundException': > (0x0000000716b796a8) thrown at [/System/Volumes/Data/ws/workspace/jdk-8u322/label/macosx-aarch64/type/b8/build/hotspot/src/share/vm/prims/jni.cpp, line 738]
Event: 18.182 Thread 0x000000011f8d0000 Exception <a 'java/lang/ClassNotFoundException': > (0x0000000716b80b98) thrown at [/System/Volumes/Data/ws/workspace/jdk-8u322/label/macosx-aarch64/type/b8/build/hotspot/src/share/vm/prims/jni.cpp, line 738]
Events (10 events):
Event: 18.180 loading class com/fasterxml/jackson/core/json/JsonWriteContext
Event: 18.180 loading class com/fasterxml/jackson/core/json/JsonWriteContext done
Event: 18.180 loading class org/springframework/util/TypeUtils
Event: 18.180 loading class org/springframework/util/TypeUtils done
Event: 18.181 Executing VM operation: ForceSafepoint
Event: 18.181 Executing VM operation: ForceSafepoint done
Event: 18.181 loading class com/fasterxml/jackson/core/io/NumberOutput
Event: 18.181 loading class com/fasterxml/jackson/core/io/NumberOutput done
Event: 18.182 loading class org/apache/tomcat/util/buf/HexUtils
Event: 18.182 loading class org/apache/tomcat/util/buf/HexUtils done
Dynamic libraries:
0x00000001a144e000 /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa
0x000000018d9c7000 /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit
0x0000000190efd000 /System/Library/Frameworks/CoreData.framework/Versions/A/CoreData
0x000000018bd24000 /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation
0x0000000195849000 /usr/lib/libSystem.B.dylib
0x000000018e87e000 /System/Library/PrivateFrameworks/UIFoundation.framework/Versions/A/UIFoundation
0x000000019b747000 /System/Library/PrivateFrameworks/RemoteViewServices.framework/Versions/A/RemoteViewServices
0x0000000193d60000 /System/Library/PrivateFrameworks/XCTTargetBootstrap.framework/Versions/A/XCTTargetBootstrap
0x000000019754a000 /System/Library/PrivateFrameworks/InternationalSupport.framework/Versions/A/InternationalSupport
0x00000001975d3000 /System/Library/PrivateFrameworks/UserActivity.framework/Versions/A/UserActivity
0x0000000196a78000 /usr/lib/libspindump.dylib
0x000000018eaee000 /System/Library/Frameworks/UniformTypeIdentifiers.framework/Versions/A/UniformTypeIdentifiers
0x00000001922ed000 /usr/lib/libapp_launch_measurement.dylib
0x0000000191865000 /System/Library/PrivateFrameworks/CoreAnalytics.framework/Versions/A/CoreAnalytics
0x00000001922f0000 /System/Library/PrivateFrameworks/CoreAutoLayout.framework/Versions/A/CoreAutoLayout
0x0000000193663000 /System/Library/Frameworks/Metal.framework/Versions/A/Metal
0x00000001943b2000 /usr/lib/liblangid.dylib
0x0000000193d64000 /System/Library/PrivateFrameworks/CoreSVG.framework/Versions/A/CoreSVG
0x000000018ffb5000 /System/Library/PrivateFrameworks/SkyLight.framework/Versions/A/SkyLight
0x0000000190382000 /System/Library/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics
0x000000019bdc5000 /System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate
0x00000001964ec000 /System/Library/PrivateFrameworks/IconServices.framework/Versions/A/IconServices
0x0000000193645000 /System/Library/Frameworks/IOSurface.framework/Versions/A/IOSurface
0x0000000191895000 /usr/lib/libDiagnosticMessagesClient.dylib
0x0000000195799000 /usr/lib/libz.1.dylib
0x000000019f20e000 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices
0x0000000193d48000 /System/Library/PrivateFrameworks/DFRFoundation.framework/Versions/A/DFRFoundation
0x000000018d268000 /usr/lib/libicucore.A.dylib
0x000000019834b000 /System/Library/Frameworks/AudioToolbox.framework/Versions/A/AudioToolbox
0x0000000197556000 /System/Library/PrivateFrameworks/DataDetectorsCore.framework/Versions/A/DataDetectorsCore
0x00000001ad6a4000 /System/Library/PrivateFrameworks/TextInput.framework/Versions/A/TextInput
0x000000018ff2c000 /usr/lib/libMobileGestalt.dylib
0x0000000193a18000 /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/HIToolbox
0x0000000191cf6000 /System/Library/Frameworks/QuartzCore.framework/Versions/A/QuartzCore
0x000000018cee5000 /System/Library/Frameworks/Security.framework/Versions/A/Security
0x000000019b787000 /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/SpeechRecognition.framework/Versions/A/SpeechRecognition
0x0000000192044000 /System/Library/PrivateFrameworks/CoreUI.framework/Versions/A/CoreUI
0x000000018c7b6000 /System/Library/Frameworks/CoreAudio.framework/Versions/A/CoreAudio
0x0000000191989000 /System/Library/Frameworks/DiskArbitration.framework/Versions/A/DiskArbitration
0x0000000196e5d000 /System/Library/PrivateFrameworks/MultitouchSupport.framework/Versions/A/MultitouchSupport
0x000000018ff2a000 /usr/lib/libenergytrace.dylib
0x000000018d891000 /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit
0x000000019bb70000 /System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices
0x000000019227d000 /System/Library/PrivateFrameworks/PerformanceAnalysis.framework/Versions/A/PerformanceAnalysis
0x00000001ec251000 /System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL
0x0000000194e03000 /System/Library/PrivateFrameworks/MobileKeyBag.framework/Versions/A/MobileKeyBag
0x000000018ac6e000 /usr/lib/libobjc.A.dylib
0x0000000190992000 /System/Library/Frameworks/ColorSync.framework/Versions/A/ColorSync
0x000000018ae30000 /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
0x0000000193fe5000 /System/Library/Frameworks/CoreImage.framework/Versions/A/CoreImage
0x000000018c5d9000 /System/Library/Frameworks/CoreText.framework/Versions/A/CoreText
0x0000000193d94000 /System/Library/Frameworks/ImageIO.framework/Versions/A/ImageIO
0x000000019584f000 /System/Library/PrivateFrameworks/SoftLinking.framework/Versions/A/SoftLinking
0x000000019233a000 /usr/lib/libxml2.2.dylib
0x000000018ad2e000 /usr/lib/libc++.1.dylib
0x0000000195ae8000 /usr/lib/libcompression.dylib
0x00000001974a3000 /System/Library/PrivateFrameworks/TextureIO.framework/Versions/A/TextureIO
0x0000000196206000 /usr/lib/libate.dylib
0x0000000195843000 /usr/lib/system/libcache.dylib
0x0000000195801000 /usr/lib/system/libcommonCrypto.dylib
0x000000019582a000 /usr/lib/system/libcompiler_rt.dylib
0x0000000195821000 /usr/lib/system/libcopyfile.dylib
0x000000018ab82000 /usr/lib/system/libcorecrypto.dylib
0x000000018ac27000 /usr/lib/system/libdispatch.dylib
0x000000018adef000 /usr/lib/system/libdyld.dylib
0x0000000195839000 /usr/lib/system/libkeymgr.dylib
0x00000001957e3000 /usr/lib/system/libmacho.dylib
0x0000000194ee3000 /usr/lib/system/libquarantine.dylib
0x0000000195836000 /usr/lib/system/libremovefile.dylib
0x000000018ff81000 /usr/lib/system/libsystem_asl.dylib
0x000000018ab2c000 /usr/lib/system/libsystem_blocks.dylib
0x000000018acad000 /usr/lib/system/libsystem_c.dylib
0x000000019582e000 /usr/lib/system/libsystem_collections.dylib
0x00000001943a2000 /usr/lib/system/libsystem_configuration.dylib
0x0000000193626000 /usr/lib/system/libsystem_containermanager.dylib
0x000000019554a000 /usr/lib/system/libsystem_coreservices.dylib
0x000000018d513000 /usr/lib/system/libsystem_darwin.dylib
0x000000019583a000 /usr/lib/system/libsystem_dnssd.dylib
0x000000018acaa000 /usr/lib/system/libsystem_featureflags.dylib
0x000000018ae04000 /usr/lib/system/libsystem_info.dylib
0x00000001957ab000 /usr/lib/system/libsystem_m.dylib
0x000000018abfc000 /usr/lib/system/libsystem_malloc.dylib
0x000000018ff12000 /usr/lib/system/libsystem_networkextension.dylib
0x000000018d967000 /usr/lib/system/libsystem_notify.dylib
0x000000019ba4d000 /usr/lib/system/libsystem_product_info_filter.dylib
0x00000001943a7000 /usr/lib/system/libsystem_sandbox.dylib
0x0000000195833000 /usr/lib/system/libsystem_secinit.dylib
0x000000018adac000 /usr/lib/system/libsystem_kernel.dylib
0x000000018adfc000 /usr/lib/system/libsystem_platform.dylib
0x000000018ade2000 /usr/lib/system/libsystem_pthread.dylib
0x00000001916be000 /usr/lib/system/libsystem_symptoms.dylib
0x000000018ab68000 /usr/lib/system/libsystem_trace.dylib
0x000000019580e000 /usr/lib/system/libunwind.dylib
0x000000018ab2e000 /usr/lib/system/libxpc.dylib
0x000000018ad92000 /usr/lib/libc++abi.dylib
0x0000000195819000 /usr/lib/liboah.dylib
0x00000001960ce000 /usr/lib/liblzma.5.dylib
0x000000018ba18000 /System/Library/Frameworks/SystemConfiguration.framework/Versions/A/SystemConfiguration
0x000000019584b000 /usr/lib/libfakelink.dylib
0x000000018fa59000 /System/Library/Frameworks/CFNetwork.framework/Versions/A/CFNetwork
0x0000000195992000 /usr/lib/libarchive.2.dylib
0x00000001943ae000 /System/Library/PrivateFrameworks/AppleSystemInfo.framework/Versions/A/AppleSystemInfo
0x0000000194f0e000 /usr/lib/libbsm.0.dylib
0x000000018ef91000 /usr/lib/libnetwork.dylib
0x00000001957e9000 /usr/lib/system/libkxld.dylib
0x0000000194b25000 /System/Library/PrivateFrameworks/IOMobileFramebuffer.framework/Versions/A/IOMobileFramebuffer
0x0000000208082000 /usr/lib/libCoreEntitlements.dylib
0x000000019552c000 /System/Library/PrivateFrameworks/AppleFSCompression.framework/Versions/A/AppleFSCompression
0x0000000194ef6000 /usr/lib/libcoretls.dylib
0x00000001960e7000 /usr/lib/libcoretls_cfhelpers.dylib
0x0000000195ae3000 /usr/lib/libpam.2.dylib
0x00000001912e6000 /usr/lib/libsqlite3.dylib
0x000000019614f000 /usr/lib/libxar.1.dylib
0x000000019553d000 /usr/lib/libbz2.1.0.dylib
0x0000000195850000 /usr/lib/libpcap.A.dylib
0x00000001916b5000 /usr/lib/libdns_services.dylib
0x0000000195ab6000 /usr/lib/libapple_nghttp2.dylib
0x000000019588d000 /usr/lib/libiconv.2.dylib
0x00000001957e2000 /usr/lib/libcharset.1.dylib
0x00000001922b9000 /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/FSEvents.framework/Versions/A/FSEvents
0x000000018d51e000 /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CarbonCore.framework/Versions/A/CarbonCore
0x00000001918ec000 /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/Metadata.framework/Versions/A/Metadata
0x0000000195550000 /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/OSServices.framework/Versions/A/OSServices
0x0000000195a18000 /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/SearchKit.framework/Versions/A/SearchKit
0x0000000191643000 /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/AE.framework/Versions/A/AE
0x000000018b374000 /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/LaunchServices
0x0000000196077000 /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/DictionaryServices.framework/Versions/A/DictionaryServices
0x00000001922c6000 /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/SharedFileList.framework/Versions/A/SharedFileList
0x0000000194ee6000 /usr/lib/libCheckFix.dylib
0x000000018ff99000 /System/Library/PrivateFrameworks/TCC.framework/Versions/A/TCC
0x00000001943b4000 /System/Library/PrivateFrameworks/CoreNLP.framework/Versions/A/CoreNLP
0x0000000191898000 /System/Library/PrivateFrameworks/MetadataUtilities.framework/Versions/A/MetadataUtilities
0x000000018bad1000 /usr/lib/libmecabra.dylib
0x0000000194f1f000 /usr/lib/libmecab.dylib
0x000000018ba9d000 /usr/lib/libCRFSuite.dylib
0x0000000194f7d000 /usr/lib/libgermantok.dylib
0x0000000195a8f000 /usr/lib/libThaiTokenizer.dylib
0x0000000191991000 /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vImage.framework/Versions/A/vImage
0x000000019bb47000 /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/vecLib
0x0000000196193000 /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvMisc.dylib
0x0000000194a2f000 /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvDSP.dylib
0x000000018b6f7000 /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
0x0000000195bb7000 /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libLAPACK.dylib
0x0000000194f80000 /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libLinearAlgebra.dylib
0x0000000195ace000 /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libSparseBLAS.dylib
0x0000000195bb2000 /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libQuadrature.dylib
0x00000001944ab000 /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBNNS.dylib
0x000000018b9b5000 /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libSparse.dylib
0x00000001944a3000 /System/Library/PrivateFrameworks/LinguisticData.framework/Versions/A/LinguisticData
0x000000018b96b000 /System/Library/PrivateFrameworks/Lexicon.framework/Versions/A/Lexicon
0x000000019618b000 /usr/lib/libChineseTokenizer.dylib
0x000000018c112000 /System/Library/PrivateFrameworks/LanguageModeling.framework/Versions/A/LanguageModeling
0x0000000195a91000 /System/Library/PrivateFrameworks/AppleSauce.framework/Versions/A/AppleSauce
0x0000000194b12000 /System/Library/PrivateFrameworks/CoreEmoji.framework/Versions/A/CoreEmoji
0x0000000195980000 /usr/lib/libcmph.dylib
0x0000000192299000 /System/Library/Frameworks/OpenDirectory.framework/Versions/A/Frameworks/CFOpenDirectory.framework/Versions/A/CFOpenDirectory
0x0000000192289000 /System/Library/Frameworks/OpenDirectory.framework/Versions/A/OpenDirectory
0x00000001960e9000 /System/Library/PrivateFrameworks/APFS.framework/Versions/A/APFS
0x0000000194e3e000 /System/Library/Frameworks/SecurityFoundation.framework/Versions/A/SecurityFoundation
0x000000019615d000 /usr/lib/libutil.dylib
0x000000018d853000 /System/Library/PrivateFrameworks/CoreServicesStore.framework/Versions/A/CoreServicesStore
0x0000000196161000 /usr/lib/libxslt.1.dylib
0x0000000194ed2000 /System/Library/PrivateFrameworks/BackgroundTaskManagement.framework/Versions/A/BackgroundTaskManagement
0x00000001973c4000 /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libRadiance.dylib
0x00000001973cd000 /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libJPEG.dylib
0x000000019731f000 /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libPng.dylib
0x0000000197341000 /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libTIFF.dylib
0x0000000197428000 /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libGIF.dylib
0x0000000196d6d000 /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libJP2.dylib
0x00000001964b2000 /usr/lib/libexpat.1.dylib
0x0000000196d28000 /System/Library/PrivateFrameworks/AppleJPEG.framework/Versions/A/AppleJPEG
0x00000001938d7000 /System/Library/PrivateFrameworks/FontServices.framework/libFontParser.dylib
0x00000001915e8000 /System/Library/PrivateFrameworks/RunningBoardServices.framework/Versions/A/RunningBoardServices
0x00000001a1ac4000 /System/Library/PrivateFrameworks/IOSurfaceAccelerator.framework/Versions/A/IOSurfaceAccelerator
0x0000000196e59000 /System/Library/PrivateFrameworks/WatchdogClient.framework/Versions/A/WatchdogClient
0x000000018c216000 /System/Library/Frameworks/CoreDisplay.framework/Versions/A/CoreDisplay
0x00000001937c5000 /System/Library/Frameworks/CoreMedia.framework/Versions/A/CoreMedia
0x0000000193659000 /System/Library/PrivateFrameworks/IOAccelerator.framework/Versions/A/IOAccelerator
0x0000000192427000 /System/Library/Frameworks/CoreVideo.framework/Versions/A/CoreVideo
0x0000000195ae1000 /System/Library/Frameworks/MetalPerformanceShaders.framework/Versions/A/MetalPerformanceShaders
0x0000000196e96000 /System/Library/Frameworks/VideoToolbox.framework/Versions/A/VideoToolbox
0x000000019152c000 /System/Library/PrivateFrameworks/BaseBoard.framework/Versions/A/BaseBoard
0x00000001912cb000 /System/Library/PrivateFrameworks/ProtocolBuffer.framework/Versions/A/ProtocolBuffer
0x00000001973bf000 /System/Library/PrivateFrameworks/GPUWrangler.framework/Versions/A/GPUWrangler
0x000000019739e000 /System/Library/PrivateFrameworks/IOPresentment.framework/Versions/A/IOPresentment
0x00000001973c7000 /System/Library/PrivateFrameworks/DSExternalDisplay.framework/Versions/A/DSExternalDisplay
0x00000001ec244000 /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libCoreFSCache.dylib
0x00000001f5a2f000 /System/Library/PrivateFrameworks/GPUCompiler.framework/Versions/31001/Libraries/libGPUCompilerUtils.dylib
0x000000019742d000 /System/Library/PrivateFrameworks/CMCaptureCore.framework/Versions/A/CMCaptureCore
0x0000000196a66000 /System/Library/PrivateFrameworks/AppServerSupport.framework/Versions/A/AppServerSupport
0x0000000198c06000 /System/Library/PrivateFrameworks/perfdata.framework/Versions/A/perfdata
0x000000018c336000 /System/Library/PrivateFrameworks/AudioToolboxCore.framework/Versions/A/AudioToolboxCore
0x000000019379d000 /System/Library/PrivateFrameworks/caulk.framework/Versions/A/caulk
0x00000001984fb000 /usr/lib/libAudioStatistics.dylib
0x00000001a9e18000 /System/Library/PrivateFrameworks/SystemPolicy.framework/Versions/A/SystemPolicy
0x000000019875b000 /usr/lib/libSMC.dylib
0x00000001a1330000 /System/Library/Frameworks/CoreMIDI.framework/Versions/A/CoreMIDI
0x00000001972ed000 /usr/lib/libAudioToolboxUtility.dylib
0x00000001a6245000 /System/Library/PrivateFrameworks/OSAServicesClient.framework/Versions/A/OSAServicesClient
0x0000000198c13000 /usr/lib/libperfcheck.dylib
0x00000001aa91f000 /usr/lib/libmis.dylib
0x00000001ec2a5000 /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLU.dylib
0x00000001ec264000 /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGFXShared.dylib
0x00000001ec44e000 /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib
0x00000001ec26d000 /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLImage.dylib
0x00000001ec261000 /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libCVMSPluginSupport.dylib
0x00000001ec24b000 /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libCoreVMClient.dylib
0x000000019432f000 /System/Library/Frameworks/MetalPerformanceShaders.framework/Versions/A/Frameworks/MPSCore.framework/Versions/A/MPSCore
0x000000019549f000 /System/Library/Frameworks/MetalPerformanceShaders.framework/Versions/A/Frameworks/MPSImage.framework/Versions/A/MPSImage
0x0000000194f95000 /System/Library/Frameworks/MetalPerformanceShaders.framework/Versions/A/Frameworks/MPSNeuralNetwork.framework/Versions/A/MPSNeuralNetwork
0x00000001953d2000 /System/Library/Frameworks/MetalPerformanceShaders.framework/Versions/A/Frameworks/MPSMatrix.framework/Versions/A/MPSMatrix
0x00000001951ad000 /System/Library/Frameworks/MetalPerformanceShaders.framework/Versions/A/Frameworks/MPSRayIntersector.framework/Versions/A/MPSRayIntersector
0x0000000195403000 /System/Library/Frameworks/MetalPerformanceShaders.framework/Versions/A/Frameworks/MPSNDArray.framework/Versions/A/MPSNDArray
0x00000001edf7c000 /System/Library/Frameworks/MetalPerformanceShaders.framework/Versions/A/Frameworks/MPSFunctions.framework/Versions/A/MPSFunctions
0x000000018b5d5000 /System/Library/PrivateFrameworks/MetalTools.framework/Versions/A/MetalTools
0x00000001943ac000 /System/Library/PrivateFrameworks/AggregateDictionary.framework/Versions/A/AggregateDictionary
0x0000000196298000 /usr/lib/libIOReport.dylib
0x00000001a0317000 /System/Library/PrivateFrameworks/ASEProcessing.framework/Versions/A/ASEProcessing
0x000000019660b000 /System/Library/PrivateFrameworks/FaceCore.framework/Versions/A/FaceCore
0x00000001965fd000 /System/Library/PrivateFrameworks/GraphVisualizer.framework/Versions/A/GraphVisualizer
0x00000001f5946000 /System/Library/PrivateFrameworks/FontServices.framework/Versions/A/FontServices
0x0000000196a20000 /System/Library/PrivateFrameworks/OTSVG.framework/Versions/A/OTSVG
0x0000000191ff5000 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/Resources/libFontRegistry.dylib
0x0000000196a6f000 /System/Library/PrivateFrameworks/FontServices.framework/libhvf.dylib
0x00000001f5947000 /System/Library/PrivateFrameworks/FontServices.framework/libXTFontStaticRegistryData.dylib
0x00000001ec5f0000 /System/Library/Frameworks/OpenCL.framework/Versions/A/OpenCL
0x0000000196466000 /System/Library/PrivateFrameworks/AppleVA.framework/Versions/A/AppleVA
0x0000000198523000 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/ATS
0x0000000190a8f000 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/HIServices.framework/Versions/A/HIServices
0x0000000197437000 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/PrintCore.framework/Versions/A/PrintCore
0x00000001988ae000 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/QD.framework/Versions/A/QD
0x00000001988a6000 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ColorSyncLegacy.framework/Versions/A/ColorSyncLegacy
0x000000019850f000 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/SpeechSynthesis.framework/Versions/A/SpeechSynthesis
0x00000001973f8000 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATSUI.framework/Versions/A/ATSUI
0x000000019883b000 /usr/lib/libcups.2.dylib
0x0000000198c21000 /System/Library/Frameworks/Kerberos.framework/Versions/A/Kerberos
0x0000000198c32000 /System/Library/Frameworks/GSS.framework/Versions/A/GSS
0x0000000198592000 /usr/lib/libresolv.9.dylib
0x0000000196a7d000 /System/Library/PrivateFrameworks/Heimdal.framework/Versions/A/Heimdal
0x000000019f586000 /System/Library/Frameworks/Kerberos.framework/Versions/A/Libraries/libHeimdalProxy.dylib
0x00000001916c7000 /System/Library/Frameworks/Network.framework/Versions/A/Network
0x00000001964cd000 /usr/lib/libheimdal-asn1.dylib
0x0000000198c78000 /System/Library/PrivateFrameworks/CommonAuth.framework/Versions/A/CommonAuth
0x0000000198489000 /System/Library/PrivateFrameworks/AudioSession.framework/Versions/A/AudioSession
0x000000019655e000 /System/Library/PrivateFrameworks/MediaExperience.framework/Versions/A/MediaExperience
0x0000000198311000 /System/Library/PrivateFrameworks/AudioSession.framework/libSessionUtility.dylib
0x00000001988ba000 /System/Library/PrivateFrameworks/AudioResourceArbitration.framework/Versions/A/AudioResourceArbitration
0x000000019c9c5000 /System/Library/PrivateFrameworks/PowerLog.framework/Versions/A/PowerLog
0x00000001964d6000 /System/Library/PrivateFrameworks/IconFoundation.framework/Versions/A/IconFoundation
0x000000019b773000 /System/Library/PrivateFrameworks/SpeechRecognitionCore.framework/Versions/A/SpeechRecognitionCore
0x00000001cf25b000 /System/Library/CoreServices/Encodings/libSimplifiedChineseConverter.dylib
0x00000001011b0000 /Users/gxwebsoft/Library/Java/JavaVirtualMachines/liberica-1.8.0_322/jre/lib/server/libjvm.dylib
0x00000001003f4000 /Users/gxwebsoft/Library/Java/JavaVirtualMachines/liberica-1.8.0_322/jre/lib/libverify.dylib
0x0000000100550000 /Users/gxwebsoft/Library/Java/JavaVirtualMachines/liberica-1.8.0_322/jre/lib/libjava.dylib
0x0000000100500000 /Users/gxwebsoft/Library/Java/JavaVirtualMachines/liberica-1.8.0_322/jre/lib/libinstrument.dylib
0x00000001005a0000 /Users/gxwebsoft/Library/Java/JavaVirtualMachines/liberica-1.8.0_322/jre/lib/libzip.dylib
0x00000001284fc000 /Users/gxwebsoft/Library/Java/JavaVirtualMachines/liberica-1.8.0_322/jre/lib/libnio.dylib
0x0000000128550000 /Users/gxwebsoft/Library/Java/JavaVirtualMachines/liberica-1.8.0_322/jre/lib/libnet.dylib
0x0000000128524000 /Users/gxwebsoft/Library/Java/JavaVirtualMachines/liberica-1.8.0_322/jre/lib/libmanagement.dylib
0x000000012c700000 /Users/gxwebsoft/Library/Java/JavaVirtualMachines/liberica-1.8.0_322/jre/lib/libsunec.dylib
VM Arguments:
jvm_args: -XX:TieredStopAtLevel=1 -Xverify:none -Dspring.output.ansi.enabled=always -javaagent:/Applications/IntelliJ IDEA.app/Contents/lib/idea_rt.jar=50783:/Applications/IntelliJ IDEA.app/Contents/bin -Dcom.sun.management.jmxremote -Dspring.jmx.enabled=true -Dspring.liveBeansView.mbeanDomain -Dspring.application.admin.enabled=true -Dfile.encoding=UTF-8
java_command: com.gxwebsoft.WebSoftApplication
java_class_path (initial): /Users/gxwebsoft/Library/Java/JavaVirtualMachines/liberica-1.8.0_322/jre/lib/charsets.jar:/Users/gxwebsoft/Library/Java/JavaVirtualMachines/liberica-1.8.0_322/jre/lib/ext/cldrdata.jar:/Users/gxwebsoft/Library/Java/JavaVirtualMachines/liberica-1.8.0_322/jre/lib/ext/dnsns.jar:/Users/gxwebsoft/Library/Java/JavaVirtualMachines/liberica-1.8.0_322/jre/lib/ext/jaccess.jar:/Users/gxwebsoft/Library/Java/JavaVirtualMachines/liberica-1.8.0_322/jre/lib/ext/jfxrt.jar:/Users/gxwebsoft/Library/Java/JavaVirtualMachines/liberica-1.8.0_322/jre/lib/ext/localedata.jar:/Users/gxwebsoft/Library/Java/JavaVirtualMachines/liberica-1.8.0_322/jre/lib/ext/nashorn.jar:/Users/gxwebsoft/Library/Java/JavaVirtualMachines/liberica-1.8.0_322/jre/lib/ext/sunec.jar:/Users/gxwebsoft/Library/Java/JavaVirtualMachines/liberica-1.8.0_322/jre/lib/ext/sunjce_provider.jar:/Users/gxwebsoft/Library/Java/JavaVirtualMachines/liberica-1.8.0_322/jre/lib/ext/sunpkcs11.jar:/Users/gxwebsoft/Library/Java/JavaVirtualMachines/liberica-1.8.0_322/jre/lib/ext/zipfs.jar:/Users/gxwebsoft/Library/Java/JavaVirtualMachines/liberica-1.8.0_322/jre/lib/jce.jar:/Users/gxwebsoft/Library/Java/JavaVirtualMachines/liberica-1.8.0_322/jre/lib/jfr.jar:/Users/gxwebsoft/Library/Java/JavaVirtualMachines/liberica-1.8.0_322/jre/lib/jfxswt.jar:/Users/gxwebsoft/Library/Java/JavaVirtualMachines/liberica-1.8.0_322/jre/lib/jsse.jar:/Users/gxwebsoft/Library/Java/JavaVirtualMachines/liberica-1.8.0_322/jre/lib/management-agent.jar:/Users/gxwebsoft/Library/Java/JavaVirtualMachines/liberica-1.8.0_322/jre/lib/resources.jar:/Users/gxwebsoft/Library/Java/JavaVirtualMachines/liberica-1.8.0_322/jre/lib/rt.jar:/Users/gxwebsoft/Library/Java/JavaVirtualMachines/liberica-1.8.0_322/lib/ant-javafx.jar:/Users/gxwebsoft/Library/Java/JavaVirtualMachines/liberica-1.8.0_322/lib/dt.jar:/Users/gxwebsoft/Library/Java/JavaVirtualMachines/liberica-1.8.0_322/lib/javafx-mx.jar:/Users/gxwebsoft/Library/Java/JavaVirtualMachines/liberica-1.8.0_322/lib/
Launcher Type: SUN_STANDARD
Environment Variables:
PATH=/Users/gxwebsoft/.yarn/bin:/Users/gxwebsoft/.config/yarn/global/node_modules/.bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin:/Users/gxwebsoft/Library/Application Support/JetBrains/Toolbox/scripts
SHELL=/bin/zsh
Signal Handlers:
SIGSEGV: [libjvm.dylib+0x54ffdc], sa_mask[0]=11111111011111110111111111111111, sa_flags=SA_ONSTACK|SA_RESTART|SA_SIGINFO
SIGBUS: [libjvm.dylib+0x54ffdc], sa_mask[0]=11111111011111110111111111111111, sa_flags=SA_RESTART|SA_SIGINFO
SIGFPE: [libjvm.dylib+0x44d678], sa_mask[0]=11111111011111110111111111111111, sa_flags=SA_RESTART|SA_SIGINFO
SIGPIPE: [libjvm.dylib+0x44d678], sa_mask[0]=11111111011111110111111111111111, sa_flags=SA_RESTART|SA_SIGINFO
SIGXFSZ: [libjvm.dylib+0x44d678], sa_mask[0]=11111111011111110111111111111111, sa_flags=SA_RESTART|SA_SIGINFO
SIGILL: [libjvm.dylib+0x44d678], sa_mask[0]=11111111011111110111111111111111, sa_flags=SA_RESTART|SA_SIGINFO
SIGUSR1: SIG_DFL, sa_mask[0]=00000000000000000000000000000000, sa_flags=none
SIGUSR2: [libjvm.dylib+0x44df9c], sa_mask[0]=00100000000000000000000000000000, sa_flags=SA_RESTART|SA_SIGINFO
SIGHUP: [libjvm.dylib+0x44bf28], sa_mask[0]=11111111011111110111111111111111, sa_flags=SA_RESTART|SA_SIGINFO
SIGINT: [libjvm.dylib+0x44bf28], sa_mask[0]=11111111011111110111111111111111, sa_flags=SA_RESTART|SA_SIGINFO
SIGTERM: [libjvm.dylib+0x44bf28], sa_mask[0]=11111111011111110111111111111111, sa_flags=SA_RESTART|SA_SIGINFO
SIGQUIT: [libjvm.dylib+0x44bf28], sa_mask[0]=11111111011111110111111111111111, sa_flags=SA_RESTART|SA_SIGINFO
--------------- S Y S T E M ---------------
OS:Bsduname:Darwin 21.3.0 Darwin Kernel Version 21.3.0: Wed Jan 5 21:37:58 PST 2022; root:xnu-8019.80.24~20/RELEASE_ARM64_T6000 arm64
rlimit: STACK 8176k, CORE 0k, NPROC 5333, NOFILE 10240, AS infinity
load average:4.43 4.29 4.45
CPU:total 10 (initial active 10) simd, crc, lse
Memory: 16k page, physical 33554432k(80224k free)
/proc/meminfo:
vm_info: OpenJDK 64-Bit Server VM (25.322-b06) for bsd-aarch64 JRE (1.8.0_322-b06), built on Jan 19 2022 05:50:08 by "re" with gcc Apple LLVM 12.0.0 (clang-1200.0.32.28)
time: Mon Jul 17 17:45:36 2023
timezone: CST
elapsed time: 18.208368 seconds (0d 0h 0m 18s)

310
mvnw vendored Normal file
View File

@@ -0,0 +1,310 @@
#!/bin/sh
# ----------------------------------------------------------------------------
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
# ----------------------------------------------------------------------------
# ----------------------------------------------------------------------------
# Maven Start Up Batch script
#
# Required ENV vars:
# ------------------
# JAVA_HOME - location of a JDK home dir
#
# Optional ENV vars
# -----------------
# M2_HOME - location of maven2's installed home dir
# MAVEN_OPTS - parameters passed to the Java VM when running Maven
# e.g. to debug Maven itself, use
# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
# MAVEN_SKIP_RC - flag to disable loading of mavenrc files
# ----------------------------------------------------------------------------
if [ -z "$MAVEN_SKIP_RC" ] ; then
if [ -f /etc/mavenrc ] ; then
. /etc/mavenrc
fi
if [ -f "$HOME/.mavenrc" ] ; then
. "$HOME/.mavenrc"
fi
fi
# OS specific support. $var _must_ be set to either true or false.
cygwin=false;
darwin=false;
mingw=false
case "`uname`" in
CYGWIN*) cygwin=true ;;
MINGW*) mingw=true;;
Darwin*) darwin=true
# Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
# See https://developer.apple.com/library/mac/qa/qa1170/_index.html
if [ -z "$JAVA_HOME" ]; then
if [ -x "/usr/libexec/java_home" ]; then
export JAVA_HOME="`/usr/libexec/java_home`"
else
export JAVA_HOME="/Library/Java/Home"
fi
fi
;;
esac
if [ -z "$JAVA_HOME" ] ; then
if [ -r /etc/gentoo-release ] ; then
JAVA_HOME=`java-config --jre-home`
fi
fi
if [ -z "$M2_HOME" ] ; then
## resolve links - $0 may be a link to maven's home
PRG="$0"
# need this for relative symlinks
while [ -h "$PRG" ] ; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG="`dirname "$PRG"`/$link"
fi
done
saveddir=`pwd`
M2_HOME=`dirname "$PRG"`/..
# make it fully qualified
M2_HOME=`cd "$M2_HOME" && pwd`
cd "$saveddir"
# echo Using m2 at $M2_HOME
fi
# For Cygwin, ensure paths are in UNIX format before anything is touched
if $cygwin ; then
[ -n "$M2_HOME" ] &&
M2_HOME=`cygpath --unix "$M2_HOME"`
[ -n "$JAVA_HOME" ] &&
JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
[ -n "$CLASSPATH" ] &&
CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
fi
# For Mingw, ensure paths are in UNIX format before anything is touched
if $mingw ; then
[ -n "$M2_HOME" ] &&
M2_HOME="`(cd "$M2_HOME"; pwd)`"
[ -n "$JAVA_HOME" ] &&
JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
fi
if [ -z "$JAVA_HOME" ]; then
javaExecutable="`which javac`"
if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
# readlink(1) is not available as standard on Solaris 10.
readLink=`which readlink`
if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
if $darwin ; then
javaHome="`dirname \"$javaExecutable\"`"
javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
else
javaExecutable="`readlink -f \"$javaExecutable\"`"
fi
javaHome="`dirname \"$javaExecutable\"`"
javaHome=`expr "$javaHome" : '\(.*\)/bin'`
JAVA_HOME="$javaHome"
export JAVA_HOME
fi
fi
fi
if [ -z "$JAVACMD" ] ; then
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD="$JAVA_HOME/jre/sh/java"
else
JAVACMD="$JAVA_HOME/bin/java"
fi
else
JAVACMD="`which java`"
fi
fi
if [ ! -x "$JAVACMD" ] ; then
echo "Error: JAVA_HOME is not defined correctly." >&2
echo " We cannot execute $JAVACMD" >&2
exit 1
fi
if [ -z "$JAVA_HOME" ] ; then
echo "Warning: JAVA_HOME environment variable is not set."
fi
CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
# traverses directory structure from process work directory to filesystem root
# first directory with .mvn subdirectory is considered project base directory
find_maven_basedir() {
if [ -z "$1" ]
then
echo "Path not specified to find_maven_basedir"
return 1
fi
basedir="$1"
wdir="$1"
while [ "$wdir" != '/' ] ; do
if [ -d "$wdir"/.mvn ] ; then
basedir=$wdir
break
fi
# workaround for JBEAP-8937 (on Solaris 10/Sparc)
if [ -d "${wdir}" ]; then
wdir=`cd "$wdir/.."; pwd`
fi
# end of workaround
done
echo "${basedir}"
}
# concatenates all lines of a file
concat_lines() {
if [ -f "$1" ]; then
echo "$(tr -s '\n' ' ' < "$1")"
fi
}
BASE_DIR=`find_maven_basedir "$(pwd)"`
if [ -z "$BASE_DIR" ]; then
exit 1;
fi
##########################################################################################
# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
# This allows using the maven wrapper in projects that prohibit checking in binary data.
##########################################################################################
if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then
if [ "$MVNW_VERBOSE" = true ]; then
echo "Found .mvn/wrapper/maven-wrapper.jar"
fi
else
if [ "$MVNW_VERBOSE" = true ]; then
echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
fi
if [ -n "$MVNW_REPOURL" ]; then
jarUrl="$MVNW_REPOURL/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
else
jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
fi
while IFS="=" read key value; do
case "$key" in (wrapperUrl) jarUrl="$value"; break ;;
esac
done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"
if [ "$MVNW_VERBOSE" = true ]; then
echo "Downloading from: $jarUrl"
fi
wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar"
if $cygwin; then
wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"`
fi
if command -v wget > /dev/null; then
if [ "$MVNW_VERBOSE" = true ]; then
echo "Found wget ... using wget"
fi
if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
wget "$jarUrl" -O "$wrapperJarPath"
else
wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath"
fi
elif command -v curl > /dev/null; then
if [ "$MVNW_VERBOSE" = true ]; then
echo "Found curl ... using curl"
fi
if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
curl -o "$wrapperJarPath" "$jarUrl" -f
else
curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f
fi
else
if [ "$MVNW_VERBOSE" = true ]; then
echo "Falling back to using Java to download"
fi
javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java"
# For Cygwin, switch paths to Windows format before running javac
if $cygwin; then
javaClass=`cygpath --path --windows "$javaClass"`
fi
if [ -e "$javaClass" ]; then
if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
if [ "$MVNW_VERBOSE" = true ]; then
echo " - Compiling MavenWrapperDownloader.java ..."
fi
# Compiling the Java class
("$JAVA_HOME/bin/javac" "$javaClass")
fi
if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
# Running the downloader
if [ "$MVNW_VERBOSE" = true ]; then
echo " - Running MavenWrapperDownloader.java ..."
fi
("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR")
fi
fi
fi
fi
##########################################################################################
# End of extension
##########################################################################################
export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
if [ "$MVNW_VERBOSE" = true ]; then
echo $MAVEN_PROJECTBASEDIR
fi
MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
# For Cygwin, switch paths to Windows format before running java
if $cygwin; then
[ -n "$M2_HOME" ] &&
M2_HOME=`cygpath --path --windows "$M2_HOME"`
[ -n "$JAVA_HOME" ] &&
JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
[ -n "$CLASSPATH" ] &&
CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
[ -n "$MAVEN_PROJECTBASEDIR" ] &&
MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
fi
# Provide a "standardized" way to retrieve the CLI args that will
# work with both Windows and non-Windows executions.
MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@"
export MAVEN_CMD_LINE_ARGS
WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
exec "$JAVACMD" \
$MAVEN_OPTS \
-classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
"-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"

182
mvnw.cmd vendored Normal file
View File

@@ -0,0 +1,182 @@
@REM ----------------------------------------------------------------------------
@REM Licensed to the Apache Software Foundation (ASF) under one
@REM or more contributor license agreements. See the NOTICE file
@REM distributed with this work for additional information
@REM regarding copyright ownership. The ASF licenses this file
@REM to you under the Apache License, Version 2.0 (the
@REM "License"); you may not use this file except in compliance
@REM with the License. You may obtain a copy of the License at
@REM
@REM https://www.apache.org/licenses/LICENSE-2.0
@REM
@REM Unless required by applicable law or agreed to in writing,
@REM software distributed under the License is distributed on an
@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@REM KIND, either express or implied. See the License for the
@REM specific language governing permissions and limitations
@REM under the License.
@REM ----------------------------------------------------------------------------
@REM ----------------------------------------------------------------------------
@REM Maven Start Up Batch script
@REM
@REM Required ENV vars:
@REM JAVA_HOME - location of a JDK home dir
@REM
@REM Optional ENV vars
@REM M2_HOME - location of maven2's installed home dir
@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending
@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
@REM e.g. to debug Maven itself, use
@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
@REM ----------------------------------------------------------------------------
@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
@echo off
@REM set title of command window
title %0
@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on'
@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO%
@REM set %HOME% to equivalent of $HOME
if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
@REM Execute a user defined script before this one
if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
@REM check for pre script, once with legacy .bat ending and once with .cmd ending
if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
:skipRcPre
@setlocal
set ERROR_CODE=0
@REM To isolate internal variables from possible post scripts, we use another setlocal
@setlocal
@REM ==== START VALIDATION ====
if not "%JAVA_HOME%" == "" goto OkJHome
echo.
echo Error: JAVA_HOME not found in your environment. >&2
echo Please set the JAVA_HOME variable in your environment to match the >&2
echo location of your Java installation. >&2
echo.
goto error
:OkJHome
if exist "%JAVA_HOME%\bin\java.exe" goto init
echo.
echo Error: JAVA_HOME is set to an invalid directory. >&2
echo JAVA_HOME = "%JAVA_HOME%" >&2
echo Please set the JAVA_HOME variable in your environment to match the >&2
echo location of your Java installation. >&2
echo.
goto error
@REM ==== END VALIDATION ====
:init
@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
@REM Fallback to current working directory if not found.
set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
set EXEC_DIR=%CD%
set WDIR=%EXEC_DIR%
:findBaseDir
IF EXIST "%WDIR%"\.mvn goto baseDirFound
cd ..
IF "%WDIR%"=="%CD%" goto baseDirNotFound
set WDIR=%CD%
goto findBaseDir
:baseDirFound
set MAVEN_PROJECTBASEDIR=%WDIR%
cd "%EXEC_DIR%"
goto endDetectBaseDir
:baseDirNotFound
set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
cd "%EXEC_DIR%"
:endDetectBaseDir
IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
@setlocal EnableExtensions EnableDelayedExpansion
for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
:endReadAdditionalConfig
SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
FOR /F "tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B
)
@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
if exist %WRAPPER_JAR% (
if "%MVNW_VERBOSE%" == "true" (
echo Found %WRAPPER_JAR%
)
) else (
if not "%MVNW_REPOURL%" == "" (
SET DOWNLOAD_URL="%MVNW_REPOURL%/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
)
if "%MVNW_VERBOSE%" == "true" (
echo Couldn't find %WRAPPER_JAR%, downloading it ...
echo Downloading from: %DOWNLOAD_URL%
)
powershell -Command "&{"^
"$webclient = new-object System.Net.WebClient;"^
"if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^
"$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^
"}"^
"[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^
"}"
if "%MVNW_VERBOSE%" == "true" (
echo Finished downloading %WRAPPER_JAR%
)
)
@REM End of extension
@REM Provide a "standardized" way to retrieve the CLI args that will
@REM work with both Windows and non-Windows executions.
set MAVEN_CMD_LINE_ARGS=%*
%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
if ERRORLEVEL 1 goto error
goto end
:error
set ERROR_CODE=1
:end
@endlocal & set ERROR_CODE=%ERROR_CODE%
if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
@REM check for post script, once with legacy .bat ending and once with .cmd ending
if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
:skipRcPost
@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
if "%MAVEN_BATCH_PAUSE%" == "on" pause
if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
exit /B %ERROR_CODE%

316
pom.xml Normal file
View File

@@ -0,0 +1,316 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.gxwebsoft</groupId>
<artifactId>com-gxwebsoft-server</artifactId>
<version>1.5.2</version>
<name>com-gxwebsoft-api</name>
<description>WebSoftApi project for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.4</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>
<dependencies>
<!-- spring-boot-devtools -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<!-- spring-boot-test -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- spring-boot-web -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- spring-boot-aop -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
<!-- spring-boot-configuration-processor -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
<!-- lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<!-- mysql -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<!-- druid -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.2.6</version>
</dependency>
<!-- mybatis-plus -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.3.3</version>
</dependency>
<!-- mybatis-plus 连表插件-->
<dependency>
<groupId>com.github.yulichang</groupId>
<artifactId>mybatis-plus-join-boot-starter</artifactId>
<version>1.4.5</version>
</dependency>
<!-- mybatis-plus-generator -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.4.1</version>
</dependency>
<!-- hutool -->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-core</artifactId>
<version>5.8.11</version>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-extra</artifactId>
<version>5.8.11</version>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-http</artifactId>
<version>5.8.11</version>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-crypto</artifactId>
<version>5.8.11</version>
</dependency>
<!-- easy poi -->
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-base</artifactId>
<version>4.4.0</version>
</dependency>
<!-- tika, 用于FileServer获取content-type -->
<dependency>
<groupId>org.apache.tika</groupId>
<artifactId>tika-core</artifactId>
<version>2.1.0</version>
</dependency>
<!-- open office, 用于文档转pdf实现在线预览 -->
<dependency>
<groupId>com.github.livesense</groupId>
<artifactId>jodconverter-core</artifactId>
<version>1.0.5</version>
</dependency>
<!-- spring-boot-mail -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
<!-- 模板引擎, 用于邮件、代码生成等 -->
<dependency>
<groupId>com.ibeetl</groupId>
<artifactId>beetl</artifactId>
<version>3.6.1.RELEASE</version>
</dependency>
<!-- swagger -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>
<!-- spring security -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<!-- jjwt -->
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt-impl</artifactId>
<version>0.11.2</version>
</dependency>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt-jackson</artifactId>
<version>0.11.2</version>
</dependency>
<!-- 图形验证码 -->
<dependency>
<groupId>com.github.whvcse</groupId>
<artifactId>easy-captcha</artifactId>
<version>1.6.2</version>
</dependency>
<!--Redis-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<!-- 阿里SDK -->
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>4.4.3</version>
</dependency>
<!--阿里支付 老版本 SDK-->
<dependency>
<groupId>com.alipay.sdk</groupId>
<artifactId>alipay-sdk-java</artifactId>
<version>4.35.0.ALL</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.bouncycastle/bcprov-jdk15on -->
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
<version>1.70</version>
</dependency>
<!-- https://mvnrepository.com/artifact/commons-logging/commons-logging -->
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>2.0.20</version>
</dependency>
<!--二维码-->
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>core</artifactId>
<version>3.3.3</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.0</version>
</dependency>
<dependency>
<groupId>com.vaadin.external.google</groupId>
<artifactId>android-json</artifactId>
<version>0.0.20131108.vaadin1</version>
<scope>compile</scope>
</dependency>
<!-- socketio -->
<dependency>
<groupId>com.corundumstudio.socketio</groupId>
<artifactId>netty-socketio</artifactId>
<version>2.0.2</version>
</dependency>
<!-- 微信支付 APIv3 Java SDK-->
<dependency>
<groupId>com.github.wechatpay-apiv3</groupId>
<artifactId>wechatpay-java</artifactId>
<version>0.2.9</version>
</dependency>
<dependency>
<groupId>com.github.binarywang</groupId>
<artifactId>weixin-java-miniapp</artifactId>
<version>4.5.0</version>
</dependency>
<!-- 阿里云 OSS -->
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
<version>3.17.0</version>
</dependency>
</dependencies>
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*Mapper.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**</include>
</includes>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.5.4</version>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
<repositories>
<repository>
<id>aliYunMaven</id>
<url>https://maven.aliyun.com/repository/public</url>
</repository>
</repositories>
</project>

BIN
src/.DS_Store vendored Normal file

Binary file not shown.

BIN
src/main/.DS_Store vendored Normal file

Binary file not shown.

BIN
src/main/java/.DS_Store vendored Normal file

Binary file not shown.

BIN
src/main/java/com/.DS_Store vendored Normal file

Binary file not shown.

BIN
src/main/java/com/gxwebsoft/.DS_Store vendored Normal file

Binary file not shown.

View File

@@ -0,0 +1,28 @@
package com.gxwebsoft;
import com.gxwebsoft.common.core.config.ConfigProperties;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.transaction.annotation.EnableTransactionManagement;
/**
* 启动类
* Created by WebSoft on 2018-02-22 11:29:03
*/
@EnableAsync
@EnableTransactionManagement
@MapperScan("com.gxwebsoft.**.mapper")
@EnableConfigurationProperties(ConfigProperties.class)
@SpringBootApplication
@EnableScheduling
public class WebSoftApplication {
public static void main(String[] args) {
SpringApplication.run(WebSoftApplication.class, args);
}
}

View File

@@ -0,0 +1,10 @@
package com.gxwebsoft.apps.constants;
public class EquipmentConstants {
// 事件类型
public static final String EVENT_TYPE_BIND = "电池绑定";
public static final String EVENT_TYPE_CHANGE = "电池更换";
public static final String EVENT_TYPE_UNBIND = "电池解绑";
}

View File

@@ -0,0 +1,18 @@
package com.gxwebsoft.apps.constants;
public class HualalaConstants {
// 集团ID
public static final String GROUP_ID = "1528";
// 服务器接口
public static final String API_URL = "https://www-openapi.hualala.com";
// appKey
public static final String APP_KEY = "2487";
// appSecret
public static final String APP_SECRET = "Hgr520dQpEiFe0FV";
// version
public static final Integer VERSION = 3;
// 店铺ID
public static final Long shopId = 0L;
}

View File

@@ -0,0 +1,13 @@
package com.gxwebsoft.apps.constants;
public class SfExpressConstants {
// 开发者id
public static final Long DEV_ID = 1651421896L;
// 开发者密钥
public static final String DEV_KEY = "2f10570c5057570fe0e488a425a6d813";
// 正式环境
public static final String SERVER_HOST = "https://openic.sf-express.com";
// 店铺ID
public static final String SHOP_ID = "3243279847393";
}

View File

@@ -0,0 +1,127 @@
package com.gxwebsoft.apps.controller;
import com.gxwebsoft.common.core.web.BaseController;
import com.gxwebsoft.apps.service.BcAgentService;
import com.gxwebsoft.apps.entity.BcAgent;
import com.gxwebsoft.apps.param.BcAgentParam;
import com.gxwebsoft.common.core.web.ApiResult;
import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.BatchParam;
import com.gxwebsoft.common.core.annotation.OperationLog;
import com.gxwebsoft.common.system.entity.User;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
/**
* 代报餐管理控制器
*
* @author 科技小王子
* @since 2023-04-24 19:25:59
*/
@Api(tags = "代报餐管理管理")
@RestController
@RequestMapping("/api/apps/bc-agent")
public class BcAgentController extends BaseController {
@Resource
private BcAgentService bcAgentService;
@PreAuthorize("hasAuthority('apps:bcAgent:list')")
@OperationLog
@ApiOperation("分页查询代报餐管理")
@GetMapping("/page")
public ApiResult<PageResult<BcAgent>> page(BcAgentParam param) {
// 使用关联查询
return success(bcAgentService.pageRel(param));
}
@PreAuthorize("hasAuthority('apps:bcAgent:list')")
@OperationLog
@ApiOperation("查询全部代报餐管理")
@GetMapping()
public ApiResult<List<BcAgent>> list(BcAgentParam param) {
// 使用关联查询
return success(bcAgentService.listRel(param));
}
@PreAuthorize("hasAuthority('apps:bcAgent:list')")
@OperationLog
@ApiOperation("根据id查询代报餐管理")
@GetMapping("/{id}")
public ApiResult<BcAgent> get(@PathVariable("id") Integer id) {
// 使用关联查询
return success(bcAgentService.getByIdRel(id));
}
@PreAuthorize("hasAuthority('apps:bcAgent:save')")
@OperationLog
@ApiOperation("添加代报餐管理")
@PostMapping()
public ApiResult<?> save(@RequestBody BcAgent bcAgent) {
if (bcAgentService.save(bcAgent)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('apps:bcAgent:update')")
@OperationLog
@ApiOperation("修改代报餐管理")
@PutMapping()
public ApiResult<?> update(@RequestBody BcAgent bcAgent) {
if (bcAgentService.updateById(bcAgent)) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('apps:bcAgent:remove')")
@OperationLog
@ApiOperation("删除代报餐管理")
@DeleteMapping("/{id}")
public ApiResult<?> remove(@PathVariable("id") Integer id) {
if (bcAgentService.removeById(id)) {
return success("删除成功");
}
return fail("删除失败");
}
@PreAuthorize("hasAuthority('apps:bcAgent:save')")
@OperationLog
@ApiOperation("批量添加代报餐管理")
@PostMapping("/batch")
public ApiResult<?> saveBatch(@RequestBody List<BcAgent> list) {
if (bcAgentService.saveBatch(list)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('apps:bcAgent:update')")
@OperationLog
@ApiOperation("批量修改代报餐管理")
@PutMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody BatchParam<BcAgent> batchParam) {
if (batchParam.update(bcAgentService, "agent_id")) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('apps:bcAgent:remove')")
@OperationLog
@ApiOperation("批量删除代报餐管理")
@DeleteMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody List<Integer> ids) {
if (bcAgentService.removeByIds(ids)) {
return success("删除成功");
}
return fail("删除失败");
}
}

View File

@@ -0,0 +1,254 @@
package com.gxwebsoft.apps.controller;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.gxwebsoft.apps.entity.BcCart;
import com.gxwebsoft.apps.entity.BcPlan;
import com.gxwebsoft.apps.result.CartResult;
import com.gxwebsoft.apps.service.BcPlanService;
import com.gxwebsoft.common.core.exception.BusinessException;
import com.gxwebsoft.common.core.utils.JSONUtil;
import com.gxwebsoft.common.core.web.ApiResult;
import com.gxwebsoft.common.core.web.BaseController;
import com.gxwebsoft.shop.entity.Goods;
import com.gxwebsoft.shop.entity.Order;
import com.gxwebsoft.shop.entity.OrderGoods;
import com.gxwebsoft.shop.param.CartParam;
import com.gxwebsoft.shop.service.GoodsService;
import com.gxwebsoft.shop.service.OrderGoodsService;
import com.gxwebsoft.shop.service.OrderService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.sql.Date;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
import static com.gxwebsoft.common.core.constants.OrderConstants.PAY_STATUS_SUCCESS;
/**
* 批量报餐
*
* @author 科技小王子
* @since 2022-11-25 19:04:43
*/
@Api(tags = "购物车记录表管理")
@RestController
@RequestMapping("/api/apps/bc-cart")
public class BcCartController extends BaseController {
@Resource
private GoodsService goodsService;
@Resource
private StringRedisTemplate stringRedisTemplate;
@Resource
private OrderService orderService;
@Resource
private OrderGoodsService orderGoodsService;
@Resource
private BcPlanService bcPlanService;
@ApiOperation("添加购物车")
@PostMapping("/addCart")
public ApiResult<?> addCart(@RequestBody BcCart vo) {
final Goods goods = goodsService.getById(vo.getGoodsId());
if (goods == null) {
return fail("该商品已下架");
}
// 获取当天菜单
final List<BcPlan> bcList = bcPlanService.list(new LambdaQueryWrapper<BcPlan>().eq(BcPlan::getDayTime, vo.getDeliveryTime() + " 00:00:00"));
System.out.println("bcList = " + bcList);
if (bcList != null && !CollectionUtils.isEmpty(bcList)) {
final BcPlan bcPlan = bcList.get(0);
final ArrayList<Integer> arrayList = JSONUtil.parseObject(bcPlan.getGoodsIds(), ArrayList.class);
if(!arrayList.contains(vo.getGoodsId())) {
return fail(vo.getDeliveryTime() + "没有上架" + goods.getGoodsName());
}
}
// 1. key = cache10048:cart651:2023-05-04
String key = "cache" + getTenantId() + ":cart" + getLoginUserId() + ":" + vo.getDeliveryTime();
// 2. 准备数据
vo.setImage(goods.getImage());
vo.setGoodsName(goods.getGoodsName());
vo.setComments(goods.getComments());
vo.setCategoryId(goods.getCategoryId());
vo.setGear(goods.getGear());
vo.setUserId(getLoginUserId());
// 2. 保存到购物车
stringRedisTemplate.opsForHash().put(key, vo.getGoodsId().toString(), JSONObject.toJSONString(vo));
//设置过期时间600秒
System.out.println("设置过期时间600秒 = " + key);
stringRedisTemplate.opsForHash().getOperations().expire(key,60*60*3, TimeUnit.SECONDS);
// 3. 查询购物车并返回
final List<BcCart> list = getCart(key);
final ArrayList<CartResult> cartAll = getCartAll();
return success("添加成功", cartAll);
}
@ApiOperation("查看购物车")
@PostMapping("/showCart")
public ApiResult<?> showCart() {
// System.out.println("vo = " + vo);
// 按预定日期查询
// if (vo.getDeliveryTime() != null) {
// // key = cache10048:cart651:2023-05-04
// String key = "cache" + getTenantId() + ":cart" + getLoginUserId() + ":" + vo.getDeliveryTime();
// final List<BcCart> list = getCart(key);
// return success("获取成功", list);
// }
// 查询全部购物车数据
return success("获取成功", getCartAll());
}
@ApiOperation("从购物车创建订单")
@PostMapping("/createOrder")
@Transactional(rollbackFor = {Exception.class})
public ApiResult<?> createOrder(@RequestBody CartParam param) {
// 1.判断是否代报餐
Integer userId = 0;
if (param.getAgentUserId() != null) {
userId = param.getAgentUserId();
} else {
userId = getLoginUserId();
}
// 2.从缓存读取用户的购物车数据
final ArrayList<CartResult> cartAll = getCartAll();
if (cartAll.size() == 0) {
throw new BusinessException("订单不存在");
}
// 3.批量创建订单
Integer finalUserId = userId;
final ArrayList<Object> orderIds = new ArrayList<>();
cartAll.forEach(d -> {
// 过滤空单
if (!d.getTotalNum().equals(0)) {
System.out.println("批量创建订单d = " + d);
Order order = new Order();
// 查询今日订单是否存在
final Order one = orderService.getOne(new LambdaQueryWrapper<Order>()
.eq(Order::getUserId, finalUserId)
.eq(Order::getPayStatus,PAY_STATUS_SUCCESS)
.eq(Order::getDeliveryTime, Date.valueOf(d.getDeliveryTime())));
if(one == null){
order.setOrderNo(IdUtil.getSnowflakeNextId());
order.setTotalPrice(d.getTotalPrice());
order.setOrderPrice(d.getTotalPrice());
order.setPayPrice(d.getTotalPrice());
order.setDeliveryTime(Date.valueOf(d.getDeliveryTime()));
order.setExpirationTime(DateUtil.nextMonth());
order.setIsTemporary(param.getIsTemporary());
order.setUserId(finalUserId);
order.setWeek(DateUtil.dayOfWeek(order.getDeliveryTime()) - 1);
orderService.save(order);
}else {
order.setOrderId(one.getOrderId());
}
orderIds.add(order.getOrderId());
// 添加订单商品
final List<BcCart> items = d.getItems();
final ArrayList<OrderGoods> orderGoods = new ArrayList<>();
items.forEach(g -> {
if(!g.getTotalNum().equals(0)){
final OrderGoods og = new OrderGoods();
og.setOrderId(order.getOrderId());
og.setGoodsId(g.getGoodsId());
og.setGoodsName(g.getGoodsName());
og.setImageUrl(g.getImage());
og.setTotalNum(g.getTotalNum());
og.setCategoryId(g.getCategoryId());
og.setGoodsPrice(g.getGoodsPrice());
og.setComments(g.getComments());
og.setGear(g.getGear());
og.setGoodsId(g.getGoodsId());
og.setTemporary(param.getIsTemporary());
og.setUserId(finalUserId);
// og.setDeliveryTime(order.getDeliveryTime());
orderGoods.add(og);
}
});
orderGoodsService.saveBatch(orderGoods);
}
});
// 4.清空购物车
removeCart();
return success("创建成功",orderIds);
}
@ApiOperation("清空购物车")
@GetMapping("/clearCart")
public ApiResult<?> clearCart() {
removeCart();
return success("清空成功");
}
/**
* 清空购物车
*/
private void removeCart() {
String key = "cache" + getTenantId() + ":cart" + getLoginUserId() + ":";
final Set<String> keys = stringRedisTemplate.keys(key + "*");
System.out.println("清空购物车keys = " + keys);
assert keys != null;
stringRedisTemplate.delete(keys);
}
/**
* 获取购物车数据(按预定日期)
*/
private List<BcCart> getCart(String key) {
// 获取购物车数据
List<Object> values = stringRedisTemplate.opsForHash().values(key);
return values.stream().map(item -> JSONUtil.parseObject(JSONUtil.toJSONString(item), BcCart.class)).collect(Collectors.toList());
}
/**
* 查询全部购物车数据
*/
private ArrayList<CartResult> getCartAll() {
String key = "cache" + getTenantId() + ":cart" + getLoginUserId();
Set<String> keys = stringRedisTemplate.keys(key + "*");
// System.out.println("keys = " + keys);
assert keys != null;
final ArrayList<CartResult> list = new ArrayList<>();
keys.forEach(d -> {
final List<Object> values = stringRedisTemplate.opsForHash().values(d);
final CartResult cartResult = new CartResult();
final ArrayList<BcCart> dataList = new ArrayList<>();
values.forEach(item -> {
BcCart bcCart = JSONUtil.parseObject(item.toString(), BcCart.class);
assert bcCart != null;
// System.out.println("cartResult = " + cartResult.getTotalPrice());
if (cartResult.getTotalNum() == null) {
cartResult.setTotalNum(0);
}
if (cartResult.getTotalPrice() == null) {
cartResult.setTotalPrice(new BigDecimal(0));
}
cartResult.setTotalNum(cartResult.getTotalNum() + bcCart.getTotalNum());
cartResult.setDeliveryTime(bcCart.getDeliveryTime());
cartResult.setTotalPrice(cartResult.getTotalPrice().add(bcCart.getGoodsPrice().multiply(BigDecimal.valueOf(bcCart.getTotalNum()))));
dataList.add(bcCart);
});
cartResult.setItems(dataList);
list.add(cartResult);
});
return list;
}
}

View File

@@ -0,0 +1,139 @@
package com.gxwebsoft.apps.controller;
import com.gxwebsoft.common.core.web.BaseController;
import com.gxwebsoft.apps.service.BcCookbookService;
import com.gxwebsoft.apps.entity.BcCookbook;
import com.gxwebsoft.apps.param.BcCookbookParam;
import com.gxwebsoft.common.core.web.ApiResult;
import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.BatchParam;
import com.gxwebsoft.common.core.annotation.OperationLog;
import com.gxwebsoft.common.system.entity.User;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
/**
* 常用菜谱控制器
*
* @author 科技小王子
* @since 2023-05-05 14:56:54
*/
@Api(tags = "常用菜谱管理")
@RestController
@RequestMapping("/api/apps/bc-cookbook")
public class BcCookbookController extends BaseController {
@Resource
private BcCookbookService bcCookbookService;
@PreAuthorize("hasAuthority('apps:bcCookbook:list')")
@OperationLog
@ApiOperation("分页查询常用菜谱")
@GetMapping("/page")
public ApiResult<PageResult<BcCookbook>> page(BcCookbookParam param) {
PageParam<BcCookbook, BcCookbookParam> page = new PageParam<>(param);
page.setDefaultOrder("create_time desc");
return success(bcCookbookService.page(page, page.getWrapper()));
// 使用关联查询
//return success(bcCookbookService.pageRel(param));
}
@PreAuthorize("hasAuthority('apps:bcCookbook:list')")
@OperationLog
@ApiOperation("查询全部常用菜谱")
@GetMapping()
public ApiResult<List<BcCookbook>> list(BcCookbookParam param) {
PageParam<BcCookbook, BcCookbookParam> page = new PageParam<>(param);
page.setDefaultOrder("create_time desc");
return success(bcCookbookService.list(page.getOrderWrapper()));
// 使用关联查询
//return success(bcCookbookService.listRel(param));
}
@PreAuthorize("hasAuthority('apps:bcCookbook:list')")
@OperationLog
@ApiOperation("根据id查询常用菜谱")
@GetMapping("/{id}")
public ApiResult<BcCookbook> get(@PathVariable("id") Integer id) {
return success(bcCookbookService.getById(id));
// 使用关联查询
//return success(bcCookbookService.getByIdRel(id));
}
@PreAuthorize("hasAuthority('apps:bcCookbook:save')")
@OperationLog
@ApiOperation("添加常用菜谱")
@PostMapping()
public ApiResult<?> save(@RequestBody BcCookbook bcCookbook) {
// 记录当前登录用户id、租户id、商户编号
User loginUser = getLoginUser();
if (loginUser != null) {
bcCookbook.setUserId(loginUser.getUserId());
}
if (bcCookbookService.save(bcCookbook)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('apps:bcCookbook:update')")
@OperationLog
@ApiOperation("修改常用菜谱")
@PutMapping()
public ApiResult<?> update(@RequestBody BcCookbook bcCookbook) {
if (bcCookbookService.updateById(bcCookbook)) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('apps:bcCookbook:remove')")
@OperationLog
@ApiOperation("删除常用菜谱")
@DeleteMapping("/{id}")
public ApiResult<?> remove(@PathVariable("id") Integer id) {
if (bcCookbookService.removeById(id)) {
return success("删除成功");
}
return fail("删除失败");
}
@PreAuthorize("hasAuthority('apps:bcCookbook:save')")
@OperationLog
@ApiOperation("批量添加常用菜谱")
@PostMapping("/batch")
public ApiResult<?> saveBatch(@RequestBody List<BcCookbook> list) {
if (bcCookbookService.saveBatch(list)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('apps:bcCookbook:update')")
@OperationLog
@ApiOperation("批量修改常用菜谱")
@PutMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody BatchParam<BcCookbook> batchParam) {
if (batchParam.update(bcCookbookService, "cookbook_id")) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('apps:bcCookbook:remove')")
@OperationLog
@ApiOperation("批量删除常用菜谱")
@DeleteMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody List<Integer> ids) {
if (bcCookbookService.removeByIds(ids)) {
return success("删除成功");
}
return fail("删除失败");
}
}

View File

@@ -0,0 +1,151 @@
package com.gxwebsoft.apps.controller;
import com.gxwebsoft.apps.utils.BcUtil;
import com.gxwebsoft.common.core.web.BaseController;
import com.gxwebsoft.apps.service.BcEquipmentService;
import com.gxwebsoft.apps.entity.BcEquipment;
import com.gxwebsoft.apps.param.BcEquipmentParam;
import com.gxwebsoft.common.core.web.ApiResult;
import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.BatchParam;
import com.gxwebsoft.common.core.annotation.OperationLog;
import com.gxwebsoft.common.system.entity.User;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
/**
* 报餐设备管理控制器
*
* @author 科技小王子
* @since 2023-05-02 10:34:40
*/
@Api(tags = "报餐设备管理管理")
@RestController
@RequestMapping("/api/apps/bc-equipment")
public class BcEquipmentController extends BaseController {
@Resource
private BcEquipmentService bcEquipmentService;
@Resource
private BcUtil bcUtil;
@PreAuthorize("hasAuthority('apps:bcEquipment:list')")
@OperationLog
@ApiOperation("分页查询报餐设备管理")
@GetMapping("/page")
public ApiResult<PageResult<BcEquipment>> page(BcEquipmentParam param) {
PageParam<BcEquipment, BcEquipmentParam> page = new PageParam<>(param);
page.setDefaultOrder("create_time desc");
return success(bcEquipmentService.page(page, page.getWrapper()));
// 使用关联查询
//return success(bcEquipmentService.pageRel(param));
}
@PreAuthorize("hasAuthority('apps:bcEquipment:list')")
@OperationLog
@ApiOperation("查询全部报餐设备管理")
@GetMapping()
public ApiResult<List<BcEquipment>> list(BcEquipmentParam param) {
PageParam<BcEquipment, BcEquipmentParam> page = new PageParam<>(param);
page.setDefaultOrder("create_time desc");
return success(bcEquipmentService.list(page.getOrderWrapper()));
// 使用关联查询
//return success(bcEquipmentService.listRel(param));
}
@PreAuthorize("hasAuthority('apps:bcEquipment:list')")
@OperationLog
@ApiOperation("根据id查询报餐设备管理")
@GetMapping("/{id}")
public ApiResult<BcEquipment> get(@PathVariable("id") Integer id) {
return success(bcEquipmentService.getById(id));
// 使用关联查询
//return success(bcEquipmentService.getByIdRel(id));
}
@PreAuthorize("hasAuthority('apps:bcEquipment:list')")
@OperationLog
@ApiOperation("添加报餐设备管理")
@PostMapping()
public ApiResult<?> save(@RequestBody BcEquipment bcEquipment) {
// 记录当前登录用户id、租户id、商户编号
User loginUser = getLoginUser();
if (loginUser != null) {
bcEquipment.setUserId(loginUser.getUserId());
bcEquipment.setMerchantCode(getMerchantCode());
}
if (bcEquipmentService.save(bcEquipment)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('apps:bcEquipment:list')")
@OperationLog
@ApiOperation("修改报餐设备管理")
@PutMapping()
public ApiResult<?> update(@RequestBody BcEquipment bcEquipment) {
if (bcEquipmentService.updateById(bcEquipment)) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('apps:bcEquipment:list')")
@OperationLog
@ApiOperation("删除报餐设备管理")
@DeleteMapping("/{id}")
public ApiResult<?> remove(@PathVariable("id") Integer id) {
if (bcEquipmentService.removeById(id)) {
return success("删除成功");
}
return fail("删除失败");
}
@PreAuthorize("hasAuthority('apps:bcEquipment:save')")
@OperationLog
@ApiOperation("批量添加报餐设备管理")
@PostMapping("/batch")
public ApiResult<?> saveBatch(@RequestBody List<BcEquipment> list) {
if (bcEquipmentService.saveBatch(list)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('apps:bcEquipment:update')")
@OperationLog
@ApiOperation("批量修改报餐设备管理")
@PutMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody BatchParam<BcEquipment> batchParam) {
if (batchParam.update(bcEquipmentService, "bc_equipment_id")) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('apps:bcEquipment:remove')")
@OperationLog
@ApiOperation("批量删除报餐设备管理")
@DeleteMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody List<Integer> ids) {
if (bcEquipmentService.removeByIds(ids)) {
return success("删除成功");
}
return fail("删除失败");
}
@PreAuthorize("hasAuthority('apps:bcEquipment:list')")
@ApiOperation("发送企业微信推送消息")
@PostMapping("/addSend")
public ApiResult<?> addSend(@RequestBody BcEquipment bcEquipment) {
bcUtil.send(bcEquipment.getComments());
return success("发送成功");
}
}

View File

@@ -0,0 +1,323 @@
package com.gxwebsoft.apps.controller;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.gxwebsoft.apps.entity.BcExport;
import com.gxwebsoft.apps.param.BcExportParam;
import com.gxwebsoft.apps.service.BcExportService;
import com.gxwebsoft.common.core.annotation.OperationLog;
import com.gxwebsoft.common.core.web.*;
import com.gxwebsoft.common.system.entity.User;
import com.gxwebsoft.common.system.param.UserParam;
import com.gxwebsoft.common.system.service.UserService;
import com.gxwebsoft.shop.entity.Order;
import com.gxwebsoft.shop.entity.OrderGoods;
import com.gxwebsoft.shop.service.OrderGoodsService;
import com.gxwebsoft.shop.service.OrderService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
import static com.gxwebsoft.common.core.constants.OrderConstants.DELIVERY_STATUS_YES;
import static com.gxwebsoft.common.core.constants.OrderConstants.PAY_STATUS_SUCCESS;
/**
* 报餐统计导出控制器
*
* @author 科技小王子
* @since 2023-06-01 21:47:02
*/
@Api(tags = "报餐统计导出管理")
@RestController
@RequestMapping("/api/apps/bc-export")
public class BcExportController extends BaseController {
@Resource
private BcExportService bcExportService;
@Resource
private OrderService orderService;
@Resource
private OrderGoodsService orderGoodsService;
@Resource
private UserService userService;
@PreAuthorize("hasAuthority('apps:bcExport:list')")
@OperationLog
@ApiOperation("分页查询报餐统计导出")
@GetMapping("/page")
public ApiResult<PageResult<BcExport>> page(BcExportParam param) {
PageParam<BcExport, BcExportParam> page = new PageParam<>(param);
page.setDefaultOrder("create_time desc");
return success(bcExportService.page(page, page.getWrapper()));
// 使用关联查询
//return success(bcExportService.pageRel(param));
}
@PreAuthorize("hasAuthority('apps:bcExport:list')")
@ApiOperation("查询全部报餐统计导出")
@GetMapping()
public ApiResult<List<BcExport>> list(BcExportParam param) {
LinkedList<BcExport> resutl = new LinkedList<>();
PageParam<BcExport, BcExportParam> page = new PageParam<>(param);
page.setDefaultOrder("create_time desc");
// 查询所有员工信息
final UserParam param1 = new UserParam();
param1.setOrganizationId(param.getOrganizationId());
final List<User> users = userService.listRel(param1);
if(CollectionUtils.isEmpty(users)){
return success(resutl);
}
final Set<Integer> userIds = users.stream().map(User::getUserId).collect(Collectors.toSet());
// 获取所有订单
final LambdaQueryWrapper<Order> wrapper = new LambdaQueryWrapper<Order>()
.eq(Order::getPayStatus,PAY_STATUS_SUCCESS)
.in(Order::getUserId,userIds);
if(param.getDeliveryTimeStart() == null){
System.out.println("默认查询当天 = ");
// 今天开始时间 2023-05-01 00:00:00
DateTime parse = DateUtil.parse(DateUtil.today());
wrapper.eq(Order::getDeliveryTime, parse);
}
if(StringUtils.hasText(param.getDeliveryTime())){
wrapper.eq(Order::getDeliveryTime, param.getDeliveryTime());
}
if(StringUtils.hasText(param.getDeliveryTimeStart())){
wrapper.ge(Order::getDeliveryTime, param.getDeliveryTimeStart());
}
if(StringUtils.hasText(param.getDeliveryTimeEnd())){
wrapper.le(Order::getDeliveryTime, param.getDeliveryTimeEnd());
}
final List<Order> list = orderService.list(wrapper);
if(CollectionUtils.isEmpty(list)){
return success(resutl);
}
// 获取所有订单商品
final Set<Integer> orderIds = list.stream().map(Order::getOrderId).collect(Collectors.toSet());
final List<OrderGoods> orderGoods = orderGoodsService.list(new LambdaQueryWrapper<OrderGoods>().in(OrderGoods::getOrderId, orderIds));
// 按订单分组
final Map<Integer, List<OrderGoods>> orderGoodsCollect = orderGoods.stream().collect(Collectors.groupingBy(OrderGoods::getOrderId));
// 按员工分组
final Map<Integer, List<Order>> userCollect = list.stream().collect(Collectors.groupingBy(Order::getUserId));
// 计算订餐和签到次数
int btotalCount = 0;
int btotalSingCount = 0;
int ltotalCount = 0;
int ltotalSingCount = 0;
int dtotalCount = 0;
int dtotalSingCount = 0;
BigDecimal maxTotalPrice = BigDecimal.ZERO;
int maxGear10 = 0;
int maxGear20 = 0;
int maxSignGear10 = 0;
int maxSignGear20 = 0;
for (Integer userId : userCollect.keySet()) {
final List<Order> userList = userCollect.get(userId); // 员工订单
final User user = users.stream().filter(u -> u.getUserId().equals(userId)).findFirst().get();
BcExport bcExport = new BcExport();
int bCount = 0;
int bSingCount = 0;
int lCount = 0;
int lSingCount = 0;
int dCount = 0;
int dSingCount = 0;
int gear10 = 0;
int gear20 = 0;
int signGear10 = 0;
int signGear20 = 0;
BigDecimal totalPrice = BigDecimal.ZERO;
for (Order order : userList) {
// 获取商品
totalPrice = totalPrice.add(order.getTotalPrice());
final List<OrderGoods> goodsList = orderGoodsCollect.get(order.getOrderId());
if(!CollectionUtils.isEmpty(goodsList)){
for (OrderGoods goods : goodsList) {
// 查询早餐
// 查询午餐
// 查询晚餐
if(goods.getCategoryId().equals(25)){
bCount++;
if(goods.getDeliveryStatus().equals(DELIVERY_STATUS_YES)){
bSingCount++;
}
}
if(goods.getCategoryId().equals(26)){
lCount++;
// 统计档口
if(goods.getGear().equals(10)){
gear10++;
}
if (goods.getGear().equals(20)) {
gear20++;
}
if(goods.getDeliveryStatus().equals(DELIVERY_STATUS_YES)){
lSingCount++;
// 统计档口
if(goods.getGear().equals(10)){
signGear10++;
}
if (goods.getGear().equals(20)) {
signGear20++;
}
}
}
if(goods.getCategoryId().equals(27)){
dCount++;
if(goods.getDeliveryStatus().equals(DELIVERY_STATUS_YES)){
dSingCount++;
}
}
}
}
}
btotalCount += bCount;
btotalSingCount += bSingCount;
ltotalCount += lCount;
ltotalSingCount += lSingCount;
dtotalCount += dCount;
dtotalSingCount += dSingCount;
maxTotalPrice = maxTotalPrice.add(totalPrice);
maxGear10 += gear10;
maxGear20 += gear20;
maxSignGear10 += signGear10;
maxSignGear20 += signGear20;
bcExport.setBreakfastPost(bCount);
bcExport.setBreakfastSign(bSingCount);
bcExport.setLunchPost(lCount);
bcExport.setLunchSign(lSingCount);
bcExport.setDinnerPost(dCount);
bcExport.setDinnerSign(dSingCount);
bcExport.setExpendMoney(totalPrice);
bcExport.setGear10(gear10);
bcExport.setGear20(gear20);
bcExport.setSignGear10(signGear10);
bcExport.setSignGear20(signGear20);
bcExport.setUserId(userId);
bcExport.setOrganizationName(user.getOrganizationName());
bcExport.setNickname(user.getNickname());
bcExport.setLunchPostText(lCount+"");
bcExport.setLunchSignText(lSingCount+"");
resutl.add(bcExport);
}
BcExport totalBcExport = new BcExport();
totalBcExport.setNickname("合计");
totalBcExport.setBreakfastPost(btotalCount);
totalBcExport.setBreakfastSign(btotalSingCount);
totalBcExport.setLunchPost(ltotalCount);
totalBcExport.setLunchSign(ltotalSingCount);
totalBcExport.setDinnerPost(dtotalCount);
totalBcExport.setDinnerSign(dtotalSingCount);
totalBcExport.setExpendMoney(maxTotalPrice);
totalBcExport.setGear10(maxGear10);
totalBcExport.setGear20(maxGear20);
totalBcExport.setSignGear10(maxSignGear10);
totalBcExport.setSignGear20(maxSignGear20);
totalBcExport.setLunchPostText(ltotalCount + "(" + maxGear10 + "/" + maxGear20 + ")");
totalBcExport.setLunchSignText(ltotalSingCount + "(" + maxSignGear10 + "/" + maxSignGear20 + ")");
totalBcExport.setOrganizationName("");
resutl.addFirst(totalBcExport);
return success(resutl);
}
@PreAuthorize("hasAuthority('apps:bcExport:list')")
@OperationLog
@ApiOperation("根据id查询报餐统计导出")
@GetMapping("/{id}")
public ApiResult<BcExport> get(@PathVariable("id") Integer id) {
return success(bcExportService.getById(id));
// 使用关联查询
//return success(bcExportService.getByIdRel(id));
}
@PreAuthorize("hasAuthority('apps:bcExport:save')")
@OperationLog
@ApiOperation("添加报餐统计导出")
@PostMapping()
public ApiResult<?> save(@RequestBody BcExport bcExport) {
// 记录当前登录用户id
User loginUser = getLoginUser();
if (loginUser != null) {
bcExport.setUserId(loginUser.getUserId());
}
if (bcExportService.save(bcExport)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('apps:bcExport:update')")
@OperationLog
@ApiOperation("修改报餐统计导出")
@PutMapping()
public ApiResult<?> update(@RequestBody BcExport bcExport) {
if (bcExportService.updateById(bcExport)) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('apps:bcExport:remove')")
@OperationLog
@ApiOperation("删除报餐统计导出")
@DeleteMapping("/{id}")
public ApiResult<?> remove(@PathVariable("id") Integer id) {
if (bcExportService.removeById(id)) {
return success("删除成功");
}
return fail("删除失败");
}
@PreAuthorize("hasAuthority('apps:bcExport:save')")
@OperationLog
@ApiOperation("批量添加报餐统计导出")
@PostMapping("/batch")
public ApiResult<?> saveBatch(@RequestBody List<BcExport> list) {
if (bcExportService.saveBatch(list)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('apps:bcExport:update')")
@OperationLog
@ApiOperation("批量修改报餐统计导出")
@PutMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody BatchParam<BcExport> batchParam) {
if (batchParam.update(bcExportService, "export_id")) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('apps:bcExport:remove')")
@OperationLog
@ApiOperation("批量删除报餐统计导出")
@DeleteMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody List<Integer> ids) {
if (bcExportService.removeByIds(ids)) {
return success("删除成功");
}
return fail("删除失败");
}
}

View File

@@ -0,0 +1,289 @@
package com.gxwebsoft.apps.controller;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.gxwebsoft.apps.entity.BcFood;
import com.gxwebsoft.apps.entity.BcPlan;
import com.gxwebsoft.apps.param.BcFoodParam;
import com.gxwebsoft.apps.param.BcPlanParam;
import com.gxwebsoft.apps.service.BcFoodService;
import com.gxwebsoft.apps.service.BcPlanService;
import com.gxwebsoft.common.core.annotation.OperationLog;
import com.gxwebsoft.common.core.utils.JSONUtil;
import com.gxwebsoft.common.core.web.ApiResult;
import com.gxwebsoft.common.core.web.BaseController;
import com.gxwebsoft.common.core.web.BatchParam;
import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.common.system.entity.User;
import com.gxwebsoft.shop.entity.Goods;
import com.gxwebsoft.shop.entity.Order;
import com.gxwebsoft.shop.entity.OrderGoods;
import com.gxwebsoft.shop.entity.UserReferee;
import com.gxwebsoft.shop.param.OrderGoodsParam;
import com.gxwebsoft.shop.param.OrderParam;
import com.gxwebsoft.shop.param.UserRefereeParam;
import com.gxwebsoft.shop.service.GoodsService;
import com.gxwebsoft.shop.service.OrderGoodsService;
import com.gxwebsoft.shop.service.OrderService;
import com.gxwebsoft.shop.service.UserRefereeService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import static com.gxwebsoft.common.core.constants.OrderConstants.ORDER_STATUS_DOING;
import static com.gxwebsoft.common.core.constants.OrderConstants.PAY_STATUS_SUCCESS;
/**
* 发布菜品明细控制器
*
* @author 科技小王子
* @since 2023-04-27 17:59:40
*/
@Api(tags = "发布菜品明细管理")
@RestController
@RequestMapping("/api/apps/bc-food")
public class BcFoodController extends BaseController {
@Resource
private BcFoodService bcFoodService;
@Resource
private BcPlanService bcPlanService;
@Resource
private GoodsService goodsService;
@Resource
private OrderService orderService;
@Resource
private OrderGoodsService orderGoodsService;
@Resource
private UserRefereeService userRefereeService;
@ApiOperation("查询菜品列表")
@GetMapping("/getFoodList")
public ApiResult<?> getFoodList(BcPlanParam param) {
// 验证签名
isCheckSign();
BcPlan plan = param.getOne(bcPlanService.listRel(param));
if(plan == null){
return fail("当日未发布菜品");
}
// System.out.println("查询菜品列表param = " + param);
// System.out.println("plan = " + plan);
// json转数组 如:[0,1]转为ArrayList
List<Integer> goodsIds = new ArrayList<>();
goodsIds = JSONUtil.parseObject(plan.getGoodsIds(), ArrayList.class);
final List<Goods> list = goodsService.listByIds(goodsIds);
final HashMap<String, Object> map = new HashMap<>();
map.put("week",plan.getWeek());
map.put("list",list);
return success(map);
}
@ApiOperation("查询一周菜谱")
@GetMapping("/getWeekFood")
public ApiResult<?> getWeekFood() {
// 验证签名
isCheckSign();
final HashMap<String, Object> map = new HashMap<>();
// 今天日期
final DateTime today = DateUtil.parse(DateUtil.today());
// 本周一周开始的日期
final DateTime dateTime = DateUtil.beginOfWeek(today);
// 查询本周菜谱
final List<BcPlan> list = bcPlanService.list(new LambdaQueryWrapper<BcPlan>().ge(BcPlan::getDayTime, dateTime).last("limit 0,7"));
try {
list.forEach(d -> {
// json转数组 如:[0,1]转为ArrayList
d.setGoodsList(goodsService.listByIds(JSONUtil.parseObject(d.getGoodsIds(), ArrayList.class)));
});
} catch (Exception e) {
e.printStackTrace();
}
return success(list);
}
@ApiOperation("查询代取餐人员的报餐信息")
@GetMapping("/getOthersFood")
public ApiResult<?> getOthersFood() {
// 验证签名
isCheckSign();
UserRefereeParam param = new UserRefereeParam();
param.setDealerId(getLoginUserId());
List<UserReferee> list = userRefereeService.listRel(param);
// 附加自己
final UserReferee userReferee = new UserReferee();
userReferee.setUserId(getLoginUserId());
userReferee.setNickname(getLoginUser().getNickname());
list.add(userReferee);
list.forEach(d -> {
// 查询他的订单信息
OrderParam orderParam = new OrderParam();
orderParam.setUserId(d.getUserId());
orderParam.setDeliveryTime(DateUtil.beginOfDay(DateUtil.date()).toString());
orderParam.setOrderStatus(ORDER_STATUS_DOING);
orderParam.setPayStatus(PAY_STATUS_SUCCESS);
List<Order> orders = orderService.listRel(orderParam);
orders.forEach(o -> {
// 查询菜品信息
List<OrderGoods> orderGoods = orderGoodsService.list(new LambdaQueryWrapper<OrderGoods>()
.eq(OrderGoods::getOrderId,o.getOrderId())
.gt(OrderGoods::getTotalNum,0));
o.setGoodsList(orderGoods);
});
d.setOrder(orders);
});
return success(list);
}
@ApiOperation("取消代餐")
@GetMapping("/cancel")
public ApiResult<?> cancel() {
UserRefereeParam param = new UserRefereeParam();
param.setDealerId(getLoginUserId());
List<UserReferee> list = userRefereeService.listRel(param);
list.forEach(d -> {
// 查询他的订单信息
OrderParam orderParam = new OrderParam();
orderParam.setUserId(d.getUserId());
orderParam.setDeliveryTime(DateUtil.beginOfDay(DateUtil.date()).toString());
orderParam.setPayStatus(PAY_STATUS_SUCCESS);
List<Order> orders = orderService.listRel(orderParam);
orders.forEach(o -> {
// 查询菜品信息
OrderGoodsParam goodsParam = new OrderGoodsParam();
goodsParam.setOrderId(o.getOrderId());
List<OrderGoods> orderGoods = orderGoodsService.listRel(goodsParam);
o.setGoodsList(orderGoods);
});
d.setOrder(orders);
});
return success(list);
}
@ApiOperation("查询临时报餐信息")
@GetMapping("/getTemporaryOrder")
public ApiResult<?> getTemporaryOrder(OrderParam param) {
// 验证签名
isCheckSign();
LambdaQueryWrapper<Order> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper
.eq(Order::getUserId,getLoginUserId())
.eq(Order::getPayStatus,PAY_STATUS_SUCCESS)
.eq(Order::getOrderStatus,ORDER_STATUS_DOING)
.eq(Order::getDeleted,0)
.eq(Order::getIsTemporary,1)
.eq(Order::getDeliveryTime,param.getDeliveryTime());
Order order = orderService.getOne(lambdaQueryWrapper,false);
if(order != null){
final List<OrderGoods> goods = orderGoodsService.list(new LambdaQueryWrapper<OrderGoods>().eq(OrderGoods::getOrderId, order.getOrderId()));
order.setGoodsList(goods);
return success("查询成功",order);
}
return fail("没有临时报餐数据",null);
}
@PreAuthorize("hasAuthority('apps:bcFood:list')")
@OperationLog
@ApiOperation("分页查询发布菜品明细")
@GetMapping("/page")
public ApiResult<PageResult<BcFood>> page(BcFoodParam param) {
// 使用关联查询
return success(bcFoodService.pageRel(param));
}
@PreAuthorize("hasAuthority('apps:bcFood:list')")
@OperationLog
@ApiOperation("查询全部发布菜品明细")
@GetMapping()
public ApiResult<List<BcFood>> list(BcFoodParam param) {
// 使用关联查询
return success(bcFoodService.listRel(param));
}
@PreAuthorize("hasAuthority('apps:bcFood:list')")
@OperationLog
@ApiOperation("根据id查询发布菜品明细")
@GetMapping("/{id}")
public ApiResult<BcFood> get(@PathVariable("id") Integer id) {
// 使用关联查询
return success(bcFoodService.getByIdRel(id));
}
@PreAuthorize("hasAuthority('apps:bcFood:save')")
@OperationLog
@ApiOperation("添加发布菜品明细")
@PostMapping()
public ApiResult<?> save(@RequestBody BcFood bcFood) {
// 记录当前登录用户id、租户id、商户编号
User loginUser = getLoginUser();
if (loginUser != null) {
bcFood.setUserId(loginUser.getUserId());
}
if (bcFoodService.save(bcFood)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('apps:bcFood:update')")
@OperationLog
@ApiOperation("修改发布菜品明细")
@PutMapping()
public ApiResult<?> update(@RequestBody BcFood bcFood) {
if (bcFoodService.updateById(bcFood)) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('apps:bcFood:remove')")
@OperationLog
@ApiOperation("删除发布菜品明细")
@DeleteMapping("/{id}")
public ApiResult<?> remove(@PathVariable("id") Integer id) {
if (bcFoodService.removeById(id)) {
return success("删除成功");
}
return fail("删除失败");
}
@PreAuthorize("hasAuthority('apps:bcFood:save')")
@OperationLog
@ApiOperation("批量添加发布菜品明细")
@PostMapping("/batch")
public ApiResult<?> saveBatch(@RequestBody List<BcFood> list) {
if (bcFoodService.saveBatch(list)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('apps:bcFood:update')")
@OperationLog
@ApiOperation("批量修改发布菜品明细")
@PutMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody BatchParam<BcFood> batchParam) {
if (batchParam.update(bcFoodService, "bc_food_id")) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('apps:bcFood:remove')")
@OperationLog
@ApiOperation("批量删除发布菜品明细")
@DeleteMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody List<Integer> ids) {
if (bcFoodService.removeByIds(ids)) {
return success("删除成功");
}
return fail("删除失败");
}
}

View File

@@ -0,0 +1,144 @@
package com.gxwebsoft.apps.controller;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.gxwebsoft.apps.entity.BcPlan;
import com.gxwebsoft.apps.param.BcPlanParam;
import com.gxwebsoft.apps.service.BcPlanService;
import com.gxwebsoft.common.core.annotation.OperationLog;
import com.gxwebsoft.common.core.web.ApiResult;
import com.gxwebsoft.common.core.web.BaseController;
import com.gxwebsoft.common.core.web.BatchParam;
import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.common.system.entity.User;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
/**
* 菜品发布管理控制器
*
* @author 科技小王子
* @since 2023-04-27 17:59:40
*/
@Api(tags = "菜品发布管理管理")
@RestController
@RequestMapping("/api/apps/bc-plan")
public class BcPlanController extends BaseController {
@Resource
private BcPlanService bcPlanService;
@PreAuthorize("hasAuthority('apps:bcPlan:list')")
@OperationLog
@ApiOperation("分页查询菜品发布管理")
@GetMapping("/page")
public ApiResult<PageResult<BcPlan>> page(BcPlanParam param) {
// 使用关联查询
return success(bcPlanService.pageRel(param));
}
@PreAuthorize("hasAuthority('apps:bcPlan:list')")
@OperationLog
@ApiOperation("查询全部菜品发布管理")
@GetMapping()
public ApiResult<List<BcPlan>> list(BcPlanParam param) {
// 使用关联查询
return success(bcPlanService.listRel(param));
}
@PreAuthorize("hasAuthority('apps:bcPlan:list')")
@OperationLog
@ApiOperation("根据id查询菜品发布管理")
@GetMapping("/{id}")
public ApiResult<BcPlan> get(@PathVariable("id") Integer id) {
// 使用关联查询
return success(bcPlanService.getByIdRel(id));
}
@PreAuthorize("hasAuthority('apps:bcPlan:save')")
@OperationLog
@ApiOperation("添加菜品发布管理")
@PostMapping()
public ApiResult<?> save(@RequestBody BcPlan bcPlan) {
// 记录当前登录用户id、租户id、商户编号
User loginUser = getLoginUser();
if (loginUser != null) {
bcPlan.setUserId(loginUser.getUserId());
}
if(bcPlanService.count(new LambdaQueryWrapper<BcPlan>().eq(BcPlan::getDayTime, bcPlan.getDayTime())) > 0){
return fail("当天已发布过菜品");
}
bcPlan.setWeek(DateUtil.dayOfWeek(bcPlan.getDayTime()) - 1);
if (bcPlanService.save(bcPlan)) {
return success("发布成功");
}
return fail("发布失败");
}
@PreAuthorize("hasAuthority('apps:bcPlan:update')")
@OperationLog
@ApiOperation("修改菜品发布管理")
@PutMapping()
public ApiResult<?> update(@RequestBody BcPlan bcPlan) {
System.out.println("bcPlan = " + bcPlan);
final Date dayTime = bcPlan.getDayTime();
System.out.println("dayTime = " + dayTime);
final int week = DateUtil.dayOfWeek(dayTime);
bcPlan.setWeek(week - 1);
if (bcPlanService.updateById(bcPlan)) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('apps:bcPlan:remove')")
@OperationLog
@ApiOperation("删除菜品发布管理")
@DeleteMapping("/{id}")
public ApiResult<?> remove(@PathVariable("id") Integer id) {
if (bcPlanService.removeById(id)) {
return success("删除成功");
}
return fail("删除失败");
}
@PreAuthorize("hasAuthority('apps:bcPlan:save')")
@OperationLog
@ApiOperation("批量添加菜品发布管理")
@PostMapping("/batch")
public ApiResult<?> saveBatch(@RequestBody List<BcPlan> list) {
if (bcPlanService.saveBatch(list)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('apps:bcPlan:update')")
@OperationLog
@ApiOperation("批量修改菜品发布管理")
@PutMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody BatchParam<BcPlan> batchParam) {
if (batchParam.update(bcPlanService, "bc_plan_id")) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('apps:bcPlan:remove')")
@OperationLog
@ApiOperation("批量删除菜品发布管理")
@DeleteMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody List<Integer> ids) {
if (bcPlanService.removeByIds(ids)) {
return success("删除成功");
}
return fail("删除失败");
}
}

View File

@@ -0,0 +1,342 @@
package com.gxwebsoft.apps.controller;
import cn.hutool.core.date.DateUnit;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.gxwebsoft.apps.entity.BcPlan;
import com.gxwebsoft.apps.param.BcPlanParam;
import com.gxwebsoft.apps.service.BcPlanService;
import com.gxwebsoft.common.core.utils.JSONUtil;
import com.gxwebsoft.common.core.web.ApiResult;
import com.gxwebsoft.common.core.web.BaseController;
import com.gxwebsoft.common.system.entity.User;
import com.gxwebsoft.common.system.service.OrganizationService;
import com.gxwebsoft.common.system.service.UserService;
import com.gxwebsoft.shop.entity.Goods;
import com.gxwebsoft.shop.entity.Order;
import com.gxwebsoft.shop.entity.OrderGoods;
import com.gxwebsoft.shop.param.OrderGoodsParam;
import com.gxwebsoft.shop.service.GoodsService;
import com.gxwebsoft.shop.service.OrderGoodsService;
import com.gxwebsoft.shop.service.OrderService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.stream.Collectors;
import static com.gxwebsoft.common.core.constants.OrderConstants.*;
/**
* 报餐统计控制器
*
* @author 科技小王子
* @since 2023-04-27 17:59:40
*/
@Api(tags = "报餐统计管理")
@RestController
@RequestMapping("/api/apps/bc-statistics")
public class BcStatisticsController extends BaseController {
@Resource
private GoodsService goodsService;
@Resource
private OrderService orderService;
@Resource
private OrderGoodsService orderGoodsService;
@Resource
private BcPlanService bcPlanService;
@Resource
private UserService userService;
@Resource
private OrganizationService organizationService;
@ApiOperation("预定菜品统计")
@GetMapping("/baoCanFoodCount")
public ApiResult<?> baoCanFoodCount(BcPlanParam param) {
// 验证签名
isCheckSign();
BcPlan plan = param.getOne(bcPlanService.listRel(param));
System.out.println("1查询菜品列表param = " + plan);
if (plan == null) {
return fail("当日未发布菜品");
}
// json转数组 如:[0,1]转为ArrayList
ArrayList goodsIds = JSONUtil.parseObject(plan.getGoodsIds(), ArrayList.class);
final List<Goods> list = goodsService.listByIds(goodsIds);
final ArrayList<Goods> goods = new ArrayList<>();
// 查询今日有效订单
final List<Order> orders = orderService.list(new LambdaQueryWrapper<Order>()
.eq(Order::getDeliveryTime, param.getDayTime())
.eq(Order::getPayStatus, PAY_STATUS_SUCCESS)
.ne(Order::getOrderStatus, ORDER_STATUS_CANCEL)
);
final List<Integer> orderIds = orders.stream().map(Order::getOrderId).collect(Collectors.toList());
// 整理餐段菜品数据
list.forEach(d -> {
if (d.getCategoryId().equals(param.getCategoryId())) {
final int DeliveryTimes = orderGoodsService.count(new LambdaQueryWrapper<OrderGoods>()
.in(OrderGoods::getOrderId, orderIds)
.eq(OrderGoods::getCategoryId, param.getCategoryId())
.eq(OrderGoods::getGoodsId, d.getGoodsId())
.gt(OrderGoods::getTotalNum, 0)
);
final int NoDeliveryTimes = orderGoodsService.count(new LambdaQueryWrapper<OrderGoods>()
.in(OrderGoods::getOrderId, orderIds)
.eq(OrderGoods::getCategoryId, param.getCategoryId())
.eq(OrderGoods::getGoodsId, d.getGoodsId())
.gt(OrderGoods::getTotalNum, 0)
.eq(OrderGoods::getDeliveryStatus, 10)
);
d.setDeliveryTimes(DeliveryTimes);
d.setNoDeliveryTimes(NoDeliveryTimes);
goods.add(d);
}
});
return success("查询成功", goods);
}
@ApiOperation("预定人员统计")
@GetMapping("/baoCanUserCount")
public ApiResult<?> baoCanUserCount(BcPlanParam param) {
// 验证签名
isCheckSign();
// 查询今日有效订单
final List<Order> list = orderService.list(new LambdaQueryWrapper<Order>()
.eq(Order::getDeliveryTime, param.getDayTime())
.eq(Order::getPayStatus, PAY_STATUS_SUCCESS)
.ne(Order::getOrderStatus, ORDER_STATUS_CANCEL)
);
final List<Integer> orderIds = list.stream().map(Order::getOrderId).collect(Collectors.toList());
// System.out.println("list.size() = " + list.size());
final List<OrderGoods> list25 = orderGoodsService.list(new LambdaQueryWrapper<OrderGoods>()
.in(OrderGoods::getOrderId, orderIds)
.eq(OrderGoods::getCategoryId, param.getCategoryId())
.gt(OrderGoods::getTotalNum, 0)
.eq(OrderGoods::getDeleted, 0)
);
final List<Integer> userIds25 = list25.stream().map(OrderGoods::getUserId).collect(Collectors.toList());
final List<User> users25 = userService.listByIds(userIds25);
return success("查询成功", users25);
}
@ApiOperation("报餐统计")
@GetMapping("/baoCanUsers")
public ApiResult<?> baoCanUsers(OrderGoodsParam param) {
// 验证签名
isCheckSign();
System.out.println("param = " + param);
// 修复订单商品的支付状态
// repairPayPriceStatus();
final HashMap<Object, Object> map = new HashMap<>();
LambdaQueryWrapper<Order> wrapper = new LambdaQueryWrapper<>();
// 默认查询条件
wrapper.ge(Order::getPayStatus,PAY_STATUS_SUCCESS)
.ne(Order::getOrderStatus, ORDER_STATUS_CANCEL);
// 按部门查询
if(param.getOrganizationId() != null){
System.out.println("按部门查询 = ");
final List<User> users = userService.list(new LambdaQueryWrapper<User>().eq(User::getOrganizationId,param.getOrganizationId()));
final List<Integer> collect = users.stream().map(User::getUserId).collect(Collectors.toList());
System.out.println("userIds = " + collect);
wrapper.in(Order::getUserId,collect);
}
// 是否选择日期
if(param.getDeliveryTime() == null && param.getDeliveryTimeStart() == null && param.getCategoryId() != 0){
return success("请选择预定日期",map);
}
// 按时间范围查询
if(param.getDeliveryTimeStart() != null){
// 最大只能选择一个月
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
Date date1 = df.parse(param.getDeliveryTimeStart());
Date date2 = df.parse(param.getDeliveryTimeEnd());
final boolean after = date1.after(date2);
final long between = DateUtil.between(date1, date2, DateUnit.DAY);
if(between > 30L){
return fail("超出日期查询范围");
}
System.out.println("between = " + between);
System.out.println("after = " + after);
} catch (ParseException e) {
e.printStackTrace();
}
wrapper.ge(Order::getDeliveryTime,param.getDeliveryTimeStart());
wrapper.le(Order::getDeliveryTime,param.getDeliveryTimeEnd());
}
// 按预定日期查询
if(param.getDeliveryTime() != null){
wrapper.eq(Order::getDeliveryTime,param.getDeliveryTime());
}
final List<Order> list = orderService.list(wrapper);
if(list.size() == 0){
return success("查询成功",null);
}
System.out.println("报餐统计 = " + list.size());
final List<Integer> orderIds = list.stream().map(Order::getOrderId).collect(Collectors.toList());
System.out.println("orderIds = " + orderIds.size());
LambdaQueryWrapper<OrderGoods> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(OrderGoods::getDeleted,0)
.gt(OrderGoods::getTotalNum,0)
.in(OrderGoods::getOrderId,orderIds);
if(param.getCategoryId() != null){
queryWrapper.eq(OrderGoods::getCategoryId,param.getCategoryId());
}
if(param.getGear() != null){
queryWrapper.eq(OrderGoods::getGear,param.getGear());
}
// 已报餐
final int post = orderGoodsService.count(queryWrapper);
// 已签到
queryWrapper.eq(OrderGoods::getDeliveryStatus,DELIVERY_STATUS_YES);
final int sign = orderGoodsService.count(queryWrapper);
// 未签到
int noSign = post - sign;
map.put("post",post);
map.put("sign",sign);
map.put("noSign", noSign);
return success(map);
//
//// 查询今日签到记录
// final int sign25 = orderGoodsService.count(new LambdaQueryWrapper<OrderGoods>()
// .in(OrderGoods::getOrderId, orderIds)
// .eq(OrderGoods::getCategoryId, 25)
// .eq(OrderGoods::getDeliveryStatus, 20)
// .gt(OrderGoods::getTotalNum, 0)
// .eq(OrderGoods::getDeleted, 0)
// );
// final int sign26 = orderGoodsService.count(new LambdaQueryWrapper<OrderGoods>()
// .in(OrderGoods::getOrderId, orderIds)
// .eq(OrderGoods::getCategoryId, 26)
// .eq(OrderGoods::getDeliveryStatus, 20)
// .gt(OrderGoods::getTotalNum, 0)
// .eq(OrderGoods::getDeleted, 0)
// );
// final int sign27 = orderGoodsService.count(new LambdaQueryWrapper<OrderGoods>()
// .in(OrderGoods::getOrderId, orderIds)
// .eq(OrderGoods::getCategoryId, 27)
// .eq(OrderGoods::getDeliveryStatus, 20)
// .gt(OrderGoods::getTotalNum, 0)
// .eq(OrderGoods::getDeleted, 0)
// );
//// // 查询今日报餐人数
// final int post25 = orderGoodsService.count(new LambdaQueryWrapper<OrderGoods>()
// .in(OrderGoods::getOrderId, orderIds)
// .eq(OrderGoods::getCategoryId, 25)
// .gt(OrderGoods::getTotalNum, 0)
// .eq(OrderGoods::getDeleted, 0)
// );
// final int post26 = orderGoodsService.count(new LambdaQueryWrapper<OrderGoods>()
// .in(OrderGoods::getOrderId, orderIds)
// .eq(OrderGoods::getCategoryId, 26)
// .gt(OrderGoods::getTotalNum, 0)
// .eq(OrderGoods::getDeleted, 0)
// );
// final int post27 = orderGoodsService.count(new LambdaQueryWrapper<OrderGoods>()
// .in(OrderGoods::getOrderId, orderIds)
// .eq(OrderGoods::getCategoryId, 27)
// .gt(OrderGoods::getTotalNum, 0)
// .eq(OrderGoods::getDeleted, 0)
// );
////
// map.put("breakfastSignUsers", sign25);
// map.put("lunchSignUsers", sign26);
// map.put("dinnerSignUsers", sign27);
//
// map.put("breakfastPostUsers", post25);
// map.put("lunchPostUsers", post26);
// map.put("dinnerPostUsers", post27);
}
@ApiOperation("导出报表")
@GetMapping("/export")
public ApiResult<?> export(OrderGoodsParam param) {
return success("导出报表");
}
private void repairPayPriceStatus() {
final OrderGoodsParam param = new OrderGoodsParam();
param.setUserId(0);
final List<OrderGoods> list = orderGoodsService.listRel(param);
System.out.println("修复支付状态 = " + list.size());
list.forEach(d -> {
final Order order = orderService.getById(d.getOrderId());
if (order != null) {
System.out.println("order = " + order);
d.setPayStatus(PAY_STATUS_SUCCESS);
d.setUserId(order.getUserId());
orderGoodsService.updateById(d);
} else {
orderGoodsService.removeById(d);
}
});
}
private void updateTimeByOrderGoods() {
System.out.println("修复数据 = ");
// final Order order = orderService.getById(2467);
final LambdaQueryWrapper<Order> wrapper = new LambdaQueryWrapper<>();
// wrapper.eq(Order::getTenantId,10048);
// wrapper.eq(Order::getDeleted,0);
// wrapper.eq(Order::getOrderStatus,10);
// wrapper.eq(Order::getDeliveryStatus,10);
wrapper.in(Order::getOrderId, 3184);
// wrapper.eq(Order::getPayStatus,20);
// wrapper.gt(Order::getOrderId,1000);
// wrapper.lt(Order::getOrderId,2000);
final List<Order> list = orderService.list(wrapper);
System.out.println("修复数据list = " + list.size());
list.forEach(order -> {
final OrderGoodsParam orderGoodsParam = new OrderGoodsParam();
orderGoodsParam.setOrderId(order.getOrderId());
final List<OrderGoods> goods = orderGoodsService.listRel(orderGoodsParam);
goods.forEach(d -> {
d.setDeliveryTime(order.getDeliveryTime());
d.setPayStatus(order.getPayStatus());
orderGoodsService.updateById(d);
System.out.println("修复预定时间 = " + d.getOrderId());
});
});
}
@ApiOperation("今日上架物品")
@GetMapping("/getNoGrounding")
public ApiResult<?> getNoGrounding(BcPlanParam param) {
final List<BcPlan> list = bcPlanService.list(new LambdaQueryWrapper<BcPlan>().eq(BcPlan::getDayTime, param.getDayTime()));
final BcPlan bcPlan = list.get(0);
final ArrayList arrayList = JSONUtil.parseObject(bcPlan.getGoodsIds(), ArrayList.class);
// final List<Goods> goodsList = goodsService.list(new LambdaQueryWrapper<Goods>().in(Goods::getGoodsId, arrayList));
return success("查询成功", arrayList);
}
}

View File

@@ -0,0 +1,158 @@
package com.gxwebsoft.apps.controller;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.gxwebsoft.common.core.web.BaseController;
import com.gxwebsoft.apps.service.BcTemporaryService;
import com.gxwebsoft.apps.entity.BcTemporary;
import com.gxwebsoft.apps.param.BcTemporaryParam;
import com.gxwebsoft.common.core.web.ApiResult;
import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.BatchParam;
import com.gxwebsoft.common.core.annotation.OperationLog;
import com.gxwebsoft.common.system.entity.User;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
/**
* 临时报餐管理控制器
*
* @author 科技小王子
* @since 2023-04-24 21:47:57
*/
@Api(tags = "临时报餐管理管理")
@RestController
@RequestMapping("/api/apps/bc-temporary")
public class BcTemporaryController extends BaseController {
@Resource
private BcTemporaryService bcTemporaryService;
@PreAuthorize("hasAuthority('apps:bcTemporary:list')")
@OperationLog
@ApiOperation("分页查询临时报餐管理")
@GetMapping("/page")
public ApiResult<PageResult<BcTemporary>> page(BcTemporaryParam param) {
// 使用关联查询
return success(bcTemporaryService.pageRel(param));
}
@PreAuthorize("hasAuthority('apps:bcTemporary:list')")
@OperationLog
@ApiOperation("查询全部临时报餐管理")
@GetMapping()
public ApiResult<List<BcTemporary>> list(BcTemporaryParam param) {
// 使用关联查询
return success(bcTemporaryService.listRel(param));
}
@PreAuthorize("hasAuthority('apps:bcTemporary:list')")
@OperationLog
@ApiOperation("根据id查询临时报餐管理")
@GetMapping("/{id}")
public ApiResult<BcTemporary> get(@PathVariable("id") Integer id) {
return success(bcTemporaryService.getById(id));
// 使用关联查询
//return success(bcTemporaryService.getByIdRel(id));
}
@PreAuthorize("hasAuthority('apps:bcTemporary:save')")
@OperationLog
@ApiOperation("添加临时报餐管理")
@PostMapping()
public ApiResult<?> save(@RequestBody BcTemporary bcTemporary) {
bcTemporary.setUserId(getLoginUserId());
if (bcTemporaryService.save(bcTemporary)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('apps:bcTemporary:save')")
@OperationLog
@ApiOperation("申请临时报餐")
@PostMapping("/apply")
public ApiResult<?> apply(@RequestBody BcTemporary bcTemporary) {
bcTemporary.setUserId(getLoginUserId());
final int count = bcTemporaryService.count(new LambdaQueryWrapper<BcTemporary>()
.eq(BcTemporary::getUserId, getLoginUserId())
.eq(BcTemporary::getStatus, 0)
.eq(BcTemporary::getDayTime,DateUtil.today()));
if(count > 0){
return fail("请勿重复提交");
}
final DateTime dayTime = DateUtil.parse(DateUtil.today());
bcTemporary.setDayTime(dayTime);
bcTemporary.setExpirationTime(DateUtil.offsetMinute(DateUtil.parse(DateUtil.now()), 60));
if (bcTemporaryService.save(bcTemporary)) {
return success("提交成功");
}
return fail("提交成功");
}
@PreAuthorize("hasAuthority('apps:bcTemporary:list')")
@OperationLog
@ApiOperation("修改临时报餐管理")
@PutMapping()
public ApiResult<?> update(@RequestBody BcTemporary bcTemporary) {
// 失效时间为审核通过后半个小时
bcTemporary.setExpirationTime(DateUtil.offsetMinute(DateUtil.parse(DateUtil.now()), 60));
if (bcTemporaryService.updateById(bcTemporary)) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('apps:bcTemporary:remove')")
@OperationLog
@ApiOperation("删除临时报餐管理")
@DeleteMapping("/{id}")
public ApiResult<?> remove(@PathVariable("id") Integer id) {
if (bcTemporaryService.removeById(id)) {
return success("删除成功");
}
return fail("删除失败");
}
@PreAuthorize("hasAuthority('apps:bcTemporary:save')")
@OperationLog
@ApiOperation("批量添加临时报餐管理")
@PostMapping("/batch")
public ApiResult<?> saveBatch(@RequestBody List<BcTemporary> list) {
if (bcTemporaryService.saveBatch(list)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('apps:bcTemporary:update')")
@OperationLog
@ApiOperation("批量修改临时报餐管理")
@PutMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody BatchParam<BcTemporary> batchParam) {
if (batchParam.update(bcTemporaryService, "temporary_id")) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('apps:bcTemporary:remove')")
@OperationLog
@ApiOperation("批量删除临时报餐管理")
@DeleteMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody List<Integer> ids) {
if (bcTemporaryService.removeByIds(ids)) {
return success("删除成功");
}
return fail("删除失败");
}
}

View File

@@ -0,0 +1,137 @@
package com.gxwebsoft.apps.controller;
import com.gxwebsoft.common.core.web.BaseController;
import com.gxwebsoft.apps.service.CashierService;
import com.gxwebsoft.apps.entity.Cashier;
import com.gxwebsoft.apps.param.CashierParam;
import com.gxwebsoft.common.core.web.ApiResult;
import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.BatchParam;
import com.gxwebsoft.common.core.annotation.OperationLog;
import com.gxwebsoft.common.system.entity.User;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
/**
* 海牛收银台记录表控制器
*
* @author WebSoft
* @since 2022-11-18 11:47:09
*/
@Api(tags = "海牛收银台记录表管理")
@RestController
@RequestMapping("/api/apps/cashier")
public class CashierController extends BaseController {
@Resource
private CashierService cashierService;
@PreAuthorize("hasAuthority('apps:cashier:list')")
@OperationLog
@ApiOperation("分页查询海牛收银台记录表")
@GetMapping("/page")
public ApiResult<PageResult<Cashier>> page(CashierParam param) {
PageParam<Cashier, CashierParam> page = new PageParam<>(param);
page.setDefaultOrder("create_time desc");
return success(cashierService.page(page, page.getWrapper()));
// 使用关联查询
//return success(cashierService.pageRel(param));
}
@PreAuthorize("hasAuthority('apps:cashier:list')")
@OperationLog
@ApiOperation("查询全部海牛收银台记录表")
@GetMapping()
public ApiResult<List<Cashier>> list(CashierParam param) {
PageParam<Cashier, CashierParam> page = new PageParam<>(param);
page.setDefaultOrder("create_time desc");
return success(cashierService.list(page.getOrderWrapper()));
// 使用关联查询
//return success(cashierService.listRel(param));
}
@PreAuthorize("hasAuthority('apps:cashier:list')")
@OperationLog
@ApiOperation("根据id查询海牛收银台记录表")
@GetMapping("/{id}")
public ApiResult<Cashier> get(@PathVariable("id") Integer id) {
return success(cashierService.getById(id));
// 使用关联查询
//return success(cashierService.getByIdRel(id));
}
@PreAuthorize("hasAuthority('apps:cashier:save')")
@OperationLog
@ApiOperation("添加海牛收银台记录表")
@PostMapping()
public ApiResult<?> save(@RequestBody Cashier cashier) {
if(getMerchantCode() != null){
cashier.setMerchantCode(getMerchantCode());
}
if (cashierService.save(cashier)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('apps:cashier:update')")
@OperationLog
@ApiOperation("修改海牛收银台记录表")
@PutMapping()
public ApiResult<?> update(@RequestBody Cashier cashier) {
if (cashierService.updateById(cashier)) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('apps:cashier:remove')")
@OperationLog
@ApiOperation("删除海牛收银台记录表")
@DeleteMapping("/{id}")
public ApiResult<?> remove(@PathVariable("id") Integer id) {
if (cashierService.removeById(id)) {
return success("删除成功");
}
return fail("删除失败");
}
@PreAuthorize("hasAuthority('apps:cashier:save')")
@OperationLog
@ApiOperation("批量添加海牛收银台记录表")
@PostMapping("/batch")
public ApiResult<?> saveBatch(@RequestBody List<Cashier> list) {
if (cashierService.saveBatch(list)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('apps:cashier:update')")
@OperationLog
@ApiOperation("批量修改海牛收银台记录表")
@PutMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody BatchParam<Cashier> batchParam) {
if (batchParam.update(cashierService, "cashier_id")) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('apps:cashier:remove')")
@OperationLog
@ApiOperation("批量删除海牛收银台记录表")
@DeleteMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody List<Integer> ids) {
if (cashierService.removeByIds(ids)) {
return success("删除成功");
}
return fail("删除失败");
}
}

View File

@@ -0,0 +1,140 @@
package com.gxwebsoft.apps.controller;
import com.gxwebsoft.common.core.web.BaseController;
import com.gxwebsoft.apps.service.EquipmentAlarmService;
import com.gxwebsoft.apps.entity.EquipmentAlarm;
import com.gxwebsoft.apps.param.EquipmentAlarmParam;
import com.gxwebsoft.common.core.web.ApiResult;
import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.BatchParam;
import com.gxwebsoft.common.core.annotation.OperationLog;
import com.gxwebsoft.common.system.entity.User;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
/**
* 故障报警记录控制器
*
* @author 科技小王子
* @since 2022-12-01 23:49:44
*/
@Api(tags = "故障报警记录管理")
@RestController
@RequestMapping("/api/apps/equipment-alarm")
public class EquipmentAlarmController extends BaseController {
@Resource
private EquipmentAlarmService equipmentAlarmService;
@PreAuthorize("hasAuthority('apps:equipmentAlarm:list')")
@OperationLog
@ApiOperation("分页查询故障报警记录")
@GetMapping("/page")
public ApiResult<PageResult<EquipmentAlarm>> page(EquipmentAlarmParam param) {
PageParam<EquipmentAlarm, EquipmentAlarmParam> page = new PageParam<>(param);
page.setDefaultOrder("create_time desc");
// return success(equipmentAlarmService.page(page, page.getWrapper()));
// 使用关联查询
return success(equipmentAlarmService.pageRel(param));
}
@PreAuthorize("hasAuthority('apps:equipmentAlarm:list')")
@OperationLog
@ApiOperation("查询全部故障报警记录")
@GetMapping()
public ApiResult<List<EquipmentAlarm>> list(EquipmentAlarmParam param) {
PageParam<EquipmentAlarm, EquipmentAlarmParam> page = new PageParam<>(param);
page.setDefaultOrder("create_time desc");
return success(equipmentAlarmService.list(page.getOrderWrapper()));
// 使用关联查询
//return success(equipmentAlarmService.listRel(param));
}
@PreAuthorize("hasAuthority('apps:equipmentAlarm:list')")
@OperationLog
@ApiOperation("根据id查询故障报警记录")
@GetMapping("/{id}")
public ApiResult<EquipmentAlarm> get(@PathVariable("id") Integer id) {
return success(equipmentAlarmService.getById(id));
// 使用关联查询
//return success(equipmentAlarmService.getByIdRel(id));
}
@PreAuthorize("hasAuthority('apps:equipmentAlarm:save')")
@OperationLog
@ApiOperation("添加故障报警记录")
@PostMapping()
public ApiResult<?> save(@RequestBody EquipmentAlarm equipmentAlarm) {
// 记录当前登录用户id、租户id
User loginUser = getLoginUser();
if (loginUser != null) {
equipmentAlarm.setUserId(loginUser.getUserId());
equipmentAlarm.setMerchantCode(getMerchantCode());
}
if (equipmentAlarmService.save(equipmentAlarm)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('apps:equipmentAlarm:update')")
@OperationLog
@ApiOperation("修改故障报警记录")
@PutMapping()
public ApiResult<?> update(@RequestBody EquipmentAlarm equipmentAlarm) {
if (equipmentAlarmService.updateById(equipmentAlarm)) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('apps:equipmentAlarm:remove')")
@OperationLog
@ApiOperation("删除故障报警记录")
@DeleteMapping("/{id}")
public ApiResult<?> remove(@PathVariable("id") Integer id) {
if (equipmentAlarmService.removeById(id)) {
return success("删除成功");
}
return fail("删除失败");
}
@PreAuthorize("hasAuthority('apps:equipmentAlarm:save')")
@OperationLog
@ApiOperation("批量添加故障报警记录")
@PostMapping("/batch")
public ApiResult<?> saveBatch(@RequestBody List<EquipmentAlarm> list) {
if (equipmentAlarmService.saveBatch(list)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('apps:equipmentAlarm:update')")
@OperationLog
@ApiOperation("批量修改故障报警记录")
@PutMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody BatchParam<EquipmentAlarm> batchParam) {
if (batchParam.update(equipmentAlarmService, "id")) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('apps:equipmentAlarm:remove')")
@OperationLog
@ApiOperation("批量删除故障报警记录")
@DeleteMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody List<Integer> ids) {
if (equipmentAlarmService.removeByIds(ids)) {
return success("删除成功");
}
return fail("删除失败");
}
}

View File

@@ -0,0 +1,253 @@
package com.gxwebsoft.apps.controller;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSONObject;
import com.alipay.api.AlipayApiException;
import com.alipay.api.DefaultAlipayClient;
import com.alipay.api.domain.AlipayOpenAppQrcodeCreateModel;
import com.alipay.api.request.AlipayOpenAppQrcodeCreateRequest;
import com.alipay.api.response.AlipayOpenAppQrcodeCreateResponse;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.gxwebsoft.apps.entity.Equipment;
import com.gxwebsoft.apps.entity.EquipmentRecord;
import com.gxwebsoft.apps.param.EquipmentParam;
import com.gxwebsoft.apps.service.EquipmentRecordService;
import com.gxwebsoft.apps.service.EquipmentService;
import com.gxwebsoft.common.core.annotation.OperationLog;
import com.gxwebsoft.common.core.exception.BusinessException;
import com.gxwebsoft.common.core.utils.AlipayConfigUtil;
import com.gxwebsoft.common.core.web.*;
import com.gxwebsoft.common.system.entity.User;
import com.gxwebsoft.shop.entity.Merchant;
import com.gxwebsoft.shop.entity.Order;
import com.gxwebsoft.shop.service.MerchantService;
import com.gxwebsoft.shop.service.OrderService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
import static com.gxwebsoft.apps.constants.EquipmentConstants.EVENT_TYPE_BIND;
import static com.gxwebsoft.common.core.constants.OrderConstants.*;
/**
* 设备管理控制器
*
* @author 科技小王子
* @since 2022-11-30 02:11:16
*/
@Api(tags = "设备管理管理")
@RestController
@RequestMapping("/api/apps/equipment")
public class EquipmentController extends BaseController {
@Resource
private EquipmentService equipmentService;
@Resource
private OrderService orderService;
@Resource
private AlipayConfigUtil alipayConfig;
@Resource
private MerchantService merchantService;
@Resource
private EquipmentRecordService equipmentRecordService;
@PreAuthorize("hasAuthority('apps:equipment:list')")
@OperationLog
@ApiOperation("分页查询设备管理")
@GetMapping("/page")
public ApiResult<PageResult<Equipment>> page(EquipmentParam param) {
// 使用关联查询
if (getMerchantCode() != null) {
param.setMerchantCode(getMerchantCode());
}
return success(equipmentService.pageRel(param));
}
@PreAuthorize("hasAuthority('apps:equipment:list')")
@OperationLog
@ApiOperation("查询全部设备管理")
@GetMapping()
public ApiResult<List<Equipment>> list(EquipmentParam param) {
PageParam<Equipment, EquipmentParam> page = new PageParam<>(param);
// page.setDefaultOrder("create_time desc");
// return success(equipmentService.list(page.getOrderWrapper()));
// 使用关联查询
return success(equipmentService.listRel(param));
}
@PreAuthorize("hasAuthority('apps:equipment:list')")
@OperationLog
@ApiOperation("根据id查询设备管理")
@GetMapping("/{id}")
public ApiResult<Equipment> get(@PathVariable("id") Integer id) {
// return success(equipmentService.getById(id));
// 使用关联查询
return success(equipmentService.getByIdRel(id));
}
@PreAuthorize("hasAuthority('apps:equipment:save')")
@OperationLog
@ApiOperation("添加设备管理")
@PostMapping()
public ApiResult<?> save(@RequestBody Equipment equipment) throws AlipayApiException {
// 记录当前登录用户id、租户id
User loginUser = getLoginUser();
if (getMerchantCode() != null) {
equipment.setMerchantCode(getMerchantCode());
}
if (equipmentService.count(new LambdaQueryWrapper<Equipment>()
.eq(Equipment::getEquipmentCode, equipment.getEquipmentCode())) > 0) {
return fail("设备编号已存在");
}
if (equipmentService.save(equipment)) {
// 生成二维码
String qrcode = createQrcode(equipment);
equipment.setQrcode(qrcode);
equipmentService.saveOrUpdate(equipment);
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('apps:equipment:update')")
@OperationLog
@ApiOperation("修改设备管理")
@PutMapping()
public ApiResult<?> update(@RequestBody Equipment equipment) throws AlipayApiException {
if (equipmentService.updateById(equipment)) {
// 生成二维码
String qrcode = createQrcode(equipment);
equipment.setQrcode(qrcode);
equipmentService.saveOrUpdate(equipment);
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('apps:equipment:update')")
@OperationLog
@ApiOperation("绑定设备")
@PutMapping("/bind")
public ApiResult<?> bindEquipment(@RequestBody Equipment equipment) {
final Integer orderId = equipment.getOrderId();
final Order order = orderService.getById(orderId);
Equipment one = equipmentService.getOne(new LambdaQueryWrapper<Equipment>().eq(Equipment::getEquipmentCode, equipment.getEquipmentCode()));
if(one == null){
return fail("设备不存在");
}
if(!one.getUserId().equals(0)){
return fail("该设备已被绑定");
}
Equipment saveData = new Equipment();
saveData.setEquipmentId(one.getEquipmentId());
saveData.setUserId(equipment.getUserId());
saveData.setOrderId(orderId);
if (equipmentService.updateById(saveData)) {
// 记录明细
EquipmentRecord record = new EquipmentRecord();
record.setEquipmentCode(one.getEquipmentCode());
record.setUserId(getLoginUserId());
record.setEventType(EVENT_TYPE_BIND);
record.setComments("订单号:".concat(Long.toString(order.getOrderNo())));
record.setMerchantCode(one.getMerchantCode());
equipmentRecordService.save(record);
// 订单发货
order.setDeliveryStatus(DELIVERY_STATUS_YES);
order.setOrderStatus(ORDER_STATUS_COMPLETED);
order.setReceiptStatus(RECEIPT_STATUS_YES);
order.setExpirationTime(DateUtil.nextMonth());
order.setEquipmentId(one.getEquipmentId());
orderService.updateById(order);
return success("绑定成功");
}
return fail("绑定失败");
}
@PreAuthorize("hasAuthority('apps:equipment:remove')")
@OperationLog
@ApiOperation("删除设备管理")
@DeleteMapping("/{id}")
public ApiResult<?> remove(@PathVariable("id") Integer id) {
if (equipmentService.removeById(id)) {
return success("删除成功");
}
return fail("删除失败");
}
@PreAuthorize("hasAuthority('apps:equipment:save')")
@OperationLog
@ApiOperation("批量添加设备管理")
@PostMapping("/batch")
public ApiResult<?> saveBatch(@RequestBody List<Equipment> list) {
if (equipmentService.saveBatch(list)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('apps:equipment:update')")
@OperationLog
@ApiOperation("批量修改设备管理")
@PutMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody BatchParam<Equipment> batchParam) {
if (batchParam.update(equipmentService, "equipment_id")) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('apps:equipment:remove')")
@OperationLog
@ApiOperation("批量删除设备管理")
@DeleteMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody List<Integer> ids) {
if (equipmentService.removeByIds(ids)) {
return success("删除成功");
}
return fail("删除失败");
}
// 生成支付宝小程序码
private String createQrcode(Equipment equipment) throws AlipayApiException{
// 实例化客户端
DefaultAlipayClient alipayClient = alipayConfig.alipayClient(getTenantId());
AlipayOpenAppQrcodeCreateRequest request = new AlipayOpenAppQrcodeCreateRequest();
AlipayOpenAppQrcodeCreateModel model = new AlipayOpenAppQrcodeCreateModel();
model.setUrlParam("pages/equipment/equipment");
System.out.println("equipment = " + equipment);
// __id__=2&merchantCode=M311539&merchantId=52
// pages/equipment/equipment
// Merchant merchant = merchantService.getMerchantByCode(equipment.getMerchantCode());
// if(merchant == null){
// throw new BusinessException("该商户不存在");
// }
model.setQueryParam("equipmentId=".concat(equipment.getEquipmentId().toString()));
model.setDescribe("扫码租赁电池");
request.setBizModel(model);
AlipayOpenAppQrcodeCreateResponse response = alipayClient.certificateExecute(request);
System.out.println(response.getBody());
if (response.isSuccess()) {
System.out.println("调用成功");
final JSONObject jsonObject = JSONObject.parseObject(response.getBody());
final String alipay_open_app_qrcode_create_response = jsonObject.getString("alipay_open_app_qrcode_create_response");
final JSONObject jsonObject1 = JSONObject.parseObject(alipay_open_app_qrcode_create_response);
return jsonObject1.getString("qr_code_url");
} else {
System.out.println("调用失败");
return null;
}
}
@PreAuthorize("hasAuthority('apps:equipment:update')")
@ApiOperation("确认收货")
@PostMapping("/receipt")
public ApiResult<?> receipt(@RequestBody Order order){
orderService.updateById(order);
return success("确认收货");
}
}

View File

@@ -0,0 +1,140 @@
package com.gxwebsoft.apps.controller;
import com.gxwebsoft.common.core.web.BaseController;
import com.gxwebsoft.apps.service.EquipmentFaultService;
import com.gxwebsoft.apps.entity.EquipmentFault;
import com.gxwebsoft.apps.param.EquipmentFaultParam;
import com.gxwebsoft.common.core.web.ApiResult;
import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.BatchParam;
import com.gxwebsoft.common.core.annotation.OperationLog;
import com.gxwebsoft.common.system.entity.User;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
/**
* 故障电池控制器
*
* @author 科技小王子
* @since 2022-12-01 18:40:25
*/
@Api(tags = "故障电池管理")
@RestController
@RequestMapping("/api/apps/equipment-fault")
public class EquipmentFaultController extends BaseController {
@Resource
private EquipmentFaultService equipmentFaultService;
@PreAuthorize("hasAuthority('apps:equipmentFault:list')")
@OperationLog
@ApiOperation("分页查询故障电池")
@GetMapping("/page")
public ApiResult<PageResult<EquipmentFault>> page(EquipmentFaultParam param) {
PageParam<EquipmentFault, EquipmentFaultParam> page = new PageParam<>(param);
page.setDefaultOrder("create_time desc");
// return success(equipmentFaultService.page(page, page.getWrapper()));
// 使用关联查询
return success(equipmentFaultService.pageRel(param));
}
@PreAuthorize("hasAuthority('apps:equipmentFault:list')")
@OperationLog
@ApiOperation("查询全部故障电池")
@GetMapping()
public ApiResult<List<EquipmentFault>> list(EquipmentFaultParam param) {
PageParam<EquipmentFault, EquipmentFaultParam> page = new PageParam<>(param);
page.setDefaultOrder("create_time desc");
return success(equipmentFaultService.list(page.getOrderWrapper()));
// 使用关联查询
// return success(equipmentFaultService.listRel(param));
}
@PreAuthorize("hasAuthority('apps:equipmentFault:list')")
@OperationLog
@ApiOperation("根据id查询故障电池")
@GetMapping("/{id}")
public ApiResult<EquipmentFault> get(@PathVariable("id") Integer id) {
return success(equipmentFaultService.getById(id));
// 使用关联查询
//return success(equipmentFaultService.getByIdRel(id));
}
@PreAuthorize("hasAuthority('apps:equipmentFault:save')")
@OperationLog
@ApiOperation("添加故障电池")
@PostMapping()
public ApiResult<?> save(@RequestBody EquipmentFault equipmentFault) {
// 记录当前登录用户id、租户id
User loginUser = getLoginUser();
if (loginUser != null) {
equipmentFault.setUserId(loginUser.getUserId());
equipmentFault.setMerchantCode(getMerchantCode());
}
if (equipmentFaultService.save(equipmentFault)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('apps:equipmentFault:update')")
@OperationLog
@ApiOperation("修改故障电池")
@PutMapping()
public ApiResult<?> update(@RequestBody EquipmentFault equipmentFault) {
if (equipmentFaultService.updateById(equipmentFault)) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('apps:equipmentFault:remove')")
@OperationLog
@ApiOperation("删除故障电池")
@DeleteMapping("/{id}")
public ApiResult<?> remove(@PathVariable("id") Integer id) {
if (equipmentFaultService.removeById(id)) {
return success("删除成功");
}
return fail("删除失败");
}
@PreAuthorize("hasAuthority('apps:equipmentFault:save')")
@OperationLog
@ApiOperation("批量添加故障电池")
@PostMapping("/batch")
public ApiResult<?> saveBatch(@RequestBody List<EquipmentFault> list) {
if (equipmentFaultService.saveBatch(list)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('apps:equipmentFault:update')")
@OperationLog
@ApiOperation("批量修改故障电池")
@PutMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody BatchParam<EquipmentFault> batchParam) {
if (batchParam.update(equipmentFaultService, "id")) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('apps:equipmentFault:remove')")
@OperationLog
@ApiOperation("批量删除故障电池")
@DeleteMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody List<Integer> ids) {
if (equipmentFaultService.removeByIds(ids)) {
return success("删除成功");
}
return fail("删除失败");
}
}

View File

@@ -0,0 +1,130 @@
package com.gxwebsoft.apps.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.gxwebsoft.apps.entity.Equipment;
import com.gxwebsoft.common.core.web.BaseController;
import com.gxwebsoft.apps.service.EquipmentGoodsService;
import com.gxwebsoft.apps.entity.EquipmentGoods;
import com.gxwebsoft.apps.param.EquipmentGoodsParam;
import com.gxwebsoft.common.core.web.ApiResult;
import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.BatchParam;
import com.gxwebsoft.common.core.annotation.OperationLog;
import com.gxwebsoft.common.system.entity.User;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
/**
* 电池管理记录表控制器
*
* @author 科技小王子
* @since 2023-02-28 22:40:50
*/
@Api(tags = "电池管理记录表管理")
@RestController
@RequestMapping("/api/apps/equipment-goods")
public class EquipmentGoodsController extends BaseController {
@Resource
private EquipmentGoodsService equipmentGoodsService;
@PreAuthorize("hasAuthority('apps:equipmentGoods:list')")
@OperationLog
@ApiOperation("分页查询电池管理记录表")
@GetMapping("/page")
public ApiResult<PageResult<EquipmentGoods>> page(EquipmentGoodsParam param) {
// 使用关联查询
return success(equipmentGoodsService.pageRel(param));
}
@PreAuthorize("hasAuthority('apps:equipmentGoods:list')")
@OperationLog
@ApiOperation("查询全部电池管理记录表")
@GetMapping()
public ApiResult<List<EquipmentGoods>> list(EquipmentGoodsParam param) {
// 使用关联查询
return success(equipmentGoodsService.listRel(param));
}
@PreAuthorize("hasAuthority('apps:equipmentGoods:list')")
@OperationLog
@ApiOperation("根据id查询电池管理记录表")
@GetMapping("/{id}")
public ApiResult<EquipmentGoods> get(@PathVariable("id") Integer id) {
// 使用关联查询
return success(equipmentGoodsService.getByIdRel(id));
}
@PreAuthorize("hasAuthority('apps:equipmentGoods:save')")
@OperationLog
@ApiOperation("添加电池管理记录表")
@PostMapping()
public ApiResult<?> save(@RequestBody EquipmentGoods equipmentGoods) {
System.out.println("equipmentGoods = " + equipmentGoods);
if (equipmentGoodsService.save(equipmentGoods)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('apps:equipmentGoods:update')")
@OperationLog
@ApiOperation("修改电池管理记录表")
@PutMapping()
public ApiResult<?> update(@RequestBody EquipmentGoods equipmentGoods) {
if (equipmentGoodsService.updateById(equipmentGoods)) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('apps:equipmentGoods:remove')")
@OperationLog
@ApiOperation("删除电池管理记录表")
@DeleteMapping("/{id}")
public ApiResult<?> remove(@PathVariable("id") Integer id) {
if (equipmentGoodsService.removeById(id)) {
return success("删除成功");
}
return fail("删除失败");
}
@PreAuthorize("hasAuthority('apps:equipmentGoods:save')")
@OperationLog
@ApiOperation("批量添加电池管理记录表")
@PostMapping("/batch")
public ApiResult<?> saveBatch(@RequestBody List<EquipmentGoods> list) {
if (equipmentGoodsService.saveBatch(list)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('apps:equipmentGoods:update')")
@OperationLog
@ApiOperation("批量修改电池管理记录表")
@PutMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody BatchParam<EquipmentGoods> batchParam) {
if (batchParam.update(equipmentGoodsService, "goods_id")) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('apps:equipmentGoods:remove')")
@OperationLog
@ApiOperation("批量删除电池管理记录表")
@DeleteMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody List<Integer> ids) {
if (equipmentGoodsService.removeByIds(ids)) {
return success("删除成功");
}
return fail("删除失败");
}
}

View File

@@ -0,0 +1,140 @@
package com.gxwebsoft.apps.controller;
import com.gxwebsoft.common.core.web.BaseController;
import com.gxwebsoft.apps.service.EquipmentOrderService;
import com.gxwebsoft.apps.entity.EquipmentOrder;
import com.gxwebsoft.apps.param.EquipmentOrderParam;
import com.gxwebsoft.common.core.web.ApiResult;
import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.BatchParam;
import com.gxwebsoft.common.core.annotation.OperationLog;
import com.gxwebsoft.common.system.entity.User;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
/**
* 订单记录表控制器
*
* @author 科技小王子
* @since 2023-04-14 21:24:31
*/
@Api(tags = "订单记录表管理")
@RestController
@RequestMapping("/api/apps/equipment-order")
public class EquipmentOrderController extends BaseController {
@Resource
private EquipmentOrderService equipmentOrderService;
@PreAuthorize("hasAuthority('apps:equipmentOrder:list')")
@OperationLog
@ApiOperation("分页查询订单记录表")
@GetMapping("/page")
public ApiResult<PageResult<EquipmentOrder>> page(EquipmentOrderParam param) {
// PageParam<EquipmentOrder, EquipmentOrderParam> page = new PageParam<>(param);
// page.setDefaultOrder("create_time desc");
// return success(equipmentOrderService.page(page, page.getWrapper()));
// 使用关联查询
return success(equipmentOrderService.pageRel(param));
}
@PreAuthorize("hasAuthority('apps:equipmentOrder:list')")
@OperationLog
@ApiOperation("查询全部订单记录表")
@GetMapping()
public ApiResult<List<EquipmentOrder>> list(EquipmentOrderParam param) {
PageParam<EquipmentOrder, EquipmentOrderParam> page = new PageParam<>(param);
page.setDefaultOrder("create_time desc");
return success(equipmentOrderService.list(page.getOrderWrapper()));
// 使用关联查询
//return success(equipmentOrderService.listRel(param));
}
@PreAuthorize("hasAuthority('apps:equipmentOrder:list')")
@OperationLog
@ApiOperation("根据id查询订单记录表")
@GetMapping("/{id}")
public ApiResult<EquipmentOrder> get(@PathVariable("id") Integer id) {
return success(equipmentOrderService.getById(id));
// 使用关联查询
//return success(equipmentOrderService.getByIdRel(id));
}
@PreAuthorize("hasAuthority('apps:equipmentOrder:save')")
@OperationLog
@ApiOperation("添加订单记录表")
@PostMapping()
public ApiResult<?> save(@RequestBody EquipmentOrder equipmentOrder) {
// 记录当前登录用户id、租户id、商户编号
User loginUser = getLoginUser();
if (loginUser != null) {
equipmentOrder.setUserId(loginUser.getUserId());
equipmentOrder.setMerchantCode(getMerchantCode());
}
if (equipmentOrderService.save(equipmentOrder)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('apps:equipmentOrder:update')")
@OperationLog
@ApiOperation("修改订单记录表")
@PutMapping()
public ApiResult<?> update(@RequestBody EquipmentOrder equipmentOrder) {
if (equipmentOrderService.updateById(equipmentOrder)) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('apps:equipmentOrder:remove')")
@OperationLog
@ApiOperation("删除订单记录表")
@DeleteMapping("/{id}")
public ApiResult<?> remove(@PathVariable("id") Integer id) {
if (equipmentOrderService.removeById(id)) {
return success("删除成功");
}
return fail("删除失败");
}
@PreAuthorize("hasAuthority('apps:equipmentOrder:save')")
@OperationLog
@ApiOperation("批量添加订单记录表")
@PostMapping("/batch")
public ApiResult<?> saveBatch(@RequestBody List<EquipmentOrder> list) {
if (equipmentOrderService.saveBatch(list)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('apps:equipmentOrder:update')")
@OperationLog
@ApiOperation("批量修改订单记录表")
@PutMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody BatchParam<EquipmentOrder> batchParam) {
if (batchParam.update(equipmentOrderService, "order_id")) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('apps:equipmentOrder:remove')")
@OperationLog
@ApiOperation("批量删除订单记录表")
@DeleteMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody List<Integer> ids) {
if (equipmentOrderService.removeByIds(ids)) {
return success("删除成功");
}
return fail("删除失败");
}
}

View File

@@ -0,0 +1,148 @@
package com.gxwebsoft.apps.controller;
import com.gxwebsoft.common.core.web.BaseController;
import com.gxwebsoft.apps.service.EquipmentOrderGoodsService;
import com.gxwebsoft.apps.entity.EquipmentOrderGoods;
import com.gxwebsoft.apps.param.EquipmentOrderGoodsParam;
import com.gxwebsoft.common.core.web.ApiResult;
import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.BatchParam;
import com.gxwebsoft.common.core.annotation.OperationLog;
import com.gxwebsoft.common.system.entity.User;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
/**
* 电池管理记录表控制器
*
* @author 科技小王子
* @since 2023-05-11 19:10:13
*/
@Api(tags = "电池管理记录表管理")
@RestController
@RequestMapping("/api/apps/equipment-order-goods")
public class EquipmentOrderGoodsController extends BaseController {
@Resource
private EquipmentOrderGoodsService equipmentOrderGoodsService;
@PreAuthorize("hasAuthority('apps:equipmentOrderGoods:list')")
@OperationLog
@ApiOperation("分页查询电池管理记录表")
@GetMapping("/page")
public ApiResult<PageResult<EquipmentOrderGoods>> page(EquipmentOrderGoodsParam param) {
PageParam<EquipmentOrderGoods, EquipmentOrderGoodsParam> page = new PageParam<>(param);
page.setDefaultOrder("create_time desc");
return success(equipmentOrderGoodsService.page(page, page.getWrapper()));
// 使用关联查询
//return success(equipmentOrderGoodsService.pageRel(param));
}
@PreAuthorize("hasAuthority('apps:equipmentOrderGoods:list')")
@OperationLog
@ApiOperation("查询全部电池管理记录表")
@GetMapping()
public ApiResult<List<EquipmentOrderGoods>> list(EquipmentOrderGoodsParam param) {
// PageParam<EquipmentOrderGoods, EquipmentOrderGoodsParam> page = new PageParam<>(param);
// page.setDefaultOrder("create_time desc");
// System.out.println("param = " + param);
// final EquipmentOrderGoods eog = equipmentOrderGoodsService.getById(param.getGoodsId());
// System.out.println("eog = " + eog);
// eog.setOrderId(param.getOrderId());
// equipmentOrderGoodsService.updateById(eog);
//
// final List<EquipmentOrderGoods> list = equipmentOrderGoodsService.list(page.getOrderWrapper());
//
// return success(equipmentOrderGoodsService.list(page.getOrderWrapper()));
// 使用关联查询
return success(equipmentOrderGoodsService.listRel(param));
}
@PreAuthorize("hasAuthority('apps:equipmentOrderGoods:list')")
@OperationLog
@ApiOperation("根据id查询电池管理记录表")
@GetMapping("/{id}")
public ApiResult<EquipmentOrderGoods> get(@PathVariable("id") Integer id) {
return success(equipmentOrderGoodsService.getById(id));
// 使用关联查询
//return success(equipmentOrderGoodsService.getByIdRel(id));
}
@PreAuthorize("hasAuthority('apps:equipmentOrderGoods:save')")
@OperationLog
@ApiOperation("添加电池管理记录表")
@PostMapping()
public ApiResult<?> save(@RequestBody EquipmentOrderGoods equipmentOrderGoods) {
// 记录当前登录用户id、租户id、商户编号
User loginUser = getLoginUser();
if (loginUser != null) {
equipmentOrderGoods.setUserId(loginUser.getUserId());
equipmentOrderGoods.setMerchantCode(getMerchantCode());
}
if (equipmentOrderGoodsService.save(equipmentOrderGoods)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('apps:equipmentOrderGoods:update')")
@OperationLog
@ApiOperation("修改电池管理记录表")
@PutMapping()
public ApiResult<?> update(@RequestBody EquipmentOrderGoods equipmentOrderGoods) {
if (equipmentOrderGoodsService.updateById(equipmentOrderGoods)) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('apps:equipmentOrderGoods:remove')")
@OperationLog
@ApiOperation("删除电池管理记录表")
@DeleteMapping("/{id}")
public ApiResult<?> remove(@PathVariable("id") Integer id) {
if (equipmentOrderGoodsService.removeById(id)) {
return success("删除成功");
}
return fail("删除失败");
}
@PreAuthorize("hasAuthority('apps:equipmentOrderGoods:save')")
@OperationLog
@ApiOperation("批量添加电池管理记录表")
@PostMapping("/batch")
public ApiResult<?> saveBatch(@RequestBody List<EquipmentOrderGoods> list) {
if (equipmentOrderGoodsService.saveBatch(list)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('apps:equipmentOrderGoods:update')")
@OperationLog
@ApiOperation("批量修改电池管理记录表")
@PutMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody BatchParam<EquipmentOrderGoods> batchParam) {
if (batchParam.update(equipmentOrderGoodsService, "order_goods_id")) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('apps:equipmentOrderGoods:remove')")
@OperationLog
@ApiOperation("批量删除电池管理记录表")
@DeleteMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody List<Integer> ids) {
if (equipmentOrderGoodsService.removeByIds(ids)) {
return success("删除成功");
}
return fail("删除失败");
}
}

View File

@@ -0,0 +1,144 @@
package com.gxwebsoft.apps.controller;
import com.gxwebsoft.common.core.web.BaseController;
import com.gxwebsoft.apps.service.EquipmentRecordService;
import com.gxwebsoft.apps.entity.EquipmentRecord;
import com.gxwebsoft.apps.param.EquipmentRecordParam;
import com.gxwebsoft.common.core.web.ApiResult;
import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.BatchParam;
import com.gxwebsoft.common.core.annotation.OperationLog;
import com.gxwebsoft.common.system.entity.User;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
/**
* 前世今生控制器
*
* @author 科技小王子
* @since 2022-12-03 01:23:53
*/
@Api(tags = "前世今生管理")
@RestController
@RequestMapping("/api/apps/equipment-record")
public class EquipmentRecordController extends BaseController {
@Resource
private EquipmentRecordService equipmentRecordService;
@PreAuthorize("hasAuthority('apps:equipmentRecord:list')")
@OperationLog
@ApiOperation("分页查询前世今生")
@GetMapping("/page")
public ApiResult<PageResult<EquipmentRecord>> page(EquipmentRecordParam param) {
PageParam<EquipmentRecord, EquipmentRecordParam> page = new PageParam<>(param);
// 搜索条件
if (getMerchantCode() != null) {
param.setMerchantCode(getMerchantCode());
}
// page.setDefaultOrder("create_time desc");
// return success(equipmentRecordService.page(page, page.getWrapper()));
// 使用关联查询
return success(equipmentRecordService.pageRel(param));
}
@PreAuthorize("hasAuthority('apps:equipmentRecord:list')")
@OperationLog
@ApiOperation("查询全部前世今生")
@GetMapping()
public ApiResult<List<EquipmentRecord>> list(EquipmentRecordParam param) {
PageParam<EquipmentRecord, EquipmentRecordParam> page = new PageParam<>(param);
page.setDefaultOrder("create_time desc");
// return success(equipmentRecordService.list(page.getOrderWrapper()));
// 使用关联查询
return success(equipmentRecordService.listRel(param));
}
@PreAuthorize("hasAuthority('apps:equipmentRecord:list')")
@OperationLog
@ApiOperation("根据id查询前世今生")
@GetMapping("/{id}")
public ApiResult<EquipmentRecord> get(@PathVariable("id") Integer id) {
// return success(equipmentRecordService.getById(id));
// 使用关联查询
return success(equipmentRecordService.getByIdRel(id));
}
@PreAuthorize("hasAuthority('apps:equipmentRecord:save')")
@OperationLog
@ApiOperation("添加前世今生")
@PostMapping()
public ApiResult<?> save(@RequestBody EquipmentRecord equipmentRecord) {
// 记录当前登录用户id、租户id、商户编号
User loginUser = getLoginUser();
if (loginUser != null) {
equipmentRecord.setUserId(loginUser.getUserId());
equipmentRecord.setMerchantCode(getMerchantCode());
}
if (equipmentRecordService.save(equipmentRecord)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('apps:equipmentRecord:update')")
@OperationLog
@ApiOperation("修改前世今生")
@PutMapping()
public ApiResult<?> update(@RequestBody EquipmentRecord equipmentRecord) {
if (equipmentRecordService.updateById(equipmentRecord)) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('apps:equipmentRecord:remove')")
@OperationLog
@ApiOperation("删除前世今生")
@DeleteMapping("/{id}")
public ApiResult<?> remove(@PathVariable("id") Integer id) {
if (equipmentRecordService.removeById(id)) {
return success("删除成功");
}
return fail("删除失败");
}
@PreAuthorize("hasAuthority('apps:equipmentRecord:save')")
@OperationLog
@ApiOperation("批量添加前世今生")
@PostMapping("/batch")
public ApiResult<?> saveBatch(@RequestBody List<EquipmentRecord> list) {
if (equipmentRecordService.saveBatch(list)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('apps:equipmentRecord:update')")
@OperationLog
@ApiOperation("批量修改前世今生")
@PutMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody BatchParam<EquipmentRecord> batchParam) {
if (batchParam.update(equipmentRecordService, "id")) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('apps:equipmentRecord:remove')")
@OperationLog
@ApiOperation("批量删除前世今生")
@DeleteMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody List<Integer> ids) {
if (equipmentRecordService.removeByIds(ids)) {
return success("删除成功");
}
return fail("删除失败");
}
}

View File

@@ -0,0 +1,134 @@
package com.gxwebsoft.apps.controller;
import com.gxwebsoft.common.core.web.BaseController;
import com.gxwebsoft.apps.service.HualalaCardBenefitsService;
import com.gxwebsoft.apps.entity.HualalaCardBenefits;
import com.gxwebsoft.apps.param.HualalaCardBenefitsParam;
import com.gxwebsoft.common.core.web.ApiResult;
import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.BatchParam;
import com.gxwebsoft.common.core.annotation.OperationLog;
import com.gxwebsoft.common.system.entity.User;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
/**
* 会员权益控制器
*
* @author 科技小王子
* @since 2023-01-08 12:22:50
*/
@Api(tags = "会员权益管理")
@RestController
@RequestMapping("/api/apps/hualala-card-benefits")
public class HualalaCardBenefitsController extends BaseController {
@Resource
private HualalaCardBenefitsService hualalaCardBenefitsService;
@PreAuthorize("hasAuthority('apps:hualalaCardBenefits:list')")
@OperationLog
@ApiOperation("分页查询会员权益")
@GetMapping("/page")
public ApiResult<PageResult<HualalaCardBenefits>> page(HualalaCardBenefitsParam param) {
PageParam<HualalaCardBenefits, HualalaCardBenefitsParam> page = new PageParam<>(param);
page.setDefaultOrder("create_time desc");
return success(hualalaCardBenefitsService.page(page, page.getWrapper()));
// 使用关联查询
//return success(hualalaCardBenefitsService.pageRel(param));
}
@PreAuthorize("hasAuthority('apps:hualalaCardBenefits:list')")
@OperationLog
@ApiOperation("查询全部会员权益")
@GetMapping()
public ApiResult<List<HualalaCardBenefits>> list(HualalaCardBenefitsParam param) {
PageParam<HualalaCardBenefits, HualalaCardBenefitsParam> page = new PageParam<>(param);
page.setDefaultOrder("create_time desc");
return success(hualalaCardBenefitsService.list(page.getOrderWrapper()));
// 使用关联查询
//return success(hualalaCardBenefitsService.listRel(param));
}
@PreAuthorize("hasAuthority('apps:hualalaCardBenefits:list')")
@OperationLog
@ApiOperation("根据id查询会员权益")
@GetMapping("/{id}")
public ApiResult<HualalaCardBenefits> get(@PathVariable("id") Integer id) {
return success(hualalaCardBenefitsService.getById(id));
// 使用关联查询
//return success(hualalaCardBenefitsService.getByIdRel(id));
}
@PreAuthorize("hasAuthority('apps:hualalaCardBenefits:save')")
@OperationLog
@ApiOperation("添加会员权益")
@PostMapping()
public ApiResult<?> save(@RequestBody HualalaCardBenefits hualalaCardBenefits) {
if (hualalaCardBenefitsService.save(hualalaCardBenefits)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('apps:hualalaCardBenefits:update')")
@OperationLog
@ApiOperation("修改会员权益")
@PutMapping()
public ApiResult<?> update(@RequestBody HualalaCardBenefits hualalaCardBenefits) {
if (hualalaCardBenefitsService.updateById(hualalaCardBenefits)) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('apps:hualalaCardBenefits:remove')")
@OperationLog
@ApiOperation("删除会员权益")
@DeleteMapping("/{id}")
public ApiResult<?> remove(@PathVariable("id") Integer id) {
if (hualalaCardBenefitsService.removeById(id)) {
return success("删除成功");
}
return fail("删除失败");
}
@PreAuthorize("hasAuthority('apps:hualalaCardBenefits:save')")
@OperationLog
@ApiOperation("批量添加会员权益")
@PostMapping("/batch")
public ApiResult<?> saveBatch(@RequestBody List<HualalaCardBenefits> list) {
if (hualalaCardBenefitsService.saveBatch(list)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('apps:hualalaCardBenefits:update')")
@OperationLog
@ApiOperation("批量修改会员权益")
@PutMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody BatchParam<HualalaCardBenefits> batchParam) {
if (batchParam.update(hualalaCardBenefitsService, "id")) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('apps:hualalaCardBenefits:remove')")
@OperationLog
@ApiOperation("批量删除会员权益")
@DeleteMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody List<Integer> ids) {
if (hualalaCardBenefitsService.removeByIds(ids)) {
return success("删除成功");
}
return fail("删除失败");
}
}

View File

@@ -0,0 +1,140 @@
package com.gxwebsoft.apps.controller;
import com.gxwebsoft.common.core.web.BaseController;
import com.gxwebsoft.apps.service.HualalaCardService;
import com.gxwebsoft.apps.entity.HualalaCard;
import com.gxwebsoft.apps.param.HualalaCardParam;
import com.gxwebsoft.common.core.web.ApiResult;
import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.BatchParam;
import com.gxwebsoft.common.core.annotation.OperationLog;
import com.gxwebsoft.common.system.entity.User;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
/**
* 控制器
*
* @author 科技小王子
* @since 2023-01-08 12:22:50
*/
@Api(tags = "管理")
@RestController
@RequestMapping("/api/apps/hualala-card")
public class HualalaCardController extends BaseController {
@Resource
private HualalaCardService hualalaCardService;
@PreAuthorize("hasAuthority('apps:hualalaCard:list')")
@OperationLog
@ApiOperation("分页查询")
@GetMapping("/page")
public ApiResult<PageResult<HualalaCard>> page(HualalaCardParam param) {
PageParam<HualalaCard, HualalaCardParam> page = new PageParam<>(param);
page.setDefaultOrder("create_time desc");
return success(hualalaCardService.page(page, page.getWrapper()));
// 使用关联查询
//return success(hualalaCardService.pageRel(param));
}
@PreAuthorize("hasAuthority('apps:hualalaCard:list')")
@OperationLog
@ApiOperation("查询全部")
@GetMapping()
public ApiResult<List<HualalaCard>> list(HualalaCardParam param) {
PageParam<HualalaCard, HualalaCardParam> page = new PageParam<>(param);
page.setDefaultOrder("create_time desc");
return success(hualalaCardService.list(page.getOrderWrapper()));
// 使用关联查询
//return success(hualalaCardService.listRel(param));
}
@PreAuthorize("hasAuthority('apps:hualalaCard:list')")
@OperationLog
@ApiOperation("根据id查询")
@GetMapping("/{id}")
public ApiResult<HualalaCard> get(@PathVariable("id") Integer id) {
return success(hualalaCardService.getById(id));
// 使用关联查询
//return success(hualalaCardService.getByIdRel(id));
}
@PreAuthorize("hasAuthority('apps:hualalaCard:save')")
@OperationLog
@ApiOperation("添加")
@PostMapping()
public ApiResult<?> save(@RequestBody HualalaCard hualalaCard) {
// 记录当前登录用户id、租户id、商户编号
User loginUser = getLoginUser();
if (loginUser != null) {
hualalaCard.setUserId(loginUser.getUserId());
hualalaCard.setMerchantCode(getMerchantCode());
}
if (hualalaCardService.save(hualalaCard)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('apps:hualalaCard:update')")
@OperationLog
@ApiOperation("修改")
@PutMapping()
public ApiResult<?> update(@RequestBody HualalaCard hualalaCard) {
if (hualalaCardService.updateById(hualalaCard)) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('apps:hualalaCard:remove')")
@OperationLog
@ApiOperation("删除")
@DeleteMapping("/{id}")
public ApiResult<?> remove(@PathVariable("id") Integer id) {
if (hualalaCardService.removeById(id)) {
return success("删除成功");
}
return fail("删除失败");
}
@PreAuthorize("hasAuthority('apps:hualalaCard:save')")
@OperationLog
@ApiOperation("批量添加")
@PostMapping("/batch")
public ApiResult<?> saveBatch(@RequestBody List<HualalaCard> list) {
if (hualalaCardService.saveBatch(list)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('apps:hualalaCard:update')")
@OperationLog
@ApiOperation("批量修改")
@PutMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody BatchParam<HualalaCard> batchParam) {
if (batchParam.update(hualalaCardService, "id")) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('apps:hualalaCard:remove')")
@OperationLog
@ApiOperation("批量删除")
@DeleteMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody List<Integer> ids) {
if (hualalaCardService.removeByIds(ids)) {
return success("删除成功");
}
return fail("删除失败");
}
}

View File

@@ -0,0 +1,240 @@
package com.gxwebsoft.apps.controller;
import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.digest.DigestUtil;
import cn.hutool.http.HttpUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.gxwebsoft.apps.entity.HualalaFood;
import com.gxwebsoft.apps.entity.HualalaShop;
import com.gxwebsoft.apps.entity.ItemVo;
import com.gxwebsoft.apps.result.*;
import com.gxwebsoft.apps.service.HualalaFoodService;
import com.gxwebsoft.apps.service.HualalaService;
import com.gxwebsoft.apps.service.HualalaShopService;
import com.gxwebsoft.common.core.utils.CacheClient;
import com.gxwebsoft.common.core.utils.JSONUtil;
import com.gxwebsoft.common.core.web.ApiResult;
import com.gxwebsoft.common.core.web.BaseController;
import com.gxwebsoft.common.system.entity.User;
import com.gxwebsoft.shop.entity.Order;
import com.gxwebsoft.shop.entity.OrderGoods;
import com.gxwebsoft.shop.param.OrderParam;
import com.gxwebsoft.shop.service.OrderGoodsService;
import com.gxwebsoft.shop.service.OrderService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.val;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.http.*;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.client.RestTemplate;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.math.BigDecimal;
import java.util.*;
import java.util.stream.Collectors;
import static com.gxwebsoft.common.core.constants.OrderConstants.PAY_STATUS_SUCCESS;
import static com.gxwebsoft.common.core.constants.RedisConstants.*;
/**
* 哗啦啦-购物车
* 教程参考 https://blog.csdn.net/qq_34383510/article/details/127824628
* @author 科技小王子
* @since 2022-11-25 12:55:33
*/
@Api(tags = "哗啦啦-购物车")
@RestController
@RequestMapping("/api/apps/hualala-cart")
public class HualalaCart extends BaseController {
@Resource
private StringRedisTemplate stringRedisTemplate;
@Resource
private CacheClient cacheClient;
@Resource
private HualalaService hualalaService;
@Resource
private HualalaFoodService hualalaFoodService;
@Resource
private OrderService orderService;
@Resource
private OrderGoodsService orderGoodsService;
@Resource
private HualalaShopService hualalaShopService;
@ApiOperation("我的购物车")
@GetMapping()
public ApiResult<?> cart(ItemVo param) {
String key = getKey(param.getShopId());
return success("查询成功",showCart(key));
}
@ApiOperation("添加购物车")
@PostMapping("/addCart")
public ApiResult<?> addCart(@RequestBody ItemVo param) {
String key = getKey(param.getShopId());
cacheClient.hPut(key,param.getFoodId().toString(),JSONUtil.toJSONString(param));
return success("添加成功",showCart(key));
}
@ApiOperation("生成订单并清空购物车")
@PostMapping("/createOrder")
public ApiResult<?> createOrder(@RequestBody Order order){
String key = getKey(order.getShopId().toString());
// 记录当前登录用户id、租户id
User loginUser = getLoginUser();
if (loginUser != null) {
order.setUserId(loginUser.getUserId());
}
order.setMerchantCode(order.getShopId().toString());
order.setPayMethod("通联支付");
if (orderService.save(order)) {
// 添加订单商品
List<Object> hValues = cacheClient.hValues(key);
hValues.forEach(d -> {
JSONObject json = JSONObject.parseObject(d.toString());
OrderGoods orderGoods = new OrderGoods();
orderGoods.setOrderId(order.getOrderId());
orderGoods.setGoodsName(json.getString("foodName"));
orderGoods.setImageUrl(json.getString("imge"));
orderGoods.setTotalNum(Integer.valueOf(json.getString("num")));
orderGoods.setGoodsId(Integer.valueOf(json.getString("foodId")));
orderGoods.setGoodsSkuId(json.getString("foodUnitID"));
orderGoods.setUserId(getLoginUserId());
BigDecimal totalPrice = new BigDecimal(json.getString("price"));
orderGoods.setTotalPrice(totalPrice);
orderGoods.setTenantId(getTenantId());
orderGoodsService.save(orderGoods);
});
// 清空购物车
cacheClient.delete(key);
return success("订单创建成功",order);
}
return fail("订单创建失败");
}
@ApiOperation("通联支付")
@PostMapping("/allinPay")
public ApiResult<?> allinPay(@RequestBody Order order){
Order orderInfo = orderService.getById(order.getOrderId());
System.out.println("orderInfo = " + orderInfo);
final HualalaShop shop = hualalaShopService.getByIdRel(orderInfo.getShopId());
final String payMerchantNo = shop.getPayMerchantNo();
final String paySecret = shop.getPaySecret();
System.out.println("payMerchantNo = " + payMerchantNo);
System.out.println("paySecret = " + paySecret);
// 正式接口
String url = "https://interface.allinpaygx.com/api/access/payInterface/unifiedPay";
// 测试接口
// String url = "https://interfacetest.allinpaygx.com/api/access/payInterface/unifiedPay";
// System.out.println("接口地址 = " + url);
// map传参数
Map<String, Object> map = new HashMap<>();
// 计算金额
final BigDecimal orderPrice = orderInfo.getOrderPrice().multiply(new BigDecimal(100));
final int amount = Integer.parseInt(orderPrice.stripTrailingZeros().toPlainString());
map.put("merchantNo", payMerchantNo); // 正式商户
// map.put("merchantNo", "113201120053"); // 测试商户113201120053
map.put("merchantOrderNo", orderInfo.getOrderNo());
map.put("amount",String.valueOf(amount));
map.put("notifyUrl","https://open.gxwebsoft.com/api/apps/hualala-cart/payNotify");
map.put("payType","W06S");
// 附加签名
String sign = getSign(map,paySecret);
System.out.println("sign = " + sign);
map.put("sign",sign);
System.out.println("请求参数 = " + map);
String result = HttpUtil.post(url,map);
System.out.println("result = " + result);
JSONObject resultObj = JSON.parseObject(result);
JSONObject payinfo = JSON.parseObject(resultObj.getString("payinfo"));
System.out.println("payinfo = " + payinfo);
return success("支付参数",payinfo);
}
public static String getSign(Map<String, Object> treeMap, String paySecret) {
// String secret = paySecret; // 正式秘钥
// String secret = "aceb62c896d849c89d1c8b9a4416d1a7"; // 测试秘钥
TreeMap<String, String> tMap = new TreeMap<>();
for (Map.Entry<String, Object> entry : treeMap.entrySet()) {
if (!StrUtil.isEmpty(entry.getValue().toString()) && !entry.getKey().equals("sign")) {
tMap.put(entry.getKey(), entry.getValue().toString());
}
}
StringBuffer buf = new StringBuffer();
for (String key : tMap.keySet()) {
buf.append(key).append(treeMap.get(key));
}
buf.append(paySecret);
System.out.println("buf = " + buf);
return DigestUtil.md5Hex(buf.toString()).toUpperCase();
}
@ApiOperation("通联支付")
@PostMapping("/payNotify")
public String payNotify(@RequestParam Map<String, String> params){
// 支付成功
if (orderService.allinPay(params)) {
return "success";
}
return "error";
}
@ApiOperation("交易查询")
@PostMapping("/findOrderInfo")
public ApiResult<?> findOrderInfo(@RequestBody Order order){
final Order data = orderService.getByOutTradeNo(order.getOrderNo().toString());
return success("查询结果",data);
}
// 获取Key
private String getKey(String shopId) {
return HLL_CART_FOOD_KEY.concat(shopId).concat(":").concat(getLoginUserId().toString());
}
private OperateVo showCart(String key){
// 获取购物车数据
List<Object> values = cacheClient.hValues(key);
// System.out.println("values = " + values);
List<ItemVo> collect = values.stream().map(item -> JSONUtil.parseObject(JSONUtil.toJSONString(item), ItemVo.class)).collect(Collectors.toList());
// System.out.println("collect = " + collect);
// 封装数据结果
OperateVo operateVo = new OperateVo();
operateVo.setTotalNum(0);
operateVo.setTotalPrice(BigDecimal.valueOf(0));
operateVo.setItems(collect);
collect.forEach(d -> {
// System.out.println("operateVo.getTotalNum() + d.getNum() = " + operateVo.getTotalNum() + d.getNum());
operateVo.setTotalNum(operateVo.getTotalNum()+d.getNum());
operateVo.setTotalPrice(operateVo.getTotalPrice().add(d.getPrice().multiply(BigDecimal.valueOf(d.getNum()))));
});
// System.out.println("operateVo = " + operateVo);
return operateVo;
}
@ApiOperation("通联支付2")
@PostMapping("/test")
public ApiResult<?> test(){
final Order order = orderService.getByOutTradeNo("2023030149684157");
order.setPayStatus(PAY_STATUS_SUCCESS);
order.setPayPrice(order.getTotalPrice());
orderService.updateById(order);
return success("成功",order);
}
}

View File

@@ -0,0 +1,134 @@
package com.gxwebsoft.apps.controller;
import com.gxwebsoft.common.core.web.BaseController;
import com.gxwebsoft.apps.service.HualalaCartFoodService;
import com.gxwebsoft.apps.entity.HualalaCartFood;
import com.gxwebsoft.apps.param.HualalaCartFoodParam;
import com.gxwebsoft.common.core.web.ApiResult;
import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.BatchParam;
import com.gxwebsoft.common.core.annotation.OperationLog;
import com.gxwebsoft.common.system.entity.User;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
/**
* 购物车商品控制器
*
* @author 科技小王子
* @since 2023-01-14 14:46:44
*/
@Api(tags = "购物车商品管理")
@RestController
@RequestMapping("/api/apps/hualala-cart-food")
public class HualalaCartFoodController extends BaseController {
@Resource
private HualalaCartFoodService hualalaCartFoodService;
@PreAuthorize("hasAuthority('apps:hualalaCartFood:list')")
@OperationLog
@ApiOperation("分页查询购物车商品")
@GetMapping("/page")
public ApiResult<PageResult<HualalaCartFood>> page(HualalaCartFoodParam param) {
PageParam<HualalaCartFood, HualalaCartFoodParam> page = new PageParam<>(param);
page.setDefaultOrder("create_time desc");
return success(hualalaCartFoodService.page(page, page.getWrapper()));
// 使用关联查询
//return success(hualalaCartFoodService.pageRel(param));
}
@PreAuthorize("hasAuthority('apps:hualalaCartFood:list')")
@OperationLog
@ApiOperation("查询全部购物车商品")
@GetMapping()
public ApiResult<List<HualalaCartFood>> list(HualalaCartFoodParam param) {
PageParam<HualalaCartFood, HualalaCartFoodParam> page = new PageParam<>(param);
page.setDefaultOrder("create_time desc");
return success(hualalaCartFoodService.list(page.getOrderWrapper()));
// 使用关联查询
//return success(hualalaCartFoodService.listRel(param));
}
@PreAuthorize("hasAuthority('apps:hualalaCartFood:list')")
@OperationLog
@ApiOperation("根据id查询购物车商品")
@GetMapping("/{id}")
public ApiResult<HualalaCartFood> get(@PathVariable("id") Integer id) {
return success(hualalaCartFoodService.getById(id));
// 使用关联查询
//return success(hualalaCartFoodService.getByIdRel(id));
}
@PreAuthorize("hasAuthority('apps:hualalaCartFood:save')")
@OperationLog
@ApiOperation("添加购物车商品")
@PostMapping()
public ApiResult<?> save(@RequestBody HualalaCartFood hualalaCartFood) {
if (hualalaCartFoodService.save(hualalaCartFood)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('apps:hualalaCartFood:update')")
@OperationLog
@ApiOperation("修改购物车商品")
@PutMapping()
public ApiResult<?> update(@RequestBody HualalaCartFood hualalaCartFood) {
if (hualalaCartFoodService.updateById(hualalaCartFood)) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('apps:hualalaCartFood:remove')")
@OperationLog
@ApiOperation("删除购物车商品")
@DeleteMapping("/{id}")
public ApiResult<?> remove(@PathVariable("id") Integer id) {
if (hualalaCartFoodService.removeById(id)) {
return success("删除成功");
}
return fail("删除失败");
}
@PreAuthorize("hasAuthority('apps:hualalaCartFood:save')")
@OperationLog
@ApiOperation("批量添加购物车商品")
@PostMapping("/batch")
public ApiResult<?> saveBatch(@RequestBody List<HualalaCartFood> list) {
if (hualalaCartFoodService.saveBatch(list)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('apps:hualalaCartFood:update')")
@OperationLog
@ApiOperation("批量修改购物车商品")
@PutMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody BatchParam<HualalaCartFood> batchParam) {
if (batchParam.update(hualalaCartFoodService, "id")) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('apps:hualalaCartFood:remove')")
@OperationLog
@ApiOperation("批量删除购物车商品")
@DeleteMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody List<Integer> ids) {
if (hualalaCartFoodService.removeByIds(ids)) {
return success("删除成功");
}
return fail("删除失败");
}
}

View File

@@ -0,0 +1,384 @@
package com.gxwebsoft.apps.controller;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.gxwebsoft.apps.entity.HualalaFood;
import com.gxwebsoft.apps.entity.HualalaFoodCategory;
import com.gxwebsoft.apps.entity.HualalaShop;
import com.gxwebsoft.apps.entity.ItemVo;
import com.gxwebsoft.apps.param.*;
import com.gxwebsoft.apps.result.AllShopResult;
import com.gxwebsoft.apps.result.FoodCategoryResult;
import com.gxwebsoft.apps.result.OpenFoodResult;
import com.gxwebsoft.apps.result.ShopBaseInfoResult;
import com.gxwebsoft.apps.service.HualalaFoodCategoryService;
import com.gxwebsoft.apps.service.HualalaFoodService;
import com.gxwebsoft.apps.service.HualalaService;
import com.gxwebsoft.apps.service.HualalaShopService;
import com.gxwebsoft.common.core.utils.CacheClient;
import com.gxwebsoft.common.core.utils.CommonUtil;
import com.gxwebsoft.common.core.utils.JSONUtil;
import com.gxwebsoft.common.core.web.ApiResult;
import com.gxwebsoft.common.core.web.BaseController;
import com.gxwebsoft.shop.entity.Merchant;
import com.gxwebsoft.shop.entity.Order;
import com.gxwebsoft.shop.entity.OrderGoods;
import com.gxwebsoft.shop.mapper.OrderGoodsMapper;
import com.gxwebsoft.shop.param.MerchantParam;
import com.gxwebsoft.shop.param.OrderParam;
import com.gxwebsoft.shop.service.OrderGoodsService;
import com.gxwebsoft.shop.service.OrderService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.val;
import org.springframework.data.geo.Point;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.client.RestTemplate;
import javax.annotation.Resource;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
import static com.gxwebsoft.common.core.constants.RedisConstants.*;
/**
* 哗啦啦接口
* 桂小厨GO
* AppID:wx445232847c503f1b
* AppSecret:eb81fbcac21da949d819143b43d18636
* 桂小厨+
* AppID:wx445232847c503f1b
* AppSecret:eb81fbcac21da949d819143b43d18636
* @author 科技小王子
* @since 2022-11-25 12:55:33
*/
@Api(tags = "哗啦啦接口")
@RestController
@RequestMapping("/api/apps/hualala")
public class HualalaController extends BaseController {
@Resource
private HualalaService hualalaService;
@Resource
private HualalaShopService hualalaShopService;
@Resource
private StringRedisTemplate stringRedisTemplate;
@Resource
private CacheClient cacheClient;
@Resource
private HualalaFoodService hualalaFoodService;
@Resource
private HualalaFoodCategoryService hualalaFoodCategoryService;
@Resource
private OrderService orderService;
@Resource
private OrderGoodsService orderGoodsService;
@Resource
private OrderGoodsMapper orderGoodsMapper;
@ApiOperation("哗啦啦万能接口")
@PostMapping()
public ApiResult<?> post(@RequestBody HualalaParam hualalaParam) {
// 接口
String apiUrl = hualalaParam.getApiUrl();
// 请求参数
HashMap<String, Object> params = hualalaParam.getParams();
// 执行请求
JSONObject response = hualalaService.doPost(apiUrl, params);
return success("请求成功",response);
}
@ApiOperation("查询集团店铺列表")
@PostMapping("/getAllShop")
public ApiResult<?> getAllShop(@RequestBody Map<String, Object> params) {
// 请求缓存数据
AllShopResult cache = cacheClient.get(getAllShop, AllShopResult.class);
if(cache != null){
return success("请求成功",cache.getShopInfoList());
}
// 执行请求解析data数据
JSONObject response = hualalaService.doPost("/doc/getAllShop", params);
AllShopResult result = JSONObject.parseObject(response.getString("data"), AllShopResult.class);
cacheClient.set(getAllShop,result);
List<HualalaShop> shopInfoList = result.getShopInfoList();
// 过滤非桂小厨品牌门店
List<HualalaShop> shops = shopInfoList.stream().filter(d -> d.getBrandName().equals("桂小厨")).collect(Collectors.toList());
shops.forEach(d -> {
d.setCreateTime(null);
d.setTenantId(getTenantId());
cacheClient.geoAdd(haulalaGeoKey,d.getMapLongitudeValueBaiDu(),d.getMapLatitudeValueBaiDu(),d.getShopId().toString());
});
hualalaShopService.saveBatch(shops);
return success("缓存成功",shops);
// try {
// // 执行请求解析data数据
// JSONObject response = hualalaService.doPost("/doc/getAllShop", params);
// AllShopResult result = JSONObject.parseObject(response.getString("data"), AllShopResult.class);
// cacheClient.set(getAllShop,result,1L,TimeUnit.DAYS);
// return success("请求成功",result);
// } catch (Exception e) {
// throw new RuntimeException();
// }
}
@ApiOperation("查询店铺信息")
@PostMapping("/getBaseInfo")
public ApiResult<?> getBaseInfo(@RequestBody Map<String, Object> params) {
// 请求缓存数据
String key = getBaseInfo.concat(":").concat(params.get("shopId").toString());
Merchant merchant = cacheClient.get(key, Merchant.class);
if(merchant != null){
return success("请求成功",merchant);
}
try {
// 执行请求解析data数据
JSONObject response = hualalaService.doPost("/doc/getBaseInfo", params);
ShopBaseInfoResult result = JSONObject.parseObject(response.getString("data"), ShopBaseInfoResult.class);
cacheClient.set(key,result);
return success("缓存成功",result);
} catch (Exception e) {
throw new RuntimeException();
}
}
@ApiOperation("查询店铺菜品分类")
@PostMapping("/getFoodClassCategory")
public ApiResult<?> getFoodClassCategory(@RequestBody Map<String, Object> params) {
// 只查询外卖菜品
params.put("type",1);
// 请求缓存数据
String key = getFoodClassCategory.concat(":").concat(params.get("shopId").toString());
FoodCategoryResult cache = cacheClient.get(key, FoodCategoryResult.class);
if(cache != null){
return success("请求成功",cache);
}
try {
// 执行请求解析data数据
JSONObject response = hualalaService.doPost("/doc/getFoodClassCategory", params);
FoodCategoryResult result = JSONObject.parseObject(response.getString("data"), FoodCategoryResult.class);
cacheClient.set(key,result);
return success("缓存成功",result);
} catch (Exception e) {
throw new RuntimeException();
}
}
@ApiOperation("查询店铺菜品列表")
@PostMapping("/getOpenFood")
public ApiResult<?> getOpenFood(@RequestBody Map<String, Object> params) {
// 请求缓存数据
String key = getOpenFood.concat(":").concat(params.get("shopId").toString());
OpenFoodResult cache = cacheClient.get(key, OpenFoodResult.class);
if(cache != null){
// 计算加入购物车的商品数量
List<HualalaFood> foodList = cache.getFoodList();
foodList.forEach(d -> {
String cartKey = HLL_CART_FOOD_KEY.concat(d.getShopId()).concat(":").concat(getLoginUserId().toString());
ItemVo item = cacheClient.hGet(cartKey, d.getFoodId(), ItemVo.class);
if(item != null){
d.setCartNum(item.getNum());
}
});
// List<HualalaFood> foods = CommonUtil.toTreeData(cache.getFoodList(), null, HualalaFood::getParentFoodId, HualalaFood::getFoodOnlineCategoryId, HualalaFood::setChildren);
Map<String, List<HualalaFood>> collect = foodList.stream().collect(Collectors.groupingBy(HualalaFood::getFoodOnlineCategoryId));
return success("请求成功",collect);
}
// 执行请求解析当前店铺的菜品数据
JSONObject response = hualalaService.doPost("/doc/getOpenFood", params);
OpenFoodResult result = JSONObject.parseObject(response.getString("data"), OpenFoodResult.class);
// 筛选出外卖菜品
List<HualalaFood> foodList = result.getFoodList();
List<HualalaFood> foodList2 = foodList.stream().filter(d -> d.getTakeawayTag().equals("2")).collect(Collectors.toList());
// 筛选出可以点单的菜品
List<HualalaFood> foods = foodList2.stream().filter(d -> d.getIsSingleSale().equals(1)).collect(Collectors.toList());
// 存入redis
result.setFoodList(foods);
result.setCount(foods.size());
cacheClient.set(key,result);
hualalaFoodService.saveBatch(foods);
return success("缓存成功",result.getFoodList());
}
// @ApiOperation("查询店铺菜品列表(备份)")
// @PostMapping("/getOpenFood2")
// public ApiResult<?> getOpenFood2(@RequestBody Map<String, Object> params) {
// // 请求缓存数据
// String key = getOpenFood.concat(":").concat(params.get("shopId").toString());
// OpenFoodResult cache = cacheClient.get(key, OpenFoodResult.class);
// if(cache != null){
// // 计算加入购物车的商品数量
// List<HualalaFood> foodList = cache.getFoodList();
// foodList.forEach(d -> {
// String cartKey = HLL_CART_FOOD_KEY.concat(d.getShopId()).concat(":").concat(getLoginUserId().toString());
// ItemVo item = cacheClient.hGet(cartKey, d.getFoodId(), ItemVo.class);
// if(item != null){
// d.setCartNum(item.getNum());
// }
// });
// return success("请求成功",foodList);
// }
// try {
// // 执行请求解析当前店铺的菜品数据
// JSONObject response = hualalaService.doPost("/doc/getOpenFood", params);
// OpenFoodResult result = JSONObject.parseObject(response.getString("data"), OpenFoodResult.class);
// // 筛选出外卖菜品
// List<HualalaFood> foodList = result.getFoodList();
// List<HualalaFood> foodList2 = foodList.stream().filter(d -> d.getTakeawayTag().equals("2")).collect(Collectors.toList());
// // 筛选出可以点单的菜品
// List<HualalaFood> foods = foodList2.stream().filter(d -> d.getIsSingleSale().equals(1)).collect(Collectors.toList());
// // 存入redis
// result.setFoodList(foods);
// result.setCount(foods.size());
// cacheClient.set(key,result);
// return success("缓存成功",result.getFoodList());
// } catch (Exception e) {
// throw new RuntimeException();
// }
// }
@PreAuthorize("hasAuthority('apps:hualala:list')")
@ApiOperation("保存菜品到redis已废弃")
@PostMapping("/setOpenFoodToRedis")
public ApiResult<?> setOpenFoodToRedis(@RequestBody HualalaFoodParam food) {
System.out.println("food = " + food);
String key = "cache:getOpenFood:shop-"+food.getShopId()+":category-"+food.getFoodCategoryCode()+":"+food.getFoodId();
// stringRedisTemplate.opsForHash().put(key,food.getFoodId(),food.getData().toString());
return success("请求成功",food);
// 请求缓存数据
// String key = getOpenFood + params.get("shopId");
// String jsonStr = stringRedisTemplate.opsForValue().get(key);
// if(StrUtil.isNotBlank(jsonStr)){
// return success("请求成功",JSON.parseObject(jsonStr));
// }
// try {
// // 执行请求解析data数据
// JSONObject response = hualalaService.doPost("/doc/getOpenFood", params);
// stringRedisTemplate.opsForValue().set(key, response.getString("data"),1,TimeUnit.DAYS);
// return success("请求成功",JSON.parseObject(response.getString("data")));
// } catch (Exception e) {
// throw new RuntimeException();
// }
}
@ApiOperation("根据定位查询附近的门店列表")
@PostMapping("/getListByGeo")
public ApiResult<List<HualalaShop>> getListByGeo(@RequestBody HualalaShopParam param) {
return success(hualalaShopService.listByGeo(param));
}
@PreAuthorize("hasAuthority('apps:hualala:list')")
@ApiOperation("把商户坐标写入redis缓存")
@PostMapping("/geoAdd")
public ApiResult<?> geoAdd(){
String key1 = "shop:geo:guixiaochu";
stringRedisTemplate.opsForGeo().add(key1,new Point(108.321614,22.815124),"76230180");
stringRedisTemplate.opsForGeo().add(key1,new Point(108.335703,22.813917),"76230181");
stringRedisTemplate.opsForGeo().add(key1,new Point(108.370343,22.830116),"76230179");
stringRedisTemplate.opsForGeo().add(key1,new Point(108.292017,22.869498),"76258872");
stringRedisTemplate.opsForGeo().add(key1,new Point(108.393005,22.81194),"76230126");
stringRedisTemplate.opsForGeo().add(key1,new Point(108.325202,22.785341),"76230178");
return success("添加完毕");
}
@ApiOperation("推送订单")
@PostMapping("/pushOrder")
public ApiResult<?> pushOrder(@RequestBody OrderParam param){
Integer orderId = param.getOrderId();
Order orderInfo = orderService.getById(orderId);
System.out.println("orderInfo = " + orderInfo);
final List<OrderGoods> goodsInfo = orderGoodsMapper.selectByOrderId(orderId);
System.out.println("goodsInfo = " + goodsInfo);
// 菜品信息
ArrayList<Object> orderItem = new ArrayList<>();
goodsInfo.forEach(goods -> {
JSONObject item = new JSONObject();
item.put("foodID",goods.getGoodsId()); // 菜品id
item.put("foodName",goods.getGoodsName()); // 菜品名称
item.put("foodUnit",""); // 规格名称
item.put("foodUnitID",goods.getGoodsSkuId()); // 菜品规格id
item.put("isSetFood",0); // 是/否套餐0非套餐 1套餐
item.put("isBatching",0); // 0正常菜1主菜2配菜3加价做法
item.put("foodCount",goods.getTotalNum()); // 菜品数量
item.put("originPrice",goods.getTotalPrice()); // 菜品原价
item.put("takeoutPackagingFee","0"); // 打包费
item.put("isDiscount",0); // 是/否打折 0不是 1
item.put("duePrice",goods.getTotalPrice()); // TODO 菜品成售价
orderItem.add(item);
});
// 支付信息
ArrayList<Object> payInfo = new ArrayList<>();
JSONObject payItem = new JSONObject();
payItem.put("paymentSubjectID",Long.valueOf("51010440")); // 科目id
payItem.put("paymentSubjectName","微信小程序实收"); // 科目名称
payItem.put("dueAmount",orderInfo.getPayPrice()); // TODO 实收金额
payItem.put("paymentStatus",20); // 支付状态15未支付20已支付
payItem.put("payWay",70); // 支付方式70商家自定义科目
payInfo.add(payItem);
// 用户信息
JSONObject userInfo = new JSONObject();
userInfo.put("userName","邓莉莉");
userInfo.put("userMobile","15878179339");
userInfo.put("shopMpID","wxa4e2b8bc9c14c743");
userInfo.put("userSex","0"); // 用户性别, 1:先生 0:女士 2:不显示不传默认0 女士
// 订单信息
JSONObject order = new JSONObject();
order.put("orderSubType",20); // 订单类型 20: 外送
order.put("orderStatus",20); // 订单状态 20已付款
order.put("discountTotalAmount","0"); // TODO 优惠金额
order.put("dinners",1); // 用餐人数
// 期望送达时间
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyyMMddHHmm");
order.put("orderTime",sdf1.format(orderInfo.getCreateTime()));
order.put("orderItem",orderItem); // 菜品信息
order.put("takeoutAddress","南宁市良庆区五象大道401号五象航洋城1号楼1226室"); // TODO 外送地址
order.put("deliveryAmount","8.00"); // TODO 配送费
order.put("serviceAmount","0"); // 服务费必传0
order.put("channelKey","399_weixin"); // 渠道:微信小程序
order.put("isAlreadyPaid","1"); // 是/否支付
order.put("orderMode",1); // 1先付2后付
order.put("OrderRemark","测试订单(不需要制作及发货)"); // TODO 订单备注
order.put("payment",payInfo); // 支付信息
order.put("userInfo",userInfo); // 用户信息
HashMap<String,Object> params = new HashMap<>();
params.put("shopID",Long.valueOf("76220517")); // 店铺ID
params.put("isCheackOut",0); // 0 :默认 不需要收银台数据 1 需要收银台数据
params.put("isThirdPay",2); // 只有单纯核销哗啦啦会员卡时传1其它都传2
params.put("bankCode","weChat"); // 支付方式weChat微信 aliPay支付宝非哗啦啦支付传weChat
params.put("order",order); // 订单信息
params.put("isSentMsg",1); // 下单后pos是/否显示订单下单带支付科目信息先付传1下单不带支付科目信息先付传0后付传1
params.put("msgType",120); // 消息类型240 堂食、闪吃120外送121自提 与order中orderSubType要对应
params.put("thirdOrderID",orderInfo.getOrderNo()); // 三方订单号作用十分钟内对相同的thirdOrderID进行去重处理仅开放平台使用做去重处理不会传到pos及报表
// 执行订单推送
// JSONObject response = hualalaService.doPost("/order/submitordernew", params);
// System.out .println("response = " + response);
// 同步配送平台
// JSONObject result = hualalaService.doExpress(orderInfo);
return success("推送成功",null);
}
}

View File

@@ -0,0 +1,134 @@
package com.gxwebsoft.apps.controller;
import com.gxwebsoft.common.core.web.BaseController;
import com.gxwebsoft.apps.service.HualalaFoodCategoryService;
import com.gxwebsoft.apps.entity.HualalaFoodCategory;
import com.gxwebsoft.apps.param.HualalaFoodCategoryParam;
import com.gxwebsoft.common.core.web.ApiResult;
import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.BatchParam;
import com.gxwebsoft.common.core.annotation.OperationLog;
import com.gxwebsoft.common.system.entity.User;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
/**
* 菜品分类控制器
*
* @author 科技小王子
* @since 2023-01-12 09:49:46
*/
@Api(tags = "菜品分类管理")
@RestController
@RequestMapping("/api/apps/hualala-food-category")
public class HualalaFoodCategoryController extends BaseController {
@Resource
private HualalaFoodCategoryService hualalaFoodCategoryService;
@PreAuthorize("hasAuthority('apps:hualalaFoodCategory:list')")
@OperationLog
@ApiOperation("分页查询菜品分类")
@GetMapping("/page")
public ApiResult<PageResult<HualalaFoodCategory>> page(HualalaFoodCategoryParam param) {
PageParam<HualalaFoodCategory, HualalaFoodCategoryParam> page = new PageParam<>(param);
page.setDefaultOrder("create_time desc");
return success(hualalaFoodCategoryService.page(page, page.getWrapper()));
// 使用关联查询
//return success(hualalaFoodCategoryService.pageRel(param));
}
@PreAuthorize("hasAuthority('apps:hualalaFoodCategory:list')")
@OperationLog
@ApiOperation("查询全部菜品分类")
@GetMapping()
public ApiResult<List<HualalaFoodCategory>> list(HualalaFoodCategoryParam param) {
PageParam<HualalaFoodCategory, HualalaFoodCategoryParam> page = new PageParam<>(param);
page.setDefaultOrder("create_time desc");
return success(hualalaFoodCategoryService.list(page.getOrderWrapper()));
// 使用关联查询
//return success(hualalaFoodCategoryService.listRel(param));
}
@PreAuthorize("hasAuthority('apps:hualalaFoodCategory:list')")
@OperationLog
@ApiOperation("根据id查询菜品分类")
@GetMapping("/{id}")
public ApiResult<HualalaFoodCategory> get(@PathVariable("id") Integer id) {
return success(hualalaFoodCategoryService.getById(id));
// 使用关联查询
//return success(hualalaFoodCategoryService.getByIdRel(id));
}
@PreAuthorize("hasAuthority('apps:hualalaFoodCategory:save')")
@OperationLog
@ApiOperation("添加菜品分类")
@PostMapping()
public ApiResult<?> save(@RequestBody HualalaFoodCategory hualalaFoodCategory) {
if (hualalaFoodCategoryService.save(hualalaFoodCategory)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('apps:hualalaFoodCategory:update')")
@OperationLog
@ApiOperation("修改菜品分类")
@PutMapping()
public ApiResult<?> update(@RequestBody HualalaFoodCategory hualalaFoodCategory) {
if (hualalaFoodCategoryService.updateById(hualalaFoodCategory)) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('apps:hualalaFoodCategory:remove')")
@OperationLog
@ApiOperation("删除菜品分类")
@DeleteMapping("/{id}")
public ApiResult<?> remove(@PathVariable("id") Integer id) {
if (hualalaFoodCategoryService.removeById(id)) {
return success("删除成功");
}
return fail("删除失败");
}
@PreAuthorize("hasAuthority('apps:hualalaFoodCategory:save')")
@OperationLog
@ApiOperation("批量添加菜品分类")
@PostMapping("/batch")
public ApiResult<?> saveBatch(@RequestBody List<HualalaFoodCategory> list) {
if (hualalaFoodCategoryService.saveBatch(list)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('apps:hualalaFoodCategory:update')")
@OperationLog
@ApiOperation("批量修改菜品分类")
@PutMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody BatchParam<HualalaFoodCategory> batchParam) {
if (batchParam.update(hualalaFoodCategoryService, "id")) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('apps:hualalaFoodCategory:remove')")
@OperationLog
@ApiOperation("批量删除菜品分类")
@DeleteMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody List<Integer> ids) {
if (hualalaFoodCategoryService.removeByIds(ids)) {
return success("删除成功");
}
return fail("删除失败");
}
}

View File

@@ -0,0 +1,134 @@
package com.gxwebsoft.apps.controller;
import com.gxwebsoft.common.core.web.BaseController;
import com.gxwebsoft.apps.service.HualalaFoodService;
import com.gxwebsoft.apps.entity.HualalaFood;
import com.gxwebsoft.apps.param.HualalaFoodParam;
import com.gxwebsoft.common.core.web.ApiResult;
import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.BatchParam;
import com.gxwebsoft.common.core.annotation.OperationLog;
import com.gxwebsoft.common.system.entity.User;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
/**
* 菜品分类控制器
*
* @author 科技小王子
* @since 2023-01-12 15:34:55
*/
@Api(tags = "菜品分类管理")
@RestController
@RequestMapping("/api/apps/hualala-food")
public class HualalaFoodController extends BaseController {
@Resource
private HualalaFoodService hualalaFoodService;
@PreAuthorize("hasAuthority('apps:hualalaFood:list')")
@OperationLog
@ApiOperation("分页查询菜品分类")
@GetMapping("/page")
public ApiResult<PageResult<HualalaFood>> page(HualalaFoodParam param) {
PageParam<HualalaFood, HualalaFoodParam> page = new PageParam<>(param);
page.setDefaultOrder("create_time desc");
return success(hualalaFoodService.page(page, page.getWrapper()));
// 使用关联查询
//return success(hualalaFoodService.pageRel(param));
}
@PreAuthorize("hasAuthority('apps:hualalaFood:list')")
@OperationLog
@ApiOperation("查询全部菜品分类")
@GetMapping()
public ApiResult<List<HualalaFood>> list(HualalaFoodParam param) {
PageParam<HualalaFood, HualalaFoodParam> page = new PageParam<>(param);
page.setDefaultOrder("create_time desc");
return success(hualalaFoodService.list(page.getOrderWrapper()));
// 使用关联查询
//return success(hualalaFoodService.listRel(param));
}
@PreAuthorize("hasAuthority('apps:hualalaFood:list')")
@OperationLog
@ApiOperation("根据id查询菜品分类")
@GetMapping("/{id}")
public ApiResult<HualalaFood> get(@PathVariable("id") Integer id) {
return success(hualalaFoodService.getById(id));
// 使用关联查询
//return success(hualalaFoodService.getByIdRel(id));
}
@PreAuthorize("hasAuthority('apps:hualalaFood:save')")
@OperationLog
@ApiOperation("添加菜品分类")
@PostMapping()
public ApiResult<?> save(@RequestBody HualalaFood hualalaFood) {
if (hualalaFoodService.save(hualalaFood)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('apps:hualalaFood:update')")
@OperationLog
@ApiOperation("修改菜品分类")
@PutMapping()
public ApiResult<?> update(@RequestBody HualalaFood hualalaFood) {
if (hualalaFoodService.updateById(hualalaFood)) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('apps:hualalaFood:remove')")
@OperationLog
@ApiOperation("删除菜品分类")
@DeleteMapping("/{id}")
public ApiResult<?> remove(@PathVariable("id") Integer id) {
if (hualalaFoodService.removeById(id)) {
return success("删除成功");
}
return fail("删除失败");
}
@PreAuthorize("hasAuthority('apps:hualalaFood:save')")
@OperationLog
@ApiOperation("批量添加菜品分类")
@PostMapping("/batch")
public ApiResult<?> saveBatch(@RequestBody List<HualalaFood> list) {
if (hualalaFoodService.saveBatch(list)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('apps:hualalaFood:update')")
@OperationLog
@ApiOperation("批量修改菜品分类")
@PutMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody BatchParam<HualalaFood> batchParam) {
if (batchParam.update(hualalaFoodService, "id")) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('apps:hualalaFood:remove')")
@OperationLog
@ApiOperation("批量删除菜品分类")
@DeleteMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody List<Integer> ids) {
if (hualalaFoodService.removeByIds(ids)) {
return success("删除成功");
}
return fail("删除失败");
}
}

View File

@@ -0,0 +1,134 @@
package com.gxwebsoft.apps.controller;
import com.gxwebsoft.common.core.web.BaseController;
import com.gxwebsoft.apps.service.HualalaShopService;
import com.gxwebsoft.apps.entity.HualalaShop;
import com.gxwebsoft.apps.param.HualalaShopParam;
import com.gxwebsoft.common.core.web.ApiResult;
import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.BatchParam;
import com.gxwebsoft.common.core.annotation.OperationLog;
import com.gxwebsoft.common.system.entity.User;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
/**
* 哗啦啦门店管理控制器
*
* @author 科技小王子
* @since 2023-01-12 18:24:44
*/
@Api(tags = "哗啦啦门店管理管理")
@RestController
@RequestMapping("/api/apps/hualala-shop")
public class HualalaShopController extends BaseController {
@Resource
private HualalaShopService hualalaShopService;
@PreAuthorize("hasAuthority('apps:hualalaShop:list')")
@OperationLog
@ApiOperation("分页查询哗啦啦门店管理")
@GetMapping("/page")
public ApiResult<PageResult<HualalaShop>> page(HualalaShopParam param) {
PageParam<HualalaShop, HualalaShopParam> page = new PageParam<>(param);
page.setDefaultOrder("create_time desc");
return success(hualalaShopService.page(page, page.getWrapper()));
// 使用关联查询
//return success(hualalaShopService.pageRel(param));
}
@PreAuthorize("hasAuthority('apps:hualalaShop:list')")
@OperationLog
@ApiOperation("查询全部哗啦啦门店管理")
@GetMapping()
public ApiResult<List<HualalaShop>> list(HualalaShopParam param) {
PageParam<HualalaShop, HualalaShopParam> page = new PageParam<>(param);
page.setDefaultOrder("create_time desc");
return success(hualalaShopService.list(page.getOrderWrapper()));
// 使用关联查询
//return success(hualalaShopService.listRel(param));
}
@PreAuthorize("hasAuthority('apps:hualalaShop:list')")
@OperationLog
@ApiOperation("根据id查询哗啦啦门店管理")
@GetMapping("/{id}")
public ApiResult<HualalaShop> get(@PathVariable("id") Integer id) {
return success(hualalaShopService.getById(id));
// 使用关联查询
//return success(hualalaShopService.getByIdRel(id));
}
@PreAuthorize("hasAuthority('apps:hualalaShop:save')")
@OperationLog
@ApiOperation("添加哗啦啦门店管理")
@PostMapping()
public ApiResult<?> save(@RequestBody HualalaShop hualalaShop) {
if (hualalaShopService.save(hualalaShop)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('apps:hualalaShop:update')")
@OperationLog
@ApiOperation("修改哗啦啦门店管理")
@PutMapping()
public ApiResult<?> update(@RequestBody HualalaShop hualalaShop) {
if (hualalaShopService.updateById(hualalaShop)) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('apps:hualalaShop:remove')")
@OperationLog
@ApiOperation("删除哗啦啦门店管理")
@DeleteMapping("/{id}")
public ApiResult<?> remove(@PathVariable("id") Integer id) {
if (hualalaShopService.removeById(id)) {
return success("删除成功");
}
return fail("删除失败");
}
@PreAuthorize("hasAuthority('apps:hualalaShop:save')")
@OperationLog
@ApiOperation("批量添加哗啦啦门店管理")
@PostMapping("/batch")
public ApiResult<?> saveBatch(@RequestBody List<HualalaShop> list) {
if (hualalaShopService.saveBatch(list)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('apps:hualalaShop:update')")
@OperationLog
@ApiOperation("批量修改哗啦啦门店管理")
@PutMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody BatchParam<HualalaShop> batchParam) {
if (batchParam.update(hualalaShopService, "shop_id")) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('apps:hualalaShop:remove')")
@OperationLog
@ApiOperation("批量删除哗啦啦门店管理")
@DeleteMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody List<Integer> ids) {
if (hualalaShopService.removeByIds(ids)) {
return success("删除成功");
}
return fail("删除失败");
}
}

View File

@@ -0,0 +1,140 @@
package com.gxwebsoft.apps.controller;
import com.gxwebsoft.common.core.web.BaseController;
import com.gxwebsoft.apps.service.LinkService;
import com.gxwebsoft.apps.entity.Link;
import com.gxwebsoft.apps.param.LinkParam;
import com.gxwebsoft.common.core.web.ApiResult;
import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.BatchParam;
import com.gxwebsoft.common.core.annotation.OperationLog;
import com.gxwebsoft.common.system.entity.User;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
/**
* 常用链接推荐记录表控制器
*
* @author 科技小王子
* @since 2022-11-25 12:55:33
*/
@Api(tags = "常用链接推荐记录表管理")
@RestController
@RequestMapping("/api/apps/link")
public class LinkController extends BaseController {
@Resource
private LinkService linkService;
@PreAuthorize("hasAuthority('apps:link:list')")
@OperationLog
@ApiOperation("分页查询常用链接推荐记录表")
@GetMapping("/page")
public ApiResult<PageResult<Link>> page(LinkParam param) {
PageParam<Link, LinkParam> page = new PageParam<>(param);
page.setDefaultOrder("sort_number asc, create_time desc");
return success(linkService.page(page, page.getWrapper()));
// 使用关联查询
//return success(linkService.pageRel(param));
}
@PreAuthorize("hasAuthority('apps:link:list')")
@OperationLog
@ApiOperation("查询全部常用链接推荐记录表")
@GetMapping()
public ApiResult<List<Link>> list(LinkParam param) {
PageParam<Link, LinkParam> page = new PageParam<>(param);
page.setDefaultOrder("sort_number asc, create_time desc");
return success(linkService.list(page.getOrderWrapper()));
// 使用关联查询
//return success(linkService.listRel(param));
}
@PreAuthorize("hasAuthority('apps:link:list')")
@OperationLog
@ApiOperation("根据id查询常用链接推荐记录表")
@GetMapping("/{id}")
public ApiResult<Link> get(@PathVariable("id") Integer id) {
return success(linkService.getById(id));
// 使用关联查询
//return success(linkService.getByIdRel(id));
}
@PreAuthorize("hasAuthority('apps:link:save')")
@OperationLog
@ApiOperation("添加常用链接推荐记录表")
@PostMapping()
public ApiResult<?> save(@RequestBody Link link) {
// 记录当前登录用户id、租户id
User loginUser = getLoginUser();
if (loginUser != null) {
link.setUserId(loginUser.getUserId());
link.setMerchantCode(getMerchantCode());
}
if (linkService.save(link)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('apps:link:update')")
@OperationLog
@ApiOperation("修改常用链接推荐记录表")
@PutMapping()
public ApiResult<?> update(@RequestBody Link link) {
if (linkService.updateById(link)) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('apps:link:remove')")
@OperationLog
@ApiOperation("删除常用链接推荐记录表")
@DeleteMapping("/{id}")
public ApiResult<?> remove(@PathVariable("id") Integer id) {
if (linkService.removeById(id)) {
return success("删除成功");
}
return fail("删除失败");
}
@PreAuthorize("hasAuthority('apps:link:save')")
@OperationLog
@ApiOperation("批量添加常用链接推荐记录表")
@PostMapping("/batch")
public ApiResult<?> saveBatch(@RequestBody List<Link> list) {
if (linkService.saveBatch(list)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('apps:link:update')")
@OperationLog
@ApiOperation("批量修改常用链接推荐记录表")
@PutMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody BatchParam<Link> batchParam) {
if (batchParam.update(linkService, "link_id")) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('apps:link:remove')")
@OperationLog
@ApiOperation("批量删除常用链接推荐记录表")
@DeleteMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody List<Integer> ids) {
if (linkService.removeByIds(ids)) {
return success("删除成功");
}
return fail("删除失败");
}
}

View File

@@ -0,0 +1,115 @@
package com.gxwebsoft.apps.controller;
import cn.hutool.core.util.RandomUtil;
import cn.hutool.http.HttpUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import lombok.val;
import org.apache.commons.codec.binary.Base64;
import java.security.MessageDigest;
import java.util.Date;
public class SfExpress {
//开发者id
private final Long devId= 1651421896L;
//开发者密钥
private final String devKey="2f10570c5057570fe0e488a425a6d813";
//正式环境
private final String serverHost="https://openic.sf-express.com";
//店铺ID
private final String shopId="3243279847393";
public static void main(String[] args) {
try {
SfExpress api = new SfExpress();
String postData = api.orderOnlineByJson();
String sign = generateOpenSign(postData,api.devId, api.devKey);
String url = api.serverHost.concat("/open/api/external/createorder?sign=").concat(sign);
String result = HttpUtil.post(url,postData);
System.out.println("result = " + result);
val resultObj = JSON.parseObject(result);
JSONObject resultData = JSON.parseObject(resultObj.getString("result"));
} catch (Exception e) {
e.printStackTrace();
}
}
public static String generateOpenSign(String postData, Long appId, String appKey) throws Exception {
StringBuilder sb = new StringBuilder();
sb.append(postData);
sb.append("&" + appId + "&" + appKey);
System.out.println("sb = " + sb);
MessageDigest md = MessageDigest.getInstance("MD5");
byte[] md5 = md.digest(sb.toString().getBytes("utf-8"));
int i;
StringBuffer buf = new StringBuffer("");
for (int offset = 0; offset < md5.length; offset++) {
i = md5[offset];
if (i < 0) {
i += 256;
}
if (i < 16) {
buf.append("0");
}
buf.append(Integer.toHexString(i));
}
return Base64.encodeBase64String(buf.toString().getBytes("utf-8"));
}
//即时查询接口
public String orderOnlineByJson() throws Exception{
// 组装应用级参数
JSONObject json = new JSONObject();
json.put("dev_id",devId);
json.put("shop_id",shopId);
json.put("shop_order_id", RandomUtil.randomNumbers(16));
json.put("order_source","1");
long timestamp = new Date().getTime();
json.put("order_time",timestamp/1000);
json.put("push_time",timestamp/1000);
json.put("version",19);
JSONObject receive = new JSONObject();
receive.put("user_name","顺丰同城");
receive.put("user_phone","18978189563");
receive.put("user_address","北京市海淀区学清嘉创大厦A座15层");
receive.put("user_lng","116.354787");
receive.put("user_lat","40.030613");
json.put("receive",receive);
JSONObject orderDetail = new JSONObject();
orderDetail.put("total_price",100);
orderDetail.put("product_type",1);
orderDetail.put("weight_gram",100);
orderDetail.put("product_num",1);
orderDetail.put("product_type_num",1);
json.put("order_detail",orderDetail);
return json.toString();
}
//中文转Unicode
/**
* @Title: unicodeEncode
* @Description: unicode编码 将中文字符转换成Unicode字符
* @param string
* @return
*/
public String unicodeEncode(String string) {
char[] utfBytes = string.toCharArray();
String unicodeBytes = "";
for (int i = 0; i < utfBytes.length; i++) {
String hexB = Integer.toHexString(utfBytes[i]);
if (hexB.length() <= 2) {
hexB = "00" + hexB;
}
unicodeBytes = unicodeBytes + "\\u" + hexB;
}
return unicodeBytes;
}
}

View File

@@ -0,0 +1,142 @@
package com.gxwebsoft.apps.controller;
import com.alibaba.fastjson.JSONObject;
import com.gxwebsoft.common.core.web.BaseController;
import com.gxwebsoft.apps.service.TestDataService;
import com.gxwebsoft.apps.entity.TestData;
import com.gxwebsoft.apps.param.TestDataParam;
import com.gxwebsoft.common.core.web.ApiResult;
import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.BatchParam;
import com.gxwebsoft.common.core.annotation.OperationLog;
import com.gxwebsoft.common.system.entity.User;
import com.gxwebsoft.shop.entity.Order;
import com.gxwebsoft.shop.entity.OrderGoods;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
/**
* 测试数据表控制器
*
* @author 科技小王子
* @since 2023-02-01 12:13:46
*/
@Api(tags = "测试数据表管理")
@RestController
@RequestMapping("/api/apps/test-data")
public class TestDataController extends BaseController {
@Resource
private TestDataService testDataService;
@PreAuthorize("hasAuthority('apps:testData:list')")
@OperationLog
@ApiOperation("分页查询测试数据表")
@GetMapping("/page")
public ApiResult<PageResult<TestData>> page(TestDataParam param) {
PageParam<TestData, TestDataParam> page = new PageParam<>(param);
page.setDefaultOrder("create_time desc");
return success(testDataService.page(page, page.getWrapper()));
// 使用关联查询
//return success(testDataService.pageRel(param));
}
@PreAuthorize("hasAuthority('apps:testData:list')")
@OperationLog
@ApiOperation("查询全部测试数据表")
@GetMapping()
public ApiResult<List<TestData>> list(TestDataParam param) {
PageParam<TestData, TestDataParam> page = new PageParam<>(param);
page.setDefaultOrder("create_time desc");
return success(testDataService.list(page.getOrderWrapper()));
// 使用关联查询
//return success(testDataService.listRel(param));
}
@PreAuthorize("hasAuthority('apps:testData:list')")
@OperationLog
@ApiOperation("根据id查询测试数据表")
@GetMapping("/{id}")
public ApiResult<TestData> get(@PathVariable("id") Integer id) {
return success(testDataService.getById(id));
// 使用关联查询
//return success(testDataService.getByIdRel(id));
}
@PreAuthorize("hasAuthority('apps:testData:save')")
@OperationLog
@ApiOperation("添加测试数据表")
@PostMapping()
public ApiResult<?> save(@RequestBody TestData testData) {
if (testDataService.save(testData)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('apps:testData:update')")
@OperationLog
@ApiOperation("修改测试数据表")
@PutMapping()
public ApiResult<?> update(@RequestBody TestData testData) {
if (testDataService.updateById(testData)) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('apps:testData:remove')")
@OperationLog
@ApiOperation("删除测试数据表")
@DeleteMapping("/{id}")
public ApiResult<?> remove(@PathVariable("id") Integer id) {
if (testDataService.removeById(id)) {
return success("删除成功");
}
return fail("删除失败");
}
@PreAuthorize("hasAuthority('apps:testData:save')")
@OperationLog
@ApiOperation("批量添加测试数据表")
@PostMapping("/batch")
public ApiResult<?> saveBatch(@RequestBody List<TestData> list) {
if (testDataService.saveBatch(list)) {
return success("添加成功");
}
return fail("添加失败");
}
@PreAuthorize("hasAuthority('apps:testData:update')")
@OperationLog
@ApiOperation("批量修改测试数据表")
@PutMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody BatchParam<TestData> batchParam) {
if (batchParam.update(testDataService, "id")) {
return success("修改成功");
}
return fail("修改失败");
}
@PreAuthorize("hasAuthority('apps:testData:remove')")
@OperationLog
@ApiOperation("批量删除测试数据表")
@DeleteMapping("/batch")
public ApiResult<?> removeBatch(@RequestBody List<Integer> ids) {
if (testDataService.removeByIds(ids)) {
return success("删除成功");
}
return fail("删除失败");
}
}

View File

@@ -0,0 +1,65 @@
package com.gxwebsoft.apps.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.io.Serializable;
import java.util.Date;
import com.gxwebsoft.common.system.entity.User;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 代报餐管理
*
* @author 科技小王子
* @since 2023-04-24 19:25:59
*/
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "BcAgent对象", description = "代报餐管理")
@TableName("apps_bc_agent")
public class BcAgent implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "自增ID")
@TableId(value = "agent_id", type = IdType.AUTO)
private Integer agentId;
@ApiModelProperty(value = "用户ID")
private Integer userId;
@ApiModelProperty(value = "代报餐用户ID")
private Integer parentId;
@ApiModelProperty(value = "状态, 0待处理, 1已完成")
private Integer status;
@ApiModelProperty(value = "租户id")
private Integer tenantId;
@ApiModelProperty(value = "加入时间")
private Date createTime;
@ApiModelProperty(value = "被代报餐职员")
@TableField(exist = false)
private User user;
@ApiModelProperty(value = "代报餐人员")
@TableField(exist = false)
private User parentUser;
@ApiModelProperty(value = "被代报餐职员")
@TableField(exist = false)
private String nickname;
@ApiModelProperty(value = "代报餐人员")
@TableField(exist = false)
private String parentName;
}

View File

@@ -0,0 +1,64 @@
package com.gxwebsoft.apps.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* 报餐系统购物车
*
* @author 科技小王子
* @since 2023-04-27 17:59:40
*/
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "报餐系统购物车", description = "报餐系统购物车")
@Data
public class BcCart implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "预定日期")
@TableField(exist = false)
private String deliveryTime;
@ApiModelProperty(value = "商品ID")
@TableField(exist = false)
private Integer goodsId;
@ApiModelProperty(value = "商品价格")
@TableField(exist = false)
private BigDecimal goodsPrice;
@ApiModelProperty(value = "商品数量")
@TableField(exist = false)
private Integer totalNum;
@ApiModelProperty(value = "商品名称")
@TableField(exist = false)
private String goodsName;
@ApiModelProperty(value = "商品描述")
@TableField(exist = false)
private String comments;
@ApiModelProperty(value = "商品封面图")
@TableField(exist = false)
private String image;
@ApiModelProperty(value = "商品分类")
@TableField(exist = false)
private Integer categoryId;
@ApiModelProperty(value = "物品档口")
@TableField(exist = false)
private Integer gear;
@ApiModelProperty(value = "用户ID")
@TableField(exist = false)
private Integer userId;
}

View File

@@ -0,0 +1,61 @@
package com.gxwebsoft.apps.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableLogic;
import java.io.Serializable;
import java.util.Date;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 常用菜谱
*
* @author 科技小王子
* @since 2023-05-05 14:56:54
*/
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "BcCookbook对象", description = "常用菜谱")
@TableName("apps_bc_cookbook")
public class BcCookbook implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "自增ID")
@TableId(value = "cookbook_id", type = IdType.AUTO)
private Integer cookbookId;
@ApiModelProperty(value = "菜品计划")
private Integer planId;
@ApiModelProperty(value = "餐段 早餐 午餐 晚餐")
private String period;
@ApiModelProperty(value = "状态, 0待发布, 1已发布")
private Integer status;
@ApiModelProperty(value = "备注")
private String comments;
@ApiModelProperty(value = "发布人")
private Integer userId;
@ApiModelProperty(value = "是否删除, 0否, 1是")
@TableLogic
private Integer deleted;
@ApiModelProperty(value = "租户id")
private Integer tenantId;
@ApiModelProperty(value = "创建时间")
private Date createTime;
@ApiModelProperty(value = "修改时间")
private Date updateTime;
}

View File

@@ -0,0 +1,79 @@
package com.gxwebsoft.apps.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableLogic;
import java.io.Serializable;
import java.util.Date;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 报餐设备管理
*
* @author 科技小王子
* @since 2023-05-02 10:34:40
*/
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "BcEquipment对象", description = "报餐设备管理")
@TableName("apps_bc_equipment")
public class BcEquipment implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "设备ID")
@TableId(value = "bc_equipment_id", type = IdType.AUTO)
private Integer bcEquipmentId;
@ApiModelProperty(value = "设备名称")
private String equipmentName;
@ApiModelProperty(value = "设备编码")
private String equipmentCode;
@ApiModelProperty(value = "所属档口")
private Integer gear;
@ApiModelProperty(value = "职员工号")
private Integer staffId;
@ApiModelProperty(value = "二维码")
private String qrcode;
@ApiModelProperty(value = "设备详情")
private String content;
@ApiModelProperty(value = "用户ID")
private Integer userId;
@ApiModelProperty(value = "排序(数字越小越靠前)")
private Integer sortNumber;
@ApiModelProperty(value = "备注")
private String comments;
@ApiModelProperty(value = "状态, 0正常, 1冻结")
private Integer status;
@ApiModelProperty(value = "是否删除, 0否, 1是")
@TableLogic
private Integer deleted;
@ApiModelProperty(value = "商户编码")
private String merchantCode;
@ApiModelProperty(value = "租户id")
private Integer tenantId;
@ApiModelProperty(value = "注册时间")
private Date createTime;
@ApiModelProperty(value = "修改时间")
private Date updateTime;
}

View File

@@ -0,0 +1,112 @@
package com.gxwebsoft.apps.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
* 报餐统计导出
*
* @author 科技小王子
* @since 2023-06-01 21:47:02
*/
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "BcExport对象", description = "报餐统计导出")
@TableName("apps_bc_export")
public class BcExport implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "自增ID")
@TableId(value = "export_id", type = IdType.AUTO)
private Integer exportId;
@ApiModelProperty(value = "机构名称")
private String organizationName;
@ApiModelProperty(value = "昵称")
private String nickname;
@ApiModelProperty(value = "实际消费的金额(不含退款)")
private BigDecimal expendMoney;
@ApiModelProperty(value = "早餐报餐次数")
private Integer breakfastPost;
@ApiModelProperty(value = "早餐签到次数")
private Integer breakfastSign;
@ApiModelProperty(value = "午餐报餐次数")
private Integer lunchPost;
@ApiModelProperty(value = "午餐签到次数")
private Integer lunchSign;
@ApiModelProperty(value = "晚餐报餐次数")
private Integer dinnerPost;
@ApiModelProperty(value = "晚餐签到次数")
private Integer dinnerSign;
@ApiModelProperty(value = "食堂档口")
private Integer gear10;
@ApiModelProperty(value = "物品档口")
private Integer gear20;
@ApiModelProperty(value = "食堂档口")
private Integer signGear10;
@ApiModelProperty(value = "物品档口")
private Integer signGear20;
@ApiModelProperty(value = "商品价格(单价)")
private BigDecimal goodsPrice;
@ApiModelProperty(value = "午餐报餐次数")
private String lunchPostText;
@ApiModelProperty(value = "午餐报餐次数")
private String lunchSignText;
@ApiModelProperty(value = "发货时间")
private Date deliveryTime;
@ApiModelProperty(value = "状态, 0待发布, 1已发布")
private Integer status;
@ApiModelProperty(value = "备注")
private String comments;
@ApiModelProperty(value = "订单号")
private Integer orderId;
@ApiModelProperty(value = "机构id")
private Integer organizationId;
@ApiModelProperty(value = "发布人")
private Integer userId;
@ApiModelProperty(value = "是否删除, 0否, 1是")
@TableLogic
private Integer deleted;
@ApiModelProperty(value = "租户id")
private Integer tenantId;
@ApiModelProperty(value = "创建时间")
private Date createTime;
@ApiModelProperty(value = "修改时间")
private Date updateTime;
}

View File

@@ -0,0 +1,61 @@
package com.gxwebsoft.apps.entity;
import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.util.Date;
/**
* 发布菜品明细
*
* @author 科技小王子
* @since 2023-04-27 17:59:40
*/
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "BcFood对象", description = "发布菜品明细")
@TableName("apps_bc_food")
public class BcFood implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "自增ID")
@TableId(value = "bc_food_id", type = IdType.AUTO)
private Integer bcFoodId;
@ApiModelProperty(value = "菜品计划")
private Integer planId;
@ApiModelProperty(value = "餐段 早餐 午餐 晚餐")
private String period;
@ApiModelProperty(value = "状态, 0待发布, 1已发布")
private Integer status;
@ApiModelProperty(value = "备注")
private String comments;
@ApiModelProperty(value = "发布人")
private Integer userId;
@ApiModelProperty(value = "是否删除, 0否, 1是")
@TableLogic
private Integer deleted;
@ApiModelProperty(value = "租户id")
private Integer tenantId;
@ApiModelProperty(value = "创建时间")
private Date createTime;
@ApiModelProperty(value = "修改时间")
private Date updateTime;
@ApiModelProperty(value = "昵称")
@TableField(exist = false)
private String nickname;
}

View File

@@ -0,0 +1,79 @@
package com.gxwebsoft.apps.entity;
import com.baomidou.mybatisplus.annotation.*;
import com.gxwebsoft.shop.entity.Goods;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* 菜品发布管理
*
* @author 科技小王子
* @since 2023-04-27 17:59:40
*/
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "BcPlan对象", description = "菜品发布管理")
@TableName("apps_bc_plan")
public class BcPlan implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "自增ID")
@TableId(value = "bc_plan_id", type = IdType.AUTO)
private Integer bcPlanId;
@ApiModelProperty(value = "发布日期")
private Date dayTime;
@ApiModelProperty(value = "0星期日 1星期一 2星期二 3星期三 4星期四 5星期五 6星期六")
private Integer week;
@ApiModelProperty(value = "发布类型")
private String type;
@ApiModelProperty(value = "餐段")
private String period;
@ApiModelProperty(value = "多天菜品是否重复")
private Integer isRepeat;
@ApiModelProperty(value = "状态, 0待发布, 1已发布")
private Integer status;
@ApiModelProperty(value = "备注")
private String comments;
@ApiModelProperty(value = "菜品ID")
private String goodsIds;
@ApiModelProperty(value = "商品列表")
@TableField(exist = false)
private List<Goods> goodsList;
@ApiModelProperty(value = "发布人")
private Integer userId;
@ApiModelProperty(value = "是否删除, 0否, 1是")
@TableLogic
private Integer deleted;
@ApiModelProperty(value = "租户id")
private Integer tenantId;
@ApiModelProperty(value = "创建时间")
private Date createTime;
@ApiModelProperty(value = "修改时间")
private Date updateTime;
@ApiModelProperty(value = "昵称")
@TableField(exist = false)
private String nickname;
}

View File

@@ -0,0 +1,80 @@
package com.gxwebsoft.apps.entity;
import com.baomidou.mybatisplus.annotation.*;
import java.time.LocalDateTime;
import java.io.Serializable;
import java.util.Date;
import com.gxwebsoft.common.system.entity.User;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.Value;
/**
* 临时报餐管理
*
* @author 科技小王子
* @since 2023-04-24 21:47:57
*/
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "BcTemporary对象", description = "临时报餐管理")
@TableName("apps_bc_temporary")
public class BcTemporary implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "自增ID")
@TableId(value = "temporary_id", type = IdType.AUTO)
private Integer temporaryId;
@ApiModelProperty(value = "用户ID")
private Integer userId;
@ApiModelProperty(value = "工单ID")
private Integer parentId;
@ApiModelProperty(value = "申请状态")
private Integer applyStatus;
@ApiModelProperty(value = "状态, 0待处理, 1已完成")
private Integer status;
@ApiModelProperty(value = "租户id")
private Integer tenantId;
@ApiModelProperty(value = "加入时间")
private Date createTime;
@ApiModelProperty(value = "备注")
private String comments;
@ApiModelProperty(value = "报餐日期")
private Date dayTime;
@ApiModelProperty(value = "是否删除, 0否, 1是")
@TableLogic
private Integer deleted;
@ApiModelProperty(value = "失效时间")
private Date expirationTime;
@ApiModelProperty(value = "昵称")
@TableField(exist = false)
private String nickname;
@ApiModelProperty(value = "代报餐人员")
@TableField(exist = false)
private String dealerName;
@ApiModelProperty(value = "被代报餐职员")
@TableField(exist = false)
private User user;
@ApiModelProperty(value = "代报餐人员")
@TableField(exist = false)
private User parentUser;
}

View File

@@ -0,0 +1,95 @@
package com.gxwebsoft.apps.entity;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableLogic;
import java.io.Serializable;
import java.util.Date;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 海牛收银台记录表
*
* @author WebSoft
* @since 2022-11-18 11:47:09
*/
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "Cashier对象", description = "海牛收银台记录表")
@TableName("apps_cashier")
public class Cashier implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "ID")
@TableId(value = "cashier_id", type = IdType.AUTO)
private Integer cashierId;
@ApiModelProperty(value = "客户ID")
private String buyerId;
@ApiModelProperty(value = "设备ID")
private String merchantCode;
@ApiModelProperty(value = "支付标识")
private String code;
@ApiModelProperty(value = "返回消息")
private String msg;
@ApiModelProperty(value = "客户端交易订单编号")
private String outTradeNo;
@ApiModelProperty(value = "数量")
private String amount;
@ApiModelProperty(value = "支付时间")
private String payTime;
@ApiModelProperty(value = "支付方式")
private String payType;
@ApiModelProperty(value = "交易金额")
private BigDecimal totalAmount;
@ApiModelProperty(value = "实收金额")
private BigDecimal receiptAmount;
@ApiModelProperty(value = "第三方交易手续费")
private BigDecimal feeAmount;
@ApiModelProperty(value = "第三方结算金额")
private BigDecimal settleAmount;
@ApiModelProperty(value = "商户名称")
private String merchantName;
@ApiModelProperty(value = "手机号码")
private String mobile;
@ApiModelProperty(value = "订单备注")
private String orderRemark;
@ApiModelProperty(value = "订单状态")
private String orderStatus;
@ApiModelProperty(value = "是否删除, 0否, 1是")
@TableLogic
private Integer deleted;
@ApiModelProperty(value = "租户id")
private Integer tenantId;
@ApiModelProperty(value = "注册时间")
private Date createTime;
@ApiModelProperty(value = "修改时间")
private Date updateTime;
}

View File

@@ -0,0 +1,148 @@
package com.gxwebsoft.apps.entity;
import com.baomidou.mybatisplus.annotation.*;
import com.gxwebsoft.common.system.entity.User;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
* 设备管理
*
* @author 科技小王子
* @since 2022-11-30 02:11:16
*/
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "Equipment对象", description = "设备管理")
@TableName("apps_equipment")
public class Equipment implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "设备ID")
@TableId(value = "equipment_id", type = IdType.AUTO)
private Integer equipmentId;
@ApiModelProperty(value = "设备名称")
private String equipmentName;
@ApiModelProperty(value = "设备编码")
private String equipmentCode;
@ApiModelProperty("设备分类")
private String equipmentCategory;
@ApiModelProperty(value = "分类ID")
private Integer categoryId;
@ApiModelProperty(value = "头像")
private String equipmentAvatar;
@ApiModelProperty(value = "电池型号")
private String batteryModel;
@ApiModelProperty(value = "BMS")
private String bms;
@ApiModelProperty(value = "商品详情")
private String content;
@ApiModelProperty(value = "是否激活")
private String isCtive;
@ApiModelProperty(value = "工作状态")
private String workingStatus;
@ApiModelProperty(value = "租赁状态")
private String leaseStatus;
@ApiModelProperty(value = "电池状态")
private String batteryStatus;
@ApiModelProperty(value = "电池电量")
private String batteryPower;
@ApiModelProperty(value = "是否在线")
private String isOnline;
@ApiModelProperty(value = "总电压")
private String totalVoltage;
@ApiModelProperty(value = "BMS板供应商")
private String bmsBrand;
@ApiModelProperty(value = "剩余容量")
private String surplusCapacity;
@ApiModelProperty(value = "ICCID")
private String iccid;
@ApiModelProperty(value = "设备激活时间")
private Date ctiveTime;
@ApiModelProperty(value = "电池出厂时间")
private Date batteryDeliveryTime;
@ApiModelProperty(value = "用户ID")
private Integer userId;
@ApiModelProperty(value = "排序(数字越小越靠前)")
private Integer sortNumber;
@ApiModelProperty(value = "备注")
private String comments;
@ApiModelProperty(value = "状态, 0正常, 1冻结")
private Integer status;
@ApiModelProperty(value = "是否删除, 0否, 1是")
@TableLogic
private Integer deleted;
@ApiModelProperty(value = "商户编号")
private String merchantCode;
@ApiModelProperty(value = "租户id")
private Integer tenantId;
@ApiModelProperty(value = "注册时间")
private Date createTime;
@ApiModelProperty(value = "修改时间")
private Date updateTime;
@ApiModelProperty(value = "所属商户ID")
@TableField(exist = false)
private Integer merchantId;
@ApiModelProperty(value = "所属商户名称")
@TableField(exist = false)
private String merchantName;
@ApiModelProperty(value = "订单ID")
private Integer orderId;
@ApiModelProperty(value = "电池租金")
private BigDecimal batteryRent;
@ApiModelProperty(value = "电池押金")
private BigDecimal batteryDeposit;
@ApiModelProperty(value = "电池保险")
private BigDecimal batteryInsurance;
@ApiModelProperty(value = "设备价格")
private BigDecimal batteryPrice;
@ApiModelProperty(value = "二维码")
private String qrcode;
@ApiModelProperty(value = "绑定的用户")
@TableField(exist = false)
private User user;
}

View File

@@ -0,0 +1,72 @@
package com.gxwebsoft.apps.entity;
import com.baomidou.mybatisplus.annotation.*;
import java.time.LocalDateTime;
import java.io.Serializable;
import java.util.Date;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 故障报警记录
*
* @author 科技小王子
* @since 2022-12-01 23:49:44
*/
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "EquipmentAlarm对象", description = "故障报警记录")
@TableName("apps_equipment_alarm")
public class EquipmentAlarm implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "记录ID")
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@ApiModelProperty(value = "设备编码")
private String equipmentCode;
@ApiModelProperty(value = "报警类型")
private String alarmType;
@ApiModelProperty(value = "备注")
private String comments;
@ApiModelProperty(value = "处理时间")
private Date handleTime;
@ApiModelProperty(value = "用户ID")
private Integer userId;
@ApiModelProperty(value = "排序(数字越小越靠前)")
private Integer sortNumber;
@ApiModelProperty(value = "状态, 0正常, 1冻结")
private Integer status;
@ApiModelProperty(value = "是否删除, 0否, 1是")
@TableLogic
private Integer deleted;
@ApiModelProperty(value = "商户编码")
private String merchantCode;
@ApiModelProperty(value = "租户id")
private Integer tenantId;
@ApiModelProperty(value = "创建时间")
private Date createTime;
@ApiModelProperty(value = "修改时间")
private Date updateTime;
@ApiModelProperty(value = "所属商户名称")
@TableField(exist = false)
private String merchantName;
}

View File

@@ -0,0 +1,75 @@
package com.gxwebsoft.apps.entity;
import com.baomidou.mybatisplus.annotation.*;
import java.time.LocalDateTime;
import java.io.Serializable;
import java.util.Date;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 故障电池
*
* @author 科技小王子
* @since 2022-12-01 18:40:25
*/
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "EquipmentFault对象", description = "故障电池")
@TableName("apps_equipment_fault")
public class EquipmentFault implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "记录ID")
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@ApiModelProperty(value = "设备编号")
private String equipmentCode;
@ApiModelProperty(value = "故障原因")
private String faultType;
@ApiModelProperty(value = "上传图片")
private String image;
@ApiModelProperty(value = "备注")
private String comments;
@ApiModelProperty(value = "处理时间")
private Date handleTime;
@ApiModelProperty(value = "用户ID")
private Integer userId;
@ApiModelProperty(value = "排序(数字越小越靠前)")
private Integer sortNumber;
@ApiModelProperty(value = "状态, 0正常, 1冻结")
private Integer status;
@ApiModelProperty(value = "是否删除, 0否, 1是")
@TableLogic
private Integer deleted;
@ApiModelProperty(value = "商户编码")
private String merchantCode;
@ApiModelProperty(value = "租户id")
private Integer tenantId;
@ApiModelProperty(value = "创建时间")
private Date createTime;
@ApiModelProperty(value = "修改时间")
private Date updateTime;
@ApiModelProperty(value = "所属商户名称")
@TableField(exist = false)
private String merchantName;
}

View File

@@ -0,0 +1,120 @@
package com.gxwebsoft.apps.entity;
import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
* 电池管理记录表
*
* @author 科技小王子
* @since 2023-02-28 22:40:50
*/
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "EquipmentGoods对象", description = "电池管理记录表")
@TableName("apps_equipment_goods")
public class EquipmentGoods implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "商品ID")
@TableId(value = "goods_id", type = IdType.AUTO)
private Integer goodsId;
@ApiModelProperty(value = "商品名称")
private String goodsName;
@ApiModelProperty(value = "下单类型")
private String equipmentCategory;
@ApiModelProperty(value = "商品封面图")
private String image;
@ApiModelProperty(value = "二维码")
private String qrcode;
@ApiModelProperty(value = "分类ID")
private Integer categoryId;
@ApiModelProperty(value = "电池型号")
private String batteryModel;
@ApiModelProperty(value = "库存总量")
private Integer stockTotal;
@ApiModelProperty(value = "商品卖点")
private String sellingPoint;
@ApiModelProperty(value = "商品详情")
private String content;
@ApiModelProperty(value = "电池租金")
private BigDecimal batteryRent;
@ApiModelProperty(value = "电池价格")
private BigDecimal batteryPrice;
@ApiModelProperty(value = "电池押金")
private BigDecimal batteryDeposit;
@ApiModelProperty(value = "电池保险")
private BigDecimal batteryInsurance;
@ApiModelProperty(value = "用户ID")
private Integer userId;
@ApiModelProperty(value = "首付款")
private BigDecimal downPayment;
@ApiModelProperty(value = "分期期数")
private BigDecimal periods;
@ApiModelProperty(value = "每期还款")
private BigDecimal repayment;
@ApiModelProperty(value = "手续费")
private BigDecimal serviceCharges;
@ApiModelProperty(value = "分期方式")
private Integer periodsType;
@ApiModelProperty(value = "排序(数字越小越靠前)")
private Integer sortNumber;
@ApiModelProperty(value = "备注")
private String comments;
@ApiModelProperty(value = "状态, 0正常, 1冻结")
private Integer status;
@ApiModelProperty(value = "是否删除, 0否, 1是")
@TableLogic
private Integer deleted;
@ApiModelProperty(value = "商户编码")
private String merchantCode;
@ApiModelProperty(value = "租户id")
private Integer tenantId;
@ApiModelProperty(value = "注册时间")
private Date createTime;
@ApiModelProperty(value = "修改时间")
private Date updateTime;
@ApiModelProperty(value = "商户名称")
@TableField(exist = false)
private String merchantName;
@ApiModelProperty(value = "订单ID")
@TableField(exist = false)
private Integer orderId;
}

View File

@@ -0,0 +1,202 @@
package com.gxwebsoft.apps.entity;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import java.io.Serializable;
import java.util.Date;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 订单记录表
*
* @author 科技小王子
* @since 2023-04-14 21:24:31
*/
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "EquipmentOrder对象", description = "订单记录表")
@TableName("apps_equipment_order")
public class EquipmentOrder implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "订单ID")
@TableId(value = "order_id", type = IdType.AUTO)
private Integer orderId;
@ApiModelProperty(value = "订单标题")
private String subject;
@ApiModelProperty(value = "订单号")
private String orderNo;
@ApiModelProperty(value = "商品总金额(不含优惠折扣)")
private BigDecimal totalPrice;
@ApiModelProperty(value = "订单金额(含优惠折扣)")
private BigDecimal orderPrice;
@ApiModelProperty(value = "优惠券ID")
private Integer couponId;
@ApiModelProperty(value = "优惠券抵扣金额")
private BigDecimal couponMoney;
@ApiModelProperty(value = "积分抵扣金额")
private BigDecimal pointsMoney;
@ApiModelProperty(value = "积分抵扣数量")
private Integer pointsNum;
@ApiModelProperty(value = "实际付款金额(包含运费)")
private BigDecimal payPrice;
@ApiModelProperty(value = "第三方支付实收金额")
private BigDecimal receiptAmount;
@ApiModelProperty(value = "后台修改的订单金额(差价)")
private BigDecimal updatePrice;
@ApiModelProperty(value = "买家留言")
private String buyerRemark;
@ApiModelProperty(value = "支付方式(废弃)")
private Integer payType;
@ApiModelProperty(value = "支付方式余额10/微信20/支付宝30/通联支付40/其他支付50")
private String payMethod;
@ApiModelProperty(value = "付款状态(10未付款 20已付款)")
private Integer payStatus;
@ApiModelProperty(value = "付款时间")
private Date payTime;
@ApiModelProperty(value = "第三方交易记录ID")
private String tradeId;
@ApiModelProperty(value = "配送方式(10快递配送 20门店自提)")
private Integer deliveryType;
@ApiModelProperty(value = "自提门店ID")
private Integer extractShopId;
@ApiModelProperty(value = "核销店员ID")
private Integer extractClerkId;
@ApiModelProperty(value = "运费金额")
private BigDecimal expressPrice;
@ApiModelProperty(value = "物流公司ID (废弃)")
private Integer expressId;
@ApiModelProperty(value = "物流单号 (废弃)")
private String expressNo;
@ApiModelProperty(value = "发货状态(10未发货 20已发货 30部分发货)")
private Integer deliveryStatus;
@ApiModelProperty(value = "发货时间")
private Date deliveryTime;
@ApiModelProperty(value = "收货状态(10未收货 20已收货)")
private Integer receiptStatus;
@ApiModelProperty(value = "收货时间")
private Date receiptTime;
@ApiModelProperty(value = "订单状态(10进行中 20取消 21待取消 30已完成)")
private Integer orderStatus;
@ApiModelProperty(value = "赠送的积分数量")
private Integer pointsBonus;
@ApiModelProperty(value = "商家备注")
private String merchantRemark;
@ApiModelProperty(value = "订单是否已结算(0未结算 1已结算)")
private Integer isSettled;
@ApiModelProperty(value = "续租订单的关联单号")
private Integer rentOrderId;
@ApiModelProperty(value = "微信支付交易号(废弃)")
private String transactionId;
@ApiModelProperty(value = "是否已评价(0否 1是)")
private Integer isComment;
@ApiModelProperty(value = "订单来源(10普通订单 20砍价订单 30秒杀订单)")
private Integer orderSource;
@ApiModelProperty(value = "来源记录ID")
private Integer orderSourceId;
@ApiModelProperty(value = "来源记录的参数 (json格式)")
private String orderSourceData;
@ApiModelProperty(value = "电池租金")
private BigDecimal batteryRent;
@ApiModelProperty(value = "电池押金")
private BigDecimal batteryDeposit;
@ApiModelProperty(value = "保险")
private BigDecimal batteryInsurance;
@ApiModelProperty(value = "购买月份数量")
private Integer month;
@ApiModelProperty(value = "服务到期时间")
private Date expirationTime;
@ApiModelProperty(value = "来源客户端 (APP、H5、小程序等)")
private String platform;
@ApiModelProperty(value = "是否续费订单")
private Integer isRenew;
@ApiModelProperty(value = "用户ID")
private Integer userId;
@ApiModelProperty(value = "所属门店ID")
private Integer shopId;
@ApiModelProperty(value = "商品ID")
private Integer goodsId;
@ApiModelProperty(value = "电池商品ID")
private Integer equipmentId;
@ApiModelProperty(value = "排序(数字越小越靠前)")
private Integer sortNumber;
@ApiModelProperty(value = "备注")
private String comments;
@ApiModelProperty(value = "状态, 0正常, 1冻结")
private Integer status;
@ApiModelProperty(value = "是否删除, 0否, 1是")
@TableLogic
private Integer deleted;
@ApiModelProperty(value = "商户编码")
private String merchantCode;
@ApiModelProperty(value = "租户id")
private Integer tenantId;
@ApiModelProperty(value = "注册时间")
private Date createTime;
@ApiModelProperty(value = "修改时间")
private Date updateTime;
}

View File

@@ -0,0 +1,119 @@
package com.gxwebsoft.apps.entity;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import java.io.Serializable;
import java.util.Date;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 电池管理记录表
*
* @author 科技小王子
* @since 2023-05-11 19:10:13
*/
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "EquipmentOrderGoods对象", description = "电池管理记录表")
@TableName("apps_equipment_order_goods")
public class EquipmentOrderGoods implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "商品ID")
@TableId(value = "order_goods_id", type = IdType.AUTO)
private Integer orderGoodsId;
@ApiModelProperty(value = "商品名称")
private String goodsName;
@ApiModelProperty(value = "下单类型")
private String equipmentCategory;
@ApiModelProperty(value = "商品封面图")
private String image;
@ApiModelProperty(value = "二维码")
private String qrcode;
@ApiModelProperty(value = "分类ID")
private Integer categoryId;
@ApiModelProperty(value = "电池型号")
private String batteryModel;
@ApiModelProperty(value = "商品卖点")
private String sellingPoint;
@ApiModelProperty(value = "库存总量")
private Integer stockTotal;
@ApiModelProperty(value = "商品详情")
private String content;
@ApiModelProperty(value = "电池租金")
private BigDecimal batteryRent;
@ApiModelProperty(value = "电池价格")
private BigDecimal batteryPrice;
@ApiModelProperty(value = "电池押金")
private BigDecimal batteryDeposit;
@ApiModelProperty(value = "电池保险")
private BigDecimal batteryInsurance;
@ApiModelProperty(value = "首付款")
private BigDecimal downPayment;
@ApiModelProperty(value = "分期期数")
private BigDecimal periods;
@ApiModelProperty(value = "分期还款")
private BigDecimal repayment;
@ApiModelProperty(value = "手续费")
private BigDecimal serviceCharges;
@ApiModelProperty(value = "分期方式 10按周 20按月")
private Integer periodsType;
@ApiModelProperty(value = "订单编号")
private Integer orderId;
@ApiModelProperty(value = "用户ID")
private Integer userId;
@ApiModelProperty(value = "排序(数字越小越靠前)")
private Integer sortNumber;
@ApiModelProperty(value = "备注")
private String comments;
@ApiModelProperty(value = "状态, 0正常, 1冻结")
private Integer status;
@ApiModelProperty(value = "是否删除, 0否, 1是")
@TableLogic
private Integer deleted;
@ApiModelProperty(value = "商户编码")
private String merchantCode;
@ApiModelProperty(value = "租户id")
private Integer tenantId;
@ApiModelProperty(value = "注册时间")
private Date createTime;
@ApiModelProperty(value = "修改时间")
private Date updateTime;
}

View File

@@ -0,0 +1,79 @@
package com.gxwebsoft.apps.entity;
import com.baomidou.mybatisplus.annotation.*;
import java.time.LocalDateTime;
import java.io.Serializable;
import java.util.Date;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 前世今生
*
* @author 科技小王子
* @since 2022-12-03 01:23:53
*/
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "EquipmentRecord对象", description = "前世今生")
@TableName("apps_equipment_record")
public class EquipmentRecord implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "记录ID")
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@ApiModelProperty(value = "设备编码")
private String equipmentCode;
@ApiModelProperty(value = "事件类型")
private String eventType;
@ApiModelProperty(value = "请求参数")
private String params;
@ApiModelProperty(value = "用户ID")
private Integer userId;
@ApiModelProperty(value = "订单ID")
private Integer orderId;
@ApiModelProperty(value = "排序(数字越小越靠前)")
private Integer sortNumber;
@ApiModelProperty(value = "备注")
private String comments;
@ApiModelProperty(value = "状态, 0正常, 1冻结")
private Integer status;
@ApiModelProperty(value = "是否删除, 0否, 1是")
@TableLogic
private Integer deleted;
@ApiModelProperty(value = "商户编码")
private String merchantCode;
@ApiModelProperty(value = "租户id")
private Integer tenantId;
@ApiModelProperty(value = "创建时间")
private Date createTime;
@ApiModelProperty(value = "修改时间")
private Date updateTime;
@ApiModelProperty(value = "所属商户名称")
@TableField(exist = false)
private String merchantName;
@ApiModelProperty(value = "用户昵称")
@TableField(exist = false)
private String nickname;
}

View File

@@ -0,0 +1,70 @@
package com.gxwebsoft.apps.entity;
import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.util.Date;
/**
* 常用链接推荐记录表
*
* @author 科技小王子
* @since 2022-11-25 12:55:33
*/
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "Link对象", description = "常用链接推荐记录表")
@TableName("apps_hualala")
public class Hualala implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "当前请求的时间戳(毫秒)")
@TableField(exist = false)
private Long timestamp;
@ApiModelProperty(value = "服务器接口")
@TableField(exist = false)
private String apiUrl = "https://www-openapi.hualala.com";
@ApiModelProperty(value = "开发者Key")
@TableField(exist = false)
private String appKey = "2487";
@ApiModelProperty(value = "appSecret")
@TableField(exist = false)
private String appSecret = "Hgr520dQpEiFe0FV";
@ApiModelProperty(value = "集团ID")
@TableField(exist = false)
private String groupID = "1528";
@ApiModelProperty(value = "店铺ID")
@TableField(exist = false)
private String shopID = "76288809";
@ApiModelProperty(value = "签名")
@TableField(exist = false)
private String signature;
@ApiModelProperty(value = "版本号,固定传 3")
@TableField(exist = false)
private Integer version = 3;
@ApiModelProperty(value = "业务参数 格式为jsonString")
@TableField(exist = false)
private String requestBody;
@ApiModelProperty(value = "租户id")
private Integer tenantId;
@ApiModelProperty(value = "注册时间")
private Date createTime;
@ApiModelProperty(value = "修改时间")
private Date updateTime;
}

View File

@@ -0,0 +1,131 @@
package com.gxwebsoft.apps.entity;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableLogic;
import java.io.Serializable;
import java.util.Date;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
*
*
* @author 科技小王子
* @since 2023-01-08 12:22:50
*/
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "HualalaCard对象", description = "")
@TableName("apps_hualala_card")
public class HualalaCard implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@ApiModelProperty(value = "groupID")
private String groupId;
@ApiModelProperty(value = "shopID")
private String shopId;
@ApiModelProperty(value = "网速会员id")
private Integer userId;
@ApiModelProperty(value = "会员卡ID")
private String cardId;
private String cardTypeId;
@ApiModelProperty(value = "会员卡等级ID")
private String cardLevelId;
@ApiModelProperty(value = "会员卡等级名称")
private String cardLevelName;
@ApiModelProperty(value = "卡状态 10正常 20挂失中 30冻结 40注销作废50已过期")
private String cardStatus;
private String customerId;
@ApiModelProperty(value = "会员卡入会店铺字段")
private String createShopId;
@ApiModelProperty(value = "入会店铺名称")
private String createShopName;
@ApiModelProperty(value = "卡号")
private String cardNo;
@ApiModelProperty(value = "姓名")
private String customerName;
@ApiModelProperty(value = " 手机号")
private String customerMobile;
@ApiModelProperty(value = "性别 0女 1男 2未知")
private Integer customerSex;
@ApiModelProperty(value = "生日")
private String customerBirthday;
@ApiModelProperty(value = "卡余额")
private BigDecimal cardBalance;
@ApiModelProperty(value = "积分余额")
private BigDecimal pointBalance;
@ApiModelProperty(value = "累计储值金额")
private BigDecimal saveMoneyTotal;
@ApiModelProperty(value = "累计消费金额")
private BigDecimal consumptionTotal;
@ApiModelProperty(value = "累计消费次数")
private Integer consumptionCount;
@ApiModelProperty(value = "当前等级积分")
private Integer grade;
@ApiModelProperty(value = "下一等级积分")
private Integer nextLevelGrade;
@ApiModelProperty(value = "有效期至(yyyyMMddHHmmss) 0表示永久有效")
private String expireTime;
@ApiModelProperty(value = "最后一次交易时间")
private String lastTransTime;
@ApiModelProperty(value = "排序(数字越小越靠前)")
private Integer sortNumber;
@ApiModelProperty(value = "备注")
private String comments;
@ApiModelProperty(value = "状态, 0正常, 1冻结")
private Integer status;
@ApiModelProperty(value = "是否删除, 0否, 1是")
@TableLogic
private Integer deleted;
@ApiModelProperty(value = "商户编码")
private String merchantCode;
@ApiModelProperty(value = "租户id")
private Integer tenantId;
@ApiModelProperty(value = "注册时间")
private Date createTime;
@ApiModelProperty(value = "修改时间")
private Date updateTime;
}

View File

@@ -0,0 +1,69 @@
package com.gxwebsoft.apps.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableLogic;
import java.io.Serializable;
import java.util.Date;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 会员权益
*
* @author 科技小王子
* @since 2023-01-08 12:22:50
*/
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "HualalaCardBenefits对象", description = "会员权益")
@TableName("apps_hualala_card_benefits")
public class HualalaCardBenefits implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@ApiModelProperty(value = "会员等级名称")
private String cardLevelName;
@ApiModelProperty(value = "名称")
private String name;
@ApiModelProperty(value = "封面图")
private String image;
@ApiModelProperty(value = "内容")
private String content;
@ApiModelProperty(value = "排序(数字越小越靠前)")
private Integer sortNumber;
@ApiModelProperty(value = "备注")
private String comments;
@ApiModelProperty(value = "状态, 0正常, 1冻结")
private Integer status;
@ApiModelProperty(value = "是否删除, 0否, 1是")
@TableLogic
private Integer deleted;
@ApiModelProperty(value = "商户编码")
private String merchantCode;
@ApiModelProperty(value = "租户id")
private Integer tenantId;
@ApiModelProperty(value = "注册时间")
private Date createTime;
@ApiModelProperty(value = "修改时间")
private Date updateTime;
}

View File

@@ -0,0 +1,16 @@
package com.gxwebsoft.apps.entity;
import lombok.Data;
import java.math.BigDecimal;
import java.util.List;
/**
* 购物车
*/
@Data
public class HualalaCart {
List<HualalaFood> items;// 商品列表
BigDecimal totalPrice; // 总结
int totalNum; // 总数
}

View File

@@ -0,0 +1,78 @@
package com.gxwebsoft.apps.entity;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.io.Serializable;
import java.util.Date;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 购物车商品
*
* @author 科技小王子
* @since 2023-01-14 14:46:44
*/
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "HualalaCartFood对象", description = "购物车商品")
@TableName("apps_hualala_cart_food")
public class HualalaCartFood implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "ID")
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@ApiModelProperty(value = "用户ID")
private Integer userId;
@ApiModelProperty(value = "总数量")
private Integer foodId;
@ApiModelProperty(value = "菜品名称")
private String foodName;
@ApiModelProperty(value = "skuId")
private String skuId;
@ApiModelProperty(value = "店铺id")
private Integer shopId;
@ApiModelProperty(value = "店铺名称")
private String shopName;
@ApiModelProperty(value = "店铺标志")
private String shopLogo;
@ApiModelProperty(value = "商品图")
private String coverUrl;
@ApiModelProperty(value = "已放入购物车数量")
@TableField(exist = false)
private Long num;
@ApiModelProperty(value = "售价")
private BigDecimal sellPrice;
@ApiModelProperty(value = "库存")
private Integer stock;
@ApiModelProperty(value = "租户id")
private Integer tenantId;
@ApiModelProperty(value = "注册时间")
private Date createTime;
@ApiModelProperty(value = "修改时间")
private Date updateTime;
}

View File

@@ -0,0 +1,300 @@
package com.gxwebsoft.apps.entity;
import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
* 菜品分类
*
* @author 科技小王子
* @since 2023-01-12 15:34:55
*/
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "HualalaFood对象", description = "菜品分类")
@TableName("apps_hualala_food")
public class HualalaFood implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@ApiModelProperty(value = "菜品ID")
private String foodId;
@ApiModelProperty(value = "菜品Key")
private String foodKey;
@ApiModelProperty(value = "集团ID")
private String groupId;
@ApiModelProperty(value = "店铺ID")
private String shopId;
@ApiModelProperty(value = "菜品条目数")
private String foodCount;
@ApiModelProperty(value = "加入购物车数量")
@TableField(exist = false)
private Integer cartNum;
@ApiModelProperty(value = "售价")
@TableField(exist = false)
private BigDecimal sellPrice;
@ApiModelProperty("子菜单")
@TableField(exist = false)
private List<HualalaFood> children;
//
// @ApiModelProperty(value = "pos菜品分类ID")
// private String foodCategoryId;
//
// @ApiModelProperty(value = "pos菜品分类Key")
// private String foodCategoryKey;
//
// @ApiModelProperty(value = "pos菜品分类名称")
// private String foodCategoryName;
@ApiModelProperty(value = "线上菜品分类ID")
private String foodOnlineCategoryId;
@ApiModelProperty(value = "线上菜品分类Key")
private String foodOnlineCategoryKey;
@ApiModelProperty(value = "线上菜品分类名称")
private String foodOnlineCategoryName;
@ApiModelProperty(value = "是/否是配料false不是 true")
private Integer isBatching;
@ApiModelProperty(value = "是/否可单独销售 0不单独销售默认 1可单独销售")
private Integer isSingleSale;
@ApiModelProperty(value = "此菜品关联的收入科目key例如冷菜收入、热菜收入、酒水收入")
private String foodSubjectKey;
@ApiModelProperty(value = "对应出品部门Key列表")
private String departmentKeyLst;
@ApiModelProperty(value = "配菜的分类key,在这里选择配菜")
private String batchingFoodCategoryKey;
@ApiModelProperty(value = "菜品名称")
private String foodName;
@ApiModelProperty(value = "菜品编号 可用于与三方菜品数据做映射")
private String foodCode;
@ApiModelProperty(value = "菜品别名")
private String foodAliasName;
@ApiModelProperty(value = "菜品注记码")
private String foodMnemonicCode;
@ApiModelProperty(value = "配菜的分类key,在这里选择配菜")
private Integer isDiscount;
@ApiModelProperty(value = "规格")
private Object units;
@ApiModelProperty(value = "起售")
private String minOrderCount;
@ApiModelProperty(value = "分类编号")
private String foodCategoryCode;
@ApiModelProperty(value = "分类英文名")
private String foodCategoryEnName;
@ApiModelProperty(value = "分类分组名称")
private String foodCategoryGroupName;
@ApiModelProperty(value = "0:堂食 1:堂食,外送,自提 2:外送,自提 3:自提 4:外送 5:堂食,自提 6:堂食,外送")
private String takeawayTag;
@ApiModelProperty(value = "菜品图片")
private String imgePath;
@ApiModelProperty(value = "结算系数")
private String settlementProportion;
@ApiModelProperty(value = "分类显示排序值")
private Integer sortIndex;
@ApiModelProperty(value = "状态, 0正常, 1冻结")
private Integer status;
@ApiModelProperty(value = "是否删除, 0否, 1是")
@TableLogic
private Integer deleted;
@ApiModelProperty(value = "租户id")
private Integer tenantId;
@ApiModelProperty(value = "注册时间")
private Date createTime;
@ApiModelProperty(value = "修改时间")
private Date updateTime;
// private Integer isComments;
//
// private Integer isActive;
//
// private Integer isOpen;
//
// private Integer isSetFood;
//
// private Object setFoodDetailJson;
//
// private Integer isTempFood;
//
// private String py;
//
//
// private String tasteList;
//
// private Object tasteGroupList;
//
// private Object makingMethodList;
//
// private Object makingMethodGroupList;
//
// private Integer isSpecialty;
//
// private Integer isRecommend;
//
// private Integer isNews;
//
// private String hotTag;
//
// private String salesCount;
//
// private Integer isNeedConfirmFoodNumber;
//
// private String takeoutPackagingFee;
//
// private String incrementUnit;
// private Integer isHasImage;
//
// private String imageHwp;
//
// private String starLevel;
//
// private String foodTagIds;
//
private String parentFoodId;
//
// private String foodEnName;
//
// private Integer isAutoAdd;
//
// private Integer isCanRefund;
//
// private Integer setPerson;
//
// private Integer tasteIsRequired;
//
// private Integer tasteIsMultiple;
//
// private Integer makingMethodIsRequired;
//
// private Integer makingMethodIsMultiple;
//
// private String initClickAmount;
//
// private String actualClickAmount;
//
// private String recentClickAmount;
//
// private String clickAlertMess;
//
// private String sourceFoodId;
//
// private String salesCommission;
//
// private String foodKeyElementLst;
//
// private String foodSortIndex;
//
// private String actionTime;
//
// private String foodSubjectName;
//
// private String foodSubjectCode;
//
// private String departmentId;
//
// private String departmentKey;
//
// private String popularity;
//
// private String detailSplit;
//
// private String batchingIsFoodNumberRate;
// @ApiModelProperty(value = "特价")
// private String specialPrice;
//
// @ApiModelProperty(value = "特价2")
// private String specialPrice2;
//
// @ApiModelProperty(value = "特价2")
// private String specialPrice3;
//
// @ApiModelProperty(value = "特价2")
// private String specialPrice4;
//
// @ApiModelProperty(value = "特价2")
// private String specialPrice5;
//
// @ApiModelProperty(value = "特价2")
// private String specialPrice6;
//
// @ApiModelProperty(value = "特价2")
// private String onlineWmPrice;
//
// @ApiModelProperty(value = "标签ids")
// private String tagIds;
//
// @ApiModelProperty(value = "标签名称")
// private String tagNames;
//
// @ApiModelProperty(value = "礼品券ID")
// private String giftItemId;
//
// @ApiModelProperty(value = "礼品券有效期")
// private String giftValidPeriod;
//
// @ApiModelProperty(value = "菜品分类说明")
// private String description;
//
// @ApiModelProperty(value = "记录状态")
// private String action;
// @ApiModelProperty(value = "封面图")
// private String image;
//
// @ApiModelProperty(value = "内容")
// private String content;
//
// @ApiModelProperty(value = "排序(数字越小越靠前)")
// private Integer sortNumber;
//
// @ApiModelProperty(value = "备注")
// private String comments;
// private String workingLunchTag;
//
// private String adsId;
}

View File

@@ -0,0 +1,111 @@
package com.gxwebsoft.apps.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableLogic;
import java.io.Serializable;
import java.util.Date;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 菜品分类
*
* @author 科技小王子
* @since 2023-01-12 09:49:46
*/
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "HualalaFoodCategory对象", description = "菜品分类")
@TableName("apps_hualala_food_category")
public class HualalaFoodCategory implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@ApiModelProperty(value = "是/否配料分类 0不是默认 1")
private Integer type;
@ApiModelProperty(value = "名称")
private String foodCategoryName;
@ApiModelProperty(value = "收入名称")
private String foodSubjectName;
@ApiModelProperty(value = "菜品Key")
private String foodKey;
@ApiModelProperty(value = "菜品条目数")
private String foodCount;
@ApiModelProperty(value = "分类ID")
private String foodCategoryId;
@ApiModelProperty(value = "分类ID")
private String foodCategoryGroupName;
@ApiModelProperty(value = "分类Key")
private String foodCategoryKey;
@ApiModelProperty(value = "记录状态")
private String action;
@ApiModelProperty(value = "结算系数")
private String settlementProportion;
@ApiModelProperty(value = "是否启用")
private Integer isActive;
@ApiModelProperty(value = "是/否配料分类 0不是默认 1")
private Integer isBatching;
@ApiModelProperty(value = "是/否可单独销售 0不单独销售默认 1可单独销售")
private Integer isSingleSale;
@ApiModelProperty(value = "分类显示排序值")
private Integer sortIndex;
@ApiModelProperty(value = "介绍页id")
private Integer adsId;
@ApiModelProperty(value = "店铺ID")
private String shopId;
@ApiModelProperty(value = "封面图")
private String image;
@ApiModelProperty(value = "内容")
private String content;
@ApiModelProperty(value = "排序(数字越小越靠前)")
private Integer sortNumber;
@ApiModelProperty(value = "备注")
private String comments;
@ApiModelProperty(value = "状态, 0正常, 1冻结")
private Integer status;
@ApiModelProperty(value = "是否删除, 0否, 1是")
@TableLogic
private Integer deleted;
@ApiModelProperty(value = "商户编码")
private String merchantCode;
@ApiModelProperty(value = "租户id")
private Integer tenantId;
@ApiModelProperty(value = "注册时间")
private Date createTime;
@ApiModelProperty(value = "修改时间")
private Date updateTime;
}

View File

@@ -0,0 +1,117 @@
package com.gxwebsoft.apps.entity;
import com.baomidou.mybatisplus.annotation.*;
import java.time.LocalDateTime;
import java.io.Serializable;
import java.util.Date;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 哗啦啦门店管理
*
* @author 科技小王子
* @since 2023-01-12 18:24:44
*/
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "HualalaShop对象", description = "哗啦啦门店管理")
@TableName("apps_hualala_shop")
public class HualalaShop implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "id")
@TableId(value = "id", type = IdType.AUTO)
private Long id;
@ApiModelProperty(value = "店铺ID")
private Long shopId;
@ApiModelProperty(value = "店铺名称")
private String shopName;
@ApiModelProperty(value = "店铺logo")
private String logoUrl;
@ApiModelProperty(value = "所在城市ID")
private String shopCity;
@ApiModelProperty(value = "所在城市")
private String shopCityName;
@ApiModelProperty(value = "营业时间")
private String shopOpenTime;
@ApiModelProperty(value = "店内电话")
private String shopPhone;
@ApiModelProperty(value = "HLL")
private String acspType;
@ApiModelProperty(value = "1")
private String action;
@ApiModelProperty(value = "20230111104803")
private String actionTime;
@ApiModelProperty(value = "品牌ID")
private String brandId;
@ApiModelProperty(value = "品牌名称")
private String brandName;
@ApiModelProperty(value = "1")
private String businessModel;
@ApiModelProperty(value = "图片")
private String imagePath;
@ApiModelProperty(value = "22.7913010")
private Double mapLatitudeValueBaiDu;
@ApiModelProperty(value = "108.3312800")
private Double mapLongitudeValueBaiDu;
@ApiModelProperty(value = "0")
private Integer operationMode;
@ApiModelProperty(value = "排序(数字越小越靠前)")
private Integer sortNumber;
@ApiModelProperty(value = "备注")
private String comments;
@ApiModelProperty(value = "状态, 0正常, 1冻结")
private Integer status;
@ApiModelProperty(value = "是否删除, 0否, 1是")
@TableLogic
private Integer deleted;
@ApiModelProperty(value = "小通云缴商户号")
private String payMerchantNo;
@ApiModelProperty(value = "小通云缴秘钥")
private String paySecret;
@ApiModelProperty(value = "客户ID")
private Integer customerId;
@ApiModelProperty(value = "距离")
@TableField(exist = false)
private Double distance;
@ApiModelProperty(value = "租户id")
private Integer tenantId;
@ApiModelProperty(value = "注册时间")
private Date createTime;
@ApiModelProperty(value = "修改时间")
private Date updateTime;
}

View File

@@ -0,0 +1,20 @@
package com.gxwebsoft.apps.entity;
import lombok.Data;
import java.math.BigDecimal;
/**
* 操作购物车信息
*/
@Data
public class ItemVo {
private String userId; // 用户ID
private String shopId; // 店铺ID
private Integer foodId; // 菜品ID
private Integer num; // 数量
private BigDecimal price; // 售价
private String imge; // 菜品图片
private String foodName; // 菜品名称
private String foodUnitID; // 规格ID
}

View File

@@ -0,0 +1,79 @@
package com.gxwebsoft.apps.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableLogic;
import java.io.Serializable;
import java.util.Date;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 常用链接推荐记录表
*
* @author 科技小王子
* @since 2022-11-25 12:55:33
*/
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "Link对象", description = "常用链接推荐记录表")
@TableName("apps_link")
public class Link implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "链接ID")
@TableId(value = "link_id", type = IdType.AUTO)
private Integer linkId;
@ApiModelProperty(value = "链接名称")
private String linkName;
@ApiModelProperty(value = "链接图标")
private String linkIcon;
@ApiModelProperty(value = "路由地址")
private String linkPath;
@ApiModelProperty(value = "组件路径")
private String linkComponent;
@ApiModelProperty(value = "链接类型")
private String type;
@ApiModelProperty(value = "点击次数")
private Integer clicks;
@ApiModelProperty(value = "推荐理由")
private String comments;
@ApiModelProperty(value = "文章排序(数字越小越靠前)")
private Integer sortNumber;
@ApiModelProperty(value = "状态, 0正常, 1冻结")
private Integer status;
@ApiModelProperty(value = "是否删除, 0否, 1是")
@TableLogic
private Integer deleted;
@ApiModelProperty(value = "用户ID")
private Integer userId;
@ApiModelProperty(value = "商户编号")
private String merchantCode;
@ApiModelProperty(value = "租户id")
private Integer tenantId;
@ApiModelProperty(value = "注册时间")
private Date createTime;
@ApiModelProperty(value = "修改时间")
private Date updateTime;
}

View File

@@ -0,0 +1,47 @@
package com.gxwebsoft.apps.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.io.Serializable;
import java.util.Date;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 测试数据表
*
* @author 科技小王子
* @since 2023-02-01 12:13:46
*/
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "TestData对象", description = "测试数据表")
@TableName("apps_test_data")
public class TestData implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "主键ID")
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@ApiModelProperty(value = "标题")
private String title;
@ApiModelProperty(value = "内容")
private String content;
@ApiModelProperty(value = "租户id")
private Integer tenantId;
@ApiModelProperty(value = "注册时间")
private Date createTime;
@ApiModelProperty(value = "修改时间")
private Date updateTime;
}

View File

@@ -0,0 +1,37 @@
package com.gxwebsoft.apps.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.gxwebsoft.apps.entity.BcAgent;
import com.gxwebsoft.apps.param.BcAgentParam;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 代报餐管理Mapper
*
* @author 科技小王子
* @since 2023-04-24 19:25:59
*/
public interface BcAgentMapper extends BaseMapper<BcAgent> {
/**
* 分页查询
*
* @param page 分页对象
* @param param 查询参数
* @return List<BcAgent>
*/
List<BcAgent> selectPageRel(@Param("page") IPage<BcAgent> page,
@Param("param") BcAgentParam param);
/**
* 查询全部
*
* @param param 查询参数
* @return List<User>
*/
List<BcAgent> selectListRel(@Param("param") BcAgentParam param);
}

View File

@@ -0,0 +1,37 @@
package com.gxwebsoft.apps.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.gxwebsoft.apps.entity.BcCookbook;
import com.gxwebsoft.apps.param.BcCookbookParam;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 常用菜谱Mapper
*
* @author 科技小王子
* @since 2023-05-05 14:56:54
*/
public interface BcCookbookMapper extends BaseMapper<BcCookbook> {
/**
* 分页查询
*
* @param page 分页对象
* @param param 查询参数
* @return List<BcCookbook>
*/
List<BcCookbook> selectPageRel(@Param("page") IPage<BcCookbook> page,
@Param("param") BcCookbookParam param);
/**
* 查询全部
*
* @param param 查询参数
* @return List<User>
*/
List<BcCookbook> selectListRel(@Param("param") BcCookbookParam param);
}

View File

@@ -0,0 +1,37 @@
package com.gxwebsoft.apps.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.gxwebsoft.apps.entity.BcEquipment;
import com.gxwebsoft.apps.param.BcEquipmentParam;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 报餐设备管理Mapper
*
* @author 科技小王子
* @since 2023-05-02 10:34:40
*/
public interface BcEquipmentMapper extends BaseMapper<BcEquipment> {
/**
* 分页查询
*
* @param page 分页对象
* @param param 查询参数
* @return List<BcEquipment>
*/
List<BcEquipment> selectPageRel(@Param("page") IPage<BcEquipment> page,
@Param("param") BcEquipmentParam param);
/**
* 查询全部
*
* @param param 查询参数
* @return List<User>
*/
List<BcEquipment> selectListRel(@Param("param") BcEquipmentParam param);
}

View File

@@ -0,0 +1,37 @@
package com.gxwebsoft.apps.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.gxwebsoft.apps.entity.BcExport;
import com.gxwebsoft.apps.param.BcExportParam;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 报餐统计导出Mapper
*
* @author 科技小王子
* @since 2023-06-01 21:47:02
*/
public interface BcExportMapper extends BaseMapper<BcExport> {
/**
* 分页查询
*
* @param page 分页对象
* @param param 查询参数
* @return List<BcExport>
*/
List<BcExport> selectPageRel(@Param("page") IPage<BcExport> page,
@Param("param") BcExportParam param);
/**
* 查询全部
*
* @param param 查询参数
* @return List<User>
*/
List<BcExport> selectListRel(@Param("param") BcExportParam param);
}

View File

@@ -0,0 +1,37 @@
package com.gxwebsoft.apps.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.gxwebsoft.apps.entity.BcFood;
import com.gxwebsoft.apps.param.BcFoodParam;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 发布菜品明细Mapper
*
* @author 科技小王子
* @since 2023-04-27 17:59:40
*/
public interface BcFoodMapper extends BaseMapper<BcFood> {
/**
* 分页查询
*
* @param page 分页对象
* @param param 查询参数
* @return List<BcFood>
*/
List<BcFood> selectPageRel(@Param("page") IPage<BcFood> page,
@Param("param") BcFoodParam param);
/**
* 查询全部
*
* @param param 查询参数
* @return List<User>
*/
List<BcFood> selectListRel(@Param("param") BcFoodParam param);
}

View File

@@ -0,0 +1,37 @@
package com.gxwebsoft.apps.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.gxwebsoft.apps.entity.BcPlan;
import com.gxwebsoft.apps.param.BcPlanParam;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 菜品发布管理Mapper
*
* @author 科技小王子
* @since 2023-04-27 17:59:40
*/
public interface BcPlanMapper extends BaseMapper<BcPlan> {
/**
* 分页查询
*
* @param page 分页对象
* @param param 查询参数
* @return List<BcPlan>
*/
List<BcPlan> selectPageRel(@Param("page") IPage<BcPlan> page,
@Param("param") BcPlanParam param);
/**
* 查询全部
*
* @param param 查询参数
* @return List<User>
*/
List<BcPlan> selectListRel(@Param("param") BcPlanParam param);
}

View File

@@ -0,0 +1,37 @@
package com.gxwebsoft.apps.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.gxwebsoft.apps.entity.BcTemporary;
import com.gxwebsoft.apps.param.BcTemporaryParam;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 临时报餐管理Mapper
*
* @author 科技小王子
* @since 2023-04-24 21:47:57
*/
public interface BcTemporaryMapper extends BaseMapper<BcTemporary> {
/**
* 分页查询
*
* @param page 分页对象
* @param param 查询参数
* @return List<BcTemporary>
*/
List<BcTemporary> selectPageRel(@Param("page") IPage<BcTemporary> page,
@Param("param") BcTemporaryParam param);
/**
* 查询全部
*
* @param param 查询参数
* @return List<User>
*/
List<BcTemporary> selectListRel(@Param("param") BcTemporaryParam param);
}

View File

@@ -0,0 +1,37 @@
package com.gxwebsoft.apps.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.gxwebsoft.apps.entity.Cashier;
import com.gxwebsoft.apps.param.CashierParam;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 海牛收银台记录表Mapper
*
* @author WebSoft
* @since 2022-11-18 11:47:09
*/
public interface CashierMapper extends BaseMapper<Cashier> {
/**
* 分页查询
*
* @param page 分页对象
* @param param 查询参数
* @return List<Cashier>
*/
List<Cashier> selectPageRel(@Param("page") IPage<Cashier> page,
@Param("param") CashierParam param);
/**
* 查询全部
*
* @param param 查询参数
* @return List<User>
*/
List<Cashier> selectListRel(@Param("param") CashierParam param);
}

View File

@@ -0,0 +1,37 @@
package com.gxwebsoft.apps.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.gxwebsoft.apps.entity.EquipmentAlarm;
import com.gxwebsoft.apps.param.EquipmentAlarmParam;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 故障报警记录Mapper
*
* @author 科技小王子
* @since 2022-12-01 23:49:44
*/
public interface EquipmentAlarmMapper extends BaseMapper<EquipmentAlarm> {
/**
* 分页查询
*
* @param page 分页对象
* @param param 查询参数
* @return List<EquipmentAlarm>
*/
List<EquipmentAlarm> selectPageRel(@Param("page") IPage<EquipmentAlarm> page,
@Param("param") EquipmentAlarmParam param);
/**
* 查询全部
*
* @param param 查询参数
* @return List<User>
*/
List<EquipmentAlarm> selectListRel(@Param("param") EquipmentAlarmParam param);
}

View File

@@ -0,0 +1,37 @@
package com.gxwebsoft.apps.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.gxwebsoft.apps.entity.EquipmentFault;
import com.gxwebsoft.apps.param.EquipmentFaultParam;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 故障电池Mapper
*
* @author 科技小王子
* @since 2022-12-01 18:40:25
*/
public interface EquipmentFaultMapper extends BaseMapper<EquipmentFault> {
/**
* 分页查询
*
* @param page 分页对象
* @param param 查询参数
* @return List<EquipmentFault>
*/
List<EquipmentFault> selectPageRel(@Param("page") IPage<EquipmentFault> page,
@Param("param") EquipmentFaultParam param);
/**
* 查询全部
*
* @param param 查询参数
* @return List<User>
*/
List<EquipmentFault> selectListRel(@Param("param") EquipmentFaultParam param);
}

View File

@@ -0,0 +1,37 @@
package com.gxwebsoft.apps.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.gxwebsoft.apps.entity.EquipmentGoods;
import com.gxwebsoft.apps.param.EquipmentGoodsParam;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 电池管理记录表Mapper
*
* @author 科技小王子
* @since 2023-02-28 22:40:50
*/
public interface EquipmentGoodsMapper extends BaseMapper<EquipmentGoods> {
/**
* 分页查询
*
* @param page 分页对象
* @param param 查询参数
* @return List<EquipmentGoods>
*/
List<EquipmentGoods> selectPageRel(@Param("page") IPage<EquipmentGoods> page,
@Param("param") EquipmentGoodsParam param);
/**
* 查询全部
*
* @param param 查询参数
* @return List<User>
*/
List<EquipmentGoods> selectListRel(@Param("param") EquipmentGoodsParam param);
}

View File

@@ -0,0 +1,37 @@
package com.gxwebsoft.apps.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.gxwebsoft.apps.entity.Equipment;
import com.gxwebsoft.apps.param.EquipmentParam;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 设备管理Mapper
*
* @author 科技小王子
* @since 2022-11-30 02:11:16
*/
public interface EquipmentMapper extends BaseMapper<Equipment> {
/**
* 分页查询
*
* @param page 分页对象
* @param param 查询参数
* @return List<Equipment>
*/
List<Equipment> selectPageRel(@Param("page") IPage<Equipment> page,
@Param("param") EquipmentParam param);
/**
* 查询全部
*
* @param param 查询参数
* @return List<User>
*/
List<Equipment> selectListRel(@Param("param") EquipmentParam param);
}

View File

@@ -0,0 +1,37 @@
package com.gxwebsoft.apps.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.gxwebsoft.apps.entity.EquipmentOrderGoods;
import com.gxwebsoft.apps.param.EquipmentOrderGoodsParam;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 电池管理记录表Mapper
*
* @author 科技小王子
* @since 2023-05-11 19:10:13
*/
public interface EquipmentOrderGoodsMapper extends BaseMapper<EquipmentOrderGoods> {
/**
* 分页查询
*
* @param page 分页对象
* @param param 查询参数
* @return List<EquipmentOrderGoods>
*/
List<EquipmentOrderGoods> selectPageRel(@Param("page") IPage<EquipmentOrderGoods> page,
@Param("param") EquipmentOrderGoodsParam param);
/**
* 查询全部
*
* @param param 查询参数
* @return List<User>
*/
List<EquipmentOrderGoods> selectListRel(@Param("param") EquipmentOrderGoodsParam param);
}

View File

@@ -0,0 +1,37 @@
package com.gxwebsoft.apps.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.gxwebsoft.apps.entity.EquipmentOrder;
import com.gxwebsoft.apps.param.EquipmentOrderParam;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 订单记录表Mapper
*
* @author 科技小王子
* @since 2023-04-14 21:24:31
*/
public interface EquipmentOrderMapper extends BaseMapper<EquipmentOrder> {
/**
* 分页查询
*
* @param page 分页对象
* @param param 查询参数
* @return List<EquipmentOrder>
*/
List<EquipmentOrder> selectPageRel(@Param("page") IPage<EquipmentOrder> page,
@Param("param") EquipmentOrderParam param);
/**
* 查询全部
*
* @param param 查询参数
* @return List<User>
*/
List<EquipmentOrder> selectListRel(@Param("param") EquipmentOrderParam param);
}

View File

@@ -0,0 +1,37 @@
package com.gxwebsoft.apps.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.gxwebsoft.apps.entity.EquipmentRecord;
import com.gxwebsoft.apps.param.EquipmentRecordParam;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 前世今生Mapper
*
* @author 科技小王子
* @since 2022-12-03 01:23:53
*/
public interface EquipmentRecordMapper extends BaseMapper<EquipmentRecord> {
/**
* 分页查询
*
* @param page 分页对象
* @param param 查询参数
* @return List<EquipmentRecord>
*/
List<EquipmentRecord> selectPageRel(@Param("page") IPage<EquipmentRecord> page,
@Param("param") EquipmentRecordParam param);
/**
* 查询全部
*
* @param param 查询参数
* @return List<User>
*/
List<EquipmentRecord> selectListRel(@Param("param") EquipmentRecordParam param);
}

View File

@@ -0,0 +1,37 @@
package com.gxwebsoft.apps.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.gxwebsoft.apps.entity.HualalaCardBenefits;
import com.gxwebsoft.apps.param.HualalaCardBenefitsParam;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 会员权益Mapper
*
* @author 科技小王子
* @since 2023-01-08 12:22:50
*/
public interface HualalaCardBenefitsMapper extends BaseMapper<HualalaCardBenefits> {
/**
* 分页查询
*
* @param page 分页对象
* @param param 查询参数
* @return List<HualalaCardBenefits>
*/
List<HualalaCardBenefits> selectPageRel(@Param("page") IPage<HualalaCardBenefits> page,
@Param("param") HualalaCardBenefitsParam param);
/**
* 查询全部
*
* @param param 查询参数
* @return List<User>
*/
List<HualalaCardBenefits> selectListRel(@Param("param") HualalaCardBenefitsParam param);
}

View File

@@ -0,0 +1,37 @@
package com.gxwebsoft.apps.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.gxwebsoft.apps.entity.HualalaCard;
import com.gxwebsoft.apps.param.HualalaCardParam;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* Mapper
*
* @author 科技小王子
* @since 2023-01-08 12:22:50
*/
public interface HualalaCardMapper extends BaseMapper<HualalaCard> {
/**
* 分页查询
*
* @param page 分页对象
* @param param 查询参数
* @return List<HualalaCard>
*/
List<HualalaCard> selectPageRel(@Param("page") IPage<HualalaCard> page,
@Param("param") HualalaCardParam param);
/**
* 查询全部
*
* @param param 查询参数
* @return List<User>
*/
List<HualalaCard> selectListRel(@Param("param") HualalaCardParam param);
}

View File

@@ -0,0 +1,37 @@
package com.gxwebsoft.apps.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.gxwebsoft.apps.entity.HualalaCartFood;
import com.gxwebsoft.apps.param.HualalaCartFoodParam;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 购物车商品Mapper
*
* @author 科技小王子
* @since 2023-01-14 14:46:44
*/
public interface HualalaCartFoodMapper extends BaseMapper<HualalaCartFood> {
/**
* 分页查询
*
* @param page 分页对象
* @param param 查询参数
* @return List<HualalaCartFood>
*/
List<HualalaCartFood> selectPageRel(@Param("page") IPage<HualalaCartFood> page,
@Param("param") HualalaCartFoodParam param);
/**
* 查询全部
*
* @param param 查询参数
* @return List<User>
*/
List<HualalaCartFood> selectListRel(@Param("param") HualalaCartFoodParam param);
}

View File

@@ -0,0 +1,37 @@
package com.gxwebsoft.apps.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.gxwebsoft.apps.entity.HualalaFoodCategory;
import com.gxwebsoft.apps.param.HualalaFoodCategoryParam;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 菜品分类Mapper
*
* @author 科技小王子
* @since 2023-01-12 09:49:46
*/
public interface HualalaFoodCategoryMapper extends BaseMapper<HualalaFoodCategory> {
/**
* 分页查询
*
* @param page 分页对象
* @param param 查询参数
* @return List<HualalaFoodCategory>
*/
List<HualalaFoodCategory> selectPageRel(@Param("page") IPage<HualalaFoodCategory> page,
@Param("param") HualalaFoodCategoryParam param);
/**
* 查询全部
*
* @param param 查询参数
* @return List<User>
*/
List<HualalaFoodCategory> selectListRel(@Param("param") HualalaFoodCategoryParam param);
}

View File

@@ -0,0 +1,37 @@
package com.gxwebsoft.apps.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.gxwebsoft.apps.entity.HualalaFood;
import com.gxwebsoft.apps.param.HualalaFoodParam;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 菜品分类Mapper
*
* @author 科技小王子
* @since 2023-01-12 15:34:55
*/
public interface HualalaFoodMapper extends BaseMapper<HualalaFood> {
/**
* 分页查询
*
* @param page 分页对象
* @param param 查询参数
* @return List<HualalaFood>
*/
List<HualalaFood> selectPageRel(@Param("page") IPage<HualalaFood> page,
@Param("param") HualalaFoodParam param);
/**
* 查询全部
*
* @param param 查询参数
* @return List<User>
*/
List<HualalaFood> selectListRel(@Param("param") HualalaFoodParam param);
}

View File

@@ -0,0 +1,20 @@
package com.gxwebsoft.apps.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.gxwebsoft.apps.entity.Hualala;
import com.gxwebsoft.apps.entity.Link;
import com.gxwebsoft.apps.param.LinkParam;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 哗啦啦Mapper
*
* @author 科技小王子
* @since 2022-11-25 12:55:33
*/
public interface HualalaMapper extends BaseMapper<Hualala> {
}

View File

@@ -0,0 +1,37 @@
package com.gxwebsoft.apps.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.gxwebsoft.apps.entity.HualalaShop;
import com.gxwebsoft.apps.param.HualalaShopParam;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 哗啦啦门店管理Mapper
*
* @author 科技小王子
* @since 2023-01-12 18:24:44
*/
public interface HualalaShopMapper extends BaseMapper<HualalaShop> {
/**
* 分页查询
*
* @param page 分页对象
* @param param 查询参数
* @return List<HualalaShop>
*/
List<HualalaShop> selectPageRel(@Param("page") IPage<HualalaShop> page,
@Param("param") HualalaShopParam param);
/**
* 查询全部
*
* @param param 查询参数
* @return List<User>
*/
List<HualalaShop> selectListRel(@Param("param") HualalaShopParam param);
}

View File

@@ -0,0 +1,37 @@
package com.gxwebsoft.apps.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.gxwebsoft.apps.entity.Link;
import com.gxwebsoft.apps.param.LinkParam;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 常用链接推荐记录表Mapper
*
* @author 科技小王子
* @since 2022-11-25 12:55:33
*/
public interface LinkMapper extends BaseMapper<Link> {
/**
* 分页查询
*
* @param page 分页对象
* @param param 查询参数
* @return List<Link>
*/
List<Link> selectPageRel(@Param("page") IPage<Link> page,
@Param("param") LinkParam param);
/**
* 查询全部
*
* @param param 查询参数
* @return List<User>
*/
List<Link> selectListRel(@Param("param") LinkParam param);
}

View File

@@ -0,0 +1,37 @@
package com.gxwebsoft.apps.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.gxwebsoft.apps.entity.TestData;
import com.gxwebsoft.apps.param.TestDataParam;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 测试数据表Mapper
*
* @author 科技小王子
* @since 2023-02-01 12:13:46
*/
public interface TestDataMapper extends BaseMapper<TestData> {
/**
* 分页查询
*
* @param page 分页对象
* @param param 查询参数
* @return List<TestData>
*/
List<TestData> selectPageRel(@Param("page") IPage<TestData> page,
@Param("param") TestDataParam param);
/**
* 查询全部
*
* @param param 查询参数
* @return List<User>
*/
List<TestData> selectListRel(@Param("param") TestDataParam param);
}

View File

@@ -0,0 +1,44 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.gxwebsoft.apps.mapper.BcAgentMapper">
<!-- 关联查询sql -->
<sql id="selectSql">
SELECT a.*,b.nickname,c.nickname as parentName
FROM apps_bc_agent a
LEFT JOIN sys_user b ON a.user_id = b.user_id
LEFT JOIN sys_user c ON a.parent_id = c.user_id
<where>
<if test="param.agentId != null">
AND a.agent_id = #{param.agentId}
</if>
<if test="param.userId != null">
AND a.user_id = #{param.userId}
</if>
<if test="param.parentId != null">
AND a.parent_id = #{param.parentId}
</if>
<if test="param.status != null">
AND a.status = #{param.status}
</if>
<if test="param.createTimeStart != null">
AND a.create_time &gt;= #{param.createTimeStart}
</if>
<if test="param.createTimeEnd != null">
AND a.create_time &lt;= #{param.createTimeEnd}
</if>
AND b.deleted = 0 AND c.deleted = 0
</where>
</sql>
<!-- 分页查询 -->
<select id="selectPageRel" resultType="com.gxwebsoft.apps.entity.BcAgent">
<include refid="selectSql"></include>
</select>
<!-- 查询全部 -->
<select id="selectListRel" resultType="com.gxwebsoft.apps.entity.BcAgent">
<include refid="selectSql"></include>
</select>
</mapper>

View File

@@ -0,0 +1,53 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.gxwebsoft.apps.mapper.BcCookbookMapper">
<!-- 关联查询sql -->
<sql id="selectSql">
SELECT a.*
FROM apps_bc_cookbook a
<where>
<if test="param.cookbookId != null">
AND a.cookbook_id = #{param.cookbookId}
</if>
<if test="param.planId != null">
AND a.plan_id = #{param.planId}
</if>
<if test="param.period != null">
AND a.period LIKE CONCAT('%', #{param.period}, '%')
</if>
<if test="param.status != null">
AND a.status = #{param.status}
</if>
<if test="param.comments != null">
AND a.comments LIKE CONCAT('%', #{param.comments}, '%')
</if>
<if test="param.userId != null">
AND a.user_id = #{param.userId}
</if>
<if test="param.deleted != null">
AND a.deleted = #{param.deleted}
</if>
<if test="param.deleted == null">
AND a.deleted = 0
</if>
<if test="param.createTimeStart != null">
AND a.create_time &gt;= #{param.createTimeStart}
</if>
<if test="param.createTimeEnd != null">
AND a.create_time &lt;= #{param.createTimeEnd}
</if>
</where>
</sql>
<!-- 分页查询 -->
<select id="selectPageRel" resultType="com.gxwebsoft.apps.entity.BcCookbook">
<include refid="selectSql"></include>
</select>
<!-- 查询全部 -->
<select id="selectListRel" resultType="com.gxwebsoft.apps.entity.BcCookbook">
<include refid="selectSql"></include>
</select>
</mapper>

Some files were not shown because too many files have changed in this diff Show More