|
@@ -22,6 +22,7 @@ import org.dromara.server.consume.convert.strategy.RecordConvertStrategyContent;
|
|
|
import org.springframework.http.HttpStatus;
|
|
import org.springframework.http.HttpStatus;
|
|
|
import org.springframework.http.ResponseEntity;
|
|
import org.springframework.http.ResponseEntity;
|
|
|
import org.springframework.scheduling.annotation.Async;
|
|
import org.springframework.scheduling.annotation.Async;
|
|
|
|
|
+import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
|
|
|
import org.springframework.validation.annotation.Validated;
|
|
import org.springframework.validation.annotation.Validated;
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
|
|
|
@@ -48,6 +49,7 @@ public class ConsumeController {
|
|
|
private final ConsumeBusiness consumeBusiness;
|
|
private final ConsumeBusiness consumeBusiness;
|
|
|
private final BaseBusiness baseBusiness;
|
|
private final BaseBusiness baseBusiness;
|
|
|
private final DefaultConfig defaultConfig;
|
|
private final DefaultConfig defaultConfig;
|
|
|
|
|
+ private final ThreadPoolTaskExecutor threadPoolTaskExecutor;
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 请求消费(校园码)
|
|
* 请求消费(校园码)
|
|
@@ -68,7 +70,7 @@ public class ConsumeController {
|
|
|
Object redisQrCode = RedisUtils.getCacheMapValue(CacheNames.SCHOOL_CODE, Long.toString(userNo));
|
|
Object redisQrCode = RedisUtils.getCacheMapValue(CacheNames.SCHOOL_CODE, Long.toString(userNo));
|
|
|
if (ObjectUtil.equals(qrcode, redisQrCode)) {
|
|
if (ObjectUtil.equals(qrcode, redisQrCode)) {
|
|
|
ErrorResult result = ErrorResult.instance(HttpStatus.FORBIDDEN, "处理失败", 1, "PARAM_ERROR", "二维码失效",
|
|
ErrorResult result = ErrorResult.instance(HttpStatus.FORBIDDEN, "处理失败", 1, "PARAM_ERROR", "二维码失效",
|
|
|
- "请勿重复使用相同的二维码消费。");
|
|
|
|
|
|
|
+ "请勿重复使用相同的二维码消费。");
|
|
|
return new ResponseEntity<Object>(result, null, HttpStatus.FORBIDDEN);
|
|
return new ResponseEntity<Object>(result, null, HttpStatus.FORBIDDEN);
|
|
|
}
|
|
}
|
|
|
RedisUtils.setCacheMapValue(CacheNames.SCHOOL_CODE, Long.toString(userNo), qrcode);
|
|
RedisUtils.setCacheMapValue(CacheNames.SCHOOL_CODE, Long.toString(userNo), qrcode);
|
|
@@ -169,7 +171,7 @@ public class ConsumeController {
|
|
|
private Object doRecordData(Object record, String type, String mac, String xfPwd) {
|
|
private Object doRecordData(Object record, String type, String mac, String xfPwd) {
|
|
|
if (ObjectUtil.length(record) == 0) {
|
|
if (ObjectUtil.length(record) == 0) {
|
|
|
ErrorResult result = ErrorResult.instance(HttpStatus.FORBIDDEN, "处理失败", 1, "PARAM_ERROR", "参数错误",
|
|
ErrorResult result = ErrorResult.instance(HttpStatus.FORBIDDEN, "处理失败", 1, "PARAM_ERROR", "参数错误",
|
|
|
- "json字符串无法还原为对象,可能原因是格式不正确。");
|
|
|
|
|
|
|
+ "json字符串无法还原为对象,可能原因是格式不正确。");
|
|
|
return new ResponseEntity<Object>(result, null, HttpStatus.FORBIDDEN);
|
|
return new ResponseEntity<Object>(result, null, HttpStatus.FORBIDDEN);
|
|
|
}
|
|
}
|
|
|
ConsumptionBo bo = recordConvertStrategy.convert(record, "YC");
|
|
ConsumptionBo bo = recordConvertStrategy.convert(record, "YC");
|
|
@@ -184,7 +186,9 @@ public class ConsumeController {
|
|
|
//}
|
|
//}
|
|
|
errorInfo = consumeBusiness.createOrder(bo, mac, xfPwd);
|
|
errorInfo = consumeBusiness.createOrder(bo, mac, xfPwd);
|
|
|
} else if (Objects.equals(type, "uploadRecord")) {
|
|
} else if (Objects.equals(type, "uploadRecord")) {
|
|
|
- errorInfo = consumeBusiness.postOrder(bo, mac, xfPwd);
|
|
|
|
|
|
|
+ threadPoolTaskExecutor.submit(() -> consumeBusiness.postOrderAsync(bo, mac, xfPwd));
|
|
|
|
|
+ errorInfo = R.ok();
|
|
|
|
|
+ //errorInfo = consumeBusiness.postOrder(bo, mac, xfPwd);
|
|
|
} else {
|
|
} else {
|
|
|
errorInfo = consumeBusiness.fullOrder(bo, mac, xfPwd);
|
|
errorInfo = consumeBusiness.fullOrder(bo, mac, xfPwd);
|
|
|
}
|
|
}
|