diff --git a/ruoyi-ui/src/api/english/log.js b/ruoyi-ui/src/api/english/log.js new file mode 100644 index 00000000..317e73db --- /dev/null +++ b/ruoyi-ui/src/api/english/log.js @@ -0,0 +1,44 @@ +import request from '@/utils/request' + +// 查询日志列表 +export function listLog(query) { + return request({ + url: '/english/log/list', + method: 'get', + params: query + }) +} + +// 查询日志详细 +export function getLog(id) { + return request({ + url: '/english/log/' + id, + method: 'get' + }) +} + +// 新增日志 +export function addLog(data) { + return request({ + url: '/english/log', + method: 'post', + data: data + }) +} + +// 修改日志 +export function updateLog(data) { + return request({ + url: '/english/log', + method: 'put', + data: data + }) +} + +// 删除日志 +export function delLog(id) { + return request({ + url: '/english/log/' + id, + method: 'delete' + }) +} diff --git a/ruoyi-ui/src/views/business/english/log/index.vue b/ruoyi-ui/src/views/business/english/log/index.vue new file mode 100644 index 00000000..645c2d45 --- /dev/null +++ b/ruoyi-ui/src/views/business/english/log/index.vue @@ -0,0 +1,263 @@ + + + \ No newline at end of file diff --git a/xjs-business/xjs-business-english/src/main/java/com/xjs/log/controller/ApiLogController.java b/xjs-business/xjs-business-english/src/main/java/com/xjs/log/controller/ApiLogController.java new file mode 100644 index 00000000..1967afc7 --- /dev/null +++ b/xjs-business/xjs-business-english/src/main/java/com/xjs/log/controller/ApiLogController.java @@ -0,0 +1,80 @@ +package com.xjs.log.controller; + +import java.util.List; +import java.io.IOException; +import javax.servlet.http.HttpServletResponse; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +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.log.annotation.Log; +import com.ruoyi.common.log.enums.BusinessType; +import com.ruoyi.common.security.annotation.RequiresPermissions; +import com.xjs.log.domain.ApiLog; +import com.xjs.log.service.IApiLogService; +import com.ruoyi.common.core.web.controller.BaseController; +import com.ruoyi.common.core.web.domain.AjaxResult; +import com.ruoyi.common.core.utils.poi.ExcelUtil; +import com.ruoyi.common.core.web.page.TableDataInfo; + +/** + * 日志Controller + * + * @author xjs + * @date 2021-12-26 + */ +@RestController +@RequestMapping("log") +public class ApiLogController extends BaseController { + @Autowired + private IApiLogService apiLogService; + + /** + * 查询日志列表 + */ + @RequiresPermissions("english:log:list") + @GetMapping("/list") + public TableDataInfo list(ApiLog apiLog) { + startPage(); + List list = apiLogService.selectApiLogList(apiLog); + return getDataTable(list); + } + + /** + * 导出日志列表 + */ + @RequiresPermissions("english:log:export") + @Log(title = "API日志", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, ApiLog apiLog) { + List list = apiLogService.selectApiLogList(apiLog); + ExcelUtil util = new ExcelUtil(ApiLog.class); + util.exportExcel(response, list, "日志数据"); + } + + /** + * 获取日志详细信息 + */ + @RequiresPermissions("english:log:query") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) { + return AjaxResult.success(apiLogService.selectApiLogById(id)); + } + + + /** + * 删除日志 + */ + @RequiresPermissions("english:log:remove") + @Log(title = "API日志", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) { + return toAjax(apiLogService.deleteApiLogByIds(ids)); + } +} diff --git a/xjs-business/xjs-business-english/src/main/java/com/xjs/log/domain/ApiLog.java b/xjs-business/xjs-business-english/src/main/java/com/xjs/log/domain/ApiLog.java new file mode 100644 index 00000000..b7d5e020 --- /dev/null +++ b/xjs-business/xjs-business-english/src/main/java/com/xjs/log/domain/ApiLog.java @@ -0,0 +1,123 @@ +package com.xjs.log.domain; + +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.ruoyi.common.core.annotation.Excel; +import com.ruoyi.common.core.web.domain.BaseEntity; + +import java.io.Serializable; + +/** + * 日志对象 api_log + * + * @author xjs + * @date 2021-12-26 + */ +public class ApiLog implements Serializable +{ + private static final long serialVersionUID = 1L; + + /** $column.columnComment */ + private Long id; + + /** 接口名称 */ + @Excel(name = "接口名称") + private String apiName; + + /** 请求API的url */ + @Excel(name = "请求API的url") + private String url; + + /** 请求API的方法 */ + @Excel(name = "请求API的方法") + private String method; + + /** 请求request */ + @Excel(name = "请求request") + private String request; + + /** 响应体 */ + @Excel(name = "响应体") + private String response; + + /** 是否请求成功 */ + @Excel(name = "是否请求成功") + private Integer isSuccess; + + public void setId(Long id) + { + this.id = id; + } + + public Long getId() + { + return id; + } + public void setApiName(String apiName) + { + this.apiName = apiName; + } + + public String getApiName() + { + return apiName; + } + public void setUrl(String url) + { + this.url = url; + } + + public String getUrl() + { + return url; + } + public void setMethod(String method) + { + this.method = method; + } + + public String getMethod() + { + return method; + } + public void setRequest(String request) + { + this.request = request; + } + + public String getRequest() + { + return request; + } + public void setResponse(String response) + { + this.response = response; + } + + public String getResponse() + { + return response; + } + public void setIsSuccess(Integer isSuccess) + { + this.isSuccess = isSuccess; + } + + public Integer getIsSuccess() + { + return isSuccess; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("apiName", getApiName()) + .append("url", getUrl()) + .append("method", getMethod()) + .append("request", getRequest()) + .append("response", getResponse()) + .append("isSuccess", getIsSuccess()) + .toString(); + } +} diff --git a/xjs-business/xjs-business-english/src/main/java/com/xjs/log/mapper/ApiLogMapper.java b/xjs-business/xjs-business-english/src/main/java/com/xjs/log/mapper/ApiLogMapper.java new file mode 100644 index 00000000..611afe6c --- /dev/null +++ b/xjs-business/xjs-business-english/src/main/java/com/xjs/log/mapper/ApiLogMapper.java @@ -0,0 +1,45 @@ +package com.xjs.log.mapper; + +import java.util.List; +import com.xjs.log.domain.ApiLog; + +/** + * 日志Mapper接口 + * + * @author xjs + * @date 2021-12-26 + */ +public interface ApiLogMapper +{ + /** + * 查询日志 + * + * @param id 日志主键 + * @return 日志 + */ + public ApiLog selectApiLogById(Long id); + + /** + * 查询日志列表 + * + * @param apiLog 日志 + * @return 日志集合 + */ + public List selectApiLogList(ApiLog apiLog); + + /** + * 删除日志 + * + * @param id 日志主键 + * @return 结果 + */ + public int deleteApiLogById(Long id); + + /** + * 批量删除日志 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteApiLogByIds(Long[] ids); +} diff --git a/xjs-business/xjs-business-english/src/main/java/com/xjs/log/service/IApiLogService.java b/xjs-business/xjs-business-english/src/main/java/com/xjs/log/service/IApiLogService.java new file mode 100644 index 00000000..ca81a8f6 --- /dev/null +++ b/xjs-business/xjs-business-english/src/main/java/com/xjs/log/service/IApiLogService.java @@ -0,0 +1,45 @@ +package com.xjs.log.service; + +import java.util.List; +import com.xjs.log.domain.ApiLog; + +/** + * 日志Service接口 + * + * @author xjs + * @date 2021-12-26 + */ +public interface IApiLogService +{ + /** + * 查询日志 + * + * @param id 日志主键 + * @return 日志 + */ + public ApiLog selectApiLogById(Long id); + + /** + * 查询日志列表 + * + * @param apiLog 日志 + * @return 日志集合 + */ + public List selectApiLogList(ApiLog apiLog); + + /** + * 批量删除日志 + * + * @param ids 需要删除的日志主键集合 + * @return 结果 + */ + public int deleteApiLogByIds(Long[] ids); + + /** + * 删除日志信息 + * + * @param id 日志主键 + * @return 结果 + */ + public int deleteApiLogById(Long id); +} diff --git a/xjs-business/xjs-business-english/src/main/java/com/xjs/log/service/impl/ApiLogServiceImpl.java b/xjs-business/xjs-business-english/src/main/java/com/xjs/log/service/impl/ApiLogServiceImpl.java new file mode 100644 index 00000000..406ed6bf --- /dev/null +++ b/xjs-business/xjs-business-english/src/main/java/com/xjs/log/service/impl/ApiLogServiceImpl.java @@ -0,0 +1,65 @@ +package com.xjs.log.service.impl; + +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.xjs.log.mapper.ApiLogMapper; +import com.xjs.log.domain.ApiLog; +import com.xjs.log.service.IApiLogService; + +/** + * 日志Service业务层处理 + * + * @author xjs + * @date 2021-12-26 + */ +@Service +public class ApiLogServiceImpl implements IApiLogService { + @Autowired + private ApiLogMapper apiLogMapper; + + /** + * 查询日志 + * + * @param id 日志主键 + * @return 日志 + */ + @Override + public ApiLog selectApiLogById(Long id) { + return apiLogMapper.selectApiLogById(id); + } + + /** + * 查询日志列表 + * + * @param apiLog 日志 + * @return 日志 + */ + @Override + public List selectApiLogList(ApiLog apiLog) { + return apiLogMapper.selectApiLogList(apiLog); + } + + /** + * 批量删除日志 + * + * @param ids 需要删除的日志主键 + * @return 结果 + */ + @Override + public int deleteApiLogByIds(Long[] ids) { + return apiLogMapper.deleteApiLogByIds(ids); + } + + /** + * 删除日志信息 + * + * @param id 日志主键 + * @return 结果 + */ + @Override + public int deleteApiLogById(Long id) { + return apiLogMapper.deleteApiLogById(id); + } +} diff --git a/xjs-business/xjs-business-english/src/main/java/com/xjs/translation/controller/TranslationController.java b/xjs-business/xjs-business-english/src/main/java/com/xjs/translation/controller/TranslationController.java index b4b13fc3..35fd2d9e 100644 --- a/xjs-business/xjs-business-english/src/main/java/com/xjs/translation/controller/TranslationController.java +++ b/xjs-business/xjs-business-english/src/main/java/com/xjs/translation/controller/TranslationController.java @@ -3,6 +3,9 @@ package com.xjs.translation.controller; import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.common.log.annotation.Log; import com.ruoyi.common.log.enums.BusinessType; +import com.ruoyi.common.security.annotation.RequiresLogin; +import com.ruoyi.common.security.annotation.RequiresPermissions; +import com.ruoyi.common.security.annotation.RequiresRoles; import com.xjs.translation.domain.qo.translation.TranslationQo; import com.xjs.translation.domain.vo.translation.TranslationVo; import com.xjs.translation.service.TranslationService; @@ -33,6 +36,7 @@ public class TranslationController { @PostMapping @ApiOperation("翻译接口") @Log(title = "翻译管理") + @RequiresLogin public AjaxResult translation(@Validated @RequestBody TranslationQo translationQo) { TranslationVo translationVo=new TranslationVo(); if (BAIDU.equals(translationQo.getTranslationType())) { diff --git a/xjs-business/xjs-business-english/src/main/resources/mapper/english/ApiLogMapper.xml b/xjs-business/xjs-business-english/src/main/resources/mapper/english/ApiLogMapper.xml new file mode 100644 index 00000000..7b25a7a5 --- /dev/null +++ b/xjs-business/xjs-business-english/src/main/resources/mapper/english/ApiLogMapper.xml @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + select id, api_name, url, method, request, response, is_success from api_log + + + + + + + + delete from api_log where id = #{id} + + + + delete from api_log where id in + + #{id} + + + \ No newline at end of file diff --git a/xjs-business/xjs-business-english/src/test/java/com/xjs/translation/service/impl/BaiDuTranslationServiceImplTest.java b/xjs-business/xjs-business-english/src/test/java/com/xjs/translation/service/impl/BaiDuTranslationServiceImplTest.java index 9528c802..4c41106f 100644 --- a/xjs-business/xjs-business-english/src/test/java/com/xjs/translation/service/impl/BaiDuTranslationServiceImplTest.java +++ b/xjs-business/xjs-business-english/src/test/java/com/xjs/translation/service/impl/BaiDuTranslationServiceImplTest.java @@ -4,7 +4,10 @@ import com.xjs.XjsEnglishApp; import com.xjs.translation.domain.qo.translation.TranslationQo; import com.xjs.translation.domain.vo.translation.TranslationVo; import com.xjs.translation.service.TranslationService; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.data.redis.core.RedisTemplate; import javax.annotation.Resource; @@ -18,9 +21,17 @@ class BaiDuTranslationServiceImplTest { @Resource(name = "baiDuTranslationServiceImpl") TranslationService translationService; + @Autowired + RedisTemplate redisTemplate; @org.junit.jupiter.api.Test void handlerTranslationApi() { TranslationVo translationVo = translationService.translationApi(new TranslationQo()); System.out.println(translationVo); } + + @Test + public void redis() { + Object o = redisTemplate.opsForValue().get("login_tokens:043f6e6c-fc10-4f6e-8cd4-1243cdb2fa09"); + System.out.println(o); + } } \ No newline at end of file