diff --git a/README.md b/README.md index 82760ab3..770a1d00 100644 --- a/README.md +++ b/README.md @@ -10,9 +10,9 @@ http://www.zi-han.net/theme/hplus http://webapplayers.com/inspinia_admin-v2.7.1 -阿里云优惠活动(2CPU 4GRAM 1M带宽 40G高效云盘):https://promotion.aliyun.com/ntms/act/vm/aliyun-group/buy.html?group=BphATfDhsQ +> RuoYi从3.0开始,进行模块拆分,将原先的单应用转变为多模块,如需单应用,请移步 [RuoYi-fast](https://gitee.com/y_project/RuoYi-fast) -云产品通用1000元代金券,可叠加官网常规优惠使用 :https://promotion.aliyun.com/ntms/yunparter/invite.html?userCode=brki8iof +> 推荐使用阿里云部署,通用云产品代金券 :[点我领取](https://promotion.aliyun.com/ntms/yunparter/invite.html?userCode=brki8iof) ## 内置功能 diff --git a/pom.xml b/pom.xml index 9610af1e..56d6aa24 100644 --- a/pom.xml +++ b/pom.xml @@ -1,261 +1,82 @@ - + 4.0.0 - - com.ruoyi - RuoYi - 3.0.0 - jar - - RuoYi - 若依管理系统 - - - org.springframework.boot - spring-boot-starter-parent - 2.0.5.RELEASE - - - - + + com.ruoyi + ruoyi + 3.0 + + ruoyi + http://www.ruoyi.vip + 若依管理系统 + + + 3.0 UTF-8 UTF-8 1.8 1.4.0 2.0.0 - 1.3.2 - 1.2.5 - 1.2.47 + 1.3.2 1.1.10 - 2.5 - 1.3.3 1.19 - 1.16.18 - 1.7 2.3.2 2.7.0 - 1.11.3 - 3.17 + + + + + org.springframework.boot + spring-boot-dependencies + 2.0.5.RELEASE + pom + import + + + + + + ruoyi-admin + ruoyi-framework + ruoyi-system + ruoyi-quartz + ruoyi-generator + ruoyi-common + + pom - - - - - org.springframework.boot - spring-boot-starter - - - - - - org.springframework.boot - spring-boot-starter-test - test - - - - - org.springframework.boot - spring-boot-starter-aop - - - - - org.springframework.boot - spring-boot-starter-web - - - - - org.springframework.boot - spring-boot-starter-thymeleaf - - - - - org.springframework.boot - spring-boot-devtools - true - - - - - mysql - mysql-connector-java - - - - - org.mybatis.spring.boot - mybatis-spring-boot-starter - ${mybatis.spring.boot.starter.version} - - - - - com.github.pagehelper - pagehelper-spring-boot-starter - ${pagehelper.spring.boot.starter.version} - - - - - com.alibaba - druid-spring-boot-starter - ${druid.version} - - - - - org.apache.commons - commons-lang3 - - - - - commons-io - commons-io - ${commons.io.version} - - - - - commons-fileupload - commons-fileupload - ${commons.fileupload.version} - - - - - org.apache.shiro - shiro-core - ${shiro.version} - - - - - org.apache.shiro - shiro-spring - ${shiro.version} - - - - - org.apache.shiro - shiro-ehcache - ${shiro.version} - - - - - com.github.theborakompanioni - thymeleaf-extras-shiro - ${thymeleaf.extras.shiro.version} - - - - - com.alibaba - fastjson - ${fastjson.version} - - - - - eu.bitwalker - UserAgentUtils - ${bitwalker.version} - - - - - org.springframework - spring-context-support - - - - - org.quartz-scheduler - quartz - - - com.mchange - c3p0 - - - - - - - org.apache.velocity - velocity - ${velocity.version} - - - - - com.github.penggle - kaptcha - ${kaptcha.version} - - - javax.servlet-api - javax.servlet - - - - - - io.springfox - springfox-swagger2 - ${swagger.version} - - - - - io.springfox - springfox-swagger-ui - ${swagger.version} - - - - - org.jsoup - jsoup - ${jsoup.version} + + + + javax.servlet + javax.servlet-api - + - org.apache.poi - poi-ooxml - ${poi.version} - + org.slf4j + slf4j-api + - ${project.artifactId} - - - org.springframework.boot - spring-boot-maven-plugin - - true - - - - + + + org.apache.maven.plugins + maven-compiler-plugin + + ${java.version} + ${java.version} + ${project.build.sourceEncoding} + + + + diff --git a/ruoyi-admin/pom.xml b/ruoyi-admin/pom.xml new file mode 100644 index 00000000..bc6caf0d --- /dev/null +++ b/ruoyi-admin/pom.xml @@ -0,0 +1,115 @@ + + + + ruoyi + com.ruoyi + 3.0 + + 4.0.0 + + ruoyi-admin + + + web服务入口 + + + + 1.2.5 + 2.7.0 + + + + + + + org.springframework.boot + spring-boot-starter-web + + + + + org.springframework.boot + spring-boot-starter-thymeleaf + + + + + org.springframework.boot + spring-boot-devtools + true + + + + + com.github.pagehelper + pagehelper-spring-boot-starter + ${pagehelper.boot.version} + + + + + io.springfox + springfox-swagger2 + ${swagger.version} + + + + + com.ruoyi + ruoyi-common + ${ruoyi.version} + + + + + com.ruoyi + ruoyi-framework + ${ruoyi.version} + + + + + com.ruoyi + ruoyi-system + ${ruoyi.version} + + + + + com.ruoyi + ruoyi-quartz + ${ruoyi.version} + + + + + com.ruoyi + ruoyi-generator + ${ruoyi.version} + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + true + + + + + repackage + + + + + + ruoyi-${ruoyi.version} + + + \ No newline at end of file diff --git a/src/main/java/com/ruoyi/RuoYiApplication.java b/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java similarity index 94% rename from src/main/java/com/ruoyi/RuoYiApplication.java rename to ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java index 90bf0314..f72741ce 100644 --- a/src/main/java/com/ruoyi/RuoYiApplication.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java @@ -11,7 +11,7 @@ import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; * @author ruoyi */ @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class }) -@MapperScan("com.ruoyi.project.*.*.mapper") +@MapperScan("com.ruoyi.*.mapper") public class RuoYiApplication { public static void main(String[] args) diff --git a/src/main/java/com/ruoyi/RuoYiServletInitializer.java b/ruoyi-admin/src/main/java/com/ruoyi/RuoYiServletInitializer.java similarity index 100% rename from src/main/java/com/ruoyi/RuoYiServletInitializer.java rename to ruoyi-admin/src/main/java/com/ruoyi/RuoYiServletInitializer.java diff --git a/src/main/java/com/ruoyi/project/common/CommonController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java similarity index 90% rename from src/main/java/com/ruoyi/project/common/CommonController.java rename to ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java index 8266563f..61c98d29 100644 --- a/src/main/java/com/ruoyi/project/common/CommonController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java @@ -1,4 +1,4 @@ -package com.ruoyi.project.common; +package com.ruoyi.web.controller.common; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; @@ -8,8 +8,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; +import com.ruoyi.common.config.Global; import com.ruoyi.common.utils.file.FileUtils; -import com.ruoyi.framework.config.RuoYiConfig; /** * 通用请求处理 @@ -27,7 +27,7 @@ public class CommonController String realFileName = System.currentTimeMillis() + fileName.substring(fileName.indexOf("_") + 1); try { - String filePath = RuoYiConfig.getDownloadPath() + fileName; + String filePath = Global.getDownloadPath() + fileName; response.setCharacterEncoding("utf-8"); response.setContentType("multipart/form-data"); diff --git a/src/main/java/com/ruoyi/project/monitor/druid/DruidController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/DruidController.java similarity index 82% rename from src/main/java/com/ruoyi/project/monitor/druid/DruidController.java rename to ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/DruidController.java index dbbc6dec..93ae7822 100644 --- a/src/main/java/com/ruoyi/project/monitor/druid/DruidController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/DruidController.java @@ -1,10 +1,10 @@ -package com.ruoyi.project.monitor.druid; +package com.ruoyi.web.controller.monitor; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; -import com.ruoyi.framework.web.controller.BaseController; +import com.ruoyi.web.core.base.BaseController; /** * druid 监控 diff --git a/src/main/java/com/ruoyi/project/monitor/job/controller/JobController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/JobController.java similarity index 73% rename from src/main/java/com/ruoyi/project/monitor/job/controller/JobController.java rename to ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/JobController.java index c166916b..ad527c59 100644 --- a/src/main/java/com/ruoyi/project/monitor/job/controller/JobController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/JobController.java @@ -1,4 +1,4 @@ -package com.ruoyi.project.monitor.job.controller; +package com.ruoyi.web.controller.monitor; import java.util.List; import org.apache.shiro.authz.annotation.RequiresPermissions; @@ -10,14 +10,15 @@ import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; -import com.ruoyi.common.utils.poi.ExcelUtil; -import com.ruoyi.framework.aspectj.lang.annotation.Log; -import com.ruoyi.framework.aspectj.lang.enums.BusinessType; -import com.ruoyi.framework.web.controller.BaseController; -import com.ruoyi.framework.web.domain.AjaxResult; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.base.AjaxResult; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.utils.ExcelUtil; +import com.ruoyi.framework.util.ShiroUtils; import com.ruoyi.framework.web.page.TableDataInfo; -import com.ruoyi.project.monitor.job.domain.Job; -import com.ruoyi.project.monitor.job.service.IJobService; +import com.ruoyi.quartz.domain.SysJob; +import com.ruoyi.quartz.service.ISysJobService; +import com.ruoyi.web.core.base.BaseController; /** * 调度任务信息操作处理 @@ -31,7 +32,7 @@ public class JobController extends BaseController private String prefix = "monitor/job"; @Autowired - private IJobService jobService; + private ISysJobService jobService; @RequiresPermissions("monitor:job:view") @GetMapping() @@ -43,10 +44,10 @@ public class JobController extends BaseController @RequiresPermissions("monitor:job:list") @PostMapping("/list") @ResponseBody - public TableDataInfo list(Job job) + public TableDataInfo list(SysJob job) { startPage(); - List list = jobService.selectJobList(job); + List list = jobService.selectJobList(job); return getDataTable(list); } @@ -54,10 +55,10 @@ public class JobController extends BaseController @RequiresPermissions("monitor:job:export") @PostMapping("/export") @ResponseBody - public AjaxResult export(Job job) + public AjaxResult export(SysJob job) { - List list = jobService.selectJobList(job); - ExcelUtil util = new ExcelUtil(Job.class); + List list = jobService.selectJobList(job); + ExcelUtil util = new ExcelUtil(SysJob.class); return util.exportExcel(list, "job"); } @@ -86,8 +87,9 @@ public class JobController extends BaseController @RequiresPermissions("monitor:job:changeStatus") @PostMapping("/changeStatus") @ResponseBody - public AjaxResult changeStatus(Job job) + public AjaxResult changeStatus(SysJob job) { + job.setUpdateBy(ShiroUtils.getLoginName()); return toAjax(jobService.changeStatus(job)); } @@ -98,7 +100,7 @@ public class JobController extends BaseController @RequiresPermissions("monitor:job:changeStatus") @PostMapping("/run") @ResponseBody - public AjaxResult run(Job job) + public AjaxResult run(SysJob job) { return toAjax(jobService.run(job)); } @@ -119,8 +121,9 @@ public class JobController extends BaseController @RequiresPermissions("monitor:job:add") @PostMapping("/add") @ResponseBody - public AjaxResult addSave(Job job) + public AjaxResult addSave(SysJob job) { + job.setCreateBy(ShiroUtils.getLoginName()); return toAjax(jobService.insertJobCron(job)); } @@ -141,8 +144,9 @@ public class JobController extends BaseController @RequiresPermissions("monitor:job:edit") @PostMapping("/edit") @ResponseBody - public AjaxResult editSave(Job job) + public AjaxResult editSave(SysJob job) { + job.setUpdateBy(ShiroUtils.getLoginName()); return toAjax(jobService.updateJobCron(job)); } } diff --git a/src/main/java/com/ruoyi/project/monitor/job/controller/JobLogController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/JobLogController.java similarity index 67% rename from src/main/java/com/ruoyi/project/monitor/job/controller/JobLogController.java rename to ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/JobLogController.java index 9f0ea54b..106413a0 100644 --- a/src/main/java/com/ruoyi/project/monitor/job/controller/JobLogController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/JobLogController.java @@ -1,4 +1,4 @@ -package com.ruoyi.project.monitor.job.controller; +package com.ruoyi.web.controller.monitor; import java.util.List; import org.apache.shiro.authz.annotation.RequiresPermissions; @@ -8,14 +8,14 @@ import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; -import com.ruoyi.common.utils.poi.ExcelUtil; -import com.ruoyi.framework.aspectj.lang.annotation.Log; -import com.ruoyi.framework.aspectj.lang.enums.BusinessType; -import com.ruoyi.framework.web.controller.BaseController; -import com.ruoyi.framework.web.domain.AjaxResult; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.base.AjaxResult; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.utils.ExcelUtil; import com.ruoyi.framework.web.page.TableDataInfo; -import com.ruoyi.project.monitor.job.domain.JobLog; -import com.ruoyi.project.monitor.job.service.IJobLogService; +import com.ruoyi.quartz.domain.SysJobLog; +import com.ruoyi.quartz.service.ISysJobLogService; +import com.ruoyi.web.core.base.BaseController; /** * 调度日志操作处理 @@ -29,7 +29,7 @@ public class JobLogController extends BaseController private String prefix = "monitor/job"; @Autowired - private IJobLogService jobLogService; + private ISysJobLogService jobLogService; @RequiresPermissions("monitor:job:view") @GetMapping() @@ -41,10 +41,10 @@ public class JobLogController extends BaseController @RequiresPermissions("monitor:job:list") @PostMapping("/list") @ResponseBody - public TableDataInfo list(JobLog jobLog) + public TableDataInfo list(SysJobLog jobLog) { startPage(); - List list = jobLogService.selectJobLogList(jobLog); + List list = jobLogService.selectJobLogList(jobLog); return getDataTable(list); } @@ -52,10 +52,10 @@ public class JobLogController extends BaseController @RequiresPermissions("monitor:job:export") @PostMapping("/export") @ResponseBody - public AjaxResult export(JobLog jobLog) + public AjaxResult export(SysJobLog jobLog) { - List list = jobLogService.selectJobLogList(jobLog); - ExcelUtil util = new ExcelUtil(JobLog.class); + List list = jobLogService.selectJobLogList(jobLog); + ExcelUtil util = new ExcelUtil(SysJobLog.class); return util.exportExcel(list, "jobLog"); } diff --git a/src/main/java/com/ruoyi/project/monitor/logininfor/controller/LogininforController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/LogininforController.java similarity index 66% rename from src/main/java/com/ruoyi/project/monitor/logininfor/controller/LogininforController.java rename to ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/LogininforController.java index 10c03c9c..d31a68f3 100644 --- a/src/main/java/com/ruoyi/project/monitor/logininfor/controller/LogininforController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/LogininforController.java @@ -1,4 +1,4 @@ -package com.ruoyi.project.monitor.logininfor.controller; +package com.ruoyi.web.controller.monitor; import java.util.List; import org.apache.shiro.authz.annotation.RequiresPermissions; @@ -8,14 +8,14 @@ import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; -import com.ruoyi.common.utils.poi.ExcelUtil; -import com.ruoyi.framework.aspectj.lang.annotation.Log; -import com.ruoyi.framework.aspectj.lang.enums.BusinessType; -import com.ruoyi.framework.web.controller.BaseController; -import com.ruoyi.framework.web.domain.AjaxResult; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.base.AjaxResult; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.utils.ExcelUtil; import com.ruoyi.framework.web.page.TableDataInfo; -import com.ruoyi.project.monitor.logininfor.domain.Logininfor; -import com.ruoyi.project.monitor.logininfor.service.ILogininforService; +import com.ruoyi.system.domain.SysLogininfor; +import com.ruoyi.system.service.ISysLogininforService; +import com.ruoyi.web.core.base.BaseController; /** * 系统访问记录 @@ -29,7 +29,7 @@ public class LogininforController extends BaseController private String prefix = "monitor/logininfor"; @Autowired - private ILogininforService logininforService; + private ISysLogininforService logininforService; @RequiresPermissions("monitor:logininfor:view") @GetMapping() @@ -41,10 +41,10 @@ public class LogininforController extends BaseController @RequiresPermissions("monitor:logininfor:list") @PostMapping("/list") @ResponseBody - public TableDataInfo list(Logininfor logininfor) + public TableDataInfo list(SysLogininfor logininfor) { startPage(); - List list = logininforService.selectLogininforList(logininfor); + List list = logininforService.selectLogininforList(logininfor); return getDataTable(list); } @@ -52,10 +52,10 @@ public class LogininforController extends BaseController @RequiresPermissions("monitor:logininfor:export") @PostMapping("/export") @ResponseBody - public AjaxResult export(Logininfor logininfor) + public AjaxResult export(SysLogininfor logininfor) { - List list = logininforService.selectLogininforList(logininfor); - ExcelUtil util = new ExcelUtil(Logininfor.class); + List list = logininforService.selectLogininforList(logininfor); + ExcelUtil util = new ExcelUtil(SysLogininfor.class); return util.exportExcel(list, "logininfor"); } diff --git a/src/main/java/com/ruoyi/project/monitor/operlog/controller/OperlogController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/OperlogController.java similarity index 70% rename from src/main/java/com/ruoyi/project/monitor/operlog/controller/OperlogController.java rename to ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/OperlogController.java index 1294db42..62b91f61 100644 --- a/src/main/java/com/ruoyi/project/monitor/operlog/controller/OperlogController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/OperlogController.java @@ -1,4 +1,4 @@ -package com.ruoyi.project.monitor.operlog.controller; +package com.ruoyi.web.controller.monitor; import java.util.List; import org.apache.shiro.authz.annotation.RequiresPermissions; @@ -10,14 +10,14 @@ import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; -import com.ruoyi.common.utils.poi.ExcelUtil; -import com.ruoyi.framework.aspectj.lang.annotation.Log; -import com.ruoyi.framework.aspectj.lang.enums.BusinessType; -import com.ruoyi.framework.web.controller.BaseController; -import com.ruoyi.framework.web.domain.AjaxResult; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.base.AjaxResult; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.utils.ExcelUtil; import com.ruoyi.framework.web.page.TableDataInfo; -import com.ruoyi.project.monitor.operlog.domain.OperLog; -import com.ruoyi.project.monitor.operlog.service.IOperLogService; +import com.ruoyi.system.domain.SysOperLog; +import com.ruoyi.system.service.ISysOperLogService; +import com.ruoyi.web.core.base.BaseController; /** * 操作日志记录 @@ -31,7 +31,7 @@ public class OperlogController extends BaseController private String prefix = "monitor/operlog"; @Autowired - private IOperLogService operLogService; + private ISysOperLogService operLogService; @RequiresPermissions("monitor:operlog:view") @GetMapping() @@ -43,10 +43,10 @@ public class OperlogController extends BaseController @RequiresPermissions("monitor:operlog:list") @PostMapping("/list") @ResponseBody - public TableDataInfo list(OperLog operLog) + public TableDataInfo list(SysOperLog operLog) { startPage(); - List list = operLogService.selectOperLogList(operLog); + List list = operLogService.selectOperLogList(operLog); return getDataTable(list); } @@ -54,10 +54,10 @@ public class OperlogController extends BaseController @RequiresPermissions("monitor:operlog:export") @PostMapping("/export") @ResponseBody - public AjaxResult export(OperLog operLog) + public AjaxResult export(SysOperLog operLog) { - List list = operLogService.selectOperLogList(operLog); - ExcelUtil util = new ExcelUtil(OperLog.class); + List list = operLogService.selectOperLogList(operLog); + ExcelUtil util = new ExcelUtil(SysOperLog.class); return util.exportExcel(list, "operLog"); } diff --git a/src/main/java/com/ruoyi/project/monitor/online/controller/UserOnlineController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/UserOnlineController.java similarity index 69% rename from src/main/java/com/ruoyi/project/monitor/online/controller/UserOnlineController.java rename to ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/UserOnlineController.java index c88f3db1..06938823 100644 --- a/src/main/java/com/ruoyi/project/monitor/online/controller/UserOnlineController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/UserOnlineController.java @@ -1,4 +1,4 @@ -package com.ruoyi.project.monitor.online.controller; +package com.ruoyi.web.controller.monitor; import java.util.List; import org.apache.shiro.authz.annotation.RequiresPermissions; @@ -9,16 +9,17 @@ import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; -import com.ruoyi.common.utils.security.ShiroUtils; -import com.ruoyi.framework.aspectj.lang.annotation.Log; -import com.ruoyi.framework.aspectj.lang.enums.BusinessType; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.base.AjaxResult; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.enums.OnlineStatus; +import com.ruoyi.framework.shiro.session.OnlineSession; import com.ruoyi.framework.shiro.session.OnlineSessionDAO; -import com.ruoyi.framework.web.controller.BaseController; -import com.ruoyi.framework.web.domain.AjaxResult; +import com.ruoyi.framework.util.ShiroUtils; import com.ruoyi.framework.web.page.TableDataInfo; -import com.ruoyi.project.monitor.online.domain.OnlineSession; -import com.ruoyi.project.monitor.online.domain.UserOnline; -import com.ruoyi.project.monitor.online.service.IUserOnlineService; +import com.ruoyi.system.domain.SysUserOnline; +import com.ruoyi.system.service.impl.SysUserOnlineServiceImpl; +import com.ruoyi.web.core.base.BaseController; /** * 在线用户监控 @@ -32,7 +33,7 @@ public class UserOnlineController extends BaseController private String prefix = "monitor/online"; @Autowired - private IUserOnlineService userOnlineService; + private SysUserOnlineServiceImpl userOnlineService; @Autowired private OnlineSessionDAO onlineSessionDAO; @@ -47,10 +48,10 @@ public class UserOnlineController extends BaseController @RequiresPermissions("monitor:online:list") @PostMapping("/list") @ResponseBody - public TableDataInfo list(UserOnline userOnline) + public TableDataInfo list(SysUserOnline userOnline) { startPage(); - List list = userOnlineService.selectUserOnlineList(userOnline); + List list = userOnlineService.selectUserOnlineList(userOnline); return getDataTable(list); } @@ -62,7 +63,7 @@ public class UserOnlineController extends BaseController { for (String sessionId : ids) { - UserOnline online = userOnlineService.selectOnlineById(sessionId); + SysUserOnline online = userOnlineService.selectOnlineById(sessionId); if (online == null) { return error("用户已下线"); @@ -76,8 +77,8 @@ public class UserOnlineController extends BaseController { return error("当前登陆用户无法强退"); } - onlineSession.setStatus(OnlineSession.OnlineStatus.off_line); - online.setStatus(OnlineSession.OnlineStatus.off_line); + onlineSession.setStatus(OnlineStatus.off_line); + online.setStatus(OnlineStatus.off_line); userOnlineService.saveOnline(online); } return success(); @@ -89,7 +90,7 @@ public class UserOnlineController extends BaseController @ResponseBody public AjaxResult forceLogout(String sessionId) { - UserOnline online = userOnlineService.selectOnlineById(sessionId); + SysUserOnline online = userOnlineService.selectOnlineById(sessionId); if (sessionId.equals(ShiroUtils.getSessionId())) { return error("当前登陆用户无法强退"); @@ -103,8 +104,8 @@ public class UserOnlineController extends BaseController { return error("用户已下线"); } - onlineSession.setStatus(OnlineSession.OnlineStatus.off_line); - online.setStatus(OnlineSession.OnlineStatus.off_line); + onlineSession.setStatus(OnlineStatus.off_line); + online.setStatus(OnlineStatus.off_line); userOnlineService.saveOnline(online); return success(); } diff --git a/src/main/java/com/ruoyi/project/system/user/controller/CaptchaController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/CaptchaController.java similarity index 93% rename from src/main/java/com/ruoyi/project/system/user/controller/CaptchaController.java rename to ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/CaptchaController.java index 6555a436..fca2a5ae 100644 --- a/src/main/java/com/ruoyi/project/system/user/controller/CaptchaController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/CaptchaController.java @@ -1,4 +1,4 @@ -package com.ruoyi.project.system.user.controller; +package com.ruoyi.web.controller.system; import java.awt.image.BufferedImage; import java.io.IOException; @@ -14,7 +14,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; import com.google.code.kaptcha.Constants; import com.google.code.kaptcha.Producer; -import com.ruoyi.framework.web.controller.BaseController; +import com.ruoyi.web.core.base.BaseController; /** * 图片验证码(支持算术形式) diff --git a/src/main/java/com/ruoyi/project/system/config/controller/ConfigController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/ConfigController.java similarity index 71% rename from src/main/java/com/ruoyi/project/system/config/controller/ConfigController.java rename to ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/ConfigController.java index a4db07db..8b4d2b29 100644 --- a/src/main/java/com/ruoyi/project/system/config/controller/ConfigController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/ConfigController.java @@ -1,4 +1,4 @@ -package com.ruoyi.project.system.config.controller; +package com.ruoyi.web.controller.system; import java.util.List; import org.apache.shiro.authz.annotation.RequiresPermissions; @@ -10,14 +10,15 @@ import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; -import com.ruoyi.common.utils.poi.ExcelUtil; -import com.ruoyi.framework.aspectj.lang.annotation.Log; -import com.ruoyi.framework.aspectj.lang.enums.BusinessType; -import com.ruoyi.framework.web.controller.BaseController; -import com.ruoyi.framework.web.domain.AjaxResult; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.base.AjaxResult; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.utils.ExcelUtil; +import com.ruoyi.framework.util.ShiroUtils; import com.ruoyi.framework.web.page.TableDataInfo; -import com.ruoyi.project.system.config.domain.Config; -import com.ruoyi.project.system.config.service.IConfigService; +import com.ruoyi.system.domain.SysConfig; +import com.ruoyi.system.service.ISysConfigService; +import com.ruoyi.web.core.base.BaseController; /** * 参数配置 信息操作处理 @@ -31,7 +32,7 @@ public class ConfigController extends BaseController private String prefix = "system/config"; @Autowired - private IConfigService configService; + private ISysConfigService configService; @RequiresPermissions("system:config:view") @GetMapping() @@ -46,10 +47,10 @@ public class ConfigController extends BaseController @RequiresPermissions("system:config:list") @PostMapping("/list") @ResponseBody - public TableDataInfo list(Config config) + public TableDataInfo list(SysConfig config) { startPage(); - List list = configService.selectConfigList(config); + List list = configService.selectConfigList(config); return getDataTable(list); } @@ -57,10 +58,10 @@ public class ConfigController extends BaseController @RequiresPermissions("system:config:export") @PostMapping("/export") @ResponseBody - public AjaxResult export(Config config) + public AjaxResult export(SysConfig config) { - List list = configService.selectConfigList(config); - ExcelUtil util = new ExcelUtil(Config.class); + List list = configService.selectConfigList(config); + ExcelUtil util = new ExcelUtil(SysConfig.class); return util.exportExcel(list, "config"); } @@ -80,8 +81,9 @@ public class ConfigController extends BaseController @Log(title = "参数管理", businessType = BusinessType.INSERT) @PostMapping("/add") @ResponseBody - public AjaxResult addSave(Config config) + public AjaxResult addSave(SysConfig config) { + config.setCreateBy(ShiroUtils.getLoginName()); return toAjax(configService.insertConfig(config)); } @@ -102,8 +104,9 @@ public class ConfigController extends BaseController @Log(title = "参数管理", businessType = BusinessType.UPDATE) @PostMapping("/edit") @ResponseBody - public AjaxResult editSave(Config config) + public AjaxResult editSave(SysConfig config) { + config.setUpdateBy(ShiroUtils.getLoginName()); return toAjax(configService.updateConfig(config)); } @@ -124,7 +127,7 @@ public class ConfigController extends BaseController */ @PostMapping("/checkConfigKeyUnique") @ResponseBody - public String checkConfigKeyUnique(Config config) + public String checkConfigKeyUnique(SysConfig config) { return configService.checkConfigKeyUnique(config); } diff --git a/src/main/java/com/ruoyi/project/system/dept/controller/DeptController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/DeptController.java similarity index 78% rename from src/main/java/com/ruoyi/project/system/dept/controller/DeptController.java rename to ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/DeptController.java index 54c99ddd..f6739938 100644 --- a/src/main/java/com/ruoyi/project/system/dept/controller/DeptController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/DeptController.java @@ -1,8 +1,7 @@ -package com.ruoyi.project.system.dept.controller; +package com.ruoyi.web.controller.system; import java.util.List; import java.util.Map; - import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @@ -12,14 +11,14 @@ import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; - -import com.ruoyi.framework.aspectj.lang.annotation.Log; -import com.ruoyi.framework.aspectj.lang.enums.BusinessType; -import com.ruoyi.framework.web.controller.BaseController; -import com.ruoyi.framework.web.domain.AjaxResult; -import com.ruoyi.project.system.dept.domain.Dept; -import com.ruoyi.project.system.dept.service.IDeptService; -import com.ruoyi.project.system.role.domain.Role; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.base.AjaxResult; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.framework.util.ShiroUtils; +import com.ruoyi.system.domain.SysDept; +import com.ruoyi.system.domain.SysRole; +import com.ruoyi.system.service.ISysDeptService; +import com.ruoyi.web.core.base.BaseController; /** * 部门信息 @@ -33,7 +32,7 @@ public class DeptController extends BaseController private String prefix = "system/dept"; @Autowired - private IDeptService deptService; + private ISysDeptService deptService; @RequiresPermissions("system:dept:view") @GetMapping() @@ -45,9 +44,9 @@ public class DeptController extends BaseController @RequiresPermissions("system:dept:list") @GetMapping("/list") @ResponseBody - public List list(Dept dept) + public List list(SysDept dept) { - List deptList = deptService.selectDeptList(dept); + List deptList = deptService.selectDeptList(dept); return deptList; } @@ -68,8 +67,9 @@ public class DeptController extends BaseController @RequiresPermissions("system:dept:add") @PostMapping("/add") @ResponseBody - public AjaxResult addSave(Dept dept) + public AjaxResult addSave(SysDept dept) { + dept.setCreateBy(ShiroUtils.getLoginName()); return toAjax(deptService.insertDept(dept)); } @@ -90,8 +90,9 @@ public class DeptController extends BaseController @RequiresPermissions("system:dept:edit") @PostMapping("/edit") @ResponseBody - public AjaxResult editSave(Dept dept) + public AjaxResult editSave(SysDept dept) { + dept.setUpdateBy(ShiroUtils.getLoginName()); return toAjax(deptService.updateDept(dept)); } @@ -120,7 +121,7 @@ public class DeptController extends BaseController */ @PostMapping("/checkDeptNameUnique") @ResponseBody - public String checkDeptNameUnique(Dept dept) + public String checkDeptNameUnique(SysDept dept) { return deptService.checkDeptNameUnique(dept); } @@ -151,7 +152,7 @@ public class DeptController extends BaseController */ @GetMapping("/roleDeptTreeData") @ResponseBody - public List> deptTreeData(Role role) + public List> deptTreeData(SysRole role) { List> tree = deptService.roleDeptTreeData(role); return tree; diff --git a/src/main/java/com/ruoyi/project/system/dict/controller/DictDataController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/DictDataController.java similarity index 70% rename from src/main/java/com/ruoyi/project/system/dict/controller/DictDataController.java rename to ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/DictDataController.java index 03ba1de6..b9097503 100644 --- a/src/main/java/com/ruoyi/project/system/dict/controller/DictDataController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/DictDataController.java @@ -1,4 +1,4 @@ -package com.ruoyi.project.system.dict.controller; +package com.ruoyi.web.controller.system; import java.util.List; import org.apache.shiro.authz.annotation.RequiresPermissions; @@ -10,14 +10,15 @@ import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; -import com.ruoyi.common.utils.poi.ExcelUtil; -import com.ruoyi.framework.aspectj.lang.annotation.Log; -import com.ruoyi.framework.aspectj.lang.enums.BusinessType; -import com.ruoyi.framework.web.controller.BaseController; -import com.ruoyi.framework.web.domain.AjaxResult; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.base.AjaxResult; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.utils.ExcelUtil; +import com.ruoyi.framework.util.ShiroUtils; import com.ruoyi.framework.web.page.TableDataInfo; -import com.ruoyi.project.system.dict.domain.DictData; -import com.ruoyi.project.system.dict.service.IDictDataService; +import com.ruoyi.system.domain.SysDictData; +import com.ruoyi.system.service.ISysDictDataService; +import com.ruoyi.web.core.base.BaseController; /** * 数据字典信息 @@ -31,7 +32,7 @@ public class DictDataController extends BaseController private String prefix = "system/dict/data"; @Autowired - private IDictDataService dictDataService; + private ISysDictDataService dictDataService; @RequiresPermissions("system:dict:view") @GetMapping() @@ -43,10 +44,10 @@ public class DictDataController extends BaseController @PostMapping("/list") @RequiresPermissions("system:dict:list") @ResponseBody - public TableDataInfo list(DictData dictData) + public TableDataInfo list(SysDictData dictData) { startPage(); - List list = dictDataService.selectDictDataList(dictData); + List list = dictDataService.selectDictDataList(dictData); return getDataTable(list); } @@ -54,10 +55,10 @@ public class DictDataController extends BaseController @RequiresPermissions("system:dict:export") @PostMapping("/export") @ResponseBody - public AjaxResult export(DictData dictData) + public AjaxResult export(SysDictData dictData) { - List list = dictDataService.selectDictDataList(dictData); - ExcelUtil util = new ExcelUtil(DictData.class); + List list = dictDataService.selectDictDataList(dictData); + ExcelUtil util = new ExcelUtil(SysDictData.class); return util.exportExcel(list, "dictData"); } @@ -78,8 +79,9 @@ public class DictDataController extends BaseController @RequiresPermissions("system:dict:add") @PostMapping("/add") @ResponseBody - public AjaxResult addSave(DictData dict) + public AjaxResult addSave(SysDictData dict) { + dict.setCreateBy(ShiroUtils.getLoginName()); return toAjax(dictDataService.insertDictData(dict)); } @@ -100,8 +102,9 @@ public class DictDataController extends BaseController @RequiresPermissions("system:dict:edit") @PostMapping("/edit") @ResponseBody - public AjaxResult editSave(DictData dict) + public AjaxResult editSave(SysDictData dict) { + dict.setUpdateBy(ShiroUtils.getLoginName()); return toAjax(dictDataService.updateDictData(dict)); } diff --git a/src/main/java/com/ruoyi/project/system/dict/controller/DictTypeController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/DictTypeController.java similarity index 73% rename from src/main/java/com/ruoyi/project/system/dict/controller/DictTypeController.java rename to ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/DictTypeController.java index 0abceee9..1ffc1fc8 100644 --- a/src/main/java/com/ruoyi/project/system/dict/controller/DictTypeController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/DictTypeController.java @@ -1,4 +1,4 @@ -package com.ruoyi.project.system.dict.controller; +package com.ruoyi.web.controller.system; import java.util.List; import org.apache.shiro.authz.annotation.RequiresPermissions; @@ -10,14 +10,15 @@ import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; -import com.ruoyi.common.utils.poi.ExcelUtil; -import com.ruoyi.framework.aspectj.lang.annotation.Log; -import com.ruoyi.framework.aspectj.lang.enums.BusinessType; -import com.ruoyi.framework.web.controller.BaseController; -import com.ruoyi.framework.web.domain.AjaxResult; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.base.AjaxResult; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.utils.ExcelUtil; +import com.ruoyi.framework.util.ShiroUtils; import com.ruoyi.framework.web.page.TableDataInfo; -import com.ruoyi.project.system.dict.domain.DictType; -import com.ruoyi.project.system.dict.service.IDictTypeService; +import com.ruoyi.system.domain.SysDictType; +import com.ruoyi.system.service.ISysDictTypeService; +import com.ruoyi.web.core.base.BaseController; /** * 数据字典信息 @@ -31,7 +32,7 @@ public class DictTypeController extends BaseController private String prefix = "system/dict/type"; @Autowired - private IDictTypeService dictTypeService; + private ISysDictTypeService dictTypeService; @RequiresPermissions("system:dict:view") @GetMapping() @@ -43,10 +44,10 @@ public class DictTypeController extends BaseController @PostMapping("/list") @RequiresPermissions("system:dict:list") @ResponseBody - public TableDataInfo list(DictType dictType) + public TableDataInfo list(SysDictType dictType) { startPage(); - List list = dictTypeService.selectDictTypeList(dictType); + List list = dictTypeService.selectDictTypeList(dictType); return getDataTable(list); } @@ -54,11 +55,11 @@ public class DictTypeController extends BaseController @RequiresPermissions("system:dict:export") @PostMapping("/export") @ResponseBody - public AjaxResult export(DictType dictType) + public AjaxResult export(SysDictType dictType) { - List list = dictTypeService.selectDictTypeList(dictType); - ExcelUtil util = new ExcelUtil(DictType.class); + List list = dictTypeService.selectDictTypeList(dictType); + ExcelUtil util = new ExcelUtil(SysDictType.class); return util.exportExcel(list, "dictType"); } @@ -78,8 +79,9 @@ public class DictTypeController extends BaseController @RequiresPermissions("system:dict:add") @PostMapping("/add") @ResponseBody - public AjaxResult addSave(DictType dict) + public AjaxResult addSave(SysDictType dict) { + dict.setCreateBy(ShiroUtils.getLoginName()); return toAjax(dictTypeService.insertDictType(dict)); } @@ -100,8 +102,9 @@ public class DictTypeController extends BaseController @RequiresPermissions("system:dict:edit") @PostMapping("/edit") @ResponseBody - public AjaxResult editSave(DictType dict) + public AjaxResult editSave(SysDictType dict) { + dict.setUpdateBy(ShiroUtils.getLoginName()); return toAjax(dictTypeService.updateDictType(dict)); } @@ -138,7 +141,7 @@ public class DictTypeController extends BaseController */ @PostMapping("/checkDictTypeUnique") @ResponseBody - public String checkDictTypeUnique(DictType dictType) + public String checkDictTypeUnique(SysDictType dictType) { return dictTypeService.checkDictTypeUnique(dictType); } diff --git a/src/main/java/com/ruoyi/project/system/user/controller/IndexController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/IndexController.java similarity index 53% rename from src/main/java/com/ruoyi/project/system/user/controller/IndexController.java rename to ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/IndexController.java index 35999895..982d6e1f 100644 --- a/src/main/java/com/ruoyi/project/system/user/controller/IndexController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/IndexController.java @@ -1,15 +1,15 @@ -package com.ruoyi.project.system.user.controller; +package com.ruoyi.web.controller.system; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.GetMapping; -import com.ruoyi.framework.config.RuoYiConfig; -import com.ruoyi.framework.web.controller.BaseController; -import com.ruoyi.project.system.menu.domain.Menu; -import com.ruoyi.project.system.menu.service.IMenuService; -import com.ruoyi.project.system.user.domain.User; +import com.ruoyi.common.config.Global; +import com.ruoyi.system.domain.SysMenu; +import com.ruoyi.system.domain.SysUser; +import com.ruoyi.system.service.ISysMenuService; +import com.ruoyi.web.core.base.BaseController; /** * 首页 业务处理 @@ -20,22 +20,19 @@ import com.ruoyi.project.system.user.domain.User; public class IndexController extends BaseController { @Autowired - private IMenuService menuService; - - @Autowired - private RuoYiConfig ruoYiConfig; + private ISysMenuService menuService; // 系统首页 @GetMapping("/index") public String index(ModelMap mmap) { // 取身份信息 - User user = getUser(); + SysUser user = getUser(); // 根据用户id取出菜单 - List menus = menuService.selectMenusByUser(user); + List menus = menuService.selectMenusByUser(user); mmap.put("menus", menus); mmap.put("user", user); - mmap.put("copyrightYear", ruoYiConfig.getCopyrightYear()); + mmap.put("copyrightYear", Global.getCopyrightYear()); return "index"; } @@ -43,7 +40,7 @@ public class IndexController extends BaseController @GetMapping("/system/main") public String main(ModelMap mmap) { - mmap.put("version", ruoYiConfig.getVersion()); + mmap.put("version", Global.getVersion()); return "main"; } } diff --git a/src/main/java/com/ruoyi/project/system/user/controller/LoginController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/LoginController.java similarity index 87% rename from src/main/java/com/ruoyi/project/system/user/controller/LoginController.java rename to ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/LoginController.java index 4667d574..5161a5ee 100644 --- a/src/main/java/com/ruoyi/project/system/user/controller/LoginController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/LoginController.java @@ -1,4 +1,4 @@ -package com.ruoyi.project.system.user.controller; +package com.ruoyi.web.controller.system; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -10,10 +10,10 @@ import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.ResponseBody; -import com.ruoyi.common.utils.ServletUtils; +import com.ruoyi.common.base.AjaxResult; import com.ruoyi.common.utils.StringUtils; -import com.ruoyi.framework.web.controller.BaseController; -import com.ruoyi.framework.web.domain.AjaxResult; +import com.ruoyi.framework.util.ServletUtils; +import com.ruoyi.web.core.base.BaseController; /** * 登录验证 diff --git a/src/main/java/com/ruoyi/project/system/menu/controller/MenuController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/MenuController.java similarity index 74% rename from src/main/java/com/ruoyi/project/system/menu/controller/MenuController.java rename to ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/MenuController.java index e512141b..e952ec3a 100644 --- a/src/main/java/com/ruoyi/project/system/menu/controller/MenuController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/MenuController.java @@ -1,4 +1,4 @@ -package com.ruoyi.project.system.menu.controller; +package com.ruoyi.web.controller.system; import java.util.List; import java.util.Map; @@ -11,13 +11,14 @@ import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; -import com.ruoyi.framework.aspectj.lang.annotation.Log; -import com.ruoyi.framework.aspectj.lang.enums.BusinessType; -import com.ruoyi.framework.web.controller.BaseController; -import com.ruoyi.framework.web.domain.AjaxResult; -import com.ruoyi.project.system.menu.domain.Menu; -import com.ruoyi.project.system.menu.service.IMenuService; -import com.ruoyi.project.system.role.domain.Role; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.base.AjaxResult; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.framework.util.ShiroUtils; +import com.ruoyi.system.domain.SysMenu; +import com.ruoyi.system.domain.SysRole; +import com.ruoyi.system.service.ISysMenuService; +import com.ruoyi.web.core.base.BaseController; /** * 菜单信息 @@ -31,7 +32,7 @@ public class MenuController extends BaseController private String prefix = "system/menu"; @Autowired - private IMenuService menuService; + private ISysMenuService menuService; @RequiresPermissions("system:menu:view") @GetMapping() @@ -43,9 +44,9 @@ public class MenuController extends BaseController @RequiresPermissions("system:menu:list") @GetMapping("/list") @ResponseBody - public List list(Menu menu) + public List list(SysMenu menu) { - List menuList = menuService.selectMenuList(menu); + List menuList = menuService.selectMenuList(menu); return menuList; } @@ -66,6 +67,7 @@ public class MenuController extends BaseController { return error(1, "菜单已分配,不允许删除"); } + ShiroUtils.clearCachedAuthorizationInfo(); return toAjax(menuService.deleteMenuById(menuId)); } @@ -75,14 +77,14 @@ public class MenuController extends BaseController @GetMapping("/add/{parentId}") public String add(@PathVariable("parentId") Long parentId, ModelMap mmap) { - Menu menu = null; + SysMenu menu = null; if (0L != parentId) { menu = menuService.selectMenuById(parentId); } else { - menu = new Menu(); + menu = new SysMenu(); menu.setMenuId(0L); menu.setMenuName("主目录"); } @@ -97,8 +99,10 @@ public class MenuController extends BaseController @RequiresPermissions("system:menu:add") @PostMapping("/add") @ResponseBody - public AjaxResult addSave(Menu menu) + public AjaxResult addSave(SysMenu menu) { + menu.setCreateBy(ShiroUtils.getLoginName()); + ShiroUtils.clearCachedAuthorizationInfo(); return toAjax(menuService.insertMenu(menu)); } @@ -119,8 +123,10 @@ public class MenuController extends BaseController @RequiresPermissions("system:menu:edit") @PostMapping("/edit") @ResponseBody - public AjaxResult editSave(Menu menu) + public AjaxResult editSave(SysMenu menu) { + menu.setUpdateBy(ShiroUtils.getLoginName()); + ShiroUtils.clearCachedAuthorizationInfo(); return toAjax(menuService.updateMenu(menu)); } @@ -138,7 +144,7 @@ public class MenuController extends BaseController */ @PostMapping("/checkMenuNameUnique") @ResponseBody - public String checkMenuNameUnique(Menu menu) + public String checkMenuNameUnique(SysMenu menu) { return menuService.checkMenuNameUnique(menu); } @@ -148,7 +154,7 @@ public class MenuController extends BaseController */ @GetMapping("/roleMenuTreeData") @ResponseBody - public List> roleMenuTreeData(Role role) + public List> roleMenuTreeData(SysRole role) { List> tree = menuService.roleMenuTreeData(role); return tree; @@ -159,7 +165,7 @@ public class MenuController extends BaseController */ @GetMapping("/menuTreeData") @ResponseBody - public List> menuTreeData(Role role) + public List> menuTreeData(SysRole role) { List> tree = menuService.menuTreeData(); return tree; diff --git a/src/main/java/com/ruoyi/project/system/notice/controller/NoticeController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/NoticeController.java similarity index 74% rename from src/main/java/com/ruoyi/project/system/notice/controller/NoticeController.java rename to ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/NoticeController.java index 574bcc23..070d94bf 100644 --- a/src/main/java/com/ruoyi/project/system/notice/controller/NoticeController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/NoticeController.java @@ -1,4 +1,4 @@ -package com.ruoyi.project.system.notice.controller; +package com.ruoyi.web.controller.system; import java.util.List; import org.apache.shiro.authz.annotation.RequiresPermissions; @@ -10,13 +10,14 @@ import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; -import com.ruoyi.framework.aspectj.lang.annotation.Log; -import com.ruoyi.framework.aspectj.lang.enums.BusinessType; -import com.ruoyi.framework.web.controller.BaseController; -import com.ruoyi.framework.web.domain.AjaxResult; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.base.AjaxResult; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.framework.util.ShiroUtils; import com.ruoyi.framework.web.page.TableDataInfo; -import com.ruoyi.project.system.notice.domain.Notice; -import com.ruoyi.project.system.notice.service.INoticeService; +import com.ruoyi.system.domain.SysNotice; +import com.ruoyi.system.service.ISysNoticeService; +import com.ruoyi.web.core.base.BaseController; /** * 公告 信息操作处理 @@ -30,7 +31,7 @@ public class NoticeController extends BaseController private String prefix = "system/notice"; @Autowired - private INoticeService noticeService; + private ISysNoticeService noticeService; @RequiresPermissions("system:notice:view") @GetMapping() @@ -45,10 +46,10 @@ public class NoticeController extends BaseController @RequiresPermissions("system:notice:list") @PostMapping("/list") @ResponseBody - public TableDataInfo list(Notice notice) + public TableDataInfo list(SysNotice notice) { startPage(); - List list = noticeService.selectNoticeList(notice); + List list = noticeService.selectNoticeList(notice); return getDataTable(list); } @@ -68,8 +69,9 @@ public class NoticeController extends BaseController @Log(title = "通知公告", businessType = BusinessType.INSERT) @PostMapping("/add") @ResponseBody - public AjaxResult addSave(Notice notice) + public AjaxResult addSave(SysNotice notice) { + notice.setCreateBy(ShiroUtils.getLoginName()); return toAjax(noticeService.insertNotice(notice)); } @@ -90,8 +92,9 @@ public class NoticeController extends BaseController @Log(title = "通知公告", businessType = BusinessType.UPDATE) @PostMapping("/edit") @ResponseBody - public AjaxResult editSave(Notice notice) + public AjaxResult editSave(SysNotice notice) { + notice.setUpdateBy(ShiroUtils.getLoginName()); return toAjax(noticeService.updateNotice(notice)); } diff --git a/src/main/java/com/ruoyi/project/system/post/controller/PostController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/PostController.java similarity index 71% rename from src/main/java/com/ruoyi/project/system/post/controller/PostController.java rename to ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/PostController.java index 6bf7a185..0207b182 100644 --- a/src/main/java/com/ruoyi/project/system/post/controller/PostController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/PostController.java @@ -1,4 +1,4 @@ -package com.ruoyi.project.system.post.controller; +package com.ruoyi.web.controller.system; import java.util.List; import org.apache.shiro.authz.annotation.RequiresPermissions; @@ -10,14 +10,15 @@ import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; -import com.ruoyi.common.utils.poi.ExcelUtil; -import com.ruoyi.framework.aspectj.lang.annotation.Log; -import com.ruoyi.framework.aspectj.lang.enums.BusinessType; -import com.ruoyi.framework.web.controller.BaseController; -import com.ruoyi.framework.web.domain.AjaxResult; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.base.AjaxResult; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.utils.ExcelUtil; +import com.ruoyi.framework.util.ShiroUtils; import com.ruoyi.framework.web.page.TableDataInfo; -import com.ruoyi.project.system.post.domain.Post; -import com.ruoyi.project.system.post.service.IPostService; +import com.ruoyi.system.domain.SysPost; +import com.ruoyi.system.service.ISysPostService; +import com.ruoyi.web.core.base.BaseController; /** * 岗位信息操作处理 @@ -31,7 +32,7 @@ public class PostController extends BaseController private String prefix = "system/post"; @Autowired - private IPostService postService; + private ISysPostService postService; @RequiresPermissions("system:post:view") @GetMapping() @@ -43,10 +44,10 @@ public class PostController extends BaseController @RequiresPermissions("system:post:list") @PostMapping("/list") @ResponseBody - public TableDataInfo list(Post post) + public TableDataInfo list(SysPost post) { startPage(); - List list = postService.selectPostList(post); + List list = postService.selectPostList(post); return getDataTable(list); } @@ -54,10 +55,10 @@ public class PostController extends BaseController @RequiresPermissions("system:post:export") @PostMapping("/export") @ResponseBody - public AjaxResult export(Post post) + public AjaxResult export(SysPost post) { - List list = postService.selectPostList(post); - ExcelUtil util = new ExcelUtil(Post.class); + List list = postService.selectPostList(post); + ExcelUtil util = new ExcelUtil(SysPost.class); return util.exportExcel(list, "post"); } @@ -93,8 +94,9 @@ public class PostController extends BaseController @Log(title = "岗位管理", businessType = BusinessType.INSERT) @PostMapping("/add") @ResponseBody - public AjaxResult addSave(Post post) + public AjaxResult addSave(SysPost post) { + post.setCreateBy(ShiroUtils.getLoginName()); return toAjax(postService.insertPost(post)); } @@ -115,8 +117,9 @@ public class PostController extends BaseController @Log(title = "岗位管理", businessType = BusinessType.UPDATE) @PostMapping("/edit") @ResponseBody - public AjaxResult editSave(Post post) + public AjaxResult editSave(SysPost post) { + post.setUpdateBy(ShiroUtils.getLoginName()); return toAjax(postService.updatePost(post)); } @@ -125,7 +128,7 @@ public class PostController extends BaseController */ @PostMapping("/checkPostNameUnique") @ResponseBody - public String checkPostNameUnique(Post post) + public String checkPostNameUnique(SysPost post) { return postService.checkPostNameUnique(post); } @@ -135,7 +138,7 @@ public class PostController extends BaseController */ @PostMapping("/checkPostCodeUnique") @ResponseBody - public String checkPostCodeUnique(Post post) + public String checkPostCodeUnique(SysPost post) { return postService.checkPostCodeUnique(post); } diff --git a/src/main/java/com/ruoyi/project/system/user/controller/ProfileController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/ProfileController.java similarity index 76% rename from src/main/java/com/ruoyi/project/system/user/controller/ProfileController.java rename to ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/ProfileController.java index 7a3778c3..80bc6f18 100644 --- a/src/main/java/com/ruoyi/project/system/user/controller/ProfileController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/ProfileController.java @@ -1,4 +1,4 @@ -package com.ruoyi.project.system.user.controller; +package com.ruoyi.web.controller.system; import org.apache.shiro.crypto.hash.Md5Hash; import org.slf4j.Logger; @@ -13,15 +13,15 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.multipart.MultipartFile; -import com.ruoyi.common.utils.file.FileUploadUtils; -import com.ruoyi.framework.aspectj.lang.annotation.Log; -import com.ruoyi.framework.aspectj.lang.enums.BusinessType; -import com.ruoyi.framework.config.RuoYiConfig; -import com.ruoyi.framework.web.controller.BaseController; -import com.ruoyi.framework.web.domain.AjaxResult; -import com.ruoyi.framework.web.service.DictService; -import com.ruoyi.project.system.user.domain.User; -import com.ruoyi.project.system.user.service.IUserService; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.base.AjaxResult; +import com.ruoyi.common.config.Global; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.framework.util.FileUploadUtils; +import com.ruoyi.system.domain.SysUser; +import com.ruoyi.system.service.ISysDictDataService; +import com.ruoyi.system.service.ISysUserService; +import com.ruoyi.web.core.base.BaseController; /** * 个人信息 业务处理 @@ -37,10 +37,10 @@ public class ProfileController extends BaseController private String prefix = "system/user/profile"; @Autowired - private IUserService userService; + private ISysUserService userService; @Autowired - private DictService dict; + private ISysDictDataService dictDataService; /** * 个人信息 @@ -48,8 +48,8 @@ public class ProfileController extends BaseController @GetMapping() public String profile(ModelMap mmap) { - User user = getUser(); - user.setSex(dict.getLabel("sys_user_sex", user.getSex())); + SysUser user = getUser(); + user.setSex(dictDataService.selectDictLabel("sys_user_sex", user.getSex())); mmap.put("user", user); mmap.put("roleGroup", userService.selectUserRoleGroup(user.getUserId())); mmap.put("postGroup", userService.selectUserPostGroup(user.getUserId())); @@ -60,7 +60,7 @@ public class ProfileController extends BaseController @ResponseBody public boolean checkPassword(String password) { - User user = getUser(); + SysUser user = getUser(); String encrypt = new Md5Hash(user.getLoginName() + password + user.getSalt()).toHex().toString(); if (user.getPassword().equals(encrypt)) { @@ -79,7 +79,7 @@ public class ProfileController extends BaseController @Log(title = "重置密码", businessType = BusinessType.UPDATE) @PostMapping("/resetPwd") @ResponseBody - public AjaxResult resetPwd(User user) + public AjaxResult resetPwd(SysUser user) { int rows = userService.resetUserPwd(user); if (rows > 0) @@ -116,7 +116,7 @@ public class ProfileController extends BaseController @Log(title = "个人信息", businessType = BusinessType.UPDATE) @PostMapping("/update") @ResponseBody - public AjaxResult update(User user) + public AjaxResult update(SysUser user) { if (userService.updateUserInfo(user) > 0) { @@ -132,13 +132,13 @@ public class ProfileController extends BaseController @Log(title = "个人信息", businessType = BusinessType.UPDATE) @PostMapping("/updateAvatar") @ResponseBody - public AjaxResult updateAvatar(User user, @RequestParam("avatarfile") MultipartFile file) + public AjaxResult updateAvatar(SysUser user, @RequestParam("avatarfile") MultipartFile file) { try { if (!file.isEmpty()) { - String avatar = FileUploadUtils.upload(RuoYiConfig.getAvatarPath(), file); + String avatar = FileUploadUtils.upload(Global.getAvatarPath(), file); user.setAvatar(avatar); if (userService.updateUserInfo(user) > 0) { diff --git a/src/main/java/com/ruoyi/project/system/role/controller/RoleController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/RoleController.java similarity index 73% rename from src/main/java/com/ruoyi/project/system/role/controller/RoleController.java rename to ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/RoleController.java index 5dfb4bff..03daf1f9 100644 --- a/src/main/java/com/ruoyi/project/system/role/controller/RoleController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/RoleController.java @@ -1,4 +1,4 @@ -package com.ruoyi.project.system.role.controller; +package com.ruoyi.web.controller.system; import java.util.List; import org.apache.shiro.authz.annotation.RequiresPermissions; @@ -11,14 +11,15 @@ import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; -import com.ruoyi.common.utils.poi.ExcelUtil; -import com.ruoyi.framework.aspectj.lang.annotation.Log; -import com.ruoyi.framework.aspectj.lang.enums.BusinessType; -import com.ruoyi.framework.web.controller.BaseController; -import com.ruoyi.framework.web.domain.AjaxResult; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.base.AjaxResult; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.utils.ExcelUtil; +import com.ruoyi.framework.util.ShiroUtils; import com.ruoyi.framework.web.page.TableDataInfo; -import com.ruoyi.project.system.role.domain.Role; -import com.ruoyi.project.system.role.service.IRoleService; +import com.ruoyi.system.domain.SysRole; +import com.ruoyi.system.service.ISysRoleService; +import com.ruoyi.web.core.base.BaseController; /** * 角色信息 @@ -32,7 +33,7 @@ public class RoleController extends BaseController private String prefix = "system/role"; @Autowired - private IRoleService roleService; + private ISysRoleService roleService; @RequiresPermissions("system:role:view") @GetMapping() @@ -44,10 +45,10 @@ public class RoleController extends BaseController @RequiresPermissions("system:role:list") @PostMapping("/list") @ResponseBody - public TableDataInfo list(Role role) + public TableDataInfo list(SysRole role) { startPage(); - List list = roleService.selectRoleList(role); + List list = roleService.selectRoleList(role); return getDataTable(list); } @@ -55,10 +56,10 @@ public class RoleController extends BaseController @RequiresPermissions("system:role:export") @PostMapping("/export") @ResponseBody - public AjaxResult export(Role role) + public AjaxResult export(SysRole role) { - List list = roleService.selectRoleList(role); - ExcelUtil util = new ExcelUtil(Role.class); + List list = roleService.selectRoleList(role); + ExcelUtil util = new ExcelUtil(SysRole.class); return util.exportExcel(list, "role"); } @@ -79,8 +80,10 @@ public class RoleController extends BaseController @PostMapping("/add") @Transactional(rollbackFor = Exception.class) @ResponseBody - public AjaxResult addSave(Role role) + public AjaxResult addSave(SysRole role) { + role.setCreateBy(ShiroUtils.getLoginName()); + ShiroUtils.clearCachedAuthorizationInfo(); return toAjax(roleService.insertRole(role)); } @@ -103,8 +106,10 @@ public class RoleController extends BaseController @PostMapping("/edit") @Transactional(rollbackFor = Exception.class) @ResponseBody - public AjaxResult editSave(Role role) + public AjaxResult editSave(SysRole role) { + role.setUpdateBy(ShiroUtils.getLoginName()); + ShiroUtils.clearCachedAuthorizationInfo(); return toAjax(roleService.updateRole(role)); } @@ -126,8 +131,9 @@ public class RoleController extends BaseController @PostMapping("/rule") @Transactional(rollbackFor = Exception.class) @ResponseBody - public AjaxResult ruleSave(Role role) + public AjaxResult ruleSave(SysRole role) { + role.setUpdateBy(ShiroUtils.getLoginName()); return toAjax(roleService.updateRule(role)); } @@ -152,7 +158,7 @@ public class RoleController extends BaseController */ @PostMapping("/checkRoleNameUnique") @ResponseBody - public String checkRoleNameUnique(Role role) + public String checkRoleNameUnique(SysRole role) { return roleService.checkRoleNameUnique(role); } @@ -162,7 +168,7 @@ public class RoleController extends BaseController */ @PostMapping("/checkRoleKeyUnique") @ResponseBody - public String checkRoleKeyUnique(Role role) + public String checkRoleKeyUnique(SysRole role) { return roleService.checkRoleKeyUnique(role); } diff --git a/src/main/java/com/ruoyi/project/system/user/controller/UserController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/UserController.java similarity index 67% rename from src/main/java/com/ruoyi/project/system/user/controller/UserController.java rename to ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/UserController.java index a5fc6ea4..3be871b4 100644 --- a/src/main/java/com/ruoyi/project/system/user/controller/UserController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/UserController.java @@ -1,4 +1,4 @@ -package com.ruoyi.project.system.user.controller; +package com.ruoyi.web.controller.system; import java.util.List; import org.apache.shiro.authz.annotation.RequiresPermissions; @@ -11,17 +11,19 @@ import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.base.AjaxResult; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.utils.ExcelUtil; import com.ruoyi.common.utils.StringUtils; -import com.ruoyi.common.utils.poi.ExcelUtil; -import com.ruoyi.framework.aspectj.lang.annotation.Log; -import com.ruoyi.framework.aspectj.lang.enums.BusinessType; -import com.ruoyi.framework.web.controller.BaseController; -import com.ruoyi.framework.web.domain.AjaxResult; +import com.ruoyi.framework.shiro.service.PasswordService; +import com.ruoyi.framework.util.ShiroUtils; import com.ruoyi.framework.web.page.TableDataInfo; -import com.ruoyi.project.system.post.service.IPostService; -import com.ruoyi.project.system.role.service.IRoleService; -import com.ruoyi.project.system.user.domain.User; -import com.ruoyi.project.system.user.service.IUserService; +import com.ruoyi.system.domain.SysUser; +import com.ruoyi.system.service.ISysPostService; +import com.ruoyi.system.service.ISysRoleService; +import com.ruoyi.system.service.ISysUserService; +import com.ruoyi.web.core.base.BaseController; /** * 用户信息 @@ -35,13 +37,16 @@ public class UserController extends BaseController private String prefix = "system/user"; @Autowired - private IUserService userService; + private ISysUserService userService; @Autowired - private IRoleService roleService; + private ISysRoleService roleService; @Autowired - private IPostService postService; + private ISysPostService postService; + + @Autowired + private PasswordService passwordService; @RequiresPermissions("system:user:view") @GetMapping() @@ -53,10 +58,10 @@ public class UserController extends BaseController @RequiresPermissions("system:user:list") @PostMapping("/list") @ResponseBody - public TableDataInfo list(User user) + public TableDataInfo list(SysUser user) { startPage(); - List list = userService.selectUserList(user); + List list = userService.selectUserList(user); return getDataTable(list); } @@ -64,10 +69,10 @@ public class UserController extends BaseController @RequiresPermissions("system:user:export") @PostMapping("/export") @ResponseBody - public AjaxResult export(User user) + public AjaxResult export(SysUser user) { - List list = userService.selectUserList(user); - ExcelUtil util = new ExcelUtil(User.class); + List list = userService.selectUserList(user); + ExcelUtil util = new ExcelUtil(SysUser.class); return util.exportExcel(list, "user"); } @@ -90,12 +95,15 @@ public class UserController extends BaseController @PostMapping("/add") @Transactional(rollbackFor = Exception.class) @ResponseBody - public AjaxResult addSave(User user) + public AjaxResult addSave(SysUser user) { - if (StringUtils.isNotNull(user.getUserId()) && User.isAdmin(user.getUserId())) + if (StringUtils.isNotNull(user.getUserId()) && SysUser.isAdmin(user.getUserId())) { return error("不允许修改超级管理员用户"); } + user.setSalt(ShiroUtils.randomSalt()); + user.setPassword(passwordService.encryptPassword(user.getLoginName(), user.getPassword(), user.getSalt())); + user.setCreateBy(ShiroUtils.getLoginName()); return toAjax(userService.insertUser(user)); } @@ -119,12 +127,13 @@ public class UserController extends BaseController @PostMapping("/edit") @Transactional(rollbackFor = Exception.class) @ResponseBody - public AjaxResult editSave(User user) + public AjaxResult editSave(SysUser user) { - if (StringUtils.isNotNull(user.getUserId()) && User.isAdmin(user.getUserId())) + if (StringUtils.isNotNull(user.getUserId()) && SysUser.isAdmin(user.getUserId())) { return error("不允许修改超级管理员用户"); } + user.setUpdateBy(ShiroUtils.getLoginName()); return toAjax(userService.updateUser(user)); } @@ -141,8 +150,10 @@ public class UserController extends BaseController @Log(title = "重置密码", businessType = BusinessType.UPDATE) @PostMapping("/resetPwd") @ResponseBody - public AjaxResult resetPwd(User user) + public AjaxResult resetPwdSave(SysUser user) { + user.setSalt(ShiroUtils.randomSalt()); + user.setPassword(passwordService.encryptPassword(user.getLoginName(), user.getPassword(), user.getSalt())); return toAjax(userService.resetUserPwd(user)); } @@ -167,7 +178,7 @@ public class UserController extends BaseController */ @PostMapping("/checkLoginNameUnique") @ResponseBody - public String checkLoginNameUnique(User user) + public String checkLoginNameUnique(SysUser user) { return userService.checkLoginNameUnique(user.getLoginName()); } @@ -177,7 +188,7 @@ public class UserController extends BaseController */ @PostMapping("/checkPhoneUnique") @ResponseBody - public String checkPhoneUnique(User user) + public String checkPhoneUnique(SysUser user) { return userService.checkPhoneUnique(user); } @@ -187,7 +198,7 @@ public class UserController extends BaseController */ @PostMapping("/checkEmailUnique") @ResponseBody - public String checkEmailUnique(User user) + public String checkEmailUnique(SysUser user) { return userService.checkEmailUnique(user); } diff --git a/src/main/java/com/ruoyi/project/tool/build/BuildController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/tool/BuildController.java similarity index 82% rename from src/main/java/com/ruoyi/project/tool/build/BuildController.java rename to ruoyi-admin/src/main/java/com/ruoyi/web/controller/tool/BuildController.java index fe54d665..95cbcc71 100644 --- a/src/main/java/com/ruoyi/project/tool/build/BuildController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/tool/BuildController.java @@ -1,10 +1,10 @@ -package com.ruoyi.project.tool.build; +package com.ruoyi.web.controller.tool; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; -import com.ruoyi.framework.web.controller.BaseController; +import com.ruoyi.web.core.base.BaseController; /** * build 表单构建 diff --git a/src/main/java/com/ruoyi/project/tool/gen/controller/GenController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/tool/GenController.java similarity index 87% rename from src/main/java/com/ruoyi/project/tool/gen/controller/GenController.java rename to ruoyi-admin/src/main/java/com/ruoyi/web/controller/tool/GenController.java index 2bd42380..e901b5b5 100644 --- a/src/main/java/com/ruoyi/project/tool/gen/controller/GenController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/tool/GenController.java @@ -1,4 +1,4 @@ -package com.ruoyi.project.tool.gen.controller; +package com.ruoyi.web.controller.tool; import java.io.IOException; import java.util.List; @@ -12,13 +12,13 @@ import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.support.Convert; -import com.ruoyi.framework.aspectj.lang.annotation.Log; -import com.ruoyi.framework.aspectj.lang.enums.BusinessType; -import com.ruoyi.framework.web.controller.BaseController; import com.ruoyi.framework.web.page.TableDataInfo; -import com.ruoyi.project.tool.gen.domain.TableInfo; -import com.ruoyi.project.tool.gen.service.IGenService; +import com.ruoyi.generator.domain.TableInfo; +import com.ruoyi.generator.service.IGenService; +import com.ruoyi.web.core.base.BaseController; /** * 代码生成 操作处理 diff --git a/src/main/java/com/ruoyi/project/tool/swagger/SwaggerController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/tool/SwaggerController.java similarity index 81% rename from src/main/java/com/ruoyi/project/tool/swagger/SwaggerController.java rename to ruoyi-admin/src/main/java/com/ruoyi/web/controller/tool/SwaggerController.java index 406c9c8b..ad22b762 100644 --- a/src/main/java/com/ruoyi/project/tool/swagger/SwaggerController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/tool/SwaggerController.java @@ -1,10 +1,10 @@ -package com.ruoyi.project.tool.swagger; +package com.ruoyi.web.controller.tool; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; -import com.ruoyi.framework.web.controller.BaseController; +import com.ruoyi.web.core.base.BaseController; /** * swagger 接口 diff --git a/src/main/java/com/ruoyi/project/tool/swagger/TestController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/tool/TestController.java similarity index 91% rename from src/main/java/com/ruoyi/project/tool/swagger/TestController.java rename to ruoyi-admin/src/main/java/com/ruoyi/web/controller/tool/TestController.java index 13ab65e5..72d4cf5c 100644 --- a/src/main/java/com/ruoyi/project/tool/swagger/TestController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/tool/TestController.java @@ -1,15 +1,18 @@ -package com.ruoyi.project.tool.swagger; +package com.ruoyi.web.controller.tool; import java.util.ArrayList; import java.util.List; + import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import com.ruoyi.framework.web.controller.BaseController; -import com.ruoyi.framework.web.domain.AjaxResult; + +import com.ruoyi.common.base.AjaxResult; +import com.ruoyi.web.core.base.BaseController; + import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiOperation; diff --git a/src/main/java/com/ruoyi/framework/web/controller/BaseController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/core/base/BaseController.java similarity index 88% rename from src/main/java/com/ruoyi/framework/web/controller/BaseController.java rename to ruoyi-admin/src/main/java/com/ruoyi/web/core/base/BaseController.java index 3af85757..8c61e436 100644 --- a/src/main/java/com/ruoyi/framework/web/controller/BaseController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/core/base/BaseController.java @@ -1,4 +1,4 @@ -package com.ruoyi.framework.web.controller; +package com.ruoyi.web.core.base; import java.text.SimpleDateFormat; import java.util.Date; @@ -8,13 +8,13 @@ import org.springframework.web.bind.WebDataBinder; import org.springframework.web.bind.annotation.InitBinder; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; +import com.ruoyi.common.base.AjaxResult; import com.ruoyi.common.utils.StringUtils; -import com.ruoyi.common.utils.security.ShiroUtils; -import com.ruoyi.framework.web.domain.AjaxResult; +import com.ruoyi.framework.util.ShiroUtils; import com.ruoyi.framework.web.page.PageDomain; import com.ruoyi.framework.web.page.TableDataInfo; import com.ruoyi.framework.web.page.TableSupport; -import com.ruoyi.project.system.user.domain.User; +import com.ruoyi.system.domain.SysUser; /** * web层通用数据处理 @@ -121,12 +121,12 @@ public class BaseController return StringUtils.format("redirect:{}", url); } - public User getUser() + public SysUser getUser() { return ShiroUtils.getUser(); } - public void setUser(User user) + public void setUser(SysUser user) { ShiroUtils.setUser(user); } diff --git a/src/main/java/com/ruoyi/framework/config/SwaggerConfig.java b/ruoyi-admin/src/main/java/com/ruoyi/web/core/config/SwaggerConfig.java similarity index 80% rename from src/main/java/com/ruoyi/framework/config/SwaggerConfig.java rename to ruoyi-admin/src/main/java/com/ruoyi/web/core/config/SwaggerConfig.java index a949c2e3..88f63450 100644 --- a/src/main/java/com/ruoyi/framework/config/SwaggerConfig.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/core/config/SwaggerConfig.java @@ -1,8 +1,8 @@ -package com.ruoyi.framework.config; +package com.ruoyi.web.core.config; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import com.ruoyi.common.config.Global; import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.RequestHandlerSelectors; @@ -21,10 +21,6 @@ import springfox.documentation.swagger2.annotations.EnableSwagger2; @EnableSwagger2 public class SwaggerConfig { - /** 系统基础配置 */ - @Autowired - private RuoYiConfig ruoYiConfig; - /** * 创建API */ @@ -51,8 +47,8 @@ public class SwaggerConfig return new ApiInfoBuilder() .title("标题:若依管理系统_接口文档") .description("描述:用于管理集团旗下公司的人员信息,具体包括XXX,XXX模块...") - .contact(new Contact(ruoYiConfig.getName(), null, null)) - .version("版本号:" + ruoYiConfig.getVersion()) + .contact(new Contact(Global.getName(), null, null)) + .version("版本号:" + Global.getVersion()) .build(); } } diff --git a/src/main/resources/application-druid.yml b/ruoyi-admin/src/main/resources/application-druid.yml similarity index 100% rename from src/main/resources/application-druid.yml rename to ruoyi-admin/src/main/resources/application-druid.yml diff --git a/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml similarity index 87% rename from src/main/resources/application.yml rename to ruoyi-admin/src/main/resources/application.yml index 07f4dafc..571f66d4 100644 --- a/src/main/resources/application.yml +++ b/ruoyi-admin/src/main/resources/application.yml @@ -9,7 +9,7 @@ ruoyi: # 文件上传路径 profile: D:/profile/ # 获取ip地址开关 - addressEnabled: false + addressEnabled: true # 开发环境配置 server: @@ -70,11 +70,11 @@ spring: # MyBatis mybatis: # 搜索指定包别名 - typeAliasesPackage: com.ruoyi.project + typeAliasesPackage: com.ruoyi # 配置mapper的扫描,找到所有的mapper.xml映射文件 - mapperLocations: classpath:mybatis/**/*Mapper.xml + mapperLocations: classpath:mapper/system/*Mapper.xml,classpath:mapper/quartz/*Mapper.xml,classpath:mapper/generator/*Mapper.xml # 加载全局的配置文件 - configLocation: classpath:mybatis/mybatis-config.xml + configLocation: classpath:mapper/mybatis-config.xml # PageHelper分页插件 pagehelper: diff --git a/src/main/resources/banner.txt b/ruoyi-admin/src/main/resources/banner.txt similarity index 100% rename from src/main/resources/banner.txt rename to ruoyi-admin/src/main/resources/banner.txt diff --git a/src/main/resources/ehcache/ehcache-shiro.xml b/ruoyi-admin/src/main/resources/ehcache/ehcache-shiro.xml similarity index 100% rename from src/main/resources/ehcache/ehcache-shiro.xml rename to ruoyi-admin/src/main/resources/ehcache/ehcache-shiro.xml diff --git a/src/main/resources/i18n/messages.properties b/ruoyi-admin/src/main/resources/i18n/messages.properties similarity index 100% rename from src/main/resources/i18n/messages.properties rename to ruoyi-admin/src/main/resources/i18n/messages.properties diff --git a/src/main/resources/logback.xml b/ruoyi-admin/src/main/resources/logback.xml similarity index 100% rename from src/main/resources/logback.xml rename to ruoyi-admin/src/main/resources/logback.xml diff --git a/src/main/resources/static/ajax/libs/beautifyhtml/beautifyhtml.js b/ruoyi-admin/src/main/resources/static/ajax/libs/beautifyhtml/beautifyhtml.js similarity index 100% rename from src/main/resources/static/ajax/libs/beautifyhtml/beautifyhtml.js rename to ruoyi-admin/src/main/resources/static/ajax/libs/beautifyhtml/beautifyhtml.js diff --git a/src/main/resources/static/ajax/libs/blockUI/jquery.blockUI.js b/ruoyi-admin/src/main/resources/static/ajax/libs/blockUI/jquery.blockUI.js similarity index 100% rename from src/main/resources/static/ajax/libs/blockUI/jquery.blockUI.js rename to ruoyi-admin/src/main/resources/static/ajax/libs/blockUI/jquery.blockUI.js diff --git a/src/main/resources/static/ajax/libs/bootstrap-table/bootstrap-table.min.css b/ruoyi-admin/src/main/resources/static/ajax/libs/bootstrap-table/bootstrap-table.min.css similarity index 100% rename from src/main/resources/static/ajax/libs/bootstrap-table/bootstrap-table.min.css rename to ruoyi-admin/src/main/resources/static/ajax/libs/bootstrap-table/bootstrap-table.min.css diff --git a/src/main/resources/static/ajax/libs/bootstrap-table/bootstrap-table.min.js b/ruoyi-admin/src/main/resources/static/ajax/libs/bootstrap-table/bootstrap-table.min.js similarity index 100% rename from src/main/resources/static/ajax/libs/bootstrap-table/bootstrap-table.min.js rename to ruoyi-admin/src/main/resources/static/ajax/libs/bootstrap-table/bootstrap-table.min.js diff --git a/src/main/resources/static/ajax/libs/bootstrap-table/extensions/editable/bootstrap-table-editable.js b/ruoyi-admin/src/main/resources/static/ajax/libs/bootstrap-table/extensions/editable/bootstrap-table-editable.js similarity index 100% rename from src/main/resources/static/ajax/libs/bootstrap-table/extensions/editable/bootstrap-table-editable.js rename to ruoyi-admin/src/main/resources/static/ajax/libs/bootstrap-table/extensions/editable/bootstrap-table-editable.js diff --git a/src/main/resources/static/ajax/libs/bootstrap-table/extensions/editable/bootstrap-table-editable.min.js b/ruoyi-admin/src/main/resources/static/ajax/libs/bootstrap-table/extensions/editable/bootstrap-table-editable.min.js similarity index 100% rename from src/main/resources/static/ajax/libs/bootstrap-table/extensions/editable/bootstrap-table-editable.min.js rename to ruoyi-admin/src/main/resources/static/ajax/libs/bootstrap-table/extensions/editable/bootstrap-table-editable.min.js diff --git a/src/main/resources/static/ajax/libs/bootstrap-table/extensions/export/bootstrap-table-export.js b/ruoyi-admin/src/main/resources/static/ajax/libs/bootstrap-table/extensions/export/bootstrap-table-export.js similarity index 100% rename from src/main/resources/static/ajax/libs/bootstrap-table/extensions/export/bootstrap-table-export.js rename to ruoyi-admin/src/main/resources/static/ajax/libs/bootstrap-table/extensions/export/bootstrap-table-export.js diff --git a/src/main/resources/static/ajax/libs/bootstrap-table/extensions/export/tableExport.js b/ruoyi-admin/src/main/resources/static/ajax/libs/bootstrap-table/extensions/export/tableExport.js similarity index 100% rename from src/main/resources/static/ajax/libs/bootstrap-table/extensions/export/tableExport.js rename to ruoyi-admin/src/main/resources/static/ajax/libs/bootstrap-table/extensions/export/tableExport.js diff --git a/src/main/resources/static/ajax/libs/bootstrap-table/extensions/mobile/bootstrap-table-mobile.js b/ruoyi-admin/src/main/resources/static/ajax/libs/bootstrap-table/extensions/mobile/bootstrap-table-mobile.js similarity index 100% rename from src/main/resources/static/ajax/libs/bootstrap-table/extensions/mobile/bootstrap-table-mobile.js rename to ruoyi-admin/src/main/resources/static/ajax/libs/bootstrap-table/extensions/mobile/bootstrap-table-mobile.js diff --git a/src/main/resources/static/ajax/libs/bootstrap-table/extensions/mobile/bootstrap-table-mobile.min.js b/ruoyi-admin/src/main/resources/static/ajax/libs/bootstrap-table/extensions/mobile/bootstrap-table-mobile.min.js similarity index 100% rename from src/main/resources/static/ajax/libs/bootstrap-table/extensions/mobile/bootstrap-table-mobile.min.js rename to ruoyi-admin/src/main/resources/static/ajax/libs/bootstrap-table/extensions/mobile/bootstrap-table-mobile.min.js diff --git a/src/main/resources/static/ajax/libs/bootstrap-table/extensions/toolbar/bootstrap-table-toolbar.js b/ruoyi-admin/src/main/resources/static/ajax/libs/bootstrap-table/extensions/toolbar/bootstrap-table-toolbar.js similarity index 100% rename from src/main/resources/static/ajax/libs/bootstrap-table/extensions/toolbar/bootstrap-table-toolbar.js rename to ruoyi-admin/src/main/resources/static/ajax/libs/bootstrap-table/extensions/toolbar/bootstrap-table-toolbar.js diff --git a/src/main/resources/static/ajax/libs/bootstrap-table/extensions/toolbar/bootstrap-table-toolbar.min.js b/ruoyi-admin/src/main/resources/static/ajax/libs/bootstrap-table/extensions/toolbar/bootstrap-table-toolbar.min.js similarity index 100% rename from src/main/resources/static/ajax/libs/bootstrap-table/extensions/toolbar/bootstrap-table-toolbar.min.js rename to ruoyi-admin/src/main/resources/static/ajax/libs/bootstrap-table/extensions/toolbar/bootstrap-table-toolbar.min.js diff --git a/src/main/resources/static/ajax/libs/bootstrap-table/locale/bootstrap-table-zh-CN.js b/ruoyi-admin/src/main/resources/static/ajax/libs/bootstrap-table/locale/bootstrap-table-zh-CN.js similarity index 100% rename from src/main/resources/static/ajax/libs/bootstrap-table/locale/bootstrap-table-zh-CN.js rename to ruoyi-admin/src/main/resources/static/ajax/libs/bootstrap-table/locale/bootstrap-table-zh-CN.js diff --git a/src/main/resources/static/ajax/libs/bootstrap-table/locale/bootstrap-table-zh-CN.min.js b/ruoyi-admin/src/main/resources/static/ajax/libs/bootstrap-table/locale/bootstrap-table-zh-CN.min.js similarity index 100% rename from src/main/resources/static/ajax/libs/bootstrap-table/locale/bootstrap-table-zh-CN.min.js rename to ruoyi-admin/src/main/resources/static/ajax/libs/bootstrap-table/locale/bootstrap-table-zh-CN.min.js diff --git a/src/main/resources/static/ajax/libs/bootstrap-treetable/bootstrap-treetable.css b/ruoyi-admin/src/main/resources/static/ajax/libs/bootstrap-treetable/bootstrap-treetable.css similarity index 99% rename from src/main/resources/static/ajax/libs/bootstrap-treetable/bootstrap-treetable.css rename to ruoyi-admin/src/main/resources/static/ajax/libs/bootstrap-treetable/bootstrap-treetable.css index 12577e89..85b40c78 100644 --- a/src/main/resources/static/ajax/libs/bootstrap-treetable/bootstrap-treetable.css +++ b/ruoyi-admin/src/main/resources/static/ajax/libs/bootstrap-treetable/bootstrap-treetable.css @@ -1,14 +1,14 @@ -.bootstrap-tree-table .treetable-indent {width:16px; height: 16px; display: inline-block; position: relative;} -.bootstrap-tree-table .treetable-expander {width:16px; height: 16px; display: inline-block; position: relative; cursor: pointer;} -.bootstrap-tree-table .treetable-selected{background: #f5f5f5 !important;} -.bootstrap-tree-table .treetable-table{border:0 !important;margin-bottom:0} -.bootstrap-tree-table .treetable-table tbody {display:block;height:auto;overflow-y:auto;} -.bootstrap-tree-table .treetable-table thead, .treetable-table tbody tr {display:table;width:100%;table-layout:fixed;} -.bootstrap-tree-table .treetable-thead th{line-height:24px;border: 0 !important;border-radius: 4px;border-left:0px solid #e7eaec !important;border-bottom:1px solid #ccc!important;text-align: left;} -.bootstrap-tree-table .treetable-thead tr :first-child{border-left:0 !important} -.bootstrap-tree-table .treetable-tbody td{border: 0 !important;border-left:0px solid #e7eaec !important;border-bottom:1px solid #e7eaec!important;overflow: hidden; white-space: nowrap; text-overflow: ellipsis;} -.bootstrap-tree-table .treetable-tbody tr :first-child{border-left:0 !important} -.bootstrap-tree-table .treetable-bars .tool-left, .bootstrap-tree-table .treetable-bars .tool-right{margin-top: 10px; margin-bottom: 10px;} -.bootstrap-tree-table .treetable-bars .tool-left{float: left;} -.bootstrap-tree-table .treetable-bars .tool-right{float: right;} -.bootstrap-tree-table .treetable-bars .columns li label{display: block;padding: 3px 20px;clear: both;font-weight: 400;line-height: 1.428571429;max-width: 100%;margin-bottom: 5px;cursor:pointer;} +.bootstrap-tree-table .treetable-indent {width:16px; height: 16px; display: inline-block; position: relative;} +.bootstrap-tree-table .treetable-expander {width:16px; height: 16px; display: inline-block; position: relative; cursor: pointer;} +.bootstrap-tree-table .treetable-selected{background: #f5f5f5 !important;} +.bootstrap-tree-table .treetable-table{border:0 !important;margin-bottom:0} +.bootstrap-tree-table .treetable-table tbody {display:block;height:auto;overflow-y:auto;} +.bootstrap-tree-table .treetable-table thead, .treetable-table tbody tr {display:table;width:100%;table-layout:fixed;} +.bootstrap-tree-table .treetable-thead th{line-height:24px;border: 0 !important;border-radius: 4px;border-left:0px solid #e7eaec !important;border-bottom:1px solid #ccc!important;text-align: left;} +.bootstrap-tree-table .treetable-thead tr :first-child{border-left:0 !important} +.bootstrap-tree-table .treetable-tbody td{border: 0 !important;border-left:0px solid #e7eaec !important;border-bottom:1px solid #e7eaec!important;overflow: hidden; white-space: nowrap; text-overflow: ellipsis;} +.bootstrap-tree-table .treetable-tbody tr :first-child{border-left:0 !important} +.bootstrap-tree-table .treetable-bars .tool-left, .bootstrap-tree-table .treetable-bars .tool-right{margin-top: 10px; margin-bottom: 10px;} +.bootstrap-tree-table .treetable-bars .tool-left{float: left;} +.bootstrap-tree-table .treetable-bars .tool-right{float: right;} +.bootstrap-tree-table .treetable-bars .columns li label{display: block;padding: 3px 20px;clear: both;font-weight: 400;line-height: 1.428571429;max-width: 100%;margin-bottom: 5px;cursor:pointer;} diff --git a/src/main/resources/static/ajax/libs/bootstrap-treetable/bootstrap-treetable.js b/ruoyi-admin/src/main/resources/static/ajax/libs/bootstrap-treetable/bootstrap-treetable.js similarity index 97% rename from src/main/resources/static/ajax/libs/bootstrap-treetable/bootstrap-treetable.js rename to ruoyi-admin/src/main/resources/static/ajax/libs/bootstrap-treetable/bootstrap-treetable.js index a3e4d34f..90fb1555 100644 --- a/src/main/resources/static/ajax/libs/bootstrap-treetable/bootstrap-treetable.js +++ b/ruoyi-admin/src/main/resources/static/ajax/libs/bootstrap-treetable/bootstrap-treetable.js @@ -1,670 +1,670 @@ -/** - * bootstrapTreeTable - * - * @author swifly - */ -(function($) { - "use strict"; - - $.fn.bootstrapTreeTable = function(options, param) { - var target = $(this).data('bootstrap.tree.table'); - target = target ? target : $(this); - // 如果是调用方法 - if (typeof options == 'string') { - return $.fn.bootstrapTreeTable.methods[options](target, param); - } - // 如果是初始化组件 - options = $.extend({}, $.fn.bootstrapTreeTable.defaults, options || {}); - target.hasSelectItem = false;// 是否有radio或checkbox - target.data_list = null; //用于缓存格式化后的数据-按父分组 - target.data_obj = null; //用于缓存格式化后的数据-按id存对象 - target.hiddenColumns = []; //用于存放被隐藏列的field - target.lastAjaxParams; //用户最后一次请求的参数 - target.isFixWidth=false; //是否有固定宽度 - // 初始化 - var init = function() { - // 初始化容器 - initContainer(); - // 初始化工具栏 - initToolbar(); - // 初始化表头 - initHeader(); - // 初始化表体 - initBody(); - // 初始化数据服务 - initServer(); - // 动态设置表头宽度 - autoTheadWidth(true); - // 缓存target对象 - target.data('bootstrap.tree.table', target); - } - // 初始化容器 - var initContainer = function() { - // 在外层包装一下div,样式用的bootstrap-table的 - var $main_div = $("
"); - var $treetable = $("
"); - target.before($main_div); - $main_div.append($treetable); - $treetable.append(target); - target.addClass("table"); - if (options.striped) { - target.addClass('table-striped'); - } - if (options.bordered) { - target.addClass('table-bordered'); - } - if (options.hover) { - target.addClass('table-hover'); - } - if (options.condensed) { - target.addClass('table-condensed'); - } - target.html(""); - } - // 初始化工具栏 - var initToolbar = function() { - var $toolbar = $("
"); - if (options.toolbar) { - $(options.toolbar).addClass('tool-left'); - $toolbar.append($(options.toolbar)); - } - var $rightToolbar = $('
'); - $toolbar.append($rightToolbar); - target.parent().before($toolbar); - // 是否显示刷新按钮 - if (options.showRefresh) { - var $refreshBtn = $(''); - $rightToolbar.append($refreshBtn); - registerRefreshBtnClickEvent($refreshBtn); - } - // 是否显示列选项 - if (options.showColumns) { - var $columns_div = $('
'); - var $columns_ul = $(''); - $.each(options.columns, function(i, column) { - if (column.field != 'selectItem') { - var _li = null; - if(typeof column.visible == "undefined"||column.visible==true){ - _li = $('
  • '); - }else{ - _li = $('
  • '); - target.hiddenColumns.push(column.field); - } - $columns_ul.append(_li); - } - }); - $columns_div.append($columns_ul); - $rightToolbar.append($columns_div); - // 注册列选项事件 - registerColumnClickEvent(); - }else{ - $.each(options.columns, function(i, column) { - if (column.field != 'selectItem') { - if(!(typeof column.visible == "undefined"||column.visible==true)){ - target.hiddenColumns.push(column.field); - } - } - }); - } - } - // 初始化隐藏列 - var initHiddenColumns = function(){ - $.each(target.hiddenColumns, function(i, field) { - target.find("."+field+"_cls").hide(); - }); - } - // 初始化表头 - var initHeader = function() { - var $thr = $(''); - $.each(options.columns, function(i, column) { - var $th = null; - // 判断有没有选择列 - if (i == 0 && column.field == 'selectItem') { - target.hasSelectItem = true; - $th = $(''); - } else { - $th = $(''); - } - if((!target.isFixWidth)&& column.width){ - target.isFixWidth = column.width.indexOf("px")>-1?true:false; - } - $th.text(column.title); - $thr.append($th); - }); - var $thead = $(''); - $thead.append($thr); - target.append($thead); - } - // 初始化表体 - var initBody = function() { - var $tbody = $(''); - target.append($tbody); - // 默认高度 - if (options.height) { - $tbody.css("height", options.height); - } - } - // 初始化数据服务 - var initServer = function(parms) { - // 加载数据前先清空 - target.data_list = {}; - target.data_obj = {}; - var $tbody = target.find("tbody"); - // 添加加载loading - var $loading = '
    正在努力地加载数据中,请稍候……
    ' - $tbody.html($loading); - if (options.url) { - $.ajax({ - type: options.type, - url: options.url, - data: parms ? parms : options.ajaxParams, - dataType: "JSON", - success: function(data, textStatus, jqXHR) { - renderTable(data); - }, - error: function(xhr, textStatus) { - var _errorMsg = '
    ' + xhr.responseText + '
    ' - $tbody.html(_errorMsg); - }, - }); - } else { - renderTable(options.data); - } - } - // 加载完数据后渲染表格 - var renderTable = function(data) { - var $tbody = target.find("tbody"); - // 先清空 - $tbody.html(""); - if (!data || data.length <= 0) { - var _empty = '
    没有找到匹配的记录
    ' - $tbody.html(_empty); - return; - } - // 缓存并格式化数据 - formatData(data); - // 获取所有根节点 - var rootNode = target.data_list["_root_"]; - // 开始绘制 - if (rootNode) { - $.each(rootNode, function(i, item) { - var _child_row_id = "row_id_" + i - recursionNode(item, 1, _child_row_id, "row_root"); - }); - } - // 下边的操作主要是为了查询时让一些没有根节点的节点显示 - $.each(data, function(i, item) { - if (!item.isShow) { - var tr = renderRow(item, false, 1, "", ""); - $tbody.append(tr); - } - }); - target.append($tbody); - registerExpanderEvent(); - registerRowClickEvent(); - initHiddenColumns(); - // 动态设置表头宽度 - autoTheadWidth() - } - // 动态设置表头宽度 - var autoTheadWidth = function(initFlag) { - if(options.height>0){ - var $thead = target.find("thead"); - var $tbody = target.find("tbody"); - var borderWidth = parseInt(target.css("border-left-width")) + parseInt(target.css("border-right-width")) - - $thead.css("width", $tbody.children(":first").width()); - if(initFlag){ - var resizeWaiter = false; - $(window).resize(function() { - if(!resizeWaiter){ - resizeWaiter = true; - setTimeout(function(){ - if(!target.isFixWidth){ - $tbody.css("width", target.parent().width()-borderWidth); - } - $thead.css("width", $tbody.children(":first").width()); - resizeWaiter = false; - }, 300); - } - }); - } - } - - } - // 缓存并格式化数据 - var formatData = function(data) { - var _root = options.rootIdValue ? options.rootIdValue : null - $.each(data, function(index, item) { - // 添加一个默认属性,用来判断当前节点有没有被显示 - item.isShow = false; - // 这里兼容几种常见Root节点写法 - // 默认的几种判断 - var _defaultRootFlag = item[options.parentId] == '0' || - item[options.parentId] == 0 || - item[options.parentId] == null || - item[options.parentId] == ''; - if (!item[options.parentId] || (_root ? (item[options.parentId] == options.rootIdValue) : _defaultRootFlag)) { - if (!target.data_list["_root_"]) { - target.data_list["_root_"] = []; - } - if (!target.data_obj["id_" + item[options.id]]) { - target.data_list["_root_"].push(item); - } - } else { - if (!target.data_list["_n_" + item[options.parentId]]) { - target.data_list["_n_" + item[options.parentId]] = []; - } - if (!target.data_obj["id_" + item[options.id]]) { - target.data_list["_n_" + item[options.parentId]].push(item); - } - } - target.data_obj["id_" + item[options.id]] = item; - }); - } - // 递归获取子节点并且设置子节点 - var recursionNode = function(parentNode, lv, row_id, p_id) { - var $tbody = target.find("tbody"); - var _ls = target.data_list["_n_" + parentNode[options.id]]; - var $tr = renderRow(parentNode, _ls ? true : false, lv, row_id, p_id); - $tbody.append($tr); - if (_ls) { - $.each(_ls, function(i, item) { - var _child_row_id = row_id + "_" + i - recursionNode(item, (lv + 1), _child_row_id, row_id) - }); - } - }; - // 绘制行 - var renderRow = function(item, isP, lv, row_id, p_id) { - // 标记已显示 - item.isShow = true; - item.row_id = row_id; - item.p_id = p_id; - item.lv = lv; - var $tr = $(''); - var _icon = options.expanderCollapsedClass; - if (options.expandAll) { - $tr.css("display", "table"); - _icon = options.expanderExpandedClass; - } else if (lv == 1) { - $tr.css("display", "table"); - _icon = (options.expandFirst) ? options.expanderExpandedClass : options.expanderCollapsedClass; - } else if (lv == 2) { - if (options.expandFirst) { - $tr.css("display", "table"); - } else { - $tr.css("display", "none"); - } - _icon = options.expanderCollapsedClass; - } else { - $tr.css("display", "none"); - _icon = options.expanderCollapsedClass; - } - $.each(options.columns, function(index, column) { - // 判断有没有选择列 - if (column.field == 'selectItem') { - target.hasSelectItem = true; - var $td = $(''); - if (column.radio) { - var _ipt = $(''); - $td.append(_ipt); - } - if (column.checkbox) { - var _ipt = $(''); - $td.append(_ipt); - } - $tr.append($td); - } else { - var $td = $(''); - if(column.width){ - $td.css("width",column.width); - } - if(column.align){ - $td.css("text-align",column.align); - } - if(options.expandColumn == index){ - $td.css("text-align","left"); - } - if(column.valign){ - $td.css("vertical-align",column.valign); - } - if(options.showTitle){ - $td.addClass("ellipsis"); - } - // 增加formatter渲染 - if (column.formatter) { - $td.html(column.formatter.call(this, item[column.field], item, index)); - } else { - if(options.showTitle){ - // 只在字段没有formatter时才添加title属性 - $td.attr("title",item[column.field]); - } - $td.text(item[column.field]); - } - if (options.expandColumn == index) { - if (!isP) { - $td.prepend('') - } else { - $td.prepend('') - } - for (var int = 0; int < (lv - 1); int++) { - $td.prepend('') - } - } - $tr.append($td); - } - }); - return $tr; - } - // 注册刷新按钮点击事件 - var registerRefreshBtnClickEvent = function(btn) { - $(btn).off('click').on('click', function () { - target.refresh(); - }); - } - // 注册列选项事件 - var registerColumnClickEvent = function() { - $(".bootstrap-tree-table .treetable-bars .columns label input").off('click').on('click', function () { - var $this = $(this); - if($this.prop('checked')){ - target.showColumn($(this).val()); - }else{ - target.hideColumn($(this).val()); - } - }); - } - // 注册行点击选中事件 - var registerRowClickEvent = function() { - target.find("tbody").find("tr").unbind(); - target.find("tbody").find("tr").click(function() { - if (target.hasSelectItem) { - var _ipt = $(this).find("input[name='select_item']"); - if (_ipt.attr("type") == "radio") { - _ipt.prop('checked', true); - target.find("tbody").find("tr").removeClass("treetable-selected"); - $(this).addClass("treetable-selected"); - } else { - if (_ipt.prop('checked')) { - _ipt.prop('checked', false); - $(this).removeClass("treetable-selected"); - } else { - _ipt.prop('checked', true); - $(this).addClass("treetable-selected"); - } - } - } - }); - } - // 注册小图标点击事件--展开缩起 - var registerExpanderEvent = function() { - target.find("tbody").find("tr").find(".treetable-expander").unbind(); - target.find("tbody").find("tr").find(".treetable-expander").click(function() { - var _isExpanded = $(this).hasClass(options.expanderExpandedClass); - var _isCollapsed = $(this).hasClass(options.expanderCollapsedClass); - if (_isExpanded || _isCollapsed) { - var tr = $(this).parent().parent(); - var row_id = tr.attr("id"); - var _ls = target.find("tbody").find("tr[id^='" + row_id + "_']"); //下所有 - if (_isExpanded) { - $(this).removeClass(options.expanderExpandedClass); - $(this).addClass(options.expanderCollapsedClass); - if (_ls && _ls.length > 0) { - $.each(_ls, function(index, item) { - $(item).css("display", "none"); - }); - } - } else { - $(this).removeClass(options.expanderCollapsedClass); - $(this).addClass(options.expanderExpandedClass); - if (_ls && _ls.length > 0) { - $.each(_ls, function(index, item) { - // 父icon - var _p_icon = $("#" + $(item).attr("pid")).children().eq(options.expandColumn).find(".treetable-expander"); - if (_p_icon.hasClass(options.expanderExpandedClass)) { - $(item).css("display", "table"); - } - }); - } - } - } - }); - } - // 刷新数据 - target.refresh = function(parms) { - if(parms){ - target.lastAjaxParams=parms; - } - initServer(target.lastAjaxParams); - } - // 添加数据刷新表格 - target.appendData = function(data) { - // 下边的操作主要是为了查询时让一些没有根节点的节点显示 - $.each(data, function(i, item) { - var _data = target.data_obj["id_" + item[options.id]]; - var _p_data = target.data_obj["id_" + item[options.parentId]]; - var _c_list = target.data_list["_n_" + item[options.parentId]]; - var row_id = ""; //行id - var p_id = ""; //父行id - var _lv = 1; //如果没有父就是1默认显示 - var tr; //要添加行的对象 - if (_data && _data.row_id && _data.row_id != "") { - row_id = _data.row_id; // 如果已经存在了,就直接引用原来的 - } - if (_p_data) { - p_id = _p_data.row_id; - if (row_id == "") { - var _tmp = 0 - if (_c_list && _c_list.length > 0) { - _tmp = _c_list.length; - } - row_id = _p_data.row_id + "_" + _tmp; - } - _lv = _p_data.lv + 1; //如果有父 - // 绘制行 - tr = renderRow(item, false, _lv, row_id, p_id); - - var _p_icon = $("#" + _p_data.row_id).children().eq(options.expandColumn).find(".treetable-expander"); - var _isExpanded = _p_icon.hasClass(options.expanderExpandedClass); - var _isCollapsed = _p_icon.hasClass(options.expanderCollapsedClass); - // 父节点有没有展开收缩按钮 - if (_isExpanded || _isCollapsed) { - // 父节点展开状态显示新加行 - if (_isExpanded) { - tr.css("display", "table"); - } - } else { - // 父节点没有展开收缩按钮则添加 - _p_icon.addClass(options.expanderCollapsedClass); - } - - if (_data) { - $("#" + _data.row_id).before(tr); - $("#" + _data.row_id).remove(); - } else { - // 计算父的同级下一行 - var _tmp_ls = _p_data.row_id.split("_"); - var _p_next = _p_data.row_id.substring(0, _p_data.row_id.length - 1) + (parseInt(_tmp_ls[_tmp_ls.length - 1]) + 1); - // 画上 - $("#" + _p_next).before(tr); - } - } else { - tr = renderRow(item, false, _lv, row_id, p_id); - if (_data) { - $("#" + _data.row_id).before(tr); - $("#" + _data.row_id).remove(); - } else { - // 画上 - var tbody = target.find("tbody"); - tbody.append(tr); - } - } - item.isShow = true; - // 缓存并格式化数据 - formatData([item]); - }); - registerExpanderEvent(); - registerRowClickEvent(); - initHiddenColumns(); - } - - // 展开/折叠指定的行 - target.toggleRow=function(id) { - var _rowData = target.data_obj["id_" + id]; - var $row_expander = $("#"+_rowData.row_id).find(".treetable-expander"); - $row_expander.trigger("click"); - } - // 展开指定的行 - target.expandRow=function(id) { - var _rowData = target.data_obj["id_" + id]; - var $row_expander = $("#"+_rowData.row_id).find(".treetable-expander"); - var _isCollapsed = $row_expander.hasClass(target.options.expanderCollapsedClass); - if (_isCollapsed) { - $row_expander.trigger("click"); - } - } - // 折叠 指定的行 - target.collapseRow=function(id) { - var _rowData = target.data_obj["id_" + id]; - var $row_expander = $("#"+_rowData.row_id).find(".treetable-expander"); - var _isExpanded = $row_expander.hasClass(target.options.expanderExpandedClass); - if (_isExpanded) { - $row_expander.trigger("click"); - } - } - // 展开所有的行 - target.expandAll=function() { - target.find("tbody").find("tr").find(".treetable-expander").each(function(i,n){ - var _isCollapsed = $(n).hasClass(options.expanderCollapsedClass); - if (_isCollapsed) { - $(n).trigger("click"); - } - }) - } - // 折叠所有的行 - target.collapseAll=function() { - target.find("tbody").find("tr").find(".treetable-expander").each(function(i,n){ - var _isExpanded = $(n).hasClass(options.expanderExpandedClass); - if (_isExpanded) { - $(n).trigger("click"); - } - }) - } - // 显示指定列 - target.showColumn=function(field,flag) { - var _index = $.inArray(field, target.hiddenColumns); - if (_index > -1) { - target.hiddenColumns.splice(_index, 1); - } - target.find("."+field+"_cls").show(); - //是否更新列选项状态 - if(flag&&options.showColumns){ - var $input = $(".bootstrap-tree-table .treetable-bars .columns label").find("input[value='"+field+"']") - $input.prop("checked", 'checked'); - } - } - // 隐藏指定列 - target.hideColumn=function(field,flag) { - target.hiddenColumns.push(field); - target.find("."+field+"_cls").hide(); - //是否更新列选项状态 - if(flag&&options.showColumns){ - var $input = $(".bootstrap-tree-table .treetable-bars .columns label").find("input[value='"+field+"']") - $input.prop("checked", ''); - } - } - // 初始化 - init(); - return target; - }; - - // 组件方法封装........ - $.fn.bootstrapTreeTable.methods = { - // 为了兼容bootstrap-table的写法,统一返回数组,这里返回了表格显示列的数据 - getSelections: function(target, data) { - // 所有被选中的记录input - var _ipt = target.find("tbody").find("tr").find("input[name='select_item']:checked"); - var chk_value = []; - // 如果是radio - if (_ipt.attr("type") == "radio") { - var _data = target.data_obj["id_" + _ipt.val()]; - chk_value.push(_data); - } else { - _ipt.each(function(_i, _item) { - var _data = target.data_obj["id_" + $(_item).val()]; - chk_value.push(_data); - }); - } - return chk_value; - }, - // 刷新记录 - refresh: function(target, parms) { - if (parms) { - target.refresh(parms); - } else { - target.refresh(); - } - }, - // 添加数据到表格 - appendData: function(target, data) { - if (data) { - target.appendData(data); - } - }, - // 展开/折叠指定的行 - toggleRow: function(target, id) { - target.toggleRow(id); - }, - // 展开指定的行 - expandRow: function(target, id) { - target.expandRow(id); - }, - // 折叠 指定的行 - collapseRow: function(target, id) { - target.collapseRow(id); - }, - // 展开所有的行 - expandAll: function(target) { - target.expandAll(); - }, - // 折叠所有的行 - collapseAll: function(target) { - target.collapseAll(); - }, - // 显示指定列 - showColumn: function(target,field) { - target.showColumn(field,true); - }, - // 隐藏指定列 - hideColumn: function(target,field) { - target.hideColumn(field,true); - } - // 组件的其他方法也可以进行类似封装........ - }; - - $.fn.bootstrapTreeTable.defaults = { - id: 'id', // 选取记录返回的值,用于设置父子关系 - parentId: 'parentId', // 用于设置父子关系 - rootIdValue: null, // 设置根节点id值----可指定根节点,默认为null,"",0,"0" - data: null, // 构造table的数据集合 - type: "GET", // 请求数据的ajax类型 - url: null, // 请求数据的ajax的url - ajaxParams: {}, // 请求数据的ajax的data属性 - expandColumn: 0, // 在哪一列上面显示展开按钮 - expandAll: false, // 是否全部展开 - expandFirst: true, // 是否默认第一级展开--expandAll为false时生效 - striped: false, // 是否各行渐变色 - bordered: true, // 是否显示边框 - hover: true, // 是否鼠标悬停 - condensed: false, // 是否紧缩表格 - columns: [], // 列 - toolbar: null, // 顶部工具条 - height: 0, // 表格高度 - showTitle: true, // 是否采用title属性显示字段内容(被formatter格式化的字段不会显示) - showColumns: true, // 是否显示内容列下拉框 - showRefresh: true, // 是否显示刷新按钮 - expanderExpandedClass: 'glyphicon glyphicon-chevron-down', // 展开的按钮的图标 - expanderCollapsedClass: 'glyphicon glyphicon-chevron-right' // 缩起的按钮的图标 - - }; +/** + * bootstrapTreeTable + * + * @author swifly + */ +(function($) { + "use strict"; + + $.fn.bootstrapTreeTable = function(options, param) { + var target = $(this).data('bootstrap.tree.table'); + target = target ? target : $(this); + // 如果是调用方法 + if (typeof options == 'string') { + return $.fn.bootstrapTreeTable.methods[options](target, param); + } + // 如果是初始化组件 + options = $.extend({}, $.fn.bootstrapTreeTable.defaults, options || {}); + target.hasSelectItem = false;// 是否有radio或checkbox + target.data_list = null; //用于缓存格式化后的数据-按父分组 + target.data_obj = null; //用于缓存格式化后的数据-按id存对象 + target.hiddenColumns = []; //用于存放被隐藏列的field + target.lastAjaxParams; //用户最后一次请求的参数 + target.isFixWidth=false; //是否有固定宽度 + // 初始化 + var init = function() { + // 初始化容器 + initContainer(); + // 初始化工具栏 + initToolbar(); + // 初始化表头 + initHeader(); + // 初始化表体 + initBody(); + // 初始化数据服务 + initServer(); + // 动态设置表头宽度 + autoTheadWidth(true); + // 缓存target对象 + target.data('bootstrap.tree.table', target); + } + // 初始化容器 + var initContainer = function() { + // 在外层包装一下div,样式用的bootstrap-table的 + var $main_div = $("
    "); + var $treetable = $("
    "); + target.before($main_div); + $main_div.append($treetable); + $treetable.append(target); + target.addClass("table"); + if (options.striped) { + target.addClass('table-striped'); + } + if (options.bordered) { + target.addClass('table-bordered'); + } + if (options.hover) { + target.addClass('table-hover'); + } + if (options.condensed) { + target.addClass('table-condensed'); + } + target.html(""); + } + // 初始化工具栏 + var initToolbar = function() { + var $toolbar = $("
    "); + if (options.toolbar) { + $(options.toolbar).addClass('tool-left'); + $toolbar.append($(options.toolbar)); + } + var $rightToolbar = $('
    '); + $toolbar.append($rightToolbar); + target.parent().before($toolbar); + // 是否显示刷新按钮 + if (options.showRefresh) { + var $refreshBtn = $(''); + $rightToolbar.append($refreshBtn); + registerRefreshBtnClickEvent($refreshBtn); + } + // 是否显示列选项 + if (options.showColumns) { + var $columns_div = $('
    '); + var $columns_ul = $(''); + $.each(options.columns, function(i, column) { + if (column.field != 'selectItem') { + var _li = null; + if(typeof column.visible == "undefined"||column.visible==true){ + _li = $('
  • '); + }else{ + _li = $('
  • '); + target.hiddenColumns.push(column.field); + } + $columns_ul.append(_li); + } + }); + $columns_div.append($columns_ul); + $rightToolbar.append($columns_div); + // 注册列选项事件 + registerColumnClickEvent(); + }else{ + $.each(options.columns, function(i, column) { + if (column.field != 'selectItem') { + if(!(typeof column.visible == "undefined"||column.visible==true)){ + target.hiddenColumns.push(column.field); + } + } + }); + } + } + // 初始化隐藏列 + var initHiddenColumns = function(){ + $.each(target.hiddenColumns, function(i, field) { + target.find("."+field+"_cls").hide(); + }); + } + // 初始化表头 + var initHeader = function() { + var $thr = $(''); + $.each(options.columns, function(i, column) { + var $th = null; + // 判断有没有选择列 + if (i == 0 && column.field == 'selectItem') { + target.hasSelectItem = true; + $th = $(''); + } else { + $th = $(''); + } + if((!target.isFixWidth)&& column.width){ + target.isFixWidth = column.width.indexOf("px")>-1?true:false; + } + $th.text(column.title); + $thr.append($th); + }); + var $thead = $(''); + $thead.append($thr); + target.append($thead); + } + // 初始化表体 + var initBody = function() { + var $tbody = $(''); + target.append($tbody); + // 默认高度 + if (options.height) { + $tbody.css("height", options.height); + } + } + // 初始化数据服务 + var initServer = function(parms) { + // 加载数据前先清空 + target.data_list = {}; + target.data_obj = {}; + var $tbody = target.find("tbody"); + // 添加加载loading + var $loading = '
    正在努力地加载数据中,请稍候……
    ' + $tbody.html($loading); + if (options.url) { + $.ajax({ + type: options.type, + url: options.url, + data: parms ? parms : options.ajaxParams, + dataType: "JSON", + success: function(data, textStatus, jqXHR) { + renderTable(data); + }, + error: function(xhr, textStatus) { + var _errorMsg = '
    ' + xhr.responseText + '
    ' + $tbody.html(_errorMsg); + }, + }); + } else { + renderTable(options.data); + } + } + // 加载完数据后渲染表格 + var renderTable = function(data) { + var $tbody = target.find("tbody"); + // 先清空 + $tbody.html(""); + if (!data || data.length <= 0) { + var _empty = '
    没有找到匹配的记录
    ' + $tbody.html(_empty); + return; + } + // 缓存并格式化数据 + formatData(data); + // 获取所有根节点 + var rootNode = target.data_list["_root_"]; + // 开始绘制 + if (rootNode) { + $.each(rootNode, function(i, item) { + var _child_row_id = "row_id_" + i + recursionNode(item, 1, _child_row_id, "row_root"); + }); + } + // 下边的操作主要是为了查询时让一些没有根节点的节点显示 + $.each(data, function(i, item) { + if (!item.isShow) { + var tr = renderRow(item, false, 1, "", ""); + $tbody.append(tr); + } + }); + target.append($tbody); + registerExpanderEvent(); + registerRowClickEvent(); + initHiddenColumns(); + // 动态设置表头宽度 + autoTheadWidth() + } + // 动态设置表头宽度 + var autoTheadWidth = function(initFlag) { + if(options.height>0){ + var $thead = target.find("thead"); + var $tbody = target.find("tbody"); + var borderWidth = parseInt(target.css("border-left-width")) + parseInt(target.css("border-right-width")) + + $thead.css("width", $tbody.children(":first").width()); + if(initFlag){ + var resizeWaiter = false; + $(window).resize(function() { + if(!resizeWaiter){ + resizeWaiter = true; + setTimeout(function(){ + if(!target.isFixWidth){ + $tbody.css("width", target.parent().width()-borderWidth); + } + $thead.css("width", $tbody.children(":first").width()); + resizeWaiter = false; + }, 300); + } + }); + } + } + + } + // 缓存并格式化数据 + var formatData = function(data) { + var _root = options.rootIdValue ? options.rootIdValue : null + $.each(data, function(index, item) { + // 添加一个默认属性,用来判断当前节点有没有被显示 + item.isShow = false; + // 这里兼容几种常见Root节点写法 + // 默认的几种判断 + var _defaultRootFlag = item[options.parentId] == '0' || + item[options.parentId] == 0 || + item[options.parentId] == null || + item[options.parentId] == ''; + if (!item[options.parentId] || (_root ? (item[options.parentId] == options.rootIdValue) : _defaultRootFlag)) { + if (!target.data_list["_root_"]) { + target.data_list["_root_"] = []; + } + if (!target.data_obj["id_" + item[options.id]]) { + target.data_list["_root_"].push(item); + } + } else { + if (!target.data_list["_n_" + item[options.parentId]]) { + target.data_list["_n_" + item[options.parentId]] = []; + } + if (!target.data_obj["id_" + item[options.id]]) { + target.data_list["_n_" + item[options.parentId]].push(item); + } + } + target.data_obj["id_" + item[options.id]] = item; + }); + } + // 递归获取子节点并且设置子节点 + var recursionNode = function(parentNode, lv, row_id, p_id) { + var $tbody = target.find("tbody"); + var _ls = target.data_list["_n_" + parentNode[options.id]]; + var $tr = renderRow(parentNode, _ls ? true : false, lv, row_id, p_id); + $tbody.append($tr); + if (_ls) { + $.each(_ls, function(i, item) { + var _child_row_id = row_id + "_" + i + recursionNode(item, (lv + 1), _child_row_id, row_id) + }); + } + }; + // 绘制行 + var renderRow = function(item, isP, lv, row_id, p_id) { + // 标记已显示 + item.isShow = true; + item.row_id = row_id; + item.p_id = p_id; + item.lv = lv; + var $tr = $(''); + var _icon = options.expanderCollapsedClass; + if (options.expandAll) { + $tr.css("display", "table"); + _icon = options.expanderExpandedClass; + } else if (lv == 1) { + $tr.css("display", "table"); + _icon = (options.expandFirst) ? options.expanderExpandedClass : options.expanderCollapsedClass; + } else if (lv == 2) { + if (options.expandFirst) { + $tr.css("display", "table"); + } else { + $tr.css("display", "none"); + } + _icon = options.expanderCollapsedClass; + } else { + $tr.css("display", "none"); + _icon = options.expanderCollapsedClass; + } + $.each(options.columns, function(index, column) { + // 判断有没有选择列 + if (column.field == 'selectItem') { + target.hasSelectItem = true; + var $td = $(''); + if (column.radio) { + var _ipt = $(''); + $td.append(_ipt); + } + if (column.checkbox) { + var _ipt = $(''); + $td.append(_ipt); + } + $tr.append($td); + } else { + var $td = $(''); + if(column.width){ + $td.css("width",column.width); + } + if(column.align){ + $td.css("text-align",column.align); + } + if(options.expandColumn == index){ + $td.css("text-align","left"); + } + if(column.valign){ + $td.css("vertical-align",column.valign); + } + if(options.showTitle){ + $td.addClass("ellipsis"); + } + // 增加formatter渲染 + if (column.formatter) { + $td.html(column.formatter.call(this, item[column.field], item, index)); + } else { + if(options.showTitle){ + // 只在字段没有formatter时才添加title属性 + $td.attr("title",item[column.field]); + } + $td.text(item[column.field]); + } + if (options.expandColumn == index) { + if (!isP) { + $td.prepend('') + } else { + $td.prepend('') + } + for (var int = 0; int < (lv - 1); int++) { + $td.prepend('') + } + } + $tr.append($td); + } + }); + return $tr; + } + // 注册刷新按钮点击事件 + var registerRefreshBtnClickEvent = function(btn) { + $(btn).off('click').on('click', function () { + target.refresh(); + }); + } + // 注册列选项事件 + var registerColumnClickEvent = function() { + $(".bootstrap-tree-table .treetable-bars .columns label input").off('click').on('click', function () { + var $this = $(this); + if($this.prop('checked')){ + target.showColumn($(this).val()); + }else{ + target.hideColumn($(this).val()); + } + }); + } + // 注册行点击选中事件 + var registerRowClickEvent = function() { + target.find("tbody").find("tr").unbind(); + target.find("tbody").find("tr").click(function() { + if (target.hasSelectItem) { + var _ipt = $(this).find("input[name='select_item']"); + if (_ipt.attr("type") == "radio") { + _ipt.prop('checked', true); + target.find("tbody").find("tr").removeClass("treetable-selected"); + $(this).addClass("treetable-selected"); + } else { + if (_ipt.prop('checked')) { + _ipt.prop('checked', false); + $(this).removeClass("treetable-selected"); + } else { + _ipt.prop('checked', true); + $(this).addClass("treetable-selected"); + } + } + } + }); + } + // 注册小图标点击事件--展开缩起 + var registerExpanderEvent = function() { + target.find("tbody").find("tr").find(".treetable-expander").unbind(); + target.find("tbody").find("tr").find(".treetable-expander").click(function() { + var _isExpanded = $(this).hasClass(options.expanderExpandedClass); + var _isCollapsed = $(this).hasClass(options.expanderCollapsedClass); + if (_isExpanded || _isCollapsed) { + var tr = $(this).parent().parent(); + var row_id = tr.attr("id"); + var _ls = target.find("tbody").find("tr[id^='" + row_id + "_']"); //下所有 + if (_isExpanded) { + $(this).removeClass(options.expanderExpandedClass); + $(this).addClass(options.expanderCollapsedClass); + if (_ls && _ls.length > 0) { + $.each(_ls, function(index, item) { + $(item).css("display", "none"); + }); + } + } else { + $(this).removeClass(options.expanderCollapsedClass); + $(this).addClass(options.expanderExpandedClass); + if (_ls && _ls.length > 0) { + $.each(_ls, function(index, item) { + // 父icon + var _p_icon = $("#" + $(item).attr("pid")).children().eq(options.expandColumn).find(".treetable-expander"); + if (_p_icon.hasClass(options.expanderExpandedClass)) { + $(item).css("display", "table"); + } + }); + } + } + } + }); + } + // 刷新数据 + target.refresh = function(parms) { + if(parms){ + target.lastAjaxParams=parms; + } + initServer(target.lastAjaxParams); + } + // 添加数据刷新表格 + target.appendData = function(data) { + // 下边的操作主要是为了查询时让一些没有根节点的节点显示 + $.each(data, function(i, item) { + var _data = target.data_obj["id_" + item[options.id]]; + var _p_data = target.data_obj["id_" + item[options.parentId]]; + var _c_list = target.data_list["_n_" + item[options.parentId]]; + var row_id = ""; //行id + var p_id = ""; //父行id + var _lv = 1; //如果没有父就是1默认显示 + var tr; //要添加行的对象 + if (_data && _data.row_id && _data.row_id != "") { + row_id = _data.row_id; // 如果已经存在了,就直接引用原来的 + } + if (_p_data) { + p_id = _p_data.row_id; + if (row_id == "") { + var _tmp = 0 + if (_c_list && _c_list.length > 0) { + _tmp = _c_list.length; + } + row_id = _p_data.row_id + "_" + _tmp; + } + _lv = _p_data.lv + 1; //如果有父 + // 绘制行 + tr = renderRow(item, false, _lv, row_id, p_id); + + var _p_icon = $("#" + _p_data.row_id).children().eq(options.expandColumn).find(".treetable-expander"); + var _isExpanded = _p_icon.hasClass(options.expanderExpandedClass); + var _isCollapsed = _p_icon.hasClass(options.expanderCollapsedClass); + // 父节点有没有展开收缩按钮 + if (_isExpanded || _isCollapsed) { + // 父节点展开状态显示新加行 + if (_isExpanded) { + tr.css("display", "table"); + } + } else { + // 父节点没有展开收缩按钮则添加 + _p_icon.addClass(options.expanderCollapsedClass); + } + + if (_data) { + $("#" + _data.row_id).before(tr); + $("#" + _data.row_id).remove(); + } else { + // 计算父的同级下一行 + var _tmp_ls = _p_data.row_id.split("_"); + var _p_next = _p_data.row_id.substring(0, _p_data.row_id.length - 1) + (parseInt(_tmp_ls[_tmp_ls.length - 1]) + 1); + // 画上 + $("#" + _p_next).before(tr); + } + } else { + tr = renderRow(item, false, _lv, row_id, p_id); + if (_data) { + $("#" + _data.row_id).before(tr); + $("#" + _data.row_id).remove(); + } else { + // 画上 + var tbody = target.find("tbody"); + tbody.append(tr); + } + } + item.isShow = true; + // 缓存并格式化数据 + formatData([item]); + }); + registerExpanderEvent(); + registerRowClickEvent(); + initHiddenColumns(); + } + + // 展开/折叠指定的行 + target.toggleRow=function(id) { + var _rowData = target.data_obj["id_" + id]; + var $row_expander = $("#"+_rowData.row_id).find(".treetable-expander"); + $row_expander.trigger("click"); + } + // 展开指定的行 + target.expandRow=function(id) { + var _rowData = target.data_obj["id_" + id]; + var $row_expander = $("#"+_rowData.row_id).find(".treetable-expander"); + var _isCollapsed = $row_expander.hasClass(target.options.expanderCollapsedClass); + if (_isCollapsed) { + $row_expander.trigger("click"); + } + } + // 折叠 指定的行 + target.collapseRow=function(id) { + var _rowData = target.data_obj["id_" + id]; + var $row_expander = $("#"+_rowData.row_id).find(".treetable-expander"); + var _isExpanded = $row_expander.hasClass(target.options.expanderExpandedClass); + if (_isExpanded) { + $row_expander.trigger("click"); + } + } + // 展开所有的行 + target.expandAll=function() { + target.find("tbody").find("tr").find(".treetable-expander").each(function(i,n){ + var _isCollapsed = $(n).hasClass(options.expanderCollapsedClass); + if (_isCollapsed) { + $(n).trigger("click"); + } + }) + } + // 折叠所有的行 + target.collapseAll=function() { + target.find("tbody").find("tr").find(".treetable-expander").each(function(i,n){ + var _isExpanded = $(n).hasClass(options.expanderExpandedClass); + if (_isExpanded) { + $(n).trigger("click"); + } + }) + } + // 显示指定列 + target.showColumn=function(field,flag) { + var _index = $.inArray(field, target.hiddenColumns); + if (_index > -1) { + target.hiddenColumns.splice(_index, 1); + } + target.find("."+field+"_cls").show(); + //是否更新列选项状态 + if(flag&&options.showColumns){ + var $input = $(".bootstrap-tree-table .treetable-bars .columns label").find("input[value='"+field+"']") + $input.prop("checked", 'checked'); + } + } + // 隐藏指定列 + target.hideColumn=function(field,flag) { + target.hiddenColumns.push(field); + target.find("."+field+"_cls").hide(); + //是否更新列选项状态 + if(flag&&options.showColumns){ + var $input = $(".bootstrap-tree-table .treetable-bars .columns label").find("input[value='"+field+"']") + $input.prop("checked", ''); + } + } + // 初始化 + init(); + return target; + }; + + // 组件方法封装........ + $.fn.bootstrapTreeTable.methods = { + // 为了兼容bootstrap-table的写法,统一返回数组,这里返回了表格显示列的数据 + getSelections: function(target, data) { + // 所有被选中的记录input + var _ipt = target.find("tbody").find("tr").find("input[name='select_item']:checked"); + var chk_value = []; + // 如果是radio + if (_ipt.attr("type") == "radio") { + var _data = target.data_obj["id_" + _ipt.val()]; + chk_value.push(_data); + } else { + _ipt.each(function(_i, _item) { + var _data = target.data_obj["id_" + $(_item).val()]; + chk_value.push(_data); + }); + } + return chk_value; + }, + // 刷新记录 + refresh: function(target, parms) { + if (parms) { + target.refresh(parms); + } else { + target.refresh(); + } + }, + // 添加数据到表格 + appendData: function(target, data) { + if (data) { + target.appendData(data); + } + }, + // 展开/折叠指定的行 + toggleRow: function(target, id) { + target.toggleRow(id); + }, + // 展开指定的行 + expandRow: function(target, id) { + target.expandRow(id); + }, + // 折叠 指定的行 + collapseRow: function(target, id) { + target.collapseRow(id); + }, + // 展开所有的行 + expandAll: function(target) { + target.expandAll(); + }, + // 折叠所有的行 + collapseAll: function(target) { + target.collapseAll(); + }, + // 显示指定列 + showColumn: function(target,field) { + target.showColumn(field,true); + }, + // 隐藏指定列 + hideColumn: function(target,field) { + target.hideColumn(field,true); + } + // 组件的其他方法也可以进行类似封装........ + }; + + $.fn.bootstrapTreeTable.defaults = { + id: 'id', // 选取记录返回的值,用于设置父子关系 + parentId: 'parentId', // 用于设置父子关系 + rootIdValue: null, // 设置根节点id值----可指定根节点,默认为null,"",0,"0" + data: null, // 构造table的数据集合 + type: "GET", // 请求数据的ajax类型 + url: null, // 请求数据的ajax的url + ajaxParams: {}, // 请求数据的ajax的data属性 + expandColumn: 0, // 在哪一列上面显示展开按钮 + expandAll: false, // 是否全部展开 + expandFirst: true, // 是否默认第一级展开--expandAll为false时生效 + striped: false, // 是否各行渐变色 + bordered: true, // 是否显示边框 + hover: true, // 是否鼠标悬停 + condensed: false, // 是否紧缩表格 + columns: [], // 列 + toolbar: null, // 顶部工具条 + height: 0, // 表格高度 + showTitle: true, // 是否采用title属性显示字段内容(被formatter格式化的字段不会显示) + showColumns: true, // 是否显示内容列下拉框 + showRefresh: true, // 是否显示刷新按钮 + expanderExpandedClass: 'glyphicon glyphicon-chevron-down', // 展开的按钮的图标 + expanderCollapsedClass: 'glyphicon glyphicon-chevron-right' // 缩起的按钮的图标 + + }; })(jQuery); \ No newline at end of file diff --git a/src/main/resources/static/ajax/libs/cropbox/cropbox.css b/ruoyi-admin/src/main/resources/static/ajax/libs/cropbox/cropbox.css similarity index 100% rename from src/main/resources/static/ajax/libs/cropbox/cropbox.css rename to ruoyi-admin/src/main/resources/static/ajax/libs/cropbox/cropbox.css diff --git a/src/main/resources/static/ajax/libs/cropbox/cropbox.js b/ruoyi-admin/src/main/resources/static/ajax/libs/cropbox/cropbox.js similarity index 100% rename from src/main/resources/static/ajax/libs/cropbox/cropbox.js rename to ruoyi-admin/src/main/resources/static/ajax/libs/cropbox/cropbox.js diff --git a/src/main/resources/static/ajax/libs/datapicker/bootstrap-datepicker.js b/ruoyi-admin/src/main/resources/static/ajax/libs/datapicker/bootstrap-datepicker.js similarity index 100% rename from src/main/resources/static/ajax/libs/datapicker/bootstrap-datepicker.js rename to ruoyi-admin/src/main/resources/static/ajax/libs/datapicker/bootstrap-datepicker.js diff --git a/src/main/resources/static/ajax/libs/datapicker/datepicker3.css b/ruoyi-admin/src/main/resources/static/ajax/libs/datapicker/datepicker3.css similarity index 100% rename from src/main/resources/static/ajax/libs/datapicker/datepicker3.css rename to ruoyi-admin/src/main/resources/static/ajax/libs/datapicker/datepicker3.css diff --git a/src/main/resources/static/ajax/libs/fullscreen/jquery.fullscreen.js b/ruoyi-admin/src/main/resources/static/ajax/libs/fullscreen/jquery.fullscreen.js similarity index 100% rename from src/main/resources/static/ajax/libs/fullscreen/jquery.fullscreen.js rename to ruoyi-admin/src/main/resources/static/ajax/libs/fullscreen/jquery.fullscreen.js diff --git a/src/main/resources/static/ajax/libs/iCheck/custom.css b/ruoyi-admin/src/main/resources/static/ajax/libs/iCheck/custom.css similarity index 100% rename from src/main/resources/static/ajax/libs/iCheck/custom.css rename to ruoyi-admin/src/main/resources/static/ajax/libs/iCheck/custom.css diff --git a/src/main/resources/static/ajax/libs/iCheck/green-login.png b/ruoyi-admin/src/main/resources/static/ajax/libs/iCheck/green-login.png similarity index 100% rename from src/main/resources/static/ajax/libs/iCheck/green-login.png rename to ruoyi-admin/src/main/resources/static/ajax/libs/iCheck/green-login.png diff --git a/src/main/resources/static/ajax/libs/iCheck/green.png b/ruoyi-admin/src/main/resources/static/ajax/libs/iCheck/green.png similarity index 100% rename from src/main/resources/static/ajax/libs/iCheck/green.png rename to ruoyi-admin/src/main/resources/static/ajax/libs/iCheck/green.png diff --git a/src/main/resources/static/ajax/libs/iCheck/green@2x.png b/ruoyi-admin/src/main/resources/static/ajax/libs/iCheck/green@2x.png similarity index 100% rename from src/main/resources/static/ajax/libs/iCheck/green@2x.png rename to ruoyi-admin/src/main/resources/static/ajax/libs/iCheck/green@2x.png diff --git a/src/main/resources/static/ajax/libs/iCheck/icheck.min.js b/ruoyi-admin/src/main/resources/static/ajax/libs/iCheck/icheck.min.js similarity index 100% rename from src/main/resources/static/ajax/libs/iCheck/icheck.min.js rename to ruoyi-admin/src/main/resources/static/ajax/libs/iCheck/icheck.min.js diff --git a/src/main/resources/static/ajax/libs/jquery-layout/jquery.layout-latest.css b/ruoyi-admin/src/main/resources/static/ajax/libs/jquery-layout/jquery.layout-latest.css similarity index 100% rename from src/main/resources/static/ajax/libs/jquery-layout/jquery.layout-latest.css rename to ruoyi-admin/src/main/resources/static/ajax/libs/jquery-layout/jquery.layout-latest.css diff --git a/src/main/resources/static/ajax/libs/jquery-layout/jquery.layout-latest.js b/ruoyi-admin/src/main/resources/static/ajax/libs/jquery-layout/jquery.layout-latest.js similarity index 100% rename from src/main/resources/static/ajax/libs/jquery-layout/jquery.layout-latest.js rename to ruoyi-admin/src/main/resources/static/ajax/libs/jquery-layout/jquery.layout-latest.js diff --git a/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/1_close.png b/ruoyi-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/1_close.png similarity index 100% rename from src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/1_close.png rename to ruoyi-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/1_close.png diff --git a/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/1_open.png b/ruoyi-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/1_open.png similarity index 100% rename from src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/1_open.png rename to ruoyi-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/1_open.png diff --git a/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/2.png b/ruoyi-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/2.png similarity index 100% rename from src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/2.png rename to ruoyi-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/2.png diff --git a/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/3.png b/ruoyi-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/3.png similarity index 100% rename from src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/3.png rename to ruoyi-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/3.png diff --git a/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/4.png b/ruoyi-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/4.png similarity index 100% rename from src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/4.png rename to ruoyi-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/4.png diff --git a/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/5.png b/ruoyi-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/5.png similarity index 100% rename from src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/5.png rename to ruoyi-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/5.png diff --git a/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/6.png b/ruoyi-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/6.png similarity index 100% rename from src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/6.png rename to ruoyi-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/6.png diff --git a/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/7.png b/ruoyi-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/7.png similarity index 100% rename from src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/7.png rename to ruoyi-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/7.png diff --git a/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/8.png b/ruoyi-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/8.png similarity index 100% rename from src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/8.png rename to ruoyi-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/8.png diff --git a/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/9.png b/ruoyi-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/9.png similarity index 100% rename from src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/9.png rename to ruoyi-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/diy/9.png diff --git a/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/line_conn.gif b/ruoyi-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/line_conn.gif similarity index 100% rename from src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/line_conn.gif rename to ruoyi-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/line_conn.gif diff --git a/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/loading.gif b/ruoyi-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/loading.gif similarity index 100% rename from src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/loading.gif rename to ruoyi-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/loading.gif diff --git a/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/zTreeStandard.gif b/ruoyi-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/zTreeStandard.gif similarity index 100% rename from src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/zTreeStandard.gif rename to ruoyi-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/zTreeStandard.gif diff --git a/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/zTreeStandard.png b/ruoyi-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/zTreeStandard.png similarity index 100% rename from src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/zTreeStandard.png rename to ruoyi-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/img/zTreeStandard.png diff --git a/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/zTreeStyle.css b/ruoyi-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/zTreeStyle.css similarity index 100% rename from src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/zTreeStyle.css rename to ruoyi-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/default/zTreeStyle.css diff --git a/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/metro/img/line_conn.gif b/ruoyi-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/metro/img/line_conn.gif similarity index 100% rename from src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/metro/img/line_conn.gif rename to ruoyi-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/metro/img/line_conn.gif diff --git a/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/metro/img/line_conn.png b/ruoyi-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/metro/img/line_conn.png similarity index 100% rename from src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/metro/img/line_conn.png rename to ruoyi-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/metro/img/line_conn.png diff --git a/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/metro/img/loading.gif b/ruoyi-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/metro/img/loading.gif similarity index 100% rename from src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/metro/img/loading.gif rename to ruoyi-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/metro/img/loading.gif diff --git a/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/metro/img/metro.gif b/ruoyi-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/metro/img/metro.gif similarity index 100% rename from src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/metro/img/metro.gif rename to ruoyi-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/metro/img/metro.gif diff --git a/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/metro/img/metro.png b/ruoyi-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/metro/img/metro.png similarity index 100% rename from src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/metro/img/metro.png rename to ruoyi-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/metro/img/metro.png diff --git a/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/metro/zTreeStyle.css b/ruoyi-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/metro/zTreeStyle.css similarity index 100% rename from src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/metro/zTreeStyle.css rename to ruoyi-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/metro/zTreeStyle.css diff --git a/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/simple/img/left_menu.gif b/ruoyi-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/simple/img/left_menu.gif similarity index 100% rename from src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/simple/img/left_menu.gif rename to ruoyi-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/simple/img/left_menu.gif diff --git a/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/simple/img/left_menu.png b/ruoyi-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/simple/img/left_menu.png similarity index 100% rename from src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/simple/img/left_menu.png rename to ruoyi-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/simple/img/left_menu.png diff --git a/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/simple/img/line_conn.gif b/ruoyi-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/simple/img/line_conn.gif similarity index 100% rename from src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/simple/img/line_conn.gif rename to ruoyi-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/simple/img/line_conn.gif diff --git a/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/simple/img/loading.gif b/ruoyi-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/simple/img/loading.gif similarity index 100% rename from src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/simple/img/loading.gif rename to ruoyi-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/simple/img/loading.gif diff --git a/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/simple/img/zTreeStandard.gif b/ruoyi-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/simple/img/zTreeStandard.gif similarity index 100% rename from src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/simple/img/zTreeStandard.gif rename to ruoyi-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/simple/img/zTreeStandard.gif diff --git a/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/simple/img/zTreeStandard.png b/ruoyi-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/simple/img/zTreeStandard.png similarity index 100% rename from src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/simple/img/zTreeStandard.png rename to ruoyi-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/simple/img/zTreeStandard.png diff --git a/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/simple/zTreeStyle.css b/ruoyi-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/simple/zTreeStyle.css similarity index 100% rename from src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/simple/zTreeStyle.css rename to ruoyi-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/css/simple/zTreeStyle.css diff --git a/src/main/resources/static/ajax/libs/jquery-ztree/3.5/js/jquery.ztree.all-3.5.js b/ruoyi-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/js/jquery.ztree.all-3.5.js similarity index 100% rename from src/main/resources/static/ajax/libs/jquery-ztree/3.5/js/jquery.ztree.all-3.5.js rename to ruoyi-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/js/jquery.ztree.all-3.5.js diff --git a/src/main/resources/static/ajax/libs/jquery-ztree/3.5/js/jquery.ztree.core-3.5.js b/ruoyi-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/js/jquery.ztree.core-3.5.js similarity index 100% rename from src/main/resources/static/ajax/libs/jquery-ztree/3.5/js/jquery.ztree.core-3.5.js rename to ruoyi-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/js/jquery.ztree.core-3.5.js diff --git a/src/main/resources/static/ajax/libs/jquery-ztree/3.5/js/jquery.ztree.excheck-3.5.js b/ruoyi-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/js/jquery.ztree.excheck-3.5.js similarity index 100% rename from src/main/resources/static/ajax/libs/jquery-ztree/3.5/js/jquery.ztree.excheck-3.5.js rename to ruoyi-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/js/jquery.ztree.excheck-3.5.js diff --git a/src/main/resources/static/ajax/libs/jquery-ztree/3.5/js/jquery.ztree.exedit-3.5.js b/ruoyi-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/js/jquery.ztree.exedit-3.5.js similarity index 100% rename from src/main/resources/static/ajax/libs/jquery-ztree/3.5/js/jquery.ztree.exedit-3.5.js rename to ruoyi-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/js/jquery.ztree.exedit-3.5.js diff --git a/src/main/resources/static/ajax/libs/jquery-ztree/3.5/js/jquery.ztree.exhide-3.5.js b/ruoyi-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/js/jquery.ztree.exhide-3.5.js similarity index 100% rename from src/main/resources/static/ajax/libs/jquery-ztree/3.5/js/jquery.ztree.exhide-3.5.js rename to ruoyi-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/js/jquery.ztree.exhide-3.5.js diff --git a/src/main/resources/static/ajax/libs/jquery-ztree/3.5/log v3.x.txt b/ruoyi-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/log v3.x.txt similarity index 100% rename from src/main/resources/static/ajax/libs/jquery-ztree/3.5/log v3.x.txt rename to ruoyi-admin/src/main/resources/static/ajax/libs/jquery-ztree/3.5/log v3.x.txt diff --git a/src/main/resources/static/ajax/libs/layer/layer.min.js b/ruoyi-admin/src/main/resources/static/ajax/libs/layer/layer.min.js similarity index 100% rename from src/main/resources/static/ajax/libs/layer/layer.min.js rename to ruoyi-admin/src/main/resources/static/ajax/libs/layer/layer.min.js diff --git a/src/main/resources/static/ajax/libs/layer/theme/default/icon-ext.png b/ruoyi-admin/src/main/resources/static/ajax/libs/layer/theme/default/icon-ext.png similarity index 100% rename from src/main/resources/static/ajax/libs/layer/theme/default/icon-ext.png rename to ruoyi-admin/src/main/resources/static/ajax/libs/layer/theme/default/icon-ext.png diff --git a/src/main/resources/static/ajax/libs/layer/theme/default/icon.png b/ruoyi-admin/src/main/resources/static/ajax/libs/layer/theme/default/icon.png similarity index 100% rename from src/main/resources/static/ajax/libs/layer/theme/default/icon.png rename to ruoyi-admin/src/main/resources/static/ajax/libs/layer/theme/default/icon.png diff --git a/src/main/resources/static/ajax/libs/layer/theme/default/layer.css b/ruoyi-admin/src/main/resources/static/ajax/libs/layer/theme/default/layer.css similarity index 100% rename from src/main/resources/static/ajax/libs/layer/theme/default/layer.css rename to ruoyi-admin/src/main/resources/static/ajax/libs/layer/theme/default/layer.css diff --git a/src/main/resources/static/ajax/libs/layer/theme/default/loading-0.gif b/ruoyi-admin/src/main/resources/static/ajax/libs/layer/theme/default/loading-0.gif similarity index 100% rename from src/main/resources/static/ajax/libs/layer/theme/default/loading-0.gif rename to ruoyi-admin/src/main/resources/static/ajax/libs/layer/theme/default/loading-0.gif diff --git a/src/main/resources/static/ajax/libs/layer/theme/default/loading-1.gif b/ruoyi-admin/src/main/resources/static/ajax/libs/layer/theme/default/loading-1.gif similarity index 100% rename from src/main/resources/static/ajax/libs/layer/theme/default/loading-1.gif rename to ruoyi-admin/src/main/resources/static/ajax/libs/layer/theme/default/loading-1.gif diff --git a/src/main/resources/static/ajax/libs/layer/theme/default/loading-2.gif b/ruoyi-admin/src/main/resources/static/ajax/libs/layer/theme/default/loading-2.gif similarity index 100% rename from src/main/resources/static/ajax/libs/layer/theme/default/loading-2.gif rename to ruoyi-admin/src/main/resources/static/ajax/libs/layer/theme/default/loading-2.gif diff --git a/src/main/resources/static/ajax/libs/layui/css/modules/laydate/default/font/iconfont.eot b/ruoyi-admin/src/main/resources/static/ajax/libs/layui/css/modules/laydate/default/font/iconfont.eot similarity index 100% rename from src/main/resources/static/ajax/libs/layui/css/modules/laydate/default/font/iconfont.eot rename to ruoyi-admin/src/main/resources/static/ajax/libs/layui/css/modules/laydate/default/font/iconfont.eot diff --git a/src/main/resources/static/ajax/libs/layui/css/modules/laydate/default/font/iconfont.svg b/ruoyi-admin/src/main/resources/static/ajax/libs/layui/css/modules/laydate/default/font/iconfont.svg similarity index 98% rename from src/main/resources/static/ajax/libs/layui/css/modules/laydate/default/font/iconfont.svg rename to ruoyi-admin/src/main/resources/static/ajax/libs/layui/css/modules/laydate/default/font/iconfont.svg index 1e04218f..788ecc69 100644 --- a/src/main/resources/static/ajax/libs/layui/css/modules/laydate/default/font/iconfont.svg +++ b/ruoyi-admin/src/main/resources/static/ajax/libs/layui/css/modules/laydate/default/font/iconfont.svg @@ -1,45 +1,45 @@ - - - - - -Created by iconfont - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + +Created by iconfont + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/static/ajax/libs/layui/css/modules/laydate/default/font/iconfont.ttf b/ruoyi-admin/src/main/resources/static/ajax/libs/layui/css/modules/laydate/default/font/iconfont.ttf similarity index 100% rename from src/main/resources/static/ajax/libs/layui/css/modules/laydate/default/font/iconfont.ttf rename to ruoyi-admin/src/main/resources/static/ajax/libs/layui/css/modules/laydate/default/font/iconfont.ttf diff --git a/src/main/resources/static/ajax/libs/layui/css/modules/laydate/default/font/iconfont.woff b/ruoyi-admin/src/main/resources/static/ajax/libs/layui/css/modules/laydate/default/font/iconfont.woff similarity index 100% rename from src/main/resources/static/ajax/libs/layui/css/modules/laydate/default/font/iconfont.woff rename to ruoyi-admin/src/main/resources/static/ajax/libs/layui/css/modules/laydate/default/font/iconfont.woff diff --git a/src/main/resources/static/ajax/libs/layui/css/modules/laydate/default/laydate.css b/ruoyi-admin/src/main/resources/static/ajax/libs/layui/css/modules/laydate/default/laydate.css similarity index 99% rename from src/main/resources/static/ajax/libs/layui/css/modules/laydate/default/laydate.css rename to ruoyi-admin/src/main/resources/static/ajax/libs/layui/css/modules/laydate/default/laydate.css index c7e15086..407fe7e8 100644 --- a/src/main/resources/static/ajax/libs/layui/css/modules/laydate/default/laydate.css +++ b/ruoyi-admin/src/main/resources/static/ajax/libs/layui/css/modules/laydate/default/laydate.css @@ -1,2 +1,2 @@ -/*! laydate-v5.0.9 日期与时间组件 MIT License http://www.layui.com/laydate/ By 贤心 */ +/*! laydate-v5.0.9 日期与时间组件 MIT License http://www.layui.com/laydate/ By 贤心 */ .laydate-set-ym,.layui-laydate,.layui-laydate *,.layui-laydate-list{box-sizing:border-box}html #layuicss-laydate{display:none;position:absolute;width:1989px}.layui-laydate *{margin:0;padding:0}.layui-laydate{position:absolute;z-index:66666666;margin:5px 0;border-radius:2px;font-size:14px;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-name:laydate-upbit;animation-name:laydate-upbit}.layui-laydate-main{width:272px}.layui-laydate-content td,.layui-laydate-header *,.layui-laydate-list li{transition-duration:.3s;-webkit-transition-duration:.3s}@-webkit-keyframes laydate-upbit{from{-webkit-transform:translate3d(0,20px,0);opacity:.3}to{-webkit-transform:translate3d(0,0,0);opacity:1}}@keyframes laydate-upbit{from{transform:translate3d(0,20px,0);opacity:.3}to{transform:translate3d(0,0,0);opacity:1}}.layui-laydate-static{position:relative;z-index:0;display:inline-block;margin:0;-webkit-animation:none;animation:none}.laydate-ym-show .laydate-next-m,.laydate-ym-show .laydate-prev-m{display:none!important}.laydate-ym-show .laydate-next-y,.laydate-ym-show .laydate-prev-y{display:inline-block!important}.laydate-time-show .laydate-set-ym span[lay-type=month],.laydate-time-show .laydate-set-ym span[lay-type=year],.laydate-time-show .layui-laydate-header .layui-icon,.laydate-ym-show .laydate-set-ym span[lay-type=month]{display:none!important}.layui-laydate-header{position:relative;line-height:30px;padding:10px 70px 5px}.laydate-set-ym span,.layui-laydate-header i{padding:0 5px;cursor:pointer}.layui-laydate-header *{display:inline-block;vertical-align:bottom}.layui-laydate-header i{position:absolute;top:10px;color:#999;font-size:18px}.layui-laydate-header i.laydate-prev-y{left:15px}.layui-laydate-header i.laydate-prev-m{left:45px}.layui-laydate-header i.laydate-next-y{right:15px}.layui-laydate-header i.laydate-next-m{right:45px}.laydate-set-ym{width:100%;text-align:center;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.laydate-time-text{cursor:default!important}.layui-laydate-content{position:relative;padding:10px;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none}.layui-laydate-content table{border-collapse:collapse;border-spacing:0}.layui-laydate-content td,.layui-laydate-content th{width:36px;height:30px;padding:5px;text-align:center}.layui-laydate-content td{position:relative;cursor:pointer}.laydate-day-mark{position:absolute;left:0;top:0;width:100%;height:100%;line-height:30px;font-size:12px;overflow:hidden}.laydate-day-mark::after{position:absolute;content:'';right:2px;top:2px;width:5px;height:5px;border-radius:50%}.layui-laydate-footer{position:relative;height:46px;line-height:26px;padding:10px 20px}.layui-laydate-footer span{margin-right:15px;display:inline-block;cursor:pointer;font-size:12px}.layui-laydate-footer span:hover{color:#5FB878}.laydate-footer-btns{position:absolute;right:10px;top:10px}.laydate-footer-btns span{height:26px;line-height:26px;margin:0 0 0 -1px;padding:0 10px;border:1px solid #C9C9C9;background-color:#fff;white-space:nowrap;vertical-align:top;border-radius:2px}.layui-laydate-list>li,.layui-laydate-range .layui-laydate-main{display:inline-block;vertical-align:middle}.layui-laydate-list{position:absolute;left:0;top:0;width:100%;height:100%;padding:10px;background-color:#fff}.layui-laydate-list>li{position:relative;width:33.3%;height:36px;line-height:36px;margin:3px 0;text-align:center;cursor:pointer}.laydate-month-list>li{width:25%;margin:17px 0}.laydate-time-list>li{height:100%;margin:0;line-height:normal;cursor:default}.laydate-time-list p{position:relative;top:-4px;line-height:29px}.laydate-time-list ol{height:181px;overflow:hidden}.laydate-time-list>li:hover ol{overflow-y:auto}.laydate-time-list ol li{width:130%;padding-left:33px;line-height:30px;text-align:left;cursor:pointer}.layui-laydate-hint{position:absolute;top:115px;left:50%;width:250px;margin-left:-125px;line-height:20px;padding:15px;text-align:center;font-size:12px}.layui-laydate-range{width:546px}.layui-laydate-range .laydate-main-list-0 .laydate-next-m,.layui-laydate-range .laydate-main-list-0 .laydate-next-y,.layui-laydate-range .laydate-main-list-1 .laydate-prev-m,.layui-laydate-range .laydate-main-list-1 .laydate-prev-y{display:none}.layui-laydate-range .laydate-main-list-1 .layui-laydate-content{border-left:1px solid #e2e2e2}.layui-laydate,.layui-laydate-hint{border:1px solid #d2d2d2;box-shadow:0 2px 4px rgba(0,0,0,.12);background-color:#fff;color:#666}.layui-laydate-header{border-bottom:1px solid #e2e2e2}.layui-laydate-header i:hover,.layui-laydate-header span:hover{color:#5FB878}.layui-laydate-content{border-top:none 0;border-bottom:none 0}.layui-laydate-content th{font-weight:400;color:#333}.layui-laydate-content td{color:#666}.layui-laydate-content td.laydate-selected{background-color:#00F7DE}.laydate-selected:hover{background-color:#00F7DE!important}.layui-laydate-content td:hover,.layui-laydate-list li:hover{background-color:#eaeaea;color:#333}.laydate-time-list li ol{margin:0;padding:0;border:1px solid #e2e2e2;border-left-width:0}.laydate-time-list li:first-child ol{border-left-width:1px}.laydate-time-list>li:hover{background:0 0}.layui-laydate-content .laydate-day-next,.layui-laydate-content .laydate-day-prev{color:#d2d2d2}.laydate-selected.laydate-day-next,.laydate-selected.laydate-day-prev{background-color:#f8f8f8!important}.layui-laydate-footer{border-top:1px solid #e2e2e2}.layui-laydate-hint{color:#FF5722}.laydate-day-mark::after{background-color:#5FB878}.layui-laydate-content td.layui-this .laydate-day-mark::after{display:none}.layui-laydate-footer span[lay-type=date]{color:#5FB878}.layui-laydate .layui-this{background-color:#009688!important;color:#fff!important}.layui-laydate .laydate-disabled,.layui-laydate .laydate-disabled:hover{background:0 0!important;color:#d2d2d2!important;cursor:not-allowed!important;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none}.laydate-theme-molv{border:none}.laydate-theme-molv.layui-laydate-range{width:548px}.laydate-theme-molv .layui-laydate-main{width:274px}.laydate-theme-molv .layui-laydate-header{border:none;background-color:#009688}.laydate-theme-molv .layui-laydate-header i,.laydate-theme-molv .layui-laydate-header span{color:#f6f6f6}.laydate-theme-molv .layui-laydate-header i:hover,.laydate-theme-molv .layui-laydate-header span:hover{color:#fff}.laydate-theme-molv .layui-laydate-content{border:1px solid #e2e2e2;border-top:none;border-bottom:none}.laydate-theme-molv .laydate-main-list-1 .layui-laydate-content{border-left:none}.laydate-theme-grid .laydate-month-list>li,.laydate-theme-grid .laydate-year-list>li,.laydate-theme-grid .layui-laydate-content td,.laydate-theme-grid .layui-laydate-content thead,.laydate-theme-molv .layui-laydate-footer{border:1px solid #e2e2e2}.laydate-theme-grid .laydate-selected,.laydate-theme-grid .laydate-selected:hover{background-color:#f2f2f2!important;color:#009688!important}.laydate-theme-grid .laydate-selected.laydate-day-next,.laydate-theme-grid .laydate-selected.laydate-day-prev{color:#d2d2d2!important}.laydate-theme-grid .laydate-month-list,.laydate-theme-grid .laydate-year-list{margin:1px 0 0 1px}.laydate-theme-grid .laydate-month-list>li,.laydate-theme-grid .laydate-year-list>li{margin:0 -1px -1px 0}.laydate-theme-grid .laydate-year-list>li{height:43px;line-height:43px}.laydate-theme-grid .laydate-month-list>li{height:71px;line-height:71px}@font-face{font-family:laydate-icon;src:url(font/iconfont.eot);src:url(font/iconfont.eot#iefix) format('embedded-opentype'),url(font/iconfont.svg#iconfont) format('svg'),url(font/iconfont.woff) format('woff'),url(font/iconfont.ttf) format('truetype')}.laydate-icon{font-family:laydate-icon!important;font-size:16px;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale} \ No newline at end of file diff --git a/src/main/resources/static/ajax/libs/layui/lay/modules/laydate.js b/ruoyi-admin/src/main/resources/static/ajax/libs/layui/lay/modules/laydate.js similarity index 99% rename from src/main/resources/static/ajax/libs/layui/lay/modules/laydate.js rename to ruoyi-admin/src/main/resources/static/ajax/libs/layui/lay/modules/laydate.js index cbf203d1..56fc54c5 100644 --- a/src/main/resources/static/ajax/libs/layui/lay/modules/laydate.js +++ b/ruoyi-admin/src/main/resources/static/ajax/libs/layui/lay/modules/laydate.js @@ -1,2 +1,2 @@ -/** layui-v5.0.9 日期与时间组件 MIT License By https://www.layui.com */ - ;!function(){"use strict";var e=window.layui&&layui.define,t={getPath:function(){var e=document.currentScript?document.currentScript.src:function(){for(var e,t=document.scripts,n=t.length-1,a=n;a>0;a--)if("interactive"===t[a].readyState){e=t[a].src;break}return e||t[n].src}();return e.substring(0,e.lastIndexOf("/")+1)}(),getStyle:function(e,t){var n=e.currentStyle?e.currentStyle:window.getComputedStyle(e,null);return n[n.getPropertyValue?"getPropertyValue":"getAttribute"](t)},link:function(e,a,i){if(n.path){var r=document.getElementsByTagName("head")[0],o=document.createElement("link");"string"==typeof a&&(i=a);var s=(i||e).replace(/\.|\//g,""),l="layuicss-"+s,d=0;o.rel="stylesheet",o.href=n.path+e,o.id=l,document.getElementById(l)||r.appendChild(o),"function"==typeof a&&!function c(){return++d>80?window.console&&console.error("laydate.css: Invalid"):void(1989===parseInt(t.getStyle(document.getElementById(l),"width"))?a():setTimeout(c,100))}()}}},n={v:"5.0.9",config:{},index:window.laydate&&window.laydate.v?1e5:0,path:t.getPath,set:function(e){var t=this;return t.config=w.extend({},t.config,e),t},ready:function(a){var i="laydate",r="",o=(e?"modules/laydate/":"theme/")+"default/laydate.css?v="+n.v+r;return e?layui.addcss(o,a,i):t.link(o,a,i),this}},a=function(){var e=this;return{hint:function(t){e.hint.call(e,t)},config:e.config}},i="laydate",r=".layui-laydate",o="layui-this",s="laydate-disabled",l="开始日期超出了结束日期
    建议重新选择",d=[100,2e5],c="layui-laydate-static",m="layui-laydate-list",u="laydate-selected",h="layui-laydate-hint",y="laydate-day-prev",f="laydate-day-next",p="layui-laydate-footer",g=".laydate-btns-confirm",v="laydate-time-text",D=".laydate-btns-time",T=function(e){var t=this;t.index=++n.index,t.config=w.extend({},t.config,n.config,e),n.ready(function(){t.init()})},w=function(e){return new C(e)},C=function(e){for(var t=0,n="object"==typeof e?[e]:(this.selector=e,document.querySelectorAll(e||null));t0)return n[0].getAttribute(e)}():n.each(function(n,a){a.setAttribute(e,t)})},C.prototype.removeAttr=function(e){return this.each(function(t,n){n.removeAttribute(e)})},C.prototype.html=function(e){return this.each(function(t,n){n.innerHTML=e})},C.prototype.val=function(e){return this.each(function(t,n){n.value=e})},C.prototype.append=function(e){return this.each(function(t,n){"object"==typeof e?n.appendChild(e):n.innerHTML=n.innerHTML+e})},C.prototype.remove=function(e){return this.each(function(t,n){e?n.removeChild(e):n.parentNode.removeChild(n)})},C.prototype.on=function(e,t){return this.each(function(n,a){a.attachEvent?a.attachEvent("on"+e,function(e){e.target=e.srcElement,t.call(a,e)}):a.addEventListener(e,t,!1)})},C.prototype.off=function(e,t){return this.each(function(n,a){a.detachEvent?a.detachEvent("on"+e,t):a.removeEventListener(e,t,!1)})},T.isLeapYear=function(e){return e%4===0&&e%100!==0||e%400===0},T.prototype.config={type:"date",range:!1,format:"yyyy-MM-dd",value:null,min:"1900-1-1",max:"2099-12-31",trigger:"focus",show:!1,showBottom:!0,btns:["clear","now","confirm"],lang:"cn",theme:"default",position:null,calendar:!1,mark:{},zIndex:null,done:null,change:null},T.prototype.lang=function(){var e=this,t=e.config,n={cn:{weeks:["日","一","二","三","四","五","六"],time:["时","分","秒"],timeTips:"选择时间",startTime:"开始时间",endTime:"结束时间",dateTips:"返回日期",month:["一","二","三","四","五","六","七","八","九","十","十一","十二"],tools:{confirm:"确定",clear:"清空",now:"现在"}},en:{weeks:["Su","Mo","Tu","We","Th","Fr","Sa"],time:["Hours","Minutes","Seconds"],timeTips:"Select Time",startTime:"Start Time",endTime:"End Time",dateTips:"Select Date",month:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],tools:{confirm:"Confirm",clear:"Clear",now:"Now"}}};return n[t.lang]||n.cn},T.prototype.init=function(){var e=this,t=e.config,n="yyyy|y|MM|M|dd|d|HH|H|mm|m|ss|s",a="static"===t.position,i={year:"yyyy",month:"yyyy-MM",date:"yyyy-MM-dd",time:"HH:mm:ss",datetime:"yyyy-MM-dd HH:mm:ss"};t.elem=w(t.elem),t.eventElem=w(t.eventElem),t.elem[0]&&(t.range===!0&&(t.range="-"),t.format===i.date&&(t.format=i[t.type]),e.format=t.format.match(new RegExp(n+"|.","g"))||[],e.EXP_IF="",e.EXP_SPLIT="",w.each(e.format,function(t,a){var i=new RegExp(n).test(a)?"\\d{"+function(){return new RegExp(n).test(e.format[0===t?t+1:t-1]||"")?/^yyyy|y$/.test(a)?4:a.length:/^yyyy$/.test(a)?"1,4":/^y$/.test(a)?"1,308":"1,2"}()+"}":"\\"+a;e.EXP_IF=e.EXP_IF+i,e.EXP_SPLIT=e.EXP_SPLIT+"("+i+")"}),e.EXP_IF=new RegExp("^"+(t.range?e.EXP_IF+"\\s\\"+t.range+"\\s"+e.EXP_IF:e.EXP_IF)+"$"),e.EXP_SPLIT=new RegExp("^"+e.EXP_SPLIT+"$",""),e.isInput(t.elem[0])||"focus"===t.trigger&&(t.trigger="click"),t.elem.attr("lay-key")||(t.elem.attr("lay-key",e.index),t.eventElem.attr("lay-key",e.index)),t.mark=w.extend({},t.calendar&&"cn"===t.lang?{"0-1-1":"元旦","0-2-14":"情人","0-3-8":"妇女","0-3-12":"植树","0-4-1":"愚人","0-5-1":"劳动","0-5-4":"青年","0-6-1":"儿童","0-9-10":"教师","0-9-18":"国耻","0-10-1":"国庆","0-12-25":"圣诞"}:{},t.mark),w.each(["min","max"],function(e,n){var a=[],i=[];if("number"==typeof t[n]){var r=t[n],o=(new Date).getTime(),s=864e5,l=new Date(r?r0)return!0;var a=w.elem("div",{"class":"layui-laydate-header"}),i=[function(){var e=w.elem("i",{"class":"layui-icon laydate-icon laydate-prev-y"});return e.innerHTML="",e}(),function(){var e=w.elem("i",{"class":"layui-icon laydate-icon laydate-prev-m"});return e.innerHTML="",e}(),function(){var e=w.elem("div",{"class":"laydate-set-ym"}),t=w.elem("span"),n=w.elem("span");return e.appendChild(t),e.appendChild(n),e}(),function(){var e=w.elem("i",{"class":"layui-icon laydate-icon laydate-next-m"});return e.innerHTML="",e}(),function(){var e=w.elem("i",{"class":"layui-icon laydate-icon laydate-next-y"});return e.innerHTML="",e}()],d=w.elem("div",{"class":"layui-laydate-content"}),c=w.elem("table"),m=w.elem("thead"),u=w.elem("tr");w.each(i,function(e,t){a.appendChild(t)}),m.appendChild(u),w.each(new Array(6),function(e){var t=c.insertRow(0);w.each(new Array(7),function(a){if(0===e){var i=w.elem("th");i.innerHTML=n.weeks[a],u.appendChild(i)}t.insertCell(a)})}),c.insertBefore(m,c.children[0]),d.appendChild(c),r[e]=w.elem("div",{"class":"layui-laydate-main laydate-main-list-"+e}),r[e].appendChild(a),r[e].appendChild(d),o.push(i),s.push(d),l.push(c)}),w(d).html(function(){var e=[],i=[];return"datetime"===t.type&&e.push(''+n.timeTips+""),w.each(t.btns,function(e,r){var o=n.tools[r]||"btn";t.range&&"now"===r||(a&&"clear"===r&&(o="cn"===t.lang?"重置":"Reset"),i.push(''+o+""))}),e.push('"),e.join("")}()),w.each(r,function(e,t){i.appendChild(t)}),t.showBottom&&i.appendChild(d),/^#/.test(t.theme)){var m=w.elem("style"),u=["#{{id}} .layui-laydate-header{background-color:{{theme}};}","#{{id}} .layui-this{background-color:{{theme}} !important;}"].join("").replace(/{{id}}/g,e.elemID).replace(/{{theme}}/g,t.theme);"styleSheet"in m?(m.setAttribute("type","text/css"),m.styleSheet.cssText=u):m.innerHTML=u,w(i).addClass("laydate-theme-molv"),i.appendChild(m)}e.remove(T.thisElemDate),a?t.elem.append(i):(document.body.appendChild(i),e.position()),e.checkDate().calendar(),e.changeEvent(),T.thisElemDate=e.elemID,"function"==typeof t.ready&&t.ready(w.extend({},t.dateTime,{month:t.dateTime.month+1}))},T.prototype.remove=function(e){var t=this,n=(t.config,w("#"+(e||t.elemID)));return n.hasClass(c)||t.checkDate(function(){n.remove()}),t},T.prototype.position=function(){var e=this,t=e.config,n=e.bindElem||t.elem[0],a=n.getBoundingClientRect(),i=e.elem.offsetWidth,r=e.elem.offsetHeight,o=function(e){return e=e?"scrollLeft":"scrollTop",document.body[e]|document.documentElement[e]},s=function(e){return document.documentElement[e?"clientWidth":"clientHeight"]},l=5,d=a.left,c=a.bottom;d+i+l>s("width")&&(d=s("width")-i-l),c+r+l>s()&&(c=a.top>r?a.top-r:s()-r,c-=2*l),t.position&&(e.elem.style.position=t.position),e.elem.style.left=d+("fixed"===t.position?0:o(1))+"px",e.elem.style.top=c+("fixed"===t.position?0:o())+"px"},T.prototype.hint=function(e){var t=this,n=(t.config,w.elem("div",{"class":h}));n.innerHTML=e||"",w(t.elem).find("."+h).remove(),t.elem.appendChild(n),clearTimeout(t.hinTimer),t.hinTimer=setTimeout(function(){w(t.elem).find("."+h).remove()},3e3)},T.prototype.getAsYM=function(e,t,n){return n?t--:t++,t<0&&(t=11,e--),t>11&&(t=0,e++),[e,t]},T.prototype.systemDate=function(e){var t=e||new Date;return{year:t.getFullYear(),month:t.getMonth(),date:t.getDate(),hours:e?e.getHours():0,minutes:e?e.getMinutes():0,seconds:e?e.getSeconds():0}},T.prototype.checkDate=function(e){var t,a,i=this,r=(new Date,i.config),o=r.dateTime=r.dateTime||i.systemDate(),s=i.bindElem||r.elem[0],l=(i.isInput(s)?"val":"html",i.isInput(s)?s.value:"static"===r.position?"":s.innerHTML),c=function(e){e.year>d[1]&&(e.year=d[1],a=!0),e.month>11&&(e.month=11,a=!0),e.hours>23&&(e.hours=0,a=!0),e.minutes>59&&(e.minutes=0,e.hours++,a=!0),e.seconds>59&&(e.seconds=0,e.minutes++,a=!0),t=n.getEndDate(e.month+1,e.year),e.date>t&&(e.date=t,a=!0)},m=function(e,t,n){var o=["startTime","endTime"];t=(t.match(i.EXP_SPLIT)||[]).slice(1),n=n||0,r.range&&(i[o[n]]=i[o[n]]||{}),w.each(i.format,function(s,l){var c=parseFloat(t[s]);t[s].length必须遵循下述格式:
    "+(r.range?r.format+" "+r.range+" "+r.format:r.format)+"
    已为你重置"),a=!0):l&&l.constructor===Date?r.dateTime=i.systemDate(l):(r.dateTime=i.systemDate(),delete i.startState,delete i.endState,delete i.startDate,delete i.endDate,delete i.startTime,delete i.endTime),c(o),a&&l&&i.setValue(r.range?i.endDate?i.parse():"":i.parse()),e&&e(),i)},T.prototype.mark=function(e,t){var n,a=this,i=a.config;return w.each(i.mark,function(e,a){var i=e.split("-");i[0]!=t[0]&&0!=i[0]||i[1]!=t[1]&&0!=i[1]||i[2]!=t[2]||(n=a||t[2])}),n&&e.html(''+n+""),a},T.prototype.limit=function(e,t,n,a){var i,r=this,o=r.config,l={},d=o[n>41?"endDate":"dateTime"],c=w.extend({},d,t||{});return w.each({now:c,min:o.min,max:o.max},function(e,t){l[e]=r.newDate(w.extend({year:t.year,month:t.month,date:t.date},function(){var e={};return w.each(a,function(n,a){e[a]=t[a]}),e}())).getTime()}),i=l.nowl.max,e&&e[i?"addClass":"removeClass"](s),i},T.prototype.calendar=function(e){var t,a,i,r=this,s=r.config,l=e||s.dateTime,c=new Date,m=r.lang(),u="date"!==s.type&&"datetime"!==s.type,h=e?1:0,y=w(r.table[h]).find("td"),f=w(r.elemHeader[h][2]).find("span");if(l.yeard[1]&&(l.year=d[1],r.hint("最高只能支持到公元"+d[1]+"年")),r.firstDate||(r.firstDate=w.extend({},l)),c.setFullYear(l.year,l.month,1),t=c.getDay(),a=n.getEndDate(l.month||12,l.year),i=n.getEndDate(l.month+1,l.year),w.each(y,function(e,n){var d=[l.year,l.month],c=0;n=w(n),n.removeAttr("class"),e=t&&e=n.firstDate.year&&(r.month=a.max.month,r.date=a.max.date),n.limit(w(i),r,t),M++}),w(u[f?0:1]).attr("lay-ym",M-8+"-"+T[1]).html(b+p+" - "+(M-1+p))}else if("month"===e)w.each(new Array(12),function(e){var i=w.elem("li",{"lay-ym":e}),s={year:T[0],month:e};e+1==T[1]&&w(i).addClass(o),i.innerHTML=r.month[e]+(f?"月":""),d.appendChild(i),T[0]=n.firstDate.year&&(s.date=a.max.date),n.limit(w(i),s,t)}),w(u[f?0:1]).attr("lay-ym",T[0]+"-"+T[1]).html(T[0]+p);else if("time"===e){var E=function(){w(d).find("ol").each(function(e,a){w(a).find("li").each(function(a,i){n.limit(w(i),[{hours:a},{hours:n[x].hours,minutes:a},{hours:n[x].hours,minutes:n[x].minutes,seconds:a}][e],t,[["hours"],["hours","minutes"],["hours","minutes","seconds"]][e])})}),a.range||n.limit(w(n.footer).find(g),n[x],0,["hours","minutes","seconds"])};a.range?n[x]||(n[x]={hours:0,minutes:0,seconds:0}):n[x]=i,w.each([24,60,60],function(e,t){var a=w.elem("li"),i=["

    "+r.time[e]+"

      "];w.each(new Array(t),function(t){i.push(""+w.digit(t,2)+"")}),a.innerHTML=i.join("")+"
    ",d.appendChild(a)}),E()}if(y&&h.removeChild(y),h.appendChild(d),"year"===e||"month"===e)w(n.elemMain[t]).addClass("laydate-ym-show"),w(d).find("li").on("click",function(){var r=0|w(this).attr("lay-ym");if(!w(this).hasClass(s)){if(0===t)i[e]=r,l&&(n.startDate[e]=r),n.limit(w(n.footer).find(g),null,0);else if(l)n.endDate[e]=r;else{var c="year"===e?n.getAsYM(r,T[1]-1,"sub"):n.getAsYM(T[0],r,"sub");w.extend(i,{year:c[0],month:c[1]})}"year"===a.type||"month"===a.type?(w(d).find("."+o).removeClass(o),w(this).addClass(o),"month"===a.type&&"year"===e&&(n.listYM[t][0]=r,l&&(n[["startDate","endDate"][t]].year=r),n.list("month",t))):(n.checkDate("limit").calendar(),n.closeList()),n.setBtnStatus(),a.range||n.done(null,"change"),w(n.footer).find(D).removeClass(s)}});else{var S=w.elem("span",{"class":v}),k=function(){w(d).find("ol").each(function(e){var t=this,a=w(t).find("li");t.scrollTop=30*(n[x][C[e]]-2),t.scrollTop<=0&&a.each(function(e,n){if(!w(this).hasClass(s))return t.scrollTop=30*(e-2),!0})})},H=w(c[2]).find("."+v);k(),S.innerHTML=a.range?[r.startTime,r.endTime][t]:r.timeTips,w(n.elemMain[t]).addClass("laydate-time-show"),H[0]&&H.remove(),c[2].appendChild(S),w(d).find("ol").each(function(e){var t=this;w(t).find("li").on("click",function(){var r=0|this.innerHTML;w(this).hasClass(s)||(a.range?n[x][C[e]]=r:i[C[e]]=r,w(t).find("."+o).removeClass(o),w(this).addClass(o),E(),k(),(n.endDate||"time"===a.type)&&n.done(null,"change"),n.setBtnStatus())})})}return n},T.prototype.listYM=[],T.prototype.closeList=function(){var e=this;e.config;w.each(e.elemCont,function(t,n){w(this).find("."+m).remove(),w(e.elemMain[t]).removeClass("laydate-ym-show laydate-time-show")}),w(e.elem).find("."+v).remove()},T.prototype.setBtnStatus=function(e,t,n){var a,i=this,r=i.config,o=w(i.footer).find(g),d=r.range&&"date"!==r.type&&"time"!==r.type;d&&(t=t||i.startDate,n=n||i.endDate,a=i.newDate(t).getTime()>i.newDate(n).getTime(),i.limit(null,t)||i.limit(null,n)?o.addClass(s):o[a?"addClass":"removeClass"](s),e&&a&&i.hint("string"==typeof e?l.replace(/日期/g,e):l))},T.prototype.parse=function(e,t){var n=this,a=n.config,i=t||(e?w.extend({},n.endDate,n.endTime):a.range?w.extend({},n.startDate,n.startTime):a.dateTime),r=n.format.concat();return w.each(r,function(e,t){/yyyy|y/.test(t)?r[e]=w.digit(i.year,t.length):/MM|M/.test(t)?r[e]=w.digit(i.month+1,t.length):/dd|d/.test(t)?r[e]=w.digit(i.date,t.length):/HH|H/.test(t)?r[e]=w.digit(i.hours,t.length):/mm|m/.test(t)?r[e]=w.digit(i.minutes,t.length):/ss|s/.test(t)&&(r[e]=w.digit(i.seconds,t.length))}),a.range&&!e?r.join("")+" "+a.range+" "+n.parse(1):r.join("")},T.prototype.newDate=function(e){return e=e||{},new Date(e.year||1,e.month||0,e.date||1,e.hours||0,e.minutes||0,e.seconds||0)},T.prototype.setValue=function(e){var t=this,n=t.config,a=t.bindElem||n.elem[0],i=t.isInput(a)?"val":"html";return"static"===n.position||w(a)[i](e||""),this},T.prototype.stampRange=function(){var e,t,n=this,a=n.config,i=w(n.elem).find("td");if(a.range&&!n.endDate&&w(n.footer).find(g).addClass(s),n.endDate)return e=n.newDate({year:n.startDate.year,month:n.startDate.month,date:n.startDate.date}).getTime(),t=n.newDate({year:n.endDate.year,month:n.endDate.month,date:n.endDate.date}).getTime(),e>t?n.hint(l):void w.each(i,function(a,i){var r=w(i).attr("lay-ymd").split("-"),s=n.newDate({year:r[0],month:r[1]-1,date:r[2]}).getTime();w(i).removeClass(u+" "+o),s!==e&&s!==t||w(i).addClass(w(i).hasClass(y)||w(i).hasClass(f)?u:o),s>e&&s0;a--)if("interactive"===t[a].readyState){e=t[a].src;break}return e||t[n].src}();return e.substring(0,e.lastIndexOf("/")+1)}(),getStyle:function(e,t){var n=e.currentStyle?e.currentStyle:window.getComputedStyle(e,null);return n[n.getPropertyValue?"getPropertyValue":"getAttribute"](t)},link:function(e,a,i){if(n.path){var r=document.getElementsByTagName("head")[0],o=document.createElement("link");"string"==typeof a&&(i=a);var s=(i||e).replace(/\.|\//g,""),l="layuicss-"+s,d=0;o.rel="stylesheet",o.href=n.path+e,o.id=l,document.getElementById(l)||r.appendChild(o),"function"==typeof a&&!function c(){return++d>80?window.console&&console.error("laydate.css: Invalid"):void(1989===parseInt(t.getStyle(document.getElementById(l),"width"))?a():setTimeout(c,100))}()}}},n={v:"5.0.9",config:{},index:window.laydate&&window.laydate.v?1e5:0,path:t.getPath,set:function(e){var t=this;return t.config=w.extend({},t.config,e),t},ready:function(a){var i="laydate",r="",o=(e?"modules/laydate/":"theme/")+"default/laydate.css?v="+n.v+r;return e?layui.addcss(o,a,i):t.link(o,a,i),this}},a=function(){var e=this;return{hint:function(t){e.hint.call(e,t)},config:e.config}},i="laydate",r=".layui-laydate",o="layui-this",s="laydate-disabled",l="开始日期超出了结束日期
    建议重新选择",d=[100,2e5],c="layui-laydate-static",m="layui-laydate-list",u="laydate-selected",h="layui-laydate-hint",y="laydate-day-prev",f="laydate-day-next",p="layui-laydate-footer",g=".laydate-btns-confirm",v="laydate-time-text",D=".laydate-btns-time",T=function(e){var t=this;t.index=++n.index,t.config=w.extend({},t.config,n.config,e),n.ready(function(){t.init()})},w=function(e){return new C(e)},C=function(e){for(var t=0,n="object"==typeof e?[e]:(this.selector=e,document.querySelectorAll(e||null));t0)return n[0].getAttribute(e)}():n.each(function(n,a){a.setAttribute(e,t)})},C.prototype.removeAttr=function(e){return this.each(function(t,n){n.removeAttribute(e)})},C.prototype.html=function(e){return this.each(function(t,n){n.innerHTML=e})},C.prototype.val=function(e){return this.each(function(t,n){n.value=e})},C.prototype.append=function(e){return this.each(function(t,n){"object"==typeof e?n.appendChild(e):n.innerHTML=n.innerHTML+e})},C.prototype.remove=function(e){return this.each(function(t,n){e?n.removeChild(e):n.parentNode.removeChild(n)})},C.prototype.on=function(e,t){return this.each(function(n,a){a.attachEvent?a.attachEvent("on"+e,function(e){e.target=e.srcElement,t.call(a,e)}):a.addEventListener(e,t,!1)})},C.prototype.off=function(e,t){return this.each(function(n,a){a.detachEvent?a.detachEvent("on"+e,t):a.removeEventListener(e,t,!1)})},T.isLeapYear=function(e){return e%4===0&&e%100!==0||e%400===0},T.prototype.config={type:"date",range:!1,format:"yyyy-MM-dd",value:null,min:"1900-1-1",max:"2099-12-31",trigger:"focus",show:!1,showBottom:!0,btns:["clear","now","confirm"],lang:"cn",theme:"default",position:null,calendar:!1,mark:{},zIndex:null,done:null,change:null},T.prototype.lang=function(){var e=this,t=e.config,n={cn:{weeks:["日","一","二","三","四","五","六"],time:["时","分","秒"],timeTips:"选择时间",startTime:"开始时间",endTime:"结束时间",dateTips:"返回日期",month:["一","二","三","四","五","六","七","八","九","十","十一","十二"],tools:{confirm:"确定",clear:"清空",now:"现在"}},en:{weeks:["Su","Mo","Tu","We","Th","Fr","Sa"],time:["Hours","Minutes","Seconds"],timeTips:"Select Time",startTime:"Start Time",endTime:"End Time",dateTips:"Select Date",month:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],tools:{confirm:"Confirm",clear:"Clear",now:"Now"}}};return n[t.lang]||n.cn},T.prototype.init=function(){var e=this,t=e.config,n="yyyy|y|MM|M|dd|d|HH|H|mm|m|ss|s",a="static"===t.position,i={year:"yyyy",month:"yyyy-MM",date:"yyyy-MM-dd",time:"HH:mm:ss",datetime:"yyyy-MM-dd HH:mm:ss"};t.elem=w(t.elem),t.eventElem=w(t.eventElem),t.elem[0]&&(t.range===!0&&(t.range="-"),t.format===i.date&&(t.format=i[t.type]),e.format=t.format.match(new RegExp(n+"|.","g"))||[],e.EXP_IF="",e.EXP_SPLIT="",w.each(e.format,function(t,a){var i=new RegExp(n).test(a)?"\\d{"+function(){return new RegExp(n).test(e.format[0===t?t+1:t-1]||"")?/^yyyy|y$/.test(a)?4:a.length:/^yyyy$/.test(a)?"1,4":/^y$/.test(a)?"1,308":"1,2"}()+"}":"\\"+a;e.EXP_IF=e.EXP_IF+i,e.EXP_SPLIT=e.EXP_SPLIT+"("+i+")"}),e.EXP_IF=new RegExp("^"+(t.range?e.EXP_IF+"\\s\\"+t.range+"\\s"+e.EXP_IF:e.EXP_IF)+"$"),e.EXP_SPLIT=new RegExp("^"+e.EXP_SPLIT+"$",""),e.isInput(t.elem[0])||"focus"===t.trigger&&(t.trigger="click"),t.elem.attr("lay-key")||(t.elem.attr("lay-key",e.index),t.eventElem.attr("lay-key",e.index)),t.mark=w.extend({},t.calendar&&"cn"===t.lang?{"0-1-1":"元旦","0-2-14":"情人","0-3-8":"妇女","0-3-12":"植树","0-4-1":"愚人","0-5-1":"劳动","0-5-4":"青年","0-6-1":"儿童","0-9-10":"教师","0-9-18":"国耻","0-10-1":"国庆","0-12-25":"圣诞"}:{},t.mark),w.each(["min","max"],function(e,n){var a=[],i=[];if("number"==typeof t[n]){var r=t[n],o=(new Date).getTime(),s=864e5,l=new Date(r?r0)return!0;var a=w.elem("div",{"class":"layui-laydate-header"}),i=[function(){var e=w.elem("i",{"class":"layui-icon laydate-icon laydate-prev-y"});return e.innerHTML="",e}(),function(){var e=w.elem("i",{"class":"layui-icon laydate-icon laydate-prev-m"});return e.innerHTML="",e}(),function(){var e=w.elem("div",{"class":"laydate-set-ym"}),t=w.elem("span"),n=w.elem("span");return e.appendChild(t),e.appendChild(n),e}(),function(){var e=w.elem("i",{"class":"layui-icon laydate-icon laydate-next-m"});return e.innerHTML="",e}(),function(){var e=w.elem("i",{"class":"layui-icon laydate-icon laydate-next-y"});return e.innerHTML="",e}()],d=w.elem("div",{"class":"layui-laydate-content"}),c=w.elem("table"),m=w.elem("thead"),u=w.elem("tr");w.each(i,function(e,t){a.appendChild(t)}),m.appendChild(u),w.each(new Array(6),function(e){var t=c.insertRow(0);w.each(new Array(7),function(a){if(0===e){var i=w.elem("th");i.innerHTML=n.weeks[a],u.appendChild(i)}t.insertCell(a)})}),c.insertBefore(m,c.children[0]),d.appendChild(c),r[e]=w.elem("div",{"class":"layui-laydate-main laydate-main-list-"+e}),r[e].appendChild(a),r[e].appendChild(d),o.push(i),s.push(d),l.push(c)}),w(d).html(function(){var e=[],i=[];return"datetime"===t.type&&e.push(''+n.timeTips+""),w.each(t.btns,function(e,r){var o=n.tools[r]||"btn";t.range&&"now"===r||(a&&"clear"===r&&(o="cn"===t.lang?"重置":"Reset"),i.push(''+o+""))}),e.push('"),e.join("")}()),w.each(r,function(e,t){i.appendChild(t)}),t.showBottom&&i.appendChild(d),/^#/.test(t.theme)){var m=w.elem("style"),u=["#{{id}} .layui-laydate-header{background-color:{{theme}};}","#{{id}} .layui-this{background-color:{{theme}} !important;}"].join("").replace(/{{id}}/g,e.elemID).replace(/{{theme}}/g,t.theme);"styleSheet"in m?(m.setAttribute("type","text/css"),m.styleSheet.cssText=u):m.innerHTML=u,w(i).addClass("laydate-theme-molv"),i.appendChild(m)}e.remove(T.thisElemDate),a?t.elem.append(i):(document.body.appendChild(i),e.position()),e.checkDate().calendar(),e.changeEvent(),T.thisElemDate=e.elemID,"function"==typeof t.ready&&t.ready(w.extend({},t.dateTime,{month:t.dateTime.month+1}))},T.prototype.remove=function(e){var t=this,n=(t.config,w("#"+(e||t.elemID)));return n.hasClass(c)||t.checkDate(function(){n.remove()}),t},T.prototype.position=function(){var e=this,t=e.config,n=e.bindElem||t.elem[0],a=n.getBoundingClientRect(),i=e.elem.offsetWidth,r=e.elem.offsetHeight,o=function(e){return e=e?"scrollLeft":"scrollTop",document.body[e]|document.documentElement[e]},s=function(e){return document.documentElement[e?"clientWidth":"clientHeight"]},l=5,d=a.left,c=a.bottom;d+i+l>s("width")&&(d=s("width")-i-l),c+r+l>s()&&(c=a.top>r?a.top-r:s()-r,c-=2*l),t.position&&(e.elem.style.position=t.position),e.elem.style.left=d+("fixed"===t.position?0:o(1))+"px",e.elem.style.top=c+("fixed"===t.position?0:o())+"px"},T.prototype.hint=function(e){var t=this,n=(t.config,w.elem("div",{"class":h}));n.innerHTML=e||"",w(t.elem).find("."+h).remove(),t.elem.appendChild(n),clearTimeout(t.hinTimer),t.hinTimer=setTimeout(function(){w(t.elem).find("."+h).remove()},3e3)},T.prototype.getAsYM=function(e,t,n){return n?t--:t++,t<0&&(t=11,e--),t>11&&(t=0,e++),[e,t]},T.prototype.systemDate=function(e){var t=e||new Date;return{year:t.getFullYear(),month:t.getMonth(),date:t.getDate(),hours:e?e.getHours():0,minutes:e?e.getMinutes():0,seconds:e?e.getSeconds():0}},T.prototype.checkDate=function(e){var t,a,i=this,r=(new Date,i.config),o=r.dateTime=r.dateTime||i.systemDate(),s=i.bindElem||r.elem[0],l=(i.isInput(s)?"val":"html",i.isInput(s)?s.value:"static"===r.position?"":s.innerHTML),c=function(e){e.year>d[1]&&(e.year=d[1],a=!0),e.month>11&&(e.month=11,a=!0),e.hours>23&&(e.hours=0,a=!0),e.minutes>59&&(e.minutes=0,e.hours++,a=!0),e.seconds>59&&(e.seconds=0,e.minutes++,a=!0),t=n.getEndDate(e.month+1,e.year),e.date>t&&(e.date=t,a=!0)},m=function(e,t,n){var o=["startTime","endTime"];t=(t.match(i.EXP_SPLIT)||[]).slice(1),n=n||0,r.range&&(i[o[n]]=i[o[n]]||{}),w.each(i.format,function(s,l){var c=parseFloat(t[s]);t[s].length必须遵循下述格式:
    "+(r.range?r.format+" "+r.range+" "+r.format:r.format)+"
    已为你重置"),a=!0):l&&l.constructor===Date?r.dateTime=i.systemDate(l):(r.dateTime=i.systemDate(),delete i.startState,delete i.endState,delete i.startDate,delete i.endDate,delete i.startTime,delete i.endTime),c(o),a&&l&&i.setValue(r.range?i.endDate?i.parse():"":i.parse()),e&&e(),i)},T.prototype.mark=function(e,t){var n,a=this,i=a.config;return w.each(i.mark,function(e,a){var i=e.split("-");i[0]!=t[0]&&0!=i[0]||i[1]!=t[1]&&0!=i[1]||i[2]!=t[2]||(n=a||t[2])}),n&&e.html(''+n+""),a},T.prototype.limit=function(e,t,n,a){var i,r=this,o=r.config,l={},d=o[n>41?"endDate":"dateTime"],c=w.extend({},d,t||{});return w.each({now:c,min:o.min,max:o.max},function(e,t){l[e]=r.newDate(w.extend({year:t.year,month:t.month,date:t.date},function(){var e={};return w.each(a,function(n,a){e[a]=t[a]}),e}())).getTime()}),i=l.nowl.max,e&&e[i?"addClass":"removeClass"](s),i},T.prototype.calendar=function(e){var t,a,i,r=this,s=r.config,l=e||s.dateTime,c=new Date,m=r.lang(),u="date"!==s.type&&"datetime"!==s.type,h=e?1:0,y=w(r.table[h]).find("td"),f=w(r.elemHeader[h][2]).find("span");if(l.yeard[1]&&(l.year=d[1],r.hint("最高只能支持到公元"+d[1]+"年")),r.firstDate||(r.firstDate=w.extend({},l)),c.setFullYear(l.year,l.month,1),t=c.getDay(),a=n.getEndDate(l.month||12,l.year),i=n.getEndDate(l.month+1,l.year),w.each(y,function(e,n){var d=[l.year,l.month],c=0;n=w(n),n.removeAttr("class"),e=t&&e=n.firstDate.year&&(r.month=a.max.month,r.date=a.max.date),n.limit(w(i),r,t),M++}),w(u[f?0:1]).attr("lay-ym",M-8+"-"+T[1]).html(b+p+" - "+(M-1+p))}else if("month"===e)w.each(new Array(12),function(e){var i=w.elem("li",{"lay-ym":e}),s={year:T[0],month:e};e+1==T[1]&&w(i).addClass(o),i.innerHTML=r.month[e]+(f?"月":""),d.appendChild(i),T[0]=n.firstDate.year&&(s.date=a.max.date),n.limit(w(i),s,t)}),w(u[f?0:1]).attr("lay-ym",T[0]+"-"+T[1]).html(T[0]+p);else if("time"===e){var E=function(){w(d).find("ol").each(function(e,a){w(a).find("li").each(function(a,i){n.limit(w(i),[{hours:a},{hours:n[x].hours,minutes:a},{hours:n[x].hours,minutes:n[x].minutes,seconds:a}][e],t,[["hours"],["hours","minutes"],["hours","minutes","seconds"]][e])})}),a.range||n.limit(w(n.footer).find(g),n[x],0,["hours","minutes","seconds"])};a.range?n[x]||(n[x]={hours:0,minutes:0,seconds:0}):n[x]=i,w.each([24,60,60],function(e,t){var a=w.elem("li"),i=["

    "+r.time[e]+"

      "];w.each(new Array(t),function(t){i.push(""+w.digit(t,2)+"")}),a.innerHTML=i.join("")+"
    ",d.appendChild(a)}),E()}if(y&&h.removeChild(y),h.appendChild(d),"year"===e||"month"===e)w(n.elemMain[t]).addClass("laydate-ym-show"),w(d).find("li").on("click",function(){var r=0|w(this).attr("lay-ym");if(!w(this).hasClass(s)){if(0===t)i[e]=r,l&&(n.startDate[e]=r),n.limit(w(n.footer).find(g),null,0);else if(l)n.endDate[e]=r;else{var c="year"===e?n.getAsYM(r,T[1]-1,"sub"):n.getAsYM(T[0],r,"sub");w.extend(i,{year:c[0],month:c[1]})}"year"===a.type||"month"===a.type?(w(d).find("."+o).removeClass(o),w(this).addClass(o),"month"===a.type&&"year"===e&&(n.listYM[t][0]=r,l&&(n[["startDate","endDate"][t]].year=r),n.list("month",t))):(n.checkDate("limit").calendar(),n.closeList()),n.setBtnStatus(),a.range||n.done(null,"change"),w(n.footer).find(D).removeClass(s)}});else{var S=w.elem("span",{"class":v}),k=function(){w(d).find("ol").each(function(e){var t=this,a=w(t).find("li");t.scrollTop=30*(n[x][C[e]]-2),t.scrollTop<=0&&a.each(function(e,n){if(!w(this).hasClass(s))return t.scrollTop=30*(e-2),!0})})},H=w(c[2]).find("."+v);k(),S.innerHTML=a.range?[r.startTime,r.endTime][t]:r.timeTips,w(n.elemMain[t]).addClass("laydate-time-show"),H[0]&&H.remove(),c[2].appendChild(S),w(d).find("ol").each(function(e){var t=this;w(t).find("li").on("click",function(){var r=0|this.innerHTML;w(this).hasClass(s)||(a.range?n[x][C[e]]=r:i[C[e]]=r,w(t).find("."+o).removeClass(o),w(this).addClass(o),E(),k(),(n.endDate||"time"===a.type)&&n.done(null,"change"),n.setBtnStatus())})})}return n},T.prototype.listYM=[],T.prototype.closeList=function(){var e=this;e.config;w.each(e.elemCont,function(t,n){w(this).find("."+m).remove(),w(e.elemMain[t]).removeClass("laydate-ym-show laydate-time-show")}),w(e.elem).find("."+v).remove()},T.prototype.setBtnStatus=function(e,t,n){var a,i=this,r=i.config,o=w(i.footer).find(g),d=r.range&&"date"!==r.type&&"time"!==r.type;d&&(t=t||i.startDate,n=n||i.endDate,a=i.newDate(t).getTime()>i.newDate(n).getTime(),i.limit(null,t)||i.limit(null,n)?o.addClass(s):o[a?"addClass":"removeClass"](s),e&&a&&i.hint("string"==typeof e?l.replace(/日期/g,e):l))},T.prototype.parse=function(e,t){var n=this,a=n.config,i=t||(e?w.extend({},n.endDate,n.endTime):a.range?w.extend({},n.startDate,n.startTime):a.dateTime),r=n.format.concat();return w.each(r,function(e,t){/yyyy|y/.test(t)?r[e]=w.digit(i.year,t.length):/MM|M/.test(t)?r[e]=w.digit(i.month+1,t.length):/dd|d/.test(t)?r[e]=w.digit(i.date,t.length):/HH|H/.test(t)?r[e]=w.digit(i.hours,t.length):/mm|m/.test(t)?r[e]=w.digit(i.minutes,t.length):/ss|s/.test(t)&&(r[e]=w.digit(i.seconds,t.length))}),a.range&&!e?r.join("")+" "+a.range+" "+n.parse(1):r.join("")},T.prototype.newDate=function(e){return e=e||{},new Date(e.year||1,e.month||0,e.date||1,e.hours||0,e.minutes||0,e.seconds||0)},T.prototype.setValue=function(e){var t=this,n=t.config,a=t.bindElem||n.elem[0],i=t.isInput(a)?"val":"html";return"static"===n.position||w(a)[i](e||""),this},T.prototype.stampRange=function(){var e,t,n=this,a=n.config,i=w(n.elem).find("td");if(a.range&&!n.endDate&&w(n.footer).find(g).addClass(s),n.endDate)return e=n.newDate({year:n.startDate.year,month:n.startDate.month,date:n.startDate.date}).getTime(),t=n.newDate({year:n.endDate.year,month:n.endDate.month,date:n.endDate.date}).getTime(),e>t?n.hint(l):void w.each(i,function(a,i){var r=w(i).attr("lay-ymd").split("-"),s=n.newDate({year:r[0],month:r[1]-1,date:r[2]}).getTime();w(i).removeClass(u+" "+o),s!==e&&s!==t||w(i).addClass(w(i).hasClass(y)||w(i).hasClass(f)?u:o),s>e&&s0;n--)if("interactive"===t[n].readyState){e=t[n].src;break}return e||t[i].src}();return e.substring(0,e.lastIndexOf("/")+1)}(),config:{},end:{},minIndex:0,minLeft:[],btn:["确定","取消"],type:["dialog","page","iframe","loading","tips"],getStyle:function(t,i){var n=t.currentStyle?t.currentStyle:e.getComputedStyle(t,null);return n[n.getPropertyValue?"getPropertyValue":"getAttribute"](i)},link:function(t,i,n){if(r.path){var a=document.getElementsByTagName("head")[0],s=document.createElement("link");"string"==typeof i&&(n=i);var l=(n||t).replace(/\.|\//g,""),f="layuicss-"+l,c=0;s.rel="stylesheet",s.href=r.path+t,s.id=f,document.getElementById(f)||a.appendChild(s),"function"==typeof i&&!function u(){return++c>80?e.console&&console.error("layer.css: Invalid"):void(1989===parseInt(o.getStyle(document.getElementById(f),"width"))?i():setTimeout(u,100))}()}}},r={v:"3.1.1",ie:function(){var t=navigator.userAgent.toLowerCase();return!!(e.ActiveXObject||"ActiveXObject"in e)&&((t.match(/msie\s(\d+)/)||[])[1]||"11")}(),index:e.layer&&e.layer.v?1e5:0,path:o.getPath,config:function(e,t){return e=e||{},r.cache=o.config=i.extend({},o.config,e),r.path=o.config.path||r.path,"string"==typeof e.extend&&(e.extend=[e.extend]),o.config.path&&r.ready(),e.extend?(a?layui.addcss("modules/layer/"+e.extend):o.link("theme/"+e.extend),this):this},ready:function(e){var t="layer",i="",n=(a?"modules/layer/":"theme/")+"default/layer.css?v="+r.v+i;return a?layui.addcss(n,e,t):o.link(n,e,t),this},alert:function(e,t,n){var a="function"==typeof t;return a&&(n=t),r.open(i.extend({content:e,yes:n},a?{}:t))},confirm:function(e,t,n,a){var s="function"==typeof t;return s&&(a=n,n=t),r.open(i.extend({content:e,btn:o.btn,yes:n,btn2:a},s?{}:t))},msg:function(e,n,a){var s="function"==typeof n,f=o.config.skin,c=(f?f+" "+f+"-msg":"")||"layui-layer-msg",u=l.anim.length-1;return s&&(a=n),r.open(i.extend({content:e,time:3e3,shade:!1,skin:c,title:!1,closeBtn:!1,btn:!1,resize:!1,end:a},s&&!o.config.skin?{skin:c+" layui-layer-hui",anim:u}:function(){return n=n||{},(n.icon===-1||n.icon===t&&!o.config.skin)&&(n.skin=c+" "+(n.skin||"layui-layer-hui")),n}()))},load:function(e,t){return r.open(i.extend({type:3,icon:e||0,resize:!1,shade:.01},t))},tips:function(e,t,n){return r.open(i.extend({type:4,content:[e,t],closeBtn:!1,time:3e3,shade:!1,resize:!1,fixed:!1,maxWidth:210},n))}},s=function(e){var t=this;t.index=++r.index,t.config=i.extend({},t.config,o.config,e),document.body?t.creat():setTimeout(function(){t.creat()},30)};s.pt=s.prototype;var l=["layui-layer",".layui-layer-title",".layui-layer-main",".layui-layer-dialog","layui-layer-iframe","layui-layer-content","layui-layer-btn","layui-layer-close"];l.anim=["layer-anim-00","layer-anim-01","layer-anim-02","layer-anim-03","layer-anim-04","layer-anim-05","layer-anim-06"],s.pt.config={type:0,shade:.3,fixed:!0,move:l[1],title:"信息",offset:"auto",area:"auto",closeBtn:1,time:0,zIndex:19891014,maxWidth:360,anim:0,isOutAnim:!0,icon:-1,moveType:1,resize:!0,scrollbar:!0,tips:2},s.pt.vessel=function(e,t){var n=this,a=n.index,r=n.config,s=r.zIndex+a,f="object"==typeof r.title,c=r.maxmin&&(1===r.type||2===r.type),u=r.title?'
    '+(f?r.title[0]:r.title)+"
    ":"";return r.zIndex=s,t([r.shade?'
    ':"",'
    '+(e&&2!=r.type?"":u)+'
    '+(0==r.type&&r.icon!==-1?'':"")+(1==r.type&&e?"":r.content||"")+'
    '+function(){var e=c?'':"";return r.closeBtn&&(e+=''),e}()+""+(r.btn?function(){var e="";"string"==typeof r.btn&&(r.btn=[r.btn]);for(var t=0,i=r.btn.length;t'+r.btn[t]+"";return'
    '+e+"
    "}():"")+(r.resize?'':"")+"
    "],u,i('
    ')),n},s.pt.creat=function(){var e=this,t=e.config,a=e.index,s=t.content,f="object"==typeof s,c=i("body");if(!t.id||!i("#"+t.id)[0]){switch("string"==typeof t.area&&(t.area="auto"===t.area?["",""]:[t.area,""]),t.shift&&(t.anim=t.shift),6==r.ie&&(t.fixed=!1),t.type){case 0:t.btn="btn"in t?t.btn:o.btn[0],r.closeAll("dialog");break;case 2:var s=t.content=f?t.content:[t.content||"http://layer.layui.com","auto"];t.content='';break;case 3:delete t.title,delete t.closeBtn,t.icon===-1&&0===t.icon,r.closeAll("loading");break;case 4:f||(t.content=[t.content,"body"]),t.follow=t.content[1],t.content=t.content[0]+'',delete t.title,t.tips="object"==typeof t.tips?t.tips:[t.tips,!0],t.tipsMore||r.closeAll("tips")}if(e.vessel(f,function(n,r,u){c.append(n[0]),f?function(){2==t.type||4==t.type?function(){i("body").append(n[1])}():function(){s.parents("."+l[0])[0]||(s.data("display",s.css("display")).show().addClass("layui-layer-wrap").wrap(n[1]),i("#"+l[0]+a).find("."+l[5]).before(r))}()}():c.append(n[1]),i(".layui-layer-move")[0]||c.append(o.moveElem=u),e.layero=i("#"+l[0]+a),t.scrollbar||l.html.css("overflow","hidden").attr("layer-full",a)}).auto(a),i("#layui-layer-shade"+e.index).css({"background-color":t.shade[1]||"#000",opacity:t.shade[0]||t.shade}),2==t.type&&6==r.ie&&e.layero.find("iframe").attr("src",s[0]),4==t.type?e.tips():e.offset(),t.fixed&&n.on("resize",function(){e.offset(),(/^\d+%$/.test(t.area[0])||/^\d+%$/.test(t.area[1]))&&e.auto(a),4==t.type&&e.tips()}),t.time<=0||setTimeout(function(){r.close(e.index)},t.time),e.move().callback(),l.anim[t.anim]){var u="layer-anim "+l.anim[t.anim];e.layero.addClass(u).one("webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend",function(){i(this).removeClass(u)})}t.isOutAnim&&e.layero.data("isOutAnim",!0)}},s.pt.auto=function(e){var t=this,a=t.config,o=i("#"+l[0]+e);""===a.area[0]&&a.maxWidth>0&&(r.ie&&r.ie<8&&a.btn&&o.width(o.innerWidth()),o.outerWidth()>a.maxWidth&&o.width(a.maxWidth));var s=[o.innerWidth(),o.innerHeight()],f=o.find(l[1]).outerHeight()||0,c=o.find("."+l[6]).outerHeight()||0,u=function(e){e=o.find(e),e.height(s[1]-f-c-2*(0|parseFloat(e.css("padding-top"))))};switch(a.type){case 2:u("iframe");break;default:""===a.area[1]?a.maxHeight>0&&o.outerHeight()>a.maxHeight?(s[1]=a.maxHeight,u("."+l[5])):a.fixed&&s[1]>=n.height()&&(s[1]=n.height(),u("."+l[5])):u("."+l[5])}return t},s.pt.offset=function(){var e=this,t=e.config,i=e.layero,a=[i.outerWidth(),i.outerHeight()],o="object"==typeof t.offset;e.offsetTop=(n.height()-a[1])/2,e.offsetLeft=(n.width()-a[0])/2,o?(e.offsetTop=t.offset[0],e.offsetLeft=t.offset[1]||e.offsetLeft):"auto"!==t.offset&&("t"===t.offset?e.offsetTop=0:"r"===t.offset?e.offsetLeft=n.width()-a[0]:"b"===t.offset?e.offsetTop=n.height()-a[1]:"l"===t.offset?e.offsetLeft=0:"lt"===t.offset?(e.offsetTop=0,e.offsetLeft=0):"lb"===t.offset?(e.offsetTop=n.height()-a[1],e.offsetLeft=0):"rt"===t.offset?(e.offsetTop=0,e.offsetLeft=n.width()-a[0]):"rb"===t.offset?(e.offsetTop=n.height()-a[1],e.offsetLeft=n.width()-a[0]):e.offsetTop=t.offset),t.fixed||(e.offsetTop=/%$/.test(e.offsetTop)?n.height()*parseFloat(e.offsetTop)/100:parseFloat(e.offsetTop),e.offsetLeft=/%$/.test(e.offsetLeft)?n.width()*parseFloat(e.offsetLeft)/100:parseFloat(e.offsetLeft),e.offsetTop+=n.scrollTop(),e.offsetLeft+=n.scrollLeft()),i.attr("minLeft")&&(e.offsetTop=n.height()-(i.find(l[1]).outerHeight()||0),e.offsetLeft=i.css("left")),i.css({top:e.offsetTop,left:e.offsetLeft})},s.pt.tips=function(){var e=this,t=e.config,a=e.layero,o=[a.outerWidth(),a.outerHeight()],r=i(t.follow);r[0]||(r=i("body"));var s={width:r.outerWidth(),height:r.outerHeight(),top:r.offset().top,left:r.offset().left},f=a.find(".layui-layer-TipsG"),c=t.tips[0];t.tips[1]||f.remove(),s.autoLeft=function(){s.left+o[0]-n.width()>0?(s.tipLeft=s.left+s.width-o[0],f.css({right:12,left:"auto"})):s.tipLeft=s.left},s.where=[function(){s.autoLeft(),s.tipTop=s.top-o[1]-10,f.removeClass("layui-layer-TipsB").addClass("layui-layer-TipsT").css("border-right-color",t.tips[1])},function(){s.tipLeft=s.left+s.width+10,s.tipTop=s.top,f.removeClass("layui-layer-TipsL").addClass("layui-layer-TipsR").css("border-bottom-color",t.tips[1])},function(){s.autoLeft(),s.tipTop=s.top+s.height+10,f.removeClass("layui-layer-TipsT").addClass("layui-layer-TipsB").css("border-right-color",t.tips[1])},function(){s.tipLeft=s.left-o[0]-10,s.tipTop=s.top,f.removeClass("layui-layer-TipsR").addClass("layui-layer-TipsL").css("border-bottom-color",t.tips[1])}],s.where[c-1](),1===c?s.top-(n.scrollTop()+o[1]+16)<0&&s.where[2]():2===c?n.width()-(s.left+s.width+o[0]+16)>0||s.where[3]():3===c?s.top-n.scrollTop()+s.height+o[1]+16-n.height()>0&&s.where[0]():4===c&&o[0]+16-s.left>0&&s.where[1](),a.find("."+l[5]).css({"background-color":t.tips[1],"padding-right":t.closeBtn?"30px":""}),a.css({left:s.tipLeft-(t.fixed?n.scrollLeft():0),top:s.tipTop-(t.fixed?n.scrollTop():0)})},s.pt.move=function(){var e=this,t=e.config,a=i(document),s=e.layero,l=s.find(t.move),f=s.find(".layui-layer-resize"),c={};return t.move&&l.css("cursor","move"),l.on("mousedown",function(e){e.preventDefault(),t.move&&(c.moveStart=!0,c.offset=[e.clientX-parseFloat(s.css("left")),e.clientY-parseFloat(s.css("top"))],o.moveElem.css("cursor","move").show())}),f.on("mousedown",function(e){e.preventDefault(),c.resizeStart=!0,c.offset=[e.clientX,e.clientY],c.area=[s.outerWidth(),s.outerHeight()],o.moveElem.css("cursor","se-resize").show()}),a.on("mousemove",function(i){if(c.moveStart){var a=i.clientX-c.offset[0],o=i.clientY-c.offset[1],l="fixed"===s.css("position");if(i.preventDefault(),c.stX=l?0:n.scrollLeft(),c.stY=l?0:n.scrollTop(),!t.moveOut){var f=n.width()-s.outerWidth()+c.stX,u=n.height()-s.outerHeight()+c.stY;af&&(a=f),ou&&(o=u)}s.css({left:a,top:o})}if(t.resize&&c.resizeStart){var a=i.clientX-c.offset[0],o=i.clientY-c.offset[1];i.preventDefault(),r.style(e.index,{width:c.area[0]+a,height:c.area[1]+o}),c.isResize=!0,t.resizing&&t.resizing(s)}}).on("mouseup",function(e){c.moveStart&&(delete c.moveStart,o.moveElem.hide(),t.moveEnd&&t.moveEnd(s)),c.resizeStart&&(delete c.resizeStart,o.moveElem.hide())}),e},s.pt.callback=function(){function e(){var e=a.cancel&&a.cancel(t.index,n);e===!1||r.close(t.index)}var t=this,n=t.layero,a=t.config;t.openLayer(),a.success&&(2==a.type?n.find("iframe").on("load",function(){a.success(n,t.index)}):a.success(n,t.index)),6==r.ie&&t.IE6(n),n.find("."+l[6]).children("a").on("click",function(){var e=i(this).index();if(0===e)a.yes?a.yes(t.index,n):a.btn1?a.btn1(t.index,n):r.close(t.index);else{var o=a["btn"+(e+1)]&&a["btn"+(e+1)](t.index,n);o===!1||r.close(t.index)}}),n.find("."+l[7]).on("click",e),a.shadeClose&&i("#layui-layer-shade"+t.index).on("click",function(){r.close(t.index)}),n.find(".layui-layer-min").on("click",function(){var e=a.min&&a.min(n);e===!1||r.min(t.index,a)}),n.find(".layui-layer-max").on("click",function(){i(this).hasClass("layui-layer-maxmin")?(r.restore(t.index),a.restore&&a.restore(n)):(r.full(t.index,a),setTimeout(function(){a.full&&a.full(n)},100))}),a.end&&(o.end[t.index]=a.end)},o.reselect=function(){i.each(i("select"),function(e,t){var n=i(this);n.parents("."+l[0])[0]||1==n.attr("layer")&&i("."+l[0]).length<1&&n.removeAttr("layer").show(),n=null})},s.pt.IE6=function(e){i("select").each(function(e,t){var n=i(this);n.parents("."+l[0])[0]||"none"===n.css("display")||n.attr({layer:"1"}).hide(),n=null})},s.pt.openLayer=function(){var e=this;r.zIndex=e.config.zIndex,r.setTop=function(e){var t=function(){r.zIndex++,e.css("z-index",r.zIndex+1)};return r.zIndex=parseInt(e[0].style.zIndex),e.on("mousedown",t),r.zIndex}},o.record=function(e){var t=[e.width(),e.height(),e.position().top,e.position().left+parseFloat(e.css("margin-left"))];e.find(".layui-layer-max").addClass("layui-layer-maxmin"),e.attr({area:t})},o.rescollbar=function(e){l.html.attr("layer-full")==e&&(l.html[0].style.removeProperty?l.html[0].style.removeProperty("overflow"):l.html[0].style.removeAttribute("overflow"),l.html.removeAttr("layer-full"))},e.layer=r,r.getChildFrame=function(e,t){return t=t||i("."+l[4]).attr("times"),i("#"+l[0]+t).find("iframe").contents().find(e)},r.getFrameIndex=function(e){return i("#"+e).parents("."+l[4]).attr("times")},r.iframeAuto=function(e){if(e){var t=r.getChildFrame("html",e).outerHeight(),n=i("#"+l[0]+e),a=n.find(l[1]).outerHeight()||0,o=n.find("."+l[6]).outerHeight()||0;n.css({height:t+a+o}),n.find("iframe").css({height:t})}},r.iframeSrc=function(e,t){i("#"+l[0]+e).find("iframe").attr("src",t)},r.style=function(e,t,n){var a=i("#"+l[0]+e),r=a.find(".layui-layer-content"),s=a.attr("type"),f=a.find(l[1]).outerHeight()||0,c=a.find("."+l[6]).outerHeight()||0;a.attr("minLeft");s!==o.type[3]&&s!==o.type[4]&&(n||(parseFloat(t.width)<=260&&(t.width=260),parseFloat(t.height)-f-c<=64&&(t.height=64+f+c)),a.css(t),c=a.find("."+l[6]).outerHeight(),s===o.type[2]?a.find("iframe").css({height:parseFloat(t.height)-f-c}):r.css({height:parseFloat(t.height)-f-c-parseFloat(r.css("padding-top"))-parseFloat(r.css("padding-bottom"))}))},r.min=function(e,t){var a=i("#"+l[0]+e),s=a.find(l[1]).outerHeight()||0,f=a.attr("minLeft")||181*o.minIndex+"px",c=a.css("position");o.record(a),o.minLeft[0]&&(f=o.minLeft[0],o.minLeft.shift()),a.attr("position",c),r.style(e,{width:180,height:s,left:f,top:n.height()-s,position:"fixed",overflow:"hidden"},!0),a.find(".layui-layer-min").hide(),"page"===a.attr("type")&&a.find(l[4]).hide(),o.rescollbar(e),a.attr("minLeft")||o.minIndex++,a.attr("minLeft",f)},r.restore=function(e){var t=i("#"+l[0]+e),n=t.attr("area").split(",");t.attr("type");r.style(e,{width:parseFloat(n[0]),height:parseFloat(n[1]),top:parseFloat(n[2]),left:parseFloat(n[3]),position:t.attr("position"),overflow:"visible"},!0),t.find(".layui-layer-max").removeClass("layui-layer-maxmin"),t.find(".layui-layer-min").show(),"page"===t.attr("type")&&t.find(l[4]).show(),o.rescollbar(e)},r.full=function(e){var t,a=i("#"+l[0]+e);o.record(a),l.html.attr("layer-full")||l.html.css("overflow","hidden").attr("layer-full",e),clearTimeout(t),t=setTimeout(function(){var t="fixed"===a.css("position");r.style(e,{top:t?0:n.scrollTop(),left:t?0:n.scrollLeft(),width:n.width(),height:n.height()},!0),a.find(".layui-layer-min").hide()},100)},r.title=function(e,t){var n=i("#"+l[0]+(t||r.index)).find(l[1]);n.html(e)},r.close=function(e){var t=i("#"+l[0]+e),n=t.attr("type"),a="layer-anim-close";if(t[0]){var s="layui-layer-wrap",f=function(){if(n===o.type[1]&&"object"===t.attr("conType")){t.children(":not(."+l[5]+")").remove();for(var a=t.find("."+s),r=0;r<2;r++)a.unwrap();a.css("display",a.data("display")).removeClass(s)}else{if(n===o.type[2])try{var f=i("#"+l[4]+e)[0];f.contentWindow.document.write(""),f.contentWindow.close(),t.find("."+l[5])[0].removeChild(f)}catch(c){}t[0].innerHTML="",t.remove()}"function"==typeof o.end[e]&&o.end[e](),delete o.end[e]};t.data("isOutAnim")&&t.addClass("layer-anim "+a),i("#layui-layer-moves, #layui-layer-shade"+e).remove(),6==r.ie&&o.reselect(),o.rescollbar(e),t.attr("minLeft")&&(o.minIndex--,o.minLeft.push(t.attr("minLeft"))),r.ie&&r.ie<10||!t.data("isOutAnim")?f():setTimeout(function(){f()},200)}},r.closeAll=function(e){i.each(i("."+l[0]),function(){var t=i(this),n=e?t.attr("type")===e:1;n&&r.close(t.attr("times")),n=null})};var f=r.cache||{},c=function(e){return f.skin?" "+f.skin+" "+f.skin+"-"+e:""};r.prompt=function(e,t){var a="";if(e=e||{},"function"==typeof e&&(t=e),e.area){var o=e.area;a='style="width: '+o[0]+"; height: "+o[1]+';"',delete e.area}var s,l=2==e.formType?'":function(){return''}(),f=e.success;return delete e.success,r.open(i.extend({type:1,btn:["确定","取消"],content:l,skin:"layui-layer-prompt"+c("prompt"),maxWidth:n.width(),success:function(e){s=e.find(".layui-layer-input"),s.focus(),"function"==typeof f&&f(e)},resize:!1,yes:function(i){var n=s.val();""===n?s.focus():n.length>(e.maxlength||500)?r.tips("最多输入"+(e.maxlength||500)+"个字数",s,{tips:1}):t&&t(n,i,s)}},e))},r.tab=function(e){e=e||{};var t=e.tab||{},n="layui-this",a=e.success;return delete e.success,r.open(i.extend({type:1,skin:"layui-layer-tab"+c("tab"),resize:!1,title:function(){var e=t.length,i=1,a="";if(e>0)for(a=''+t[0].title+"";i"+t[i].title+"";return a}(),content:'
      '+function(){var e=t.length,i=1,a="";if(e>0)for(a='
    • '+(t[0].content||"no content")+"
    • ";i'+(t[i].content||"no content")+"";return a}()+"
    ",success:function(t){var o=t.find(".layui-layer-title").children(),r=t.find(".layui-layer-tabmain").children();o.on("mousedown",function(t){t.stopPropagation?t.stopPropagation():t.cancelBubble=!0;var a=i(this),o=a.index();a.addClass(n).siblings().removeClass(n),r.eq(o).show().siblings().hide(),"function"==typeof e.change&&e.change(o)}),"function"==typeof a&&a(t)}},e))},r.photos=function(t,n,a){function o(e,t,i){var n=new Image;return n.src=e,n.complete?t(n):(n.onload=function(){n.onload=null,t(n)},void(n.onerror=function(e){n.onerror=null,i(e)}))}var s={};if(t=t||{},t.photos){var l=t.photos.constructor===Object,f=l?t.photos:{},u=f.data||[],d=f.start||0;s.imgIndex=(0|d)+1,t.img=t.img||"img";var y=t.success;if(delete t.success,l){if(0===u.length)return r.msg("没有图片")}else{var p=i(t.photos),h=function(){u=[],p.find(t.img).each(function(e){var t=i(this);t.attr("layer-index",e),u.push({alt:t.attr("alt"),pid:t.attr("layer-pid"),src:t.attr("layer-src")||t.attr("src"),thumb:t.attr("src")})})};if(h(),0===u.length)return;if(n||p.on("click",t.img,function(){var e=i(this),n=e.attr("layer-index");r.photos(i.extend(t,{photos:{start:n,data:u,tab:t.tab},full:t.full}),!0),h()}),!n)return}s.imgprev=function(e){s.imgIndex--,s.imgIndex<1&&(s.imgIndex=u.length),s.tabimg(e)},s.imgnext=function(e,t){s.imgIndex++,s.imgIndex>u.length&&(s.imgIndex=1,t)||s.tabimg(e)},s.keyup=function(e){if(!s.end){var t=e.keyCode;e.preventDefault(),37===t?s.imgprev(!0):39===t?s.imgnext(!0):27===t&&r.close(s.index)}},s.tabimg=function(e){if(!(u.length<=1))return f.start=s.imgIndex-1,r.close(s.index),r.photos(t,!0,e)},s.event=function(){s.bigimg.hover(function(){s.imgsee.show()},function(){s.imgsee.hide()}),s.bigimg.find(".layui-layer-imgprev").on("click",function(e){e.preventDefault(),s.imgprev()}),s.bigimg.find(".layui-layer-imgnext").on("click",function(e){e.preventDefault(),s.imgnext()}),i(document).on("keyup",s.keyup)},s.loadi=r.load(1,{shade:!("shade"in t)&&.9,scrollbar:!1}),o(u[d].src,function(n){r.close(s.loadi),s.index=r.open(i.extend({type:1,id:"layui-layer-photos",area:function(){var a=[n.width,n.height],o=[i(e).width()-100,i(e).height()-100];if(!t.full&&(a[0]>o[0]||a[1]>o[1])){var r=[a[0]/o[0],a[1]/o[1]];r[0]>r[1]?(a[0]=a[0]/r[0],a[1]=a[1]/r[0]):r[0]'+(u[d].alt||
    '+(u.length>1?'':"")+'
    '+(u[d].alt||"")+""+s.imgIndex+"/"+u.length+"
    ",success:function(e,i){s.bigimg=e.find(".layui-layer-phimg"),s.imgsee=e.find(".layui-layer-imguide,.layui-layer-imgbar"),s.event(e),t.tab&&t.tab(u[d],e),"function"==typeof y&&y(e)},end:function(){s.end=!0,i(document).off("keyup",s.keyup)}},t))},function(){r.close(s.loadi),r.msg("当前图片地址异常
    是否继续查看下一张?",{time:3e4,btn:["下一张","不看了"],yes:function(){u.length>1&&s.imgnext(!0,!0)}})})}},o.run=function(t){i=t,n=i(e),l.html=i("html"),r.open=function(e){var t=new s(e);return t.index}},e.layui&&layui.define?(r.ready(),layui.define("jquery",function(t){r.path=layui.cache.dir,o.run(layui.$),e.layer=r,t("layer",r)})):"function"==typeof define&&define.amd?define(["jquery"],function(){return o.run(e.jQuery),r}):function(){o.run(e.jQuery),r.ready()}()}(window); \ No newline at end of file diff --git a/src/main/resources/static/ajax/libs/layui/layui.js b/ruoyi-admin/src/main/resources/static/ajax/libs/layui/layui.js similarity index 99% rename from src/main/resources/static/ajax/libs/layui/layui.js rename to ruoyi-admin/src/main/resources/static/ajax/libs/layui/layui.js index 248777f6..bc6a0f6f 100644 --- a/src/main/resources/static/ajax/libs/layui/layui.js +++ b/ruoyi-admin/src/main/resources/static/ajax/libs/layui/layui.js @@ -1,2 +1,2 @@ -/** layui-v2.3.0-rc1 MIT License By https://www.layui.com */ +/** layui-v2.3.0-rc1 MIT License By https://www.layui.com */ ;!function(e){"use strict";var t=document,n={modules:{},status:{},timeout:10,event:{}},o=function(){this.v="2.3.0-rc1"},r=function(){var e=t.currentScript?t.currentScript.src:function(){for(var e,n=t.scripts,o=n.length-1,r=o;r>0;r--)if("interactive"===n[r].readyState){e=n[r].src;break}return e||n[o].src}();return e.substring(0,e.lastIndexOf("/")+1)}(),a=function(t){e.console&&console.error&&console.error("Layui hint: "+t)},i="undefined"!=typeof opera&&"[object Opera]"===opera.toString(),u={layer:"modules/layer",laydate:"modules/laydate",laypage:"modules/laypage",laytpl:"modules/laytpl",layim:"modules/layim",layedit:"modules/layedit",form:"modules/form",upload:"modules/upload",tree:"modules/tree",table:"modules/table",element:"modules/element",rate:"modules/rate",carousel:"modules/carousel",flow:"modules/flow",util:"modules/util",code:"modules/code",jquery:"modules/jquery",mobile:"modules/mobile","layui.all":"../layui.all"};o.prototype.cache=n,o.prototype.define=function(e,t){var o=this,r="function"==typeof e,a=function(){var e=function(e,t){layui[e]=t,n.status[e]=!0};return"function"==typeof t&&t(function(o,r){e(o,r),n.callback[o]=function(){t(e)}}),this};return r&&(t=e,e=[]),layui["layui.all"]||!layui["layui.all"]&&layui["layui.mobile"]?a.call(o):(o.use(e,a),o)},o.prototype.use=function(e,o,l){function s(e,t){var o="PLaySTATION 3"===navigator.platform?/^complete$/:/^(complete|loaded)$/;("load"===e.type||o.test((e.currentTarget||e.srcElement).readyState))&&(n.modules[d]=t,f.removeChild(v),function r(){return++m>1e3*n.timeout/4?a(d+" is not a valid module"):void(n.status[d]?c():setTimeout(r,4))}())}function c(){l.push(layui[d]),e.length>1?y.use(e.slice(1),o,l):"function"==typeof o&&o.apply(layui,l)}var y=this,p=n.dir=n.dir?n.dir:r,f=t.getElementsByTagName("head")[0];e="string"==typeof e?[e]:e,window.jQuery&&jQuery.fn.on&&(y.each(e,function(t,n){"jquery"===n&&e.splice(t,1)}),layui.jquery=layui.$=jQuery);var d=e[0],m=0;if(l=l||[],n.host=n.host||(p.match(/\/\/([\s\S]+?)\//)||["//"+location.host+"/"])[0],0===e.length||layui["layui.all"]&&u[d]||!layui["layui.all"]&&layui["layui.mobile"]&&u[d])return c(),y;if(n.modules[d])!function g(){return++m>1e3*n.timeout/4?a(d+" is not a valid module"):void("string"==typeof n.modules[d]&&n.status[d]?c():setTimeout(g,4))}();else{var v=t.createElement("script"),h=(u[d]?p+"lay/":/^\{\/\}/.test(y.modules[d])?"":n.base||"")+(y.modules[d]||d)+".js";h=h.replace(/^\{\/\}/,""),v.async=!0,v.charset="utf-8",v.src=h+function(){var e=n.version===!0?n.v||(new Date).getTime():n.version||"";return e?"?v="+e:""}(),f.appendChild(v),!v.attachEvent||v.attachEvent.toString&&v.attachEvent.toString().indexOf("[native code")<0||i?v.addEventListener("load",function(e){s(e,h)},!1):v.attachEvent("onreadystatechange",function(e){s(e,h)}),n.modules[d]=h}return y},o.prototype.getStyle=function(t,n){var o=t.currentStyle?t.currentStyle:e.getComputedStyle(t,null);return o[o.getPropertyValue?"getPropertyValue":"getAttribute"](n)},o.prototype.link=function(e,o,r){var i=this,u=t.createElement("link"),l=t.getElementsByTagName("head")[0];"string"==typeof o&&(r=o);var s=(r||e).replace(/\.|\//g,""),c=u.id="layuicss-"+s,y=0;return u.rel="stylesheet",u.href=e+(n.debug?"?v="+(new Date).getTime():""),u.media="all",t.getElementById(c)||l.appendChild(u),"function"!=typeof o?i:(function p(){return++y>1e3*n.timeout/100?a(e+" timeout"):void(1989===parseInt(i.getStyle(t.getElementById(c),"width"))?function(){o()}():setTimeout(p,100))}(),i)},n.callback={},o.prototype.factory=function(e){if(layui[e])return"function"==typeof n.callback[e]?n.callback[e]:null},o.prototype.addcss=function(e,t,o){return layui.link(n.dir+"css/"+e,t,o)},o.prototype.img=function(e,t,n){var o=new Image;return o.src=e,o.complete?t(o):(o.onload=function(){o.onload=null,"function"==typeof t&&t(o)},void(o.onerror=function(e){o.onerror=null,"function"==typeof n&&n(e)}))},o.prototype.config=function(e){e=e||{};for(var t in e)n[t]=e[t];return this},o.prototype.modules=function(){var e={};for(var t in u)e[t]=u[t];return e}(),o.prototype.extend=function(e){var t=this;e=e||{};for(var n in e)t[n]||t.modules[n]?a("模块名 "+n+" 已被占用"):t.modules[n]=e[n];return t},o.prototype.router=function(e){var t=this,e=e||location.hash,n={path:[],search:{},hash:(e.match(/[^#](#.*$)/)||[])[1]||""};return/^#\//.test(e)?(e=e.replace(/^#\//,""),n.href="/"+e,e=e.replace(/([^#])(#.*$)/,"$1").split("/")||[],t.each(e,function(e,t){/^\w+=/.test(t)?function(){t=t.split("="),n.search[t[0]]=t[1]}():n.path.push(t)}),n):n},o.prototype.data=function(t,n,o){if(t=t||"layui",o=o||localStorage,e.JSON&&e.JSON.parse){if(null===n)return delete o[t];n="object"==typeof n?n:{key:n};try{var r=JSON.parse(o[t])}catch(a){var r={}}return"value"in n&&(r[n.key]=n.value),n.remove&&delete r[n.key],o[t]=JSON.stringify(r),n.key?r[n.key]:r}},o.prototype.sessionData=function(e,t){return this.data(e,t,sessionStorage)},o.prototype.device=function(t){var n=navigator.userAgent.toLowerCase(),o=function(e){var t=new RegExp(e+"/([^\\s\\_\\-]+)");return e=(n.match(t)||[])[1],e||!1},r={os:function(){return/windows/.test(n)?"windows":/linux/.test(n)?"linux":/iphone|ipod|ipad|ios/.test(n)?"ios":/mac/.test(n)?"mac":void 0}(),ie:function(){return!!(e.ActiveXObject||"ActiveXObject"in e)&&((n.match(/msie\s(\d+)/)||[])[1]||"11")}(),weixin:o("micromessenger")};return t&&!r[t]&&(r[t]=o(t)),r.android=/android/.test(n),r.ios="ios"===r.os,r},o.prototype.hint=function(){return{error:a}},o.prototype.each=function(e,t){var n,o=this;if("function"!=typeof t)return o;if(e=e||[],e.constructor===Object){for(n in e)if(t.call(e[n],n,e[n]))break}else for(n=0;na?1:r
    - 阿里云优惠活动(2CPU 4GRAM 1M带宽 40G高效云盘) -
    https://promotion.aliyun.com/ntms/act/vm/aliyun-group/buy.html?group=BphATfDhsQ… + 高性能云服务器2折起 +
    https://promotion.aliyun.com/ntms/act/qwbk.html?userCode=brki8iof
    云产品通用代金券,可叠加官网常规优惠使用
    https://promotion.aliyun.com/ntms/yunparter/invite.html?userCode=brki8iof

    限时活动推广。

    diff --git a/src/main/resources/templates/monitor/job/add.html b/ruoyi-admin/src/main/resources/templates/monitor/job/add.html similarity index 100% rename from src/main/resources/templates/monitor/job/add.html rename to ruoyi-admin/src/main/resources/templates/monitor/job/add.html diff --git a/src/main/resources/templates/monitor/job/edit.html b/ruoyi-admin/src/main/resources/templates/monitor/job/edit.html similarity index 100% rename from src/main/resources/templates/monitor/job/edit.html rename to ruoyi-admin/src/main/resources/templates/monitor/job/edit.html diff --git a/src/main/resources/templates/monitor/job/job.html b/ruoyi-admin/src/main/resources/templates/monitor/job/job.html similarity index 100% rename from src/main/resources/templates/monitor/job/job.html rename to ruoyi-admin/src/main/resources/templates/monitor/job/job.html diff --git a/src/main/resources/templates/monitor/job/jobLog.html b/ruoyi-admin/src/main/resources/templates/monitor/job/jobLog.html similarity index 100% rename from src/main/resources/templates/monitor/job/jobLog.html rename to ruoyi-admin/src/main/resources/templates/monitor/job/jobLog.html diff --git a/src/main/resources/templates/monitor/logininfor/logininfor.html b/ruoyi-admin/src/main/resources/templates/monitor/logininfor/logininfor.html similarity index 100% rename from src/main/resources/templates/monitor/logininfor/logininfor.html rename to ruoyi-admin/src/main/resources/templates/monitor/logininfor/logininfor.html diff --git a/src/main/resources/templates/monitor/online/online.html b/ruoyi-admin/src/main/resources/templates/monitor/online/online.html similarity index 100% rename from src/main/resources/templates/monitor/online/online.html rename to ruoyi-admin/src/main/resources/templates/monitor/online/online.html diff --git a/src/main/resources/templates/monitor/operlog/detail.html b/ruoyi-admin/src/main/resources/templates/monitor/operlog/detail.html similarity index 100% rename from src/main/resources/templates/monitor/operlog/detail.html rename to ruoyi-admin/src/main/resources/templates/monitor/operlog/detail.html diff --git a/src/main/resources/templates/monitor/operlog/operlog.html b/ruoyi-admin/src/main/resources/templates/monitor/operlog/operlog.html similarity index 100% rename from src/main/resources/templates/monitor/operlog/operlog.html rename to ruoyi-admin/src/main/resources/templates/monitor/operlog/operlog.html diff --git a/src/main/resources/templates/system/config/add.html b/ruoyi-admin/src/main/resources/templates/system/config/add.html similarity index 100% rename from src/main/resources/templates/system/config/add.html rename to ruoyi-admin/src/main/resources/templates/system/config/add.html diff --git a/src/main/resources/templates/system/config/config.html b/ruoyi-admin/src/main/resources/templates/system/config/config.html similarity index 100% rename from src/main/resources/templates/system/config/config.html rename to ruoyi-admin/src/main/resources/templates/system/config/config.html diff --git a/src/main/resources/templates/system/config/edit.html b/ruoyi-admin/src/main/resources/templates/system/config/edit.html similarity index 100% rename from src/main/resources/templates/system/config/edit.html rename to ruoyi-admin/src/main/resources/templates/system/config/edit.html diff --git a/src/main/resources/templates/system/dept/add.html b/ruoyi-admin/src/main/resources/templates/system/dept/add.html similarity index 100% rename from src/main/resources/templates/system/dept/add.html rename to ruoyi-admin/src/main/resources/templates/system/dept/add.html diff --git a/src/main/resources/templates/system/dept/dept.html b/ruoyi-admin/src/main/resources/templates/system/dept/dept.html similarity index 100% rename from src/main/resources/templates/system/dept/dept.html rename to ruoyi-admin/src/main/resources/templates/system/dept/dept.html diff --git a/src/main/resources/templates/system/dept/edit.html b/ruoyi-admin/src/main/resources/templates/system/dept/edit.html similarity index 100% rename from src/main/resources/templates/system/dept/edit.html rename to ruoyi-admin/src/main/resources/templates/system/dept/edit.html diff --git a/src/main/resources/templates/system/dept/tree.html b/ruoyi-admin/src/main/resources/templates/system/dept/tree.html similarity index 100% rename from src/main/resources/templates/system/dept/tree.html rename to ruoyi-admin/src/main/resources/templates/system/dept/tree.html diff --git a/src/main/resources/templates/system/dict/data/add.html b/ruoyi-admin/src/main/resources/templates/system/dict/data/add.html similarity index 100% rename from src/main/resources/templates/system/dict/data/add.html rename to ruoyi-admin/src/main/resources/templates/system/dict/data/add.html diff --git a/src/main/resources/templates/system/dict/data/data.html b/ruoyi-admin/src/main/resources/templates/system/dict/data/data.html similarity index 100% rename from src/main/resources/templates/system/dict/data/data.html rename to ruoyi-admin/src/main/resources/templates/system/dict/data/data.html diff --git a/src/main/resources/templates/system/dict/data/edit.html b/ruoyi-admin/src/main/resources/templates/system/dict/data/edit.html similarity index 100% rename from src/main/resources/templates/system/dict/data/edit.html rename to ruoyi-admin/src/main/resources/templates/system/dict/data/edit.html diff --git a/src/main/resources/templates/system/dict/type/add.html b/ruoyi-admin/src/main/resources/templates/system/dict/type/add.html similarity index 100% rename from src/main/resources/templates/system/dict/type/add.html rename to ruoyi-admin/src/main/resources/templates/system/dict/type/add.html diff --git a/src/main/resources/templates/system/dict/type/edit.html b/ruoyi-admin/src/main/resources/templates/system/dict/type/edit.html similarity index 100% rename from src/main/resources/templates/system/dict/type/edit.html rename to ruoyi-admin/src/main/resources/templates/system/dict/type/edit.html diff --git a/src/main/resources/templates/system/dict/type/type.html b/ruoyi-admin/src/main/resources/templates/system/dict/type/type.html similarity index 100% rename from src/main/resources/templates/system/dict/type/type.html rename to ruoyi-admin/src/main/resources/templates/system/dict/type/type.html diff --git a/src/main/resources/templates/system/menu/add.html b/ruoyi-admin/src/main/resources/templates/system/menu/add.html similarity index 100% rename from src/main/resources/templates/system/menu/add.html rename to ruoyi-admin/src/main/resources/templates/system/menu/add.html diff --git a/src/main/resources/templates/system/menu/edit.html b/ruoyi-admin/src/main/resources/templates/system/menu/edit.html similarity index 100% rename from src/main/resources/templates/system/menu/edit.html rename to ruoyi-admin/src/main/resources/templates/system/menu/edit.html diff --git a/src/main/resources/templates/system/menu/icon.html b/ruoyi-admin/src/main/resources/templates/system/menu/icon.html similarity index 100% rename from src/main/resources/templates/system/menu/icon.html rename to ruoyi-admin/src/main/resources/templates/system/menu/icon.html diff --git a/src/main/resources/templates/system/menu/menu.html b/ruoyi-admin/src/main/resources/templates/system/menu/menu.html similarity index 100% rename from src/main/resources/templates/system/menu/menu.html rename to ruoyi-admin/src/main/resources/templates/system/menu/menu.html diff --git a/src/main/resources/templates/system/menu/tree.html b/ruoyi-admin/src/main/resources/templates/system/menu/tree.html similarity index 100% rename from src/main/resources/templates/system/menu/tree.html rename to ruoyi-admin/src/main/resources/templates/system/menu/tree.html diff --git a/src/main/resources/templates/system/notice/add.html b/ruoyi-admin/src/main/resources/templates/system/notice/add.html similarity index 100% rename from src/main/resources/templates/system/notice/add.html rename to ruoyi-admin/src/main/resources/templates/system/notice/add.html diff --git a/src/main/resources/templates/system/notice/edit.html b/ruoyi-admin/src/main/resources/templates/system/notice/edit.html similarity index 100% rename from src/main/resources/templates/system/notice/edit.html rename to ruoyi-admin/src/main/resources/templates/system/notice/edit.html diff --git a/src/main/resources/templates/system/notice/notice.html b/ruoyi-admin/src/main/resources/templates/system/notice/notice.html similarity index 100% rename from src/main/resources/templates/system/notice/notice.html rename to ruoyi-admin/src/main/resources/templates/system/notice/notice.html diff --git a/src/main/resources/templates/system/post/add.html b/ruoyi-admin/src/main/resources/templates/system/post/add.html similarity index 100% rename from src/main/resources/templates/system/post/add.html rename to ruoyi-admin/src/main/resources/templates/system/post/add.html diff --git a/src/main/resources/templates/system/post/edit.html b/ruoyi-admin/src/main/resources/templates/system/post/edit.html similarity index 100% rename from src/main/resources/templates/system/post/edit.html rename to ruoyi-admin/src/main/resources/templates/system/post/edit.html diff --git a/src/main/resources/templates/system/post/post.html b/ruoyi-admin/src/main/resources/templates/system/post/post.html similarity index 100% rename from src/main/resources/templates/system/post/post.html rename to ruoyi-admin/src/main/resources/templates/system/post/post.html diff --git a/src/main/resources/templates/system/role/add.html b/ruoyi-admin/src/main/resources/templates/system/role/add.html similarity index 100% rename from src/main/resources/templates/system/role/add.html rename to ruoyi-admin/src/main/resources/templates/system/role/add.html diff --git a/src/main/resources/templates/system/role/edit.html b/ruoyi-admin/src/main/resources/templates/system/role/edit.html similarity index 100% rename from src/main/resources/templates/system/role/edit.html rename to ruoyi-admin/src/main/resources/templates/system/role/edit.html diff --git a/src/main/resources/templates/system/role/role.html b/ruoyi-admin/src/main/resources/templates/system/role/role.html similarity index 100% rename from src/main/resources/templates/system/role/role.html rename to ruoyi-admin/src/main/resources/templates/system/role/role.html diff --git a/src/main/resources/templates/system/role/rule.html b/ruoyi-admin/src/main/resources/templates/system/role/rule.html similarity index 100% rename from src/main/resources/templates/system/role/rule.html rename to ruoyi-admin/src/main/resources/templates/system/role/rule.html diff --git a/src/main/resources/templates/system/user/add.html b/ruoyi-admin/src/main/resources/templates/system/user/add.html similarity index 100% rename from src/main/resources/templates/system/user/add.html rename to ruoyi-admin/src/main/resources/templates/system/user/add.html diff --git a/src/main/resources/templates/system/user/edit.html b/ruoyi-admin/src/main/resources/templates/system/user/edit.html similarity index 100% rename from src/main/resources/templates/system/user/edit.html rename to ruoyi-admin/src/main/resources/templates/system/user/edit.html diff --git a/src/main/resources/templates/system/user/profile/avatar.html b/ruoyi-admin/src/main/resources/templates/system/user/profile/avatar.html similarity index 100% rename from src/main/resources/templates/system/user/profile/avatar.html rename to ruoyi-admin/src/main/resources/templates/system/user/profile/avatar.html diff --git a/src/main/resources/templates/system/user/profile/edit.html b/ruoyi-admin/src/main/resources/templates/system/user/profile/edit.html similarity index 100% rename from src/main/resources/templates/system/user/profile/edit.html rename to ruoyi-admin/src/main/resources/templates/system/user/profile/edit.html diff --git a/src/main/resources/templates/system/user/profile/profile.html b/ruoyi-admin/src/main/resources/templates/system/user/profile/profile.html similarity index 100% rename from src/main/resources/templates/system/user/profile/profile.html rename to ruoyi-admin/src/main/resources/templates/system/user/profile/profile.html diff --git a/src/main/resources/templates/system/user/profile/resetPwd.html b/ruoyi-admin/src/main/resources/templates/system/user/profile/resetPwd.html similarity index 100% rename from src/main/resources/templates/system/user/profile/resetPwd.html rename to ruoyi-admin/src/main/resources/templates/system/user/profile/resetPwd.html diff --git a/src/main/resources/templates/system/user/resetPwd.html b/ruoyi-admin/src/main/resources/templates/system/user/resetPwd.html similarity index 100% rename from src/main/resources/templates/system/user/resetPwd.html rename to ruoyi-admin/src/main/resources/templates/system/user/resetPwd.html diff --git a/src/main/resources/templates/system/user/user.html b/ruoyi-admin/src/main/resources/templates/system/user/user.html similarity index 100% rename from src/main/resources/templates/system/user/user.html rename to ruoyi-admin/src/main/resources/templates/system/user/user.html diff --git a/src/main/resources/templates/tool/build/build.html b/ruoyi-admin/src/main/resources/templates/tool/build/build.html similarity index 100% rename from src/main/resources/templates/tool/build/build.html rename to ruoyi-admin/src/main/resources/templates/tool/build/build.html diff --git a/src/main/resources/templates/tool/gen/gen.html b/ruoyi-admin/src/main/resources/templates/tool/gen/gen.html similarity index 100% rename from src/main/resources/templates/tool/gen/gen.html rename to ruoyi-admin/src/main/resources/templates/tool/gen/gen.html diff --git a/src/main/resources/templates/vm/html/add.html.vm b/ruoyi-admin/src/main/resources/templates/vm/html/add.html.vm similarity index 100% rename from src/main/resources/templates/vm/html/add.html.vm rename to ruoyi-admin/src/main/resources/templates/vm/html/add.html.vm diff --git a/src/main/resources/templates/vm/html/edit.html.vm b/ruoyi-admin/src/main/resources/templates/vm/html/edit.html.vm similarity index 100% rename from src/main/resources/templates/vm/html/edit.html.vm rename to ruoyi-admin/src/main/resources/templates/vm/html/edit.html.vm diff --git a/src/main/resources/templates/vm/html/list.html.vm b/ruoyi-admin/src/main/resources/templates/vm/html/list.html.vm similarity index 100% rename from src/main/resources/templates/vm/html/list.html.vm rename to ruoyi-admin/src/main/resources/templates/vm/html/list.html.vm diff --git a/src/main/resources/templates/vm/java/Controller.java.vm b/ruoyi-admin/src/main/resources/templates/vm/java/Controller.java.vm similarity index 100% rename from src/main/resources/templates/vm/java/Controller.java.vm rename to ruoyi-admin/src/main/resources/templates/vm/java/Controller.java.vm diff --git a/src/main/resources/templates/vm/java/Mapper.java.vm b/ruoyi-admin/src/main/resources/templates/vm/java/Mapper.java.vm similarity index 100% rename from src/main/resources/templates/vm/java/Mapper.java.vm rename to ruoyi-admin/src/main/resources/templates/vm/java/Mapper.java.vm diff --git a/src/main/resources/templates/vm/java/Service.java.vm b/ruoyi-admin/src/main/resources/templates/vm/java/Service.java.vm similarity index 100% rename from src/main/resources/templates/vm/java/Service.java.vm rename to ruoyi-admin/src/main/resources/templates/vm/java/Service.java.vm diff --git a/src/main/resources/templates/vm/java/ServiceImpl.java.vm b/ruoyi-admin/src/main/resources/templates/vm/java/ServiceImpl.java.vm similarity index 100% rename from src/main/resources/templates/vm/java/ServiceImpl.java.vm rename to ruoyi-admin/src/main/resources/templates/vm/java/ServiceImpl.java.vm diff --git a/src/main/resources/templates/vm/java/domain.java.vm b/ruoyi-admin/src/main/resources/templates/vm/java/domain.java.vm similarity index 100% rename from src/main/resources/templates/vm/java/domain.java.vm rename to ruoyi-admin/src/main/resources/templates/vm/java/domain.java.vm diff --git a/src/main/resources/templates/vm/sql/sql.vm b/ruoyi-admin/src/main/resources/templates/vm/sql/sql.vm similarity index 100% rename from src/main/resources/templates/vm/sql/sql.vm rename to ruoyi-admin/src/main/resources/templates/vm/sql/sql.vm diff --git a/src/main/resources/templates/vm/xml/Mapper.xml.vm b/ruoyi-admin/src/main/resources/templates/vm/xml/Mapper.xml.vm similarity index 100% rename from src/main/resources/templates/vm/xml/Mapper.xml.vm rename to ruoyi-admin/src/main/resources/templates/vm/xml/Mapper.xml.vm diff --git a/ruoyi-common/pom.xml b/ruoyi-common/pom.xml new file mode 100644 index 00000000..b2fbbe73 --- /dev/null +++ b/ruoyi-common/pom.xml @@ -0,0 +1,74 @@ + + + + ruoyi + com.ruoyi + 3.0 + + 4.0.0 + + ruoyi-common + + + common通用工具 + + + + 2.5 + 1.3.3 + 1.11.3 + 3.17 + + + + + + + org.apache.commons + commons-lang3 + + + + + com.fasterxml.jackson.core + jackson-databind + + + + + commons-io + commons-io + ${commons.io.version} + + + + + commons-fileupload + commons-fileupload + ${commons.fileupload.version} + + + + + org.jsoup + jsoup + ${jsoup.version} + + + + + org.apache.poi + poi-ooxml + ${poi.version} + + + + org.yaml + snakeyaml + + + + + \ No newline at end of file diff --git a/src/main/java/com/ruoyi/framework/aspectj/lang/annotation/DataScope.java b/ruoyi-common/src/main/java/com/ruoyi/common/annotation/DataScope.java similarity index 85% rename from src/main/java/com/ruoyi/framework/aspectj/lang/annotation/DataScope.java rename to ruoyi-common/src/main/java/com/ruoyi/common/annotation/DataScope.java index 07ac5b19..86788b96 100644 --- a/src/main/java/com/ruoyi/framework/aspectj/lang/annotation/DataScope.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/annotation/DataScope.java @@ -1,4 +1,4 @@ -package com.ruoyi.framework.aspectj.lang.annotation; +package com.ruoyi.common.annotation; import java.lang.annotation.Documented; import java.lang.annotation.ElementType; diff --git a/src/main/java/com/ruoyi/framework/aspectj/lang/annotation/DataSource.java b/ruoyi-common/src/main/java/com/ruoyi/common/annotation/DataSource.java similarity index 78% rename from src/main/java/com/ruoyi/framework/aspectj/lang/annotation/DataSource.java rename to ruoyi-common/src/main/java/com/ruoyi/common/annotation/DataSource.java index 89ec9ec5..5a41a2c6 100644 --- a/src/main/java/com/ruoyi/framework/aspectj/lang/annotation/DataSource.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/annotation/DataSource.java @@ -1,23 +1,22 @@ -package com.ruoyi.framework.aspectj.lang.annotation; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -import com.ruoyi.framework.aspectj.lang.enums.DataSourceType; - -/** - * 自定义多数据源切换注解 - * - * @author ruoyi - */ -@Target(ElementType.METHOD) -@Retention(RetentionPolicy.RUNTIME) -public @interface DataSource -{ - /** - * 切换数据源名称 - */ - public DataSourceType value() default DataSourceType.MASTER; -} +package com.ruoyi.common.annotation; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; +import com.ruoyi.common.enums.DataSourceType; + +/** + * 自定义多数据源切换注解 + * + * @author ruoyi + */ +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +public @interface DataSource +{ + /** + * 切换数据源名称 + */ + public DataSourceType value() default DataSourceType.MASTER; +} diff --git a/src/main/java/com/ruoyi/framework/aspectj/lang/annotation/Excel.java b/ruoyi-common/src/main/java/com/ruoyi/common/annotation/Excel.java similarity index 90% rename from src/main/java/com/ruoyi/framework/aspectj/lang/annotation/Excel.java rename to ruoyi-common/src/main/java/com/ruoyi/common/annotation/Excel.java index aabe3bc7..e0a01b82 100644 --- a/src/main/java/com/ruoyi/framework/aspectj/lang/annotation/Excel.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/annotation/Excel.java @@ -1,4 +1,4 @@ -package com.ruoyi.framework.aspectj.lang.annotation; +package com.ruoyi.common.annotation; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; diff --git a/src/main/java/com/ruoyi/framework/aspectj/lang/annotation/Log.java b/ruoyi-common/src/main/java/com/ruoyi/common/annotation/Log.java similarity index 65% rename from src/main/java/com/ruoyi/framework/aspectj/lang/annotation/Log.java rename to ruoyi-common/src/main/java/com/ruoyi/common/annotation/Log.java index 3dc59208..3814f44e 100644 --- a/src/main/java/com/ruoyi/framework/aspectj/lang/annotation/Log.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/annotation/Log.java @@ -1,33 +1,40 @@ -package com.ruoyi.framework.aspectj.lang.annotation; +package com.ruoyi.common.annotation; import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; -import com.ruoyi.framework.aspectj.lang.enums.BusinessType; -import com.ruoyi.framework.aspectj.lang.enums.OperatorType; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.enums.OperatorType; /** * 自定义操作日志记录注解 * * @author ruoyi - * */ @Target({ ElementType.PARAMETER, ElementType.METHOD }) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface Log { - /** 模块 */ + /** + * 模块 + */ String title() default ""; - /** 功能 */ + /** + * 功能 + */ BusinessType businessType() default BusinessType.OTHER; - /** 操作人类别 */ + /** + * 操作人类别 + */ OperatorType operatorType() default OperatorType.MANAGE; - /** 是否保存请求的参数 */ + /** + * 是否保存请求的参数 + */ boolean isSaveRequestData() default true; } diff --git a/src/main/java/com/ruoyi/framework/web/domain/AjaxResult.java b/ruoyi-common/src/main/java/com/ruoyi/common/base/AjaxResult.java similarity index 92% rename from src/main/java/com/ruoyi/framework/web/domain/AjaxResult.java rename to ruoyi-common/src/main/java/com/ruoyi/common/base/AjaxResult.java index 4fbc9fa1..208df997 100644 --- a/src/main/java/com/ruoyi/framework/web/domain/AjaxResult.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/base/AjaxResult.java @@ -1,4 +1,4 @@ -package com.ruoyi.framework.web.domain; +package com.ruoyi.common.base; import java.util.HashMap; diff --git a/src/main/java/com/ruoyi/framework/web/domain/BaseEntity.java b/ruoyi-common/src/main/java/com/ruoyi/common/base/BaseEntity.java similarity index 89% rename from src/main/java/com/ruoyi/framework/web/domain/BaseEntity.java rename to ruoyi-common/src/main/java/com/ruoyi/common/base/BaseEntity.java index 23984202..a3a9c4bb 100644 --- a/src/main/java/com/ruoyi/framework/web/domain/BaseEntity.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/base/BaseEntity.java @@ -1,10 +1,10 @@ -package com.ruoyi.framework.web.domain; +package com.ruoyi.common.base; import java.io.Serializable; import java.util.Date; +import java.util.HashMap; import java.util.Map; import com.fasterxml.jackson.annotation.JsonFormat; -import com.google.common.collect.Maps; /** * Entity基类 @@ -102,7 +102,7 @@ public class BaseEntity implements Serializable { if (params == null) { - params = Maps.newHashMap(); + params = new HashMap<>(); } return params; } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/config/Global.java b/ruoyi-common/src/main/java/com/ruoyi/common/config/Global.java new file mode 100644 index 00000000..5a23bd92 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/config/Global.java @@ -0,0 +1,164 @@ +package com.ruoyi.common.config; + +import java.io.FileNotFoundException; +import java.util.HashMap; +import java.util.Map; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.common.utils.YamlUtil; + +/** + * 全局配置类 + * + * @author ruoyi + */ +public class Global +{ + private static final Logger log = LoggerFactory.getLogger(Global.class); + + private static String NAME = "application.yml"; + + /** + * 当前对象实例 + */ + private static Global global = null; + + /** + * 保存全局属性值 + */ + private static Map map = new HashMap(); + + private Global() + { + } + + /** + * 静态工厂方法 获取当前对象实例 多线程安全单例模式(使用双重同步锁) + */ + + public static synchronized Global getInstance() + { + if (global == null) + { + synchronized (Global.class) + { + if (global == null) + global = new Global(); + } + } + return global; + } + + /** + * 获取配置 + */ + public static String getConfig(String key) + { + String value = map.get(key); + if (value == null) + { + Map yamlMap = null; + try + { + yamlMap = YamlUtil.loadYaml(NAME); + value = String.valueOf(YamlUtil.getProperty(yamlMap, key)); + map.put(key, value != null ? value : StringUtils.EMPTY); + } + catch (FileNotFoundException e) + { + log.error("获取全局配置异常 {}", key); + } + } + return value; + } + + /** + * 获取项目名称 + */ + public static String getName() + { + return StringUtils.nvl(getConfig("ruoyi.name"), "RuoYi"); + } + + /** + * 获取项目版本 + */ + public static String getVersion() + { + return StringUtils.nvl(getConfig("ruoyi.version"), "3.0.0"); + } + + /** + * 获取版权年份 + */ + public static String getCopyrightYear() + { + return StringUtils.nvl(getConfig("ruoyi.copyrightYear"), "2018"); + } + + /** + * 获取ip地址开关 + */ + public static Boolean isAddressEnabled() + { + String value = getConfig("ruoyi.addressEnabled"); + return Boolean.TRUE.equals(value); + } + + /** + * 获取文件上传路径 + */ + public static String getProfile() + { + return getConfig("ruoyi.profile"); + } + + /** + * 获取头像上传路径 + */ + public static String getAvatarPath() + { + return getConfig("ruoyi.profile") + "avatar/"; + } + + /** + * 获取下载上传路径 + */ + public static String getDownloadPath() + { + return getConfig("ruoyi.profile") + "download/"; + } + + /** + * 获取作者 + */ + public static String getAuthor() + { + return StringUtils.nvl(getConfig("gen.author"), "ruoyi"); + } + + /** + * 生成包路径 + */ + public static String getPackageName() + { + return StringUtils.nvl(getConfig("gen.packageName"), "com.ruoyi.project.module"); + } + + /** + * 是否自动去除表前缀 + */ + public static String getAutoRemovePre() + { + return StringUtils.nvl(getConfig("gen.autoRemovePre"), "true"); + } + + /** + * 表前缀(类名不会包含表前缀) + */ + public static String getTablePrefix() + { + return StringUtils.nvl(getConfig("gen.tablePrefix"), "sys_"); + } +} diff --git a/src/main/java/com/ruoyi/common/constant/Constants.java b/ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java similarity index 100% rename from src/main/java/com/ruoyi/common/constant/Constants.java rename to ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java diff --git a/src/main/java/com/ruoyi/common/constant/PermissionConstants.java b/ruoyi-common/src/main/java/com/ruoyi/common/constant/PermissionConstants.java similarity index 95% rename from src/main/java/com/ruoyi/common/constant/PermissionConstants.java rename to ruoyi-common/src/main/java/com/ruoyi/common/constant/PermissionConstants.java index 89672145..7caf1854 100644 --- a/src/main/java/com/ruoyi/common/constant/PermissionConstants.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/constant/PermissionConstants.java @@ -1,27 +1,27 @@ -package com.ruoyi.common.constant; - -/** - * 权限通用常量 - * - * @author ruoyi - */ -public class PermissionConstants -{ - /** 新增权限 */ - public static final String ADD_PERMISSION = "add"; - - /** 修改权限 */ - public static final String EDIT_PERMISSION = "edit"; - - /** 删除权限 */ - public static final String REMOVE_PERMISSION = "remove"; - - /** 导出权限 */ - public static final String EXPORT_PERMISSION = "export"; - - /** 显示权限 */ - public static final String VIEW_PERMISSION = "view"; - - /** 查询权限 */ - public static final String LIST_PERMISSION = "list"; -} +package com.ruoyi.common.constant; + +/** + * 权限通用常量 + * + * @author ruoyi + */ +public class PermissionConstants +{ + /** 新增权限 */ + public static final String ADD_PERMISSION = "add"; + + /** 修改权限 */ + public static final String EDIT_PERMISSION = "edit"; + + /** 删除权限 */ + public static final String REMOVE_PERMISSION = "remove"; + + /** 导出权限 */ + public static final String EXPORT_PERMISSION = "export"; + + /** 显示权限 */ + public static final String VIEW_PERMISSION = "view"; + + /** 查询权限 */ + public static final String LIST_PERMISSION = "list"; +} diff --git a/src/main/java/com/ruoyi/common/constant/ScheduleConstants.java b/ruoyi-common/src/main/java/com/ruoyi/common/constant/ScheduleConstants.java similarity index 100% rename from src/main/java/com/ruoyi/common/constant/ScheduleConstants.java rename to ruoyi-common/src/main/java/com/ruoyi/common/constant/ScheduleConstants.java diff --git a/src/main/java/com/ruoyi/common/constant/ShiroConstants.java b/ruoyi-common/src/main/java/com/ruoyi/common/constant/ShiroConstants.java similarity index 100% rename from src/main/java/com/ruoyi/common/constant/ShiroConstants.java rename to ruoyi-common/src/main/java/com/ruoyi/common/constant/ShiroConstants.java diff --git a/src/main/java/com/ruoyi/common/constant/UserConstants.java b/ruoyi-common/src/main/java/com/ruoyi/common/constant/UserConstants.java similarity index 100% rename from src/main/java/com/ruoyi/common/constant/UserConstants.java rename to ruoyi-common/src/main/java/com/ruoyi/common/constant/UserConstants.java diff --git a/src/main/java/com/ruoyi/framework/aspectj/lang/enums/BusinessStatus.java b/ruoyi-common/src/main/java/com/ruoyi/common/enums/BusinessStatus.java similarity index 75% rename from src/main/java/com/ruoyi/framework/aspectj/lang/enums/BusinessStatus.java rename to ruoyi-common/src/main/java/com/ruoyi/common/enums/BusinessStatus.java index 2e1c7af9..43612e5d 100644 --- a/src/main/java/com/ruoyi/framework/aspectj/lang/enums/BusinessStatus.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/enums/BusinessStatus.java @@ -1,20 +1,19 @@ -package com.ruoyi.framework.aspectj.lang.enums; - -/** - * 操作状态 - * - * @author ruoyi - * - */ -public enum BusinessStatus -{ - /** - * 成功 - */ - SUCCESS, - - /** - * 失败 - */ - FAIL, -} +package com.ruoyi.common.enums; + +/** + * 操作状态 + * + * @author ruoyi + */ +public enum BusinessStatus +{ + /** + * 成功 + */ + SUCCESS, + + /** + * 失败 + */ + FAIL, +} diff --git a/src/main/java/com/ruoyi/framework/aspectj/lang/enums/BusinessType.java b/ruoyi-common/src/main/java/com/ruoyi/common/enums/BusinessType.java similarity index 82% rename from src/main/java/com/ruoyi/framework/aspectj/lang/enums/BusinessType.java rename to ruoyi-common/src/main/java/com/ruoyi/common/enums/BusinessType.java index e140d614..d22bccbd 100644 --- a/src/main/java/com/ruoyi/framework/aspectj/lang/enums/BusinessType.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/enums/BusinessType.java @@ -1,60 +1,59 @@ -package com.ruoyi.framework.aspectj.lang.enums; - -/** - * 业务操作类型 - * - * @author ruoyi - * - */ -public enum BusinessType -{ - /** - * 其它 - */ - OTHER, - - /** - * 新增 - */ - INSERT, - - /** - * 修改 - */ - UPDATE, - - /** - * 删除 - */ - DELETE, - - /** - * 授权 - */ - GRANT, - - /** - * 导出 - */ - EXPORT, - - /** - * 导入 - */ - IMPORT, - - /** - * 强退 - */ - FORCE, - - /** - * 生成代码 - */ - GENCODE, - - /** - * 清空数据 - */ - CLEAN, -} +package com.ruoyi.common.enums; + +/** + * 业务操作类型 + * + * @author ruoyi + */ +public enum BusinessType +{ + /** + * 其它 + */ + OTHER, + + /** + * 新增 + */ + INSERT, + + /** + * 修改 + */ + UPDATE, + + /** + * 删除 + */ + DELETE, + + /** + * 授权 + */ + GRANT, + + /** + * 导出 + */ + EXPORT, + + /** + * 导入 + */ + IMPORT, + + /** + * 强退 + */ + FORCE, + + /** + * 生成代码 + */ + GENCODE, + + /** + * 清空 + */ + CLEAN, +} diff --git a/src/main/java/com/ruoyi/framework/aspectj/lang/enums/DataSourceType.java b/ruoyi-common/src/main/java/com/ruoyi/common/enums/DataSourceType.java similarity index 75% rename from src/main/java/com/ruoyi/framework/aspectj/lang/enums/DataSourceType.java rename to ruoyi-common/src/main/java/com/ruoyi/common/enums/DataSourceType.java index 103cd806..4b5341d1 100644 --- a/src/main/java/com/ruoyi/framework/aspectj/lang/enums/DataSourceType.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/enums/DataSourceType.java @@ -1,19 +1,19 @@ -package com.ruoyi.framework.aspectj.lang.enums; - -/** - * 数据源 - * - * @author ruoyi - */ -public enum DataSourceType -{ - /** - * 主库 - */ - MASTER, - - /** - * 从库 - */ - SLAVE -} +package com.ruoyi.common.enums; + +/** + * 数据源 + * + * @author ruoyi + */ +public enum DataSourceType +{ + /** + * 主库 + */ + MASTER, + + /** + * 从库 + */ + SLAVE +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/enums/OnlineStatus.java b/ruoyi-common/src/main/java/com/ruoyi/common/enums/OnlineStatus.java new file mode 100644 index 00000000..b0bdd100 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/enums/OnlineStatus.java @@ -0,0 +1,24 @@ +package com.ruoyi.common.enums; + +/** + * 用户会话 + * + * @author ruoyi + */ +public enum OnlineStatus +{ + /** 用户状态 */ + on_line("在线"), off_line("离线"); + + private final String info; + + private OnlineStatus(String info) + { + this.info = info; + } + + public String getInfo() + { + return info; + } +} diff --git a/src/main/java/com/ruoyi/framework/aspectj/lang/enums/OperatorType.java b/ruoyi-common/src/main/java/com/ruoyi/common/enums/OperatorType.java similarity index 79% rename from src/main/java/com/ruoyi/framework/aspectj/lang/enums/OperatorType.java rename to ruoyi-common/src/main/java/com/ruoyi/common/enums/OperatorType.java index a325d688..66a44d6a 100644 --- a/src/main/java/com/ruoyi/framework/aspectj/lang/enums/OperatorType.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/enums/OperatorType.java @@ -1,26 +1,25 @@ -package com.ruoyi.framework.aspectj.lang.enums; - -/** - * 操作人类别 - * - * @author ruoyi - * - */ -public enum OperatorType -{ - /** - * 其它 - */ - OTHER, - - /** - * 后台用户 - */ - - MANAGE, - - /** - * 手机端用户 - */ - MOBILE -} +package com.ruoyi.common.enums; + +/** + * 操作人类别 + * + * @author ruoyi + */ +public enum OperatorType +{ + /** + * 其它 + */ + OTHER, + + /** + * 后台用户 + */ + + MANAGE, + + /** + * 手机端用户 + */ + MOBILE +} diff --git a/src/main/java/com/ruoyi/project/system/user/domain/UserStatus.java b/ruoyi-common/src/main/java/com/ruoyi/common/enums/UserStatus.java similarity index 84% rename from src/main/java/com/ruoyi/project/system/user/domain/UserStatus.java rename to ruoyi-common/src/main/java/com/ruoyi/common/enums/UserStatus.java index 8164221d..a4613ff9 100644 --- a/src/main/java/com/ruoyi/project/system/user/domain/UserStatus.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/enums/UserStatus.java @@ -1,10 +1,9 @@ -package com.ruoyi.project.system.user.domain; +package com.ruoyi.common.enums; /** * 用户状态 * * @author ruoyi - * */ public enum UserStatus { diff --git a/src/main/java/com/ruoyi/common/exception/DemoModeException.java b/ruoyi-common/src/main/java/com/ruoyi/common/exception/DemoModeException.java similarity index 100% rename from src/main/java/com/ruoyi/common/exception/DemoModeException.java rename to ruoyi-common/src/main/java/com/ruoyi/common/exception/DemoModeException.java diff --git a/src/main/java/com/ruoyi/common/exception/file/FileNameLengthLimitExceededException.java b/ruoyi-common/src/main/java/com/ruoyi/common/exception/file/FileNameLengthLimitExceededException.java similarity index 100% rename from src/main/java/com/ruoyi/common/exception/file/FileNameLengthLimitExceededException.java rename to ruoyi-common/src/main/java/com/ruoyi/common/exception/file/FileNameLengthLimitExceededException.java diff --git a/src/main/java/com/ruoyi/common/exception/file/InvalidExtensionException.java b/ruoyi-common/src/main/java/com/ruoyi/common/exception/file/InvalidExtensionException.java similarity index 100% rename from src/main/java/com/ruoyi/common/exception/file/InvalidExtensionException.java rename to ruoyi-common/src/main/java/com/ruoyi/common/exception/file/InvalidExtensionException.java diff --git a/src/main/java/com/ruoyi/common/exception/job/TaskException.java b/ruoyi-common/src/main/java/com/ruoyi/common/exception/job/TaskException.java similarity index 94% rename from src/main/java/com/ruoyi/common/exception/job/TaskException.java rename to ruoyi-common/src/main/java/com/ruoyi/common/exception/job/TaskException.java index a567b408..14b2361d 100644 --- a/src/main/java/com/ruoyi/common/exception/job/TaskException.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/exception/job/TaskException.java @@ -1,34 +1,34 @@ -package com.ruoyi.common.exception.job; - -/** - * 计划策略异常 - * - * @author ruoyi - */ -public class TaskException extends Exception -{ - private static final long serialVersionUID = 1L; - - private Code code; - - public TaskException(String msg, Code code) - { - this(msg, code, null); - } - - public TaskException(String msg, Code code, Exception nestedEx) - { - super(msg, nestedEx); - this.code = code; - } - - public Code getCode() - { - return code; - } - - public enum Code - { - TASK_EXISTS, NO_TASK_EXISTS, TASK_ALREADY_STARTED, UNKNOWN, CONFIG_ERROR, TASK_NODE_NOT_AVAILABLE - } +package com.ruoyi.common.exception.job; + +/** + * 计划策略异常 + * + * @author ruoyi + */ +public class TaskException extends Exception +{ + private static final long serialVersionUID = 1L; + + private Code code; + + public TaskException(String msg, Code code) + { + this(msg, code, null); + } + + public TaskException(String msg, Code code, Exception nestedEx) + { + super(msg, nestedEx); + this.code = code; + } + + public Code getCode() + { + return code; + } + + public enum Code + { + TASK_EXISTS, NO_TASK_EXISTS, TASK_ALREADY_STARTED, UNKNOWN, CONFIG_ERROR, TASK_NODE_NOT_AVAILABLE + } } \ No newline at end of file diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/json/JSON.java b/ruoyi-common/src/main/java/com/ruoyi/common/json/JSON.java new file mode 100644 index 00000000..119147b6 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/json/JSON.java @@ -0,0 +1,187 @@ +package com.ruoyi.common.json; + +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import com.fasterxml.jackson.core.JsonGenerationException; +import com.fasterxml.jackson.core.JsonParseException; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.ObjectWriter; + +/** + * JSON解析处理 + * + * @author ruoyi + */ +public class JSON +{ + public static final String DEFAULT_FAIL = "\"Parse failed\""; + private static final ObjectMapper objectMapper = new ObjectMapper(); + private static final ObjectWriter objectWriter = objectMapper.writerWithDefaultPrettyPrinter(); + + public static void marshal(File file, Object value) throws Exception + { + try + { + objectWriter.writeValue(file, value); + } + catch (JsonGenerationException e) + { + throw new Exception(e); + } + catch (JsonMappingException e) + { + throw new Exception(e); + } + catch (IOException e) + { + throw new Exception(e); + } + } + + public static void marshal(OutputStream os, Object value) throws Exception + { + try + { + objectWriter.writeValue(os, value); + } + catch (JsonGenerationException e) + { + throw new Exception(e); + } + catch (JsonMappingException e) + { + throw new Exception(e); + } + catch (IOException e) + { + throw new Exception(e); + } + } + + public static String marshal(Object value) throws Exception + { + try + { + return objectWriter.writeValueAsString(value); + } + catch (JsonGenerationException e) + { + throw new Exception(e); + } + catch (JsonMappingException e) + { + throw new Exception(e); + } + catch (IOException e) + { + throw new Exception(e); + } + } + + public static byte[] marshalBytes(Object value) throws Exception + { + try + { + return objectWriter.writeValueAsBytes(value); + } + catch (JsonGenerationException e) + { + throw new Exception(e); + } + catch (JsonMappingException e) + { + throw new Exception(e); + } + catch (IOException e) + { + throw new Exception(e); + } + } + + public static T unmarshal(File file, Class valueType) throws Exception + { + try + { + return objectMapper.readValue(file, valueType); + } + catch (JsonParseException e) + { + throw new Exception(e); + } + catch (JsonMappingException e) + { + throw new Exception(e); + } + catch (IOException e) + { + throw new Exception(e); + } + } + + public static T unmarshal(InputStream is, Class valueType) throws Exception + { + try + { + return objectMapper.readValue(is, valueType); + } + catch (JsonParseException e) + { + throw new Exception(e); + } + catch (JsonMappingException e) + { + throw new Exception(e); + } + catch (IOException e) + { + throw new Exception(e); + } + } + + public static T unmarshal(String str, Class valueType) throws Exception + { + try + { + return objectMapper.readValue(str, valueType); + } + catch (JsonParseException e) + { + throw new Exception(e); + } + catch (JsonMappingException e) + { + throw new Exception(e); + } + catch (IOException e) + { + throw new Exception(e); + } + } + + public static T unmarshal(byte[] bytes, Class valueType) throws Exception + { + try + { + if (bytes == null) + { + bytes = new byte[0]; + } + return objectMapper.readValue(bytes, 0, bytes.length, valueType); + } + catch (JsonParseException e) + { + throw new Exception(e); + } + catch (JsonMappingException e) + { + throw new Exception(e); + } + catch (IOException e) + { + throw new Exception(e); + } + } +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/json/JSONObject.java b/ruoyi-common/src/main/java/com/ruoyi/common/json/JSONObject.java new file mode 100644 index 00000000..e4c27a4d --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/json/JSONObject.java @@ -0,0 +1,746 @@ +package com.ruoyi.common.json; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.StringTokenizer; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.ruoyi.common.utils.StringUtils; + +/** + * 通用消息对象,基于Map实现的可嵌套数据结构。 支持JSON数据结构。 + * + * @author ruoyi + */ +public class JSONObject extends LinkedHashMap +{ + private static final long serialVersionUID = 1L; + private static final Pattern arrayNamePattern = Pattern.compile("(\\w+)((\\[\\d+\\])+)"); + private static final ObjectMapper objectMapper = new ObjectMapper(); + + /** + * 数组结构。 + */ + public static class JSONArray extends ArrayList + { + private static final long serialVersionUID = 1L; + + public JSONArray() + { + super(); + } + + public JSONArray(int size) + { + super(size); + } + + @Override + public String toString() + { + try + { + return JSON.marshal(this); + } + catch (Exception e) + { + throw new RuntimeException(e); + } + } + + @Override + public Object set(int index, Object element) + { + return super.set(index, transfer(element)); + } + + @Override + public boolean add(Object element) + { + return super.add(transfer(element)); + } + + @Override + public void add(int index, Object element) + { + super.add(index, transfer(element)); + } + } + + public JSONObject() + { + super(); + } + + public JSONObject(final JSONObject other) + { + super(other); + } + + @Override + public String toString() + { + try + { + return JSON.marshal(this); + } + catch (Exception e) + { + throw new RuntimeException(e); + } + } + + /** + * 转换为紧凑格式的字符串。 + * + * @return 返回本对象紧凑格式字符串。 + */ + public String toCompactString() + { + try + { + return objectMapper.writeValueAsString(this); + } + catch (Exception e) + { + throw new RuntimeException(e); + } + } + + /** + * 获取指定字段的整数值。如果字段不存在,或者无法转换为整数,返回null。 + * + * @param name 字段名,支持多级。 + * @return 返回指定的整数值,或者null。 + */ + public Integer intValue(final String name) + { + return valueAsInt(value(name)); + } + + /** + * 获取指定字段的整数值。如果字段不存在,或者无法转换为整数,返回defaultValue。 + * + * @param name 字段名,支持多级。 + * @param defaultValue 查询失败时,返回的值。 + * @return 返回指定的整数值,或者defaultValue。 + */ + public Integer intValue(final String name, final Integer defaultValue) + { + return StringUtils.nvl(intValue(name), defaultValue); + } + + /** + * 获取指定字段的长整数值。如果字段不存在,或者无法转换为长整数,返回null。 + * + * @param name 字段名,支持多级。 + * @return 返回指定的长整数值,或者null。 + */ + public Long longValue(final String name) + { + return valueAsLong(value(name)); + } + + /** + * 获取指定字段的长整数值。如果字段不存在,或者无法转换为长整数,返回defaultValue。 + * + * @param name 字段名,支持多级。 + * @param defaultValue 查询失败时,返回的值。 + * @return 返回指定的长整数值,或者defaultValue。 + */ + public Long longValue(final String name, final Long defaultValue) + { + return StringUtils.nvl(longValue(name), defaultValue); + } + + /** + * 获取指定字段的布尔值。如果字段不存在,或者无法转换为布尔型,返回null。 + * + * @param name 字段名,支持多级。 + * @return 返回指定的布尔值,或者null。 + */ + public Boolean boolValue(final String name) + { + return valueAsBool(value(name)); + } + + /** + * 获取指定字段的布尔值。如果字段不存在,或者无法转换为布尔型,返回defaultValue。 + * + * @param name 字段名,支持多级。 + * @param defaultValue 查询失败时,返回的值。 + * @return 返回指定的布尔值,或者defaultValue。 + */ + public Boolean boolValue(final String name, final Boolean defaultValue) + { + return StringUtils.nvl(boolValue(name), defaultValue); + } + + /** + * 获取指定字段的字符串值。如果字段不存在,返回null。 + * + * @param name 字段名,支持多级。 + * @return 返回指定的字符串值,或者null。 + */ + public String strValue(final String name) + { + return valueAsStr(value(name)); + } + + /** + * 获取指定字段的字符串值。如果字段不存在,返回defaultValue。 + * + * @param name 字段名,支持多级。 + * @param defaultValue 查询失败时,返回的值。 + * @return 返回指定的字符串值,或者defaultValue。 + */ + public String strValue(final String name, final String defaultValue) + { + return StringUtils.nvl(strValue(name), defaultValue); + } + + /** + * 获取指定字段的值。 + * + * @param name 字段名,支持多级,支持数组下标。 + * @return 返回指定字段的值。 + */ + public Object value(final String name) + { + final int indexDot = name.indexOf('.'); + if (indexDot >= 0) + { + return obj(name.substring(0, indexDot)).value(name.substring(indexDot + 1)); + } + else + { + final Matcher matcher = arrayNamePattern.matcher(name); + if (matcher.find()) + { + return endArray(matcher.group(1), matcher.group(2), new EndArrayCallback() + { + public Object callback(JSONArray arr, int index) + { + return elementAt(arr, index); + } + }); + } + else + { + return get(name); + } + } + } + + /** + * 设置指定字段的值。 + * + * @param name 字段名,支持多级,支持数组下标。 + * @param value 字段值。 + * @return 返回本对象。 + */ + public JSONObject value(final String name, final Object value) + { + final int indexDot = name.indexOf('.'); + if (indexDot >= 0) + { + obj(name.substring(0, indexDot)).value(name.substring(indexDot + 1), value); + } + else + { + final Matcher matcher = arrayNamePattern.matcher(name); + if (matcher.find()) + { + endArray(matcher.group(1), matcher.group(2), new EndArrayCallback() + { + public Void callback(JSONArray arr, int index) + { + elementAt(arr, index, value); + return null; + } + }); + } + else + { + set(name, value); + } + } + return this; + } + + /** + * 获取对象(非标量类型)字段。返回的数据是一个结构体。当不存在指定对象时,则为指定的名字创建一个空的MessageObject对象。 + * + * @param name 字段名。不支持多级名字,支持数组下标。 + * @return 返回指定的对象。如果对象不存在,则为指定的名字创建一个空的MessageObject对象。 + */ + public JSONObject obj(final String name) + { + final Matcher matcher = arrayNamePattern.matcher(name); + if (matcher.find()) + { + return endArray(matcher.group(1), matcher.group(2), new EndArrayCallback() + { + public JSONObject callback(JSONArray arr, int index) + { + return objAt(arr, index); + } + }); + } + else + { + JSONObject obj = getObj(name); + if (obj == null) + { + obj = new JSONObject(); + put(name, obj); + } + return obj; + } + } + + /** + * 获取数组字段。将名字对应的对象以数组对象返回,当指定的字段不存在时,创建一个空的数组。 + * + * @param name 字段名。不支持多级名字,不支持下标。 + * @return 返回一个数组(List)。 + */ + public JSONArray arr(final String name) + { + JSONArray arr = getArr(name); + if (arr == null) + { + arr = new JSONArray(); + put(name, arr); + } + return arr; + } + + /** + * 获取对象(非标量类型)字段。返回的数据是一个结构体。 + * + * @param name 字段名。 + * @return 返回指定的对象字段。 + */ + public JSONObject getObj(final String name) + { + return (JSONObject) get(name); + } + + /** + * 获取数组类型字段。 + * + * @param name 字段名。 + * @return 返回数组类型字段。 + */ + public JSONArray getArr(final String name) + { + return (JSONArray) get(name); + } + + /** + * 返回字段整数值。如果不存在,返回null。 + * + * @param name 字段名。 + * @return 返回指定字段整数值。 + */ + public Integer getInt(final String name) + { + return valueAsInt(get(name)); + } + + /** + * 返回字段整数值。如果不存在,返回defaultValue。 + * + * @param name 字段名。 + * @param defaultValue 字段不存在时,返回的值。 + * @return 返回指定字段整数值。 + */ + public Integer getInt(final String name, Integer defaultValue) + { + return StringUtils.nvl(getInt(name), defaultValue); + } + + /** + * 返回字段长整数值。如果不存在,返回null。 + * + * @param name 字段名。 + * @return 返回指定字段长整数值。 + */ + public Long getLong(final String name) + { + return valueAsLong(get(name)); + } + + /** + * 返回字段长整数值。如果不存在,返回defaultValue。 + * + * @param name 字段名。 + * @param defaultValue 字段不存在时,返回的值。 + * @return 返回指定字段长整数值。 + */ + public Long getLong(final String name, Long defaultValue) + { + return StringUtils.nvl(getLong(name), defaultValue); + } + + /** + * 返回字段字符串值。如果不存在,返回null。 + * + * @param name 字段名。 + * @return 返回指定字段字符串值。 + */ + public String getStr(final String name) + { + return valueAsStr(get(name)); + } + + /** + * 返回字段字符串值。如果不存在,返回defaultValue。 + * + * @param name 字段名。 + * @param defaultValue 字段不存在时,返回的值。 + * @return 返回指定字段字符串值。 + */ + public String getStr(final String name, final String defaultValue) + { + return StringUtils.nvl(getStr(name), defaultValue); + } + + /** + * 字段值按照布尔类型返回。如果不存在,返回null。 + * + * @param name 字段名。 + * @return 字段值。 + */ + public Boolean getBool(final String name) + { + return valueAsBool(get(name)); + } + + /** + * 字段值按照布尔类型返回。如果不存在,返回defaultValue。 + * + * @param name 字段名。 + * @param defaultValue 字段不存在时,返回的值。 + * @return 字段值。 + */ + public Boolean getBool(final String name, final Boolean defaultValue) + { + return StringUtils.nvl(getBool(name), defaultValue); + } + + /** + * 设置字段值 + * + * @param name 字段名 + * @param value 字段值(标量:数字、字符串、布尔型;结构体:MessageObject)。 如果是Map类型同时非MessageObject类型,则自动转换为MessageObject类型再存入 + * (此时,再修改Map中的数据,将不会体现到本对象中)。 + * @return 返回本对象 + */ + public JSONObject set(final String name, final Object value) + { + put(name, value); + return this; + } + + /** + * 将本对象转换为Java Bean。 + * + * @param beanClass Java Bean的类对象。 + * @return 返回转换后的Java Bean。 + */ + public T asBean(Class beanClass) + { + try + { + return JSON.unmarshal(JSON.marshal(this), beanClass); + } + catch (Exception e) + { + throw new RuntimeException(e); + } + } + + /** + * 重载基类的方法。如果 value 是 Map 类型,但不是 MessageObject 类型,则创建一个包含内容等同于原 Map 的 MessageObject 作为 value(注意:此后再更改 Map 的内容,将不会反映到 + * MessageObject 中)。 重载此方法的目的是为了使JSON能够正确地解析为MessageObject对象。不建议直接调用此方法,请使用 set(name, value)方法设置字段值。 + */ + @Override + public Object put(String key, Object value) + { + return super.put(key, transfer(value)); + } + + public static Integer valueAsInt(Object value) + { + if (value instanceof Integer) + { + return (Integer) value; + } + else if (value instanceof Number) + { + return ((Number) value).intValue(); + } + else if (value instanceof String) + { + return Integer.valueOf((String) value); + } + else if (value instanceof Boolean) + { + return ((Boolean) value) ? 1 : 0; + } + else + { + return null; + } + } + + public static Long valueAsLong(Object value) + { + if (value instanceof Long) + { + return (Long) value; + } + else if (value instanceof Number) + { + return ((Number) value).longValue(); + } + else if (value instanceof String) + { + return Long.valueOf((String) value); + } + else if (value instanceof Boolean) + { + return ((Boolean) value) ? 1L : 0L; + } + else + { + return null; + } + } + + public static String valueAsStr(Object value) + { + if (value instanceof String) + { + return (String) value; + } + else if (value != null) + { + return value.toString(); + } + else + { + return null; + } + } + + public static Boolean valueAsBool(Object value) + { + if (value instanceof Boolean) + { + return (Boolean) value; + } + else if (value instanceof Number) + { + return ((Number) value).doubleValue() != 0.0; + } + else if (value instanceof String) + { + return Boolean.valueOf((String) value); + } + else + { + return null; + } + } + + /** + * 将所有层次中凡是Map类型同时又不是MessageObject的类型,转换为MessageObject类型。 + * + * @param value 值。 + * @return 返回转换后的值。 + */ + @SuppressWarnings("unchecked") + private static Object transfer(final Object value) + { + if (!(value instanceof JSONObject) && value instanceof Map) + { + return toObj((Map) value); + } + else if (!(value instanceof JSONArray) && value instanceof Collection) + { + return toArr((Collection) value); + } + else + { + return value; + } + } + + private static JSONArray toArr(final Collection list) + { + final JSONArray arr = new JSONArray(list.size()); + for (final Object element : list) + { + arr.add(element); + } + return arr; + } + + private static JSONObject toObj(final Map map) + { + final JSONObject obj = new JSONObject(); + for (final Map.Entry ent : map.entrySet()) + { + obj.put(ent.getKey(), transfer(ent.getValue())); + } + return obj; + } + + /** + * 将指定下标元素作为数组返回,如果不存在,则在该位置创建一个空的数组。 + * + * @param arr 当前数组。 + * @param index 下标。 + * @return 返回当前数组指定下标的元素,该元素应该是一个数组。 + */ + private static JSONArray arrayAt(JSONArray arr, int index) + { + expand(arr, index); + if (arr.get(index) == null) + { + arr.set(index, new JSONArray()); + } + return (JSONArray) arr.get(index); + } + + /** + * 将指定下标元素作为结构体返回,如果不存在,则在该位置创建一个空的结构体。 + * + * @param arr 当前数组。 + * @param index 下标。 + * @return 返回当前数组指定下标元素,该元素是一个结构体。 + */ + private static JSONObject objAt(final JSONArray arr, int index) + { + expand(arr, index); + if (arr.get(index) == null) + { + arr.set(index, new JSONObject()); + } + return (JSONObject) arr.get(index); + } + + /** + * 设置数组指定下标位置的值。 + * + * @param arr 数组。 + * @param index 下标。 + * @param value 值。 + */ + private static void elementAt(final JSONArray arr, final int index, final Object value) + { + expand(arr, index).set(index, value); + } + + /** + * 获取数组指定下标元素的值。 + * + * @param arr 数组。 + * @param index 下标。 + * @return 值。 + */ + private static Object elementAt(final JSONArray arr, final int index) + { + return expand(arr, index).get(index); + } + + /** + * 扩展数组到指定下标,以防止访问时下标越界。 + * + * @param arr 数组 + * @param index 下标 + * @return 返回传入的数组 + */ + private static JSONArray expand(final JSONArray arr, final int index) + { + while (arr.size() <= index) + { + arr.add(null); + } + return arr; + } + + /** + * 最后数组回调。 + * + * @author Mike + * + * @param 回调返回数据类型。 + */ + private interface EndArrayCallback + { + /** + * 当定位到最后一级数组,将调用本方法。 + * + * @param arr 最后一级数组对象。 + * @param index 最后一级索引。 + * @return 返回回调的返回值。 + */ + T callback(JSONArray arr, int index); + } + + /** + * 处理多维数组的工具函数(包括一维数组)。多维数组的名字如:arrary[1][2][3], 则name=array,indexStr=[1][2][3],在callback中,endArr将是 + * array[1][2]指定的对象,indexe=3。 + * + * @param name 不带下标的名字,不支持多级名字。 + * @param indexesStr 索引部分的字符串,如:[1][2][3] + * @param callback 回调函数。 + * @return 返回回调函数的返回值。 + */ + private T endArray(final String name, final String indexesStr, final EndArrayCallback callback) + { + JSONArray endArr = arr(name); + final int[] indexes = parseIndexes(indexesStr); + int i = 0; + while (i < indexes.length - 1) + { + endArr = arrayAt(endArr, indexes[i++]); + } + return callback.callback(endArr, indexes[i]); + } + + private static int[] parseIndexes(final String s) + { + int[] indexes = null; + List list = new ArrayList(); + + final StringTokenizer st = new StringTokenizer(s, "[]"); + while (st.hasMoreTokens()) + { + final int index = Integer.valueOf(st.nextToken()); + if (index < 0) + { + throw new RuntimeException(String.format("Illegal index %1$d in \"%2$s\"", index, s)); + } + + list.add(index); + } + + indexes = new int[list.size()]; + int i = 0; + for (Integer tmp : list.toArray(new Integer[list.size()])) + { + indexes[i++] = tmp; + } + + return indexes; + } +} diff --git a/src/main/java/com/ruoyi/common/support/CharsetKit.java b/ruoyi-common/src/main/java/com/ruoyi/common/support/CharsetKit.java similarity index 96% rename from src/main/java/com/ruoyi/common/support/CharsetKit.java rename to ruoyi-common/src/main/java/com/ruoyi/common/support/CharsetKit.java index 26296ef3..eb980e1c 100644 --- a/src/main/java/com/ruoyi/common/support/CharsetKit.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/support/CharsetKit.java @@ -8,7 +8,6 @@ import com.ruoyi.common.utils.StringUtils; * 字符集工具类 * * @author ruoyi - * */ public class CharsetKit { diff --git a/src/main/java/com/ruoyi/common/support/Convert.java b/ruoyi-common/src/main/java/com/ruoyi/common/support/Convert.java similarity index 96% rename from src/main/java/com/ruoyi/common/support/Convert.java rename to ruoyi-common/src/main/java/com/ruoyi/common/support/Convert.java index 433beb7c..df998c6e 100644 --- a/src/main/java/com/ruoyi/common/support/Convert.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/support/Convert.java @@ -12,7 +12,6 @@ import com.ruoyi.common.utils.StringUtils; * 类型转换器 * * @author ruoyi - * */ public class Convert { @@ -995,7 +994,6 @@ public class Convert } s = p.replaceAll("(零.)*零$", "").replaceAll("^$", "零") + unit[0][i] + s; } - return head + s.replaceAll("(零.)*零元", "元").replaceFirst("(零.)+", "").replaceAll("(零.)+", "零").replaceAll("^整$", - "零元整"); + return head + s.replaceAll("(零.)*零元", "元").replaceFirst("(零.)+", "").replaceAll("(零.)+", "零").replaceAll("^整$", "零元整"); } } diff --git a/src/main/java/com/ruoyi/common/support/StrFormatter.java b/ruoyi-common/src/main/java/com/ruoyi/common/support/StrFormatter.java similarity index 95% rename from src/main/java/com/ruoyi/common/support/StrFormatter.java rename to ruoyi-common/src/main/java/com/ruoyi/common/support/StrFormatter.java index 427e01b6..0c031b7c 100644 --- a/src/main/java/com/ruoyi/common/support/StrFormatter.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/support/StrFormatter.java @@ -84,7 +84,6 @@ public class StrFormatter } } } - // append the characters following the last {} pair. // 加入最后一个占位符后所有的字符 sbuf.append(strPattern, handledPosition, strPattern.length()); diff --git a/src/main/java/com/ruoyi/common/utils/AddressUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/AddressUtils.java similarity index 53% rename from src/main/java/com/ruoyi/common/utils/AddressUtils.java rename to ruoyi-common/src/main/java/com/ruoyi/common/utils/AddressUtils.java index 5179f97b..1cbdb143 100644 --- a/src/main/java/com/ruoyi/common/utils/AddressUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/AddressUtils.java @@ -1,10 +1,11 @@ package com.ruoyi.common.utils; -import com.alibaba.fastjson.JSONObject; -import com.ruoyi.common.utils.http.HttpUtils; -import com.ruoyi.framework.config.RuoYiConfig; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import com.ruoyi.common.config.Global; +import com.ruoyi.common.json.JSON; +import com.ruoyi.common.json.JSONObject; +import com.ruoyi.common.utils.http.HttpUtils; /** * 获取地址类 @@ -20,7 +21,7 @@ public class AddressUtils public static String getRealAddressByIP(String ip) { String address = "XX XX"; - if (RuoYiConfig.isAddressEnabled()) + if (Global.isAddressEnabled()) { String rspStr = HttpUtils.sendPost(IP_URL, "ip=" + ip); if (StringUtils.isEmpty(rspStr)) @@ -28,11 +29,19 @@ public class AddressUtils log.error("获取地理位置异常 {}", ip); return address; } - JSONObject obj = JSONObject.parseObject(rspStr); - JSONObject data = obj.getObject("data", JSONObject.class); - String region = data.getString("region"); - String city = data.getString("city"); - address = region + " " + city; + JSONObject obj; + try + { + obj = JSON.unmarshal(rspStr, JSONObject.class); + JSONObject data = obj.getObj("data"); + String region = data.getStr("region"); + String city = data.getStr("city"); + address = region + " " + city; + } + catch (Exception e) + { + log.error("获取地理位置异常 {}", ip); + } } return address; } diff --git a/src/main/java/com/ruoyi/common/utils/DateUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/DateUtils.java similarity index 100% rename from src/main/java/com/ruoyi/common/utils/DateUtils.java rename to ruoyi-common/src/main/java/com/ruoyi/common/utils/DateUtils.java diff --git a/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/ExcelUtil.java similarity index 96% rename from src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java rename to ruoyi-common/src/main/java/com/ruoyi/common/utils/ExcelUtil.java index b862fd77..dc6812fb 100644 --- a/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/ExcelUtil.java @@ -1,4 +1,4 @@ -package com.ruoyi.common.utils.poi; +package com.ruoyi.common.utils; import java.io.File; import java.io.FileOutputStream; @@ -34,10 +34,10 @@ import org.apache.poi.ss.usermodel.WorkbookFactory; import org.apache.poi.ss.util.CellRangeAddressList; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.base.AjaxResult; +import com.ruoyi.common.config.Global; import com.ruoyi.common.utils.StringUtils; -import com.ruoyi.framework.aspectj.lang.annotation.Excel; -import com.ruoyi.framework.config.RuoYiConfig; -import com.ruoyi.framework.web.domain.AjaxResult; /** * Excel相关处理 @@ -472,7 +472,7 @@ public class ExcelUtil */ public String getAbsoluteFile(String filename) { - String downloadPath = RuoYiConfig.getDownloadPath() + filename; + String downloadPath = Global.getDownloadPath() + filename; File desc = new File(downloadPath); if (!desc.getParentFile().exists()) { diff --git a/src/main/java/com/ruoyi/common/utils/IpUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/IpUtils.java similarity index 100% rename from src/main/java/com/ruoyi/common/utils/IpUtils.java rename to ruoyi-common/src/main/java/com/ruoyi/common/utils/IpUtils.java diff --git a/src/main/java/com/ruoyi/common/utils/MapDataUtil.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/MapDataUtil.java similarity index 100% rename from src/main/java/com/ruoyi/common/utils/MapDataUtil.java rename to ruoyi-common/src/main/java/com/ruoyi/common/utils/MapDataUtil.java diff --git a/src/main/java/com/ruoyi/common/utils/Md5Utils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/Md5Utils.java similarity index 95% rename from src/main/java/com/ruoyi/common/utils/Md5Utils.java rename to ruoyi-common/src/main/java/com/ruoyi/common/utils/Md5Utils.java index aecbf17f..d709ab17 100644 --- a/src/main/java/com/ruoyi/common/utils/Md5Utils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/Md5Utils.java @@ -1,66 +1,66 @@ -package com.ruoyi.common.utils; - -import java.security.MessageDigest; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * Md5加密方法 - * - * @author ruoyi - */ -public class Md5Utils -{ - private static final Logger log = LoggerFactory.getLogger(Md5Utils.class); - - private static byte[] md5(String s) - { - MessageDigest algorithm; - try - { - algorithm = MessageDigest.getInstance("MD5"); - algorithm.reset(); - algorithm.update(s.getBytes("UTF-8")); - byte[] messageDigest = algorithm.digest(); - return messageDigest; - } - catch (Exception e) - { - log.error("MD5 Error...", e); - } - return null; - } - - private static final String toHex(byte hash[]) - { - if (hash == null) - { - return null; - } - StringBuffer buf = new StringBuffer(hash.length * 2); - int i; - - for (i = 0; i < hash.length; i++) - { - if ((hash[i] & 0xff) < 0x10) - { - buf.append("0"); - } - buf.append(Long.toString(hash[i] & 0xff, 16)); - } - return buf.toString(); - } - - public static String hash(String s) - { - try - { - return new String(toHex(md5(s)).getBytes("UTF-8"), "UTF-8"); - } - catch (Exception e) - { - log.error("not supported charset...{}", e); - return s; - } - } -} +package com.ruoyi.common.utils; + +import java.security.MessageDigest; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Md5加密方法 + * + * @author ruoyi + */ +public class Md5Utils +{ + private static final Logger log = LoggerFactory.getLogger(Md5Utils.class); + + private static byte[] md5(String s) + { + MessageDigest algorithm; + try + { + algorithm = MessageDigest.getInstance("MD5"); + algorithm.reset(); + algorithm.update(s.getBytes("UTF-8")); + byte[] messageDigest = algorithm.digest(); + return messageDigest; + } + catch (Exception e) + { + log.error("MD5 Error...", e); + } + return null; + } + + private static final String toHex(byte hash[]) + { + if (hash == null) + { + return null; + } + StringBuffer buf = new StringBuffer(hash.length * 2); + int i; + + for (i = 0; i < hash.length; i++) + { + if ((hash[i] & 0xff) < 0x10) + { + buf.append("0"); + } + buf.append(Long.toString(hash[i] & 0xff, 16)); + } + return buf.toString(); + } + + public static String hash(String s) + { + try + { + return new String(toHex(md5(s)).getBytes("UTF-8"), "UTF-8"); + } + catch (Exception e) + { + log.error("not supported charset...{}", e); + return s; + } + } +} diff --git a/src/main/java/com/ruoyi/common/utils/StringUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/StringUtils.java similarity index 91% rename from src/main/java/com/ruoyi/common/utils/StringUtils.java rename to ruoyi-common/src/main/java/com/ruoyi/common/utils/StringUtils.java index 856a0d33..61450886 100644 --- a/src/main/java/com/ruoyi/common/utils/StringUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/StringUtils.java @@ -2,7 +2,6 @@ package com.ruoyi.common.utils; import java.util.Collection; import java.util.Map; -import org.apache.commons.lang.text.StrBuilder; import com.ruoyi.common.support.StrFormatter; /** @@ -257,19 +256,6 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils return StrFormatter.format(template, params); } - /** - * 驼峰首字符小写 - */ - public static String uncapitalize(String str) - { - int strLen; - if (str == null || (strLen = str.length()) == 0) - { - return str; - } - return new StrBuilder(strLen).append(Character.toLowerCase(str.charAt(0))).append(str.substring(1)).toString(); - } - /** * 下划线转驼峰命名 */ diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/YamlUtil.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/YamlUtil.java new file mode 100644 index 00000000..e8e05b5f --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/YamlUtil.java @@ -0,0 +1,87 @@ +package com.ruoyi.common.utils; + +import java.io.FileNotFoundException; +import java.io.FileWriter; +import java.io.IOException; +import java.io.InputStream; +import java.util.LinkedHashMap; +import java.util.Map; +import org.yaml.snakeyaml.DumperOptions; +import org.yaml.snakeyaml.Yaml; +import com.ruoyi.common.utils.StringUtils; + +/** + * 配置处理工具类 + * + * @author yml + */ +public class YamlUtil +{ + public static Map loadYaml(String fileName) throws FileNotFoundException + { + InputStream in = YamlUtil.class.getClassLoader().getResourceAsStream(fileName); + return StringUtils.isNotEmpty(fileName) ? (LinkedHashMap) new Yaml().load(in) : null; + } + + public static void dumpYaml(String fileName, Map map) throws IOException + { + if (StringUtils.isNotEmpty(fileName)) + { + FileWriter fileWriter = new FileWriter(YamlUtil.class.getResource(fileName).getFile()); + DumperOptions options = new DumperOptions(); + options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK); + Yaml yaml = new Yaml(options); + yaml.dump(map, fileWriter); + } + } + + public static Object getProperty(Map map, Object qualifiedKey) + { + if (map != null && !map.isEmpty() && qualifiedKey != null) + { + String input = String.valueOf(qualifiedKey); + if (!input.equals("")) + { + if (input.contains(".")) + { + int index = input.indexOf("."); + String left = input.substring(0, index); + String right = input.substring(index + 1, input.length()); + return getProperty((Map) map.get(left), right); + } + else if (map.containsKey(input)) + { + return map.get(input); + } + else + { + return null; + } + } + } + return null; + } + + @SuppressWarnings("unchecked") + public static void setProperty(Map map, Object qualifiedKey, Object value) + { + if (map != null && !map.isEmpty() && qualifiedKey != null) + { + String input = String.valueOf(qualifiedKey); + if (!input.equals("")) + { + if (input.contains(".")) + { + int index = input.indexOf("."); + String left = input.substring(0, index); + String right = input.substring(index + 1, input.length()); + setProperty((Map) map.get(left), right, value); + } + else + { + ((Map) map).put(qualifiedKey, value); + } + } + } + } +} \ No newline at end of file diff --git a/src/main/java/com/ruoyi/common/utils/bean/BeanUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/bean/BeanUtils.java similarity index 96% rename from src/main/java/com/ruoyi/common/utils/bean/BeanUtils.java rename to ruoyi-common/src/main/java/com/ruoyi/common/utils/bean/BeanUtils.java index 32b180db..c214cf2c 100644 --- a/src/main/java/com/ruoyi/common/utils/bean/BeanUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/bean/BeanUtils.java @@ -1,122 +1,122 @@ -package com.ruoyi.common.utils.bean; - -import java.lang.reflect.Method; -import java.util.ArrayList; -import java.util.List; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -/** - * Bean 工具类 - * - * @author ruoyi - */ -public class BeanUtils -{ - /** Bean方法名中属性名开始的下标 */ - private static final int BEAN_METHOD_PROP_INDEX = 3; - - /** * 匹配getter方法的正则表达式 */ - private static final Pattern GET_PATTERN = Pattern.compile("get(\\p{javaUpperCase}\\w*)"); - - /** * 匹配setter方法的正则表达式 */ - private static final Pattern SET_PATTERN = Pattern.compile("set(\\p{javaUpperCase}\\w*)"); - - /** - * Bean属性复制工具方法。 - * - * @param dest 目标对象 - * @param src 源对象 - */ - public static void copyBeanProp(Object dest, Object src) - { - List destSetters = getSetterMethods(dest); - List srcGetters = getGetterMethods(src); - try - { - for (Method setter : destSetters) - { - for (Method getter : srcGetters) - { - if (isMethodPropEquals(setter.getName(), getter.getName()) - && setter.getParameterTypes()[0].equals(getter.getReturnType())) - { - setter.invoke(dest, getter.invoke(src)); - } - } - } - } - catch (Exception e) - { - e.printStackTrace(); - } - } - - /** - * 获取对象的setter方法。 - * - * @param obj 对象 - * @return 对象的setter方法列表 - */ - public static List getSetterMethods(Object obj) - { - // setter方法列表 - List setterMethods = new ArrayList(); - - // 获取所有方法 - Method[] methods = obj.getClass().getMethods(); - - // 查找setter方法 - - for (Method method : methods) - { - Matcher m = SET_PATTERN.matcher(method.getName()); - if (m.matches() && (method.getParameterTypes().length == 1)) - { - setterMethods.add(method); - } - } - // 返回setter方法列表 - return setterMethods; - } - - /** - * 获取对象的getter方法。 - * - * @param obj 对象 - * @return 对象的getter方法列表 - */ - - public static List getGetterMethods(Object obj) - { - // getter方法列表 - List getterMethods = new ArrayList(); - // 获取所有方法 - Method[] methods = obj.getClass().getMethods(); - // 查找getter方法 - for (Method method : methods) - { - Matcher m = GET_PATTERN.matcher(method.getName()); - if (m.matches() && (method.getParameterTypes().length == 0)) - { - getterMethods.add(method); - } - } - // 返回getter方法列表 - return getterMethods; - } - - /** - * 检查Bean方法名中的属性名是否相等。
    - * 如getName()和setName()属性名一样,getName()和setAge()属性名不一样。 - * - * @param m1 方法名1 - * @param m2 方法名2 - * @return 属性名一样返回true,否则返回false - */ - - public static boolean isMethodPropEquals(String m1, String m2) - { - return m1.substring(BEAN_METHOD_PROP_INDEX).equals(m2.substring(BEAN_METHOD_PROP_INDEX)); - } -} +package com.ruoyi.common.utils.bean; + +import java.lang.reflect.Method; +import java.util.ArrayList; +import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +/** + * Bean 工具类 + * + * @author ruoyi + */ +public class BeanUtils +{ + /** Bean方法名中属性名开始的下标 */ + private static final int BEAN_METHOD_PROP_INDEX = 3; + + /** * 匹配getter方法的正则表达式 */ + private static final Pattern GET_PATTERN = Pattern.compile("get(\\p{javaUpperCase}\\w*)"); + + /** * 匹配setter方法的正则表达式 */ + private static final Pattern SET_PATTERN = Pattern.compile("set(\\p{javaUpperCase}\\w*)"); + + /** + * Bean属性复制工具方法。 + * + * @param dest 目标对象 + * @param src 源对象 + */ + public static void copyBeanProp(Object dest, Object src) + { + List destSetters = getSetterMethods(dest); + List srcGetters = getGetterMethods(src); + try + { + for (Method setter : destSetters) + { + for (Method getter : srcGetters) + { + if (isMethodPropEquals(setter.getName(), getter.getName()) + && setter.getParameterTypes()[0].equals(getter.getReturnType())) + { + setter.invoke(dest, getter.invoke(src)); + } + } + } + } + catch (Exception e) + { + e.printStackTrace(); + } + } + + /** + * 获取对象的setter方法。 + * + * @param obj 对象 + * @return 对象的setter方法列表 + */ + public static List getSetterMethods(Object obj) + { + // setter方法列表 + List setterMethods = new ArrayList(); + + // 获取所有方法 + Method[] methods = obj.getClass().getMethods(); + + // 查找setter方法 + + for (Method method : methods) + { + Matcher m = SET_PATTERN.matcher(method.getName()); + if (m.matches() && (method.getParameterTypes().length == 1)) + { + setterMethods.add(method); + } + } + // 返回setter方法列表 + return setterMethods; + } + + /** + * 获取对象的getter方法。 + * + * @param obj 对象 + * @return 对象的getter方法列表 + */ + + public static List getGetterMethods(Object obj) + { + // getter方法列表 + List getterMethods = new ArrayList(); + // 获取所有方法 + Method[] methods = obj.getClass().getMethods(); + // 查找getter方法 + for (Method method : methods) + { + Matcher m = GET_PATTERN.matcher(method.getName()); + if (m.matches() && (method.getParameterTypes().length == 0)) + { + getterMethods.add(method); + } + } + // 返回getter方法列表 + return getterMethods; + } + + /** + * 检查Bean方法名中的属性名是否相等。
    + * 如getName()和setName()属性名一样,getName()和setAge()属性名不一样。 + * + * @param m1 方法名1 + * @param m2 方法名2 + * @return 属性名一样返回true,否则返回false + */ + + public static boolean isMethodPropEquals(String m1, String m2) + { + return m1.substring(BEAN_METHOD_PROP_INDEX).equals(m2.substring(BEAN_METHOD_PROP_INDEX)); + } +} diff --git a/src/main/java/com/ruoyi/common/utils/file/FileUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUtils.java similarity index 95% rename from src/main/java/com/ruoyi/common/utils/file/FileUtils.java rename to ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUtils.java index f538bee3..00116782 100644 --- a/src/main/java/com/ruoyi/common/utils/file/FileUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUtils.java @@ -1,89 +1,89 @@ -package com.ruoyi.common.utils.file; - -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.IOException; -import java.io.OutputStream; - -/** - * 文件处理工具类 - * - * @author ruoyi - */ -public class FileUtils -{ - /** - * 输出指定文件的byte数组 - * - * @param filename 文件 - * @return - */ - public static void writeBytes(String filePath, OutputStream os) throws IOException - { - FileInputStream fis = null; - try - { - File file = new File(filePath); - if (!file.exists()) - { - throw new FileNotFoundException(filePath); - } - fis = new FileInputStream(file); - byte[] b = new byte[1024]; - int length; - while ((length = fis.read(b)) > 0) - { - os.write(b, 0, length); - } - } - catch (IOException e) - { - throw e; - } - finally - { - if (os != null) - { - try - { - os.close(); - } - catch (IOException e1) - { - e1.printStackTrace(); - } - } - if (fis != null) - { - try - { - fis.close(); - } - catch (IOException e1) - { - e1.printStackTrace(); - } - } - } - } - - /** - * 删除文件 - * - * @param filePath 文件 - * @return - */ - public static boolean deleteFile(String filePath) - { - boolean flag = false; - File file = new File(filePath); - // 路径为文件且不为空则进行删除 - if (file.isFile() && file.exists()) - { - file.delete(); - flag = true; - } - return flag; - } -} +package com.ruoyi.common.utils.file; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.OutputStream; + +/** + * 文件处理工具类 + * + * @author ruoyi + */ +public class FileUtils +{ + /** + * 输出指定文件的byte数组 + * + * @param filename 文件 + * @return + */ + public static void writeBytes(String filePath, OutputStream os) throws IOException + { + FileInputStream fis = null; + try + { + File file = new File(filePath); + if (!file.exists()) + { + throw new FileNotFoundException(filePath); + } + fis = new FileInputStream(file); + byte[] b = new byte[1024]; + int length; + while ((length = fis.read(b)) > 0) + { + os.write(b, 0, length); + } + } + catch (IOException e) + { + throw e; + } + finally + { + if (os != null) + { + try + { + os.close(); + } + catch (IOException e1) + { + e1.printStackTrace(); + } + } + if (fis != null) + { + try + { + fis.close(); + } + catch (IOException e1) + { + e1.printStackTrace(); + } + } + } + } + + /** + * 删除文件 + * + * @param filePath 文件 + * @return + */ + public static boolean deleteFile(String filePath) + { + boolean flag = false; + File file = new File(filePath); + // 路径为文件且不为空则进行删除 + if (file.isFile() && file.exists()) + { + file.delete(); + flag = true; + } + return flag; + } +} diff --git a/src/main/java/com/ruoyi/common/utils/http/HttpUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/http/HttpUtils.java similarity index 97% rename from src/main/java/com/ruoyi/common/utils/http/HttpUtils.java rename to ruoyi-common/src/main/java/com/ruoyi/common/utils/http/HttpUtils.java index a0275185..323dbc1a 100644 --- a/src/main/java/com/ruoyi/common/utils/http/HttpUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/http/HttpUtils.java @@ -1,248 +1,248 @@ -package com.ruoyi.common.utils.http; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.io.PrintWriter; -import java.net.ConnectException; -import java.net.SocketTimeoutException; -import java.net.URL; -import java.net.URLConnection; -import java.security.cert.X509Certificate; -import javax.net.ssl.HostnameVerifier; -import javax.net.ssl.HttpsURLConnection; -import javax.net.ssl.SSLContext; -import javax.net.ssl.SSLSession; -import javax.net.ssl.TrustManager; -import javax.net.ssl.X509TrustManager; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * 通用http发送方法 - * - * @author ruoyi - */ -public class HttpUtils -{ - private static final Logger log = LoggerFactory.getLogger(HttpUtils.class); - - /** - * 向指定 URL 发送GET方法的请求 - * - * @param url 发送请求的 URL - * @param param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。 - * @return 所代表远程资源的响应结果 - */ - public static String sendGet(String url, String param) - { - StringBuilder result = new StringBuilder(); - BufferedReader in = null; - try - { - String urlNameString = url + "?" + param; - log.info("sendGet - {}", urlNameString); - URL realUrl = new URL(urlNameString); - URLConnection connection = realUrl.openConnection(); - connection.setRequestProperty("accept", "*/*"); - connection.setRequestProperty("connection", "Keep-Alive"); - connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); - connection.connect(); - in = new BufferedReader(new InputStreamReader(connection.getInputStream())); - String line; - while ((line = in.readLine()) != null) - { - result.append(line); - } - log.info("recv - {}", result); - } - catch (ConnectException e) - { - log.error("调用HttpUtils.sendGet ConnectException, url=" + url + ",param=" + param, e); - } - catch (SocketTimeoutException e) - { - log.error("调用HttpUtils.sendGet SocketTimeoutException, url=" + url + ",param=" + param, e); - } - catch (IOException e) - { - log.error("调用HttpUtils.sendGet IOException, url=" + url + ",param=" + param, e); - } - catch (Exception e) - { - log.error("调用HttpsUtil.sendGet Exception, url=" + url + ",param=" + param, e); - } - finally - { - try - { - if (in != null) - { - in.close(); - } - } - catch (Exception ex) - { - log.error("调用in.close Exception, url=" + url + ",param=" + param, ex); - } - } - return result.toString(); - } - - /** - * 向指定 URL 发送POST方法的请求 - * - * @param url 发送请求的 URL - * @param param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。 - * @return 所代表远程资源的响应结果 - */ - public static String sendPost(String url, String param) - { - PrintWriter out = null; - BufferedReader in = null; - StringBuilder result = new StringBuilder(); - try - { - String urlNameString = url + "?" + param; - log.info("sendPost - {}", urlNameString); - URL realUrl = new URL(urlNameString); - URLConnection conn = realUrl.openConnection(); - conn.setRequestProperty("accept", "*/*"); - conn.setRequestProperty("connection", "Keep-Alive"); - conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); - conn.setRequestProperty("Accept-Charset", "utf-8"); - conn.setRequestProperty("contentType", "utf-8"); - conn.setDoOutput(true); - conn.setDoInput(true); - out = new PrintWriter(conn.getOutputStream()); - out.print(param); - out.flush(); - in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "utf-8")); - String line; - while ((line = in.readLine()) != null) - { - result.append(line); - } - log.info("recv - {}", result); - } - catch (ConnectException e) - { - log.error("调用HttpUtils.sendPost ConnectException, url=" + url + ",param=" + param, e); - } - catch (SocketTimeoutException e) - { - log.error("调用HttpUtils.sendPost SocketTimeoutException, url=" + url + ",param=" + param, e); - } - catch (IOException e) - { - log.error("调用HttpUtils.sendPost IOException, url=" + url + ",param=" + param, e); - } - catch (Exception e) - { - log.error("调用HttpsUtil.sendPost Exception, url=" + url + ",param=" + param, e); - } - finally - { - try - { - if (out != null) - { - out.close(); - } - if (in != null) - { - in.close(); - } - } - catch (IOException ex) - { - log.error("调用in.close Exception, url=" + url + ",param=" + param, ex); - } - } - return result.toString(); - } - - public static String sendSSLPost(String url, String param) - { - StringBuilder result = new StringBuilder(); - String urlNameString = url + "?" + param; - try - { - log.info("sendSSLPost - {}", urlNameString); - SSLContext sc = SSLContext.getInstance("SSL"); - sc.init(null, new TrustManager[] { new TrustAnyTrustManager() }, new java.security.SecureRandom()); - URL console = new URL(urlNameString); - HttpsURLConnection conn = (HttpsURLConnection) console.openConnection(); - conn.setRequestProperty("accept", "*/*"); - conn.setRequestProperty("connection", "Keep-Alive"); - conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); - conn.setRequestProperty("Accept-Charset", "utf-8"); - conn.setRequestProperty("contentType", "utf-8"); - conn.setDoOutput(true); - conn.setDoInput(true); - - conn.setSSLSocketFactory(sc.getSocketFactory()); - conn.setHostnameVerifier(new TrustAnyHostnameVerifier()); - conn.connect(); - InputStream is = conn.getInputStream(); - BufferedReader br = new BufferedReader(new InputStreamReader(is)); - String ret = ""; - while ((ret = br.readLine()) != null) - { - if (ret != null && !ret.trim().equals("")) - { - result.append(new String(ret.getBytes("ISO-8859-1"), "utf-8")); - } - } - log.info("recv - {}", result); - conn.disconnect(); - br.close(); - } - catch (ConnectException e) - { - log.error("调用HttpUtils.sendSSLPost ConnectException, url=" + url + ",param=" + param, e); - } - catch (SocketTimeoutException e) - { - log.error("调用HttpUtils.sendSSLPost SocketTimeoutException, url=" + url + ",param=" + param, e); - } - catch (IOException e) - { - log.error("调用HttpUtils.sendSSLPost IOException, url=" + url + ",param=" + param, e); - } - catch (Exception e) - { - log.error("调用HttpsUtil.sendSSLPost Exception, url=" + url + ",param=" + param, e); - } - return result.toString(); - } - - private static class TrustAnyTrustManager implements X509TrustManager - { - @Override - public void checkClientTrusted(X509Certificate[] chain, String authType) - { - } - - @Override - public void checkServerTrusted(X509Certificate[] chain, String authType) - { - } - - @Override - public X509Certificate[] getAcceptedIssuers() - { - return new X509Certificate[] {}; - } - } - - private static class TrustAnyHostnameVerifier implements HostnameVerifier - { - @Override - public boolean verify(String hostname, SSLSession session) - { - return true; - } - } +package com.ruoyi.common.utils.http; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.PrintWriter; +import java.net.ConnectException; +import java.net.SocketTimeoutException; +import java.net.URL; +import java.net.URLConnection; +import java.security.cert.X509Certificate; +import javax.net.ssl.HostnameVerifier; +import javax.net.ssl.HttpsURLConnection; +import javax.net.ssl.SSLContext; +import javax.net.ssl.SSLSession; +import javax.net.ssl.TrustManager; +import javax.net.ssl.X509TrustManager; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * 通用http发送方法 + * + * @author ruoyi + */ +public class HttpUtils +{ + private static final Logger log = LoggerFactory.getLogger(HttpUtils.class); + + /** + * 向指定 URL 发送GET方法的请求 + * + * @param url 发送请求的 URL + * @param param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。 + * @return 所代表远程资源的响应结果 + */ + public static String sendGet(String url, String param) + { + StringBuilder result = new StringBuilder(); + BufferedReader in = null; + try + { + String urlNameString = url + "?" + param; + log.info("sendGet - {}", urlNameString); + URL realUrl = new URL(urlNameString); + URLConnection connection = realUrl.openConnection(); + connection.setRequestProperty("accept", "*/*"); + connection.setRequestProperty("connection", "Keep-Alive"); + connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); + connection.connect(); + in = new BufferedReader(new InputStreamReader(connection.getInputStream())); + String line; + while ((line = in.readLine()) != null) + { + result.append(line); + } + log.info("recv - {}", result); + } + catch (ConnectException e) + { + log.error("调用HttpUtils.sendGet ConnectException, url=" + url + ",param=" + param, e); + } + catch (SocketTimeoutException e) + { + log.error("调用HttpUtils.sendGet SocketTimeoutException, url=" + url + ",param=" + param, e); + } + catch (IOException e) + { + log.error("调用HttpUtils.sendGet IOException, url=" + url + ",param=" + param, e); + } + catch (Exception e) + { + log.error("调用HttpsUtil.sendGet Exception, url=" + url + ",param=" + param, e); + } + finally + { + try + { + if (in != null) + { + in.close(); + } + } + catch (Exception ex) + { + log.error("调用in.close Exception, url=" + url + ",param=" + param, ex); + } + } + return result.toString(); + } + + /** + * 向指定 URL 发送POST方法的请求 + * + * @param url 发送请求的 URL + * @param param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。 + * @return 所代表远程资源的响应结果 + */ + public static String sendPost(String url, String param) + { + PrintWriter out = null; + BufferedReader in = null; + StringBuilder result = new StringBuilder(); + try + { + String urlNameString = url + "?" + param; + log.info("sendPost - {}", urlNameString); + URL realUrl = new URL(urlNameString); + URLConnection conn = realUrl.openConnection(); + conn.setRequestProperty("accept", "*/*"); + conn.setRequestProperty("connection", "Keep-Alive"); + conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); + conn.setRequestProperty("Accept-Charset", "utf-8"); + conn.setRequestProperty("contentType", "utf-8"); + conn.setDoOutput(true); + conn.setDoInput(true); + out = new PrintWriter(conn.getOutputStream()); + out.print(param); + out.flush(); + in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "utf-8")); + String line; + while ((line = in.readLine()) != null) + { + result.append(line); + } + log.info("recv - {}", result); + } + catch (ConnectException e) + { + log.error("调用HttpUtils.sendPost ConnectException, url=" + url + ",param=" + param, e); + } + catch (SocketTimeoutException e) + { + log.error("调用HttpUtils.sendPost SocketTimeoutException, url=" + url + ",param=" + param, e); + } + catch (IOException e) + { + log.error("调用HttpUtils.sendPost IOException, url=" + url + ",param=" + param, e); + } + catch (Exception e) + { + log.error("调用HttpsUtil.sendPost Exception, url=" + url + ",param=" + param, e); + } + finally + { + try + { + if (out != null) + { + out.close(); + } + if (in != null) + { + in.close(); + } + } + catch (IOException ex) + { + log.error("调用in.close Exception, url=" + url + ",param=" + param, ex); + } + } + return result.toString(); + } + + public static String sendSSLPost(String url, String param) + { + StringBuilder result = new StringBuilder(); + String urlNameString = url + "?" + param; + try + { + log.info("sendSSLPost - {}", urlNameString); + SSLContext sc = SSLContext.getInstance("SSL"); + sc.init(null, new TrustManager[] { new TrustAnyTrustManager() }, new java.security.SecureRandom()); + URL console = new URL(urlNameString); + HttpsURLConnection conn = (HttpsURLConnection) console.openConnection(); + conn.setRequestProperty("accept", "*/*"); + conn.setRequestProperty("connection", "Keep-Alive"); + conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); + conn.setRequestProperty("Accept-Charset", "utf-8"); + conn.setRequestProperty("contentType", "utf-8"); + conn.setDoOutput(true); + conn.setDoInput(true); + + conn.setSSLSocketFactory(sc.getSocketFactory()); + conn.setHostnameVerifier(new TrustAnyHostnameVerifier()); + conn.connect(); + InputStream is = conn.getInputStream(); + BufferedReader br = new BufferedReader(new InputStreamReader(is)); + String ret = ""; + while ((ret = br.readLine()) != null) + { + if (ret != null && !ret.trim().equals("")) + { + result.append(new String(ret.getBytes("ISO-8859-1"), "utf-8")); + } + } + log.info("recv - {}", result); + conn.disconnect(); + br.close(); + } + catch (ConnectException e) + { + log.error("调用HttpUtils.sendSSLPost ConnectException, url=" + url + ",param=" + param, e); + } + catch (SocketTimeoutException e) + { + log.error("调用HttpUtils.sendSSLPost SocketTimeoutException, url=" + url + ",param=" + param, e); + } + catch (IOException e) + { + log.error("调用HttpUtils.sendSSLPost IOException, url=" + url + ",param=" + param, e); + } + catch (Exception e) + { + log.error("调用HttpsUtil.sendSSLPost Exception, url=" + url + ",param=" + param, e); + } + return result.toString(); + } + + private static class TrustAnyTrustManager implements X509TrustManager + { + @Override + public void checkClientTrusted(X509Certificate[] chain, String authType) + { + } + + @Override + public void checkServerTrusted(X509Certificate[] chain, String authType) + { + } + + @Override + public X509Certificate[] getAcceptedIssuers() + { + return new X509Certificate[] {}; + } + } + + private static class TrustAnyHostnameVerifier implements HostnameVerifier + { + @Override + public boolean verify(String hostname, SSLSession session) + { + return true; + } + } } \ No newline at end of file diff --git a/src/main/java/com/ruoyi/common/xss/XssFilter.java b/ruoyi-common/src/main/java/com/ruoyi/common/xss/XssFilter.java similarity index 100% rename from src/main/java/com/ruoyi/common/xss/XssFilter.java rename to ruoyi-common/src/main/java/com/ruoyi/common/xss/XssFilter.java diff --git a/src/main/java/com/ruoyi/common/xss/XssHttpServletRequestWrapper.java b/ruoyi-common/src/main/java/com/ruoyi/common/xss/XssHttpServletRequestWrapper.java similarity index 100% rename from src/main/java/com/ruoyi/common/xss/XssHttpServletRequestWrapper.java rename to ruoyi-common/src/main/java/com/ruoyi/common/xss/XssHttpServletRequestWrapper.java diff --git a/ruoyi-framework/pom.xml b/ruoyi-framework/pom.xml new file mode 100644 index 00000000..d89ca5c1 --- /dev/null +++ b/ruoyi-framework/pom.xml @@ -0,0 +1,99 @@ + + + + ruoyi + com.ruoyi + 3.0 + + 4.0.0 + + ruoyi-framework + + + framework框架核心 + + + + + + org.springframework.boot + spring-boot-starter-web + + + + + org.springframework.boot + spring-boot-starter-aop + + + + + com.alibaba + druid-spring-boot-starter + ${druid.version} + + + + + com.github.penggle + kaptcha + ${kaptcha.version} + + + javax.servlet-api + javax.servlet + + + + + + + org.apache.shiro + shiro-core + ${shiro.version} + + + + + org.apache.shiro + shiro-spring + ${shiro.version} + + + + + org.apache.shiro + shiro-ehcache + ${shiro.version} + + + + + com.github.theborakompanioni + thymeleaf-extras-shiro + ${thymeleaf.extras.shiro.version} + + + + + eu.bitwalker + UserAgentUtils + ${bitwalker.version} + + + + com.ruoyi + ruoyi-common + ${ruoyi.version} + + + com.ruoyi + ruoyi-system + ${ruoyi.version} + + + + + \ No newline at end of file diff --git a/src/main/java/com/ruoyi/framework/aspectj/DataScopeAspect.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataScopeAspect.java similarity index 82% rename from src/main/java/com/ruoyi/framework/aspectj/DataScopeAspect.java rename to ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataScopeAspect.java index 903d7114..2c04112b 100644 --- a/src/main/java/com/ruoyi/framework/aspectj/DataScopeAspect.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataScopeAspect.java @@ -8,12 +8,12 @@ import org.aspectj.lang.annotation.Before; import org.aspectj.lang.annotation.Pointcut; import org.aspectj.lang.reflect.MethodSignature; import org.springframework.stereotype.Component; +import com.ruoyi.common.annotation.DataScope; +import com.ruoyi.common.base.BaseEntity; import com.ruoyi.common.utils.StringUtils; -import com.ruoyi.common.utils.security.ShiroUtils; -import com.ruoyi.framework.aspectj.lang.annotation.DataScope; -import com.ruoyi.framework.web.domain.BaseEntity; -import com.ruoyi.project.system.role.domain.Role; -import com.ruoyi.project.system.user.domain.User; +import com.ruoyi.framework.util.ShiroUtils; +import com.ruoyi.system.domain.SysRole; +import com.ruoyi.system.domain.SysUser; /** * 数据过滤处理 @@ -40,7 +40,7 @@ public class DataScopeAspect public static final String DATA_SCOPE = "dataScope"; // 配置织入点 - @Pointcut("@annotation(com.ruoyi.framework.aspectj.lang.annotation.DataScope)") + @Pointcut("@annotation(com.ruoyi.common.annotation.DataScope)") public void dataScopePointCut() { } @@ -60,7 +60,7 @@ public class DataScopeAspect return; } // 获取当前的用户 - User currentUser = ShiroUtils.getUser(); + SysUser currentUser = ShiroUtils.getUser(); if (currentUser != null) { // 如果是超级管理员,则不过滤数据 @@ -77,11 +77,11 @@ public class DataScopeAspect * @param da 部门表别名 * @return 标准连接条件对象 */ - public static void dataScopeFilter(JoinPoint joinPoint, User user, String alias) + public static void dataScopeFilter(JoinPoint joinPoint, SysUser user, String alias) { StringBuilder sqlString = new StringBuilder(); - for (Role role : user.getRoles()) + for (SysRole role : user.getRoles()) { String dataScope = role.getDataScope(); if (DATA_SCOPE_ALL.equals(dataScope)) diff --git a/src/main/java/com/ruoyi/framework/aspectj/DataSourceAspect.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataSourceAspect.java similarity index 89% rename from src/main/java/com/ruoyi/framework/aspectj/DataSourceAspect.java rename to ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataSourceAspect.java index a6862655..c4eab3fb 100644 --- a/src/main/java/com/ruoyi/framework/aspectj/DataSourceAspect.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataSourceAspect.java @@ -1,59 +1,59 @@ -package com.ruoyi.framework.aspectj; - -import java.lang.reflect.Method; -import org.aspectj.lang.ProceedingJoinPoint; -import org.aspectj.lang.annotation.Around; -import org.aspectj.lang.annotation.Aspect; -import org.aspectj.lang.annotation.Pointcut; -import org.aspectj.lang.reflect.MethodSignature; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.core.annotation.Order; -import org.springframework.stereotype.Component; -import com.ruoyi.common.utils.StringUtils; -import com.ruoyi.framework.aspectj.lang.annotation.DataSource; -import com.ruoyi.framework.datasource.DynamicDataSourceContextHolder; - -/** - * 多数据源处理 - * - * @author ruoyi - */ -@Aspect -@Order(1) -@Component -public class DataSourceAspect -{ - protected Logger logger = LoggerFactory.getLogger(getClass()); - - @Pointcut("@annotation(com.ruoyi.framework.aspectj.lang.annotation.DataSource)") - public void dsPointCut() - { - - } - - @Around("dsPointCut()") - public Object around(ProceedingJoinPoint point) throws Throwable - { - MethodSignature signature = (MethodSignature) point.getSignature(); - - Method method = signature.getMethod(); - - DataSource dataSource = method.getAnnotation(DataSource.class); - - if (StringUtils.isNotNull(dataSource)) - { - DynamicDataSourceContextHolder.setDateSoureType(dataSource.value().name()); - } - - try - { - return point.proceed(); - } - finally - { - // 销毁数据源 在执行方法之后 - DynamicDataSourceContextHolder.clearDateSoureType(); - } - } -} +package com.ruoyi.framework.aspectj; + +import java.lang.reflect.Method; +import org.aspectj.lang.ProceedingJoinPoint; +import org.aspectj.lang.annotation.Around; +import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.annotation.Pointcut; +import org.aspectj.lang.reflect.MethodSignature; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.core.annotation.Order; +import org.springframework.stereotype.Component; +import com.ruoyi.common.annotation.DataSource; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.framework.datasource.DynamicDataSourceContextHolder; + +/** + * 多数据源处理 + * + * @author ruoyi + */ +@Aspect +@Order(1) +@Component +public class DataSourceAspect +{ + protected Logger logger = LoggerFactory.getLogger(getClass()); + + @Pointcut("@annotation(com.ruoyi.common.annotation.DataSource)") + public void dsPointCut() + { + + } + + @Around("dsPointCut()") + public Object around(ProceedingJoinPoint point) throws Throwable + { + MethodSignature signature = (MethodSignature) point.getSignature(); + + Method method = signature.getMethod(); + + DataSource dataSource = method.getAnnotation(DataSource.class); + + if (StringUtils.isNotNull(dataSource)) + { + DynamicDataSourceContextHolder.setDateSoureType(dataSource.value().name()); + } + + try + { + return point.proceed(); + } + finally + { + // 销毁数据源 在执行方法之后 + DynamicDataSourceContextHolder.clearDateSoureType(); + } + } +} diff --git a/src/main/java/com/ruoyi/framework/aspectj/LogAspect.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/LogAspect.java similarity index 83% rename from src/main/java/com/ruoyi/framework/aspectj/LogAspect.java rename to ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/LogAspect.java index d5de1a9e..6bc76866 100644 --- a/src/main/java/com/ruoyi/framework/aspectj/LogAspect.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/LogAspect.java @@ -12,16 +12,16 @@ import org.aspectj.lang.reflect.MethodSignature; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; -import com.alibaba.fastjson.JSONObject; -import com.ruoyi.common.utils.ServletUtils; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.enums.BusinessStatus; +import com.ruoyi.common.json.JSON; import com.ruoyi.common.utils.StringUtils; -import com.ruoyi.common.utils.security.ShiroUtils; -import com.ruoyi.framework.aspectj.lang.annotation.Log; -import com.ruoyi.framework.aspectj.lang.enums.BusinessStatus; import com.ruoyi.framework.manager.AsyncManager; import com.ruoyi.framework.manager.factory.AsyncFactory; -import com.ruoyi.project.monitor.operlog.domain.OperLog; -import com.ruoyi.project.system.user.domain.User; +import com.ruoyi.framework.util.ServletUtils; +import com.ruoyi.framework.util.ShiroUtils; +import com.ruoyi.system.domain.SysOperLog; +import com.ruoyi.system.domain.SysUser; /** * 操作日志记录处理 @@ -35,7 +35,7 @@ public class LogAspect private static final Logger log = LoggerFactory.getLogger(LogAspect.class); // 配置织入点 - @Pointcut("@annotation(com.ruoyi.framework.aspectj.lang.annotation.Log)") + @Pointcut("@annotation(com.ruoyi.common.annotation.Log)") public void logPointCut() { } @@ -75,10 +75,10 @@ public class LogAspect } // 获取当前的用户 - User currentUser = ShiroUtils.getUser(); + SysUser currentUser = ShiroUtils.getUser(); // *========数据库日志=========*// - OperLog operLog = new OperLog(); + SysOperLog operLog = new SysOperLog(); operLog.setStatus(BusinessStatus.SUCCESS.ordinal()); // 请求的地址 String ip = ShiroUtils.getIp(); @@ -125,7 +125,7 @@ public class LogAspect * @return 方法描述 * @throws Exception */ - public void getControllerMethodDescription(Log log, OperLog operLog) throws Exception + public void getControllerMethodDescription(Log log, SysOperLog operLog) throws Exception { // 设置action动作 operLog.setBusinessType(log.businessType().ordinal()); @@ -144,13 +144,13 @@ public class LogAspect /** * 获取请求的参数,放到log中 * - * @param operLog - * @param request + * @param operLog 操作日志 + * @throws Exception 异常 */ - private void setRequestValue(OperLog operLog) + private void setRequestValue(SysOperLog operLog) throws Exception { Map map = ServletUtils.getRequest().getParameterMap(); - String params = JSONObject.toJSONString(map); + String params = JSON.marshal(map); operLog.setOperParam(StringUtils.substring(params, 0, 255)); } diff --git a/src/main/java/com/ruoyi/framework/config/CaptchaConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/CaptchaConfig.java similarity index 100% rename from src/main/java/com/ruoyi/framework/config/CaptchaConfig.java rename to ruoyi-framework/src/main/java/com/ruoyi/framework/config/CaptchaConfig.java diff --git a/src/main/java/com/ruoyi/framework/config/DruidConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/DruidConfig.java similarity index 93% rename from src/main/java/com/ruoyi/framework/config/DruidConfig.java rename to ruoyi-framework/src/main/java/com/ruoyi/framework/config/DruidConfig.java index 1fac0617..b4e9a522 100644 --- a/src/main/java/com/ruoyi/framework/config/DruidConfig.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/DruidConfig.java @@ -9,7 +9,7 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Primary; import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceBuilder; -import com.ruoyi.framework.aspectj.lang.enums.DataSourceType; +import com.ruoyi.common.enums.DataSourceType; import com.ruoyi.framework.datasource.DynamicDataSource; /** diff --git a/src/main/java/com/ruoyi/framework/config/FilterConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/FilterConfig.java similarity index 90% rename from src/main/java/com/ruoyi/framework/config/FilterConfig.java rename to ruoyi-framework/src/main/java/com/ruoyi/framework/config/FilterConfig.java index 11b61935..92d010e8 100644 --- a/src/main/java/com/ruoyi/framework/config/FilterConfig.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/FilterConfig.java @@ -1,12 +1,12 @@ package com.ruoyi.framework.config; +import java.util.HashMap; import java.util.Map; import javax.servlet.DispatcherType; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.web.servlet.FilterRegistrationBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import com.google.common.collect.Maps; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.xss.XssFilter; @@ -37,7 +37,7 @@ public class FilterConfig registration.addUrlPatterns(StringUtils.split(urlPatterns, ",")); registration.setName("xssFilter"); registration.setOrder(Integer.MAX_VALUE); - Map initParameters = Maps.newHashMap(); + Map initParameters = new HashMap(); initParameters.put("excludes", excludes); initParameters.put("enabled", enabled); registration.setInitParameters(initParameters); diff --git a/src/main/java/com/ruoyi/framework/config/GenConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/GenConfig.java similarity index 83% rename from src/main/java/com/ruoyi/framework/config/GenConfig.java rename to ruoyi-framework/src/main/java/com/ruoyi/framework/config/GenConfig.java index ecd5fcdf..109c0cab 100644 --- a/src/main/java/com/ruoyi/framework/config/GenConfig.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/GenConfig.java @@ -60,11 +60,4 @@ public class GenConfig { GenConfig.tablePrefix = tablePrefix; } - - @Override - public String toString() - { - return "GenConfig [getClass()=" + getClass() + ", hashCode()=" + hashCode() + ", toString()=" + super.toString() - + "]"; - } } diff --git a/src/main/java/com/ruoyi/framework/config/I18nConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/I18nConfig.java similarity index 100% rename from src/main/java/com/ruoyi/framework/config/I18nConfig.java rename to ruoyi-framework/src/main/java/com/ruoyi/framework/config/I18nConfig.java diff --git a/src/main/java/com/ruoyi/framework/config/KaptchaTextCreator.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/KaptchaTextCreator.java similarity index 100% rename from src/main/java/com/ruoyi/framework/config/KaptchaTextCreator.java rename to ruoyi-framework/src/main/java/com/ruoyi/framework/config/KaptchaTextCreator.java diff --git a/src/main/java/com/ruoyi/framework/config/ResourcesConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ResourcesConfig.java similarity index 91% rename from src/main/java/com/ruoyi/framework/config/ResourcesConfig.java rename to ruoyi-framework/src/main/java/com/ruoyi/framework/config/ResourcesConfig.java index 4e505087..57d13915 100644 --- a/src/main/java/com/ruoyi/framework/config/ResourcesConfig.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ResourcesConfig.java @@ -5,6 +5,7 @@ import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; import org.springframework.web.servlet.config.annotation.ViewControllerRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; +import com.ruoyi.common.config.Global; /** * 通用配置 @@ -33,7 +34,7 @@ public class ResourcesConfig implements WebMvcConfigurer public void addResourceHandlers(ResourceHandlerRegistry registry) { /** 文件上传路径 */ - registry.addResourceHandler("/profile/**").addResourceLocations("file:" + RuoYiConfig.getProfile()); + registry.addResourceHandler("/profile/**").addResourceLocations("file:" + Global.getProfile()); /** swagger配置 */ registry.addResourceHandler("swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/"); diff --git a/src/main/java/com/ruoyi/framework/config/ShiroConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ShiroConfig.java similarity index 100% rename from src/main/java/com/ruoyi/framework/config/ShiroConfig.java rename to ruoyi-framework/src/main/java/com/ruoyi/framework/config/ShiroConfig.java diff --git a/src/main/java/com/ruoyi/framework/datasource/DynamicDataSource.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/datasource/DynamicDataSource.java similarity index 96% rename from src/main/java/com/ruoyi/framework/datasource/DynamicDataSource.java rename to ruoyi-framework/src/main/java/com/ruoyi/framework/datasource/DynamicDataSource.java index d2aab1b4..2ece8dbf 100644 --- a/src/main/java/com/ruoyi/framework/datasource/DynamicDataSource.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/datasource/DynamicDataSource.java @@ -1,26 +1,26 @@ -package com.ruoyi.framework.datasource; - -import java.util.Map; -import javax.sql.DataSource; -import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource; - -/** - * 动态数据源 - * - * @author ruoyi - */ -public class DynamicDataSource extends AbstractRoutingDataSource -{ - public DynamicDataSource(DataSource defaultTargetDataSource, Map targetDataSources) - { - super.setDefaultTargetDataSource(defaultTargetDataSource); - super.setTargetDataSources(targetDataSources); - super.afterPropertiesSet(); - } - - @Override - protected Object determineCurrentLookupKey() - { - return DynamicDataSourceContextHolder.getDateSoureType(); - } +package com.ruoyi.framework.datasource; + +import java.util.Map; +import javax.sql.DataSource; +import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource; + +/** + * 动态数据源 + * + * @author ruoyi + */ +public class DynamicDataSource extends AbstractRoutingDataSource +{ + public DynamicDataSource(DataSource defaultTargetDataSource, Map targetDataSources) + { + super.setDefaultTargetDataSource(defaultTargetDataSource); + super.setTargetDataSources(targetDataSources); + super.afterPropertiesSet(); + } + + @Override + protected Object determineCurrentLookupKey() + { + return DynamicDataSourceContextHolder.getDateSoureType(); + } } \ No newline at end of file diff --git a/src/main/java/com/ruoyi/framework/datasource/DynamicDataSourceContextHolder.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/datasource/DynamicDataSourceContextHolder.java similarity index 96% rename from src/main/java/com/ruoyi/framework/datasource/DynamicDataSourceContextHolder.java rename to ruoyi-framework/src/main/java/com/ruoyi/framework/datasource/DynamicDataSourceContextHolder.java index 3a3904c0..eb8b7f3d 100644 --- a/src/main/java/com/ruoyi/framework/datasource/DynamicDataSourceContextHolder.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/datasource/DynamicDataSourceContextHolder.java @@ -1,45 +1,45 @@ -package com.ruoyi.framework.datasource; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * 数据源切换处理 - * - * @author ruoyi - */ -public class DynamicDataSourceContextHolder -{ - public static final Logger log = LoggerFactory.getLogger(DynamicDataSourceContextHolder.class); - - /** - * 使用ThreadLocal维护变量,ThreadLocal为每个使用该变量的线程提供独立的变量副本, - * 所以每一个线程都可以独立地改变自己的副本,而不会影响其它线程所对应的副本。 - */ - private static final ThreadLocal CONTEXT_HOLDER = new ThreadLocal<>(); - - /** - * 设置数据源的变量 - */ - public static void setDateSoureType(String dsType) - { - log.info("切换到{}数据源", dsType); - CONTEXT_HOLDER.set(dsType); - } - - /** - * 获得数据源的变量 - */ - public static String getDateSoureType() - { - return CONTEXT_HOLDER.get(); - } - - /** - * 清空数据源变量 - */ - public static void clearDateSoureType() - { - CONTEXT_HOLDER.remove(); - } -} +package com.ruoyi.framework.datasource; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * 数据源切换处理 + * + * @author ruoyi + */ +public class DynamicDataSourceContextHolder +{ + public static final Logger log = LoggerFactory.getLogger(DynamicDataSourceContextHolder.class); + + /** + * 使用ThreadLocal维护变量,ThreadLocal为每个使用该变量的线程提供独立的变量副本, + * 所以每一个线程都可以独立地改变自己的副本,而不会影响其它线程所对应的副本。 + */ + private static final ThreadLocal CONTEXT_HOLDER = new ThreadLocal<>(); + + /** + * 设置数据源的变量 + */ + public static void setDateSoureType(String dsType) + { + log.info("切换到{}数据源", dsType); + CONTEXT_HOLDER.set(dsType); + } + + /** + * 获得数据源的变量 + */ + public static String getDateSoureType() + { + return CONTEXT_HOLDER.get(); + } + + /** + * 清空数据源变量 + */ + public static void clearDateSoureType() + { + CONTEXT_HOLDER.remove(); + } +} diff --git a/src/main/java/com/ruoyi/framework/manager/AsyncManager.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/manager/AsyncManager.java similarity index 100% rename from src/main/java/com/ruoyi/framework/manager/AsyncManager.java rename to ruoyi-framework/src/main/java/com/ruoyi/framework/manager/AsyncManager.java diff --git a/src/main/java/com/ruoyi/framework/manager/factory/AsyncFactory.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/manager/factory/AsyncFactory.java similarity index 75% rename from src/main/java/com/ruoyi/framework/manager/factory/AsyncFactory.java rename to ruoyi-framework/src/main/java/com/ruoyi/framework/manager/factory/AsyncFactory.java index 5e1016d0..4542e84f 100644 --- a/src/main/java/com/ruoyi/framework/manager/factory/AsyncFactory.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/manager/factory/AsyncFactory.java @@ -5,17 +5,17 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.ruoyi.common.constant.Constants; import com.ruoyi.common.utils.AddressUtils; -import com.ruoyi.common.utils.LogUtils; -import com.ruoyi.common.utils.ServletUtils; -import com.ruoyi.common.utils.security.ShiroUtils; -import com.ruoyi.common.utils.spring.SpringUtils; -import com.ruoyi.project.monitor.logininfor.domain.Logininfor; -import com.ruoyi.project.monitor.logininfor.service.LogininforServiceImpl; -import com.ruoyi.project.monitor.online.domain.OnlineSession; -import com.ruoyi.project.monitor.online.domain.UserOnline; -import com.ruoyi.project.monitor.online.service.IUserOnlineService; -import com.ruoyi.project.monitor.operlog.domain.OperLog; -import com.ruoyi.project.monitor.operlog.service.IOperLogService; +import com.ruoyi.framework.shiro.session.OnlineSession; +import com.ruoyi.framework.util.LogUtils; +import com.ruoyi.framework.util.ServletUtils; +import com.ruoyi.framework.util.ShiroUtils; +import com.ruoyi.framework.util.SpringUtils; +import com.ruoyi.system.domain.SysLogininfor; +import com.ruoyi.system.domain.SysOperLog; +import com.ruoyi.system.domain.SysUserOnline; +import com.ruoyi.system.service.ISysOperLogService; +import com.ruoyi.system.service.impl.SysLogininforServiceImpl; +import com.ruoyi.system.service.impl.SysUserOnlineServiceImpl; import eu.bitwalker.useragentutils.UserAgent; /** @@ -41,7 +41,7 @@ public class AsyncFactory @Override public void run() { - UserOnline online = new UserOnline(); + SysUserOnline online = new SysUserOnline(); online.setSessionId(String.valueOf(session.getId())); online.setDeptName(session.getDeptName()); online.setLoginName(session.getLoginName()); @@ -53,8 +53,7 @@ public class AsyncFactory online.setBrowser(session.getBrowser()); online.setOs(session.getOs()); online.setStatus(session.getStatus()); - online.setSession(session); - SpringUtils.getBean(IUserOnlineService.class).saveOnline(online); + SpringUtils.getBean(SysUserOnlineServiceImpl.class).saveOnline(online); } }; @@ -66,7 +65,7 @@ public class AsyncFactory * @param operLog 操作日志信息 * @return 任务task */ - public static TimerTask recordOper(final OperLog operLog) + public static TimerTask recordOper(final SysOperLog operLog) { return new TimerTask() { @@ -75,7 +74,7 @@ public class AsyncFactory { // 远程查询操作地点 operLog.setOperLocation(AddressUtils.getRealAddressByIP(operLog.getOperIp())); - SpringUtils.getBean(IOperLogService.class).insertOperlog(operLog); + SpringUtils.getBean(ISysOperLogService.class).insertOperlog(operLog); } }; } @@ -111,7 +110,7 @@ public class AsyncFactory // 获取客户端浏览器 String browser = userAgent.getBrowser().getName(); // 封装对象 - Logininfor logininfor = new Logininfor(); + SysLogininfor logininfor = new SysLogininfor(); logininfor.setLoginName(username); logininfor.setIpaddr(ip); logininfor.setLoginLocation(AddressUtils.getRealAddressByIP(ip)); @@ -128,7 +127,7 @@ public class AsyncFactory logininfor.setStatus(Constants.FAIL); } // 插入数据 - SpringUtils.getBean(LogininforServiceImpl.class).insertLogininfor(logininfor); + SpringUtils.getBean(SysLogininforServiceImpl.class).insertLogininfor(logininfor); } }; } diff --git a/src/main/java/com/ruoyi/framework/shiro/realm/UserRealm.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/shiro/realm/UserRealm.java similarity index 81% rename from src/main/java/com/ruoyi/framework/shiro/realm/UserRealm.java rename to ruoyi-framework/src/main/java/com/ruoyi/framework/shiro/realm/UserRealm.java index efdc663b..445158fb 100644 --- a/src/main/java/com/ruoyi/framework/shiro/realm/UserRealm.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/shiro/realm/UserRealm.java @@ -2,7 +2,6 @@ package com.ruoyi.framework.shiro.realm; import java.util.HashSet; import java.util.Set; - import org.apache.shiro.SecurityUtils; import org.apache.shiro.authc.AuthenticationException; import org.apache.shiro.authc.AuthenticationInfo; @@ -20,18 +19,17 @@ import org.apache.shiro.subject.PrincipalCollection; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; - -import com.ruoyi.common.exception.user.CaptchaException; -import com.ruoyi.common.exception.user.RoleBlockedException; -import com.ruoyi.common.exception.user.UserBlockedException; -import com.ruoyi.common.exception.user.UserNotExistsException; -import com.ruoyi.common.exception.user.UserPasswordNotMatchException; -import com.ruoyi.common.exception.user.UserPasswordRetryLimitExceedException; -import com.ruoyi.common.utils.security.ShiroUtils; import com.ruoyi.framework.shiro.service.LoginService; -import com.ruoyi.project.system.menu.service.IMenuService; -import com.ruoyi.project.system.role.service.IRoleService; -import com.ruoyi.project.system.user.domain.User; +import com.ruoyi.framework.util.ShiroUtils; +import com.ruoyi.framework.web.exception.user.CaptchaException; +import com.ruoyi.framework.web.exception.user.RoleBlockedException; +import com.ruoyi.framework.web.exception.user.UserBlockedException; +import com.ruoyi.framework.web.exception.user.UserNotExistsException; +import com.ruoyi.framework.web.exception.user.UserPasswordNotMatchException; +import com.ruoyi.framework.web.exception.user.UserPasswordRetryLimitExceedException; +import com.ruoyi.system.domain.SysUser; +import com.ruoyi.system.service.ISysMenuService; +import com.ruoyi.system.service.ISysRoleService; /** * 自定义Realm 处理登录 权限 @@ -43,10 +41,10 @@ public class UserRealm extends AuthorizingRealm private static final Logger log = LoggerFactory.getLogger(UserRealm.class); @Autowired - private IMenuService menuService; + private ISysMenuService menuService; @Autowired - private IRoleService roleService; + private ISysRoleService roleService; @Autowired private LoginService loginService; @@ -57,7 +55,7 @@ public class UserRealm extends AuthorizingRealm @Override protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection arg0) { - User user = ShiroUtils.getUser(); + SysUser user = ShiroUtils.getUser(); // 角色列表 Set roles = new HashSet(); // 功能列表 @@ -95,7 +93,7 @@ public class UserRealm extends AuthorizingRealm password = new String(upToken.getPassword()); } - User user = null; + SysUser user = null; try { user = loginService.login(username, password); diff --git a/src/main/java/com/ruoyi/framework/shiro/service/LoginService.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/shiro/service/LoginService.java similarity index 81% rename from src/main/java/com/ruoyi/framework/shiro/service/LoginService.java rename to ruoyi-framework/src/main/java/com/ruoyi/framework/shiro/service/LoginService.java index 7af45f9b..5b48a7de 100644 --- a/src/main/java/com/ruoyi/framework/shiro/service/LoginService.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/shiro/service/LoginService.java @@ -6,20 +6,20 @@ import org.springframework.util.StringUtils; import com.ruoyi.common.constant.Constants; import com.ruoyi.common.constant.ShiroConstants; import com.ruoyi.common.constant.UserConstants; -import com.ruoyi.common.exception.user.CaptchaException; -import com.ruoyi.common.exception.user.UserBlockedException; -import com.ruoyi.common.exception.user.UserDeleteException; -import com.ruoyi.common.exception.user.UserNotExistsException; -import com.ruoyi.common.exception.user.UserPasswordNotMatchException; +import com.ruoyi.common.enums.UserStatus; import com.ruoyi.common.utils.DateUtils; -import com.ruoyi.common.utils.MessageUtils; -import com.ruoyi.common.utils.ServletUtils; -import com.ruoyi.common.utils.security.ShiroUtils; import com.ruoyi.framework.manager.AsyncManager; import com.ruoyi.framework.manager.factory.AsyncFactory; -import com.ruoyi.project.system.user.domain.User; -import com.ruoyi.project.system.user.domain.UserStatus; -import com.ruoyi.project.system.user.service.IUserService; +import com.ruoyi.framework.util.MessageUtils; +import com.ruoyi.framework.util.ServletUtils; +import com.ruoyi.framework.util.ShiroUtils; +import com.ruoyi.framework.web.exception.user.CaptchaException; +import com.ruoyi.framework.web.exception.user.UserBlockedException; +import com.ruoyi.framework.web.exception.user.UserDeleteException; +import com.ruoyi.framework.web.exception.user.UserNotExistsException; +import com.ruoyi.framework.web.exception.user.UserPasswordNotMatchException; +import com.ruoyi.system.domain.SysUser; +import com.ruoyi.system.service.ISysUserService; /** * 登录校验方法 @@ -33,12 +33,12 @@ public class LoginService private PasswordService passwordService; @Autowired - private IUserService userService; + private ISysUserService userService; /** * 登录 */ - public User login(String username, String password) + public SysUser login(String username, String password) { // 验证码校验 if (!StringUtils.isEmpty(ServletUtils.getRequest().getAttribute(ShiroConstants.CURRENT_CAPTCHA))) @@ -69,7 +69,7 @@ public class LoginService } // 查询用户信息 - User user = userService.selectUserByLoginName(username); + SysUser user = userService.selectUserByLoginName(username); if (user == null && maybeMobilePhoneNumber(username)) { @@ -127,7 +127,7 @@ public class LoginService /** * 记录登录信息 */ - public void recordLoginInfo(User user) + public void recordLoginInfo(SysUser user) { user.setLoginIp(ShiroUtils.getIp()); user.setLoginDate(DateUtils.getNowDate()); diff --git a/src/main/java/com/ruoyi/framework/shiro/service/PasswordService.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/shiro/service/PasswordService.java similarity index 85% rename from src/main/java/com/ruoyi/framework/shiro/service/PasswordService.java rename to ruoyi-framework/src/main/java/com/ruoyi/framework/shiro/service/PasswordService.java index 3e18435e..9e065386 100644 --- a/src/main/java/com/ruoyi/framework/shiro/service/PasswordService.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/shiro/service/PasswordService.java @@ -9,12 +9,12 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; import com.ruoyi.common.constant.Constants; -import com.ruoyi.common.exception.user.UserPasswordNotMatchException; -import com.ruoyi.common.exception.user.UserPasswordRetryLimitExceedException; -import com.ruoyi.common.utils.MessageUtils; import com.ruoyi.framework.manager.AsyncManager; import com.ruoyi.framework.manager.factory.AsyncFactory; -import com.ruoyi.project.system.user.domain.User; +import com.ruoyi.framework.util.MessageUtils; +import com.ruoyi.framework.web.exception.user.UserPasswordNotMatchException; +import com.ruoyi.framework.web.exception.user.UserPasswordRetryLimitExceedException; +import com.ruoyi.system.domain.SysUser; /** * 登录密码方法 @@ -38,7 +38,7 @@ public class PasswordService loginRecordCache = cacheManager.getCache("loginRecordCache"); } - public void validate(User user, String password) + public void validate(SysUser user, String password) { String loginName = user.getLoginName(); @@ -67,7 +67,7 @@ public class PasswordService } } - public boolean matches(User user, String newPassword) + public boolean matches(SysUser user, String newPassword) { return user.getPassword().equals(encryptPassword(user.getLoginName(), newPassword, user.getSalt())); } diff --git a/src/main/java/com/ruoyi/project/monitor/online/domain/OnlineSession.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/shiro/session/OnlineSession.java similarity index 81% rename from src/main/java/com/ruoyi/project/monitor/online/domain/OnlineSession.java rename to ruoyi-framework/src/main/java/com/ruoyi/framework/shiro/session/OnlineSession.java index 6ebe279f..b840d371 100644 --- a/src/main/java/com/ruoyi/project/monitor/online/domain/OnlineSession.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/shiro/session/OnlineSession.java @@ -1,6 +1,7 @@ -package com.ruoyi.project.monitor.online.domain; +package com.ruoyi.framework.shiro.session; import org.apache.shiro.session.mgt.SimpleSession; +import com.ruoyi.common.enums.OnlineStatus; /** * 在线用户会话属性 @@ -133,21 +134,4 @@ public class OnlineSession extends SimpleSession { return super.removeAttribute(key); } - - public static enum OnlineStatus - { - /** 用户状态 */ - on_line("在线"), off_line("离线"); - private final String info; - - private OnlineStatus(String info) - { - this.info = info; - } - - public String getInfo() - { - return info; - } - } } diff --git a/src/main/java/com/ruoyi/framework/shiro/session/OnlineSessionDAO.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/shiro/session/OnlineSessionDAO.java similarity index 82% rename from src/main/java/com/ruoyi/framework/shiro/session/OnlineSessionDAO.java rename to ruoyi-framework/src/main/java/com/ruoyi/framework/shiro/session/OnlineSessionDAO.java index 181a7aed..d7d3039e 100644 --- a/src/main/java/com/ruoyi/framework/shiro/session/OnlineSessionDAO.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/shiro/session/OnlineSessionDAO.java @@ -6,11 +6,11 @@ import org.apache.shiro.session.Session; import org.apache.shiro.session.mgt.eis.EnterpriseCacheSessionDAO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; +import com.ruoyi.common.enums.OnlineStatus; import com.ruoyi.framework.manager.AsyncManager; import com.ruoyi.framework.manager.factory.AsyncFactory; -import com.ruoyi.project.monitor.online.domain.OnlineSession; -import com.ruoyi.project.monitor.online.domain.UserOnline; -import com.ruoyi.project.monitor.online.service.IUserOnlineService; +import com.ruoyi.system.domain.SysUserOnline; +import com.ruoyi.system.service.impl.SysUserOnlineServiceImpl; /** * 针对自定义的ShiroSession的db操作 @@ -31,10 +31,7 @@ public class OnlineSessionDAO extends EnterpriseCacheSessionDAO private static final String LAST_SYNC_DB_TIMESTAMP = OnlineSessionDAO.class.getName() + "LAST_SYNC_DB_TIMESTAMP"; @Autowired - private IUserOnlineService onlineService; - - @Autowired - private OnlineSessionFactory onlineSessionFactory; + private SysUserOnlineServiceImpl onlineService; public OnlineSessionDAO() { @@ -55,12 +52,12 @@ public class OnlineSessionDAO extends EnterpriseCacheSessionDAO @Override protected Session doReadSession(Serializable sessionId) { - UserOnline userOnline = onlineService.selectOnlineById(String.valueOf(sessionId)); + SysUserOnline userOnline = onlineService.selectOnlineById(String.valueOf(sessionId)); if (userOnline == null) { return null; } - return onlineSessionFactory.createSession(userOnline); + return super.doReadSession(sessionId); } /** @@ -111,7 +108,7 @@ public class OnlineSessionDAO extends EnterpriseCacheSessionDAO { return; } - onlineSession.setStatus(OnlineSession.OnlineStatus.off_line); + onlineSession.setStatus(OnlineStatus.off_line); onlineService.deleteOnlineById(String.valueOf(onlineSession.getId())); } } diff --git a/src/main/java/com/ruoyi/framework/shiro/session/OnlineSessionFactory.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/shiro/session/OnlineSessionFactory.java similarity index 72% rename from src/main/java/com/ruoyi/framework/shiro/session/OnlineSessionFactory.java rename to ruoyi-framework/src/main/java/com/ruoyi/framework/shiro/session/OnlineSessionFactory.java index ed97c82a..aed92470 100644 --- a/src/main/java/com/ruoyi/framework/shiro/session/OnlineSessionFactory.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/shiro/session/OnlineSessionFactory.java @@ -6,11 +6,8 @@ import org.apache.shiro.session.mgt.SessionContext; import org.apache.shiro.session.mgt.SessionFactory; import org.apache.shiro.web.session.mgt.WebSessionContext; import org.springframework.stereotype.Component; -import com.ruoyi.common.utils.ServletUtils; import com.ruoyi.common.utils.IpUtils; -import com.ruoyi.common.utils.StringUtils; -import com.ruoyi.project.monitor.online.domain.OnlineSession; -import com.ruoyi.project.monitor.online.domain.UserOnline; +import com.ruoyi.framework.util.ServletUtils; import eu.bitwalker.useragentutils.UserAgent; /** @@ -21,16 +18,6 @@ import eu.bitwalker.useragentutils.UserAgent; @Component public class OnlineSessionFactory implements SessionFactory { - public Session createSession(UserOnline userOnline) - { - OnlineSession onlineSession = userOnline.getSession(); - if (StringUtils.isNotNull(onlineSession) && onlineSession.getId() == null) - { - onlineSession.setId(userOnline.getSessionId()); - } - return userOnline.getSession(); - } - @Override public Session createSession(SessionContext initData) { diff --git a/src/main/java/com/ruoyi/framework/shiro/web/filter/LogoutFilter.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/shiro/web/filter/LogoutFilter.java similarity index 89% rename from src/main/java/com/ruoyi/framework/shiro/web/filter/LogoutFilter.java rename to ruoyi-framework/src/main/java/com/ruoyi/framework/shiro/web/filter/LogoutFilter.java index 187f3c84..58041857 100644 --- a/src/main/java/com/ruoyi/framework/shiro/web/filter/LogoutFilter.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/shiro/web/filter/LogoutFilter.java @@ -7,12 +7,12 @@ import org.apache.shiro.subject.Subject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.ruoyi.common.constant.Constants; -import com.ruoyi.common.utils.MessageUtils; import com.ruoyi.common.utils.StringUtils; -import com.ruoyi.common.utils.security.ShiroUtils; import com.ruoyi.framework.manager.AsyncManager; import com.ruoyi.framework.manager.factory.AsyncFactory; -import com.ruoyi.project.system.user.domain.User; +import com.ruoyi.framework.util.MessageUtils; +import com.ruoyi.framework.util.ShiroUtils; +import com.ruoyi.system.domain.SysUser; /** * 退出过滤器 @@ -47,7 +47,7 @@ public class LogoutFilter extends org.apache.shiro.web.filter.authc.LogoutFilter String redirectUrl = getRedirectUrl(request, response, subject); try { - User user = ShiroUtils.getUser(); + SysUser user = ShiroUtils.getUser(); if (StringUtils.isNotNull(user)) { String loginName = user.getLoginName(); diff --git a/src/main/java/com/ruoyi/framework/shiro/web/filter/captcha/CaptchaValidateFilter.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/shiro/web/filter/captcha/CaptchaValidateFilter.java similarity index 95% rename from src/main/java/com/ruoyi/framework/shiro/web/filter/captcha/CaptchaValidateFilter.java rename to ruoyi-framework/src/main/java/com/ruoyi/framework/shiro/web/filter/captcha/CaptchaValidateFilter.java index 3b4bdbf8..743d2793 100644 --- a/src/main/java/com/ruoyi/framework/shiro/web/filter/captcha/CaptchaValidateFilter.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/shiro/web/filter/captcha/CaptchaValidateFilter.java @@ -7,7 +7,7 @@ import org.apache.shiro.web.filter.AccessControlFilter; import com.google.code.kaptcha.Constants; import com.ruoyi.common.constant.ShiroConstants; import com.ruoyi.common.utils.StringUtils; -import com.ruoyi.common.utils.security.ShiroUtils; +import com.ruoyi.framework.util.ShiroUtils; /** * 验证码过滤器 diff --git a/src/main/java/com/ruoyi/framework/shiro/web/filter/online/OnlineSessionFilter.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/shiro/web/filter/online/OnlineSessionFilter.java similarity index 88% rename from src/main/java/com/ruoyi/framework/shiro/web/filter/online/OnlineSessionFilter.java rename to ruoyi-framework/src/main/java/com/ruoyi/framework/shiro/web/filter/online/OnlineSessionFilter.java index dc5a8f6d..e15f91ff 100644 --- a/src/main/java/com/ruoyi/framework/shiro/web/filter/online/OnlineSessionFilter.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/shiro/web/filter/online/OnlineSessionFilter.java @@ -10,10 +10,11 @@ import org.apache.shiro.web.util.WebUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import com.ruoyi.common.constant.ShiroConstants; -import com.ruoyi.common.utils.security.ShiroUtils; +import com.ruoyi.common.enums.OnlineStatus; +import com.ruoyi.framework.shiro.session.OnlineSession; import com.ruoyi.framework.shiro.session.OnlineSessionDAO; -import com.ruoyi.project.monitor.online.domain.OnlineSession; -import com.ruoyi.project.system.user.domain.User; +import com.ruoyi.framework.util.ShiroUtils; +import com.ruoyi.system.domain.SysUser; /** * 自定义访问控制 @@ -52,7 +53,7 @@ public class OnlineSessionFilter extends AccessControlFilter boolean isGuest = onlineSession.getUserId() == null || onlineSession.getUserId() == 0L; if (isGuest == true) { - User user = ShiroUtils.getUser(); + SysUser user = ShiroUtils.getUser(); if (user != null) { onlineSession.setUserId(user.getUserId()); @@ -62,7 +63,7 @@ public class OnlineSessionFilter extends AccessControlFilter } } - if (onlineSession.getStatus() == OnlineSession.OnlineStatus.off_line) + if (onlineSession.getStatus() == OnlineStatus.off_line) { return false; } diff --git a/src/main/java/com/ruoyi/framework/shiro/web/filter/sync/SyncOnlineSessionFilter.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/shiro/web/filter/sync/SyncOnlineSessionFilter.java similarity index 92% rename from src/main/java/com/ruoyi/framework/shiro/web/filter/sync/SyncOnlineSessionFilter.java rename to ruoyi-framework/src/main/java/com/ruoyi/framework/shiro/web/filter/sync/SyncOnlineSessionFilter.java index 05a74c84..0c117c1f 100644 --- a/src/main/java/com/ruoyi/framework/shiro/web/filter/sync/SyncOnlineSessionFilter.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/shiro/web/filter/sync/SyncOnlineSessionFilter.java @@ -5,8 +5,8 @@ import javax.servlet.ServletResponse; import org.apache.shiro.web.filter.PathMatchingFilter; import org.springframework.beans.factory.annotation.Autowired; import com.ruoyi.common.constant.ShiroConstants; +import com.ruoyi.framework.shiro.session.OnlineSession; import com.ruoyi.framework.shiro.session.OnlineSessionDAO; -import com.ruoyi.project.monitor.online.domain.OnlineSession; /** * 同步Session数据到Db diff --git a/src/main/java/com/ruoyi/framework/shiro/web/session/OnlineWebSessionManager.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/shiro/web/session/OnlineWebSessionManager.java similarity index 87% rename from src/main/java/com/ruoyi/framework/shiro/web/session/OnlineWebSessionManager.java rename to ruoyi-framework/src/main/java/com/ruoyi/framework/shiro/web/session/OnlineWebSessionManager.java index 72d9e576..c79d6ac5 100644 --- a/src/main/java/com/ruoyi/framework/shiro/web/session/OnlineWebSessionManager.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/shiro/web/session/OnlineWebSessionManager.java @@ -14,10 +14,10 @@ import org.apache.shiro.web.session.mgt.DefaultWebSessionManager; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.ruoyi.common.constant.ShiroConstants; -import com.ruoyi.common.utils.spring.SpringUtils; -import com.ruoyi.project.monitor.online.domain.OnlineSession; -import com.ruoyi.project.monitor.online.domain.UserOnline; -import com.ruoyi.project.monitor.online.service.UserOnlineServiceImpl; +import com.ruoyi.framework.shiro.session.OnlineSession; +import com.ruoyi.framework.util.SpringUtils; +import com.ruoyi.system.domain.SysUserOnline; +import com.ruoyi.system.service.impl.SysUserOnlineServiceImpl; /** * 主要是在此如果会话的属性修改了 就标识下其修改了 然后方便 OnlineSessionDao同步 @@ -90,11 +90,11 @@ public class OnlineWebSessionManager extends DefaultWebSessionManager int timeout = (int) this.getGlobalSessionTimeout(); Date expiredDate = DateUtils.addMilliseconds(new Date(), 0 - timeout); - UserOnlineServiceImpl userOnlineService = SpringUtils.getBean(UserOnlineServiceImpl.class); - List userOnlineList = userOnlineService.selectOnlineByExpired(expiredDate); + SysUserOnlineServiceImpl userOnlineService = SpringUtils.getBean(SysUserOnlineServiceImpl.class); + List userOnlineList = userOnlineService.selectOnlineByExpired(expiredDate); // 批量过期删除 List needOfflineIdList = new ArrayList(); - for (UserOnline userOnline : userOnlineList) + for (SysUserOnline userOnline : userOnlineList) { try { diff --git a/src/main/java/com/ruoyi/framework/shiro/web/session/SpringSessionValidationScheduler.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/shiro/web/session/SpringSessionValidationScheduler.java similarity index 100% rename from src/main/java/com/ruoyi/framework/shiro/web/session/SpringSessionValidationScheduler.java rename to ruoyi-framework/src/main/java/com/ruoyi/framework/shiro/web/session/SpringSessionValidationScheduler.java diff --git a/src/main/java/com/ruoyi/common/utils/file/FileUploadUtils.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/util/FileUploadUtils.java similarity index 90% rename from src/main/java/com/ruoyi/common/utils/file/FileUploadUtils.java rename to ruoyi-framework/src/main/java/com/ruoyi/framework/util/FileUploadUtils.java index 96fd3ee1..6c1927f0 100644 --- a/src/main/java/com/ruoyi/common/utils/file/FileUploadUtils.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/util/FileUploadUtils.java @@ -1,12 +1,12 @@ -package com.ruoyi.common.utils.file; +package com.ruoyi.framework.util; import java.io.File; import java.io.IOException; -import org.apache.shiro.crypto.hash.Md5Hash; import org.apache.tomcat.util.http.fileupload.FileUploadBase.FileSizeLimitExceededException; import org.springframework.web.multipart.MultipartFile; +import com.ruoyi.common.config.Global; import com.ruoyi.common.exception.file.FileNameLengthLimitExceededException; -import com.ruoyi.framework.config.RuoYiConfig; +import com.ruoyi.common.utils.Md5Utils; /** * 文件上传工具类 @@ -23,7 +23,7 @@ public class FileUploadUtils /** * 默认上传的地址 */ - private static String defaultBaseDir = RuoYiConfig.getProfile(); + private static String defaultBaseDir = Global.getProfile(); /** * 默认的文件名最大长度 @@ -139,7 +139,7 @@ public class FileUploadUtils private static final String encodingFilename(String filename, String extension) { filename = filename.replace("_", " "); - filename = new Md5Hash(filename + System.nanoTime() + counter++).toHex().toString() + extension; + filename = Md5Utils.hash(filename + System.nanoTime() + counter++) + extension; return filename; } diff --git a/src/main/java/com/ruoyi/common/utils/LogUtils.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/util/LogUtils.java similarity index 90% rename from src/main/java/com/ruoyi/common/utils/LogUtils.java rename to ruoyi-framework/src/main/java/com/ruoyi/framework/util/LogUtils.java index 3648ee3b..96a38eb5 100644 --- a/src/main/java/com/ruoyi/common/utils/LogUtils.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/util/LogUtils.java @@ -1,13 +1,14 @@ -package com.ruoyi.common.utils; +package com.ruoyi.framework.util; -import com.alibaba.fastjson.JSON; -import org.apache.shiro.SecurityUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import javax.servlet.http.HttpServletRequest; import java.io.PrintWriter; import java.io.StringWriter; import java.util.Map; +import javax.servlet.http.HttpServletRequest; +import org.apache.shiro.SecurityUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import com.ruoyi.common.json.JSON; +import com.ruoyi.common.utils.IpUtils; /** * 处理并记录日志文件 @@ -23,8 +24,9 @@ public class LogUtils * 记录访问日志 [username][jsessionid][ip][accept][UserAgent][url][params][Referer] * * @param request + * @throws Exception */ - public static void logAccess(HttpServletRequest request) + public static void logAccess(HttpServletRequest request) throws Exception { String username = getUsername(); String jsessionId = request.getRequestedSessionId(); @@ -111,10 +113,10 @@ public class LogUtils return "[" + msg.toString() + "]"; } - protected static String getParams(HttpServletRequest request) + protected static String getParams(HttpServletRequest request) throws Exception { Map params = request.getParameterMap(); - return JSON.toJSONString(params); + return JSON.marshal(params); } protected static String getUsername() diff --git a/src/main/java/com/ruoyi/common/utils/MessageUtils.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/util/MessageUtils.java similarity index 82% rename from src/main/java/com/ruoyi/common/utils/MessageUtils.java rename to ruoyi-framework/src/main/java/com/ruoyi/framework/util/MessageUtils.java index 879421ba..b787e1bd 100644 --- a/src/main/java/com/ruoyi/common/utils/MessageUtils.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/util/MessageUtils.java @@ -1,7 +1,6 @@ -package com.ruoyi.common.utils; +package com.ruoyi.framework.util; import org.springframework.context.MessageSource; -import com.ruoyi.common.utils.spring.SpringUtils; /** * 获取i18n资源文件 diff --git a/src/main/java/com/ruoyi/common/utils/security/PermissionUtils.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/util/PermissionUtils.java similarity index 85% rename from src/main/java/com/ruoyi/common/utils/security/PermissionUtils.java rename to ruoyi-framework/src/main/java/com/ruoyi/framework/util/PermissionUtils.java index 823217ab..ddf222b2 100644 --- a/src/main/java/com/ruoyi/common/utils/security/PermissionUtils.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/util/PermissionUtils.java @@ -1,46 +1,46 @@ -package com.ruoyi.common.utils.security; - -import org.apache.commons.lang3.StringUtils; -import com.ruoyi.common.constant.PermissionConstants; -import com.ruoyi.common.utils.MessageUtils; - -/** - * permission 工具类 - * - * @author ruoyi - */ -public class PermissionUtils -{ - /** - * 权限错误消息提醒 - * - * @param errorMsg 错误信息 - * @return - */ - public static String getMsg(String permissionsStr) - { - String permission = StringUtils.substringBetween(permissionsStr, "[", "]"); - String msg = MessageUtils.message("no.view.permission", permission); - if (StringUtils.endsWithIgnoreCase(permission, PermissionConstants.ADD_PERMISSION)) - { - msg = MessageUtils.message("no.create.permission", permission); - } - else if (StringUtils.endsWithIgnoreCase(permission, PermissionConstants.EDIT_PERMISSION)) - { - msg = MessageUtils.message("no.update.permission", permission); - } - else if (StringUtils.endsWithIgnoreCase(permission, PermissionConstants.REMOVE_PERMISSION)) - { - msg = MessageUtils.message("no.delete.permission", permission); - } - else if (StringUtils.endsWithIgnoreCase(permission, PermissionConstants.EXPORT_PERMISSION)) - { - msg = MessageUtils.message("no.export.permission", permission); - } - else if (StringUtils.endsWithAny(permission, new String[] { PermissionConstants.VIEW_PERMISSION, PermissionConstants.LIST_PERMISSION })) - { - msg = MessageUtils.message("no.view.permission", permission); - } - return msg; - } -} +package com.ruoyi.framework.util; + +import org.apache.commons.lang3.StringUtils; +import com.ruoyi.common.constant.PermissionConstants; + +/** + * permission 工具类 + * + * @author ruoyi + */ +public class PermissionUtils +{ + /** + * 权限错误消息提醒 + * + * @param errorMsg 错误信息 + * @return + */ + public static String getMsg(String permissionsStr) + { + String permission = StringUtils.substringBetween(permissionsStr, "[", "]"); + String msg = MessageUtils.message("no.view.permission", permission); + if (StringUtils.endsWithIgnoreCase(permission, PermissionConstants.ADD_PERMISSION)) + { + msg = MessageUtils.message("no.create.permission", permission); + } + else if (StringUtils.endsWithIgnoreCase(permission, PermissionConstants.EDIT_PERMISSION)) + { + msg = MessageUtils.message("no.update.permission", permission); + } + else if (StringUtils.endsWithIgnoreCase(permission, PermissionConstants.REMOVE_PERMISSION)) + { + msg = MessageUtils.message("no.delete.permission", permission); + } + else if (StringUtils.endsWithIgnoreCase(permission, PermissionConstants.EXPORT_PERMISSION)) + { + msg = MessageUtils.message("no.export.permission", permission); + } + else if (StringUtils.endsWithAny(permission, + new String[] { PermissionConstants.VIEW_PERMISSION, PermissionConstants.LIST_PERMISSION })) + { + msg = MessageUtils.message("no.view.permission", permission); + } + return msg; + } +} diff --git a/src/main/java/com/ruoyi/common/utils/ServletUtils.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/util/ServletUtils.java similarity index 93% rename from src/main/java/com/ruoyi/common/utils/ServletUtils.java rename to ruoyi-framework/src/main/java/com/ruoyi/framework/util/ServletUtils.java index f4b96af4..4f56a6fd 100644 --- a/src/main/java/com/ruoyi/common/utils/ServletUtils.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/util/ServletUtils.java @@ -1,4 +1,4 @@ -package com.ruoyi.common.utils; +package com.ruoyi.framework.util; import java.io.IOException; import javax.servlet.http.HttpServletRequest; @@ -8,6 +8,7 @@ import org.springframework.web.context.request.RequestAttributes; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; import com.ruoyi.common.support.Convert; +import com.ruoyi.common.utils.StringUtils; /** * 客户端工具类 diff --git a/src/main/java/com/ruoyi/common/utils/security/ShiroUtils.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/util/ShiroUtils.java similarity index 74% rename from src/main/java/com/ruoyi/common/utils/security/ShiroUtils.java rename to ruoyi-framework/src/main/java/com/ruoyi/framework/util/ShiroUtils.java index 74a0a99d..fd069586 100644 --- a/src/main/java/com/ruoyi/common/utils/security/ShiroUtils.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/util/ShiroUtils.java @@ -1,6 +1,7 @@ -package com.ruoyi.common.utils.security; +package com.ruoyi.framework.util; import org.apache.shiro.SecurityUtils; +import org.apache.shiro.crypto.SecureRandomNumberGenerator; import org.apache.shiro.mgt.RealmSecurityManager; import org.apache.shiro.session.Session; import org.apache.shiro.subject.PrincipalCollection; @@ -9,7 +10,7 @@ import org.apache.shiro.subject.Subject; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.bean.BeanUtils; import com.ruoyi.framework.shiro.realm.UserRealm; -import com.ruoyi.project.system.user.domain.User; +import com.ruoyi.system.domain.SysUser; /** * shiro 工具类 @@ -33,19 +34,19 @@ public class ShiroUtils getSubjct().logout(); } - public static User getUser() + public static SysUser getUser() { - User user = null; + SysUser user = null; Object obj = getSubjct().getPrincipal(); if (StringUtils.isNotNull(obj)) { - user = new User(); + user = new SysUser(); BeanUtils.copyBeanProp(user, obj); } return user; } - public static void setUser(User user) + public static void setUser(SysUser user) { Subject subject = getSubjct(); PrincipalCollection principalCollection = subject.getPrincipals(); @@ -81,4 +82,15 @@ public class ShiroUtils { return String.valueOf(getSubjct().getSession().getId()); } + + /** + * 生成随机盐 + */ + public static String randomSalt() + { + // 一个Byte占两个字节,此处生成的3字节,字符串长度为6 + SecureRandomNumberGenerator secureRandom = new SecureRandomNumberGenerator(); + String hex = secureRandom.nextBytes(3).toHex(); + return hex; + } } diff --git a/src/main/java/com/ruoyi/common/utils/spring/SpringUtils.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/util/SpringUtils.java similarity index 95% rename from src/main/java/com/ruoyi/common/utils/spring/SpringUtils.java rename to ruoyi-framework/src/main/java/com/ruoyi/framework/util/SpringUtils.java index daf253ec..99b0f05b 100644 --- a/src/main/java/com/ruoyi/common/utils/spring/SpringUtils.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/util/SpringUtils.java @@ -1,4 +1,4 @@ -package com.ruoyi.common.utils.spring; +package com.ruoyi.framework.util; import org.springframework.beans.BeansException; import org.springframework.beans.factory.NoSuchBeanDefinitionException; diff --git a/src/main/java/com/ruoyi/framework/web/exception/DefaultExceptionHandler.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/DefaultExceptionHandler.java similarity index 91% rename from src/main/java/com/ruoyi/framework/web/exception/DefaultExceptionHandler.java rename to ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/DefaultExceptionHandler.java index e0ee48a7..2dadddf2 100644 --- a/src/main/java/com/ruoyi/framework/web/exception/DefaultExceptionHandler.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/DefaultExceptionHandler.java @@ -6,9 +6,9 @@ import org.slf4j.LoggerFactory; import org.springframework.web.HttpRequestMethodNotSupportedException; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.RestControllerAdvice; +import com.ruoyi.common.base.AjaxResult; import com.ruoyi.common.exception.DemoModeException; -import com.ruoyi.common.utils.security.PermissionUtils; -import com.ruoyi.framework.web.domain.AjaxResult; +import com.ruoyi.framework.util.PermissionUtils; /** * 自定义异常处理器 @@ -68,5 +68,4 @@ public class DefaultExceptionHandler { return AjaxResult.error("演示模式,不允许操作"); } - } diff --git a/src/main/java/com/ruoyi/common/exception/base/BaseException.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/base/BaseException.java similarity index 81% rename from src/main/java/com/ruoyi/common/exception/base/BaseException.java rename to ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/base/BaseException.java index 452a54be..a1e33f6f 100644 --- a/src/main/java/com/ruoyi/common/exception/base/BaseException.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/base/BaseException.java @@ -1,7 +1,7 @@ -package com.ruoyi.common.exception.base; +package com.ruoyi.framework.web.exception.base; -import org.springframework.util.StringUtils; -import com.ruoyi.common.utils.MessageUtils; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.framework.util.MessageUtils; /** * 基础异常 @@ -94,10 +94,4 @@ public class BaseException extends RuntimeException { return defaultMessage; } - - @Override - public String toString() - { - return this.getClass() + "{" + "module='" + module + '\'' + ", message='" + getMessage() + '\'' + '}'; - } } diff --git a/src/main/java/com/ruoyi/common/exception/user/CaptchaException.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/user/CaptchaException.java similarity index 79% rename from src/main/java/com/ruoyi/common/exception/user/CaptchaException.java rename to ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/user/CaptchaException.java index e3334ae3..dcd4e523 100644 --- a/src/main/java/com/ruoyi/common/exception/user/CaptchaException.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/user/CaptchaException.java @@ -1,4 +1,4 @@ -package com.ruoyi.common.exception.user; +package com.ruoyi.framework.web.exception.user; /** * 验证码错误异常类 diff --git a/src/main/java/com/ruoyi/common/exception/user/RoleBlockedException.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/user/RoleBlockedException.java similarity index 81% rename from src/main/java/com/ruoyi/common/exception/user/RoleBlockedException.java rename to ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/user/RoleBlockedException.java index f892957c..23f57140 100644 --- a/src/main/java/com/ruoyi/common/exception/user/RoleBlockedException.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/user/RoleBlockedException.java @@ -1,4 +1,4 @@ -package com.ruoyi.common.exception.user; +package com.ruoyi.framework.web.exception.user; /** * 角色锁定异常类 @@ -13,5 +13,4 @@ public class RoleBlockedException extends UserException { super("role.blocked", new Object[] { reason }); } - } diff --git a/src/main/java/com/ruoyi/common/exception/user/UserBlockedException.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/user/UserBlockedException.java similarity index 81% rename from src/main/java/com/ruoyi/common/exception/user/UserBlockedException.java rename to ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/user/UserBlockedException.java index 20a4c267..85539899 100644 --- a/src/main/java/com/ruoyi/common/exception/user/UserBlockedException.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/user/UserBlockedException.java @@ -1,4 +1,4 @@ -package com.ruoyi.common.exception.user; +package com.ruoyi.framework.web.exception.user; /** * 用户锁定异常类 diff --git a/src/main/java/com/ruoyi/common/exception/user/UserDeleteException.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/user/UserDeleteException.java similarity index 80% rename from src/main/java/com/ruoyi/common/exception/user/UserDeleteException.java rename to ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/user/UserDeleteException.java index cf072422..c1839375 100644 --- a/src/main/java/com/ruoyi/common/exception/user/UserDeleteException.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/user/UserDeleteException.java @@ -1,4 +1,4 @@ -package com.ruoyi.common.exception.user; +package com.ruoyi.framework.web.exception.user; /** * 用户账号已被删除 diff --git a/src/main/java/com/ruoyi/common/exception/user/UserException.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/user/UserException.java similarity index 67% rename from src/main/java/com/ruoyi/common/exception/user/UserException.java rename to ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/user/UserException.java index bdfec80e..a1f4fada 100644 --- a/src/main/java/com/ruoyi/common/exception/user/UserException.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/user/UserException.java @@ -1,6 +1,6 @@ -package com.ruoyi.common.exception.user; +package com.ruoyi.framework.web.exception.user; -import com.ruoyi.common.exception.base.BaseException; +import com.ruoyi.framework.web.exception.base.BaseException; /** * 用户信息异常类 @@ -15,5 +15,4 @@ public class UserException extends BaseException { super("user", code, args, null); } - } diff --git a/src/main/java/com/ruoyi/common/exception/user/UserNotExistsException.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/user/UserNotExistsException.java similarity index 80% rename from src/main/java/com/ruoyi/common/exception/user/UserNotExistsException.java rename to ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/user/UserNotExistsException.java index ed4bea3a..8e9e7511 100644 --- a/src/main/java/com/ruoyi/common/exception/user/UserNotExistsException.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/user/UserNotExistsException.java @@ -1,4 +1,4 @@ -package com.ruoyi.common.exception.user; +package com.ruoyi.framework.web.exception.user; /** * 用户不存在异常类 diff --git a/src/main/java/com/ruoyi/common/exception/user/UserPasswordNotMatchException.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/user/UserPasswordNotMatchException.java similarity index 82% rename from src/main/java/com/ruoyi/common/exception/user/UserPasswordNotMatchException.java rename to ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/user/UserPasswordNotMatchException.java index 71449e29..11f1df73 100644 --- a/src/main/java/com/ruoyi/common/exception/user/UserPasswordNotMatchException.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/user/UserPasswordNotMatchException.java @@ -1,4 +1,4 @@ -package com.ruoyi.common.exception.user; +package com.ruoyi.framework.web.exception.user; /** * 用户密码不正确或不符合规范异常类 diff --git a/src/main/java/com/ruoyi/common/exception/user/UserPasswordRetryLimitCountException.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/user/UserPasswordRetryLimitCountException.java similarity index 84% rename from src/main/java/com/ruoyi/common/exception/user/UserPasswordRetryLimitCountException.java rename to ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/user/UserPasswordRetryLimitCountException.java index 4222135f..65c95cf1 100644 --- a/src/main/java/com/ruoyi/common/exception/user/UserPasswordRetryLimitCountException.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/user/UserPasswordRetryLimitCountException.java @@ -1,4 +1,4 @@ -package com.ruoyi.common.exception.user; +package com.ruoyi.framework.web.exception.user; /** * 用户错误记数异常类 diff --git a/src/main/java/com/ruoyi/common/exception/user/UserPasswordRetryLimitExceedException.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/user/UserPasswordRetryLimitExceedException.java similarity index 85% rename from src/main/java/com/ruoyi/common/exception/user/UserPasswordRetryLimitExceedException.java rename to ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/user/UserPasswordRetryLimitExceedException.java index b48c4065..ad0ecf32 100644 --- a/src/main/java/com/ruoyi/common/exception/user/UserPasswordRetryLimitExceedException.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/user/UserPasswordRetryLimitExceedException.java @@ -1,4 +1,4 @@ -package com.ruoyi.common.exception.user; +package com.ruoyi.framework.web.exception.user; /** * 用户错误最大次数异常类 diff --git a/src/main/java/com/ruoyi/framework/web/page/PageDomain.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/page/PageDomain.java similarity index 94% rename from src/main/java/com/ruoyi/framework/web/page/PageDomain.java rename to ruoyi-framework/src/main/java/com/ruoyi/framework/web/page/PageDomain.java index 3ea659b5..bf342a32 100644 --- a/src/main/java/com/ruoyi/framework/web/page/PageDomain.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/page/PageDomain.java @@ -11,11 +11,14 @@ public class PageDomain { /** 当前记录起始索引 */ private Integer pageNum; + /** 每页显示记录数 */ private Integer pageSize; + /** 排序列 */ private String orderByColumn; /** 排序的方向 "desc" 或者 "asc". */ + private String isAsc; public String getOrderBy() @@ -66,5 +69,4 @@ public class PageDomain { this.isAsc = isAsc; } - } diff --git a/src/main/java/com/ruoyi/framework/web/page/TableDataInfo.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/page/TableDataInfo.java similarity index 100% rename from src/main/java/com/ruoyi/framework/web/page/TableDataInfo.java rename to ruoyi-framework/src/main/java/com/ruoyi/framework/web/page/TableDataInfo.java diff --git a/src/main/java/com/ruoyi/framework/web/page/TableSupport.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/page/TableSupport.java similarity index 90% rename from src/main/java/com/ruoyi/framework/web/page/TableSupport.java rename to ruoyi-framework/src/main/java/com/ruoyi/framework/web/page/TableSupport.java index b7530a31..375ccdbb 100644 --- a/src/main/java/com/ruoyi/framework/web/page/TableSupport.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/page/TableSupport.java @@ -1,7 +1,7 @@ package com.ruoyi.framework.web.page; -import com.ruoyi.common.utils.ServletUtils; import com.ruoyi.common.constant.Constants; +import com.ruoyi.framework.util.ServletUtils; /** * 表格数据处理 @@ -27,5 +27,4 @@ public class TableSupport { return getPageDomain(); } - } diff --git a/src/main/java/com/ruoyi/framework/web/service/ConfigService.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/ConfigService.java similarity index 80% rename from src/main/java/com/ruoyi/framework/web/service/ConfigService.java rename to ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/ConfigService.java index 2b69ee0d..5ee1b3d8 100644 --- a/src/main/java/com/ruoyi/framework/web/service/ConfigService.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/ConfigService.java @@ -2,7 +2,7 @@ package com.ruoyi.framework.web.service; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import com.ruoyi.project.system.config.service.IConfigService; +import com.ruoyi.system.service.ISysConfigService; /** * RuoYi首创 html调用 thymeleaf 实现参数管理 @@ -13,7 +13,7 @@ import com.ruoyi.project.system.config.service.IConfigService; public class ConfigService { @Autowired - private IConfigService configService; + private ISysConfigService configService; /** * 根据键名查询参数配置信息 @@ -25,5 +25,4 @@ public class ConfigService { return configService.selectConfigByKey(configKey); } - } diff --git a/src/main/java/com/ruoyi/framework/web/service/DictService.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/DictService.java similarity index 77% rename from src/main/java/com/ruoyi/framework/web/service/DictService.java rename to ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/DictService.java index c917fc73..64e7c8a0 100644 --- a/src/main/java/com/ruoyi/framework/web/service/DictService.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/DictService.java @@ -3,8 +3,8 @@ package com.ruoyi.framework.web.service; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import com.ruoyi.project.system.dict.domain.DictData; -import com.ruoyi.project.system.dict.service.IDictDataService; +import com.ruoyi.system.domain.SysDictData; +import com.ruoyi.system.service.ISysDictDataService; /** * RuoYi首创 html调用 thymeleaf 实现字典读取 @@ -15,7 +15,7 @@ import com.ruoyi.project.system.dict.service.IDictDataService; public class DictService { @Autowired - private IDictDataService dictDataService; + private ISysDictDataService dictDataService; /** * 根据字典类型查询字典数据信息 @@ -23,7 +23,7 @@ public class DictService * @param dictType 字典类型 * @return 参数键值 */ - public List getType(String dictType) + public List getType(String dictType) { return dictDataService.selectDictDataByType(dictType); } diff --git a/src/main/java/com/ruoyi/framework/web/service/PermissionService.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/PermissionService.java similarity index 95% rename from src/main/java/com/ruoyi/framework/web/service/PermissionService.java rename to ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/PermissionService.java index babc40a9..da0a352d 100644 --- a/src/main/java/com/ruoyi/framework/web/service/PermissionService.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/PermissionService.java @@ -20,5 +20,4 @@ public class PermissionService { return SecurityUtils.getSubject().isPermitted(permission); } - } diff --git a/ruoyi-generator/pom.xml b/ruoyi-generator/pom.xml new file mode 100644 index 00000000..7c9b25f6 --- /dev/null +++ b/ruoyi-generator/pom.xml @@ -0,0 +1,46 @@ + + + + ruoyi + com.ruoyi + 3.0 + + 4.0.0 + + ruoyi-generator + + + generator代码生成 + + + + 1.7 + + + + + + + org.springframework + spring-context-support + + + + + org.apache.velocity + velocity + ${velocity.version} + + + + + com.ruoyi + ruoyi-common + ${ruoyi.version} + + + + + \ No newline at end of file diff --git a/src/main/java/com/ruoyi/project/tool/gen/domain/ColumnInfo.java b/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/ColumnInfo.java similarity index 92% rename from src/main/java/com/ruoyi/project/tool/gen/domain/ColumnInfo.java rename to ruoyi-generator/src/main/java/com/ruoyi/generator/domain/ColumnInfo.java index 9537360f..4108af6c 100644 --- a/src/main/java/com/ruoyi/project/tool/gen/domain/ColumnInfo.java +++ b/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/ColumnInfo.java @@ -1,4 +1,4 @@ -package com.ruoyi.project.tool.gen.domain; +package com.ruoyi.generator.domain; /** * ry数据库表列信息 diff --git a/src/main/java/com/ruoyi/project/tool/gen/domain/TableInfo.java b/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/TableInfo.java similarity index 79% rename from src/main/java/com/ruoyi/project/tool/gen/domain/TableInfo.java rename to ruoyi-generator/src/main/java/com/ruoyi/generator/domain/TableInfo.java index aa5c9dab..ee8acc0c 100644 --- a/src/main/java/com/ruoyi/project/tool/gen/domain/TableInfo.java +++ b/ruoyi-generator/src/main/java/com/ruoyi/generator/domain/TableInfo.java @@ -1,8 +1,8 @@ -package com.ruoyi.project.tool.gen.domain; +package com.ruoyi.generator.domain; import java.util.List; +import com.ruoyi.common.base.BaseEntity; import com.ruoyi.common.utils.StringUtils; -import com.ruoyi.framework.web.domain.BaseEntity; /** * ry 数据库表 @@ -12,7 +12,7 @@ import com.ruoyi.framework.web.domain.BaseEntity; public class TableInfo extends BaseEntity { private static final long serialVersionUID = 1L; - + /** 表名称 */ private String tableName; @@ -100,11 +100,4 @@ public class TableInfo extends BaseEntity { this.primaryKey = primaryKey; } - - @Override - public String toString() - { - return "TableInfo [tableName=" + tableName + ", tableComment=" + tableComment + ", primaryKey=" + primaryKey - + ", columns=" + columns + ", className=" + className + ", classname=" + classname + "]"; - } } diff --git a/src/main/java/com/ruoyi/project/tool/gen/mapper/GenMapper.java b/ruoyi-generator/src/main/java/com/ruoyi/generator/mapper/GenMapper.java similarity index 78% rename from src/main/java/com/ruoyi/project/tool/gen/mapper/GenMapper.java rename to ruoyi-generator/src/main/java/com/ruoyi/generator/mapper/GenMapper.java index 9fc4fea4..a516128a 100644 --- a/src/main/java/com/ruoyi/project/tool/gen/mapper/GenMapper.java +++ b/ruoyi-generator/src/main/java/com/ruoyi/generator/mapper/GenMapper.java @@ -1,8 +1,8 @@ -package com.ruoyi.project.tool.gen.mapper; +package com.ruoyi.generator.mapper; import java.util.List; -import com.ruoyi.project.tool.gen.domain.ColumnInfo; -import com.ruoyi.project.tool.gen.domain.TableInfo; +import com.ruoyi.generator.domain.ColumnInfo; +import com.ruoyi.generator.domain.TableInfo; /** * 代码生成 数据层 diff --git a/src/main/java/com/ruoyi/project/tool/gen/service/IGenService.java b/ruoyi-generator/src/main/java/com/ruoyi/generator/service/IGenService.java similarity index 81% rename from src/main/java/com/ruoyi/project/tool/gen/service/IGenService.java rename to ruoyi-generator/src/main/java/com/ruoyi/generator/service/IGenService.java index 53bed04f..1dbf12af 100644 --- a/src/main/java/com/ruoyi/project/tool/gen/service/IGenService.java +++ b/ruoyi-generator/src/main/java/com/ruoyi/generator/service/IGenService.java @@ -1,7 +1,7 @@ -package com.ruoyi.project.tool.gen.service; +package com.ruoyi.generator.service; import java.util.List; -import com.ruoyi.project.tool.gen.domain.TableInfo; +import com.ruoyi.generator.domain.TableInfo; /** * 代码生成 服务层 @@ -25,7 +25,7 @@ public interface IGenService * @return 数据 */ public byte[] generatorCode(String tableName); - + /** * 批量生成代码 * diff --git a/src/main/java/com/ruoyi/project/tool/gen/service/GenServiceImpl.java b/ruoyi-generator/src/main/java/com/ruoyi/generator/service/impl/GenServiceImpl.java similarity index 83% rename from src/main/java/com/ruoyi/project/tool/gen/service/GenServiceImpl.java rename to ruoyi-generator/src/main/java/com/ruoyi/generator/service/impl/GenServiceImpl.java index 545eeaf4..682921b6 100644 --- a/src/main/java/com/ruoyi/project/tool/gen/service/GenServiceImpl.java +++ b/ruoyi-generator/src/main/java/com/ruoyi/generator/service/impl/GenServiceImpl.java @@ -1,4 +1,4 @@ -package com.ruoyi.project.tool.gen.service; +package com.ruoyi.generator.service.impl; import java.io.ByteArrayOutputStream; import java.io.IOException; @@ -10,17 +10,19 @@ import org.apache.commons.io.IOUtils; import org.apache.velocity.Template; import org.apache.velocity.VelocityContext; import org.apache.velocity.app.Velocity; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import com.ruoyi.common.config.Global; import com.ruoyi.common.constant.Constants; -import com.ruoyi.common.exception.base.BaseException; import com.ruoyi.common.utils.StringUtils; -import com.ruoyi.framework.config.GenConfig; -import com.ruoyi.project.tool.gen.domain.ColumnInfo; -import com.ruoyi.project.tool.gen.domain.TableInfo; -import com.ruoyi.project.tool.gen.mapper.GenMapper; -import com.ruoyi.project.tool.gen.util.GenUtils; -import com.ruoyi.project.tool.gen.util.VelocityInitializer; +import com.ruoyi.generator.domain.ColumnInfo; +import com.ruoyi.generator.domain.TableInfo; +import com.ruoyi.generator.mapper.GenMapper; +import com.ruoyi.generator.service.IGenService; +import com.ruoyi.generator.util.GenUtils; +import com.ruoyi.generator.util.VelocityInitializer; /** * 代码生成 服务层处理 @@ -30,6 +32,8 @@ import com.ruoyi.project.tool.gen.util.VelocityInitializer; @Service public class GenServiceImpl implements IGenService { + private static final Logger log = LoggerFactory.getLogger(GenServiceImpl.class); + @Autowired private GenMapper genMapper; @@ -106,7 +110,7 @@ public class GenServiceImpl implements IGenService VelocityInitializer.initVelocity(); - String packageName = GenConfig.getPackageName(); + String packageName = Global.getPackageName(); String moduleName = GenUtils.getModuleName(packageName); VelocityContext context = GenUtils.getVelocityContext(table); @@ -129,7 +133,7 @@ public class GenServiceImpl implements IGenService } catch (IOException e) { - throw new BaseException("渲染模板失败,表名:" + table.getTableName(), e.getMessage()); + log.error("渲染模板失败,表名:" + table.getTableName(), e); } } } diff --git a/src/main/java/com/ruoyi/project/tool/gen/util/GenUtils.java b/ruoyi-generator/src/main/java/com/ruoyi/generator/util/GenUtils.java similarity index 76% rename from src/main/java/com/ruoyi/project/tool/gen/util/GenUtils.java rename to ruoyi-generator/src/main/java/com/ruoyi/generator/util/GenUtils.java index 1a62cf2e..40979af6 100644 --- a/src/main/java/com/ruoyi/project/tool/gen/util/GenUtils.java +++ b/ruoyi-generator/src/main/java/com/ruoyi/generator/util/GenUtils.java @@ -1,15 +1,16 @@ -package com.ruoyi.project.tool.gen.util; +package com.ruoyi.generator.util; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; import org.apache.velocity.VelocityContext; +import com.ruoyi.common.config.Global; import com.ruoyi.common.constant.Constants; -import com.ruoyi.common.constant.CommonMap; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.StringUtils; -import com.ruoyi.framework.config.GenConfig; -import com.ruoyi.project.tool.gen.domain.ColumnInfo; -import com.ruoyi.project.tool.gen.domain.TableInfo; +import com.ruoyi.generator.domain.ColumnInfo; +import com.ruoyi.generator.domain.TableInfo; /** * 代码生成器 工具类 @@ -27,6 +28,9 @@ public class GenUtils /** html空间路径 */ private static final String TEMPLATES_PATH = "main/resources/templates"; + /** 类型转换 */ + public static Map javaTypeMap = new HashMap(); + /** * 设置列信息 */ @@ -42,7 +46,7 @@ public class GenUtils column.setAttrname(StringUtils.uncapitalize(attrName)); // 列的数据类型,转换成Java类型 - String attrType = CommonMap.javaTypeMap.get(column.getDataType()); + String attrType = javaTypeMap.get(column.getDataType()); column.setAttrType(attrType); columsList.add(column); @@ -59,7 +63,7 @@ public class GenUtils { // java对象数据传递到模板文件vm VelocityContext velocityContext = new VelocityContext(); - String packageName = GenConfig.getPackageName(); + String packageName = Global.getPackageName(); velocityContext.put("tableName", table.getTableName()); velocityContext.put("tableComment", replaceKeyword(table.getTableComment())); velocityContext.put("primaryKey", table.getPrimaryKey()); @@ -68,7 +72,7 @@ public class GenUtils velocityContext.put("moduleName", GenUtils.getModuleName(packageName)); velocityContext.put("columns", table.getColumns()); velocityContext.put("package", packageName + "." + table.getClassname()); - velocityContext.put("author", GenConfig.getAuthor()); + velocityContext.put("author", Global.getAuthor()); velocityContext.put("datetime", DateUtils.getDate()); return velocityContext; } @@ -99,13 +103,13 @@ public class GenUtils */ public static String tableToJava(String tableName) { - if (Constants.AUTO_REOMVE_PRE.equals(GenConfig.getAutoRemovePre())) + if (Constants.AUTO_REOMVE_PRE.equals(Global.getAutoRemovePre())) { tableName = tableName.substring(tableName.indexOf("_") + 1); } - if (StringUtils.isNotEmpty(GenConfig.getTablePrefix())) + if (StringUtils.isNotEmpty(Global.getTablePrefix())) { - tableName = tableName.replace(GenConfig.getTablePrefix(), ""); + tableName = tableName.replace(Global.getTablePrefix(), ""); } return StringUtils.convertToCamelCase(tableName); } @@ -197,6 +201,30 @@ public class GenUtils return keyName; } + static + { + javaTypeMap.put("tinyint", "Integer"); + javaTypeMap.put("smallint", "Integer"); + javaTypeMap.put("mediumint", "Integer"); + javaTypeMap.put("int", "Integer"); + javaTypeMap.put("integer", "integer"); + javaTypeMap.put("bigint", "Long"); + javaTypeMap.put("float", "Float"); + javaTypeMap.put("double", "Double"); + javaTypeMap.put("decimal", "BigDecimal"); + javaTypeMap.put("bit", "Boolean"); + javaTypeMap.put("char", "String"); + javaTypeMap.put("varchar", "String"); + javaTypeMap.put("tinytext", "String"); + javaTypeMap.put("text", "String"); + javaTypeMap.put("mediumtext", "String"); + javaTypeMap.put("longtext", "String"); + javaTypeMap.put("time", "Date"); + javaTypeMap.put("date", "Date"); + javaTypeMap.put("datetime", "Date"); + javaTypeMap.put("timestamp", "Date"); + } + public static void main(String[] args) { System.out.println(StringUtils.convertToCamelCase("user_name")); diff --git a/src/main/java/com/ruoyi/project/tool/gen/util/VelocityInitializer.java b/ruoyi-generator/src/main/java/com/ruoyi/generator/util/VelocityInitializer.java similarity index 78% rename from src/main/java/com/ruoyi/project/tool/gen/util/VelocityInitializer.java rename to ruoyi-generator/src/main/java/com/ruoyi/generator/util/VelocityInitializer.java index 7f932fc3..6d7e5f70 100644 --- a/src/main/java/com/ruoyi/project/tool/gen/util/VelocityInitializer.java +++ b/ruoyi-generator/src/main/java/com/ruoyi/generator/util/VelocityInitializer.java @@ -1,4 +1,4 @@ -package com.ruoyi.project.tool.gen.util; +package com.ruoyi.generator.util; import java.util.Properties; import org.apache.velocity.app.Velocity; @@ -20,7 +20,8 @@ public class VelocityInitializer try { // 加载classpath目录下的vm文件 - p.setProperty("file.resource.loader.class", "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader"); + p.setProperty("file.resource.loader.class", + "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader"); // 定义字符集 p.setProperty(Velocity.ENCODING_DEFAULT, Constants.UTF8); p.setProperty(Velocity.OUTPUT_ENCODING, Constants.UTF8); diff --git a/src/main/resources/mybatis/tool/GenMapper.xml b/ruoyi-generator/src/main/resources/mapper/generator/GenMapper.xml similarity index 94% rename from src/main/resources/mybatis/tool/GenMapper.xml rename to ruoyi-generator/src/main/resources/mapper/generator/GenMapper.xml index bed2e418..4653bee2 100644 --- a/src/main/resources/mybatis/tool/GenMapper.xml +++ b/ruoyi-generator/src/main/resources/mapper/generator/GenMapper.xml @@ -2,7 +2,7 @@ - + diff --git a/ruoyi-quartz/pom.xml b/ruoyi-quartz/pom.xml new file mode 100644 index 00000000..24550cd9 --- /dev/null +++ b/ruoyi-quartz/pom.xml @@ -0,0 +1,47 @@ + + + + ruoyi + com.ruoyi + 3.0 + + 4.0.0 + + ruoyi-quartz + + + quartz定时任务 + + + + + + + org.springframework + spring-context-support + + + + + org.quartz-scheduler + quartz + + + com.mchange + c3p0 + + + + + + + com.ruoyi + ruoyi-common + ${ruoyi.version} + + + + + \ No newline at end of file diff --git a/src/main/java/com/ruoyi/framework/config/ScheduleConfig.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/config/ScheduleConfig.java similarity index 91% rename from src/main/java/com/ruoyi/framework/config/ScheduleConfig.java rename to ruoyi-quartz/src/main/java/com/ruoyi/quartz/config/ScheduleConfig.java index 512ad060..83b60e69 100644 --- a/src/main/java/com/ruoyi/framework/config/ScheduleConfig.java +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/config/ScheduleConfig.java @@ -1,4 +1,4 @@ -package com.ruoyi.framework.config; +package com.ruoyi.quartz.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -38,7 +38,7 @@ public class ScheduleConfig prop.put("org.quartz.jobStore.txIsolationLevelSerializable", "true"); // sqlserver 启用 - //prop.put("org.quartz.jobStore.selectWithLockSQL", "SELECT * FROM {0}LOCKS UPDLOCK WHERE LOCK_NAME = ?"); + // prop.put("org.quartz.jobStore.selectWithLockSQL", "SELECT * FROM {0}LOCKS UPDLOCK WHERE LOCK_NAME = ?"); prop.put("org.quartz.jobStore.misfireThreshold", "12000"); prop.put("org.quartz.jobStore.tablePrefix", "QRTZ_"); factory.setQuartzProperties(prop); diff --git a/src/main/java/com/ruoyi/project/monitor/job/domain/Job.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/domain/SysJob.java similarity index 88% rename from src/main/java/com/ruoyi/project/monitor/job/domain/Job.java rename to ruoyi-quartz/src/main/java/com/ruoyi/quartz/domain/SysJob.java index bab23fde..ff548af8 100644 --- a/src/main/java/com/ruoyi/project/monitor/job/domain/Job.java +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/domain/SysJob.java @@ -1,18 +1,18 @@ -package com.ruoyi.project.monitor.job.domain; +package com.ruoyi.quartz.domain; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; import java.io.Serializable; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.base.BaseEntity; import com.ruoyi.common.constant.ScheduleConstants; -import com.ruoyi.framework.aspectj.lang.annotation.Excel; -import com.ruoyi.framework.web.domain.BaseEntity; /** - * 定时任务调度信息 sys_job + * 定时任务调度表 sys_job * * @author ruoyi */ -public class Job extends BaseEntity implements Serializable +public class SysJob extends BaseEntity implements Serializable { private static final long serialVersionUID = 1L; diff --git a/src/main/java/com/ruoyi/project/monitor/job/domain/JobLog.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/domain/SysJobLog.java similarity index 89% rename from src/main/java/com/ruoyi/project/monitor/job/domain/JobLog.java rename to ruoyi-quartz/src/main/java/com/ruoyi/quartz/domain/SysJobLog.java index 9f27a1a2..38324c50 100644 --- a/src/main/java/com/ruoyi/project/monitor/job/domain/JobLog.java +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/domain/SysJobLog.java @@ -1,16 +1,16 @@ -package com.ruoyi.project.monitor.job.domain; +package com.ruoyi.quartz.domain; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; -import com.ruoyi.framework.aspectj.lang.annotation.Excel; -import com.ruoyi.framework.web.domain.BaseEntity; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.base.BaseEntity; /** * 定时任务调度日志表 sys_job_log * * @author ruoyi */ -public class JobLog extends BaseEntity +public class SysJobLog extends BaseEntity { private static final long serialVersionUID = 1L; diff --git a/src/main/java/com/ruoyi/project/monitor/job/mapper/JobLogMapper.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/mapper/SysJobLogMapper.java similarity index 73% rename from src/main/java/com/ruoyi/project/monitor/job/mapper/JobLogMapper.java rename to ruoyi-quartz/src/main/java/com/ruoyi/quartz/mapper/SysJobLogMapper.java index 6b1129f8..083c4e46 100644 --- a/src/main/java/com/ruoyi/project/monitor/job/mapper/JobLogMapper.java +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/mapper/SysJobLogMapper.java @@ -1,14 +1,14 @@ -package com.ruoyi.project.monitor.job.mapper; +package com.ruoyi.quartz.mapper; import java.util.List; -import com.ruoyi.project.monitor.job.domain.JobLog; +import com.ruoyi.quartz.domain.SysJobLog; /** * 调度任务日志信息 数据层 * * @author ruoyi */ -public interface JobLogMapper +public interface SysJobLogMapper { /** * 获取quartz调度器日志的计划任务 @@ -16,7 +16,7 @@ public interface JobLogMapper * @param jobLog 调度日志信息 * @return 调度任务日志集合 */ - public List selectJobLogList(JobLog jobLog); + public List selectJobLogList(SysJobLog jobLog); /** * 通过调度任务日志ID查询调度信息 @@ -24,7 +24,7 @@ public interface JobLogMapper * @param jobLogId 调度任务日志ID * @return 调度任务日志对象信息 */ - public JobLog selectJobLogById(Long jobLogId); + public SysJobLog selectJobLogById(Long jobLogId); /** * 新增任务日志 @@ -32,7 +32,7 @@ public interface JobLogMapper * @param jobLog 调度日志信息 * @return 结果 */ - public int insertJobLog(JobLog jobLog); + public int insertJobLog(SysJobLog jobLog); /** * 批量删除调度日志信息 @@ -49,7 +49,7 @@ public interface JobLogMapper * @return 结果 */ public int deleteJobLogById(Long jobId); - + /** * 清空任务日志 */ diff --git a/src/main/java/com/ruoyi/project/monitor/job/mapper/JobMapper.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/mapper/SysJobMapper.java similarity index 69% rename from src/main/java/com/ruoyi/project/monitor/job/mapper/JobMapper.java rename to ruoyi-quartz/src/main/java/com/ruoyi/quartz/mapper/SysJobMapper.java index 7377ec49..aed5c24f 100644 --- a/src/main/java/com/ruoyi/project/monitor/job/mapper/JobMapper.java +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/mapper/SysJobMapper.java @@ -1,14 +1,14 @@ -package com.ruoyi.project.monitor.job.mapper; +package com.ruoyi.quartz.mapper; import java.util.List; -import com.ruoyi.project.monitor.job.domain.Job; +import com.ruoyi.quartz.domain.SysJob; /** * 调度任务信息 数据层 * * @author ruoyi */ -public interface JobMapper +public interface SysJobMapper { /** * 查询调度任务日志集合 @@ -16,14 +16,14 @@ public interface JobMapper * @param job 调度信息 * @return 操作日志集合 */ - public List selectJobList(Job job); + public List selectJobList(SysJob job); /** * 查询所有调度任务 * * @return 调度任务列表 */ - public List selectJobAll(); + public List selectJobAll(); /** * 通过调度ID查询调度任务信息 @@ -31,7 +31,7 @@ public interface JobMapper * @param jobId 调度ID * @return 角色对象信息 */ - public Job selectJobById(Long jobId); + public SysJob selectJobById(Long jobId); /** * 通过调度ID删除调度任务信息 @@ -39,7 +39,7 @@ public interface JobMapper * @param jobId 调度ID * @return 结果 */ - public int deleteJobById(Job job); + public int deleteJobById(SysJob job); /** * 批量删除调度任务信息 @@ -55,7 +55,7 @@ public interface JobMapper * @param job 调度任务信息 * @return 结果 */ - public int updateJob(Job job); + public int updateJob(SysJob job); /** * 新增调度任务信息 @@ -63,5 +63,5 @@ public interface JobMapper * @param job 调度任务信息 * @return 结果 */ - public int insertJob(Job job); + public int insertJob(SysJob job); } diff --git a/src/main/java/com/ruoyi/project/monitor/job/service/IJobLogService.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/ISysJobLogService.java similarity index 73% rename from src/main/java/com/ruoyi/project/monitor/job/service/IJobLogService.java rename to ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/ISysJobLogService.java index 84d907cd..93ae0f77 100644 --- a/src/main/java/com/ruoyi/project/monitor/job/service/IJobLogService.java +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/ISysJobLogService.java @@ -1,14 +1,14 @@ -package com.ruoyi.project.monitor.job.service; +package com.ruoyi.quartz.service; import java.util.List; -import com.ruoyi.project.monitor.job.domain.JobLog; +import com.ruoyi.quartz.domain.SysJobLog; /** * 定时任务调度日志信息信息 服务层 * * @author ruoyi */ -public interface IJobLogService +public interface ISysJobLogService { /** * 获取quartz调度器日志的计划任务 @@ -16,7 +16,7 @@ public interface IJobLogService * @param jobLog 调度日志信息 * @return 调度任务日志集合 */ - public List selectJobLogList(JobLog jobLog); + public List selectJobLogList(SysJobLog jobLog); /** * 通过调度任务日志ID查询调度信息 @@ -24,14 +24,14 @@ public interface IJobLogService * @param jobLogId 调度任务日志ID * @return 调度任务日志对象信息 */ - public JobLog selectJobLogById(Long jobLogId); + public SysJobLog selectJobLogById(Long jobLogId); /** * 新增任务日志 * * @param jobLog 调度日志信息 */ - public void addJobLog(JobLog jobLog); + public void addJobLog(SysJobLog jobLog); /** * 批量删除调度日志信息 diff --git a/src/main/java/com/ruoyi/project/monitor/job/service/IJobService.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/ISysJobService.java similarity index 70% rename from src/main/java/com/ruoyi/project/monitor/job/service/IJobService.java rename to ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/ISysJobService.java index f7b7d803..a02690df 100644 --- a/src/main/java/com/ruoyi/project/monitor/job/service/IJobService.java +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/ISysJobService.java @@ -1,14 +1,14 @@ -package com.ruoyi.project.monitor.job.service; +package com.ruoyi.quartz.service; import java.util.List; -import com.ruoyi.project.monitor.job.domain.Job; +import com.ruoyi.quartz.domain.SysJob; /** * 定时任务调度信息信息 服务层 * * @author ruoyi */ -public interface IJobService +public interface ISysJobService { /** * 获取quartz调度器的计划任务 @@ -16,7 +16,7 @@ public interface IJobService * @param job 调度信息 * @return 调度任务集合 */ - public List selectJobList(Job job); + public List selectJobList(SysJob job); /** * 通过调度任务ID查询调度信息 @@ -24,7 +24,7 @@ public interface IJobService * @param jobId 调度任务ID * @return 调度任务对象信息 */ - public Job selectJobById(Long jobId); + public SysJob selectJobById(Long jobId); /** * 暂停任务 @@ -32,7 +32,7 @@ public interface IJobService * @param job 调度信息 * @return 结果 */ - public int pauseJob(Job job); + public int pauseJob(SysJob job); /** * 恢复任务 @@ -40,7 +40,7 @@ public interface IJobService * @param job 调度信息 * @return 结果 */ - public int resumeJob(Job job); + public int resumeJob(SysJob job); /** * 删除任务后,所对应的trigger也将被删除 @@ -48,7 +48,7 @@ public interface IJobService * @param job 调度信息 * @return 结果 */ - public int deleteJob(Job job); + public int deleteJob(SysJob job); /** * 批量删除调度信息 @@ -64,7 +64,7 @@ public interface IJobService * @param job 调度信息 * @return 结果 */ - public int changeStatus(Job job); + public int changeStatus(SysJob job); /** * 立即运行任务 @@ -72,7 +72,7 @@ public interface IJobService * @param job 调度信息 * @return 结果 */ - public int run(Job job); + public int run(SysJob job); /** * 新增任务表达式 @@ -80,7 +80,7 @@ public interface IJobService * @param job 调度信息 * @return 结果 */ - public int insertJobCron(Job job); + public int insertJobCron(SysJob job); /** * 更新任务的时间表达式 @@ -88,5 +88,5 @@ public interface IJobService * @param job 调度信息 * @return 结果 */ - public int updateJobCron(Job job); + public int updateJobCron(SysJob job); } diff --git a/src/main/java/com/ruoyi/project/monitor/job/service/JobLogServiceImpl.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/SysJobLogServiceImpl.java similarity index 74% rename from src/main/java/com/ruoyi/project/monitor/job/service/JobLogServiceImpl.java rename to ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/SysJobLogServiceImpl.java index 9661b6d6..37a4885c 100644 --- a/src/main/java/com/ruoyi/project/monitor/job/service/JobLogServiceImpl.java +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/SysJobLogServiceImpl.java @@ -1,11 +1,12 @@ -package com.ruoyi.project.monitor.job.service; +package com.ruoyi.quartz.service.impl; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.ruoyi.common.support.Convert; -import com.ruoyi.project.monitor.job.domain.JobLog; -import com.ruoyi.project.monitor.job.mapper.JobLogMapper; +import com.ruoyi.quartz.domain.SysJobLog; +import com.ruoyi.quartz.mapper.SysJobLogMapper; +import com.ruoyi.quartz.service.ISysJobLogService; /** * 定时任务调度日志信息 服务层 @@ -13,10 +14,10 @@ import com.ruoyi.project.monitor.job.mapper.JobLogMapper; * @author ruoyi */ @Service -public class JobLogServiceImpl implements IJobLogService +public class SysJobLogServiceImpl implements ISysJobLogService { @Autowired - private JobLogMapper jobLogMapper; + private SysJobLogMapper jobLogMapper; /** * 获取quartz调度器日志的计划任务 @@ -25,7 +26,7 @@ public class JobLogServiceImpl implements IJobLogService * @return 调度任务日志集合 */ @Override - public List selectJobLogList(JobLog jobLog) + public List selectJobLogList(SysJobLog jobLog) { return jobLogMapper.selectJobLogList(jobLog); } @@ -37,7 +38,7 @@ public class JobLogServiceImpl implements IJobLogService * @return 调度任务日志对象信息 */ @Override - public JobLog selectJobLogById(Long jobLogId) + public SysJobLog selectJobLogById(Long jobLogId) { return jobLogMapper.selectJobLogById(jobLogId); } @@ -48,7 +49,7 @@ public class JobLogServiceImpl implements IJobLogService * @param jobLog 调度日志信息 */ @Override - public void addJobLog(JobLog jobLog) + public void addJobLog(SysJobLog jobLog) { jobLogMapper.insertJobLog(jobLog); } @@ -75,7 +76,7 @@ public class JobLogServiceImpl implements IJobLogService { return jobLogMapper.deleteJobLogById(jobId); } - + /** * 清空任务日志 */ diff --git a/src/main/java/com/ruoyi/project/monitor/job/service/JobServiceImpl.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/SysJobServiceImpl.java similarity index 76% rename from src/main/java/com/ruoyi/project/monitor/job/service/JobServiceImpl.java rename to ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/SysJobServiceImpl.java index ac06694e..6a4531d2 100644 --- a/src/main/java/com/ruoyi/project/monitor/job/service/JobServiceImpl.java +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/SysJobServiceImpl.java @@ -1,4 +1,4 @@ -package com.ruoyi.project.monitor.job.service; +package com.ruoyi.quartz.service.impl; import java.util.List; import javax.annotation.PostConstruct; @@ -8,10 +8,10 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.ruoyi.common.constant.ScheduleConstants; import com.ruoyi.common.support.Convert; -import com.ruoyi.common.utils.security.ShiroUtils; -import com.ruoyi.project.monitor.job.domain.Job; -import com.ruoyi.project.monitor.job.mapper.JobMapper; -import com.ruoyi.project.monitor.job.util.ScheduleUtils; +import com.ruoyi.quartz.domain.SysJob; +import com.ruoyi.quartz.mapper.SysJobMapper; +import com.ruoyi.quartz.service.ISysJobService; +import com.ruoyi.quartz.util.ScheduleUtils; /** * 定时任务调度信息 服务层 @@ -19,13 +19,13 @@ import com.ruoyi.project.monitor.job.util.ScheduleUtils; * @author ruoyi */ @Service -public class JobServiceImpl implements IJobService +public class SysJobServiceImpl implements ISysJobService { @Autowired private Scheduler scheduler; @Autowired - private JobMapper jobMapper; + private SysJobMapper jobMapper; /** * 项目启动时,初始化定时器 @@ -33,8 +33,8 @@ public class JobServiceImpl implements IJobService @PostConstruct public void init() { - List jobList = jobMapper.selectJobAll(); - for (Job job : jobList) + List jobList = jobMapper.selectJobAll(); + for (SysJob job : jobList) { CronTrigger cronTrigger = ScheduleUtils.getCronTrigger(scheduler, job.getJobId()); // 如果不存在,则创建 @@ -56,7 +56,7 @@ public class JobServiceImpl implements IJobService * @return */ @Override - public List selectJobList(Job job) + public List selectJobList(SysJob job) { return jobMapper.selectJobList(job); } @@ -68,7 +68,7 @@ public class JobServiceImpl implements IJobService * @return 调度任务对象信息 */ @Override - public Job selectJobById(Long jobId) + public SysJob selectJobById(Long jobId) { return jobMapper.selectJobById(jobId); } @@ -79,10 +79,9 @@ public class JobServiceImpl implements IJobService * @param job 调度信息 */ @Override - public int pauseJob(Job job) + public int pauseJob(SysJob job) { job.setStatus(ScheduleConstants.Status.PAUSE.getValue()); - job.setUpdateBy(ShiroUtils.getLoginName()); int rows = jobMapper.updateJob(job); if (rows > 0) { @@ -97,10 +96,9 @@ public class JobServiceImpl implements IJobService * @param job 调度信息 */ @Override - public int resumeJob(Job job) + public int resumeJob(SysJob job) { job.setStatus(ScheduleConstants.Status.NORMAL.getValue()); - job.setUpdateBy(ShiroUtils.getLoginName()); int rows = jobMapper.updateJob(job); if (rows > 0) { @@ -115,7 +113,7 @@ public class JobServiceImpl implements IJobService * @param job 调度信息 */ @Override - public int deleteJob(Job job) + public int deleteJob(SysJob job) { int rows = jobMapper.deleteJobById(job); if (rows > 0) @@ -137,7 +135,7 @@ public class JobServiceImpl implements IJobService Long[] jobIds = Convert.toLongArray(ids); for (Long jobId : jobIds) { - Job job = jobMapper.selectJobById(jobId); + SysJob job = jobMapper.selectJobById(jobId); deleteJob(job); } } @@ -148,7 +146,7 @@ public class JobServiceImpl implements IJobService * @param job 调度信息 */ @Override - public int changeStatus(Job job) + public int changeStatus(SysJob job) { int rows = 0; String status = job.getStatus(); @@ -169,7 +167,7 @@ public class JobServiceImpl implements IJobService * @param job 调度信息 */ @Override - public int run(Job job) + public int run(SysJob job) { return ScheduleUtils.run(scheduler, selectJobById(job.getJobId())); } @@ -180,9 +178,8 @@ public class JobServiceImpl implements IJobService * @param job 调度信息 调度信息 */ @Override - public int insertJobCron(Job job) + public int insertJobCron(SysJob job) { - job.setCreateBy(ShiroUtils.getLoginName()); job.setStatus(ScheduleConstants.Status.PAUSE.getValue()); int rows = jobMapper.insertJob(job); if (rows > 0) @@ -198,9 +195,8 @@ public class JobServiceImpl implements IJobService * @param job 调度信息 */ @Override - public int updateJobCron(Job job) + public int updateJobCron(SysJob job) { - job.setUpdateBy(ShiroUtils.getLoginName()); int rows = jobMapper.updateJob(job); if (rows > 0) { diff --git a/src/main/java/com/ruoyi/project/monitor/job/task/RyTask.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java similarity index 84% rename from src/main/java/com/ruoyi/project/monitor/job/task/RyTask.java rename to ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java index a35c0b0d..a8dc9e11 100644 --- a/src/main/java/com/ruoyi/project/monitor/job/task/RyTask.java +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java @@ -1,4 +1,4 @@ -package com.ruoyi.project.monitor.job.task; +package com.ruoyi.quartz.task; import org.springframework.stereotype.Component; diff --git a/src/main/java/com/ruoyi/project/monitor/job/util/ScheduleJob.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/util/ScheduleJob.java similarity index 83% rename from src/main/java/com/ruoyi/project/monitor/job/util/ScheduleJob.java rename to ruoyi-quartz/src/main/java/com/ruoyi/quartz/util/ScheduleJob.java index 4d1c0730..ddd110c6 100644 --- a/src/main/java/com/ruoyi/project/monitor/job/util/ScheduleJob.java +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/util/ScheduleJob.java @@ -1,4 +1,4 @@ -package com.ruoyi.project.monitor.job.util; +package com.ruoyi.quartz.util; import java.util.Date; import java.util.concurrent.ExecutorService; @@ -12,13 +12,12 @@ import org.springframework.scheduling.quartz.QuartzJobBean; import com.ruoyi.common.constant.Constants; import com.ruoyi.common.constant.ScheduleConstants; import com.ruoyi.common.utils.bean.BeanUtils; -import com.ruoyi.common.utils.spring.SpringUtils; -import com.ruoyi.project.monitor.job.domain.Job; -import com.ruoyi.project.monitor.job.domain.JobLog; -import com.ruoyi.project.monitor.job.service.IJobLogService; +import com.ruoyi.quartz.domain.SysJob; +import com.ruoyi.quartz.domain.SysJobLog; +import com.ruoyi.quartz.service.ISysJobLogService; /** - * 定时任务 + * 定时任务处理 * * @author ruoyi * @@ -29,15 +28,15 @@ public class ScheduleJob extends QuartzJobBean private ExecutorService service = Executors.newSingleThreadExecutor(); + private final static ISysJobLogService jobLogService = (ISysJobLogService) SpringContextUtil.getBean("sysJobLogServiceImpl"); + @Override protected void executeInternal(JobExecutionContext context) throws JobExecutionException { - Job job = new Job(); + SysJob job = new SysJob(); BeanUtils.copyBeanProp(job, context.getMergedJobDataMap().get(ScheduleConstants.TASK_PROPERTIES)); - IJobLogService jobLogService = (IJobLogService) SpringUtils.getBean(IJobLogService.class); - - JobLog jobLog = new JobLog(); + SysJobLog jobLog = new SysJobLog(); jobLog.setJobName(job.getJobName()); jobLog.setJobGroup(job.getJobGroup()); jobLog.setMethodName(job.getMethodName()); diff --git a/src/main/java/com/ruoyi/project/monitor/job/util/ScheduleRunnable.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/util/ScheduleRunnable.java similarity index 76% rename from src/main/java/com/ruoyi/project/monitor/job/util/ScheduleRunnable.java rename to ruoyi-quartz/src/main/java/com/ruoyi/quartz/util/ScheduleRunnable.java index 35ab2fc7..aea572b4 100644 --- a/src/main/java/com/ruoyi/project/monitor/job/util/ScheduleRunnable.java +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/util/ScheduleRunnable.java @@ -1,9 +1,10 @@ -package com.ruoyi.project.monitor.job.util; +package com.ruoyi.quartz.util; import java.lang.reflect.Method; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.util.ReflectionUtils; import com.ruoyi.common.utils.StringUtils; -import com.ruoyi.common.utils.spring.SpringUtils; /** * 执行定时任务 @@ -13,6 +14,8 @@ import com.ruoyi.common.utils.spring.SpringUtils; */ public class ScheduleRunnable implements Runnable { + private static final Logger log = LoggerFactory.getLogger(ScheduleRunnable.class); + private Object target; private Method method; private String params; @@ -20,7 +23,7 @@ public class ScheduleRunnable implements Runnable public ScheduleRunnable(String beanName, String methodName, String params) throws NoSuchMethodException, SecurityException { - this.target = SpringUtils.getBean(beanName); + this.target = SpringContextUtil.getBean(beanName); this.params = params; if (StringUtils.isNotEmpty(params)) @@ -50,7 +53,7 @@ public class ScheduleRunnable implements Runnable } catch (Exception e) { - e.printStackTrace(); + log.error("执行定时任务 - :", e); } } } diff --git a/src/main/java/com/ruoyi/project/monitor/job/util/ScheduleUtils.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/util/ScheduleUtils.java similarity index 90% rename from src/main/java/com/ruoyi/project/monitor/job/util/ScheduleUtils.java rename to ruoyi-quartz/src/main/java/com/ruoyi/quartz/util/ScheduleUtils.java index 2f3e81af..9a6b9ca6 100644 --- a/src/main/java/com/ruoyi/project/monitor/job/util/ScheduleUtils.java +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/util/ScheduleUtils.java @@ -1,4 +1,4 @@ -package com.ruoyi.project.monitor.job.util; +package com.ruoyi.quartz.util; import org.quartz.CronScheduleBuilder; import org.quartz.CronTrigger; @@ -15,7 +15,7 @@ import org.slf4j.LoggerFactory; import com.ruoyi.common.constant.ScheduleConstants; import com.ruoyi.common.exception.job.TaskException; import com.ruoyi.common.exception.job.TaskException.Code; -import com.ruoyi.project.monitor.job.domain.Job; +import com.ruoyi.quartz.domain.SysJob; /** * 定时任务工具类 @@ -62,7 +62,7 @@ public class ScheduleUtils /** * 创建定时任务 */ - public static void createScheduleJob(Scheduler scheduler, Job job) + public static void createScheduleJob(Scheduler scheduler, SysJob job) { try { @@ -74,7 +74,8 @@ public class ScheduleUtils cronScheduleBuilder = handleCronScheduleMisfirePolicy(job, cronScheduleBuilder); // 按新的cronExpression表达式构建一个新的trigger - CronTrigger trigger = TriggerBuilder.newTrigger().withIdentity(getTriggerKey(job.getJobId())).withSchedule(cronScheduleBuilder).build(); + CronTrigger trigger = TriggerBuilder.newTrigger().withIdentity(getTriggerKey(job.getJobId())) + .withSchedule(cronScheduleBuilder).build(); // 放入参数,运行时的方法可以获取 jobDetail.getJobDataMap().put(ScheduleConstants.TASK_PROPERTIES, job); @@ -100,7 +101,7 @@ public class ScheduleUtils /** * 更新定时任务 */ - public static void updateScheduleJob(Scheduler scheduler, Job job) + public static void updateScheduleJob(Scheduler scheduler, SysJob job) { try { @@ -140,7 +141,7 @@ public class ScheduleUtils /** * 立即执行任务 */ - public static int run(Scheduler scheduler, Job job) + public static int run(Scheduler scheduler, SysJob job) { int rows = 0; try @@ -204,7 +205,7 @@ public class ScheduleUtils } } - public static CronScheduleBuilder handleCronScheduleMisfirePolicy(Job job, CronScheduleBuilder cb) + public static CronScheduleBuilder handleCronScheduleMisfirePolicy(SysJob job, CronScheduleBuilder cb) throws TaskException { switch (job.getMisfirePolicy()) diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/util/SpringContextUtil.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/util/SpringContextUtil.java new file mode 100644 index 00000000..6146b039 --- /dev/null +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/util/SpringContextUtil.java @@ -0,0 +1,49 @@ +package com.ruoyi.quartz.util; + +import org.springframework.beans.BeansException; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; +import org.springframework.stereotype.Service; + +/** + * spring管理环境中获取bean + * + * @author yangzz + */ +@Service("springContextUtil") +public class SpringContextUtil implements ApplicationContextAware +{ + // Spring应用上下文环境 + private static ApplicationContext applicationContext; + + /** + * 实现ApplicationContextAware接口的回调方法,设置上下文环境 + * + * @param applicationContext + */ + @Override + public void setApplicationContext(ApplicationContext applicationContext) + { + SpringContextUtil.applicationContext = applicationContext; + } + + /** + * @return ApplicationContext + */ + public static ApplicationContext getApplicationContext() + { + return applicationContext; + } + + /** + * 获取对象 + * + * @param name + * @return Object + * @throws BeansException + */ + public static Object getBean(String name) throws BeansException + { + return applicationContext.getBean(name); + } +} diff --git a/src/main/resources/mybatis/monitor/JobLogMapper.xml b/ruoyi-quartz/src/main/resources/mapper/quartz/SysJobLogMapper.xml similarity index 87% rename from src/main/resources/mybatis/monitor/JobLogMapper.xml rename to ruoyi-quartz/src/main/resources/mapper/quartz/SysJobLogMapper.xml index cd2d0704..5353deb1 100644 --- a/src/main/resources/mybatis/monitor/JobLogMapper.xml +++ b/ruoyi-quartz/src/main/resources/mapper/quartz/SysJobLogMapper.xml @@ -2,9 +2,9 @@ - + - + @@ -21,7 +21,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" from sys_job_log - @@ -42,11 +42,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - - where job_log_id = #{jobLogId} @@ -66,7 +66,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" truncate table sys_job_log - + insert into sys_job_log( job_log_id, job_name, diff --git a/src/main/resources/mybatis/monitor/JobMapper.xml b/ruoyi-quartz/src/main/resources/mapper/quartz/SysJobMapper.xml similarity index 88% rename from src/main/resources/mybatis/monitor/JobMapper.xml rename to ruoyi-quartz/src/main/resources/mapper/quartz/SysJobMapper.xml index fc4a2c8d..2b5bcc49 100644 --- a/src/main/resources/mybatis/monitor/JobMapper.xml +++ b/ruoyi-quartz/src/main/resources/mapper/quartz/SysJobMapper.xml @@ -2,9 +2,9 @@ - + - + @@ -25,7 +25,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" from sys_job - @@ -40,11 +40,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - - where job_id = #{jobId} @@ -60,7 +60,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + update sys_job job_name = #{jobName}, @@ -77,7 +77,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where job_id = #{jobId} - + insert into sys_job( job_id, job_name, diff --git a/ruoyi-system/pom.xml b/ruoyi-system/pom.xml new file mode 100644 index 00000000..0dc3e91b --- /dev/null +++ b/ruoyi-system/pom.xml @@ -0,0 +1,42 @@ + + + + ruoyi + com.ruoyi + 3.0 + + 4.0.0 + + ruoyi-system + + + system系统模块 + + + + + + + org.mybatis.spring.boot + mybatis-spring-boot-starter + ${mybatis.boot.version} + + + + + mysql + mysql-connector-java + + + + + com.ruoyi + ruoyi-common + ${ruoyi.version} + + + + + \ No newline at end of file diff --git a/src/main/java/com/ruoyi/project/system/config/domain/Config.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysConfig.java similarity index 88% rename from src/main/java/com/ruoyi/project/system/config/domain/Config.java rename to ruoyi-system/src/main/java/com/ruoyi/system/domain/SysConfig.java index e8d8bb9d..4abfa988 100644 --- a/src/main/java/com/ruoyi/project/system/config/domain/Config.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysConfig.java @@ -1,16 +1,16 @@ -package com.ruoyi.project.system.config.domain; +package com.ruoyi.system.domain; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; -import com.ruoyi.framework.aspectj.lang.annotation.Excel; -import com.ruoyi.framework.web.domain.BaseEntity; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.base.BaseEntity; /** * 参数配置表 sys_config * * @author ruoyi */ -public class Config extends BaseEntity +public class SysConfig extends BaseEntity { private static final long serialVersionUID = 1L; diff --git a/src/main/java/com/ruoyi/project/system/dept/domain/Dept.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysDept.java similarity index 91% rename from src/main/java/com/ruoyi/project/system/dept/domain/Dept.java rename to ruoyi-system/src/main/java/com/ruoyi/system/domain/SysDept.java index acc30bf9..56cc262b 100644 --- a/src/main/java/com/ruoyi/project/system/dept/domain/Dept.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysDept.java @@ -1,15 +1,15 @@ -package com.ruoyi.project.system.dept.domain; +package com.ruoyi.system.domain; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; -import com.ruoyi.framework.web.domain.BaseEntity; +import com.ruoyi.common.base.BaseEntity; /** * 部门表 sys_dept * * @author ruoyi */ -public class Dept extends BaseEntity +public class SysDept extends BaseEntity { private static final long serialVersionUID = 1L; @@ -33,6 +33,7 @@ public class Dept extends BaseEntity /** 联系电话 */ private String phone; + /** 邮箱 */ private String email; diff --git a/src/main/java/com/ruoyi/project/system/dict/domain/DictData.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysDictData.java similarity index 89% rename from src/main/java/com/ruoyi/project/system/dict/domain/DictData.java rename to ruoyi-system/src/main/java/com/ruoyi/system/domain/SysDictData.java index e8f69641..3f64ea9e 100644 --- a/src/main/java/com/ruoyi/project/system/dict/domain/DictData.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysDictData.java @@ -1,16 +1,16 @@ -package com.ruoyi.project.system.dict.domain; +package com.ruoyi.system.domain; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; -import com.ruoyi.framework.aspectj.lang.annotation.Excel; -import com.ruoyi.framework.web.domain.BaseEntity; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.base.BaseEntity; /** * 字典数据表 sys_dict_data * * @author ruoyi */ -public class DictData extends BaseEntity +public class SysDictData extends BaseEntity { private static final long serialVersionUID = 1L; @@ -34,7 +34,7 @@ public class DictData extends BaseEntity @Excel(name = "字典类型") private String dictType; - /** 字典样式 */ + /** 样式属性(其他样式扩展) */ @Excel(name = "字典样式") private String cssClass; @@ -138,8 +138,8 @@ public class DictData extends BaseEntity { this.status = status; } - - @Override + + @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) .append("dictCode", getDictCode()) diff --git a/src/main/java/com/ruoyi/project/system/dict/domain/DictType.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysDictType.java similarity index 84% rename from src/main/java/com/ruoyi/project/system/dict/domain/DictType.java rename to ruoyi-system/src/main/java/com/ruoyi/system/domain/SysDictType.java index ad65e0d0..827b5ddd 100644 --- a/src/main/java/com/ruoyi/project/system/dict/domain/DictType.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysDictType.java @@ -1,16 +1,16 @@ -package com.ruoyi.project.system.dict.domain; +package com.ruoyi.system.domain; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; -import com.ruoyi.framework.aspectj.lang.annotation.Excel; -import com.ruoyi.framework.web.domain.BaseEntity; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.base.BaseEntity; /** - * 字典类型对象 sys_dict_type + * 字典类型表 sys_dict_type * * @author ruoyi */ -public class DictType extends BaseEntity +public class SysDictType extends BaseEntity { private static final long serialVersionUID = 1L; diff --git a/src/main/java/com/ruoyi/project/monitor/logininfor/domain/Logininfor.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysLogininfor.java similarity index 88% rename from src/main/java/com/ruoyi/project/monitor/logininfor/domain/Logininfor.java rename to ruoyi-system/src/main/java/com/ruoyi/system/domain/SysLogininfor.java index 1f18912f..f4adbc0b 100644 --- a/src/main/java/com/ruoyi/project/monitor/logininfor/domain/Logininfor.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysLogininfor.java @@ -1,52 +1,52 @@ -package com.ruoyi.project.monitor.logininfor.domain; +package com.ruoyi.system.domain; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; -import com.ruoyi.framework.aspectj.lang.annotation.Excel; -import com.ruoyi.framework.web.domain.BaseEntity; import java.util.Date; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.base.BaseEntity; /** * 系统访问记录表 sys_logininfor * * @author ruoyi */ -public class Logininfor extends BaseEntity +public class SysLogininfor extends BaseEntity { private static final long serialVersionUID = 1L; - + /** ID */ @Excel(name = "序号") private Long infoId; - + /** 用户账号 */ @Excel(name = "用户账号") private String loginName; - + /** 登录状态 0成功 1失败 */ @Excel(name = "登录状态") private String status; - + /** 登录IP地址 */ @Excel(name = "登录地址") private String ipaddr; - + /** 登录地点 */ @Excel(name = "登录地点") private String loginLocation; - + /** 浏览器类型 */ @Excel(name = "浏览器") private String browser; - + /** 操作系统 */ @Excel(name = "操作系统 ") private String os; - + /** 提示消息 */ @Excel(name = "提示消息") private String msg; - + /** 访问时间 */ @Excel(name = "访问时间") private Date loginTime; diff --git a/src/main/java/com/ruoyi/project/system/menu/domain/Menu.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysMenu.java similarity index 87% rename from src/main/java/com/ruoyi/project/system/menu/domain/Menu.java rename to ruoyi-system/src/main/java/com/ruoyi/system/domain/SysMenu.java index fffd5652..eb769755 100644 --- a/src/main/java/com/ruoyi/project/system/menu/domain/Menu.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysMenu.java @@ -1,17 +1,17 @@ -package com.ruoyi.project.system.menu.domain; +package com.ruoyi.system.domain; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; import java.util.ArrayList; import java.util.List; -import com.ruoyi.framework.web.domain.BaseEntity; +import com.ruoyi.common.base.BaseEntity; /** * 菜单权限表 sys_menu * * @author ruoyi */ -public class Menu extends BaseEntity +public class SysMenu extends BaseEntity { private static final long serialVersionUID = 1L; @@ -46,7 +46,7 @@ public class Menu extends BaseEntity private String icon; /** 子菜单 */ - private List children = new ArrayList(); + private List children = new ArrayList(); public Long getMenuId() { @@ -148,12 +148,12 @@ public class Menu extends BaseEntity this.icon = icon; } - public List getChildren() + public List getChildren() { return children; } - public void setChildren(List children) + public void setChildren(List children) { this.children = children; } diff --git a/src/main/java/com/ruoyi/project/system/notice/domain/Notice.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysNotice.java similarity index 89% rename from src/main/java/com/ruoyi/project/system/notice/domain/Notice.java rename to ruoyi-system/src/main/java/com/ruoyi/system/domain/SysNotice.java index e07513f7..e119f55b 100644 --- a/src/main/java/com/ruoyi/project/system/notice/domain/Notice.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysNotice.java @@ -1,26 +1,30 @@ -package com.ruoyi.project.system.notice.domain; +package com.ruoyi.system.domain; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; -import com.ruoyi.framework.web.domain.BaseEntity; +import com.ruoyi.common.base.BaseEntity; /** * 通知公告表 sys_notice * * @author ruoyi */ -public class Notice extends BaseEntity +public class SysNotice extends BaseEntity { private static final long serialVersionUID = 1L; /** 公告ID */ private Long noticeId; + /** 公告标题 */ private String noticeTitle; + /** 公告类型(1通知 2公告) */ private String noticeType; + /** 公告内容 */ private String noticeContent; + /** 公告状态(0正常 1关闭) */ private String status; diff --git a/src/main/java/com/ruoyi/project/monitor/operlog/domain/OperLog.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysOperLog.java similarity index 88% rename from src/main/java/com/ruoyi/project/monitor/operlog/domain/OperLog.java rename to ruoyi-system/src/main/java/com/ruoyi/system/domain/SysOperLog.java index 7b2ddc8d..74f60893 100644 --- a/src/main/java/com/ruoyi/project/monitor/operlog/domain/OperLog.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysOperLog.java @@ -1,17 +1,17 @@ -package com.ruoyi.project.monitor.operlog.domain; +package com.ruoyi.system.domain; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; import java.util.Date; -import com.ruoyi.framework.aspectj.lang.annotation.Excel; -import com.ruoyi.framework.web.domain.BaseEntity; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.base.BaseEntity; /** * 操作日志记录表 oper_log * * @author ruoyi */ -public class OperLog extends BaseEntity +public class SysOperLog extends BaseEntity { private static final long serialVersionUID = 1L; @@ -23,7 +23,7 @@ public class OperLog extends BaseEntity @Excel(name = "操作模块") private String title; - /** 操作业务类型 */ + /** 业务类型(0其它 1新增 2修改 3删除) */ @Excel(name = "业务类型") private Integer businessType; @@ -31,7 +31,7 @@ public class OperLog extends BaseEntity @Excel(name = "请求方法") private String method; - /** 操作人类别 */ + /** 操作类别(0其它 1后台用户 2手机端用户) */ @Excel(name = "操作类别") private Integer operatorType; @@ -59,7 +59,7 @@ public class OperLog extends BaseEntity @Excel(name = "请求参数") private String operParam; - /** 状态0正常 1异常 */ + /** 操作状态(0正常 1异常) */ @Excel(name = "状态") private Integer status; diff --git a/src/main/java/com/ruoyi/project/system/post/domain/Post.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysPost.java similarity index 88% rename from src/main/java/com/ruoyi/project/system/post/domain/Post.java rename to ruoyi-system/src/main/java/com/ruoyi/system/domain/SysPost.java index b0df6d69..e27c0a21 100644 --- a/src/main/java/com/ruoyi/project/system/post/domain/Post.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysPost.java @@ -1,16 +1,16 @@ -package com.ruoyi.project.system.post.domain; +package com.ruoyi.system.domain; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; -import com.ruoyi.framework.aspectj.lang.annotation.Excel; -import com.ruoyi.framework.web.domain.BaseEntity; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.base.BaseEntity; /** * 岗位表 sys_post * * @author ruoyi */ -public class Post extends BaseEntity +public class SysPost extends BaseEntity { private static final long serialVersionUID = 1L; diff --git a/src/main/java/com/ruoyi/project/system/role/domain/Role.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysRole.java similarity index 90% rename from src/main/java/com/ruoyi/project/system/role/domain/Role.java rename to ruoyi-system/src/main/java/com/ruoyi/system/domain/SysRole.java index 559af982..d47aadff 100644 --- a/src/main/java/com/ruoyi/project/system/role/domain/Role.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysRole.java @@ -1,16 +1,16 @@ -package com.ruoyi.project.system.role.domain; +package com.ruoyi.system.domain; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; -import com.ruoyi.framework.aspectj.lang.annotation.Excel; -import com.ruoyi.framework.web.domain.BaseEntity; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.base.BaseEntity; /** * 角色表 sys_role * * @author ruoyi */ -public class Role extends BaseEntity +public class SysRole extends BaseEntity { private static final long serialVersionUID = 1L; diff --git a/src/main/java/com/ruoyi/project/system/role/domain/RoleDept.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysRoleDept.java similarity index 87% rename from src/main/java/com/ruoyi/project/system/role/domain/RoleDept.java rename to ruoyi-system/src/main/java/com/ruoyi/system/domain/SysRoleDept.java index 18d32461..8ed8e473 100644 --- a/src/main/java/com/ruoyi/project/system/role/domain/RoleDept.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysRoleDept.java @@ -1,4 +1,4 @@ -package com.ruoyi.project.system.role.domain; +package com.ruoyi.system.domain; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; @@ -8,7 +8,7 @@ import org.apache.commons.lang3.builder.ToStringStyle; * * @author ruoyi */ -public class RoleDept +public class SysRoleDept { /** 角色ID */ private Long roleId; diff --git a/src/main/java/com/ruoyi/project/system/role/domain/RoleMenu.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysRoleMenu.java similarity index 87% rename from src/main/java/com/ruoyi/project/system/role/domain/RoleMenu.java rename to ruoyi-system/src/main/java/com/ruoyi/system/domain/SysRoleMenu.java index 00b14273..59d28699 100644 --- a/src/main/java/com/ruoyi/project/system/role/domain/RoleMenu.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysRoleMenu.java @@ -1,4 +1,4 @@ -package com.ruoyi.project.system.role.domain; +package com.ruoyi.system.domain; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; @@ -8,7 +8,7 @@ import org.apache.commons.lang3.builder.ToStringStyle; * * @author ruoyi */ -public class RoleMenu +public class SysRoleMenu { /** 角色ID */ private Long roleId; diff --git a/src/main/java/com/ruoyi/project/system/user/domain/User.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUser.java similarity index 81% rename from src/main/java/com/ruoyi/project/system/user/domain/User.java rename to ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUser.java index c54628c8..3d15a514 100644 --- a/src/main/java/com/ruoyi/project/system/user/domain/User.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUser.java @@ -1,21 +1,18 @@ -package com.ruoyi.project.system.user.domain; +package com.ruoyi.system.domain; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; import java.util.Date; import java.util.List; -import org.apache.shiro.crypto.SecureRandomNumberGenerator; -import com.ruoyi.framework.aspectj.lang.annotation.Excel; -import com.ruoyi.framework.web.domain.BaseEntity; -import com.ruoyi.project.system.dept.domain.Dept; -import com.ruoyi.project.system.role.domain.Role; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.base.BaseEntity; /** * 用户对象 sys_user * * @author ruoyi */ -public class User extends BaseEntity +public class SysUser extends BaseEntity { private static final long serialVersionUID = 1L; @@ -74,10 +71,9 @@ public class User extends BaseEntity private Date loginDate; /** 部门对象 */ - private Dept dept; + private SysDept dept; - /** 角色集合 */ - private List roles; + private List roles; /** 角色组 */ private Long[] roleIds; @@ -205,17 +201,6 @@ public class User extends BaseEntity this.salt = salt; } - /** - * 生成随机盐 - */ - public void randomSalt() - { - // 一个Byte占两个字节,此处生成的3字节,字符串长度为6 - SecureRandomNumberGenerator secureRandom = new SecureRandomNumberGenerator(); - String hex = secureRandom.nextBytes(3).toHex(); - setSalt(hex); - } - public String getStatus() { return status; @@ -256,22 +241,22 @@ public class User extends BaseEntity this.loginDate = loginDate; } - public Dept getDept() + public SysDept getDept() { return dept; } - public void setDept(Dept dept) + public void setDept(SysDept dept) { this.dept = dept; } - public List getRoles() + public List getRoles() { return roles; } - public void setRoles(List roles) + public void setRoles(List roles) { this.roles = roles; } diff --git a/src/main/java/com/ruoyi/project/monitor/online/domain/UserOnline.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserOnline.java similarity index 83% rename from src/main/java/com/ruoyi/project/monitor/online/domain/UserOnline.java rename to ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserOnline.java index 1c86fb5f..be480667 100644 --- a/src/main/java/com/ruoyi/project/monitor/online/domain/UserOnline.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserOnline.java @@ -1,17 +1,17 @@ -package com.ruoyi.project.monitor.online.domain; +package com.ruoyi.system.domain; import java.util.Date; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; -import com.ruoyi.framework.web.domain.BaseEntity; -import com.ruoyi.project.monitor.online.domain.OnlineSession.OnlineStatus; +import com.ruoyi.common.base.BaseEntity; +import com.ruoyi.common.enums.OnlineStatus; /** * 当前在线会话 sys_user_online * * @author ruoyi */ -public class UserOnline extends BaseEntity +public class SysUserOnline extends BaseEntity { private static final long serialVersionUID = 1L; @@ -48,9 +48,6 @@ public class UserOnline extends BaseEntity /** 在线状态 */ private OnlineStatus status = OnlineStatus.on_line; - /** 备份的当前用户会话 */ - private OnlineSession session; - public String getSessionId() { return sessionId; @@ -160,18 +157,8 @@ public class UserOnline extends BaseEntity { this.status = status; } - - public OnlineSession getSession() - { - return session; - } - - public void setSession(OnlineSession session) - { - this.session = session; - } - - @Override + + @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) .append("sessionId", getSessionId()) diff --git a/src/main/java/com/ruoyi/project/system/user/domain/UserPost.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserPost.java similarity index 87% rename from src/main/java/com/ruoyi/project/system/user/domain/UserPost.java rename to ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserPost.java index b27cb667..07ceb85c 100644 --- a/src/main/java/com/ruoyi/project/system/user/domain/UserPost.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserPost.java @@ -1,4 +1,4 @@ -package com.ruoyi.project.system.user.domain; +package com.ruoyi.system.domain; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; @@ -8,10 +8,11 @@ import org.apache.commons.lang3.builder.ToStringStyle; * * @author ruoyi */ -public class UserPost +public class SysUserPost { /** 用户ID */ private Long userId; + /** 岗位ID */ private Long postId; diff --git a/src/main/java/com/ruoyi/project/system/user/domain/UserRole.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserRole.java similarity index 87% rename from src/main/java/com/ruoyi/project/system/user/domain/UserRole.java rename to ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserRole.java index e03990f6..ce2af2bd 100644 --- a/src/main/java/com/ruoyi/project/system/user/domain/UserRole.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserRole.java @@ -1,4 +1,4 @@ -package com.ruoyi.project.system.user.domain; +package com.ruoyi.system.domain; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; @@ -8,7 +8,7 @@ import org.apache.commons.lang3.builder.ToStringStyle; * * @author ruoyi */ -public class UserRole +public class SysUserRole { /** 用户ID */ private Long userId; diff --git a/src/main/java/com/ruoyi/project/system/config/mapper/ConfigMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysConfigMapper.java similarity index 66% rename from src/main/java/com/ruoyi/project/system/config/mapper/ConfigMapper.java rename to ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysConfigMapper.java index 4d03ede1..c529a0bc 100644 --- a/src/main/java/com/ruoyi/project/system/config/mapper/ConfigMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysConfigMapper.java @@ -1,14 +1,14 @@ -package com.ruoyi.project.system.config.mapper; +package com.ruoyi.system.mapper; -import com.ruoyi.project.system.config.domain.Config; import java.util.List; +import com.ruoyi.system.domain.SysConfig; /** * 参数配置 数据层 * * @author ruoyi */ -public interface ConfigMapper +public interface SysConfigMapper { /** * 查询参数配置信息 @@ -16,7 +16,7 @@ public interface ConfigMapper * @param configId 参数配置信息 * @return 参数配置信息 */ - public Config selectConfig(Config config); + public SysConfig selectConfig(SysConfig config); /** * 查询参数配置列表 @@ -24,7 +24,7 @@ public interface ConfigMapper * @param config 参数配置信息 * @return 参数配置集合 */ - public List selectConfigList(Config config); + public List selectConfigList(SysConfig config); /** * 根据键名查询参数配置信息 @@ -32,7 +32,7 @@ public interface ConfigMapper * @param configKey 参数键名 * @return 参数配置信息 */ - public Config checkConfigKeyUnique(String configKey); + public SysConfig checkConfigKeyUnique(String configKey); /** * 新增参数配置 @@ -40,7 +40,7 @@ public interface ConfigMapper * @param config 参数配置信息 * @return 结果 */ - public int insertConfig(Config config); + public int insertConfig(SysConfig config); /** * 修改参数配置 @@ -48,7 +48,7 @@ public interface ConfigMapper * @param config 参数配置信息 * @return 结果 */ - public int updateConfig(Config config); + public int updateConfig(SysConfig config); /** * 批量删除参数配置 diff --git a/src/main/java/com/ruoyi/project/system/dept/mapper/DeptMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDeptMapper.java similarity index 70% rename from src/main/java/com/ruoyi/project/system/dept/mapper/DeptMapper.java rename to ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDeptMapper.java index ad1c80c1..b6eb9c1b 100644 --- a/src/main/java/com/ruoyi/project/system/dept/mapper/DeptMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDeptMapper.java @@ -1,15 +1,15 @@ -package com.ruoyi.project.system.dept.mapper; +package com.ruoyi.system.mapper; import java.util.List; import org.apache.ibatis.annotations.Param; -import com.ruoyi.project.system.dept.domain.Dept; +import com.ruoyi.system.domain.SysDept; /** * 部门管理 数据层 * * @author ruoyi */ -public interface DeptMapper +public interface SysDeptMapper { /** * 查询部门人数 @@ -17,7 +17,7 @@ public interface DeptMapper * @param dept 部门信息 * @return 结果 */ - public int selectDeptCount(Dept dept); + public int selectDeptCount(SysDept dept); /** * 查询部门是否存在用户 @@ -33,7 +33,7 @@ public interface DeptMapper * @param dept 部门信息 * @return 部门信息集合 */ - public List selectDeptList(Dept dept); + public List selectDeptList(SysDept dept); /** * 删除部门管理信息 @@ -49,7 +49,7 @@ public interface DeptMapper * @param dept 部门信息 * @return 结果 */ - public int insertDept(Dept dept); + public int insertDept(SysDept dept); /** * 修改部门信息 @@ -57,7 +57,7 @@ public interface DeptMapper * @param dept 部门信息 * @return 结果 */ - public int updateDept(Dept dept); + public int updateDept(SysDept dept); /** * 修改子元素关系 @@ -65,7 +65,7 @@ public interface DeptMapper * @param depts 子元素 * @return 结果 */ - public int updateDeptChildren(@Param("depts") List depts); + public int updateDeptChildren(@Param("depts") List depts); /** * 根据部门ID查询信息 @@ -73,7 +73,7 @@ public interface DeptMapper * @param deptId 部门ID * @return 部门信息 */ - public Dept selectDeptById(Long deptId); + public SysDept selectDeptById(Long deptId); /** * 校验部门名称是否唯一 @@ -82,7 +82,7 @@ public interface DeptMapper * @param parentId 父部门ID * @return 结果 */ - public Dept checkDeptNameUnique(@Param("deptName") String deptName, @Param("parentId") Long parentId); + public SysDept checkDeptNameUnique(@Param("deptName") String deptName, @Param("parentId") Long parentId); /** * 根据角色ID查询部门 diff --git a/src/main/java/com/ruoyi/project/system/dict/mapper/DictDataMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDictDataMapper.java similarity index 78% rename from src/main/java/com/ruoyi/project/system/dict/mapper/DictDataMapper.java rename to ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDictDataMapper.java index b21c4b1e..ad251fde 100644 --- a/src/main/java/com/ruoyi/project/system/dict/mapper/DictDataMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDictDataMapper.java @@ -1,15 +1,15 @@ -package com.ruoyi.project.system.dict.mapper; +package com.ruoyi.system.mapper; import java.util.List; import org.apache.ibatis.annotations.Param; -import com.ruoyi.project.system.dict.domain.DictData; +import com.ruoyi.system.domain.SysDictData; /** * 字典表 数据层 * * @author ruoyi */ -public interface DictDataMapper +public interface SysDictDataMapper { /** * 根据条件分页查询字典数据 @@ -17,7 +17,7 @@ public interface DictDataMapper * @param dictData 字典数据信息 * @return 字典数据集合信息 */ - public List selectDictDataList(DictData dictData); + public List selectDictDataList(SysDictData dictData); /** * 根据字典类型查询字典数据 @@ -25,7 +25,7 @@ public interface DictDataMapper * @param dictType 字典类型 * @return 字典数据集合信息 */ - public List selectDictDataByType(String dictType); + public List selectDictDataByType(String dictType); /** * 根据字典类型和字典键值查询字典数据信息 @@ -42,7 +42,7 @@ public interface DictDataMapper * @param dictCode 字典数据ID * @return 字典数据 */ - public DictData selectDictDataById(Long dictCode); + public SysDictData selectDictDataById(Long dictCode); /** * 查询字典数据 @@ -74,7 +74,7 @@ public interface DictDataMapper * @param dictData 字典数据信息 * @return 结果 */ - public int insertDictData(DictData dictData); + public int insertDictData(SysDictData dictData); /** * 修改字典数据信息 @@ -82,7 +82,7 @@ public interface DictDataMapper * @param dictData 字典数据信息 * @return 结果 */ - public int updateDictData(DictData dictData); + public int updateDictData(SysDictData dictData); /** * 同步修改字典类型 diff --git a/src/main/java/com/ruoyi/project/system/dict/mapper/DictTypeMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDictTypeMapper.java similarity index 69% rename from src/main/java/com/ruoyi/project/system/dict/mapper/DictTypeMapper.java rename to ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDictTypeMapper.java index af682896..b2beb212 100644 --- a/src/main/java/com/ruoyi/project/system/dict/mapper/DictTypeMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDictTypeMapper.java @@ -1,8 +1,8 @@ -package com.ruoyi.project.system.dict.mapper; +package com.ruoyi.system.mapper; import java.util.List; import org.apache.ibatis.annotations.Mapper; -import com.ruoyi.project.system.dict.domain.DictType; +import com.ruoyi.system.domain.SysDictType; /** * 字典表 数据层 @@ -10,7 +10,7 @@ import com.ruoyi.project.system.dict.domain.DictType; * @author ruoyi */ @Mapper -public interface DictTypeMapper +public interface SysDictTypeMapper { /** * 根据条件分页查询字典类型 @@ -18,14 +18,14 @@ public interface DictTypeMapper * @param dictType 字典类型信息 * @return 字典类型集合信息 */ - public List selectDictTypeList(DictType dictType); + public List selectDictTypeList(SysDictType dictType); /** * 根据所有字典类型 * * @return 字典类型集合信息 */ - public List selectDictTypeAll(); + public List selectDictTypeAll(); /** * 根据字典类型ID查询信息 @@ -33,7 +33,7 @@ public interface DictTypeMapper * @param dictId 字典类型ID * @return 字典类型 */ - public DictType selectDictTypeById(Long dictId); + public SysDictType selectDictTypeById(Long dictId); /** * 通过字典ID删除字典信息 @@ -57,7 +57,7 @@ public interface DictTypeMapper * @param dictType 字典类型信息 * @return 结果 */ - public int insertDictType(DictType dictType); + public int insertDictType(SysDictType dictType); /** * 修改字典类型信息 @@ -65,7 +65,7 @@ public interface DictTypeMapper * @param dictType 字典类型信息 * @return 结果 */ - public int updateDictType(DictType dictType); + public int updateDictType(SysDictType dictType); /** * 校验字典类型称是否唯一 @@ -73,5 +73,5 @@ public interface DictTypeMapper * @param dictType 字典类型 * @return 结果 */ - public DictType checkDictTypeUnique(String dictType); + public SysDictType checkDictTypeUnique(String dictType); } diff --git a/src/main/java/com/ruoyi/project/monitor/logininfor/mapper/LogininforMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysLogininforMapper.java similarity index 64% rename from src/main/java/com/ruoyi/project/monitor/logininfor/mapper/LogininforMapper.java rename to ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysLogininforMapper.java index 50c2995d..ec96c13d 100644 --- a/src/main/java/com/ruoyi/project/monitor/logininfor/mapper/LogininforMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysLogininforMapper.java @@ -1,21 +1,21 @@ -package com.ruoyi.project.monitor.logininfor.mapper; +package com.ruoyi.system.mapper; import java.util.List; -import com.ruoyi.project.monitor.logininfor.domain.Logininfor; +import com.ruoyi.system.domain.SysLogininfor; /** * 系统访问日志情况信息 数据层 * * @author ruoyi */ -public interface LogininforMapper +public interface SysLogininforMapper { /** * 新增系统登录日志 * * @param logininfor 访问日志对象 */ - public void insertLogininfor(Logininfor logininfor); + public void insertLogininfor(SysLogininfor logininfor); /** * 查询系统登录日志集合 @@ -23,7 +23,7 @@ public interface LogininforMapper * @param logininfor 访问日志对象 * @return 登录记录集合 */ - public List selectLogininforList(Logininfor logininfor); + public List selectLogininforList(SysLogininfor logininfor); /** * 批量删除系统登录日志 @@ -32,7 +32,7 @@ public interface LogininforMapper * @return */ public int deleteLogininforByIds(String[] ids); - + /** * 清空系统登录日志 */ diff --git a/src/main/java/com/ruoyi/project/system/menu/mapper/MenuMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysMenuMapper.java similarity index 72% rename from src/main/java/com/ruoyi/project/system/menu/mapper/MenuMapper.java rename to ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysMenuMapper.java index acdfe7ed..eae456b1 100644 --- a/src/main/java/com/ruoyi/project/system/menu/mapper/MenuMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysMenuMapper.java @@ -1,29 +1,29 @@ -package com.ruoyi.project.system.menu.mapper; +package com.ruoyi.system.mapper; import java.util.List; import org.apache.ibatis.annotations.Param; -import com.ruoyi.project.system.menu.domain.Menu; +import com.ruoyi.system.domain.SysMenu; /** * 菜单表 数据层 * * @author ruoyi */ -public interface MenuMapper +public interface SysMenuMapper { /** * 查询系统所有菜单(含按钮) * * @return 菜单列表 */ - public List selectMenuAll(); + public List selectMenuAll(); /** * 查询系统正常显示菜单(不含按钮) * * @return 菜单列表 */ - public List selectMenuNormalAll(); + public List selectMenuNormalAll(); /** * 根据用户ID查询菜单 @@ -31,7 +31,7 @@ public interface MenuMapper * @param userId 用户ID * @return 菜单列表 */ - public List selectMenusByUserId(Long userId); + public List selectMenusByUserId(Long userId); /** * 根据用户ID查询权限 @@ -55,7 +55,7 @@ public interface MenuMapper * @param menu 菜单信息 * @return 菜单列表 */ - public List selectMenuList(Menu menu); + public List selectMenuList(SysMenu menu); /** * 删除菜单管理信息 @@ -71,7 +71,7 @@ public interface MenuMapper * @param menuId 菜单ID * @return 菜单信息 */ - public Menu selectMenuById(Long menuId); + public SysMenu selectMenuById(Long menuId); /** * 查询菜单数量 @@ -87,7 +87,7 @@ public interface MenuMapper * @param menu 菜单信息 * @return 结果 */ - public int insertMenu(Menu menu); + public int insertMenu(SysMenu menu); /** * 修改菜单信息 @@ -95,7 +95,7 @@ public interface MenuMapper * @param menu 菜单信息 * @return 结果 */ - public int updateMenu(Menu menu); + public int updateMenu(SysMenu menu); /** * 校验菜单名称是否唯一 @@ -104,5 +104,5 @@ public interface MenuMapper * @param parentId 父菜单ID * @return 结果 */ - public Menu checkMenuNameUnique(@Param("menuName") String menuName, @Param("parentId") Long parentId); + public SysMenu checkMenuNameUnique(@Param("menuName") String menuName, @Param("parentId") Long parentId); } diff --git a/src/main/java/com/ruoyi/project/system/notice/mapper/NoticeMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysNoticeMapper.java similarity index 64% rename from src/main/java/com/ruoyi/project/system/notice/mapper/NoticeMapper.java rename to ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysNoticeMapper.java index f6f498f7..1ce1d8cd 100644 --- a/src/main/java/com/ruoyi/project/system/notice/mapper/NoticeMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysNoticeMapper.java @@ -1,14 +1,14 @@ -package com.ruoyi.project.system.notice.mapper; +package com.ruoyi.system.mapper; -import com.ruoyi.project.system.notice.domain.Notice; import java.util.List; +import com.ruoyi.system.domain.SysNotice; /** * 公告 数据层 * * @author ruoyi */ -public interface NoticeMapper +public interface SysNoticeMapper { /** * 查询公告信息 @@ -16,7 +16,7 @@ public interface NoticeMapper * @param noticeId 公告ID * @return 公告信息 */ - public Notice selectNoticeById(Long noticeId); + public SysNotice selectNoticeById(Long noticeId); /** * 查询公告列表 @@ -24,7 +24,7 @@ public interface NoticeMapper * @param notice 公告信息 * @return 公告集合 */ - public List selectNoticeList(Notice notice); + public List selectNoticeList(SysNotice notice); /** * 新增公告 @@ -32,7 +32,7 @@ public interface NoticeMapper * @param notice 公告信息 * @return 结果 */ - public int insertNotice(Notice notice); + public int insertNotice(SysNotice notice); /** * 修改公告 @@ -40,7 +40,7 @@ public interface NoticeMapper * @param notice 公告信息 * @return 结果 */ - public int updateNotice(Notice notice); + public int updateNotice(SysNotice notice); /** * 批量删除公告 diff --git a/src/main/java/com/ruoyi/project/monitor/operlog/mapper/OperLogMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysOperLogMapper.java similarity index 66% rename from src/main/java/com/ruoyi/project/monitor/operlog/mapper/OperLogMapper.java rename to ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysOperLogMapper.java index 7ffbe77c..98ca5d13 100644 --- a/src/main/java/com/ruoyi/project/monitor/operlog/mapper/OperLogMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysOperLogMapper.java @@ -1,21 +1,21 @@ -package com.ruoyi.project.monitor.operlog.mapper; +package com.ruoyi.system.mapper; import java.util.List; -import com.ruoyi.project.monitor.operlog.domain.OperLog; +import com.ruoyi.system.domain.SysOperLog; /** * 操作日志 数据层 * * @author ruoyi */ -public interface OperLogMapper +public interface SysOperLogMapper { /** * 新增操作日志 * * @param operLog 操作日志对象 */ - public void insertOperlog(OperLog operLog); + public void insertOperlog(SysOperLog operLog); /** * 查询系统操作日志集合 @@ -23,7 +23,7 @@ public interface OperLogMapper * @param operLog 操作日志对象 * @return 操作日志集合 */ - public List selectOperLogList(OperLog operLog); + public List selectOperLogList(SysOperLog operLog); /** * 批量删除系统操作日志 @@ -39,7 +39,7 @@ public interface OperLogMapper * @param operId 操作ID * @return 操作日志对象 */ - public OperLog selectOperLogById(Long operId); + public SysOperLog selectOperLogById(Long operId); /** * 清空操作日志 diff --git a/src/main/java/com/ruoyi/project/system/post/mapper/PostMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysPostMapper.java similarity index 65% rename from src/main/java/com/ruoyi/project/system/post/mapper/PostMapper.java rename to ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysPostMapper.java index f2de38e5..a4aab595 100644 --- a/src/main/java/com/ruoyi/project/system/post/mapper/PostMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysPostMapper.java @@ -1,14 +1,14 @@ -package com.ruoyi.project.system.post.mapper; +package com.ruoyi.system.mapper; import java.util.List; -import com.ruoyi.project.system.post.domain.Post; +import com.ruoyi.system.domain.SysPost; /** * 岗位信息 数据层 * * @author ruoyi */ -public interface PostMapper +public interface SysPostMapper { /** * 查询岗位数据集合 @@ -16,14 +16,14 @@ public interface PostMapper * @param post 岗位信息 * @return 岗位数据集合 */ - public List selectPostList(Post post); + public List selectPostList(SysPost post); /** * 查询所有岗位 * * @return 岗位列表 */ - public List selectPostAll(); + public List selectPostAll(); /** * 根据用户ID查询岗位 @@ -31,7 +31,7 @@ public interface PostMapper * @param userId 用户ID * @return 岗位列表 */ - public List selectPostsByUserId(Long userId); + public List selectPostsByUserId(Long userId); /** * 通过岗位ID查询岗位信息 @@ -39,7 +39,7 @@ public interface PostMapper * @param postId 岗位ID * @return 角色对象信息 */ - public Post selectPostById(Long postId); + public SysPost selectPostById(Long postId); /** * 批量删除岗位信息 @@ -55,7 +55,7 @@ public interface PostMapper * @param post 岗位信息 * @return 结果 */ - public int updatePost(Post post); + public int updatePost(SysPost post); /** * 新增岗位信息 @@ -63,7 +63,7 @@ public interface PostMapper * @param post 岗位信息 * @return 结果 */ - public int insertPost(Post post); + public int insertPost(SysPost post); /** * 校验岗位名称 @@ -71,7 +71,7 @@ public interface PostMapper * @param postName 岗位名称 * @return 结果 */ - public Post checkPostNameUnique(String postName); + public SysPost checkPostNameUnique(String postName); /** * 校验岗位编码 @@ -79,5 +79,5 @@ public interface PostMapper * @param postCode 岗位编码 * @return 结果 */ - public Post checkPostCodeUnique(String postCode); + public SysPost checkPostCodeUnique(String postCode); } diff --git a/src/main/java/com/ruoyi/project/system/role/mapper/RoleDeptMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleDeptMapper.java similarity index 76% rename from src/main/java/com/ruoyi/project/system/role/mapper/RoleDeptMapper.java rename to ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleDeptMapper.java index 66dba3cb..a4ad4de2 100644 --- a/src/main/java/com/ruoyi/project/system/role/mapper/RoleDeptMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleDeptMapper.java @@ -1,14 +1,14 @@ -package com.ruoyi.project.system.role.mapper; +package com.ruoyi.system.mapper; import java.util.List; -import com.ruoyi.project.system.role.domain.RoleDept; +import com.ruoyi.system.domain.SysRoleDept; /** * 角色与部门关联表 数据层 * * @author ruoyi */ -public interface RoleDeptMapper +public interface SysRoleDeptMapper { /** * 通过角色ID删除角色和部门关联 @@ -40,5 +40,5 @@ public interface RoleDeptMapper * @param roleDeptList 角色部门列表 * @return 结果 */ - public int batchRoleDept(List roleDeptList); + public int batchRoleDept(List roleDeptList); } diff --git a/src/main/java/com/ruoyi/project/system/role/mapper/RoleMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleMapper.java similarity index 69% rename from src/main/java/com/ruoyi/project/system/role/mapper/RoleMapper.java rename to ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleMapper.java index 0cfff131..8c2ea650 100644 --- a/src/main/java/com/ruoyi/project/system/role/mapper/RoleMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleMapper.java @@ -1,14 +1,14 @@ -package com.ruoyi.project.system.role.mapper; +package com.ruoyi.system.mapper; import java.util.List; -import com.ruoyi.project.system.role.domain.Role; +import com.ruoyi.system.domain.SysRole; /** * 角色表 数据层 * * @author ruoyi */ -public interface RoleMapper +public interface SysRoleMapper { /** * 根据条件分页查询角色数据 @@ -16,7 +16,7 @@ public interface RoleMapper * @param role 角色信息 * @return 角色数据集合信息 */ - public List selectRoleList(Role role); + public List selectRoleList(SysRole role); /** * 根据用户ID查询角色 @@ -24,7 +24,7 @@ public interface RoleMapper * @param userId 用户ID * @return 角色列表 */ - public List selectRolesByUserId(Long userId); + public List selectRolesByUserId(Long userId); /** * 通过角色ID查询角色 @@ -32,7 +32,7 @@ public interface RoleMapper * @param roleId 角色ID * @return 角色对象信息 */ - public Role selectRoleById(Long roleId); + public SysRole selectRoleById(Long roleId); /** * 通过角色ID删除角色 @@ -56,7 +56,7 @@ public interface RoleMapper * @param role 角色信息 * @return 结果 */ - public int updateRole(Role role); + public int updateRole(SysRole role); /** * 新增角色信息 @@ -64,7 +64,7 @@ public interface RoleMapper * @param role 角色信息 * @return 结果 */ - public int insertRole(Role role); + public int insertRole(SysRole role); /** * 校验角色名称是否唯一 @@ -72,7 +72,7 @@ public interface RoleMapper * @param roleName 角色名称 * @return 角色信息 */ - public Role checkRoleNameUnique(String roleName); + public SysRole checkRoleNameUnique(String roleName); /** * 校验角色权限是否唯一 @@ -80,5 +80,5 @@ public interface RoleMapper * @param roleKey 角色权限 * @return 角色信息 */ - public Role checkRoleKeyUnique(String roleKey); + public SysRole checkRoleKeyUnique(String roleKey); } diff --git a/src/main/java/com/ruoyi/project/system/role/mapper/RoleMenuMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleMenuMapper.java similarity index 76% rename from src/main/java/com/ruoyi/project/system/role/mapper/RoleMenuMapper.java rename to ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleMenuMapper.java index 6d05898c..5ed98f29 100644 --- a/src/main/java/com/ruoyi/project/system/role/mapper/RoleMenuMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleMenuMapper.java @@ -1,14 +1,14 @@ -package com.ruoyi.project.system.role.mapper; +package com.ruoyi.system.mapper; import java.util.List; -import com.ruoyi.project.system.role.domain.RoleMenu; +import com.ruoyi.system.domain.SysRoleMenu; /** * 角色与菜单关联表 数据层 * * @author ruoyi */ -public interface RoleMenuMapper +public interface SysRoleMenuMapper { /** * 通过角色ID删除角色和菜单关联 @@ -40,5 +40,5 @@ public interface RoleMenuMapper * @param roleMenuList 角色菜单列表 * @return 结果 */ - public int batchRoleMenu(List roleMenuList); + public int batchRoleMenu(List roleMenuList); } diff --git a/src/main/java/com/ruoyi/project/system/user/mapper/UserMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java similarity index 70% rename from src/main/java/com/ruoyi/project/system/user/mapper/UserMapper.java rename to ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java index 184c3839..397ccd12 100644 --- a/src/main/java/com/ruoyi/project/system/user/mapper/UserMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java @@ -1,14 +1,14 @@ -package com.ruoyi.project.system.user.mapper; +package com.ruoyi.system.mapper; -import com.ruoyi.project.system.user.domain.User; import java.util.List; +import com.ruoyi.system.domain.SysUser; /** * 用户表 数据层 * * @author ruoyi */ -public interface UserMapper +public interface SysUserMapper { /** * 根据条件分页查询用户对象 @@ -16,7 +16,7 @@ public interface UserMapper * @param user 用户信息 * @return 用户信息集合信息 */ - public List selectUserList(User user); + public List selectUserList(SysUser sysUser); /** * 通过用户名查询用户 @@ -24,7 +24,7 @@ public interface UserMapper * @param userName 用户名 * @return 用户对象信息 */ - public User selectUserByLoginName(String userName); + public SysUser selectUserByLoginName(String userName); /** * 通过手机号码查询用户 @@ -32,7 +32,7 @@ public interface UserMapper * @param phoneNumber 手机号码 * @return 用户对象信息 */ - public User selectUserByPhoneNumber(String phoneNumber); + public SysUser selectUserByPhoneNumber(String phoneNumber); /** * 通过邮箱查询用户 @@ -40,7 +40,7 @@ public interface UserMapper * @param email 邮箱 * @return 用户对象信息 */ - public User selectUserByEmail(String email); + public SysUser selectUserByEmail(String email); /** * 通过用户ID查询用户 @@ -48,7 +48,7 @@ public interface UserMapper * @param userId 用户ID * @return 用户对象信息 */ - public User selectUserById(Long userId); + public SysUser selectUserById(Long userId); /** * 通过用户ID删除用户 @@ -72,7 +72,7 @@ public interface UserMapper * @param user 用户信息 * @return 结果 */ - public int updateUser(User user); + public int updateUser(SysUser user); /** * 新增用户信息 @@ -80,7 +80,7 @@ public interface UserMapper * @param user 用户信息 * @return 结果 */ - public int insertUser(User user); + public int insertUser(SysUser user); /** * 校验用户名称是否唯一 @@ -96,7 +96,7 @@ public interface UserMapper * @param phonenumber 手机号码 * @return 结果 */ - public User checkPhoneUnique(String phonenumber); + public SysUser checkPhoneUnique(String phonenumber); /** * 校验email是否唯一 @@ -104,5 +104,5 @@ public interface UserMapper * @param email 用户邮箱 * @return 结果 */ - public User checkEmailUnique(String email); + public SysUser checkEmailUnique(String email); } diff --git a/src/main/java/com/ruoyi/project/monitor/online/mapper/UserOnlineMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserOnlineMapper.java similarity index 62% rename from src/main/java/com/ruoyi/project/monitor/online/mapper/UserOnlineMapper.java rename to ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserOnlineMapper.java index 32f4caa4..c6bf94cd 100644 --- a/src/main/java/com/ruoyi/project/monitor/online/mapper/UserOnlineMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserOnlineMapper.java @@ -1,14 +1,14 @@ -package com.ruoyi.project.monitor.online.mapper; +package com.ruoyi.system.mapper; import java.util.List; -import com.ruoyi.project.monitor.online.domain.UserOnline; +import com.ruoyi.system.domain.SysUserOnline; /** * 在线用户 数据层 * * @author ruoyi */ -public interface UserOnlineMapper +public interface SysUserOnlineMapper { /** * 通过会话序号查询信息 @@ -16,7 +16,7 @@ public interface UserOnlineMapper * @param sessionId 会话ID * @return 在线用户信息 */ - public UserOnline selectOnlineById(String sessionId); + public SysUserOnline selectOnlineById(String sessionId); /** * 通过会话序号删除信息 @@ -32,7 +32,7 @@ public interface UserOnlineMapper * @param online 会话信息 * @return 结果 */ - public int saveOnline(UserOnline online); + public int saveOnline(SysUserOnline online); /** * 查询会话集合 @@ -40,7 +40,7 @@ public interface UserOnlineMapper * @param userOnline 会话参数 * @return 会话集合 */ - public List selectUserOnlineList(UserOnline userOnline); + public List selectUserOnlineList(SysUserOnline userOnline); /** * 查询过期会话集合 @@ -48,5 +48,5 @@ public interface UserOnlineMapper * @param lastAccessTime 过期时间 * @return 会话集合 */ - public List selectOnlineByExpired(String lastAccessTime); + public List selectOnlineByExpired(String lastAccessTime); } diff --git a/src/main/java/com/ruoyi/project/system/user/mapper/UserPostMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserPostMapper.java similarity index 76% rename from src/main/java/com/ruoyi/project/system/user/mapper/UserPostMapper.java rename to ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserPostMapper.java index 4ecd6682..d2e8e7e5 100644 --- a/src/main/java/com/ruoyi/project/system/user/mapper/UserPostMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserPostMapper.java @@ -1,14 +1,14 @@ -package com.ruoyi.project.system.user.mapper; +package com.ruoyi.system.mapper; import java.util.List; -import com.ruoyi.project.system.user.domain.UserPost; +import com.ruoyi.system.domain.SysUserPost; /** * 用户与岗位 表 数据层 * * @author ruoyi */ -public interface UserPostMapper +public interface SysUserPostMapper { /** * 通过用户ID删除用户和岗位关联 @@ -40,5 +40,5 @@ public interface UserPostMapper * @param userPostList 用户角色列表 * @return 结果 */ - public int batchUserPost(List userPostList); + public int batchUserPost(List userPostList); } diff --git a/src/main/java/com/ruoyi/project/system/user/mapper/UserRoleMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserRoleMapper.java similarity index 75% rename from src/main/java/com/ruoyi/project/system/user/mapper/UserRoleMapper.java rename to ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserRoleMapper.java index b9805a43..d27eaf96 100644 --- a/src/main/java/com/ruoyi/project/system/user/mapper/UserRoleMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserRoleMapper.java @@ -1,14 +1,14 @@ -package com.ruoyi.project.system.user.mapper; +package com.ruoyi.system.mapper; import java.util.List; -import com.ruoyi.project.system.user.domain.UserRole; +import com.ruoyi.system.domain.SysUserRole; /** * 用户表 数据层 * * @author ruoyi */ -public interface UserRoleMapper +public interface SysUserRoleMapper { /** * 通过用户ID删除用户和角色关联 @@ -40,5 +40,5 @@ public interface UserRoleMapper * @param userRoleList 用户角色列表 * @return 结果 */ - public int batchUserRole(List userRoleList); + public int batchUserRole(List userRoleList); } diff --git a/src/main/java/com/ruoyi/project/system/config/service/IConfigService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysConfigService.java similarity index 69% rename from src/main/java/com/ruoyi/project/system/config/service/IConfigService.java rename to ruoyi-system/src/main/java/com/ruoyi/system/service/ISysConfigService.java index a2dd3502..949bf44c 100644 --- a/src/main/java/com/ruoyi/project/system/config/service/IConfigService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysConfigService.java @@ -1,14 +1,14 @@ -package com.ruoyi.project.system.config.service; +package com.ruoyi.system.service; -import com.ruoyi.project.system.config.domain.Config; import java.util.List; +import com.ruoyi.system.domain.SysConfig; /** * 参数配置 服务层 * * @author ruoyi */ -public interface IConfigService +public interface ISysConfigService { /** * 查询参数配置信息 @@ -16,7 +16,7 @@ public interface IConfigService * @param configId 参数配置ID * @return 参数配置信息 */ - public Config selectConfigById(Long configId); + public SysConfig selectConfigById(Long configId); /** * 根据键名查询参数配置信息 @@ -32,7 +32,7 @@ public interface IConfigService * @param config 参数配置信息 * @return 参数配置集合 */ - public List selectConfigList(Config config); + public List selectConfigList(SysConfig config); /** * 新增参数配置 @@ -40,7 +40,7 @@ public interface IConfigService * @param config 参数配置信息 * @return 结果 */ - public int insertConfig(Config config); + public int insertConfig(SysConfig config); /** * 修改参数配置 @@ -48,7 +48,7 @@ public interface IConfigService * @param config 参数配置信息 * @return 结果 */ - public int updateConfig(Config config); + public int updateConfig(SysConfig config); /** * 批量删除参数配置信息 @@ -64,5 +64,5 @@ public interface IConfigService * @param config 参数信息 * @return 结果 */ - public String checkConfigKeyUnique(Config config); + public String checkConfigKeyUnique(SysConfig config); } diff --git a/src/main/java/com/ruoyi/project/system/dept/service/IDeptService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDeptService.java similarity index 72% rename from src/main/java/com/ruoyi/project/system/dept/service/IDeptService.java rename to ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDeptService.java index 42eb1503..f8f3e375 100644 --- a/src/main/java/com/ruoyi/project/system/dept/service/IDeptService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDeptService.java @@ -1,17 +1,16 @@ -package com.ruoyi.project.system.dept.service; +package com.ruoyi.system.service; import java.util.List; import java.util.Map; - -import com.ruoyi.project.system.dept.domain.Dept; -import com.ruoyi.project.system.role.domain.Role; +import com.ruoyi.system.domain.SysDept; +import com.ruoyi.system.domain.SysRole; /** * 部门管理 服务层 * * @author ruoyi */ -public interface IDeptService +public interface ISysDeptService { /** * 查询部门管理数据 @@ -19,7 +18,7 @@ public interface IDeptService * @param dept 部门信息 * @return 部门信息集合 */ - public List selectDeptList(Dept dept); + public List selectDeptList(SysDept dept); /** * 查询部门管理树 @@ -34,7 +33,7 @@ public interface IDeptService * @param role 角色对象 * @return 菜单列表 */ - public List> roleDeptTreeData(Role role); + public List> roleDeptTreeData(SysRole role); /** * 查询部门人数 @@ -66,7 +65,7 @@ public interface IDeptService * @param dept 部门信息 * @return 结果 */ - public int insertDept(Dept dept); + public int insertDept(SysDept dept); /** * 修改保存部门信息 @@ -74,7 +73,7 @@ public interface IDeptService * @param dept 部门信息 * @return 结果 */ - public int updateDept(Dept dept); + public int updateDept(SysDept dept); /** * 根据部门ID查询信息 @@ -82,7 +81,7 @@ public interface IDeptService * @param deptId 部门ID * @return 部门信息 */ - public Dept selectDeptById(Long deptId); + public SysDept selectDeptById(Long deptId); /** * 校验部门名称是否唯一 @@ -90,5 +89,5 @@ public interface IDeptService * @param dept 部门信息 * @return 结果 */ - public String checkDeptNameUnique(Dept dept); + public String checkDeptNameUnique(SysDept dept); } diff --git a/src/main/java/com/ruoyi/project/system/dict/service/IDictDataService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDictDataService.java similarity index 73% rename from src/main/java/com/ruoyi/project/system/dict/service/IDictDataService.java rename to ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDictDataService.java index 1ef4ff0c..68d68d81 100644 --- a/src/main/java/com/ruoyi/project/system/dict/service/IDictDataService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDictDataService.java @@ -1,14 +1,14 @@ -package com.ruoyi.project.system.dict.service; +package com.ruoyi.system.service; import java.util.List; -import com.ruoyi.project.system.dict.domain.DictData; +import com.ruoyi.system.domain.SysDictData; /** * 字典 业务层 * * @author ruoyi */ -public interface IDictDataService +public interface ISysDictDataService { /** * 根据条件分页查询字典数据 @@ -16,7 +16,7 @@ public interface IDictDataService * @param dictData 字典数据信息 * @return 字典数据集合信息 */ - public List selectDictDataList(DictData dictData); + public List selectDictDataList(SysDictData dictData); /** * 根据字典类型查询字典数据 @@ -24,7 +24,7 @@ public interface IDictDataService * @param dictType 字典类型 * @return 字典数据集合信息 */ - public List selectDictDataByType(String dictType); + public List selectDictDataByType(String dictType); /** * 根据字典类型和字典键值查询字典数据信息 @@ -41,7 +41,7 @@ public interface IDictDataService * @param dictCode 字典数据ID * @return 字典数据 */ - public DictData selectDictDataById(Long dictCode); + public SysDictData selectDictDataById(Long dictCode); /** * 通过字典ID删除字典数据信息 @@ -65,7 +65,7 @@ public interface IDictDataService * @param dictData 字典数据信息 * @return 结果 */ - public int insertDictData(DictData dictData); + public int insertDictData(SysDictData dictData); /** * 修改保存字典数据信息 @@ -73,5 +73,5 @@ public interface IDictDataService * @param dictData 字典数据信息 * @return 结果 */ - public int updateDictData(DictData dictData); + public int updateDictData(SysDictData dictData); } diff --git a/src/main/java/com/ruoyi/project/system/dict/service/IDictTypeService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDictTypeService.java similarity index 69% rename from src/main/java/com/ruoyi/project/system/dict/service/IDictTypeService.java rename to ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDictTypeService.java index b37b7d42..0039de63 100644 --- a/src/main/java/com/ruoyi/project/system/dict/service/IDictTypeService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDictTypeService.java @@ -1,14 +1,14 @@ -package com.ruoyi.project.system.dict.service; +package com.ruoyi.system.service; import java.util.List; -import com.ruoyi.project.system.dict.domain.DictType; +import com.ruoyi.system.domain.SysDictType; /** * 字典 业务层 * * @author ruoyi */ -public interface IDictTypeService +public interface ISysDictTypeService { /** * 根据条件分页查询字典类型 @@ -16,14 +16,14 @@ public interface IDictTypeService * @param dictType 字典类型信息 * @return 字典类型集合信息 */ - public List selectDictTypeList(DictType dictType); + public List selectDictTypeList(SysDictType dictType); /** * 根据所有字典类型 * * @return 字典类型集合信息 */ - public List selectDictTypeAll(); + public List selectDictTypeAll(); /** * 根据字典类型ID查询信息 @@ -31,7 +31,7 @@ public interface IDictTypeService * @param dictId 字典类型ID * @return 字典类型 */ - public DictType selectDictTypeById(Long dictId); + public SysDictType selectDictTypeById(Long dictId); /** * 通过字典ID删除字典信息 @@ -56,7 +56,7 @@ public interface IDictTypeService * @param dictType 字典类型信息 * @return 结果 */ - public int insertDictType(DictType dictType); + public int insertDictType(SysDictType dictType); /** * 修改保存字典类型信息 @@ -64,7 +64,7 @@ public interface IDictTypeService * @param dictType 字典类型信息 * @return 结果 */ - public int updateDictType(DictType dictType); + public int updateDictType(SysDictType dictType); /** * 校验字典类型称是否唯一 @@ -72,5 +72,5 @@ public interface IDictTypeService * @param dictType 字典类型 * @return 结果 */ - public String checkDictTypeUnique(DictType dictType); + public String checkDictTypeUnique(SysDictType dictType); } diff --git a/src/main/java/com/ruoyi/project/monitor/logininfor/service/ILogininforService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysLogininforService.java similarity index 64% rename from src/main/java/com/ruoyi/project/monitor/logininfor/service/ILogininforService.java rename to ruoyi-system/src/main/java/com/ruoyi/system/service/ISysLogininforService.java index 14ccce8f..8e292c25 100644 --- a/src/main/java/com/ruoyi/project/monitor/logininfor/service/ILogininforService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysLogininforService.java @@ -1,21 +1,21 @@ -package com.ruoyi.project.monitor.logininfor.service; +package com.ruoyi.system.service; import java.util.List; -import com.ruoyi.project.monitor.logininfor.domain.Logininfor; +import com.ruoyi.system.domain.SysLogininfor; /** * 系统访问日志情况信息 服务层 * * @author ruoyi */ -public interface ILogininforService +public interface ISysLogininforService { /** * 新增系统登录日志 * * @param logininfor 访问日志对象 */ - public void insertLogininfor(Logininfor logininfor); + public void insertLogininfor(SysLogininfor logininfor); /** * 查询系统登录日志集合 @@ -23,7 +23,7 @@ public interface ILogininforService * @param logininfor 访问日志对象 * @return 登录记录集合 */ - public List selectLogininforList(Logininfor logininfor); + public List selectLogininforList(SysLogininfor logininfor); /** * 批量删除系统登录日志 @@ -32,7 +32,7 @@ public interface ILogininforService * @return */ public int deleteLogininforByIds(String ids); - + /** * 清空系统登录日志 */ diff --git a/src/main/java/com/ruoyi/project/system/menu/service/IMenuService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuService.java similarity index 72% rename from src/main/java/com/ruoyi/project/system/menu/service/IMenuService.java rename to ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuService.java index bfd498a5..cc626691 100644 --- a/src/main/java/com/ruoyi/project/system/menu/service/IMenuService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuService.java @@ -1,18 +1,18 @@ -package com.ruoyi.project.system.menu.service; +package com.ruoyi.system.service; import java.util.List; import java.util.Map; import java.util.Set; -import com.ruoyi.project.system.menu.domain.Menu; -import com.ruoyi.project.system.role.domain.Role; -import com.ruoyi.project.system.user.domain.User; +import com.ruoyi.system.domain.SysMenu; +import com.ruoyi.system.domain.SysRole; +import com.ruoyi.system.domain.SysUser; /** * 菜单 业务层 * * @author ruoyi */ -public interface IMenuService +public interface ISysMenuService { /** * 根据用户ID查询菜单 @@ -20,7 +20,7 @@ public interface IMenuService * @param user 用户信息 * @return 菜单列表 */ - public List selectMenusByUser(User user); + public List selectMenusByUser(SysUser user); /** * 查询系统菜单列表 @@ -28,14 +28,14 @@ public interface IMenuService * @param menu 菜单信息 * @return 菜单列表 */ - public List selectMenuList(Menu menu); + public List selectMenuList(SysMenu menu); /** * 查询菜单集合 * * @return 所有菜单信息 */ - public List selectMenuAll(); + public List selectMenuAll(); /** * 根据用户ID查询权限 @@ -51,7 +51,7 @@ public interface IMenuService * @param role 角色对象 * @return 菜单列表 */ - public List> roleMenuTreeData(Role role); + public List> roleMenuTreeData(SysRole role); /** * 查询所有菜单信息 @@ -81,7 +81,7 @@ public interface IMenuService * @param menuId 菜单ID * @return 菜单信息 */ - public Menu selectMenuById(Long menuId); + public SysMenu selectMenuById(Long menuId); /** * 查询菜单数量 @@ -105,7 +105,7 @@ public interface IMenuService * @param menu 菜单信息 * @return 结果 */ - public int insertMenu(Menu menu); + public int insertMenu(SysMenu menu); /** * 修改保存菜单信息 @@ -113,7 +113,7 @@ public interface IMenuService * @param menu 菜单信息 * @return 结果 */ - public int updateMenu(Menu menu); + public int updateMenu(SysMenu menu); /** * 校验菜单名称是否唯一 @@ -121,5 +121,5 @@ public interface IMenuService * @param menu 菜单信息 * @return 结果 */ - public String checkMenuNameUnique(Menu menu); + public String checkMenuNameUnique(SysMenu menu); } diff --git a/src/main/java/com/ruoyi/project/system/notice/service/INoticeService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysNoticeService.java similarity index 63% rename from src/main/java/com/ruoyi/project/system/notice/service/INoticeService.java rename to ruoyi-system/src/main/java/com/ruoyi/system/service/ISysNoticeService.java index 96276bc8..abd6d7af 100644 --- a/src/main/java/com/ruoyi/project/system/notice/service/INoticeService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysNoticeService.java @@ -1,14 +1,14 @@ -package com.ruoyi.project.system.notice.service; +package com.ruoyi.system.service; -import com.ruoyi.project.system.notice.domain.Notice; import java.util.List; +import com.ruoyi.system.domain.SysNotice; /** * 公告 服务层 * * @author ruoyi */ -public interface INoticeService +public interface ISysNoticeService { /** * 查询公告信息 @@ -16,7 +16,7 @@ public interface INoticeService * @param noticeId 公告ID * @return 公告信息 */ - public Notice selectNoticeById(Long noticeId); + public SysNotice selectNoticeById(Long noticeId); /** * 查询公告列表 @@ -24,7 +24,7 @@ public interface INoticeService * @param notice 公告信息 * @return 公告集合 */ - public List selectNoticeList(Notice notice); + public List selectNoticeList(SysNotice notice); /** * 新增公告 @@ -32,7 +32,7 @@ public interface INoticeService * @param notice 公告信息 * @return 结果 */ - public int insertNotice(Notice notice); + public int insertNotice(SysNotice notice); /** * 修改公告 @@ -40,7 +40,7 @@ public interface INoticeService * @param notice 公告信息 * @return 结果 */ - public int updateNotice(Notice notice); + public int updateNotice(SysNotice notice); /** * 删除公告信息 diff --git a/src/main/java/com/ruoyi/project/monitor/operlog/service/IOperLogService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysOperLogService.java similarity index 65% rename from src/main/java/com/ruoyi/project/monitor/operlog/service/IOperLogService.java rename to ruoyi-system/src/main/java/com/ruoyi/system/service/ISysOperLogService.java index f4dcdff9..61efe602 100644 --- a/src/main/java/com/ruoyi/project/monitor/operlog/service/IOperLogService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysOperLogService.java @@ -1,21 +1,21 @@ -package com.ruoyi.project.monitor.operlog.service; +package com.ruoyi.system.service; import java.util.List; -import com.ruoyi.project.monitor.operlog.domain.OperLog; +import com.ruoyi.system.domain.SysOperLog; /** * 操作日志 服务层 * * @author ruoyi */ -public interface IOperLogService +public interface ISysOperLogService { /** * 新增操作日志 * * @param operLog 操作日志对象 */ - public void insertOperlog(OperLog operLog); + public void insertOperlog(SysOperLog operLog); /** * 查询系统操作日志集合 @@ -23,7 +23,7 @@ public interface IOperLogService * @param operLog 操作日志对象 * @return 操作日志集合 */ - public List selectOperLogList(OperLog operLog); + public List selectOperLogList(SysOperLog operLog); /** * 批量删除系统操作日志 @@ -39,8 +39,8 @@ public interface IOperLogService * @param operId 操作ID * @return 操作日志对象 */ - public OperLog selectOperLogById(Long operId); - + public SysOperLog selectOperLogById(Long operId); + /** * 清空操作日志 */ diff --git a/src/main/java/com/ruoyi/project/system/post/service/IPostService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysPostService.java similarity index 69% rename from src/main/java/com/ruoyi/project/system/post/service/IPostService.java rename to ruoyi-system/src/main/java/com/ruoyi/system/service/ISysPostService.java index 93edd60c..bbf7b784 100644 --- a/src/main/java/com/ruoyi/project/system/post/service/IPostService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysPostService.java @@ -1,14 +1,14 @@ -package com.ruoyi.project.system.post.service; +package com.ruoyi.system.service; import java.util.List; -import com.ruoyi.project.system.post.domain.Post; +import com.ruoyi.system.domain.SysPost; /** * 岗位信息 服务层 * * @author ruoyi */ -public interface IPostService +public interface ISysPostService { /** * 查询岗位信息集合 @@ -16,14 +16,14 @@ public interface IPostService * @param post 岗位信息 * @return 岗位信息集合 */ - public List selectPostList(Post post); + public List selectPostList(SysPost post); /** * 查询所有岗位 * * @return 岗位列表 */ - public List selectPostAll(); + public List selectPostAll(); /** * 根据用户ID查询岗位 @@ -31,7 +31,7 @@ public interface IPostService * @param userId 用户ID * @return 岗位列表 */ - public List selectPostsByUserId(Long userId); + public List selectPostsByUserId(Long userId); /** * 通过岗位ID查询岗位信息 @@ -39,7 +39,7 @@ public interface IPostService * @param postId 岗位ID * @return 角色对象信息 */ - public Post selectPostById(Long postId); + public SysPost selectPostById(Long postId); /** * 批量删除岗位信息 @@ -56,7 +56,7 @@ public interface IPostService * @param post 岗位信息 * @return 结果 */ - public int insertPost(Post post); + public int insertPost(SysPost post); /** * 修改保存岗位信息 @@ -64,7 +64,7 @@ public interface IPostService * @param post 岗位信息 * @return 结果 */ - public int updatePost(Post post); + public int updatePost(SysPost post); /** * 通过岗位ID查询岗位使用数量 @@ -80,7 +80,7 @@ public interface IPostService * @param post 岗位信息 * @return 结果 */ - public String checkPostNameUnique(Post post); + public String checkPostNameUnique(SysPost post); /** * 校验岗位编码 @@ -88,5 +88,5 @@ public interface IPostService * @param post 岗位信息 * @return 结果 */ - public String checkPostCodeUnique(Post post); + public String checkPostCodeUnique(SysPost post); } diff --git a/src/main/java/com/ruoyi/project/system/role/service/IRoleService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysRoleService.java similarity index 73% rename from src/main/java/com/ruoyi/project/system/role/service/IRoleService.java rename to ruoyi-system/src/main/java/com/ruoyi/system/service/ISysRoleService.java index 383e086f..8f5853d2 100644 --- a/src/main/java/com/ruoyi/project/system/role/service/IRoleService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysRoleService.java @@ -1,15 +1,15 @@ -package com.ruoyi.project.system.role.service; +package com.ruoyi.system.service; import java.util.List; import java.util.Set; -import com.ruoyi.project.system.role.domain.Role; +import com.ruoyi.system.domain.SysRole; /** * 角色业务层 * * @author ruoyi */ -public interface IRoleService +public interface ISysRoleService { /** * 根据条件分页查询角色数据 @@ -17,7 +17,7 @@ public interface IRoleService * @param role 角色信息 * @return 角色数据集合信息 */ - public List selectRoleList(Role role); + public List selectRoleList(SysRole role); /** * 根据用户ID查询角色 @@ -33,14 +33,14 @@ public interface IRoleService * @param userId 用户ID * @return 角色列表 */ - public List selectRolesByUserId(Long userId); + public List selectRolesByUserId(Long userId); /** * 查询所有角色 * * @return 角色列表 */ - public List selectRoleAll(); + public List selectRoleAll(); /** * 通过角色ID查询角色 @@ -48,7 +48,7 @@ public interface IRoleService * @param roleId 角色ID * @return 角色对象信息 */ - public Role selectRoleById(Long roleId); + public SysRole selectRoleById(Long roleId); /** * 通过角色ID删除角色 @@ -73,7 +73,7 @@ public interface IRoleService * @param role 角色信息 * @return 结果 */ - public int insertRole(Role role); + public int insertRole(SysRole role); /** * 修改保存角色信息 @@ -81,15 +81,15 @@ public interface IRoleService * @param role 角色信息 * @return 结果 */ - public int updateRole(Role role); - + public int updateRole(SysRole role); + /** * 修改数据权限信息 * * @param role 角色信息 * @return 结果 */ - public int updateRule(Role role); + public int updateRule(SysRole role); /** * 校验角色名称是否唯一 @@ -97,15 +97,15 @@ public interface IRoleService * @param role 角色信息 * @return 结果 */ - public String checkRoleNameUnique(Role role); - + public String checkRoleNameUnique(SysRole role); + /** * 校验角色权限是否唯一 * * @param role 角色信息 * @return 结果 */ - public String checkRoleKeyUnique(Role role); + public String checkRoleKeyUnique(SysRole role); /** * 通过角色ID查询角色使用数量 diff --git a/src/main/java/com/ruoyi/project/monitor/online/service/IUserOnlineService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserOnlineService.java similarity index 69% rename from src/main/java/com/ruoyi/project/monitor/online/service/IUserOnlineService.java rename to ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserOnlineService.java index dd2ffea9..1ed90806 100644 --- a/src/main/java/com/ruoyi/project/monitor/online/service/IUserOnlineService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserOnlineService.java @@ -1,15 +1,15 @@ -package com.ruoyi.project.monitor.online.service; +package com.ruoyi.system.service; import java.util.Date; import java.util.List; -import com.ruoyi.project.monitor.online.domain.UserOnline; +import com.ruoyi.system.domain.SysUserOnline; /** * 在线用户 服务层 * * @author ruoyi */ -public interface IUserOnlineService +public interface ISysUserOnlineService { /** * 通过会话序号查询信息 @@ -17,7 +17,7 @@ public interface IUserOnlineService * @param sessionId 会话ID * @return 在线用户信息 */ - public UserOnline selectOnlineById(String sessionId); + public SysUserOnline selectOnlineById(String sessionId); /** * 通过会话序号删除信息 @@ -40,7 +40,7 @@ public interface IUserOnlineService * * @param online 会话信息 */ - public void saveOnline(UserOnline online); + public void saveOnline(SysUserOnline online); /** * 查询会话集合 @@ -48,7 +48,7 @@ public interface IUserOnlineService * @param userOnline 分页参数 * @return 会话集合 */ - public List selectUserOnlineList(UserOnline userOnline); + public List selectUserOnlineList(SysUserOnline userOnline); /** * 强退用户 @@ -63,5 +63,5 @@ public interface IUserOnlineService * @param expiredDate 有效期 * @return 会话集合 */ - public List selectOnlineByExpired(Date expiredDate); + public List selectOnlineByExpired(Date expiredDate); } diff --git a/src/main/java/com/ruoyi/project/system/user/service/IUserService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java similarity index 74% rename from src/main/java/com/ruoyi/project/system/user/service/IUserService.java rename to ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java index 9200dd51..bdff6ee2 100644 --- a/src/main/java/com/ruoyi/project/system/user/service/IUserService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java @@ -1,14 +1,14 @@ -package com.ruoyi.project.system.user.service; +package com.ruoyi.system.service; -import com.ruoyi.project.system.user.domain.User; import java.util.List; +import com.ruoyi.system.domain.SysUser; /** * 用户 业务层 * * @author ruoyi */ -public interface IUserService +public interface ISysUserService { /** * 根据条件分页查询用户对象 @@ -16,7 +16,7 @@ public interface IUserService * @param user 用户信息 * @return 用户信息集合信息 */ - public List selectUserList(User user); + public List selectUserList(SysUser user); /** * 通过用户名查询用户 @@ -24,7 +24,7 @@ public interface IUserService * @param userName 用户名 * @return 用户对象信息 */ - public User selectUserByLoginName(String userName); + public SysUser selectUserByLoginName(String userName); /** * 通过手机号码查询用户 @@ -32,7 +32,7 @@ public interface IUserService * @param phoneNumber 手机号码 * @return 用户对象信息 */ - public User selectUserByPhoneNumber(String phoneNumber); + public SysUser selectUserByPhoneNumber(String phoneNumber); /** * 通过邮箱查询用户 @@ -40,7 +40,7 @@ public interface IUserService * @param email 邮箱 * @return 用户对象信息 */ - public User selectUserByEmail(String email); + public SysUser selectUserByEmail(String email); /** * 通过用户ID查询用户 @@ -48,7 +48,7 @@ public interface IUserService * @param userId 用户ID * @return 用户对象信息 */ - public User selectUserById(Long userId); + public SysUser selectUserById(Long userId); /** * 通过用户ID删除用户 @@ -73,7 +73,7 @@ public interface IUserService * @param user 用户信息 * @return 结果 */ - public int insertUser(User user); + public int insertUser(SysUser user); /** * 保存用户信息 @@ -81,7 +81,7 @@ public interface IUserService * @param user 用户信息 * @return 结果 */ - public int updateUser(User user); + public int updateUser(SysUser user); /** * 修改用户详细信息 @@ -89,7 +89,7 @@ public interface IUserService * @param user 用户信息 * @return 结果 */ - public int updateUserInfo(User user); + public int updateUserInfo(SysUser user); /** * 修改用户密码信息 @@ -97,7 +97,7 @@ public interface IUserService * @param user 用户信息 * @return 结果 */ - public int resetUserPwd(User user); + public int resetUserPwd(SysUser user); /** * 校验用户名称是否唯一 @@ -113,7 +113,7 @@ public interface IUserService * @param user 用户信息 * @return 结果 */ - public String checkPhoneUnique(User user); + public String checkPhoneUnique(SysUser user); /** * 校验email是否唯一 @@ -121,7 +121,7 @@ public interface IUserService * @param user 用户信息 * @return 结果 */ - public String checkEmailUnique(User user); + public String checkEmailUnique(SysUser user); /** * 根据用户ID查询用户所属角色组 diff --git a/src/main/java/com/ruoyi/project/system/config/service/ConfigServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysConfigServiceImpl.java similarity index 69% rename from src/main/java/com/ruoyi/project/system/config/service/ConfigServiceImpl.java rename to ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysConfigServiceImpl.java index 5b48aac2..de25aec4 100644 --- a/src/main/java/com/ruoyi/project/system/config/service/ConfigServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysConfigServiceImpl.java @@ -1,4 +1,4 @@ -package com.ruoyi.project.system.config.service; +package com.ruoyi.system.service.impl; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; @@ -6,9 +6,9 @@ import org.springframework.stereotype.Service; import com.ruoyi.common.constant.UserConstants; import com.ruoyi.common.support.Convert; import com.ruoyi.common.utils.StringUtils; -import com.ruoyi.common.utils.security.ShiroUtils; -import com.ruoyi.project.system.config.domain.Config; -import com.ruoyi.project.system.config.mapper.ConfigMapper; +import com.ruoyi.system.domain.SysConfig; +import com.ruoyi.system.mapper.SysConfigMapper; +import com.ruoyi.system.service.ISysConfigService; /** * 参数配置 服务层实现 @@ -16,10 +16,10 @@ import com.ruoyi.project.system.config.mapper.ConfigMapper; * @author ruoyi */ @Service -public class ConfigServiceImpl implements IConfigService +public class SysConfigServiceImpl implements ISysConfigService { @Autowired - private ConfigMapper configMapper; + private SysConfigMapper configMapper; /** * 查询参数配置信息 @@ -28,9 +28,9 @@ public class ConfigServiceImpl implements IConfigService * @return 参数配置信息 */ @Override - public Config selectConfigById(Long configId) + public SysConfig selectConfigById(Long configId) { - Config config = new Config(); + SysConfig config = new SysConfig(); config.setConfigId(configId); return configMapper.selectConfig(config); } @@ -44,9 +44,9 @@ public class ConfigServiceImpl implements IConfigService @Override public String selectConfigByKey(String configKey) { - Config config = new Config(); + SysConfig config = new SysConfig(); config.setConfigKey(configKey); - Config retConfig = configMapper.selectConfig(config); + SysConfig retConfig = configMapper.selectConfig(config); return StringUtils.isNotNull(retConfig) ? retConfig.getConfigValue() : ""; } @@ -57,7 +57,7 @@ public class ConfigServiceImpl implements IConfigService * @return 参数配置集合 */ @Override - public List selectConfigList(Config config) + public List selectConfigList(SysConfig config) { return configMapper.selectConfigList(config); } @@ -69,9 +69,8 @@ public class ConfigServiceImpl implements IConfigService * @return 结果 */ @Override - public int insertConfig(Config config) + public int insertConfig(SysConfig config) { - config.setCreateBy(ShiroUtils.getLoginName()); return configMapper.insertConfig(config); } @@ -82,9 +81,8 @@ public class ConfigServiceImpl implements IConfigService * @return 结果 */ @Override - public int updateConfig(Config config) + public int updateConfig(SysConfig config) { - config.setUpdateBy(ShiroUtils.getLoginName()); return configMapper.updateConfig(config); } @@ -107,10 +105,10 @@ public class ConfigServiceImpl implements IConfigService * @return 结果 */ @Override - public String checkConfigKeyUnique(Config config) + public String checkConfigKeyUnique(SysConfig config) { Long configId = StringUtils.isNull(config.getConfigId()) ? -1L : config.getConfigId(); - Config info = configMapper.checkConfigKeyUnique(config.getConfigKey()); + SysConfig info = configMapper.checkConfigKeyUnique(config.getConfigKey()); if (StringUtils.isNotNull(info) && info.getConfigId().longValue() != configId.longValue()) { return UserConstants.CONFIG_KEY_NOT_UNIQUE; diff --git a/src/main/java/com/ruoyi/project/system/dept/service/DeptServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java similarity index 75% rename from src/main/java/com/ruoyi/project/system/dept/service/DeptServiceImpl.java rename to ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java index c42cb8bf..57e33944 100644 --- a/src/main/java/com/ruoyi/project/system/dept/service/DeptServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java @@ -1,4 +1,4 @@ -package com.ruoyi.project.system.dept.service; +package com.ruoyi.system.service.impl; import java.util.ArrayList; import java.util.HashMap; @@ -6,13 +6,13 @@ import java.util.List; import java.util.Map; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import com.ruoyi.common.annotation.DataScope; import com.ruoyi.common.constant.UserConstants; import com.ruoyi.common.utils.StringUtils; -import com.ruoyi.common.utils.security.ShiroUtils; -import com.ruoyi.framework.aspectj.lang.annotation.DataScope; -import com.ruoyi.project.system.dept.domain.Dept; -import com.ruoyi.project.system.dept.mapper.DeptMapper; -import com.ruoyi.project.system.role.domain.Role; +import com.ruoyi.system.domain.SysDept; +import com.ruoyi.system.domain.SysRole; +import com.ruoyi.system.mapper.SysDeptMapper; +import com.ruoyi.system.service.ISysDeptService; /** * 部门管理 服务实现 @@ -20,10 +20,10 @@ import com.ruoyi.project.system.role.domain.Role; * @author ruoyi */ @Service -public class DeptServiceImpl implements IDeptService +public class SysDeptServiceImpl implements ISysDeptService { @Autowired - private DeptMapper deptMapper; + private SysDeptMapper deptMapper; /** * 查询部门管理数据 @@ -32,7 +32,7 @@ public class DeptServiceImpl implements IDeptService */ @Override @DataScope(tableAlias = "d") - public List selectDeptList(Dept dept) + public List selectDeptList(SysDept dept) { return deptMapper.selectDeptList(dept); } @@ -46,7 +46,7 @@ public class DeptServiceImpl implements IDeptService public List> selectDeptTree() { List> trees = new ArrayList>(); - List deptList = selectDeptList(new Dept()); + List deptList = selectDeptList(new SysDept()); trees = getTrees(deptList, false, null); return trees; } @@ -58,11 +58,11 @@ public class DeptServiceImpl implements IDeptService * @return 部门列表(数据权限) */ @Override - public List> roleDeptTreeData(Role role) + public List> roleDeptTreeData(SysRole role) { Long roleId = role.getRoleId(); List> trees = new ArrayList>(); - List deptList = selectDeptList(new Dept()); + List deptList = selectDeptList(new SysDept()); if (StringUtils.isNotNull(roleId)) { List roleDeptList = deptMapper.selectRoleDeptTree(roleId); @@ -83,11 +83,11 @@ public class DeptServiceImpl implements IDeptService * @param roleDeptList 角色已存在菜单列表 * @return */ - public List> getTrees(List deptList, boolean isCheck, List roleDeptList) + public List> getTrees(List deptList, boolean isCheck, List roleDeptList) { List> trees = new ArrayList>(); - for (Dept dept : deptList) + for (SysDept dept : deptList) { if (UserConstants.DEPT_NORMAL.equals(dept.getStatus())) { @@ -119,7 +119,7 @@ public class DeptServiceImpl implements IDeptService @Override public int selectDeptCount(Long parentId) { - Dept dept = new Dept(); + SysDept dept = new SysDept(); dept.setParentId(parentId); return deptMapper.selectDeptCount(dept); } @@ -156,10 +156,9 @@ public class DeptServiceImpl implements IDeptService * @return 结果 */ @Override - public int insertDept(Dept dept) + public int insertDept(SysDept dept) { - Dept info = deptMapper.selectDeptById(dept.getParentId()); - dept.setCreateBy(ShiroUtils.getLoginName()); + SysDept info = deptMapper.selectDeptById(dept.getParentId()); dept.setAncestors(info.getAncestors() + "," + dept.getParentId()); return deptMapper.insertDept(dept); } @@ -171,11 +170,10 @@ public class DeptServiceImpl implements IDeptService * @return 结果 */ @Override - public int updateDept(Dept dept) + public int updateDept(SysDept dept) { - Dept info = deptMapper.selectDeptById(dept.getParentId()); + SysDept info = deptMapper.selectDeptById(dept.getParentId()); String ancestors = info.getAncestors() + "," + dept.getParentId(); - dept.setUpdateBy(ShiroUtils.getLoginName()); dept.setAncestors(ancestors); updateDeptChildren(dept.getDeptId(), ancestors); return deptMapper.updateDept(dept); @@ -189,10 +187,10 @@ public class DeptServiceImpl implements IDeptService */ public void updateDeptChildren(Long deptId, String ancestors) { - Dept dept = new Dept(); + SysDept dept = new SysDept(); dept.setParentId(deptId); - List childrens = deptMapper.selectDeptList(dept); - for (Dept children : childrens) + List childrens = deptMapper.selectDeptList(dept); + for (SysDept children : childrens) { children.setAncestors(ancestors + "," + dept.getParentId()); } @@ -209,7 +207,7 @@ public class DeptServiceImpl implements IDeptService * @return 部门信息 */ @Override - public Dept selectDeptById(Long deptId) + public SysDept selectDeptById(Long deptId) { return deptMapper.selectDeptById(deptId); } @@ -221,10 +219,10 @@ public class DeptServiceImpl implements IDeptService * @return 结果 */ @Override - public String checkDeptNameUnique(Dept dept) + public String checkDeptNameUnique(SysDept dept) { Long deptId = StringUtils.isNull(dept.getDeptId()) ? -1L : dept.getDeptId(); - Dept info = deptMapper.checkDeptNameUnique(dept.getDeptName(), dept.getParentId()); + SysDept info = deptMapper.checkDeptNameUnique(dept.getDeptName(), dept.getParentId()); if (StringUtils.isNotNull(info) && info.getDeptId().longValue() != deptId.longValue()) { return UserConstants.DEPT_NAME_NOT_UNIQUE; diff --git a/src/main/java/com/ruoyi/project/system/dict/service/DictDataServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictDataServiceImpl.java similarity index 73% rename from src/main/java/com/ruoyi/project/system/dict/service/DictDataServiceImpl.java rename to ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictDataServiceImpl.java index 0be11bb3..4f8ae61d 100644 --- a/src/main/java/com/ruoyi/project/system/dict/service/DictDataServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictDataServiceImpl.java @@ -1,12 +1,12 @@ -package com.ruoyi.project.system.dict.service; +package com.ruoyi.system.service.impl; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.ruoyi.common.support.Convert; -import com.ruoyi.common.utils.security.ShiroUtils; -import com.ruoyi.project.system.dict.domain.DictData; -import com.ruoyi.project.system.dict.mapper.DictDataMapper; +import com.ruoyi.system.domain.SysDictData; +import com.ruoyi.system.mapper.SysDictDataMapper; +import com.ruoyi.system.service.ISysDictDataService; /** * 字典 业务层处理 @@ -14,10 +14,10 @@ import com.ruoyi.project.system.dict.mapper.DictDataMapper; * @author ruoyi */ @Service -public class DictDataServiceImpl implements IDictDataService +public class SysDictDataServiceImpl implements ISysDictDataService { @Autowired - private DictDataMapper dictDataMapper; + private SysDictDataMapper dictDataMapper; /** * 根据条件分页查询字典数据 @@ -26,7 +26,7 @@ public class DictDataServiceImpl implements IDictDataService * @return 字典数据集合信息 */ @Override - public List selectDictDataList(DictData dictData) + public List selectDictDataList(SysDictData dictData) { return dictDataMapper.selectDictDataList(dictData); } @@ -38,7 +38,7 @@ public class DictDataServiceImpl implements IDictDataService * @return 字典数据集合信息 */ @Override - public List selectDictDataByType(String dictType) + public List selectDictDataByType(String dictType) { return dictDataMapper.selectDictDataByType(dictType); } @@ -63,7 +63,7 @@ public class DictDataServiceImpl implements IDictDataService * @return 字典数据 */ @Override - public DictData selectDictDataById(Long dictCode) + public SysDictData selectDictDataById(Long dictCode) { return dictDataMapper.selectDictDataById(dictCode); } @@ -99,9 +99,8 @@ public class DictDataServiceImpl implements IDictDataService * @return 结果 */ @Override - public int insertDictData(DictData dictData) + public int insertDictData(SysDictData dictData) { - dictData.setCreateBy(ShiroUtils.getLoginName()); return dictDataMapper.insertDictData(dictData); } @@ -112,9 +111,8 @@ public class DictDataServiceImpl implements IDictDataService * @return 结果 */ @Override - public int updateDictData(DictData dictData) + public int updateDictData(SysDictData dictData) { - dictData.setUpdateBy(ShiroUtils.getLoginName()); return dictDataMapper.updateDictData(dictData); } } diff --git a/src/main/java/com/ruoyi/project/system/dict/service/DictTypeServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictTypeServiceImpl.java similarity index 69% rename from src/main/java/com/ruoyi/project/system/dict/service/DictTypeServiceImpl.java rename to ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictTypeServiceImpl.java index 8bf77919..fa3d2340 100644 --- a/src/main/java/com/ruoyi/project/system/dict/service/DictTypeServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictTypeServiceImpl.java @@ -1,4 +1,4 @@ -package com.ruoyi.project.system.dict.service; +package com.ruoyi.system.service.impl; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; @@ -6,10 +6,10 @@ import org.springframework.stereotype.Service; import com.ruoyi.common.constant.UserConstants; import com.ruoyi.common.support.Convert; import com.ruoyi.common.utils.StringUtils; -import com.ruoyi.common.utils.security.ShiroUtils; -import com.ruoyi.project.system.dict.domain.DictType; -import com.ruoyi.project.system.dict.mapper.DictDataMapper; -import com.ruoyi.project.system.dict.mapper.DictTypeMapper; +import com.ruoyi.system.domain.SysDictType; +import com.ruoyi.system.mapper.SysDictDataMapper; +import com.ruoyi.system.mapper.SysDictTypeMapper; +import com.ruoyi.system.service.ISysDictTypeService; /** * 字典 业务层处理 @@ -17,13 +17,13 @@ import com.ruoyi.project.system.dict.mapper.DictTypeMapper; * @author ruoyi */ @Service -public class DictTypeServiceImpl implements IDictTypeService +public class SysDictTypeServiceImpl implements ISysDictTypeService { @Autowired - private DictTypeMapper dictTypeMapper; + private SysDictTypeMapper dictTypeMapper; @Autowired - private DictDataMapper dictDataMapper; + private SysDictDataMapper dictDataMapper; /** * 根据条件分页查询字典类型 @@ -32,7 +32,7 @@ public class DictTypeServiceImpl implements IDictTypeService * @return 字典类型集合信息 */ @Override - public List selectDictTypeList(DictType dictType) + public List selectDictTypeList(SysDictType dictType) { return dictTypeMapper.selectDictTypeList(dictType); } @@ -43,7 +43,7 @@ public class DictTypeServiceImpl implements IDictTypeService * @return 字典类型集合信息 */ @Override - public List selectDictTypeAll() + public List selectDictTypeAll() { return dictTypeMapper.selectDictTypeAll(); } @@ -55,7 +55,7 @@ public class DictTypeServiceImpl implements IDictTypeService * @return 字典类型 */ @Override - public DictType selectDictTypeById(Long dictId) + public SysDictType selectDictTypeById(Long dictId) { return dictTypeMapper.selectDictTypeById(dictId); } @@ -84,7 +84,7 @@ public class DictTypeServiceImpl implements IDictTypeService Long[] dictIds = Convert.toLongArray(ids); for (Long dictId : dictIds) { - DictType dictType = selectDictTypeById(dictId); + SysDictType dictType = selectDictTypeById(dictId); if (dictDataMapper.countDictDataByType(dictType.getDictType()) > 0) { throw new Exception(String.format("%1$s已分配,不能删除", dictType.getDictName())); @@ -101,9 +101,8 @@ public class DictTypeServiceImpl implements IDictTypeService * @return 结果 */ @Override - public int insertDictType(DictType dictType) + public int insertDictType(SysDictType dictType) { - dictType.setCreateBy(ShiroUtils.getLoginName()); return dictTypeMapper.insertDictType(dictType); } @@ -114,10 +113,9 @@ public class DictTypeServiceImpl implements IDictTypeService * @return 结果 */ @Override - public int updateDictType(DictType dictType) + public int updateDictType(SysDictType dictType) { - dictType.setUpdateBy(ShiroUtils.getLoginName()); - DictType oldDict = dictTypeMapper.selectDictTypeById(dictType.getDictId()); + SysDictType oldDict = dictTypeMapper.selectDictTypeById(dictType.getDictId()); dictDataMapper.updateDictDataType(oldDict.getDictType(), dictType.getDictType()); return dictTypeMapper.updateDictType(dictType); } @@ -129,10 +127,10 @@ public class DictTypeServiceImpl implements IDictTypeService * @return 结果 */ @Override - public String checkDictTypeUnique(DictType dict) + public String checkDictTypeUnique(SysDictType dict) { Long dictId = StringUtils.isNull(dict.getDictId()) ? -1L : dict.getDictId(); - DictType dictType = dictTypeMapper.checkDictTypeUnique(dict.getDictType()); + SysDictType dictType = dictTypeMapper.checkDictTypeUnique(dict.getDictType()); if (StringUtils.isNotNull(dictType) && dictType.getDictId().longValue() != dictId.longValue()) { return UserConstants.DICT_TYPE_NOT_UNIQUE; diff --git a/src/main/java/com/ruoyi/project/monitor/logininfor/service/LogininforServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysLogininforServiceImpl.java similarity index 68% rename from src/main/java/com/ruoyi/project/monitor/logininfor/service/LogininforServiceImpl.java rename to ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysLogininforServiceImpl.java index e34c92ee..ca9f868c 100644 --- a/src/main/java/com/ruoyi/project/monitor/logininfor/service/LogininforServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysLogininforServiceImpl.java @@ -1,11 +1,12 @@ -package com.ruoyi.project.monitor.logininfor.service; +package com.ruoyi.system.service.impl; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.ruoyi.common.support.Convert; -import com.ruoyi.project.monitor.logininfor.domain.Logininfor; -import com.ruoyi.project.monitor.logininfor.mapper.LogininforMapper; +import com.ruoyi.system.domain.SysLogininfor; +import com.ruoyi.system.mapper.SysLogininforMapper; +import com.ruoyi.system.service.ISysLogininforService; /** * 系统访问日志情况信息 服务层处理 @@ -13,10 +14,11 @@ import com.ruoyi.project.monitor.logininfor.mapper.LogininforMapper; * @author ruoyi */ @Service -public class LogininforServiceImpl implements ILogininforService +public class SysLogininforServiceImpl implements ISysLogininforService { + @Autowired - private LogininforMapper logininforMapper; + private SysLogininforMapper logininforMapper; /** * 新增系统登录日志 @@ -24,7 +26,7 @@ public class LogininforServiceImpl implements ILogininforService * @param logininfor 访问日志对象 */ @Override - public void insertLogininfor(Logininfor logininfor) + public void insertLogininfor(SysLogininfor logininfor) { logininforMapper.insertLogininfor(logininfor); } @@ -36,7 +38,7 @@ public class LogininforServiceImpl implements ILogininforService * @return 登录记录集合 */ @Override - public List selectLogininforList(Logininfor logininfor) + public List selectLogininforList(SysLogininfor logininfor) { return logininforMapper.selectLogininforList(logininfor); } @@ -52,7 +54,7 @@ public class LogininforServiceImpl implements ILogininforService { return logininforMapper.deleteLogininforByIds(Convert.toStrArray(ids)); } - + /** * 清空系统登录日志 */ diff --git a/src/main/java/com/ruoyi/project/system/menu/service/MenuServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java similarity index 61% rename from src/main/java/com/ruoyi/project/system/menu/service/MenuServiceImpl.java rename to ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java index 023e3d85..c07a0375 100644 --- a/src/main/java/com/ruoyi/project/system/menu/service/MenuServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java @@ -1,10 +1,11 @@ -package com.ruoyi.project.system.menu.service; +package com.ruoyi.system.service.impl; import java.text.MessageFormat; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.HashSet; +import java.util.Iterator; import java.util.LinkedHashMap; import java.util.LinkedList; import java.util.List; @@ -14,13 +15,12 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.ruoyi.common.constant.UserConstants; import com.ruoyi.common.utils.StringUtils; -import com.ruoyi.common.utils.TreeUtils; -import com.ruoyi.common.utils.security.ShiroUtils; -import com.ruoyi.project.system.menu.domain.Menu; -import com.ruoyi.project.system.menu.mapper.MenuMapper; -import com.ruoyi.project.system.role.domain.Role; -import com.ruoyi.project.system.role.mapper.RoleMenuMapper; -import com.ruoyi.project.system.user.domain.User; +import com.ruoyi.system.domain.SysMenu; +import com.ruoyi.system.domain.SysRole; +import com.ruoyi.system.domain.SysUser; +import com.ruoyi.system.mapper.SysMenuMapper; +import com.ruoyi.system.mapper.SysRoleMenuMapper; +import com.ruoyi.system.service.ISysMenuService; /** * 菜单 业务层处理 @@ -28,15 +28,15 @@ import com.ruoyi.project.system.user.domain.User; * @author ruoyi */ @Service -public class MenuServiceImpl implements IMenuService +public class SysMenuServiceImpl implements ISysMenuService { public static final String PREMISSION_STRING = "perms[\"{0}\"]"; @Autowired - private MenuMapper menuMapper; + private SysMenuMapper menuMapper; @Autowired - private RoleMenuMapper roleMenuMapper; + private SysRoleMenuMapper roleMenuMapper; /** * 根据用户查询菜单 @@ -45,9 +45,9 @@ public class MenuServiceImpl implements IMenuService * @return 菜单列表 */ @Override - public List selectMenusByUser(User user) + public List selectMenusByUser(SysUser user) { - List menus = new LinkedList(); + List menus = new LinkedList(); // 管理员显示所有菜单信息 if (user.isAdmin()) { @@ -57,7 +57,7 @@ public class MenuServiceImpl implements IMenuService { menus = menuMapper.selectMenusByUserId(user.getUserId()); } - return TreeUtils.getChildPerms(menus, 0); + return getChildPerms(menus, 0); } /** @@ -66,7 +66,7 @@ public class MenuServiceImpl implements IMenuService * @return 所有菜单信息 */ @Override - public List selectMenuList(Menu menu) + public List selectMenuList(SysMenu menu) { return menuMapper.selectMenuList(menu); } @@ -77,7 +77,7 @@ public class MenuServiceImpl implements IMenuService * @return 所有菜单信息 */ @Override - public List selectMenuAll() + public List selectMenuAll() { return menuMapper.selectMenuAll(); } @@ -110,11 +110,11 @@ public class MenuServiceImpl implements IMenuService * @return 菜单列表 */ @Override - public List> roleMenuTreeData(Role role) + public List> roleMenuTreeData(SysRole role) { Long roleId = role.getRoleId(); List> trees = new ArrayList>(); - List menuList = menuMapper.selectMenuAll(); + List menuList = menuMapper.selectMenuAll(); if (StringUtils.isNotNull(roleId)) { List roleMenuList = menuMapper.selectMenuTree(roleId); @@ -136,7 +136,7 @@ public class MenuServiceImpl implements IMenuService public List> menuTreeData() { List> trees = new ArrayList>(); - List menuList = menuMapper.selectMenuAll(); + List menuList = menuMapper.selectMenuAll(); trees = getTrees(menuList, false, null, false); return trees; } @@ -150,10 +150,10 @@ public class MenuServiceImpl implements IMenuService public LinkedHashMap selectPermsAll() { LinkedHashMap section = new LinkedHashMap<>(); - List permissions = menuMapper.selectMenuAll(); + List permissions = menuMapper.selectMenuAll(); if (StringUtils.isNotEmpty(permissions)) { - for (Menu menu : permissions) + for (SysMenu menu : permissions) { section.put(menu.getUrl(), MessageFormat.format(PREMISSION_STRING, menu.getPerms())); } @@ -170,11 +170,11 @@ public class MenuServiceImpl implements IMenuService * @param permsFlag 是否需要显示权限标识 * @return */ - public List> getTrees(List menuList, boolean isCheck, List roleMenuList, + public List> getTrees(List menuList, boolean isCheck, List roleMenuList, boolean permsFlag) { List> trees = new ArrayList>(); - for (Menu menu : menuList) + for (SysMenu menu : menuList) { Map deptMap = new HashMap(); deptMap.put("id", menu.getMenuId()); @@ -194,7 +194,7 @@ public class MenuServiceImpl implements IMenuService return trees; } - public String transMenuName(Menu menu, List roleMenuList, boolean permsFlag) + public String transMenuName(SysMenu menu, List roleMenuList, boolean permsFlag) { StringBuffer sb = new StringBuffer(); sb.append(menu.getMenuName()); @@ -214,7 +214,6 @@ public class MenuServiceImpl implements IMenuService @Override public int deleteMenuById(Long menuId) { - ShiroUtils.clearCachedAuthorizationInfo(); return menuMapper.deleteMenuById(menuId); } @@ -225,7 +224,7 @@ public class MenuServiceImpl implements IMenuService * @return 菜单信息 */ @Override - public Menu selectMenuById(Long menuId) + public SysMenu selectMenuById(Long menuId) { return menuMapper.selectMenuById(menuId); } @@ -261,10 +260,8 @@ public class MenuServiceImpl implements IMenuService * @return 结果 */ @Override - public int insertMenu(Menu menu) + public int insertMenu(SysMenu menu) { - menu.setCreateBy(ShiroUtils.getLoginName()); - ShiroUtils.clearCachedAuthorizationInfo(); return menuMapper.insertMenu(menu); } @@ -275,10 +272,8 @@ public class MenuServiceImpl implements IMenuService * @return 结果 */ @Override - public int updateMenu(Menu menu) + public int updateMenu(SysMenu menu) { - menu.setUpdateBy(ShiroUtils.getLoginName()); - ShiroUtils.clearCachedAuthorizationInfo(); return menuMapper.updateMenu(menu); } @@ -289,14 +284,89 @@ public class MenuServiceImpl implements IMenuService * @return 结果 */ @Override - public String checkMenuNameUnique(Menu menu) + public String checkMenuNameUnique(SysMenu menu) { Long menuId = StringUtils.isNull(menu.getMenuId()) ? -1L : menu.getMenuId(); - Menu info = menuMapper.checkMenuNameUnique(menu.getMenuName(), menu.getParentId()); + SysMenu info = menuMapper.checkMenuNameUnique(menu.getMenuName(), menu.getParentId()); if (StringUtils.isNotNull(info) && info.getMenuId().longValue() != menuId.longValue()) { return UserConstants.MENU_NAME_NOT_UNIQUE; } return UserConstants.MENU_NAME_UNIQUE; } + + /** + * 根据父节点的ID获取所有子节点 + * + * @param list 分类表 + * @param typeId 传入的父节点ID + * @return String + */ + public List getChildPerms(List list, int parentId) + { + List returnList = new ArrayList(); + for (Iterator iterator = list.iterator(); iterator.hasNext();) + { + SysMenu t = (SysMenu) iterator.next(); + // 一、根据传入的某个父节点ID,遍历该父节点的所有子节点 + if (t.getParentId() == parentId) + { + recursionFn(list, t); + returnList.add(t); + } + } + return returnList; + } + + /** + * 递归列表 + * + * @param list + * @param SysMenu + */ + private void recursionFn(List list, SysMenu t) + { + // 得到子节点列表 + List childList = getChildList(list, t); + t.setChildren(childList); + for (SysMenu tChild : childList) + { + if (hasChild(list, tChild)) + { + // 判断是否有子节点 + Iterator it = childList.iterator(); + while (it.hasNext()) + { + SysMenu n = (SysMenu) it.next(); + recursionFn(list, n); + } + } + } + } + + /** + * 得到子节点列表 + */ + private List getChildList(List list, SysMenu t) + { + List tlist = new ArrayList(); + Iterator it = list.iterator(); + while (it.hasNext()) + { + SysMenu n = (SysMenu) it.next(); + if (n.getParentId().longValue() == t.getMenuId().longValue()) + { + tlist.add(n); + } + } + return tlist; + } + + /** + * 判断是否有子节点 + */ + private boolean hasChild(List list, SysMenu t) + { + return getChildList(list, t).size() > 0 ? true : false; + } } diff --git a/src/main/java/com/ruoyi/project/system/notice/service/NoticeServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysNoticeServiceImpl.java similarity index 62% rename from src/main/java/com/ruoyi/project/system/notice/service/NoticeServiceImpl.java rename to ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysNoticeServiceImpl.java index ff01f3c6..c8895a31 100644 --- a/src/main/java/com/ruoyi/project/system/notice/service/NoticeServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysNoticeServiceImpl.java @@ -1,13 +1,12 @@ -package com.ruoyi.project.system.notice.service; +package com.ruoyi.system.service.impl; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import com.ruoyi.common.utils.security.ShiroUtils; -import com.ruoyi.project.system.notice.mapper.NoticeMapper; -import com.ruoyi.project.system.notice.domain.Notice; -import com.ruoyi.project.system.notice.service.INoticeService; import com.ruoyi.common.support.Convert; +import com.ruoyi.system.domain.SysNotice; +import com.ruoyi.system.mapper.SysNoticeMapper; +import com.ruoyi.system.service.ISysNoticeService; /** * 公告 服务层实现 @@ -16,10 +15,10 @@ import com.ruoyi.common.support.Convert; * @date 2018-06-25 */ @Service -public class NoticeServiceImpl implements INoticeService +public class SysNoticeServiceImpl implements ISysNoticeService { @Autowired - private NoticeMapper noticeMapper; + private SysNoticeMapper noticeMapper; /** * 查询公告信息 @@ -28,7 +27,7 @@ public class NoticeServiceImpl implements INoticeService * @return 公告信息 */ @Override - public Notice selectNoticeById(Long noticeId) + public SysNotice selectNoticeById(Long noticeId) { return noticeMapper.selectNoticeById(noticeId); } @@ -40,7 +39,7 @@ public class NoticeServiceImpl implements INoticeService * @return 公告集合 */ @Override - public List selectNoticeList(Notice notice) + public List selectNoticeList(SysNotice notice) { return noticeMapper.selectNoticeList(notice); } @@ -52,9 +51,8 @@ public class NoticeServiceImpl implements INoticeService * @return 结果 */ @Override - public int insertNotice(Notice notice) + public int insertNotice(SysNotice notice) { - notice.setCreateBy(ShiroUtils.getLoginName()); return noticeMapper.insertNotice(notice); } @@ -65,9 +63,8 @@ public class NoticeServiceImpl implements INoticeService * @return 结果 */ @Override - public int updateNotice(Notice notice) + public int updateNotice(SysNotice notice) { - notice.setUpdateBy(ShiroUtils.getLoginName()); return noticeMapper.updateNotice(notice); } diff --git a/src/main/java/com/ruoyi/project/monitor/operlog/service/OperLogServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOperLogServiceImpl.java similarity index 69% rename from src/main/java/com/ruoyi/project/monitor/operlog/service/OperLogServiceImpl.java rename to ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOperLogServiceImpl.java index 21abb930..e8609abb 100644 --- a/src/main/java/com/ruoyi/project/monitor/operlog/service/OperLogServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOperLogServiceImpl.java @@ -1,11 +1,12 @@ -package com.ruoyi.project.monitor.operlog.service; +package com.ruoyi.system.service.impl; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.ruoyi.common.support.Convert; -import com.ruoyi.project.monitor.operlog.domain.OperLog; -import com.ruoyi.project.monitor.operlog.mapper.OperLogMapper; +import com.ruoyi.system.domain.SysOperLog; +import com.ruoyi.system.mapper.SysOperLogMapper; +import com.ruoyi.system.service.ISysOperLogService; /** * 操作日志 服务层处理 @@ -13,10 +14,10 @@ import com.ruoyi.project.monitor.operlog.mapper.OperLogMapper; * @author ruoyi */ @Service -public class OperLogServiceImpl implements IOperLogService +public class SysOperLogServiceImpl implements ISysOperLogService { @Autowired - private OperLogMapper operLogMapper; + private SysOperLogMapper operLogMapper; /** * 新增操作日志 @@ -24,7 +25,7 @@ public class OperLogServiceImpl implements IOperLogService * @param operLog 操作日志对象 */ @Override - public void insertOperlog(OperLog operLog) + public void insertOperlog(SysOperLog operLog) { operLogMapper.insertOperlog(operLog); } @@ -36,7 +37,7 @@ public class OperLogServiceImpl implements IOperLogService * @return 操作日志集合 */ @Override - public List selectOperLogList(OperLog operLog) + public List selectOperLogList(SysOperLog operLog) { return operLogMapper.selectOperLogList(operLog); } @@ -60,11 +61,11 @@ public class OperLogServiceImpl implements IOperLogService * @return 操作日志对象 */ @Override - public OperLog selectOperLogById(Long operId) + public SysOperLog selectOperLogById(Long operId) { return operLogMapper.selectOperLogById(operId); } - + /** * 清空操作日志 */ diff --git a/src/main/java/com/ruoyi/project/system/post/service/PostServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysPostServiceImpl.java similarity index 70% rename from src/main/java/com/ruoyi/project/system/post/service/PostServiceImpl.java rename to ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysPostServiceImpl.java index a9900fcc..a88513ab 100644 --- a/src/main/java/com/ruoyi/project/system/post/service/PostServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysPostServiceImpl.java @@ -1,4 +1,4 @@ -package com.ruoyi.project.system.post.service; +package com.ruoyi.system.service.impl; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; @@ -6,10 +6,10 @@ import org.springframework.stereotype.Service; import com.ruoyi.common.constant.UserConstants; import com.ruoyi.common.support.Convert; import com.ruoyi.common.utils.StringUtils; -import com.ruoyi.common.utils.security.ShiroUtils; -import com.ruoyi.project.system.post.domain.Post; -import com.ruoyi.project.system.post.mapper.PostMapper; -import com.ruoyi.project.system.user.mapper.UserPostMapper; +import com.ruoyi.system.domain.SysPost; +import com.ruoyi.system.mapper.SysPostMapper; +import com.ruoyi.system.mapper.SysUserPostMapper; +import com.ruoyi.system.service.ISysPostService; /** * 岗位信息 服务层处理 @@ -17,13 +17,13 @@ import com.ruoyi.project.system.user.mapper.UserPostMapper; * @author ruoyi */ @Service -public class PostServiceImpl implements IPostService +public class SysPostServiceImpl implements ISysPostService { @Autowired - private PostMapper postMapper; + private SysPostMapper postMapper; @Autowired - private UserPostMapper userPostMapper; + private SysUserPostMapper userPostMapper; /** * 查询岗位信息集合 @@ -32,7 +32,7 @@ public class PostServiceImpl implements IPostService * @return 岗位信息集合 */ @Override - public List selectPostList(Post post) + public List selectPostList(SysPost post) { return postMapper.selectPostList(post); } @@ -43,7 +43,7 @@ public class PostServiceImpl implements IPostService * @return 岗位列表 */ @Override - public List selectPostAll() + public List selectPostAll() { return postMapper.selectPostAll(); } @@ -55,13 +55,13 @@ public class PostServiceImpl implements IPostService * @return 岗位列表 */ @Override - public List selectPostsByUserId(Long userId) + public List selectPostsByUserId(Long userId) { - List userPosts = postMapper.selectPostsByUserId(userId); - List posts = postMapper.selectPostAll(); - for (Post post : posts) + List userPosts = postMapper.selectPostsByUserId(userId); + List posts = postMapper.selectPostAll(); + for (SysPost post : posts) { - for (Post userRole : userPosts) + for (SysPost userRole : userPosts) { if (post.getPostId().longValue() == userRole.getPostId().longValue()) { @@ -80,7 +80,7 @@ public class PostServiceImpl implements IPostService * @return 角色对象信息 */ @Override - public Post selectPostById(Long postId) + public SysPost selectPostById(Long postId) { return postMapper.selectPostById(postId); } @@ -97,7 +97,7 @@ public class PostServiceImpl implements IPostService Long[] postIds = Convert.toLongArray(ids); for (Long postId : postIds) { - Post post = selectPostById(postId); + SysPost post = selectPostById(postId); if (countUserPostById(postId) > 0) { throw new Exception(String.format("%1$s已分配,不能删除", post.getPostName())); @@ -113,9 +113,8 @@ public class PostServiceImpl implements IPostService * @return 结果 */ @Override - public int insertPost(Post post) + public int insertPost(SysPost post) { - post.setCreateBy(ShiroUtils.getLoginName()); return postMapper.insertPost(post); } @@ -126,9 +125,8 @@ public class PostServiceImpl implements IPostService * @return 结果 */ @Override - public int updatePost(Post post) + public int updatePost(SysPost post) { - post.setUpdateBy(ShiroUtils.getLoginName()); return postMapper.updatePost(post); } @@ -151,10 +149,10 @@ public class PostServiceImpl implements IPostService * @return 结果 */ @Override - public String checkPostNameUnique(Post post) + public String checkPostNameUnique(SysPost post) { Long postId = StringUtils.isNull(post.getPostId()) ? -1L : post.getPostId(); - Post info = postMapper.checkPostNameUnique(post.getPostName()); + SysPost info = postMapper.checkPostNameUnique(post.getPostName()); if (StringUtils.isNotNull(info) && info.getPostId().longValue() != postId.longValue()) { return UserConstants.POST_NAME_NOT_UNIQUE; @@ -169,10 +167,10 @@ public class PostServiceImpl implements IPostService * @return 结果 */ @Override - public String checkPostCodeUnique(Post post) + public String checkPostCodeUnique(SysPost post) { Long postId = StringUtils.isNull(post.getPostId()) ? -1L : post.getPostId(); - Post info = postMapper.checkPostCodeUnique(post.getPostCode()); + SysPost info = postMapper.checkPostCodeUnique(post.getPostCode()); if (StringUtils.isNotNull(info) && info.getPostId().longValue() != postId.longValue()) { return UserConstants.POST_CODE_NOT_UNIQUE; diff --git a/src/main/java/com/ruoyi/project/system/role/service/RoleServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java similarity index 71% rename from src/main/java/com/ruoyi/project/system/role/service/RoleServiceImpl.java rename to ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java index 2a2ed206..045f3648 100644 --- a/src/main/java/com/ruoyi/project/system/role/service/RoleServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java @@ -1,305 +1,300 @@ -package com.ruoyi.project.system.role.service; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashSet; -import java.util.List; -import java.util.Set; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import com.ruoyi.common.constant.UserConstants; -import com.ruoyi.common.support.Convert; -import com.ruoyi.common.utils.StringUtils; -import com.ruoyi.common.utils.security.ShiroUtils; -import com.ruoyi.framework.aspectj.lang.annotation.DataScope; -import com.ruoyi.project.system.role.domain.Role; -import com.ruoyi.project.system.role.domain.RoleDept; -import com.ruoyi.project.system.role.domain.RoleMenu; -import com.ruoyi.project.system.role.mapper.RoleDeptMapper; -import com.ruoyi.project.system.role.mapper.RoleMapper; -import com.ruoyi.project.system.role.mapper.RoleMenuMapper; -import com.ruoyi.project.system.user.mapper.UserRoleMapper; - -/** - * 角色 业务层处理 - * - * @author ruoyi - */ -@Service -public class RoleServiceImpl implements IRoleService -{ - @Autowired - private RoleMapper roleMapper; - - @Autowired - private RoleMenuMapper roleMenuMapper; - - @Autowired - private UserRoleMapper userRoleMapper; - - @Autowired - private RoleDeptMapper roleDeptMapper; - - /** - * 根据条件分页查询角色数据 - * - * @param role 角色信息 - * @return 角色数据集合信息 - */ - @Override - @DataScope(tableAlias = "u") - public List selectRoleList(Role role) - { - return roleMapper.selectRoleList(role); - } - - /** - * 根据用户ID查询权限 - * - * @param userId 用户ID - * @return 权限列表 - */ - @Override - public Set selectRoleKeys(Long userId) - { - List perms = roleMapper.selectRolesByUserId(userId); - Set permsSet = new HashSet<>(); - for (Role perm : perms) - { - if (StringUtils.isNotNull(perms)) - { - permsSet.addAll(Arrays.asList(perm.getRoleKey().trim().split(","))); - } - } - return permsSet; - } - - /** - * 根据用户ID查询角色 - * - * @param userId 用户ID - * @return 角色列表 - */ - @Override - public List selectRolesByUserId(Long userId) - { - List userRoles = roleMapper.selectRolesByUserId(userId); - List roles = selectRoleAll(); - for (Role role : roles) - { - for (Role userRole : userRoles) - { - if (role.getRoleId().longValue() == userRole.getRoleId().longValue()) - { - role.setFlag(true); - break; - } - } - } - return roles; - } - - /** - * 查询所有角色 - * - * @return 角色列表 - */ - @Override - public List selectRoleAll() - { - return selectRoleList(new Role()); - } - - /** - * 通过角色ID查询角色 - * - * @param roleId 角色ID - * @return 角色对象信息 - */ - @Override - public Role selectRoleById(Long roleId) - { - return roleMapper.selectRoleById(roleId); - } - - /** - * 通过角色ID删除角色 - * - * @param roleId 角色ID - * @return 结果 - */ - @Override - public boolean deleteRoleById(Long roleId) - { - return roleMapper.deleteRoleById(roleId) > 0 ? true : false; - } - - /** - * 批量删除角色信息 - * - * @param ids 需要删除的数据ID - * @throws Exception - */ - @Override - public int deleteRoleByIds(String ids) throws Exception - { - Long[] roleIds = Convert.toLongArray(ids); - for (Long roleId : roleIds) - { - Role role = selectRoleById(roleId); - if (countUserRoleByRoleId(roleId) > 0) - { - throw new Exception(String.format("%1$s已分配,不能删除", role.getRoleName())); - } - } - return roleMapper.deleteRoleByIds(roleIds); - } - - /** - * 新增保存角色信息 - * - * @param role 角色信息 - * @return 结果 - */ - @Override - public int insertRole(Role role) - { - role.setCreateBy(ShiroUtils.getLoginName()); - // 新增角色信息 - roleMapper.insertRole(role); - ShiroUtils.clearCachedAuthorizationInfo(); - return insertRoleMenu(role); - } - - /** - * 修改保存角色信息 - * - * @param role 角色信息 - * @return 结果 - */ - @Override - public int updateRole(Role role) - { - role.setUpdateBy(ShiroUtils.getLoginName()); - // 修改角色信息 - roleMapper.updateRole(role); - ShiroUtils.clearCachedAuthorizationInfo(); - // 删除角色与菜单关联 - roleMenuMapper.deleteRoleMenuByRoleId(role.getRoleId()); - return insertRoleMenu(role); - } - - /** - * 修改数据权限信息 - * - * @param role 角色信息 - * @return 结果 - */ - @Override - public int updateRule(Role role) - { - role.setUpdateBy(ShiroUtils.getLoginName()); - // 修改角色信息 - roleMapper.updateRole(role); - // 删除角色与部门关联 - roleDeptMapper.deleteRoleDeptByRoleId(role.getRoleId()); - // 新增角色和部门信息(数据权限) - return insertRoleDept(role); - } - - /** - * 新增角色菜单信息 - * - * @param role 角色对象 - */ - public int insertRoleMenu(Role role) - { - int rows = 1; - // 新增用户与角色管理 - List list = new ArrayList(); - for (Long menuId : role.getMenuIds()) - { - RoleMenu rm = new RoleMenu(); - rm.setRoleId(role.getRoleId()); - rm.setMenuId(menuId); - list.add(rm); - } - if (list.size() > 0) - { - rows = roleMenuMapper.batchRoleMenu(list); - } - return rows; - } - - /** - * 新增角色部门信息(数据权限) - * - * @param role 角色对象 - */ - public int insertRoleDept(Role role) - { - int rows = 1; - // 新增角色与部门(数据权限)管理 - List list = new ArrayList(); - for (Long deptId : role.getDeptIds()) - { - RoleDept rd = new RoleDept(); - rd.setRoleId(role.getRoleId()); - rd.setDeptId(deptId); - list.add(rd); - } - if (list.size() > 0) - { - rows = roleDeptMapper.batchRoleDept(list); - } - return rows; - } - - /** - * 校验角色名称是否唯一 - * - * @param role 角色信息 - * @return 结果 - */ - @Override - public String checkRoleNameUnique(Role role) - { - Long roleId = StringUtils.isNull(role.getRoleId()) ? -1L : role.getRoleId(); - Role info = roleMapper.checkRoleNameUnique(role.getRoleName()); - if (StringUtils.isNotNull(info) && info.getRoleId().longValue() != roleId.longValue()) - { - return UserConstants.ROLE_NAME_NOT_UNIQUE; - } - return UserConstants.ROLE_NAME_UNIQUE; - } - - /** - * 校验角色权限是否唯一 - * - * @param role 角色信息 - * @return 结果 - */ - @Override - public String checkRoleKeyUnique(Role role) - { - Long roleId = StringUtils.isNull(role.getRoleId()) ? -1L : role.getRoleId(); - Role info = roleMapper.checkRoleKeyUnique(role.getRoleKey()); - if (StringUtils.isNotNull(info) && info.getRoleId().longValue() != roleId.longValue()) - { - return UserConstants.ROLE_KEY_NOT_UNIQUE; - } - return UserConstants.ROLE_KEY_UNIQUE; - } - - /** - * 通过角色ID查询角色使用数量 - * - * @param roleId 角色ID - * @return 结果 - */ - @Override - public int countUserRoleByRoleId(Long roleId) - { - return userRoleMapper.countUserRoleByRoleId(roleId); - } -} +package com.ruoyi.system.service.impl; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashSet; +import java.util.List; +import java.util.Set; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ruoyi.common.annotation.DataScope; +import com.ruoyi.common.constant.UserConstants; +import com.ruoyi.common.support.Convert; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.system.domain.SysRole; +import com.ruoyi.system.domain.SysRoleDept; +import com.ruoyi.system.domain.SysRoleMenu; +import com.ruoyi.system.mapper.SysRoleDeptMapper; +import com.ruoyi.system.mapper.SysRoleMapper; +import com.ruoyi.system.mapper.SysRoleMenuMapper; +import com.ruoyi.system.mapper.SysUserRoleMapper; +import com.ruoyi.system.service.ISysRoleService; + +/** + * 角色 业务层处理 + * + * @author ruoyi + */ +@Service +public class SysRoleServiceImpl implements ISysRoleService +{ + @Autowired + private SysRoleMapper roleMapper; + + @Autowired + private SysRoleMenuMapper roleMenuMapper; + + @Autowired + private SysUserRoleMapper userRoleMapper; + + @Autowired + private SysRoleDeptMapper roleDeptMapper; + + /** + * 根据条件分页查询角色数据 + * + * @param role 角色信息 + * @return 角色数据集合信息 + */ + @Override + @DataScope(tableAlias = "u") + public List selectRoleList(SysRole role) + { + return roleMapper.selectRoleList(role); + } + + /** + * 根据用户ID查询权限 + * + * @param userId 用户ID + * @return 权限列表 + */ + @Override + public Set selectRoleKeys(Long userId) + { + List perms = roleMapper.selectRolesByUserId(userId); + Set permsSet = new HashSet<>(); + for (SysRole perm : perms) + { + if (StringUtils.isNotNull(perms)) + { + permsSet.addAll(Arrays.asList(perm.getRoleKey().trim().split(","))); + } + } + return permsSet; + } + + /** + * 根据用户ID查询角色 + * + * @param userId 用户ID + * @return 角色列表 + */ + @Override + public List selectRolesByUserId(Long userId) + { + List userRoles = roleMapper.selectRolesByUserId(userId); + List roles = selectRoleAll(); + for (SysRole role : roles) + { + for (SysRole userRole : userRoles) + { + if (role.getRoleId().longValue() == userRole.getRoleId().longValue()) + { + role.setFlag(true); + break; + } + } + } + return roles; + } + + /** + * 查询所有角色 + * + * @return 角色列表 + */ + @Override + public List selectRoleAll() + { + return selectRoleList(new SysRole()); + } + + /** + * 通过角色ID查询角色 + * + * @param roleId 角色ID + * @return 角色对象信息 + */ + @Override + public SysRole selectRoleById(Long roleId) + { + return roleMapper.selectRoleById(roleId); + } + + /** + * 通过角色ID删除角色 + * + * @param roleId 角色ID + * @return 结果 + */ + @Override + public boolean deleteRoleById(Long roleId) + { + return roleMapper.deleteRoleById(roleId) > 0 ? true : false; + } + + /** + * 批量删除角色信息 + * + * @param ids 需要删除的数据ID + * @throws Exception + */ + @Override + public int deleteRoleByIds(String ids) throws Exception + { + Long[] roleIds = Convert.toLongArray(ids); + for (Long roleId : roleIds) + { + SysRole role = selectRoleById(roleId); + if (countUserRoleByRoleId(roleId) > 0) + { + throw new Exception(String.format("%1$s已分配,不能删除", role.getRoleName())); + } + } + return roleMapper.deleteRoleByIds(roleIds); + } + + /** + * 新增保存角色信息 + * + * @param role 角色信息 + * @return 结果 + */ + @Override + public int insertRole(SysRole role) + { + // 新增角色信息 + roleMapper.insertRole(role); + return insertRoleMenu(role); + } + + /** + * 修改保存角色信息 + * + * @param role 角色信息 + * @return 结果 + */ + @Override + public int updateRole(SysRole role) + { + // 修改角色信息 + roleMapper.updateRole(role); + // 删除角色与菜单关联 + roleMenuMapper.deleteRoleMenuByRoleId(role.getRoleId()); + return insertRoleMenu(role); + } + + /** + * 修改数据权限信息 + * + * @param role 角色信息 + * @return 结果 + */ + @Override + public int updateRule(SysRole role) + { + // 修改角色信息 + roleMapper.updateRole(role); + // 删除角色与部门关联 + roleDeptMapper.deleteRoleDeptByRoleId(role.getRoleId()); + // 新增角色和部门信息(数据权限) + return insertRoleDept(role); + } + + /** + * 新增角色菜单信息 + * + * @param role 角色对象 + */ + public int insertRoleMenu(SysRole role) + { + int rows = 1; + // 新增用户与角色管理 + List list = new ArrayList(); + for (Long menuId : role.getMenuIds()) + { + SysRoleMenu rm = new SysRoleMenu(); + rm.setRoleId(role.getRoleId()); + rm.setMenuId(menuId); + list.add(rm); + } + if (list.size() > 0) + { + rows = roleMenuMapper.batchRoleMenu(list); + } + return rows; + } + + /** + * 新增角色部门信息(数据权限) + * + * @param role 角色对象 + */ + public int insertRoleDept(SysRole role) + { + int rows = 1; + // 新增角色与部门(数据权限)管理 + List list = new ArrayList(); + for (Long deptId : role.getDeptIds()) + { + SysRoleDept rd = new SysRoleDept(); + rd.setRoleId(role.getRoleId()); + rd.setDeptId(deptId); + list.add(rd); + } + if (list.size() > 0) + { + rows = roleDeptMapper.batchRoleDept(list); + } + return rows; + } + + /** + * 校验角色名称是否唯一 + * + * @param role 角色信息 + * @return 结果 + */ + @Override + public String checkRoleNameUnique(SysRole role) + { + Long roleId = StringUtils.isNull(role.getRoleId()) ? -1L : role.getRoleId(); + SysRole info = roleMapper.checkRoleNameUnique(role.getRoleName()); + if (StringUtils.isNotNull(info) && info.getRoleId().longValue() != roleId.longValue()) + { + return UserConstants.ROLE_NAME_NOT_UNIQUE; + } + return UserConstants.ROLE_NAME_UNIQUE; + } + + /** + * 校验角色权限是否唯一 + * + * @param role 角色信息 + * @return 结果 + */ + @Override + public String checkRoleKeyUnique(SysRole role) + { + Long roleId = StringUtils.isNull(role.getRoleId()) ? -1L : role.getRoleId(); + SysRole info = roleMapper.checkRoleKeyUnique(role.getRoleKey()); + if (StringUtils.isNotNull(info) && info.getRoleId().longValue() != roleId.longValue()) + { + return UserConstants.ROLE_KEY_NOT_UNIQUE; + } + return UserConstants.ROLE_KEY_UNIQUE; + } + + /** + * 通过角色ID查询角色使用数量 + * + * @param roleId 角色ID + * @return 结果 + */ + @Override + public int countUserRoleByRoleId(Long roleId) + { + return userRoleMapper.countUserRoleByRoleId(roleId); + } +} diff --git a/src/main/java/com/ruoyi/project/monitor/online/service/UserOnlineServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserOnlineServiceImpl.java similarity index 60% rename from src/main/java/com/ruoyi/project/monitor/online/service/UserOnlineServiceImpl.java rename to ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserOnlineServiceImpl.java index 0b3d9185..12be7b45 100644 --- a/src/main/java/com/ruoyi/project/monitor/online/service/UserOnlineServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserOnlineServiceImpl.java @@ -1,29 +1,24 @@ -package com.ruoyi.project.monitor.online.service; +package com.ruoyi.system.service.impl; import java.util.Date; import java.util.List; -import org.apache.shiro.session.Session; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; +import org.springframework.stereotype.Component; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.StringUtils; -import com.ruoyi.framework.shiro.session.OnlineSessionDAO; -import com.ruoyi.project.monitor.online.domain.UserOnline; -import com.ruoyi.project.monitor.online.mapper.UserOnlineMapper; +import com.ruoyi.system.domain.SysUserOnline; +import com.ruoyi.system.mapper.SysUserOnlineMapper; /** * 在线用户 服务层处理 * * @author ruoyi */ -@Service -public class UserOnlineServiceImpl implements IUserOnlineService +@Component +public class SysUserOnlineServiceImpl { @Autowired - private UserOnlineMapper userOnlineDao; - - @Autowired - private OnlineSessionDAO onlineSessionDAO; + private SysUserOnlineMapper userOnlineDao; /** * 通过会话序号查询信息 @@ -31,8 +26,7 @@ public class UserOnlineServiceImpl implements IUserOnlineService * @param sessionId 会话ID * @return 在线用户信息 */ - @Override - public UserOnline selectOnlineById(String sessionId) + public SysUserOnline selectOnlineById(String sessionId) { return userOnlineDao.selectOnlineById(sessionId); } @@ -43,10 +37,9 @@ public class UserOnlineServiceImpl implements IUserOnlineService * @param sessionId 会话ID * @return 在线用户信息 */ - @Override public void deleteOnlineById(String sessionId) { - UserOnline userOnline = selectOnlineById(sessionId); + SysUserOnline userOnline = selectOnlineById(sessionId); if (StringUtils.isNotNull(userOnline)) { userOnlineDao.deleteOnlineById(sessionId); @@ -59,12 +52,11 @@ public class UserOnlineServiceImpl implements IUserOnlineService * @param sessions 会话ID集合 * @return 在线用户信息 */ - @Override public void batchDeleteOnline(List sessions) { for (String sessionId : sessions) { - UserOnline userOnline = selectOnlineById(sessionId); + SysUserOnline userOnline = selectOnlineById(sessionId); if (StringUtils.isNotNull(userOnline)) { userOnlineDao.deleteOnlineById(sessionId); @@ -77,8 +69,7 @@ public class UserOnlineServiceImpl implements IUserOnlineService * * @param online 会话信息 */ - @Override - public void saveOnline(UserOnline online) + public void saveOnline(SysUserOnline online) { userOnlineDao.saveOnline(online); } @@ -88,8 +79,7 @@ public class UserOnlineServiceImpl implements IUserOnlineService * * @param pageUtilEntity 分页参数 */ - @Override - public List selectUserOnlineList(UserOnline userOnline) + public List selectUserOnlineList(SysUserOnline userOnline) { return userOnlineDao.selectUserOnlineList(userOnline); } @@ -99,15 +89,8 @@ public class UserOnlineServiceImpl implements IUserOnlineService * * @param sessionId 会话ID */ - @Override public void forceLogout(String sessionId) { - Session session = onlineSessionDAO.readSession(sessionId); - if (session == null) - { - return; - } - session.setTimeout(1000); userOnlineDao.deleteOnlineById(sessionId); } @@ -116,8 +99,7 @@ public class UserOnlineServiceImpl implements IUserOnlineService * * @param online 会话信息 */ - @Override - public List selectOnlineByExpired(Date expiredDate) + public List selectOnlineByExpired(Date expiredDate) { String lastAccessTime = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, expiredDate); return userOnlineDao.selectOnlineByExpired(lastAccessTime); diff --git a/src/main/java/com/ruoyi/project/system/user/service/UserServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java similarity index 69% rename from src/main/java/com/ruoyi/project/system/user/service/UserServiceImpl.java rename to ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java index b5e114b9..a5b969e6 100644 --- a/src/main/java/com/ruoyi/project/system/user/service/UserServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java @@ -1,25 +1,24 @@ -package com.ruoyi.project.system.user.service; +package com.ruoyi.system.service.impl; import java.util.ArrayList; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import com.ruoyi.common.annotation.DataScope; import com.ruoyi.common.constant.UserConstants; import com.ruoyi.common.support.Convert; import com.ruoyi.common.utils.StringUtils; -import com.ruoyi.common.utils.security.ShiroUtils; -import com.ruoyi.framework.aspectj.lang.annotation.DataScope; -import com.ruoyi.framework.shiro.service.PasswordService; -import com.ruoyi.project.system.post.domain.Post; -import com.ruoyi.project.system.post.mapper.PostMapper; -import com.ruoyi.project.system.role.domain.Role; -import com.ruoyi.project.system.role.mapper.RoleMapper; -import com.ruoyi.project.system.user.domain.User; -import com.ruoyi.project.system.user.domain.UserPost; -import com.ruoyi.project.system.user.domain.UserRole; -import com.ruoyi.project.system.user.mapper.UserMapper; -import com.ruoyi.project.system.user.mapper.UserPostMapper; -import com.ruoyi.project.system.user.mapper.UserRoleMapper; +import com.ruoyi.system.domain.SysPost; +import com.ruoyi.system.domain.SysRole; +import com.ruoyi.system.domain.SysUser; +import com.ruoyi.system.domain.SysUserPost; +import com.ruoyi.system.domain.SysUserRole; +import com.ruoyi.system.mapper.SysPostMapper; +import com.ruoyi.system.mapper.SysRoleMapper; +import com.ruoyi.system.mapper.SysUserMapper; +import com.ruoyi.system.mapper.SysUserPostMapper; +import com.ruoyi.system.mapper.SysUserRoleMapper; +import com.ruoyi.system.service.ISysUserService; /** * 用户 业务层处理 @@ -27,25 +26,22 @@ import com.ruoyi.project.system.user.mapper.UserRoleMapper; * @author ruoyi */ @Service -public class UserServiceImpl implements IUserService +public class SysUserServiceImpl implements ISysUserService { @Autowired - private UserMapper userMapper; + private SysUserMapper userMapper; @Autowired - private RoleMapper roleMapper; + private SysRoleMapper roleMapper; @Autowired - private PostMapper postMapper; + private SysPostMapper postMapper; @Autowired - private UserPostMapper userPostMapper; + private SysUserPostMapper userPostMapper; @Autowired - private UserRoleMapper userRoleMapper; - - @Autowired - private PasswordService passwordService; + private SysUserRoleMapper userRoleMapper; /** * 根据条件分页查询用户对象 @@ -56,9 +52,8 @@ public class UserServiceImpl implements IUserService */ @Override @DataScope(tableAlias = "u") - public List selectUserList(User user) + public List selectUserList(SysUser user) { - // 生成数据权限过滤条件 return userMapper.selectUserList(user); } @@ -69,7 +64,7 @@ public class UserServiceImpl implements IUserService * @return 用户对象信息 */ @Override - public User selectUserByLoginName(String userName) + public SysUser selectUserByLoginName(String userName) { return userMapper.selectUserByLoginName(userName); } @@ -81,7 +76,7 @@ public class UserServiceImpl implements IUserService * @return 用户对象信息 */ @Override - public User selectUserByPhoneNumber(String phoneNumber) + public SysUser selectUserByPhoneNumber(String phoneNumber) { return userMapper.selectUserByPhoneNumber(phoneNumber); } @@ -93,7 +88,7 @@ public class UserServiceImpl implements IUserService * @return 用户对象信息 */ @Override - public User selectUserByEmail(String email) + public SysUser selectUserByEmail(String email) { return userMapper.selectUserByEmail(email); } @@ -105,7 +100,7 @@ public class UserServiceImpl implements IUserService * @return 用户对象信息 */ @Override - public User selectUserById(Long userId) + public SysUser selectUserById(Long userId) { return userMapper.selectUserById(userId); } @@ -138,7 +133,7 @@ public class UserServiceImpl implements IUserService Long[] userIds = Convert.toLongArray(ids); for (Long userId : userIds) { - if (User.isAdmin(userId)) + if (SysUser.isAdmin(userId)) { throw new Exception("不允许删除超级管理员用户"); } @@ -153,11 +148,8 @@ public class UserServiceImpl implements IUserService * @return 结果 */ @Override - public int insertUser(User user) + public int insertUser(SysUser user) { - user.randomSalt(); - user.setPassword(passwordService.encryptPassword(user.getLoginName(), user.getPassword(), user.getSalt())); - user.setCreateBy(ShiroUtils.getLoginName()); // 新增用户信息 int rows = userMapper.insertUser(user); // 新增用户岗位关联 @@ -174,10 +166,9 @@ public class UserServiceImpl implements IUserService * @return 结果 */ @Override - public int updateUser(User user) + public int updateUser(SysUser user) { Long userId = user.getUserId(); - user.setUpdateBy(ShiroUtils.getLoginName()); // 删除用户与角色关联 userRoleMapper.deleteUserRoleByUserId(userId); // 新增用户与角色管理 @@ -196,7 +187,7 @@ public class UserServiceImpl implements IUserService * @return 结果 */ @Override - public int updateUserInfo(User user) + public int updateUserInfo(SysUser user) { return userMapper.updateUser(user); } @@ -208,10 +199,8 @@ public class UserServiceImpl implements IUserService * @return 结果 */ @Override - public int resetUserPwd(User user) + public int resetUserPwd(SysUser user) { - user.randomSalt(); - user.setPassword(passwordService.encryptPassword(user.getLoginName(), user.getPassword(), user.getSalt())); return updateUserInfo(user); } @@ -220,13 +209,13 @@ public class UserServiceImpl implements IUserService * * @param user 用户对象 */ - public void insertUserRole(User user) + public void insertUserRole(SysUser user) { // 新增用户与角色管理 - List list = new ArrayList(); + List list = new ArrayList(); for (Long roleId : user.getRoleIds()) { - UserRole ur = new UserRole(); + SysUserRole ur = new SysUserRole(); ur.setUserId(user.getUserId()); ur.setRoleId(roleId); list.add(ur); @@ -242,13 +231,13 @@ public class UserServiceImpl implements IUserService * * @param user 用户对象 */ - public void insertUserPost(User user) + public void insertUserPost(SysUser user) { // 新增用户与岗位管理 - List list = new ArrayList(); + List list = new ArrayList(); for (Long postId : user.getPostIds()) { - UserPost up = new UserPost(); + SysUserPost up = new SysUserPost(); up.setUserId(user.getUserId()); up.setPostId(postId); list.add(up); @@ -283,10 +272,10 @@ public class UserServiceImpl implements IUserService * @return */ @Override - public String checkPhoneUnique(User user) + public String checkPhoneUnique(SysUser user) { Long userId = StringUtils.isNull(user.getUserId()) ? -1L : user.getUserId(); - User info = userMapper.checkPhoneUnique(user.getPhonenumber()); + SysUser info = userMapper.checkPhoneUnique(user.getPhonenumber()); if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue()) { return UserConstants.USER_PHONE_NOT_UNIQUE; @@ -301,10 +290,10 @@ public class UserServiceImpl implements IUserService * @return */ @Override - public String checkEmailUnique(User user) + public String checkEmailUnique(SysUser user) { Long userId = StringUtils.isNull(user.getUserId()) ? -1L : user.getUserId(); - User info = userMapper.checkEmailUnique(user.getEmail()); + SysUser info = userMapper.checkEmailUnique(user.getEmail()); if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue()) { return UserConstants.USER_EMAIL_NOT_UNIQUE; @@ -321,9 +310,9 @@ public class UserServiceImpl implements IUserService @Override public String selectUserRoleGroup(Long userId) { - List list = roleMapper.selectRolesByUserId(userId); + List list = roleMapper.selectRolesByUserId(userId); StringBuffer idsStr = new StringBuffer(); - for (Role role : list) + for (SysRole role : list) { idsStr.append(role.getRoleName()).append(","); } @@ -343,9 +332,9 @@ public class UserServiceImpl implements IUserService @Override public String selectUserPostGroup(Long userId) { - List list = postMapper.selectPostsByUserId(userId); + List list = postMapper.selectPostsByUserId(userId); StringBuffer idsStr = new StringBuffer(); - for (Post post : list) + for (SysPost post : list) { idsStr.append(post.getPostName()).append(","); } diff --git a/src/main/resources/mybatis/mybatis-config.xml b/ruoyi-system/src/main/resources/mapper/mybatis-config.xml similarity index 100% rename from src/main/resources/mybatis/mybatis-config.xml rename to ruoyi-system/src/main/resources/mapper/mybatis-config.xml diff --git a/src/main/resources/mybatis/system/ConfigMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysConfigMapper.xml similarity index 88% rename from src/main/resources/mybatis/system/ConfigMapper.xml rename to ruoyi-system/src/main/resources/mapper/system/SysConfigMapper.xml index c7c59dfc..c0228ca7 100644 --- a/src/main/resources/mybatis/system/ConfigMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysConfigMapper.xml @@ -2,9 +2,9 @@ - + - + @@ -33,12 +33,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - - @@ -59,12 +59,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - where config_key = #{configKey} - + insert into sys_config ( config_name, config_key, @@ -84,7 +84,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ) - + update sys_config config_name = #{configName}, diff --git a/src/main/resources/mybatis/system/DeptMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml similarity index 89% rename from src/main/resources/mybatis/system/DeptMapper.xml rename to ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml index e9913f86..fbb8e428 100644 --- a/src/main/resources/mybatis/system/DeptMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml @@ -2,9 +2,9 @@ - + - + @@ -35,7 +35,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" order by d.parent_id, d.order_num - where d.del_flag = '0' @@ -55,26 +55,26 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select count(1) from sys_user where dept_id = #{deptId} and del_flag = '0' - select count(1) from sys_dept where del_flag = '0' and dept_id = #{deptId} and parent_id = #{parentId} - where dept_name=#{deptName} and parent_id = #{parentId} - select d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.phone, d.email, d.status, (select dept_name from sys_dept where dept_id = d.parent_id) parent_name from sys_dept d where d.dept_id = #{deptId} - + insert into sys_dept( dept_id, parent_id, @@ -102,7 +102,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ) - + update sys_dept parent_id = #{parentId}, diff --git a/src/main/resources/mybatis/system/DictDataMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysDictDataMapper.xml similarity index 89% rename from src/main/resources/mybatis/system/DictDataMapper.xml rename to ruoyi-system/src/main/resources/mapper/system/SysDictDataMapper.xml index b24c82b7..083efed8 100644 --- a/src/main/resources/mybatis/system/DictDataMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysDictDataMapper.xml @@ -2,9 +2,9 @@ - + - + @@ -25,7 +25,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" from sys_dict_data - @@ -40,7 +40,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - where dict_type = #{dictType} order by dict_sort asc @@ -50,7 +50,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where dict_type = #{dictType} and dict_value = #{dictValue} - where dict_code = #{dictCode} @@ -70,7 +70,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + update sys_dict_data dict_sort = #{dictSort}, @@ -92,7 +92,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" update sys_dict_data set dict_type = #{newDictType} where dict_type = #{oldDictType} - + insert into sys_dict_data( dict_sort, dict_label, diff --git a/src/main/resources/mybatis/system/DictTypeMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysDictTypeMapper.xml similarity index 86% rename from src/main/resources/mybatis/system/DictTypeMapper.xml rename to ruoyi-system/src/main/resources/mapper/system/SysDictTypeMapper.xml index d075f63e..4e7bbbd5 100644 --- a/src/main/resources/mybatis/system/DictTypeMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysDictTypeMapper.xml @@ -2,9 +2,9 @@ - + - + @@ -20,7 +20,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" from sys_dict_type - @@ -41,16 +41,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - - where dict_id = #{dictId} - where dict_type = #{dictType} @@ -66,7 +66,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + update sys_dict_type dict_name = #{dictName}, @@ -79,7 +79,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where dict_id = #{dictId} - + insert into sys_dict_type( dict_name, dict_type, diff --git a/src/main/resources/mybatis/monitor/LogininforMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysLogininforMapper.xml similarity index 84% rename from src/main/resources/mybatis/monitor/LogininforMapper.xml rename to ruoyi-system/src/main/resources/mapper/system/SysLogininforMapper.xml index de7634fa..a2ac5b4e 100644 --- a/src/main/resources/mybatis/monitor/LogininforMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysLogininforMapper.xml @@ -2,9 +2,9 @@ - + - + @@ -16,12 +16,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + insert into sys_logininfor (login_name, status, ipaddr, login_location, browser, os, msg, login_time) values (#{loginName}, #{status}, #{ipaddr}, #{loginLocation}, #{browser}, #{os}, #{msg}, sysdate()) - select info_id,login_name,ipaddr,login_location,browser,os,status,msg,login_time from sys_logininfor @@ -48,9 +48,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{infoId} - - + + truncate table sys_logininfor - + \ No newline at end of file diff --git a/src/main/resources/mybatis/system/MenuMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml similarity index 88% rename from src/main/resources/mybatis/system/MenuMapper.xml rename to ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml index b07e8518..c7bfca1f 100644 --- a/src/main/resources/mybatis/system/MenuMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml @@ -2,9 +2,9 @@ - + - + @@ -27,7 +27,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" from sys_menu - select distinct m.menu_id, m.parent_id, m.menu_name, m.url, m.perms , 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 @@ -37,14 +37,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" order by m.order_num - select distinct m.menu_id, m.parent_id, m.menu_name, m.url, m.perms , m.menu_type, m.icon, m.order_num, m.create_time from sys_menu m where m.menu_type in ('M', 'C') and m.visible = 0 order by m.order_num - @@ -64,7 +64,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" order by m.parent_id, m.order_num - @@ -80,7 +80,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" delete from sys_menu where menu_id = #{menuId} or parent_id = #{menuId} - SELECT t.menu_id, t.parent_id, t.menu_name, t.order_num, t.url, t.menu_type, t.visible, t.perms, t.icon, t.remark, (SELECT menu_name FROM sys_menu WHERE menu_id = t.parent_id) parent_name FROM sys_menu t @@ -91,12 +91,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select count(1) from sys_menu where parent_id=#{menuId} - where menu_name=#{menuName} and parent_id = #{parentId} - + update sys_menu menu_name = #{menuName}, @@ -114,7 +114,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where menu_id = #{menuId} - + insert into sys_menu( menu_id, parent_id, diff --git a/src/main/resources/mybatis/system/NoticeMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysNoticeMapper.xml similarity index 88% rename from src/main/resources/mybatis/system/NoticeMapper.xml rename to ruoyi-system/src/main/resources/mapper/system/SysNoticeMapper.xml index 03a26c42..889ab38b 100644 --- a/src/main/resources/mybatis/system/NoticeMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysNoticeMapper.xml @@ -2,9 +2,9 @@ - + - + @@ -22,12 +22,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" from sys_notice - where notice_id = #{noticeId} - @@ -42,7 +42,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + insert into sys_notice ( notice_title, notice_type, @@ -62,7 +62,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ) - + update sys_notice notice_title = #{noticeTitle}, diff --git a/src/main/resources/mybatis/monitor/OperLogMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysOperLogMapper.xml similarity index 88% rename from src/main/resources/mybatis/monitor/OperLogMapper.xml rename to ruoyi-system/src/main/resources/mapper/system/SysOperLogMapper.xml index 426a6543..d972ea5e 100644 --- a/src/main/resources/mybatis/monitor/OperLogMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysOperLogMapper.xml @@ -2,9 +2,9 @@ - + - + @@ -26,12 +26,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" from sys_oper_log - + insert into sys_oper_log(title, business_type, method, operator_type, oper_name, dept_name, oper_url, oper_ip, oper_location, oper_param, status, error_msg, oper_time) values (#{title}, #{businessType}, #{method}, #{operatorType}, #{operName}, #{deptName}, #{operUrl}, #{operIp}, #{operLocation}, #{operParam}, #{status}, #{errorMsg}, sysdate()) - @@ -59,7 +59,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - where oper_id = #{operId} diff --git a/src/main/resources/mybatis/system/PostMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysPostMapper.xml similarity index 85% rename from src/main/resources/mybatis/system/PostMapper.xml rename to ruoyi-system/src/main/resources/mapper/system/SysPostMapper.xml index 3b70deaa..4a009846 100644 --- a/src/main/resources/mybatis/system/PostMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysPostMapper.xml @@ -2,9 +2,9 @@ - + - + @@ -22,7 +22,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" from sys_post - @@ -37,11 +37,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - - SELECT p.post_id, p.post_name, p.post_code FROM sys_user u LEFT JOIN sys_user_post up ON u.user_id = up.user_id @@ -49,17 +49,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" WHERE up.user_id = #{userId} - where post_id = #{postId} - where post_name=#{postName} - where post_code=#{postCode} @@ -71,7 +71,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + update sys_post post_code = #{postCode}, @@ -85,7 +85,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where post_id = #{postId} - + insert into sys_post( post_id, post_code, diff --git a/src/main/resources/mybatis/system/RoleDeptMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysRoleDeptMapper.xml similarity index 85% rename from src/main/resources/mybatis/system/RoleDeptMapper.xml rename to ruoyi-system/src/main/resources/mapper/system/SysRoleDeptMapper.xml index 84dbc875..cfbfd48b 100644 --- a/src/main/resources/mybatis/system/RoleDeptMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysRoleDeptMapper.xml @@ -2,9 +2,9 @@ - + - + diff --git a/src/main/resources/mybatis/system/RoleMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml similarity index 89% rename from src/main/resources/mybatis/system/RoleMapper.xml rename to ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml index 94ab02b0..3d89ae88 100644 --- a/src/main/resources/mybatis/system/RoleMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml @@ -2,9 +2,9 @@ - + - + @@ -33,7 +33,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" from sys_role r - where r.del_flag = '0' @@ -58,22 +58,22 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ${params.dataScope} - WHERE r.del_flag = '0' and ur.user_id = #{userId} - where r.del_flag = '0' and r.role_id = #{roleId} - where r.role_name=#{roleName} - where r.role_key=#{roleKey} @@ -89,7 +89,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + update sys_role role_name = #{roleName}, @@ -104,7 +104,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where role_id = #{roleId} - + insert into sys_role( role_id, role_name, diff --git a/src/main/resources/mybatis/system/RoleMenuMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysRoleMenuMapper.xml similarity index 85% rename from src/main/resources/mybatis/system/RoleMenuMapper.xml rename to ruoyi-system/src/main/resources/mapper/system/SysRoleMenuMapper.xml index dc036be4..f509d207 100644 --- a/src/main/resources/mybatis/system/RoleMenuMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysRoleMenuMapper.xml @@ -2,9 +2,9 @@ - + - + diff --git a/src/main/resources/mybatis/system/UserMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml similarity index 90% rename from src/main/resources/mybatis/system/UserMapper.xml rename to ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml index 50808aef..96b99bad 100644 --- a/src/main/resources/mybatis/system/UserMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml @@ -2,9 +2,9 @@ - + - + @@ -24,11 +24,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + - + @@ -36,7 +36,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + @@ -55,7 +55,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" left join sys_role r on r.role_id = ur.role_id - select u.user_id, u.dept_id, u.login_name, u.user_name, u.email, u.phonenumber, u.password, u.sex, u.avatar, u.salt, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, d.dept_name from sys_user u left join sys_dept d on u.dept_id = d.dept_id where u.del_flag = '0' @@ -81,17 +81,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ${params.dataScope} - where u.login_name = #{userName} - where u.phonenumber = #{phonenumber} - where u.email = #{email} @@ -100,15 +100,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select count(1) from sys_user where login_name=#{loginName} - select user_id, phonenumber from sys_user where phonenumber=#{phonenumber} - select user_id, email from sys_user where email=#{email} - where u.user_id = #{userId} @@ -124,7 +124,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + update sys_user dept_id = #{deptId}, @@ -146,7 +146,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where user_id = #{userId} - + insert into sys_user( user_id, dept_id, diff --git a/src/main/resources/mybatis/monitor/OnlineMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysUserOnlineMapper.xml similarity index 72% rename from src/main/resources/mybatis/monitor/OnlineMapper.xml rename to ruoyi-system/src/main/resources/mapper/system/SysUserOnlineMapper.xml index a0e8a997..c91025d9 100644 --- a/src/main/resources/mybatis/monitor/OnlineMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysUserOnlineMapper.xml @@ -2,9 +2,9 @@ - + - + @@ -16,14 +16,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - - - - - - - - @@ -31,12 +23,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" from sys_user_online - where sessionid = #{sessionid} - + replace into sys_user_online(sessionId, login_name, dept_name, ipaddr, login_location, browser, os, status, start_timestamp, last_access_time, expire_time) values (#{sessionId}, #{loginName}, #{deptName}, #{ipaddr}, #{loginLocation}, #{browser}, #{os}, #{status}, #{startTimestamp}, #{lastAccessTime}, #{expireTime}) @@ -45,7 +37,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" delete from sys_user_online where sessionId = #{sessionId} - @@ -57,7 +49,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - o WHERE o.last_access_time #{lastAccessTime} ORDER BY o.last_access_time ASC diff --git a/src/main/resources/mybatis/system/UserPostMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysUserPostMapper.xml similarity index 85% rename from src/main/resources/mybatis/system/UserPostMapper.xml rename to ruoyi-system/src/main/resources/mapper/system/SysUserPostMapper.xml index 47c04cca..21c40981 100644 --- a/src/main/resources/mybatis/system/UserPostMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysUserPostMapper.xml @@ -2,9 +2,9 @@ - + - + diff --git a/src/main/resources/mybatis/system/UserRoleMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysUserRoleMapper.xml similarity index 85% rename from src/main/resources/mybatis/system/UserRoleMapper.xml rename to ruoyi-system/src/main/resources/mapper/system/SysUserRoleMapper.xml index 98ea1730..42aa7671 100644 --- a/src/main/resources/mybatis/system/UserRoleMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysUserRoleMapper.xml @@ -2,9 +2,9 @@ - + - + diff --git a/ry.sh b/ry.sh deleted file mode 100644 index 55adaf89..00000000 --- a/ry.sh +++ /dev/null @@ -1,86 +0,0 @@ -#!/bin/bash - -AppName=RuoYi.jar - -#JVM参数 -JVM_OPTS="-Dname=$AppName -Duser.timezone=Asia/Shanghai -Xms512M -Xmx512M -XX:PermSize=256M -XX:MaxPermSize=512M -XX:+HeapDumpOnOutOfMemoryError -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:NewRatio=1 -XX:SurvivorRatio=30 -XX:+UseParallelGC -XX:+UseParallelOldGC" -APP_HOME=`pwd` -LOG_PATH=$APP_HOME/logs/$AppName.log - -if [ "$1" = "" ]; -then - echo -e "\033[0;31m 未输入操作名 \033[0m \033[0;34m {start|stop|restart|status} \033[0m" - exit 1 -fi - -if [ "$AppName" = "" ]; -then - echo -e "\033[0;31m 未输入应用名 \033[0m" - exit 1 -fi - -function start() -{ - PID=`ps -ef |grep java|grep $AppName|grep -v grep|awk '{print $2}'` - - if [ x"$PID" != x"" ]; then - echo "$AppName is running..." - else - nohup java -jar $JVM_OPTS target/$AppName > /dev/null 2>&1 & - echo "Start $AppName success..." - fi -} - -function stop() -{ - echo "Stop $AppName" - - PID="" - query(){ - PID=`ps -ef |grep java|grep $AppName|grep -v grep|awk '{print $2}'` - } - - query - if [ x"$PID" != x"" ]; then - kill -TERM $PID - echo "$AppName (pid:$PID) exiting..." - while [ x"$PID" != x"" ] - do - sleep 1 - query - done - echo "$AppName exited." - else - echo "$AppName already stopped." - fi -} - -function restart() -{ - stop - sleep 2 - start -} - -function status() -{ - PID=`ps -ef |grep java|grep $AppName|grep -v grep|wc -l` - if [ $PID != 0 ];then - echo "$AppName is running..." - else - echo "$AppName is not running..." - fi -} - -case $1 in - start) - start;; - stop) - stop;; - restart) - restart;; - status) - status;; - *) - -esac diff --git a/sql/ruoyi.pdb b/sql/ruoyi.pdb new file mode 100644 index 00000000..9dbddc69 --- /dev/null +++ b/sql/ruoyi.pdb @@ -0,0 +1,4851 @@ + + + + + + + + + +21C20947-ED50-4632-B638-DC1A02BD948A +ruoyi +ruoyi +1524449337 +Administrator +1538297587 +admin +[FolderOptions] + +[FolderOptions\Physical Objects] +GenerationCheckModel=Yes +GenerationPath= +GenerationOptions= +GenerationTasks= +GenerationTargets= +GenerationSelections= +RevPkey=Yes +RevFkey=Yes +RevAkey=Yes +RevCheck=Yes +RevIndx=Yes +RevOpts=Yes +RevViewAsTabl=No +RevViewOpts=Yes +RevSystAsTabl=Yes +RevTablPerm=No +RevViewPerm=No +RevProcPerm=No +RevDbpkPerm=No +RevSqncPerm=No +RevAdtPerm=No +RevUserPriv=No +RevUserOpts=No +RevGrpePriv=No +RevRolePriv=No +RevDtbsOpts=Yes +RevDtbsPerm=No +RevViewIndx=Yes +RevJidxOpts=Yes +RevStats=No +RevTspcPerm=No +RevCaseSensitive=No +GenTrgrStdMsg=Yes +GenTrgrMsgTab= +GenTrgrMsgNo= +GenTrgrMsgTxt= +TrgrPreserve=No +TrgrIns=Yes +TrgrUpd=Yes +TrgrDel=Yes +TrgrC2Ins=Yes +TrgrC2Upd=Yes +TrgrC3=Yes +TrgrC4=Yes +TrgrC5=Yes +TrgrC6=Yes +TrgrC7=Yes +TrgrC8=Yes +TrgrC9=Yes +TrgrC10=Yes +TrgrC11=Yes +TrgrC1=Yes +TrgrC12Ins=Yes +TrgrC12Upd=Yes +TrgrC13=Yes +UpdateTableStatistics=Yes +UpdateColumnStatistics=Yes + +[FolderOptions\Physical Objects\Database Generation] +GenScriptName=orders.sql +GenScriptName0=orders.sql +GenScriptName1=studentsystem.sql +GenScriptName2=NetCTOSS.sql +GenScriptName3=product.sql +GenScriptName4=voteSystem.sql +GenScriptName5=.sql +GenScriptName6=enterpriseManagement.sql +GenScriptName7=crebas.sql +GenScriptName8= +GenScriptName9= +GenPathName=C:\Users\Administrator\Desktop\ +GenSingleFile=Yes +GenODBC=No +GenCheckModel=Yes +GenScriptPrev=Yes +GenArchiveModel=No +GenUseSync=No +GenSyncChoice=0 +GenSyncArch= +GenSyncRmg=0 + +[FolderOptions\Physical Objects\Database Generation\Format] +GenScriptTitle=Yes +GenScriptNamLabl=No +GenScriptQDtbs=No +GenScriptQOwnr=Yes +GenScriptCase=0 +GenScriptEncoding=ANSI +GenScriptNAcct=No +IdentifierDelimiter=" + +[FolderOptions\Physical Objects\Database Generation\Database] +Create=Yes +Open=Yes +Close=Yes +Drop=Yes +Permission=No + +[FolderOptions\Physical Objects\Database Generation\Database\Create] +Physical Options=Yes +Header=Yes +Footer=Yes + +[FolderOptions\Physical Objects\Database Generation\Tablespace] +Create=Yes +Drop=Yes +Comment=Yes +Permission=No + +[FolderOptions\Physical Objects\Database Generation\Tablespace\Create] +Header=Yes +Footer=Yes + +[FolderOptions\Physical Objects\Database Generation\Storage] +Create=Yes +Drop=Yes +Comment=Yes + +[FolderOptions\Physical Objects\Database Generation\User] +Create=Yes +Grant=Yes +Drop=Yes +Comment=Yes +Privilege=No + +[FolderOptions\Physical Objects\Database Generation\User\Create] +Physical Options=No + +[FolderOptions\Physical Objects\Database Generation\Group] +Create=Yes +Drop=Yes +Comment=Yes +Privilege=No + +[FolderOptions\Physical Objects\Database Generation\Role] +Create=Yes +Drop=Yes +Privilege=No + +[FolderOptions\Physical Objects\Database Generation\UserDefinedDataType] +Create=Yes +Comment=Yes +Drop=Yes + +[FolderOptions\Physical Objects\Database Generation\UserDefinedDataType\Create] +Default value=Yes +Check=Yes + +[FolderOptions\Physical Objects\Database Generation\AbstractDataType] +Create=Yes +Header=Yes +Footer=Yes +Drop=Yes +Comment=Yes +Install JAVA class=Yes +Remove JAVA class=Yes +Permission=No + +[FolderOptions\Physical Objects\Database Generation\Rule] +Create=Yes +Drop=Yes +Comment=Yes + +[FolderOptions\Physical Objects\Database Generation\Default] +Create=Yes +Comment=Yes +Drop=Yes + +[FolderOptions\Physical Objects\Database Generation\Sequence] +Create=Yes +Drop=Yes +Comment=Yes +Permission=No + +[FolderOptions\Physical Objects\Database Generation\Table&&Column] + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Table] +Create=Yes +Drop=Yes +Comment=Yes +Permission=No + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Table\Create] +Check=Yes +Physical Options=Yes +Header=Yes +Footer=Yes + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Table\Create\Check] +Constraint declaration=No + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Column] +User datatype=No +Default value=Yes +Check=Yes +Physical Options=Yes +Comment=Yes + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Column\Check] +Constraint declaration=No + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Key] + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Key\Primary key] +Create=Yes +Drop=Yes +Comment=Yes + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Key\Primary key\Create] +Constraint declaration=No +Physical Options=Yes + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Key\Alternate key] +Create=Yes +Drop=Yes +Comment=Yes + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Key\Alternate key\Create] +Constraint declaration=No +Physical Options=Yes + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Foreign key] +Create=Yes +Drop=Yes +Comment=Yes + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Foreign key\Create] +Constraint declaration=Yes + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Index] +Create=Yes +Drop=Yes +Comment=Yes + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Index\Create] +Constraint declaration=Yes +Physical Options=Yes + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Index\Filter] +Primary key=No +Foreign key=No +Alternate key=No +Cluster=Yes +Other=Yes + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Trigger] +Create=Yes +Drop=Yes +Comment=Yes + +[FolderOptions\Physical Objects\Database Generation\Table&&Column\Trigger\Filter] +For insert=Yes +For update=Yes +For delete=Yes +For other=Yes + +[FolderOptions\Physical Objects\Database Generation\View] +Create=Yes +Drop=Yes +Comment=Yes +Permission=No + +[FolderOptions\Physical Objects\Database Generation\View\Create] +Force Column list=No +Physical Options=Yes +Header=Yes +Footer=Yes + +[FolderOptions\Physical Objects\Database Generation\View\ViewColumn] +Comment=Yes + +[FolderOptions\Physical Objects\Database Generation\View\ViewIndex] +Create=Yes +Drop=Yes +Comment=Yes + +[FolderOptions\Physical Objects\Database Generation\View\ViewIndex\Create] +Physical Options=Yes + +[FolderOptions\Physical Objects\Database Generation\View\ViewIndex\Filter] +Cluster=Yes +Other=Yes + +[FolderOptions\Physical Objects\Database Generation\View\Trigger] +Create=Yes +Drop=Yes +Comment=Yes + +[FolderOptions\Physical Objects\Database Generation\View\Trigger\Filter] +For insert=Yes +For update=Yes +For delete=Yes +For other=Yes + +[FolderOptions\Physical Objects\Database Generation\DBMSTrigger] +Create=Yes +Drop=Yes +Comment=Yes + +[FolderOptions\Physical Objects\Database Generation\Synonym] +Create=Yes +Drop=Yes + +[FolderOptions\Physical Objects\Database Generation\Synonym\Filter] +Table=Yes +View=Yes +Proc=Yes +Synonym=Yes +Database Package=Yes +Sequence=Yes + +[FolderOptions\Physical Objects\Database Generation\JoinIndex] +Create=Yes +Drop=Yes +Comment=Yes + +[FolderOptions\Physical Objects\Database Generation\JoinIndex\Create] +Physical Options=Yes +Header=Yes +Footer=Yes + +[FolderOptions\Physical Objects\Database Generation\Procedure] +Create=Yes +Drop=Yes +Comment=Yes +Permission=No + +[FolderOptions\Physical Objects\Database Generation\Procedure\Create] +Header=Yes +Footer=Yes + +[FolderOptions\Physical Objects\Database Generation\DatabasePackage] +Create=Yes +Drop=Yes +Permission=No + +[FolderOptions\Physical Objects\Database Generation\WebService] +Create=Yes +Drop=Yes +Comment=Yes + +[FolderOptions\Physical Objects\Database Generation\Dimension] +Create=Yes +Drop=Yes + +[FolderOptions\Physical Objects\Database Generation\Synchronization] +GenBackupTabl=1 +GenKeepBackTabl=1 +GenTmpTablDrop=No +GenKeepTablOpts=No + +[FolderOptions\Physical Objects\Test Data] +GenDataPathName= +GenDataSinglefile=Yes +GenDataScriptName=testdata +GenDataScriptName0= +GenDataScriptName1= +GenDataScriptName2= +GenDataScriptName3= +GenDataScriptName4= +GenDataScriptName5= +GenDataScriptName6= +GenDataScriptName7= +GenDataScriptName8= +GenDataScriptName9= +GenDataOdbc=0 +GenDataDelOld=No +GenDataTitle=No +GenDataDefNumRows=20 +GenDataCommit=0 +GenDataPacket=0 +GenDataOwner=No +GenDataProfNumb= +GenDataProfChar= +GenDataProfDate= +GenDataCSVSeparator=, +GenDataFileFormat=CSV +GenDataUseWizard=No + +[FolderOptions\Pdm] +IndxIQName=%COLUMN%_%INDEXTYPE% +IndxPK=Yes +IndxFK=Yes +IndxAK=Yes +IndxPKName=%TABLE%_PK +IndxFKName=%REFR%_FK +IndxAKName=%AKEY%_AK +IndxPreserve=No +IndxThreshold=0 +IndxStats=No +RefrPreserve=No +JidxPreserve=No +RbldMultiFact=Yes +RbldMultiDim=Yes +RbldMultiJidx=Yes +CubePreserve=No +TablStProcPreserve=No +ProcDepPreserve=Yes +TrgrDepPreserve=Yes +CubeScriptPath= +CubeScriptCase=0 +CubeScriptEncoding=ANSI +CubeScriptNacct=No +CubeScriptHeader=No +CubeScriptExt=csv +CubeScriptExt0=txt +CubeScriptExt1= +CubeScriptExt2= +CubeScriptSep=, +CubeScriptDeli=" +DfltDomnName=D_%.U:VALUE% +DfltColnName=D_%.U:VALUE% +DfltReuse=Yes +DfltDrop=Yes +[ModelOptions] + +[ModelOptions\Physical Objects] +CaseSensitive=No +DisplayName=Yes +EnableTrans=No +EnableRequirements=No +DefaultDttp= +IgnoreOwner=No +RebuildTrigger=Yes +RefrUnique=No +RefrAutoMigrate=Yes +RefrMigrateReuse=Yes +RefrMigrateDomain=Yes +RefrMigrateCheck=Yes +RefrMigrateRule=Yes +RefrMigrateExtd=No +RefrMigrDefaultLink=No +RefrDfltImpl=D +RefrPrgtColn=No +RefrMigrateToEnd=No +RebuildTriggerDep=No +ColnFKName=%.3:PARENT%_%COLUMN% +ColnFKNameUse=No +DomnCopyDttp=Yes +DomnCopyChck=No +DomnCopyRule=No +DomnCopyMand=No +DomnCopyExtd=No +DomnCopyProf=No +Notation=0 +DomnDefaultMandatory=No +ColnDefaultMandatory=No +TablDefaultOwner= +ViewDefaultOwner= +TrgrDefaultOwnerTabl= +TrgrDefaultOwnerView= +IdxDefaultOwnerTabl= +IdxDefaultOwnerView= +JdxDefaultOwner= +DBPackDefaultOwner= +SeqDefaultOwner= +ProcDefaultOwner= +DBMSTrgrDefaultOwner= +Currency=USD +RefrDeleteConstraint=1 +RefrUpdateConstraint=1 +RefrParentMandatory=No +RefrParentChangeAllow=Yes +RefrCheckOnCommit=No + +[ModelOptions\Physical Objects\NamingOptionsTemplates] + +[ModelOptions\Physical Objects\ClssNamingOptions] + +[ModelOptions\Physical Objects\ClssNamingOptions\PDMPCKG] + +[ModelOptions\Physical Objects\ClssNamingOptions\PDMPCKG\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\PDMPCKG\Code] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\PDMDOMN] + +[ModelOptions\Physical Objects\ClssNamingOptions\PDMDOMN\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\PDMDOMN\Code] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\TABL] + +[ModelOptions\Physical Objects\ClssNamingOptions\TABL\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\TABL\Code] +Template= +MaxLen=64 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\COLN] + +[ModelOptions\Physical Objects\ClssNamingOptions\COLN\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\COLN\Code] +Template= +MaxLen=64 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\INDX] + +[ModelOptions\Physical Objects\ClssNamingOptions\INDX\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\INDX\Code] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\REFR] + +[ModelOptions\Physical Objects\ClssNamingOptions\REFR\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\REFR\Code] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\VREF] + +[ModelOptions\Physical Objects\ClssNamingOptions\VREF\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\VREF\Code] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\VIEW] + +[ModelOptions\Physical Objects\ClssNamingOptions\VIEW\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\VIEW\Code] +Template= +MaxLen=64 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\VIEWC] + +[ModelOptions\Physical Objects\ClssNamingOptions\VIEWC\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\VIEWC\Code] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\WEBSERV] + +[ModelOptions\Physical Objects\ClssNamingOptions\WEBSERV\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\WEBSERV\Code] +Template= +MaxLen=254 +Case=M +ValidChar='a'-'z','A'-'Z','0'-'9',"/-_.!~*'()" +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\WEBOP] + +[ModelOptions\Physical Objects\ClssNamingOptions\WEBOP\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\WEBOP\Code] +Template= +MaxLen=254 +Case=M +ValidChar='a'-'z','A'-'Z','0'-'9',"/-_.!~*'()" +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\WPARAM] + +[ModelOptions\Physical Objects\ClssNamingOptions\WPARAM\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\WPARAM\Code] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\FACT] + +[ModelOptions\Physical Objects\ClssNamingOptions\FACT\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\FACT\Code] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\DIMN] + +[ModelOptions\Physical Objects\ClssNamingOptions\DIMN\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\DIMN\Code] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\CUBE] + +[ModelOptions\Physical Objects\ClssNamingOptions\CUBE\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\CUBE\Code] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\MEAS] + +[ModelOptions\Physical Objects\ClssNamingOptions\MEAS\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\MEAS\Code] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\DATTR] + +[ModelOptions\Physical Objects\ClssNamingOptions\DATTR\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\DATTR\Code] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\FILO] + +[ModelOptions\Physical Objects\ClssNamingOptions\FILO\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\FILO\Code] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\FRMEOBJ] + +[ModelOptions\Physical Objects\ClssNamingOptions\FRMEOBJ\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\FRMEOBJ\Code] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\FRMELNK] + +[ModelOptions\Physical Objects\ClssNamingOptions\FRMELNK\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\FRMELNK\Code] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\DefaultClass] + +[ModelOptions\Physical Objects\ClssNamingOptions\DefaultClass\Name] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Physical Objects\ClssNamingOptions\DefaultClass\Code] +Template= +MaxLen=254 +Case=M +ValidChar= +InvldChar= +AllValid=Yes +NoAccent=No +DefaultChar= +Script= +ConvTable= +ConvTablePath=%_HOME%\Resource Files\Conversion Tables + +[ModelOptions\Connection] + +[ModelOptions\Pdm] + +[ModelOptions\Generate] + +[ModelOptions\Generate\Pdm] +RRMapping=No + +[ModelOptions\Generate\Cdm] +CheckModel=Yes +SaveLinks=Yes +NameToCode=No +Notation=2 + +[ModelOptions\Generate\Oom] +CheckModel=Yes +SaveLinks=Yes +ORMapping=No +NameToCode=Yes +ClassPrefix= + +[ModelOptions\Generate\Xsm] +CheckModel=Yes +SaveLinks=Yes +ORMapping=No +NameToCode=No + +[ModelOptions\Generate\Ldm] +CheckModel=Yes +SaveLinks=Yes +NameToCode=No + +[ModelOptions\Default Opts] + +[ModelOptions\Default Opts\TABL] +PhysOpts= + +[ModelOptions\Default Opts\COLN] +PhysOpts= + +[ModelOptions\Default Opts\INDX] +PhysOpts= + +[ModelOptions\Default Opts\AKEY] +PhysOpts= + +[ModelOptions\Default Opts\PKEY] +PhysOpts= + +[ModelOptions\Default Opts\STOR] +PhysOpts= + +[ModelOptions\Default Opts\TSPC] +PhysOpts= + +[ModelOptions\Default Opts\SQNC] +PhysOpts= + +[ModelOptions\Default Opts\DTBS] +PhysOpts= + +[ModelOptions\Default Opts\USER] +PhysOpts= + +[ModelOptions\Default Opts\JIDX] +PhysOpts= + + +AFAD9ECF-F417-4FCE-BEA4-884857D4C1A9 +MySQL 5.0 +MYSQL50 +1524449337 +Administrator +1524449337 +Administrator + +F4F16ECD-F2F1-4006-AF6F-638D5C65F35E +4BA9F647-DAB1-11D1-9944-006097355D9B + + + + +B6C2C4A4-6A8A-41F3-909D-C7B514E1EAE2 +PhysicalDiagram_1 +PhysicalDiagram_1 +1524449325 +Administrator +1538297386 +admin +[DisplayPreferences] + +[DisplayPreferences\PDM] + +[DisplayPreferences\General] +Adjust to text=Yes +Snap Grid=No +Constrain Labels=Yes +Display Grid=No +Show Page Delimiter=Yes +Grid size=0 +Graphic unit=2 +Window color=255, 255, 255 +Background image= +Background mode=8 +Watermark image= +Watermark mode=8 +Show watermark on screen=No +Gradient mode=0 +Gradient end color=255, 255, 255 +Show Swimlane=No +SwimlaneVert=Yes +TreeVert=No +CompDark=0 + +[DisplayPreferences\Object] +Mode=0 +Trunc Length=80 +Word Length=80 +Word Text=!""#$%&'()*+,-./:;<=>?@[\]^_`{|}~ +Shortcut IntIcon=Yes +Shortcut IntLoct=Yes +Shortcut IntFullPath=No +Shortcut IntLastPackage=Yes +Shortcut ExtIcon=Yes +Shortcut ExtLoct=No +Shortcut ExtFullPath=No +Shortcut ExtLastPackage=Yes +Shortcut ExtIncludeModl=Yes +EObjShowStrn=Yes +ExtendedObject.Comment=No +ExtendedObject.IconPicture=No +ExtendedObject_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Object Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <Separator Name="Separator" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form> +ELnkShowStrn=Yes +ELnkShowName=Yes +ExtendedLink_SymbolLayout=<Form>[CRLF] <Form Name="Center" >[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Source" >[CRLF] </Form>[CRLF] <Form Name="Destination" >[CRLF] </Form>[CRLF]</Form> +FileObject.Stereotype=No +FileObject.DisplayName=Yes +FileObject.LocationOrName=No +FileObject.IconPicture=No +FileObject.IconMode=Yes +FileObject_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="Yes" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Location" Attribute="LocationOrName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form> +PckgShowStrn=Yes +Package.Comment=No +Package.IconPicture=No +Package_SymbolLayout= +Display Model Version=Yes +Table.Stereotype=Yes +Table.DisplayName=Yes +Table.OwnerDisplayName=No +Table.Columns=Yes +Table.Columns._Filter=""PDMCOLNALL +Table.Columns._Columns=Stereotype DataType KeyIndicator +Table.Columns._Limit=-5 +Table.Keys=No +Table.Keys._Columns=Stereotype Indicator +Table.Indexes=No +Table.Indexes._Columns=Stereotype +Table.Triggers=No +Table.Triggers._Columns=Stereotype +Table.Comment=No +Table.IconPicture=No +Table_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="Yes" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Owner and Name" Attribute="OwnerDisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] <Separator Name="Separator" />[CRLF] <StandardCollection Name="Columns" Collection="Columns" Columns="Stereotype No\r\nDisplayName Yes\r\nDataType No\r\nSymbolDataType No &quot;Domain or Data type&quot;\r\nDomain No\r\nKeyIndicator No\r\nIndexIndicator No\r\nNullStatus No" Filters="&quot;All Columns&quot; PDMCOLNALL &quot;&quot;\r\n&quot;PK Columns&quot; PDMCOLNPK &quot;PRIM \&quot;TRUE\&quot; TRUE&quot;\r\n&quot;Key Columns&quot; PDMCOLNKEY &quot;KEYS \&quot;TRUE\&quot; TRUE&quot;" HasLimit="Yes" Caption="" Mandatory="No" />[CRLF] <StandardCollection Name="Keys" Collection="Keys" Columns="Stereotype No\r\nDisplayName Yes\r\nIndicator No" HasLimit="No" Caption="" Mandatory="No" />[CRLF] <StandardCollection Name="Indexes" Collection="Indexes" Columns="Stereotype No\r\nDisplayName Yes\r\nIndicator No" HasLimit="No" Caption="" Mandatory="No" />[CRLF] <StandardCollection Name="Triggers" Collection="Triggers" Columns="Stereotype No\r\nDisplayName Yes" HasLimit="No" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form> +View.Stereotype=Yes +View.DisplayName=Yes +View.OwnerDisplayName=No +View.Columns=Yes +View.Columns._Columns=DisplayName +View.Columns._Limit=-5 +View.TemporaryVTables=Yes +View.Indexes=No +View.Comment=No +View.IconPicture=No +View_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="Yes" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Owner and Name" Attribute="OwnerDisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] <Separator Name="Separator" />[CRLF] <StandardCollection Name="Columns" Collection="Columns" Columns="DisplayName No\r\nExpression No\r\nDataType No\r\nSymbolDataType No &quot;Domain or Data type&quot;\r\nIndexIndicator No" HasLimit="Yes" Caption="" Mandatory="No" />[CRLF] <StandardCollection Name="Tables" Collection="TemporaryVTables" Columns="Name Yes" HasLimit="No" Caption="" Mandatory="No" />[CRLF] <StandardCollection Name="Indexes" Collection="Indexes" Columns="DisplayName Yes" HasLimit="No" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form> +Procedure.Stereotype=No +Procedure.DisplayName=Yes +Procedure.OwnerDisplayName=No +Procedure.Comment=No +Procedure.IconPicture=No +Procedure_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="Yes" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Owner and Name" Attribute="OwnerDisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] <Separator Name="Separator" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form> +Reference.Cardinality=No +Reference.ImplementationType=No +Reference.ChildRole=Yes +Reference.Stereotype=Yes +Reference.DisplayName=No +Reference.ForeignKeyConstraintName=Yes +Reference.JoinExpression=No +Reference.Integrity=No +Reference.ParentRole=Yes +Reference_SymbolLayout=<Form>[CRLF] <Form Name="Source" >[CRLF] <StandardAttribute Name="Cardinality" Attribute="Cardinality" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Implementation" Attribute="ImplementationType" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Child Role" Attribute="ChildRole" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Center" >[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="No" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Cons&amp;traint Name" Attribute="ForeignKeyConstraintName" Prefix="" Suffix="" Caption="Cons&amp;traint Name" Mandatory="No" />[CRLF] <StandardAttribute Name="Join" Attribute="JoinExpression" Prefix="" Suffix="" Caption="Join" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] <StandardAttribute Name="Referential integrity" Attribute="Integrity" Prefix="" Suffix="" Caption="Referential integrity" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Destination" >[CRLF] <StandardAttribute Name="Parent Role" Attribute="ParentRole" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF]</Form> +ViewReference.ChildRole=Yes +ViewReference.Stereotype=Yes +ViewReference.DisplayName=No +ViewReference.JoinExpression=No +ViewReference.ParentRole=Yes +ViewReference_SymbolLayout=<Form>[CRLF] <Form Name="Source" >[CRLF] <StandardAttribute Name="Child Role" Attribute="ChildRole" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Center" >[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="No" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Join Expression" Attribute="JoinExpression" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] </Form>[CRLF] <Form Name="Destination" >[CRLF] <StandardAttribute Name="Parent Role" Attribute="ParentRole" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF]</Form> +File Location=No +PckgStrn=Yes +ColnMode=0 +ColnMax=5 +TablOwnr=No +ColnDttp=Yes +ColnDomn=No +ColnShowDomn=No +ColnKey=Yes +ColnIndx=No +ColnMand=No +ColnStrn=Yes +VColName=Yes +VColExpr=No +VColDttp=No +VColIndx=No +VColCMod=0 +VColCMax=5 +ProcOwnr=No +KeyStrn=Yes +IndxStrn=Yes +TrgrStrn=Yes + +[DisplayPreferences\Symbol] + +[DisplayPreferences\Symbol\FRMEOBJ] +STRNFont=新宋体,8,N +STRNFont color=0, 0, 0 +DISPNAMEFont=新宋体,8,N +DISPNAMEFont color=0, 0, 0 +LABLFont=新宋体,8,N +LABLFont color=0, 0, 0 +AutoAdjustToText=Yes +Keep aspect=No +Keep center=No +Keep size=No +Width=6000 +Height=2000 +Brush color=255 255 255 +Fill Color=Yes +Brush style=6 +Brush bitmap mode=12 +Brush gradient mode=64 +Brush gradient color=192 192 192 +Brush background image= +Custom shape= +Custom text mode=0 +Pen=1 0 255 128 128 +Shadow color=192 192 192 +Shadow=0 + +[DisplayPreferences\Symbol\FRMELNK] +CENTERFont=新宋体,8,N +CENTERFont color=0, 0, 0 +Line style=0 +AutoAdjustToText=Yes +Keep aspect=No +Keep center=No +Keep size=No +Brush color=255 255 255 +Fill Color=Yes +Brush style=1 +Brush bitmap mode=12 +Brush gradient mode=0 +Brush gradient color=118 118 118 +Brush background image= +Custom shape= +Custom text mode=0 +Pen=1 0 128 128 255 +Shadow color=192 192 192 +Shadow=0 + +[DisplayPreferences\Symbol\FILO] +OBJSTRNFont=新宋体,8,N +OBJSTRNFont color=0, 0, 0 +DISPNAMEFont=新宋体,8,N +DISPNAMEFont color=0, 0, 0 +LCNMFont=新宋体,8,N +LCNMFont color=0, 0, 0 +AutoAdjustToText=Yes +Keep aspect=Yes +Keep center=Yes +Keep size=No +Width=2400 +Height=2400 +Brush color=255 255 255 +Fill Color=No +Brush style=1 +Brush bitmap mode=12 +Brush gradient mode=0 +Brush gradient color=118 118 118 +Brush background image= +Custom shape= +Custom text mode=0 +Pen=1 0 0 0 255 +Shadow color=192 192 192 +Shadow=0 + +[DisplayPreferences\Symbol\PDMPCKG] +STRNFont=新宋体,8,N +STRNFont color=0, 0, 0 +DISPNAMEFont=新宋体,8,N +DISPNAMEFont color=0, 0, 0 +LABLFont=新宋体,8,N +LABLFont color=0, 0, 0 +AutoAdjustToText=Yes +Keep aspect=No +Keep center=No +Keep size=No +Width=4800 +Height=3600 +Brush color=255 255 192 +Fill Color=Yes +Brush style=6 +Brush bitmap mode=12 +Brush gradient mode=65 +Brush gradient color=255 255 255 +Brush background image= +Custom shape= +Custom text mode=0 +Pen=1 0 178 178 178 +Shadow color=192 192 192 +Shadow=0 + +[DisplayPreferences\Symbol\TABL] +STRNFont=新宋体,8,N +STRNFont color=0, 0, 0 +DISPNAMEFont=新宋体,8,N +DISPNAMEFont color=0, 0, 0 +OWNRDISPNAMEFont=新宋体,8,N +OWNRDISPNAMEFont color=0, 0, 0 +ColumnsFont=新宋体,8,N +ColumnsFont color=0, 0, 0 +TablePkColumnsFont=新宋体,8,U +TablePkColumnsFont color=0, 0, 0 +TableFkColumnsFont=新宋体,8,N +TableFkColumnsFont color=0, 0, 0 +KeysFont=新宋体,8,N +KeysFont color=0, 0, 0 +IndexesFont=新宋体,8,N +IndexesFont color=0, 0, 0 +TriggersFont=新宋体,8,N +TriggersFont color=0, 0, 0 +LABLFont=新宋体,8,N +LABLFont color=0, 0, 0 +AutoAdjustToText=Yes +Keep aspect=No +Keep center=No +Keep size=No +Width=4800 +Height=4000 +Brush color=178 214 252 +Fill Color=Yes +Brush style=6 +Brush bitmap mode=12 +Brush gradient mode=65 +Brush gradient color=255 255 255 +Brush background image= +Custom shape= +Custom text mode=0 +Pen=1 0 0 128 192 +Shadow color=192 192 192 +Shadow=0 + +[DisplayPreferences\Symbol\VIEW] +STRNFont=新宋体,8,N +STRNFont color=0, 0, 0 +DISPNAMEFont=新宋体,8,N +DISPNAMEFont color=0, 0, 0 +OWNRDISPNAMEFont=新宋体,8,N +OWNRDISPNAMEFont color=0, 0, 0 +ColumnsFont=新宋体,8,N +ColumnsFont color=0, 0, 0 +TablePkColumnsFont=新宋体,8,U +TablePkColumnsFont color=0, 0, 0 +TableFkColumnsFont=新宋体,8,N +TableFkColumnsFont color=0, 0, 0 +TemporaryVTablesFont=新宋体,8,N +TemporaryVTablesFont color=0, 0, 0 +IndexesFont=新宋体,8,N +IndexesFont color=0, 0, 0 +LABLFont=新宋体,8,N +LABLFont color=0, 0, 0 +AutoAdjustToText=Yes +Keep aspect=No +Keep center=No +Keep size=No +Width=4800 +Height=4000 +Brush color=208 208 255 +Fill Color=Yes +Brush style=6 +Brush bitmap mode=12 +Brush gradient mode=65 +Brush gradient color=255 255 255 +Brush background image= +Custom shape= +Custom text mode=0 +Pen=1 0 128 128 192 +Shadow color=192 192 192 +Shadow=0 + +[DisplayPreferences\Symbol\PROC] +STRNFont=新宋体,8,N +STRNFont color=0, 0, 0 +DISPNAMEFont=新宋体,8,N +DISPNAMEFont color=0, 0, 0 +OWNRDISPNAMEFont=新宋体,8,N +OWNRDISPNAMEFont color=0, 0, 0 +LABLFont=新宋体,8,N +LABLFont color=0, 0, 0 +AutoAdjustToText=Yes +Keep aspect=No +Keep center=No +Keep size=No +Width=4000 +Height=1000 +Brush color=255 255 192 +Fill Color=Yes +Brush style=6 +Brush bitmap mode=12 +Brush gradient mode=65 +Brush gradient color=255 255 255 +Brush background image= +Custom shape= +Custom text mode=0 +Pen=1 0 128 108 0 +Shadow color=192 192 192 +Shadow=0 + +[DisplayPreferences\Symbol\REFR] +SOURCEFont=新宋体,8,N +SOURCEFont color=0, 0, 0 +CENTERFont=新宋体,8,N +CENTERFont color=0, 0, 0 +DESTINATIONFont=新宋体,8,N +DESTINATIONFont color=0, 0, 0 +Line style=0 +AutoAdjustToText=Yes +Keep aspect=No +Keep center=No +Keep size=No +Brush color=255 255 255 +Fill Color=Yes +Brush style=1 +Brush bitmap mode=12 +Brush gradient mode=0 +Brush gradient color=118 118 118 +Brush background image= +Custom shape= +Custom text mode=0 +Pen=1 0 0 128 192 +Shadow color=192 192 192 +Shadow=0 + +[DisplayPreferences\Symbol\VREF] +SOURCEFont=新宋体,8,N +SOURCEFont color=0, 0, 0 +CENTERFont=新宋体,8,N +CENTERFont color=0, 0, 0 +DESTINATIONFont=新宋体,8,N +DESTINATIONFont color=0, 0, 0 +Line style=0 +AutoAdjustToText=Yes +Keep aspect=No +Keep center=No +Keep size=No +Brush color=255 255 255 +Fill Color=Yes +Brush style=1 +Brush bitmap mode=12 +Brush gradient mode=0 +Brush gradient color=118 118 118 +Brush background image= +Custom shape= +Custom text mode=0 +Pen=1 0 128 128 192 +Shadow color=192 192 192 +Shadow=0 + +[DisplayPreferences\Symbol\USRDEPD] +OBJXSTRFont=新宋体,8,N +OBJXSTRFont color=0, 0, 0 +Line style=0 +AutoAdjustToText=Yes +Keep aspect=No +Keep center=No +Keep size=No +Brush color=255 255 255 +Fill Color=Yes +Brush style=1 +Brush bitmap mode=12 +Brush gradient mode=0 +Brush gradient color=118 118 118 +Brush background image= +Custom shape= +Custom text mode=0 +Pen=2 0 128 128 255 +Shadow color=192 192 192 +Shadow=0 + +[DisplayPreferences\Symbol\Free Symbol] +Free TextFont=新宋体,8,N +Free TextFont color=0, 0, 0 +Line style=0 +AutoAdjustToText=Yes +Keep aspect=No +Keep center=No +Keep size=No +Brush color=255 255 255 +Fill Color=Yes +Brush style=1 +Brush bitmap mode=12 +Brush gradient mode=0 +Brush gradient color=118 118 118 +Brush background image= +Custom shape= +Custom text mode=0 +Pen=1 0 0 0 255 +Shadow color=192 192 192 +Shadow=0 +(8268, 11693) +((315,354), (433,354)) +1 +15 + + +1524449375 +1538296407 +-1 +((-38123,15297), (-26435,28269)) +12615680 +16570034 +12632256 +STRN 0 新宋体,8,N +DISPNAME 0 新宋体,8,N +OWNRDISPNAME 0 新宋体,8,N +Columns 0 新宋体,8,N +TablePkColumns 0 新宋体,8,U +TableFkColumns 0 新宋体,8,N +Keys 0 新宋体,8,N +Indexes 0 新宋体,8,N +Triggers 0 新宋体,8,N +LABL 0 新宋体,8,N +6 +65 +16777215 + + + + + +1524449375 +1524449886 +-1 +((-23935,12010), (-11861,28282)) +12615680 +16570034 +12632256 +STRN 0 新宋体,8,N +DISPNAME 0 新宋体,8,N +OWNRDISPNAME 0 新宋体,8,N +Columns 0 新宋体,8,N +TablePkColumns 0 新宋体,8,U +TableFkColumns 0 新宋体,8,N +Keys 0 新宋体,8,N +Indexes 0 新宋体,8,N +Triggers 0 新宋体,8,N +LABL 0 新宋体,8,N +6 +65 +16777215 + + + + + +1524449375 +1538296409 +-1 +((-9361,18172), (2713,27845)) +12615680 +16570034 +12632256 +STRN 0 新宋体,8,N +DISPNAME 0 新宋体,8,N +OWNRDISPNAME 0 新宋体,8,N +Columns 0 新宋体,8,N +TablePkColumns 0 新宋体,8,U +TableFkColumns 0 新宋体,8,N +Keys 0 新宋体,8,N +Indexes 0 新宋体,8,N +Triggers 0 新宋体,8,N +LABL 0 新宋体,8,N +6 +65 +16777215 + + + + + +1524449375 +1524449886 +-1 +((5214,16547), (17288,27869)) +12615680 +16570034 +12632256 +STRN 0 新宋体,8,N +DISPNAME 0 新宋体,8,N +OWNRDISPNAME 0 新宋体,8,N +Columns 0 新宋体,8,N +TablePkColumns 0 新宋体,8,U +TableFkColumns 0 新宋体,8,N +Keys 0 新宋体,8,N +Indexes 0 新宋体,8,N +Triggers 0 新宋体,8,N +LABL 0 新宋体,8,N +6 +65 +16777215 + + + + + +1524449375 +1538296412 +-1 +((19788,14872), (31862,27845)) +12615680 +16570034 +12632256 +STRN 0 新宋体,8,N +DISPNAME 0 新宋体,8,N +OWNRDISPNAME 0 新宋体,8,N +Columns 0 新宋体,8,N +TablePkColumns 0 新宋体,8,U +TableFkColumns 0 新宋体,8,N +Keys 0 新宋体,8,N +Indexes 0 新宋体,8,N +Triggers 0 新宋体,8,N +LABL 0 新宋体,8,N +6 +65 +16777215 + + + + + +1524449375 +1538296204 +-1 +((-37598,8498), (-29000,12497)) +12615680 +16570034 +12632256 +STRN 0 新宋体,8,N +DISPNAME 0 新宋体,8,N +OWNRDISPNAME 0 新宋体,8,N +Columns 0 新宋体,8,N +TablePkColumns 0 新宋体,8,U +TableFkColumns 0 新宋体,8,N +Keys 0 新宋体,8,N +Indexes 0 新宋体,8,N +Triggers 0 新宋体,8,N +LABL 0 新宋体,8,N +6 +65 +16777215 + + + + + +1524449375 +1538296205 +-1 +((-37674,3548), (-29076,7547)) +12615680 +16570034 +12632256 +STRN 0 新宋体,8,N +DISPNAME 0 新宋体,8,N +OWNRDISPNAME 0 新宋体,8,N +Columns 0 新宋体,8,N +TablePkColumns 0 新宋体,8,U +TableFkColumns 0 新宋体,8,N +Keys 0 新宋体,8,N +Indexes 0 新宋体,8,N +Triggers 0 新宋体,8,N +LABL 0 新宋体,8,N +6 +65 +16777215 + + + + + +1524449375 +1538296308 +-1 +((-37528,-6452), (-28929,-2453)) +12615680 +16570034 +12632256 +STRN 0 新宋体,8,N +DISPNAME 0 新宋体,8,N +OWNRDISPNAME 0 新宋体,8,N +Columns 0 新宋体,8,N +TablePkColumns 0 新宋体,8,U +TableFkColumns 0 新宋体,8,N +Keys 0 新宋体,8,N +Indexes 0 新宋体,8,N +Triggers 0 新宋体,8,N +LABL 0 新宋体,8,N +6 +65 +16777215 + + + + + +1524449375 +1538296401 +-1 +((-24280,-1775), (-11048,10373)) +12615680 +16570034 +12632256 +STRN 0 新宋体,8,N +DISPNAME 0 新宋体,8,N +OWNRDISPNAME 0 新宋体,8,N +Columns 0 新宋体,8,N +TablePkColumns 0 新宋体,8,U +TableFkColumns 0 新宋体,8,N +Keys 0 新宋体,8,N +Indexes 0 新宋体,8,N +Triggers 0 新宋体,8,N +LABL 0 新宋体,8,N +6 +65 +16777215 + + + + + +1524449375 +1538296599 +-1 +((-9182,625), (2892,10298)) +12615680 +16570034 +12632256 +STRN 0 新宋体,8,N +DISPNAME 0 新宋体,8,N +OWNRDISPNAME 0 新宋体,8,N +Columns 0 新宋体,8,N +TablePkColumns 0 新宋体,8,U +TableFkColumns 0 新宋体,8,N +Keys 0 新宋体,8,N +Indexes 0 新宋体,8,N +Triggers 0 新宋体,8,N +LABL 0 新宋体,8,N +6 +65 +16777215 + + + + + +1524449375 +1538296612 +-1 +((5017,-2538), (17091,10434)) +12615680 +16570034 +12632256 +STRN 0 新宋体,8,N +DISPNAME 0 新宋体,8,N +OWNRDISPNAME 0 新宋体,8,N +Columns 0 新宋体,8,N +TablePkColumns 0 新宋体,8,U +TableFkColumns 0 新宋体,8,N +Keys 0 新宋体,8,N +Indexes 0 新宋体,8,N +Triggers 0 新宋体,8,N +LABL 0 新宋体,8,N +6 +65 +16777215 + + + + + +1524449375 +1538297772 +-1 +((-39520,-17440), (-26288,-8592)) +12615680 +16570034 +12632256 +STRN 0 新宋体,8,N +DISPNAME 0 新宋体,8,N +OWNRDISPNAME 0 新宋体,8,N +Columns 0 新宋体,8,N +TablePkColumns 0 新宋体,8,U +TableFkColumns 0 新宋体,8,N +Keys 0 新宋体,8,N +Indexes 0 新宋体,8,N +Triggers 0 新宋体,8,N +LABL 0 新宋体,8,N +6 +65 +16777215 + + + + + +1524449375 +1538297770 +-1 +((-24744,-19106), (-10738,-8608)) +12615680 +16570034 +12632256 +STRN 0 新宋体,8,N +DISPNAME 0 新宋体,8,N +OWNRDISPNAME 0 新宋体,8,N +Columns 0 新宋体,8,N +TablePkColumns 0 新宋体,8,U +TableFkColumns 0 新宋体,8,N +Keys 0 新宋体,8,N +Indexes 0 新宋体,8,N +Triggers 0 新宋体,8,N +LABL 0 新宋体,8,N +6 +65 +16777215 + + + + + +1524449375 +1538297380 +-1 +((-9749,-20696), (3870,-8548)) +12615680 +16570034 +12632256 +STRN 0 新宋体,8,N +DISPNAME 0 新宋体,8,N +OWNRDISPNAME 0 新宋体,8,N +Columns 0 新宋体,8,N +TablePkColumns 0 新宋体,8,U +TableFkColumns 0 新宋体,8,N +Keys 0 新宋体,8,N +Indexes 0 新宋体,8,N +Triggers 0 新宋体,8,N +LABL 0 新宋体,8,N +6 +65 +16777215 + + + + + +1524449375 +1538297383 +-1 +((5261,-17623), (18494,-8774)) +12615680 +16570034 +12632256 +STRN 0 新宋体,8,N +DISPNAME 0 新宋体,8,N +OWNRDISPNAME 0 新宋体,8,N +Columns 0 新宋体,8,N +TablePkColumns 0 新宋体,8,U +TableFkColumns 0 新宋体,8,N +Keys 0 新宋体,8,N +Indexes 0 新宋体,8,N +Triggers 0 新宋体,8,N +LABL 0 新宋体,8,N +6 +65 +16777215 + + + + + +1538296083 +1538296211 +-1 +((-37675,-1349), (-29076,2650)) +12615680 +16570034 +12632256 +STRN 0 新宋体,8,N +DISPNAME 0 新宋体,8,N +OWNRDISPNAME 0 新宋体,8,N +Columns 0 新宋体,8,N +TablePkColumns 0 新宋体,8,U +TableFkColumns 0 新宋体,8,N +Keys 0 新宋体,8,N +Indexes 0 新宋体,8,N +Triggers 0 新宋体,8,N +LABL 0 新宋体,8,N +6 +65 +16777215 + + + + + +1538296587 +1538296608 +-1 +((19570,-987), (32030,8687)) +12615680 +16570034 +12632256 +STRN 0 新宋体,8,N +DISPNAME 0 新宋体,8,N +OWNRDISPNAME 0 新宋体,8,N +Columns 0 新宋体,8,N +TablePkColumns 0 新宋体,8,U +TableFkColumns 0 新宋体,8,N +Keys 0 新宋体,8,N +Indexes 0 新宋体,8,N +Triggers 0 新宋体,8,N +LABL 0 新宋体,8,N +6 +65 +16777215 + + + + + +config_id +1538296632 +1538297253 +((-13950,-17175), (73200,19575)) +4130 +1 +0 +7 +16777215 +16777215 +新宋体,8,N + + +1538297386 +1538297498 +-1 +((19859,-18262), (33092,-8589)) +12615680 +16570034 +12632256 +STRN 0 新宋体,8,N +DISPNAME 0 新宋体,8,N +OWNRDISPNAME 0 新宋体,8,N +Columns 0 新宋体,8,N +TablePkColumns 0 新宋体,8,U +TableFkColumns 0 新宋体,8,N +Keys 0 新宋体,8,N +Indexes 0 新宋体,8,N +Triggers 0 新宋体,8,N +LABL 0 新宋体,8,N +6 +65 +16777215 + + + + + + + + + + + + +BB11FFF9-9DBB-4648-87AA-9A50E1214549 +sys_dept +sys_dept +1524449375 +Administrator +1538297518 +admin +部门表 + + + +00C66282-419A-4915-8509-DFFFE6352DE8 +dept_id +dept_id +1524449375 +Administrator +1524449375 +Administrator +部门id +int(11) +11 +1 +1 + + +5B6FB0B1-5B1E-4E86-AF2A-72C49EBB315E +parent_id +parent_id +1524449375 +Administrator +1524449375 +Administrator +父部门id +0 +int(11) +11 + + +065E33A5-6AB5-44F1-8FEC-A72311EECD66 +ancestors +ancestors +1538295690 +admin +1538295792 +admin +varchar(50) +50 + + +EBB59EC8-AFD4-40E3-B811-DD5040728D91 +dept_name +dept_name +1524449375 +Administrator +1524449375 +Administrator +部门名称 +'' +varchar(30) +30 + + +2F26C025-82B0-4AC5-AEE0-32BA07B7B529 +order_num +order_num +1524449375 +Administrator +1524449375 +Administrator +显示顺序 +0 +int(4) +4 + + +CA504E09-528C-482E-A0C7-F86C559AA3A6 +leader +leader +1524449375 +Administrator +1524449375 +Administrator +负责人 +'' +varchar(20) +20 + + +9CFC55C4-DF2B-4A90-A789-C3839FAA43A8 +phone +phone +1524449375 +Administrator +1524449375 +Administrator +联系电话 +'' +varchar(20) +20 + + +1A9407E5-D74E-4CE9-9078-C4EC25393F7B +email +email +1524449375 +Administrator +1524449375 +Administrator +邮箱 +'' +varchar(20) +20 + + +B6772812-4B69-4248-871D-FA1B4BA0E5F7 +status +status +1524449375 +Administrator +1538295792 +admin +部门状态:0正常,1停用 +0 +char(1) +1 + + +6EBD2BFF-861E-4247-BAAB-B37CCBAF6F8D +del_flag +del_flag +1538295690 +admin +1538295792 +admin +char(1) +1 + + +2504A090-F6D6-493F-855E-5154E01AF0CA +create_by +create_by +1524449375 +Administrator +1524449375 +Administrator +创建者 +'' +varchar(64) +64 + + +D866AE9E-E7FF-47B2-BF3D-9BC1605A2F39 +create_time +create_time +1524449375 +Administrator +1524449375 +Administrator +创建时间 +timestamp + + +7C6C9836-FC23-4492-8CF1-A4439E01B57C +update_by +update_by +1524449375 +Administrator +1524449375 +Administrator +更新者 +'' +varchar(64) +64 + + +FCED770D-005C-4531-A9D7-D1FD0A054719 +update_time +update_time +1524449375 +Administrator +1524449375 +Administrator +更新时间 +timestamp + + + + +15C1774B-9F17-48B6-A61F-728A25220B30 +Key_1 +Key_1 +1524449375 +Administrator +1524449375 +Administrator + + + + + + + + + + +AA56FD91-4450-4282-8F31-AE302DF6AFEC +sys_user +sys_user +1524449375 +Administrator +1538297540 +admin +用户信息表 + + + +4A920BCE-4040-4F12-89D2-7DF345B90321 +user_id +user_id +1524449375 +Administrator +1524449375 +Administrator +用户ID +int(11) +11 +1 +1 + + +174E10B2-4A4D-40FF-80B8-B4D285561E42 +dept_id +dept_id +1524449375 +Administrator +1538297552 +admin +部门ID +NULL +int(11) +11 + + +1D4908A9-5416-4252-BA09-FA122D0194C3 +login_name +login_name +1524449375 +Administrator +1524449375 +Administrator +登录账号 +'' +varchar(30) +30 + + +2EF63346-9E82-4746-81B7-AB67D727446D +user_name +user_name +1524449375 +Administrator +1524449375 +Administrator +用户昵称 +'' +varchar(30) +30 + + +477EA57C-0E0B-4596-9A85-EC91E72F5160 +user_type +user_type +1524449375 +Administrator +1524449375 +Administrator +类型:Y默认用户,N非默认用户 +N +char(1) +1 + + +CD16FFF4-F214-473B-A9A8-FA30A3E357D1 +email +email +1524449375 +Administrator +1524449375 +Administrator +用户邮箱 +'' +varchar(100) +100 + + +61603FA5-3EBC-4389-AED7-1B54D238A563 +phonenumber +phonenumber +1524449375 +Administrator +1524449375 +Administrator +手机号码 +'' +varchar(20) +20 + + +65E9DE55-ED58-4BD9-B96C-7C081D1119B2 +sex +sex +1538295815 +admin +1538295948 +admin +char(1) +1 + + +E5E35061-221A-4BB9-AA22-3CF20F1FCCF6 +avatar +avatar +1538295815 +admin +1538295948 +admin +varchar(100) +100 + + +4ED1C2BF-B826-4A82-9464-EEBF271F4054 +password +password +1524449375 +Administrator +1524449375 +Administrator +密码 +'' +varchar(100) +100 + + +53E6BB49-3435-46E0-832F-BCAFE1A021CB +salt +salt +1524449375 +Administrator +1524449375 +Administrator +盐加密 +'' +varchar(100) +100 + + +245CAD53-B33B-4EED-8CFA-7AA10ED943B8 +status +status +1524449375 +Administrator +1538297540 +admin +帐号状态:0正常,1禁用 +0 +char(1) +1 + + +7F851464-6CC5-445B-9413-2A89B9CE90CB +del_flag +del_flag +1524449375 +Administrator +1538295948 +admin +拒绝登录描述 +'' +char(1) +1 + + +3DC8EC79-D75A-4BF8-8FBC-152E938AC14F +create_by +create_by +1524449375 +Administrator +1524449375 +Administrator +创建者 +'' +varchar(64) +64 + + +48C8C936-7A34-4A97-AACA-A6F07751FFAD +create_time +create_time +1524449375 +Administrator +1524449375 +Administrator +创建时间 +timestamp + + +6050B4F3-9B26-4B40-AB4C-BA483F179958 +update_by +update_by +1524449375 +Administrator +1524449375 +Administrator +更新者 +'' +varchar(64) +64 + + +CD1E7E11-8EB6-4C9C-A69C-39CBCF10573E +update_time +update_time +1524449375 +Administrator +1524449375 +Administrator +更新时间 +timestamp + + +F9F55D4C-13E6-49A0-BFDB-E0AFE0FA5501 +remark +remark +1538295815 +admin +1538295948 +admin +varchar(500) +500 + + + + +2E35FD67-A7A7-4B10-85E4-85115AD0E143 +Key_1 +Key_1 +1524449375 +Administrator +1524449375 +Administrator + + + + + + + + + + +2711A520-532C-4F14-A034-BFF047C9CD6B +sys_post +sys_post +1524449375 +Administrator +1538297571 +admin +岗位信息表 + + + +FB04D29E-41F0-49A3-BFDB-58E222843F21 +post_id +post_id +1524449375 +Administrator +1524449375 +Administrator +岗位ID +int(11) +11 +1 +1 + + +50010C4E-4F59-47B9-8F08-05E8E071E8B1 +post_code +post_code +1524449375 +Administrator +1524449375 +Administrator +岗位编码 +varchar(64) +64 +1 + + +0F929250-051E-4344-B22A-C30E071A543B +post_name +post_name +1524449375 +Administrator +1524449375 +Administrator +岗位名称 +varchar(100) +100 +1 + + +2BC9005E-350F-46BE-98D6-9B13060F1B20 +post_sort +post_sort +1524449375 +Administrator +1524449375 +Administrator +显示顺序 +int(4) +4 +1 + + +F6D7AD3E-5EA0-4759-B6BF-6334B7105B78 +status +status +1524449375 +Administrator +1538297565 +admin +状态(0正常 1停用) +char(1) +1 +1 + + +CED01369-5063-479D-A444-32936369A486 +create_by +create_by +1524449375 +Administrator +1524449375 +Administrator +创建者 +'' +varchar(64) +64 + + +A29528FF-A2B9-4149-B997-1B0204D42E40 +create_time +create_time +1524449375 +Administrator +1524449375 +Administrator +创建时间 +timestamp + + +6026A05D-0C1E-497E-8EAF-FDB704BE6A52 +update_by +update_by +1524449375 +Administrator +1524449375 +Administrator +更新者 +'' +varchar(64) +64 + + +DF516F5F-CD82-4347-AC57-BDCB4E5DD75E +update_time +update_time +1524449375 +Administrator +1524449375 +Administrator +更新时间 +timestamp + + +539CEC34-49F0-49A0-9B7C-B84655FD2233 +remark +remark +1524449375 +Administrator +1524449375 +Administrator +备注 +'' +varchar(500) +500 + + + + +14E893B1-D0BA-46A7-A905-F0FFA089B65A +Key_1 +Key_1 +1524449375 +Administrator +1524449375 +Administrator + + + + + + + + + + +11337551-BA45-43CD-9148-92BE60E2F8F5 +sys_role +sys_role +1524449375 +Administrator +1538297608 +admin +角色信息表 + + + +A420E2C9-8FE3-452A-9047-C7BEACE8490C +role_id +role_id +1524449375 +Administrator +1524449375 +Administrator +角色ID +int(10) +10 +1 +1 + + +9342763D-5B89-4440-965B-2B55DB4ACD86 +role_name +role_name +1524449375 +Administrator +1524449375 +Administrator +角色名称 +varchar(30) +30 +1 + + +54480009-0C7E-40F2-AA76-CD914A6D66C5 +role_key +role_key +1524449375 +Administrator +1524449375 +Administrator +角色权限字符串 +varchar(100) +100 +1 + + +E73F4D0E-12A0-42B5-B3CE-B573D499DD6C +role_sort +role_sort +1524449375 +Administrator +1538296031 +admin +显示顺序 +int(10) +10 + + +5F836F54-9EBD-4768-AA3C-F268F5FAFE8D +data_scope +data_scope +1538295973 +admin +1538296031 +admin +char(1) +1 + + +424ED799-E4C1-44AD-A172-C2B3C405E9C5 +status +status +1524449375 +Administrator +1538297608 +admin +角色状态:0正常,1禁用 +0 +char(1) +1 + + +8E034C76-5966-4246-B81B-7B12F37D96A7 +del_flag +del_flag +1538295973 +admin +1538296031 +admin +char(1) +1 + + +214F6E1F-28B1-454B-ABF0-D1C43220129D +create_by +create_by +1524449375 +Administrator +1524449375 +Administrator +创建者 +'' +varchar(64) +64 + + +1A6D5791-0353-4ABC-8BC2-921BB87A2E5A +create_time +create_time +1524449375 +Administrator +1524449375 +Administrator +创建时间 +timestamp + + +D6394880-A49C-4B83-B43A-5FDBAA918AA3 +update_by +update_by +1524449375 +Administrator +1524449375 +Administrator +更新者 +'' +varchar(64) +64 + + +34285DF5-8E36-452B-A3AA-9F4290C20F7E +update_time +update_time +1524449375 +Administrator +1524449375 +Administrator +更新时间 +timestamp + + +2FAB98F7-68A2-460B-8A20-5D5DA73F5103 +remark +remark +1524449375 +Administrator +1524449375 +Administrator +备注 +'' +varchar(500) +500 + + + + +4342E67F-D33C-435F-9865-973E053B6075 +Key_1 +Key_1 +1524449375 +Administrator +1524449375 +Administrator + + + + + + + + + + +FBC2A590-443B-43C9-82D5-687B850C8B3D +sys_menu +sys_menu +1524449375 +Administrator +1538297627 +admin +菜单权限表 + + + +BB061292-3B99-432E-9B96-5362AAD918B9 +menu_id +menu_id +1524449375 +Administrator +1524449375 +Administrator +菜单ID +int(11) +11 +1 +1 + + +EA8422AB-37B1-4D60-A3C9-A4BF9039A9D4 +menu_name +menu_name +1524449375 +Administrator +1524449375 +Administrator +菜单名称 +varchar(50) +50 +1 + + +E56E04A8-63F6-4271-92E3-974DC84DD536 +parent_id +parent_id +1524449375 +Administrator +1524449375 +Administrator +父菜单ID +0 +int(11) +11 + + +1809914E-6B09-4CD2-8916-E603D6717557 +order_num +order_num +1524449375 +Administrator +1524449375 +Administrator +显示顺序 +NULL +int(4) +4 + + +FCB44D46-3C21-40CB-B942-57823E52E5B1 +url +url +1524449375 +Administrator +1524449375 +Administrator +请求地址 +'' +varchar(200) +200 + + +667EE044-6805-4668-BAF4-E78B3052051F +menu_type +menu_type +1524449375 +Administrator +1524449375 +Administrator +类型:M目录,C菜单,F按钮 +'' +char(1) +1 + + +F7658083-BCAB-46F7-AF31-8A4B1D8749EF +visible +visible +1524449375 +Administrator +1538297627 +admin +菜单状态:0显示,1隐藏 +0 +char(1) +1 + + +528611C8-C319-430F-8F00-68FBA60F310B +perms +perms +1524449375 +Administrator +1524449375 +Administrator +权限标识 +'' +varchar(100) +100 + + +38004CD7-8DD0-43F1-9E59-B50132CB6F1A +icon +icon +1524449375 +Administrator +1524449375 +Administrator +菜单图标 +'' +varchar(100) +100 + + +6927665F-EC42-4E1F-A275-4B27F442B6B8 +create_by +create_by +1524449375 +Administrator +1524449375 +Administrator +创建者 +'' +varchar(64) +64 + + +1A6A4D0F-0B0B-4522-B4DA-3F1D592CB889 +create_time +create_time +1524449375 +Administrator +1524449375 +Administrator +创建时间 +timestamp + + +605D7776-4820-4BA9-91E8-AD837B73AEFB +update_by +update_by +1524449375 +Administrator +1524449375 +Administrator +更新者 +'' +varchar(64) +64 + + +4CFF26BB-8736-4864-855E-C7C1B133370B +update_time +update_time +1524449375 +Administrator +1524449375 +Administrator +更新时间 +timestamp + + +67C6E46C-DF06-480A-BC74-E927406E5D26 +remark +remark +1524449375 +Administrator +1524449375 +Administrator +备注 +'' +varchar(500) +500 + + + + +08EBE713-9E4D-4312-AA7D-2E4E439734E5 +Key_1 +Key_1 +1524449375 +Administrator +1524449375 +Administrator + + + + + + + + + + +F8CB66D1-3632-4509-97C4-17016BE261FC +sys_user_role +sys_user_role +1524449375 +Administrator +1538297676 +admin +用户和角色关联表 + + + +73701F72-C45B-4CA0-8A62-632890E3DEF0 +user_id +user_id +1524449375 +Administrator +1524449375 +Administrator +用户ID +int(11) +11 +1 + + +CABD458B-DA59-46A8-99C3-088AD8D34097 +role_id +role_id +1524449375 +Administrator +1524449375 +Administrator +角色ID +int(11) +11 +1 + + + + +37C3213B-EF22-4CD4-A91F-9A9A2503FB2A +Key_1 +Key_1 +1524449375 +Administrator +1524449375 +Administrator + + + + + + + + + + + +9F8C6A9F-3221-410E-AEA4-D1A80026397E +sys_role_menu +sys_role_menu +1524449375 +Administrator +1538297683 +admin +角色和菜单关联表 + + + +D2E151A5-6156-46EF-844E-0ADC3070293B +role_id +role_id +1524449375 +Administrator +1524449375 +Administrator +角色ID +int(11) +11 +1 + + +6B8C1E62-FD8B-4504-8FA0-F69917722FBD +menu_id +menu_id +1524449375 +Administrator +1524449375 +Administrator +菜单ID +int(11) +11 +1 + + + + +2E72304F-91F0-4392-BAE8-BBF7A4346B7D +Key_1 +Key_1 +1524449375 +Administrator +1524449375 +Administrator + + + + + + + + + + + +726CB18E-7D5B-4E2E-9CF8-047AD5AF89E3 +sys_user_post +sys_user_post +1524449375 +Administrator +1538297694 +admin +用户与岗位关联表 + + + +E4A1CAB6-0F63-4917-ACEF-418DE7F894BA +user_id +user_id +1524449375 +Administrator +1538296306 +admin +用户ID +int(11) +11 +1 + + +8E7188D5-B3A5-4F1D-B6CB-D77D652414DE +post_id +post_id +1524449375 +Administrator +1538296306 +admin +岗位ID +int(11) +11 +1 + + + + +4091B7D3-2404-4C20-BBCD-B63E22A5E960 +Key_1 +Key_1 +1524449375 +Administrator +1524449375 +Administrator + + + + + + + + + + + +FE347A45-D8EC-423B-9B38-4D315A3ABE42 +sys_oper_log +sys_oper_log +1524449375 +Administrator +1538297699 +admin +操作日志记录 + + + +F5FC8AC1-7415-4A57-BA2C-EE2E7B9E1EFC +oper_id +oper_id +1524449375 +Administrator +1524449375 +Administrator +日志主键 +int(11) +11 +1 +1 + + +2103BC5C-E28D-4369-8369-E898B218587A +title +title +1524449375 +Administrator +1524449375 +Administrator +模块标题 +'' +varchar(50) +50 + + +6816377B-3DB6-424A-99ED-1D20FEB30ED4 +business_type +business_type +1524449375 +Administrator +1538296397 +admin +功能请求 +'' +int(2) +2 + + +9CA3B7C3-F52C-4E2E-893F-8E6EBA7B2667 +method +method +1524449375 +Administrator +1524449375 +Administrator +方法名称 +'' +varchar(100) +100 + + +A5744803-C050-4108-9D15-7A0B95F03642 +operator_type +operator_type +1524449375 +Administrator +1538296397 +admin +来源渠道 +'' +int(1) +1 + + +B0DF8235-6BC1-452C-8B30-A56F0430E4F5 +oper_name +oper_name +1524449375 +Administrator +1538296397 +admin +登录账号 +'' +varchar(50) +50 + + +25315A12-4EB9-4B67-9E2C-9F40F8EF7FAB +dept_name +dept_name +1524449375 +Administrator +1524449375 +Administrator +部门名称 +'' +varchar(50) +50 + + +7AF8602B-A1DA-4EA3-BFB2-7638F96A86C0 +oper_url +oper_url +1524449375 +Administrator +1524449375 +Administrator +请求URL +'' +varchar(255) +255 + + +F2A56B63-7A56-43FA-8099-411F3578B30D +oper_ip +oper_ip +1524449375 +Administrator +1524449375 +Administrator +主机地址 +'' +varchar(30) +30 + + +1EF1BAF6-F5C1-496C-98E0-8B10C37279A1 +oper_param +oper_param +1524449375 +Administrator +1524449375 +Administrator +请求参数 +'' +varchar(255) +255 + + +AA3F3A4E-D375-4232-B152-01DCFB8F6B6D +status +status +1524449375 +Administrator +1524449375 +Administrator +操作状态 0正常 1异常 +0 +int(1) +1 + + +29E44D4A-6AC7-4220-A502-4BFC8746397A +error_msg +error_msg +1524449375 +Administrator +1524449375 +Administrator +错误消息 +'' +varchar(2000) +2000 + + +22343C35-D913-485B-862E-2CEF579AAF22 +oper_time +oper_time +1524449375 +Administrator +1524449375 +Administrator +操作时间 +timestamp + + + + +C0561C20-CC22-471B-A764-414C0D378FD6 +Key_1 +Key_1 +1524449375 +Administrator +1524449375 +Administrator + + + + + + + + + + +AA2CFBA5-FA97-4AF1-92FE-645370B5848D +sys_dict_type +sys_dict_type +1524449375 +Administrator +1538297703 +admin +字典类型表 + + + +79CB7D43-B999-4D92-9477-D3AFEBD94248 +dict_id +dict_id +1524449375 +Administrator +1524449375 +Administrator +字典主键 +int(11) +11 +1 +1 + + +2490B755-3E0A-4935-97F0-2EFDF9A72D05 +dict_name +dict_name +1524449375 +Administrator +1524449375 +Administrator +字典名称 +'' +varchar(100) +100 + + +7421238A-82DB-4992-AA28-41726AB6A5D6 +dict_type +dict_type +1524449375 +Administrator +1524449375 +Administrator +字典类型 +'' +varchar(100) +100 + + +971D2FBD-1A24-4EE4-B943-9367609C7472 +status +status +1524449375 +Administrator +1538296458 +admin +状态(0正常 1禁用) +0 +char(1) +1 + + +B8876246-5BBA-4A03-86D7-98CA4EBEE342 +create_by +create_by +1524449375 +Administrator +1524449375 +Administrator +创建者 +'' +varchar(64) +64 + + +5237CED2-0853-41DE-ACF4-BE442BC9E112 +create_time +create_time +1524449375 +Administrator +1524449375 +Administrator +创建时间 +timestamp + + +2CACFBC0-8349-4B3A-9183-208B18C9F56F +update_by +update_by +1524449375 +Administrator +1524449375 +Administrator +更新者 +'' +varchar(64) +64 + + +ABEE7806-4F61-4B97-980C-CA081F61CA7C +update_time +update_time +1524449375 +Administrator +1524449375 +Administrator +更新时间 +timestamp + + +3966B558-B911-45DE-86C6-57F3DB9267BA +remark +remark +1524449375 +Administrator +1524449375 +Administrator +备注 +'' +varchar(500) +500 + + +AFC0A0ED-A469-40B2-A6C4-4616444830AA +unique +unique +1524449375 +Administrator +1524449375 +Administrator +(dict_type) + + + + +BAD40D8E-BC11-44F5-918E-B27CABBCB051 +Key_1 +Key_1 +1524449375 +Administrator +1524449375 +Administrator + + + + + + + + + + +493D6B25-21D0-45B1-BBA0-764B9C09B57D +sys_dict_data +sys_dict_data +1524449375 +Administrator +1538297709 +admin +字典数据表 + + + +CFDB23A8-AE38-4051-973A-2DABAC8283F9 +dict_code +dict_code +1524449375 +Administrator +1524449375 +Administrator +字典编码 +int(11) +11 +1 +1 + + +EAA405BD-12A8-472F-A42D-CDA6A82E291A +dict_sort +dict_sort +1524449375 +Administrator +1524449375 +Administrator +字典排序 +0 +int(4) +4 + + +F13017F5-2AA0-4DE9-9DC2-A9A3D73A98E6 +dict_label +dict_label +1524449375 +Administrator +1524449375 +Administrator +字典标签 +'' +varchar(100) +100 + + +EEEC4136-823D-4892-9BB9-BB0B4ADD83E3 +dict_value +dict_value +1524449375 +Administrator +1524449375 +Administrator +字典键值 +'' +varchar(100) +100 + + +ADF5A383-D055-40BE-BBFC-06E2B93D4E6A +dict_type +dict_type +1524449375 +Administrator +1524449375 +Administrator +字典类型 +'' +varchar(100) +100 + + +A0B2DDF2-251D-4701-9B00-6893C74CC449 +css_class +css_class +1538296497 +admin +1538296556 +admin +varchar(100) +100 + + +3CBFBA8E-7609-458D-9E53-A825C3F307A2 +list_class +list_class +1538296497 +admin +1538296556 +admin +varchar(100) +100 + + +BA974839-DEE0-4684-BBEF-6D7776C34354 +is_default +is_default +1538296497 +admin +1538296556 +admin +char(1) +1 + + +1676CDF5-01CA-4749-BA1D-6E5399257BD0 +status +status +1524449375 +Administrator +1524449375 +Administrator +状态(0正常 1禁用) +0 +int(1) +1 + + +8798B094-1AAF-4A23-B2F1-4C19DACF1AA3 +create_by +create_by +1524449375 +Administrator +1524449375 +Administrator +创建者 +'' +varchar(64) +64 + + +D1CB9293-D762-403C-85CB-4B974ACF7328 +create_time +create_time +1524449375 +Administrator +1524449375 +Administrator +创建时间 +timestamp + + +5A34AF87-B25E-4349-9713-69DC50F6F5F2 +update_by +update_by +1524449375 +Administrator +1524449375 +Administrator +更新者 +'' +varchar(64) +64 + + +3204FBAC-1F61-4571-ADC4-BF1BE9CED85A +update_time +update_time +1524449375 +Administrator +1524449375 +Administrator +更新时间 +timestamp + + +B7DE1842-809C-4401-9C80-C9A37DF9B053 +remark +remark +1524449375 +Administrator +1524449375 +Administrator +备注 +'' +varchar(500) +500 + + + + +2809F417-7FA5-48DA-B613-662C7C28061E +Key_1 +Key_1 +1524449375 +Administrator +1524449375 +Administrator + + + + + + + + + + +0A7C2F56-6E3B-4E70-A549-0EC60779D180 +sys_logininfor +sys_logininfor +1524449375 +Administrator +1538297756 +admin +系统访问记录 + + + +5CB5D942-D52B-487D-BC86-476481B0FB8D +info_id +info_id +1524449375 +Administrator +1524449375 +Administrator +访问ID +int(11) +11 +1 +1 + + +A1C66DBC-9DB7-428B-9275-3D014B6CE388 +login_name +login_name +1524449375 +Administrator +1524449375 +Administrator +登录账号 +'' +varchar(50) +50 + + +8E0F50A6-F98D-48B0-8D9D-78F3A76ED171 +ipaddr +ipaddr +1524449375 +Administrator +1524449375 +Administrator +登录IP地址 +'' +varchar(50) +50 + + +91B70723-1A7E-4277-A100-63B775A504B3 +login_location +login_location +1538297350 +admin +1538297369 +admin +varchar(255) +255 + + +AA04F533-A044-428B-80F8-515B6BB1A302 +browser +browser +1524449375 +Administrator +1524449375 +Administrator +浏览器类型 +'' +varchar(50) +50 + + +D37570E9-9EEE-4349-B875-494A5415C736 +os +os +1524449375 +Administrator +1524449375 +Administrator +操作系统 +'' +varchar(50) +50 + + +CF10A80C-123E-42F3-A2DD-1B770E5F9D86 +status +status +1524449375 +Administrator +1524449375 +Administrator +登录状态 0成功 1失败 +0 +int(1) +1 + + +9113784E-932A-4FAF-82CB-A75B8C827309 +msg +msg +1524449375 +Administrator +1524449375 +Administrator +提示消息 +'' +varchar(255) +255 + + +BCA519C6-19C9-45DF-A0B5-F88E9E6D3557 +login_time +login_time +1524449375 +Administrator +1524449375 +Administrator +访问时间 +timestamp + + + + +C14E656C-0645-49EB-8B42-AD82232E0416 +Key_1 +Key_1 +1524449375 +Administrator +1524449375 +Administrator + + + + + + + + + + +4DCA223F-E98B-4D8B-A71C-CFB438C15488 +sys_user_online +sys_user_online +1524449375 +Administrator +1538297754 +admin +在线用户记录 + + + +7FCC57CE-47DD-4948-B949-10401B2FC7B1 +sessionId +sessionId +1524449375 +Administrator +1524449375 +Administrator +用户会话id +'' +varchar(50) +50 +1 + + +FDE5B59D-8CF7-4AAE-987F-3FF2AEBE22CB +login_name +login_name +1524449375 +Administrator +1524449375 +Administrator +登录账号 +'' +varchar(50) +50 + + +AB65FF92-33A0-42C8-8B3F-454A1FAD5615 +dept_name +dept_name +1524449375 +Administrator +1524449375 +Administrator +部门名称 +'' +varchar(50) +50 + + +C4DAF2D0-9CDC-476B-A011-FF5D302371EB +ipaddr +ipaddr +1524449375 +Administrator +1524449375 +Administrator +登录IP地址 +'' +varchar(50) +50 + + +C8243FB0-425B-4A74-9ADA-C93B15E713EA +login_location +login_location +1538297178 +admin +1538297216 +admin +varchar(255) +255 + + +89EC40B0-0C22-4811-90BB-BEA385ACDF20 +browser +browser +1524449375 +Administrator +1524449375 +Administrator +浏览器类型 +'' +varchar(50) +50 + + +AC455631-CFE0-45BB-A0C5-788D695E4B6C +os +os +1524449375 +Administrator +1524449375 +Administrator +操作系统 +'' +varchar(50) +50 + + +5C56E3C9-4591-4762-89E1-C9BBFECB5F11 +status +status +1524449375 +Administrator +1524449375 +Administrator +在线状态on_line在线off_line离线 +'' +varchar(10) +10 + + +0CAF2F1F-459F-4F78-9075-D95F924A4FF7 +start_timestamp +start_timestamp +1524449375 +Administrator +1524449375 +Administrator +session创建时间 +timestamp + + +6AE6BDED-823E-4455-9A9F-338EC6F7BDB9 +last_access_time +last_access_time +1524449375 +Administrator +1524449375 +Administrator +session最后访问时间 +timestamp + + +CE390924-4628-421C-979F-002C2952E99E +expire_time +expire_time +1524449375 +Administrator +1524449375 +Administrator +超时时间,单位为分钟 +0 +int(5) +5 + + + + +365CC94D-6124-42C7-96BD-376B84B709F7 +Key_1 +Key_1 +1524449375 +Administrator +1524449375 +Administrator + + + + + + + + + + +AFCBF4DB-07EC-42D1-ACA7-56B5038F5AC5 +sys_job +sys_job +1524449375 +Administrator +1538297732 +admin +定时任务调度表 + + + +1658CED4-3885-4094-AB70-F35408EBCD5E +job_id +job_id +1524449375 +Administrator +1524449375 +Administrator +任务ID +int(11) +11 +1 +1 + + +731E7147-E3A4-4D93-8C7C-BB1C6D94DB9E +job_name +job_name +1524449375 +Administrator +1524449375 +Administrator +任务名称 +'' +varchar(64) +64 +1 + + +C64B3655-C240-44F0-83B4-F42FB76C8BEA +job_group +job_group +1524449375 +Administrator +1524449375 +Administrator +任务组名 +'' +varchar(64) +64 +1 + + +9F7E735D-B823-4ADA-BA3D-8FFFFEC92F5C +method_name +method_name +1524449375 +Administrator +1524449375 +Administrator +任务方法 +'' +varchar(500) +500 + + +28EEE4F4-E8E7-4052-8F10-88D6C74C595D +method_params +method_params +1524449375 +Administrator +1538297298 +admin +方法参数 +'' +varchar(200) +200 + + +C8986FAD-E2E7-4364-9E8B-B75366B9A4ED +cron_expression +cron_expression +1524449375 +Administrator +1524449375 +Administrator +cron执行表达式 +'' +varchar(255) +255 + + +FD188167-AC02-4161-BE89-D63E61412313 +misfire_policy +misfire_policy +1538297273 +admin +1538297298 +admin +varchar(20) +20 + + +2D4B6C8F-EEE8-4474-9D20-8206A7E80362 +status +status +1524449375 +Administrator +1524449375 +Administrator +状态(0正常 1暂停) +0 +int(1) +1 + + +CA78AC7F-19E7-47BC-BF7B-9F31EFB02702 +create_by +create_by +1524449375 +Administrator +1524449375 +Administrator +创建者 +'' +varchar(64) +64 + + +B8F807AE-9F19-4FCA-BA98-7BF71DD0CA02 +create_time +create_time +1524449375 +Administrator +1524449375 +Administrator +创建时间 +timestamp + + +3FBB42FA-ED0F-4D7C-99D0-5F7AF7B0F1DD +update_by +update_by +1524449375 +Administrator +1524449375 +Administrator +更新者 +'' +varchar(64) +64 + + +1C5863D2-A8B9-43DB-AA06-F8BE3E01093B +update_time +update_time +1524449375 +Administrator +1524449375 +Administrator +更新时间 +timestamp + + +889C3FF9-BB1E-4EB1-AFE9-1D1155984915 +remark +remark +1524449375 +Administrator +1524449375 +Administrator +备注信息 +'' +varchar(500) +500 + + + + +38106F1A-4FFB-4EC0-B979-55BD6C6C6FF7 +Key_1 +Key_1 +1524449375 +Administrator +1524449375 +Administrator + + + + + + + + + + + + +CF7C8958-5494-48C6-BE05-83F2CF8C7513 +sys_job_log +sys_job_log +1524449375 +Administrator +1538297742 +admin +定时任务调度日志表 + + + +308F32A1-A8EC-4002-9993-DF9234A303B7 +job_log_id +job_log_id +1524449375 +Administrator +1524449375 +Administrator +任务日志ID +int(11) +11 +1 +1 + + +F4D55B65-BB6B-4182-A6D6-F9CAABC19110 +job_name +job_name +1524449375 +Administrator +1524449375 +Administrator +任务名称 +varchar(64) +64 +1 + + +8AF383A0-01C0-4947-8384-FF0F13AC00AE +job_group +job_group +1524449375 +Administrator +1524449375 +Administrator +任务组名 +varchar(64) +64 +1 + + +96582B76-F1E9-4473-BA51-01B87B5F459E +method_name +method_name +1524449375 +Administrator +1524449375 +Administrator +任务方法 +varchar(500) +500 + + +2AB02ABA-02E3-4F72-95BA-4261A7F5729A +method_params +method_params +1524449375 +Administrator +1538297325 +admin +方法参数 +'' +varchar(200) +200 + + +8EB39444-CBFF-43AA-AA37-49217EF545B6 +job_message +job_message +1524449375 +Administrator +1524449375 +Administrator +日志信息 +varchar(500) +500 + + +18CD263C-0F57-4EDF-999E-1B5A7EE2BFF9 +is_exception +is_exception +1524449375 +Administrator +1538297325 +admin +是否异常 +0 +char(1) +1 + + +634ECD78-2251-43EB-B6CF-DF7FA9DA4354 +exception_info +exception_info +1524449375 +Administrator +1524449375 +Administrator +异常信息 +text + + +4EC075CC-507B-43D7-860F-34DAAEB1DBBF +create_time +create_time +1524449375 +Administrator +1524449375 +Administrator +创建时间 +timestamp + + + + +A87DCE10-894A-4CF7-B39C-AF18202C7F86 +Key_1 +Key_1 +1524449375 +Administrator +1524449375 +Administrator + + + + + + + + + + +FD6284E8-B6D4-43AF-A038-9C97DCD403DC +sys_role_dept +sys_role_dept +1538296083 +admin +1538297689 +admin +角色和部门关联表 + + + +2BC66204-4193-42E6-BB7B-7AD57C9E5BEF +role_id +role_id +1538296083 +admin +1538296150 +admin +用户ID +int(11) +11 +1 + + +A32BC025-6437-41AB-BAA4-3A150E406781 +dept_id +dept_id +1538296083 +admin +1538296150 +admin +岗位ID +int(11) +11 +1 + + + + +315FFED5-B0A0-4649-8255-2283896340C9 +Key_1 +Key_1 +1538296083 +admin +1538296083 +admin + + + + + + + + + + + +45EB995C-F5F6-4818-AEB1-2038DEBA9CEE +sys_config +sys_config +1538296587 +admin +1538297714 +admin +参数配置表 + + + +667C4616-146B-475C-8111-4720375D762C +config_id +config_id +1538296587 +admin +1538296691 +admin +字典编码 +int(5) +5 +1 +1 + + +EA798E0B-0CBE-4897-B0AF-1F2D3CD6DEF4 +config_name +config_name +1538296587 +admin +1538296691 +admin +字典排序 +0 +varchar(100) +100 + + +A9A2A6E0-C914-4516-AE4C-F33CE71B92E8 +config_key +config_key +1538296587 +admin +1538296691 +admin +字典标签 +'' +varchar(100) +100 + + +24CCA897-8671-402E-8229-9ED0C80C176A +config_value +config_value +1538296587 +admin +1538296691 +admin +字典键值 +'' +varchar(100) +100 + + +B4E76B1D-BFAF-42F3-8CCA-8B5A8CC7CBFF +config_type +config_type +1538296587 +admin +1538296691 +admin +字典类型 +'' +char(1) +1 + + +A6AC1891-F5C4-45B3-8CAB-8F4CE8B8BF08 +create_by +create_by +1538296587 +admin +1538296587 +admin +创建者 +'' +varchar(64) +64 + + +CC1E0367-A079-49A0-8F0A-FE5F7B3EB6EA +create_time +create_time +1538296587 +admin +1538296587 +admin +创建时间 +timestamp + + +081CD54E-AE38-4696-A326-F829B8EA5737 +update_by +update_by +1538296587 +admin +1538296587 +admin +更新者 +'' +varchar(64) +64 + + +E2118ECE-8F52-4FBA-B18A-F30FFB2BDD20 +update_time +update_time +1538296587 +admin +1538296587 +admin +更新时间 +timestamp + + +55A16121-8932-465E-8427-EBDA39B2B900 +remark +remark +1538296587 +admin +1538296587 +admin +备注 +'' +varchar(500) +500 + + + + +0F331278-2804-496A-A87B-B0944C80FB82 +Key_1 +Key_1 +1538296587 +admin +1538296587 +admin + + + + + + + + + + +F33DE1D6-C12D-43DB-A502-83BD1615F081 +sys_notice +sys_notice +1538297386 +admin +1538297746 +admin +通知公告表 + + + +FF4A9744-D7CA-450E-8AD7-B3E7E90075CE +notice_id +notice_id +1538297386 +admin +1538297496 +admin +任务日志ID +int(4) +4 +1 +1 + + +E2B08825-4C94-4209-80B2-21A7AD8CBF2D +notice_title +notice_title +1538297386 +admin +1538297496 +admin +任务名称 +varchar(50) +50 +1 + + +04414862-9ABC-4431-B1B7-B44ECC08CB6E +notice_type +notice_type +1538297386 +admin +1538297496 +admin +任务组名 +char(2) +2 +1 + + +E829DAD1-E3F9-4AED-A3DE-59CE4340333E +notice_content +notice_content +1538297386 +admin +1538297496 +admin +任务方法 +varchar(500) +500 + + +2EABC8DB-6700-4717-89A3-31461C4CB2D5 +status +status +1538297386 +admin +1538297496 +admin +方法参数 +'' +char(1) +1 + + +448D3EB6-DE24-4BE3-9C29-1FC3C71B0E8D +create_by +create_by +1538297386 +admin +1538297496 +admin +日志信息 +varchar(64) +64 + + +770ED87D-D4D7-499C-A266-7A54051B1A84 +create_time1 +create_time1 +1538297386 +admin +1538297496 +admin +是否异常 +0 +datetime + + +12DDF399-7CCB-4117-8B05-6AA9BEE845E5 +update_by +update_by +1538297386 +admin +1538297496 +admin +异常信息 +varchar(64) +64 + + +FE101CE4-9B66-4097-944D-36B01A9E2219 +update_time1 +update_time1 +1538297400 +admin +1538297496 +admin +datetime + + +D5F1728C-01D0-4C00-9AD6-AAA14228104B +remark +remark +1538297386 +admin +1538297496 +admin +创建时间 +varchar(255) +255 + + + + +43C7AC1D-CE7A-4B55-A474-8CB2376D446F +Key_1 +Key_1 +1538297386 +admin +1538297386 +admin + + + + + + + + + + + + +F2EBEA5B-F352-45CB-B349-39158064CEE8 +PUBLIC +PUBLIC +1524449325 +Administrator +1524449325 +Administrator + + + + +41740AEF-D7FB-4738-ABDF-47C3287A6AF6 +MySQL 5.0 +MYSQL50 +1524449337 +Administrator +1538295558 +admin +file:///%_DBMS%/mysql50.xdb +F4F16ECD-F2F1-4006-AF6F-638D5C65F35E +4BA9F647-DAB1-11D1-9944-006097355D9B + + + + + + + + + + \ No newline at end of file diff --git a/src/main/java/com/ruoyi/common/constant/CommonMap.java b/src/main/java/com/ruoyi/common/constant/CommonMap.java deleted file mode 100644 index 3295ffe9..00000000 --- a/src/main/java/com/ruoyi/common/constant/CommonMap.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.ruoyi.common.constant; - -import java.util.HashMap; -import java.util.Map; - -/** - * 通用数据库映射Map数据 - * - * @author ruoyi - */ -public class CommonMap -{ - /** 状态编码转换 */ - public static Map javaTypeMap = new HashMap(); - - static - { - initJavaTypeMap(); - } - - /** - * 返回状态映射 - */ - public static void initJavaTypeMap() - { - javaTypeMap.put("tinyint", "Integer"); - javaTypeMap.put("smallint", "Integer"); - javaTypeMap.put("mediumint", "Integer"); - javaTypeMap.put("int", "Integer"); - javaTypeMap.put("integer", "integer"); - javaTypeMap.put("bigint", "Long"); - javaTypeMap.put("float", "Float"); - javaTypeMap.put("double", "Double"); - javaTypeMap.put("decimal", "BigDecimal"); - javaTypeMap.put("bit", "Boolean"); - javaTypeMap.put("char", "String"); - javaTypeMap.put("varchar", "String"); - javaTypeMap.put("tinytext", "String"); - javaTypeMap.put("text", "String"); - javaTypeMap.put("mediumtext", "String"); - javaTypeMap.put("longtext", "String"); - javaTypeMap.put("time", "Date"); - javaTypeMap.put("date", "Date"); - javaTypeMap.put("datetime", "Date"); - javaTypeMap.put("timestamp", "Date"); - } -} diff --git a/src/main/java/com/ruoyi/common/utils/TreeUtils.java b/src/main/java/com/ruoyi/common/utils/TreeUtils.java deleted file mode 100644 index fe6c97dd..00000000 --- a/src/main/java/com/ruoyi/common/utils/TreeUtils.java +++ /dev/null @@ -1,143 +0,0 @@ -package com.ruoyi.common.utils; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import com.ruoyi.project.system.menu.domain.Menu; - -/** - * 权限数据处理 - * - * @author ruoyi - */ -public class TreeUtils -{ - /** - * 根据父节点的ID获取所有子节点 - * - * @param list 分类表 - * @param typeId 传入的父节点ID - * @return String - */ - public static List getChildPerms(List list, int parentId) - { - List returnList = new ArrayList(); - for (Iterator iterator = list.iterator(); iterator.hasNext();) - { - Menu t = (Menu) iterator.next(); - // 一、根据传入的某个父节点ID,遍历该父节点的所有子节点 - if (t.getParentId() == parentId) - { - recursionFn(list, t); - returnList.add(t); - } - } - return returnList; - } - - /** - * 递归列表 - * - * @param list - * @param Menu - */ - private static void recursionFn(List list, Menu t) - { - // 得到子节点列表 - List childList = getChildList(list, t); - t.setChildren(childList); - for (Menu tChild : childList) - { - if (hasChild(list, tChild)) - { - // 判断是否有子节点 - Iterator it = childList.iterator(); - while (it.hasNext()) - { - Menu n = (Menu) it.next(); - recursionFn(list, n); - } - } - } - } - - /** - * 得到子节点列表 - */ - private static List getChildList(List list, Menu t) - { - - List tlist = new ArrayList(); - Iterator it = list.iterator(); - while (it.hasNext()) - { - Menu n = (Menu) it.next(); - if (n.getParentId().longValue() == t.getMenuId().longValue()) - { - tlist.add(n); - } - } - return tlist; - } - - List returnList = new ArrayList(); - - /** - * 根据父节点的ID获取所有子节点 - * - * @param list 分类表 - * @param typeId 传入的父节点ID - * @param prefix 子节点前缀 - */ - public List getChildPerms(List list, int typeId, String prefix) - { - if (list == null) - { - return null; - } - for (Iterator iterator = list.iterator(); iterator.hasNext();) - { - Menu node = (Menu) iterator.next(); - // 一、根据传入的某个父节点ID,遍历该父节点的所有子节点 - if (node.getParentId() == typeId) - { - recursionFn(list, node, prefix); - } - // 二、遍历所有的父节点下的所有子节点 - /* - * if (node.getParentId()==0) { recursionFn(list, node); } - */ - } - return returnList; - } - - private void recursionFn(List list, Menu node, String p) - { - // 得到子节点列表 - List childList = getChildList(list, node); - if (hasChild(list, node)) - { - // 判断是否有子节点 - returnList.add(node); - Iterator it = childList.iterator(); - while (it.hasNext()) - { - Menu n = (Menu) it.next(); - n.setMenuName(p + n.getMenuName()); - recursionFn(list, n, p + p); - } - } - else - { - returnList.add(node); - } - } - - /** - * 判断是否有子节点 - */ - private static boolean hasChild(List list, Menu t) - { - return getChildList(list, t).size() > 0 ? true : false; - } -} diff --git a/src/main/java/com/ruoyi/framework/config/RuoYiConfig.java b/src/main/java/com/ruoyi/framework/config/RuoYiConfig.java deleted file mode 100644 index 4e1a0c7d..00000000 --- a/src/main/java/com/ruoyi/framework/config/RuoYiConfig.java +++ /dev/null @@ -1,85 +0,0 @@ -package com.ruoyi.framework.config; - -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.stereotype.Component; - -/** - * 读取项目相关配置 - * - * @author ruoyi - */ -@Component -@ConfigurationProperties(prefix = "ruoyi") -public class RuoYiConfig -{ - /** 项目名称 */ - private String name; - /** 版本 */ - private String version; - /** 版权年份 */ - private String copyrightYear; - /** 上传路径 */ - private static String profile; - /** 获取地址开关 */ - private static boolean addressEnabled; - - public String getName() - { - return name; - } - - public void setName(String name) - { - this.name = name; - } - - public String getVersion() - { - return version; - } - - public void setVersion(String version) - { - this.version = version; - } - - public String getCopyrightYear() - { - return copyrightYear; - } - - public void setCopyrightYear(String copyrightYear) - { - this.copyrightYear = copyrightYear; - } - - public static String getProfile() - { - return profile; - } - - public void setProfile(String profile) - { - RuoYiConfig.profile = profile; - } - - public static boolean isAddressEnabled() - { - return addressEnabled; - } - - public void setAddressEnabled(boolean addressEnabled) - { - RuoYiConfig.addressEnabled = addressEnabled; - } - - public static String getAvatarPath() - { - return profile + "avatar/"; - } - - public static String getDownloadPath() - { - return profile + "download/"; - } -}