Commit c197417d92d7ebe0038f08bd393b867ab40f3b66

Authored by wangkai
1 parent 75d21928

修改 system logger junit review 后提出的问题

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 &quot;sys_user&quot; ( @@ -222,9 +222,9 @@ create table &quot;sys_user&quot; (
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")