src/main/java/com/zy/asrs/entity/ApiLog.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/mapper/ApiLogMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/ApiLogService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/impl/ApiLogServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/mapper/ApiLogMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/zy/asrs/entity/ApiLog.java
New file @@ -0,0 +1,193 @@ package com.zy.asrs.entity; import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.annotations.TableName; import com.baomidou.mybatisplus.enums.IdType; import com.core.common.Cools; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; import java.text.SimpleDateFormat; import java.util.Date; @Data @TableName("man_api_log") public class ApiLog implements Serializable { private static final long serialVersionUID = 1L; /** * ID */ @ApiModelProperty(value= "ID") @TableId(value = "id", type = IdType.AUTO) private Long id; /** * 日志编号 */ @ApiModelProperty(value= "日志编号") private String uuid; /** * 名称空间 */ @ApiModelProperty(value= "名称空间") private String namespace; /** * 接口地址 */ @ApiModelProperty(value= "接口地址") private String url; /** * 平台密钥 */ @ApiModelProperty(value= "平台密钥") private String appkey; /** * 时间戳 */ @ApiModelProperty(value= "时间戳") private String timestamp; /** * 客户端IP */ @ApiModelProperty(value= "客户端IP") @TableField("client_ip") private String clientIp; /** * 请求内容 */ @ApiModelProperty(value= "请求内容") private String request; /** * 响应内容 */ @ApiModelProperty(value= "响应内容") private String response; /** * 异常内容 */ @ApiModelProperty(value= "异常内容") private String err; /** * 结果 1: 成功 0: 失败 */ @ApiModelProperty(value= "结果 1: 成功 0: 失败 ") private Integer result; /** * 状态 1: 正常 0: 禁用 */ @ApiModelProperty(value= "状态 1: 正常 0: 禁用 ") private Integer status; /** * 添加时间 */ @ApiModelProperty(value= "添加时间") @TableField("create_time") @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") private Date createTime; /** * 修改时间 */ @ApiModelProperty(value= "修改时间") @TableField("update_time") @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") private Date updateTime; /** * 备注 */ @ApiModelProperty(value= "备注") private String memo; public ApiLog() {} public ApiLog(String uuid, String namespace, String url, String appkey, String timestamp, String clientIp, String request, String response, String err, Integer result, Integer status, Date createTime, Date updateTime, String memo) { this.uuid = uuid; this.namespace = namespace; this.url = url; this.appkey = appkey; this.timestamp = timestamp; this.clientIp = clientIp; this.request = request; this.response = response; this.err = err; this.result = result; this.status = status; this.createTime = createTime; this.updateTime = updateTime; this.memo = memo; } // ApiLog apiLog = new ApiLog( // null, // 日志编号 // null, // 名称空间 // null, // 接口地址 // null, // 平台密钥 // null, // 时间戳 // null, // 客户端IP // null, // 请求内容 // null, // 响应内容 // null, // 异常内容 // null, // 结果 // null, // 状态 // null, // 添加时间 // null, // 修改时间 // null // 备注 // ); public String getResult$(){ if (null == this.result){ return null; } switch (this.result){ case 1: return "成功"; case 0: return "失败"; default: return String.valueOf(this.result); } } public String getStatus$(){ if (null == this.status){ return null; } switch (this.status){ case 1: return "正常"; case 0: return "禁用"; default: return String.valueOf(this.status); } } public String getCreateTime$(){ if (Cools.isEmpty(this.createTime)){ return ""; } return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.createTime); } public String getUpdateTime$(){ if (Cools.isEmpty(this.updateTime)){ return ""; } return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.updateTime); } } src/main/java/com/zy/asrs/mapper/ApiLogMapper.java
New file @@ -0,0 +1,14 @@ package com.zy.asrs.mapper; import com.baomidou.mybatisplus.mapper.BaseMapper; import com.zy.asrs.entity.ApiLog; import org.apache.ibatis.annotations.Mapper; import org.springframework.stereotype.Repository; @Mapper @Repository public interface ApiLogMapper extends BaseMapper<ApiLog> { int clearWeekBefore(); } src/main/java/com/zy/asrs/service/ApiLogService.java
New file @@ -0,0 +1,12 @@ package com.zy.asrs.service; import com.baomidou.mybatisplus.service.IService; import com.zy.asrs.entity.ApiLog; public interface ApiLogService extends IService<ApiLog> { void save(String namespace, String url, String appkey, String ip, String request, String response, boolean success); boolean clearWeekBefore(); } src/main/java/com/zy/asrs/service/impl/ApiLogServiceImpl.java
New file @@ -0,0 +1,51 @@ package com.zy.asrs.service.impl; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.core.common.SnowflakeIdWorker; import com.zy.asrs.entity.ApiLog; import com.zy.asrs.mapper.ApiLogMapper; import com.zy.asrs.service.ApiLogService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import java.util.Date; @Slf4j @Service("apiLogService") public class ApiLogServiceImpl extends ServiceImpl<ApiLogMapper, ApiLog> implements ApiLogService { @Autowired private SnowflakeIdWorker snowflakeIdWorker; @Async @Override public void save(String namespace, String url, String appkey, String ip, String request, String response, boolean success) { Date now = new Date(); ApiLog apiLog = new ApiLog( String.valueOf(snowflakeIdWorker.nextId()), // 日志编号 namespace, // 名称空间 url, // 接口地址 appkey, // 平台密钥 String.valueOf(now.getTime()), // 时间戳 ip, // 客户端IP request, // 请求内容 response, null, // 异常内容 success?1:0 , // 结果 1, // 状态 now, // 添加时间 null, // 修改时间 null // 备注 ); if (!this.insert(apiLog)) { log.error("接口调用日志保存失败!"); } } @Override public boolean clearWeekBefore() { return this.baseMapper.clearWeekBefore() > 0; } } src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -50,6 +50,7 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.interceptor.TransactionAspectSupport; import javax.annotation.Resource; import java.text.DecimalFormat; import java.text.SimpleDateFormat; import java.util.*; @@ -100,6 +101,9 @@ private WrkMastService wrkMastService; @Autowired private BasRgvMapService basRgvMapService; @Resource private ApiLogService apiLogService; @Value("${wms.url}") private String wmsUrl; @@ -2153,6 +2157,21 @@ // log.info("转发agv任务:请求体:"+JSONObject.toJSONString(requestParam)+",返回值:"+jsonObject); }catch (Exception e){ } finally { try { // 保存接口日志 apiLogService.save( "出库呼叫agv", url + path, null, "127.0.0.1", JSONObject.toJSONString(requestParam), response, success.equals("SUCCESS") ); } catch (Exception e) { log.error("", e); } } return success; } src/main/resources/mapper/ApiLogMapper.xml
New file @@ -0,0 +1,32 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.zy.asrs.mapper.ApiLogMapper"> <!-- 通用查询映射结果 --> <resultMap id="BaseResultMap" type="com.zy.asrs.entity.ApiLog"> <id column="id" property="id" /> <result column="uuid" property="uuid" /> <result column="namespace" property="namespace" /> <result column="url" property="url" /> <result column="appkey" property="appkey" /> <result column="timestamp" property="timestamp" /> <result column="client_ip" property="clientIp" /> <result column="request" property="request" /> <result column="response" property="response" /> <result column="err" property="err" /> <result column="result" property="result" /> <result column="status" property="status" /> <result column="create_time" property="createTime" /> <result column="update_time" property="updateTime" /> <result column="memo" property="memo" /> </resultMap> <delete id="clearWeekBefore"> delete from man_api_log where 1=1 and datediff(week,create_time,getdate()) >= 1 and result != 1 </delete> </mapper>