Showing
7 changed files
with
500 additions
and
0 deletions
application/src/main/java/org/thingsboard/server/controller/yunteng/YtSyslogController.java
0 → 100644
1 | +package org.thingsboard.server.controller.yunteng; | |
2 | + | |
3 | +import com.baomidou.mybatisplus.core.metadata.IPage; | |
4 | +import io.swagger.annotations.Api; | |
5 | +import io.swagger.annotations.ApiOperation; | |
6 | +import lombok.RequiredArgsConstructor; | |
7 | +import org.apache.commons.lang3.StringUtils; | |
8 | +import org.springframework.security.access.prepost.PreAuthorize; | |
9 | +import org.springframework.web.bind.annotation.*; | |
10 | +import org.thingsboard.server.common.data.audit.ActionType; | |
11 | +import org.thingsboard.server.common.data.audit.AuditLog; | |
12 | +import org.thingsboard.server.common.data.exception.ThingsboardException; | |
13 | +import org.thingsboard.server.common.data.yunteng.dto.SysLogDTO; | |
14 | +import org.thingsboard.server.common.data.yunteng.enums.OrderTypeEnum; | |
15 | +import org.thingsboard.server.common.data.yunteng.utils.tools.YtPageData; | |
16 | +import org.thingsboard.server.controller.BaseController; | |
17 | +import org.thingsboard.server.dao.model.ModelConstants; | |
18 | +import org.thingsboard.server.dao.yunteng.entities.SysLogEntity; | |
19 | +import org.thingsboard.server.dao.yunteng.service.YtSysLogService; | |
20 | + | |
21 | +import static org.thingsboard.server.common.data.yunteng.constant.QueryConstant.*; | |
22 | + | |
23 | +@RestController | |
24 | +@RequestMapping("api/yt/log") | |
25 | +@Api(tags = {"日志管理"}) | |
26 | +@RequiredArgsConstructor | |
27 | +public class YtSyslogController extends BaseController { | |
28 | + | |
29 | + private final YtSysLogService logService; | |
30 | + | |
31 | + @GetMapping("{entityId}") | |
32 | + @PreAuthorize("@check.checkPermissions({},{})") | |
33 | + @ApiOperation("详情") | |
34 | + public SysLogDTO detail(@PathVariable("entityId") String entityId) | |
35 | + throws ThingsboardException { | |
36 | + return logService.detail(entityId); | |
37 | + } | |
38 | + | |
39 | + @GetMapping(value="exception",params = {PAGE_SIZE, PAGE}) | |
40 | + @ApiOperation("异常日志列表") | |
41 | + @PreAuthorize("@check.checkPermissions({},{})") | |
42 | + public YtPageData<SysLogDTO> pageExceptions( | |
43 | + @RequestParam(PAGE_SIZE) int pageSize, | |
44 | + @RequestParam(PAGE) int page, | |
45 | + @RequestParam(value = "actionType", required = false) ActionType actionType, | |
46 | + @RequestParam(value = ORDER_FILED, required = false) String orderBy, | |
47 | + @RequestParam(value = ORDER_TYPE, required = false) OrderTypeEnum orderType) | |
48 | + throws ThingsboardException { | |
49 | + | |
50 | + | |
51 | + if(StringUtils.isEmpty(orderBy)){ | |
52 | + orderBy = ModelConstants.CREATED_TIME_PROPERTY; | |
53 | + } | |
54 | + IPage<SysLogEntity> pageInfrom = logService.getPage(page, pageSize, orderBy, orderType); | |
55 | + return logService.exceptionPage(pageInfrom, null,null | |
56 | + ,getCurrentUser().isPtTenantAdmin()?getCurrentUser().getCurrentTenantId():null | |
57 | + ,getCurrentUser().isCustomerUser()?getCurrentUser().getCurrentUserId():null | |
58 | + ,actionType); | |
59 | + } | |
60 | + | |
61 | + @GetMapping(value="operate",params = {PAGE_SIZE, PAGE}) | |
62 | + @ApiOperation("操作日志列表") | |
63 | + @PreAuthorize("@check.checkPermissions({},{})") | |
64 | + public YtPageData<SysLogDTO> pageOperate( | |
65 | + @RequestParam(PAGE_SIZE) int pageSize, | |
66 | + @RequestParam(PAGE) int page, | |
67 | + @RequestParam(value = "actionType", required = false) ActionType actionType, | |
68 | + @RequestParam(value = ORDER_FILED, required = false) String orderBy, | |
69 | + @RequestParam(value = ORDER_TYPE, required = false) OrderTypeEnum orderType) | |
70 | + throws ThingsboardException { | |
71 | + if(StringUtils.isEmpty(orderBy)){ | |
72 | + orderBy = ModelConstants.CREATED_TIME_PROPERTY; | |
73 | + } | |
74 | + IPage<SysLogEntity> pageInfrom = logService.getPage(page, pageSize, orderBy, orderType); | |
75 | + return logService.operatePage(pageInfrom, null,null | |
76 | + ,getCurrentUser().isPtTenantAdmin()?getCurrentUser().getCurrentTenantId():null | |
77 | + ,getCurrentUser().isCustomerUser()?getCurrentUser().getCurrentUserId():null | |
78 | + ,actionType); | |
79 | + } | |
80 | + | |
81 | + @GetMapping(value="user",params = {PAGE_SIZE, PAGE}) | |
82 | + @ApiOperation("登录登出列表") | |
83 | + @PreAuthorize("@check.checkPermissions({},{})") | |
84 | + public YtPageData<SysLogDTO> pageLogin( | |
85 | + @RequestParam(PAGE_SIZE) int pageSize, | |
86 | + @RequestParam(PAGE) int page, | |
87 | + @RequestParam(value = "actionType", required = false) ActionType actionType, | |
88 | + @RequestParam(value = ORDER_FILED, required = false) String orderBy, | |
89 | + @RequestParam(value = ORDER_TYPE, required = false) OrderTypeEnum orderType) | |
90 | + throws ThingsboardException { | |
91 | + | |
92 | + | |
93 | + if(StringUtils.isEmpty(orderBy)){ | |
94 | + orderBy = ModelConstants.CREATED_TIME_PROPERTY; | |
95 | + } | |
96 | + IPage<SysLogEntity> pageInfrom = logService.getPage(page, pageSize, orderBy, orderType); | |
97 | + return logService.loginPage(pageInfrom, null,null | |
98 | + ,getCurrentUser().isPtTenantAdmin()?getCurrentUser().getCurrentTenantId():null | |
99 | + ,getCurrentUser().isCustomerUser()?getCurrentUser().getCurrentUserId():null | |
100 | + ,actionType); | |
101 | + } | |
102 | + | |
103 | + | |
104 | + | |
105 | + | |
106 | + | |
107 | +} | ... | ... |
1 | +/** | |
2 | + * Copyright © 2016-2021 The Thingsboard Authors | |
3 | + * | |
4 | + * Licensed under the Apache License, Version 2.0 (the "License"); | |
5 | + * you may not use this file except in compliance with the License. | |
6 | + * You may obtain a copy of the License at | |
7 | + * | |
8 | + * http://www.apache.org/licenses/LICENSE-2.0 | |
9 | + * | |
10 | + * Unless required by applicable law or agreed to in writing, software | |
11 | + * distributed under the License is distributed on an "AS IS" BASIS, | |
12 | + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
13 | + * See the License for the specific language governing permissions and | |
14 | + * limitations under the License. | |
15 | + */ | |
16 | +package org.thingsboard.server.common.data.yunteng.dto; | |
17 | + | |
18 | + | |
19 | +import com.fasterxml.jackson.databind.JsonNode; | |
20 | +import lombok.Data; | |
21 | +import lombok.EqualsAndHashCode; | |
22 | +import org.thingsboard.server.common.data.EntityType; | |
23 | +import org.thingsboard.server.common.data.audit.ActionStatus; | |
24 | +import org.thingsboard.server.common.data.audit.ActionType; | |
25 | + | |
26 | +import java.util.UUID; | |
27 | + | |
28 | + | |
29 | +@EqualsAndHashCode(callSuper = true) | |
30 | +@Data | |
31 | +public class SysLogDTO extends BaseDTO { | |
32 | + | |
33 | + | |
34 | + private long createdTime; | |
35 | + | |
36 | + private EntityType entityType; | |
37 | + | |
38 | + private UUID tenantId; | |
39 | + private String tenantName; | |
40 | + | |
41 | + private UUID customerId; | |
42 | + private String customerName; | |
43 | + | |
44 | + private UUID entityId; | |
45 | + private String entityName; | |
46 | + | |
47 | + private UUID userId; | |
48 | + private String userName; | |
49 | + | |
50 | + | |
51 | + private ActionType actionType; | |
52 | + | |
53 | + private JsonNode actionData; | |
54 | + | |
55 | + private ActionStatus actionStatus; | |
56 | + | |
57 | + | |
58 | + private String actionFailureDetails; | |
59 | + | |
60 | + | |
61 | +} | ... | ... |
1 | +/** | |
2 | + * Copyright © 2016-2021 The Thingsboard Authors | |
3 | + * | |
4 | + * Licensed under the Apache License, Version 2.0 (the "License"); | |
5 | + * you may not use this file except in compliance with the License. | |
6 | + * You may obtain a copy of the License at | |
7 | + * | |
8 | + * http://www.apache.org/licenses/LICENSE-2.0 | |
9 | + * | |
10 | + * Unless required by applicable law or agreed to in writing, software | |
11 | + * distributed under the License is distributed on an "AS IS" BASIS, | |
12 | + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
13 | + * See the License for the specific language governing permissions and | |
14 | + * limitations under the License. | |
15 | + */ | |
16 | +package org.thingsboard.server.dao.yunteng.entities; | |
17 | + | |
18 | +import com.baomidou.mybatisplus.annotation.TableField; | |
19 | +import com.baomidou.mybatisplus.annotation.TableName; | |
20 | +import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; | |
21 | +import com.fasterxml.jackson.databind.JsonNode; | |
22 | +import lombok.Data; | |
23 | +import lombok.EqualsAndHashCode; | |
24 | +import org.hibernate.annotations.Type; | |
25 | +import org.hibernate.annotations.TypeDef; | |
26 | +import org.thingsboard.server.common.data.EntityType; | |
27 | +import org.thingsboard.server.common.data.audit.ActionStatus; | |
28 | +import org.thingsboard.server.common.data.audit.ActionType; | |
29 | +import org.thingsboard.server.common.data.audit.AuditLog; | |
30 | +import org.thingsboard.server.common.data.id.*; | |
31 | +import org.thingsboard.server.common.data.yunteng.dto.TenantDTO; | |
32 | +import org.thingsboard.server.dao.model.BaseSqlEntity; | |
33 | +import org.thingsboard.server.dao.model.ModelConstants; | |
34 | +import org.thingsboard.server.dao.util.mapping.JsonStringType; | |
35 | + | |
36 | +import javax.persistence.*; | |
37 | +import java.util.UUID; | |
38 | + | |
39 | +import static org.thingsboard.server.dao.model.ModelConstants.*; | |
40 | + | |
41 | +@Data | |
42 | +@EqualsAndHashCode(callSuper = true) | |
43 | +@TableName(ModelConstants.AUDIT_LOG_COLUMN_FAMILY_NAME) | |
44 | +public class SysLogEntity extends BaseEntity { | |
45 | + | |
46 | + | |
47 | + private UUID tenantId; | |
48 | + | |
49 | + private long createdTime; | |
50 | + private UUID customerId; | |
51 | + | |
52 | + private EntityType entityType; | |
53 | + | |
54 | + | |
55 | + private UUID entityId; | |
56 | + | |
57 | + | |
58 | + private String entityName; | |
59 | + | |
60 | + | |
61 | + private UUID userId; | |
62 | + | |
63 | + private String userName; | |
64 | + | |
65 | + | |
66 | + private ActionType actionType; | |
67 | + | |
68 | + @TableField(typeHandler = JacksonTypeHandler.class) | |
69 | + private JsonNode actionData; | |
70 | + | |
71 | + private ActionStatus actionStatus; | |
72 | + | |
73 | + | |
74 | + private String actionFailureDetails; | |
75 | + | |
76 | + | |
77 | +} | ... | ... |
1 | +package org.thingsboard.server.dao.yunteng.impl; | |
2 | + | |
3 | +import com.baomidou.mybatisplus.core.conditions.Wrapper; | |
4 | +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | |
5 | +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | |
6 | +import com.baomidou.mybatisplus.core.metadata.IPage; | |
7 | +import lombok.RequiredArgsConstructor; | |
8 | +import lombok.extern.slf4j.Slf4j; | |
9 | +import org.springframework.stereotype.Service; | |
10 | +import org.thingsboard.server.common.data.EntityType; | |
11 | +import org.thingsboard.server.common.data.StringUtils; | |
12 | +import org.thingsboard.server.common.data.audit.ActionType; | |
13 | +import org.thingsboard.server.common.data.audit.AuditLog; | |
14 | +import org.thingsboard.server.common.data.yunteng.dto.SysLogDTO; | |
15 | +import org.thingsboard.server.common.data.yunteng.dto.YtOpinionDTO; | |
16 | +import org.thingsboard.server.common.data.yunteng.utils.tools.YtPageData; | |
17 | +import org.thingsboard.server.dao.yunteng.entities.SysLogEntity; | |
18 | +import org.thingsboard.server.dao.yunteng.entities.YtOpinionEntity; | |
19 | +import org.thingsboard.server.dao.yunteng.mapper.YtSysLogMapper; | |
20 | +import org.thingsboard.server.dao.yunteng.service.AbstractBaseService; | |
21 | +import org.thingsboard.server.dao.yunteng.service.YtSysLogService; | |
22 | + | |
23 | +import java.util.ArrayList; | |
24 | +import java.util.List; | |
25 | +import java.util.UUID; | |
26 | + | |
27 | +@Slf4j | |
28 | +@Service | |
29 | +@RequiredArgsConstructor | |
30 | +public class YtSysLogServiceImpl extends AbstractBaseService<YtSysLogMapper, SysLogEntity> | |
31 | + implements YtSysLogService { | |
32 | + | |
33 | + | |
34 | + @Override | |
35 | + public SysLogDTO detail(String entityId) { | |
36 | + return baseMapper.detailById(entityId); | |
37 | + } | |
38 | + | |
39 | + @Override | |
40 | + public YtPageData<SysLogDTO> exceptionPage(IPage<SysLogEntity> pageInfrom, Long startTime, Long endTime, String tenantId, String customerId, ActionType actionType) { | |
41 | + IPage<SysLogDTO> page = | |
42 | + baseMapper.getPageDatasMatched(pageInfrom, tenantId,customerId,startTime,endTime,EntityType.RUNNING_EXCEPTION,actionType); | |
43 | + return getPageData(page, SysLogDTO.class); | |
44 | + } | |
45 | + | |
46 | + | |
47 | + @Override | |
48 | + public YtPageData<SysLogDTO> operatePage(IPage<SysLogEntity> pageInfrom, Long startTime, Long endTime, String tenantId, String customerId, ActionType actionType) { | |
49 | + List<EntityType> entityTypes = new ArrayList<>(); | |
50 | + entityTypes.add(EntityType.RUNNING_EXCEPTION); | |
51 | + entityTypes.add(EntityType.USER); | |
52 | + | |
53 | + IPage<SysLogDTO> page = | |
54 | + baseMapper.getPageDatasNot(pageInfrom, tenantId,customerId,startTime,endTime,actionType, entityTypes); | |
55 | + return getPageData(page, SysLogDTO.class); | |
56 | + } | |
57 | + | |
58 | + @Override | |
59 | + public YtPageData<SysLogDTO> loginPage(IPage<SysLogEntity> pageInfrom, Long startTime, Long endTime, String tenantId, String customerId, ActionType actionType) { | |
60 | + IPage<SysLogDTO> page = | |
61 | + baseMapper.getPageDatasMatched(pageInfrom, tenantId,customerId,startTime,endTime,EntityType.USER,actionType); | |
62 | + return getPageData(page, SysLogDTO.class); | |
63 | + } | |
64 | +} | ... | ... |
1 | +package org.thingsboard.server.dao.yunteng.mapper; | |
2 | + | |
3 | +import com.baomidou.mybatisplus.core.mapper.BaseMapper; | |
4 | +import com.baomidou.mybatisplus.core.metadata.IPage; | |
5 | +import org.apache.ibatis.annotations.Mapper; | |
6 | +import org.apache.ibatis.annotations.Param; | |
7 | +import org.thingsboard.server.common.data.EntityType; | |
8 | +import org.thingsboard.server.common.data.audit.ActionType; | |
9 | +import org.thingsboard.server.common.data.audit.AuditLog; | |
10 | +import org.thingsboard.server.common.data.rpc.RpcStatus; | |
11 | +import org.thingsboard.server.common.data.yunteng.dto.SysLogDTO; | |
12 | +import org.thingsboard.server.common.data.yunteng.dto.YtRpcRecordDTO; | |
13 | +import org.thingsboard.server.dao.yunteng.entities.SysLogEntity; | |
14 | +import org.thingsboard.server.dao.yunteng.entities.YtOpinionEntity; | |
15 | + | |
16 | +import java.util.List; | |
17 | + | |
18 | +/** | |
19 | + * @author Administrator | |
20 | + */ | |
21 | +@Mapper | |
22 | +public interface YtSysLogMapper extends BaseMapper<SysLogEntity> { | |
23 | + IPage<SysLogDTO> getPageDatasMatched(IPage<?> page, @Param("tenantId") String tenantId, @Param("customerId") String customerId | |
24 | + , @Param("startTime") Long startTime, @Param("endTime") Long endTime, @Param("entityType") EntityType entityType, @Param("actionType") ActionType actionType); | |
25 | + IPage<SysLogDTO> getPageDatasNot(IPage<?> page, @Param("tenantId") String tenantId, @Param("customerId") String customerId | |
26 | + , @Param("startTime") Long startTime, @Param("endTime") Long endTime, @Param("actionType") ActionType actionType, @Param("entityType") List<EntityType> entityType); | |
27 | + | |
28 | + | |
29 | + | |
30 | + | |
31 | + SysLogDTO detailById( @Param("entityId") String entityId); | |
32 | +} | ... | ... |
1 | +package org.thingsboard.server.dao.yunteng.service; | |
2 | + | |
3 | +import com.baomidou.mybatisplus.core.metadata.IPage; | |
4 | +import org.thingsboard.server.common.data.audit.ActionType; | |
5 | +import org.thingsboard.server.common.data.audit.AuditLog; | |
6 | +import org.thingsboard.server.common.data.yunteng.dto.SysLogDTO; | |
7 | +import org.thingsboard.server.common.data.yunteng.utils.tools.YtPageData; | |
8 | +import org.thingsboard.server.dao.yunteng.entities.SysLogEntity; | |
9 | +import org.thingsboard.server.dao.yunteng.entities.YtOpinionEntity; | |
10 | + | |
11 | +public interface YtSysLogService extends BaseService<SysLogEntity> { | |
12 | + | |
13 | + | |
14 | + /** | |
15 | + * 日志详细信息 | |
16 | + * | |
17 | + * @param entityId 日志ID | |
18 | + * @return | |
19 | + */ | |
20 | + SysLogDTO detail(String entityId); | |
21 | + | |
22 | + /** | |
23 | + * 异常日志列表 | |
24 | + * | |
25 | + * @param pageInfrom 分页配置信息 | |
26 | + * @param startTime 时间过滤窗口起点 | |
27 | + * @param endTime 时间过滤窗口终点 | |
28 | + * @param tenantId 租户ID,超级管理员该值为null | |
29 | + * @param customerId 客户ID,租户管理员该值为null | |
30 | + * @param actionType 日志类型 | |
31 | + * @return | |
32 | + */ | |
33 | + YtPageData<SysLogDTO> exceptionPage(IPage<SysLogEntity> pageInfrom, Long startTime, Long endTime, String tenantId, String customerId, ActionType actionType); | |
34 | + | |
35 | + /** | |
36 | + * 操作日志列表 | |
37 | + * | |
38 | + * @param pageInfrom 分页配置信息 | |
39 | + * @param startTime 时间过滤窗口起点 | |
40 | + * @param endTime 时间过滤窗口终点 | |
41 | + * @param tenantId 租户ID,超级管理员该值为null | |
42 | + * @param customerId 客户ID,租户管理员该值为null | |
43 | + * @param actionType 日志类型 | |
44 | + * @return | |
45 | + */ | |
46 | + YtPageData<SysLogDTO> operatePage(IPage<SysLogEntity> pageInfrom, Long startTime, Long endTime, String tenantId, String customerId, ActionType actionType); | |
47 | + | |
48 | + /** | |
49 | + * 登录日志列表 | |
50 | + * | |
51 | + * @param pageInfrom 分页配置信息 | |
52 | + * @param startTime 时间过滤窗口起点 | |
53 | + * @param endTime 时间过滤窗口终点 | |
54 | + * @param tenantId 租户ID,超级管理员该值为null | |
55 | + * @param customerId 客户ID,租户管理员该值为null | |
56 | + * @param actionType 日志类型 | |
57 | + * @return | |
58 | + */ | |
59 | + YtPageData<SysLogDTO> loginPage(IPage<SysLogEntity> pageInfrom, Long startTime, Long endTime, String tenantId, String customerId, ActionType actionType); | |
60 | + | |
61 | +} | ... | ... |
1 | +<?xml version="1.0" encoding="UTF-8"?> | |
2 | +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> | |
3 | + | |
4 | +<mapper namespace="org.thingsboard.server.dao.yunteng.mapper.YtSysLogMapper"> | |
5 | + <resultMap id="logDto" type="org.thingsboard.server.common.data.yunteng.dto.SysLogDTO"> | |
6 | + <result property="id" column="id"/> | |
7 | + <result property="entityType" column="entity_type" typeHandler="org.apache.ibatis.type.EnumTypeHandler"/> | |
8 | + | |
9 | + <result property="entityId" column="entity_id" typeHandler="org.thingsboard.server.dao.yunteng.mapper.UUIDTypeHandler"/> | |
10 | + <result property="entityName" column="entity_name" /> | |
11 | + <result property="tenantId" column="tenant_id" typeHandler="org.thingsboard.server.dao.yunteng.mapper.UUIDTypeHandler"/> | |
12 | + <result property="tenantName" column="tenant_name"/> | |
13 | + <result property="customerId" column="customer_id" typeHandler="org.thingsboard.server.dao.yunteng.mapper.UUIDTypeHandler"/> | |
14 | + <result property="customerName" column="customer_name"/> | |
15 | + <result property="userId" column="user_id" typeHandler="org.thingsboard.server.dao.yunteng.mapper.UUIDTypeHandler"/> | |
16 | + <result property="userName" column="user_name" /> | |
17 | + | |
18 | + <result property="actionData" column="action_data" typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler"/> | |
19 | + <result property="actionType" column="action_type" typeHandler="org.apache.ibatis.type.EnumTypeHandler"/> | |
20 | + <result property="actionStatus" column="action_status" typeHandler="org.apache.ibatis.type.EnumTypeHandler"/> | |
21 | + <result property="actionFailureDetails" column="action_failure_details"/> | |
22 | + <result property="createdTime" column="created_time"/> | |
23 | + | |
24 | + </resultMap> | |
25 | + | |
26 | + <sql id="baseColumn"> | |
27 | + base.id, base.tenant_id, base.created_time, base.customer_id, base.entity_type, base.entity_id, base.entity_name, base.user_id, base.user_name, base.action_type, base.action_status | |
28 | + ,ten.title tenant_name | |
29 | + </sql> | |
30 | + <sql id="detailColumn"> | |
31 | + <include refid="baseColumn"></include> | |
32 | + , base.action_data,base.action_failure_details | |
33 | + </sql> | |
34 | + | |
35 | + <select id="getPageDatasMatched" resultMap="logDto"> | |
36 | + SELECT <include refid="baseColumn"/> | |
37 | + FROM audit_log base | |
38 | + LEFT JOIN tenant ten ON base.tenant_id = ten.id | |
39 | + <where> | |
40 | + base.entity_type = #{entityType} | |
41 | + <if test="tenantId !=null and tenantId !=''"> | |
42 | + AND base.tenant_id = #{tenantId}::uuid | |
43 | + </if> | |
44 | + <if test="customerId !=null "> | |
45 | + AND base.customer_id = #{customerId}::uuid | |
46 | + </if> | |
47 | + <if test="startTime !=null"> | |
48 | + AND base.created_time >= #{startTime} | |
49 | + </if> | |
50 | + <if test="endTime !=null"> | |
51 | + AND base.created_time < #{endTime} | |
52 | + </if> | |
53 | + <if test="actionType !=null"> | |
54 | + AND base.action_type = #{actionType} | |
55 | + </if> | |
56 | + </where> | |
57 | + </select> | |
58 | + | |
59 | + | |
60 | + <select id="getPageDatasNot" resultMap="logDto"> | |
61 | + SELECT <include refid="baseColumn"/> | |
62 | + FROM audit_log base | |
63 | + LEFT JOIN tenant ten ON base.tenant_id = ten.id | |
64 | + <where> | |
65 | + base.entity_type | |
66 | + NOT IN | |
67 | + <foreach collection="entityType" item="item" open="(" separator="," close=")"> | |
68 | + #{item} | |
69 | + </foreach> | |
70 | + <if test="tenantId !=null and tenantId !=''"> | |
71 | + AND base.tenant_id = #{tenantId}::uuid | |
72 | + </if> | |
73 | + <if test="customerId !=null "> | |
74 | + AND base.customer_id = #{customerId}::uuid | |
75 | + </if> | |
76 | + <if test="startTime !=null"> | |
77 | + AND base.created_time >= #{startTime} | |
78 | + </if> | |
79 | + <if test="endTime !=null"> | |
80 | + AND base.created_time < #{endTime} | |
81 | + </if> | |
82 | + <if test="actionType !=null"> | |
83 | + AND base.action_type = #{actionType} | |
84 | + </if> | |
85 | + </where> | |
86 | + </select> | |
87 | + | |
88 | + <select id="detailById" resultMap="logDto"> | |
89 | + SELECT <include refid="detailColumn"/> | |
90 | + FROM audit_log base | |
91 | + LEFT JOIN tenant ten ON base.tenant_id = ten.id | |
92 | + <where> | |
93 | + base.id = #{entityId}::uuid | |
94 | + | |
95 | + </where> | |
96 | + </select> | |
97 | + | |
98 | +</mapper> | ... | ... |