localizer
lzq 2025-09-24 17:38:03 +08:00
parent 76cf8ecbfd
commit 8000a4bd3e
99 changed files with 556 additions and 319 deletions

View File

@ -72,18 +72,6 @@
</dependency> </dependency>
<!--</editor-fold>--> <!--</editor-fold>-->
<!-- cglib -->
<dependency>
<groupId>cglib</groupId>
<artifactId>cglib</artifactId>
</dependency>
<!-- okhttp -->
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
</dependency>
<!-- lombok --> <!-- lombok -->
<dependency> <dependency>
<groupId>org.projectlombok</groupId> <groupId>org.projectlombok</groupId>

View File

@ -4,7 +4,6 @@ package com.njzscloud.common.core.thread;
import cn.hutool.core.thread.ThreadUtil; import cn.hutool.core.thread.ThreadUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.jetbrains.annotations.NotNull;
import java.util.concurrent.RejectedExecutionHandler; import java.util.concurrent.RejectedExecutionHandler;
import java.util.concurrent.ThreadFactory; import java.util.concurrent.ThreadFactory;
@ -115,7 +114,7 @@ public class ThreadPool {
} }
@Override @Override
public Thread newThread(@NotNull Runnable r) { public Thread newThread(Runnable r) {
String name = namePrefix + threadNumber.getAndIncrement(); String name = namePrefix + threadNumber.getAndIncrement();
log.debug("创建新线程:{}", name); log.debug("创建新线程:{}", name);
Thread t = new Thread(r, name) { Thread t = new Thread(r, name) {

View File

@ -1,4 +1,4 @@
package com.njzscloud.common.core.http.constant; package com.njzscloud.common.core.utils;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;

View File

@ -0,0 +1,113 @@
package com.njzscloud.common.core.utils;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class StrUtil {
// 匹配非特殊字符的正则表达式,对应 TS 中的 [^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+
private static final Pattern SPLIT_CHAR_PATTERN = Pattern.compile("[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+");
// 匹配大写字母的正则表达式,用于分割单词
private static final Pattern UPPER_CASE_PATTERN = Pattern.compile("([A-Z])");
/**
*
*/
private static boolean isBlank(String str) {
return str == null || str.trim().isEmpty();
}
/**
*
*/
private static String capitalize(String word) {
if (isBlank(word)) {
return word;
}
return Character.toUpperCase(word.charAt(0)) +
(word.length() > 1 ? word.substring(1).toLowerCase() : "");
}
/**
*
*/
public static String processWords(String str, WordJoiner joiner) {
if (isBlank(str)) {
return "";
}
// 处理字符串:在大写字母前添加分隔符,然后转为小写
String processed = UPPER_CASE_PATTERN.matcher(str).replaceAll(" $1").toLowerCase();
// 提取匹配的单词
Matcher matcher = SPLIT_CHAR_PATTERN.matcher(processed);
List<String> words = new ArrayList<>();
while (matcher.find()) {
words.add(matcher.group().trim());
}
// 使用 joiner 连接单词
StringBuilder result = new StringBuilder();
for (int i = 0; i < words.size(); i++) {
result.append(joiner.join(words.get(i), i));
}
return result.toString();
}
/**
* (camelCase)
*/
public static String camelCase(String str) {
return processWords(str, (word, index) -> {
if (index == 0) {
return word;
} else {
return capitalize(word);
}
});
}
/**
* (PascalCase)
*/
public static String pascalCase(String str) {
String camel = camelCase(str);
return capitalize(camel);
}
/**
* 线 (snake_case)
*/
public static String snakeCase(String str) {
return processWords(str, (word, index) -> {
if (index == 0) {
return word;
} else {
return "_" + word;
}
});
}
/**
* (kebab-case)
*/
public static String kebabCase(String str) {
return processWords(str, (word, index) -> {
if (index == 0) {
return word;
} else {
return "-" + word;
}
});
}
/**
*
*/
@FunctionalInterface
public interface WordJoiner {
String join(String word, int index);
}
}

View File

@ -2,8 +2,8 @@ package com.njzscloud.common.email;
import cn.hutool.core.lang.Assert; import cn.hutool.core.lang.Assert;
import com.njzscloud.common.core.ex.Exceptions; import com.njzscloud.common.core.ex.Exceptions;
import com.njzscloud.common.core.http.constant.Mime;
import com.njzscloud.common.core.tuple.Tuple2; import com.njzscloud.common.core.tuple.Tuple2;
import com.njzscloud.common.core.utils.Mime;
import lombok.Getter; import lombok.Getter;
import javax.mail.util.ByteArrayDataSource; import javax.mail.util.ByteArrayDataSource;

View File

@ -1,6 +1,6 @@
package com.njzscloud.common.gen; package com.njzscloud.common.gen;
import com.njzscloud.common.core.http.constant.Mime; import com.njzscloud.common.core.utils.Mime;
import com.njzscloud.common.core.utils.R; import com.njzscloud.common.core.utils.R;
import com.njzscloud.common.gen.support.Generator; import com.njzscloud.common.gen.support.Generator;
import com.njzscloud.common.mp.support.PageParam; import com.njzscloud.common.mp.support.PageParam;

View File

@ -0,0 +1,31 @@
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.njzscloud</groupId>
<artifactId>njzscloud-common</artifactId>
<version>0.0.1</version>
</parent>
<artifactId>njzscloud-common-http</artifactId>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>com.njzscloud</groupId>
<artifactId>njzscloud-common-core</artifactId>
<scope>provided</scope>
</dependency>
<!-- cglib -->
<dependency>
<groupId>cglib</groupId>
<artifactId>cglib</artifactId>
</dependency>
<!-- okhttp -->
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
</dependency>
</dependencies>
</project>

View File

@ -1,9 +1,10 @@
package com.njzscloud.common.core.http; package com.njzscloud.common.http;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import com.njzscloud.common.core.http.constant.HttpMethod;
import com.njzscloud.common.core.http.support.ResponseInfo;
import com.njzscloud.common.core.tuple.Tuple2; import com.njzscloud.common.core.tuple.Tuple2;
import com.njzscloud.common.http.config.HttpClientProperties;
import com.njzscloud.common.http.constant.HttpMethod;
import com.njzscloud.common.http.support.ResponseInfo;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import okhttp3.*; import okhttp3.*;

View File

@ -1,20 +1,23 @@
package com.njzscloud.common.core.http; package com.njzscloud.common.http;
import cn.hutool.core.collection.ListUtil; import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.lang.Assert; import cn.hutool.core.lang.Assert;
import cn.hutool.core.lang.SimpleCache; import cn.hutool.core.lang.SimpleCache;
import cn.hutool.core.util.ReflectUtil; import cn.hutool.core.util.ReflectUtil;
import com.njzscloud.common.core.http.annotation.GetEndpoint; import cn.hutool.core.util.StrUtil;
import com.njzscloud.common.core.http.annotation.PostEndpoint; import cn.hutool.extra.spring.SpringUtil;
import com.njzscloud.common.core.http.annotation.RemoteServer; import com.njzscloud.common.core.ex.Exceptions;
import com.njzscloud.common.core.http.constant.HttpMethod;
import com.njzscloud.common.core.http.interceptor.RequestInterceptor;
import com.njzscloud.common.core.http.interceptor.ResponseInterceptor;
import com.njzscloud.common.core.http.resolver.*;
import com.njzscloud.common.core.http.support.RequestInfo;
import com.njzscloud.common.core.http.support.ResponseInfo;
import com.njzscloud.common.core.http.support.ResponseResult;
import com.njzscloud.common.core.tuple.Tuple2; import com.njzscloud.common.core.tuple.Tuple2;
import com.njzscloud.common.http.annotation.GetEndpoint;
import com.njzscloud.common.http.annotation.PostEndpoint;
import com.njzscloud.common.http.annotation.RemoteServer;
import com.njzscloud.common.http.constant.HttpMethod;
import com.njzscloud.common.http.interceptor.RequestInterceptor;
import com.njzscloud.common.http.interceptor.ResponseInterceptor;
import com.njzscloud.common.http.resolver.*;
import com.njzscloud.common.http.support.RequestInfo;
import com.njzscloud.common.http.support.ResponseInfo;
import com.njzscloud.common.http.support.ResponseResult;
import net.sf.cglib.proxy.Enhancer; import net.sf.cglib.proxy.Enhancer;
import net.sf.cglib.proxy.MethodInterceptor; import net.sf.cglib.proxy.MethodInterceptor;
import net.sf.cglib.proxy.MethodProxy; import net.sf.cglib.proxy.MethodProxy;
@ -63,9 +66,16 @@ public class HttpClientDecorator {
public MethodInterceptorImpl(Class<?> clazz, HttpClient httpClient) { public MethodInterceptorImpl(Class<?> clazz, HttpClient httpClient) {
RemoteServer anno = clazz.getAnnotation(RemoteServer.class); RemoteServer anno = clazz.getAnnotation(RemoteServer.class);
baseUrl = anno.value(); String value = anno.value();
Matcher matcher = ADDR_PATTERN.matcher(baseUrl); if (value.startsWith("${") && value.endsWith("}")) {
Assert.isTrue(matcher.matches(), "地址不合法"); value = SpringUtil.getProperty(value.substring(2, value.length() - 1));
}
if (StrUtil.isBlank(value)) {
throw Exceptions.error("地址不合法");
}
Matcher matcher = ADDR_PATTERN.matcher(value);
Assert.isTrue(matcher.matches(), () -> Exceptions.error("地址不合法"));
baseUrl = value;
Class<? extends RequestInterceptor> requestedInterceptorClazz = anno.requestInterceptor(); Class<? extends RequestInterceptor> requestedInterceptorClazz = anno.requestInterceptor();
Class<? extends ResponseInterceptor> responseInterceptorClazz = anno.responseInterceptor(); Class<? extends ResponseInterceptor> responseInterceptorClazz = anno.responseInterceptor();
requestInterceptor = ReflectUtil.newInstance(requestedInterceptorClazz); requestInterceptor = ReflectUtil.newInstance(requestedInterceptorClazz);

View File

@ -1,7 +1,7 @@
package com.njzscloud.common.core.http.annotation; package com.njzscloud.common.http.annotation;
import com.njzscloud.common.core.http.processor.BodyParamProcessor; import com.njzscloud.common.http.processor.BodyParamProcessor;
import com.njzscloud.common.core.http.processor.DefaultBodyParamProcessor; import com.njzscloud.common.http.processor.DefaultBodyParamProcessor;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;

View File

@ -1,6 +1,6 @@
package com.njzscloud.common.core.http.annotation; package com.njzscloud.common.http.annotation;
import com.njzscloud.common.core.http.processor.FormBodyParamProcessor; import com.njzscloud.common.http.processor.FormBodyParamProcessor;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;

View File

@ -1,4 +1,4 @@
package com.njzscloud.common.core.http.annotation; package com.njzscloud.common.http.annotation;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;

View File

@ -1,7 +1,7 @@
package com.njzscloud.common.core.http.annotation; package com.njzscloud.common.http.annotation;
import com.njzscloud.common.core.http.processor.DefaultHeaderParamProcessor; import com.njzscloud.common.http.processor.DefaultHeaderParamProcessor;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;

View File

@ -1,7 +1,7 @@
package com.njzscloud.common.core.http.annotation; package com.njzscloud.common.http.annotation;
import com.njzscloud.common.core.http.processor.DefaultJsonBodyParamProcessor; import com.njzscloud.common.http.processor.DefaultJsonBodyParamProcessor;
import com.njzscloud.common.core.http.processor.JsonBodyParamProcessor; import com.njzscloud.common.http.processor.JsonBodyParamProcessor;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;

View File

@ -1,6 +1,6 @@
package com.njzscloud.common.core.http.annotation; package com.njzscloud.common.http.annotation;
import com.njzscloud.common.core.http.processor.MultiBodyParamProcessor; import com.njzscloud.common.http.processor.MultiBodyParamProcessor;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;

View File

@ -1,7 +1,7 @@
package com.njzscloud.common.core.http.annotation; package com.njzscloud.common.http.annotation;
import com.njzscloud.common.core.http.processor.DefaultPathParamProcessor; import com.njzscloud.common.http.processor.DefaultPathParamProcessor;
import com.njzscloud.common.core.http.processor.PathParamProcessor; import com.njzscloud.common.http.processor.PathParamProcessor;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;

View File

@ -1,4 +1,4 @@
package com.njzscloud.common.core.http.annotation; package com.njzscloud.common.http.annotation;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;

View File

@ -1,6 +1,6 @@
package com.njzscloud.common.core.http.annotation; package com.njzscloud.common.http.annotation;
import com.njzscloud.common.core.http.processor.DefaultQueryParamProcessor; import com.njzscloud.common.http.processor.DefaultQueryParamProcessor;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;

View File

@ -1,9 +1,9 @@
package com.njzscloud.common.core.http.annotation; package com.njzscloud.common.http.annotation;
import com.njzscloud.common.core.http.interceptor.CompositeInterceptor; import com.njzscloud.common.http.interceptor.CompositeInterceptor;
import com.njzscloud.common.core.http.interceptor.RequestInterceptor; import com.njzscloud.common.http.interceptor.RequestInterceptor;
import com.njzscloud.common.core.http.interceptor.ResponseInterceptor; import com.njzscloud.common.http.interceptor.ResponseInterceptor;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
@ -22,7 +22,7 @@ public @interface RemoteServer {
* *
* @return String * @return String
*/ */
String value(); String value() default "";
/** /**
* , * ,

View File

@ -1,7 +1,7 @@
package com.njzscloud.common.core.http.annotation; package com.njzscloud.common.http.annotation;
import com.njzscloud.common.core.http.processor.DefaultXmlBodyParamProcessor; import com.njzscloud.common.http.processor.DefaultXmlBodyParamProcessor;
import com.njzscloud.common.core.http.processor.XmlBodyParamProcessor; import com.njzscloud.common.http.processor.XmlBodyParamProcessor;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;

View File

@ -1,8 +1,7 @@
package com.njzscloud.supervisory.config; package com.njzscloud.common.http.config;
import com.njzscloud.common.core.http.HttpClient; import com.njzscloud.common.http.HttpClient;
import com.njzscloud.common.core.http.HttpClientDecorator; import com.njzscloud.common.http.HttpClientDecorator;
import com.njzscloud.common.core.http.HttpClientProperties;
import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;

View File

@ -1,4 +1,4 @@
package com.njzscloud.common.core.http; package com.njzscloud.common.http.config;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;

View File

@ -1,4 +1,4 @@
package com.njzscloud.common.core.http.constant; package com.njzscloud.common.http.constant;
/** /**
* HTTP * HTTP

View File

@ -1,9 +1,9 @@
package com.njzscloud.common.core.http.interceptor; package com.njzscloud.common.http.interceptor;
import com.njzscloud.common.core.http.constant.HttpMethod;
import com.njzscloud.common.core.http.support.RequestInfo;
import com.njzscloud.common.core.http.support.ResponseInfo;
import com.njzscloud.common.core.jackson.Jackson; import com.njzscloud.common.core.jackson.Jackson;
import com.njzscloud.common.http.constant.HttpMethod;
import com.njzscloud.common.http.support.RequestInfo;
import com.njzscloud.common.http.support.ResponseInfo;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import java.lang.reflect.Type; import java.lang.reflect.Type;

View File

@ -1,7 +1,7 @@
package com.njzscloud.common.core.http.interceptor; package com.njzscloud.common.http.interceptor;
import com.njzscloud.common.core.http.constant.HttpMethod; import com.njzscloud.common.http.constant.HttpMethod;
/** /**
* , , * , ,

View File

@ -1,8 +1,8 @@
package com.njzscloud.common.core.http.interceptor; package com.njzscloud.common.http.interceptor;
import com.njzscloud.common.core.http.support.RequestInfo; import com.njzscloud.common.http.support.RequestInfo;
import com.njzscloud.common.core.http.support.ResponseInfo; import com.njzscloud.common.http.support.ResponseInfo;
import java.lang.reflect.Type; import java.lang.reflect.Type;

View File

@ -1,6 +1,6 @@
package com.njzscloud.common.core.http.processor; package com.njzscloud.common.http.processor;
import com.njzscloud.common.core.http.annotation.BodyParam; import com.njzscloud.common.http.annotation.BodyParam;
public interface BodyParamProcessor { public interface BodyParamProcessor {
byte[] process(BodyParam bodyParam, String paramName, Class<?> paramClazz, Object paramValue); byte[] process(BodyParam bodyParam, String paramName, Class<?> paramClazz, Object paramValue);

View File

@ -1,7 +1,7 @@
package com.njzscloud.common.core.http.processor; package com.njzscloud.common.http.processor;
import cn.hutool.core.util.ReflectUtil; import cn.hutool.core.util.ReflectUtil;
import com.njzscloud.common.core.http.annotation.BodyParam; import com.njzscloud.common.http.annotation.BodyParam;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;

View File

@ -1,6 +1,6 @@
package com.njzscloud.common.core.http.processor; package com.njzscloud.common.http.processor;
import com.njzscloud.common.core.http.annotation.FormBodyParam; import com.njzscloud.common.http.annotation.FormBodyParam;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;

View File

@ -1,6 +1,6 @@
package com.njzscloud.common.core.http.processor; package com.njzscloud.common.http.processor;
import com.njzscloud.common.core.http.annotation.HeaderParam; import com.njzscloud.common.http.annotation.HeaderParam;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;

View File

@ -1,7 +1,7 @@
package com.njzscloud.common.core.http.processor; package com.njzscloud.common.http.processor;
import com.njzscloud.common.core.http.annotation.JsonBodyParam;
import com.njzscloud.common.core.jackson.Jackson; import com.njzscloud.common.core.jackson.Jackson;
import com.njzscloud.common.http.annotation.JsonBodyParam;
public class DefaultJsonBodyParamProcessor implements JsonBodyParamProcessor { public class DefaultJsonBodyParamProcessor implements JsonBodyParamProcessor {
@Override @Override

View File

@ -1,7 +1,7 @@
package com.njzscloud.common.core.http.processor; package com.njzscloud.common.http.processor;
import com.njzscloud.common.core.http.annotation.MultiBodyParam;
import com.njzscloud.common.core.tuple.Tuple3; import com.njzscloud.common.core.tuple.Tuple3;
import com.njzscloud.common.http.annotation.MultiBodyParam;
import java.util.Map; import java.util.Map;

View File

@ -1,6 +1,6 @@
package com.njzscloud.common.core.http.processor; package com.njzscloud.common.http.processor;
import com.njzscloud.common.core.http.annotation.PathParam; import com.njzscloud.common.http.annotation.PathParam;
import java.util.Map; import java.util.Map;

View File

@ -1,6 +1,6 @@
package com.njzscloud.common.core.http.processor; package com.njzscloud.common.http.processor;
import com.njzscloud.common.core.http.annotation.QueryParam; import com.njzscloud.common.http.annotation.QueryParam;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;

View File

@ -1,7 +1,7 @@
package com.njzscloud.common.core.http.processor; package com.njzscloud.common.http.processor;
import com.njzscloud.common.core.http.annotation.XmlBodyParam;
import com.njzscloud.common.core.jackson.Jackson; import com.njzscloud.common.core.jackson.Jackson;
import com.njzscloud.common.http.annotation.XmlBodyParam;
public class DefaultXmlBodyParamProcessor implements XmlBodyParamProcessor { public class DefaultXmlBodyParamProcessor implements XmlBodyParamProcessor {
@Override @Override

View File

@ -1,6 +1,6 @@
package com.njzscloud.common.core.http.processor; package com.njzscloud.common.http.processor;
import com.njzscloud.common.core.http.annotation.FormBodyParam; import com.njzscloud.common.http.annotation.FormBodyParam;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;

View File

@ -1,6 +1,6 @@
package com.njzscloud.common.core.http.processor; package com.njzscloud.common.http.processor;
import com.njzscloud.common.core.http.annotation.HeaderParam; import com.njzscloud.common.http.annotation.HeaderParam;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;

View File

@ -1,6 +1,6 @@
package com.njzscloud.common.core.http.processor; package com.njzscloud.common.http.processor;
import com.njzscloud.common.core.http.annotation.JsonBodyParam; import com.njzscloud.common.http.annotation.JsonBodyParam;
public interface JsonBodyParamProcessor { public interface JsonBodyParamProcessor {
byte[] process(JsonBodyParam jsonBodyParam, String paramName, Class<?> paramClazz, Object paramValue); byte[] process(JsonBodyParam jsonBodyParam, String paramName, Class<?> paramClazz, Object paramValue);

View File

@ -1,7 +1,7 @@
package com.njzscloud.common.core.http.processor; package com.njzscloud.common.http.processor;
import com.njzscloud.common.core.http.annotation.MultiBodyParam;
import com.njzscloud.common.core.tuple.Tuple3; import com.njzscloud.common.core.tuple.Tuple3;
import com.njzscloud.common.http.annotation.MultiBodyParam;
import java.util.Map; import java.util.Map;

View File

@ -1,6 +1,6 @@
package com.njzscloud.common.core.http.processor; package com.njzscloud.common.http.processor;
import com.njzscloud.common.core.http.annotation.PathParam; import com.njzscloud.common.http.annotation.PathParam;
import java.util.Map; import java.util.Map;

View File

@ -1,6 +1,6 @@
package com.njzscloud.common.core.http.processor; package com.njzscloud.common.http.processor;
import com.njzscloud.common.core.http.annotation.QueryParam; import com.njzscloud.common.http.annotation.QueryParam;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;

View File

@ -1,6 +1,6 @@
package com.njzscloud.common.core.http.processor; package com.njzscloud.common.http.processor;
import com.njzscloud.common.core.http.annotation.XmlBodyParam; import com.njzscloud.common.http.annotation.XmlBodyParam;
public interface XmlBodyParamProcessor { public interface XmlBodyParamProcessor {
byte[] process(XmlBodyParam xmlBodyParam, String paramName, Class<?> paramClazz, Object paramValue); byte[] process(XmlBodyParam xmlBodyParam, String paramName, Class<?> paramClazz, Object paramValue);

View File

@ -1,11 +1,11 @@
package com.njzscloud.common.core.http.resolver; package com.njzscloud.common.http.resolver;
import cn.hutool.core.util.ReflectUtil; import cn.hutool.core.util.ReflectUtil;
import com.njzscloud.common.core.http.annotation.BodyParam;
import com.njzscloud.common.core.http.constant.HttpMethod;
import com.njzscloud.common.core.http.constant.Mime;
import com.njzscloud.common.core.http.processor.BodyParamProcessor;
import com.njzscloud.common.core.tuple.Tuple2; import com.njzscloud.common.core.tuple.Tuple2;
import com.njzscloud.common.core.utils.Mime;
import com.njzscloud.common.http.annotation.BodyParam;
import com.njzscloud.common.http.constant.HttpMethod;
import com.njzscloud.common.http.processor.BodyParamProcessor;
public class BodyParamResolver extends ParamResolver<BodyParam, Tuple2<String, byte[]>> { public class BodyParamResolver extends ParamResolver<BodyParam, Tuple2<String, byte[]>> {
byte[] result = null; byte[] result = null;

View File

@ -1,12 +1,12 @@
package com.njzscloud.common.core.http.resolver; package com.njzscloud.common.http.resolver;
import cn.hutool.core.util.ReflectUtil; import cn.hutool.core.util.ReflectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.njzscloud.common.core.http.annotation.FormBodyParam;
import com.njzscloud.common.core.http.constant.HttpMethod;
import com.njzscloud.common.core.http.constant.Mime;
import com.njzscloud.common.core.http.processor.FormBodyParamProcessor;
import com.njzscloud.common.core.tuple.Tuple2; import com.njzscloud.common.core.tuple.Tuple2;
import com.njzscloud.common.core.utils.Mime;
import com.njzscloud.common.http.annotation.FormBodyParam;
import com.njzscloud.common.http.constant.HttpMethod;
import com.njzscloud.common.http.processor.FormBodyParamProcessor;
import java.math.RoundingMode; import java.math.RoundingMode;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;

View File

@ -1,10 +1,10 @@
package com.njzscloud.common.core.http.resolver; package com.njzscloud.common.http.resolver;
import cn.hutool.core.util.ReflectUtil; import cn.hutool.core.util.ReflectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.njzscloud.common.core.http.annotation.HeaderParam; import com.njzscloud.common.http.annotation.HeaderParam;
import com.njzscloud.common.core.http.constant.HttpMethod; import com.njzscloud.common.http.constant.HttpMethod;
import com.njzscloud.common.core.http.processor.DefaultHeaderParamProcessor; import com.njzscloud.common.http.processor.DefaultHeaderParamProcessor;
import java.math.RoundingMode; import java.math.RoundingMode;
import java.util.*; import java.util.*;

View File

@ -1,11 +1,11 @@
package com.njzscloud.common.core.http.resolver; package com.njzscloud.common.http.resolver;
import cn.hutool.core.util.ReflectUtil; import cn.hutool.core.util.ReflectUtil;
import com.njzscloud.common.core.http.annotation.JsonBodyParam;
import com.njzscloud.common.core.http.constant.HttpMethod;
import com.njzscloud.common.core.http.constant.Mime;
import com.njzscloud.common.core.http.processor.JsonBodyParamProcessor;
import com.njzscloud.common.core.tuple.Tuple2; import com.njzscloud.common.core.tuple.Tuple2;
import com.njzscloud.common.core.utils.Mime;
import com.njzscloud.common.http.annotation.JsonBodyParam;
import com.njzscloud.common.http.constant.HttpMethod;
import com.njzscloud.common.http.processor.JsonBodyParamProcessor;
public class JsonBodyParamResolver extends ParamResolver<JsonBodyParam, Tuple2<String, byte[]>> { public class JsonBodyParamResolver extends ParamResolver<JsonBodyParam, Tuple2<String, byte[]>> {
byte[] result = null; byte[] result = null;

View File

@ -1,16 +1,16 @@
package com.njzscloud.common.core.http.resolver; package com.njzscloud.common.http.resolver;
import cn.hutool.core.io.IoUtil; import cn.hutool.core.io.IoUtil;
import cn.hutool.core.util.RandomUtil; import cn.hutool.core.util.RandomUtil;
import cn.hutool.core.util.ReflectUtil; import cn.hutool.core.util.ReflectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.hutool.core.util.URLUtil; import cn.hutool.core.util.URLUtil;
import com.njzscloud.common.core.http.annotation.MultiBodyParam;
import com.njzscloud.common.core.http.constant.HttpMethod;
import com.njzscloud.common.core.http.constant.Mime;
import com.njzscloud.common.core.http.processor.MultiBodyParamProcessor;
import com.njzscloud.common.core.tuple.Tuple2; import com.njzscloud.common.core.tuple.Tuple2;
import com.njzscloud.common.core.tuple.Tuple3; import com.njzscloud.common.core.tuple.Tuple3;
import com.njzscloud.common.core.utils.Mime;
import com.njzscloud.common.http.annotation.MultiBodyParam;
import com.njzscloud.common.http.constant.HttpMethod;
import com.njzscloud.common.http.processor.MultiBodyParamProcessor;
import java.io.ByteArrayOutputStream; import java.io.ByteArrayOutputStream;
import java.math.RoundingMode; import java.math.RoundingMode;

View File

@ -1,4 +1,4 @@
package com.njzscloud.common.core.http.resolver; package com.njzscloud.common.http.resolver;
import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
@ -7,9 +7,9 @@ import cn.hutool.core.io.IoUtil;
import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.ReflectUtil; import cn.hutool.core.util.ReflectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.njzscloud.common.core.http.constant.HttpMethod;
import com.njzscloud.common.core.tuple.Tuple2; import com.njzscloud.common.core.tuple.Tuple2;
import com.njzscloud.common.core.tuple.Tuple3; import com.njzscloud.common.core.tuple.Tuple3;
import com.njzscloud.common.http.constant.HttpMethod;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import java.io.File; import java.io.File;

View File

@ -1,10 +1,10 @@
package com.njzscloud.common.core.http.resolver; package com.njzscloud.common.http.resolver;
import cn.hutool.core.util.ReflectUtil; import cn.hutool.core.util.ReflectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.njzscloud.common.core.http.annotation.PathParam; import com.njzscloud.common.http.annotation.PathParam;
import com.njzscloud.common.core.http.constant.HttpMethod; import com.njzscloud.common.http.constant.HttpMethod;
import com.njzscloud.common.core.http.processor.PathParamProcessor; import com.njzscloud.common.http.processor.PathParamProcessor;
import java.math.RoundingMode; import java.math.RoundingMode;
import java.util.Map; import java.util.Map;

View File

@ -1,10 +1,10 @@
package com.njzscloud.common.core.http.resolver; package com.njzscloud.common.http.resolver;
import cn.hutool.core.util.ReflectUtil; import cn.hutool.core.util.ReflectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.njzscloud.common.core.http.annotation.QueryParam; import com.njzscloud.common.http.annotation.QueryParam;
import com.njzscloud.common.core.http.constant.HttpMethod; import com.njzscloud.common.http.constant.HttpMethod;
import com.njzscloud.common.core.http.processor.DefaultQueryParamProcessor; import com.njzscloud.common.http.processor.DefaultQueryParamProcessor;
import java.math.RoundingMode; import java.math.RoundingMode;
import java.util.*; import java.util.*;

View File

@ -1,11 +1,11 @@
package com.njzscloud.common.core.http.resolver; package com.njzscloud.common.http.resolver;
import cn.hutool.core.util.ReflectUtil; import cn.hutool.core.util.ReflectUtil;
import com.njzscloud.common.core.http.annotation.XmlBodyParam;
import com.njzscloud.common.core.http.constant.HttpMethod;
import com.njzscloud.common.core.http.constant.Mime;
import com.njzscloud.common.core.http.processor.XmlBodyParamProcessor;
import com.njzscloud.common.core.tuple.Tuple2; import com.njzscloud.common.core.tuple.Tuple2;
import com.njzscloud.common.core.utils.Mime;
import com.njzscloud.common.http.annotation.XmlBodyParam;
import com.njzscloud.common.http.constant.HttpMethod;
import com.njzscloud.common.http.processor.XmlBodyParamProcessor;
public class XmlBodyParamResolver extends ParamResolver<XmlBodyParam, Tuple2<String, byte[]>> { public class XmlBodyParamResolver extends ParamResolver<XmlBodyParam, Tuple2<String, byte[]>> {
byte[] result = null; byte[] result = null;

View File

@ -1,4 +1,4 @@
package com.njzscloud.common.core.http.support; package com.njzscloud.common.http.support;
import java.lang.annotation.Annotation; import java.lang.annotation.Annotation;
import java.util.List; import java.util.List;

View File

@ -1,8 +1,8 @@
package com.njzscloud.common.core.http.support; package com.njzscloud.common.http.support;
import cn.hutool.core.map.MapUtil; import cn.hutool.core.map.MapUtil;
import com.njzscloud.common.core.http.constant.HttpMethod;
import com.njzscloud.common.core.tuple.Tuple2; import com.njzscloud.common.core.tuple.Tuple2;
import com.njzscloud.common.http.constant.HttpMethod;
import lombok.AccessLevel; import lombok.AccessLevel;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;

View File

@ -1,4 +1,4 @@
package com.njzscloud.common.core.http.support; package com.njzscloud.common.http.support;
import cn.hutool.core.map.MapUtil; import cn.hutool.core.map.MapUtil;

View File

@ -1,4 +1,4 @@
package com.njzscloud.common.core.http.support; package com.njzscloud.common.http.support;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;

View File

@ -0,0 +1,2 @@
org.springframework.boot.autoconfigure.EnableAutoConfiguration = \
com.njzscloud.common.http.config.HttpClientAutoConfiguration

View File

@ -5,7 +5,6 @@ import cn.hutool.core.util.StrUtil;
import com.njzscloud.common.core.jackson.Jackson; import com.njzscloud.common.core.jackson.Jackson;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.tomcat.util.http.fileupload.servlet.ServletFileUpload; import org.apache.tomcat.util.http.fileupload.servlet.ServletFileUpload;
import org.jetbrains.annotations.NotNull;
import javax.servlet.ReadListener; import javax.servlet.ReadListener;
import javax.servlet.ServletInputStream; import javax.servlet.ServletInputStream;
@ -98,12 +97,12 @@ public class ReusableHttpServletRequest extends HttpServletRequestWrapper {
} }
@Override @Override
public int read(@NotNull byte[] b) throws IOException { public int read(byte[] b) throws IOException {
return bais.read(b); return bais.read(b);
} }
@Override @Override
public int read(@NotNull byte[] b, int off, int len) throws IOException { public int read(byte[] b, int off, int len) throws IOException {
return bais.read(b, off, len); return bais.read(b, off, len);
} }

View File

@ -5,7 +5,6 @@ import cn.hutool.core.util.StrUtil;
import com.njzscloud.common.redis.annotation.RedisListener; import com.njzscloud.common.redis.annotation.RedisListener;
import lombok.Setter; import lombok.Setter;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.jetbrains.annotations.NotNull;
import org.springframework.beans.factory.annotation.AnnotatedBeanDefinition; import org.springframework.beans.factory.annotation.AnnotatedBeanDefinition;
import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.beans.factory.support.BeanDefinitionRegistry; import org.springframework.beans.factory.support.BeanDefinitionRegistry;
@ -34,7 +33,7 @@ public class RedisListenerRegistrar implements ImportBeanDefinitionRegistrar, Re
private Environment environment; private Environment environment;
@Override @Override
public void registerBeanDefinitions(@NotNull AnnotationMetadata metadata, @NotNull BeanDefinitionRegistry registry) { public void registerBeanDefinitions(AnnotationMetadata metadata, BeanDefinitionRegistry registry) {
LinkedHashSet<BeanDefinition> candidateComponents = new LinkedHashSet<>(); LinkedHashSet<BeanDefinition> candidateComponents = new LinkedHashSet<>();
AnnotationTypeFilter annotationTypeFilter = new AnnotationTypeFilter(RedisListener.class); AnnotationTypeFilter annotationTypeFilter = new AnnotationTypeFilter(RedisListener.class);
@ -92,7 +91,7 @@ public class RedisListenerRegistrar implements ImportBeanDefinitionRegistrar, Re
protected ClassPathScanningCandidateComponentProvider getScanner() { protected ClassPathScanningCandidateComponentProvider getScanner() {
return new ClassPathScanningCandidateComponentProvider(false, this.environment) { return new ClassPathScanningCandidateComponentProvider(false, this.environment) {
@Override @Override
protected boolean isCandidateComponent(@NotNull AnnotatedBeanDefinition beanDefinition) { protected boolean isCandidateComponent(AnnotatedBeanDefinition beanDefinition) {
return beanDefinition.getMetadata().isIndependent() && !beanDefinition.getMetadata().isAnnotation(); return beanDefinition.getMetadata().isIndependent() && !beanDefinition.getMetadata().isAnnotation();
} }
}; };

View File

@ -2,8 +2,8 @@ package com.njzscloud.common.security.handler;
import cn.hutool.extra.servlet.ServletUtil; import cn.hutool.extra.servlet.ServletUtil;
import com.njzscloud.common.core.ex.ExceptionMsg; import com.njzscloud.common.core.ex.ExceptionMsg;
import com.njzscloud.common.core.http.constant.Mime;
import com.njzscloud.common.core.jackson.Jackson; import com.njzscloud.common.core.jackson.Jackson;
import com.njzscloud.common.core.utils.Mime;
import com.njzscloud.common.core.utils.R; import com.njzscloud.common.core.utils.R;
import com.njzscloud.common.security.ex.MissingPermissionException; import com.njzscloud.common.security.ex.MissingPermissionException;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;

View File

@ -2,8 +2,8 @@ package com.njzscloud.common.security.handler;
import cn.hutool.extra.servlet.ServletUtil; import cn.hutool.extra.servlet.ServletUtil;
import com.njzscloud.common.core.ex.ExceptionMsg; import com.njzscloud.common.core.ex.ExceptionMsg;
import com.njzscloud.common.core.http.constant.Mime;
import com.njzscloud.common.core.jackson.Jackson; import com.njzscloud.common.core.jackson.Jackson;
import com.njzscloud.common.core.utils.Mime;
import com.njzscloud.common.core.utils.R; import com.njzscloud.common.core.utils.R;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.security.authentication.AuthenticationCredentialsNotFoundException; import org.springframework.security.authentication.AuthenticationCredentialsNotFoundException;

View File

@ -2,8 +2,8 @@ package com.njzscloud.common.security.handler;
import cn.hutool.extra.servlet.ServletUtil; import cn.hutool.extra.servlet.ServletUtil;
import com.njzscloud.common.core.ex.ExceptionMsg; import com.njzscloud.common.core.ex.ExceptionMsg;
import com.njzscloud.common.core.http.constant.Mime;
import com.njzscloud.common.core.jackson.Jackson; import com.njzscloud.common.core.jackson.Jackson;
import com.njzscloud.common.core.utils.Mime;
import com.njzscloud.common.core.utils.R; import com.njzscloud.common.core.utils.R;
import com.njzscloud.common.security.contant.AuthWay; import com.njzscloud.common.security.contant.AuthWay;
import com.njzscloud.common.security.ex.UserLoginException; import com.njzscloud.common.security.ex.UserLoginException;

View File

@ -2,8 +2,8 @@ package com.njzscloud.common.security.handler;
import cn.hutool.extra.servlet.ServletUtil; import cn.hutool.extra.servlet.ServletUtil;
import com.njzscloud.common.core.ex.ExceptionMsg; import com.njzscloud.common.core.ex.ExceptionMsg;
import com.njzscloud.common.core.http.constant.Mime;
import com.njzscloud.common.core.jackson.Jackson; import com.njzscloud.common.core.jackson.Jackson;
import com.njzscloud.common.core.utils.Mime;
import com.njzscloud.common.core.utils.R; import com.njzscloud.common.core.utils.R;
import com.njzscloud.common.security.support.Token; import com.njzscloud.common.security.support.Token;
import com.njzscloud.common.security.support.UserAuthenticationToken; import com.njzscloud.common.security.support.UserAuthenticationToken;

View File

@ -1,4 +1,4 @@
package com.njzscloud.common.security.module.wechat; package com.njzscloud.common.security.module.wechat.mini;
import com.njzscloud.common.core.ex.ExceptionMsg; import com.njzscloud.common.core.ex.ExceptionMsg;
import com.njzscloud.common.security.contant.AuthWay; import com.njzscloud.common.security.contant.AuthWay;
@ -14,7 +14,7 @@ import java.util.Set;
* *
*/ */
@RequiredArgsConstructor @RequiredArgsConstructor
public class WechatAuthenticationProvider extends AbstractAuthenticationProvider { public class WechatMiniAuthenticationProvider extends AbstractAuthenticationProvider {
private final IUserService iUserService; private final IUserService iUserService;
private final IRoleService iRoleService; private final IRoleService iRoleService;
private final IResourceService iResourceService; private final IResourceService iResourceService;
@ -27,9 +27,9 @@ public class WechatAuthenticationProvider extends AbstractAuthenticationProvider
*/ */
@Override @Override
protected UserDetail retrieveUser(LoginForm loginForm) throws UserLoginException { protected UserDetail retrieveUser(LoginForm loginForm) throws UserLoginException {
WechatLoginForm wechatLoginForm = (WechatLoginForm) loginForm; WechatMiniLoginForm wechatMiniLoginForm = (WechatMiniLoginForm) loginForm;
String code = wechatLoginForm.getCode(); String code = wechatMiniLoginForm.getCode();
AuthWay authWay = wechatLoginForm.getAuthWay(); AuthWay authWay = wechatMiniLoginForm.getAuthWay();
UserDetail userDetail = iUserService.selectUser(code, authWay); UserDetail userDetail = iUserService.selectUser(code, authWay);
if (userDetail == null) throw new UserLoginException(ExceptionMsg.CLI_ERR_MSG, "账号不存在"); if (userDetail == null) throw new UserLoginException(ExceptionMsg.CLI_ERR_MSG, "账号不存在");
Long userId = userDetail.getUserId(); Long userId = userDetail.getUserId();

View File

@ -1,4 +1,4 @@
package com.njzscloud.common.security.module.wechat; package com.njzscloud.common.security.module.wechat.mini;
import com.njzscloud.common.security.contant.AuthWay; import com.njzscloud.common.security.contant.AuthWay;
import com.njzscloud.common.security.support.LoginForm; import com.njzscloud.common.security.support.LoginForm;
@ -10,13 +10,15 @@ import lombok.Setter;
*/ */
@Getter @Getter
@Setter @Setter
public class WechatLoginForm extends LoginForm { public class WechatMiniLoginForm extends LoginForm {
/** /**
* *
*/ */
private String code; private String code;
private String openid;
private String unionid;
public WechatLoginForm() { public WechatMiniLoginForm() {
super(AuthWay.WECHAT_MINI); super(AuthWay.WECHAT_MINI);
} }

View File

@ -1,4 +1,4 @@
package com.njzscloud.common.security.module.wechat; package com.njzscloud.common.security.module.wechat.mini;
import com.njzscloud.common.core.ex.ExceptionMsg; import com.njzscloud.common.core.ex.ExceptionMsg;
import com.njzscloud.common.core.jackson.Jackson; import com.njzscloud.common.core.jackson.Jackson;
@ -16,7 +16,7 @@ import static com.njzscloud.common.security.contant.Constants.LOGIN_WECHAT_URL;
/** /**
* *
*/ */
public class WechatLoginPreparer implements LoginPreparer { public class WechatMiniLoginPreparer implements LoginPreparer {
private static final AntPathRequestMatcher matcher = new AntPathRequestMatcher(LOGIN_WECHAT_URL, "POST"); private static final AntPathRequestMatcher matcher = new AntPathRequestMatcher(LOGIN_WECHAT_URL, "POST");
/** /**
@ -28,7 +28,7 @@ public class WechatLoginPreparer implements LoginPreparer {
@Override @Override
public LoginForm createLoginForm(HttpServletRequest request) { public LoginForm createLoginForm(HttpServletRequest request) {
try (ServletInputStream inputStream = request.getInputStream()) { try (ServletInputStream inputStream = request.getInputStream()) {
return Jackson.toBean(inputStream, WechatLoginForm.class); return Jackson.toBean(inputStream, WechatMiniLoginForm.class);
} catch (Exception e) { } catch (Exception e) {
throw new UserLoginException(e, ExceptionMsg.SYS_ERR_MSG, "登录表单解析失败"); throw new UserLoginException(e, ExceptionMsg.SYS_ERR_MSG, "登录表单解析失败");
} }

View File

@ -1,7 +1,21 @@
package com.njzscloud.common.security.support; package com.njzscloud.common.security.support;
import com.njzscloud.common.security.contant.AuthWay; import com.njzscloud.common.security.contant.AuthWay;
import com.njzscloud.common.security.module.password.PasswordLoginForm;
import com.njzscloud.common.security.module.wechat.mini.WechatMiniLoginForm;
public interface IUserService { public interface IUserService {
UserDetail selectUser(String phone, AuthWay authWay); UserDetail selectUser(String phone, AuthWay authWay);
default UserDetail selectUser(PasswordLoginForm form) {
return null;
}
default UserDetail selectUser(WechatMiniLoginForm form) {
return null;
}
default UserDetail my(WechatMiniLoginForm form) {
return null;
}
} }

View File

@ -7,6 +7,7 @@ import lombok.RequiredArgsConstructor;
import lombok.Setter; import lombok.Setter;
import java.security.Principal; import java.security.Principal;
import java.util.Map;
@Getter @Getter
@Setter @Setter
@ -17,4 +18,8 @@ public abstract class LoginForm implements Principal {
*/ */
private final AuthWay authWay; private final AuthWay authWay;
/**
*
*/
private Map<String, Object> extra;
} }

View File

@ -0,0 +1,29 @@
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.njzscloud</groupId>
<artifactId>njzscloud-common</artifactId>
<version>0.0.1</version>
</parent>
<artifactId>njzscloud-common-wechat</artifactId>
<packaging>jar</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>com.njzscloud</groupId>
<artifactId>njzscloud-common-core</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.njzscloud</groupId>
<artifactId>njzscloud-common-http</artifactId>
<scope>provided</scope>
</dependency>
</dependencies>
</project>

View File

@ -0,0 +1,25 @@
package com.njzscloud.common.wechat;
import com.njzscloud.common.http.annotation.GetEndpoint;
import com.njzscloud.common.http.annotation.QueryParam;
import com.njzscloud.common.http.annotation.RemoteServer;
import com.njzscloud.common.wechat.param.Code2SessionParam;
import com.njzscloud.common.wechat.param.GetAccessTokenParam;
import com.njzscloud.common.wechat.result.Code2SessionResult;
import com.njzscloud.common.wechat.result.GetAccessTokenResult;
@RemoteServer(value = "${wechat.base-url}")
public interface WechatApi {
/**
* access_token
*/
@GetEndpoint("/cgi-bin/token")
GetAccessTokenResult getAccessToken(@QueryParam GetAccessTokenParam getAccessTokenParam);
/**
*
*/
@GetEndpoint("/sns/jscode2session")
Code2SessionResult code2Session(@QueryParam Code2SessionParam code2SessionParam);
}

View File

@ -1,21 +1,27 @@
package com.njzscloud.supervisory.wechat; package com.njzscloud.common.wechat;
import cn.hutool.core.lang.Assert; import cn.hutool.core.lang.Assert;
import cn.hutool.extra.spring.SpringUtil; import cn.hutool.extra.spring.SpringUtil;
import com.njzscloud.common.core.ex.Exceptions; import com.njzscloud.common.core.ex.Exceptions;
import com.njzscloud.supervisory.wechat.param.Code2SessionParam; import com.njzscloud.common.http.HttpClientDecorator;
import com.njzscloud.supervisory.wechat.param.GetAccessTokenParam; import com.njzscloud.common.wechat.param.Code2SessionParam;
import com.njzscloud.supervisory.wechat.result.Code2SessionResult; import com.njzscloud.common.wechat.param.GetAccessTokenParam;
import com.njzscloud.supervisory.wechat.result.GetAccessTokenResult; import com.njzscloud.common.wechat.result.Code2SessionResult;
import com.njzscloud.common.wechat.result.GetAccessTokenResult;
import java.util.Date; import java.util.Date;
public class WechatUtil { public class WechatUtil {
private static final WechatApi API = SpringUtil.getBean(WechatApi.class); private static final WechatApi API;
private static String accessToken = ""; private static String accessToken = "";
private static long tokenExpTime = 0; private static long tokenExpTime = 0;
static {
HttpClientDecorator decorator = SpringUtil.getBean(HttpClientDecorator.class);
API = decorator.decorate(WechatApi.class);
}
public static Code2SessionResult code2Session(Code2SessionParam param) { public static Code2SessionResult code2Session(Code2SessionParam param) {
auth(); auth();
return API.code2Session(param.setAccess_token(accessToken)); return API.code2Session(param.setAccess_token(accessToken));

View File

@ -0,0 +1,9 @@
package com.njzscloud.common.wechat.config;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Configuration;
@Configuration
@EnableConfigurationProperties(WechatProperties.class)
public class WechatAutoConfiguration {
}

View File

@ -1,4 +1,4 @@
package com.njzscloud.supervisory.config; package com.njzscloud.common.wechat.config;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
@ -14,4 +14,5 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
public class WechatProperties { public class WechatProperties {
private String appId; private String appId;
private String appSecret; private String appSecret;
private String baseUrl;
} }

View File

@ -1,7 +1,7 @@
package com.njzscloud.supervisory.wechat.param; package com.njzscloud.common.wechat.param;
import cn.hutool.extra.spring.SpringUtil; import cn.hutool.extra.spring.SpringUtil;
import com.njzscloud.supervisory.config.WechatProperties; import com.njzscloud.common.wechat.config.WechatProperties;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import lombok.ToString; import lombok.ToString;

View File

@ -1,7 +1,7 @@
package com.njzscloud.supervisory.wechat.param; package com.njzscloud.common.wechat.param;
import cn.hutool.extra.spring.SpringUtil; import cn.hutool.extra.spring.SpringUtil;
import com.njzscloud.supervisory.config.WechatProperties; import com.njzscloud.common.wechat.config.WechatProperties;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import lombok.ToString; import lombok.ToString;

View File

@ -1,4 +1,4 @@
package com.njzscloud.supervisory.wechat.result; package com.njzscloud.common.wechat.result;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;

View File

@ -1,4 +1,4 @@
package com.njzscloud.supervisory.wechat.result; package com.njzscloud.common.wechat.result;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;

View File

@ -0,0 +1,2 @@
org.springframework.boot.autoconfigure.EnableAutoConfiguration = \
com.njzscloud.common.wechat.config.WechatAutoConfiguration

View File

@ -27,6 +27,8 @@
<module>njzscloud-common-sn</module> <module>njzscloud-common-sn</module>
<module>njzscloud-common-gen</module> <module>njzscloud-common-gen</module>
<module>njzscloud-common-mqtt</module> <module>njzscloud-common-mqtt</module>
<module>njzscloud-common-http</module>
<module>njzscloud-common-wechat</module>
</modules> </modules>

View File

@ -21,6 +21,14 @@
<groupId>com.njzscloud</groupId> <groupId>com.njzscloud</groupId>
<artifactId>njzscloud-common-core</artifactId> <artifactId>njzscloud-common-core</artifactId>
</dependency> </dependency>
<dependency>
<groupId>com.njzscloud</groupId>
<artifactId>njzscloud-common-http</artifactId>
</dependency>
<dependency>
<groupId>com.njzscloud</groupId>
<artifactId>njzscloud-common-wechat</artifactId>
</dependency>
<dependency> <dependency>
<groupId>com.njzscloud</groupId> <groupId>com.njzscloud</groupId>
<artifactId>njzscloud-common-mp</artifactId> <artifactId>njzscloud-common-mp</artifactId>

View File

@ -1,21 +0,0 @@
package com.njzscloud.supervisory.biz.constant;
import com.njzscloud.common.core.ienum.DictStr;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
/**
* truck_category
*
*/
@Getter
@RequiredArgsConstructor
public enum TruckCategory implements DictStr {
HookTruck("HookTruck", "勾臂车"),
FiveSmallTruck("FiveSmallTruck", "五小工程车"),
DumpTruck("DumpTruck", "渣土车"),
OtherTruck("OtherTruck", "其他车型"),
;
private final String val;
private final String txt;
}

View File

@ -1,6 +1,6 @@
package com.njzscloud.supervisory.config; package com.njzscloud.supervisory.config;
import com.njzscloud.common.core.http.HttpClientDecorator; import com.njzscloud.common.http.HttpClientDecorator;
import com.njzscloud.supervisory.gps.tuqiang.jimi.support.JimiApi; import com.njzscloud.supervisory.gps.tuqiang.jimi.support.JimiApi;
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;

View File

@ -1,17 +0,0 @@
package com.njzscloud.supervisory.config;
import com.njzscloud.common.core.http.HttpClientDecorator;
import com.njzscloud.supervisory.wechat.WechatApi;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
@EnableConfigurationProperties(WechatProperties.class)
public class WechatAutoConfiguration {
@Bean
public WechatApi wechatApi(HttpClientDecorator httpClientDecorator) {
return httpClientDecorator.decorate(WechatApi.class);
}
}

View File

@ -127,11 +127,11 @@ public class DeviceInfoService extends ServiceImpl<DeviceInfoMapper, DeviceInfoE
String frontPhoto = null; String frontPhoto = null;
String bodyPhoto = null; String bodyPhoto = null;
orderInfoService.truckComing(new TruckComingOrderParam() orderInfoService.truckComing(new TruckComingOrderParam()
.setOrderId(orderInfoByLicensePlate.getId()) .setOrderId(orderInfoByLicensePlate.getId())
.setWeight(weight) .setWeight(weight)
.setFrontPhoto(frontPhoto) .setFrontPhoto(frontPhoto)
.setBodyPhoto(bodyPhoto) .setBodyPhoto(bodyPhoto),
); 0);
} }
break; break;
// TODO 出前置不启用 // TODO 出前置不启用
@ -162,11 +162,11 @@ public class DeviceInfoService extends ServiceImpl<DeviceInfoMapper, DeviceInfoE
String frontPhoto = null; String frontPhoto = null;
String bodyPhoto = null; String bodyPhoto = null;
orderInfoService.truckLeaving(new TruckLeavingOrderParam() orderInfoService.truckLeaving(new TruckLeavingOrderParam()
.setOrderId(orderInfoByLicensePlate.getId()) .setOrderId(orderInfoByLicensePlate.getId())
.setWeight(weight) .setWeight(weight)
.setFrontPhoto(frontPhoto) .setFrontPhoto(frontPhoto)
.setBodyPhoto(bodyPhoto) .setBodyPhoto(bodyPhoto),
); 0);
} }
break; break;
default: default:
@ -292,21 +292,21 @@ public class DeviceInfoService extends ServiceImpl<DeviceInfoMapper, DeviceInfoE
// 开门 // 开门
open(sn); open(sn);
orderInfoService.truckComing(new TruckComingOrderParam() orderInfoService.truckComing(new TruckComingOrderParam()
.setOrderId(orderId) .setOrderId(orderId)
.setWeight(weight) .setWeight(weight)
.setFrontPhoto(frontPhoto) .setFrontPhoto(frontPhoto)
.setBodyPhoto(bodyPhoto) .setBodyPhoto(bodyPhoto),
); 0);
} }
if (deviceCode == DeviceCode.Chu) { if (deviceCode == DeviceCode.Chu) {
try { try {
orderInfoService.truckLeaving(new TruckLeavingOrderParam() orderInfoService.truckLeaving(new TruckLeavingOrderParam()
.setOrderId(orderId) .setOrderId(orderId)
.setWeight(weight) .setWeight(weight)
.setFrontPhoto(frontPhoto) .setFrontPhoto(frontPhoto)
.setBodyPhoto(bodyPhoto) .setBodyPhoto(bodyPhoto),
); 0);
// 播语音 // 播语音
playVoice(sn, "{}称重完成,磅重{}吨", licensePlate, weight / 1000); playVoice(sn, "{}称重完成,磅重{}吨", licensePlate, weight / 1000);
// 开门 // 开门

View File

@ -1,8 +1,8 @@
package com.njzscloud.supervisory.gps.tuqiang.jimi.support; package com.njzscloud.supervisory.gps.tuqiang.jimi.support;
import com.njzscloud.common.core.http.annotation.FormBodyParam; import com.njzscloud.common.http.annotation.FormBodyParam;
import com.njzscloud.common.core.http.annotation.PostEndpoint; import com.njzscloud.common.http.annotation.PostEndpoint;
import com.njzscloud.common.core.http.annotation.RemoteServer; import com.njzscloud.common.http.annotation.RemoteServer;
@RemoteServer(value = "http://open.aichezaixian.com/route/rest", requestInterceptor = JimiRequestInterceptor.class) @RemoteServer(value = "http://open.aichezaixian.com/route/rest", requestInterceptor = JimiRequestInterceptor.class)
public interface JimiApi { public interface JimiApi {

View File

@ -1,8 +1,8 @@
package com.njzscloud.supervisory.gps.tuqiang.jimi.support; package com.njzscloud.supervisory.gps.tuqiang.jimi.support;
import cn.hutool.extra.spring.SpringUtil; import cn.hutool.extra.spring.SpringUtil;
import com.njzscloud.common.core.http.constant.HttpMethod; import com.njzscloud.common.http.constant.HttpMethod;
import com.njzscloud.common.core.http.interceptor.RequestInterceptor; import com.njzscloud.common.http.interceptor.RequestInterceptor;
import com.njzscloud.supervisory.config.JimiProperties; import com.njzscloud.supervisory.config.JimiProperties;
public class JimiRequestInterceptor implements RequestInterceptor { public class JimiRequestInterceptor implements RequestInterceptor {

View File

@ -102,12 +102,12 @@ public class OrderInfoController {
/** /**
* *
*/ */
@GetMapping("/dispatch_paging") /* @GetMapping("/dispatch_paging")
public R<PageResult<OrderPagingResult>> dispatchPaging(PageParam pageParam, OrderPagingSearchParam orderPagingSearchParam) { public R<PageResult<OrderPagingResult>> dispatchPaging(PageParam pageParam, OrderPagingSearchParam orderPagingSearchParam) {
return R.success(orderInfoService return R.success(orderInfoService
.dispatchPaging(pageParam, orderPagingSearchParam)); .dispatchPaging(pageParam, orderPagingSearchParam));
} }
*/
/** /**
* *
*/ */
@ -191,7 +191,7 @@ public class OrderInfoController {
*/ */
@PostMapping("/truck_coming") @PostMapping("/truck_coming")
public R<?> truckComing(@RequestBody TruckComingOrderParam truckComingOrderParam) { public R<?> truckComing(@RequestBody TruckComingOrderParam truckComingOrderParam) {
orderInfoService.truckComing(truckComingOrderParam); orderInfoService.truckComing(truckComingOrderParam, 1);
return R.success(); return R.success();
} }
@ -200,7 +200,7 @@ public class OrderInfoController {
*/ */
@PostMapping("/truck_leaving") @PostMapping("/truck_leaving")
public R<?> truckLeaving(@RequestBody TruckLeavingOrderParam truckLeavingOrderParam) { public R<?> truckLeaving(@RequestBody TruckLeavingOrderParam truckLeavingOrderParam) {
orderInfoService.truckLeaving(truckLeavingOrderParam); orderInfoService.truckLeaving(truckLeavingOrderParam, 1);
return R.success(); return R.success();
} }

View File

@ -2,7 +2,6 @@ package com.njzscloud.supervisory.order.pojo.result;
import com.njzscloud.supervisory.biz.constant.AuditStatus; import com.njzscloud.supervisory.biz.constant.AuditStatus;
import com.njzscloud.supervisory.biz.constant.BizObj; import com.njzscloud.supervisory.biz.constant.BizObj;
import com.njzscloud.supervisory.biz.constant.TruckCategory;
import com.njzscloud.supervisory.goods.contant.MoneyStrategy; import com.njzscloud.supervisory.goods.contant.MoneyStrategy;
import com.njzscloud.supervisory.order.contant.*; import com.njzscloud.supervisory.order.contant.*;
import lombok.Getter; import lombok.Getter;
@ -25,10 +24,7 @@ public class OrderPagingResult {
* *
*/ */
private String nickname; private String nickname;
/**
*
*/
private TruckCategory truckCategory;
/** /**
* *
*/ */
@ -403,7 +399,10 @@ public class OrderPagingResult {
* *
*/ */
private String licensePlate; private String licensePlate;
/**
*
*/
private String truckCategory;
/** /**
* *
*/ */

View File

@ -2,7 +2,6 @@ package com.njzscloud.supervisory.order.pojo.result;
import com.njzscloud.supervisory.biz.constant.AuditStatus; import com.njzscloud.supervisory.biz.constant.AuditStatus;
import com.njzscloud.supervisory.biz.constant.BizObj; import com.njzscloud.supervisory.biz.constant.BizObj;
import com.njzscloud.supervisory.biz.constant.TruckCategory;
import com.njzscloud.supervisory.goods.contant.MoneyStrategy; import com.njzscloud.supervisory.goods.contant.MoneyStrategy;
import com.njzscloud.supervisory.order.contant.*; import com.njzscloud.supervisory.order.contant.*;
import lombok.Getter; import lombok.Getter;
@ -422,7 +421,7 @@ public class TrainBillResult {
* ; * ;
*/ */
private Integer historyTareWeight; private Integer historyTareWeight;
private TruckCategory truckCategory; private String truckCategory;
// endregion // endregion

View File

@ -30,6 +30,7 @@ import com.njzscloud.supervisory.order.contant.OrderCategory;
import com.njzscloud.supervisory.order.contant.OrderStatus; import com.njzscloud.supervisory.order.contant.OrderStatus;
import com.njzscloud.supervisory.order.contant.OrderViewType; import com.njzscloud.supervisory.order.contant.OrderViewType;
import com.njzscloud.supervisory.order.mapper.OrderInfoMapper; import com.njzscloud.supervisory.order.mapper.OrderInfoMapper;
import com.njzscloud.supervisory.order.pojo.entity.OrderCargoPlaceEntity;
import com.njzscloud.supervisory.order.pojo.entity.OrderGoodsEntity; import com.njzscloud.supervisory.order.pojo.entity.OrderGoodsEntity;
import com.njzscloud.supervisory.order.pojo.entity.OrderInfoEntity; import com.njzscloud.supervisory.order.pojo.entity.OrderInfoEntity;
import com.njzscloud.supervisory.order.pojo.param.*; import com.njzscloud.supervisory.order.pojo.param.*;
@ -71,19 +72,6 @@ public class OrderInfoService extends ServiceImpl<OrderInfoMapper, OrderInfoEnti
AddOrderCargoPlaceParam cargoPlace = addOrderInfoParam.getCargoPlace(); AddOrderCargoPlaceParam cargoPlace = addOrderInfoParam.getCargoPlace();
long cargoPlaceId = orderCargoPlaceService.add(cargoPlace); long cargoPlaceId = orderCargoPlaceService.add(cargoPlace);
Long userId = SecurityUtil.currentUserId(); Long userId = SecurityUtil.currentUserId();
String area = cargoPlace.getArea();
BizAuditConfigEntity bizAuditConfigEntity = bizAuditConfigService.getOne(Wrappers.lambdaQuery(BizAuditConfigEntity.class).eq(BizAuditConfigEntity::getArea, area));
AuditStatus auditStatus = AuditStatus.DaiShenHe;
if (bizAuditConfigEntity != null) {
String areaRole = bizAuditConfigEntity.getAreaRole();
String cityRole = bizAuditConfigEntity.getCityRole();
if (areaRole != null && cityRole != null) {
auditStatus = AuditStatus.QuDaiShenHe;
} else if (areaRole == null && cityRole != null) {
auditStatus = AuditStatus.ShiDaiShenHe;
}
}
Long transCompanyId = addOrderInfoParam.getTransCompanyId(); Long transCompanyId = addOrderInfoParam.getTransCompanyId();
OrderStatus orderStatus = transCompanyId == null ? OrderStatus.YiYuYue : OrderStatus.DaiPaiDan; OrderStatus orderStatus = transCompanyId == null ? OrderStatus.YiYuYue : OrderStatus.DaiPaiDan;
@ -96,10 +84,8 @@ public class OrderInfoService extends ServiceImpl<OrderInfoMapper, OrderInfoEnti
.setSn(SnUtil.next()) .setSn(SnUtil.next())
.setCargoPlaceId(cargoPlaceId) .setCargoPlaceId(cargoPlaceId)
.setUserId(userId) .setUserId(userId)
.setAuditStatus(auditStatus)
.setOrderStatus(orderStatus) .setOrderStatus(orderStatus)
.setGoodsId(orderGoodsId) .setGoodsId(orderGoodsId);
.setCheckStatus(CheckStatus.WeiKanLiao);
this.save(orderInfoEntity); this.save(orderInfoEntity);
Long orderId = orderInfoEntity.getId(); Long orderId = orderInfoEntity.getId();
@ -205,8 +191,10 @@ public class OrderInfoService extends ServiceImpl<OrderInfoMapper, OrderInfoEnti
} }
Set<String> roles = userDetail.getRoles(); Set<String> roles = userDetail.getRoles();
if (SecurityUtil.isAdmin() || roles.contains(Constant.ROLE_STATION_MANAGE)) { if (SecurityUtil.isAdmin() || roles.contains(Constant.ROLE_STATION_MANAGE)) {
Long stationId = orderPagingSearchParam.getStationId();
Assert.notNull(stationId, () -> Exceptions.clierr("请选择站点"));
ew ew
.eq("a.station_id", orderPagingSearchParam.getStationId()) .eq("a.station_id", stationId)
.eq("a.order_status", OrderStatus.YiYuYue) .eq("a.order_status", OrderStatus.YiYuYue)
.isNull("a.trans_company_id ") .isNull("a.trans_company_id ")
; ;
@ -229,8 +217,10 @@ public class OrderInfoService extends ServiceImpl<OrderInfoMapper, OrderInfoEnti
Set<String> roles = userDetail.getRoles(); Set<String> roles = userDetail.getRoles();
if (SecurityUtil.isAdmin() || roles.contains(Constant.ROLE_STATION_MANAGE)) { if (SecurityUtil.isAdmin() || roles.contains(Constant.ROLE_STATION_MANAGE)) {
Long stationId = orderPagingSearchParam.getStationId();
Assert.notNull(stationId, () -> Exceptions.clierr("请选择站点"));
ew ew
.eq("a.station_id", orderPagingSearchParam.getStationId()) .eq("a.station_id", stationId)
.in("a.order_status", OrderStatus.DaiPaiDan, OrderStatus.DaiJieDan, OrderStatus.YiJieDan) .in("a.order_status", OrderStatus.DaiPaiDan, OrderStatus.DaiJieDan, OrderStatus.YiJieDan)
; ;
return; return;
@ -266,8 +256,10 @@ public class OrderInfoService extends ServiceImpl<OrderInfoMapper, OrderInfoEnti
Set<String> roles = userDetail.getRoles(); Set<String> roles = userDetail.getRoles();
if (SecurityUtil.isAdmin() || roles.contains(Constant.ROLE_STATION_MANAGE)) { if (SecurityUtil.isAdmin() || roles.contains(Constant.ROLE_STATION_MANAGE)) {
Long stationId = orderPagingSearchParam.getStationId();
Assert.notNull(stationId, () -> Exceptions.clierr("请选择站点"));
ew ew
.eq("a.station_id", orderPagingSearchParam.getStationId()) .eq("a.station_id", stationId)
.in("a.order_status", OrderStatus.QingYunZhong, OrderStatus.YiJinChang, OrderStatus.YiChuChang) .in("a.order_status", OrderStatus.QingYunZhong, OrderStatus.YiJinChang, OrderStatus.YiChuChang)
; ;
return; return;
@ -304,8 +296,10 @@ public class OrderInfoService extends ServiceImpl<OrderInfoMapper, OrderInfoEnti
Set<String> roles = userDetail.getRoles(); Set<String> roles = userDetail.getRoles();
if (SecurityUtil.isAdmin() || roles.contains(Constant.ROLE_STATION_MANAGE)) { if (SecurityUtil.isAdmin() || roles.contains(Constant.ROLE_STATION_MANAGE)) {
Long stationId = orderPagingSearchParam.getStationId();
Assert.notNull(stationId, () -> Exceptions.clierr("请选择站点"));
ew ew
.eq("a.station_id", orderPagingSearchParam.getStationId()) .eq("a.station_id", stationId)
.eq("a.order_status", OrderStatus.YiWanCheng) .eq("a.order_status", OrderStatus.YiWanCheng)
; ;
return; return;
@ -327,8 +321,10 @@ public class OrderInfoService extends ServiceImpl<OrderInfoMapper, OrderInfoEnti
Set<String> roles = userDetail.getRoles(); Set<String> roles = userDetail.getRoles();
if (SecurityUtil.isAdmin() || roles.contains(Constant.ROLE_STATION_MANAGE)) { if (SecurityUtil.isAdmin() || roles.contains(Constant.ROLE_STATION_MANAGE)) {
Long stationId = orderPagingSearchParam.getStationId();
Assert.notNull(stationId, () -> Exceptions.clierr("请选择站点"));
ew ew
.eq("a.station_id", orderPagingSearchParam.getStationId()) .eq("a.station_id", stationId)
.eq("a.order_status", OrderStatus.YiQuXiao) .eq("a.order_status", OrderStatus.YiQuXiao)
; ;
return; return;
@ -339,8 +335,10 @@ public class OrderInfoService extends ServiceImpl<OrderInfoMapper, OrderInfoEnti
UserDetail userDetail = SecurityUtil.loginUser(); UserDetail userDetail = SecurityUtil.loginUser();
Set<String> roles = userDetail.getRoles(); Set<String> roles = userDetail.getRoles();
if (SecurityUtil.isAdmin() || roles.contains(Constant.ROLE_STATION_MANAGE)) { if (SecurityUtil.isAdmin() || roles.contains(Constant.ROLE_STATION_MANAGE)) {
Long stationId = orderPagingSearchParam.getStationId();
Assert.notNull(stationId, () -> Exceptions.clierr("请选择站点"));
ew ew
.eq("a.station_id", orderPagingSearchParam.getStationId()) .eq("a.station_id", stationId)
.ne("a.auto_order", 3) .ne("a.auto_order", 3)
; ;
return; return;
@ -478,8 +476,10 @@ public class OrderInfoService extends ServiceImpl<OrderInfoMapper, OrderInfoEnti
// detail.setAuditStatus(newAuditStatus); // detail.setAuditStatus(newAuditStatus);
// detail.setAuditMemo(auditOrderParam.getAuditMemo()); // detail.setAuditMemo(auditOrderParam.getAuditMemo());
String certificateSn = null; String certificateSn = null;
CheckStatus checkStatus = null;
if (auditStatus == AuditStatus.TongGuo) { if (auditStatus == AuditStatus.TongGuo) {
certificateSn = SnUtil.next(CERTIFICATE_SN_CODE); certificateSn = SnUtil.next(CERTIFICATE_SN_CODE);
checkStatus = CheckStatus.WeiKanLiao;
} }
this.updateById(new OrderInfoEntity() this.updateById(new OrderInfoEntity()
.setId(detail.getId()) .setId(detail.getId())
@ -488,6 +488,7 @@ public class OrderInfoService extends ServiceImpl<OrderInfoMapper, OrderInfoEnti
.setShiAuditUserId(shiAuditUserId) .setShiAuditUserId(shiAuditUserId)
.setCertificateSn(certificateSn) .setCertificateSn(certificateSn)
.setAuditTime(LocalDateTime.now()) .setAuditTime(LocalDateTime.now())
.setCheckStatus(checkStatus)
.setAuditMemo(auditOrderParam.getAuditMemo()) .setAuditMemo(auditOrderParam.getAuditMemo())
); );
} }
@ -560,9 +561,23 @@ public class OrderInfoService extends ServiceImpl<OrderInfoMapper, OrderInfoEnti
Long driverId_ = baseMapper.getDriverId(userId); Long driverId_ = baseMapper.getDriverId(userId);
Assert.isTrue(driverId_ != null && driverId == driverId_, () -> Exceptions.clierr("您没有权限确认此单")); Assert.isTrue(driverId_ != null && driverId == driverId_, () -> Exceptions.clierr("您没有权限确认此单"));
baseMapper.busyTruck(truckId, Boolean.TRUE); baseMapper.busyTruck(truckId, Boolean.TRUE);
OrderCargoPlaceEntity cargoPlaceEntity = orderCargoPlaceService.getById(orderInfo.getCargoPlaceId());
String area = cargoPlaceEntity.getArea();
BizAuditConfigEntity bizAuditConfigEntity = bizAuditConfigService.getOne(Wrappers.lambdaQuery(BizAuditConfigEntity.class).eq(BizAuditConfigEntity::getArea, area));
AuditStatus auditStatus = AuditStatus.DaiShenHe;
if (bizAuditConfigEntity != null) {
String areaRole = bizAuditConfigEntity.getAreaRole();
String cityRole = bizAuditConfigEntity.getCityRole();
if (areaRole != null && cityRole != null) {
auditStatus = AuditStatus.QuDaiShenHe;
} else if (areaRole == null && cityRole != null) {
auditStatus = AuditStatus.ShiDaiShenHe;
}
}
this.updateById(new OrderInfoEntity() this.updateById(new OrderInfoEntity()
.setId(orderInfo.getId()) .setId(orderInfo.getId())
.setAuditStatus(auditStatus)
.setTruckId(truckId) .setTruckId(truckId)
.setOrderStatus(OrderStatus.YiJieDan) .setOrderStatus(OrderStatus.YiJieDan)
); );
@ -627,9 +642,11 @@ public class OrderInfoService extends ServiceImpl<OrderInfoMapper, OrderInfoEnti
/** /**
* *
*
* @param i 0-->1-->
*/ */
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void truckComing(TruckComingOrderParam truckComingOrderParam) { public void truckComing(TruckComingOrderParam truckComingOrderParam, int i) {
OrderInfoEntity orderInfoEntity = this.getById(truckComingOrderParam.getOrderId()); OrderInfoEntity orderInfoEntity = this.getById(truckComingOrderParam.getOrderId());
Assert.notNull(orderInfoEntity, () -> Exceptions.clierr("订单不存在")); Assert.notNull(orderInfoEntity, () -> Exceptions.clierr("订单不存在"));
OrderStatus orderStatus = orderInfoEntity.getOrderStatus(); OrderStatus orderStatus = orderInfoEntity.getOrderStatus();
@ -639,6 +656,7 @@ public class OrderInfoService extends ServiceImpl<OrderInfoMapper, OrderInfoEnti
long carInOutId = orderCarInOutService.truckComing(truckComingOrderParam, orderCategory); long carInOutId = orderCarInOutService.truckComing(truckComingOrderParam, orderCategory);
this.updateById(new OrderInfoEntity() this.updateById(new OrderInfoEntity()
.setAutoOrder(3 ^ i)
.setId(orderInfoEntity.getId()) .setId(orderInfoEntity.getId())
.setCarInOutId(carInOutId) .setCarInOutId(carInOutId)
.setOrderStatus(OrderStatus.YiJinChang) .setOrderStatus(OrderStatus.YiJinChang)
@ -647,9 +665,11 @@ public class OrderInfoService extends ServiceImpl<OrderInfoMapper, OrderInfoEnti
/** /**
* *
*
* @param i 0-->1-->
*/ */
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void truckLeaving(TruckLeavingOrderParam truckLeavingOrderParam) { public void truckLeaving(TruckLeavingOrderParam truckLeavingOrderParam, int i) {
OrderInfoEntity orderInfoEntity = this.getById(truckLeavingOrderParam.getOrderId()); OrderInfoEntity orderInfoEntity = this.getById(truckLeavingOrderParam.getOrderId());
Assert.notNull(orderInfoEntity, () -> Exceptions.clierr("订单不存在")); Assert.notNull(orderInfoEntity, () -> Exceptions.clierr("订单不存在"));
OrderStatus orderStatus = orderInfoEntity.getOrderStatus(); OrderStatus orderStatus = orderInfoEntity.getOrderStatus();
@ -657,6 +677,7 @@ public class OrderInfoService extends ServiceImpl<OrderInfoMapper, OrderInfoEnti
baseMapper.busyDriver(orderInfoEntity.getDriverId(), Boolean.FALSE); baseMapper.busyDriver(orderInfoEntity.getDriverId(), Boolean.FALSE);
baseMapper.busyTruck(orderInfoEntity.getTruckId(), Boolean.FALSE); baseMapper.busyTruck(orderInfoEntity.getTruckId(), Boolean.FALSE);
this.updateById(new OrderInfoEntity() this.updateById(new OrderInfoEntity()
.setAutoOrder(3 ^ (i << 1))
.setId(orderInfoEntity.getId()) .setId(orderInfoEntity.getId())
.setOrderStatus(OrderStatus.YiWanCheng) .setOrderStatus(OrderStatus.YiWanCheng)
); );

View File

@ -30,6 +30,10 @@ public class SearchStationManageResult {
* *
*/ */
private String stationName; private String stationName;
/**
*
*/
private Boolean open;
private String userPhone; private String userPhone;
private String uscc; private String uscc;

View File

@ -1,8 +1,11 @@
package com.njzscloud.supervisory.sys.auth.service; package com.njzscloud.supervisory.sys.auth.service;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.njzscloud.common.security.contant.AuthWay; import com.njzscloud.common.security.contant.AuthWay;
import com.njzscloud.common.security.module.password.PasswordLoginForm;
import com.njzscloud.common.security.module.wechat.mini.WechatMiniLoginForm;
import com.njzscloud.common.security.support.*; import com.njzscloud.common.security.support.*;
import com.njzscloud.common.security.util.SecurityUtil; import com.njzscloud.common.security.util.SecurityUtil;
import com.njzscloud.supervisory.biz.pojo.result.SearchCompanyResult; import com.njzscloud.supervisory.biz.pojo.result.SearchCompanyResult;
@ -22,6 +25,7 @@ import java.util.Set;
@RequiredArgsConstructor @RequiredArgsConstructor
public class AuthService implements IUserService, IResourceService, IRoleService { public class AuthService implements IUserService, IResourceService, IRoleService {
private final AuthMapper authMapper; private final AuthMapper authMapper;
private final UserService userService; private final UserService userService;
@Override @Override
@ -39,6 +43,21 @@ public class AuthService implements IUserService, IResourceService, IRoleService
} }
} }
@Override
public UserDetail selectUser(PasswordLoginForm form) {
String account = form.getAccount();
return authMapper.selectUser(Wrappers.query().eq("a.username", account).eq("a.deleted", 0));
}
@Override
public UserDetail selectUser(WechatMiniLoginForm form) {
String openid = form.getOpenid();
String unionid = form.getUnionid();
return authMapper.selectUser(Wrappers.query().eq("a.wechat_openid", openid)
.eq(StrUtil.isNotBlank(unionid), "a.wechat_unionid", unionid)
.eq("a.deleted", 0));
}
@Override @Override
public Resource selectResourceByUserId(Long userId) { public Resource selectResourceByUserId(Long userId) {
List<MenuResource> menuResources = authMapper.selectUserMenu(userId); List<MenuResource> menuResources = authMapper.selectUserMenu(userId);

View File

@ -13,6 +13,9 @@ import com.njzscloud.common.core.ex.Exceptions;
import com.njzscloud.common.mp.support.PageResult; import com.njzscloud.common.mp.support.PageResult;
import com.njzscloud.common.security.contant.AuthWay; import com.njzscloud.common.security.contant.AuthWay;
import com.njzscloud.common.security.util.SecurityUtil; import com.njzscloud.common.security.util.SecurityUtil;
import com.njzscloud.common.wechat.WechatUtil;
import com.njzscloud.common.wechat.param.Code2SessionParam;
import com.njzscloud.common.wechat.result.Code2SessionResult;
import com.njzscloud.supervisory.biz.constant.BizObj; import com.njzscloud.supervisory.biz.constant.BizObj;
import com.njzscloud.supervisory.biz.pojo.param.AddBizCompanyParam; import com.njzscloud.supervisory.biz.pojo.param.AddBizCompanyParam;
import com.njzscloud.supervisory.biz.service.BizCompanyService; import com.njzscloud.supervisory.biz.service.BizCompanyService;
@ -25,9 +28,6 @@ import com.njzscloud.supervisory.sys.user.pojo.entity.UserEntity;
import com.njzscloud.supervisory.sys.user.pojo.param.*; import com.njzscloud.supervisory.sys.user.pojo.param.*;
import com.njzscloud.supervisory.sys.user.pojo.result.UserAccountDetailResult; import com.njzscloud.supervisory.sys.user.pojo.result.UserAccountDetailResult;
import com.njzscloud.supervisory.sys.user.pojo.result.UserDetailResult; import com.njzscloud.supervisory.sys.user.pojo.result.UserDetailResult;
import com.njzscloud.supervisory.wechat.WechatUtil;
import com.njzscloud.supervisory.wechat.param.Code2SessionParam;
import com.njzscloud.supervisory.wechat.result.Code2SessionResult;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;

View File

@ -1,25 +0,0 @@
package com.njzscloud.supervisory.wechat;
import com.njzscloud.common.core.http.annotation.GetEndpoint;
import com.njzscloud.common.core.http.annotation.QueryParam;
import com.njzscloud.common.core.http.annotation.RemoteServer;
import com.njzscloud.supervisory.wechat.param.Code2SessionParam;
import com.njzscloud.supervisory.wechat.param.GetAccessTokenParam;
import com.njzscloud.supervisory.wechat.result.Code2SessionResult;
import com.njzscloud.supervisory.wechat.result.GetAccessTokenResult;
@RemoteServer(value = "https://api.weixin.qq.com")
public interface WechatApi {
/**
* access_token
*/
@GetEndpoint("/cgi-bin/token")
GetAccessTokenResult getAccessToken(@QueryParam GetAccessTokenParam getAccessTokenParam);
/**
*
*/
@GetEndpoint("/sns/jscode2session")
Code2SessionResult code2Session(@QueryParam Code2SessionParam code2SessionParam);
}

View File

@ -56,3 +56,4 @@ mybatis-plus:
wechat: wechat:
app-id: wx3c06d9dd4e56c58d app-id: wx3c06d9dd4e56c58d
app-secret: ff280a71a4c06fc2956178f8c472ef96 app-secret: ff280a71a4c06fc2956178f8c472ef96
base-url: https://api.weixin.qq.com

View File

@ -6,6 +6,7 @@
<resultMap id="SearchBizProjectResultMap" autoMapping="true" type="com.njzscloud.supervisory.biz.pojo.result.SearchBizProjectResult"> <resultMap id="SearchBizProjectResultMap" autoMapping="true" type="com.njzscloud.supervisory.biz.pojo.result.SearchBizProjectResult">
<result property="contract" column="contract" typeHandler="com.njzscloud.common.mp.support.handler.j.JsonTypeHandler"/> <result property="contract" column="contract" typeHandler="com.njzscloud.common.mp.support.handler.j.JsonTypeHandler"/>
<result property="auditStatus" column="audit_status" typeHandler="com.njzscloud.common.mp.support.handler.e.EnumTypeHandlerDealer"/> <result property="auditStatus" column="audit_status" typeHandler="com.njzscloud.common.mp.support.handler.e.EnumTypeHandlerDealer"/>
<result property="contractDate" column="contract_date" typeHandler="com.njzscloud.common.mp.support.handler.j.JsonTypeHandler"/>
</resultMap> </resultMap>
<select id="paging" resultMap="SearchBizProjectResultMap"> <select id="paging" resultMap="SearchBizProjectResultMap">
@ -33,6 +34,7 @@
a.deleted, a.deleted,
a.audit_status, a.audit_status,
a.audit_memo, a.audit_memo,
a.contract_date,
b.company_name other_company_name, b.company_name other_company_name,
c.company_name, c.company_name,
c.id company_id, c.id company_id,

View File

@ -32,6 +32,7 @@
a.busy, a.busy,
a.gps, a.gps,
a.picture, a.picture,
a.truck_category,
a.disabled a.disabled
FROM biz_truck a FROM biz_truck a
INNER JOIN biz_company b ON b.id = a.company_id AND b.deleted = 0 INNER JOIN biz_company b ON b.id = a.company_id AND b.deleted = 0
@ -64,6 +65,7 @@
a.deleted, a.deleted,
a.gps, a.gps,
a.picture, a.picture,
a.truck_category,
a.disabled a.disabled
FROM biz_truck a FROM biz_truck a
INNER JOIN biz_company b ON b.id = a.company_id AND b.deleted = 0 INNER JOIN biz_company b ON b.id = a.company_id AND b.deleted = 0

View File

@ -167,8 +167,6 @@
<result property="payerCategory" column="payer_category" typeHandler="com.njzscloud.common.mp.support.handler.e.EnumTypeHandlerDealer"/> <result property="payerCategory" column="payer_category" typeHandler="com.njzscloud.common.mp.support.handler.e.EnumTypeHandlerDealer"/>
<result property="paymentStatus" column="payment_status" typeHandler="com.njzscloud.common.mp.support.handler.e.EnumTypeHandlerDealer"/> <result property="paymentStatus" column="payment_status" typeHandler="com.njzscloud.common.mp.support.handler.e.EnumTypeHandlerDealer"/>
<result property="moneyStrategy" column="money_strategy" typeHandler="com.njzscloud.common.mp.support.handler.e.EnumTypeHandlerDealer"/> <result property="moneyStrategy" column="money_strategy" typeHandler="com.njzscloud.common.mp.support.handler.e.EnumTypeHandlerDealer"/>
<result property="truckCategory" column="truck_category" typeHandler="com.njzscloud.common.mp.support.handler.e.EnumTypeHandlerDealer"/>
</resultMap> </resultMap>
<select id="paging" resultMap="OrderPagingResultMap"> <select id="paging" resultMap="OrderPagingResultMap">
<include refid="base_select"/> <include refid="base_select"/>

View File

@ -56,9 +56,10 @@
b.contacts, b.contacts,
b.phone, b.phone,
a.station_id, a.station_id,
b.open,
b.company_name station_name b.company_name station_name
FROM station_manage a FROM station_manage a
INNER JOIN biz_company b ON b.id = a.station_id AND b.station = 1 AND b.deleted = 0 AND b.open = 1 INNER JOIN biz_company b ON b.id = a.station_id AND b.station = 1 AND b.deleted = 0
INNER JOIN sys_user c ON c.id = a.user_id AND c.deleted = 0 INNER JOIN sys_user c ON c.id = a.user_id AND c.deleted = 0
<if test="ew.customSqlSegment != null and ew.customSqlSegment != ''"> <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
${ew.customSqlSegment} ${ew.customSqlSegment}
@ -107,6 +108,7 @@
b.lng, b.lng,
b.lat, b.lat,
b.contacts, b.contacts,
b.open,
b.phone, b.phone,
b.id station_id, b.id station_id,
b.company_name station_name b.company_name station_name
@ -114,6 +116,5 @@
INNER JOIN sys_user c ON c.id = 1 AND c.deleted = 0 INNER JOIN sys_user c ON c.id = 1 AND c.deleted = 0
WHERE b.station = 1 WHERE b.station = 1
AND b.deleted = 0 AND b.deleted = 0
AND b.open = 1
</select> </select>
</mapper> </mapper>

10
pom.xml
View File

@ -57,6 +57,16 @@
<artifactId>njzscloud-common-sichen</artifactId> <artifactId>njzscloud-common-sichen</artifactId>
<version>0.0.1</version> <version>0.0.1</version>
</dependency> </dependency>
<dependency>
<groupId>com.njzscloud</groupId>
<artifactId>njzscloud-common-wechat</artifactId>
<version>0.0.1</version>
</dependency>
<dependency>
<groupId>com.njzscloud</groupId>
<artifactId>njzscloud-common-http</artifactId>
<version>0.0.1</version>
</dependency>
<dependency> <dependency>
<groupId>com.njzscloud</groupId> <groupId>com.njzscloud</groupId>
<artifactId>njzscloud-common-sn</artifactId> <artifactId>njzscloud-common-sn</artifactId>