From 97e4f5c460d37ae3eb9c03396dd9dd6bb3f970cd Mon Sep 17 00:00:00 2001
From: aijinhui <aijinhui>
Date: 星期三, 22 十一月 2023 11:33:46 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
ruoyi-system/src/main/resources/mapper/system/SysDictTypeMapper.xml | 200 +++---
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysMenu.java | 11
ard-work/src/main/resources/mapper/device/ArdEquipExternalMapper.xml | 1
ruoyi-system/src/main/resources/mapper/system/SysDictDataMapper.xml | 6
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictType.java | 10
ard-work/src/main/resources/mapper/device/ArdEquipRadarMapper.xml | 2
ruoyi-admin/src/main/resources/i18n/messages_zh_CN.properties | 223 ++++++++
ruoyi-common/src/main/java/com/ruoyi/common/filter/MyI18nInterceptor.java | 14
ruoyi-common/src/main/java/com/ruoyi/common/utils/MessageUtils.java | 13
ruoyi-admin/src/main/resources/i18n/messages_en_US.properties | 225 ++++++++
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictData.java | 11
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictDataServiceImpl.java | 68 +-
ruoyi-admin/src/main/resources/i18n/messages.properties | 232 ++++++++
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysConfig.java | 10
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/AjaxResult.java | 11
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictTypeServiceImpl.java | 111 ++--
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java | 260 ++++-----
ruoyi-system/src/main/resources/mapper/system/SysConfigMapper.xml | 162 +++--
ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml | 12
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysConfigServiceImpl.java | 20
20 files changed, 1,169 insertions(+), 433 deletions(-)
diff --git a/ard-work/src/main/resources/mapper/device/ArdEquipExternalMapper.xml b/ard-work/src/main/resources/mapper/device/ArdEquipExternalMapper.xml
index 06ddea5..0f52fe2 100644
--- a/ard-work/src/main/resources/mapper/device/ArdEquipExternalMapper.xml
+++ b/ard-work/src/main/resources/mapper/device/ArdEquipExternalMapper.xml
@@ -51,6 +51,7 @@
<include refid="selectArdEquipExternalVo"/>
<where>
<if test="name != null and name != ''">and c.name like '%'||#{name}||'%'</if>
+ <if test="ip != null and ip != ''">and c.ip = #{ip}</if>
<if test="type != null and type != ''">and c.type = #{type}</if>
<if test="factory != null and factory != ''">and c.factory = #{factory}</if>
<if test="deptId != null ">and (c.dept_id = #{deptId} OR c.dept_id IN ( SELECT t.dept_id FROM sys_dept t
diff --git a/ard-work/src/main/resources/mapper/device/ArdEquipRadarMapper.xml b/ard-work/src/main/resources/mapper/device/ArdEquipRadarMapper.xml
index 5338123..b5ba729 100644
--- a/ard-work/src/main/resources/mapper/device/ArdEquipRadarMapper.xml
+++ b/ard-work/src/main/resources/mapper/device/ArdEquipRadarMapper.xml
@@ -85,6 +85,8 @@
left join ard_towers t on t.id = c.tower_id
<where>
<if test="towerId != null and towerId != ''">and c.tower_id = #{towerId}</if>
+ <if test="ip != null and ip != ''">and c.ip = #{ip}</if>
+ <if test="type != null and type != ''">and c.type = #{type}</if>
<if test="userId != null and userId != ''">and c.user_id = #{userId}</if>
<if test="deptId != null ">and (c.dept_id = #{deptId} OR c.dept_id IN ( SELECT t.dept_id FROM sys_dept t
WHERE cast(#{deptId} as varchar) = any(string_to_array(ancestors,',')) ))
diff --git a/ruoyi-admin/src/main/resources/i18n/messages.properties b/ruoyi-admin/src/main/resources/i18n/messages.properties
index 95bb2b3..92311d1 100644
--- a/ruoyi-admin/src/main/resources/i18n/messages.properties
+++ b/ruoyi-admin/src/main/resources/i18n/messages.properties
@@ -10,12 +10,9 @@
user.blocked=\u7528\u6237\u5DF2\u5C01\u7981\uFF0C\u8BF7\u8054\u7CFB\u7BA1\u7406\u5458
role.blocked=\u89D2\u8272\u5DF2\u5C01\u7981\uFF0C\u8BF7\u8054\u7CFB\u7BA1\u7406\u5458
user.logout.success=\u9000\u51FA\u6210\u529F
-
length.not.valid=\u957F\u5EA6\u5FC5\u987B\u5728{min}\u5230{max}\u4E2A\u5B57\u7B26\u4E4B\u95F4
-
user.username.not.valid=* 2\u523020\u4E2A\u6C49\u5B57\u3001\u5B57\u6BCD\u3001\u6570\u5B57\u6216\u4E0B\u5212\u7EBF\u7EC4\u6210\uFF0C\u4E14\u5FC5\u987B\u4EE5\u975E\u6570\u5B57\u5F00\u5934
user.password.not.valid=* 5-50\u4E2A\u5B57\u7B26
-
user.email.not.valid=\u90AE\u7BB1\u683C\u5F0F\u9519\u8BEF
user.mobile.phone.number.not.valid=\u624B\u673A\u53F7\u683C\u5F0F\u9519\u8BEF
user.login.success=\u767B\u5F55\u6210\u529F
@@ -23,11 +20,9 @@
user.notfound=\u8BF7\u91CD\u65B0\u767B\u5F55
user.forcelogout=\u7BA1\u7406\u5458\u5F3A\u5236\u9000\u51FA\uFF0C\u8BF7\u91CD\u65B0\u767B\u5F55
user.unknown.error=\u672A\u77E5\u9519\u8BEF\uFF0C\u8BF7\u91CD\u65B0\u767B\u5F55
-
##\u6587\u4EF6\u4E0A\u4F20\u6D88\u606F
upload.exceed.maxSize=\u4E0A\u4F20\u7684\u6587\u4EF6\u5927\u5C0F\u8D85\u51FA\u9650\u5236\u7684\u6587\u4EF6\u5927\u5C0F\uFF01<br/>\u5141\u8BB8\u7684\u6587\u4EF6\u6700\u5927\u5927\u5C0F\u662F\uFF1A{0}MB\uFF01
upload.filename.exceed.length=\u4E0A\u4F20\u7684\u6587\u4EF6\u540D\u6700\u957F{0}\u4E2A\u5B57\u7B26
-
##\u6743\u9650
no.permission=\u60A8\u6CA1\u6709\u6570\u636E\u7684\u6743\u9650\uFF0C\u8BF7\u8054\u7CFB\u7BA1\u7406\u5458\u6DFB\u52A0\u6743\u9650 [{0}]
no.create.permission=\u60A8\u6CA1\u6709\u521B\u5EFA\u6570\u636E\u7684\u6743\u9650\uFF0C\u8BF7\u8054\u7CFB\u7BA1\u7406\u5458\u6DFB\u52A0\u6743\u9650 [{0}]
@@ -35,7 +30,230 @@
no.delete.permission=\u60A8\u6CA1\u6709\u5220\u9664\u6570\u636E\u7684\u6743\u9650\uFF0C\u8BF7\u8054\u7CFB\u7BA1\u7406\u5458\u6DFB\u52A0\u6743\u9650 [{0}]
no.export.permission=\u60A8\u6CA1\u6709\u5BFC\u51FA\u6570\u636E\u7684\u6743\u9650\uFF0C\u8BF7\u8054\u7CFB\u7BA1\u7406\u5458\u6DFB\u52A0\u6743\u9650 [{0}]
no.view.permission=\u60A8\u6CA1\u6709\u67E5\u770B\u6570\u636E\u7684\u6743\u9650\uFF0C\u8BF7\u8054\u7CFB\u7BA1\u7406\u5458\u6DFB\u52A0\u6743\u9650 [{0}]
-
##\u7EDF\u4E00\u8FD4\u56DE
operation.failed=\u64CD\u4F5C\u5931\u8D25
-operation.success=\u64CD\u4F5C\u6210\u529F
\ No newline at end of file
+operation.success=\u64CD\u4F5C\u6210\u529F
+##\u83DC\u5355
+menu.system=\u7CFB\u7EDF\u7BA1\u7406
+menu.monitor=\u7CFB\u7EDF\u76D1\u63A7
+menu.tool=\u7CFB\u7EDF\u5DE5\u5177
+menu.user=\u7528\u6237\u7BA1\u7406
+menu.role=\u89D2\u8272\u7BA1\u7406
+menu.menu=\u83DC\u5355\u7BA1\u7406
+menu.dept=\u90E8\u95E8\u7BA1\u7406
+menu.post=\u5C97\u4F4D\u7BA1\u7406
+menu.dict=\u5B57\u5178\u7BA1\u7406
+menu.config=\u53C2\u6570\u8BBE\u7F6E
+menu.notice=\u901A\u77E5\u516C\u544A
+menu.log=\u65E5\u5FD7\u7BA1\u7406
+menu.online=\u5728\u7EBF\u7528\u6237
+menu.job=\u5B9A\u65F6\u4EFB\u52A1
+menu.druid=\u6570\u636E\u76D1\u63A7
+menu.server=\u670D\u52A1\u76D1\u63A7
+menu.cache=\u7F13\u5B58\u76D1\u63A7
+menu.cacheList=\u7F13\u5B58\u5217\u8868
+menu.build=\u8868\u5355\u6784\u5EFA
+menu.gen=\u4EE3\u7801\u751F\u6210
+menu.operlog=\u64CD\u4F5C\u65E5\u5FD7
+menu.logininfor=\u767B\u5F55\u65E5\u5FD7
+menu.management3d=\u4E09\u7EF4\u7BA1\u7406
+menu.device=\u8BBE\u5907\u7BA1\u7406
+menu.camera=\u89C6\u9891\u8BBE\u5907
+menu.radar=\u96F7\u8FBE\u8BBE\u5907
+menu.external=\u5916\u8054\u8BBE\u5907
+menu.videoFusion=\u89C6\u9891\u878D\u5408
+menu.tower=\u5854\u7BA1\u7406
+menu.alarmpoints=\u5174\u8DA3\u70B9\u7BA1\u7406
+menu.elecFence=\u7535\u5B50\u56F4\u680F
+menu.tube=\u7BA1\u7EBF\u7BA1\u7406
+menu.policeStation=\u8B66\u52A1\u5BA4\u7BA1\u7406
+menu.peopleAndCar=\u4EBA\u5458\u53CA\u8F66\u8F86\u7BA1\u7406
+menu.inspect=\u89C6\u9891\u5DE1\u68C0
+menu.inspectTask=\u89C6\u9891\u5DE1\u68C0\u4EFB\u52A1
+menu.inspectRecord=\u89C6\u9891\u5DE1\u68C0\u8BB0\u5F55
+menu.vtdu=\u6D41\u5A92\u4F53\u7BA1\u7406
+menu.vtduConfig=\u914D\u7F6E
+menu.vtduPullStream=\u62C9\u6D41
+menu.vtduPushStream=\u63A8\u6D41
+menu.test=\u6D4B\u8BD5\u9875
+menu.sdkTest=sdk\u6D4B\u8BD5\u9875
+menu.vtduTest=\u6D41\u5A92\u4F53\u6D4B\u8BD5\u9875
+menu.mqQueue=mq\u961F\u5217
+menu.minio=minio\u5B58\u50A8
+menu.minioEvent=\u5B58\u50A8\u4E8B\u4EF6
+menu.minioEventQuery=\u5B58\u50A8\u4E8B\u4EF6\u67E5\u8BE2
+menu.sysApi=\u7CFB\u7EDF\u63A5\u53E3
+menu.tiles3d=\u4E09\u7EF4\u5B9E\u666F
+
+menu.alarmPermission=\u62A5\u8B66\u6743\u9650
+menu.appPermission=app\u6743\u9650
+menu.noGuideZone=noGuideZone
+menu.userResetPwd=\u91CD\u7F6E\u5BC6\u7801
+menu.accountUnlock=\u8D26\u6237\u89E3\u9501
+menu.batchForceOut=\u6279\u91CF\u5F3A\u9000
+menu.singleForceOut=\u5355\u6761\u5F3A\u9000
+menu.preview=\u9884\u89C8\u4EE3\u7801
+menu.generator=\u751F\u6210\u4EE3\u7801
+menu.query=\u67E5\u8BE2
+menu.add=\u65B0\u589E
+menu.edit=\u4FEE\u6539
+menu.remove=\u5220\u9664
+menu.export=\u5BFC\u51FA
+menu.import=\u5BFC\u5165
+
+##\u5B57\u5178\u7C7B\u578B
+dic.type.sys.user.sex=\u7528\u6237\u6027\u522B
+dic.type.sys.show.hide=\u83DC\u5355\u72B6\u6001
+dic.type.sys.normal.disable=\u7CFB\u7EDF\u5F00\u5173
+dic.type.sys.job.status=\u4EFB\u52A1\u72B6\u6001
+dic.type.sys.job.group=\u4EFB\u52A1\u5206\u7EC4
+dic.type.sys.yes.no=\u7CFB\u7EDF\u662F\u5426
+dic.type.sys.notice.type=\u901A\u77E5\u7C7B\u578B
+dic.type.sys.notice.status=\u901A\u77E5\u72B6\u6001
+dic.type.sys.oper.type=\u64CD\u4F5C\u7C7B\u578B
+dic.type.sys.common.status=\u7CFB\u7EDF\u72B6\u6001
+dic.type.camera.type=\u5149\u7535\u7C7B\u578B
+dic.type.well.type=\u6CB9\u4E95\u7C7B\u578B
+dic.type.work.state=\u8FD0\u884C\u72B6\u6001
+dic.type.factory=\u5382\u5546
+dic.type.tube.type=\u7BA1\u7EBF\u7C7B\u578B
+dic.type.radar.type=\u96F7\u8FBE\u7C7B\u578B
+dic.type.equip.type=\u5916\u8054\u8BBE\u5907\u7C7B\u578B
+dic.type.cameras.priority=\u76F8\u673A\u64CD\u63A7\u4F18\u5148\u7EA7
+dic.type.inspect.mode=\u5DE1\u68C0\u6A21\u5F0F
+dic.type.on.off=\u5F00\u5173
+dic.type.repeat.period=\u91CD\u590D\u5468\u671F
+dic.type.alarm.type=\u62A5\u8B66\u7C7B\u578B
+dic.type.storage.operate.type=\u5B58\u50A8\u4E8B\u4EF6\u7C7B\u578B
+dic.type.wall.type=\u7535\u5B50\u56F4\u680F\u7C7B\u578B
+dic.type.code.enabled=\u6D41\u5A92\u4F53\u8F6C\u7801\u5F00\u5173
+dic.type.change.code.mode=\u6D41\u5A92\u4F53\u89E3\u7801\u6A21\u5F0F
+##\u5B57\u5178\u6570\u636E
+dic.data.sys.user.sex.male=\u7537
+dic.data.sys.user.sex.female=\u5973
+dic.data.sys.user.sex.other=\u672A\u77E5
+dic.data.sys.show=\u663E\u793A
+dic.data.sys.hide=\u9690\u85CF
+dic.data.sys.normal=\u6B63\u5E38
+dic.data.sys.disable=\u505C\u7528
+dic.data.sys.job.status.normal=\u6B63\u5E38
+dic.data.sys.job.status.pause=\u6682\u505C
+dic.data.sys.job.group.default=\u9ED8\u8BA4
+dic.data.sys.job.group.system=\u7CFB\u7EDF
+dic.data.sys.yes=\u662F
+dic.data.sys.no=\u5426
+dic.data.sys.notice=\u7CFB\u7EDF\u901A\u77E5
+dic.data.sys.announcement=\u516C\u544A
+dic.data.sys.notice.status.normal=\u6B63\u5E38
+dic.data.sys.notice.status.close=\u5173\u95ED
+dic.data.sys.oper.type.other=\u5176\u4ED6
+dic.data.sys.oper.type.add=\u65B0\u589E
+dic.data.sys.oper.type.edit=\u4FEE\u6539
+dic.data.sys.oper.type.remove=\u5220\u9664
+dic.data.sys.oper.type.authorization=\u6388\u6743
+dic.data.sys.oper.type.export=\u5BFC\u51FA
+dic.data.sys.oper.type.import=\u5BFC\u5165
+dic.data.sys.oper.type.force.out=\u5F3A\u9000
+dic.data.sys.oper.type.gen=\u751F\u6210\u4EE3\u7801
+dic.data.sys.oper.type.clear=\u6E05\u7A7A\u6570\u636E
+dic.data.sys.common.status.success=\u6210\u529F
+dic.data.sys.common.status.fail=\u6210\u529F
+dic.data.camera.type.samll.camera=\u5C0F\u5149\u7535
+dic.data.camera.type.big.camera=\u5927\u5149\u7535
+dic.data.camera.type.nvr=\u7EC8\u7AEF
+dic.data.well.type.pump=\u62BD\u6CB9\u673A
+dic.data.well.type.ketou=\u78D5\u5934\u673A
+dic.data.work.state.normal=\u6B63\u5E38
+dic.data.work.state.exception=\u5F02\u5E38
+dic.data.equip.type.alarm=\u62A5\u8B66\u4E3B\u673A
+dic.data.equip.type.GPS=GPS
+dic.data.equip.type.gycgq=\u5DE5\u4E1A\u4F20\u611F\u5668
+dic.data.equip.type.person.position=\u4EBA\u5458\u5B9A\u4F4D
+dic.data.equip.type.personandcar=\u4EBA\u8F66\u8BC6\u522B
+dic.data.equip.type.access=\u95E8\u7981\u4E3B\u673A
+dic.data.equip.type.jcj=\u95F4\u62BD\u4E95\u7BA1\u7406
+dic.data.equip.type.tube.alarm=\u7BA1\u7EBF\u62A5\u8B66
+dic.data.equip.type.uav.platform=\u65E0\u4EBA\u673A\u4E91\u5E73\u53F0
+dic.data.tube.type.oil.pipe=\u6CB9\u7BA1
+dic.data.tube.type.water.pipe=\u6C34\u7BA1
+dic.data.tube.type.gas.pipe=\u71C3\u6C14\u7BA1
+dic.data.radar.type.h=H
+dic.data.radar.type.f=F
+dic.data.alarm.type=\u9884\u8B66\u544A\u8B66
+dic.data.cameras.priority.user1=\u7528\u6237\u4E00\u7EA7
+dic.data.cameras.priority.user2=\u7528\u6237\u4E8C\u7EA7
+dic.data.cameras.priority.user3=\u7528\u6237\u4E09\u7EA7
+dic.data.cameras.priority.sys.app.onekey=sys_app_onekey
+dic.data.cameras.priority.sys.access.control=sys_access_control
+dic.data.cameras.priority.sys.external=sys_external
+dic.data.cameras.priority.sys.radar.pump=sys_radar_pump
+dic.data.cameras.priority.sys.tube.leak=sys_tube_leak
+dic.data.cameras.priority.sys.radar.move=sys_radar_move
+dic.data.cameras.priority.sys.radar.fire=sys_radar_fire
+dic.data.cameras.priority.sys.radar.force=sys_radar_force
+dic.data.cameras.priority.sys.manual.inspection=sys_manual_inspection
+dic.data.cameras.priority.sys.auto.inspection=sys_auto_inspection
+
+dic.data.inspect.mode.auto=\u81EA\u52A8
+dic.data.inspect.mode.manual=\u624B\u52A8
+dic.data.on=\u5F00
+dic.data.off=\u5173
+dic.data.repeat.period.week=\u5468
+dic.data.repeat.period.day=\u65E5
+dic.data.repeat.period.hour=\u5C0F\u65F6
+dic.data.repeat.period.min=\u5206\u949F
+dic.data.alarm.type.elec.steal=\u76D7\u7535\u62A5\u8B66
+dic.data.alarm.type.radar=\u96F7\u8FBE\u62A5\u8B66
+dic.data.alarm.type.camera=\u901A\u7528\u5149\u7535
+dic.data.alarm.type.radar.fire=\u9632\u706B\u62A5\u8B66
+dic.data.alarm.type.external=\u5916\u8054\u62A5\u8B66
+dic.data.alarm.type.access=\u95E8\u7981\u62A5\u8B66
+dic.data.alarm.type.tube=\u7BA1\u7EBF\u6CC4\u6F0F
+dic.data.alarm.type.elec.fencee=\u7535\u5B50\u56F4\u680F
+dic.data.storage.operate.type.add=\u65B0\u589E
+dic.data.storage.operate.type.remove=\u5220\u9664
+dic.data.factory.hikvision=\u6D77\u5EB7
+dic.data.factory.dahua=\u5927\u534E
+dic.data.wall.type.no.entry=\u7981\u5165
+dic.data.wall.type.no.exit=\u7981\u51FA
+dic.data.code.enabled.on=\u8F6C\u7801
+dic.data.code.enabled.off=\u4E0D\u8F6C\u7801
+dic.data.change.code.mode.gpu=GPU\u786C\u89E3\u7801
+dic.data.change.code.mode.cpu=CPU\u8F6F\u89E3\u7801
+
+##\u7CFB\u7EDF\u914D\u7F6E
+config.sys.index.skinName=\u4E3B\u6846\u67B6\u9875-\u9ED8\u8BA4\u76AE\u80A4\u6837\u5F0F\u540D\u79F0
+config.sys.user.initPassword=\u7528\u6237\u7BA1\u7406-\u8D26\u53F7\u521D\u59CB\u5BC6\u7801
+config.sys.index.sideTheme=\u4E3B\u6846\u67B6\u9875-\u4FA7\u8FB9\u680F\u4E3B\u9898
+config.sys.account.registerUser=\u8D26\u53F7\u81EA\u52A9-\u662F\u5426\u5F00\u542F\u7528\u6237\u6CE8\u518C\u529F\u80FD
+config.sys.account.captchaEnabled=\u8D26\u53F7\u81EA\u52A9-\u9A8C\u8BC1\u7801\u5F00\u5173
+config.uav=\u65E0\u4EBA\u673A\u5730\u5740
+config.HIKSuperBrain=\u6D77\u5EB7\u8D85\u8111\u5730\u5740
+config.origin=\u521D\u59CB\u4F4D\u7F6E
+config.CompanyMURL=\u516C\u53F8M\u670D\u52A1\u5730\u5740
+config.serverCode=\u670D\u52A1\u4EE3\u7801
+config.PneumaticLockIPAndPort=\u6C14\u52A8\u9501\u5730\u5740\u548C\u7AEF\u53E3
+config.shVideo=\u5174\u8DA3\u70B9\u89C6\u9891\u6807\u7B7E\u63A5\u53E3\u5730\u5740
+config.appAlarmPointsDistance=app\u4E0E\u5174\u8DA3\u70B9\u8DDD\u79BB
+config.dblocal=\u6570\u636E\u5E93\u6240\u5C5E
+config.31distance=\u4E09\u4E00\u5B9A\u8DDD
+config.31time=\u4E09\u4E00\u5B9A\u65F6
+config.radarUrl=radar\u670D\u52A1\u5668
+config.uavOriginPosition=\u65E0\u4EBA\u673A\u9ED8\u8BA4\u4F4D\u7F6E
+config.stealElecUrl=\u9632\u76D7\u7535\u6570\u636E\u63A5\u53E3
+config.ws=websocket\u5730\u5740
+config.RongCloudAppSecret=\u878D\u4E91APP\u79D8\u94A5
+config.minioOut=minio\u5916\u7F51
+config.minioIn=minio\u5185\u7F51
+config.webrtcIP=webrtc\u5730\u5740
+config.indexIp=\u6A21\u578B\u5730\u5740\u4EE3\u7406ip
+config.gis=GIS\u6570\u636E\u7F51\u7EDC\u670D\u52A1\u5730\u5740
+config.eqHealthPassword=\u8BBE\u5907\u5065\u5EB7\u5BC6\u7801
+config.eqHealthAccount=\u8BBE\u5907\u5065\u5EB7\u8D26\u53F7
+config.eqHealthUrl=\u8BBE\u5907\u5065\u5EB7\u65B0\u63A5\u53E3\u5730\u5740
+config.health=\u8BBE\u5907\u5065\u5EB7\u5730\u5740
+config.refreshTime=\u62A5\u8B66\u5237\u65B0\u65F6\u95F4
+config.dayNightTime=\u5149\u7535\u65E5\u591C\u5207\u6362\u65F6\u95F4
+config.rongyun=\u878D\u4E91IP
+config.RongCloudAppKey=\u878D\u4E91APP\u952E
+config.syCarPT=\u4E09\u4E00\u5E73\u53F0ip
\ No newline at end of file
diff --git a/ruoyi-admin/src/main/resources/i18n/messages_en_US.properties b/ruoyi-admin/src/main/resources/i18n/messages_en_US.properties
index 82fc0f4..c7a163f 100644
--- a/ruoyi-admin/src/main/resources/i18n/messages_en_US.properties
+++ b/ruoyi-admin/src/main/resources/i18n/messages_en_US.properties
@@ -40,3 +40,228 @@
operation.failed=Operation failed
operation.success=Operation successful
+##\u83DC\u5355
+menu.system=system
+menu.monitor=monitor
+menu.tool=tool
+menu.user=user
+menu.role=role
+menu.menu=menu
+menu.dept=dept
+menu.post=post
+menu.dict=dict
+menu.config=config
+menu.notice=notice
+menu.log=log
+menu.online=online
+menu.job=job
+menu.druid=druid
+menu.server=server
+menu.cache=cache
+menu.cacheList=cacheList
+menu.build=build
+menu.gen=gen
+menu.operlog=operlog
+menu.logininfor=logininfor
+menu.management3d=management3d
+menu.device=device
+menu.camera=camera
+menu.radar=radar
+menu.external=external
+menu.videoFusion=videoFusion
+menu.tower=tower
+menu.alarmpoints=alarmpoints
+menu.elecFence=elecFence
+menu.tube=tube
+menu.policeStation=policeStation
+menu.peopleAndCar=peopleAndCar
+menu.inspect=inspect
+menu.inspectTask=inspectTask
+menu.inspectRecord=inspectRecord
+menu.vtdu=vtdu
+menu.vtduConfig=vtduConfig
+menu.vtduPullStream=vtduPullStream
+menu.vtduPushStream=vtduPushStream
+menu.test=test
+menu.sdkTest=sdkTest
+menu.vtduTest=vtduTest
+menu.mqQueue=mqQueue
+menu.minio=minio
+menu.minioEvent=minioEvent
+menu.sysApi=sysApi
+menu.tiles3d=tiles3d
+
+menu.alarmPermission=alarmPermission
+menu.appPermission=appPermission
+menu.noGuideZone=noGuideZone
+menu.userResetPwd=userResetPwd
+menu.accountUnlock=accountUnlock
+menu.batchForceOut=batchForceOut
+menu.singleForceOut=singleForceOut
+menu.codePreview=preview
+menu.codeGen=generator
+menu.query=query
+menu.add=add
+menu.edit=edit
+menu.remove=remove
+menu.export=export
+menu.import=import
+
+
+##\u5B57\u5178\u7C7B\u578B
+dic.type.sys.user.sex=userSex
+dic.type.sys.show.hide=menuStatus
+dic.type.sys.normal.disable=systemSwitches
+dic.type.sys.job.status=jobStatus
+dic.type.sys.job.group=jobGroup
+dic.type.sys.yes.no=systemY/N
+dic.type.sys.notice.type=noticeType
+dic.type.sys.notice.status=noticeStatus
+dic.type.sys.oper.type=operType
+dic.type.sys.common.status=commonStatus
+dic.type.camera.type=cameraType
+dic.type.well.type=wellType
+dic.type.work.state=workState
+dic.type.factory=factory
+dic.type.tube.type=tubeType
+dic.type.radar.type=radarType
+dic.type.equip.type=equipType
+dic.type.cameras.priority=camerasPriority
+dic.type.inspect.mode=inspectMode
+dic.type.on.off=switch
+dic.type.repeat.period=repeatPeriod
+dic.type.alarm.type=alarmType
+dic.type.storage.operate.type=storageOperateType
+dic.type.wall.type=wallType
+dic.type.code.enabled=codeSwitch
+dic.type.change.code.mode=codeMode
+##\u5B57\u5178
+dic.data.sys.user.sex.male=male
+dic.data.sys.user.sex.female=female
+dic.data.sys.user.sex.other=other
+dic.data.sys.show=show
+dic.data.sys.hide=hide
+dic.data.sys.normal=normal
+dic.data.sys.disable=disabled
+dic.data.sys.job.status.normal=normal
+dic.data.sys.job.status.pause=pause
+dic.data.sys.job.group.default=default
+dic.data.sys.job.group.system=system
+dic.data.sys.yes=yes
+dic.data.sys.no=no
+dic.data.sys.notice=notice
+dic.data.sys.announcement=announcement
+dic.data.sys.notice.status.normal=normal
+dic.data.sys.notice.status.close=close
+dic.data.sys.oper.type.other=other
+dic.data.sys.oper.type.add=add
+dic.data.sys.oper.type.edit=edit
+dic.data.sys.oper.type.remove=remove
+dic.data.sys.oper.type.authorization=authorization
+dic.data.sys.oper.type.export=export
+dic.data.sys.oper.type.import=import
+dic.data.sys.oper.type.force.out=forceLogout
+dic.data.sys.oper.type.gen=genCode
+dic.data.sys.oper.type.clear=clear
+dic.data.sys.common.status.success=success
+dic.data.sys.common.status.fail=fail
+dic.data.camera.type.samll.camera=samll
+dic.data.camera.type.big.camera=big
+dic.data.camera.type.nvr=nvr
+dic.data.well.type.pump=pump
+dic.data.well.type.ketou=ketou
+dic.data.work.state.normal=normal
+dic.data.work.state.exception=exception
+dic.data.equip.type.alarm=alarmHost
+dic.data.equip.type.GPS=GPS
+dic.data.equip.type.gycgq=gycgq
+dic.data.equip.type.person.position=personPosition
+dic.data.equip.type.personandcar=personandcar
+dic.data.equip.type.access=accessHost
+dic.data.equip.type.jcj=jcj
+dic.data.equip.type.tube.alarm=tubeAlarm
+dic.data.equip.type.uav.platform=uavPlatform
+dic.data.tube.type.oil.pipe=oilPipe
+dic.data.tube.type.water.pipe=waterPipe
+dic.data.tube.type.gas.pipe=gasPipe
+dic.data.radar.type.h=H
+dic.data.radar.type.f=F
+dic.data.alarm.type=Warning
+dic.data.cameras.priority.user1=userLevel1
+dic.data.cameras.priority.user2=userLevel2
+dic.data.cameras.priority.user3=userLevel3
+dic.data.cameras.priority.user4=userLevel4
+dic.data.cameras.priority.sys.app.onekey=sys_app_onekey
+dic.data.cameras.priority.sys.access.control=sys_access_control
+dic.data.cameras.priority.sys.external=sys_external
+dic.data.cameras.priority.sys.radar.pump=sys_radar_pump
+dic.data.cameras.priority.sys.tube.leak=sys_tube_leak
+dic.data.cameras.priority.sys.radar.move=sys_radar_move
+dic.data.cameras.priority.sys.radar.fire=sys_radar_fire
+dic.data.cameras.priority.sys.radar.force=sys_radar_force
+dic.data.cameras.priority.sys.manual.inspection=sys_manual_inspection
+dic.data.cameras.priority.sys.auto.inspection=sys_auto_inspection
+
+dic.data.inspect.mode.auto=auto
+dic.data.inspect.mode.manual=manual
+dic.data.on=on
+dic.data.off=off
+dic.data.repeat.period.week=week
+dic.data.repeat.period.day=day
+dic.data.repeat.period.hour=hour
+dic.data.repeat.period.min=min
+dic.data.alarm.type.elec.steal=elecSteal
+dic.data.alarm.type.radar=radarAlarm
+dic.data.alarm.type.camera=camera
+dic.data.alarm.type.radar.fire=fireAlarm
+dic.data.alarm.type.external=externalAlarm
+dic.data.alarm.type.access=accessAlarm
+dic.data.alarm.type.tube=tubeLeak
+dic.data.alarm.type.elec.fencee=elecFencee
+dic.data.storage.operate.type.add=add
+dic.data.storage.operate.type.remove=remove
+dic.data.factory.hikvision=hikvision
+dic.data.factory.dahua=dahua
+dic.data.wall.type.no.entry=noEntry
+dic.data.wall.type.no.exit=noExit
+dic.data.code.enabled.on=transcoding
+dic.data.code.enabled.off=noTranscoding
+dic.data.change.code.mode.gpu=GPUHardwareDecoding
+dic.data.change.code.mode.cpu=CPUSoftwareDecoding
+
+##\u7CFB\u7EDF\u914D\u7F6E
+config.sys.index.skinName=skinName
+config.sys.user.initPassword=initPassword
+config.sys.index.sideTheme=sideTheme
+config.sys.account.registerUser=registerUser
+config.sys.account.captchaEnabled=captchaEnabled
+config.uav=uav
+config.HIKSuperBrain=HIKSuperBrain
+config.origin=origin
+config.CompanyMURL=CompanyMURL
+config.serverCode=serverCode
+config.PneumaticLockIPAndPort=PneumaticLockIPAndPort
+config.shVideo=shVideo
+config.appAlarmPointsDistance=appAlarmPointsDistance
+config.dblocal=dblocal
+config.31distance=31distance
+config.31time=31time
+config.radarUrl=radarUrl
+config.uavOriginPosition=uavOriginPosition
+config.stealElecUrl=stealElecUrl
+config.ws=ws
+config.RongCloudAppSecret=RongCloudAppSecret
+config.minioOut=minioOut
+config.minioIn=minioIn
+config.webrtcIP=webrtcIP
+config.indexIp=indexIp
+config.gis=gis
+config.eqHealthPassword=eqHealthPassword
+config.eqHealthAccount=eqHealthAccount
+config.eqHealthUrl=eqHealthUrl
+config.health=health
+config.refreshTime=refreshTime
+config.dayNightTime=dayNightTime
+config.rongyun=rongyun
+config.RongCloudAppKey=RongCloudAppKey
+config.syCarPT=syCarPT
diff --git a/ruoyi-admin/src/main/resources/i18n/messages_zh_CN.properties b/ruoyi-admin/src/main/resources/i18n/messages_zh_CN.properties
index 8769e7b..4338b05 100644
--- a/ruoyi-admin/src/main/resources/i18n/messages_zh_CN.properties
+++ b/ruoyi-admin/src/main/resources/i18n/messages_zh_CN.properties
@@ -39,3 +39,226 @@
##\u7EDF\u4E00\u8FD4\u56DE
operation.failed=\u64CD\u4F5C\u5931\u8D25
operation.success=\u64CD\u4F5C\u6210\u529F
+
+##\u83DC\u5355
+menu.system=\u7CFB\u7EDF\u7BA1\u7406
+menu.monitor=\u7CFB\u7EDF\u76D1\u63A7
+menu.tool=\u7CFB\u7EDF\u5DE5\u5177
+menu.user=\u7528\u6237\u7BA1\u7406
+menu.role=\u89D2\u8272\u7BA1\u7406
+menu.menu=\u83DC\u5355\u7BA1\u7406
+menu.dept=\u90E8\u95E8\u7BA1\u7406
+menu.post=\u5C97\u4F4D\u7BA1\u7406
+menu.dict=\u5B57\u5178\u7BA1\u7406
+menu.config=\u53C2\u6570\u8BBE\u7F6E
+menu.notice=\u901A\u77E5\u516C\u544A
+menu.log=\u65E5\u5FD7\u7BA1\u7406
+menu.online=\u5728\u7EBF\u7528\u6237
+menu.job=\u5B9A\u65F6\u4EFB\u52A1
+menu.druid=\u6570\u636E\u76D1\u63A7
+menu.server=\u670D\u52A1\u76D1\u63A7
+menu.cache=\u7F13\u5B58\u76D1\u63A7
+menu.cacheList=\u7F13\u5B58\u5217\u8868
+menu.build=\u8868\u5355\u6784\u5EFA
+menu.gen=\u4EE3\u7801\u751F\u6210
+menu.operlog=\u64CD\u4F5C\u65E5\u5FD7
+menu.logininfor=\u767B\u5F55\u65E5\u5FD7
+menu.management3d=\u4E09\u7EF4\u7BA1\u7406
+menu.device=\u8BBE\u5907\u7BA1\u7406
+menu.camera=\u89C6\u9891\u8BBE\u5907
+menu.radar=\u96F7\u8FBE\u8BBE\u5907
+menu.external=\u5916\u8054\u8BBE\u5907
+menu.videoFusion=\u89C6\u9891\u878D\u5408
+menu.tower=\u5854\u7BA1\u7406
+menu.alarmpoints=\u5174\u8DA3\u70B9\u7BA1\u7406
+menu.elecFence=\u7535\u5B50\u56F4\u680F
+menu.tube=\u7BA1\u7EBF\u7BA1\u7406
+menu.policeStation=\u8B66\u52A1\u5BA4\u7BA1\u7406
+menu.peopleAndCar=\u4EBA\u5458\u53CA\u8F66\u8F86\u7BA1\u7406
+menu.inspect=\u89C6\u9891\u5DE1\u68C0
+menu.inspectTask=\u89C6\u9891\u5DE1\u68C0\u4EFB\u52A1
+menu.inspectRecord=\u89C6\u9891\u5DE1\u68C0\u8BB0\u5F55
+menu.vtdu=\u6D41\u5A92\u4F53\u7BA1\u7406
+menu.vtduConfig=\u914D\u7F6E
+menu.vtduPullStream=\u62C9\u6D41
+menu.vtduPushStream=\u63A8\u6D41
+menu.test=\u6D4B\u8BD5\u9875
+menu.sdkTest=sdk\u6D4B\u8BD5\u9875
+menu.vtduTest=\u6D41\u5A92\u4F53\u6D4B\u8BD5\u9875
+menu.mqQueue=mq\u961F\u5217
+menu.minio=minio\u5B58\u50A8
+menu.minioEvent=\u5B58\u50A8\u4E8B\u4EF6
+menu.sysApi=\u7CFB\u7EDF\u63A5\u53E3
+menu.tiles3d=\u4E09\u7EF4\u5B9E\u666F
+
+menu.alarmPermission=\u62A5\u8B66\u6743\u9650\u83DC\u5355
+menu.appPermission=app\u6743\u9650
+menu.noGuideZone=noGuideZone
+menu.userResetPwd=\u91CD\u7F6E\u5BC6\u7801
+menu.accountUnlock=\u8D26\u6237\u89E3\u9501
+menu.batchForceOut=\u6279\u91CF\u5F3A\u9000
+menu.singleForceOut=\u5355\u6761\u5F3A\u9000
+menu.preview=\u9884\u89C8\u4EE3\u7801
+menu.generator=\u751F\u6210\u4EE3\u7801
+menu.query=\u67E5\u8BE2
+menu.add=\u65B0\u589E
+menu.edit=\u4FEE\u6539
+menu.remove=\u5220\u9664
+menu.export=\u5BFC\u51FA
+menu.import=\u5BFC\u5165
+##\u5B57\u5178\u7C7B\u578B
+dic.type.sys.user.sex=\u7528\u6237\u6027\u522B
+dic.type.sys.show.hide=\u83DC\u5355\u72B6\u6001
+dic.type.sys.normal.disable=\u7CFB\u7EDF\u5F00\u5173
+dic.type.sys.job.status=\u4EFB\u52A1\u72B6\u6001
+dic.type.sys.job.group=\u4EFB\u52A1\u5206\u7EC4
+dic.type.sys.yes.no=\u7CFB\u7EDF\u662F\u5426
+dic.type.sys.notice.type=\u901A\u77E5\u7C7B\u578B
+dic.type.sys.notice.status=\u901A\u77E5\u72B6\u6001
+dic.type.sys.oper.type=\u64CD\u4F5C\u7C7B\u578B
+dic.type.sys.common.status=\u7CFB\u7EDF\u72B6\u6001
+dic.type.camera.type=\u5149\u7535\u7C7B\u578B
+dic.type.well.type=\u6CB9\u4E95\u7C7B\u578B
+dic.type.work.state=\u8FD0\u884C\u72B6\u6001
+dic.type.factory=\u5382\u5546
+dic.type.tube.type=\u7BA1\u7EBF\u7C7B\u578B
+dic.type.radar.type=\u96F7\u8FBE\u7C7B\u578B
+dic.type.equip.type=\u5916\u8054\u8BBE\u5907\u7C7B\u578B
+dic.type.cameras.priority=\u76F8\u673A\u64CD\u63A7\u4F18\u5148\u7EA7
+dic.type.inspect.mode=\u5DE1\u68C0\u6A21\u5F0F
+dic.type.on.off=\u5F00\u5173
+dic.type.repeat.period=\u91CD\u590D\u5468\u671F
+dic.type.alarm.type=\u62A5\u8B66\u7C7B\u578B
+dic.type.storage.operate.type=\u5B58\u50A8\u4E8B\u4EF6\u7C7B\u578B
+dic.type.wall.type=\u7535\u5B50\u56F4\u680F\u7C7B\u578B
+dic.type.code.enabled=\u6D41\u5A92\u4F53\u8F6C\u7801\u5F00\u5173
+dic.type.change.code.mode=\u6D41\u5A92\u4F53\u89E3\u7801\u6A21\u5F0F
+##\u5B57\u5178
+dic.data.sys.user.sex.male=\u7537
+dic.data.sys.user.sex.female=\u5973
+dic.data.sys.user.sex.other=\u672A\u77E5
+dic.data.sys.show=\u663E\u793A
+dic.data.sys.hide=\u9690\u85CF
+dic.data.sys.normal=\u6B63\u5E38
+dic.data.sys.disable=\u505C\u7528
+dic.data.sys.job.status.normal=\u6B63\u5E38
+dic.data.sys.job.status.pause=\u6682\u505C
+dic.data.sys.job.group.default=\u9ED8\u8BA4
+dic.data.sys.job.group.system=\u7CFB\u7EDF
+dic.data.sys.yes=\u662F
+dic.data.sys.no=\u5426
+dic.data.sys.notice=\u7CFB\u7EDF\u901A\u77E5
+dic.data.sys.announcement=\u516C\u544A
+dic.data.sys.notice.status.normal=\u6B63\u5E38
+dic.data.sys.notice.status.close=\u5173\u95ED
+dic.data.sys.oper.type.other=\u5176\u4ED6
+dic.data.sys.oper.type.add=\u65B0\u589E
+dic.data.sys.oper.type.edit=\u4FEE\u6539
+dic.data.sys.oper.type.remove=\u5220\u9664
+dic.data.sys.oper.type.authorization=\u6388\u6743
+dic.data.sys.oper.type.export=\u5BFC\u51FA
+dic.data.sys.oper.type.import=\u5BFC\u5165
+dic.data.sys.oper.type.force.out=\u5F3A\u9000
+dic.data.sys.oper.type.gen=\u751F\u6210\u4EE3\u7801
+dic.data.sys.oper.type.clear=\u6E05\u7A7A\u6570\u636E
+dic.data.sys.common.status.success=\u6210\u529F
+dic.data.sys.common.status.fail=\u6210\u529F
+dic.data.camera.type.samll.camera=\u5C0F\u5149\u7535
+dic.data.camera.type.big.camera=\u5927\u5149\u7535
+dic.data.camera.type.nvr=\u7EC8\u7AEF
+dic.data.well.type.pump=\u62BD\u6CB9\u673A
+dic.data.well.type.ketou=\u78D5\u5934\u673A
+dic.data.work.state.normal=\u6B63\u5E38
+dic.data.work.state.exception=\u5F02\u5E38
+dic.data.equip.type.alarm=\u62A5\u8B66\u4E3B\u673A
+dic.data.equip.type.GPS=GPS
+dic.data.equip.type.gycgq=\u5DE5\u4E1A\u4F20\u611F\u5668
+dic.data.equip.type.person.position=\u4EBA\u5458\u5B9A\u4F4D
+dic.data.equip.type.personandcar=\u4EBA\u8F66\u8BC6\u522B
+dic.data.equip.type.access=\u95E8\u7981\u4E3B\u673A
+dic.data.equip.type.jcj=\u95F4\u62BD\u4E95\u7BA1\u7406
+dic.data.equip.type.tube.alarm=\u7BA1\u7EBF\u62A5\u8B66
+dic.data.equip.type.uav.platform=\u65E0\u4EBA\u673A\u4E91\u5E73\u53F0
+dic.data.tube.type.oil.pipe=\u6CB9\u7BA1
+dic.data.tube.type.water.pipe=\u6C34\u7BA1
+dic.data.tube.type.gas.pipe=\u71C3\u6C14\u7BA1
+dic.data.radar.type.h=H
+dic.data.radar.type.f=F
+dic.data.alarm.type=\u9884\u8B66\u544A\u8B66
+dic.data.cameras.priority.user1=\u7528\u6237\u4E00\u7EA7
+dic.data.cameras.priority.user2=\u7528\u6237\u4E8C\u7EA7
+dic.data.cameras.priority.user3=\u7528\u6237\u4E09\u7EA7
+dic.data.cameras.priority.sys.app.onekey=sys_app_onekey
+dic.data.cameras.priority.sys.access.control=sys_access_control
+dic.data.cameras.priority.sys.external=sys_external
+dic.data.cameras.priority.sys.radar.pump=sys_radar_pump
+dic.data.cameras.priority.sys.tube.leak=sys_tube_leak
+dic.data.cameras.priority.sys.radar.move=sys_radar_move
+dic.data.cameras.priority.sys.radar.fire=sys_radar_fire
+dic.data.cameras.priority.sys.radar.force=sys_radar_force
+dic.data.cameras.priority.sys.manual.inspection=sys_manual_inspection
+dic.data.cameras.priority.sys.auto.inspection=sys_auto_inspection
+
+dic.data.inspect.mode.auto=\u81EA\u52A8
+dic.data.inspect.mode.manual=\u624B\u52A8
+dic.data.on=\u5F00
+dic.data.off=\u5173
+dic.data.repeat.period.week=\u5468
+dic.data.repeat.period.day=\u65E5
+dic.data.repeat.period.hour=\u5C0F\u65F6
+dic.data.repeat.period.min=\u5206\u949F
+dic.data.alarm.type.elec.steal=\u76D7\u7535\u62A5\u8B66
+dic.data.alarm.type.radar=\u96F7\u8FBE\u62A5\u8B66
+dic.data.alarm.type.camera=\u901A\u7528\u5149\u7535
+dic.data.alarm.type.radar.fire=\u9632\u706B\u62A5\u8B66
+dic.data.alarm.type.external=\u5916\u8054\u62A5\u8B66
+dic.data.alarm.type.access=\u95E8\u7981\u62A5\u8B66
+dic.data.alarm.type.tube=\u7BA1\u7EBF\u6CC4\u6F0F
+dic.data.alarm.type.elec.fencee=\u7535\u5B50\u56F4\u680F
+dic.data.storage.operate.type.add=\u65B0\u589E
+dic.data.storage.operate.type.remove=\u5220\u9664
+dic.data.factory.hikvision=\u6D77\u5EB7
+dic.data.factory.dahua=\u5927\u534E
+dic.data.wall.type.no.entry=\u7981\u5165
+dic.data.wall.type.no.exit=\u7981\u51FA
+dic.data.code.enabled.on=\u8F6C\u7801
+dic.data.code.enabled.off=\u4E0D\u8F6C\u7801
+dic.data.change.code.mode.gpu=GPU\u786C\u89E3\u7801
+dic.data.change.code.mode.cpu=CPU\u8F6F\u89E3\u7801
+
+##\u7CFB\u7EDF\u914D\u7F6E
+config.sys.index.skinName=\u4E3B\u6846\u67B6\u9875-\u9ED8\u8BA4\u76AE\u80A4\u6837\u5F0F\u540D\u79F0
+config.sys.user.initPassword=\u7528\u6237\u7BA1\u7406-\u8D26\u53F7\u521D\u59CB\u5BC6\u7801
+config.sys.index.sideTheme=\u4E3B\u6846\u67B6\u9875-\u4FA7\u8FB9\u680F\u4E3B\u9898
+config.sys.account.registerUser=\u8D26\u53F7\u81EA\u52A9-\u662F\u5426\u5F00\u542F\u7528\u6237\u6CE8\u518C\u529F\u80FD
+config.sys.account.captchaEnabled=\u8D26\u53F7\u81EA\u52A9-\u9A8C\u8BC1\u7801\u5F00\u5173
+config.uav=\u65E0\u4EBA\u673A\u5730\u5740
+config.HIKSuperBrain=\u6D77\u5EB7\u8D85\u8111\u5730\u5740
+config.origin=\u521D\u59CB\u4F4D\u7F6E
+config.CompanyMURL=\u516C\u53F8M\u670D\u52A1\u5730\u5740
+config.serverCode=\u670D\u52A1\u4EE3\u7801
+config.PneumaticLockIPAndPort=\u6C14\u52A8\u9501\u5730\u5740\u548C\u7AEF\u53E3
+config.shVideo=\u5174\u8DA3\u70B9\u89C6\u9891\u6807\u7B7E\u63A5\u53E3\u5730\u5740
+config.appAlarmPointsDistance=app\u4E0E\u5174\u8DA3\u70B9\u8DDD\u79BB
+config.dblocal=\u6570\u636E\u5E93\u6240\u5C5E
+config.31distance=\u4E09\u4E00\u5B9A\u8DDD
+config.31time=\u4E09\u4E00\u5B9A\u65F6
+config.radarUrl=radar\u670D\u52A1\u5668
+config.uavOriginPosition=\u65E0\u4EBA\u673A\u9ED8\u8BA4\u4F4D\u7F6E
+config.stealElecUrl=\u9632\u76D7\u7535\u6570\u636E\u63A5\u53E3
+config.ws=websocket\u5730\u5740
+config.RongCloudAppSecret=\u878D\u4E91APP\u79D8\u94A5
+config.minioOut=minio\u5916\u7F51
+config.minioIn=minio\u5185\u7F51
+config.webrtcIP=webrtc\u5730\u5740
+config.indexIp=\u6A21\u578B\u5730\u5740\u4EE3\u7406ip
+config.gis=GIS\u6570\u636E\u7F51\u7EDC\u670D\u52A1\u5730\u5740
+config.eqHealthPassword=\u8BBE\u5907\u5065\u5EB7\u5BC6\u7801
+config.eqHealthAccount=\u8BBE\u5907\u5065\u5EB7\u8D26\u53F7
+config.eqHealthUrl=\u8BBE\u5907\u5065\u5EB7\u65B0\u63A5\u53E3\u5730\u5740
+config.health=\u8BBE\u5907\u5065\u5EB7\u5730\u5740
+config.refreshTime=\u62A5\u8B66\u5237\u65B0\u65F6\u95F4
+config.dayNightTime=\u5149\u7535\u65E5\u591C\u5207\u6362\u65F6\u95F4
+config.rongyun=\u878D\u4E91IP
+config.RongCloudAppKey=\u878D\u4E91APP\u952E
+config.syCarPT=\u4E09\u4E00\u5E73\u53F0ip
\ No newline at end of file
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/AjaxResult.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/AjaxResult.java
index 42fbd9c..7f25464 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/AjaxResult.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/AjaxResult.java
@@ -2,6 +2,7 @@
import java.util.HashMap;
import com.ruoyi.common.constant.HttpStatus;
+import com.ruoyi.common.utils.MessageUtils;
import com.ruoyi.common.utils.StringUtils;
/**
@@ -65,7 +66,8 @@
*/
public static AjaxResult success()
{
- return AjaxResult.success("鎿嶄綔鎴愬姛");
+ String message = MessageUtils.message("operation.success");
+ return AjaxResult.success(message);
}
/**
@@ -74,8 +76,8 @@
* @return 鎴愬姛娑堟伅
*/
public static AjaxResult success(Object data)
- {
- return AjaxResult.success("鎿嶄綔鎴愬姛", data);
+ { String message = MessageUtils.message("operation.success");
+ return AjaxResult.success(message, data);
}
/**
@@ -131,7 +133,8 @@
*/
public static AjaxResult error()
{
- return AjaxResult.error("鎿嶄綔澶辫触");
+ String message = MessageUtils.message("operation.failed");
+ return AjaxResult.error(message);
}
/**
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysConfig.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysConfig.java
index 79e16ab..1069400 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysConfig.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysConfig.java
@@ -24,7 +24,7 @@
/** 鍙傛暟鍚嶇О */
@Excel(name = "鍙傛暟鍚嶇О")
private String configName;
-
+ private String configNameI18n;
/** 鍙傛暟閿悕 */
@Excel(name = "鍙傛暟閿悕")
private String configKey;
@@ -59,6 +59,14 @@
this.configName = configName;
}
+ public String getConfigNameI18n() {
+ return configNameI18n;
+ }
+
+ public void setConfigNameI18n(String configNameI18n) {
+ this.configNameI18n = configNameI18n;
+ }
+
@NotBlank(message = "鍙傛暟閿悕闀垮害涓嶈兘涓虹┖")
@Size(min = 0, max = 100, message = "鍙傛暟閿悕闀垮害涓嶈兘瓒呰繃100涓瓧绗�")
public String getConfigKey()
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictData.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictData.java
index 738f12c..74b94dd 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictData.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictData.java
@@ -29,7 +29,8 @@
/** 瀛楀吀鏍囩 */
@Excel(name = "瀛楀吀鏍囩")
private String dictLabel;
-
+ /** 瀛楀吀鏍囩鍥介檯鍖栨爣璇� */
+ private String dictLabelI18n;
/** 瀛楀吀閿�� */
@Excel(name = "瀛楀吀閿��")
private String dictValue;
@@ -84,6 +85,14 @@
this.dictLabel = dictLabel;
}
+ public String getDictLabelI18n() {
+ return dictLabelI18n;
+ }
+
+ public void setDictLabelI18n(String dictLabelI18n) {
+ this.dictLabelI18n = dictLabelI18n;
+ }
+
@NotBlank(message = "瀛楀吀閿�间笉鑳戒负绌�")
@Size(min = 0, max = 100, message = "瀛楀吀閿�奸暱搴︿笉鑳借秴杩�100涓瓧绗�")
public String getDictValue()
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictType.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictType.java
index e324fcf..3bcb84a 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictType.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictType.java
@@ -25,7 +25,7 @@
/** 瀛楀吀鍚嶇О */
@Excel(name = "瀛楀吀鍚嶇О")
private String dictName;
-
+ private String dictNameI18n;
/** 瀛楀吀绫诲瀷 */
@Excel(name = "瀛楀吀绫诲瀷")
private String dictType;
@@ -56,6 +56,14 @@
this.dictName = dictName;
}
+ public String getDictNameI18n() {
+ return dictNameI18n;
+ }
+
+ public void setDictNameI18n(String dictNameI18n) {
+ this.dictNameI18n = dictNameI18n;
+ }
+
@NotBlank(message = "瀛楀吀绫诲瀷涓嶈兘涓虹┖")
@Size(min = 0, max = 100, message = "瀛楀吀绫诲瀷绫诲瀷闀垮害涓嶈兘瓒呰繃100涓瓧绗�")
@Pattern(regexp = "^[a-z][a-z0-9_]*$", message = "瀛楀吀绫诲瀷蹇呴』浠ュ瓧姣嶅紑澶达紝涓斿彧鑳戒负锛堝皬鍐欏瓧姣嶏紝鏁板瓧锛屼笅婊戠嚎锛�")
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysMenu.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysMenu.java
index 94e1a18..ba9dea9 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysMenu.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysMenu.java
@@ -24,6 +24,9 @@
/** 鑿滃崟鍚嶇О */
private String menuName;
+ /** 鑿滃崟鍚嶇ОI18N */
+ private String menuNameI18n;
+
/** 鐖惰彍鍗曞悕绉� */
private String parentName;
@@ -83,6 +86,14 @@
return menuName;
}
+ public String getMenuNameI18n() {
+ return menuNameI18n;
+ }
+
+ public void setMenuNameI18n(String menuNameI18n) {
+ this.menuNameI18n = menuNameI18n;
+ }
+
public void setMenuName(String menuName)
{
this.menuName = menuName;
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/filter/MyI18nInterceptor.java b/ruoyi-common/src/main/java/com/ruoyi/common/filter/MyI18nInterceptor.java
index 9046e96..c8d828c 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/filter/MyI18nInterceptor.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/filter/MyI18nInterceptor.java
@@ -15,10 +15,16 @@
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
final String key = "language";
- String language = "en_US";//request.getHeader(key);
- // 鍓嶇浼犻�掔殑language蹇呴』鏄痾h-CN鏍煎紡鐨勶紝涓棿鐨�-蹇呴』瑕佸畬鏁达紝涓嶈兘鍙紶閫抸h鎴杄n
- log.debug("褰撳墠璇█={}",language);
- Locale locale = new Locale(language.split("_")[0],language.split("_")[1]);
+ //String language = "en_US";
+ //String language = "zh_CN";
+ String language = request.getHeader(key);
+ if (language == null) {
+ //String language = "en_US";
+ language = "en_US";
+ }
+ // 鍓嶇浼犻�掔殑language蹇呴』鏄痾h_CN鏍煎紡鐨勶紝涓棿鐨刜蹇呴』瑕佸畬鏁达紝涓嶈兘鍙紶閫抸h鎴杄n
+ log.debug("褰撳墠璇█={}", language);
+ Locale locale = new Locale(language.split("_")[0], language.split("_")[1]);
// 杩欐牱璧嬪�间互鍚庯紝MessageUtils.message鏂规硶灏变笉鐢ㄤ慨鏀逛簡
LocaleContextHolder.setLocale(locale);
return true;
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/MessageUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/MessageUtils.java
index 7dac75a..d222ae5 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/MessageUtils.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/MessageUtils.java
@@ -19,8 +19,15 @@
* @return 鑾峰彇鍥介檯鍖栫炕璇戝��
*/
public static String message(String code, Object... args)
- {
- MessageSource messageSource = SpringUtils.getBean(MessageSource.class);
- return messageSource.getMessage(code, args, LocaleContextHolder.getLocale());
+ { String message="";
+ try {
+ MessageSource messageSource = SpringUtils.getBean(MessageSource.class);
+ message = messageSource.getMessage(code, args, LocaleContextHolder.getLocale());
+ }
+ catch(Exception ex)
+ {
+
+ }
+ return message;
}
}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysConfigServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysConfigServiceImpl.java
index 182b371..b82c02f 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysConfigServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysConfigServiceImpl.java
@@ -7,6 +7,7 @@
import javax.management.Query;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.ruoyi.common.utils.MessageUtils;
import org.springframework.stereotype.Service;
import com.ruoyi.common.annotation.DataSource;
import com.ruoyi.common.constant.CacheConstants;
@@ -55,7 +56,14 @@
{
SysConfig config = new SysConfig();
config.setConfigId(configId);
- return configMapper.selectConfig(config);
+ SysConfig sysConfig = configMapper.selectConfig(config);
+ //鍥介檯鍖�
+ String message = MessageUtils.message("config." + sysConfig.getConfigNameI18n());
+ if(StringUtils.isNotEmpty(message))
+ {
+ sysConfig.setConfigName(message);
+ }
+ return sysConfig;
}
/**
@@ -107,7 +115,15 @@
@Override
public List<SysConfig> selectConfigList(SysConfig config)
{
- return configMapper.selectConfigList(config);
+ List<SysConfig> sysConfigs = configMapper.selectConfigList(config);
+ //鍥介檯鍖�
+ sysConfigs.stream().forEach(sysConfig -> {
+ String message = MessageUtils.message("config." + sysConfig.getConfigNameI18n());
+ if (StringUtils.isNotEmpty(message)) {
+ sysConfig.setConfigName(message);
+ }
+ });
+ return sysConfigs;
}
/**
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictDataServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictDataServiceImpl.java
index fced569..37a1115 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictDataServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictDataServiceImpl.java
@@ -1,6 +1,9 @@
package com.ruoyi.system.service.impl;
import java.util.List;
+
+import com.ruoyi.common.utils.MessageUtils;
+import com.ruoyi.common.utils.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.common.core.domain.entity.SysDictData;
@@ -10,62 +13,71 @@
/**
* 瀛楀吀 涓氬姟灞傚鐞�
- *
+ *
* @author ruoyi
*/
@Service
-public class SysDictDataServiceImpl implements ISysDictDataService
-{
+public class SysDictDataServiceImpl implements ISysDictDataService {
@Autowired
private SysDictDataMapper dictDataMapper;
/**
* 鏍规嵁鏉′欢鍒嗛〉鏌ヨ瀛楀吀鏁版嵁
- *
+ *
* @param dictData 瀛楀吀鏁版嵁淇℃伅
* @return 瀛楀吀鏁版嵁闆嗗悎淇℃伅
*/
@Override
- public List<SysDictData> selectDictDataList(SysDictData dictData)
- {
- return dictDataMapper.selectDictDataList(dictData);
+ public List<SysDictData> selectDictDataList(SysDictData dictData) {
+ List<SysDictData> sysDictDataList = dictDataMapper.selectDictDataList(dictData);
+ //鍥介檯鍖�
+ sysDictDataList.stream().forEach(sysDictData -> {
+ String message = MessageUtils.message("dic.data." + sysDictData.getDictLabelI18n());
+ if (StringUtils.isNotEmpty(message)) {
+ sysDictData.setDictLabel(message);
+ }
+ });
+ return sysDictDataList;
}
/**
* 鏍规嵁瀛楀吀绫诲瀷鍜屽瓧鍏搁敭鍊兼煡璇㈠瓧鍏告暟鎹俊鎭�
- *
- * @param dictType 瀛楀吀绫诲瀷
+ *
+ * @param dictType 瀛楀吀绫诲瀷
* @param dictValue 瀛楀吀閿��
* @return 瀛楀吀鏍囩
*/
@Override
- public String selectDictLabel(String dictType, String dictValue)
- {
+ public String selectDictLabel(String dictType, String dictValue) {
return dictDataMapper.selectDictLabel(dictType, dictValue);
}
/**
* 鏍规嵁瀛楀吀鏁版嵁ID鏌ヨ淇℃伅
- *
+ *
* @param dictCode 瀛楀吀鏁版嵁ID
* @return 瀛楀吀鏁版嵁
*/
@Override
- public SysDictData selectDictDataById(Long dictCode)
- {
- return dictDataMapper.selectDictDataById(dictCode);
+ public SysDictData selectDictDataById(Long dictCode) {
+ SysDictData sysDictData = dictDataMapper.selectDictDataById(dictCode);
+ //鍥介檯鍖�
+ String message = MessageUtils.message("dic.data." + sysDictData.getDictLabelI18n());
+ if(StringUtils.isNotEmpty(message))
+ {
+ sysDictData.setDictLabel(message);
+ }
+ return sysDictData;
}
/**
* 鎵归噺鍒犻櫎瀛楀吀鏁版嵁淇℃伅
- *
+ *
* @param dictCodes 闇�瑕佸垹闄ょ殑瀛楀吀鏁版嵁ID
*/
@Override
- public void deleteDictDataByIds(Long[] dictCodes)
- {
- for (Long dictCode : dictCodes)
- {
+ public void deleteDictDataByIds(Long[] dictCodes) {
+ for (Long dictCode : dictCodes) {
SysDictData data = selectDictDataById(dictCode);
dictDataMapper.deleteDictDataById(dictCode);
List<SysDictData> dictDatas = dictDataMapper.selectDictDataByType(data.getDictType());
@@ -75,16 +87,14 @@
/**
* 鏂板淇濆瓨瀛楀吀鏁版嵁淇℃伅
- *
+ *
* @param data 瀛楀吀鏁版嵁淇℃伅
* @return 缁撴灉
*/
@Override
- public int insertDictData(SysDictData data)
- {
+ public int insertDictData(SysDictData data) {
int row = dictDataMapper.insertDictData(data);
- if (row > 0)
- {
+ if (row > 0) {
List<SysDictData> dictDatas = dictDataMapper.selectDictDataByType(data.getDictType());
DictUtils.setDictCache(data.getDictType(), dictDatas);
}
@@ -93,16 +103,14 @@
/**
* 淇敼淇濆瓨瀛楀吀鏁版嵁淇℃伅
- *
+ *
* @param data 瀛楀吀鏁版嵁淇℃伅
* @return 缁撴灉
*/
@Override
- public int updateDictData(SysDictData data)
- {
+ public int updateDictData(SysDictData data) {
int row = dictDataMapper.updateDictData(data);
- if (row > 0)
- {
+ if (row > 0) {
List<SysDictData> dictDatas = dictDataMapper.selectDictDataByType(data.getDictType());
DictUtils.setDictCache(data.getDictType(), dictDatas);
}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictTypeServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictTypeServiceImpl.java
index a06b236..d0ddbf2 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictTypeServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictTypeServiceImpl.java
@@ -5,6 +5,8 @@
import java.util.Map;
import java.util.stream.Collectors;
import javax.annotation.PostConstruct;
+
+import com.ruoyi.common.utils.MessageUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -20,12 +22,11 @@
/**
* 瀛楀吀 涓氬姟灞傚鐞�
- *
+ *
* @author ruoyi
*/
@Service
-public class SysDictTypeServiceImpl implements ISysDictTypeService
-{
+public class SysDictTypeServiceImpl implements ISysDictTypeService {
@Autowired
private SysDictTypeMapper dictTypeMapper;
@@ -36,52 +37,60 @@
* 椤圭洰鍚姩鏃讹紝鍒濆鍖栧瓧鍏稿埌缂撳瓨
*/
@PostConstruct
- public void init()
- {
+ public void init() {
loadingDictCache();
}
/**
* 鏍规嵁鏉′欢鍒嗛〉鏌ヨ瀛楀吀绫诲瀷
- *
+ *
* @param dictType 瀛楀吀绫诲瀷淇℃伅
* @return 瀛楀吀绫诲瀷闆嗗悎淇℃伅
*/
@Override
- public List<SysDictType> selectDictTypeList(SysDictType dictType)
- {
+ public List<SysDictType> selectDictTypeList(SysDictType dictType) {
List<SysDictType> sysDictTypes = dictTypeMapper.selectDictTypeList(dictType);
+ //鍥介檯鍖�
+ sysDictTypes.stream().forEach(sysDictType -> {
+ String message = MessageUtils.message("dic.type." + sysDictType.getDictNameI18n());
+ if (StringUtils.isNotEmpty(message)) {
+ sysDictType.setDictName(message);
+ }
+ });
return sysDictTypes;
}
/**
* 鏍规嵁鎵�鏈夊瓧鍏哥被鍨�
- *
+ *
* @return 瀛楀吀绫诲瀷闆嗗悎淇℃伅
*/
@Override
- public List<SysDictType> selectDictTypeAll()
- {
+ public List<SysDictType> selectDictTypeAll() {
return dictTypeMapper.selectDictTypeAll();
}
/**
* 鏍规嵁瀛楀吀绫诲瀷鏌ヨ瀛楀吀鏁版嵁
- *
+ *
* @param dictType 瀛楀吀绫诲瀷
* @return 瀛楀吀鏁版嵁闆嗗悎淇℃伅
*/
@Override
- public List<SysDictData> selectDictDataByType(String dictType)
- {
+ public List<SysDictData> selectDictDataByType(String dictType) {
List<SysDictData> dictDatas = DictUtils.getDictCache(dictType);
- if (StringUtils.isNotEmpty(dictDatas))
- {
+ if (StringUtils.isNotEmpty(dictDatas)) {
+ //鍥介檯鍖�
+ dictDatas.stream().forEach(dictData -> {
+ String message = MessageUtils.message("dic.data." + dictData.getDictLabelI18n());
+ if (StringUtils.isNotEmpty(message)) {
+ dictData.setDictLabel(message);
+ }
+ });
return dictDatas;
}
dictDatas = dictDataMapper.selectDictDataByType(dictType);
- if (StringUtils.isNotEmpty(dictDatas))
- {
+ if (StringUtils.isNotEmpty(dictDatas)) {
DictUtils.setDictCache(dictType, dictDatas);
return dictDatas;
}
@@ -90,41 +99,43 @@
/**
* 鏍规嵁瀛楀吀绫诲瀷ID鏌ヨ淇℃伅
- *
+ *
* @param dictId 瀛楀吀绫诲瀷ID
* @return 瀛楀吀绫诲瀷
*/
@Override
- public SysDictType selectDictTypeById(Long dictId)
- {
- return dictTypeMapper.selectDictTypeById(dictId);
+ public SysDictType selectDictTypeById(Long dictId) {
+ SysDictType sysDictType = dictTypeMapper.selectDictTypeById(dictId);
+ //鍥介檯鍖�
+ String message = MessageUtils.message("dic.type." + sysDictType.getDictNameI18n());
+ if(StringUtils.isNotEmpty(message))
+ {
+ sysDictType.setDictName(message);
+ }
+ return sysDictType;
}
/**
* 鏍规嵁瀛楀吀绫诲瀷鏌ヨ淇℃伅
- *
+ *
* @param dictType 瀛楀吀绫诲瀷
* @return 瀛楀吀绫诲瀷
*/
@Override
- public SysDictType selectDictTypeByType(String dictType)
- {
+ public SysDictType selectDictTypeByType(String dictType) {
return dictTypeMapper.selectDictTypeByType(dictType);
}
/**
* 鎵归噺鍒犻櫎瀛楀吀绫诲瀷淇℃伅
- *
+ *
* @param dictIds 闇�瑕佸垹闄ょ殑瀛楀吀ID
*/
@Override
- public void deleteDictTypeByIds(Long[] dictIds)
- {
- for (Long dictId : dictIds)
- {
+ public void deleteDictTypeByIds(Long[] dictIds) {
+ for (Long dictId : dictIds) {
SysDictType dictType = selectDictTypeById(dictId);
- if (dictDataMapper.countDictDataByType(dictType.getDictType()) > 0)
- {
+ if (dictDataMapper.countDictDataByType(dictType.getDictType()) > 0) {
throw new ServiceException(String.format("%1$s宸插垎閰�,涓嶈兘鍒犻櫎", dictType.getDictName()));
}
dictTypeMapper.deleteDictTypeById(dictId);
@@ -136,13 +147,11 @@
* 鍔犺浇瀛楀吀缂撳瓨鏁版嵁
*/
@Override
- public void loadingDictCache()
- {
+ public void loadingDictCache() {
SysDictData dictData = new SysDictData();
dictData.setStatus("0");
Map<String, List<SysDictData>> dictDataMap = dictDataMapper.selectDictDataList(dictData).stream().collect(Collectors.groupingBy(SysDictData::getDictType));
- for (Map.Entry<String, List<SysDictData>> entry : dictDataMap.entrySet())
- {
+ for (Map.Entry<String, List<SysDictData>> entry : dictDataMap.entrySet()) {
DictUtils.setDictCache(entry.getKey(), entry.getValue().stream().sorted(Comparator.comparing(SysDictData::getDictSort)).collect(Collectors.toList()));
}
}
@@ -151,8 +160,7 @@
* 娓呯┖瀛楀吀缂撳瓨鏁版嵁
*/
@Override
- public void clearDictCache()
- {
+ public void clearDictCache() {
DictUtils.clearDictCache();
}
@@ -160,24 +168,21 @@
* 閲嶇疆瀛楀吀缂撳瓨鏁版嵁
*/
@Override
- public void resetDictCache()
- {
+ public void resetDictCache() {
clearDictCache();
loadingDictCache();
}
/**
* 鏂板淇濆瓨瀛楀吀绫诲瀷淇℃伅
- *
+ *
* @param dict 瀛楀吀绫诲瀷淇℃伅
* @return 缁撴灉
*/
@Override
- public int insertDictType(SysDictType dict)
- {
+ public int insertDictType(SysDictType dict) {
int row = dictTypeMapper.insertDictType(dict);
- if (row > 0)
- {
+ if (row > 0) {
DictUtils.setDictCache(dict.getDictType(), null);
}
return row;
@@ -185,19 +190,17 @@
/**
* 淇敼淇濆瓨瀛楀吀绫诲瀷淇℃伅
- *
+ *
* @param dict 瀛楀吀绫诲瀷淇℃伅
* @return 缁撴灉
*/
@Override
@Transactional
- public int updateDictType(SysDictType dict)
- {
+ public int updateDictType(SysDictType dict) {
SysDictType oldDict = dictTypeMapper.selectDictTypeById(dict.getDictId());
dictDataMapper.updateDictDataType(oldDict.getDictType(), dict.getDictType());
int row = dictTypeMapper.updateDictType(dict);
- if (row > 0)
- {
+ if (row > 0) {
List<SysDictData> dictDatas = dictDataMapper.selectDictDataByType(dict.getDictType());
DictUtils.setDictCache(dict.getDictType(), dictDatas);
}
@@ -206,17 +209,15 @@
/**
* 鏍¢獙瀛楀吀绫诲瀷绉版槸鍚﹀敮涓�
- *
+ *
* @param dict 瀛楀吀绫诲瀷
* @return 缁撴灉
*/
@Override
- public String checkDictTypeUnique(SysDictType dict)
- {
+ public String checkDictTypeUnique(SysDictType dict) {
Long dictId = StringUtils.isNull(dict.getDictId()) ? -1L : dict.getDictId();
SysDictType dictType = dictTypeMapper.checkDictTypeUnique(dict.getDictType());
- if (StringUtils.isNotNull(dictType) && dictType.getDictId().longValue() != dictId.longValue())
- {
+ if (StringUtils.isNotNull(dictType) && dictType.getDictId().longValue() != dictId.longValue()) {
return UserConstants.NOT_UNIQUE;
}
return UserConstants.UNIQUE;
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java
index 64948e3..db3184c 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java
@@ -8,6 +8,8 @@
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
+
+import com.ruoyi.common.utils.MessageUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.common.constant.Constants;
@@ -27,12 +29,11 @@
/**
* 鑿滃崟 涓氬姟灞傚鐞�
- *
+ *
* @author ruoyi
*/
@Service
-public class SysMenuServiceImpl implements ISysMenuService
-{
+public class SysMenuServiceImpl implements ISysMenuService {
public static final String PREMISSION_STRING = "perms[\"{0}\"]";
@Autowired
@@ -46,54 +47,53 @@
/**
* 鏍规嵁鐢ㄦ埛鏌ヨ绯荤粺鑿滃崟鍒楄〃
- *
+ *
* @param userId 鐢ㄦ埛ID
* @return 鑿滃崟鍒楄〃
*/
@Override
- public List<SysMenu> selectMenuList(String userId)
- {
+ public List<SysMenu> selectMenuList(String userId) {
return selectMenuList(new SysMenu(), userId);
}
/**
* 鏌ヨ绯荤粺鑿滃崟鍒楄〃
- *
+ *
* @param menu 鑿滃崟淇℃伅
* @return 鑿滃崟鍒楄〃
*/
@Override
- public List<SysMenu> selectMenuList(SysMenu menu, String userId)
- {
+ public List<SysMenu> selectMenuList(SysMenu menu, String userId) {
List<SysMenu> menuList = null;
// 绠$悊鍛樻樉绀烘墍鏈夎彍鍗曚俊鎭�
- if (SysUser.isAdmin(userId))
- {
+ if (SysUser.isAdmin(userId)) {
menuList = menuMapper.selectMenuList(menu);
- }
- else
- {
+ } else {
menu.getParams().put("userId", userId);
menuList = menuMapper.selectMenuListByUserId(menu);
}
+ //鍥介檯鍖�
+ menuList.stream().forEach(sysMenu -> {
+ String message = MessageUtils.message("menu." + sysMenu.getMenuNameI18n());
+ if (StringUtils.isNotEmpty(message)) {
+ sysMenu.setMenuName(message);
+ }
+ });
return menuList;
}
/**
* 鏍规嵁鐢ㄦ埛ID鏌ヨ鏉冮檺
- *
+ *
* @param userId 鐢ㄦ埛ID
* @return 鏉冮檺鍒楄〃
*/
@Override
- public Set<String> selectMenuPermsByUserId(String userId)
- {
+ public Set<String> selectMenuPermsByUserId(String userId) {
List<String> perms = menuMapper.selectMenuPermsByUserId(userId);
Set<String> permsSet = new HashSet<>();
- for (String perm : perms)
- {
- if (StringUtils.isNotEmpty(perm))
- {
+ for (String perm : perms) {
+ if (StringUtils.isNotEmpty(perm)) {
permsSet.addAll(Arrays.asList(perm.trim().split(",")));
}
}
@@ -102,19 +102,16 @@
/**
* 鏍规嵁瑙掕壊ID鏌ヨ鏉冮檺
- *
+ *
* @param roleId 瑙掕壊ID
* @return 鏉冮檺鍒楄〃
*/
@Override
- public Set<String> selectMenuPermsByRoleId(Long roleId)
- {
+ public Set<String> selectMenuPermsByRoleId(Long roleId) {
List<String> perms = menuMapper.selectMenuPermsByRoleId(roleId);
Set<String> permsSet = new HashSet<>();
- for (String perm : perms)
- {
- if (StringUtils.isNotEmpty(perm))
- {
+ for (String perm : perms) {
+ if (StringUtils.isNotEmpty(perm)) {
permsSet.addAll(Arrays.asList(perm.trim().split(",")));
}
}
@@ -123,20 +120,16 @@
/**
* 鏍规嵁鐢ㄦ埛ID鏌ヨ鑿滃崟
- *
+ *
* @param userId 鐢ㄦ埛鍚嶇О
* @return 鑿滃崟鍒楄〃
*/
@Override
- public List<SysMenu> selectMenuTreeByUserId(String userId)
- {
+ public List<SysMenu> selectMenuTreeByUserId(String userId) {
List<SysMenu> menus = null;
- if (SecurityUtils.isAdmin(userId))
- {
+ if (SecurityUtils.isAdmin(userId)) {
menus = menuMapper.selectMenuTreeAll();
- }
- else
- {
+ } else {
menus = menuMapper.selectMenuTreeByUserId(userId);
}
return getChildPerms(menus, 0);
@@ -144,29 +137,26 @@
/**
* 鏍规嵁瑙掕壊ID鏌ヨ鑿滃崟鏍戜俊鎭�
- *
+ *
* @param roleId 瑙掕壊ID
* @return 閫変腑鑿滃崟鍒楄〃
*/
@Override
- public List<Long> selectMenuListByRoleId(Long roleId)
- {
+ public List<Long> selectMenuListByRoleId(Long roleId) {
SysRole role = roleMapper.selectRoleById(roleId);
return menuMapper.selectMenuListByRoleId(roleId, role.isMenuCheckStrictly());
}
/**
* 鏋勫缓鍓嶇璺敱鎵�闇�瑕佺殑鑿滃崟
- *
+ *
* @param menus 鑿滃崟鍒楄〃
* @return 璺敱鍒楄〃
*/
@Override
- public List<RouterVo> buildMenus(List<SysMenu> menus)
- {
+ public List<RouterVo> buildMenus(List<SysMenu> menus) {
List<RouterVo> routers = new LinkedList<RouterVo>();
- for (SysMenu menu : menus)
- {
+ for (SysMenu menu : menus) {
RouterVo router = new RouterVo();
router.setHidden("1".equals(menu.getVisible()));
router.setName(getRouteName(menu));
@@ -175,14 +165,11 @@
router.setQuery(menu.getQuery());
router.setMeta(new MetaVo(menu.getMenuName(), menu.getIcon(), StringUtils.equals("1", menu.getIsCache()), menu.getPath()));
List<SysMenu> cMenus = menu.getChildren();
- if (!cMenus.isEmpty() && cMenus.size() > 0 && UserConstants.TYPE_DIR.equals(menu.getMenuType()))
- {
+ if (!cMenus.isEmpty() && cMenus.size() > 0 && UserConstants.TYPE_DIR.equals(menu.getMenuType())) {
router.setAlwaysShow(true);
router.setRedirect("noRedirect");
router.setChildren(buildMenus(cMenus));
- }
- else if (isMenuFrame(menu))
- {
+ } else if (isMenuFrame(menu)) {
router.setMeta(null);
List<RouterVo> childrenList = new ArrayList<RouterVo>();
RouterVo children = new RouterVo();
@@ -193,9 +180,7 @@
children.setQuery(menu.getQuery());
childrenList.add(children);
router.setChildren(childrenList);
- }
- else if (menu.getParentId().intValue() == 0 && isInnerLink(menu))
- {
+ } else if (menu.getParentId().intValue() == 0 && isInnerLink(menu)) {
router.setMeta(new MetaVo(menu.getMenuName(), menu.getIcon()));
router.setPath("/");
List<RouterVo> childrenList = new ArrayList<RouterVo>();
@@ -215,27 +200,23 @@
/**
* 鏋勫缓鍓嶇鎵�闇�瑕佹爲缁撴瀯
- *
+ *
* @param menus 鑿滃崟鍒楄〃
* @return 鏍戠粨鏋勫垪琛�
*/
@Override
- public List<SysMenu> buildMenuTree(List<SysMenu> menus)
- {
+ public List<SysMenu> buildMenuTree(List<SysMenu> menus) {
List<SysMenu> returnList = new ArrayList<SysMenu>();
List<Long> tempList = menus.stream().map(SysMenu::getMenuId).collect(Collectors.toList());
- for (Iterator<SysMenu> iterator = menus.iterator(); iterator.hasNext();)
- {
+ for (Iterator<SysMenu> iterator = menus.iterator(); iterator.hasNext(); ) {
SysMenu menu = (SysMenu) iterator.next();
// 濡傛灉鏄《绾ц妭鐐�, 閬嶅巻璇ョ埗鑺傜偣鐨勬墍鏈夊瓙鑺傜偣
- if (!tempList.contains(menu.getParentId()))
- {
+ if (!tempList.contains(menu.getParentId())) {
recursionFn(menus, menu);
returnList.add(menu);
}
}
- if (returnList.isEmpty())
- {
+ if (returnList.isEmpty()) {
returnList = menus;
}
return returnList;
@@ -243,104 +224,102 @@
/**
* 鏋勫缓鍓嶇鎵�闇�瑕佷笅鎷夋爲缁撴瀯
- *
+ *
* @param menus 鑿滃崟鍒楄〃
* @return 涓嬫媺鏍戠粨鏋勫垪琛�
*/
@Override
- public List<TreeSelect> buildMenuTreeSelect(List<SysMenu> menus)
- {
+ public List<TreeSelect> buildMenuTreeSelect(List<SysMenu> menus) {
List<SysMenu> menuTrees = buildMenuTree(menus);
return menuTrees.stream().map(TreeSelect::new).collect(Collectors.toList());
}
/**
* 鏍规嵁鑿滃崟ID鏌ヨ淇℃伅
- *
+ *
* @param menuId 鑿滃崟ID
* @return 鑿滃崟淇℃伅
*/
@Override
- public SysMenu selectMenuById(Long menuId)
- {
- return menuMapper.selectMenuById(menuId);
+ public SysMenu selectMenuById(Long menuId) {
+ SysMenu sysMenu = menuMapper.selectMenuById(menuId);
+ //鍥介檯鍖�
+ String message = MessageUtils.message("menu." + sysMenu.getMenuNameI18n());
+ if(StringUtils.isNotEmpty(message))
+ {
+ sysMenu.setMenuName(message);
+ }
+ return sysMenu;
}
/**
* 鏄惁瀛樺湪鑿滃崟瀛愯妭鐐�
- *
+ *
* @param menuId 鑿滃崟ID
* @return 缁撴灉
*/
@Override
- public boolean hasChildByMenuId(Long menuId)
- {
+ public boolean hasChildByMenuId(Long menuId) {
int result = menuMapper.hasChildByMenuId(menuId);
return result > 0;
}
/**
* 鏌ヨ鑿滃崟浣跨敤鏁伴噺
- *
+ *
* @param menuId 鑿滃崟ID
* @return 缁撴灉
*/
@Override
- public boolean checkMenuExistRole(Long menuId)
- {
+ public boolean checkMenuExistRole(Long menuId) {
int result = roleMenuMapper.checkMenuExistRole(menuId);
return result > 0;
}
/**
* 鏂板淇濆瓨鑿滃崟淇℃伅
- *
+ *
* @param menu 鑿滃崟淇℃伅
* @return 缁撴灉
*/
@Override
- public int insertMenu(SysMenu menu)
- {
+ public int insertMenu(SysMenu menu) {
return menuMapper.insertMenu(menu);
}
/**
* 淇敼淇濆瓨鑿滃崟淇℃伅
- *
+ *
* @param menu 鑿滃崟淇℃伅
* @return 缁撴灉
*/
@Override
- public int updateMenu(SysMenu menu)
- {
+ public int updateMenu(SysMenu menu) {
return menuMapper.updateMenu(menu);
}
/**
* 鍒犻櫎鑿滃崟绠$悊淇℃伅
- *
+ *
* @param menuId 鑿滃崟ID
* @return 缁撴灉
*/
@Override
- public int deleteMenuById(Long menuId)
- {
+ public int deleteMenuById(Long menuId) {
return menuMapper.deleteMenuById(menuId);
}
/**
* 鏍¢獙鑿滃崟鍚嶇О鏄惁鍞竴
- *
+ *
* @param menu 鑿滃崟淇℃伅
* @return 缁撴灉
*/
@Override
- public String checkMenuNameUnique(SysMenu menu)
- {
+ public String checkMenuNameUnique(SysMenu menu) {
Long menuId = StringUtils.isNull(menu.getMenuId()) ? -1L : menu.getMenuId();
SysMenu info = menuMapper.checkMenuNameUnique(menu.getMenuName(), menu.getParentId());
- if (StringUtils.isNotNull(info) && info.getMenuId().longValue() != menuId.longValue())
- {
+ if (StringUtils.isNotNull(info) && info.getMenuId().longValue() != menuId.longValue()) {
return UserConstants.NOT_UNIQUE;
}
return UserConstants.UNIQUE;
@@ -348,16 +327,14 @@
/**
* 鑾峰彇璺敱鍚嶇О
- *
+ *
* @param menu 鑿滃崟淇℃伅
* @return 璺敱鍚嶇О
*/
- public String getRouteName(SysMenu menu)
- {
+ public String getRouteName(SysMenu menu) {
String routerName = StringUtils.capitalize(menu.getPath());
// 闈炲閾惧苟涓旀槸涓�绾х洰褰曪紙绫诲瀷涓虹洰褰曪級
- if (isMenuFrame(menu))
- {
+ if (isMenuFrame(menu)) {
routerName = StringUtils.EMPTY;
}
return routerName;
@@ -365,27 +342,23 @@
/**
* 鑾峰彇璺敱鍦板潃
- *
+ *
* @param menu 鑿滃崟淇℃伅
* @return 璺敱鍦板潃
*/
- public String getRouterPath(SysMenu menu)
- {
+ public String getRouterPath(SysMenu menu) {
String routerPath = menu.getPath();
// 鍐呴摼鎵撳紑澶栫綉鏂瑰紡
- if (menu.getParentId().intValue() != 0 && isInnerLink(menu))
- {
+ if (menu.getParentId().intValue() != 0 && isInnerLink(menu)) {
routerPath = innerLinkReplaceEach(routerPath);
}
// 闈炲閾惧苟涓旀槸涓�绾х洰褰曪紙绫诲瀷涓虹洰褰曪級
if (0 == menu.getParentId().intValue() && UserConstants.TYPE_DIR.equals(menu.getMenuType())
- && UserConstants.NO_FRAME.equals(menu.getIsFrame()))
- {
+ && UserConstants.NO_FRAME.equals(menu.getIsFrame())) {
routerPath = "/" + menu.getPath();
}
// 闈炲閾惧苟涓旀槸涓�绾х洰褰曪紙绫诲瀷涓鸿彍鍗曪級
- else if (isMenuFrame(menu))
- {
+ else if (isMenuFrame(menu)) {
routerPath = "/";
}
return routerPath;
@@ -393,23 +366,17 @@
/**
* 鑾峰彇缁勪欢淇℃伅
- *
+ *
* @param menu 鑿滃崟淇℃伅
* @return 缁勪欢淇℃伅
*/
- public String getComponent(SysMenu menu)
- {
+ public String getComponent(SysMenu menu) {
String component = UserConstants.LAYOUT;
- if (StringUtils.isNotEmpty(menu.getComponent()) && !isMenuFrame(menu))
- {
+ if (StringUtils.isNotEmpty(menu.getComponent()) && !isMenuFrame(menu)) {
component = menu.getComponent();
- }
- else if (StringUtils.isEmpty(menu.getComponent()) && menu.getParentId().intValue() != 0 && isInnerLink(menu))
- {
+ } else if (StringUtils.isEmpty(menu.getComponent()) && menu.getParentId().intValue() != 0 && isInnerLink(menu)) {
component = UserConstants.INNER_LINK;
- }
- else if (StringUtils.isEmpty(menu.getComponent()) && isParentView(menu))
- {
+ } else if (StringUtils.isEmpty(menu.getComponent()) && isParentView(menu)) {
component = UserConstants.PARENT_VIEW;
}
return component;
@@ -417,54 +384,53 @@
/**
* 鏄惁涓鸿彍鍗曞唴閮ㄨ烦杞�
- *
+ *
* @param menu 鑿滃崟淇℃伅
* @return 缁撴灉
*/
- public boolean isMenuFrame(SysMenu menu)
- {
+ public boolean isMenuFrame(SysMenu menu) {
return menu.getParentId().intValue() == 0 && UserConstants.TYPE_MENU.equals(menu.getMenuType())
&& menu.getIsFrame().equals(UserConstants.NO_FRAME);
}
/**
* 鏄惁涓哄唴閾剧粍浠�
- *
+ *
* @param menu 鑿滃崟淇℃伅
* @return 缁撴灉
*/
- public boolean isInnerLink(SysMenu menu)
- {
+ public boolean isInnerLink(SysMenu menu) {
return menu.getIsFrame().equals(UserConstants.NO_FRAME) && StringUtils.ishttp(menu.getPath());
}
/**
* 鏄惁涓簆arent_view缁勪欢
- *
+ *
* @param menu 鑿滃崟淇℃伅
* @return 缁撴灉
*/
- public boolean isParentView(SysMenu menu)
- {
+ public boolean isParentView(SysMenu menu) {
return menu.getParentId().intValue() != 0 && UserConstants.TYPE_DIR.equals(menu.getMenuType());
}
/**
* 鏍规嵁鐖惰妭鐐圭殑ID鑾峰彇鎵�鏈夊瓙鑺傜偣
- *
- * @param list 鍒嗙被琛�
+ *
+ * @param list 鍒嗙被琛�
* @param parentId 浼犲叆鐨勭埗鑺傜偣ID
* @return String
*/
- public List<SysMenu> getChildPerms(List<SysMenu> list, int parentId)
- {
+ public List<SysMenu> getChildPerms(List<SysMenu> list, int parentId) {
List<SysMenu> returnList = new ArrayList<SysMenu>();
- for (Iterator<SysMenu> iterator = list.iterator(); iterator.hasNext();)
- {
+ for (Iterator<SysMenu> iterator = list.iterator(); iterator.hasNext(); ) {
+ // 鍥介檯鍖栬浆鎹�
SysMenu t = (SysMenu) iterator.next();
+ String message = MessageUtils.message("menu." + t.getMenuNameI18n());
+ if (StringUtils.isNotEmpty(message)) {
+ t.setMenuName(message);
+ }
// 涓�銆佹牴鎹紶鍏ョ殑鏌愪釜鐖惰妭鐐笽D,閬嶅巻璇ョ埗鑺傜偣鐨勬墍鏈夊瓙鑺傜偣
- if (t.getParentId() == parentId)
- {
+ if (t.getParentId() == parentId) {
recursionFn(list, t);
returnList.add(t);
}
@@ -474,19 +440,16 @@
/**
* 閫掑綊鍒楄〃
- *
+ *
* @param list 鍒嗙被琛�
- * @param t 瀛愯妭鐐�
+ * @param t 瀛愯妭鐐�
*/
- private void recursionFn(List<SysMenu> list, SysMenu t)
- {
+ private void recursionFn(List<SysMenu> list, SysMenu t) {
// 寰楀埌瀛愯妭鐐瑰垪琛�
List<SysMenu> childList = getChildList(list, t);
t.setChildren(childList);
- for (SysMenu tChild : childList)
- {
- if (hasChild(list, tChild))
- {
+ for (SysMenu tChild : childList) {
+ if (hasChild(list, tChild)) {
recursionFn(list, tChild);
}
}
@@ -495,15 +458,12 @@
/**
* 寰楀埌瀛愯妭鐐瑰垪琛�
*/
- private List<SysMenu> getChildList(List<SysMenu> list, SysMenu t)
- {
+ private List<SysMenu> getChildList(List<SysMenu> list, SysMenu t) {
List<SysMenu> tlist = new ArrayList<SysMenu>();
Iterator<SysMenu> it = list.iterator();
- while (it.hasNext())
- {
+ while (it.hasNext()) {
SysMenu n = (SysMenu) it.next();
- if (n.getParentId().longValue() == t.getMenuId().longValue())
- {
+ if (n.getParentId().longValue() == t.getMenuId().longValue()) {
tlist.add(n);
}
}
@@ -513,19 +473,17 @@
/**
* 鍒ゆ柇鏄惁鏈夊瓙鑺傜偣
*/
- private boolean hasChild(List<SysMenu> list, SysMenu t)
- {
+ private boolean hasChild(List<SysMenu> list, SysMenu t) {
return getChildList(list, t).size() > 0;
}
/**
* 鍐呴摼鍩熷悕鐗规畩瀛楃鏇挎崲
- *
+ *
* @return 鏇挎崲鍚庣殑鍐呴摼鍩熷悕
*/
- public String innerLinkReplaceEach(String path)
- {
- return StringUtils.replaceEach(path, new String[] { Constants.HTTP, Constants.HTTPS, Constants.WWW, "." },
- new String[] { "", "", "", "/" });
+ public String innerLinkReplaceEach(String path) {
+ return StringUtils.replaceEach(path, new String[]{Constants.HTTP, Constants.HTTPS, Constants.WWW, "."},
+ new String[]{"", "", "", "/"});
}
}
diff --git a/ruoyi-system/src/main/resources/mapper/system/SysConfigMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysConfigMapper.xml
index b40ff8b..2f2b2fa 100644
--- a/ruoyi-system/src/main/resources/mapper/system/SysConfigMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/SysConfigMapper.xml
@@ -1,121 +1,139 @@
<?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">
+ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+ "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.system.mapper.SysConfigMapper">
-
+
<resultMap type="SysConfig" id="SysConfigResult">
- <id property="configId" column="config_id" />
- <result property="configName" column="config_name" />
- <result property="configKey" column="config_key" />
- <result property="configValue" column="config_value" />
- <result property="configType" column="config_type" />
- <result property="createBy" column="create_by" />
- <result property="createTime" column="create_time" />
- <result property="updateBy" column="update_by" />
- <result property="updateTime" column="update_time" />
+ <id property="configId" column="config_id"/>
+ <result property="configName" column="config_name"/>
+ <result property="configNameI18n" column="config_name_i18n"/>
+ <result property="configKey" column="config_key"/>
+ <result property="configValue" column="config_value"/>
+ <result property="configType" column="config_type"/>
+ <result property="createBy" column="create_by"/>
+ <result property="createTime" column="create_time"/>
+ <result property="updateBy" column="update_by"/>
+ <result property="updateTime" column="update_time"/>
</resultMap>
-
+
<sql id="selectConfigVo">
- select config_id, config_name, config_key, config_value, config_type, create_by, create_time, update_by, update_time, remark
- from sys_config
+ select config_id,
+ config_name,
+ config_name_i18n,
+ config_key,
+ config_value,
+ config_type,
+ create_by,
+ create_time,
+ update_by,
+ update_time,
+ remark
+ from sys_config
</sql>
-
+
<!-- 鏌ヨ鏉′欢 -->
- <sql id="sqlwhereSearch">
- <where>
- <if test="configId !=null">
- and config_id = #{configId}
- </if>
- <if test="configKey !=null and configKey != ''">
- and config_key = #{configKey}
- </if>
- </where>
- </sql>
-
+ <sql id="sqlwhereSearch">
+ <where>
+ <if test="configId !=null">
+ and config_id = #{configId}
+ </if>
+ <if test="configKey !=null and configKey != ''">
+ and config_key = #{configKey}
+ </if>
+ </where>
+ </sql>
+
<select id="selectConfig" parameterType="SysConfig" resultMap="SysConfigResult">
<include refid="selectConfigVo"/>
<include refid="sqlwhereSearch"/>
</select>
-
+
<select id="selectConfigList" parameterType="SysConfig" resultMap="SysConfigResult">
<include refid="selectConfigVo"/>
<where>
- <if test="configName != null and configName != ''">
- AND config_name like ('%${configName}%')
- </if>
- <if test="configType != null and configType != ''">
- AND config_type = #{configType}
- </if>
- <if test="configKey != null and configKey != ''">
- AND config_key like ('%${configKey}%')
- </if>
- <if test="params.beginTime != null and params.beginTime != ''"><!-- 寮�濮嬫椂闂存绱� -->
- and create_time >= to_timestamp(#{params.beginTime},'yyyy-MM-DD')
- </if>
- <if test="params.endTime != null and params.endTime != ''"><!-- 缁撴潫鏃堕棿妫�绱� -->
- and create_time <= to_timestamp(#{params.endTime},'yyyy-MM-DD')
- </if>
- </where>
+ <if test="configName != null and configName != ''">
+ AND config_name like ('%${configName}%')
+ </if>
+ <if test="configType != null and configType != ''">
+ AND config_type = #{configType}
+ </if>
+ <if test="configKey != null and configKey != ''">
+ AND config_key like ('%${configKey}%')
+ </if>
+ <if test="params.beginTime != null and params.beginTime != ''"><!-- 寮�濮嬫椂闂存绱� -->
+ and create_time >= to_timestamp(#{params.beginTime},'yyyy-MM-DD')
+ </if>
+ <if test="params.endTime != null and params.endTime != ''"><!-- 缁撴潫鏃堕棿妫�绱� -->
+ and create_time <= to_timestamp(#{params.endTime},'yyyy-MM-DD')
+ </if>
+ </where>
</select>
-
+
<select id="selectConfigById" parameterType="Long" resultMap="SysConfigResult">
<include refid="selectConfigVo"/>
where config_id = #{configId}
</select>
-
+
<select id="checkConfigKeyUnique" parameterType="String" resultMap="SysConfigResult">
<include refid="selectConfigVo"/>
where config_key = #{configKey} limit 1
</select>
-
+
<insert id="insertConfig" parameterType="SysConfig">
insert into sys_config (
- <if test="configName != null and configName != '' ">config_name,</if>
- <if test="configKey != null and configKey != '' ">config_key,</if>
- <if test="configValue != null and configValue != '' ">config_value,</if>
- <if test="configType != null and configType != '' ">config_type,</if>
- <if test="createBy != null and createBy != ''">create_by,</if>
- <if test="remark != null and remark != ''">remark,</if>
- create_time
+ <if test="configName != null and configName != '' ">config_name,</if>
+ <if test="configNameI18n != null and configNameI18n != '' ">config_name_i18n,</if>
+ <if test="configKey != null and configKey != '' ">config_key,</if>
+ <if test="configValue != null and configValue != '' ">config_value,</if>
+ <if test="configType != null and configType != '' ">config_type,</if>
+ <if test="createBy != null and createBy != ''">create_by,</if>
+ <if test="remark != null and remark != ''">remark,</if>
+ create_time
)values(
- <if test="configName != null and configName != ''">#{configName},</if>
- <if test="configKey != null and configKey != ''">#{configKey},</if>
- <if test="configValue != null and configValue != ''">#{configValue},</if>
- <if test="configType != null and configType != ''">#{configType},</if>
- <if test="createBy != null and createBy != ''">#{createBy},</if>
- <if test="remark != null and remark != ''">#{remark},</if>
- now()
- )
+ <if test="configName != null and configName != ''">#{configName},</if>
+ <if test="configNameI18n != null and configNameI18n != ''">#{configNameI18n},</if>
+ <if test="configKey != null and configKey != ''">#{configKey},</if>
+ <if test="configValue != null and configValue != ''">#{configValue},</if>
+ <if test="configType != null and configType != ''">#{configType},</if>
+ <if test="createBy != null and createBy != ''">#{createBy},</if>
+ <if test="remark != null and remark != ''">#{remark},</if>
+ now()
+ )
</insert>
-
+
<update id="updateConfig" parameterType="SysConfig">
- update sys_config
+ update sys_config
<set>
<if test="configName != null and configName != ''">config_name = #{configName},</if>
+ <if test="configNameI18n != null and configNameI18n != ''">config_name_i18n = #{configNameI18n},</if>
<if test="configKey != null and configKey != ''">config_key = #{configKey},</if>
<if test="configValue != null and configValue != ''">config_value = #{configValue},</if>
<if test="configType != null and configType != ''">config_type = #{configType},</if>
<if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
<if test="remark != null">remark = #{remark},</if>
- update_time = now()
+ update_time = now()
</set>
where config_id = #{configId}
</update>
-
+
<delete id="deleteConfigById" parameterType="Long">
- delete from sys_config where config_id = #{configId}
+ delete
+ from sys_config
+ where config_id = #{configId}
</delete>
-
+
<delete id="deleteConfigByIds" parameterType="Long">
- delete from sys_config where config_id in
+ delete from sys_config where config_id in
<foreach item="configId" collection="array" open="(" separator="," close=")">
- #{configId}
+ #{configId}
</foreach>
</delete>
<select id="selectByType" parameterType="String" resultMap="SysConfigResult">
- select * from sys_config where config_key = #{sysType}
+ select *
+ from sys_config
+ where config_key = #{sysType}
</select>
-
+
</mapper>
\ No newline at end of file
diff --git a/ruoyi-system/src/main/resources/mapper/system/SysDictDataMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysDictDataMapper.xml
index 2a27bb8..c402583 100644
--- a/ruoyi-system/src/main/resources/mapper/system/SysDictDataMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/SysDictDataMapper.xml
@@ -8,6 +8,7 @@
<id property="dictCode" column="dict_code" />
<result property="dictSort" column="dict_sort" />
<result property="dictLabel" column="dict_label" />
+ <result property="dictLabelI18n" column="dict_label_i18n" />
<result property="dictValue" column="dict_value" />
<result property="dictType" column="dict_type" />
<result property="cssClass" column="css_class" />
@@ -21,7 +22,7 @@
</resultMap>
<sql id="selectDictDataVo">
- select dict_code, dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark
+ select dict_code, dict_sort, dict_label,dict_label_i18n, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark
from sys_dict_data
</sql>
@@ -76,6 +77,7 @@
<set>
<if test="dictSort != null">dict_sort = #{dictSort},</if>
<if test="dictLabel != null and dictLabel != ''">dict_label = #{dictLabel},</if>
+ <if test="dictLabelI18n != null and dictLabelI18n != ''">dict_label_i18n = #{dictLabelI18n},</if>
<if test="dictValue != null and dictValue != ''">dict_value = #{dictValue},</if>
<if test="dictType != null and dictType != ''">dict_type = #{dictType},</if>
<if test="cssClass != null">css_class = #{cssClass},</if>
@@ -97,6 +99,7 @@
insert into sys_dict_data(
<if test="dictSort != null">dict_sort,</if>
<if test="dictLabel != null and dictLabel != ''">dict_label,</if>
+ <if test="dictLabelI18n != null and dictLabelI18n != ''">dict_label_i18n,</if>
<if test="dictValue != null and dictValue != ''">dict_value,</if>
<if test="dictType != null and dictType != ''">dict_type,</if>
<if test="cssClass != null and cssClass != ''">css_class,</if>
@@ -109,6 +112,7 @@
)values(
<if test="dictSort != null">#{dictSort},</if>
<if test="dictLabel != null and dictLabel != ''">#{dictLabel},</if>
+ <if test="dictLabelI18n != null and dictLabelI18n != ''">#{dictLabelI18n},</if>
<if test="dictValue != null and dictValue != ''">#{dictValue},</if>
<if test="dictType != null and dictType != ''">#{dictType},</if>
<if test="cssClass != null and cssClass != ''">#{cssClass},</if>
diff --git a/ruoyi-system/src/main/resources/mapper/system/SysDictTypeMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysDictTypeMapper.xml
index 6297966..d8b18db 100644
--- a/ruoyi-system/src/main/resources/mapper/system/SysDictTypeMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/SysDictTypeMapper.xml
@@ -1,105 +1,111 @@
<?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">
+ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+ "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.system.mapper.SysDictTypeMapper">
- <resultMap type="SysDictType" id="SysDictTypeResult">
- <id property="dictId" column="dict_id" />
- <result property="dictName" column="dict_name" />
- <result property="dictType" column="dict_type" />
- <result property="status" column="status" />
- <result property="createBy" column="create_by" />
- <result property="createTime" column="create_time" />
- <result property="updateBy" column="update_by" />
- <result property="updateTime" column="update_time" />
- </resultMap>
-
- <sql id="selectDictTypeVo">
- select dict_id, dict_name, dict_type, status, create_by, create_time, remark
- from sys_dict_type
+ <resultMap type="SysDictType" id="SysDictTypeResult">
+ <id property="dictId" column="dict_id"/>
+ <result property="dictName" column="dict_name"/>
+ <result property="dictNameI18n" column="dict_name_i18n"/>
+ <result property="dictType" column="dict_type"/>
+ <result property="status" column="status"/>
+ <result property="createBy" column="create_by"/>
+ <result property="createTime" column="create_time"/>
+ <result property="updateBy" column="update_by"/>
+ <result property="updateTime" column="update_time"/>
+ </resultMap>
+
+ <sql id="selectDictTypeVo">
+ select dict_id, dict_name,dict_name_i18n, dict_type, status, create_by, create_time, remark
+ from sys_dict_type
</sql>
- <select id="selectDictTypeList" parameterType="SysDictType" resultMap="SysDictTypeResult">
- <include refid="selectDictTypeVo"/>
- <where>
- <if test="dictName != null and dictName != ''">
- AND dict_name like ('%${dictName}%')
- </if>
- <if test="status != null and status != ''">
- AND status = #{status}
- </if>
- <if test="dictType != null and dictType != ''">
- AND dict_type like ('%${dictType}%')
- </if>
- <if test="params.beginTime != null and params.beginTime != ''"><!-- 寮�濮嬫椂闂存绱� -->
- and create_time >= to_timestamp(#{params.beginTime},'yyyy-MM-DD')
- </if>
- <if test="params.endTime != null and params.endTime != ''"><!-- 缁撴潫鏃堕棿妫�绱� -->
- and create_time <= to_timestamp(#{params.endTime},'yyyy-MM-DD')
- </if>
- </where>
- </select>
-
- <select id="selectDictTypeAll" resultMap="SysDictTypeResult">
- <include refid="selectDictTypeVo"/>
- </select>
-
- <select id="selectDictTypeById" parameterType="Long" resultMap="SysDictTypeResult">
- <include refid="selectDictTypeVo"/>
- where dict_id = #{dictId}
- </select>
-
- <select id="selectDictTypeByType" parameterType="String" resultMap="SysDictTypeResult">
- <include refid="selectDictTypeVo"/>
- where dict_type = #{dictType}
- </select>
-
- <select id="checkDictTypeUnique" parameterType="String" resultMap="SysDictTypeResult">
- <include refid="selectDictTypeVo"/>
- where dict_type = #{dictType} limit 1 OFFSET 0
- </select>
-
- <delete id="deleteDictTypeById" parameterType="Long">
- delete from sys_dict_type where dict_id = #{dictId}
- </delete>
-
- <delete id="deleteDictTypeByIds" parameterType="Long">
- delete from sys_dict_type where dict_id in
- <foreach collection="array" item="dictId" open="(" separator="," close=")">
- #{dictId}
- </foreach>
- </delete>
+ <select id="selectDictTypeList" parameterType="SysDictType" resultMap="SysDictTypeResult">
+ <include refid="selectDictTypeVo"/>
+ <where>
+ <if test="dictName != null and dictName != ''">
+ AND dict_name like ('%${dictName}%')
+ </if>
+ <if test="status != null and status != ''">
+ AND status = #{status}
+ </if>
+ <if test="dictType != null and dictType != ''">
+ AND dict_type like ('%${dictType}%')
+ </if>
+ <if test="params.beginTime != null and params.beginTime != ''"><!-- 寮�濮嬫椂闂存绱� -->
+ and create_time >= to_timestamp(#{params.beginTime},'yyyy-MM-DD')
+ </if>
+ <if test="params.endTime != null and params.endTime != ''"><!-- 缁撴潫鏃堕棿妫�绱� -->
+ and create_time <= to_timestamp(#{params.endTime},'yyyy-MM-DD')
+ </if>
+ </where>
+ </select>
- <update id="updateDictType" parameterType="SysDictType">
- update sys_dict_type
- <set>
- <if test="dictName != null and dictName != ''">dict_name = #{dictName},</if>
- <if test="dictType != null and dictType != ''">dict_type = #{dictType},</if>
- <if test="status != null">status = #{status},</if>
- <if test="remark != null">remark = #{remark},</if>
- <if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
- update_time = now()
- </set>
- where dict_id = #{dictId}
- </update>
-
- <insert id="insertDictType" parameterType="SysDictType">
- insert into sys_dict_type(
- <if test="dictName != null and dictName != ''">dict_name,</if>
- <if test="dictType != null and dictType != ''">dict_type,</if>
- <if test="status != null">status,</if>
- <if test="remark != null and remark != ''">remark,</if>
- <if test="createBy != null and createBy != ''">create_by,</if>
- create_time
- )values(
- <if test="dictName != null and dictName != ''">#{dictName},</if>
- <if test="dictType != null and dictType != ''">#{dictType},</if>
- <if test="status != null">#{status},</if>
- <if test="remark != null and remark != ''">#{remark},</if>
- <if test="createBy != null and createBy != ''">#{createBy},</if>
- now()
- )
- </insert>
-
+ <select id="selectDictTypeAll" resultMap="SysDictTypeResult">
+ <include refid="selectDictTypeVo"/>
+ </select>
+
+ <select id="selectDictTypeById" parameterType="Long" resultMap="SysDictTypeResult">
+ <include refid="selectDictTypeVo"/>
+ where dict_id = #{dictId}
+ </select>
+
+ <select id="selectDictTypeByType" parameterType="String" resultMap="SysDictTypeResult">
+ <include refid="selectDictTypeVo"/>
+ where dict_type = #{dictType}
+ </select>
+
+ <select id="checkDictTypeUnique" parameterType="String" resultMap="SysDictTypeResult">
+ <include refid="selectDictTypeVo"/>
+ where dict_type = #{dictType} limit 1 OFFSET 0
+ </select>
+
+ <delete id="deleteDictTypeById" parameterType="Long">
+ delete
+ from sys_dict_type
+ where dict_id = #{dictId}
+ </delete>
+
+ <delete id="deleteDictTypeByIds" parameterType="Long">
+ delete from sys_dict_type where dict_id in
+ <foreach collection="array" item="dictId" open="(" separator="," close=")">
+ #{dictId}
+ </foreach>
+ </delete>
+
+ <update id="updateDictType" parameterType="SysDictType">
+ update sys_dict_type
+ <set>
+ <if test="dictName != null and dictName != ''">dict_name = #{dictName},</if>
+ <if test="dictNameI18n != null and dictNameI18n != ''">dict_name_i18n = #{dictNameI18n},</if>
+ <if test="dictType != null and dictType != ''">dict_type = #{dictType},</if>
+ <if test="status != null">status = #{status},</if>
+ <if test="remark != null">remark = #{remark},</if>
+ <if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
+ update_time = now()
+ </set>
+ where dict_id = #{dictId}
+ </update>
+
+ <insert id="insertDictType" parameterType="SysDictType">
+ insert into sys_dict_type(
+ <if test="dictName != null and dictName != ''">dict_name,</if>
+ <if test="dictNameI18n != null and dictNameI18n != ''">dict_name_i18n,</if>
+ <if test="dictType != null and dictType != ''">dict_type,</if>
+ <if test="status != null">status,</if>
+ <if test="remark != null and remark != ''">remark,</if>
+ <if test="createBy != null and createBy != ''">create_by,</if>
+ create_time
+ )values(
+ <if test="dictName != null and dictName != ''">#{dictName},</if>
+ <if test="dictNameI18n != null and dictNameI18n != ''">#{dictNameI18n},</if>
+ <if test="dictType != null and dictType != ''">#{dictType},</if>
+ <if test="status != null">#{status},</if>
+ <if test="remark != null and remark != ''">#{remark},</if>
+ <if test="createBy != null and createBy != ''">#{createBy},</if>
+ now()
+ )
+ </insert>
+
</mapper>
\ No newline at end of file
diff --git a/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml
index 281e528..cf77ca4 100644
--- a/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml
@@ -7,6 +7,7 @@
<resultMap type="SysMenu" id="SysMenuResult">
<id property="menuId" column="menu_id" />
<result property="menuName" column="menu_name" />
+ <result property="menuNameI18n" column="menu_name_i18n" />
<result property="parentName" column="parent_name" />
<result property="parentId" column="parent_id" />
<result property="orderNum" column="order_num" />
@@ -28,7 +29,7 @@
</resultMap>
<sql id="selectMenuVo">
- select menu_id, menu_name, parent_id, order_num, path, component, query, is_frame, is_cache, menu_type, visible, status, coalesce(perms,'') as perms, icon, create_time
+ select menu_id, menu_name,menu_name_i18n, parent_id, order_num, path, component, query, is_frame, is_cache, menu_type, visible, status, coalesce(perms,'') as perms, icon, create_time
from sys_menu
</sql>
@@ -49,13 +50,13 @@
</select>
<select id="selectMenuTreeAll" resultMap="SysMenuResult">
- select distinct m.menu_id, m.parent_id, m.menu_name, m.path, m.component, m.query, m.visible, m.status, coalesce(m.perms,'') as perms, m.is_frame, m.is_cache, m.menu_type, m.icon, m.order_num, m.create_time
+ select distinct m.menu_id, m.parent_id, m.menu_name,m.menu_name_i18n, m.path, m.component, m.query, m.visible, m.status, coalesce(m.perms,'') as perms, m.is_frame, m.is_cache, m.menu_type, m.icon, m.order_num, m.create_time
from sys_menu m where m.menu_type in ('M', 'C') and m.status = '0'
order by m.parent_id, m.order_num
</select>
<select id="selectMenuListByUserId" parameterType="SysMenu" resultMap="SysMenuResult">
- select distinct m.menu_id, m.parent_id, m.menu_name, m.path, m.component, m.query, m.visible, m.status, coalesce(m.perms,'') as perms, m.is_frame, m.is_cache, m.menu_type, m.icon, m.order_num, m.create_time
+ select distinct m.menu_id, m.parent_id, m.menu_name,m.menu_name_i18n, m.path, m.component, m.query, m.visible, m.status, coalesce(m.perms,'') as perms, m.is_frame, m.is_cache, m.menu_type, m.icon, m.order_num, m.create_time
from sys_menu m
left join sys_role_menu rm on m.menu_id = rm.menu_id
left join sys_user_role ur on rm.role_id = ur.role_id
@@ -74,7 +75,7 @@
</select>
<select id="selectMenuTreeByUserId" parameterType="String" resultMap="SysMenuResult">
- select distinct m.menu_id, m.parent_id, m.menu_name, m.path, m.component, m.query, m.visible, m.status, coalesce(m.perms,'') as perms, m.is_frame, m.is_cache, m.menu_type, m.icon, m.order_num, m.create_time
+ select distinct m.menu_id, m.parent_id, m.menu_name,m.menu_name_i18n, m.path, m.component, m.query, m.visible, m.status, coalesce(m.perms,'') as perms, m.is_frame, m.is_cache, m.menu_type, m.icon, m.order_num, m.create_time
from sys_menu m
left join sys_role_menu rm on m.menu_id = rm.menu_id
left join sys_user_role ur on rm.role_id = ur.role_id
@@ -136,6 +137,7 @@
update sys_menu
<set>
<if test="menuName != null and menuName != ''">menu_name = #{menuName},</if>
+ <if test="menuNameI18n != null and menuNameI18n != ''">menu_name_i18n = #{menuNameI18n},</if>
<if test="parentId != null">parent_id = #{parentId},</if>
<if test="orderNum != null">order_num = #{orderNum},</if>
<if test="path != null and path != ''">path = #{path},</if>
@@ -160,6 +162,7 @@
<if test="menuId != null and menuId != 0">menu_id,</if>
<if test="parentId != null and parentId != 0">parent_id,</if>
<if test="menuName != null and menuName != ''">menu_name,</if>
+ <if test="menuNameI18n != null and menuNameI18n != ''">menu_name_i18n,</if>
<if test="orderNum != null">order_num,</if>
<if test="path != null and path != ''">path,</if>
<if test="component != null and component != ''">component,</if>
@@ -178,6 +181,7 @@
<if test="menuId != null and menuId != 0">#{menuId},</if>
<if test="parentId != null and parentId != 0">#{parentId},</if>
<if test="menuName != null and menuName != ''">#{menuName},</if>
+ <if test="menuNameI18n != null and menuNameI18n != ''">#{menuNameI18n},</if>
<if test="orderNum != null">#{orderNum},</if>
<if test="path != null and path != ''">#{path},</if>
<if test="component != null and component != ''">#{component},</if>
--
Gitblit v1.9.3