|
@@ -2,6 +2,7 @@ package org.dromara.server.consume.controller.v1;
|
|
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
import cn.hutool.core.date.DateUtil;
|
|
import cn.hutool.core.date.DateUtil;
|
|
|
|
|
+import cn.hutool.core.thread.ThreadUtil;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
import cn.hutool.json.JSONObject;
|
|
import cn.hutool.json.JSONObject;
|
|
|
import cn.hutool.json.JSONUtil;
|
|
import cn.hutool.json.JSONUtil;
|
|
@@ -25,6 +26,7 @@ import org.springframework.http.ResponseEntity;
|
|
|
import org.springframework.validation.annotation.Validated;
|
|
import org.springframework.validation.annotation.Validated;
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
|
|
|
|
|
|
+import java.util.Date;
|
|
|
import java.util.Objects;
|
|
import java.util.Objects;
|
|
|
import java.util.concurrent.ScheduledExecutorService;
|
|
import java.util.concurrent.ScheduledExecutorService;
|
|
|
import java.util.concurrent.TimeUnit;
|
|
import java.util.concurrent.TimeUnit;
|
|
@@ -62,9 +64,9 @@ public class ConsumeController {
|
|
|
* @return 请求消费结果
|
|
* @return 请求消费结果
|
|
|
*/
|
|
*/
|
|
|
@PostMapping("/ConsumeOriginal/virtualCard")
|
|
@PostMapping("/ConsumeOriginal/virtualCard")
|
|
|
- public Object consumeOriginalVirtualCard(@RequestBody Object record, @RequestParam(name = "mac", required = false) String mac,
|
|
|
|
|
- @RequestParam(name = "qrcode") String qrcode,
|
|
|
|
|
- @RequestParam(name = "xfPwd", required = false) String xfPwd) {
|
|
|
|
|
|
|
+ public Object consumeOriginalVirtualCard(@RequestBody Object record, @RequestParam(name = "mac", required = false) java.lang.String mac,
|
|
|
|
|
+ @RequestParam(name = "qrcode") java.lang.String qrcode,
|
|
|
|
|
+ @RequestParam(name = "xfPwd", required = false) java.lang.String xfPwd) {
|
|
|
JSONObject yc = JSONUtil.parseObj(record);
|
|
JSONObject yc = JSONUtil.parseObj(record);
|
|
|
long userNo = ObjectUtil.isEmpty(yc.get("employeeID")) ? 0L : Long.parseLong(yc.get("employeeID").toString());
|
|
long userNo = ObjectUtil.isEmpty(yc.get("employeeID")) ? 0L : Long.parseLong(yc.get("employeeID").toString());
|
|
|
Object redisQrCode = RedisUtils.getCacheMapValue(CacheNames.SCHOOL_CODE, Long.toString(userNo));
|
|
Object redisQrCode = RedisUtils.getCacheMapValue(CacheNames.SCHOOL_CODE, Long.toString(userNo));
|
|
@@ -94,8 +96,8 @@ public class ConsumeController {
|
|
|
* @return 请求消费结果
|
|
* @return 请求消费结果
|
|
|
*/
|
|
*/
|
|
|
@PostMapping("/ConsumeOriginal")
|
|
@PostMapping("/ConsumeOriginal")
|
|
|
- public Object consumeOriginal(@RequestBody Object record, @RequestParam(name = "mac", required = false) String mac,
|
|
|
|
|
- @RequestParam(name = "xfPwd", required = false) String xfPwd) {
|
|
|
|
|
|
|
+ public Object consumeOriginal(@RequestBody Object record, @RequestParam(name = "mac", required = false) java.lang.String mac,
|
|
|
|
|
+ @RequestParam(name = "xfPwd", required = false) java.lang.String xfPwd) {
|
|
|
|
|
|
|
|
Object object = doRecordData(record, "requestConsume", mac, xfPwd);
|
|
Object object = doRecordData(record, "requestConsume", mac, xfPwd);
|
|
|
JSONObject jsonObject = JSONUtil.parseObj(object);
|
|
JSONObject jsonObject = JSONUtil.parseObj(object);
|
|
@@ -113,7 +115,7 @@ public class ConsumeController {
|
|
|
* @return 上传消费记录结果
|
|
* @return 上传消费记录结果
|
|
|
*/
|
|
*/
|
|
|
@PostMapping("/Consume")
|
|
@PostMapping("/Consume")
|
|
|
- public Object uploadRecord(@RequestBody Object record, @RequestParam(name = "mac", required = false) String mac) {
|
|
|
|
|
|
|
+ public Object uploadRecord(@RequestBody Object record, @RequestParam(name = "mac", required = false) java.lang.String mac) {
|
|
|
return doRecordData(record, "uploadRecord", mac, "");
|
|
return doRecordData(record, "uploadRecord", mac, "");
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -126,8 +128,8 @@ public class ConsumeController {
|
|
|
* @return 处理结果
|
|
* @return 处理结果
|
|
|
*/
|
|
*/
|
|
|
@PostMapping("/Consume/all")
|
|
@PostMapping("/Consume/all")
|
|
|
- public Object consumeAll(@RequestBody Object record, @RequestParam(name = "mac", required = false) String mac,
|
|
|
|
|
- @RequestParam(name = "xfPwd", required = false) String xfPwd) {
|
|
|
|
|
|
|
+ public Object consumeAll(@RequestBody Object record, @RequestParam(name = "mac", required = false) java.lang.String mac,
|
|
|
|
|
+ @RequestParam(name = "xfPwd", required = false) java.lang.String xfPwd) {
|
|
|
return doRecordData(record, "fullRecord", "", "");
|
|
return doRecordData(record, "fullRecord", "", "");
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -147,7 +149,7 @@ public class ConsumeController {
|
|
|
* @return 对账结果
|
|
* @return 对账结果
|
|
|
*/
|
|
*/
|
|
|
@PostMapping("/consume/original/reconciliation/{consumeDate}")
|
|
@PostMapping("/consume/original/reconciliation/{consumeDate}")
|
|
|
- public R<ErrorInfo> originalReconciliation(@PathVariable("consumeDate") String consumeDate){
|
|
|
|
|
|
|
+ public R<ErrorInfo> originalReconciliation(@PathVariable("consumeDate") java.lang.String consumeDate){
|
|
|
return consumeBusiness.originalReconciliation(consumeDate);
|
|
return consumeBusiness.originalReconciliation(consumeDate);
|
|
|
}
|
|
}
|
|
|
/**
|
|
/**
|
|
@@ -159,29 +161,24 @@ public class ConsumeController {
|
|
|
* @param xfPwd 消费密码
|
|
* @param xfPwd 消费密码
|
|
|
* @return 处理结果
|
|
* @return 处理结果
|
|
|
*/
|
|
*/
|
|
|
- private Object doRecordData(Object record, String type, String mac, String xfPwd) {
|
|
|
|
|
|
|
+ private Object doRecordData(Object record, java.lang.String type, java.lang.String mac, java.lang.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");
|
|
|
- ConsumptionBo cloudConsumeBo = BeanUtil.copyProperties(bo, ConsumptionBo.class);
|
|
|
|
|
-// bo.setStatusFlag(4);
|
|
|
|
|
- bo.setUseType(SystemUseTypeEnum.CONSUME);
|
|
|
|
|
-// bo.setCreditType(CreditTypeEnum.TERM_CONSUME);
|
|
|
|
|
|
|
+ bo.setUseType(SystemUseTypeEnum.CONSUME.code());
|
|
|
|
|
|
|
|
R<ErrorInfo> errorInfo;
|
|
R<ErrorInfo> errorInfo;
|
|
|
if (Objects.equals(type, "requestConsume")) {
|
|
if (Objects.equals(type, "requestConsume")) {
|
|
|
- if (ObjectUtil.equals(bo.getCreditType(), CreditTypeEnum.TERM_CONSUME)) {
|
|
|
|
|
|
|
+ if (ObjectUtil.equals(bo.getCreditType(), CreditTypeEnum.TERM_CONSUME.code())) {
|
|
|
// 如果是消费机请求消费,将消费时间设置为当前时间,以防消费时时钟不对造成实际消费时间不正确
|
|
// 如果是消费机请求消费,将消费时间设置为当前时间,以防消费时时钟不对造成实际消费时间不正确
|
|
|
|
|
+ String requestTime = DateUtil.format(bo.getConsumeDate(), DefaultConstants.DATE_TIME_FORMAT);
|
|
|
bo.setConsumeDate(DateUtil.date());
|
|
bo.setConsumeDate(DateUtil.date());
|
|
|
|
|
+ log.info("[请求消费时间:{},调整后消费时间:{}",requestTime, DateUtil.format(bo.getConsumeDate(), DefaultConstants.DATE_TIME_FORMAT));
|
|
|
}
|
|
}
|
|
|
errorInfo = consumeBusiness.createOrder(bo, mac, xfPwd);
|
|
errorInfo = consumeBusiness.createOrder(bo, mac, xfPwd);
|
|
|
- // 是否推送云端消费
|
|
|
|
|
- //if (ObjectUtil.equals(defaultConfig.getLocationFlag(), DefaultConstants.LOCAL_FLAG)) {
|
|
|
|
|
- // baseBusiness.sendCloudConsume(cloudConsumeBo);
|
|
|
|
|
- //}
|
|
|
|
|
} else if (Objects.equals(type, "uploadRecord")) {
|
|
} else if (Objects.equals(type, "uploadRecord")) {
|
|
|
errorInfo = consumeBusiness.postOrder(bo, mac, xfPwd);
|
|
errorInfo = consumeBusiness.postOrder(bo, mac, xfPwd);
|
|
|
} else {
|
|
} else {
|
|
@@ -202,9 +199,7 @@ public class ConsumeController {
|
|
|
//发送消息
|
|
//发送消息
|
|
|
if (ObjectUtil.equals(defaultConfig.getLocationFlag(), DefaultConstants.LOCAL_FLAG)) {
|
|
if (ObjectUtil.equals(defaultConfig.getLocationFlag(), DefaultConstants.LOCAL_FLAG)) {
|
|
|
ConsumptionBo bo = recordConvertStrategy.convert(record, "YC");
|
|
ConsumptionBo bo = recordConvertStrategy.convert(record, "YC");
|
|
|
- scheduledExecutorService.schedule(() -> {
|
|
|
|
|
- baseBusiness.sendCloudConsume(bo);
|
|
|
|
|
- }, 1, TimeUnit.SECONDS);
|
|
|
|
|
|
|
+ ThreadUtil.execAsync(() -> baseBusiness.sendCloudConsume(bo));
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|