ansteel-api/pom.xml
@@ -42,6 +42,13 @@ <artifactId>spring-cloud-starter-openfeign</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>com.iailab</groupId> <artifactId>iailab-module-model-api</artifactId> <version>1.0.0</version> <scope>compile</scope> </dependency> </dependencies> ansteel-api/src/main/java/com/iailab/module/api/mcs/AnSteelApi.java
对比新文件 @@ -0,0 +1,36 @@ package com.iailab.module.api.mcs; import com.iailab.module.api.mcs.dto.PowerRunStateDTO; import com.iailab.module.api.mcs.dto.PreDataChartRespVO; import com.iailab.module.enums.ApiConstants; import com.iailab.module.model.api.mcs.dto.PreDataSingleChartReqVO; import com.iailab.module.model.api.mcs.dto.PreDataSingleChartRespVO; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import java.util.List; /** * @author lirm * @Description * @createTime 2025年03月17日 */ @FeignClient(name = ApiConstants.NAME) @Tag(name = "RPC 服务 - 信息接口") public interface AnSteelApi { String PREFIX = ApiConstants.PREFIX + "/api/mcs"; @GetMapping(PREFIX + "/power-run-state/list") @Operation(summary = "发电厂机组运行情况") List<PowerRunStateDTO> getPowerRunState(); @PostMapping(PREFIX + "/predict-data/charts") @Operation(summary = "预测数据图表T+30/60/120") PreDataChartRespVO getPreDataChart(@RequestBody PreDataSingleChartReqVO reqVO); } ansteel-api/src/main/java/com/iailab/module/api/mcs/dto/AlarmMessageRespDTO.java
对比新文件 @@ -0,0 +1,70 @@ package com.iailab.module.api.mcs.dto; /** * @author PanZhibao * @Description * @createTime 2024年08月29日 */ import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.io.Serializable; import java.math.BigDecimal; import java.util.Date; /** * @author PanZhibao * @Description * @createTime 2024年08月29日 */ @Schema(description = "RPC 模型 - 预警消息 DTO") @Data public class AlarmMessageRespDTO implements Serializable { private static final long serialVersionUID = 1L; @Schema(description = "ID") private String id; @Schema(description = "配置ID") private String configId; @Schema(description = "消息标题") private String title; @Schema(description = "消息内容") private String content; @Schema(description = "监控对象") private String alarmObj; @Schema(description = "监控点位ID") private String pointId; @Schema(description = "预测项ID") private String itemId; @Schema(description = "当前值") private BigDecimal currentValue; @Schema(description = "超出时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date outTime; @Schema(description = "超出值") private BigDecimal outValue; @Schema(description = "预警类型") private String alarmType; @Schema(description = "预警时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date alarmTime; @Schema(description = "创建时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date createTime; } ansteel-api/src/main/java/com/iailab/module/api/mcs/dto/ApiPointValueDTO.java
对比新文件 @@ -0,0 +1,22 @@ package com.iailab.module.api.mcs.dto; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import java.io.Serializable; import java.util.Date; /** * @author PanZhibao * @Description * @createTime 2024年08月19日 */ @Data public class ApiPointValueDTO implements Serializable { private static final long serialVersionUID = 1L; @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date t; private double v; } ansteel-api/src/main/java/com/iailab/module/api/mcs/dto/PowerRunStateDTO.java
文件名从 ansteel-api/src/main/java/com/iailab/module/sms/api/dto/PowerRunStateDTO.java 修改 @@ -1,4 +1,4 @@ package com.iailab.module.sms.api.dto; package com.iailab.module.api.mcs.dto; import lombok.Data; ansteel-api/src/main/java/com/iailab/module/api/mcs/dto/PreDataChartRespVO.java
对比新文件 @@ -0,0 +1,40 @@ package com.iailab.module.api.mcs.dto; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.io.Serializable; import java.util.Date; import java.util.List; /** * @author PanZhibao * @Description * @createTime 2024年11月18日 */ @Data public class PreDataChartRespVO implements Serializable { private static final long serialVersionUID = 1L; @Schema(description = "预测时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date predictTime; @Schema(description = "开始时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date startTime; @Schema(description = "结束时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date endTime; @Schema(description = "图例") private List<String> legend; @Schema(description = "X轴数据") private List<String> categories; private PreDataViewDTO dataView; } ansteel-api/src/main/java/com/iailab/module/api/mcs/dto/PreDataViewDTO.java
对比新文件 @@ -0,0 +1,116 @@ package com.iailab.module.api.mcs.dto; import com.fasterxml.jackson.annotation.JsonFormat; import com.iailab.module.model.api.mcs.dto.AlarmMessageRespDTO; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.io.Serializable; import java.math.BigDecimal; import java.util.Date; import java.util.List; /** * @author PanZhibao * @Description * @createTime 2024年08月26日 */ @Schema(description = "RPC 模型 - 预测数据 DTO") @Data public class PreDataViewDTO implements Serializable { private static final long serialVersionUID = 1L; @Schema(description = "预测项ID") private String itemId; @Schema(description = "预测项名称") private String itemName; @Schema(description = "输出ID") private String outId; @Schema(description = "输出结果") private String resultstr; @Schema(description = "输出结果") private String resultName; @Schema(description = "预测时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date predictTime; @Schema(description = "量程上限") private BigDecimal rangeH; @Schema(description = "量程下限") private BigDecimal rangeL; @Schema(description = "柜位上限") private BigDecimal deadLineH; @Schema(description = "柜位下限") private BigDecimal deadLineL; @Schema(description = "运行上限") private BigDecimal limitH; @Schema(description = "运行下限") private BigDecimal limitL; @Schema(description = "动态上限") private List<ApiPointValueDTO> trendsDataH; @Schema(description = "动态下限") private List<ApiPointValueDTO> trendsDataL; @Schema(description = "当前") private BigDecimal currValue; @Schema(description = "最大值") private BigDecimal maxValue; @Schema(description = "最小值") private BigDecimal minValue; @Schema(description = "历史最大值") private BigDecimal hisMax; @Schema(description = "历史最小值") private BigDecimal hisMin; @Schema(description = "历史最大值") private BigDecimal hisCumulant; @Schema(description = "预测最大值") private BigDecimal preMax; @Schema(description = "预测最小值") private BigDecimal preMin; @Schema(description = "预测最后一个值") private BigDecimal preLast; @Schema(description = "预测累计值") private BigDecimal preCumulant; @Schema(description = "真实值") private List<Object[]> realData; @Schema(description = "T+L/N预测值") private List<Object[]> preData; @Schema(description = "预警信息") private List<AlarmMessageRespDTO> alarmList; @Schema(description = "预警信息") private String alarmMessage; @Schema(description = "展示线类型") private String lineType; @Schema(description = "累计真实值") private List<Object[]> cumulantRealData; @Schema(description = "累计预测值") private List<Object[]> cumulantPreData; } ansteel-api/src/main/java/com/iailab/module/api/package-info.java
对比新文件 @@ -0,0 +1 @@ package com.iailab.module.api; ansteel-api/src/main/java/com/iailab/module/enums/ApiConstants.java
文件名从 ansteel-api/src/main/java/com/iailab/module/sms/enums/ApiConstants.java 修改 @@ -1,4 +1,4 @@ package com.iailab.module.sms.enums; package com.iailab.module.enums; import com.iailab.framework.common.enums.RpcConstants; @@ -13,9 +13,8 @@ * * 注意,需要保证和 spring.application.name 保持一致 */ public static final String NAME = "model-server"; public static final String NAME = "ansteel-server"; public static final String PREFIX = RpcConstants.RPC_API_PREFIX + "/model"; public static final String PREFIX = RpcConstants.RPC_API_PREFIX + "/ansteel"; public static final String VERSION = "1.0.0"; } ansteel-api/src/main/java/com/iailab/module/enums/package-info.java
对比新文件 @@ -0,0 +1 @@ package com.iailab.module.enums; ansteel-api/src/main/java/com/iailab/module/sms/api/AnSteelApi.java
文件已删除 ansteel-api/src/main/java/com/iailab/module/sms/api/package-info.java
文件已删除 ansteel-api/src/main/java/com/iailab/module/sms/enums/package-info.java
文件已删除 ansteel-biz/pom.xml
@@ -21,11 +21,6 @@ <!-- 依赖服务 --> <dependency> <groupId>com.iailab</groupId> <artifactId>ansteel-api</artifactId> <version>${revision}</version> </dependency> <dependency> <groupId>com.iailab</groupId> <artifactId>iailab-module-infra-api</artifactId> <version>${revision}</version> </dependency> @@ -129,7 +124,6 @@ <groupId>com.iailab</groupId> <artifactId>ansteel-api</artifactId> <version>1.0.0</version> <scope>compile</scope> </dependency> </dependencies> ansteel-biz/src/main/java/com/iailab/module/ansteel/api/McsServiceImpl.java
@@ -1,21 +1,32 @@ package com.iailab.module.ansteel.api; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.iailab.framework.common.util.date.DateUtils; import com.iailab.framework.common.util.object.ConvertUtils; import com.iailab.module.ansteel.api.dao.PowerRunStateDao; import com.iailab.module.ansteel.common.constant.CommonConstant; import com.iailab.module.ansteel.common.enums.PreLineTypeEnum; import com.iailab.module.api.mcs.AnSteelApi; import com.iailab.module.api.mcs.dto.ApiPointValueDTO; import com.iailab.module.api.mcs.dto.PowerRunStateDTO; import com.iailab.module.api.mcs.dto.PreDataChartRespVO; import com.iailab.module.api.mcs.dto.PreDataViewDTO; import com.iailab.module.data.api.point.DataPointApi; import com.iailab.module.model.api.mcs.AnSteelApi; import com.iailab.module.sms.api.dto.PowerRunStateDTO; import com.iailab.module.data.api.point.dto.ApiPointValueQueryDTO; import com.iailab.module.model.api.mcs.McsApi; import com.iailab.module.model.api.mcs.dto.ChartParamDTO; import com.iailab.module.model.api.mcs.dto.MmItemOutputDTO; import com.iailab.module.model.api.mcs.dto.PreDataSingleChartReqVO; import com.iailab.module.model.api.mcs.dto.PredictItemVO; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import org.springframework.util.ObjectUtils; import java.math.BigDecimal; import java.util.Arrays; import java.util.List; import java.util.Map; import java.util.*; import java.util.stream.Collectors; @Slf4j @@ -24,6 +35,9 @@ @Autowired private DataPointApi dataPointApi; @Autowired private McsApi mcsApi; @Autowired private PowerRunStateDao powerRunStateDao; @@ -65,4 +79,111 @@ } return list; } @Override public PreDataChartRespVO getPreDataChart(PreDataSingleChartReqVO reqVO) { Map<String, String> tMap = new HashMap<>(); List<ChartParamDTO> list = mcsApi.getChartParamList(reqVO.getChartCode()); if (CollectionUtils.isEmpty(list)) { return null; } list.forEach(item -> { tMap.put(item.getParamCode(), item.getParamValue()); }); String itemCode = tMap.get(CommonConstant.ITEM_CODE); if (itemCode == null) { return null; } String resultStr = tMap.get(CommonConstant.RESULT_STR); if (resultStr == null) { return null; } String resultIndex = tMap.get(CommonConstant.RESULT_INDEX); if (resultIndex == null) { return null; } PredictItemVO predictItem = mcsApi.getPredictItemByItemNo(itemCode); if (predictItem == null || predictItem.getLastTime() == null) { return null; } String timeFormat = StringUtils.isBlank(reqVO.getTimeFormat()) ? DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND : reqVO.getTimeFormat(); PreLineTypeEnum lineType = tMap.get(CommonConstant.LINE_TYPE) == null ? PreLineTypeEnum.TN : PreLineTypeEnum.getEumByCode(tMap.get(CommonConstant.LINE_TYPE)); int lengthLeft = tMap.get(CommonConstant.LENGTH_LEFT) == null ? predictItem.getPredictLength() : new BigDecimal(tMap.get(CommonConstant.LENGTH_LEFT)).intValue(); int lengthRight = tMap.get(CommonConstant.LENGTH_RIGHT) == null ? predictItem.getPredictLength() : new BigDecimal(tMap.get(CommonConstant.LENGTH_RIGHT)).intValue(); String trendsDataH = tMap.get(CommonConstant.TRENDSDATA_H) == null ? null : tMap.get(CommonConstant.TRENDSDATA_H); String trendsDataL = tMap.get(CommonConstant.TRENDSDATA_L) == null ? null : tMap.get(CommonConstant.TRENDSDATA_L); Date[] timeArray = calResultTime(predictItem, reqVO.getStartTime(), reqVO.getEndTime(), lengthLeft, lengthRight); Date predictTime = timeArray[0]; Date startTime = timeArray[1]; Date endTime = timeArray[2]; PreDataChartRespVO result = ConvertUtils.sourceToTarget(mcsApi.getPreDataSingleChart(reqVO), PreDataChartRespVO.class); PreDataViewDTO dataView = result.getDataView(); if(trendsDataH != null) { ApiPointValueQueryDTO pointValueQueryDTO = new ApiPointValueQueryDTO(); pointValueQueryDTO.setPointNo(trendsDataH); List<ApiPointValueDTO> trendsDataHList = ConvertUtils.sourceToTarget(dataPointApi.queryPointHistoryValue(pointValueQueryDTO), ApiPointValueDTO.class); dataView.setTrendsDataH(trendsDataHList); } if(trendsDataL != null) { ApiPointValueQueryDTO pointValueQueryDTO = new ApiPointValueQueryDTO(); pointValueQueryDTO.setPointNo(trendsDataL); List<ApiPointValueDTO> trendsDataLList = ConvertUtils.sourceToTarget(dataPointApi.queryPointHistoryValue(pointValueQueryDTO), ApiPointValueDTO.class); dataView.setTrendsDataL(trendsDataLList); } MmItemOutputDTO outputDTO = mcsApi.getItemOutputByItemid(predictItem.getId(), resultStr, resultIndex); switch (lineType) { case TN: if(reqVO.getChartCode().equals(CommonConstant.LDG_CHARRCODE)){ dataView.setPreData(mcsApi.getItemResult(outputDTO.getId(), predictTime, endTime, timeFormat)); }else{ dataView.setPreData(mcsApi.getItemResult(outputDTO.getId(), startTime, endTime, timeFormat)); } break; case TL: if(reqVO.getChartCode().equals(CommonConstant.LDG_CHARRCODE)){ dataView.setPreData(mcsApi.getItemResultLastPoint(outputDTO.getId(), predictTime, endTime, timeFormat)); }else{ dataView.setPreData(mcsApi.getItemResultLastPoint(outputDTO.getId(), startTime, endTime, timeFormat)); } break; default: break; } result.setDataView(dataView); return result; } private Date[] calResultTime(PredictItemVO predictItem, Date startTimeReq, Date endTimeReq, int lengthLeft, int lengthRight) { Date[] result = new Date[3]; Date predictTime = predictItem.getLastTime(); Integer granularity = predictItem.getGranularity(); Date startTime = startTimeReq; if (startTime == null) { Calendar calendar = Calendar.getInstance(); calendar.setTime(predictItem.getLastTime()); calendar.add(Calendar.SECOND, -1 * lengthLeft * granularity); startTime = calendar.getTime(); } Date endTime = endTimeReq; if (endTime == null) { Calendar calendar = Calendar.getInstance(); calendar.setTime(predictItem.getLastTime()); calendar.add(Calendar.SECOND, lengthRight * granularity); endTime = calendar.getTime(); } if (endTime.getTime() <= startTime.getTime()) { Calendar calendar = Calendar.getInstance(); calendar.setTime(startTime); calendar.add(Calendar.SECOND, lengthRight * granularity); endTime = calendar.getTime(); } result[0] = predictTime; result[1] = startTime; result[2] = endTime; return result; } } ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/McsController.java
@@ -1,15 +1,21 @@ package com.iailab.module.ansteel.api.controller; import com.iailab.framework.common.pojo.CommonResult; import com.iailab.module.model.api.mcs.AnSteelApi; import com.iailab.module.sms.api.dto.PowerRunStateDTO; import com.iailab.module.ansteel.util.ApiSecurityUtils; import com.iailab.module.api.mcs.AnSteelApi; import com.iailab.module.api.mcs.dto.PowerRunStateDTO; import com.iailab.module.api.mcs.dto.PreDataChartRespVO; import com.iailab.module.model.api.mcs.dto.PreDataItemChartReqVO; import com.iailab.module.model.api.mcs.dto.PreDataItemChartRespVO; import com.iailab.module.model.api.mcs.dto.PreDataSingleChartReqVO; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.List; import java.util.Map; @@ -21,16 +27,28 @@ **/ @Tag(name = "发电厂机组运行情况") @RestController @RequestMapping("/mcs/power-run-state") @RequestMapping("/ansteel/api/mcs") public class McsController { @Autowired private AnSteelApi anSteelApi; @GetMapping("list") @Resource private ApiSecurityUtils apiSecurityUtils; @GetMapping("/power-run-state/list") public CommonResult<List<PowerRunStateDTO>> list(@RequestParam Map<String, Object> params) { List<PowerRunStateDTO> list = anSteelApi.getPowerRunState(); return success(list); } @PostMapping("/predict-data/charts") @Operation(summary = "预测数据图表") public CommonResult<PreDataChartRespVO> getPreDataChart(HttpServletResponse response, HttpServletRequest request, @RequestBody PreDataSingleChartReqVO reqVO) throws Exception { apiSecurityUtils.validate(request); PreDataChartRespVO respVO = anSteelApi.getPreDataChart(reqVO); return CommonResult.success(respVO); } } ansteel-biz/src/main/java/com/iailab/module/ansteel/api/vo/ItemVO.java
对比新文件 @@ -0,0 +1,41 @@ package com.iailab.module.ansteel.api.vo; import lombok.Data; import java.util.Date; /** * @author PanZhibao * @Description * @createTime 2024年09月01日 */ @Data public class ItemVO { private String id; private String itemNo; private String itemName; private String itemType; private Integer predictLength; private Integer granularity; private Integer status; private Integer isFuse; private Integer predictPhase; private Integer workChecked; private Integer isDisplay; private Integer unitTransFactor; /** * 保留的预测点位 (T+2 则n=2, T+30则n=30, T+n则表示从最后点位开始,n=预测长度;n由系统配置得出) */ private String saveIndex; /** * 项目id */ private String mpkProjectId; /** * 最后运行时间 */ private Date lastTime; } ansteel-biz/src/main/java/com/iailab/module/ansteel/common/constant/CommonConstant.java
对比新文件 @@ -0,0 +1,72 @@ package com.iailab.module.ansteel.common.constant; import java.math.BigDecimal; /** * @Description: 通用常量 */ public interface CommonConstant { int IS_ENABLE = 1; BigDecimal BAD_VALUE = new BigDecimal("-2"); BigDecimal ZERO_VALUE = new BigDecimal("0"); String MDK_SUFFIX = ".miail"; String MDK_RESULT = "result"; String MDK_STATUS_CODE = "status_code"; String MDK_STATUS_100 = "100"; String MDK_STATUS_500 = "500 "; String RANGE_H = "RANGE_H"; String RANGE_L = "RANGE_L"; String LIMIT_H = "LIMIT_H"; String LIMIT_L = "LIMIT_L"; String TRENDSDATA_H = "TRENDSDATA_H"; String TRENDSDATA_L = "TRENDSDATA_L"; String ITEM_CODE = "ITEM_CODE"; String ALARM_OBJ = "ALARM_OBJ"; String PLAN_ITEM_LIST = "PLAN_ITEM_LIST"; String RESULT_STR = "RESULT_STR"; String RESULT_INDEX = "RESULT_INDEX"; String LENGTH_LEFT = "LENGTH_LEFT"; String LENGTH_RIGHT = "LENGTH_RIGHT"; String ADJ_VALUE_POINT = "ADJ_VALUE_POINT"; String ADJ_VALUE_ARR_POINT = "ADJ_VALUE_ARR_POINT"; // 趋势预测曲线类型,0:展示T+N,1:展示T+L, String LINE_TYPE = "LINE_TYPE"; // 模型输出预测值 String OUT_PREDICT_VALUES = "predictValues"; // 模型输出优化值 String OUT_OPT_VALUES = "optValues"; // 模型输出调整值 String OUT_ADJUST_VALUES = "adjustValues"; String BFG_CHARRCODE = "BFG_PRED01"; String COG_CHARRCODE = "COG_PRED01"; String LDG_CHARRCODE = "LDG_PRED01"; } ansteel-biz/src/main/java/com/iailab/module/ansteel/common/enums/PreLineTypeEnum.java
对比新文件 @@ -0,0 +1,33 @@ package com.iailab.module.ansteel.common.enums; import lombok.AllArgsConstructor; import lombok.Getter; /** * @author PanZhibao * @Description * @createTime 2024年11月18日 */ @Getter @AllArgsConstructor public enum PreLineTypeEnum { TN("0", "T+N"), TL("1", "T+L"), CD("2", "curData"); private String code; private String desc; public static PreLineTypeEnum getEumByCode(String code) { if (code == null) { return null; } for (PreLineTypeEnum statusEnum : PreLineTypeEnum.values()) { if (statusEnum.getCode().equals(code)) { return statusEnum; } } return null; } } ansteel-biz/src/main/java/com/iailab/module/ansteel/util/ApiSecurityUtils.java
对比新文件 @@ -0,0 +1,82 @@ package com.iailab.module.ansteel.util; import com.iailab.framework.common.constant.Constant; import com.iailab.framework.tenant.core.context.TenantContextHolder; import com.iailab.module.system.api.user.AdminUserApi; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Component; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.util.regex.Pattern; /** * @author PanZhibao * @Description * @createTime 2023年12月06日 15:55:00 */ @Component public class ApiSecurityUtils { /*@Resource private ApiAppService apiAppService;*/ @Resource private AdminUserApi adminUserApi; private Pattern pattern = Pattern.compile("^[-\\+]?[\\d]*$"); private String getRequestToken(HttpServletRequest httpRequest) { //从header中获取token String token = httpRequest.getHeader(Constant.TOKEN_HEADER); //如果header中不存在token,则从参数中获取token if (StringUtils.isBlank(token)) { token = httpRequest.getParameter(Constant.TOKEN_HEADER); } return token; } private void setTenantId(HttpServletRequest httpRequest) { String tenantId = httpRequest.getHeader(Constant.HEAD_TENANT_ID); if (StringUtils.isNotBlank(tenantId)) { TenantContextHolder.setTenantId(Long.parseLong(tenantId)); } } public void validate(HttpServletRequest httpRequest) throws Exception { setTenantId(httpRequest); /*String token = getRequestToken(httpRequest); if (StringUtils.isBlank(token)) { throw new Exception("token 不能为空!"); } LoginUser loginUser = SecurityFrameworkUtils.getLoginUser(); if (ObjectUtils.isEmpty(loginUser)) { throw new RuntimeException("用户不能为空"); } CommonResult<AdminUserRespDTO> user = adminUserApi.getUser(loginUser.getId()); if(ObjectUtils.isEmpty(user)) { throw new RuntimeException("用户不存在"); } AdminUserRespDTO userData = user.getData(); String username = userData.getUsername();*/ /*ApiAppEntity appInfo = apiAppService.getInfoByAppKey(username); if (appInfo == null) { throw new RuntimeException("应用未授权"); }*/ //TODO 验证签名 // if(!com.iailab.common.utils.JwtUtils.verify(token, appInfo.getAppSecret())){ // throw new RuntimeException("签名错误"); // } } private boolean isInteger(String str) { return pattern.matcher(str).matches(); } } pom.xml
@@ -11,7 +11,7 @@ 快速开发框架,默认基础system,data,model </description> <modules> <!-- <module>ansteel-api</module>--> <module>ansteel-api</module> <module>ansteel-biz</module> </modules>