feat:消费机-获取服务器时间接口
This commit is contained in:
1 parent
5ed9ac14f9
commit
8cc16c5873
6 files changed
+104
-11
No files matched your search
@@ -604,9 +604,10 @@ CREATE TABLE hard_xfj_log
|
||||
headers varchar(2048) COMMENT 'headers',
|
||||
res varchar(2048) COMMENT 'res',
|
||||
req varchar(2048) COMMENT 'req',
|
||||
error varchar(2048) COMMENT 'error',
|
||||
start_time datetime DEFAULT NULL COMMENT '开始时间',
|
||||
end_time datetime DEFAULT NULL COMMENT '结束时间',
|
||||
cost int DEFAULT NULL COMMENT '耗时(秒)',
|
||||
cost int DEFAULT NULL COMMENT '耗时(毫秒)',
|
||||
create_by varchar(64) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人',
|
||||
create_time datetime DEFAULT NULL COMMENT '创建时间',
|
||||
update_by varchar(64) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '修改人',
|
||||
|
||||
+9
-3
@@ -62,6 +62,12 @@ public class HardXfjLogEntity extends Model<HardXfjLogEntity> {
|
||||
@Schema(description = "req")
|
||||
private String req;
|
||||
|
||||
/**
|
||||
* error
|
||||
*/
|
||||
@Schema(description = "error")
|
||||
private String error;
|
||||
|
||||
/**
|
||||
* 开始时间
|
||||
*/
|
||||
@@ -75,10 +81,10 @@ public class HardXfjLogEntity extends Model<HardXfjLogEntity> {
|
||||
private LocalDateTime endTime;
|
||||
|
||||
/**
|
||||
* 耗时(秒)
|
||||
* 耗时(毫秒)
|
||||
*/
|
||||
@Schema(description = "耗时(秒)")
|
||||
private Integer cost;
|
||||
@Schema(description = "耗时(毫秒)")
|
||||
private Long cost;
|
||||
|
||||
/**
|
||||
* 创建人
|
||||
|
||||
+8
-2
@@ -5,15 +5,21 @@ import lombok.Data;
|
||||
@Data
|
||||
public class XfjBaseVo {
|
||||
|
||||
static final Integer STATUS_SUCCESS = 1;
|
||||
static final Integer STATUS_FAIL = 0;
|
||||
|
||||
static final String DEFAULT_SUCCESS_MSG = "成功";
|
||||
static final String DEFAULT_FAIL_MSG = "服务端错误";
|
||||
|
||||
/**
|
||||
* 1:成功
|
||||
* 0:失败
|
||||
*/
|
||||
private String Status;
|
||||
private Integer Status = STATUS_SUCCESS;
|
||||
|
||||
/**
|
||||
* 错误消息(Status为0时屏幕显示此内容,最多不超过8个汉字)
|
||||
*/
|
||||
private String Msg;
|
||||
private String Msg = DEFAULT_SUCCESS_MSG;
|
||||
|
||||
}
|
||||
+2
-1
@@ -1,6 +1,7 @@
|
||||
package com.bsd.pjcloud.hard.controller.xfj;
|
||||
|
||||
import com.bsd.pjcloud.common.security.annotation.Inner;
|
||||
import com.bsd.pjcloud.hard.api.vo.xfj.XfjServerTimeVo;
|
||||
import com.bsd.pjcloud.hard.service.HardXfjService;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
|
||||
@@ -28,7 +29,7 @@ public class HardXfjController {
|
||||
@Operation(summary = "获取服务器时间接口")
|
||||
@PostMapping("/v1/ServerTime")
|
||||
@Inner(value = false)
|
||||
public Object serverTime(HttpEntity<String> httpEntity, @RequestHeader Map<String, String> headers) {
|
||||
public XfjServerTimeVo serverTime(HttpEntity<String> httpEntity, @RequestHeader Map<String, String> headers) {
|
||||
return hardXfjService.serverTime(httpEntity.getBody(), headers);
|
||||
}
|
||||
|
||||
|
||||
+14
@@ -211,6 +211,20 @@ public class HardManagerServiceImpl extends ServiceImpl<HardManagerMapper, HardM
|
||||
return vo;
|
||||
}
|
||||
|
||||
@Override
|
||||
public HardManagerVo getByUniqueCode(String uniqueCode) {
|
||||
HardManagerEntity hard = baseMapper.selectOne(new LambdaQueryWrapper<HardManagerEntity>().eq(HardManagerEntity::getUniqueCode, uniqueCode));
|
||||
if (ObjectUtil.isEmpty(hard)) {
|
||||
return null;
|
||||
}
|
||||
HardManagerVo vo = BeanUtils.toBean(hard, HardManagerVo.class);
|
||||
MchManageVo mch = mchService.getById(hard.getMerchantId()).getData();
|
||||
if (ObjectUtil.isNotEmpty(mch)) {
|
||||
vo.setMerchantDeptId(mch.getDeptId());
|
||||
}
|
||||
return vo;
|
||||
}
|
||||
|
||||
@Override
|
||||
public CurrentUserHardTypeInfoDto getCurrentUserHardTypeInfo(PjcloudUser user) {
|
||||
CurrentUserHardTypeInfoDto result = new CurrentUserHardTypeInfoDto();
|
||||
|
||||
+69
-4
@@ -1,15 +1,24 @@
|
||||
package com.bsd.pjcloud.hard.service.impl.xfj;
|
||||
|
||||
import cn.hutool.core.date.DatePattern;
|
||||
import cn.hutool.core.date.LocalDateTimeUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.bsd.pjcloud.hard.api.constant.HardTypeEnum;
|
||||
import com.bsd.pjcloud.hard.api.entity.manager.HardManagerEntity;
|
||||
import com.bsd.pjcloud.hard.api.entity.xfj.HardXfjLogEntity;
|
||||
import com.bsd.pjcloud.hard.api.vo.manager.HardManagerVo;
|
||||
import com.bsd.pjcloud.hard.api.vo.xfj.*;
|
||||
import com.bsd.pjcloud.hard.service.HardManagerService;
|
||||
import com.bsd.pjcloud.hard.service.HardXfjLogService;
|
||||
import com.bsd.pjcloud.hard.service.HardXfjService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
|
||||
import java.time.Duration;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
|
||||
@@ -20,6 +29,7 @@ import java.util.Map;
|
||||
public class HardXfjServiceImpl implements HardXfjService {
|
||||
|
||||
private final HardManagerService hardManagerService;
|
||||
private final HardXfjLogService hardXfjLogService;
|
||||
|
||||
/**
|
||||
* 检查设备并返回配置
|
||||
@@ -30,12 +40,46 @@ public class HardXfjServiceImpl implements HardXfjService {
|
||||
transitionHeader.put(entry.getKey().toUpperCase(), entry.getValue());
|
||||
}
|
||||
String deviceId = transitionHeader.get("DEVICE-ID");
|
||||
if(ObjectUtil.isEmpty(deviceId)){
|
||||
if (ObjectUtil.isEmpty(deviceId)) {
|
||||
throw new RuntimeException("|检查设备并返回配置|错误,deviceId不存在");
|
||||
}
|
||||
hardManagerService.getByHardId()
|
||||
HardManagerVo hardManager = hardManagerService.getByUniqueCode(deviceId);
|
||||
if (ObjectUtil.isEmpty(hardManager)) {
|
||||
throw new RuntimeException("|检查设备并返回配置|错误,deviceId对应的设备不存在");
|
||||
}
|
||||
if (ObjectUtil.notEqual(HardTypeEnum.YUN_XFJ.getType(), hardManager.getType())) {
|
||||
throw new RuntimeException("|检查设备并返回配置|错误,设备类型错误");
|
||||
}
|
||||
// 验签
|
||||
return null;
|
||||
return hardManager;
|
||||
}
|
||||
|
||||
/**
|
||||
* 初始化日志
|
||||
*/
|
||||
private HardXfjLogEntity initLogger(String body, Map<String, String> headers, String title) {
|
||||
Map<String, String> transitionHeader = new LinkedHashMap<>();
|
||||
for (Map.Entry<String, String> entry : headers.entrySet()) {
|
||||
transitionHeader.put(entry.getKey().toUpperCase(), entry.getValue());
|
||||
}
|
||||
|
||||
HardXfjLogEntity logger = new HardXfjLogEntity();
|
||||
logger.setTitle(title);
|
||||
logger.setHardType(HardTypeEnum.YUN_XFJ.getType());
|
||||
logger.setReq(body);
|
||||
logger.setHeaders(JSONUtil.toJsonStr(transitionHeader));
|
||||
logger.setStartTime(LocalDateTime.now());
|
||||
return logger;
|
||||
}
|
||||
|
||||
public void saveLogger(HardXfjLogEntity logger) {
|
||||
LocalDateTime now = LocalDateTime.now();
|
||||
logger.setEndTime(now);
|
||||
if (ObjectUtil.isNotEmpty(logger.getStartTime())) {
|
||||
long durationSeconds = Duration.between(logger.getStartTime(), now).toMillis();
|
||||
logger.setCost(durationSeconds);
|
||||
}
|
||||
hardXfjLogService.save(logger);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -43,12 +87,33 @@ public class HardXfjServiceImpl implements HardXfjService {
|
||||
*/
|
||||
@Override
|
||||
public XfjServerTimeVo serverTime(String body, Map<String, String> headers) {
|
||||
HardManagerEntity entity = checkSignAndReturnConfig(body, headers);
|
||||
HardXfjLogEntity logger = initLogger(body, headers, "获取服务器时间接口");
|
||||
try {
|
||||
HardManagerEntity entity = checkSignAndReturnConfig(body, headers);
|
||||
logger.setUniqueCode(entity.getUniqueCode());
|
||||
|
||||
LocalDateTime now = LocalDateTime.now().plusDays(1);
|
||||
String timeStr = LocalDateTimeUtil.format(now, DatePattern.PURE_DATETIME_PATTERN);
|
||||
int dayOfWeek = now.getDayOfWeek().getValue();
|
||||
// 将星期日从 7 改为 0
|
||||
if (dayOfWeek == 7) {
|
||||
dayOfWeek = 0;
|
||||
}
|
||||
timeStr += dayOfWeek;
|
||||
|
||||
XfjServerTimeVo result = new XfjServerTimeVo();
|
||||
|
||||
result.setTime(timeStr);
|
||||
result.setWLUptate(1);
|
||||
result.setWLPage(0);
|
||||
logger.setRes(JSONUtil.toJsonStr(result));
|
||||
return result;
|
||||
} catch (Exception e) {
|
||||
logger.setError(e.getMessage());
|
||||
e.printStackTrace();
|
||||
log.error("|获取服务器时间接口|意外的错误error:{}", e.getMessage());
|
||||
} finally {
|
||||
saveLogger(logger);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user