diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/xjs/business/warning/domain/ApiRecord.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/xjs/business/warning/domain/ApiRecord.java index cc55753b..ceb511d4 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/xjs/business/warning/domain/ApiRecord.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/xjs/business/warning/domain/ApiRecord.java @@ -4,24 +4,33 @@ import java.io.Serializable; import java.util.Date; /** + * api记录实体类 + * * @author xiejs - * @desc api记录实体类 - * @create 2021-12-31 + * @since 2021-12-31 */ public class ApiRecord implements Serializable { private static final long serialVersionUID = 1L; - /** 主键id */ + /** + * 主键id + */ private Long id; - /** api名称 */ + /** + * api名称 + */ private String apiName; - /** api地址 */ + /** + * api地址 + */ private String apiUrl; - /** api每天请求次数 */ + /** + * api每天请求次数 + */ private Long dayCount; /** @@ -29,16 +38,32 @@ public class ApiRecord implements Serializable { */ private Integer requestTime; - /** api总请求次数 */ + /** + * api总请求次数 + */ private Long totalCount; - /** api限制请求次数每天 */ + private Integer status; + + + + /** + * api限制请求次数每天 + */ private Long limitCount; private Date createTime; private Date updateTime; + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + public Long getId() { return id; } diff --git a/ruoyi-ui/src/views/business/warning/apiwarninginfo/index.vue b/ruoyi-ui/src/views/business/warning/apiwarninginfo/index.vue index 08ba1af8..257aeb8b 100644 --- a/ruoyi-ui/src/views/business/warning/apiwarninginfo/index.vue +++ b/ruoyi-ui/src/views/business/warning/apiwarninginfo/index.vue @@ -15,6 +15,23 @@ :value="index"/> + + + + + + + 搜索 重置 @@ -55,14 +72,24 @@ - + - + + + + + + + @@ -112,6 +139,9 @@ import { export default { name: "Apiwarning", + + dicts: ['request_status'], + data() { return { // 遮罩层 @@ -137,6 +167,7 @@ export default { pageNum: 1, pageSize: 10, apiName: null, + status: null }, // 表单参数 form: {}, @@ -144,7 +175,7 @@ export default { rules: { limitCount: [ {required: true, message: "请求次数", trigger: "blur"}, - {type: 'number',min: 0, max: 9999, message: '必须数字!且数字在 0 到 9999 之间!', trigger: 'blur'} + {type: 'number', min: 0, max: 9999, message: '必须数字!且数字在 0 到 9999 之间!', trigger: 'blur'} ], }, diff --git a/xjs-business/xjs-business-common/src/main/java/com/xjs/handler/MyMetaObjectHandler.java b/xjs-business/xjs-business-common/src/main/java/com/xjs/handler/MyMetaObjectHandler.java index b92c402c..42482ce0 100644 --- a/xjs-business/xjs-business-common/src/main/java/com/xjs/handler/MyMetaObjectHandler.java +++ b/xjs-business/xjs-business-common/src/main/java/com/xjs/handler/MyMetaObjectHandler.java @@ -18,7 +18,7 @@ public class MyMetaObjectHandler implements MetaObjectHandler { @Override public void insertFill(MetaObject metaObject) { - log.info("start insert fill ...."); + //log.info("start insert fill ...."); //this.setFieldValByName("createTime", new Date(), metaObject); this.strictInsertFill(metaObject, "createTime", Date.class,new Date()); // 起始版本 3.3.3(推荐) this.strictInsertFill(metaObject, "updateTime", Date.class,new Date()); diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/aop/ApiLogAspect.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/aop/ApiLogAspect.java index 6bf3cc20..effb237f 100644 --- a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/aop/ApiLogAspect.java +++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/aop/ApiLogAspect.java @@ -28,12 +28,12 @@ import java.lang.annotation.Annotation; import java.lang.reflect.Method; import java.time.LocalDateTime; import java.time.temporal.ChronoUnit; -import java.util.Date; -import java.util.List; -import java.util.Objects; +import java.util.*; import static com.xjs.consts.ApiConst.DEMOTE_ERROR; import static com.xjs.consts.ApiWarnHandleConst.NO; +import static com.xjs.consts.ReqConst.ERROR; +import static com.xjs.consts.ReqConst.SUCCESS; /** * api日志切面类 @@ -76,14 +76,19 @@ public class ApiLogAspect { //执行预警切入逻辑(降级不预警) if (obj instanceof JSONObject) { JSONObject jsonObject = (JSONObject) obj; + if (!jsonObject.containsKey(DEMOTE_ERROR)) { - warning(between, joinPoint); + this.warning(between, joinPoint); + } else { + //如果降级,接口状态修改为异常 + this.demoteHandle(joinPoint); } } + //返回值为String情况 if (obj instanceof String) { if (StringUtils.isNotEmpty(String.valueOf(obj))) { - warning(between, joinPoint); + this.warning(between, joinPoint); } } @@ -94,6 +99,7 @@ public class ApiLogAspect { } } + /** * 处理完请求后执行 * @@ -148,11 +154,12 @@ public class ApiLogAspect { if (e != null || StringUtils.isEmpty(response)) { entity.setIsSuccess(ReqConst.ERROR); } else { - entity.setIsSuccess(ReqConst.SUCCESS); + entity.setIsSuccess(SUCCESS); } remoteLogFeign.saveApiLog(entity); } + /** * 预警切入 * @@ -160,85 +167,145 @@ public class ApiLogAspect { * @param joinPoint aop连接对象 */ private void warning(long between, ProceedingJoinPoint joinPoint) { + + Map annotationInfo = this.getAnnotationInfo(joinPoint); + + if (CollUtil.isEmpty(annotationInfo)) { + return; + } + + String name = annotationInfo.get("name"); + String url = annotationInfo.get("url"); + + //根据拿到的url和name查询数据库是否存在,存在则count+1,不存在则add + ApiRecord apiRecord = new ApiRecord(); + apiRecord.setApiName(name); + apiRecord.setApiUrl(url); + apiRecord.setRequestTime((int) between); + R> listR = remoteWarningCRUDFeign.selectApiRecordListForRPC(apiRecord); + if (listR.getCode() == R.SUCCESS) { + List data = listR.getData(); + if (CollUtil.isEmpty(data)) { + //设置初始请求次数 + apiRecord.setTotalCount(1L); + apiRecord.setDayCount(1L); + apiRecord.setLimitCount(30L); + apiRecord.setStatus(SUCCESS); + remoteWarningCRUDFeign.saveApiRecordForRPC(apiRecord); + } else { + ApiRecord haveApiRecord = data.get(0); + + haveApiRecord.setStatus(SUCCESS); + haveApiRecord.setRequestTime((int) between); + haveApiRecord.setTotalCount(haveApiRecord.getTotalCount() + 1L); + //统计当前的请求次数,隔天清零 + haveApiRecord.setDayCount(haveApiRecord.getDayCount() + 1L); + Date updateTime = haveApiRecord.getUpdateTime(); + String dateTime = DateUtil.formatDateTime(updateTime); + Date date = DateUtil.parseDate(dateTime).toJdkDate(); + //当前时间和最后一次修改时间间隔天数(超过1 就清零) + long compareTime = DateUtil.between(date, new Date(), DateUnit.DAY); + if (compareTime > 0) { + haveApiRecord.setDayCount(1L); + } + //置为空让mp自动填充 + haveApiRecord.setUpdateTime(null); + remoteWarningCRUDFeign.updateApiRecordForRPC(haveApiRecord); + //判断接口请求是否超过阈值 + if (Objects.nonNull(haveApiRecord.getLimitCount())) { + if (haveApiRecord.getDayCount() > haveApiRecord.getLimitCount()) { + //把记录添加到预警表中 + ApiWarning apiWarning = new ApiWarning(); + apiWarning.setLimitValue(String.valueOf(haveApiRecord.getLimitCount())); + apiWarning.setRealValue(String.valueOf(haveApiRecord.getDayCount())); + apiWarning.setApiName(haveApiRecord.getApiName()); + apiWarning.setHandle(NO); + apiWarning.setWarningLevel(WarnLevelEnum.NOEMAL.getMessage()); + if (haveApiRecord.getDayCount() > haveApiRecord.getLimitCount() * 2 && + haveApiRecord.getDayCount() < haveApiRecord.getLimitCount() * 3) { + apiWarning.setWarningLevel(WarnLevelEnum.WARNING.getMessage()); + } else if (haveApiRecord.getDayCount() > haveApiRecord.getLimitCount() * 3) { + apiWarning.setWarningLevel(WarnLevelEnum.DANGER.getMessage()); + } + apiWarning.setWarningType(WarnTypeEnum.API.getType()); + String message = String.format(WarnTypeEnum.API.getMessage(), + haveApiRecord.getApiName(), + haveApiRecord.getLimitCount(), + haveApiRecord.getDayCount()); + apiWarning.setWarningMessage(message); + remoteWarningCRUDFeign.saveApiWarningForRPC(apiWarning); + } + } + } + } + } + + /** + * 接口降级修改状态异常 + * @param joinPoint 切入点 + */ + private void demoteHandle(ProceedingJoinPoint joinPoint) { + + Map map = this.getAnnotationInfo(joinPoint); + + if (CollUtil.isEmpty(map)) { + return; + } + + String name = map.get("name"); + String url = map.get("url"); + ApiRecord apiRecord = new ApiRecord(); + apiRecord.setApiName(name); + apiRecord.setApiUrl(url); + + R> listR = remoteWarningCRUDFeign.selectApiRecordListForRPC(apiRecord); + if (listR.getCode() == R.SUCCESS) { + List data = listR.getData(); + if (CollUtil.isNotEmpty(data)) { + ApiRecord haveApiRecord = data.get(0); + //置为空让mp自动填充 + haveApiRecord.setUpdateTime(null); + haveApiRecord.setStatus(ERROR); + remoteWarningCRUDFeign.updateApiRecordForRPC(haveApiRecord); + } + } + } + + /** + * 通过反射获取注解信息 + * + * @param joinPoint 切入点 + * @return 注解信息map + */ + private Map getAnnotationInfo(ProceedingJoinPoint joinPoint) { //获取目标类名及方法名 Signature signature = joinPoint.getSignature(); String method = signature.getName(); Class aclass = signature.getDeclaringType(); Method[] methods = aclass.getMethods(); + //根据目标的方法名判断当前方法 for (Method thisMethod : methods) { if (method.equals(thisMethod.getName())) { + //拿到当前方法的注解判断是否为apiLog注解 Annotation[] declaredAnnotations = thisMethod.getDeclaredAnnotations(); + for (Annotation annotation : declaredAnnotations) { if (annotation instanceof ApiLog) { String name = ((ApiLog) annotation).name(); String url = ((ApiLog) annotation).url(); - //根据拿到的url和name查询数据库是否存在,存在则count+1,不存在则add - ApiRecord apiRecord = new ApiRecord(); - apiRecord.setApiName(name); - apiRecord.setApiUrl(url); - apiRecord.setRequestTime((int) between); - R> listR = remoteWarningCRUDFeign.selectApiRecordListForRPC(apiRecord); - if (listR.getCode() == R.SUCCESS) { - List data = listR.getData(); - if (CollUtil.isEmpty(data)) { - //设置初始请求次数 - apiRecord.setTotalCount(1L); - apiRecord.setDayCount(1L); - apiRecord.setLimitCount(30L); - remoteWarningCRUDFeign.saveApiRecordForRPC(apiRecord); - } else { - ApiRecord haveApiRecord = data.get(0); - - haveApiRecord.setRequestTime((int) between); - haveApiRecord.setTotalCount(haveApiRecord.getTotalCount() + 1L); - //统计当前的请求次数,隔天清零 - haveApiRecord.setDayCount(haveApiRecord.getDayCount() + 1L); - Date updateTime = haveApiRecord.getUpdateTime(); - String dateTime = DateUtil.formatDateTime(updateTime); - Date date = DateUtil.parseDate(dateTime).toJdkDate(); - //当前时间和最后一次修改时间间隔天数(超过1 就清零) - long compareTime = DateUtil.between(date, new Date(), DateUnit.DAY); - if (compareTime > 0) { - haveApiRecord.setDayCount(1L); - } - //置为空让mp自动填充 - haveApiRecord.setUpdateTime(null); - remoteWarningCRUDFeign.updateApiRecordForRPC(haveApiRecord); - //判断接口请求是否超过阈值 - if (Objects.nonNull(haveApiRecord.getLimitCount())) { - if (haveApiRecord.getDayCount() > haveApiRecord.getLimitCount()) { - //把记录添加到预警表中 - ApiWarning apiWarning = new ApiWarning(); - apiWarning.setLimitValue(String.valueOf(haveApiRecord.getLimitCount())); - apiWarning.setRealValue(String.valueOf(haveApiRecord.getDayCount())); - apiWarning.setApiName(haveApiRecord.getApiName()); - apiWarning.setHandle(NO); - apiWarning.setWarningLevel(WarnLevelEnum.NOEMAL.getMessage()); - if (haveApiRecord.getDayCount() > haveApiRecord.getLimitCount() * 2 && - haveApiRecord.getDayCount() < haveApiRecord.getLimitCount() * 3) { - apiWarning.setWarningLevel(WarnLevelEnum.WARNING.getMessage()); - } else if (haveApiRecord.getDayCount() > haveApiRecord.getLimitCount() * 3) { - apiWarning.setWarningLevel(WarnLevelEnum.DANGER.getMessage()); - } - apiWarning.setWarningType(WarnTypeEnum.API.getType()); - String message = String.format(WarnTypeEnum.API.getMessage(), - haveApiRecord.getApiName(), - haveApiRecord.getLimitCount(), - haveApiRecord.getDayCount()); - apiWarning.setWarningMessage(message); - remoteWarningCRUDFeign.saveApiWarningForRPC(apiWarning); - } - } - } - } + + Map hashMap = new HashMap<>(); + hashMap.put("name", name); + hashMap.put("url", url); + return hashMap; } } + } } - - + return null; } } diff --git a/xjs-business/xjs-business-warning/src/main/java/com/xjs/controller/ApiWarningController.java b/xjs-business/xjs-business-warning/src/main/java/com/xjs/controller/ApiWarningController.java index a5c76fba..8c93bc6a 100644 --- a/xjs-business/xjs-business-warning/src/main/java/com/xjs/controller/ApiWarningController.java +++ b/xjs-business/xjs-business-warning/src/main/java/com/xjs/controller/ApiWarningController.java @@ -50,6 +50,7 @@ public class ApiWarningController extends BaseController { /** * 处理预警单个预警 + * * @param id 预警id * @return R */ @@ -61,7 +62,7 @@ public class ApiWarningController extends BaseController { ApiWarning apiWarning = new ApiWarning(); apiWarning.setId(id); apiWarning.setHandle(YES); - return apiWarningService.updateById(apiWarning)?R.ok():R.fail(); + return apiWarningService.updateById(apiWarning) ? R.ok() : R.fail(); } /** @@ -70,11 +71,11 @@ public class ApiWarningController extends BaseController { @RequiresPermissions("warning:warning:list") @GetMapping("/apiwarnlist") @ApiOperation("查询api预警列表") - public TableDataInfo list(ApiWarning apiWarning) { + public TableDataInfo list(@Validated({SelectGroup.class}) ApiWarning apiWarning) { startPage(); List list = apiWarningService.list(new QueryWrapper() .orderByDesc("create_time") - .like(Objects.nonNull(apiWarning.getApiName()),"api_name", apiWarning.getApiName())); + .like(Objects.nonNull(apiWarning.getApiName()), "api_name", apiWarning.getApiName())); return getDataTable(list); } @@ -87,7 +88,7 @@ public class ApiWarningController extends BaseController { @ApiOperation("导出api预警列表") public void export(HttpServletResponse response, ApiWarning apiWarning) { List list = apiWarningService.list(new QueryWrapper() - .like(Objects.nonNull(apiWarning.getApiName()),"api_name", apiWarning.getApiName())); + .like(Objects.nonNull(apiWarning.getApiName()), "api_name", apiWarning.getApiName())); ExcelUtil util = new ExcelUtil(ApiWarning.class); util.exportExcel(response, list, "api预警数据"); } @@ -113,6 +114,7 @@ public class ApiWarningController extends BaseController { /** * 获取所有Api名称 + * * @return api名称 */ @GetMapping("getApiName") @@ -167,12 +169,13 @@ public class ApiWarningController extends BaseController { @ApiOperation("远程查询预警信息") public R findRecordListForRPC() { List apiRecordList = apiWarningService.selectApiRecordList(new ApiRecord()); - JSONArray jo= (JSONArray) JSONArray.toJSON(apiRecordList); + JSONArray jo = (JSONArray) JSONArray.toJSON(apiRecordList); return R.ok(jo); } /** * 远程获取所有Api名称 + * * @return api名称 */ @GetMapping("getApiNameForRPC") @@ -183,7 +186,6 @@ public class ApiWarningController extends BaseController { } - /** * 远程保存api预警信息并websocket推送 * @@ -202,12 +204,12 @@ public class ApiWarningController extends BaseController { } /** - * websocket推送 + * websocket推送 */ private void websocketPush(ApiWarning apiWarning) { - long count = apiWarningService.count(new QueryWrapper().eq("handle",NO)); + long count = apiWarningService.count(new QueryWrapper().eq("handle", NO)); Set cacheSet = redisService.getCacheSet(WEBSOCKET); - JSONObject jsonData =new JSONObject(); + JSONObject jsonData = new JSONObject(); JSONObject jsonObject = (JSONObject) JSONObject.toJSON(apiWarning); //把id设置成字符串防止前端精度丢失 jsonObject.put("id", apiWarning.getId().toString()); @@ -216,7 +218,7 @@ public class ApiWarningController extends BaseController { jsonData.put("socketType", "apiWarning"); for (String userId : cacheSet) { try { - WebSocketServer.sendInfo(jsonData.toString(),userId); + WebSocketServer.sendInfo(jsonData.toString(), userId); } catch (IOException e) { logger.error(e.getMessage()); } @@ -224,8 +226,6 @@ public class ApiWarningController extends BaseController { } - - //-------------------------代码生成------------------------------------ @@ -271,7 +271,7 @@ public class ApiWarningController extends BaseController { @Log(title = "API预警", businessType = BusinessType.UPDATE) @PutMapping("edit") @ApiOperation("修改API预警信息") - public AjaxResult edit(@Validated({UpdateGroup.class}) @RequestBody ApiRecord apiRecord) { + public AjaxResult edit(@Validated({UpdateGroup.class}) @RequestBody ApiRecord apiRecord) { return toAjax(apiWarningService.updateApiRecord(apiRecord)); } diff --git a/xjs-business/xjs-business-warning/src/main/java/com/xjs/domain/ApiRecord.java b/xjs-business/xjs-business-warning/src/main/java/com/xjs/domain/ApiRecord.java index b8176879..44ab8b82 100644 --- a/xjs-business/xjs-business-warning/src/main/java/com/xjs/domain/ApiRecord.java +++ b/xjs-business/xjs-business-warning/src/main/java/com/xjs/domain/ApiRecord.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.ruoyi.common.core.annotation.Excel; +import com.xjs.validation.annotation.CheckNumber; import com.xjs.validation.group.SelectGroup; import com.xjs.validation.group.UpdateGroup; import lombok.Data; @@ -35,7 +36,7 @@ public class ApiRecord implements Serializable { * api名称 */ @Excel(name = "api名称") - @Size(max = 20, message = "请控制api名称长度在20字符", groups = { SelectGroup.class}) + @Size(max = 20, message = "请控制api名称长度在20字符", groups = {SelectGroup.class}) private String apiName; /** @@ -56,13 +57,20 @@ public class ApiRecord implements Serializable { @Excel(name = "api总请求次数") private Long totalCount; + /** + * 接口状态 + */ + @Excel(name = "接口状态", readConverterExp = "1=正常,2=异常") + @CheckNumber(num= {1, 2}, groups = { SelectGroup.class}) + private Integer status; + /** * api限制请求次数每天 */ @Excel(name = "api限制请求次数每天") - @NotNull(message = "api每天限制请求次数不能为空",groups = UpdateGroup.class) - @Max(value = 9999,message = "超过最大值!api每天限制请求次数最大为9999",groups = UpdateGroup.class) - @Min(value = 0,message = "低于最小值!api每天限制请求次数最小为0",groups = UpdateGroup.class) + @NotNull(message = "api每天限制请求次数不能为空", groups = UpdateGroup.class) + @Max(value = 9999, message = "超过最大值!api每天限制请求次数最大为9999", groups = UpdateGroup.class) + @Min(value = 0, message = "低于最小值!api每天限制请求次数最小为0", groups = UpdateGroup.class) private Long limitCount; @Excel(name = "api每天请求次数") diff --git a/xjs-business/xjs-business-warning/src/main/java/com/xjs/domain/ApiWarning.java b/xjs-business/xjs-business-warning/src/main/java/com/xjs/domain/ApiWarning.java index b68e17e3..18bf7bdc 100644 --- a/xjs-business/xjs-business-warning/src/main/java/com/xjs/domain/ApiWarning.java +++ b/xjs-business/xjs-business-warning/src/main/java/com/xjs/domain/ApiWarning.java @@ -4,8 +4,10 @@ import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.ruoyi.common.core.annotation.Excel; +import com.xjs.validation.group.SelectGroup; import lombok.Data; +import javax.validation.constraints.Size; import java.io.Serializable; import java.util.Date; @@ -22,6 +24,7 @@ public class ApiWarning implements Serializable { /** api名称 */ @Excel(name = "api名称") + @Size(max = 20, message = "请控制api名称长度在20字符", groups = {SelectGroup.class}) private String apiName; /** 预警类型 */ diff --git a/xjs-business/xjs-business-warning/src/main/resources/mapper/apiwarning/ApiRecordMapper.xml b/xjs-business/xjs-business-warning/src/main/resources/mapper/apiwarning/ApiRecordMapper.xml index 0fcc967f..5a4a0e80 100644 --- a/xjs-business/xjs-business-warning/src/main/resources/mapper/apiwarning/ApiRecordMapper.xml +++ b/xjs-business/xjs-business-warning/src/main/resources/mapper/apiwarning/ApiRecordMapper.xml @@ -14,10 +14,11 @@ + - select id, api_name, api_url, total_count, limit_count, create_time, update_time,day_count,request_time + select id, api_name, api_url, total_count, limit_count, create_time, update_time,day_count,request_time,status from api_record @@ -25,6 +26,7 @@ and api_name like concat('%', #{apiName}, '%') + status = #{status} order by create_time desc @@ -44,6 +46,7 @@ limit_count = #{limitCount}, create_time = #{createTime}, update_time = #{updateTime}, + status = #{status}, where id = #{id} diff --git a/xjs-business/xjs-business-webmagic/src/main/java/com/xjs/_36wallpaper/webmagic/_36wallpaperProcessor.java b/xjs-business/xjs-business-webmagic/src/main/java/com/xjs/_36wallpaper/webmagic/_36wallpaperProcessor.java index ae94bf0b..84cf15e7 100644 --- a/xjs-business/xjs-business-webmagic/src/main/java/com/xjs/_36wallpaper/webmagic/_36wallpaperProcessor.java +++ b/xjs-business/xjs-business-webmagic/src/main/java/com/xjs/_36wallpaper/webmagic/_36wallpaperProcessor.java @@ -106,18 +106,36 @@ public class _36wallpaperProcessor implements PageProcessor { private void initParameter() { //判断redis中是否存在 Boolean hasKey = redisService.hasKey(REDIS_KEY); + JSONObject json; + String downloadImg = "downloadImg"; + String path = "path"; + String init = "init"; if (hasKey) { String cacheObject = redisService.getCacheObject(REDIS_KEY); - JSONObject json = JSONObject.parseObject(cacheObject); - this.init = json.getBoolean("init"); - this.downloadImg = json.getBoolean("downloadImg"); - this.path = json.getString("path"); + try { + json = JSONObject.parseObject(cacheObject); + if(json.containsKey(init) && json.containsKey(downloadImg) && json.containsKey(path)){ + this.init = json.getBoolean(init); + this.downloadImg = json.getBoolean(downloadImg); + this.path = json.getString(path); + } + } catch (Exception e) { + log.error("JSON转换异常:"+e.getMessage()); + } + } else if (StringUtils.isNotEmpty(remoteConfigService.getConfigKeyForRPC(CONFIG_KEY).getData())) { String data = remoteConfigService.getConfigKeyForRPC(CONFIG_KEY).getData(); - JSONObject json = JSONObject.parseObject(data); - this.init = json.getBoolean("init"); - this.downloadImg = json.getBoolean("downloadImg"); - this.path = json.getString("path"); + try { + json = JSONObject.parseObject(data); + if(json.containsKey(init) && json.containsKey(downloadImg) && json.containsKey(path)){ + this.init = json.getBoolean(init); + this.downloadImg = json.getBoolean(downloadImg); + this.path = json.getString(path); + } + } catch (Exception e) { + log.error("JSON转换异常:"+e.getMessage()); + } + } }