diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/RemoteLogService.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/RemoteLogService.java index b8df7954..a42cf0fe 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/RemoteLogService.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/RemoteLogService.java @@ -1,6 +1,7 @@ package com.ruoyi.system.api; 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 org.springframework.web.bind.annotation.RequestHeader; @@ -11,9 +12,11 @@ import com.ruoyi.system.api.domain.SysLogininfor; import com.ruoyi.system.api.domain.SysOperLog; import com.ruoyi.system.api.factory.RemoteLogFallbackFactory; +import java.util.List; + /** * 日志服务 - * + * * @author ruoyi */ @FeignClient(contextId = "remoteLogService", value = ServiceNameConstants.SYSTEM_SERVICE, fallbackFactory = RemoteLogFallbackFactory.class) @@ -38,4 +41,7 @@ public interface RemoteLogService */ @PostMapping("/logininfor") public R saveLogininfor(@RequestBody SysLogininfor sysLogininfor, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); + + @GetMapping("/operlog/selectNewOperLog") + R> selectNewOperLog(@RequestHeader(SecurityConstants.FROM_SOURCE) String source); } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteLogFallbackFactory.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteLogFallbackFactory.java index a1b63151..68ec0234 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteLogFallbackFactory.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteLogFallbackFactory.java @@ -9,9 +9,11 @@ import com.ruoyi.system.api.RemoteLogService; import com.ruoyi.system.api.domain.SysLogininfor; import com.ruoyi.system.api.domain.SysOperLog; +import java.util.List; + /** * 日志服务降级处理 - * + * * @author ruoyi */ @Component @@ -36,6 +38,11 @@ public class RemoteLogFallbackFactory implements FallbackFactory> selectNewOperLog(String source) { + return null; + } }; } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/xjs/business/english/RemoteEnglishFeign.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/xjs/business/english/RemoteEnglishFeign.java new file mode 100644 index 00000000..c25fd0c1 --- /dev/null +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/xjs/business/english/RemoteEnglishFeign.java @@ -0,0 +1,26 @@ +package com.xjs.business.english; + +import com.ruoyi.common.core.constant.ServiceNameConstants; +import com.ruoyi.common.core.domain.R; +import com.xjs.business.english.domain.EnglishWordDTO; +import com.xjs.business.english.factory.RemoteEnglishFactory; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; + +import java.util.List; + +/** + * 调用openapi服务AreaController feign + * + * @author xiejs + * @since 2022-03-23 + */ +@FeignClient(contextId = "remoteEnglishFeign", + value = ServiceNameConstants.BUSINESS_ENGLISH_SERVICE, + fallbackFactory = RemoteEnglishFactory.class) +public interface RemoteEnglishFeign { + + @GetMapping("/word/getEnglishWordForRpc") + R> getEnglishWordByRandom(); + +} diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/xjs/business/english/domain/EnglishWordDTO.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/xjs/business/english/domain/EnglishWordDTO.java new file mode 100644 index 00000000..97a49e47 --- /dev/null +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/xjs/business/english/domain/EnglishWordDTO.java @@ -0,0 +1,44 @@ +package com.xjs.business.english.domain; + +import com.ruoyi.common.core.annotation.Excel; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Size; +import java.io.Serializable; +import java.util.Date; + +/** + * 英语单词对象 english_word + * + * @author xjs + * @since 2021-12-29 + */ +@Data +public class EnglishWordDTO implements Serializable { + + /** + * 英语单词 + */ + private String englishWord; + + /** + * 对应的中文 + */ + private String chineseWord; + + /** + * 查看次数 + */ + private Long lookCount; + + /** + * 创建时间 + */ + private Date createTime; + + +} diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/xjs/business/english/factory/RemoteEnglishFactory.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/xjs/business/english/factory/RemoteEnglishFactory.java new file mode 100644 index 00000000..33ae4204 --- /dev/null +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/xjs/business/english/factory/RemoteEnglishFactory.java @@ -0,0 +1,19 @@ +package com.xjs.business.english.factory; + +import com.xjs.business.english.RemoteEnglishFeign; +import org.springframework.cloud.openfeign.FallbackFactory; +import org.springframework.stereotype.Component; + +/** + *英语服务降级处理 + * @author xiejs + * @since 2022-06-15 + */ +@Component +public class RemoteEnglishFactory implements FallbackFactory { + + @Override + public RemoteEnglishFeign create(Throwable cause) { + return null; + } +} diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/xjs/business/log/RemoteLogFeign.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/xjs/business/log/RemoteLogFeign.java index 7273a3f1..7799fe2c 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/xjs/business/log/RemoteLogFeign.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/xjs/business/log/RemoteLogFeign.java @@ -41,4 +41,7 @@ public interface RemoteLogFeign { @PostMapping("maillog/saveForRPC") R saveMailLog(@RequestBody MailLog mailLog); + + @GetMapping("log/groupLogNumberForRPC") + R> groupLogNumber(); } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/xjs/business/log/factory/RemoteLogFactory.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/xjs/business/log/factory/RemoteLogFactory.java index 4fd453ca..237dca60 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/xjs/business/log/factory/RemoteLogFactory.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/xjs/business/log/factory/RemoteLogFactory.java @@ -55,6 +55,12 @@ public class RemoteLogFactory implements FallbackFactory { log.error("日志模块邮件日志服务添加调用失败"); return R.fail("日志模块邮件日志服务添加调用失败" + cause.getMessage()); } + + @Override + public R> groupLogNumber() { + log.error("日志模块获取日志次数调用失败"); + return R.fail("日志模块获取日志次数调用失败" + cause.getMessage()); + } }; } } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/xjs/business/webmagic/RemoteWebmagicSinaFeign.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/xjs/business/webmagic/RemoteWebmagicSinaFeign.java index 874dc6fb..34a32479 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/xjs/business/webmagic/RemoteWebmagicSinaFeign.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/xjs/business/webmagic/RemoteWebmagicSinaFeign.java @@ -6,6 +6,8 @@ import com.xjs.business.webmagic.factory.RemoteWebmagicSinaFactory; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; +import java.util.Map; + /** * 内部 调用 新浪 爬虫定时任务 * @author xiejs @@ -18,4 +20,7 @@ public interface RemoteWebmagicSinaFeign { @GetMapping("/sinaNews/taskForPRC") R sinaTaskForPRC(); + + @GetMapping("/sinaNews/getNewsForRpc") + R> getNews(); } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/xjs/business/webmagic/factory/RemoteWebmagicSinaFactory.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/xjs/business/webmagic/factory/RemoteWebmagicSinaFactory.java index f6758c79..9a048b2e 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/xjs/business/webmagic/factory/RemoteWebmagicSinaFactory.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/xjs/business/webmagic/factory/RemoteWebmagicSinaFactory.java @@ -6,6 +6,8 @@ import lombok.extern.log4j.Log4j2; import org.springframework.cloud.openfeign.FallbackFactory; import org.springframework.stereotype.Component; +import java.util.Map; + /** * 内部 调用 新浪 爬虫定时任务 降级 * @author xiejs @@ -23,6 +25,12 @@ public class RemoteWebmagicSinaFactory implements FallbackFactory> getNews() { + log.error("新浪 获取最新新闻 降级------服务可能正在运行"); + return R.fail("降级处理------服务可能正在运行"); + } }; } } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/ServiceNameConstants.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/ServiceNameConstants.java index 4e695fb1..05b97667 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/ServiceNameConstants.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/ServiceNameConstants.java @@ -42,6 +42,11 @@ public class ServiceNameConstants { */ public static final String BUSINESS_WEBMAGIC_SERVICE = "xjs-webmagic"; + /** + * 英语服务的serviceid + */ + public static final String BUSINESS_ENGLISH_SERVICE = "xjs-english"; + /** * 优惠服务的serviceid */ diff --git a/ruoyi-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/configure/RedisConfig.java b/ruoyi-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/configure/RedisConfig.java index da96f0fa..b513430f 100644 --- a/ruoyi-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/configure/RedisConfig.java +++ b/ruoyi-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/configure/RedisConfig.java @@ -23,6 +23,9 @@ import org.springframework.data.redis.serializer.RedisSerializer; import org.springframework.data.redis.serializer.StringRedisSerializer; import java.time.Duration; +import java.util.HashSet; +import java.util.Set; +import java.util.concurrent.ConcurrentHashMap; /** * redis配置 @@ -93,8 +96,21 @@ public class RedisConfig extends CachingConfigurerSupport { config = config.disableCachingNullValues(); } - RedisCacheManager cacheManager = RedisCacheManager.builder(redisConnectionFactory).cacheDefaults(config).build(); - return cacheManager; + //单独给某个定义过期时间 + Set cacheNames = new HashSet<>(); + cacheNames.add("bussiness:index:wb_search"); + cacheNames.add("bussiness:index:log_count"); + cacheNames.add("bussiness:index:oper_log"); + ConcurrentHashMap configMap = new ConcurrentHashMap<>(); + configMap.put("bussiness:index:wb_search", config.entryTtl(Duration.ofMinutes(10L))); + configMap.put("bussiness:index:log_count", config.entryTtl(Duration.ofMinutes(10L))); + configMap.put("bussiness:index:oper_log", config.entryTtl(Duration.ofSeconds(10L))); + + return RedisCacheManager.builder(redisConnectionFactory) + .cacheDefaults(config) + .initialCacheNames(cacheNames) + .withInitialCacheConfigurations(configMap) + .build(); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysOperlogController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysOperlogController.java index a6a7fbc9..3859897f 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysOperlogController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysOperlogController.java @@ -1,15 +1,6 @@ package com.ruoyi.system.controller; -import java.util.List; -import javax.servlet.http.HttpServletResponse; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.utils.poi.ExcelUtil; import com.ruoyi.common.core.web.controller.BaseController; import com.ruoyi.common.core.web.domain.AjaxResult; @@ -20,10 +11,15 @@ import com.ruoyi.common.security.annotation.InnerAuth; import com.ruoyi.common.security.annotation.RequiresPermissions; import com.ruoyi.system.api.domain.SysOperLog; import com.ruoyi.system.service.ISysOperLogService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; /** * 操作日志记录 - * + * * @author ruoyi */ @RestController @@ -75,4 +71,12 @@ public class SysOperlogController extends BaseController { return toAjax(operLogService.insertOperlog(operLog)); } + + //--------------------------------内部调用rpc---------------------------------------- + @GetMapping("selectNewOperLog") + @InnerAuth + public R> selectNewOperLog() { + List sysOperLogs = operLogService.selectNewOperLog(); + return R.ok(sysOperLogs); + } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysOperLogMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysOperLogMapper.java index 4e9b8cb6..489cb2f6 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysOperLogMapper.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysOperLogMapper.java @@ -1,25 +1,26 @@ package com.ruoyi.system.mapper; -import java.util.List; import com.ruoyi.system.api.domain.SysOperLog; +import java.util.List; + /** * 操作日志 数据层 - * + * * @author ruoyi */ public interface SysOperLogMapper { /** * 新增操作日志 - * + * * @param operLog 操作日志对象 */ public int insertOperlog(SysOperLog operLog); /** * 查询系统操作日志集合 - * + * * @param operLog 操作日志对象 * @return 操作日志集合 */ @@ -27,7 +28,7 @@ public interface SysOperLogMapper /** * 批量删除系统操作日志 - * + * * @param operIds 需要删除的操作日志ID * @return 结果 */ @@ -35,7 +36,7 @@ public interface SysOperLogMapper /** * 查询操作日志详细 - * + * * @param operId 操作ID * @return 操作日志对象 */ @@ -45,4 +46,10 @@ public interface SysOperLogMapper * 清空操作日志 */ public void cleanOperLog(); + + /** + * 查询最新的5条操作记录 + * @return list + */ + List selectNewOperLog(); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysOperLogService.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysOperLogService.java index 42c94f18..8ae0d492 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysOperLogService.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysOperLogService.java @@ -1,18 +1,19 @@ package com.ruoyi.system.service; -import java.util.List; import com.ruoyi.system.api.domain.SysOperLog; +import java.util.List; + /** * 操作日志 服务层 - * + * * @author ruoyi */ public interface ISysOperLogService { /** * 新增操作日志 - * + * * @param operLog 操作日志对象 * @return 结果 */ @@ -20,7 +21,7 @@ public interface ISysOperLogService /** * 查询系统操作日志集合 - * + * * @param operLog 操作日志对象 * @return 操作日志集合 */ @@ -28,7 +29,7 @@ public interface ISysOperLogService /** * 批量删除系统操作日志 - * + * * @param operIds 需要删除的操作日志ID * @return 结果 */ @@ -36,7 +37,7 @@ public interface ISysOperLogService /** * 查询操作日志详细 - * + * * @param operId 操作ID * @return 操作日志对象 */ @@ -46,4 +47,10 @@ public interface ISysOperLogService * 清空操作日志 */ public void cleanOperLog(); + + /** + * 查询最新的5条操作记录 + * @return list + */ + List selectNewOperLog(); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOperLogServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOperLogServiceImpl.java index 57764cf8..b070c216 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOperLogServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOperLogServiceImpl.java @@ -1,68 +1,64 @@ package com.ruoyi.system.service.impl; -import java.util.List; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; import com.ruoyi.system.api.domain.SysOperLog; import com.ruoyi.system.mapper.SysOperLogMapper; import com.ruoyi.system.service.ISysOperLogService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; /** * 操作日志 服务层处理 - * + * * @author ruoyi */ @Service -public class SysOperLogServiceImpl implements ISysOperLogService -{ +public class SysOperLogServiceImpl implements ISysOperLogService { @Autowired private SysOperLogMapper operLogMapper; /** * 新增操作日志 - * + * * @param operLog 操作日志对象 * @return 结果 */ @Override - public int insertOperlog(SysOperLog operLog) - { + public int insertOperlog(SysOperLog operLog) { return operLogMapper.insertOperlog(operLog); } /** * 查询系统操作日志集合 - * + * * @param operLog 操作日志对象 * @return 操作日志集合 */ @Override - public List selectOperLogList(SysOperLog operLog) - { + public List selectOperLogList(SysOperLog operLog) { return operLogMapper.selectOperLogList(operLog); } /** * 批量删除系统操作日志 - * + * * @param operIds 需要删除的操作日志ID * @return 结果 */ @Override - public int deleteOperLogByIds(Long[] operIds) - { + public int deleteOperLogByIds(Long[] operIds) { return operLogMapper.deleteOperLogByIds(operIds); } /** * 查询操作日志详细 - * + * * @param operId 操作ID * @return 操作日志对象 */ @Override - public SysOperLog selectOperLogById(Long operId) - { + public SysOperLog selectOperLogById(Long operId) { return operLogMapper.selectOperLogById(operId); } @@ -70,8 +66,12 @@ public class SysOperLogServiceImpl implements ISysOperLogService * 清空操作日志 */ @Override - public void cleanOperLog() - { + public void cleanOperLog() { operLogMapper.cleanOperLog(); } + + @Override + public List selectNewOperLog() { + return operLogMapper.selectNewOperLog(); + } } diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysOperLogMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysOperLogMapper.xml index 5dd0a472..0456ee0d 100644 --- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysOperLogMapper.xml +++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysOperLogMapper.xml @@ -1,82 +1,105 @@ + PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - select oper_id, title, business_type, method, request_method, operator_type, oper_name, dept_name, oper_url, oper_ip, oper_param, json_result, status, error_msg, oper_time + + select oper_id, + title, + business_type, + method, + request_method, + operator_type, + oper_name, + dept_name, + oper_url, + oper_ip, + oper_param, + json_result, + status, + error_msg, + oper_time from sys_oper_log - - - insert into sys_oper_log(title, business_type, method, request_method, operator_type, oper_name, dept_name, oper_url, oper_ip, oper_param, json_result, status, error_msg, oper_time) - values (#{title}, #{businessType}, #{method}, #{requestMethod}, #{operatorType}, #{operName}, #{deptName}, #{operUrl}, #{operIp}, #{operParam}, #{jsonResult}, #{status}, #{errorMsg}, sysdate()) - - - - - - delete from sys_oper_log where oper_id in - - #{operId} - - - - - - + + + insert into sys_oper_log(title, business_type, method, request_method, operator_type, oper_name, dept_name, + oper_url, oper_ip, oper_param, json_result, status, error_msg, oper_time) + values (#{title}, #{businessType}, #{method}, #{requestMethod}, #{operatorType}, #{operName}, #{deptName}, + #{operUrl}, #{operIp}, #{operParam}, #{jsonResult}, #{status}, #{errorMsg}, sysdate()) + + + + + + delete from sys_oper_log where oper_id in + + #{operId} + + + + + + + + + truncate table sys_oper_log - \ No newline at end of file + diff --git a/ruoyi-ui/src/api/index.js b/ruoyi-ui/src/api/index.js index 4826f712..d2214bc5 100644 --- a/ruoyi-ui/src/api/index.js +++ b/ruoyi-ui/src/api/index.js @@ -2,18 +2,12 @@ import request from '@/utils/request' -export function showWbSearch() { +export function showData() { return request({ - url: '/openapi/index/showWbSearch', + url: '/openapi/index/showData', method: 'get' }) } -export function showCopyWriting() { - return request({ - url: '/openapi/index/showCopyWriting', - method: 'get' - }) -} diff --git a/ruoyi-ui/src/views/index.vue b/ruoyi-ui/src/views/index.vue index 91afb15c..881360c5 100644 --- a/ruoyi-ui/src/views/index.vue +++ b/ruoyi-ui/src/views/index.vue @@ -1,27 +1,111 @@