Commit c197417d92d7ebe0038f08bd393b867ab40f3b66
1 parent
75d21928
修改 system logger junit review 后提出的问题
Showing
5 changed files
with
44 additions
and
65 deletions
src/main/java/cn/iocoder/dashboard/framework/logger/operatelog/core/service/OperateLogFrameworkService.java
| @@ -2,13 +2,16 @@ package cn.iocoder.dashboard.framework.logger.operatelog.core.service; | @@ -2,13 +2,16 @@ package cn.iocoder.dashboard.framework.logger.operatelog.core.service; | ||
| 2 | 2 | ||
| 3 | import cn.iocoder.dashboard.modules.system.controller.logger.vo.operatelog.SysOperateLogCreateReqVO; | 3 | import cn.iocoder.dashboard.modules.system.controller.logger.vo.operatelog.SysOperateLogCreateReqVO; |
| 4 | 4 | ||
| 5 | +import java.util.concurrent.Future; | ||
| 6 | + | ||
| 5 | public interface OperateLogFrameworkService { | 7 | public interface OperateLogFrameworkService { |
| 6 | 8 | ||
| 7 | /** | 9 | /** |
| 8 | - * 要不记录操作日志 | 10 | + * 异步记录操作日志 |
| 9 | * | 11 | * |
| 10 | * @param reqVO 操作日志请求 | 12 | * @param reqVO 操作日志请求 |
| 13 | + * @return true: 记录成功,false: 记录失败 | ||
| 11 | */ | 14 | */ |
| 12 | - void createOperateLogAsync(SysOperateLogCreateReqVO reqVO); | 15 | + Future<Boolean> createOperateLogAsync(SysOperateLogCreateReqVO reqVO); |
| 13 | 16 | ||
| 14 | } | 17 | } |
src/main/java/cn/iocoder/dashboard/modules/system/service/logger/impl/SysOperateLogServiceImpl.java
| @@ -7,20 +7,22 @@ import cn.iocoder.dashboard.modules.system.controller.logger.vo.operatelog.SysOp | @@ -7,20 +7,22 @@ import cn.iocoder.dashboard.modules.system.controller.logger.vo.operatelog.SysOp | ||
| 7 | import cn.iocoder.dashboard.modules.system.controller.logger.vo.operatelog.SysOperateLogExportReqVO; | 7 | import cn.iocoder.dashboard.modules.system.controller.logger.vo.operatelog.SysOperateLogExportReqVO; |
| 8 | import cn.iocoder.dashboard.modules.system.controller.logger.vo.operatelog.SysOperateLogPageReqVO; | 8 | import cn.iocoder.dashboard.modules.system.controller.logger.vo.operatelog.SysOperateLogPageReqVO; |
| 9 | import cn.iocoder.dashboard.modules.system.convert.logger.SysOperateLogConvert; | 9 | import cn.iocoder.dashboard.modules.system.convert.logger.SysOperateLogConvert; |
| 10 | -import cn.iocoder.dashboard.modules.system.dal.mysql.logger.SysOperateLogMapper; | ||
| 11 | import cn.iocoder.dashboard.modules.system.dal.dataobject.logger.SysOperateLogDO; | 10 | import cn.iocoder.dashboard.modules.system.dal.dataobject.logger.SysOperateLogDO; |
| 12 | import cn.iocoder.dashboard.modules.system.dal.dataobject.user.SysUserDO; | 11 | import cn.iocoder.dashboard.modules.system.dal.dataobject.user.SysUserDO; |
| 12 | +import cn.iocoder.dashboard.modules.system.dal.mysql.logger.SysOperateLogMapper; | ||
| 13 | import cn.iocoder.dashboard.modules.system.service.logger.SysOperateLogService; | 13 | import cn.iocoder.dashboard.modules.system.service.logger.SysOperateLogService; |
| 14 | import cn.iocoder.dashboard.modules.system.service.user.SysUserService; | 14 | import cn.iocoder.dashboard.modules.system.service.user.SysUserService; |
| 15 | import cn.iocoder.dashboard.util.string.StrUtils; | 15 | import cn.iocoder.dashboard.util.string.StrUtils; |
| 16 | import lombok.extern.slf4j.Slf4j; | 16 | import lombok.extern.slf4j.Slf4j; |
| 17 | import org.springframework.scheduling.annotation.Async; | 17 | import org.springframework.scheduling.annotation.Async; |
| 18 | +import org.springframework.scheduling.annotation.AsyncResult; | ||
| 18 | import org.springframework.stereotype.Service; | 19 | import org.springframework.stereotype.Service; |
| 19 | 20 | ||
| 20 | import javax.annotation.Resource; | 21 | import javax.annotation.Resource; |
| 21 | import java.util.Collection; | 22 | import java.util.Collection; |
| 22 | import java.util.Collections; | 23 | import java.util.Collections; |
| 23 | import java.util.List; | 24 | import java.util.List; |
| 25 | +import java.util.concurrent.Future; | ||
| 24 | 26 | ||
| 25 | import static cn.iocoder.dashboard.modules.system.dal.dataobject.logger.SysOperateLogDO.JAVA_METHOD_ARGS_MAX_LENGTH; | 27 | import static cn.iocoder.dashboard.modules.system.dal.dataobject.logger.SysOperateLogDO.JAVA_METHOD_ARGS_MAX_LENGTH; |
| 26 | import static cn.iocoder.dashboard.modules.system.dal.dataobject.logger.SysOperateLogDO.RESULT_MAX_LENGTH; | 28 | import static cn.iocoder.dashboard.modules.system.dal.dataobject.logger.SysOperateLogDO.RESULT_MAX_LENGTH; |
| @@ -38,16 +40,18 @@ public class SysOperateLogServiceImpl implements SysOperateLogService { | @@ -38,16 +40,18 @@ public class SysOperateLogServiceImpl implements SysOperateLogService { | ||
| 38 | 40 | ||
| 39 | @Override | 41 | @Override |
| 40 | @Async | 42 | @Async |
| 41 | - public void createOperateLogAsync(SysOperateLogCreateReqVO reqVO) { | 43 | + public Future<Boolean> createOperateLogAsync(SysOperateLogCreateReqVO reqVO) { |
| 44 | + boolean success = false; | ||
| 42 | try { | 45 | try { |
| 43 | SysOperateLogDO logDO = SysOperateLogConvert.INSTANCE.convert(reqVO); | 46 | SysOperateLogDO logDO = SysOperateLogConvert.INSTANCE.convert(reqVO); |
| 44 | logDO.setJavaMethodArgs(StrUtils.maxLength(logDO.getJavaMethodArgs(), JAVA_METHOD_ARGS_MAX_LENGTH)); | 47 | logDO.setJavaMethodArgs(StrUtils.maxLength(logDO.getJavaMethodArgs(), JAVA_METHOD_ARGS_MAX_LENGTH)); |
| 45 | logDO.setResultData(StrUtils.maxLength(logDO.getResultData(), RESULT_MAX_LENGTH)); | 48 | logDO.setResultData(StrUtils.maxLength(logDO.getResultData(), RESULT_MAX_LENGTH)); |
| 46 | - operateLogMapper.insert(logDO); | 49 | + success = operateLogMapper.insert(logDO) == 1; |
| 47 | } catch (Throwable throwable) { | 50 | } catch (Throwable throwable) { |
| 48 | // 仅仅打印日志,不对外抛出。原因是,还是要保留现场数据。 | 51 | // 仅仅打印日志,不对外抛出。原因是,还是要保留现场数据。 |
| 49 | log.error("[createOperateLogAsync][记录操作日志异常,日志为 ({})]", reqVO, throwable); | 52 | log.error("[createOperateLogAsync][记录操作日志异常,日志为 ({})]", reqVO, throwable); |
| 50 | } | 53 | } |
| 54 | + return new AsyncResult<>(success); | ||
| 51 | } | 55 | } |
| 52 | 56 | ||
| 53 | @Override | 57 | @Override |
src/test/java/cn/iocoder/dashboard/modules/system/service/logger/SysLoginLogServiceImplTest.java
| @@ -3,14 +3,13 @@ package cn.iocoder.dashboard.modules.system.service.logger; | @@ -3,14 +3,13 @@ package cn.iocoder.dashboard.modules.system.service.logger; | ||
| 3 | import cn.hutool.core.util.ArrayUtil; | 3 | import cn.hutool.core.util.ArrayUtil; |
| 4 | import cn.hutool.core.util.RandomUtil; | 4 | import cn.hutool.core.util.RandomUtil; |
| 5 | import cn.hutool.core.util.ReflectUtil; | 5 | import cn.hutool.core.util.ReflectUtil; |
| 6 | -import cn.iocoder.dashboard.BaseSpringBootUnitTest; | 6 | +import cn.iocoder.dashboard.BaseDbUnitTest; |
| 7 | import cn.iocoder.dashboard.common.pojo.PageResult; | 7 | import cn.iocoder.dashboard.common.pojo.PageResult; |
| 8 | import cn.iocoder.dashboard.framework.mybatis.core.dataobject.BaseDO; | 8 | import cn.iocoder.dashboard.framework.mybatis.core.dataobject.BaseDO; |
| 9 | import cn.iocoder.dashboard.framework.tracer.core.util.TracerUtils; | 9 | import cn.iocoder.dashboard.framework.tracer.core.util.TracerUtils; |
| 10 | import cn.iocoder.dashboard.modules.system.controller.logger.vo.loginlog.SysLoginLogCreateReqVO; | 10 | import cn.iocoder.dashboard.modules.system.controller.logger.vo.loginlog.SysLoginLogCreateReqVO; |
| 11 | import cn.iocoder.dashboard.modules.system.controller.logger.vo.loginlog.SysLoginLogExportReqVO; | 11 | import cn.iocoder.dashboard.modules.system.controller.logger.vo.loginlog.SysLoginLogExportReqVO; |
| 12 | import cn.iocoder.dashboard.modules.system.controller.logger.vo.loginlog.SysLoginLogPageReqVO; | 12 | import cn.iocoder.dashboard.modules.system.controller.logger.vo.loginlog.SysLoginLogPageReqVO; |
| 13 | -import cn.iocoder.dashboard.modules.system.convert.logger.SysLoginLogConvert; | ||
| 14 | import cn.iocoder.dashboard.modules.system.dal.dataobject.logger.SysLoginLogDO; | 13 | import cn.iocoder.dashboard.modules.system.dal.dataobject.logger.SysLoginLogDO; |
| 15 | import cn.iocoder.dashboard.modules.system.dal.mysql.logger.SysLoginLogMapper; | 14 | import cn.iocoder.dashboard.modules.system.dal.mysql.logger.SysLoginLogMapper; |
| 16 | import cn.iocoder.dashboard.modules.system.enums.logger.SysLoginLogTypeEnum; | 15 | import cn.iocoder.dashboard.modules.system.enums.logger.SysLoginLogTypeEnum; |
| @@ -19,6 +18,7 @@ import cn.iocoder.dashboard.modules.system.service.logger.impl.SysLoginLogServic | @@ -19,6 +18,7 @@ import cn.iocoder.dashboard.modules.system.service.logger.impl.SysLoginLogServic | ||
| 19 | import cn.iocoder.dashboard.util.RandomUtils; | 18 | import cn.iocoder.dashboard.util.RandomUtils; |
| 20 | import cn.iocoder.dashboard.util.object.ObjectUtils; | 19 | import cn.iocoder.dashboard.util.object.ObjectUtils; |
| 21 | import org.junit.jupiter.api.Test; | 20 | import org.junit.jupiter.api.Test; |
| 21 | +import org.springframework.context.annotation.Import; | ||
| 22 | 22 | ||
| 23 | import javax.annotation.Resource; | 23 | import javax.annotation.Resource; |
| 24 | import java.lang.reflect.Field; | 24 | import java.lang.reflect.Field; |
| @@ -30,7 +30,8 @@ import static cn.iocoder.dashboard.util.AssertUtils.assertPojoEquals; | @@ -30,7 +30,8 @@ import static cn.iocoder.dashboard.util.AssertUtils.assertPojoEquals; | ||
| 30 | import static cn.iocoder.dashboard.util.date.DateUtils.buildTime; | 30 | import static cn.iocoder.dashboard.util.date.DateUtils.buildTime; |
| 31 | import static org.junit.jupiter.api.Assertions.assertEquals; | 31 | import static org.junit.jupiter.api.Assertions.assertEquals; |
| 32 | 32 | ||
| 33 | -public class SysLoginLogServiceImplTest extends BaseSpringBootUnitTest { | 33 | +@Import(SysLoginLogServiceImpl.class) |
| 34 | +public class SysLoginLogServiceImplTest extends BaseDbUnitTest { | ||
| 34 | 35 | ||
| 35 | @Resource | 36 | @Resource |
| 36 | private SysLoginLogServiceImpl sysLoginLogService; | 37 | private SysLoginLogServiceImpl sysLoginLogService; |
| @@ -40,7 +41,6 @@ public class SysLoginLogServiceImplTest extends BaseSpringBootUnitTest { | @@ -40,7 +41,6 @@ public class SysLoginLogServiceImplTest extends BaseSpringBootUnitTest { | ||
| 40 | 41 | ||
| 41 | @Test | 42 | @Test |
| 42 | public void testCreateLoginLog() { | 43 | public void testCreateLoginLog() { |
| 43 | - | ||
| 44 | String traceId = TracerUtils.getTraceId(); | 44 | String traceId = TracerUtils.getTraceId(); |
| 45 | SysLoginLogCreateReqVO reqVO = RandomUtils.randomPojo(SysLoginLogCreateReqVO.class, vo -> { | 45 | SysLoginLogCreateReqVO reqVO = RandomUtils.randomPojo(SysLoginLogCreateReqVO.class, vo -> { |
| 46 | // 指定随机的范围,避免超出范围入库失败 | 46 | // 指定随机的范围,避免超出范围入库失败 |
| @@ -50,19 +50,12 @@ public class SysLoginLogServiceImplTest extends BaseSpringBootUnitTest { | @@ -50,19 +50,12 @@ public class SysLoginLogServiceImplTest extends BaseSpringBootUnitTest { | ||
| 50 | vo.setTraceId(traceId); | 50 | vo.setTraceId(traceId); |
| 51 | }); | 51 | }); |
| 52 | 52 | ||
| 53 | - | ||
| 54 | // 执行service方法 | 53 | // 执行service方法 |
| 55 | sysLoginLogService.createLoginLog(reqVO); | 54 | sysLoginLogService.createLoginLog(reqVO); |
| 56 | 55 | ||
| 57 | - // 查询插入的数据 | ||
| 58 | - SysLoginLogDO sysLoginLogDO = loginLogMapper.selectOne("trace_id", traceId); | ||
| 59 | - | ||
| 60 | // 断言,忽略基本字段 | 56 | // 断言,忽略基本字段 |
| 61 | - assertPojoEquals( | ||
| 62 | - SysLoginLogConvert.INSTANCE.convert(reqVO), | ||
| 63 | - sysLoginLogDO, | ||
| 64 | - getBaseDOFields() | ||
| 65 | - ); | 57 | + SysLoginLogDO sysLoginLogDO = loginLogMapper.selectOne(null); |
| 58 | + assertPojoEquals(reqVO, sysLoginLogDO); | ||
| 66 | } | 59 | } |
| 67 | 60 | ||
| 68 | 61 | ||
| @@ -155,17 +148,4 @@ public class SysLoginLogServiceImplTest extends BaseSpringBootUnitTest { | @@ -155,17 +148,4 @@ public class SysLoginLogServiceImplTest extends BaseSpringBootUnitTest { | ||
| 155 | assertEquals(1, loginLogList.size()); | 148 | assertEquals(1, loginLogList.size()); |
| 156 | assertPojoEquals(loginLogDO, loginLogList.get(0)); | 149 | assertPojoEquals(loginLogDO, loginLogList.get(0)); |
| 157 | } | 150 | } |
| 158 | - | ||
| 159 | - | ||
| 160 | - private static String[] getBaseDOFields() { | ||
| 161 | - Field[] fields = ReflectUtil.getFields(BaseDO.class); | ||
| 162 | - | ||
| 163 | - List<String> collect = Arrays.stream(fields) | ||
| 164 | - .map(Field::getName) | ||
| 165 | - .collect(Collectors.toList()); | ||
| 166 | - collect.add("id"); | ||
| 167 | - | ||
| 168 | - return ArrayUtil.toArray(collect, String.class); | ||
| 169 | - } | ||
| 170 | - | ||
| 171 | } | 151 | } |
src/test/java/cn/iocoder/dashboard/modules/system/service/logger/SysOperateLogServiceImplTest.java
| 1 | package cn.iocoder.dashboard.modules.system.service.logger; | 1 | package cn.iocoder.dashboard.modules.system.service.logger; |
| 2 | 2 | ||
| 3 | +import cn.hutool.core.map.MapUtil; | ||
| 3 | import cn.hutool.core.util.ArrayUtil; | 4 | import cn.hutool.core.util.ArrayUtil; |
| 4 | import cn.hutool.core.util.RandomUtil; | 5 | import cn.hutool.core.util.RandomUtil; |
| 5 | import cn.hutool.core.util.ReflectUtil; | 6 | import cn.hutool.core.util.ReflectUtil; |
| 6 | -import cn.iocoder.dashboard.BaseSpringBootUnitTest; | 7 | +import cn.iocoder.dashboard.BaseDbUnitTest; |
| 7 | import cn.iocoder.dashboard.common.enums.CommonStatusEnum; | 8 | import cn.iocoder.dashboard.common.enums.CommonStatusEnum; |
| 8 | import cn.iocoder.dashboard.common.exception.enums.GlobalErrorCodeConstants; | 9 | import cn.iocoder.dashboard.common.exception.enums.GlobalErrorCodeConstants; |
| 9 | import cn.iocoder.dashboard.common.pojo.PageResult; | 10 | import cn.iocoder.dashboard.common.pojo.PageResult; |
| @@ -13,15 +14,18 @@ import cn.iocoder.dashboard.framework.tracer.core.util.TracerUtils; | @@ -13,15 +14,18 @@ import cn.iocoder.dashboard.framework.tracer.core.util.TracerUtils; | ||
| 13 | import cn.iocoder.dashboard.modules.system.controller.logger.vo.operatelog.SysOperateLogCreateReqVO; | 14 | import cn.iocoder.dashboard.modules.system.controller.logger.vo.operatelog.SysOperateLogCreateReqVO; |
| 14 | import cn.iocoder.dashboard.modules.system.controller.logger.vo.operatelog.SysOperateLogExportReqVO; | 15 | import cn.iocoder.dashboard.modules.system.controller.logger.vo.operatelog.SysOperateLogExportReqVO; |
| 15 | import cn.iocoder.dashboard.modules.system.controller.logger.vo.operatelog.SysOperateLogPageReqVO; | 16 | import cn.iocoder.dashboard.modules.system.controller.logger.vo.operatelog.SysOperateLogPageReqVO; |
| 16 | -import cn.iocoder.dashboard.modules.system.convert.logger.SysOperateLogConvert; | ||
| 17 | import cn.iocoder.dashboard.modules.system.dal.dataobject.logger.SysOperateLogDO; | 17 | import cn.iocoder.dashboard.modules.system.dal.dataobject.logger.SysOperateLogDO; |
| 18 | import cn.iocoder.dashboard.modules.system.dal.dataobject.user.SysUserDO; | 18 | import cn.iocoder.dashboard.modules.system.dal.dataobject.user.SysUserDO; |
| 19 | import cn.iocoder.dashboard.modules.system.dal.mysql.logger.SysOperateLogMapper; | 19 | import cn.iocoder.dashboard.modules.system.dal.mysql.logger.SysOperateLogMapper; |
| 20 | import cn.iocoder.dashboard.modules.system.dal.mysql.user.SysUserMapper; | 20 | import cn.iocoder.dashboard.modules.system.dal.mysql.user.SysUserMapper; |
| 21 | import cn.iocoder.dashboard.modules.system.enums.common.SysSexEnum; | 21 | import cn.iocoder.dashboard.modules.system.enums.common.SysSexEnum; |
| 22 | +import cn.iocoder.dashboard.modules.system.service.logger.impl.SysOperateLogServiceImpl; | ||
| 23 | +import cn.iocoder.dashboard.modules.system.service.user.SysUserService; | ||
| 22 | import cn.iocoder.dashboard.util.RandomUtils; | 24 | import cn.iocoder.dashboard.util.RandomUtils; |
| 23 | import cn.iocoder.dashboard.util.object.ObjectUtils; | 25 | import cn.iocoder.dashboard.util.object.ObjectUtils; |
| 24 | import org.junit.jupiter.api.Test; | 26 | import org.junit.jupiter.api.Test; |
| 27 | +import org.springframework.boot.test.mock.mockito.MockBean; | ||
| 28 | +import org.springframework.context.annotation.Import; | ||
| 25 | 29 | ||
| 26 | import javax.annotation.Resource; | 30 | import javax.annotation.Resource; |
| 27 | import java.lang.reflect.Field; | 31 | import java.lang.reflect.Field; |
| @@ -29,6 +33,8 @@ import java.util.Arrays; | @@ -29,6 +33,8 @@ import java.util.Arrays; | ||
| 29 | import java.util.HashMap; | 33 | import java.util.HashMap; |
| 30 | import java.util.List; | 34 | import java.util.List; |
| 31 | import java.util.Map; | 35 | import java.util.Map; |
| 36 | +import java.util.concurrent.ExecutionException; | ||
| 37 | +import java.util.concurrent.Future; | ||
| 32 | import java.util.stream.Collectors; | 38 | import java.util.stream.Collectors; |
| 33 | 39 | ||
| 34 | import static cn.iocoder.dashboard.util.AssertUtils.assertPojoEquals; | 40 | import static cn.iocoder.dashboard.util.AssertUtils.assertPojoEquals; |
| @@ -36,7 +42,8 @@ import static cn.iocoder.dashboard.util.date.DateUtils.buildTime; | @@ -36,7 +42,8 @@ import static cn.iocoder.dashboard.util.date.DateUtils.buildTime; | ||
| 36 | import static org.junit.jupiter.api.Assertions.assertEquals; | 42 | import static org.junit.jupiter.api.Assertions.assertEquals; |
| 37 | import static org.junit.jupiter.api.Assertions.assertNotNull; | 43 | import static org.junit.jupiter.api.Assertions.assertNotNull; |
| 38 | 44 | ||
| 39 | -public class SysOperateLogServiceImplTest extends BaseSpringBootUnitTest { | 45 | +@Import({SysOperateLogServiceImpl.class}) |
| 46 | +public class SysOperateLogServiceImplTest extends BaseDbUnitTest { | ||
| 40 | 47 | ||
| 41 | @Resource | 48 | @Resource |
| 42 | private SysOperateLogService sysOperateLogServiceImpl; | 49 | private SysOperateLogService sysOperateLogServiceImpl; |
| @@ -47,24 +54,26 @@ public class SysOperateLogServiceImplTest extends BaseSpringBootUnitTest { | @@ -47,24 +54,26 @@ public class SysOperateLogServiceImplTest extends BaseSpringBootUnitTest { | ||
| 47 | @Resource | 54 | @Resource |
| 48 | private SysUserMapper sysUserMapper; | 55 | private SysUserMapper sysUserMapper; |
| 49 | 56 | ||
| 57 | + @MockBean | ||
| 58 | + private SysUserService sysUserService; | ||
| 59 | + | ||
| 50 | @Test | 60 | @Test |
| 51 | - public void testCreateOperateLogAsync() throws InterruptedException { | 61 | + public void testCreateOperateLogAsync() throws InterruptedException, ExecutionException { |
| 52 | 62 | ||
| 53 | String traceId = TracerUtils.getTraceId(); | 63 | String traceId = TracerUtils.getTraceId(); |
| 54 | SysOperateLogCreateReqVO reqVO = RandomUtils.randomPojo(SysOperateLogCreateReqVO.class, vo -> { | 64 | SysOperateLogCreateReqVO reqVO = RandomUtils.randomPojo(SysOperateLogCreateReqVO.class, vo -> { |
| 55 | vo.setTraceId(traceId); | 65 | vo.setTraceId(traceId); |
| 56 | vo.setUserId(RandomUtil.randomLong(1, Long.MAX_VALUE)); | 66 | vo.setUserId(RandomUtil.randomLong(1, Long.MAX_VALUE)); |
| 57 | 67 | ||
| 58 | - Map<String, Object> map = new HashMap<>(); | ||
| 59 | - map.put("orderId", 1); | 68 | + Map<String, Object> map = MapUtil.builder("orderId", (Object) 1).build(); |
| 60 | vo.setExts(map); | 69 | vo.setExts(map); |
| 61 | }); | 70 | }); |
| 62 | 71 | ||
| 63 | // 执行service方法 | 72 | // 执行service方法 |
| 64 | - sysOperateLogServiceImpl.createOperateLogAsync(reqVO); | 73 | + Future<Boolean> future = sysOperateLogServiceImpl.createOperateLogAsync(reqVO); |
| 65 | 74 | ||
| 66 | // 等异步执行完 | 75 | // 等异步执行完 |
| 67 | - Thread.sleep(2000); | 76 | + future.get(); |
| 68 | 77 | ||
| 69 | // 查询插入的数据 | 78 | // 查询插入的数据 |
| 70 | SysOperateLogDO sysOperateLogDO = sysOperateLogMapper.selectOne("trace_id", traceId); | 79 | SysOperateLogDO sysOperateLogDO = sysOperateLogMapper.selectOne("trace_id", traceId); |
| @@ -72,11 +81,7 @@ public class SysOperateLogServiceImplTest extends BaseSpringBootUnitTest { | @@ -72,11 +81,7 @@ public class SysOperateLogServiceImplTest extends BaseSpringBootUnitTest { | ||
| 72 | // 断言 | 81 | // 断言 |
| 73 | assertNotNull(sysOperateLogDO); | 82 | assertNotNull(sysOperateLogDO); |
| 74 | // 断言,忽略基本字段 | 83 | // 断言,忽略基本字段 |
| 75 | - assertPojoEquals( | ||
| 76 | - SysOperateLogConvert.INSTANCE.convert(reqVO), | ||
| 77 | - sysOperateLogDO, | ||
| 78 | - getBaseDOFields() | ||
| 79 | - ); | 84 | + assertPojoEquals(reqVO, sysOperateLogDO); |
| 80 | } | 85 | } |
| 81 | 86 | ||
| 82 | 87 | ||
| @@ -165,8 +170,8 @@ public class SysOperateLogServiceImplTest extends BaseSpringBootUnitTest { | @@ -165,8 +170,8 @@ public class SysOperateLogServiceImplTest extends BaseSpringBootUnitTest { | ||
| 165 | entity.setStartTime(buildTime(2021, 3, 6)); | 170 | entity.setStartTime(buildTime(2021, 3, 6)); |
| 166 | entity.setResultCode(GlobalErrorCodeConstants.SUCCESS.getCode()); | 171 | entity.setResultCode(GlobalErrorCodeConstants.SUCCESS.getCode()); |
| 167 | 172 | ||
| 168 | - Map<String, Object> map = new HashMap<>(); | ||
| 169 | - map.put("orderId", 1); | 173 | + |
| 174 | + Map<String, Object> map = MapUtil.builder("orderId", (Object) 1).build(); | ||
| 170 | entity.setExts(map); | 175 | entity.setExts(map); |
| 171 | }); | 176 | }); |
| 172 | 177 | ||
| @@ -200,17 +205,4 @@ public class SysOperateLogServiceImplTest extends BaseSpringBootUnitTest { | @@ -200,17 +205,4 @@ public class SysOperateLogServiceImplTest extends BaseSpringBootUnitTest { | ||
| 200 | assertEquals(1, list.size()); | 205 | assertEquals(1, list.size()); |
| 201 | assertPojoEquals(sysOperateLogDO, list.get(0)); | 206 | assertPojoEquals(sysOperateLogDO, list.get(0)); |
| 202 | } | 207 | } |
| 203 | - | ||
| 204 | - | ||
| 205 | - private static String[] getBaseDOFields() { | ||
| 206 | - Field[] fields = ReflectUtil.getFields(BaseDO.class); | ||
| 207 | - | ||
| 208 | - List<String> collect = Arrays.stream(fields) | ||
| 209 | - .map(Field::getName) | ||
| 210 | - .collect(Collectors.toList()); | ||
| 211 | - collect.add("id"); | ||
| 212 | - | ||
| 213 | - return ArrayUtil.toArray(collect, String.class); | ||
| 214 | - } | ||
| 215 | - | ||
| 216 | } | 208 | } |
src/test/resources/sql/create_tables.sql
| @@ -170,9 +170,9 @@ CREATE TABLE IF NOT EXISTS `sys_login_log` ( | @@ -170,9 +170,9 @@ CREATE TABLE IF NOT EXISTS `sys_login_log` ( | ||
| 170 | `result` tinyint(4) NOT NULL, | 170 | `result` tinyint(4) NOT NULL, |
| 171 | `user_ip` varchar(50) NOT NULL, | 171 | `user_ip` varchar(50) NOT NULL, |
| 172 | `user_agent` varchar(512) NOT NULL, | 172 | `user_agent` varchar(512) NOT NULL, |
| 173 | - `create_by` varchar(64) DEFAULT '', | 173 | + `creator` varchar(64) DEFAULT '', |
| 174 | `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, | 174 | `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, |
| 175 | - `update_by` varchar(64) DEFAULT '', | 175 | + `updater` varchar(64) DEFAULT '', |
| 176 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, | 176 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, |
| 177 | `deleted` bit(1) NOT NULL DEFAULT '0', | 177 | `deleted` bit(1) NOT NULL DEFAULT '0', |
| 178 | PRIMARY KEY (`id`) | 178 | PRIMARY KEY (`id`) |
| @@ -199,9 +199,9 @@ CREATE TABLE `sys_operate_log` ( | @@ -199,9 +199,9 @@ CREATE TABLE `sys_operate_log` ( | ||
| 199 | `result_code` int(11) NOT NULL DEFAULT '0', | 199 | `result_code` int(11) NOT NULL DEFAULT '0', |
| 200 | `result_msg` varchar(512) DEFAULT '', | 200 | `result_msg` varchar(512) DEFAULT '', |
| 201 | `result_data` varchar(4000) DEFAULT '', | 201 | `result_data` varchar(4000) DEFAULT '', |
| 202 | - `create_by` varchar(64) DEFAULT '', | 202 | + `creator` varchar(64) DEFAULT '', |
| 203 | `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, | 203 | `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, |
| 204 | - `update_by` varchar(64) DEFAULT '', | 204 | + `updater` varchar(64) DEFAULT '', |
| 205 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, | 205 | `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, |
| 206 | `deleted` bit(1) NOT NULL DEFAULT '0', | 206 | `deleted` bit(1) NOT NULL DEFAULT '0', |
| 207 | PRIMARY KEY (`id`) | 207 | PRIMARY KEY (`id`) |
| @@ -222,9 +222,9 @@ create table "sys_user" ( | @@ -222,9 +222,9 @@ create table "sys_user" ( | ||
| 222 | "status" tinyint not null default '0', | 222 | "status" tinyint not null default '0', |
| 223 | "login_ip" varchar(50) default '', | 223 | "login_ip" varchar(50) default '', |
| 224 | "login_date" timestamp default null, | 224 | "login_date" timestamp default null, |
| 225 | - "create_by" varchar(64) default '', | 225 | + "creator" varchar(64) default '', |
| 226 | "create_time" timestamp not null default current_timestamp, | 226 | "create_time" timestamp not null default current_timestamp, |
| 227 | - "update_by" varchar(64) default '', | 227 | + "updater" varchar(64) default '', |
| 228 | "update_time" timestamp not null default current_timestamp, | 228 | "update_time" timestamp not null default current_timestamp, |
| 229 | "deleted" bit not null default false, | 229 | "deleted" bit not null default false, |
| 230 | primary key ("id") | 230 | primary key ("id") |