Merge remote-tracking branch 'origin/master'
78个文件已修改
436个文件已删除
982个文件已添加
New file |
| | |
| | | # 默认忽略的文件 |
| | | /shelf/ |
| | | /workspace.xml |
| | | # 基于编辑器的 HTTP 客户端请求 |
| | | /httpRequests/ |
| | | # Datasource local storage ignored files |
| | | /dataSources/ |
| | | /dataSources.local.xml |
| | | /libraries/ |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <module type="JAVA_MODULE" version="4"> |
| | | <component name="NewModuleRootManager" inherit-compiler-output="true"> |
| | | <exclude-output /> |
| | | <content url="file://$MODULE_DIR$" /> |
| | | <orderEntry type="inheritedJdk" /> |
| | | <orderEntry type="sourceFolder" forTests="false" /> |
| | | </component> |
| | | </module> |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <project version="4"> |
| | | <component name="ProjectRootManager"> |
| | | <output url="file://$PROJECT_DIR$/out" /> |
| | | </component> |
| | | </project> |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <project version="4"> |
| | | <component name="ProjectModuleManager"> |
| | | <modules> |
| | | <module fileurl="file://$PROJECT_DIR$/.idea/NTTravel.iml" filepath="$PROJECT_DIR$/.idea/NTTravel.iml" /> |
| | | </modules> |
| | | </component> |
| | | </project> |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <project version="4"> |
| | | <component name="VcsDirectoryMappings"> |
| | | <mapping directory="" vcs="Git" /> |
| | | </component> |
| | | </project> |
New file |
| | |
| | | *.js linguist-language=java |
| | | *.css linguist-language=java |
| | | *.html linguist-language=java |
| | | *.btl linguist-language=java |
New file |
| | |
| | | # Compiled class file |
| | | *.class |
| | | *.iml |
| | | *.idea |
| | | target/ |
| | | logs/ |
| | | |
| | | # Log file |
| | | *.log |
| | | |
| | | # BlueJ files |
| | | *.ctxt |
| | | |
| | | # Mobile Tools for Java (J2ME) |
| | | .mtj.tmp/ |
| | | |
| | | # Package Files # |
| | | *.jar |
| | | *.war |
| | | *.ear |
| | | *.zip |
| | | *.tar.gz |
| | | *.rar |
| | | |
| | | # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml |
| | | hs_err_pid* |
| | | |
| | | *velocity.log* |
| | | |
| | | # Eclipse # |
| | | .classpath |
| | | .project |
| | | .settings/ |
New file |
| | |
| | | Copyright 2018 StyleFeng |
| | | |
| | | Licensed under the Apache License, Version 2.0 (the "License"); |
| | | you may not use this file except in compliance with the License. |
| | | You may obtain a copy of the License at |
| | | |
| | | http://www.apache.org/licenses/LICENSE-2.0 |
| | | |
| | | Unless required by applicable law or agreed to in writing, software |
| | | distributed under the License is distributed on an "AS IS" BASIS, |
| | | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| | | See the License for the specific language governing permissions and |
| | | limitations under the License. |
New file |
| | |
| | | # Guns V4.1 |
| | | |
| | | ## 介绍 |
| | | Guns基于SpringBoot,致力于做更简洁的后台管理系统,完美整合springmvc + shiro + mybatis-plus + beetl!Guns项目代码简洁,注释丰富,上手容易,同时Guns包含许多基础模块(用户管理,角色管理,部门管理,字典管理等10个模块),可以直接作为一个后台管理系统的脚手架! 2018目标 `更简洁`,`更规范`! |
| | | |
| | | Guns v3.0新增rest api服务,提供对接服务端接口的支持,并利用jwt token鉴权机制给予客户端的访问权限,传输数据进行md5签名保证传输过程数据的安全性! |
| | | |
| | | ### Guns v4.1更新内容 |
| | | |
| | | > * guns-admin提供rest api服务,并以jwt方式鉴权,所有以`/gunsApi`开头的接口走这种鉴权方式,其他接口仍为shiro鉴权 |
| | | |
| | | ### Guns v4.0更新内容 |
| | | |
| | | > * spring boot升级到2.0版本! |
| | | > * 简化前端所有的html,js,css等资源文件,由11.8MB缩减为4.8MB! |
| | | > * 新增手动增加标签页的方法,Feng.newCrontab(href,menuName); |
| | | > * laydate时间插件和layer弹出层插件更新为官网最新,可以看着layui官网的文档直接开发啦! |
| | | > * 去掉animate动画效果,加快页面响应速度! |
| | | > * 修复登陆后重启应用造成404的bug! |
| | | > * 增强core模块的功能,拿来即用开发新的模块的后端管理系统! |
| | | > * 升级各个依赖包的版本! |
| | | > * 简化applicatioin.yml的配置,一些固定不变的配置写在core模块的default-config.properties! |
| | | > * 简化多数据源配置,简化mybatis-plus的配置! |
| | | > * 优化日志记录格式和策略,详情见logback-spring.xml! |
| | | |
| | | 此外,**更新Guns文档到《Guns技术文档 v2.0》** |
| | | |
| | | ## 最新Guns技术文档 |
| | | Guns框架有作者在业余时间整理的技术文档,详情点击[查看详情](https://gitee.com/naan1993/guns/wikis/pages?title=Guns%E6%8A%80%E6%9C%AF%E6%96%87%E6%A1%A3&parent=) |
| | | |
| | | ## 最新Guns视频教程 |
| | | Guns框架有作者在业余时间录制的视频教程,详情点击[教程介绍](https://gitee.com/naan1993/guns/wikis/pages?title=Guns%E8%A7%86%E9%A2%91%E6%95%99%E7%A8%8B&parent=) |
| | | |
| | | ## 技术讨论 & [wiki地址](https://gitee.com/naan1993/guns/wikis/Home) |
| | | 如果对项目有任何疑问或者建议,欢迎加入Guns技术交流1群:254550081,Guns技术交流2群:684163663,Guns技术交流3群:207434260(加之前先看下文档guns-admin/doc/Guns技术文档 v1.0.pdf) |
| | | |
| | | ## 管理系统功能 |
| | | 1.用户管理 2.角色管理 3.部门管理 4.菜单管理 5.字典管理 6.业务日志 7.登录日志 8.监控管理 9.通知管理 10.代码生成 |
| | | |
| | | ## 项目特点 |
| | | 1. 基于SpringBoot,简化了大量项目配置和maven依赖,让您更专注于业务开发,独特的分包方式,代码多而不乱。 |
| | | 2. 完善的日志记录体系,可记录登录日志,业务操作日志(可记录操作前和操作后的数据),异常日志到数据库,通过@BussinessLog注解和LogObjectHolder.me().set()方法,业务操作日志可具体记录哪个用户,执行了哪些业务,修改了哪些数据,并且日志记录为异步执行,详情请见@BussinessLog注解和LogObjectHolder,LogManager,LogAop类。 |
| | | 3. 利用beetl模板引擎对前台页面进行封装和拆分,使臃肿的html代码变得简洁,更加易维护。 |
| | | 4. 对常用js插件进行二次封装,使js代码变得简洁,更加易维护,具体请见webapp/static/js/common文件夹内js代码。 |
| | | 5. 利用ehcache框架对经常调用的查询进行缓存,提升运行速度,具体请见ConstantFactory类中@Cacheable标记的方法。 |
| | | 6. controller层采用map + warpper方式的返回结果,返回给前端更为灵活的数据,具体参见com.stylefeng.guns.modular.system.warpper包中具体类。 |
| | | 7. 防止XSS攻击,通过XssFilter类对所有的输入的非法字符串进行过滤以及替换。 |
| | | 8. 简单可用的代码生成体系,通过SimpleTemplateEngine可生成带有主页跳转和增删改查的通用控制器、html页面以及相关的js,还可以生成Service和Dao,并且这些生成项都为可选的,通过ContextConfig下的一些列xxxSwitch开关,可灵活控制生成模板代码,让您把时间放在真正的业务上。 |
| | | 9. 控制器层统一的异常拦截机制,利用@ControllerAdvice统一对异常拦截,具体见com.stylefeng.guns.core.aop.GlobalExceptionHandler类。 |
| | | 10. 页面统一的js key-value单例模式写法,每个页面生成一个唯一的全局变量,提高js的利用效率,并且有效防止多个人员开发引起的函数名/类名冲突,并且可以更好地去维护代码。 |
| | | |
| | | ## 基于javabean方式的spring配置 |
| | | Guns以简洁为核心,抛弃了传统的易错,臃肿xml配置,采用javabean的方式配置spring,简化了项目的配置,如下示例为配置mybatis-plus和数据源: |
| | | ``` |
| | | @Configuration |
| | | @MapperScan(basePackages = {"com.stylefeng.guns.modular.*.dao", "com.stylefeng.guns.common.persistence.dao"}) |
| | | public class MybatisPlusConfig { |
| | | |
| | | @Autowired |
| | | DruidProperties druidProperties; |
| | | |
| | | /** |
| | | * mybatis-plus分页插件 |
| | | */ |
| | | @Bean |
| | | public PaginationInterceptor paginationInterceptor() { |
| | | PaginationInterceptor paginationInterceptor = new PaginationInterceptor(); |
| | | paginationInterceptor.setDialectType(DBType.MYSQL.getDb()); |
| | | return paginationInterceptor; |
| | | } |
| | | } |
| | | ``` |
| | | |
| | | ## 业务日志记录 |
| | | 日志记录采用aop(LogAop类)方式对所有包含@BussinessLog注解的方法进行aop切入,会记录下当前用户执行了哪些操作(即@BussinessLog value属性的内容),如果涉及到数据修改,会取当前http请求的所有requestParameters与LogObjectHolder类中缓存的Object对象的所有字段作比较(所以在编辑之前的获取详情接口中需要缓存被修改对象之前的字段信息),日志内容会异步存入数据库中(通过ScheduledThreadPoolExecutor类)。 |
| | | |
| | | ## beetl对前台页面的拆分与包装 |
| | | 例如,把主页拆分成三部分,每个部分单独一个页面,更加便于维护 |
| | | ``` |
| | | <!--左侧导航开始--> |
| | | @include("/common/_tab.html"){} |
| | | <!--左侧导航结束--> |
| | | |
| | | <!--右侧部分开始--> |
| | | @include("/common/_right.html"){} |
| | | <!--右侧部分结束--> |
| | | |
| | | <!--右侧边栏开始--> |
| | | @include("/common/_theme.html"){} |
| | | <!--右侧边栏结束--> |
| | | ``` |
| | | 以及对重复的html进行包装,使前端页面更加专注于业务实现,例如,把所有页面引用包进行提取 |
| | | ``` |
| | | <!DOCTYPE html> |
| | | <html> |
| | | <head> |
| | | <meta charset="utf-8"> |
| | | <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| | | <meta name="renderer" content="webkit" /><!-- 让360浏览器默认选择webkit内核 --> |
| | | |
| | | <!-- 全局css --> |
| | | <link rel="shortcut icon" href="${ctxPath}/static/favicon.ico"> |
| | | <!-- 全局js --> |
| | | <script src="${ctxPath}/static/js/jquery.min.js?v=2.1.4"></script> |
| | | <body class="gray-bg"> |
| | | <div class="wrapper wrapper-content"> |
| | | ${layoutContent} |
| | | </div> |
| | | <script src="${ctxPath}/static/js/content.js?v=1.0.0"></script> |
| | | </body> |
| | | </html> |
| | | ``` |
| | | 开发页面时,只需编写如下代码即可 |
| | | ``` |
| | | @layout("/common/_container.html"){ |
| | | <div class="row"> |
| | | <div class="col-sm-12"> |
| | | <div class="ibox float-e-margins"> |
| | | <div class="ibox-title"> |
| | | <h5>部门管理</h5> |
| | | </div> |
| | | <div class="ibox-content"> |
| | | //自定义内容 |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <script src="${ctxPath}/static/modular/system/dept/dept.js"></script> |
| | | @} |
| | | ``` |
| | | 以上beetl的用法请参考beetl说明文档。 |
| | | |
| | | ## 对js常用代码的封装 |
| | | 在webapp/static/js/common目录中,有对常用js代码的封装,例如Feng.js,其中Feng.info(),Feng.success(),Feng.error()三个方法,分别封装了普通提示,成功提示,错误提示的代码,简化了layer提示层插件的使用。 |
| | | |
| | | ## 极简的图片上传方法 |
| | | guns对web-upload进行二次封装,让图片的上传功能呢只用2行代码即可实现,如下 |
| | | ``` |
| | | var avatarUp = new $WebUpload("avatar"); |
| | | avatarUp.init(); |
| | | ``` |
| | | 具体实现请参考static/js/common/web-upload-object.js |
| | | |
| | | ## 独创controller层,map+warpper返回方式 |
| | | map+warpper方式即为把controller层的返回结果使用BeanKit工具类把原有bean转化为Map的的形式(或者原有bean直接是map的形式),再用单独写的一个包装类再包装一次这个map,使里面的参数更加具体,更加有含义,下面举一个例子,例如,在返回给前台一个性别时,数据库查出来1是男2是女,假如直接返回给前台,那么前台显示的时候还需要增加一次判断,并且前后端分离开发时又增加了一次交流和文档的成本,但是采用warpper包装的形式,可以直接把返回结果包装一下,例如动态增加一个字段sexName直接返回给前台性别的中文名称即可。 |
| | | |
| | | ## 独创mybatis数据范围拦截器,实现对数据权限的过滤 |
| | | Guns的数据范围控制是指,对拥有相同角色的用户,根据部门的不同进行相应的数据筛选,如果部门不相同,那么有可能展示出的具体数据是不一致的.所以说Guns对数据范围控制是以部门id为单位来标识的,如何增加数据范围拦截呢?只需在相关的mapper接口的参数中增加一个DataScope对象即可,DataScope中有两个字段,scopeName用来标识sql语句中部门id的字段名称,例如deptiid或者id,另一个字段deptIds就是具体需要过滤的部门id的集合.拦截器原理如下:拦截mapper中包含DataScope对象的方法,获取其原始sql,并做一个包装限制部门id在deptIds范围内的数据进行展示. |
| | | |
| | | ## swagger api管理使用说明 |
| | | swagger会管理所有包含@ApiOperation注解的控制器方法,同时,可利用@ApiImplicitParams注解标记接口中的参数,具体用法请参考CodeController类中的用法。 |
| | | ``` |
| | | @ApiOperation("生成代码") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(name = "moduleName", value = "模块名称", required = true, dataType = "String"), |
| | | @ApiImplicitParam(name = "bizChName", value = "业务名称", required = true, dataType = "String"), |
| | | @ApiImplicitParam(name = "bizEnName", value = "业务英文名称", required = true, dataType = "String"), |
| | | @ApiImplicitParam(name = "path", value = "项目生成类路径", required = true, dataType = "String") |
| | | }) |
| | | @RequestMapping(value = "/generate", method = RequestMethod.POST) |
| | | ``` |
| | | |
| | | ## jwt token鉴权机制 |
| | | jwt token鉴权机制是指若需要请求服务器接口,必须通过AuthController获取一个请求令牌(jwt token),持有jwt token的用户才可以访问服务器的其他资源,如果没有此令牌,则访问接口会直接忽略,请求获取jwt token时,需要携带credenceName和credenceCode(可以是账号密码,可以是手机号验证码等等),校验credenceName和credenceCode成功后,会颁发给客户端一个jwt token还有一个随机字符串,用于传输过程中对数据进行签名用,签名机制请见下面介绍.基于token的鉴权机制类似于http协议也是无状态的,它不需要在服务端去保留用户的认证信息或者会话信息.这就意味着基于token认证机制的应用不需要去考虑用户在哪一台服务器登录了,这就为应用的扩展提供了便利. |
| | | |
| | | ## 签名机制 |
| | | 签名机制是指客户端向服务端传输数据中,对传输数据进行md5加密,并且加密过程中利用Auth接口返回的随机字符串进行混淆加密,并把md5值同时附带给服务端,服务端通获取数据之后对数据再进行一次md5加密,若加密结果和客户端传来的数据一致,则认定客户端请求的数据是没有被篡改的,若不一致,则认为被加密的数据是被篡改的 |
| | | |
| | | ## 效果图 |
| | |  |
| | |  |
| | |  |
| | |  |
| | |  |
| | |  |
| | |  |
| | |  |
| | |  |
| | |  |
| | |  |
| | |  |
| | |  |
| | |  |
| | | |
| | | ## 曾获荣誉 |
| | |  |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
| | | xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> |
| | | <modelVersion>4.0.0</modelVersion> |
| | | <parent> |
| | | <groupId>com.stylefeng</groupId> |
| | | <artifactId>guns-parent</artifactId> |
| | | <version>1.0.0</version> |
| | | <relativePath>../pom.xml</relativePath> |
| | | </parent> |
| | | |
| | | <artifactId>guns-admin</artifactId> |
| | | <name>guns-admin</name> |
| | | <description>guns 的spring boot版本</description> |
| | | |
| | | <packaging>jar</packaging> |
| | | |
| | | <dependencies> |
| | | <dependency> |
| | | <groupId>org.springframework.cloud</groupId> |
| | | <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> |
| | | </dependency> |
| | | <!--整合hystrix--> |
| | | <dependency> |
| | | <groupId>org.springframework.cloud</groupId> |
| | | <artifactId>spring-cloud-starter-netflix-hystrix</artifactId> |
| | | </dependency> |
| | | <dependency> |
| | | <groupId>com.stylefeng</groupId> |
| | | <artifactId>guns-core</artifactId> |
| | | </dependency> |
| | | <dependency> |
| | | <groupId>com.stylefeng</groupId> |
| | | <artifactId>guns-generator</artifactId> |
| | | </dependency> |
| | | |
| | | <!--spring boot依赖--> |
| | | <dependency> |
| | | <groupId>org.springframework.boot</groupId> |
| | | <artifactId>spring-boot-starter-aop</artifactId> |
| | | </dependency> |
| | | <dependency> |
| | | <groupId>org.springframework.boot</groupId> |
| | | <artifactId>spring-boot-starter-web</artifactId> |
| | | </dependency> |
| | | <dependency> |
| | | <groupId>org.springframework.boot</groupId> |
| | | <artifactId>spring-boot-starter-cache</artifactId> |
| | | </dependency> |
| | | <dependency> |
| | | <groupId>org.springframework.boot</groupId> |
| | | <artifactId>spring-boot-starter-validation</artifactId> |
| | | </dependency> |
| | | <dependency> |
| | | <groupId>org.springframework.boot</groupId> |
| | | <artifactId>spring-boot-starter-test</artifactId> |
| | | <scope>test</scope> |
| | | </dependency> |
| | | <dependency> |
| | | <groupId>org.springframework.boot</groupId> |
| | | <artifactId>spring-boot-devtools</artifactId> |
| | | <optional>true</optional> |
| | | </dependency> |
| | | |
| | | <!--<dependency>--> |
| | | <!--<groupId>org.springframework.boot</groupId>--> |
| | | <!--<artifactId>spring-boot-starter-tomcat</artifactId>--> |
| | | <!--<scope>provided</scope>--> |
| | | <!--</dependency>--> |
| | | <!--<dependency>--> |
| | | <!--<groupId>javax.servlet</groupId>--> |
| | | <!--<artifactId>javax.servlet-api</artifactId>--> |
| | | <!--<version>3.1.0</version>--> |
| | | <!--<scope>provided</scope>--> |
| | | <!--</dependency>--> |
| | | |
| | | |
| | | <!--shiro依赖--> |
| | | <dependency> |
| | | <groupId>org.apache.shiro</groupId> |
| | | <artifactId>shiro-core</artifactId> |
| | | <exclusions> |
| | | <exclusion> |
| | | <artifactId>slf4j-api</artifactId> |
| | | <groupId>org.slf4j</groupId> |
| | | </exclusion> |
| | | </exclusions> |
| | | </dependency> |
| | | <dependency> |
| | | <groupId>org.apache.shiro</groupId> |
| | | <artifactId>shiro-spring</artifactId> |
| | | </dependency> |
| | | <dependency> |
| | | <groupId>org.apache.shiro</groupId> |
| | | <artifactId>shiro-ehcache</artifactId> |
| | | <exclusions> |
| | | <exclusion> |
| | | <artifactId>slf4j-api</artifactId> |
| | | <groupId>org.slf4j</groupId> |
| | | </exclusion> |
| | | </exclusions> |
| | | </dependency> |
| | | <dependency> |
| | | <groupId>org.ehcache</groupId> |
| | | <artifactId>ehcache</artifactId> |
| | | </dependency> |
| | | |
| | | <!--需要分布式session的话需要放开注释--> |
| | | <!--<dependency>--> |
| | | <!--<groupId>org.springframework.session</groupId>--> |
| | | <!--<artifactId>spring-session-data-redis</artifactId>--> |
| | | <!--</dependency>--> |
| | | <!--<dependency>--> |
| | | <!--<groupId>org.springframework.boot</groupId>--> |
| | | <!--<artifactId>spring-boot-starter-data-redis</artifactId>--> |
| | | <!--</dependency>--> |
| | | |
| | | <dependency> |
| | | <groupId>com.github.penggle</groupId> |
| | | <artifactId>kaptcha</artifactId> |
| | | </dependency> |
| | | <dependency> |
| | | <groupId>com.google.zxing</groupId> |
| | | <artifactId>core</artifactId> |
| | | </dependency> |
| | | <dependency> |
| | | <groupId>com.ibeetl</groupId> |
| | | <artifactId>beetl</artifactId> |
| | | </dependency> |
| | | <dependency> |
| | | <groupId>io.springfox</groupId> |
| | | <artifactId>springfox-swagger2</artifactId> |
| | | </dependency> |
| | | <dependency> |
| | | <groupId>io.springfox</groupId> |
| | | <artifactId>springfox-swagger-ui</artifactId> |
| | | </dependency> |
| | | |
| | | <dependency> |
| | | <groupId>io.jsonwebtoken</groupId> |
| | | <artifactId>jjwt</artifactId> |
| | | </dependency> |
| | | |
| | | <dependency> |
| | | <groupId>redis.clients</groupId> |
| | | <artifactId>jedis</artifactId> |
| | | <version>2.9.0</version> |
| | | </dependency> |
| | | |
| | | <dependency> |
| | | <groupId>dom4j</groupId> |
| | | <artifactId>dom4j</artifactId> |
| | | <version>1.6.1</version> |
| | | </dependency> |
| | | |
| | | <dependency> |
| | | <groupId>com.alipay.sdk</groupId> |
| | | <artifactId>alipay-sdk-java</artifactId> |
| | | <version>4.8.10.ALL</version> |
| | | </dependency> |
| | | <!-- oos对象存储 --> |
| | | <dependency> |
| | | <groupId>com.aliyun.oss</groupId> |
| | | <artifactId>aliyun-sdk-oss</artifactId> |
| | | <version>3.8.0</version> |
| | | </dependency> |
| | | <!-- https://mvnrepository.com/artifact/com.aliyun/aliyun-java-sdk-core --> |
| | | <dependency> |
| | | <groupId>com.aliyun</groupId> |
| | | <artifactId>aliyun-java-sdk-core</artifactId> |
| | | <version>4.4.3</version> |
| | | </dependency> |
| | | |
| | | <dependency> |
| | | <groupId>cn.jpush.api</groupId> |
| | | <artifactId>jpush-client</artifactId> |
| | | <version>3.3.10</version> |
| | | </dependency> |
| | | |
| | | <!--引入本地工行支付jar start--> |
| | | <!--<dependency>--> |
| | | <!--<groupId>com.icbc</groupId>--> |
| | | <!--<artifactId>icbc</artifactId>--> |
| | | <!--<version>v2</version>--> |
| | | <!--<scope>system</scope>--> |
| | | <!--<systemPath>${project.basedir}/lib/icbc-api-sdk-cop.jar</systemPath>--> |
| | | <!--</dependency>--> |
| | | <!--<dependency>--> |
| | | <!--<groupId>com.icbc.api</groupId>--> |
| | | <!--<artifactId>icbc</artifactId>--> |
| | | <!--<version>v2</version>--> |
| | | <!--<scope>system</scope>--> |
| | | <!--<systemPath>${project.basedir}/lib/icbc-api-sdk-cop-io.jar</systemPath>--> |
| | | <!--</dependency>--> |
| | | <!--<dependency>--> |
| | | <!--<groupId>cn.com.infosec</groupId>--> |
| | | <!--<artifactId>icbc</artifactId>--> |
| | | <!--<version>v2</version>--> |
| | | <!--<scope>system</scope>--> |
| | | <!--<systemPath>${project.basedir}/lib/icbc-ca.jar</systemPath>--> |
| | | <!--</dependency>--> |
| | | <!--<dependency>--> |
| | | <!--<groupId>cn.com.infosecCrypto</groupId>--> |
| | | <!--<artifactId>icbc</artifactId>--> |
| | | <!--<version>v2</version>--> |
| | | <!--<scope>system</scope>--> |
| | | <!--<systemPath>${project.basedir}/lib/InfosecCrypto_Java1_02_JDK14+.jar</systemPath>--> |
| | | <!--</dependency>--> |
| | | <!--<dependency>--> |
| | | <!--<groupId>proguard</groupId>--> |
| | | <!--<artifactId>icbc</artifactId>--> |
| | | <!--<version>v2</version>--> |
| | | <!--<scope>system</scope>--> |
| | | <!--<systemPath>${project.basedir}/lib/proguard.jar</systemPath>--> |
| | | <!--</dependency>--> |
| | | <!--引入本地工行支付jar end--> |
| | | </dependencies> |
| | | |
| | | |
| | | <build> |
| | | <!--打包jar包方式--> |
| | | <plugins> |
| | | <plugin> |
| | | <groupId>org.springframework.boot</groupId> |
| | | <artifactId>spring-boot-maven-plugin</artifactId> |
| | | <configuration> |
| | | <fork>true</fork><!-- 如果没有该项配置,肯呢个devtools不会起作用,即应用不会restart --> |
| | | </configuration> |
| | | </plugin> |
| | | </plugins> |
| | | |
| | | <!--打包war包引入本地jar的打包方式--> |
| | | <!--<plugins>--> |
| | | <!--<plugin>--> |
| | | <!--<groupId>org.apache.maven.plugins</groupId>--> |
| | | <!--<artifactId>maven-war-plugin</artifactId>--> |
| | | <!--<configuration>--> |
| | | <!--<!– 设置成false,否则检查web.xml是否存在。因为springboot是没有web.xml的 –>--> |
| | | <!--<failOnMissingWebXml>false</failOnMissingWebXml>--> |
| | | <!--<!–打包后的项目名–>--> |
| | | <!--<!–<warName>example</warName>–>--> |
| | | <!--<webResources>--> |
| | | <!--<resource>--> |
| | | <!--<!–把本地lib里面的jar复制到lib–>--> |
| | | <!--<directory>${project.basedir}/lib</directory>--> |
| | | <!--<targetPath>WEB-INF/lib/</targetPath>--> |
| | | <!--<includes>--> |
| | | <!--<include>**/*.jar</include>--> |
| | | <!--</includes>--> |
| | | <!--</resource>--> |
| | | <!--</webResources>--> |
| | | <!--</configuration>--> |
| | | <!--</plugin>--> |
| | | <!--</plugins>--> |
| | | |
| | | |
| | | <resources> |
| | | <resource> |
| | | <directory>lib</directory> |
| | | <targetPath>/BOOT-INF/lib/</targetPath> |
| | | <includes> |
| | | <include>**/*.jar</include> |
| | | </includes> |
| | | </resource> |
| | | <resource> |
| | | <directory>src/main/webapp</directory> |
| | | </resource> |
| | | <resource> |
| | | <directory>src/main/resources</directory> |
| | | <filtering>true</filtering> |
| | | </resource> |
| | | <resource> |
| | | <directory>src/main/java</directory> |
| | | <includes> |
| | | <include>**/*.xml</include> |
| | | </includes> |
| | | </resource> |
| | | </resources> |
| | | </build> |
| | | |
| | | </project> |
New file |
| | |
| | | /* |
| | | Navicat MySQL Data Transfer |
| | | |
| | | Source Server : localhost |
| | | Source Server Version : 50721 |
| | | Source Host : localhost:3306 |
| | | Source Database : guns |
| | | |
| | | Target Server Type : MYSQL |
| | | Target Server Version : 50721 |
| | | File Encoding : 65001 |
| | | |
| | | Date: 2018-06-26 23:10:40 |
| | | */ |
| | | |
| | | DROP DATABASE IF EXISTS guns; |
| | | CREATE DATABASE IF NOT EXISTS guns DEFAULT CHARSET utf8 COLLATE utf8_general_ci; |
| | | |
| | | USE guns; |
| | | |
| | | SET FOREIGN_KEY_CHECKS=0; |
| | | |
| | | -- ---------------------------- |
| | | -- Table structure for sys_dept |
| | | -- ---------------------------- |
| | | DROP TABLE IF EXISTS `sys_dept`; |
| | | CREATE TABLE `sys_dept` ( |
| | | `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键id', |
| | | `num` int(11) DEFAULT NULL COMMENT '排序', |
| | | `pid` int(11) DEFAULT NULL COMMENT '父部门id', |
| | | `pids` varchar(255) DEFAULT NULL COMMENT '父级ids', |
| | | `simplename` varchar(45) DEFAULT NULL COMMENT '简称', |
| | | `fullname` varchar(255) DEFAULT NULL COMMENT '全称', |
| | | `tips` varchar(255) DEFAULT NULL COMMENT '提示', |
| | | `version` int(11) DEFAULT NULL COMMENT '版本(乐观锁保留字段)', |
| | | PRIMARY KEY (`id`) |
| | | ) ENGINE=InnoDB AUTO_INCREMENT=28 DEFAULT CHARSET=utf8 COMMENT='部门表'; |
| | | |
| | | -- ---------------------------- |
| | | -- Records of sys_dept |
| | | -- ---------------------------- |
| | | INSERT INTO `sys_dept` VALUES ('24', '1', '0', '[0],', '总公司', '总公司', '', null); |
| | | INSERT INTO `sys_dept` VALUES ('25', '2', '24', '[0],[24],', '开发部', '开发部', '', null); |
| | | INSERT INTO `sys_dept` VALUES ('26', '3', '24', '[0],[24],', '运营部', '运营部', '', null); |
| | | INSERT INTO `sys_dept` VALUES ('27', '4', '24', '[0],[24],', '战略部', '战略部', '', null); |
| | | |
| | | -- ---------------------------- |
| | | -- Table structure for sys_dict |
| | | -- ---------------------------- |
| | | DROP TABLE IF EXISTS `sys_dict`; |
| | | CREATE TABLE `sys_dict` ( |
| | | `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键id', |
| | | `num` int(11) DEFAULT NULL COMMENT '排序', |
| | | `pid` int(11) DEFAULT NULL COMMENT '父级字典', |
| | | `name` varchar(255) DEFAULT NULL COMMENT '名称', |
| | | `tips` varchar(255) DEFAULT NULL COMMENT '提示', |
| | | `code` varchar(255) DEFAULT NULL COMMENT '值', |
| | | PRIMARY KEY (`id`) USING BTREE |
| | | ) ENGINE=InnoDB AUTO_INCREMENT=69 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='字典表'; |
| | | |
| | | -- ---------------------------- |
| | | -- Records of sys_dict |
| | | -- ---------------------------- |
| | | INSERT INTO `sys_dict` VALUES ('50', '0', '0', '性别', null, 'sys_sex'); |
| | | INSERT INTO `sys_dict` VALUES ('51', '1', '50', '男', null, '1'); |
| | | INSERT INTO `sys_dict` VALUES ('52', '2', '50', '女', null, '2'); |
| | | INSERT INTO `sys_dict` VALUES ('53', '0', '0', '状态', null, 'sys_state'); |
| | | INSERT INTO `sys_dict` VALUES ('54', '1', '53', '启用', null, '1'); |
| | | INSERT INTO `sys_dict` VALUES ('55', '2', '53', '禁用', null, '2'); |
| | | INSERT INTO `sys_dict` VALUES ('56', '0', '0', '账号状态', null, 'account_state'); |
| | | INSERT INTO `sys_dict` VALUES ('57', '1', '56', '启用', null, '1'); |
| | | INSERT INTO `sys_dict` VALUES ('58', '2', '56', '冻结', null, '2'); |
| | | INSERT INTO `sys_dict` VALUES ('59', '3', '56', '已删除', null, '3'); |
| | | |
| | | -- ---------------------------- |
| | | -- Table structure for sys_expense |
| | | -- ---------------------------- |
| | | DROP TABLE IF EXISTS `sys_expense`; |
| | | CREATE TABLE `sys_expense` ( |
| | | `id` int(11) NOT NULL AUTO_INCREMENT, |
| | | `money` decimal(20,2) DEFAULT NULL COMMENT '报销金额', |
| | | `desc` varchar(255) DEFAULT '' COMMENT '描述', |
| | | `createtime` datetime DEFAULT NULL COMMENT '创建时间', |
| | | `state` int(11) DEFAULT NULL COMMENT '状态: 1.待提交 2:待审核 3.审核通过 4:驳回', |
| | | `userid` int(11) DEFAULT NULL COMMENT '用户id', |
| | | `processId` varchar(255) DEFAULT NULL COMMENT '流程定义id', |
| | | PRIMARY KEY (`id`) |
| | | ) ENGINE=InnoDB AUTO_INCREMENT=23 DEFAULT CHARSET=utf8 COMMENT='报销表'; |
| | | |
| | | -- ---------------------------- |
| | | -- Records of sys_expense |
| | | -- ---------------------------- |
| | | |
| | | -- ---------------------------- |
| | | -- Table structure for sys_login_log |
| | | -- ---------------------------- |
| | | DROP TABLE IF EXISTS `sys_login_log`; |
| | | CREATE TABLE `sys_login_log` ( |
| | | `id` int(65) NOT NULL AUTO_INCREMENT COMMENT '主键', |
| | | `logname` varchar(255) DEFAULT NULL COMMENT '日志名称', |
| | | `userid` int(65) DEFAULT NULL COMMENT '管理员id', |
| | | `createtime` datetime DEFAULT NULL COMMENT '创建时间', |
| | | `succeed` varchar(255) DEFAULT NULL COMMENT '是否执行成功', |
| | | `message` text COMMENT '具体消息', |
| | | `ip` varchar(255) DEFAULT NULL COMMENT '登录ip', |
| | | PRIMARY KEY (`id`) |
| | | ) ENGINE=InnoDB AUTO_INCREMENT=217 DEFAULT CHARSET=utf8 COMMENT='登录记录'; |
| | | |
| | | -- ---------------------------- |
| | | -- Records of sys_login_log |
| | | -- ---------------------------- |
| | | |
| | | -- ---------------------------- |
| | | -- Table structure for sys_menu |
| | | -- ---------------------------- |
| | | DROP TABLE IF EXISTS `sys_menu`; |
| | | CREATE TABLE `sys_menu` ( |
| | | `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键id', |
| | | `code` varchar(255) DEFAULT NULL COMMENT '菜单编号', |
| | | `pcode` varchar(255) DEFAULT NULL COMMENT '菜单父编号', |
| | | `pcodes` varchar(255) DEFAULT NULL COMMENT '当前菜单的所有父菜单编号', |
| | | `name` varchar(255) DEFAULT NULL COMMENT '菜单名称', |
| | | `icon` varchar(255) DEFAULT NULL COMMENT '菜单图标', |
| | | `url` varchar(255) DEFAULT NULL COMMENT 'url地址', |
| | | `num` int(65) DEFAULT NULL COMMENT '菜单排序号', |
| | | `levels` int(65) DEFAULT NULL COMMENT '菜单层级', |
| | | `ismenu` int(11) DEFAULT NULL COMMENT '是否是菜单(1:是 0:不是)', |
| | | `tips` varchar(255) DEFAULT NULL COMMENT '备注', |
| | | `status` int(65) DEFAULT NULL COMMENT '菜单状态 : 1:启用 0:不启用', |
| | | `isopen` int(11) DEFAULT NULL COMMENT '是否打开: 1:打开 0:不打开', |
| | | PRIMARY KEY (`id`) |
| | | ) ENGINE=InnoDB AUTO_INCREMENT=171 DEFAULT CHARSET=utf8 COMMENT='菜单表'; |
| | | |
| | | -- ---------------------------- |
| | | -- Records of sys_menu |
| | | -- ---------------------------- |
| | | INSERT INTO `sys_menu` VALUES ('105', 'system', '0', '[0],', '系统管理', 'fa-user', '#', '4', '1', '1', null, '1', '1'); |
| | | INSERT INTO `sys_menu` VALUES ('106', 'mgr', 'system', '[0],[system],', '用户管理', '', '/mgr', '1', '2', '1', null, '1', '0'); |
| | | INSERT INTO `sys_menu` VALUES ('107', 'mgr_add', 'mgr', '[0],[system],[mgr],', '添加用户', null, '/mgr/add', '1', '3', '0', null, '1', '0'); |
| | | INSERT INTO `sys_menu` VALUES ('108', 'mgr_edit', 'mgr', '[0],[system],[mgr],', '修改用户', null, '/mgr/edit', '2', '3', '0', null, '1', '0'); |
| | | INSERT INTO `sys_menu` VALUES ('109', 'mgr_delete', 'mgr', '[0],[system],[mgr],', '删除用户', null, '/mgr/delete', '3', '3', '0', null, '1', '0'); |
| | | INSERT INTO `sys_menu` VALUES ('110', 'mgr_reset', 'mgr', '[0],[system],[mgr],', '重置密码', null, '/mgr/reset', '4', '3', '0', null, '1', '0'); |
| | | INSERT INTO `sys_menu` VALUES ('111', 'mgr_freeze', 'mgr', '[0],[system],[mgr],', '冻结用户', null, '/mgr/freeze', '5', '3', '0', null, '1', '0'); |
| | | INSERT INTO `sys_menu` VALUES ('112', 'mgr_unfreeze', 'mgr', '[0],[system],[mgr],', '解除冻结用户', null, '/mgr/unfreeze', '6', '3', '0', null, '1', '0'); |
| | | INSERT INTO `sys_menu` VALUES ('113', 'mgr_setRole', 'mgr', '[0],[system],[mgr],', '分配角色', null, '/mgr/setRole', '7', '3', '0', null, '1', '0'); |
| | | INSERT INTO `sys_menu` VALUES ('114', 'role', 'system', '[0],[system],', '角色管理', null, '/role', '2', '2', '1', null, '1', '0'); |
| | | INSERT INTO `sys_menu` VALUES ('115', 'role_add', 'role', '[0],[system],[role],', '添加角色', null, '/role/add', '1', '3', '0', null, '1', '0'); |
| | | INSERT INTO `sys_menu` VALUES ('116', 'role_edit', 'role', '[0],[system],[role],', '修改角色', null, '/role/edit', '2', '3', '0', null, '1', '0'); |
| | | INSERT INTO `sys_menu` VALUES ('117', 'role_remove', 'role', '[0],[system],[role],', '删除角色', null, '/role/remove', '3', '3', '0', null, '1', '0'); |
| | | INSERT INTO `sys_menu` VALUES ('118', 'role_setAuthority', 'role', '[0],[system],[role],', '配置权限', null, '/role/setAuthority', '4', '3', '0', null, '1', '0'); |
| | | INSERT INTO `sys_menu` VALUES ('119', 'menu', 'system', '[0],[system],', '菜单管理', null, '/menu', '4', '2', '1', null, '1', '0'); |
| | | INSERT INTO `sys_menu` VALUES ('120', 'menu_add', 'menu', '[0],[system],[menu],', '添加菜单', null, '/menu/add', '1', '3', '0', null, '1', '0'); |
| | | INSERT INTO `sys_menu` VALUES ('121', 'menu_edit', 'menu', '[0],[system],[menu],', '修改菜单', null, '/menu/edit', '2', '3', '0', null, '1', '0'); |
| | | INSERT INTO `sys_menu` VALUES ('122', 'menu_remove', 'menu', '[0],[system],[menu],', '删除菜单', null, '/menu/remove', '3', '3', '0', null, '1', '0'); |
| | | INSERT INTO `sys_menu` VALUES ('128', 'log', 'system', '[0],[system],', '业务日志', null, '/log', '6', '2', '1', null, '1', '0'); |
| | | INSERT INTO `sys_menu` VALUES ('130', 'druid', 'system', '[0],[system],', '监控管理', null, '/druid', '7', '2', '1', null, '1', null); |
| | | INSERT INTO `sys_menu` VALUES ('131', 'dept', 'system', '[0],[system],', '部门管理', null, '/dept', '3', '2', '1', null, '1', null); |
| | | INSERT INTO `sys_menu` VALUES ('132', 'dict', 'system', '[0],[system],', '字典管理', null, '/dict', '4', '2', '1', null, '1', null); |
| | | INSERT INTO `sys_menu` VALUES ('133', 'loginLog', 'system', '[0],[system],', '登录日志', null, '/loginLog', '6', '2', '1', null, '1', null); |
| | | INSERT INTO `sys_menu` VALUES ('134', 'log_clean', 'log', '[0],[system],[log],', '清空日志', null, '/log/delLog', '3', '3', '0', null, '1', null); |
| | | INSERT INTO `sys_menu` VALUES ('135', 'dept_add', 'dept', '[0],[system],[dept],', '添加部门', null, '/dept/add', '1', '3', '0', null, '1', null); |
| | | INSERT INTO `sys_menu` VALUES ('136', 'dept_update', 'dept', '[0],[system],[dept],', '修改部门', null, '/dept/update', '1', '3', '0', null, '1', null); |
| | | INSERT INTO `sys_menu` VALUES ('137', 'dept_delete', 'dept', '[0],[system],[dept],', '删除部门', null, '/dept/delete', '1', '3', '0', null, '1', null); |
| | | INSERT INTO `sys_menu` VALUES ('138', 'dict_add', 'dict', '[0],[system],[dict],', '添加字典', null, '/dict/add', '1', '3', '0', null, '1', null); |
| | | INSERT INTO `sys_menu` VALUES ('139', 'dict_update', 'dict', '[0],[system],[dict],', '修改字典', null, '/dict/update', '1', '3', '0', null, '1', null); |
| | | INSERT INTO `sys_menu` VALUES ('140', 'dict_delete', 'dict', '[0],[system],[dict],', '删除字典', null, '/dict/delete', '1', '3', '0', null, '1', null); |
| | | INSERT INTO `sys_menu` VALUES ('141', 'notice', 'system', '[0],[system],', '通知管理', null, '/notice', '9', '2', '1', null, '1', null); |
| | | INSERT INTO `sys_menu` VALUES ('142', 'notice_add', 'notice', '[0],[system],[notice],', '添加通知', null, '/notice/add', '1', '3', '0', null, '1', null); |
| | | INSERT INTO `sys_menu` VALUES ('143', 'notice_update', 'notice', '[0],[system],[notice],', '修改通知', null, '/notice/update', '2', '3', '0', null, '1', null); |
| | | INSERT INTO `sys_menu` VALUES ('144', 'notice_delete', 'notice', '[0],[system],[notice],', '删除通知', null, '/notice/delete', '3', '3', '0', null, '1', null); |
| | | INSERT INTO `sys_menu` VALUES ('145', 'hello', '0', '[0],', '通知', 'fa-rocket', '/notice/hello', '1', '1', '1', null, '1', null); |
| | | INSERT INTO `sys_menu` VALUES ('148', 'code', '0', '[0],', '代码生成', 'fa-code', '/code', '3', '1', '1', null, '1', null); |
| | | INSERT INTO `sys_menu` VALUES ('149', 'api_mgr', '0', '[0],', '接口文档', 'fa-leaf', '/swagger-ui.html', '2', '1', '1', null, '1', null); |
| | | INSERT INTO `sys_menu` VALUES ('150', 'to_menu_edit', 'menu', '[0],[system],[menu],', '菜单编辑跳转', '', '/menu/menu_edit', '4', '3', '0', null, '1', null); |
| | | INSERT INTO `sys_menu` VALUES ('151', 'menu_list', 'menu', '[0],[system],[menu],', '菜单列表', '', '/menu/list', '5', '3', '0', null, '1', null); |
| | | INSERT INTO `sys_menu` VALUES ('152', 'to_dept_update', 'dept', '[0],[system],[dept],', '修改部门跳转', '', '/dept/dept_update', '4', '3', '0', null, '1', null); |
| | | INSERT INTO `sys_menu` VALUES ('153', 'dept_list', 'dept', '[0],[system],[dept],', '部门列表', '', '/dept/list', '5', '3', '0', null, '1', null); |
| | | INSERT INTO `sys_menu` VALUES ('154', 'dept_detail', 'dept', '[0],[system],[dept],', '部门详情', '', '/dept/detail', '6', '3', '0', null, '1', null); |
| | | INSERT INTO `sys_menu` VALUES ('155', 'to_dict_edit', 'dict', '[0],[system],[dict],', '修改菜单跳转', '', '/dict/dict_edit', '4', '3', '0', null, '1', null); |
| | | INSERT INTO `sys_menu` VALUES ('156', 'dict_list', 'dict', '[0],[system],[dict],', '字典列表', '', '/dict/list', '5', '3', '0', null, '1', null); |
| | | INSERT INTO `sys_menu` VALUES ('157', 'dict_detail', 'dict', '[0],[system],[dict],', '字典详情', '', '/dict/detail', '6', '3', '0', null, '1', null); |
| | | INSERT INTO `sys_menu` VALUES ('158', 'log_list', 'log', '[0],[system],[log],', '日志列表', '', '/log/list', '2', '3', '0', null, '1', null); |
| | | INSERT INTO `sys_menu` VALUES ('159', 'log_detail', 'log', '[0],[system],[log],', '日志详情', '', '/log/detail', '3', '3', '0', null, '1', null); |
| | | INSERT INTO `sys_menu` VALUES ('160', 'del_login_log', 'loginLog', '[0],[system],[loginLog],', '清空登录日志', '', '/loginLog/delLoginLog', '1', '3', '0', null, '1', null); |
| | | INSERT INTO `sys_menu` VALUES ('161', 'login_log_list', 'loginLog', '[0],[system],[loginLog],', '登录日志列表', '', '/loginLog/list', '2', '3', '0', null, '1', null); |
| | | INSERT INTO `sys_menu` VALUES ('162', 'to_role_edit', 'role', '[0],[system],[role],', '修改角色跳转', '', '/role/role_edit', '5', '3', '0', null, '1', null); |
| | | INSERT INTO `sys_menu` VALUES ('163', 'to_role_assign', 'role', '[0],[system],[role],', '角色分配跳转', '', '/role/role_assign', '6', '3', '0', null, '1', null); |
| | | INSERT INTO `sys_menu` VALUES ('164', 'role_list', 'role', '[0],[system],[role],', '角色列表', '', '/role/list', '7', '3', '0', null, '1', null); |
| | | INSERT INTO `sys_menu` VALUES ('165', 'to_assign_role', 'mgr', '[0],[system],[mgr],', '分配角色跳转', '', '/mgr/role_assign', '8', '3', '0', null, '1', null); |
| | | INSERT INTO `sys_menu` VALUES ('166', 'to_user_edit', 'mgr', '[0],[system],[mgr],', '编辑用户跳转', '', '/mgr/user_edit', '9', '3', '0', null, '1', null); |
| | | INSERT INTO `sys_menu` VALUES ('167', 'mgr_list', 'mgr', '[0],[system],[mgr],', '用户列表', '', '/mgr/list', '10', '3', '0', null, '1', null); |
| | | |
| | | -- ---------------------------- |
| | | -- Table structure for sys_notice |
| | | -- ---------------------------- |
| | | DROP TABLE IF EXISTS `sys_notice`; |
| | | CREATE TABLE `sys_notice` ( |
| | | `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键', |
| | | `title` varchar(255) DEFAULT NULL COMMENT '标题', |
| | | `type` int(11) DEFAULT NULL COMMENT '类型', |
| | | `content` text COMMENT '内容', |
| | | `createtime` datetime DEFAULT NULL COMMENT '创建时间', |
| | | `creater` int(11) DEFAULT NULL COMMENT '创建人', |
| | | PRIMARY KEY (`id`) |
| | | ) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8 COMMENT='通知表'; |
| | | |
| | | -- ---------------------------- |
| | | -- Records of sys_notice |
| | | -- ---------------------------- |
| | | INSERT INTO `sys_notice` VALUES ('6', '世界', '10', '欢迎使用Guns管理系统', '2017-01-11 08:53:20', '1'); |
| | | INSERT INTO `sys_notice` VALUES ('8', '你好', null, '你好', '2017-05-10 19:28:57', '1'); |
| | | |
| | | -- ---------------------------- |
| | | -- Table structure for sys_operation_log |
| | | -- ---------------------------- |
| | | DROP TABLE IF EXISTS `sys_operation_log`; |
| | | CREATE TABLE `sys_operation_log` ( |
| | | `id` int(65) NOT NULL AUTO_INCREMENT COMMENT '主键', |
| | | `logtype` varchar(255) DEFAULT NULL COMMENT '日志类型', |
| | | `logname` varchar(255) DEFAULT NULL COMMENT '日志名称', |
| | | `userid` int(65) DEFAULT NULL COMMENT '用户id', |
| | | `classname` varchar(255) DEFAULT NULL COMMENT '类名称', |
| | | `method` text COMMENT '方法名称', |
| | | `createtime` datetime DEFAULT NULL COMMENT '创建时间', |
| | | `succeed` varchar(255) DEFAULT NULL COMMENT '是否成功', |
| | | `message` text COMMENT '备注', |
| | | PRIMARY KEY (`id`) |
| | | ) ENGINE=InnoDB AUTO_INCREMENT=554 DEFAULT CHARSET=utf8 COMMENT='操作日志'; |
| | | |
| | | -- ---------------------------- |
| | | -- Records of sys_operation_log |
| | | -- ---------------------------- |
| | | |
| | | -- ---------------------------- |
| | | -- Table structure for sys_relation |
| | | -- ---------------------------- |
| | | DROP TABLE IF EXISTS `sys_relation`; |
| | | CREATE TABLE `sys_relation` ( |
| | | `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键', |
| | | `menuid` bigint(11) DEFAULT NULL COMMENT '菜单id', |
| | | `roleid` int(11) DEFAULT NULL COMMENT '角色id', |
| | | PRIMARY KEY (`id`) |
| | | ) ENGINE=InnoDB AUTO_INCREMENT=3792 DEFAULT CHARSET=utf8 COMMENT='角色和菜单关联表'; |
| | | |
| | | -- ---------------------------- |
| | | -- Records of sys_relation |
| | | -- ---------------------------- |
| | | INSERT INTO `sys_relation` VALUES ('3377', '105', '5'); |
| | | INSERT INTO `sys_relation` VALUES ('3378', '106', '5'); |
| | | INSERT INTO `sys_relation` VALUES ('3379', '107', '5'); |
| | | INSERT INTO `sys_relation` VALUES ('3380', '108', '5'); |
| | | INSERT INTO `sys_relation` VALUES ('3381', '109', '5'); |
| | | INSERT INTO `sys_relation` VALUES ('3382', '110', '5'); |
| | | INSERT INTO `sys_relation` VALUES ('3383', '111', '5'); |
| | | INSERT INTO `sys_relation` VALUES ('3384', '112', '5'); |
| | | INSERT INTO `sys_relation` VALUES ('3385', '113', '5'); |
| | | INSERT INTO `sys_relation` VALUES ('3386', '114', '5'); |
| | | INSERT INTO `sys_relation` VALUES ('3387', '115', '5'); |
| | | INSERT INTO `sys_relation` VALUES ('3388', '116', '5'); |
| | | INSERT INTO `sys_relation` VALUES ('3389', '117', '5'); |
| | | INSERT INTO `sys_relation` VALUES ('3390', '118', '5'); |
| | | INSERT INTO `sys_relation` VALUES ('3391', '119', '5'); |
| | | INSERT INTO `sys_relation` VALUES ('3392', '120', '5'); |
| | | INSERT INTO `sys_relation` VALUES ('3393', '121', '5'); |
| | | INSERT INTO `sys_relation` VALUES ('3394', '122', '5'); |
| | | INSERT INTO `sys_relation` VALUES ('3395', '150', '5'); |
| | | INSERT INTO `sys_relation` VALUES ('3396', '151', '5'); |
| | | INSERT INTO `sys_relation` VALUES ('3737', '105', '1'); |
| | | INSERT INTO `sys_relation` VALUES ('3738', '106', '1'); |
| | | INSERT INTO `sys_relation` VALUES ('3739', '107', '1'); |
| | | INSERT INTO `sys_relation` VALUES ('3740', '108', '1'); |
| | | INSERT INTO `sys_relation` VALUES ('3741', '109', '1'); |
| | | INSERT INTO `sys_relation` VALUES ('3742', '110', '1'); |
| | | INSERT INTO `sys_relation` VALUES ('3743', '111', '1'); |
| | | INSERT INTO `sys_relation` VALUES ('3744', '112', '1'); |
| | | INSERT INTO `sys_relation` VALUES ('3745', '113', '1'); |
| | | INSERT INTO `sys_relation` VALUES ('3746', '165', '1'); |
| | | INSERT INTO `sys_relation` VALUES ('3747', '166', '1'); |
| | | INSERT INTO `sys_relation` VALUES ('3748', '167', '1'); |
| | | INSERT INTO `sys_relation` VALUES ('3749', '114', '1'); |
| | | INSERT INTO `sys_relation` VALUES ('3750', '115', '1'); |
| | | INSERT INTO `sys_relation` VALUES ('3751', '116', '1'); |
| | | INSERT INTO `sys_relation` VALUES ('3752', '117', '1'); |
| | | INSERT INTO `sys_relation` VALUES ('3753', '118', '1'); |
| | | INSERT INTO `sys_relation` VALUES ('3754', '162', '1'); |
| | | INSERT INTO `sys_relation` VALUES ('3755', '163', '1'); |
| | | INSERT INTO `sys_relation` VALUES ('3756', '164', '1'); |
| | | INSERT INTO `sys_relation` VALUES ('3757', '119', '1'); |
| | | INSERT INTO `sys_relation` VALUES ('3758', '120', '1'); |
| | | INSERT INTO `sys_relation` VALUES ('3759', '121', '1'); |
| | | INSERT INTO `sys_relation` VALUES ('3760', '122', '1'); |
| | | INSERT INTO `sys_relation` VALUES ('3761', '150', '1'); |
| | | INSERT INTO `sys_relation` VALUES ('3762', '151', '1'); |
| | | INSERT INTO `sys_relation` VALUES ('3763', '128', '1'); |
| | | INSERT INTO `sys_relation` VALUES ('3764', '134', '1'); |
| | | INSERT INTO `sys_relation` VALUES ('3765', '158', '1'); |
| | | INSERT INTO `sys_relation` VALUES ('3766', '159', '1'); |
| | | INSERT INTO `sys_relation` VALUES ('3767', '130', '1'); |
| | | INSERT INTO `sys_relation` VALUES ('3768', '131', '1'); |
| | | INSERT INTO `sys_relation` VALUES ('3769', '135', '1'); |
| | | INSERT INTO `sys_relation` VALUES ('3770', '136', '1'); |
| | | INSERT INTO `sys_relation` VALUES ('3771', '137', '1'); |
| | | INSERT INTO `sys_relation` VALUES ('3772', '152', '1'); |
| | | INSERT INTO `sys_relation` VALUES ('3773', '153', '1'); |
| | | INSERT INTO `sys_relation` VALUES ('3774', '154', '1'); |
| | | INSERT INTO `sys_relation` VALUES ('3775', '132', '1'); |
| | | INSERT INTO `sys_relation` VALUES ('3776', '138', '1'); |
| | | INSERT INTO `sys_relation` VALUES ('3777', '139', '1'); |
| | | INSERT INTO `sys_relation` VALUES ('3778', '140', '1'); |
| | | INSERT INTO `sys_relation` VALUES ('3779', '155', '1'); |
| | | INSERT INTO `sys_relation` VALUES ('3780', '156', '1'); |
| | | INSERT INTO `sys_relation` VALUES ('3781', '157', '1'); |
| | | INSERT INTO `sys_relation` VALUES ('3782', '133', '1'); |
| | | INSERT INTO `sys_relation` VALUES ('3783', '160', '1'); |
| | | INSERT INTO `sys_relation` VALUES ('3784', '161', '1'); |
| | | INSERT INTO `sys_relation` VALUES ('3785', '141', '1'); |
| | | INSERT INTO `sys_relation` VALUES ('3786', '142', '1'); |
| | | INSERT INTO `sys_relation` VALUES ('3787', '143', '1'); |
| | | INSERT INTO `sys_relation` VALUES ('3788', '144', '1'); |
| | | INSERT INTO `sys_relation` VALUES ('3789', '145', '1'); |
| | | INSERT INTO `sys_relation` VALUES ('3790', '148', '1'); |
| | | INSERT INTO `sys_relation` VALUES ('3791', '149', '1'); |
| | | |
| | | -- ---------------------------- |
| | | -- Table structure for sys_role |
| | | -- ---------------------------- |
| | | DROP TABLE IF EXISTS `sys_role`; |
| | | CREATE TABLE `sys_role` ( |
| | | `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键id', |
| | | `num` int(11) DEFAULT NULL COMMENT '序号', |
| | | `pid` int(11) DEFAULT NULL COMMENT '父角色id', |
| | | `name` varchar(255) DEFAULT NULL COMMENT '角色名称', |
| | | `deptid` int(11) DEFAULT NULL COMMENT '部门名称', |
| | | `tips` varchar(255) DEFAULT NULL COMMENT '提示', |
| | | `version` int(11) DEFAULT NULL COMMENT '保留字段(暂时没用)', |
| | | PRIMARY KEY (`id`) |
| | | ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COMMENT='角色表'; |
| | | |
| | | -- ---------------------------- |
| | | -- Records of sys_role |
| | | -- ---------------------------- |
| | | INSERT INTO `sys_role` VALUES ('1', '1', '0', '超级管理员', '24', 'administrator', '1'); |
| | | INSERT INTO `sys_role` VALUES ('5', '2', '1', '临时', '26', 'temp', null); |
| | | |
| | | -- ---------------------------- |
| | | -- Table structure for sys_user |
| | | -- ---------------------------- |
| | | DROP TABLE IF EXISTS `sys_user`; |
| | | CREATE TABLE `sys_user` ( |
| | | `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键id', |
| | | `avatar` varchar(255) DEFAULT NULL COMMENT '头像', |
| | | `account` varchar(45) DEFAULT NULL COMMENT '账号', |
| | | `password` varchar(45) DEFAULT NULL COMMENT '密码', |
| | | `salt` varchar(45) DEFAULT NULL COMMENT 'md5密码盐', |
| | | `name` varchar(45) DEFAULT NULL COMMENT '名字', |
| | | `birthday` datetime DEFAULT NULL COMMENT '生日', |
| | | `sex` int(11) DEFAULT NULL COMMENT '性别(1:男 2:女)', |
| | | `email` varchar(45) DEFAULT NULL COMMENT '电子邮件', |
| | | `phone` varchar(45) DEFAULT NULL COMMENT '电话', |
| | | `roleid` varchar(255) DEFAULT NULL COMMENT '角色id', |
| | | `deptid` int(11) DEFAULT NULL COMMENT '部门id', |
| | | `status` int(11) DEFAULT NULL COMMENT '状态(1:启用 2:冻结 3:删除)', |
| | | `createtime` datetime DEFAULT NULL COMMENT '创建时间', |
| | | `version` int(11) DEFAULT NULL COMMENT '保留字段', |
| | | PRIMARY KEY (`id`) |
| | | ) ENGINE=InnoDB AUTO_INCREMENT=47 DEFAULT CHARSET=utf8 COMMENT='管理员表'; |
| | | |
| | | -- ---------------------------- |
| | | -- Records of sys_user |
| | | -- ---------------------------- |
| | | INSERT INTO `sys_user` VALUES ('1', 'girl.gif', 'admin', 'ecfadcde9305f8891bcfe5a1e28c253e', '8pgby', '张三', '2017-05-05 00:00:00', '2', 'sn93@qq.com', '18200000000', '1', '27', '1', '2016-01-29 08:49:53', '25'); |
| | | INSERT INTO `sys_user` VALUES ('44', null, 'test', '45abb7879f6a8268f1ef600e6038ac73', 'ssts3', 'test', '2017-05-01 00:00:00', '1', 'abc@123.com', '', '5', '26', '3', '2017-05-16 20:33:37', null); |
| | | INSERT INTO `sys_user` VALUES ('45', null, 'boss', '71887a5ad666a18f709e1d4e693d5a35', '1f7bf', '老板', '2017-12-04 00:00:00', '1', '', '', '1', '24', '1', '2017-12-04 22:24:02', null); |
| | | INSERT INTO `sys_user` VALUES ('46', null, 'manager', 'b53cac62e7175637d4beb3b16b2f7915', 'j3cs9', '经理', '2017-12-04 00:00:00', '1', '', '', '1', '24', '1', '2017-12-04 22:24:24', null); |
| | | |
| | | |
| | | DROP TABLE IF EXISTS `test`; |
| | | CREATE TABLE `test` ( |
| | | `aaa` int(11) NOT NULL AUTO_INCREMENT, |
| | | `bbb` varchar(255) DEFAULT NULL, |
| | | PRIMARY KEY (`aaa`) USING BTREE |
| | | ) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC; |
| | | |
| | | SET FOREIGN_KEY_CHECKS = 1; |
New file |
| | |
| | | package com.stylefeng.guns; |
| | | |
| | | import org.apache.http.config.SocketConfig; |
| | | import org.apache.http.impl.client.CloseableHttpClient; |
| | | import org.apache.http.impl.client.HttpClientBuilder; |
| | | import org.apache.http.impl.conn.PoolingHttpClientConnectionManager; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | import org.springframework.boot.SpringApplication; |
| | | import org.springframework.boot.autoconfigure.SpringBootApplication; |
| | | import org.springframework.cloud.client.loadbalancer.LoadBalanced; |
| | | import org.springframework.cloud.netflix.eureka.EnableEurekaClient; |
| | | import org.springframework.context.annotation.Bean; |
| | | import org.springframework.http.client.HttpComponentsClientHttpRequestFactory; |
| | | import org.springframework.http.converter.StringHttpMessageConverter; |
| | | import org.springframework.web.client.RestTemplate; |
| | | |
| | | import java.nio.charset.StandardCharsets; |
| | | |
| | | /** |
| | | * SpringBoot方式启动类 |
| | | * |
| | | * @author stylefeng |
| | | * @Date 2017/5/21 12:06 |
| | | */ |
| | | @EnableEurekaClient//注册为服务提供者 |
| | | @SpringBootApplication |
| | | public class GunsApplication { |
| | | |
| | | private final static Logger logger = LoggerFactory.getLogger(GunsApplication.class); |
| | | |
| | | public static void main(String[] args) { |
| | | SpringApplication.run(GunsApplication.class, args); |
| | | logger.info("GunsApplication is success!"); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 向Spring容器中定义RestTemplate对象 |
| | | * @return |
| | | */ |
| | | @Bean //SpringCloud内部服务质检使用服务名调用 |
| | | @LoadBalanced |
| | | public RestTemplate internalRestTemplate() { |
| | | PoolingHttpClientConnectionManager connectionManager = new PoolingHttpClientConnectionManager(); |
| | | connectionManager.setDefaultSocketConfig(SocketConfig.custom().setTcpNoDelay(true).build()); |
| | | connectionManager.setDefaultMaxPerRoute(100);//最大并发连接 |
| | | connectionManager.setMaxTotal(200); // 总的最大连接数 |
| | | CloseableHttpClient httpClient = HttpClientBuilder.create().setConnectionManager(connectionManager).build(); |
| | | HttpComponentsClientHttpRequestFactory httpRequestFactory = new HttpComponentsClientHttpRequestFactory(httpClient); |
| | | httpRequestFactory.setConnectionRequestTimeout(30 * 1000); |
| | | httpRequestFactory.setConnectTimeout(30 * 3000); |
| | | httpRequestFactory.setReadTimeout(30 * 3000); |
| | | RestTemplate restTemplate = new RestTemplate(httpRequestFactory); |
| | | restTemplate.getMessageConverters().set(1, new StringHttpMessageConverter(StandardCharsets.UTF_8)); |
| | | return restTemplate; |
| | | } |
| | | |
| | | @Bean //通过ip地址调用 |
| | | public RestTemplate restTemplate() { |
| | | PoolingHttpClientConnectionManager connectionManager = new PoolingHttpClientConnectionManager(); |
| | | connectionManager.setDefaultSocketConfig(SocketConfig.custom().setTcpNoDelay(true).build()); |
| | | connectionManager.setDefaultMaxPerRoute(100);//最大并发连接 |
| | | connectionManager.setMaxTotal(200); // 总的最大连接数 |
| | | CloseableHttpClient httpClient = HttpClientBuilder.create().setConnectionManager(connectionManager).build(); |
| | | HttpComponentsClientHttpRequestFactory httpRequestFactory = new HttpComponentsClientHttpRequestFactory(httpClient); |
| | | httpRequestFactory.setConnectionRequestTimeout(30 * 1000); |
| | | httpRequestFactory.setConnectTimeout(30 * 3000); |
| | | httpRequestFactory.setReadTimeout(30 * 3000); |
| | | RestTemplate restTemplate = new RestTemplate(httpRequestFactory); |
| | | restTemplate.getMessageConverters().set(1, new StringHttpMessageConverter(StandardCharsets.UTF_8)); |
| | | return restTemplate; |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns; |
| | | |
| | | import org.springframework.boot.builder.SpringApplicationBuilder; |
| | | import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; |
| | | |
| | | /** |
| | | * Guns Web程序启动类 |
| | | * |
| | | * @author fengshuonan |
| | | * @date 2017-05-21 9:43 |
| | | */ |
| | | public class GunsServletInitializer extends SpringBootServletInitializer { |
| | | |
| | | @Override |
| | | protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { |
| | | return builder.sources(GunsApplication.class); |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.config; |
| | | |
| | | import net.sf.ehcache.CacheManager; |
| | | import org.springframework.cache.annotation.EnableCaching; |
| | | import org.springframework.cache.ehcache.EhCacheCacheManager; |
| | | import org.springframework.cache.ehcache.EhCacheManagerFactoryBean; |
| | | import org.springframework.context.annotation.Bean; |
| | | import org.springframework.context.annotation.Configuration; |
| | | import org.springframework.core.io.ClassPathResource; |
| | | |
| | | /** |
| | | * ehcache配置 |
| | | * |
| | | * @author fengshuonan |
| | | * @date 2017-05-20 23:11 |
| | | */ |
| | | @Configuration |
| | | @EnableCaching |
| | | public class EhCacheConfig { |
| | | |
| | | /** |
| | | * EhCache的配置 |
| | | */ |
| | | @Bean |
| | | public EhCacheCacheManager cacheManager(CacheManager cacheManager) { |
| | | return new EhCacheCacheManager(cacheManager); |
| | | } |
| | | |
| | | /** |
| | | * EhCache的配置 |
| | | */ |
| | | @Bean |
| | | public EhCacheManagerFactoryBean ehcache() { |
| | | EhCacheManagerFactoryBean ehCacheManagerFactoryBean = new EhCacheManagerFactoryBean(); |
| | | ehCacheManagerFactoryBean.setConfigLocation(new ClassPathResource("ehcache.xml")); |
| | | ehCacheManagerFactoryBean.setShared(true);//共享缓存,避免tomcat启动报错 |
| | | return ehCacheManagerFactoryBean; |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.config; |
| | | |
| | | import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; |
| | | |
| | | /** |
| | | * spring session配置 |
| | | * |
| | | * @author fengshuonan |
| | | * @date 2017-07-13 21:05 |
| | | */ |
| | | //@EnableRedisHttpSession(maxInactiveIntervalInSeconds = 1800) //session过期时间 如果部署多机环境,需要打开注释 |
| | | @ConditionalOnProperty(prefix = "guns", name = "spring-session-open", havingValue = "true") |
| | | public class SpringSessionConfig { |
| | | |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.config; |
| | | |
| | | import io.swagger.annotations.ApiOperation; |
| | | import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; |
| | | import org.springframework.context.annotation.Bean; |
| | | import org.springframework.context.annotation.Configuration; |
| | | import springfox.documentation.builders.ApiInfoBuilder; |
| | | import springfox.documentation.builders.PathSelectors; |
| | | import springfox.documentation.builders.RequestHandlerSelectors; |
| | | import springfox.documentation.service.ApiInfo; |
| | | import springfox.documentation.spi.DocumentationType; |
| | | import springfox.documentation.spring.web.plugins.Docket; |
| | | import springfox.documentation.swagger2.annotations.EnableSwagger2; |
| | | |
| | | /** |
| | | * swagger配置类 |
| | | * |
| | | * @author fengshuonan |
| | | * @date 2017年6月1日19:42:59 |
| | | */ |
| | | @Configuration |
| | | @EnableSwagger2 |
| | | @ConditionalOnProperty(prefix = "guns", name = "swagger-open", havingValue = "true") |
| | | public class SwaggerConfig{ |
| | | |
| | | @Bean |
| | | public Docket createRestApi() { |
| | | return new Docket(DocumentationType.SWAGGER_2) |
| | | .apiInfo(apiInfo()) |
| | | .select() |
| | | .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) //这里采用包含注解的方式来确定要显示的接口 |
| | | //.apis(RequestHandlerSelectors.basePackage("com.stylefeng.guns.modular.system.controller")) //这里采用包扫描的方式来确定要显示的接口 |
| | | .paths(PathSelectors.any()) |
| | | .build(); |
| | | } |
| | | |
| | | private ApiInfo apiInfo() { |
| | | return new ApiInfoBuilder() |
| | | .title("OK出行 Doc") |
| | | .description("所有接口前需要加 /dispatch 前缀,例如:/dispatch/base/agreement/queryByType <br>" + |
| | | "所有以 /api/*** 路径的接口需要上传签名参数sign") |
| | | // .termsOfServiceUrl("http://git.oschina.net/naan1993/guns") |
| | | .contact("stylefeng") |
| | | .version("1.0") |
| | | .build(); |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.config.datasource; |
| | | |
| | | import com.alibaba.druid.pool.DruidDataSource; |
| | | import com.baomidou.mybatisplus.plugins.OptimisticLockerInterceptor; |
| | | import com.baomidou.mybatisplus.plugins.PaginationInterceptor; |
| | | import com.stylefeng.guns.core.config.properties.DruidProperties; |
| | | import com.stylefeng.guns.core.config.properties.MutiDataSourceProperties; |
| | | import com.stylefeng.guns.core.datascope.DataScopeInterceptor; |
| | | import com.stylefeng.guns.core.mutidatasource.DynamicDataSource; |
| | | import com.stylefeng.guns.core.mutidatasource.aop.MultiSourceExAop; |
| | | import org.mybatis.spring.annotation.MapperScan; |
| | | import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; |
| | | import org.springframework.boot.context.properties.ConfigurationProperties; |
| | | import org.springframework.context.annotation.Bean; |
| | | import org.springframework.context.annotation.Configuration; |
| | | import org.springframework.jdbc.datasource.DataSourceTransactionManager; |
| | | import org.springframework.transaction.annotation.EnableTransactionManagement; |
| | | |
| | | import java.sql.SQLException; |
| | | import java.util.HashMap; |
| | | |
| | | /** |
| | | * 多数据源配置<br/> |
| | | * <p> |
| | | * 注:由于引入多数据源,所以让spring事务的aop要在多数据源切换aop的后面 |
| | | * |
| | | * @author stylefeng |
| | | * @Date 2017/5/20 21:58 |
| | | */ |
| | | @Configuration |
| | | @ConditionalOnProperty(prefix = "guns.muti-datasource", name = "open", havingValue = "true") |
| | | @EnableTransactionManagement(order = 2) |
| | | @MapperScan(basePackages = {"com.stylefeng.guns.modular.*.dao","com.stylefeng.guns.multi.mapper"}) |
| | | public class MultiDataSourceConfig { |
| | | |
| | | @Bean |
| | | @ConfigurationProperties(prefix = "guns.muti-datasource") |
| | | public MutiDataSourceProperties mutiDataSourceProperties() { |
| | | return new MutiDataSourceProperties(); |
| | | } |
| | | |
| | | @Bean |
| | | public MultiSourceExAop multiSourceExAop() { |
| | | return new MultiSourceExAop(); |
| | | } |
| | | |
| | | /** |
| | | * guns的数据源 |
| | | */ |
| | | private DruidDataSource dataSource(DruidProperties druidProperties) { |
| | | DruidDataSource dataSource = new DruidDataSource(); |
| | | druidProperties.config(dataSource); |
| | | return dataSource; |
| | | } |
| | | |
| | | /** |
| | | * 多数据源,第二个数据源 |
| | | */ |
| | | private DruidDataSource bizDataSource(DruidProperties druidProperties, MutiDataSourceProperties mutiDataSourceProperties) { |
| | | DruidDataSource dataSource = new DruidDataSource(); |
| | | druidProperties.config(dataSource); |
| | | mutiDataSourceProperties.config(dataSource); |
| | | return dataSource; |
| | | } |
| | | |
| | | /** |
| | | * 多数据源连接池配置 |
| | | */ |
| | | @Bean |
| | | public DynamicDataSource mutiDataSource(DruidProperties druidProperties, MutiDataSourceProperties mutiDataSourceProperties) { |
| | | |
| | | DruidDataSource dataSourceGuns = dataSource(druidProperties); |
| | | DruidDataSource bizDataSource = bizDataSource(druidProperties, mutiDataSourceProperties); |
| | | |
| | | try { |
| | | dataSourceGuns.init(); |
| | | bizDataSource.init(); |
| | | } catch (SQLException sql) { |
| | | sql.printStackTrace(); |
| | | } |
| | | |
| | | DynamicDataSource dynamicDataSource = new DynamicDataSource(); |
| | | HashMap<Object, Object> hashMap = new HashMap<>(); |
| | | hashMap.put(mutiDataSourceProperties.getDataSourceNames()[0], dataSourceGuns); |
| | | hashMap.put(mutiDataSourceProperties.getDataSourceNames()[1], bizDataSource); |
| | | dynamicDataSource.setTargetDataSources(hashMap); |
| | | dynamicDataSource.setDefaultTargetDataSource(dataSourceGuns); |
| | | return dynamicDataSource; |
| | | } |
| | | |
| | | /** |
| | | * mybatis-plus分页插件 |
| | | */ |
| | | @Bean |
| | | public PaginationInterceptor paginationInterceptor() { |
| | | return new PaginationInterceptor(); |
| | | } |
| | | |
| | | /** |
| | | * 数据范围mybatis插件 |
| | | */ |
| | | @Bean |
| | | public DataScopeInterceptor dataScopeInterceptor() { |
| | | return new DataScopeInterceptor(); |
| | | } |
| | | |
| | | /** |
| | | * 乐观锁mybatis插件 |
| | | */ |
| | | @Bean |
| | | public OptimisticLockerInterceptor optimisticLockerInterceptor() { |
| | | return new OptimisticLockerInterceptor(); |
| | | } |
| | | |
| | | /** |
| | | * 事务配置 |
| | | * |
| | | * @author stylefeng |
| | | * @Date 2018/6/27 23:11 |
| | | */ |
| | | @Bean |
| | | public DataSourceTransactionManager dataSourceTransactionManager(DynamicDataSource mutiDataSource) { |
| | | return new DataSourceTransactionManager(mutiDataSource); |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.config.datasource; |
| | | |
| | | import com.alibaba.druid.pool.DruidDataSource; |
| | | import com.baomidou.mybatisplus.plugins.OptimisticLockerInterceptor; |
| | | import com.baomidou.mybatisplus.plugins.PaginationInterceptor; |
| | | import com.stylefeng.guns.core.config.properties.DruidProperties; |
| | | import com.stylefeng.guns.core.datascope.DataScopeInterceptor; |
| | | import org.mybatis.spring.annotation.MapperScan; |
| | | import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; |
| | | import org.springframework.context.annotation.Bean; |
| | | import org.springframework.context.annotation.Configuration; |
| | | import org.springframework.transaction.annotation.EnableTransactionManagement; |
| | | |
| | | /** |
| | | * 多数据源配置 |
| | | * |
| | | * @author stylefeng |
| | | * @Date 2017/5/20 21:58 |
| | | */ |
| | | @Configuration |
| | | @ConditionalOnProperty(prefix = "guns.muti-datasource", name = "open", havingValue = "false", matchIfMissing = true) |
| | | @EnableTransactionManagement |
| | | @MapperScan(basePackages = {"com.stylefeng.guns.modular.*.dao"}) |
| | | public class SingleDataSourceConfig { |
| | | |
| | | /** |
| | | * 单数据源连接池配置 |
| | | */ |
| | | @Bean |
| | | public DruidDataSource dataSource(DruidProperties druidProperties) { |
| | | DruidDataSource dataSource = new DruidDataSource(); |
| | | druidProperties.config(dataSource); |
| | | return dataSource; |
| | | } |
| | | |
| | | /** |
| | | * mybatis-plus分页插件 |
| | | */ |
| | | @Bean |
| | | public PaginationInterceptor paginationInterceptor() { |
| | | return new PaginationInterceptor(); |
| | | } |
| | | |
| | | /** |
| | | * 数据范围mybatis插件 |
| | | */ |
| | | @Bean |
| | | public DataScopeInterceptor dataScopeInterceptor() { |
| | | return new DataScopeInterceptor(); |
| | | } |
| | | |
| | | /** |
| | | * 乐观锁mybatis插件 |
| | | */ |
| | | @Bean |
| | | public OptimisticLockerInterceptor optimisticLockerInterceptor() { |
| | | return new OptimisticLockerInterceptor(); |
| | | } |
| | | |
| | | } |
| | | |
New file |
| | |
| | | package com.stylefeng.guns.config.properties; |
| | | |
| | | import com.stylefeng.guns.core.util.ToolUtil; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | | import org.springframework.boot.context.properties.ConfigurationProperties; |
| | | import org.springframework.context.annotation.Configuration; |
| | | |
| | | import java.util.Properties; |
| | | |
| | | /** |
| | | * beetl配置(如果需要配置别的配置可参照这个形式自己添加) |
| | | * |
| | | * @author fengshuonan |
| | | * @date 2017-05-24 20:37 |
| | | */ |
| | | @Configuration |
| | | @ConfigurationProperties(prefix = BeetlProperties.BEETLCONF_PREFIX) |
| | | public class BeetlProperties { |
| | | |
| | | public static final String BEETLCONF_PREFIX = "beetl"; |
| | | |
| | | private String delimiterStatementStart; |
| | | |
| | | private String delimiterStatementEnd; |
| | | |
| | | private String resourceTagroot; |
| | | |
| | | private String resourceTagsuffix; |
| | | |
| | | private String resourceAutoCheck; |
| | | |
| | | @Value("${spring.mvc.view.prefix}") |
| | | private String prefix; |
| | | |
| | | public Properties getProperties(){ |
| | | Properties properties = new Properties(); |
| | | if(ToolUtil.isNotEmpty(delimiterStatementStart)){ |
| | | if(delimiterStatementStart.startsWith("\\")){ |
| | | delimiterStatementStart = delimiterStatementStart.substring(1); |
| | | } |
| | | properties.setProperty("DELIMITER_STATEMENT_START",delimiterStatementStart); |
| | | } |
| | | if(ToolUtil.isNotEmpty(delimiterStatementEnd)){ |
| | | properties.setProperty("DELIMITER_STATEMENT_END",delimiterStatementEnd); |
| | | }else{ |
| | | properties.setProperty("DELIMITER_STATEMENT_END","null"); |
| | | } |
| | | if(ToolUtil.isNotEmpty(resourceTagroot)){ |
| | | properties.setProperty("RESOURCE.tagRoot",resourceTagroot); |
| | | } |
| | | if(ToolUtil.isNotEmpty(resourceTagsuffix)){ |
| | | properties.setProperty("RESOURCE.tagSuffix",resourceTagsuffix); |
| | | } |
| | | if(ToolUtil.isNotEmpty(resourceAutoCheck)){ |
| | | properties.setProperty("RESOURCE.autoCheck",resourceAutoCheck); |
| | | } |
| | | return properties; |
| | | } |
| | | |
| | | public String getPrefix() { |
| | | return prefix; |
| | | } |
| | | |
| | | public String getDelimiterStatementStart() { |
| | | return delimiterStatementStart; |
| | | } |
| | | |
| | | public void setDelimiterStatementStart(String delimiterStatementStart) { |
| | | this.delimiterStatementStart = delimiterStatementStart; |
| | | } |
| | | |
| | | public String getDelimiterStatementEnd() { |
| | | return delimiterStatementEnd; |
| | | } |
| | | |
| | | public void setDelimiterStatementEnd(String delimiterStatementEnd) { |
| | | this.delimiterStatementEnd = delimiterStatementEnd; |
| | | } |
| | | |
| | | public String getResourceTagroot() { |
| | | return resourceTagroot; |
| | | } |
| | | |
| | | public void setResourceTagroot(String resourceTagroot) { |
| | | this.resourceTagroot = resourceTagroot; |
| | | } |
| | | |
| | | public String getResourceTagsuffix() { |
| | | return resourceTagsuffix; |
| | | } |
| | | |
| | | public void setResourceTagsuffix(String resourceTagsuffix) { |
| | | this.resourceTagsuffix = resourceTagsuffix; |
| | | } |
| | | |
| | | public String getResourceAutoCheck() { |
| | | return resourceAutoCheck; |
| | | } |
| | | |
| | | public void setResourceAutoCheck(String resourceAutoCheck) { |
| | | this.resourceAutoCheck = resourceAutoCheck; |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.config.properties; |
| | | |
| | | import org.springframework.boot.context.properties.ConfigurationProperties; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import java.io.File; |
| | | |
| | | import static com.stylefeng.guns.core.util.ToolUtil.getTempPath; |
| | | import static com.stylefeng.guns.core.util.ToolUtil.isEmpty; |
| | | |
| | | /** |
| | | * guns项目配置 |
| | | * |
| | | * @author stylefeng |
| | | * @Date 2017/5/23 22:31 |
| | | */ |
| | | @Component |
| | | @ConfigurationProperties(prefix = GunsProperties.PREFIX) |
| | | public class GunsProperties { |
| | | |
| | | public static final String PREFIX = "guns"; |
| | | |
| | | private Boolean kaptchaOpen = false; |
| | | |
| | | private Boolean swaggerOpen = false; |
| | | |
| | | private String fileUploadPath; |
| | | |
| | | private Boolean haveCreatePath = false; |
| | | |
| | | private Boolean springSessionOpen = false; |
| | | |
| | | /** |
| | | * session 失效时间(默认为30分钟 单位:秒) |
| | | */ |
| | | private Integer sessionInvalidateTime = 30 * 60; |
| | | |
| | | /** |
| | | * session 验证失效时间(默认为15分钟 单位:秒) |
| | | */ |
| | | private Integer sessionValidationInterval = 15 * 60; |
| | | |
| | | public String getFileUploadPath() { |
| | | //如果没有写文件上传路径,保存到临时目录 |
| | | if (isEmpty(fileUploadPath)) { |
| | | return getTempPath(); |
| | | } else { |
| | | //判断有没有结尾符,没有得加上 |
| | | if (!fileUploadPath.endsWith(File.separator)) { |
| | | fileUploadPath = fileUploadPath + File.separator; |
| | | } |
| | | //判断目录存不存在,不存在得加上 |
| | | if (!haveCreatePath) { |
| | | File file = new File(fileUploadPath); |
| | | file.mkdirs(); |
| | | haveCreatePath = true; |
| | | } |
| | | return fileUploadPath; |
| | | } |
| | | } |
| | | |
| | | public void setFileUploadPath(String fileUploadPath) { |
| | | this.fileUploadPath = fileUploadPath; |
| | | } |
| | | |
| | | public Boolean getKaptchaOpen() { |
| | | return kaptchaOpen; |
| | | } |
| | | |
| | | public void setKaptchaOpen(Boolean kaptchaOpen) { |
| | | this.kaptchaOpen = kaptchaOpen; |
| | | } |
| | | |
| | | public Boolean getSwaggerOpen() { |
| | | return swaggerOpen; |
| | | } |
| | | |
| | | public void setSwaggerOpen(Boolean swaggerOpen) { |
| | | this.swaggerOpen = swaggerOpen; |
| | | } |
| | | |
| | | public Boolean getSpringSessionOpen() { |
| | | return springSessionOpen; |
| | | } |
| | | |
| | | public void setSpringSessionOpen(Boolean springSessionOpen) { |
| | | this.springSessionOpen = springSessionOpen; |
| | | } |
| | | |
| | | public Integer getSessionInvalidateTime() { |
| | | return sessionInvalidateTime; |
| | | } |
| | | |
| | | public void setSessionInvalidateTime(Integer sessionInvalidateTime) { |
| | | this.sessionInvalidateTime = sessionInvalidateTime; |
| | | } |
| | | |
| | | public Integer getSessionValidationInterval() { |
| | | return sessionValidationInterval; |
| | | } |
| | | |
| | | public void setSessionValidationInterval(Integer sessionValidationInterval) { |
| | | this.sessionValidationInterval = sessionValidationInterval; |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.config.web; |
| | | |
| | | import com.stylefeng.guns.config.properties.BeetlProperties; |
| | | import com.stylefeng.guns.core.beetl.BeetlConfiguration; |
| | | import org.beetl.core.resource.ClasspathResourceLoader; |
| | | import org.beetl.ext.spring.BeetlSpringViewResolver; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.boot.context.properties.ConfigurationProperties; |
| | | import org.springframework.context.annotation.Bean; |
| | | import org.springframework.context.annotation.Configuration; |
| | | |
| | | /** |
| | | * web 配置类 |
| | | * |
| | | * @author fengshuonan |
| | | * @date 2016年11月12日 下午5:03:32 |
| | | */ |
| | | @Configuration |
| | | public class BeetlConfig { |
| | | |
| | | @Autowired |
| | | BeetlProperties beetlProperties; |
| | | |
| | | /** |
| | | * beetl的配置 |
| | | */ |
| | | @Bean(initMethod = "init") |
| | | public BeetlConfiguration beetlConfiguration() { |
| | | BeetlConfiguration beetlConfiguration = new BeetlConfiguration(); |
| | | beetlConfiguration.setResourceLoader(new ClasspathResourceLoader(BeetlConfig.class.getClassLoader(), beetlProperties.getPrefix())); |
| | | beetlConfiguration.setConfigProperties(beetlProperties.getProperties()); |
| | | return beetlConfiguration; |
| | | } |
| | | |
| | | /** |
| | | * beetl的视图解析器 |
| | | */ |
| | | @Bean |
| | | public BeetlSpringViewResolver beetlViewResolver() { |
| | | BeetlSpringViewResolver beetlSpringViewResolver = new BeetlSpringViewResolver(); |
| | | beetlSpringViewResolver.setConfig(beetlConfiguration()); |
| | | beetlSpringViewResolver.setContentType("text/html;charset=UTF-8"); |
| | | beetlSpringViewResolver.setOrder(0); |
| | | return beetlSpringViewResolver; |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.config.web; |
| | | |
| | | import com.stylefeng.guns.config.properties.GunsProperties; |
| | | import com.stylefeng.guns.core.intercept.GunsUserFilter; |
| | | import com.stylefeng.guns.core.shiro.ShiroDbRealm; |
| | | import org.apache.shiro.cache.CacheManager; |
| | | import org.apache.shiro.cache.ehcache.EhCacheManager; |
| | | import org.apache.shiro.codec.Base64; |
| | | import org.apache.shiro.session.mgt.SessionManager; |
| | | import org.apache.shiro.spring.LifecycleBeanPostProcessor; |
| | | import org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor; |
| | | import org.apache.shiro.spring.web.ShiroFilterFactoryBean; |
| | | import org.apache.shiro.web.mgt.CookieRememberMeManager; |
| | | import org.apache.shiro.web.mgt.DefaultWebSecurityManager; |
| | | import org.apache.shiro.web.servlet.Cookie; |
| | | import org.apache.shiro.web.servlet.ShiroHttpSession; |
| | | import org.apache.shiro.web.servlet.SimpleCookie; |
| | | import org.apache.shiro.web.session.mgt.DefaultWebSessionManager; |
| | | import org.apache.shiro.web.session.mgt.ServletContainerSessionManager; |
| | | import org.springframework.beans.factory.config.MethodInvokingFactoryBean; |
| | | import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; |
| | | import org.springframework.cache.ehcache.EhCacheManagerFactoryBean; |
| | | import org.springframework.context.annotation.Bean; |
| | | import org.springframework.context.annotation.Configuration; |
| | | |
| | | import javax.servlet.Filter; |
| | | import java.util.HashMap; |
| | | import java.util.LinkedHashMap; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * shiro权限管理的配置 |
| | | * |
| | | * @author fengshuonan |
| | | * @date 2016年11月14日 下午3:03:44 |
| | | */ |
| | | @Configuration |
| | | public class ShiroConfig { |
| | | |
| | | /** |
| | | * 安全管理器 |
| | | */ |
| | | @Bean |
| | | public DefaultWebSecurityManager securityManager(CookieRememberMeManager rememberMeManager, CacheManager cacheShiroManager, SessionManager sessionManager) { |
| | | DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager(); |
| | | securityManager.setRealm(this.shiroDbRealm()); |
| | | securityManager.setCacheManager(cacheShiroManager); |
| | | securityManager.setRememberMeManager(rememberMeManager); |
| | | securityManager.setSessionManager(sessionManager); |
| | | return securityManager; |
| | | } |
| | | |
| | | /** |
| | | * spring session管理器(多机环境) |
| | | */ |
| | | @Bean |
| | | @ConditionalOnProperty(prefix = "guns", name = "spring-session-open", havingValue = "true") |
| | | public ServletContainerSessionManager servletContainerSessionManager() { |
| | | return new ServletContainerSessionManager(); |
| | | } |
| | | |
| | | /** |
| | | * session管理器(单机环境) |
| | | */ |
| | | @Bean |
| | | @ConditionalOnProperty(prefix = "guns", name = "spring-session-open", havingValue = "false") |
| | | public DefaultWebSessionManager defaultWebSessionManager(CacheManager cacheShiroManager, GunsProperties gunsProperties) { |
| | | DefaultWebSessionManager sessionManager = new DefaultWebSessionManager(); |
| | | sessionManager.setCacheManager(cacheShiroManager); |
| | | sessionManager.setSessionValidationInterval(gunsProperties.getSessionValidationInterval() * 1000); |
| | | sessionManager.setGlobalSessionTimeout(gunsProperties.getSessionInvalidateTime() * 1000); |
| | | sessionManager.setDeleteInvalidSessions(true); |
| | | sessionManager.setSessionValidationSchedulerEnabled(true); |
| | | Cookie cookie = new SimpleCookie(ShiroHttpSession.DEFAULT_SESSION_ID_NAME); |
| | | cookie.setName("shiroCookie"); |
| | | cookie.setHttpOnly(true); |
| | | sessionManager.setSessionIdCookie(cookie); |
| | | return sessionManager; |
| | | } |
| | | |
| | | /** |
| | | * 缓存管理器 使用Ehcache实现 |
| | | */ |
| | | @Bean |
| | | public CacheManager getCacheShiroManager(EhCacheManagerFactoryBean ehcache) { |
| | | EhCacheManager ehCacheManager = new EhCacheManager(); |
| | | ehCacheManager.setCacheManager(ehcache.getObject()); |
| | | return ehCacheManager; |
| | | } |
| | | |
| | | /** |
| | | * 项目自定义的Realm |
| | | */ |
| | | @Bean |
| | | public ShiroDbRealm shiroDbRealm() { |
| | | return new ShiroDbRealm(); |
| | | } |
| | | |
| | | /** |
| | | * rememberMe管理器, cipherKey生成见{@code Base64Test.java} |
| | | */ |
| | | @Bean |
| | | public CookieRememberMeManager rememberMeManager(SimpleCookie rememberMeCookie) { |
| | | CookieRememberMeManager manager = new CookieRememberMeManager(); |
| | | manager.setCipherKey(Base64.decode("Z3VucwAAAAAAAAAAAAAAAA==")); |
| | | manager.setCookie(rememberMeCookie); |
| | | return manager; |
| | | } |
| | | |
| | | /** |
| | | * 记住密码Cookie |
| | | */ |
| | | @Bean |
| | | public SimpleCookie rememberMeCookie() { |
| | | SimpleCookie simpleCookie = new SimpleCookie("rememberMe"); |
| | | simpleCookie.setHttpOnly(true); |
| | | simpleCookie.setMaxAge(7 * 24 * 60 * 60);//7天 |
| | | return simpleCookie; |
| | | } |
| | | |
| | | /** |
| | | * Shiro的过滤器链 |
| | | */ |
| | | @Bean |
| | | public ShiroFilterFactoryBean shiroFilter(DefaultWebSecurityManager securityManager) { |
| | | ShiroFilterFactoryBean shiroFilter = new ShiroFilterFactoryBean(); |
| | | shiroFilter.setSecurityManager(securityManager); |
| | | /** |
| | | * 默认的登陆访问url |
| | | */ |
| | | shiroFilter.setLoginUrl("/login"); |
| | | /** |
| | | * 登陆成功后跳转的url |
| | | */ |
| | | shiroFilter.setSuccessUrl("/"); |
| | | /** |
| | | * 没有权限跳转的url |
| | | */ |
| | | shiroFilter.setUnauthorizedUrl("/global/error"); |
| | | |
| | | /** |
| | | * 覆盖默认的user拦截器(默认拦截器解决不了ajax请求 session超时的问题,若有更好的办法请及时反馈作者) |
| | | */ |
| | | HashMap<String, Filter> myFilters = new HashMap<>(); |
| | | myFilters.put("user", new GunsUserFilter()); |
| | | shiroFilter.setFilters(myFilters); |
| | | |
| | | /** |
| | | * 配置shiro拦截器链 |
| | | * |
| | | * anon 不需要认证 |
| | | * authc 需要认证 |
| | | * user 验证通过或RememberMe登录的都可以 |
| | | * |
| | | * 当应用开启了rememberMe时,用户下次访问时可以是一个user,但不会是authc,因为authc是需要重新认证的 |
| | | * |
| | | * 顺序从上到下,优先级依次降低 |
| | | * |
| | | * api开头的接口,走rest api鉴权,不走shiro鉴权 |
| | | * |
| | | */ |
| | | Map<String, String> hashMap = new LinkedHashMap<>(); |
| | | hashMap.put("/swagger-ui.html", "anon"); |
| | | hashMap.put("/swagger-resources/**", "anon"); |
| | | hashMap.put("/v2/**", "anon"); |
| | | hashMap.put("/webjars/**", "anon"); |
| | | hashMap.put("/swagger-resources/configuration/ui/**", "anon"); |
| | | hashMap.put("/swagger-resources/configuration/security/**", "anon"); |
| | | |
| | | hashMap.put("/base/**", "anon"); |
| | | hashMap.put("/api/**", "anon");//api不走shiro验证 |
| | | hashMap.put("/static/**", "anon"); |
| | | hashMap.put("/gunsApi/**", "anon"); |
| | | hashMap.put("/login", "anon"); |
| | | hashMap.put("/global/sessionError", "anon"); |
| | | hashMap.put("/kaptcha", "anon"); |
| | | hashMap.put("/**", "user"); |
| | | shiroFilter.setFilterChainDefinitionMap(hashMap); |
| | | return shiroFilter; |
| | | } |
| | | |
| | | /** |
| | | * 在方法中 注入 securityManager,进行代理控制 |
| | | */ |
| | | @Bean |
| | | public MethodInvokingFactoryBean methodInvokingFactoryBean(DefaultWebSecurityManager securityManager) { |
| | | MethodInvokingFactoryBean bean = new MethodInvokingFactoryBean(); |
| | | bean.setStaticMethod("org.apache.shiro.SecurityUtils.setSecurityManager"); |
| | | bean.setArguments(new Object[]{securityManager}); |
| | | return bean; |
| | | } |
| | | |
| | | /** |
| | | * Shiro生命周期处理器: |
| | | * 用于在实现了Initializable接口的Shiro bean初始化时调用Initializable接口回调(例如:UserRealm) |
| | | * 在实现了Destroyable接口的Shiro bean销毁时调用 Destroyable接口回调(例如:DefaultSecurityManager) |
| | | */ |
| | | @Bean |
| | | public LifecycleBeanPostProcessor lifecycleBeanPostProcessor() { |
| | | return new LifecycleBeanPostProcessor(); |
| | | } |
| | | |
| | | /** |
| | | * 启用shrio授权注解拦截方式,AOP式方法级权限检查 |
| | | */ |
| | | @Bean |
| | | public AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor(DefaultWebSecurityManager securityManager) { |
| | | AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor = |
| | | new AuthorizationAttributeSourceAdvisor(); |
| | | authorizationAttributeSourceAdvisor.setSecurityManager(securityManager); |
| | | return authorizationAttributeSourceAdvisor; |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.config.web; |
| | | |
| | | import com.alibaba.druid.pool.DruidDataSource; |
| | | import com.alibaba.druid.support.http.StatViewServlet; |
| | | import com.alibaba.druid.support.http.WebStatFilter; |
| | | import com.alibaba.druid.support.spring.stat.BeanTypeAutoProxyCreator; |
| | | import com.alibaba.druid.support.spring.stat.DruidStatInterceptor; |
| | | import com.google.code.kaptcha.impl.DefaultKaptcha; |
| | | import com.google.code.kaptcha.util.Config; |
| | | import com.stylefeng.guns.config.properties.GunsProperties; |
| | | import com.stylefeng.guns.core.intercept.RestApiInteceptor; |
| | | import com.stylefeng.guns.core.listener.ConfigListener; |
| | | import com.stylefeng.guns.core.xss.XssFilter; |
| | | import org.springframework.aop.Advisor; |
| | | import org.springframework.aop.support.DefaultPointcutAdvisor; |
| | | import org.springframework.aop.support.JdkRegexpMethodPointcut; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.boot.web.servlet.FilterRegistrationBean; |
| | | import org.springframework.boot.web.servlet.ServletListenerRegistrationBean; |
| | | import org.springframework.boot.web.servlet.ServletRegistrationBean; |
| | | import org.springframework.context.annotation.Bean; |
| | | import org.springframework.context.annotation.Configuration; |
| | | import org.springframework.web.context.request.RequestContextListener; |
| | | import org.springframework.web.servlet.config.annotation.InterceptorRegistry; |
| | | import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; |
| | | import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; |
| | | |
| | | import java.util.Arrays; |
| | | import java.util.Properties; |
| | | |
| | | /** |
| | | * web 配置类 |
| | | * |
| | | * @author fengshuonan |
| | | * @date 2016年11月12日 下午5:03:32 |
| | | */ |
| | | @Configuration |
| | | public class WebConfig extends WebMvcConfigurerAdapter { |
| | | |
| | | @Autowired |
| | | private GunsProperties gunsProperties; |
| | | |
| | | /** |
| | | * 增加swagger的支持 |
| | | */ |
| | | @Override |
| | | public void addResourceHandlers(ResourceHandlerRegistry registry) { |
| | | if (gunsProperties.getSwaggerOpen()) { |
| | | registry.addResourceHandler("swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/"); |
| | | registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/"); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 增加对rest api鉴权的spring mvc拦截器 |
| | | */ |
| | | @Override |
| | | public void addInterceptors(InterceptorRegistry registry) { |
| | | registry.addInterceptor(new RestApiInteceptor()).addPathPatterns("/gunsApi/**"); |
| | | } |
| | | |
| | | /** |
| | | * druidServlet注册 |
| | | */ |
| | | @Bean |
| | | public ServletRegistrationBean druidServletRegistration() { |
| | | ServletRegistrationBean registration = new ServletRegistrationBean(new StatViewServlet()); |
| | | registration.addUrlMappings("/druid/*"); |
| | | return registration; |
| | | } |
| | | |
| | | /** |
| | | * druid监控 配置URI拦截策略 |
| | | */ |
| | | @Bean |
| | | public FilterRegistrationBean druidStatFilter() { |
| | | FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new WebStatFilter()); |
| | | //添加过滤规则. |
| | | filterRegistrationBean.addUrlPatterns("/*"); |
| | | //添加不需要忽略的格式信息. |
| | | filterRegistrationBean.addInitParameter( |
| | | "exclusions", "/static/*,*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid,/druid/*"); |
| | | //用于session监控页面的用户名显示 需要登录后主动将username注入到session里 |
| | | filterRegistrationBean.addInitParameter("principalSessionName", "username"); |
| | | return filterRegistrationBean; |
| | | } |
| | | |
| | | /** |
| | | * druid数据库连接池监控 |
| | | */ |
| | | @Bean |
| | | public DruidStatInterceptor druidStatInterceptor() { |
| | | return new DruidStatInterceptor(); |
| | | } |
| | | |
| | | @Bean |
| | | public JdkRegexpMethodPointcut druidStatPointcut() { |
| | | JdkRegexpMethodPointcut druidStatPointcut = new JdkRegexpMethodPointcut(); |
| | | String patterns = "com.stylefeng.guns.modular.*.service.*"; |
| | | //可以set多个 |
| | | druidStatPointcut.setPatterns(patterns); |
| | | return druidStatPointcut; |
| | | } |
| | | |
| | | /** |
| | | * druid数据库连接池监控 |
| | | */ |
| | | @Bean |
| | | public BeanTypeAutoProxyCreator beanTypeAutoProxyCreator() { |
| | | BeanTypeAutoProxyCreator beanTypeAutoProxyCreator = new BeanTypeAutoProxyCreator(); |
| | | beanTypeAutoProxyCreator.setTargetBeanType(DruidDataSource.class); |
| | | beanTypeAutoProxyCreator.setInterceptorNames("druidStatInterceptor"); |
| | | return beanTypeAutoProxyCreator; |
| | | } |
| | | |
| | | /** |
| | | * druid 为druidStatPointcut添加拦截 |
| | | * |
| | | * @return |
| | | */ |
| | | @Bean |
| | | public Advisor druidStatAdvisor() { |
| | | return new DefaultPointcutAdvisor(druidStatPointcut(), druidStatInterceptor()); |
| | | } |
| | | |
| | | /** |
| | | * xssFilter注册 |
| | | */ |
| | | @Bean |
| | | public FilterRegistrationBean xssFilterRegistration() { |
| | | XssFilter xssFilter = new XssFilter(); |
| | | xssFilter.setUrlExclusion(Arrays.asList("/notice/update", "/notice/add")); |
| | | FilterRegistrationBean registration = new FilterRegistrationBean(xssFilter); |
| | | registration.addUrlPatterns("/*"); |
| | | return registration; |
| | | } |
| | | |
| | | /** |
| | | * RequestContextListener注册 |
| | | */ |
| | | @Bean |
| | | public ServletListenerRegistrationBean<RequestContextListener> requestContextListenerRegistration() { |
| | | return new ServletListenerRegistrationBean<>(new RequestContextListener()); |
| | | } |
| | | |
| | | /** |
| | | * ConfigListener注册 |
| | | */ |
| | | @Bean |
| | | public ServletListenerRegistrationBean<ConfigListener> configListenerRegistration() { |
| | | return new ServletListenerRegistrationBean<>(new ConfigListener()); |
| | | } |
| | | |
| | | /** |
| | | * 验证码生成相关 |
| | | */ |
| | | @Bean |
| | | public DefaultKaptcha kaptcha() { |
| | | Properties properties = new Properties(); |
| | | properties.put("kaptcha.border", "no"); |
| | | properties.put("kaptcha.border.color", "105,179,90"); |
| | | properties.put("kaptcha.textproducer.font.color", "blue"); |
| | | properties.put("kaptcha.image.width", "125"); |
| | | properties.put("kaptcha.image.height", "45"); |
| | | properties.put("kaptcha.textproducer.font.size", "45"); |
| | | properties.put("kaptcha.session.key", "code"); |
| | | properties.put("kaptcha.textproducer.char.length", "4"); |
| | | properties.put("kaptcha.textproducer.font.names", "宋体,楷体,微软雅黑"); |
| | | Config config = new Config(properties); |
| | | DefaultKaptcha defaultKaptcha = new DefaultKaptcha(); |
| | | defaultKaptcha.setConfig(config); |
| | | return defaultKaptcha; |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.core.aop; |
| | | |
| | | import com.stylefeng.guns.core.common.exception.BizExceptionEnum; |
| | | import com.stylefeng.guns.core.common.exception.InvalidKaptchaException; |
| | | import com.stylefeng.guns.core.base.tips.ErrorTip; |
| | | import com.stylefeng.guns.core.exception.GunsException; |
| | | import com.stylefeng.guns.core.log.LogManager; |
| | | import com.stylefeng.guns.core.log.factory.LogTaskFactory; |
| | | import com.stylefeng.guns.core.shiro.ShiroKit; |
| | | import org.apache.shiro.authc.AuthenticationException; |
| | | import org.apache.shiro.authc.CredentialsException; |
| | | import org.apache.shiro.authc.DisabledAccountException; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | import org.springframework.core.annotation.Order; |
| | | import org.springframework.http.HttpStatus; |
| | | import org.springframework.ui.Model; |
| | | import org.springframework.web.bind.annotation.ControllerAdvice; |
| | | import org.springframework.web.bind.annotation.ExceptionHandler; |
| | | import org.springframework.web.bind.annotation.ResponseBody; |
| | | import org.springframework.web.bind.annotation.ResponseStatus; |
| | | |
| | | import java.lang.reflect.UndeclaredThrowableException; |
| | | |
| | | import static com.stylefeng.guns.core.support.HttpKit.getIp; |
| | | import static com.stylefeng.guns.core.support.HttpKit.getRequest; |
| | | |
| | | /** |
| | | * 全局的的异常拦截器(拦截所有的控制器)(带有@RequestMapping注解的方法上都会拦截) |
| | | * |
| | | * @author fengshuonan |
| | | * @date 2016年11月12日 下午3:19:56 |
| | | */ |
| | | @ControllerAdvice |
| | | @Order(-1) |
| | | public class GlobalExceptionHandler { |
| | | |
| | | private Logger log = LoggerFactory.getLogger(this.getClass()); |
| | | |
| | | /** |
| | | * 拦截业务异常 |
| | | */ |
| | | @ExceptionHandler(GunsException.class) |
| | | @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR) |
| | | @ResponseBody |
| | | public ErrorTip notFount(GunsException e) { |
| | | LogManager.me().executeLog(LogTaskFactory.exceptionLog(ShiroKit.getUser().getId(), e)); |
| | | getRequest().setAttribute("tip", e.getMessage()); |
| | | log.error("业务异常:", e); |
| | | return new ErrorTip(e.getCode(), e.getMessage()); |
| | | } |
| | | |
| | | /** |
| | | * 用户未登录异常 |
| | | */ |
| | | @ExceptionHandler(AuthenticationException.class) |
| | | @ResponseStatus(HttpStatus.UNAUTHORIZED) |
| | | public String unAuth(AuthenticationException e) { |
| | | log.error("用户未登陆:", e); |
| | | return "/login.html"; |
| | | } |
| | | |
| | | /** |
| | | * 账号被冻结异常 |
| | | */ |
| | | @ExceptionHandler(DisabledAccountException.class) |
| | | @ResponseStatus(HttpStatus.UNAUTHORIZED) |
| | | public String accountLocked(DisabledAccountException e, Model model) { |
| | | String username = getRequest().getParameter("username"); |
| | | LogManager.me().executeLog(LogTaskFactory.loginLog(username, "账号被冻结", getIp())); |
| | | model.addAttribute("tips", "账号被冻结"); |
| | | return "/login.html"; |
| | | } |
| | | |
| | | /** |
| | | * 账号密码错误异常 |
| | | */ |
| | | @ExceptionHandler(CredentialsException.class) |
| | | @ResponseStatus(HttpStatus.UNAUTHORIZED) |
| | | public String credentials(CredentialsException e, Model model) { |
| | | String username = getRequest().getParameter("username"); |
| | | LogManager.me().executeLog(LogTaskFactory.loginLog(username, "账号密码错误", getIp())); |
| | | model.addAttribute("tips", "账号密码错误"); |
| | | return "/login.html"; |
| | | } |
| | | |
| | | /** |
| | | * 验证码错误异常 |
| | | */ |
| | | @ExceptionHandler(InvalidKaptchaException.class) |
| | | @ResponseStatus(HttpStatus.BAD_REQUEST) |
| | | public String credentials(InvalidKaptchaException e, Model model) { |
| | | String username = getRequest().getParameter("username"); |
| | | LogManager.me().executeLog(LogTaskFactory.loginLog(username, "验证码错误", getIp())); |
| | | model.addAttribute("tips", "验证码错误"); |
| | | return "/login.html"; |
| | | } |
| | | |
| | | /** |
| | | * 无权访问该资源异常 |
| | | */ |
| | | @ExceptionHandler(UndeclaredThrowableException.class) |
| | | @ResponseStatus(HttpStatus.UNAUTHORIZED) |
| | | @ResponseBody |
| | | public ErrorTip credentials(UndeclaredThrowableException e) { |
| | | getRequest().setAttribute("tip", "权限异常"); |
| | | log.error("权限异常!", e); |
| | | return new ErrorTip(BizExceptionEnum.NO_PERMITION.getCode(), BizExceptionEnum.NO_PERMITION.getMessage()); |
| | | } |
| | | |
| | | /** |
| | | * 拦截未知的运行时异常 |
| | | */ |
| | | @ExceptionHandler(RuntimeException.class) |
| | | @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR) |
| | | @ResponseBody |
| | | public ErrorTip notFount(RuntimeException e) { |
| | | LogManager.me().executeLog(LogTaskFactory.exceptionLog(ShiroKit.getUser().getId(), e)); |
| | | getRequest().setAttribute("tip", "服务器未知运行时异常"); |
| | | log.error("运行时异常:", e); |
| | | return new ErrorTip(BizExceptionEnum.SERVER_ERROR.getCode(), BizExceptionEnum.SERVER_ERROR.getMessage()); |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.core.aop; |
| | | |
| | | import com.stylefeng.guns.core.common.annotion.BussinessLog; |
| | | import com.stylefeng.guns.core.common.constant.dictmap.base.AbstractDictMap; |
| | | import com.stylefeng.guns.core.log.LogManager; |
| | | import com.stylefeng.guns.core.log.LogObjectHolder; |
| | | import com.stylefeng.guns.core.log.factory.LogTaskFactory; |
| | | import com.stylefeng.guns.core.shiro.ShiroKit; |
| | | import com.stylefeng.guns.core.shiro.ShiroUser; |
| | | import com.stylefeng.guns.core.support.HttpKit; |
| | | import com.stylefeng.guns.core.util.Contrast; |
| | | import org.aspectj.lang.ProceedingJoinPoint; |
| | | import org.aspectj.lang.Signature; |
| | | 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.stereotype.Component; |
| | | |
| | | import java.lang.reflect.Method; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * 日志记录 |
| | | * |
| | | * @author fengshuonan |
| | | * @date 2016年12月6日 下午8:48:30 |
| | | */ |
| | | @Aspect |
| | | @Component |
| | | public class LogAop { |
| | | |
| | | private Logger log = LoggerFactory.getLogger(this.getClass()); |
| | | |
| | | @Pointcut(value = "@annotation(com.stylefeng.guns.core.common.annotion.BussinessLog)") |
| | | public void cutService() { |
| | | } |
| | | |
| | | @Around("cutService()") |
| | | public Object recordSysLog(ProceedingJoinPoint point) throws Throwable { |
| | | |
| | | //先执行业务 |
| | | Object result = point.proceed(); |
| | | |
| | | try { |
| | | handle(point); |
| | | } catch (Exception e) { |
| | | log.error("日志记录出错!", e); |
| | | } |
| | | |
| | | return result; |
| | | } |
| | | |
| | | private void handle(ProceedingJoinPoint point) throws Exception { |
| | | |
| | | //获取拦截的方法名 |
| | | Signature sig = point.getSignature(); |
| | | MethodSignature msig = null; |
| | | if (!(sig instanceof MethodSignature)) { |
| | | throw new IllegalArgumentException("该注解只能用于方法"); |
| | | } |
| | | msig = (MethodSignature) sig; |
| | | Object target = point.getTarget(); |
| | | Method currentMethod = target.getClass().getMethod(msig.getName(), msig.getParameterTypes()); |
| | | String methodName = currentMethod.getName(); |
| | | |
| | | //如果当前用户未登录,不做日志 |
| | | ShiroUser user = ShiroKit.getUser(); |
| | | if (null == user) { |
| | | return; |
| | | } |
| | | |
| | | //获取拦截方法的参数 |
| | | String className = point.getTarget().getClass().getName(); |
| | | Object[] params = point.getArgs(); |
| | | |
| | | //获取操作名称 |
| | | BussinessLog annotation = currentMethod.getAnnotation(BussinessLog.class); |
| | | String bussinessName = annotation.value(); |
| | | String key = annotation.key(); |
| | | Class dictClass = annotation.dict(); |
| | | |
| | | StringBuilder sb = new StringBuilder(); |
| | | for (Object param : params) { |
| | | sb.append(param); |
| | | sb.append(" & "); |
| | | } |
| | | |
| | | //如果涉及到修改,比对变化 |
| | | String msg; |
| | | if (bussinessName.indexOf("修改") != -1 || bussinessName.indexOf("编辑") != -1) { |
| | | Object obj1 = LogObjectHolder.me().get(); |
| | | Map<String, String> obj2 = HttpKit.getRequestParameters(); |
| | | msg = Contrast.contrastObj(dictClass, key, obj1, obj2); |
| | | } else { |
| | | Map<String, String> parameters = HttpKit.getRequestParameters(); |
| | | AbstractDictMap dictMap = (AbstractDictMap) dictClass.newInstance(); |
| | | msg = Contrast.parseMutiKey(dictMap,key,parameters); |
| | | } |
| | | |
| | | LogManager.me().executeLog(LogTaskFactory.bussinessLog(user.getId(), bussinessName, className, methodName, msg)); |
| | | } |
| | | } |
New file |
| | |
| | | /** |
| | | * Copyright (c) 2015-2017, Chill Zhuang 庄骞 (smallchill@163.com). |
| | | * <p> |
| | | * Licensed under the Apache License, Version 2.0 (the "License"); |
| | | * you may not use this file except in compliance with the License. |
| | | * You may obtain a copy of the License at |
| | | * <p> |
| | | * http://www.apache.org/licenses/LICENSE-2.0 |
| | | * <p> |
| | | * Unless required by applicable law or agreed to in writing, software |
| | | * distributed under the License is distributed on an "AS IS" BASIS, |
| | | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| | | * See the License for the specific language governing permissions and |
| | | * limitations under the License. |
| | | */ |
| | | package com.stylefeng.guns.core.aop; |
| | | |
| | | import com.stylefeng.guns.core.common.annotion.Permission; |
| | | import com.stylefeng.guns.core.shiro.check.PermissionCheckManager; |
| | | 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.springframework.core.annotation.Order; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import javax.naming.NoPermissionException; |
| | | import java.lang.reflect.Method; |
| | | |
| | | /** |
| | | * AOP 权限自定义检查 |
| | | */ |
| | | @Aspect |
| | | @Component |
| | | @Order(200) |
| | | public class PermissionAop { |
| | | |
| | | @Pointcut(value = "@annotation(com.stylefeng.guns.core.common.annotion.Permission)") |
| | | private void cutPermission() { |
| | | |
| | | } |
| | | |
| | | @Around("cutPermission()") |
| | | public Object doPermission(ProceedingJoinPoint point) throws Throwable { |
| | | MethodSignature ms = (MethodSignature) point.getSignature(); |
| | | Method method = ms.getMethod(); |
| | | Permission permission = method.getAnnotation(Permission.class); |
| | | Object[] permissions = permission.value(); |
| | | if (permissions == null || permissions.length == 0) { |
| | | //检查全体角色 |
| | | boolean result = PermissionCheckManager.checkAll(); |
| | | if (result) { |
| | | return point.proceed(); |
| | | } else { |
| | | throw new NoPermissionException(); |
| | | } |
| | | } else { |
| | | //检查指定角色 |
| | | boolean result = PermissionCheckManager.check(permissions); |
| | | if (result) { |
| | | return point.proceed(); |
| | | } else { |
| | | throw new NoPermissionException(); |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.core.beetl; |
| | | |
| | | import com.stylefeng.guns.core.tag.DictSelectorTag; |
| | | import com.stylefeng.guns.core.util.KaptchaUtil; |
| | | import com.stylefeng.guns.core.util.ToolUtil; |
| | | import org.beetl.core.Context; |
| | | import org.beetl.core.Function; |
| | | import org.beetl.core.Tag; |
| | | import org.beetl.core.TagFactory; |
| | | import org.beetl.ext.spring.BeetlGroupUtilConfiguration; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.context.ApplicationContext; |
| | | import org.springframework.core.env.Environment; |
| | | |
| | | import java.io.UnsupportedEncodingException; |
| | | |
| | | /** |
| | | * beetl拓展配置,绑定一些工具类,方便在模板中直接调用 |
| | | * |
| | | * @author stylefeng |
| | | * @Date 2018/2/22 21:03 |
| | | */ |
| | | public class BeetlConfiguration extends BeetlGroupUtilConfiguration { |
| | | |
| | | @Autowired |
| | | Environment env; |
| | | |
| | | @Autowired |
| | | ApplicationContext applicationContext; |
| | | |
| | | @Autowired |
| | | DictSelectorTag dictSelectorTag; |
| | | |
| | | |
| | | |
| | | @Override |
| | | public void initOther() { |
| | | groupTemplate.registerFunctionPackage("shiro", new ShiroExt()); |
| | | groupTemplate.registerFunctionPackage("tool", new ToolUtil()); |
| | | groupTemplate.registerFunctionPackage("kaptcha", new KaptchaUtil()); |
| | | groupTemplate.registerTagFactory("dictSelector", new TagFactory() { |
| | | @Override |
| | | public Tag createTag() { |
| | | return dictSelectorTag; |
| | | } |
| | | }); |
| | | |
| | | groupTemplate.registerFunction("env", new Function() { |
| | | @Override |
| | | public String call(Object[] paras, Context ctx) { |
| | | String key = (String)paras[0]; |
| | | String value = env.getProperty(key); |
| | | if(value!=null) { |
| | | return getStr(value); |
| | | } |
| | | if(paras.length==2) { |
| | | return (String)paras[1]; |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | protected String getStr(String str) { |
| | | try { |
| | | return new String(str.getBytes("iso8859-1"),"UTF-8"); |
| | | } catch (UnsupportedEncodingException e) { |
| | | throw new RuntimeException(e); |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | } |
New file |
| | |
| | | /** |
| | | * Copyright (c) 2015-2017, Chill Zhuang 庄骞 (smallchill@163.com). |
| | | * <p> |
| | | * Licensed under the Apache License, Version 2.0 (the "License"); |
| | | * you may not use this file except in compliance with the License. |
| | | * You may obtain a copy of the License at |
| | | * <p> |
| | | * http://www.apache.org/licenses/LICENSE-2.0 |
| | | * <p> |
| | | * Unless required by applicable law or agreed to in writing, software |
| | | * distributed under the License is distributed on an "AS IS" BASIS, |
| | | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| | | * See the License for the specific language governing permissions and |
| | | * limitations under the License. |
| | | */ |
| | | package com.stylefeng.guns.core.beetl; |
| | | |
| | | import org.apache.shiro.SecurityUtils; |
| | | import org.apache.shiro.subject.Subject; |
| | | import org.beetl.core.GroupTemplate; |
| | | |
| | | import com.stylefeng.guns.core.shiro.ShiroUser; |
| | | |
| | | public class ShiroExt { |
| | | private static final String NAMES_DELIMETER = ","; |
| | | |
| | | /** |
| | | * 获取当前 Subject |
| | | * |
| | | * @return Subject |
| | | */ |
| | | protected static Subject getSubject() { |
| | | return SecurityUtils.getSubject(); |
| | | } |
| | | |
| | | /** |
| | | * 获取封装的 ShiroUser |
| | | * |
| | | * @return ShiroUser |
| | | */ |
| | | public ShiroUser getUser() { |
| | | if (isGuest()) { |
| | | return null; |
| | | } else { |
| | | return (ShiroUser) getSubject().getPrincipals().getPrimaryPrincipal(); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 验证当前用户是否属于该角色?,使用时与lacksRole 搭配使用 |
| | | * |
| | | * @param roleName 角色名 |
| | | * @return 属于该角色:true,否则false |
| | | */ |
| | | public boolean hasRole(String roleName) { |
| | | return getSubject() != null && roleName != null |
| | | && roleName.length() > 0 && getSubject().hasRole(roleName); |
| | | } |
| | | |
| | | /** |
| | | * 与hasRole标签逻辑相反,当用户不属于该角色时验证通过。 |
| | | * |
| | | * @param roleName 角色名 |
| | | * @return 不属于该角色:true,否则false |
| | | */ |
| | | public boolean lacksRole(String roleName) { |
| | | return !hasRole(roleName); |
| | | } |
| | | |
| | | /** |
| | | * 验证当前用户是否属于以下任意一个角色。 |
| | | * |
| | | * @param roleNames 角色列表 |
| | | * @return 属于:true,否则false |
| | | */ |
| | | public boolean hasAnyRoles(String roleNames) { |
| | | boolean hasAnyRole = false; |
| | | Subject subject = getSubject(); |
| | | if (subject != null && roleNames != null && roleNames.length() > 0) { |
| | | for (String role : roleNames.split(NAMES_DELIMETER)) { |
| | | if (subject.hasRole(role.trim())) { |
| | | hasAnyRole = true; |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | return hasAnyRole; |
| | | } |
| | | |
| | | /** |
| | | * 验证当前用户是否属于以下所有角色。 |
| | | * |
| | | * @param roleNames 角色列表 |
| | | * @return 属于:true,否则false |
| | | */ |
| | | public boolean hasAllRoles(String roleNames) { |
| | | boolean hasAllRole = true; |
| | | Subject subject = getSubject(); |
| | | if (subject != null && roleNames != null && roleNames.length() > 0) { |
| | | for (String role : roleNames.split(NAMES_DELIMETER)) { |
| | | if (!subject.hasRole(role.trim())) { |
| | | hasAllRole = false; |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | return hasAllRole; |
| | | } |
| | | |
| | | /** |
| | | * 验证当前用户是否拥有指定权限,使用时与lacksPermission 搭配使用 |
| | | * |
| | | * @param permission 权限名 |
| | | * @return 拥有权限:true,否则false |
| | | */ |
| | | public boolean hasPermission(String permission) { |
| | | return getSubject() != null && permission != null |
| | | && permission.length() > 0 |
| | | && getSubject().isPermitted(permission); |
| | | } |
| | | |
| | | /** |
| | | * 与hasPermission标签逻辑相反,当前用户没有制定权限时,验证通过。 |
| | | * |
| | | * @param permission 权限名 |
| | | * @return 拥有权限:true,否则false |
| | | */ |
| | | public boolean lacksPermission(String permission) { |
| | | return !hasPermission(permission); |
| | | } |
| | | |
| | | /** |
| | | * 已认证通过的用户。不包含已记住的用户,这是与user标签的区别所在。与notAuthenticated搭配使用 |
| | | * |
| | | * @return 通过身份验证:true,否则false |
| | | */ |
| | | public boolean authenticated() { |
| | | return getSubject() != null && getSubject().isAuthenticated(); |
| | | } |
| | | |
| | | /** |
| | | * 未认证通过用户,与authenticated标签相对应。与guest标签的区别是,该标签包含已记住用户。。 |
| | | * |
| | | * @return 没有通过身份验证:true,否则false |
| | | */ |
| | | public boolean notAuthenticated() { |
| | | return !authenticated(); |
| | | } |
| | | |
| | | /** |
| | | * 认证通过或已记住的用户。与guset搭配使用。 |
| | | * |
| | | * @return 用户:true,否则 false |
| | | */ |
| | | public boolean isUser() { |
| | | return getSubject() != null && getSubject().getPrincipal() != null; |
| | | } |
| | | |
| | | /** |
| | | * 验证当前用户是否为“访客”,即未认证(包含未记住)的用户。用user搭配使用 |
| | | * |
| | | * @return 访客:true,否则false |
| | | */ |
| | | public boolean isGuest() { |
| | | return !isUser(); |
| | | } |
| | | |
| | | /** |
| | | * 输出当前用户信息,通常为登录帐号信息。 |
| | | * |
| | | * @return 当前用户信息 |
| | | */ |
| | | public String principal() { |
| | | if (getSubject() != null) { |
| | | Object principal = getSubject().getPrincipal(); |
| | | return principal.toString(); |
| | | } |
| | | return ""; |
| | | } |
| | | |
| | | public static void main(String[] args) { |
| | | GroupTemplate gt = new GroupTemplate(); |
| | | gt.registerFunctionPackage("shiro", new ShiroExt()); |
| | | |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.core.common.annotion; |
| | | |
| | | import com.stylefeng.guns.core.common.constant.dictmap.base.AbstractDictMap; |
| | | import com.stylefeng.guns.core.common.constant.dictmap.base.SystemDict; |
| | | |
| | | import java.lang.annotation.*; |
| | | |
| | | /** |
| | | * 标记需要做业务日志的方法 |
| | | * |
| | | * @author fengshuonan |
| | | * @date 2017-03-31 12:46 |
| | | */ |
| | | @Inherited |
| | | @Retention(RetentionPolicy.RUNTIME) |
| | | @Target({ElementType.METHOD}) |
| | | public @interface BussinessLog { |
| | | |
| | | /** |
| | | * 业务的名称,例如:"修改菜单" |
| | | */ |
| | | String value() default ""; |
| | | |
| | | /** |
| | | * 被修改的实体的唯一标识,例如:菜单实体的唯一标识为"id" |
| | | */ |
| | | String key() default "id"; |
| | | |
| | | /** |
| | | * 字典(用于查找key的中文名称和字段的中文名称) |
| | | */ |
| | | Class<? extends AbstractDictMap> dict() default SystemDict.class; |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.core.common.annotion; |
| | | |
| | | import java.lang.annotation.*; |
| | | |
| | | /** |
| | | * 权限注解 用于检查权限 规定访问权限 |
| | | * |
| | | * @example @Permission({role1,role2}) |
| | | * @example @Permission |
| | | */ |
| | | @Inherited |
| | | @Retention(RetentionPolicy.RUNTIME) |
| | | @Target({ElementType.METHOD}) |
| | | public @interface Permission { |
| | | |
| | | /** |
| | | * <p>角色英文名称</p> |
| | | * <p>使用注解时加上这个值表示限制只有某个角色的才可以访问对应的资源</p> |
| | | * <p>常用在某些资源限制只有超级管理员角色才可访问</p> |
| | | */ |
| | | String[] value() default {}; |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.core.common.constant; |
| | | |
| | | /** |
| | | * 系统常量 |
| | | * |
| | | * @author fengshuonan |
| | | * @date 2017年2月12日 下午9:42:53 |
| | | */ |
| | | public interface Const { |
| | | |
| | | /** |
| | | * 系统默认的管理员密码 |
| | | */ |
| | | String DEFAULT_PWD = "111111"; |
| | | |
| | | /** |
| | | * 管理员角色的名字 |
| | | */ |
| | | String ADMIN_NAME = "administrator"; |
| | | |
| | | /** |
| | | * 管理员id |
| | | */ |
| | | Integer ADMIN_ID = 1; |
| | | |
| | | /** |
| | | * 超级管理员角色id |
| | | */ |
| | | Integer ADMIN_ROLE_ID = 1; |
| | | |
| | | /** |
| | | * 接口文档的菜单名 |
| | | */ |
| | | String API_MENU_NAME = "接口文档"; |
| | | |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.core.common.constant; |
| | | |
| | | /** |
| | | * |
| | | * 多数据源的枚举 |
| | | * |
| | | * @author fengshuonan |
| | | * @date 2017年3月5日 上午10:15:02 |
| | | */ |
| | | public interface DatasourceEnum { |
| | | |
| | | String DATA_SOURCE_GUNS = "dataSourceGuns"; //guns数据源 |
| | | |
| | | String DATA_SOURCE_BIZ = "dataSourceBiz"; //其他业务的数据源 |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.core.common.constant; |
| | | |
| | | /** |
| | | * jwt相关配置 |
| | | * |
| | | * @author fengshuonan |
| | | * @date 2017-08-23 9:23 |
| | | */ |
| | | public interface JwtConstants { |
| | | |
| | | String AUTH_HEADER = "Authorization"; |
| | | |
| | | String SECRET = "defaultSecret"; |
| | | |
| | | Long EXPIRATION = 604800L; |
| | | |
| | | String AUTH_PATH = "/gunsApi/auth"; |
| | | |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.core.common.constant.cache; |
| | | |
| | | /** |
| | | * 所有缓存名称的集合 |
| | | * |
| | | * @author fengshuonan |
| | | * @date 2017-04-24 21:56 |
| | | */ |
| | | public interface Cache { |
| | | |
| | | /** |
| | | * 常量缓存 |
| | | */ |
| | | String CONSTANT = "CONSTANT"; |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.core.common.constant.cache; |
| | | |
| | | /** |
| | | * 缓存标识前缀集合,常用在ConstantFactory类中 |
| | | * |
| | | * @author fengshuonan |
| | | * @date 2017-04-25 9:37 |
| | | */ |
| | | public interface CacheKey { |
| | | |
| | | /** |
| | | * 角色名称(多个) |
| | | */ |
| | | String ROLES_NAME = "roles_name_"; |
| | | |
| | | /** |
| | | * 角色名称(单个) |
| | | */ |
| | | String SINGLE_ROLE_NAME = "single_role_name_"; |
| | | |
| | | /** |
| | | * 角色英文名称 |
| | | */ |
| | | String SINGLE_ROLE_TIP = "single_role_tip_"; |
| | | |
| | | /** |
| | | * 部门名称 |
| | | */ |
| | | String DEPT_NAME = "dept_name_"; |
| | | |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.core.common.constant.dictmap; |
| | | |
| | | import com.stylefeng.guns.core.common.constant.dictmap.base.AbstractDictMap; |
| | | |
| | | /** |
| | | * 用于删除业务的字典 |
| | | * |
| | | * @author fengshuonan |
| | | * @date 2017-05-06 15:01 |
| | | */ |
| | | public class DeleteDict extends AbstractDictMap { |
| | | |
| | | @Override |
| | | public void init() { |
| | | put("roleId","角色名称"); |
| | | put("deptId", "部门名称"); |
| | | put("menuId", "菜单名称"); |
| | | put("dictId", "字典名称"); |
| | | put("noticeId", "标题"); |
| | | } |
| | | |
| | | @Override |
| | | protected void initBeWrapped() { |
| | | putFieldWrapperMethodName("roleId","getCacheObject"); |
| | | putFieldWrapperMethodName("deptId","getCacheObject"); |
| | | putFieldWrapperMethodName("menuId","getCacheObject"); |
| | | putFieldWrapperMethodName("dictId","getCacheObject"); |
| | | putFieldWrapperMethodName("noticeId","getCacheObject"); |
| | | |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.core.common.constant.dictmap; |
| | | |
| | | import com.stylefeng.guns.core.common.constant.dictmap.base.AbstractDictMap; |
| | | |
| | | /** |
| | | * 部门的映射 |
| | | * |
| | | * @author fengshuonan |
| | | * @date 2017-05-06 15:01 |
| | | */ |
| | | public class DeptDict extends AbstractDictMap { |
| | | |
| | | @Override |
| | | public void init() { |
| | | put("deptId", "部门名称"); |
| | | put("num", "部门排序"); |
| | | put("pid", "上级名称"); |
| | | put("simplename", "部门简称"); |
| | | put("fullname", "部门全称"); |
| | | put("tips", "备注"); |
| | | } |
| | | |
| | | @Override |
| | | protected void initBeWrapped() { |
| | | putFieldWrapperMethodName("deptId", "getDeptName"); |
| | | putFieldWrapperMethodName("pid", "getDeptName"); |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.core.common.constant.dictmap; |
| | | |
| | | import com.stylefeng.guns.core.common.constant.dictmap.base.AbstractDictMap; |
| | | |
| | | /** |
| | | * 字典map |
| | | * |
| | | * @author fengshuonan |
| | | * @date 2017-05-06 15:43 |
| | | */ |
| | | public class DictMap extends AbstractDictMap { |
| | | |
| | | @Override |
| | | public void init() { |
| | | put("dictId","字典名称"); |
| | | put("dictName","字典名称"); |
| | | put("dictValues","字典内容"); |
| | | } |
| | | |
| | | @Override |
| | | protected void initBeWrapped() { |
| | | |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.core.common.constant.dictmap; |
| | | |
| | | import com.stylefeng.guns.core.common.constant.dictmap.base.AbstractDictMap; |
| | | |
| | | /** |
| | | * 日志的字典 |
| | | * |
| | | * @author fengshuonan |
| | | * @date 2017-05-06 15:01 |
| | | */ |
| | | public class LogDict extends AbstractDictMap { |
| | | |
| | | @Override |
| | | public void init() { |
| | | put("tips","备注"); |
| | | } |
| | | |
| | | @Override |
| | | protected void initBeWrapped() { |
| | | |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.core.common.constant.dictmap; |
| | | |
| | | import com.stylefeng.guns.core.common.constant.dictmap.base.AbstractDictMap; |
| | | |
| | | /** |
| | | * 菜单的字典 |
| | | * |
| | | * @author fengshuonan |
| | | * @date 2017-05-06 15:01 |
| | | */ |
| | | public class MenuDict extends AbstractDictMap { |
| | | |
| | | @Override |
| | | public void init() { |
| | | put("menuId","菜单id"); |
| | | put("id","菜单id"); |
| | | put("code","菜单编号"); |
| | | put("pcode","菜单父编号"); |
| | | put("name","菜单名称"); |
| | | put("icon","菜单图标"); |
| | | put("url","url地址"); |
| | | put("num","菜单排序号"); |
| | | put("levels","菜单层级"); |
| | | put("tips","备注"); |
| | | put("status","菜单状态"); |
| | | put("isopen","是否打开"); |
| | | put("",""); |
| | | } |
| | | |
| | | @Override |
| | | protected void initBeWrapped() { |
| | | |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.core.common.constant.dictmap; |
| | | |
| | | import com.stylefeng.guns.core.common.constant.dictmap.base.AbstractDictMap; |
| | | |
| | | /** |
| | | * 通知的映射 |
| | | * |
| | | * @author fengshuonan |
| | | * @date 2017-05-06 15:01 |
| | | */ |
| | | public class NoticeMap extends AbstractDictMap { |
| | | |
| | | @Override |
| | | public void init() { |
| | | put("title", "标题"); |
| | | put("content", "内容"); |
| | | } |
| | | |
| | | @Override |
| | | protected void initBeWrapped() { |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.core.common.constant.dictmap; |
| | | |
| | | import com.stylefeng.guns.core.common.constant.dictmap.base.AbstractDictMap; |
| | | |
| | | /** |
| | | * 角色的字典 |
| | | * |
| | | * @author fengshuonan |
| | | * @date 2017-05-06 15:01 |
| | | */ |
| | | public class RoleDict extends AbstractDictMap { |
| | | |
| | | @Override |
| | | public void init() { |
| | | put("roleId","角色名称"); |
| | | put("num","角色排序"); |
| | | put("pid","角色的父级"); |
| | | put("name","角色名称"); |
| | | put("deptid","部门名称"); |
| | | put("tips","备注"); |
| | | put("ids","资源名称"); |
| | | } |
| | | |
| | | @Override |
| | | protected void initBeWrapped() { |
| | | putFieldWrapperMethodName("pid","getSingleRoleName"); |
| | | putFieldWrapperMethodName("deptid","getDeptName"); |
| | | putFieldWrapperMethodName("roleId","getSingleRoleName"); |
| | | putFieldWrapperMethodName("ids","getMenuNames"); |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.core.common.constant.dictmap; |
| | | |
| | | import com.stylefeng.guns.core.common.constant.dictmap.base.AbstractDictMap; |
| | | |
| | | /** |
| | | * 用户的字典 |
| | | * |
| | | * @author fengshuonan |
| | | * @date 2017-05-06 15:01 |
| | | */ |
| | | public class UserDict extends AbstractDictMap { |
| | | |
| | | @Override |
| | | public void init() { |
| | | put("userId","账号"); |
| | | put("avatar","头像"); |
| | | put("account","账号"); |
| | | put("name","名字"); |
| | | put("birthday","生日"); |
| | | put("sex","性别"); |
| | | put("email","电子邮件"); |
| | | put("phone","电话"); |
| | | put("roleid","角色名称"); |
| | | put("deptid","部门名称"); |
| | | put("roleIds","角色名称集合"); |
| | | } |
| | | |
| | | @Override |
| | | protected void initBeWrapped() { |
| | | putFieldWrapperMethodName("sex","getSexName"); |
| | | putFieldWrapperMethodName("deptid","getDeptName"); |
| | | putFieldWrapperMethodName("roleid","getSingleRoleName"); |
| | | putFieldWrapperMethodName("userId","getUserAccountById"); |
| | | putFieldWrapperMethodName("roleIds","getRoleName"); |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.core.common.constant.dictmap.base; |
| | | |
| | | import java.util.HashMap; |
| | | |
| | | /** |
| | | * 字典映射抽象类 |
| | | * |
| | | * @author fengshuonan |
| | | * @date 2017-05-06 14:58 |
| | | */ |
| | | public abstract class AbstractDictMap { |
| | | |
| | | protected HashMap<String, String> dictory = new HashMap<>(); |
| | | protected HashMap<String, String> fieldWarpperDictory = new HashMap<>(); |
| | | |
| | | public AbstractDictMap(){ |
| | | put("id","主键id"); |
| | | init(); |
| | | initBeWrapped(); |
| | | } |
| | | |
| | | /** |
| | | * 初始化字段英文名称和中文名称对应的字典 |
| | | * |
| | | * @author stylefeng |
| | | * @Date 2017/5/9 19:39 |
| | | */ |
| | | public abstract void init(); |
| | | |
| | | /** |
| | | * 初始化需要被包装的字段(例如:性别为1:男,2:女,需要被包装为汉字) |
| | | * |
| | | * @author stylefeng |
| | | * @Date 2017/5/9 19:35 |
| | | */ |
| | | protected abstract void initBeWrapped(); |
| | | |
| | | public String get(String key) { |
| | | return this.dictory.get(key); |
| | | } |
| | | |
| | | public void put(String key, String value) { |
| | | this.dictory.put(key, value); |
| | | } |
| | | |
| | | public String getFieldWarpperMethodName(String key){ |
| | | return this.fieldWarpperDictory.get(key); |
| | | } |
| | | |
| | | public void putFieldWrapperMethodName(String key,String methodName){ |
| | | this.fieldWarpperDictory.put(key,methodName); |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.core.common.constant.dictmap.base; |
| | | |
| | | /** |
| | | * 系统相关的字典 |
| | | * |
| | | * @author fengshuonan |
| | | * @date 2017-05-06 15:48 |
| | | */ |
| | | public class SystemDict extends AbstractDictMap { |
| | | |
| | | @Override |
| | | public void init() { |
| | | |
| | | } |
| | | |
| | | @Override |
| | | protected void initBeWrapped() { |
| | | |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.core.common.constant.dictmap.factory; |
| | | |
| | | import com.stylefeng.guns.core.common.constant.factory.ConstantFactory; |
| | | import com.stylefeng.guns.core.common.constant.factory.IConstantFactory; |
| | | import com.stylefeng.guns.core.common.exception.BizExceptionEnum; |
| | | import com.stylefeng.guns.core.exception.GunsException; |
| | | |
| | | import java.lang.reflect.Method; |
| | | |
| | | /** |
| | | * 字典字段的包装器(从ConstantFactory中获取包装值) |
| | | * |
| | | * @author fengshuonan |
| | | * @date 2017-05-06 15:12 |
| | | */ |
| | | public class DictFieldWarpperFactory { |
| | | |
| | | public static Object createFieldWarpper(Object parameter, String methodName) { |
| | | IConstantFactory constantFactory = ConstantFactory.me(); |
| | | try { |
| | | Method method = IConstantFactory.class.getMethod(methodName, parameter.getClass()); |
| | | return method.invoke(constantFactory, parameter); |
| | | } catch (Exception e) { |
| | | try { |
| | | Method method = IConstantFactory.class.getMethod(methodName, Integer.class); |
| | | return method.invoke(constantFactory, Integer.parseInt(parameter.toString())); |
| | | } catch (Exception e1) { |
| | | throw new GunsException(BizExceptionEnum.ERROR_WRAPPER_FIELD); |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.core.common.constant.factory; |
| | | |
| | | import com.baomidou.mybatisplus.mapper.EntityWrapper; |
| | | import com.baomidou.mybatisplus.mapper.Wrapper; |
| | | import com.stylefeng.guns.core.common.constant.cache.Cache; |
| | | import com.stylefeng.guns.core.common.constant.cache.CacheKey; |
| | | import com.stylefeng.guns.core.common.constant.state.ManagerStatus; |
| | | import com.stylefeng.guns.core.common.constant.state.MenuStatus; |
| | | import com.stylefeng.guns.modular.system.dao.*; |
| | | import com.stylefeng.guns.modular.system.model.*; |
| | | import com.stylefeng.guns.core.log.LogObjectHolder; |
| | | import com.stylefeng.guns.core.support.StrKit; |
| | | import com.stylefeng.guns.core.util.Convert; |
| | | import com.stylefeng.guns.core.util.SpringContextHolder; |
| | | import com.stylefeng.guns.core.util.ToolUtil; |
| | | import org.springframework.cache.annotation.Cacheable; |
| | | import org.springframework.context.annotation.DependsOn; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * 常量的生产工厂 |
| | | * |
| | | * @author fengshuonan |
| | | * @date 2017年2月13日 下午10:55:21 |
| | | */ |
| | | @Component |
| | | @DependsOn("springContextHolder") |
| | | public class ConstantFactory implements IConstantFactory { |
| | | |
| | | private RoleMapper roleMapper = SpringContextHolder.getBean(RoleMapper.class); |
| | | private DeptMapper deptMapper = SpringContextHolder.getBean(DeptMapper.class); |
| | | private DictMapper dictMapper = SpringContextHolder.getBean(DictMapper.class); |
| | | private UserMapper userMapper = SpringContextHolder.getBean(UserMapper.class); |
| | | private MenuMapper menuMapper = SpringContextHolder.getBean(MenuMapper.class); |
| | | private NoticeMapper noticeMapper = SpringContextHolder.getBean(NoticeMapper.class); |
| | | |
| | | public static IConstantFactory me() { |
| | | return SpringContextHolder.getBean("constantFactory"); |
| | | } |
| | | |
| | | /** |
| | | * 根据用户id获取用户名称 |
| | | * |
| | | * @author stylefeng |
| | | * @Date 2017/5/9 23:41 |
| | | */ |
| | | @Override |
| | | public String getUserNameById(Integer userId) { |
| | | User user = userMapper.selectById(userId); |
| | | if (user != null) { |
| | | return user.getName(); |
| | | } else { |
| | | return "--"; |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 根据用户id获取用户账号 |
| | | * |
| | | * @author stylefeng |
| | | * @date 2017年5月16日21:55:371 |
| | | */ |
| | | @Override |
| | | public String getUserAccountById(Integer userId) { |
| | | User user = userMapper.selectById(userId); |
| | | if (user != null) { |
| | | return user.getAccount(); |
| | | } else { |
| | | return "--"; |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 通过角色ids获取角色名称 |
| | | */ |
| | | @Override |
| | | @Cacheable(value = Cache.CONSTANT, key = "'" + CacheKey.ROLES_NAME + "'+#roleIds") |
| | | public String getRoleName(String roleIds) { |
| | | Integer[] roles = Convert.toIntArray(roleIds); |
| | | StringBuilder sb = new StringBuilder(); |
| | | for (int role : roles) { |
| | | Role roleObj = roleMapper.selectById(role); |
| | | if (ToolUtil.isNotEmpty(roleObj) && ToolUtil.isNotEmpty(roleObj.getName())) { |
| | | sb.append(roleObj.getName()).append(","); |
| | | } |
| | | } |
| | | return StrKit.removeSuffix(sb.toString(), ","); |
| | | } |
| | | |
| | | /** |
| | | * 通过角色id获取角色名称 |
| | | */ |
| | | @Override |
| | | @Cacheable(value = Cache.CONSTANT, key = "'" + CacheKey.SINGLE_ROLE_NAME + "'+#roleId") |
| | | public String getSingleRoleName(Integer roleId) { |
| | | if (0 == roleId) { |
| | | return "--"; |
| | | } |
| | | Role roleObj = roleMapper.selectById(roleId); |
| | | if (ToolUtil.isNotEmpty(roleObj) && ToolUtil.isNotEmpty(roleObj.getName())) { |
| | | return roleObj.getName(); |
| | | } |
| | | return ""; |
| | | } |
| | | |
| | | /** |
| | | * 通过角色id获取角色英文名称 |
| | | */ |
| | | @Override |
| | | @Cacheable(value = Cache.CONSTANT, key = "'" + CacheKey.SINGLE_ROLE_TIP + "'+#roleId") |
| | | public String getSingleRoleTip(Integer roleId) { |
| | | if (0 == roleId) { |
| | | return "--"; |
| | | } |
| | | Role roleObj = roleMapper.selectById(roleId); |
| | | if (ToolUtil.isNotEmpty(roleObj) && ToolUtil.isNotEmpty(roleObj.getName())) { |
| | | return roleObj.getTips(); |
| | | } |
| | | return ""; |
| | | } |
| | | |
| | | /** |
| | | * 获取部门名称 |
| | | */ |
| | | @Override |
| | | @Cacheable(value = Cache.CONSTANT, key = "'" + CacheKey.DEPT_NAME + "'+#deptId") |
| | | public String getDeptName(Integer deptId) { |
| | | Dept dept = deptMapper.selectById(deptId); |
| | | if (ToolUtil.isNotEmpty(dept) && ToolUtil.isNotEmpty(dept.getFullname())) { |
| | | return dept.getFullname(); |
| | | } |
| | | return ""; |
| | | } |
| | | |
| | | /** |
| | | * 获取菜单的名称们(多个) |
| | | */ |
| | | @Override |
| | | public String getMenuNames(String menuIds) { |
| | | Integer[] menus = Convert.toIntArray(menuIds); |
| | | StringBuilder sb = new StringBuilder(); |
| | | for (int menu : menus) { |
| | | Menu menuObj = menuMapper.selectById(menu); |
| | | if (ToolUtil.isNotEmpty(menuObj) && ToolUtil.isNotEmpty(menuObj.getName())) { |
| | | sb.append(menuObj.getName()).append(","); |
| | | } |
| | | } |
| | | return StrKit.removeSuffix(sb.toString(), ","); |
| | | } |
| | | |
| | | /** |
| | | * 获取菜单名称 |
| | | */ |
| | | @Override |
| | | public String getMenuName(Long menuId) { |
| | | if (ToolUtil.isEmpty(menuId)) { |
| | | return ""; |
| | | } else { |
| | | Menu menu = menuMapper.selectById(menuId); |
| | | if (menu == null) { |
| | | return ""; |
| | | } else { |
| | | return menu.getName(); |
| | | } |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 获取菜单名称通过编号 |
| | | */ |
| | | @Override |
| | | public String getMenuNameByCode(String code) { |
| | | if (ToolUtil.isEmpty(code)) { |
| | | return ""; |
| | | } else { |
| | | Menu param = new Menu(); |
| | | param.setCode(code); |
| | | Menu menu = menuMapper.selectOne(param); |
| | | if (menu == null) { |
| | | return ""; |
| | | } else { |
| | | return menu.getName(); |
| | | } |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 获取字典名称 |
| | | */ |
| | | @Override |
| | | public String getDictName(Integer dictId) { |
| | | if (ToolUtil.isEmpty(dictId)) { |
| | | return ""; |
| | | } else { |
| | | Dict dict = dictMapper.selectById(dictId); |
| | | if (dict == null) { |
| | | return ""; |
| | | } else { |
| | | return dict.getName(); |
| | | } |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 获取通知标题 |
| | | */ |
| | | @Override |
| | | public String getNoticeTitle(Integer dictId) { |
| | | if (ToolUtil.isEmpty(dictId)) { |
| | | return ""; |
| | | } else { |
| | | Notice notice = noticeMapper.selectById(dictId); |
| | | if (notice == null) { |
| | | return ""; |
| | | } else { |
| | | return notice.getTitle(); |
| | | } |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 根据字典名称和字典中的值获取对应的名称 |
| | | */ |
| | | @Override |
| | | public String getDictsByName(String name, Integer val) { |
| | | Dict temp = new Dict(); |
| | | temp.setName(name); |
| | | Dict dict = dictMapper.selectOne(temp); |
| | | if (dict == null) { |
| | | return ""; |
| | | } else { |
| | | Wrapper<Dict> wrapper = new EntityWrapper<>(); |
| | | wrapper = wrapper.eq("pid", dict.getId()); |
| | | List<Dict> dicts = dictMapper.selectList(wrapper); |
| | | for (Dict item : dicts) { |
| | | if (item.getNum() != null && item.getNum().equals(val)) { |
| | | return item.getName(); |
| | | } |
| | | } |
| | | return ""; |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 获取性别名称 |
| | | */ |
| | | @Override |
| | | public String getSexName(Integer sex) { |
| | | return getDictsByName("性别", sex); |
| | | } |
| | | |
| | | /** |
| | | * 获取用户登录状态 |
| | | */ |
| | | @Override |
| | | public String getStatusName(Integer status) { |
| | | return ManagerStatus.valueOf(status); |
| | | } |
| | | |
| | | /** |
| | | * 获取菜单状态 |
| | | */ |
| | | @Override |
| | | public String getMenuStatusName(Integer status) { |
| | | return MenuStatus.valueOf(status); |
| | | } |
| | | |
| | | /** |
| | | * 查询字典 |
| | | */ |
| | | @Override |
| | | public List<Dict> findInDict(Integer id) { |
| | | if (ToolUtil.isEmpty(id)) { |
| | | return null; |
| | | } else { |
| | | EntityWrapper<Dict> wrapper = new EntityWrapper<>(); |
| | | List<Dict> dicts = dictMapper.selectList(wrapper.eq("pid", id)); |
| | | if (dicts == null || dicts.size() == 0) { |
| | | return null; |
| | | } else { |
| | | return dicts; |
| | | } |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 获取被缓存的对象(用户删除业务) |
| | | */ |
| | | @Override |
| | | public String getCacheObject(String para) { |
| | | return LogObjectHolder.me().get().toString(); |
| | | } |
| | | |
| | | /** |
| | | * 获取子部门id |
| | | */ |
| | | @Override |
| | | public List<Integer> getSubDeptId(Integer deptid) { |
| | | Wrapper<Dept> wrapper = new EntityWrapper<>(); |
| | | wrapper = wrapper.like("pids", "%[" + deptid + "]%"); |
| | | List<Dept> depts = this.deptMapper.selectList(wrapper); |
| | | |
| | | ArrayList<Integer> deptids = new ArrayList<>(); |
| | | |
| | | if(depts != null && depts.size() > 0){ |
| | | for (Dept dept : depts) { |
| | | deptids.add(dept.getId()); |
| | | } |
| | | } |
| | | |
| | | return deptids; |
| | | } |
| | | |
| | | /** |
| | | * 获取所有父部门id |
| | | */ |
| | | @Override |
| | | public List<Integer> getParentDeptIds(Integer deptid) { |
| | | Dept dept = deptMapper.selectById(deptid); |
| | | String pids = dept.getPids(); |
| | | String[] split = pids.split(","); |
| | | ArrayList<Integer> parentDeptIds = new ArrayList<>(); |
| | | for (String s : split) { |
| | | parentDeptIds.add(Integer.valueOf(StrKit.removeSuffix(StrKit.removePrefix(s, "["), "]"))); |
| | | } |
| | | return parentDeptIds; |
| | | } |
| | | |
| | | |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.core.common.constant.factory; |
| | | |
| | | import com.stylefeng.guns.modular.system.model.Dict; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * 常量生产工厂的接口 |
| | | * |
| | | * @author fengshuonan |
| | | * @date 2017-06-14 21:12 |
| | | */ |
| | | public interface IConstantFactory { |
| | | |
| | | /** |
| | | * 根据用户id获取用户名称 |
| | | * |
| | | * @author stylefeng |
| | | * @Date 2017/5/9 23:41 |
| | | */ |
| | | String getUserNameById(Integer userId); |
| | | |
| | | /** |
| | | * 根据用户id获取用户账号 |
| | | * |
| | | * @author stylefeng |
| | | * @date 2017年5月16日21:55:371 |
| | | */ |
| | | String getUserAccountById(Integer userId); |
| | | |
| | | /** |
| | | * 通过角色ids获取角色名称 |
| | | */ |
| | | String getRoleName(String roleIds); |
| | | |
| | | /** |
| | | * 通过角色id获取角色名称 |
| | | */ |
| | | String getSingleRoleName(Integer roleId); |
| | | |
| | | /** |
| | | * 通过角色id获取角色英文名称 |
| | | */ |
| | | String getSingleRoleTip(Integer roleId); |
| | | |
| | | /** |
| | | * 获取部门名称 |
| | | */ |
| | | String getDeptName(Integer deptId); |
| | | |
| | | /** |
| | | * 获取菜单的名称们(多个) |
| | | */ |
| | | String getMenuNames(String menuIds); |
| | | |
| | | /** |
| | | * 获取菜单名称 |
| | | */ |
| | | String getMenuName(Long menuId); |
| | | |
| | | /** |
| | | * 获取菜单名称通过编号 |
| | | */ |
| | | String getMenuNameByCode(String code); |
| | | |
| | | /** |
| | | * 获取字典名称 |
| | | */ |
| | | String getDictName(Integer dictId); |
| | | |
| | | /** |
| | | * 获取通知标题 |
| | | */ |
| | | String getNoticeTitle(Integer dictId); |
| | | |
| | | /** |
| | | * 根据字典名称和字典中的值获取对应的名称 |
| | | */ |
| | | String getDictsByName(String name, Integer val); |
| | | |
| | | /** |
| | | * 获取性别名称 |
| | | */ |
| | | String getSexName(Integer sex); |
| | | |
| | | /** |
| | | * 获取用户登录状态 |
| | | */ |
| | | String getStatusName(Integer status); |
| | | |
| | | /** |
| | | * 获取菜单状态 |
| | | */ |
| | | String getMenuStatusName(Integer status); |
| | | |
| | | /** |
| | | * 查询字典 |
| | | */ |
| | | List<Dict> findInDict(Integer id); |
| | | |
| | | /** |
| | | * 获取被缓存的对象(用户删除业务) |
| | | */ |
| | | String getCacheObject(String para); |
| | | |
| | | /** |
| | | * 获取子部门id |
| | | */ |
| | | List<Integer> getSubDeptId(Integer deptid); |
| | | |
| | | /** |
| | | * 获取所有父部门id |
| | | */ |
| | | List<Integer> getParentDeptIds(Integer deptid); |
| | | |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.core.common.constant.factory; |
| | | |
| | | import com.stylefeng.guns.core.support.StrKit; |
| | | import com.stylefeng.guns.core.util.ToolUtil; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * 组合字符串生产者 |
| | | * |
| | | * @author fengshuonan |
| | | * @date 2017-04-27 16:42 |
| | | */ |
| | | public class MutiStrFactory { |
| | | |
| | | /** |
| | | * 每个条目之间的分隔符 |
| | | */ |
| | | public static final String ITEM_SPLIT = ";"; |
| | | |
| | | /** |
| | | * 属性之间的分隔符 |
| | | */ |
| | | public static final String ATTR_SPLIT = ":"; |
| | | |
| | | /** |
| | | * 拼接字符串的id |
| | | */ |
| | | public static final String MUTI_STR_ID = "ID"; |
| | | |
| | | /** |
| | | * 拼接字符串的CODE |
| | | */ |
| | | public static final String MUTI_STR_CODE = "CODE"; |
| | | |
| | | /** |
| | | * 拼接字符串的NAME |
| | | */ |
| | | public static final String MUTI_STR_NAME = "NAME"; |
| | | |
| | | /** |
| | | * 拼接字符串的NUM |
| | | */ |
| | | public static final String MUTI_STR_NUM = "NUM"; |
| | | |
| | | /** |
| | | * 解析一个组合字符串(例如: "1:启用;2:禁用;3:冻结" 这样的字符串) |
| | | * |
| | | * @author fengshuonan |
| | | * @Date 2017/4/27 16:44 |
| | | */ |
| | | public static List<Map<String,String>> parseKeyValue(String mutiString){ |
| | | if(ToolUtil.isEmpty(mutiString)){ |
| | | return new ArrayList<>(); |
| | | }else{ |
| | | ArrayList<Map<String,String>> results = new ArrayList<>(); |
| | | String[] items = StrKit.split(StrKit.removeSuffix(mutiString, ITEM_SPLIT), ITEM_SPLIT); |
| | | for (String item : items) { |
| | | String[] attrs = item.split(ATTR_SPLIT); |
| | | HashMap<String, String> itemMap = new HashMap<>(); |
| | | itemMap.put(MUTI_STR_CODE,attrs[0]); |
| | | itemMap.put(MUTI_STR_NAME,attrs[1]); |
| | | itemMap.put(MUTI_STR_NUM,attrs[2]); |
| | | results.add(itemMap); |
| | | } |
| | | return results; |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 解析id:key:value这样类型的字符串 |
| | | * |
| | | * @author fengshuonan |
| | | * @Date 2017/4/28 11:06 |
| | | */ |
| | | public static List<Map<String,String>> parseIdKeyValue(String mutiString){ |
| | | if(ToolUtil.isEmpty(mutiString)){ |
| | | return new ArrayList<>(); |
| | | }else{ |
| | | ArrayList<Map<String,String>> results = new ArrayList<>(); |
| | | String[] items = StrKit.split(StrKit.removeSuffix(mutiString, ITEM_SPLIT), ITEM_SPLIT); |
| | | for (String item : items) { |
| | | String[] attrs = item.split(ATTR_SPLIT); |
| | | HashMap<String, String> itemMap = new HashMap<>(); |
| | | itemMap.put(MUTI_STR_CODE,attrs[0]); |
| | | itemMap.put(MUTI_STR_NAME,attrs[1]); |
| | | itemMap.put(MUTI_STR_NUM,attrs[2]); |
| | | results.add(itemMap); |
| | | } |
| | | return results; |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.core.common.constant.factory; |
| | | |
| | | import com.baomidou.mybatisplus.plugins.Page; |
| | | import com.stylefeng.guns.core.common.constant.state.Order; |
| | | import com.stylefeng.guns.core.support.HttpKit; |
| | | import com.stylefeng.guns.core.util.ToolUtil; |
| | | |
| | | import javax.servlet.http.HttpServletRequest; |
| | | |
| | | /** |
| | | * BootStrap Table默认的分页参数创建 |
| | | * |
| | | * @author fengshuonan |
| | | * @date 2017-04-05 22:25 |
| | | */ |
| | | public class PageFactory<T> { |
| | | |
| | | public Page<T> defaultPage() { |
| | | HttpServletRequest request = HttpKit.getRequest(); |
| | | int limit = Integer.valueOf(request.getParameter("limit")); //每页多少条数据 |
| | | int offset = Integer.valueOf(request.getParameter("offset")); //每页的偏移量(本页当前有多少条) |
| | | String sort = request.getParameter("sort"); //排序字段名称 |
| | | String order = request.getParameter("order"); //asc或desc(升序或降序) |
| | | if (ToolUtil.isEmpty(sort)) { |
| | | Page<T> page = new Page<>((offset / limit + 1), limit); |
| | | page.setOpenSort(false); |
| | | return page; |
| | | } else { |
| | | Page<T> page = new Page<>((offset / limit + 1), limit, sort); |
| | | if (Order.ASC.getDes().equals(order)) { |
| | | page.setAsc(true); |
| | | } else { |
| | | page.setAsc(false); |
| | | } |
| | | return page; |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.core.common.constant.state; |
| | | |
| | | /** |
| | | * 业务日志类型 |
| | | * |
| | | * @author fengshuonan |
| | | * @Date 2017年1月22日 下午12:14:59 |
| | | */ |
| | | public enum BizLogType { |
| | | |
| | | ALL(0, null),//全部日志 |
| | | BUSSINESS(1, "业务日志"), |
| | | EXCEPTION(2, "异常日志"); |
| | | |
| | | Integer val; |
| | | String message; |
| | | |
| | | BizLogType(Integer val, String message) { |
| | | this.val = val; |
| | | this.message = message; |
| | | } |
| | | |
| | | public String getMessage() { |
| | | return message; |
| | | } |
| | | |
| | | public void setMessage(String message) { |
| | | this.message = message; |
| | | } |
| | | |
| | | public Integer getVal() { |
| | | return val; |
| | | } |
| | | |
| | | public void setVal(Integer val) { |
| | | this.val = val; |
| | | } |
| | | |
| | | public static String valueOf(Integer value) { |
| | | if (value == null) { |
| | | return null; |
| | | } else { |
| | | for (BizLogType bizLogType : BizLogType.values()) { |
| | | if (bizLogType.getVal().equals(value)) { |
| | | return bizLogType.getMessage(); |
| | | } |
| | | } |
| | | return null; |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.core.common.constant.state; |
| | | |
| | | /** |
| | | * 是否是菜单的枚举 |
| | | * |
| | | * @author fengshuonan |
| | | * @date 2017年6月1日22:50:11 |
| | | */ |
| | | public enum ExpenseState { |
| | | |
| | | SUBMITING(1, "待提交"), |
| | | CHECKING(2, "待审核"), |
| | | PASS(3, "审核通过"), |
| | | UN_PASS(4, "未通过"); |
| | | |
| | | int code; |
| | | String message; |
| | | |
| | | ExpenseState(int code, String message) { |
| | | this.code = code; |
| | | this.message = message; |
| | | } |
| | | |
| | | public int getCode() { |
| | | return code; |
| | | } |
| | | |
| | | public void setCode(int code) { |
| | | this.code = code; |
| | | } |
| | | |
| | | public String getMessage() { |
| | | return message; |
| | | } |
| | | |
| | | public void setMessage(String message) { |
| | | this.message = message; |
| | | } |
| | | |
| | | public static String valueOf(Integer status) { |
| | | if (status == null) { |
| | | return ""; |
| | | } else { |
| | | for (ExpenseState s : ExpenseState.values()) { |
| | | if (s.getCode() == status) { |
| | | return s.getMessage(); |
| | | } |
| | | } |
| | | return ""; |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.core.common.constant.state; |
| | | |
| | | /** |
| | | * 业务是否成功的日志记录 |
| | | * |
| | | * @author fengshuonan |
| | | * @Date 2017年1月22日 下午12:14:59 |
| | | */ |
| | | public enum LogSucceed { |
| | | |
| | | SUCCESS("成功"), |
| | | FAIL("失败"); |
| | | |
| | | String message; |
| | | |
| | | LogSucceed(String message) { |
| | | this.message = message; |
| | | } |
| | | |
| | | public String getMessage() { |
| | | return message; |
| | | } |
| | | |
| | | public void setMessage(String message) { |
| | | this.message = message; |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.core.common.constant.state; |
| | | |
| | | /** |
| | | * 日志类型 |
| | | * |
| | | * @author fengshuonan |
| | | * @Date 2017年1月22日 下午12:14:59 |
| | | */ |
| | | public enum LogType { |
| | | |
| | | LOGIN("登录日志"), |
| | | LOGIN_FAIL("登录失败日志"), |
| | | EXIT("退出日志"), |
| | | EXCEPTION("异常日志"), |
| | | BUSSINESS("业务日志"); |
| | | |
| | | String message; |
| | | |
| | | LogType(String message) { |
| | | this.message = message; |
| | | } |
| | | |
| | | public String getMessage() { |
| | | return message; |
| | | } |
| | | |
| | | public void setMessage(String message) { |
| | | this.message = message; |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.core.common.constant.state; |
| | | |
| | | /** |
| | | * 管理员的状态 |
| | | * |
| | | * @author fengshuonan |
| | | * @Date 2017年1月10日 下午9:54:13 |
| | | */ |
| | | public enum ManagerStatus { |
| | | |
| | | OK(1, "启用"), FREEZED(2, "冻结"), DELETED(3, "被删除"); |
| | | |
| | | int code; |
| | | String message; |
| | | |
| | | ManagerStatus(int code, String message) { |
| | | this.code = code; |
| | | this.message = message; |
| | | } |
| | | |
| | | public int getCode() { |
| | | return code; |
| | | } |
| | | |
| | | public void setCode(int code) { |
| | | this.code = code; |
| | | } |
| | | |
| | | public String getMessage() { |
| | | return message; |
| | | } |
| | | |
| | | public void setMessage(String message) { |
| | | this.message = message; |
| | | } |
| | | |
| | | public static String valueOf(Integer value) { |
| | | if (value == null) { |
| | | return ""; |
| | | } else { |
| | | for (ManagerStatus ms : ManagerStatus.values()) { |
| | | if (ms.getCode() == value) { |
| | | return ms.getMessage(); |
| | | } |
| | | } |
| | | return ""; |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.core.common.constant.state; |
| | | |
| | | /** |
| | | * 菜单是否打开的状态 |
| | | * |
| | | * @author fengshuonan |
| | | * @Date 2017年4月8日10:12:15 |
| | | */ |
| | | public enum MenuOpenStatus { |
| | | |
| | | OPEN(1, "打开"), |
| | | CLOSE(0, "关闭"); |
| | | |
| | | int code; |
| | | String message; |
| | | |
| | | MenuOpenStatus(int code, String message) { |
| | | this.code = code; |
| | | this.message = message; |
| | | } |
| | | |
| | | public int getCode() { |
| | | return code; |
| | | } |
| | | |
| | | public void setCode(int code) { |
| | | this.code = code; |
| | | } |
| | | |
| | | public String getMessage() { |
| | | return message; |
| | | } |
| | | |
| | | public void setMessage(String message) { |
| | | this.message = message; |
| | | } |
| | | |
| | | public static String valueOf(Integer status) { |
| | | if (status == null) { |
| | | return ""; |
| | | } else { |
| | | for (MenuOpenStatus s : MenuOpenStatus.values()) { |
| | | if (s.getCode() == status) { |
| | | return s.getMessage(); |
| | | } |
| | | } |
| | | return ""; |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.core.common.constant.state; |
| | | |
| | | /** |
| | | * 菜单的状态 |
| | | * |
| | | * @author fengshuonan |
| | | * @Date 2017年1月22日 下午12:14:59 |
| | | */ |
| | | public enum MenuStatus { |
| | | |
| | | ENABLE(1, "启用"), |
| | | DISABLE(0, "禁用"); |
| | | |
| | | int code; |
| | | String message; |
| | | |
| | | MenuStatus(int code, String message) { |
| | | this.code = code; |
| | | this.message = message; |
| | | } |
| | | |
| | | public int getCode() { |
| | | return code; |
| | | } |
| | | |
| | | public void setCode(int code) { |
| | | this.code = code; |
| | | } |
| | | |
| | | public String getMessage() { |
| | | return message; |
| | | } |
| | | |
| | | public void setMessage(String message) { |
| | | this.message = message; |
| | | } |
| | | |
| | | public static String valueOf(Integer status) { |
| | | if (status == null) { |
| | | return ""; |
| | | } else { |
| | | for (MenuStatus s : MenuStatus.values()) { |
| | | if (s.getCode() == status) { |
| | | return s.getMessage(); |
| | | } |
| | | } |
| | | return ""; |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.core.common.constant.state; |
| | | |
| | | /** |
| | | * 数据库排序 |
| | | * |
| | | * @author fengshuonan |
| | | * @Date 2017年5月31日20:48:41 |
| | | */ |
| | | public enum Order { |
| | | |
| | | ASC("asc"), DESC("desc"); |
| | | |
| | | private String des; |
| | | |
| | | Order(String des) { |
| | | this.des = des; |
| | | } |
| | | |
| | | public String getDes() { |
| | | return des; |
| | | } |
| | | |
| | | public void setDes(String des) { |
| | | this.des = des; |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.core.common.exception; |
| | | |
| | | import com.stylefeng.guns.core.exception.ServiceExceptionEnum; |
| | | |
| | | /** |
| | | * @author fengshuonan |
| | | * @Description 所有业务异常的枚举 |
| | | * @date 2016年11月12日 下午5:04:51 |
| | | */ |
| | | public enum BizExceptionEnum implements ServiceExceptionEnum { |
| | | |
| | | /** |
| | | * 字典 |
| | | */ |
| | | DICT_EXISTED(400, "字典已经存在"), |
| | | ERROR_CREATE_DICT(500, "创建字典失败"), |
| | | ERROR_WRAPPER_FIELD(500, "包装字典属性失败"), |
| | | ERROR_CODE_EMPTY(500, "字典类型不能为空"), |
| | | |
| | | /** |
| | | * 文件上传 |
| | | */ |
| | | FILE_READING_ERROR(400, "FILE_READING_ERROR!"), |
| | | FILE_NOT_FOUND(400, "FILE_NOT_FOUND!"), |
| | | UPLOAD_ERROR(500, "上传图片出错"), |
| | | |
| | | /** |
| | | * 权限和数据问题 |
| | | */ |
| | | DB_RESOURCE_NULL(400, "数据库中没有该资源"), |
| | | NO_PERMITION(405, "权限异常"), |
| | | REQUEST_INVALIDATE(400, "请求数据格式不正确"), |
| | | INVALID_KAPTCHA(400, "验证码不正确"), |
| | | CANT_DELETE_ADMIN(600, "不能删除超级管理员"), |
| | | CANT_FREEZE_ADMIN(600, "不能冻结超级管理员"), |
| | | CANT_CHANGE_ADMIN(600, "不能修改超级管理员角色"), |
| | | |
| | | /** |
| | | * 账户问题 |
| | | */ |
| | | USER_ALREADY_REG(401, "该用户已经注册"), |
| | | NO_THIS_USER(400, "没有此用户"), |
| | | USER_NOT_EXISTED(400, "没有此用户"), |
| | | ACCOUNT_FREEZED(401, "账号被冻结"), |
| | | OLD_PWD_NOT_RIGHT(402, "原密码不正确"), |
| | | TWO_PWD_NOT_MATCH(405, "两次输入密码不一致"), |
| | | |
| | | /** |
| | | * 错误的请求 |
| | | */ |
| | | MENU_PCODE_COINCIDENCE(400, "菜单编号和副编号不能一致"), |
| | | EXISTED_THE_MENU(400, "菜单编号重复,不能添加"), |
| | | DICT_MUST_BE_NUMBER(400, "字典的值必须为数字"), |
| | | REQUEST_NULL(400, "请求有错误"), |
| | | SESSION_TIMEOUT(400, "会话超时"), |
| | | SERVER_ERROR(500, "服务器异常"), |
| | | |
| | | /** |
| | | * token异常 |
| | | */ |
| | | TOKEN_EXPIRED(700, "token过期"), |
| | | TOKEN_ERROR(700, "token验证失败"), |
| | | |
| | | /** |
| | | * 签名异常 |
| | | */ |
| | | SIGN_ERROR(700, "签名验证失败"), |
| | | |
| | | /** |
| | | * 其他 |
| | | */ |
| | | AUTH_REQUEST_ERROR(400, "账号密码错误"); |
| | | |
| | | BizExceptionEnum(int code, String message) { |
| | | this.code = code; |
| | | this.message = message; |
| | | } |
| | | |
| | | private Integer code; |
| | | |
| | | private String message; |
| | | |
| | | @Override |
| | | public Integer getCode() { |
| | | return code; |
| | | } |
| | | |
| | | public void setCode(Integer code) { |
| | | this.code = code; |
| | | } |
| | | |
| | | @Override |
| | | public String getMessage() { |
| | | return message; |
| | | } |
| | | |
| | | public void setMessage(String message) { |
| | | this.message = message; |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.core.common.exception; |
| | | |
| | | /** |
| | | * 验证码错误异常 |
| | | * |
| | | * @author fengshuonan |
| | | * @date 2017-05-05 23:52 |
| | | */ |
| | | public class InvalidKaptchaException extends RuntimeException { |
| | | } |
New file |
| | |
| | | /* |
| | | * Licensed to the Apache Software Foundation (ASF) under one |
| | | * or more contributor license agreements. See the NOTICE file |
| | | * distributed with this work for additional information |
| | | * regarding copyright ownership. The ASF licenses this file |
| | | * to you under the Apache License, Version 2.0 (the |
| | | * "License"); you may not use this file except in compliance |
| | | * with the License. You may obtain a copy of the License at |
| | | * |
| | | * http://www.apache.org/licenses/LICENSE-2.0 |
| | | * |
| | | * Unless required by applicable law or agreed to in writing, |
| | | * software distributed under the License is distributed on an |
| | | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| | | * KIND, either express or implied. See the License for the |
| | | * specific language governing permissions and limitations |
| | | * under the License. |
| | | */ |
| | | package com.stylefeng.guns.core.intercept; |
| | | |
| | | import com.stylefeng.guns.core.shiro.ShiroKit; |
| | | import org.apache.shiro.subject.Subject; |
| | | import org.apache.shiro.web.filter.AccessControlFilter; |
| | | import org.apache.shiro.web.util.WebUtils; |
| | | |
| | | import javax.servlet.ServletRequest; |
| | | import javax.servlet.ServletResponse; |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import javax.servlet.http.HttpServletResponse; |
| | | |
| | | /** |
| | | * Filter that allows access to resources if the accessor is a known user, which is defined as |
| | | * having a known principal. This means that any user who is authenticated or remembered via a |
| | | * 'remember me' feature will be allowed access from this filter. |
| | | * <p/> |
| | | * If the accessor is not a known user, then they will be redirected to the {@link #setLoginUrl(String) loginUrl}</p> |
| | | * |
| | | * @since 0.9 |
| | | */ |
| | | public class GunsUserFilter extends AccessControlFilter { |
| | | |
| | | /** |
| | | * Returns <code>true</code> if the request is a |
| | | * {@link #isLoginRequest(javax.servlet.ServletRequest, javax.servlet.ServletResponse) loginRequest} or |
| | | * if the current {@link #getSubject(javax.servlet.ServletRequest, javax.servlet.ServletResponse) subject} |
| | | * is not <code>null</code>, <code>false</code> otherwise. |
| | | * |
| | | * @return <code>true</code> if the request is a |
| | | * {@link #isLoginRequest(javax.servlet.ServletRequest, javax.servlet.ServletResponse) loginRequest} or |
| | | * if the current {@link #getSubject(javax.servlet.ServletRequest, javax.servlet.ServletResponse) subject} |
| | | * is not <code>null</code>, <code>false</code> otherwise. |
| | | */ |
| | | protected boolean isAccessAllowed(ServletRequest request, ServletResponse response, Object mappedValue) { |
| | | if (isLoginRequest(request, response)) { |
| | | return true; |
| | | } else { |
| | | Subject subject = getSubject(request, response); |
| | | // If principal is not null, then the user is known and should be allowed access. |
| | | return subject.getPrincipal() != null; |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * This default implementation simply calls |
| | | * {@link #saveRequestAndRedirectToLogin(javax.servlet.ServletRequest, javax.servlet.ServletResponse) saveRequestAndRedirectToLogin} |
| | | * and then immediately returns <code>false</code>, thereby preventing the chain from continuing so the redirect may |
| | | * execute. |
| | | */ |
| | | protected boolean onAccessDenied(ServletRequest request, ServletResponse response) throws Exception { |
| | | HttpServletRequest httpServletRequest = WebUtils.toHttp(request); |
| | | HttpServletResponse httpServletResponse = WebUtils.toHttp(response); |
| | | |
| | | /** |
| | | * 如果是ajax请求则不进行跳转 |
| | | */ |
| | | if (httpServletRequest.getHeader("x-requested-with") != null |
| | | && httpServletRequest.getHeader("x-requested-with").equalsIgnoreCase("XMLHttpRequest")) { |
| | | httpServletResponse.setHeader("sessionstatus", "timeout"); |
| | | return false; |
| | | } else { |
| | | |
| | | /** |
| | | * 第一次点击页面 |
| | | */ |
| | | String referer = httpServletRequest.getHeader("Referer"); |
| | | if (referer == null) { |
| | | saveRequestAndRedirectToLogin(request, response); |
| | | return false; |
| | | } else { |
| | | |
| | | /** |
| | | * 从别的页面跳转过来的 |
| | | */ |
| | | if (ShiroKit.getSession().getAttribute("sessionFlag") == null) { |
| | | httpServletRequest.setAttribute("tips", "session超时"); |
| | | httpServletRequest.getRequestDispatcher("/login").forward(request, response); |
| | | return false; |
| | | } else { |
| | | saveRequestAndRedirectToLogin(request, response); |
| | | return false; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.core.intercept; |
| | | |
| | | import com.stylefeng.guns.core.base.tips.ErrorTip; |
| | | import com.stylefeng.guns.core.common.constant.JwtConstants; |
| | | import com.stylefeng.guns.core.common.exception.BizExceptionEnum; |
| | | import com.stylefeng.guns.core.util.JwtTokenUtil; |
| | | import com.stylefeng.guns.core.util.RenderUtil; |
| | | import io.jsonwebtoken.JwtException; |
| | | import org.springframework.web.method.HandlerMethod; |
| | | import org.springframework.web.servlet.handler.HandlerInterceptorAdapter; |
| | | |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import javax.servlet.http.HttpServletResponse; |
| | | |
| | | |
| | | /** |
| | | * Rest Api接口鉴权 |
| | | * |
| | | * @author stylefeng |
| | | * @Date 2018/7/20 23:11 |
| | | */ |
| | | public class RestApiInteceptor extends HandlerInterceptorAdapter { |
| | | |
| | | @Override |
| | | public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { |
| | | if (handler instanceof org.springframework.web.servlet.resource.ResourceHttpRequestHandler) { |
| | | return true; |
| | | } |
| | | HandlerMethod handlerMethod = (HandlerMethod) handler; |
| | | return check(request, response, handlerMethod); |
| | | } |
| | | |
| | | private boolean check(HttpServletRequest request, HttpServletResponse response, HandlerMethod handlerMethod) { |
| | | if (request.getServletPath().equals(JwtConstants.AUTH_PATH)) { |
| | | return true; |
| | | } |
| | | final String requestHeader = request.getHeader(JwtConstants.AUTH_HEADER); |
| | | String authToken; |
| | | if (requestHeader != null && requestHeader.startsWith("Bearer ")) { |
| | | authToken = requestHeader.substring(7); |
| | | |
| | | //验证token是否过期,包含了验证jwt是否正确 |
| | | try { |
| | | boolean flag = JwtTokenUtil.isTokenExpired(authToken); |
| | | if (flag) { |
| | | RenderUtil.renderJson(response, new ErrorTip(BizExceptionEnum.TOKEN_EXPIRED.getCode(), BizExceptionEnum.TOKEN_EXPIRED.getMessage())); |
| | | return false; |
| | | } |
| | | } catch (JwtException e) { |
| | | //有异常就是token解析失败 |
| | | RenderUtil.renderJson(response, new ErrorTip(BizExceptionEnum.TOKEN_ERROR.getCode(), BizExceptionEnum.TOKEN_ERROR.getMessage())); |
| | | return false; |
| | | } |
| | | } else { |
| | | //header没有带Bearer字段 |
| | | RenderUtil.renderJson(response, new ErrorTip(BizExceptionEnum.TOKEN_ERROR.getCode(), BizExceptionEnum.TOKEN_ERROR.getMessage())); |
| | | return false; |
| | | } |
| | | return true; |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.core.intercept; |
| | | |
| | | import com.stylefeng.guns.core.base.controller.BaseController; |
| | | import com.stylefeng.guns.core.util.HttpSessionHolder; |
| | | 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.springframework.stereotype.Component; |
| | | |
| | | /** |
| | | * 静态调用session的拦截器 |
| | | * |
| | | * @author fengshuonan |
| | | * @date 2016年11月13日 下午10:15:42 |
| | | */ |
| | | @Aspect |
| | | @Component |
| | | public class SessionHolderInterceptor extends BaseController { |
| | | |
| | | @Pointcut("execution(* com.stylefeng.guns.*..controller.*.*(..))") |
| | | public void cutService() { |
| | | } |
| | | |
| | | @Around("cutService()") |
| | | public Object sessionKit(ProceedingJoinPoint point) throws Throwable { |
| | | HttpSessionHolder.put(super.getHttpServletRequest().getSession()); |
| | | try { |
| | | return point.proceed(); |
| | | } finally { |
| | | HttpSessionHolder.remove(); |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | /** |
| | | * Copyright (c) 2015-2017, Chill Zhuang 庄骞 (smallchill@163.com). |
| | | * <p> |
| | | * Licensed under the Apache License, Version 2.0 (the "License"); |
| | | * you may not use this file except in compliance with the License. |
| | | * You may obtain a copy of the License at |
| | | * <p> |
| | | * http://www.apache.org/licenses/LICENSE-2.0 |
| | | * <p> |
| | | * Unless required by applicable law or agreed to in writing, software |
| | | * distributed under the License is distributed on an "AS IS" BASIS, |
| | | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| | | * See the License for the specific language governing permissions and |
| | | * limitations under the License. |
| | | */ |
| | | package com.stylefeng.guns.core.listener; |
| | | |
| | | import javax.servlet.ServletContext; |
| | | import javax.servlet.ServletContextEvent; |
| | | import javax.servlet.ServletContextListener; |
| | | import java.util.HashMap; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * ServletContext监听器 |
| | | * |
| | | * @author stylefeng |
| | | * @Date 2018/2/22 21:07 |
| | | */ |
| | | public class ConfigListener implements ServletContextListener { |
| | | |
| | | private static Map<String, String> conf = new HashMap<>(); |
| | | |
| | | public static Map<String, String> getConf() { |
| | | return conf; |
| | | } |
| | | |
| | | @Override |
| | | public void contextDestroyed(ServletContextEvent arg0) { |
| | | conf.clear(); |
| | | } |
| | | |
| | | @Override |
| | | public void contextInitialized(ServletContextEvent evt) { |
| | | ServletContext sc = evt.getServletContext(); |
| | | |
| | | //项目发布,当前运行环境的绝对路径 |
| | | conf.put("realPath", sc.getRealPath("/").replaceFirst("/", "")); |
| | | |
| | | //servletContextPath,默认"" |
| | | conf.put("contextPath", sc.getContextPath()); |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.core.log; |
| | | |
| | | import java.util.TimerTask; |
| | | import java.util.concurrent.ScheduledThreadPoolExecutor; |
| | | import java.util.concurrent.TimeUnit; |
| | | |
| | | /** |
| | | * 日志管理器 |
| | | * |
| | | * @author fengshuonan |
| | | * @date 2017-03-30 16:29 |
| | | */ |
| | | public class LogManager { |
| | | |
| | | //日志记录操作延时 |
| | | private final int OPERATE_DELAY_TIME = 10; |
| | | |
| | | //异步操作记录日志的线程池 |
| | | private ScheduledThreadPoolExecutor executor = new ScheduledThreadPoolExecutor(10); |
| | | |
| | | private LogManager() { |
| | | } |
| | | |
| | | public static LogManager logManager = new LogManager(); |
| | | |
| | | public static LogManager me() { |
| | | return logManager; |
| | | } |
| | | |
| | | public void executeLog(TimerTask task) { |
| | | executor.schedule(task, OPERATE_DELAY_TIME, TimeUnit.MILLISECONDS); |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.core.log; |
| | | |
| | | import com.stylefeng.guns.core.util.SpringContextHolder; |
| | | import org.springframework.context.annotation.Scope; |
| | | import org.springframework.stereotype.Component; |
| | | import org.springframework.web.context.WebApplicationContext; |
| | | |
| | | import java.io.Serializable; |
| | | |
| | | /** |
| | | * 被修改的bean临时存放的地方 |
| | | * |
| | | * @author fengshuonan |
| | | * @date 2017-03-31 11:19 |
| | | */ |
| | | @Component |
| | | @Scope(scopeName = WebApplicationContext.SCOPE_SESSION) |
| | | public class LogObjectHolder implements Serializable{ |
| | | |
| | | private Object object = null; |
| | | |
| | | public void set(Object obj) { |
| | | this.object = obj; |
| | | } |
| | | |
| | | public Object get() { |
| | | return object; |
| | | } |
| | | |
| | | public static LogObjectHolder me(){ |
| | | LogObjectHolder bean = SpringContextHolder.getBean(LogObjectHolder.class); |
| | | return bean; |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.core.log.factory; |
| | | |
| | | import com.stylefeng.guns.core.common.constant.state.LogSucceed; |
| | | import com.stylefeng.guns.core.common.constant.state.LogType; |
| | | import com.stylefeng.guns.modular.system.model.LoginLog; |
| | | import com.stylefeng.guns.modular.system.model.OperationLog; |
| | | |
| | | import java.util.Date; |
| | | |
| | | /** |
| | | * 日志对象创建工厂 |
| | | * |
| | | * @author fengshuonan |
| | | * @date 2016年12月6日 下午9:18:27 |
| | | */ |
| | | public class LogFactory { |
| | | |
| | | /** |
| | | * 创建操作日志 |
| | | */ |
| | | public static OperationLog createOperationLog(LogType logType, Integer userId, String bussinessName, String clazzName, String methodName, String msg, LogSucceed succeed) { |
| | | OperationLog operationLog = new OperationLog(); |
| | | operationLog.setLogtype(logType.getMessage()); |
| | | operationLog.setLogname(bussinessName); |
| | | operationLog.setUserid(userId); |
| | | operationLog.setClassname(clazzName); |
| | | operationLog.setMethod(methodName); |
| | | operationLog.setCreatetime(new Date()); |
| | | operationLog.setSucceed(succeed.getMessage()); |
| | | operationLog.setMessage(msg); |
| | | return operationLog; |
| | | } |
| | | |
| | | /** |
| | | * 创建登录日志 |
| | | */ |
| | | public static LoginLog createLoginLog(LogType logType, Integer userId, String msg, String ip) { |
| | | LoginLog loginLog = new LoginLog(); |
| | | loginLog.setLogname(logType.getMessage()); |
| | | loginLog.setUserid(userId); |
| | | loginLog.setCreatetime(new Date()); |
| | | loginLog.setSucceed(LogSucceed.SUCCESS.getMessage()); |
| | | loginLog.setIp(ip); |
| | | loginLog.setMessage(msg); |
| | | return loginLog; |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.core.log.factory; |
| | | |
| | | import com.stylefeng.guns.core.common.constant.state.LogSucceed; |
| | | import com.stylefeng.guns.core.common.constant.state.LogType; |
| | | import com.stylefeng.guns.modular.system.dao.LoginLogMapper; |
| | | import com.stylefeng.guns.modular.system.dao.OperationLogMapper; |
| | | import com.stylefeng.guns.modular.system.model.LoginLog; |
| | | import com.stylefeng.guns.modular.system.model.OperationLog; |
| | | import com.stylefeng.guns.core.db.Db; |
| | | import com.stylefeng.guns.core.log.LogManager; |
| | | import com.stylefeng.guns.core.util.ToolUtil; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | |
| | | import java.util.TimerTask; |
| | | |
| | | /** |
| | | * 日志操作任务创建工厂 |
| | | * |
| | | * @author fengshuonan |
| | | * @date 2016年12月6日 下午9:18:27 |
| | | */ |
| | | public class LogTaskFactory { |
| | | |
| | | private static Logger logger = LoggerFactory.getLogger(LogManager.class); |
| | | private static LoginLogMapper loginLogMapper = Db.getMapper(LoginLogMapper.class); |
| | | private static OperationLogMapper operationLogMapper = Db.getMapper(OperationLogMapper.class); |
| | | |
| | | public static TimerTask loginLog(final Integer userId, final String ip) { |
| | | return new TimerTask() { |
| | | @Override |
| | | public void run() { |
| | | try { |
| | | LoginLog loginLog = LogFactory.createLoginLog(LogType.LOGIN, userId, null, ip); |
| | | loginLogMapper.insert(loginLog); |
| | | } catch (Exception e) { |
| | | logger.error("创建登录日志异常!", e); |
| | | } |
| | | } |
| | | }; |
| | | } |
| | | |
| | | public static TimerTask loginLog(final String username, final String msg, final String ip) { |
| | | return new TimerTask() { |
| | | @Override |
| | | public void run() { |
| | | LoginLog loginLog = LogFactory.createLoginLog( |
| | | LogType.LOGIN_FAIL, null, "账号:" + username + "," + msg, ip); |
| | | try { |
| | | loginLogMapper.insert(loginLog); |
| | | } catch (Exception e) { |
| | | logger.error("创建登录失败异常!", e); |
| | | } |
| | | } |
| | | }; |
| | | } |
| | | |
| | | public static TimerTask exitLog(final Integer userId, final String ip) { |
| | | return new TimerTask() { |
| | | @Override |
| | | public void run() { |
| | | LoginLog loginLog = LogFactory.createLoginLog(LogType.EXIT, userId, null,ip); |
| | | try { |
| | | loginLogMapper.insert(loginLog); |
| | | } catch (Exception e) { |
| | | logger.error("创建退出日志异常!", e); |
| | | } |
| | | } |
| | | }; |
| | | } |
| | | |
| | | public static TimerTask bussinessLog(final Integer userId, final String bussinessName, final String clazzName, final String methodName, final String msg) { |
| | | return new TimerTask() { |
| | | @Override |
| | | public void run() { |
| | | OperationLog operationLog = LogFactory.createOperationLog( |
| | | LogType.BUSSINESS, userId, bussinessName, clazzName, methodName, msg, LogSucceed.SUCCESS); |
| | | try { |
| | | operationLogMapper.insert(operationLog); |
| | | } catch (Exception e) { |
| | | logger.error("创建业务日志异常!", e); |
| | | } |
| | | } |
| | | }; |
| | | } |
| | | |
| | | public static TimerTask exceptionLog(final Integer userId, final Exception exception) { |
| | | return new TimerTask() { |
| | | @Override |
| | | public void run() { |
| | | String msg = ToolUtil.getExceptionMsg(exception); |
| | | OperationLog operationLog = LogFactory.createOperationLog( |
| | | LogType.EXCEPTION, userId, "", null, null, msg, LogSucceed.FAIL); |
| | | try { |
| | | operationLogMapper.insert(operationLog); |
| | | } catch (Exception e) { |
| | | logger.error("创建异常日志异常!", e); |
| | | } |
| | | } |
| | | }; |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.core.shiro; |
| | | |
| | | import com.stylefeng.guns.core.shiro.factory.IShiro; |
| | | import com.stylefeng.guns.core.shiro.factory.ShiroFactroy; |
| | | import com.stylefeng.guns.core.util.ToolUtil; |
| | | import com.stylefeng.guns.modular.system.model.User; |
| | | import org.apache.shiro.authc.AuthenticationException; |
| | | import org.apache.shiro.authc.AuthenticationInfo; |
| | | import org.apache.shiro.authc.AuthenticationToken; |
| | | import org.apache.shiro.authc.UsernamePasswordToken; |
| | | import org.apache.shiro.authc.credential.CredentialsMatcher; |
| | | import org.apache.shiro.authc.credential.HashedCredentialsMatcher; |
| | | import org.apache.shiro.authz.AuthorizationInfo; |
| | | import org.apache.shiro.authz.SimpleAuthorizationInfo; |
| | | import org.apache.shiro.realm.AuthorizingRealm; |
| | | import org.apache.shiro.subject.PrincipalCollection; |
| | | |
| | | import java.util.HashSet; |
| | | import java.util.List; |
| | | import java.util.Set; |
| | | |
| | | public class ShiroDbRealm extends AuthorizingRealm { |
| | | |
| | | /** |
| | | * 登录认证 |
| | | */ |
| | | @Override |
| | | protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authcToken) |
| | | throws AuthenticationException { |
| | | IShiro shiroFactory = ShiroFactroy.me(); |
| | | UsernamePasswordToken token = (UsernamePasswordToken) authcToken; |
| | | User user = shiroFactory.user(token.getUsername()); |
| | | ShiroUser shiroUser = shiroFactory.shiroUser(user); |
| | | return shiroFactory.info(shiroUser, user, super.getName()); |
| | | } |
| | | |
| | | /** |
| | | * 权限认证 |
| | | */ |
| | | @Override |
| | | protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) { |
| | | IShiro shiroFactory = ShiroFactroy.me(); |
| | | ShiroUser shiroUser = (ShiroUser) principals.getPrimaryPrincipal(); |
| | | List<Integer> roleList = shiroUser.getRoleList(); |
| | | |
| | | Set<String> permissionSet = new HashSet<>(); |
| | | Set<String> roleNameSet = new HashSet<>(); |
| | | |
| | | for (Integer roleId : roleList) { |
| | | List<String> permissions = shiroFactory.findPermissionsByRoleId(roleId); |
| | | if (permissions != null) { |
| | | for (String permission : permissions) { |
| | | if (ToolUtil.isNotEmpty(permission)) { |
| | | permissionSet.add(permission); |
| | | } |
| | | } |
| | | } |
| | | String roleName = shiroFactory.findRoleNameByRoleId(roleId); |
| | | roleNameSet.add(roleName); |
| | | } |
| | | |
| | | SimpleAuthorizationInfo info = new SimpleAuthorizationInfo(); |
| | | info.addStringPermissions(permissionSet); |
| | | info.addRoles(roleNameSet); |
| | | return info; |
| | | } |
| | | |
| | | /** |
| | | * 设置认证加密方式 |
| | | */ |
| | | @Override |
| | | public void setCredentialsMatcher(CredentialsMatcher credentialsMatcher) { |
| | | HashedCredentialsMatcher md5CredentialsMatcher = new HashedCredentialsMatcher(); |
| | | md5CredentialsMatcher.setHashAlgorithmName(ShiroKit.hashAlgorithmName); |
| | | md5CredentialsMatcher.setHashIterations(ShiroKit.hashIterations); |
| | | super.setCredentialsMatcher(md5CredentialsMatcher); |
| | | } |
| | | } |
New file |
| | |
| | | /** |
| | | * Copyright (c) 2015-2017, Chill Zhuang 庄骞 (smallchill@163.com). |
| | | * <p> |
| | | * Licensed under the Apache License, Version 2.0 (the "License"); |
| | | * you may not use this file except in compliance with the License. |
| | | * You may obtain a copy of the License at |
| | | * <p> |
| | | * http://www.apache.org/licenses/LICENSE-2.0 |
| | | * <p> |
| | | * Unless required by applicable law or agreed to in writing, software |
| | | * distributed under the License is distributed on an "AS IS" BASIS, |
| | | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| | | * See the License for the specific language governing permissions and |
| | | * limitations under the License. |
| | | */ |
| | | package com.stylefeng.guns.core.shiro; |
| | | |
| | | import com.stylefeng.guns.core.common.constant.Const; |
| | | import com.stylefeng.guns.core.common.constant.factory.ConstantFactory; |
| | | import com.stylefeng.guns.core.util.ToolUtil; |
| | | import org.apache.shiro.SecurityUtils; |
| | | import org.apache.shiro.crypto.hash.Md5Hash; |
| | | import org.apache.shiro.crypto.hash.SimpleHash; |
| | | import org.apache.shiro.session.Session; |
| | | import org.apache.shiro.subject.Subject; |
| | | import org.apache.shiro.util.ByteSource; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * shiro工具类 |
| | | * |
| | | * @author dafei, Chill Zhuang |
| | | */ |
| | | public class ShiroKit { |
| | | |
| | | private static final String NAMES_DELIMETER = ","; |
| | | |
| | | /** |
| | | * 加盐参数 |
| | | */ |
| | | public final static String hashAlgorithmName = "MD5"; |
| | | |
| | | /** |
| | | * 循环次数 |
| | | */ |
| | | public final static int hashIterations = 1024; |
| | | |
| | | /** |
| | | * shiro密码加密工具类 |
| | | * |
| | | * @param credentials 密码 |
| | | * @param saltSource 密码盐 |
| | | * @return |
| | | */ |
| | | public static String md5(String credentials, String saltSource) { |
| | | ByteSource salt = new Md5Hash(saltSource); |
| | | return new SimpleHash(hashAlgorithmName, credentials, salt, hashIterations).toString(); |
| | | } |
| | | |
| | | /** |
| | | * 获取随机盐值 |
| | | * @param length |
| | | * @return |
| | | */ |
| | | public static String getRandomSalt(int length) { |
| | | return ToolUtil.getRandomString(length); |
| | | } |
| | | |
| | | /** |
| | | * 获取当前 Subject |
| | | * |
| | | * @return Subject |
| | | */ |
| | | public static Subject getSubject() { |
| | | return SecurityUtils.getSubject(); |
| | | } |
| | | |
| | | /** |
| | | * 获取封装的 ShiroUser |
| | | * |
| | | * @return ShiroUser |
| | | */ |
| | | public static ShiroUser getUser() { |
| | | if (isGuest()) { |
| | | return null; |
| | | } else { |
| | | return (ShiroUser) getSubject().getPrincipals().getPrimaryPrincipal(); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 从shiro获取session |
| | | * |
| | | */ |
| | | public static Session getSession() { |
| | | return getSubject().getSession(); |
| | | } |
| | | |
| | | /** |
| | | * 获取shiro指定的sessionKey |
| | | * |
| | | */ |
| | | @SuppressWarnings("unchecked") |
| | | public static <T> T getSessionAttr(String key) { |
| | | Session session = getSession(); |
| | | return session != null ? (T) session.getAttribute(key) : null; |
| | | } |
| | | |
| | | /** |
| | | * 设置shiro指定的sessionKey |
| | | * |
| | | */ |
| | | public static void setSessionAttr(String key, Object value) { |
| | | Session session = getSession(); |
| | | session.setAttribute(key, value); |
| | | } |
| | | |
| | | /** |
| | | * 移除shiro指定的sessionKey |
| | | */ |
| | | public static void removeSessionAttr(String key) { |
| | | Session session = getSession(); |
| | | if (session != null) |
| | | session.removeAttribute(key); |
| | | } |
| | | |
| | | /** |
| | | * 验证当前用户是否属于该角色?,使用时与lacksRole 搭配使用 |
| | | * |
| | | * @param roleName |
| | | * 角色名 |
| | | * @return 属于该角色:true,否则false |
| | | */ |
| | | public static boolean hasRole(String roleName) { |
| | | return getSubject() != null && roleName != null |
| | | && roleName.length() > 0 && getSubject().hasRole(roleName); |
| | | } |
| | | |
| | | /** |
| | | * 与hasRole标签逻辑相反,当用户不属于该角色时验证通过。 |
| | | * |
| | | * @param roleName |
| | | * 角色名 |
| | | * @return 不属于该角色:true,否则false |
| | | */ |
| | | public static boolean lacksRole(String roleName) { |
| | | return !hasRole(roleName); |
| | | } |
| | | |
| | | /** |
| | | * 验证当前用户是否属于以下任意一个角色。 |
| | | * |
| | | * @param roleNames |
| | | * 角色列表 |
| | | * @return 属于:true,否则false |
| | | */ |
| | | public static boolean hasAnyRoles(String roleNames) { |
| | | boolean hasAnyRole = false; |
| | | Subject subject = getSubject(); |
| | | if (subject != null && roleNames != null && roleNames.length() > 0) { |
| | | for (String role : roleNames.split(NAMES_DELIMETER)) { |
| | | if (subject.hasRole(role.trim())) { |
| | | hasAnyRole = true; |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | return hasAnyRole; |
| | | } |
| | | |
| | | /** |
| | | * 验证当前用户是否属于以下所有角色。 |
| | | * |
| | | * @param roleNames |
| | | * 角色列表 |
| | | * @return 属于:true,否则false |
| | | */ |
| | | public static boolean hasAllRoles(String roleNames) { |
| | | boolean hasAllRole = true; |
| | | Subject subject = getSubject(); |
| | | if (subject != null && roleNames != null && roleNames.length() > 0) { |
| | | for (String role : roleNames.split(NAMES_DELIMETER)) { |
| | | if (!subject.hasRole(role.trim())) { |
| | | hasAllRole = false; |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | return hasAllRole; |
| | | } |
| | | |
| | | /** |
| | | * 验证当前用户是否拥有指定权限,使用时与lacksPermission 搭配使用 |
| | | * |
| | | * @param permission |
| | | * 权限名 |
| | | * @return 拥有权限:true,否则false |
| | | */ |
| | | public static boolean hasPermission(String permission) { |
| | | return getSubject() != null && permission != null |
| | | && permission.length() > 0 |
| | | && getSubject().isPermitted(permission); |
| | | } |
| | | |
| | | /** |
| | | * 与hasPermission标签逻辑相反,当前用户没有制定权限时,验证通过。 |
| | | * |
| | | * @param permission |
| | | * 权限名 |
| | | * @return 拥有权限:true,否则false |
| | | */ |
| | | public static boolean lacksPermission(String permission) { |
| | | return !hasPermission(permission); |
| | | } |
| | | |
| | | /** |
| | | * 已认证通过的用户。不包含已记住的用户,这是与user标签的区别所在。与notAuthenticated搭配使用 |
| | | * |
| | | * @return 通过身份验证:true,否则false |
| | | */ |
| | | public static boolean isAuthenticated() { |
| | | return getSubject() != null && getSubject().isAuthenticated(); |
| | | } |
| | | |
| | | /** |
| | | * 未认证通过用户,与authenticated标签相对应。与guest标签的区别是,该标签包含已记住用户。。 |
| | | * |
| | | * @return 没有通过身份验证:true,否则false |
| | | */ |
| | | public static boolean notAuthenticated() { |
| | | return !isAuthenticated(); |
| | | } |
| | | |
| | | /** |
| | | * 认证通过或已记住的用户。与guset搭配使用。 |
| | | * |
| | | * @return 用户:true,否则 false |
| | | */ |
| | | public static boolean isUser() { |
| | | return getSubject() != null && getSubject().getPrincipal() != null; |
| | | } |
| | | |
| | | /** |
| | | * 验证当前用户是否为“访客”,即未认证(包含未记住)的用户。用user搭配使用 |
| | | * |
| | | * @return 访客:true,否则false |
| | | */ |
| | | public static boolean isGuest() { |
| | | return !isUser(); |
| | | } |
| | | |
| | | /** |
| | | * 输出当前用户信息,通常为登录帐号信息。 |
| | | * |
| | | * @return 当前用户信息 |
| | | */ |
| | | public static String principal() { |
| | | if (getSubject() != null) { |
| | | Object principal = getSubject().getPrincipal(); |
| | | return principal.toString(); |
| | | } |
| | | return ""; |
| | | } |
| | | |
| | | /** |
| | | * 获取当前用户的部门数据范围的集合 |
| | | */ |
| | | public static List<Integer> getDeptDataScope() { |
| | | Integer deptId = getUser().getDeptId(); |
| | | List<Integer> subDeptIds = ConstantFactory.me().getSubDeptId(deptId); |
| | | subDeptIds.add(deptId); |
| | | return subDeptIds; |
| | | } |
| | | |
| | | /** |
| | | * 判断当前用户是否是超级管理员 |
| | | */ |
| | | public static boolean isAdmin() { |
| | | List<Integer> roleList = ShiroKit.getUser().getRoleList(); |
| | | for (Integer integer : roleList) { |
| | | String singleRoleTip = ConstantFactory.me().getSingleRoleTip(integer); |
| | | if (singleRoleTip.equals(Const.ADMIN_NAME)) { |
| | | return true; |
| | | } |
| | | } |
| | | return false; |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.core.shiro; |
| | | |
| | | import java.io.Serializable; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * 自定义Authentication对象,使得Subject除了携带用户的登录名外还可以携带更多信息 |
| | | * |
| | | * @author fengshuonan |
| | | * @date 2016年12月5日 上午10:26:43 |
| | | */ |
| | | public class ShiroUser implements Serializable { |
| | | |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | public Integer id; // 主键ID |
| | | public String account; // 账号 |
| | | public String name; // 姓名 |
| | | public Integer deptId; // 部门id |
| | | public List<Integer> roleList; // 角色集 |
| | | public String deptName; // 部门名称 |
| | | public List<String> roleNames; // 角色名称集 |
| | | |
| | | |
| | | public Integer getId() { |
| | | return id; |
| | | } |
| | | |
| | | public void setId(Integer id) { |
| | | this.id = id; |
| | | } |
| | | |
| | | public String getAccount() { |
| | | return account; |
| | | } |
| | | |
| | | public void setAccount(String account) { |
| | | this.account = account; |
| | | } |
| | | |
| | | public String getName() { |
| | | return name; |
| | | } |
| | | |
| | | public void setName(String name) { |
| | | this.name = name; |
| | | } |
| | | |
| | | public Integer getDeptId() { |
| | | return deptId; |
| | | } |
| | | |
| | | public void setDeptId(Integer deptId) { |
| | | this.deptId = deptId; |
| | | } |
| | | |
| | | public List<Integer> getRoleList() { |
| | | return roleList; |
| | | } |
| | | |
| | | public void setRoleList(List<Integer> roleList) { |
| | | this.roleList = roleList; |
| | | } |
| | | |
| | | public String getDeptName() { |
| | | return deptName; |
| | | } |
| | | |
| | | public void setDeptName(String deptName) { |
| | | this.deptName = deptName; |
| | | } |
| | | |
| | | public List<String> getRoleNames() { |
| | | return roleNames; |
| | | } |
| | | |
| | | public void setRoleNames(List<String> roleNames) { |
| | | this.roleNames = roleNames; |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | /** |
| | | * Copyright (c) 2015-2017, Chill Zhuang 庄骞 (smallchill@163.com). |
| | | * <p> |
| | | * Licensed under the Apache License, Version 2.0 (the "License"); |
| | | * you may not use this file except in compliance with the License. |
| | | * You may obtain a copy of the License at |
| | | * <p> |
| | | * http://www.apache.org/licenses/LICENSE-2.0 |
| | | * <p> |
| | | * Unless required by applicable law or agreed to in writing, software |
| | | * distributed under the License is distributed on an "AS IS" BASIS, |
| | | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| | | * See the License for the specific language governing permissions and |
| | | * limitations under the License. |
| | | */ |
| | | package com.stylefeng.guns.core.shiro.check; |
| | | |
| | | /** |
| | | * 检查用接口 |
| | | */ |
| | | public interface ICheck { |
| | | |
| | | /** |
| | | * 检查当前登录用户是否拥有指定的角色访问当 |
| | | */ |
| | | boolean check(Object[] permissions); |
| | | |
| | | /** |
| | | * 检查当前登录用户是否拥有当前请求的servlet的权限 |
| | | */ |
| | | boolean checkAll(); |
| | | } |
New file |
| | |
| | | /** |
| | | * Copyright (c) 2015-2017, Chill Zhuang 庄骞 (smallchill@163.com). |
| | | * <p> |
| | | * Licensed under the Apache License, Version 2.0 (the "License"); |
| | | * you may not use this file except in compliance with the License. |
| | | * You may obtain a copy of the License at |
| | | * <p> |
| | | * http://www.apache.org/licenses/LICENSE-2.0 |
| | | * <p> |
| | | * Unless required by applicable law or agreed to in writing, software |
| | | * distributed under the License is distributed on an "AS IS" BASIS, |
| | | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| | | * See the License for the specific language governing permissions and |
| | | * limitations under the License. |
| | | */ |
| | | package com.stylefeng.guns.core.shiro.check; |
| | | |
| | | import com.stylefeng.guns.core.listener.ConfigListener; |
| | | import com.stylefeng.guns.core.shiro.ShiroKit; |
| | | import com.stylefeng.guns.core.shiro.ShiroUser; |
| | | import com.stylefeng.guns.core.support.CollectionKit; |
| | | import com.stylefeng.guns.core.support.HttpKit; |
| | | import com.stylefeng.guns.core.util.SpringContextHolder; |
| | | import org.springframework.context.annotation.DependsOn; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import javax.servlet.http.HttpServletRequest; |
| | | |
| | | /** |
| | | * 权限自定义检查 |
| | | */ |
| | | @Service |
| | | @DependsOn("springContextHolder") |
| | | @Transactional(readOnly = true) |
| | | public class PermissionCheckFactory implements ICheck { |
| | | |
| | | public static ICheck me() { |
| | | return SpringContextHolder.getBean(ICheck.class); |
| | | } |
| | | |
| | | @Override |
| | | public boolean check(Object[] permissions) { |
| | | ShiroUser user = ShiroKit.getUser(); |
| | | if (null == user) { |
| | | return false; |
| | | } |
| | | String join = CollectionKit.join(permissions, ","); |
| | | if (ShiroKit.hasAnyRoles(join)) { |
| | | return true; |
| | | } |
| | | return false; |
| | | } |
| | | |
| | | @Override |
| | | public boolean checkAll() { |
| | | HttpServletRequest request = HttpKit.getRequest(); |
| | | ShiroUser user = ShiroKit.getUser(); |
| | | if (null == user) { |
| | | return false; |
| | | } |
| | | String requestURI = request.getRequestURI().replaceFirst(ConfigListener.getConf().get("contextPath"), ""); |
| | | String[] str = requestURI.split("/"); |
| | | if (str.length > 3) { |
| | | requestURI = "/" + str[1] + "/" + str[2]; |
| | | } |
| | | if (ShiroKit.hasPermission(requestURI)) { |
| | | return true; |
| | | } |
| | | return false; |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | /** |
| | | * Copyright (c) 2015-2017, Chill Zhuang 庄骞 (smallchill@163.com). |
| | | * <p> |
| | | * Licensed under the Apache License, Version 2.0 (the "License"); |
| | | * you may not use this file except in compliance with the License. |
| | | * You may obtain a copy of the License at |
| | | * <p> |
| | | * http://www.apache.org/licenses/LICENSE-2.0 |
| | | * <p> |
| | | * Unless required by applicable law or agreed to in writing, software |
| | | * distributed under the License is distributed on an "AS IS" BASIS, |
| | | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| | | * See the License for the specific language governing permissions and |
| | | * limitations under the License. |
| | | */ |
| | | package com.stylefeng.guns.core.shiro.check; |
| | | |
| | | import com.stylefeng.guns.core.util.SpringContextHolder; |
| | | |
| | | /** |
| | | * 权限检查管理器(入口) |
| | | */ |
| | | public class PermissionCheckManager { |
| | | private final static PermissionCheckManager me = new PermissionCheckManager(); |
| | | |
| | | private ICheck defaultCheckFactory = SpringContextHolder.getBean(ICheck.class); |
| | | |
| | | public static PermissionCheckManager me() { |
| | | return me; |
| | | } |
| | | |
| | | private PermissionCheckManager() { |
| | | } |
| | | |
| | | public PermissionCheckManager(ICheck checkFactory) { |
| | | this.defaultCheckFactory = checkFactory; |
| | | } |
| | | |
| | | public void setDefaultCheckFactory(ICheck defaultCheckFactory) { |
| | | this.defaultCheckFactory = defaultCheckFactory; |
| | | } |
| | | |
| | | public static boolean check(Object[] permissions) { |
| | | return me.defaultCheckFactory.check(permissions); |
| | | } |
| | | |
| | | public static boolean checkAll() { |
| | | return me.defaultCheckFactory.checkAll(); |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.core.shiro.factory; |
| | | |
| | | import com.stylefeng.guns.core.shiro.ShiroUser; |
| | | import com.stylefeng.guns.modular.system.model.User; |
| | | import org.apache.shiro.authc.SimpleAuthenticationInfo; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * 定义shirorealm所需数据的接口 |
| | | * |
| | | * @author fengshuonan |
| | | * @date 2016年12月5日 上午10:23:34 |
| | | */ |
| | | public interface IShiro { |
| | | |
| | | /** |
| | | * 根据账号获取登录用户 |
| | | * |
| | | * @param account 账号 |
| | | */ |
| | | User user(String account); |
| | | |
| | | /** |
| | | * 根据系统用户获取Shiro的用户 |
| | | * |
| | | * @param user 系统用户 |
| | | */ |
| | | ShiroUser shiroUser(User user); |
| | | |
| | | /** |
| | | * 获取权限列表通过角色id |
| | | * |
| | | * @param roleId 角色id |
| | | */ |
| | | List<String> findPermissionsByRoleId(Integer roleId); |
| | | |
| | | /** |
| | | * 根据角色id获取角色名称 |
| | | * |
| | | * @param roleId 角色id |
| | | */ |
| | | String findRoleNameByRoleId(Integer roleId); |
| | | |
| | | /** |
| | | * 获取shiro的认证信息 |
| | | */ |
| | | SimpleAuthenticationInfo info(ShiroUser shiroUser, User user, String realmName); |
| | | |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.core.shiro.factory; |
| | | |
| | | import com.stylefeng.guns.core.common.constant.factory.ConstantFactory; |
| | | import com.stylefeng.guns.core.common.constant.state.ManagerStatus; |
| | | import com.stylefeng.guns.core.shiro.ShiroUser; |
| | | import com.stylefeng.guns.core.util.Convert; |
| | | import com.stylefeng.guns.core.util.SpringContextHolder; |
| | | import com.stylefeng.guns.modular.system.dao.MenuMapper; |
| | | import com.stylefeng.guns.modular.system.dao.UserMapper; |
| | | import com.stylefeng.guns.modular.system.model.User; |
| | | import org.apache.shiro.authc.CredentialsException; |
| | | import org.apache.shiro.authc.LockedAccountException; |
| | | import org.apache.shiro.authc.SimpleAuthenticationInfo; |
| | | import org.apache.shiro.crypto.hash.Md5Hash; |
| | | import org.apache.shiro.util.ByteSource; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.context.annotation.DependsOn; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | |
| | | @Service |
| | | @DependsOn("springContextHolder") |
| | | @Transactional(readOnly = true) |
| | | public class ShiroFactroy implements IShiro { |
| | | |
| | | @Autowired |
| | | private UserMapper userMapper; |
| | | |
| | | @Autowired |
| | | private MenuMapper menuMapper; |
| | | |
| | | public static IShiro me() { |
| | | return SpringContextHolder.getBean(IShiro.class); |
| | | } |
| | | |
| | | @Override |
| | | public User user(String account) { |
| | | |
| | | User user = userMapper.getByAccount(account); |
| | | |
| | | // 账号不存在 |
| | | if (null == user) { |
| | | throw new CredentialsException(); |
| | | } |
| | | // 账号被冻结 |
| | | if (user.getStatus() != ManagerStatus.OK.getCode()) { |
| | | throw new LockedAccountException(); |
| | | } |
| | | return user; |
| | | } |
| | | |
| | | @Override |
| | | public ShiroUser shiroUser(User user) { |
| | | ShiroUser shiroUser = new ShiroUser(); |
| | | |
| | | shiroUser.setId(user.getId()); |
| | | shiroUser.setAccount(user.getAccount()); |
| | | shiroUser.setDeptId(user.getDeptid()); |
| | | shiroUser.setDeptName(ConstantFactory.me().getDeptName(user.getDeptid())); |
| | | shiroUser.setName(user.getName()); |
| | | |
| | | Integer[] roleArray = Convert.toIntArray(user.getRoleid()); |
| | | List<Integer> roleList = new ArrayList<Integer>(); |
| | | List<String> roleNameList = new ArrayList<String>(); |
| | | for (int roleId : roleArray) { |
| | | roleList.add(roleId); |
| | | roleNameList.add(ConstantFactory.me().getSingleRoleName(roleId)); |
| | | } |
| | | shiroUser.setRoleList(roleList); |
| | | shiroUser.setRoleNames(roleNameList); |
| | | |
| | | return shiroUser; |
| | | } |
| | | |
| | | @Override |
| | | public List<String> findPermissionsByRoleId(Integer roleId) { |
| | | return menuMapper.getResUrlsByRoleId(roleId); |
| | | } |
| | | |
| | | @Override |
| | | public String findRoleNameByRoleId(Integer roleId) { |
| | | return ConstantFactory.me().getSingleRoleTip(roleId); |
| | | } |
| | | |
| | | @Override |
| | | public SimpleAuthenticationInfo info(ShiroUser shiroUser, User user, String realmName) { |
| | | String credentials = user.getPassword(); |
| | | |
| | | // 密码加盐处理 |
| | | String source = user.getSalt(); |
| | | ByteSource credentialsSalt = new Md5Hash(source); |
| | | return new SimpleAuthenticationInfo(shiroUser, credentials, credentialsSalt, realmName); |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.core.tag; |
| | | |
| | | import com.stylefeng.guns.core.common.exception.BizExceptionEnum; |
| | | import com.stylefeng.guns.core.exception.GunsException; |
| | | import com.stylefeng.guns.core.util.ToolUtil; |
| | | import com.stylefeng.guns.modular.system.model.Dict; |
| | | import com.stylefeng.guns.modular.system.service.IDictService; |
| | | import org.beetl.core.Tag; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.context.annotation.Scope; |
| | | import org.springframework.stereotype.Component; |
| | | import java.io.IOException; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * 字典标签渲染 |
| | | * |
| | | * @author zhangjiajia |
| | | * @Date 2018年6月4日17:33:32 |
| | | */ |
| | | @Component |
| | | @Scope("prototype") |
| | | public class DictSelectorTag extends Tag { |
| | | |
| | | @Autowired |
| | | IDictService iDictService; |
| | | |
| | | @Override |
| | | public void render(){ |
| | | //String tagName = (String) this.args[0]; |
| | | Map attrs = (Map) args[1]; |
| | | if(ToolUtil.isEmpty(attrs.get("code"))){ |
| | | throw new GunsException(BizExceptionEnum.ERROR_CODE_EMPTY); |
| | | } |
| | | |
| | | //字典类型编码 |
| | | String code = attrs.get("code").toString(); |
| | | //控件显示类型select 选择框,radio 单选按钮,checkbox 多选按钮 |
| | | String type = ToolUtil.isNotEmpty(attrs.get("type"))?attrs.get("type").toString():"select"; |
| | | //开启多选 |
| | | String multiple = ToolUtil.isNotEmpty(attrs.get("multiple"))?attrs.get("multiple").toString():""; |
| | | //字典名称 |
| | | String label = ToolUtil.isNotEmpty(attrs.get("label"))?attrs.get("label").toString():""; |
| | | //提示 |
| | | String placeholder = (ToolUtil.isNotEmpty(attrs.get("placeholder"))?attrs.get("placeholder").toString():""); |
| | | //宽度 |
| | | String width = ToolUtil.isNotEmpty(attrs.get("width"))?attrs.get("width").toString():"248"; |
| | | //默认值 |
| | | String value = ToolUtil.isNotEmpty(attrs.get("value"))?attrs.get("value").toString():""; |
| | | //id |
| | | String id = ToolUtil.isNotEmpty(attrs.get("id"))?attrs.get("id").toString():""; |
| | | //name |
| | | String name = ToolUtil.isNotEmpty(attrs.get("name"))?attrs.get("name").toString():""; |
| | | //分割线 |
| | | String underline = ToolUtil.isNotEmpty(attrs.get("underline"))?attrs.get("underline").toString():""; |
| | | //onchange事件 |
| | | String onchange = ToolUtil.isNotEmpty(attrs.get("onchange"))?attrs.get("onchange").toString():""; |
| | | //readonly属性 |
| | | String readonly = ToolUtil.isNotEmpty(attrs.get("readonly"))?attrs.get("readonly").toString():""; |
| | | //disabled属性 |
| | | String disabled = ToolUtil.isNotEmpty(attrs.get("disabled"))?attrs.get("disabled").toString():""; |
| | | //searchnum 下拉选项数量达到多少启用搜索,默认10 |
| | | int searchnum = ToolUtil.isNum(attrs.get("searchnum"))?Integer.parseInt(attrs.get("searchnum").toString()):10; |
| | | //根据code查询字典数据 |
| | | List<Dict> list = iDictService.selectByParentCode(code); |
| | | |
| | | StringBuffer html = new StringBuffer(); |
| | | html.append("<div class=\"form-group\">\r\n"); |
| | | html.append("<label class=\"col-sm-3 control-label\">"+label+"</label>\r\n"); |
| | | html.append("<div class=\"col-sm-9\">\r\n"); |
| | | |
| | | //单选按钮 |
| | | if("radio".equals(type)) { |
| | | |
| | | list.forEach(obj->{ |
| | | html.append("<label class=\"radio-inline i-checks\">\r\n<input type=\"radio\" "); |
| | | //判断控件是否禁用 |
| | | if("true".equals(disabled)||"disabled".equals(disabled)) { |
| | | html.append("disabled "); |
| | | }else{ |
| | | if(ToolUtil.isNotEmpty(name)){ |
| | | html.append("name=\""+name+"\" "); |
| | | } |
| | | } |
| | | if("true".equals(readonly)||"disabled".equals(readonly)) { |
| | | html.append("disabled "); |
| | | } |
| | | if(ToolUtil.isNotEmpty(value)&&value.equals(obj.getCode())){ |
| | | html.append("checked "); |
| | | } |
| | | |
| | | html.append("value=\""+obj.getCode()+"\" >"+obj.getName()+"</label>\r\n"); |
| | | }); |
| | | |
| | | //多选按钮 |
| | | }else if("checkbox".equals(type)){ |
| | | list.forEach(obj->{ |
| | | html.append("<label class=\"checkbox-inline i-checks\">\r\n<input type=\"checkbox\" "); |
| | | //判断控件是否禁用 |
| | | if("true".equals(disabled)||"disabled".equals(disabled)) { |
| | | html.append("disabled "); |
| | | }else{ |
| | | if(ToolUtil.isNotEmpty(name)){ |
| | | html.append("name=\""+name+"\" "); |
| | | } |
| | | } |
| | | if("true".equals(readonly)||"disabled".equals(readonly)) { |
| | | html.append("disabled "); |
| | | } |
| | | if(ToolUtil.isNotEmpty(value)&&value.equals(obj.getCode())){ |
| | | html.append("checked "); |
| | | } |
| | | |
| | | html.append("value=\""+obj.getCode()+"\" >"+obj.getName()+"</label>\r\n"); |
| | | }); |
| | | |
| | | //默认select |
| | | }else{ |
| | | //开启多选 |
| | | if("true".equals(multiple)){ |
| | | if(list.size()>=searchnum) { |
| | | html.append("<select multiple "); |
| | | }else{ |
| | | html.append("<select multiple=\"multiple\" size=\"10\" "); |
| | | } |
| | | }else{ |
| | | html.append("<select "); |
| | | } |
| | | |
| | | //判断控件是否启用提示 |
| | | if(ToolUtil.isNotEmpty(placeholder)){ |
| | | html.append(" data-placeholder=\""+placeholder+"\" "); |
| | | } |
| | | |
| | | //判断控件是否禁用 |
| | | if("true".equals(disabled)||"disabled".equals(disabled)) { |
| | | html.append("disabled=\"disabled\" "); |
| | | }else{ |
| | | //启用 |
| | | if(ToolUtil.isNotEmpty(id)){ |
| | | html.append("id=\""+id+"\" "); |
| | | } |
| | | |
| | | if(ToolUtil.isNotEmpty(name)){ |
| | | html.append("name=\""+name+"\" "); |
| | | } |
| | | } |
| | | |
| | | //判断是否启用搜索框 |
| | | //判断下拉数据,如果查询出来的条数达到启用搜索的数量就启用 |
| | | |
| | | |
| | | if(list.size()>=searchnum){ |
| | | html.append("class=\"form-control chosen-select\" style=\"width:"+width+"px\" tabindex=\"1\" \r\n"); |
| | | } else{ |
| | | html.append("class=\"form-control\" style=\"width:"+width+"px\" \r\n"); |
| | | } |
| | | |
| | | //判断控件是否只读 |
| | | if("true".equals(readonly)||"readonly".equals(readonly)) { |
| | | if(list.size()>=searchnum) { |
| | | html.append("disabled=\"disabled\" "); |
| | | }else{ |
| | | html.append("onfocus=\"this.defaultIndex=this.selectedIndex;\" onchange=\"this.selectedIndex=this.defaultIndex;\" "); |
| | | } |
| | | } |
| | | |
| | | //判断是否绑定onchange事件 |
| | | if(ToolUtil.isNotEmpty(onchange)){ |
| | | html.append("onchange=\""+onchange+"($(this).children('option:selected').val())\" "); |
| | | } |
| | | |
| | | html.append(">"); |
| | | if(ToolUtil.isNotEmpty(placeholder)){ |
| | | html.append("<option value=\"\">"+placeholder+"</option>\r\n"); |
| | | } |
| | | //将查询出来的数据添加到select中 |
| | | list.forEach(obj->{ |
| | | if(ToolUtil.isNotEmpty(value)&&value.equals(obj.getCode())){ |
| | | html.append("<option selected value=\""+obj.getCode()+"\">"+obj.getName()+"</option>\r\n"); |
| | | }else{ |
| | | html.append("<option value=\""+obj.getCode()+"\">"+obj.getName()+"</option>\r\n"); |
| | | } |
| | | }); |
| | | html.append("</select>\r\n"); |
| | | } |
| | | |
| | | html.append("</div>\r\n</div>\r\n"); |
| | | //判断是否添加分割线 |
| | | if(ToolUtil.isNotEmpty(underline) && "true".equals(underline)) { |
| | | html.append("<div class=\"hr-line-dashed\" ></div >\r\n"); |
| | | } |
| | | |
| | | try{ |
| | | this.ctx.byteWriter.writeString(html.toString()); |
| | | }catch (IOException e){ |
| | | throw new RuntimeException("输出字典标签错误"); |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.core.util; |
| | | |
| | | import com.stylefeng.guns.core.common.constant.Const; |
| | | import com.stylefeng.guns.config.properties.GunsProperties; |
| | | import com.stylefeng.guns.core.node.MenuNode; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * api接口文档显示过滤 |
| | | * |
| | | * @author fengshuonan |
| | | * @date 2017-08-17 16:55 |
| | | */ |
| | | public class ApiMenuFilter extends MenuNode { |
| | | |
| | | public static List<MenuNode> build(List<MenuNode> nodes) { |
| | | |
| | | //如果关闭了接口文档,则不显示接口文档菜单 |
| | | GunsProperties gunsProperties = SpringContextHolder.getBean(GunsProperties.class); |
| | | if (!gunsProperties.getSwaggerOpen()) { |
| | | List<MenuNode> menuNodesCopy = new ArrayList<>(); |
| | | for (MenuNode menuNode : nodes) { |
| | | if (Const.API_MENU_NAME.equals(menuNode.getName())) { |
| | | continue; |
| | | } else { |
| | | menuNodesCopy.add(menuNode); |
| | | } |
| | | } |
| | | nodes = menuNodesCopy; |
| | | } |
| | | |
| | | return nodes; |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.core.util; |
| | | |
| | | import com.stylefeng.guns.core.common.constant.dictmap.base.AbstractDictMap; |
| | | import com.stylefeng.guns.core.common.constant.dictmap.factory.DictFieldWarpperFactory; |
| | | import com.stylefeng.guns.core.support.StrKit; |
| | | |
| | | import java.beans.PropertyDescriptor; |
| | | import java.lang.reflect.Field; |
| | | import java.lang.reflect.Method; |
| | | import java.util.Date; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * 对比两个对象的变化的工具类 |
| | | * |
| | | * @author fengshuonan |
| | | * @Date 2017/3/31 10:36 |
| | | */ |
| | | public class Contrast { |
| | | |
| | | //记录每个修改字段的分隔符 |
| | | public static final String separator = ";;;"; |
| | | |
| | | /** |
| | | * 比较两个对象,并返回不一致的信息 |
| | | * |
| | | * @author stylefeng |
| | | * @Date 2017/5/9 19:34 |
| | | */ |
| | | public static String contrastObj(Object pojo1, Object pojo2) { |
| | | String str = ""; |
| | | try { |
| | | Class clazz = pojo1.getClass(); |
| | | Field[] fields = pojo1.getClass().getDeclaredFields(); |
| | | int i = 1; |
| | | for (Field field : fields) { |
| | | if ("serialVersionUID".equals(field.getName())) { |
| | | continue; |
| | | } |
| | | PropertyDescriptor pd = new PropertyDescriptor(field.getName(), clazz); |
| | | Method getMethod = pd.getReadMethod(); |
| | | Object o1 = getMethod.invoke(pojo1); |
| | | Object o2 = getMethod.invoke(pojo2); |
| | | if (o1 == null || o2 == null) { |
| | | continue; |
| | | } |
| | | if (o1 instanceof Date) { |
| | | o1 = DateUtil.getDay((Date) o1); |
| | | } |
| | | if (!o1.toString().equals(o2.toString())) { |
| | | if (i != 1) { |
| | | str += separator; |
| | | } |
| | | str += "字段名称" + field.getName() + ",旧值:" + o1 + ",新值:" + o2; |
| | | i++; |
| | | } |
| | | } |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | return str; |
| | | } |
| | | |
| | | /** |
| | | * 比较两个对象pojo1和pojo2,并输出不一致信息 |
| | | * |
| | | * @author stylefeng |
| | | * @Date 2017/5/9 19:34 |
| | | */ |
| | | public static String contrastObj(Class dictClass, String key, Object pojo1, Map<String, String> pojo2) throws IllegalAccessException, InstantiationException { |
| | | AbstractDictMap dictMap = (AbstractDictMap) dictClass.newInstance(); |
| | | String str = parseMutiKey(dictMap, key, pojo2) + separator; |
| | | try { |
| | | Class clazz = pojo1.getClass(); |
| | | Field[] fields = pojo1.getClass().getDeclaredFields(); |
| | | int i = 1; |
| | | for (Field field : fields) { |
| | | if ("serialVersionUID".equals(field.getName())) { |
| | | continue; |
| | | } |
| | | PropertyDescriptor pd = new PropertyDescriptor(field.getName(), clazz); |
| | | Method getMethod = pd.getReadMethod(); |
| | | Object o1 = getMethod.invoke(pojo1); |
| | | Object o2 = pojo2.get(StrKit.firstCharToLowerCase(getMethod.getName().substring(3))); |
| | | if (o1 == null || o2 == null) { |
| | | continue; |
| | | } |
| | | if (o1 instanceof Date) { |
| | | o1 = DateUtil.getDay((Date) o1); |
| | | } else if (o1 instanceof Integer) { |
| | | o2 = Integer.parseInt(o2.toString()); |
| | | } |
| | | if (!o1.toString().equals(o2.toString())) { |
| | | if (i != 1) { |
| | | str += separator; |
| | | } |
| | | String fieldName = dictMap.get(field.getName()); |
| | | String fieldWarpperMethodName = dictMap.getFieldWarpperMethodName(field.getName()); |
| | | if (fieldWarpperMethodName != null) { |
| | | Object o1Warpper = DictFieldWarpperFactory.createFieldWarpper(o1, fieldWarpperMethodName); |
| | | Object o2Warpper = DictFieldWarpperFactory.createFieldWarpper(o2, fieldWarpperMethodName); |
| | | str += "字段名称:" + fieldName + ",旧值:" + o1Warpper + ",新值:" + o2Warpper; |
| | | } else { |
| | | str += "字段名称:" + fieldName + ",旧值:" + o1 + ",新值:" + o2; |
| | | } |
| | | i++; |
| | | } |
| | | } |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | return str; |
| | | } |
| | | |
| | | /** |
| | | * 比较两个对象pojo1和pojo2,并输出不一致信息 |
| | | * |
| | | * @author stylefeng |
| | | * @Date 2017/5/9 19:34 |
| | | */ |
| | | public static String contrastObjByName(Class dictClass, String key, Object pojo1, Map<String, String> pojo2) throws IllegalAccessException, InstantiationException { |
| | | AbstractDictMap dictMap = (AbstractDictMap) dictClass.newInstance(); |
| | | String str = parseMutiKey(dictMap, key, pojo2) + separator; |
| | | try { |
| | | Class clazz = pojo1.getClass(); |
| | | Field[] fields = pojo1.getClass().getDeclaredFields(); |
| | | int i = 1; |
| | | for (Field field : fields) { |
| | | if ("serialVersionUID".equals(field.getName())) { |
| | | continue; |
| | | } |
| | | String prefix = "get"; |
| | | int prefixLength = 3; |
| | | if (field.getType().getName().equals("java.lang.Boolean")) { |
| | | prefix = "is"; |
| | | prefixLength = 2; |
| | | } |
| | | Method getMethod = null; |
| | | try { |
| | | getMethod = clazz.getDeclaredMethod(prefix + StrKit.firstCharToUpperCase(field.getName())); |
| | | } catch (java.lang.NoSuchMethodException e) { |
| | | System.err.println("this className:" + clazz.getName() + " is not methodName: " + e.getMessage()); |
| | | continue; |
| | | } |
| | | Object o1 = getMethod.invoke(pojo1); |
| | | Object o2 = pojo2.get(StrKit.firstCharToLowerCase(getMethod.getName().substring(prefixLength))); |
| | | if (o1 == null || o2 == null) { |
| | | continue; |
| | | } |
| | | if (o1 instanceof Date) { |
| | | o1 = DateUtil.getDay((Date) o1); |
| | | } else if (o1 instanceof Integer) { |
| | | o2 = Integer.parseInt(o2.toString()); |
| | | } |
| | | if (!o1.toString().equals(o2.toString())) { |
| | | if (i != 1) { |
| | | str += separator; |
| | | } |
| | | String fieldName = dictMap.get(field.getName()); |
| | | String fieldWarpperMethodName = dictMap.getFieldWarpperMethodName(field.getName()); |
| | | if (fieldWarpperMethodName != null) { |
| | | Object o1Warpper = DictFieldWarpperFactory.createFieldWarpper(o1, fieldWarpperMethodName); |
| | | Object o2Warpper = DictFieldWarpperFactory.createFieldWarpper(o2, fieldWarpperMethodName); |
| | | str += "字段名称:" + fieldName + ",旧值:" + o1Warpper + ",新值:" + o2Warpper; |
| | | } else { |
| | | str += "字段名称:" + fieldName + ",旧值:" + o1 + ",新值:" + o2; |
| | | } |
| | | i++; |
| | | } |
| | | } |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | return str; |
| | | } |
| | | |
| | | /** |
| | | * 解析多个key(逗号隔开的) |
| | | * |
| | | * @author stylefeng |
| | | * @Date 2017/5/16 22:19 |
| | | */ |
| | | public static String parseMutiKey(AbstractDictMap dictMap, String key, Map<String, String> requests) { |
| | | StringBuilder sb = new StringBuilder(); |
| | | if (key.indexOf(",") != -1) { |
| | | String[] keys = key.split(","); |
| | | for (String item : keys) { |
| | | String fieldWarpperMethodName = dictMap.getFieldWarpperMethodName(item); |
| | | String value = requests.get(item); |
| | | if (fieldWarpperMethodName != null) { |
| | | Object valueWarpper = DictFieldWarpperFactory.createFieldWarpper(value, fieldWarpperMethodName); |
| | | sb.append(dictMap.get(item) + "=" + valueWarpper + ","); |
| | | } else { |
| | | sb.append(dictMap.get(item) + "=" + value + ","); |
| | | } |
| | | } |
| | | return StrKit.removeSuffix(sb.toString(), ","); |
| | | } else { |
| | | String fieldWarpperMethodName = dictMap.getFieldWarpperMethodName(key); |
| | | String value = requests.get(key); |
| | | if (fieldWarpperMethodName != null) { |
| | | Object valueWarpper = DictFieldWarpperFactory.createFieldWarpper(value, fieldWarpperMethodName); |
| | | sb.append(dictMap.get(key) + "=" + valueWarpper); |
| | | } else { |
| | | sb.append(dictMap.get(key) + "=" + value); |
| | | } |
| | | return sb.toString(); |
| | | } |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.core.util; |
| | | |
| | | import com.stylefeng.guns.core.common.constant.JwtConstants; |
| | | import io.jsonwebtoken.*; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import java.util.Date; |
| | | import java.util.HashMap; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * <p>jwt token工具类</p> |
| | | * <pre> |
| | | * jwt的claim里一般包含以下几种数据: |
| | | * 1. iss -- token的发行者 |
| | | * 2. sub -- 该JWT所面向的用户 |
| | | * 3. aud -- 接收该JWT的一方 |
| | | * 4. exp -- token的失效时间 |
| | | * 5. nbf -- 在此时间段之前,不会被处理 |
| | | * 6. iat -- jwt发布时间 |
| | | * 7. jti -- jwt唯一标识,防止重复使用 |
| | | * </pre> |
| | | * |
| | | * @author fengshuonan |
| | | * @Date 2017/8/25 10:59 |
| | | */ |
| | | @Component |
| | | public class JwtTokenUtil { |
| | | |
| | | /** |
| | | * 获取用户名从token中 |
| | | */ |
| | | public static String getUsernameFromToken(String token) { |
| | | return getClaimFromToken(token).getSubject(); |
| | | } |
| | | |
| | | /** |
| | | * 获取jwt发布时间 |
| | | */ |
| | | public static Date getIssuedAtDateFromToken(String token) { |
| | | return getClaimFromToken(token).getIssuedAt(); |
| | | } |
| | | |
| | | /** |
| | | * 获取jwt失效时间 |
| | | */ |
| | | public static Date getExpirationDateFromToken(String token) { |
| | | return getClaimFromToken(token).getExpiration(); |
| | | } |
| | | |
| | | /** |
| | | * 获取jwt接收者 |
| | | */ |
| | | public static String getAudienceFromToken(String token) { |
| | | return getClaimFromToken(token).getAudience(); |
| | | } |
| | | |
| | | /** |
| | | * 获取私有的jwt claim |
| | | */ |
| | | public static String getPrivateClaimFromToken(String token, String key) { |
| | | return getClaimFromToken(token).get(key).toString(); |
| | | } |
| | | |
| | | /** |
| | | * 获取jwt的payload部分 |
| | | */ |
| | | public static Claims getClaimFromToken(String token) { |
| | | return Jwts.parser() |
| | | .setSigningKey(JwtConstants.SECRET) |
| | | .parseClaimsJws(token) |
| | | .getBody(); |
| | | } |
| | | |
| | | /** |
| | | * 解析token是否正确,不正确会报异常<br> |
| | | */ |
| | | public static void parseToken(String token) throws JwtException { |
| | | Jwts.parser().setSigningKey(JwtConstants.SECRET).parseClaimsJws(token).getBody(); |
| | | } |
| | | |
| | | /** |
| | | * <pre> |
| | | * 验证token是否失效 |
| | | * true:过期 false:没过期 |
| | | * </pre> |
| | | */ |
| | | public static Boolean isTokenExpired(String token) { |
| | | try { |
| | | final Date expiration = getExpirationDateFromToken(token); |
| | | return expiration.before(new Date()); |
| | | } catch (ExpiredJwtException expiredJwtException) { |
| | | return true; |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 生成token(通过用户名和签名时候用的随机数) |
| | | */ |
| | | public static String generateToken(String userId) { |
| | | Map<String, Object> claims = new HashMap<>(); |
| | | return doGenerateToken(claims, userId); |
| | | } |
| | | |
| | | /** |
| | | * 生成token |
| | | */ |
| | | private static String doGenerateToken(Map<String, Object> claims, String subject) { |
| | | final Date createdDate = new Date(); |
| | | final Date expirationDate = new Date(createdDate.getTime() + JwtConstants.EXPIRATION * 1000); |
| | | |
| | | return Jwts.builder() |
| | | .setClaims(claims) |
| | | .setSubject(subject) |
| | | .setIssuedAt(createdDate) |
| | | .setExpiration(expirationDate) |
| | | .signWith(SignatureAlgorithm.HS512, JwtConstants.SECRET) |
| | | .compact(); |
| | | } |
| | | |
| | | /** |
| | | * 获取混淆MD5签名用的随机字符串 |
| | | */ |
| | | public static String getRandomKey() { |
| | | return ToolUtil.getRandomString(6); |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.core.util; |
| | | |
| | | import com.stylefeng.guns.config.properties.GunsProperties; |
| | | |
| | | /** |
| | | * 验证码工具类 |
| | | */ |
| | | public class KaptchaUtil { |
| | | |
| | | /** |
| | | * 获取验证码开关 |
| | | */ |
| | | public static Boolean getKaptchaOnOff() { |
| | | return SpringContextHolder.getBean(GunsProperties.class).getKaptchaOpen(); |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.api; |
| | | |
| | | import com.stylefeng.guns.core.base.controller.BaseController; |
| | | import com.stylefeng.guns.core.base.tips.ErrorTip; |
| | | import com.stylefeng.guns.core.shiro.ShiroKit; |
| | | import com.stylefeng.guns.core.shiro.ShiroUser; |
| | | import com.stylefeng.guns.core.util.JwtTokenUtil; |
| | | import com.stylefeng.guns.modular.system.dao.UserMapper; |
| | | import com.stylefeng.guns.modular.system.model.User; |
| | | import org.apache.shiro.authc.SimpleAuthenticationInfo; |
| | | import org.apache.shiro.authc.UsernamePasswordToken; |
| | | import org.apache.shiro.authc.credential.HashedCredentialsMatcher; |
| | | import org.apache.shiro.crypto.hash.Md5Hash; |
| | | import org.apache.shiro.util.ByteSource; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RequestMethod; |
| | | import org.springframework.web.bind.annotation.RequestParam; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | |
| | | import java.util.HashMap; |
| | | |
| | | /** |
| | | * 接口控制器提供 |
| | | * |
| | | * @author stylefeng |
| | | * @Date 2018/7/20 23:39 |
| | | */ |
| | | @RestController |
| | | @RequestMapping("/gunsApi") |
| | | public class ApiController extends BaseController { |
| | | |
| | | @Autowired |
| | | private UserMapper userMapper; |
| | | |
| | | /** |
| | | * api登录接口,通过账号密码获取token |
| | | */ |
| | | @RequestMapping("/auth") |
| | | public Object auth(@RequestParam("username") String username, |
| | | @RequestParam("password") String password) { |
| | | |
| | | //封装请求账号密码为shiro可验证的token |
| | | UsernamePasswordToken usernamePasswordToken = new UsernamePasswordToken(username, password.toCharArray()); |
| | | |
| | | //获取数据库中的账号密码,准备比对 |
| | | User user = userMapper.getByAccount(username); |
| | | |
| | | String credentials = user.getPassword(); |
| | | String salt = user.getSalt(); |
| | | ByteSource credentialsSalt = new Md5Hash(salt); |
| | | SimpleAuthenticationInfo simpleAuthenticationInfo = new SimpleAuthenticationInfo( |
| | | new ShiroUser(), credentials, credentialsSalt, ""); |
| | | |
| | | //校验用户账号密码 |
| | | HashedCredentialsMatcher md5CredentialsMatcher = new HashedCredentialsMatcher(); |
| | | md5CredentialsMatcher.setHashAlgorithmName(ShiroKit.hashAlgorithmName); |
| | | md5CredentialsMatcher.setHashIterations(ShiroKit.hashIterations); |
| | | boolean passwordTrueFlag = md5CredentialsMatcher.doCredentialsMatch( |
| | | usernamePasswordToken, simpleAuthenticationInfo); |
| | | |
| | | if (passwordTrueFlag) { |
| | | HashMap<String, Object> result = new HashMap<>(); |
| | | result.put("token", JwtTokenUtil.generateToken(String.valueOf(user.getId()))); |
| | | return result; |
| | | } else { |
| | | return new ErrorTip(500, "账号密码错误!"); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 测试接口是否走鉴权 |
| | | */ |
| | | @RequestMapping(value = "/test", method = RequestMethod.POST) |
| | | public Object test() { |
| | | return SUCCESS_TIP; |
| | | } |
| | | |
| | | } |
| | | |
New file |
| | |
| | | package com.stylefeng.guns.modular.api; |
| | | |
| | | |
| | | import com.stylefeng.guns.modular.system.service.ICarService; |
| | | import com.stylefeng.guns.modular.system.service.IDispatchService; |
| | | import com.stylefeng.guns.modular.system.util.ResultUtil; |
| | | import com.stylefeng.guns.modular.system.warpper.CarInfoWarpper; |
| | | import com.stylefeng.guns.modular.system.warpper.CarListWarpper; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiImplicitParam; |
| | | import io.swagger.annotations.ApiImplicitParams; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.PostMapping; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.ResponseBody; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | |
| | | /** |
| | | * 车辆控制器 |
| | | */ |
| | | @Api |
| | | @RestController |
| | | @RequestMapping("/api/car") |
| | | public class CarController { |
| | | |
| | | @Autowired |
| | | private ICarService carService; |
| | | |
| | | @Autowired |
| | | private IDispatchService dispatchService; |
| | | |
| | | |
| | | /** |
| | | * 获取车辆管理 |
| | | * @param request |
| | | * @return |
| | | */ |
| | | @ResponseBody |
| | | @PostMapping("/queryCarList") |
| | | @ApiOperation(value = "获取车辆列表", tags = {"调度端-车辆管理"}, notes = "") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") |
| | | }) |
| | | public ResultUtil<List<CarListWarpper>> queryCarList(HttpServletRequest request){ |
| | | try { |
| | | Integer uid = dispatchService.getUserIdFormRedis(request); |
| | | if(null == uid){ |
| | | return ResultUtil.tokenErr(); |
| | | } |
| | | List<Map<String, Object>> list = carService.queryCarList(uid); |
| | | return ResultUtil.success(CarListWarpper.getCarListWarppers(list)); |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | return ResultUtil.runErr(); |
| | | } |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 获取车辆详情 |
| | | * @param id |
| | | * @return |
| | | */ |
| | | @ResponseBody |
| | | @PostMapping("/queryCarInfo") |
| | | @ApiOperation(value = "获取车辆详情", tags = {"调度端-车辆管理"}, notes = "") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(value = "车辆id", name = "id", required = true, dataType = "int"), |
| | | @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") |
| | | }) |
| | | public ResultUtil<CarInfoWarpper> queryCarInfo(Integer id){ |
| | | try { |
| | | Map<String, Object> map = carService.queryCarInfo(id); |
| | | return ResultUtil.success(CarInfoWarpper.getCarInfoWarpper(map)); |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | return ResultUtil.runErr(); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 重新绑定/解绑 车辆司机关系 |
| | | * @param id |
| | | * @param driverId |
| | | * @return |
| | | */ |
| | | @ResponseBody |
| | | @PostMapping("/rebindDriver") |
| | | @ApiOperation(value = "重新绑定/解绑 车辆司机关系", tags = {"调度端-车辆管理"}, notes = "") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(value = "车辆id", name = "id", required = true, dataType = "int"), |
| | | @ApiImplicitParam(value = "司机id", name = "driverId", required = false, dataType = "int"), |
| | | @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") |
| | | }) |
| | | public ResultUtil rebindDriver(Integer id, Integer driverId){ |
| | | try { |
| | | return carService.rebindDriver(id, driverId); |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | return ResultUtil.runErr(); |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.api; |
| | | |
| | | |
| | | import com.stylefeng.guns.modular.system.service.IDispatchService; |
| | | import com.stylefeng.guns.modular.system.util.ResultUtil; |
| | | import com.stylefeng.guns.modular.system.warpper.LoginWarpper; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiImplicitParam; |
| | | import io.swagger.annotations.ApiImplicitParams; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import javax.servlet.http.HttpServletRequest; |
| | | |
| | | /** |
| | | * 调度控制器 |
| | | */ |
| | | @Api |
| | | @RestController |
| | | @RequestMapping("") |
| | | public class DispatchController { |
| | | |
| | | @Autowired |
| | | private IDispatchService dispatchService; |
| | | |
| | | |
| | | /** |
| | | * 账号密码登录 |
| | | * @param account |
| | | * @param password |
| | | * @return |
| | | */ |
| | | @ResponseBody |
| | | @PostMapping("/base/dispatch/dispatchLogin") |
| | | @ApiOperation(value = "账号密码登录", tags = {"调度端-登录"}, notes = "") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(value = "登录账号", name = "account", required = true, dataType = "String"), |
| | | @ApiImplicitParam(value = "登录密码", name = "password", required = true, dataType = "String") |
| | | }) |
| | | public ResultUtil<LoginWarpper> dispatchLogin(String account, String password){ |
| | | try { |
| | | return dispatchService.dispatchLogin(account, password); |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | return ResultUtil.runErr(); |
| | | } |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 修改推单配置 |
| | | * @param pushOrder |
| | | * @param request |
| | | * @return |
| | | */ |
| | | @ResponseBody |
| | | @RequestMapping(value = "/api/dispatch/editPushOrder", method = RequestMethod.POST) |
| | | @ApiOperation(value = "修改推单配置", tags = {"调度端-设置"}, notes = "") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(value = "推单配置(1=接收,2=不接收)", name = "pushOrder", required = true, dataType = "int"), |
| | | @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") |
| | | }) |
| | | public ResultUtil editPushOrder(Integer pushOrder, HttpServletRequest request){ |
| | | try { |
| | | Integer uid = dispatchService.getUserIdFormRedis(request); |
| | | if(null == uid){ |
| | | return ResultUtil.tokenErr(); |
| | | } |
| | | return dispatchService.editPushOrder(pushOrder, uid); |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | return ResultUtil.runErr(); |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.api; |
| | | |
| | | |
| | | import com.stylefeng.guns.modular.system.service.IDispatchService; |
| | | import com.stylefeng.guns.modular.system.service.IDriverService; |
| | | import com.stylefeng.guns.modular.system.util.ResultUtil; |
| | | import com.stylefeng.guns.modular.system.warpper.BaseWarpper; |
| | | import com.stylefeng.guns.modular.system.warpper.LineShiftWarpper; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiImplicitParam; |
| | | import io.swagger.annotations.ApiImplicitParams; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RequestMethod; |
| | | import org.springframework.web.bind.annotation.ResponseBody; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | @Api |
| | | @RestController |
| | | @RequestMapping("/api/driver") |
| | | public class DriverController { |
| | | |
| | | @Autowired |
| | | private IDriverService driverService; |
| | | |
| | | @Autowired |
| | | private IDispatchService dispatchService; |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | /** |
| | | * 获取排班管理中可更换的司机列表 |
| | | * 1.司机必须预约了该班次, |
| | | * 2.司机的剩余座位数必须班次订单总人数 |
| | | * |
| | | * @param lineShiftId |
| | | * @param time |
| | | * @param lineShiftDriverId |
| | | * @param driverId |
| | | * @return |
| | | */ |
| | | @ResponseBody |
| | | @RequestMapping(value = "/queryLineShiftDriver", method = RequestMethod.POST) |
| | | @ApiOperation(value = "获取可更换的司机列表", tags = {"调度端-排班管理"}, notes = "") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(value = "排班数据id", name = "lineShiftId", required = true, dataType = "int"), |
| | | @ApiImplicitParam(value = "查询日期(2020-10-13)", name = "time", required = true, dataType = "string"), |
| | | @ApiImplicitParam(value = "排班详情数据id", name = "lineShiftDriverId", required = true, dataType = "int"), |
| | | @ApiImplicitParam(value = "司机id", name = "driverId", required = true, dataType = "int"), |
| | | @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") |
| | | }) |
| | | public ResultUtil<List<BaseWarpper>> queryLineShiftDriver(Integer lineShiftId, String time, Integer lineShiftDriverId, Integer driverId){ |
| | | try { |
| | | List<Map<String, Object>> list = driverService.queryLineShiftDriver(lineShiftId, time, lineShiftDriverId, driverId); |
| | | return ResultUtil.success(BaseWarpper.getBaseWarppers(list)); |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | return ResultUtil.runErr(); |
| | | } |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 获取没有排班给定日期班次的司机 |
| | | * @param lineShiftId |
| | | * @param time |
| | | * @return |
| | | */ |
| | | @ResponseBody |
| | | @RequestMapping(value = "/queryNotInLineShiftDriver", method = RequestMethod.POST) |
| | | @ApiOperation(value = "获取没有排班给定日期班次的司机", tags = {"调度端-排班管理"}, notes = "") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(value = "排班数据id", name = "lineShiftId", required = true, dataType = "int"), |
| | | @ApiImplicitParam(value = "查询日期(2020-10-13)", name = "time", required = true, dataType = "string"), |
| | | @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") |
| | | }) |
| | | public ResultUtil<List<BaseWarpper>> queryNotInLineShiftDriver(Integer lineShiftId, String time){ |
| | | try { |
| | | List<Map<String, Object>> list = driverService.queryNotInLineShiftDriver(lineShiftId, time); |
| | | return ResultUtil.success(BaseWarpper.getBaseWarppers(list)); |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | return ResultUtil.runErr(); |
| | | } |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 调度班次中添加司机操作 |
| | | * @param lineShiftId |
| | | * @param time |
| | | * @param driverId |
| | | * @return |
| | | */ |
| | | @ResponseBody |
| | | @RequestMapping(value = "/addDriverForLineShift", method = RequestMethod.POST) |
| | | @ApiOperation(value = "调度班次中添加司机操作", tags = {"调度端-排班管理"}, notes = "") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(value = "排班数据id", name = "lineShiftId", required = true, dataType = "int"), |
| | | @ApiImplicitParam(value = "查询日期(2020-10-13)", name = "time", required = true, dataType = "string"), |
| | | @ApiImplicitParam(value = "司机id", name = "driverId", required = true, dataType = "int"), |
| | | @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") |
| | | }) |
| | | public ResultUtil addDriverForLineShift(Integer lineShiftId, String time, Integer driverId){ |
| | | try { |
| | | return driverService.addDriverForLineShift(lineShiftId, time, driverId); |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | return ResultUtil.runErr(); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 获取改派可接单的司机列表 |
| | | * @param reassignId |
| | | * @param request |
| | | * @return |
| | | */ |
| | | @ResponseBody |
| | | @RequestMapping(value = "/queryReassignDriver", method = RequestMethod.POST) |
| | | @ApiOperation(value = "获取改派可接单的司机列表", tags = {"调度端-新改派订单"}, notes = "") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(value = "改派订单id", name = "reassignId", required = true, dataType = "int"), |
| | | @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") |
| | | }) |
| | | public ResultUtil<List<BaseWarpper>> queryReassignDriver(Integer reassignId, HttpServletRequest request){ |
| | | try { |
| | | Integer uid = dispatchService.getUserIdFormRedis(request); |
| | | if(null == uid){ |
| | | return ResultUtil.tokenErr(); |
| | | } |
| | | List<Map<String, Object>> list = driverService.queryReassignDriver(reassignId, uid); |
| | | return ResultUtil.success(BaseWarpper.getBaseWarppers(list)); |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | return ResultUtil.runErr(); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 获取所以没有服务的司机列表 |
| | | * @param request |
| | | * @return |
| | | */ |
| | | @ResponseBody |
| | | @RequestMapping(value = "/queryAllDriver", method = RequestMethod.POST) |
| | | @ApiOperation(value = "获取所以没有服务的司机列表", tags = {"调度端-车辆管理"}, notes = "") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") |
| | | }) |
| | | public ResultUtil<List<BaseWarpper>> queryAllDriver(HttpServletRequest request){ |
| | | try { |
| | | Integer uid = dispatchService.getUserIdFormRedis(request); |
| | | if(null == uid){ |
| | | return ResultUtil.tokenErr(); |
| | | } |
| | | List<Map<String, Object>> list = driverService.queryAllDriver(uid); |
| | | return ResultUtil.success(BaseWarpper.getBaseWarppers(list)); |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | return ResultUtil.runErr(); |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.api; |
| | | |
| | | import com.stylefeng.guns.modular.system.service.IDispatchService; |
| | | import com.stylefeng.guns.modular.system.service.ILineService; |
| | | import com.stylefeng.guns.modular.system.service.ILineShiftService; |
| | | import com.stylefeng.guns.modular.system.service.IOrderCrossCityService; |
| | | import com.stylefeng.guns.modular.system.util.ResultUtil; |
| | | import com.stylefeng.guns.modular.system.warpper.BaseWarpper; |
| | | import com.stylefeng.guns.modular.system.warpper.RosterWarpper; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiImplicitParam; |
| | | import io.swagger.annotations.ApiImplicitParams; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * 线路控制器 |
| | | */ |
| | | @Api |
| | | @RestController |
| | | @RequestMapping("/api/line") |
| | | public class LineController { |
| | | |
| | | @Autowired |
| | | private ILineService lineService; |
| | | |
| | | @Autowired |
| | | private IDispatchService dispatchService; |
| | | |
| | | @Autowired |
| | | private ILineShiftService lineShiftService; |
| | | |
| | | @Autowired |
| | | private IOrderCrossCityService orderCrossCityService; |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | /** |
| | | * 获取所有线路 |
| | | * @param request |
| | | * @return |
| | | */ |
| | | @ResponseBody |
| | | @PostMapping("/queryLine") |
| | | @ApiOperation(value = "获取所有线路", tags = {"调度端-订单管理", "调度端-排班管理"}, notes = "") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") |
| | | }) |
| | | public ResultUtil<List<BaseWarpper>> queryLine(HttpServletRequest request){ |
| | | try { |
| | | Integer uid = dispatchService.getUserIdFormRedis(request); |
| | | if(null == uid){ |
| | | return ResultUtil.tokenErr(); |
| | | } |
| | | List<Map<String, Object>> list = lineService.queryLine(uid); |
| | | return ResultUtil.success(BaseWarpper.getBaseWarppers(list)); |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | return ResultUtil.runErr(); |
| | | } |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 根据选择的起点和终点获取线路 |
| | | * @param startId |
| | | * @param endId |
| | | * @return |
| | | */ |
| | | @ResponseBody |
| | | @RequestMapping(value = "/queryLines", method = RequestMethod.POST) |
| | | @ApiOperation(value = "根据选择的起点和终点获取线路", tags = {"调度端-添加订单"}, notes = "") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(value = "起始站点id", name = "startId", required = true, dataType = "int"), |
| | | @ApiImplicitParam(value = "终点站点id", name = "endId", required = true, dataType = "int"), |
| | | @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") |
| | | }) |
| | | public ResultUtil<List<BaseWarpper>> queryLines(Integer startId, Integer endId, HttpServletRequest request){ |
| | | try { |
| | | Integer uid = dispatchService.getUserIdFormRedis(request); |
| | | if(null == uid){ |
| | | return ResultUtil.tokenErr(); |
| | | } |
| | | List<Map<String, Object>> list = lineService.queryLines(startId, endId, uid); |
| | | return ResultUtil.success(BaseWarpper.getBaseWarppers(list)); |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | return ResultUtil.runErr(); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 获取线路排班数据 |
| | | * @param lineId |
| | | * @return |
| | | */ |
| | | @ResponseBody |
| | | @RequestMapping(value = "/queryLineShiftByLineId", method = RequestMethod.POST) |
| | | @ApiOperation(value = "获取线路排班数据", tags = {"调度端-排班管理"}, notes = "") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(value = "线路id", name = "lineId", required = true, dataType = "int"), |
| | | @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") |
| | | }) |
| | | public ResultUtil<List<BaseWarpper>> queryByLineId(Integer lineId){ |
| | | try { |
| | | List<Map<String, Object>> list = lineShiftService.queryByLineId(lineId); |
| | | return ResultUtil.success(BaseWarpper.getBaseWarppers(list)); |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | return ResultUtil.runErr(); |
| | | } |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 获取排班详情 |
| | | * @param lineShiftId |
| | | * @param time |
| | | * @return |
| | | */ |
| | | @ResponseBody |
| | | @RequestMapping(value = "/queryLineShiftInfo", method = RequestMethod.POST) |
| | | @ApiOperation(value = "获取排班详情", tags = {"调度端-排班管理"}, notes = "") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(value = "排班数据id", name = "lineShiftId", required = true, dataType = "int"), |
| | | @ApiImplicitParam(value = "查询日期(2020-10-13)", name = "time", required = true, dataType = "string"), |
| | | @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") |
| | | }) |
| | | public ResultUtil<List<RosterWarpper>> queryLineShiftInfo(Integer lineShiftId, String time){ |
| | | try { |
| | | List<Map<String, Object>> list = lineShiftService.queryLineShiftInfo(lineShiftId, time); |
| | | return ResultUtil.success(RosterWarpper.getRosterWarppers(list)); |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | return ResultUtil.runErr(); |
| | | } |
| | | } |
| | | |
| | | @ResponseBody |
| | | @RequestMapping(value = "/queryOrderMoney", method = RequestMethod.POST) |
| | | @ApiOperation(value = "获取跨城的支付金额", tags = {"调度端-添加订单"}, notes = "distance:距离数(米),price:支付金额") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(value = "起点坐标(103.32123,30.6232)", name = "startLonLat", required = true, dataType = "int"), |
| | | @ApiImplicitParam(value = "终点坐标(103.32123,30.6232)", name = "endLonLat", required = true, dataType = "int"), |
| | | @ApiImplicitParam(value = "乘车人数", name = "peopleNumber", required = true, dataType = "int"), |
| | | @ApiImplicitParam(value = "出行方式(1=拼车,2=包车)", name = "travelMode", required = true, dataType = "int"), |
| | | @ApiImplicitParam(value = "线路id", name = "lineId", required = true, dataType = "int"), |
| | | @ApiImplicitParam(value = "服务车型id", name = "serverCarModelId", required = true, dataType = "int"), |
| | | @ApiImplicitParam(value = "车辆总座位数", name = "totalSeat", required = true, dataType = "int"), |
| | | @ApiImplicitParam(value = "座位编号(1,3,4)", name = "seatNumber", required = true, dataType = "int") |
| | | }) |
| | | public ResultUtil queryOrderMoney(String startLonLat, String endLonLat, Integer peopleNumber, Integer travelMode, |
| | | Integer lineId, Integer serverCarModelId, Integer totalSeat, String seatNumber){ |
| | | try { |
| | | return orderCrossCityService.queryOrderMoney(startLonLat, endLonLat, peopleNumber, travelMode, lineId, serverCarModelId, totalSeat, seatNumber); |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | return ResultUtil.runErr(); |
| | | } |
| | | } |
| | | |
| | | |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.api; |
| | | |
| | | |
| | | import com.stylefeng.guns.modular.system.service.ILineSiteService; |
| | | import com.stylefeng.guns.modular.system.util.ResultUtil; |
| | | import com.stylefeng.guns.modular.system.warpper.BaseWarpper; |
| | | import com.stylefeng.guns.modular.system.warpper.LineSiteWarpper; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiImplicitParam; |
| | | import io.swagger.annotations.ApiImplicitParams; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RequestMethod; |
| | | import org.springframework.web.bind.annotation.ResponseBody; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * 线路排班控制器 |
| | | */ |
| | | @Api |
| | | @RestController |
| | | @RequestMapping("/api/lineSite") |
| | | public class LineSiteController { |
| | | |
| | | @Autowired |
| | | private ILineSiteService lineSiteService; |
| | | |
| | | |
| | | |
| | | |
| | | @ResponseBody |
| | | @RequestMapping(value = "/queryDriver", method = RequestMethod.POST) |
| | | @ApiOperation(value = "根据线路id获取线路排班数据", tags = {"调度端-添加订单"}, notes = "") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(value = "线路id", name = "lineId", required = true, dataType = "int"), |
| | | @ApiImplicitParam(value = "查询天(2020-09-03)", name = "day", required = true, dataType = "string"), |
| | | @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") |
| | | }) |
| | | public ResultUtil<List<LineSiteWarpper>> queryDriver(Integer lineId, String day){ |
| | | try { |
| | | List<Map<String, Object>> list = lineSiteService.queryDriver(lineId, day); |
| | | return ResultUtil.success(LineSiteWarpper.getLineSiteWarppers(list)); |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | return ResultUtil.runErr(); |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | @ResponseBody |
| | | @RequestMapping(value = "/querySeat", method = RequestMethod.POST) |
| | | @ApiOperation(value = "根据司机的排班id获取剩余座位数据", tags = {"调度端-添加订单"}, notes = "") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(value = "司机排班id", name = "id", required = true, dataType = "int"), |
| | | @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") |
| | | }) |
| | | public ResultUtil<BaseWarpper> querySeat(Integer id){ |
| | | try { |
| | | Map<String, Object> map = lineSiteService.querySeat(id); |
| | | return ResultUtil.success(BaseWarpper.getBaseWarpper(map)); |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | return ResultUtil.runErr(); |
| | | } |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.api; |
| | | |
| | | |
| | | import com.stylefeng.guns.core.util.ToolUtil; |
| | | import com.stylefeng.guns.modular.system.model.OrderCrossCity; |
| | | import com.stylefeng.guns.modular.system.model.OrderPosition; |
| | | import com.stylefeng.guns.modular.system.model.OrderPrivateCar; |
| | | import com.stylefeng.guns.modular.system.model.Reassign; |
| | | import com.stylefeng.guns.modular.system.service.*; |
| | | //import com.stylefeng.guns.modular.system.util.ICBCPayUtil; |
| | | import com.stylefeng.guns.modular.system.util.PayMoneyUtil; |
| | | import com.stylefeng.guns.modular.system.util.ResultUtil; |
| | | import com.stylefeng.guns.modular.system.util.SystemException; |
| | | import com.stylefeng.guns.modular.system.warpper.BaseWarpper; |
| | | import com.stylefeng.guns.modular.system.warpper.OrderCrossCityWarpper; |
| | | import com.stylefeng.guns.modular.system.warpper.OrderInfoWarpper; |
| | | import com.stylefeng.guns.modular.system.warpper.OrderListWarpper; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiImplicitParam; |
| | | import io.swagger.annotations.ApiImplicitParams; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.io.PrintWriter; |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * 订单相关 |
| | | */ |
| | | @Api |
| | | @RestController |
| | | @RequestMapping("") |
| | | public class OrderController { |
| | | |
| | | @Autowired |
| | | private IOrderCrossCityService orderCrossCityService; |
| | | |
| | | @Autowired |
| | | private IOrderPrivateCarService orderPrivateCarService; |
| | | |
| | | @Autowired |
| | | private IDispatchService dispatchService; |
| | | |
| | | @Autowired |
| | | private IOrderPositionService orderPositionService; |
| | | |
| | | @Autowired |
| | | private PayMoneyUtil payMoneyUtil; |
| | | |
| | | @Autowired |
| | | private IReassignService reassignService; |
| | | |
| | | |
| | | // @Autowired |
| | | // private ICBCPayUtil icbcPayUtil; |
| | | |
| | | |
| | | |
| | | /** |
| | | * 获取订单列表 |
| | | * @param type |
| | | * @param search |
| | | * @param orderSource |
| | | * @param state |
| | | * @param lineId |
| | | * @param pageNum |
| | | * @param size |
| | | * @param request |
| | | * @return |
| | | */ |
| | | @ResponseBody |
| | | @PostMapping("/api/order/queryOrderList") |
| | | @ApiOperation(value = "获取订单列表", tags = {"调度端-订单管理"}, notes = "") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(value = "数据类型(1=专车,2=跨城)", name = "type", required = true, dataType = "int"), |
| | | @ApiImplicitParam(value = "搜索条件", name = "search", required = false, dataType = "String"), |
| | | @ApiImplicitParam(value = "订单来源(1:APP下单,2:扫码下单,3:小程序下单,4:司机下单,5:调度下单)多个以逗号分隔", name = "orderSource", required = false, dataType = "string"), |
| | | @ApiImplicitParam(value = "订单状态(1=待接单,2=待出发,3=待到达预约地点,4=待乘客上车,5=服务中,6=完成服务,7=待支付,8=待评价,9=已完成,10=已取消,11=改派中,12=取消待支付)多个以逗号分隔", name = "state", required = false, dataType = "string"), |
| | | @ApiImplicitParam(value = "线路id(多个以逗号分隔)", name = "lineId", required = false, dataType = "string"), |
| | | @ApiImplicitParam(value = "页码,首页1", name = "pageNum", required = true, dataType = "int"), |
| | | @ApiImplicitParam(value = "页条数", name = "size", required = true, dataType = "int"), |
| | | @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") |
| | | }) |
| | | public ResultUtil<List<OrderListWarpper>> queryOrderList(Integer type, String search, String orderSource, String state, String lineId, Integer pageNum, Integer size, HttpServletRequest request){ |
| | | try { |
| | | Integer uid = dispatchService.getUserIdFormRedis(request); |
| | | if(null == uid){ |
| | | return ResultUtil.tokenErr(); |
| | | } |
| | | List<Map<String, Object>> list = null; |
| | | if(type == 1){//专车 |
| | | list = orderPrivateCarService.queryOrderList(search, orderSource, state, pageNum, size, uid); |
| | | } |
| | | if(type == 2){//跨城 |
| | | list = orderCrossCityService.queryOrderList(search, orderSource, state, lineId, pageNum, size, uid); |
| | | } |
| | | return ResultUtil.success(OrderListWarpper.getOrderListWarppers(list)); |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | return ResultUtil.runErr(); |
| | | } |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 获取订单详情 |
| | | * @param orderId |
| | | * @param orderType |
| | | * @return |
| | | */ |
| | | @ResponseBody |
| | | @PostMapping("/api/order/queryOrderInfo") |
| | | @ApiOperation(value = "获取订单详情", tags = {"调度端-订单管理"}, notes = "") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"), |
| | | @ApiImplicitParam(value = "订单类型(1=专车,2=跨城)", name = "orderType", required = true, dataType = "int"), |
| | | @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") |
| | | }) |
| | | public ResultUtil<OrderInfoWarpper> queryOrderInfo(Integer orderId, Integer orderType){ |
| | | try { |
| | | Map<String, Object> map = null; |
| | | if(orderType == 1){//专车 |
| | | map = orderPrivateCarService.queryOrderInfo(orderId); |
| | | } |
| | | if(orderType == 2){//跨城 |
| | | map = orderCrossCityService.queryOrderInfo(orderId); |
| | | } |
| | | return ResultUtil.success(OrderInfoWarpper.getOrderInfoWarpper(map)); |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | return ResultUtil.runErr(); |
| | | } |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 取消订单 |
| | | * @param orderId |
| | | * @param orderType |
| | | * @return |
| | | */ |
| | | @ResponseBody |
| | | @PostMapping("/api/order/cancelOrder") |
| | | @ApiOperation(value = "取消订单", tags = {"调度端-订单管理"}, notes = "") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"), |
| | | @ApiImplicitParam(value = "订单类型(1=专车,2=跨城)", name = "orderType", required = true, dataType = "int"), |
| | | @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") |
| | | }) |
| | | public ResultUtil cancelOrder(Integer orderId, Integer orderType){ |
| | | try { |
| | | if(orderType == 1){//专车 |
| | | return orderPrivateCarService.cancelOrder(orderId); |
| | | } |
| | | if(orderType == 2){//跨城 |
| | | return orderCrossCityService.cancelOrder(orderId); |
| | | } |
| | | return ResultUtil.success(); |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | return ResultUtil.runErr(); |
| | | } |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 获取订单坐标轨迹数据 |
| | | * @param orderId |
| | | * @param orderType |
| | | * @return |
| | | */ |
| | | @ResponseBody |
| | | @PostMapping("/api/order/queryOrderPosition") |
| | | @ApiOperation(value = "获取订单坐标", tags = {"调度端-订单管理"}, notes = "") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"), |
| | | @ApiImplicitParam(value = "订单类型(1=专车,3=跨城)", name = "orderType", required = true, dataType = "int"), |
| | | @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") |
| | | }) |
| | | public ResultUtil<List<BaseWarpper>> queryOrderPosition(Integer orderId, Integer orderType){ |
| | | try { |
| | | List<OrderPosition> orderPositions = orderPositionService.queryPosition(orderId, orderType); |
| | | List<BaseWarpper> list = new ArrayList<>(); |
| | | for(OrderPosition orderPosition : orderPositions){ |
| | | BaseWarpper baseWarpper = new BaseWarpper(); |
| | | baseWarpper.setLon(Double.valueOf(orderPosition.getLon())); |
| | | baseWarpper.setLat(Double.valueOf(orderPosition.getLat())); |
| | | list.add(baseWarpper); |
| | | } |
| | | return ResultUtil.success(list); |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | return ResultUtil.runErr(); |
| | | } |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 跨城下单操作 |
| | | * @param orderCrossCityWarpper |
| | | * @param request |
| | | * @return |
| | | */ |
| | | @ResponseBody |
| | | @RequestMapping(value = "/api/order/orderCrossCity", method = RequestMethod.POST) |
| | | @ApiOperation(value = "跨城出行下单操作", tags = {"调度端-添加订单"}, notes = "先进行下单操作,再根据返回数据生成收款二维码") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") |
| | | }) |
| | | public ResultUtil<BaseWarpper> orderCrossCity(OrderCrossCityWarpper orderCrossCityWarpper, HttpServletRequest request){ |
| | | try { |
| | | Integer uid = dispatchService.getUserIdFormRedis(request); |
| | | if(null == uid){ |
| | | return ResultUtil.tokenErr(); |
| | | } |
| | | return orderCrossCityService.orderCrossCity(orderCrossCityWarpper, uid); |
| | | }catch (SystemException se){ |
| | | return ResultUtil.error(se.getMessage()); |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | return ResultUtil.runErr(); |
| | | } |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 扫码支付成功回调处理 |
| | | * @param request |
| | | * @param response |
| | | */ |
| | | @ResponseBody |
| | | @PostMapping("/base/order/generatePay") |
| | | public void generatePay(HttpServletRequest request, HttpServletResponse response){ |
| | | try { |
| | | // Map<String, String> map = icbcPayUtil.generatePayCallback(request); |
| | | // if(null != map){ |
| | | // String out_trade_no = map.get("out_trade_no"); |
| | | // String order_id = map.get("order_id"); |
| | | // String s = icbcPayUtil.queryGeneratePayState("", order_id); |
| | | // if(s.equals("0")){ |
| | | // icbcPayUtil.answer(response);//回调应答 |
| | | // } |
| | | // if(ToolUtil.isNotEmpty(out_trade_no) && ToolUtil.isNotEmpty(order_id) && s.equals("0")){ |
| | | // String[] split = out_trade_no.split(","); |
| | | // Integer id = Integer.valueOf(split[0]); |
| | | // Integer type = Integer.valueOf(split[1]); |
| | | // switch (type){ |
| | | // case 1: |
| | | // break; |
| | | // case 2: |
| | | // break; |
| | | // case 3: |
| | | // orderCrossCityService.generatePayCallback(id, order_id); |
| | | // break; |
| | | // } |
| | | // } |
| | | // } |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 改派拒绝后的退款回调处理 |
| | | * @param request |
| | | * @param response |
| | | */ |
| | | @ResponseBody |
| | | @PostMapping("/base/order/reassignRefundCallback") |
| | | public void reassignRefundCallback(HttpServletRequest request, HttpServletResponse response){ |
| | | try { |
| | | Map<String, String> map = payMoneyUtil.wxRefundCallback(request); |
| | | if(null != map){ |
| | | String refund_id = map.get("refund_id"); |
| | | String out_refund_no = map.get("out_refund_no"); |
| | | String result = map.get("result"); |
| | | String id = out_refund_no.split("_")[1]; |
| | | |
| | | Reassign reassign = reassignService.selectById(id); |
| | | reassign.setState(5);//拒绝 |
| | | reassign.setCompleteTime(new Date()); |
| | | reassignService.updateById(reassign); |
| | | |
| | | if(reassign.getOrderType() == 1){//专车 |
| | | OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(reassign.getOrderId()); |
| | | orderPrivateCar.setState(orderPrivateCar.getOldState()); |
| | | orderPrivateCar.setOldState(null); |
| | | orderPrivateCarService.updateAllColumnById(orderPrivateCar); |
| | | } |
| | | if(reassign.getOrderType() == 3){//跨城 |
| | | OrderCrossCity orderCrossCity = orderCrossCityService.selectById(reassign.getOrderId()); |
| | | orderCrossCity.setState(orderCrossCity.getOldState()); |
| | | orderCrossCity.setOldState(null); |
| | | orderCrossCityService.updateAllColumnById(orderCrossCity); |
| | | } |
| | | |
| | | PrintWriter out = response.getWriter(); |
| | | out.print(result); |
| | | out.flush(); |
| | | out.close(); |
| | | } |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.api; |
| | | |
| | | import com.stylefeng.guns.modular.system.service.IDispatchService; |
| | | import com.stylefeng.guns.modular.system.service.IReassignService; |
| | | import com.stylefeng.guns.modular.system.util.ResultUtil; |
| | | import com.stylefeng.guns.modular.system.warpper.ReassignInfoWarpper; |
| | | import com.stylefeng.guns.modular.system.warpper.ReassignListWarpper; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiImplicitParam; |
| | | import io.swagger.annotations.ApiImplicitParams; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.PostMapping; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.ResponseBody; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | @Api |
| | | @RestController |
| | | @RequestMapping("") |
| | | public class ReassignController { |
| | | |
| | | @Autowired |
| | | private IReassignService reassignService; |
| | | |
| | | @Autowired |
| | | private IDispatchService dispatchService; |
| | | |
| | | |
| | | /** |
| | | * 调度端修改司机执行改派操作 |
| | | * @param lineShiftId |
| | | * @param time |
| | | * @param driverId |
| | | * @param orderIds |
| | | * @param request |
| | | * @return |
| | | */ |
| | | @ResponseBody |
| | | @PostMapping("/api/reassign/dispatchReassign") |
| | | @ApiOperation(value = "调度端修改司机执行改派操作", tags = {"调度端-排班管理"}, notes = "") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(value = "班次id", name = "lineShiftId", required = true, dataType = "int"), |
| | | @ApiImplicitParam(value = "班次日期(2020-10-13)", name = "time", required = true, dataType = "string"), |
| | | @ApiImplicitParam(value = "新司机id", name = "driverId", required = true, dataType = "int"), |
| | | @ApiImplicitParam(value = "订单id,多个以逗号分隔", name = "orderIds", required = true, dataType = "int"), |
| | | @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") |
| | | }) |
| | | public ResultUtil dispatchReassign(Integer lineShiftId, String time, Integer driverId, String orderIds, HttpServletRequest request){ |
| | | try { |
| | | Integer uid = dispatchService.getUserIdFormRedis(request); |
| | | if(null == uid){ |
| | | return ResultUtil.tokenErr(); |
| | | } |
| | | return reassignService.dispatchReassign(lineShiftId, time, driverId, orderIds, uid); |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | return ResultUtil.runErr(); |
| | | } |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 获取改派的订单列表 |
| | | * @param pageNum |
| | | * @param size |
| | | * @param request |
| | | * @return |
| | | */ |
| | | @ResponseBody |
| | | @PostMapping("/api/reassign/queryApplyReassignList") |
| | | @ApiOperation(value = "获取申请改派的订单列表", tags = {"调度端-新改派订单", "调度端-改派记录"}, notes = "") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(value = "页码(首页1)", name = "pageNum", required = true, dataType = "int"), |
| | | @ApiImplicitParam(value = "页条数", name = "size", required = true, dataType = "int"), |
| | | @ApiImplicitParam(value = "查询状态(1=待处理,2=已处理)", name = "state", required = true, dataType = "int"), |
| | | @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") |
| | | }) |
| | | public ResultUtil<List<ReassignListWarpper>> queryApplyReassignList(Integer state, Integer pageNum, Integer size, HttpServletRequest request){ |
| | | try { |
| | | Integer uid = dispatchService.getUserIdFormRedis(request); |
| | | if(null == uid){ |
| | | return ResultUtil.tokenErr(); |
| | | } |
| | | List<Map<String, Object>> list = reassignService.queryApplyReassignList(state, uid, pageNum, size); |
| | | return ResultUtil.success(ReassignListWarpper.getReassignListWarppers(list)); |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | return ResultUtil.runErr(); |
| | | } |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 获取改派详情 |
| | | * @param id |
| | | * @return |
| | | */ |
| | | @ResponseBody |
| | | @PostMapping("/api/reassign/queryReassignInfo") |
| | | @ApiOperation(value = "获取改派详情", tags = {"调度端-新改派订单", "调度端-改派记录"}, notes = "") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(value = "改派单id", name = "id", required = true, dataType = "int"), |
| | | @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") |
| | | }) |
| | | public ResultUtil<ReassignInfoWarpper> queryReassignInfo(Integer id){ |
| | | try { |
| | | Map<String, Object> map = reassignService.queryReassignInfo(id); |
| | | return ResultUtil.success(ReassignInfoWarpper.getReassignInfoWarpper(map)); |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | return ResultUtil.runErr(); |
| | | } |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 取消改派操作 |
| | | * @param id |
| | | * @param request |
| | | * @return |
| | | */ |
| | | @ResponseBody |
| | | @PostMapping("/api/reassign/cancelReassign") |
| | | @ApiOperation(value = "取消改派操作", tags = {"调度端-新改派订单"}, notes = "") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(value = "改派单id", name = "id", required = true, dataType = "int"), |
| | | @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") |
| | | }) |
| | | public ResultUtil cancelReassign(Integer id, HttpServletRequest request){ |
| | | try { |
| | | Integer uid = dispatchService.getUserIdFormRedis(request); |
| | | if(null == uid){ |
| | | return ResultUtil.tokenErr(); |
| | | } |
| | | return reassignService.cancelReassign(id, uid); |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | return ResultUtil.runErr(); |
| | | } |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 拒绝改派操作 |
| | | * @param id |
| | | * @param request |
| | | * @return |
| | | */ |
| | | @ResponseBody |
| | | @PostMapping("/api/reassign/refuseReassign") |
| | | @ApiOperation(value = "拒绝改派操作", tags = {"调度端-新改派订单"}, notes = "") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(value = "改派单id", name = "id", required = true, dataType = "int"), |
| | | @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") |
| | | }) |
| | | public ResultUtil refuseReassign(Integer id, HttpServletRequest request){ |
| | | try { |
| | | Integer uid = dispatchService.getUserIdFormRedis(request); |
| | | if(null == uid){ |
| | | return ResultUtil.tokenErr(); |
| | | } |
| | | return reassignService.refuseReassign(id, uid); |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | return ResultUtil.runErr(); |
| | | } |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 管理后台调用拒绝改派 |
| | | * @param id |
| | | * @param uid |
| | | * @return |
| | | */ |
| | | @ResponseBody |
| | | @PostMapping("/base/reassign/refuseReassign1") |
| | | public ResultUtil refuseReassign1(Integer id, Integer uid){ |
| | | try { |
| | | return reassignService.refuseReassign(id, uid); |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | return ResultUtil.runErr(); |
| | | } |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 执行改派操作 |
| | | * @param id |
| | | * @param driverId |
| | | * @param request |
| | | * @return |
| | | */ |
| | | @ResponseBody |
| | | @PostMapping("/api/reassign/executeReassign") |
| | | @ApiOperation(value = "执行改派操作", tags = {"调度端-新改派订单"}, notes = "") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(value = "改派单id", name = "id", required = true, dataType = "int"), |
| | | @ApiImplicitParam(value = "司机id", name = "driverId", required = true, dataType = "int"), |
| | | @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") |
| | | }) |
| | | public ResultUtil executeReassign(Integer id, Integer driverId, HttpServletRequest request){ |
| | | try { |
| | | Integer uid = dispatchService.getUserIdFormRedis(request); |
| | | if(null == uid){ |
| | | return ResultUtil.tokenErr(); |
| | | } |
| | | return reassignService.executeReassign(id, driverId, uid); |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | return ResultUtil.runErr(); |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.api; |
| | | |
| | | |
| | | import com.stylefeng.guns.modular.system.service.IDispatchService; |
| | | import com.stylefeng.guns.modular.system.service.ISiteService; |
| | | import com.stylefeng.guns.modular.system.util.ResultUtil; |
| | | import com.stylefeng.guns.modular.system.warpper.LocationWarpper; |
| | | import com.stylefeng.guns.modular.system.warpper.SiteWarpper; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiImplicitParam; |
| | | import io.swagger.annotations.ApiImplicitParams; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RequestMethod; |
| | | import org.springframework.web.bind.annotation.ResponseBody; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | @Api |
| | | @RestController |
| | | @RequestMapping("/api/site") |
| | | public class SiteController { |
| | | |
| | | @Autowired |
| | | private ISiteService siteService; |
| | | |
| | | @Autowired |
| | | private IDispatchService dispatchService; |
| | | |
| | | |
| | | |
| | | /** |
| | | * 获取所有站点 |
| | | * @return |
| | | */ |
| | | @ResponseBody |
| | | @RequestMapping(value = "/querySite", method = RequestMethod.POST) |
| | | @ApiOperation(value = "获取起点和终点的站点", tags = {"调度端-添加订单"}, notes = "") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(value = "起点站点id", name = "startSiteId", required = false, dataType = "int"), |
| | | @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") |
| | | }) |
| | | public ResultUtil<List<SiteWarpper>> querySite(Integer startSiteId, HttpServletRequest request){ |
| | | try { |
| | | Integer uid = dispatchService.getUserIdFormRedis(request); |
| | | if(null == uid){ |
| | | return ResultUtil.tokenErr(); |
| | | } |
| | | List<SiteWarpper> list = siteService.querySite(startSiteId, uid); |
| | | return ResultUtil.success(list); |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | return ResultUtil.runErr(); |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | @ResponseBody |
| | | @RequestMapping(value = "/queryLocation", method = RequestMethod.POST) |
| | | @ApiOperation(value = "根据站点id获取站点的区域范围数据(设置上车点和下车点)", tags = {"调度端-添加订单"}, notes = "") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(value = "站点id", name = "siteId", required = true, dataType = "int"), |
| | | @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") |
| | | }) |
| | | public ResultUtil<List<LocationWarpper>> queryLocation(Integer siteId){ |
| | | try { |
| | | List<Map<String, Object>> list = siteService.queryLocation(siteId); |
| | | return ResultUtil.success(LocationWarpper.getLocationWarppers(list)); |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | return ResultUtil.runErr(); |
| | | } |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 判断一个点是是否在区域范围内 |
| | | * @param siteId |
| | | * @param code |
| | | * @param lonLat |
| | | * @return |
| | | */ |
| | | @ResponseBody |
| | | @RequestMapping(value = "/areaMonitoring", method = RequestMethod.POST) |
| | | @ApiOperation(value = "判断一个点是是否在区域范围内", tags = {"调度端-添加订单"}, notes = "") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(value = "站点id", name = "siteId", required = true, dataType = "int"), |
| | | @ApiImplicitParam(value = "行政区域编号(510100)", name = "code", required = true, dataType = "int"), |
| | | @ApiImplicitParam(value = "经纬度", name = "lonLat", required = true, dataType = "string"), |
| | | @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") |
| | | }) |
| | | public ResultUtil areaMonitoring(Integer siteId, Integer code, String lonLat){ |
| | | try { |
| | | boolean b = siteService.areaMonitoring(siteId, code, lonLat); |
| | | return ResultUtil.success(b ? 1 : -1); |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | return ResultUtil.runErr(); |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.api; |
| | | |
| | | |
| | | import com.stylefeng.guns.modular.system.service.IVersionManagementService; |
| | | import com.stylefeng.guns.modular.system.util.ResultUtil; |
| | | import com.stylefeng.guns.modular.system.warpper.VersionManagementWarpper; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiImplicitParam; |
| | | import io.swagger.annotations.ApiImplicitParams; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RequestMethod; |
| | | import org.springframework.web.bind.annotation.ResponseBody; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | |
| | | import java.util.Map; |
| | | |
| | | @Api |
| | | @RestController |
| | | @RequestMapping("/api/version") |
| | | public class VersionManagementController { |
| | | |
| | | @Autowired |
| | | private IVersionManagementService versionManagementService; |
| | | |
| | | |
| | | /** |
| | | * 获取最新版本 |
| | | * @return |
| | | */ |
| | | @ResponseBody |
| | | @RequestMapping(value = "/queryNewVersion", method = RequestMethod.POST) |
| | | @ApiOperation(value = "获取最新版本", tags = {"调度端-设置"}, notes = "", response = VersionManagementWarpper.class) |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(value = "改派订单id", name = "reassignId", required = true, dataType = "int"), |
| | | }) |
| | | public ResultUtil<Object> queryNewVersion(){ |
| | | try { |
| | | Map<String, Object> map = versionManagementService.queryNewVersion(4); |
| | | return ResultUtil.success(VersionManagementWarpper.getVersionManagementWarpper(map)); |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | return ResultUtil.runErr(); |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.code.controller; |
| | | |
| | | import com.stylefeng.guns.core.base.controller.BaseController; |
| | | import com.stylefeng.guns.core.config.properties.DruidProperties; |
| | | import com.stylefeng.guns.generator.action.config.WebGeneratorConfig; |
| | | import com.stylefeng.guns.generator.action.model.GenQo; |
| | | import com.stylefeng.guns.modular.code.factory.DefaultTemplateFactory; |
| | | import com.stylefeng.guns.modular.code.service.TableService; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Controller; |
| | | import org.springframework.ui.Model; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RequestMethod; |
| | | import org.springframework.web.bind.annotation.ResponseBody; |
| | | |
| | | /** |
| | | * 代码生成控制器 |
| | | * |
| | | * @author fengshuonan |
| | | * @Date 2017年11月30日16:39:19 |
| | | */ |
| | | @Controller |
| | | @RequestMapping("/code") |
| | | public class CodeController extends BaseController { |
| | | |
| | | private static String PREFIX = "/code"; |
| | | |
| | | @Autowired |
| | | private TableService tableService; |
| | | |
| | | @Autowired |
| | | private DruidProperties druidProperties; |
| | | |
| | | /** |
| | | * 跳转到代码生成主页 |
| | | */ |
| | | @RequestMapping("") |
| | | public String blackboard(Model model) { |
| | | model.addAttribute("tables", tableService.getAllTables()); |
| | | model.addAttribute("params", DefaultTemplateFactory.getDefaultParams()); |
| | | model.addAttribute("templates", DefaultTemplateFactory.getDefaultTemplates()); |
| | | return PREFIX + "/code.html"; |
| | | } |
| | | |
| | | /** |
| | | * 生成代码 |
| | | */ |
| | | @ApiOperation("生成代码") |
| | | @RequestMapping(value = "/generate", method = RequestMethod.POST) |
| | | @ResponseBody |
| | | public Object generate(GenQo genQo) { |
| | | genQo.setUrl(druidProperties.getUrl()); |
| | | genQo.setUserName(druidProperties.getUsername()); |
| | | genQo.setPassword(druidProperties.getPassword()); |
| | | WebGeneratorConfig webGeneratorConfig = new WebGeneratorConfig(genQo); |
| | | webGeneratorConfig.doMpGeneration(); |
| | | webGeneratorConfig.doGunsGeneration(); |
| | | return SUCCESS_TIP; |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.code.factory; |
| | | |
| | | |
| | | import com.stylefeng.guns.GunsApplication; |
| | | import com.stylefeng.guns.core.CoreFlag; |
| | | import com.stylefeng.guns.core.util.ToolUtil; |
| | | import com.stylefeng.guns.generator.action.model.GenQo; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * 模板种类构建器 |
| | | * |
| | | * @author fengshuonan |
| | | * @date 2017-12-04-下午2:59 |
| | | */ |
| | | public class DefaultTemplateFactory { |
| | | |
| | | /** |
| | | * 获取所有的模板种类 |
| | | */ |
| | | public static List<Map<String,Object>> getDefaultTemplates(){ |
| | | ArrayList<Map<String, Object>> templates = new ArrayList<>(); |
| | | templates.add(create("controllerSwitch","controller-控制器模板")); |
| | | templates.add(create("entitySwitch","entity-实体模板")); |
| | | templates.add(create("serviceSwitch","service-service模板")); |
| | | templates.add(create("daoSwitch","dao-dao模板")); |
| | | templates.add(create("indexPageSwitch","indexPage-首页模板")); |
| | | templates.add(create("addPageSwitch","addPage-添加页面模板")); |
| | | templates.add(create("editPageSwitch","editPage-编辑页面模板")); |
| | | templates.add(create("jsSwitch","indexJs-主页js模板")); |
| | | templates.add(create("infoJsSwitch","infoJs-详情页js模板")); |
| | | templates.add(create("sqlSwitch","sql-sql语句模板")); |
| | | return templates; |
| | | } |
| | | |
| | | /** |
| | | * 获取默认的参数 |
| | | */ |
| | | public static GenQo getDefaultParams(){ |
| | | GenQo genQo = new GenQo(); |
| | | genQo.setProjectPath(ToolUtil.getWebRootPath(null)); |
| | | genQo.setAuthor("stylefeng"); |
| | | genQo.setProjectPackage(GunsApplication.class.getPackage().getName()); |
| | | genQo.setCorePackage(CoreFlag.class.getPackage().getName()); |
| | | genQo.setIgnoreTabelPrefix("sys_"); |
| | | genQo.setModuleName("system"); |
| | | genQo.setParentMenuName("系统管理"); |
| | | return genQo; |
| | | } |
| | | |
| | | private static Map<String,Object> create(String key,String desc){ |
| | | HashMap<String, Object> template = new HashMap<>(); |
| | | template.put("key",key); |
| | | template.put("desc",desc); |
| | | return template; |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.code.service; |
| | | |
| | | import com.baomidou.mybatisplus.mapper.SqlRunner; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * 获取数据库所有的表 |
| | | * |
| | | * @author fengshuonan |
| | | * @date 2017-12-04-下午1:37 |
| | | */ |
| | | @Service |
| | | public class TableService { |
| | | |
| | | @Value("${spring.datasource.db-name}") |
| | | private String dbName; |
| | | |
| | | /** |
| | | * 获取当前数据库所有的表信息 |
| | | */ |
| | | public List<Map<String, Object>> getAllTables() { |
| | | String sql = "select TABLE_NAME as tableName,TABLE_COMMENT as tableComment from information_schema.`TABLES` where TABLE_SCHEMA = '" + dbName + "'"; |
| | | return SqlRunner.db().selectList(sql); |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.auth; |
| | | |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.stylefeng.guns.modular.system.util.ResultUtil; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.http.HttpStatus; |
| | | import org.springframework.stereotype.Component; |
| | | import org.springframework.web.servlet.HandlerInterceptor; |
| | | |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.io.IOException; |
| | | |
| | | @Component |
| | | public class AuthIntercepter implements HandlerInterceptor { |
| | | private final static Logger log = LoggerFactory.getLogger(AuthIntercepter.class); |
| | | |
| | | @Autowired |
| | | AuthService authService; |
| | | |
| | | @Override |
| | | public boolean preHandle(HttpServletRequest req, HttpServletResponse res, Object handler) throws IOException { |
| | | String appid = req.getParameter("appid"); |
| | | String sign = req.getParameter("sign"); |
| | | ResultUtil resultUtil = authService.checkSyncAuth(appid, sign, req); |
| | | if (resultUtil.getCode() != 200) { |
| | | res.setStatus(HttpStatus.OK.value()); |
| | | res.setHeader("Content-type", "text/html;charset=UTF-8"); |
| | | res.getWriter().print(JSON.toJSONString(resultUtil));//Res.Failure("req timeout, please try again") |
| | | return false; |
| | | } |
| | | return true; |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.auth; |
| | | |
| | | |
| | | import com.stylefeng.guns.modular.system.util.ResultUtil; |
| | | import org.apache.commons.lang.StringUtils; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import javax.servlet.http.HttpServletRequest; |
| | | |
| | | @Service |
| | | public class AuthService { |
| | | |
| | | private final static Logger log = LoggerFactory.getLogger(AuthService.class); |
| | | |
| | | public static final AuthService me = new AuthService(); |
| | | |
| | | /** |
| | | * 鉴权 |
| | | * @param appid |
| | | * @param sign |
| | | * @param requset |
| | | * @return |
| | | */ |
| | | public ResultUtil checkSyncAuth(String appid, String sign, HttpServletRequest requset) { |
| | | try { |
| | | if (StringUtils.isBlank(sign)) { |
| | | return ResultUtil.sign(); |
| | | } |
| | | // 1.鉴权 |
| | | String signUrl = AuthenticationKit.getSignUrl(requset, "sign"); |
| | | signUrl = signUrl.replaceAll("& #40;", "\\("); |
| | | signUrl = signUrl.replaceAll("& #41;", "\\)"); |
| | | String signUrlEncode = AuthenticationKit.signUrlEncode(signUrl, appid); |
| | | if(sign.indexOf(" ") != -1 && signUrlEncode.indexOf("+") != -1){//处理前后端加密差异 |
| | | signUrlEncode = signUrlEncode.replaceAll("\\+", " "); |
| | | } |
| | | |
| | | // 签名无 |
| | | if (StringUtils.isBlank(sign) || !sign.equals(signUrlEncode)) { |
| | | return ResultUtil.sign(); |
| | | } |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | return ResultUtil.runErr(); |
| | | } |
| | | return ResultUtil.success(); |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.auth; |
| | | |
| | | import org.apache.tomcat.util.codec.binary.Base64; |
| | | |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import java.util.*; |
| | | |
| | | /** |
| | | * |
| | | * 接口鉴权工具类 |
| | | * |
| | | * @author gwx 2017-12-23 |
| | | * |
| | | */ |
| | | public class AuthenticationKit { |
| | | public static final String utf8="UTF-8"; |
| | | |
| | | /** |
| | | * 返回64 位 token |
| | | * |
| | | * @param key 自定义安全字符 |
| | | * @return |
| | | * @throws Exception |
| | | */ |
| | | public static String getToken(String key) throws Exception { |
| | | // 随机生成 32位字符 |
| | | String salt = HashKit.generateSaltForSha256(); |
| | | // 获取当前时间 |
| | | long cur = System.currentTimeMillis(); |
| | | // 生成64位token |
| | | String access_token = getToken256(key, salt, cur); |
| | | return access_token; |
| | | } |
| | | |
| | | /** |
| | | * 返回64 位 token |
| | | * |
| | | * @param key |
| | | * @return |
| | | * @throws Exception |
| | | */ |
| | | public static String getToken256(String key, String salt, long cur) throws Exception { |
| | | // 生成64位token |
| | | String access_token = HashKit.sha256(salt + cur + key); |
| | | return access_token; |
| | | } |
| | | |
| | | /** |
| | | * 返回到秒 |
| | | * |
| | | * @return |
| | | */ |
| | | public static String createTimestamp() { |
| | | long l = System.currentTimeMillis(); |
| | | return Long.toString(l / 1000); |
| | | } |
| | | |
| | | /** |
| | | * 返回noce 不带 短杠"-" |
| | | * |
| | | * @return |
| | | */ |
| | | public static String createNonceStr() { |
| | | return getUUID(); |
| | | } |
| | | |
| | | public static String getUUID() { |
| | | UUID uuid = UUID.randomUUID(); |
| | | String str = uuid.toString(); |
| | | str = str.replaceAll("-", ""); |
| | | return str; |
| | | } |
| | | |
| | | /** |
| | | * 组装路径 |
| | | * |
| | | * @param params |
| | | * @return |
| | | */ |
| | | public static String localSignParam(Map<String, String> params) { |
| | | return localSignUrl(null, params, false); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 组装签名路径 |
| | | * @param url |
| | | * @param params |
| | | * @return |
| | | */ |
| | | public static String localSignUrl(String url, Map<String, String> params, boolean urlEncode) { |
| | | StringBuilder strBuilder = new StringBuilder(); |
| | | // if(StringUtils.isNotBlank(url) && url.lastIndexOf("?")==-1){ |
| | | // strBuilder.append(url).append("?"); |
| | | // } |
| | | |
| | | Set es = params.entrySet();//所有参与传参的参数按照accsii排序(升序) |
| | | Iterator it = es.iterator(); |
| | | while(it.hasNext()) { |
| | | Map.Entry entry = (Map.Entry)it.next(); |
| | | String k = (String)entry.getKey(); |
| | | Object v = entry.getValue(); |
| | | if(null != v && !"".equals(v)) { |
| | | strBuilder.append(k + "=" + v + "&"); |
| | | } |
| | | } |
| | | return strBuilder.substring(0, strBuilder.length() - 1); |
| | | |
| | | // for (String key : params.keySet()) { |
| | | // if (params.get(key) != null) { |
| | | // String lowerKey = key.toLowerCase(); |
| | | // String encodeKey = lowerKey; |
| | | // String encodedValue = params.get(key); |
| | | // if (urlEncode){ |
| | | // encodeKey = UrlEncoderUtils.encode(lowerKey); |
| | | // encodedValue = UrlEncoderUtils.encode(encodedValue); |
| | | // } |
| | | // if (!seeOne) { |
| | | // seeOne = true; |
| | | // } else { |
| | | // strBuilder.append("&"); |
| | | // } |
| | | // strBuilder.append(encodeKey).append("=").append(encodedValue); |
| | | // } |
| | | // } |
| | | // return strBuilder.toString(); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 加密签名路径生成签名 |
| | | * |
| | | * @param signUrl |
| | | * /token?appid=12345×tamp=1512440267&nonce=12345 |
| | | * @param encryptKey |
| | | * @return |
| | | * @throws Exception |
| | | */ |
| | | public static String signUrlEncode(String signUrl, String encryptKey) throws Exception { |
| | | byte[] signByte = HMACSHA1.HmacSHA1Encrypt(signUrl, encryptKey); |
| | | String localSign = Base64.encodeBase64String(signByte); |
| | | return localSign; |
| | | } |
| | | |
| | | /** |
| | | * 返回鉴权 签名路径 |
| | | * |
| | | * @param req |
| | | * @return |
| | | */ |
| | | public static String getSignUrl(HttpServletRequest req) { |
| | | return getSignUrl(req,""); |
| | | } |
| | | |
| | | /** |
| | | * 服务端 获取 客户端请求 组装验证签名 |
| | | * @param req |
| | | * @param delParams 移除不相关 的签名参数 |
| | | * @return |
| | | */ |
| | | public static String getSignUrl(HttpServletRequest req, String... delParams) { |
| | | // 获取相对的访问路径 |
| | | String url = req.getServletPath(); |
| | | Map<String, String> paramMap = packageRequestGetParams(req); |
| | | if (paramMap.size() > 0) { |
| | | // 删除 |
| | | for (int i = 0, len = delParams.length; i < len; i++) { |
| | | paramMap.remove(delParams[i]); |
| | | } |
| | | return localSignUrl(url, paramMap, false); |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 组装签名路径 客户端测试用 |
| | | * @param url api访问地址 "/apid" |
| | | * @param appid |
| | | * @return |
| | | */ |
| | | public static String getSignUrl(String url, String appid, Map<String, String> queryParas) { |
| | | Map<String, String> params = new TreeMap<String, String>(); |
| | | params.put("appid", appid); |
| | | params.put("nonce", createNonceStr()); |
| | | params.put("timestamp", createTimestamp()); |
| | | if(queryParas!=null && queryParas.size()>0){ |
| | | params.putAll(queryParas); |
| | | } |
| | | return localSignUrl(url, params, false); |
| | | } |
| | | |
| | | /** |
| | | * 组装签名路径 客户端测试用 |
| | | * @param url api访问地址 "/apid" |
| | | * @param appid |
| | | * @return |
| | | */ |
| | | public static String getSignUrl(String url, String appid) { |
| | | return getSignUrl(url, appid, ""); |
| | | } |
| | | |
| | | /** |
| | | * |
| | | * @param url |
| | | * @param appid |
| | | * @param params |
| | | * @return |
| | | */ |
| | | public static String getSignUrl(String url, String appid, String params) { |
| | | String urlTmp = getSignUrl(url, appid, new HashMap<String,String>()); |
| | | return urlTmp + UrlEncoderUtils.encode(params); |
| | | } |
| | | |
| | | /** |
| | | * 解析get参数返回treemap |
| | | * @param req |
| | | * @return |
| | | */ |
| | | public static Map<String, String> packageRequestGetParams( |
| | | HttpServletRequest req) { |
| | | Map<String, String> paramMap = new TreeMap<String, String>(); |
| | | Enumeration pNames = req.getParameterNames(); |
| | | while (pNames.hasMoreElements()) { |
| | | String key = (String) pNames.nextElement(); |
| | | String value = req.getParameter(key); |
| | | paramMap.put(key, value); |
| | | } |
| | | return paramMap; |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.auth; |
| | | |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Component; |
| | | import org.springframework.web.servlet.config.annotation.InterceptorRegistry; |
| | | import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; |
| | | |
| | | |
| | | @Component |
| | | public class Configuration implements WebMvcConfigurer { |
| | | |
| | | @Autowired |
| | | private AuthIntercepter authIntercepter; |
| | | |
| | | /** |
| | | * 重写添加拦截器方法并添加配置拦截器 |
| | | * |
| | | * @param registry |
| | | */ |
| | | @Override |
| | | public void addInterceptors(InterceptorRegistry registry) { |
| | | // registry.addInterceptor(authIntercepter).addPathPatterns("/api/**") |
| | | // .excludePathPatterns("/base/**"); |
| | | |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.auth; |
| | | |
| | | import org.apache.tomcat.util.codec.binary.Base64; |
| | | |
| | | import javax.crypto.Mac; |
| | | import javax.crypto.SecretKey; |
| | | import javax.crypto.spec.SecretKeySpec; |
| | | |
| | | public class HMACSHA1 { |
| | | |
| | | private static final String MAC_NAME = "HmacSHA1"; |
| | | private static final String ENCODING = "UTF-8"; |
| | | |
| | | /* |
| | | * 展示了一个生成指定算法密钥的过程 初始化HMAC密钥 |
| | | * |
| | | * @return |
| | | * |
| | | * @throws Exception |
| | | * |
| | | * public static String initMacKey() throws Exception { //得到一个 指定算法密钥的密钥生成器 |
| | | * KeyGenerator KeyGenerator keyGenerator |
| | | * =KeyGenerator.getInstance(MAC_NAME); //生成一个密钥 SecretKey secretKey |
| | | * =keyGenerator.generateKey(); return null; } |
| | | */ |
| | | |
| | | /** |
| | | * 使用 HMAC-SHA1 签名方法对对encryptText进行签名 |
| | | * |
| | | * @param encryptText |
| | | * 被签名的字符串 |
| | | * @param encryptKey |
| | | * 密钥 |
| | | * @return |
| | | * @throws Exception |
| | | */ |
| | | public static byte[] HmacSHA1Encrypt(String encryptText, String encryptKey) throws Exception { |
| | | byte[] data = encryptKey.getBytes(ENCODING); |
| | | // 根据给定的字节数组构造一个密钥,第二参数指定一个密钥算法的名称 |
| | | Mac mac = Mac.getInstance(MAC_NAME); |
| | | SecretKey secretKey = new SecretKeySpec(data, MAC_NAME); |
| | | // 生成一个指定 Mac 算法 的 Mac 对象 |
| | | // 用给定密钥初始化 Mac 对象 |
| | | mac.init(secretKey); |
| | | |
| | | byte[] text = encryptText.getBytes(ENCODING); |
| | | // 完成 Mac 操作 |
| | | return mac.doFinal(text); |
| | | } |
| | | |
| | | public static void main(String[] args) { |
| | | |
| | | String encryptText = "123"; |
| | | String encryptKey = "adc"; |
| | | try { |
| | | byte[] b = HmacSHA1Encrypt(encryptText, encryptKey); |
| | | String str = HashKit.toHex(b); |
| | | String str2 = new String(Base64.encodeBase64(b)); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.auth; |
| | | /** |
| | | * Copyright (c) 2011-2017, James Zhan 詹波 (jfinal@126.com). |
| | | * |
| | | * Licensed under the Apache License, Version 2.0 (the "License"); |
| | | * you may not use this file except in compliance with the License. |
| | | * You may obtain a copy of the License at |
| | | * |
| | | * http://www.apache.org/licenses/LICENSE-2.0 |
| | | * |
| | | * Unless required by applicable law or agreed to in writing, software |
| | | * distributed under the License is distributed on an "AS IS" BASIS, |
| | | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| | | * See the License for the specific language governing permissions and |
| | | * limitations under the License. |
| | | */ |
| | | |
| | | import java.security.MessageDigest; |
| | | |
| | | public class HashKit { |
| | | |
| | | public static final long FNV_OFFSET_BASIS_64 = 0xcbf29ce484222325L; |
| | | public static final long FNV_PRIME_64 = 0x100000001b3L; |
| | | |
| | | private static final java.security.SecureRandom random = new java.security.SecureRandom(); |
| | | private static final char[] HEX_DIGITS = "0123456789abcdef".toCharArray(); |
| | | private static final char[] CHAR_ARRAY = "_-0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" |
| | | .toCharArray(); |
| | | |
| | | public static long fnv1a64(String key) { |
| | | long hash = FNV_OFFSET_BASIS_64; |
| | | for (int i = 0, size = key.length(); i < size; i++) { |
| | | hash ^= key.charAt(i); |
| | | hash *= FNV_PRIME_64; |
| | | } |
| | | return hash; |
| | | } |
| | | |
| | | public static String md5(String srcStr) { |
| | | return hash("MD5", srcStr); |
| | | } |
| | | |
| | | public static String sha1(String srcStr) { |
| | | return hash("SHA-1", srcStr); |
| | | } |
| | | |
| | | public static String sha256(String srcStr) { |
| | | return hash("SHA-256", srcStr); |
| | | } |
| | | |
| | | public static String sha384(String srcStr) { |
| | | return hash("SHA-384", srcStr); |
| | | } |
| | | |
| | | public static String sha512(String srcStr) { |
| | | return hash("SHA-512", srcStr); |
| | | } |
| | | |
| | | public static String hash(String algorithm, String srcStr) { |
| | | try { |
| | | MessageDigest md = MessageDigest.getInstance(algorithm); |
| | | byte[] bytes = md.digest(srcStr.getBytes("utf-8")); |
| | | return toHex(bytes); |
| | | } catch (Exception e) { |
| | | throw new RuntimeException(e); |
| | | } |
| | | } |
| | | |
| | | public static String toHex(byte[] bytes) { |
| | | StringBuilder ret = new StringBuilder(bytes.length * 2); |
| | | for (int i = 0; i < bytes.length; i++) { |
| | | ret.append(HEX_DIGITS[(bytes[i] >> 4) & 0x0f]); |
| | | ret.append(HEX_DIGITS[bytes[i] & 0x0f]); |
| | | } |
| | | return ret.toString(); |
| | | } |
| | | |
| | | /** |
| | | * md5 128bit 16bytes sha1 160bit 20bytes sha256 256bit 32bytes sha384 |
| | | * 384bit 48bytes sha512 512bit 64bytes |
| | | */ |
| | | public static String generateSalt(int saltLength) { |
| | | StringBuilder salt = new StringBuilder(saltLength); |
| | | for (int i = 0; i < saltLength; i++) { |
| | | salt.append(CHAR_ARRAY[random.nextInt(CHAR_ARRAY.length)]); |
| | | } |
| | | return salt.toString(); |
| | | } |
| | | |
| | | public static String generateSaltForSha256() { |
| | | return generateSalt(32); |
| | | } |
| | | |
| | | public static String generateSaltForSha512() { |
| | | return generateSalt(64); |
| | | } |
| | | |
| | | public static boolean slowEquals(byte[] a, byte[] b) { |
| | | if (a == null || b == null) { |
| | | return false; |
| | | } |
| | | |
| | | int diff = a.length ^ b.length; |
| | | for (int i = 0; i < a.length && i < b.length; i++) { |
| | | diff |= a[i] ^ b[i]; |
| | | } |
| | | return diff == 0; |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.auth; |
| | | |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | |
| | | import java.io.UnsupportedEncodingException; |
| | | import java.net.URLEncoder; |
| | | |
| | | public class UrlEncoderUtils { |
| | | |
| | | private static final String PATH_DELIMITER = "/"; |
| | | private static final Logger log = LoggerFactory.getLogger(UrlEncoderUtils.class); |
| | | |
| | | public static String encode(String originUrl) { |
| | | try { |
| | | return URLEncoder.encode(originUrl, "UTF-8").replace("+", "%20").replace("*", "%2A") |
| | | .replace("%7E", "~"); |
| | | } catch (UnsupportedEncodingException e) { |
| | | log.error("URLEncoder error, encode utf8, exception: {}", e); |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | // encode路径, 不包括分隔符 |
| | | public static String encodeEscapeDelimiter(String urlPath) { |
| | | StringBuilder pathBuilder = new StringBuilder(); |
| | | String[] pathSegmentsArr = urlPath.split(PATH_DELIMITER); |
| | | |
| | | boolean isFirstSegMent = true; |
| | | for (String pathSegment : pathSegmentsArr) { |
| | | if (isFirstSegMent) { |
| | | pathBuilder.append(encode(pathSegment)); |
| | | isFirstSegMent = false; |
| | | } else { |
| | | pathBuilder.append(PATH_DELIMITER).append(encode(pathSegment)); |
| | | } |
| | | } |
| | | if (urlPath.endsWith(PATH_DELIMITER)) { |
| | | pathBuilder.append(PATH_DELIMITER); |
| | | } |
| | | return pathBuilder.toString(); |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.controller; |
| | | |
| | | import com.stylefeng.guns.core.base.controller.BaseController; |
| | | import com.stylefeng.guns.modular.system.service.INoticeService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Controller; |
| | | import org.springframework.ui.Model; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * 总览信息 |
| | | * |
| | | * @author fengshuonan |
| | | * @Date 2017年3月4日23:05:54 |
| | | */ |
| | | @Controller |
| | | @RequestMapping("/blackboard") |
| | | public class BlackboardController extends BaseController { |
| | | |
| | | @Autowired |
| | | private INoticeService noticeService; |
| | | |
| | | /** |
| | | * 跳转到黑板 |
| | | */ |
| | | @RequestMapping("") |
| | | public String blackboard(Model model) { |
| | | List<Map<String, Object>> notices = noticeService.list(null); |
| | | model.addAttribute("noticeList", notices); |
| | | return "/blackboard.html"; |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.controller; |
| | | |
| | | import com.stylefeng.guns.core.base.controller.BaseController; |
| | | import com.stylefeng.guns.core.common.annotion.BussinessLog; |
| | | import com.stylefeng.guns.core.common.annotion.Permission; |
| | | import com.stylefeng.guns.core.common.constant.dictmap.DeptDict; |
| | | import com.stylefeng.guns.core.common.constant.factory.ConstantFactory; |
| | | import com.stylefeng.guns.core.common.exception.BizExceptionEnum; |
| | | import com.stylefeng.guns.core.exception.GunsException; |
| | | import com.stylefeng.guns.core.log.LogObjectHolder; |
| | | import com.stylefeng.guns.core.node.ZTreeNode; |
| | | import com.stylefeng.guns.core.util.ToolUtil; |
| | | import com.stylefeng.guns.modular.system.model.Dept; |
| | | import com.stylefeng.guns.modular.system.service.IDeptService; |
| | | import com.stylefeng.guns.modular.system.warpper.DeptWarpper; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Controller; |
| | | import org.springframework.ui.Model; |
| | | import org.springframework.web.bind.annotation.PathVariable; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RequestParam; |
| | | import org.springframework.web.bind.annotation.ResponseBody; |
| | | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * 部门控制器 |
| | | * |
| | | * @author fengshuonan |
| | | * @Date 2017年2月17日20:27:22 |
| | | */ |
| | | @Controller |
| | | @RequestMapping("/dept") |
| | | public class DeptController extends BaseController { |
| | | |
| | | private String PREFIX = "/system/dept/"; |
| | | |
| | | @Autowired |
| | | private IDeptService deptService; |
| | | |
| | | /** |
| | | * 跳转到部门管理首页 |
| | | */ |
| | | @RequestMapping("") |
| | | public String index() { |
| | | return PREFIX + "dept.html"; |
| | | } |
| | | |
| | | /** |
| | | * 跳转到添加部门 |
| | | */ |
| | | @RequestMapping("/dept_add") |
| | | public String deptAdd() { |
| | | return PREFIX + "dept_add.html"; |
| | | } |
| | | |
| | | /** |
| | | * 跳转到修改部门 |
| | | */ |
| | | @Permission |
| | | @RequestMapping("/dept_update/{deptId}") |
| | | public String deptUpdate(@PathVariable Integer deptId, Model model) { |
| | | Dept dept = deptService.selectById(deptId); |
| | | model.addAttribute(dept); |
| | | model.addAttribute("pName", ConstantFactory.me().getDeptName(dept.getPid())); |
| | | LogObjectHolder.me().set(dept); |
| | | return PREFIX + "dept_edit.html"; |
| | | } |
| | | |
| | | /** |
| | | * 获取部门的tree列表 |
| | | */ |
| | | @RequestMapping(value = "/tree") |
| | | @ResponseBody |
| | | public List<ZTreeNode> tree() { |
| | | List<ZTreeNode> tree = this.deptService.tree(); |
| | | tree.add(ZTreeNode.createParent()); |
| | | return tree; |
| | | } |
| | | |
| | | /** |
| | | * 新增部门 |
| | | */ |
| | | @BussinessLog(value = "添加部门", key = "simplename", dict = DeptDict.class) |
| | | @RequestMapping(value = "/add") |
| | | @Permission |
| | | @ResponseBody |
| | | public Object add(Dept dept) { |
| | | if (ToolUtil.isOneEmpty(dept, dept.getSimplename())) { |
| | | throw new GunsException(BizExceptionEnum.REQUEST_NULL); |
| | | } |
| | | //完善pids,根据pid拿到pid的pids |
| | | deptSetPids(dept); |
| | | return this.deptService.insert(dept); |
| | | } |
| | | |
| | | /** |
| | | * 获取所有部门列表 |
| | | */ |
| | | @RequestMapping(value = "/list") |
| | | @Permission |
| | | @ResponseBody |
| | | public Object list(String condition) { |
| | | List<Map<String, Object>> list = this.deptService.list(condition); |
| | | return super.warpObject(new DeptWarpper(list)); |
| | | } |
| | | |
| | | /** |
| | | * 部门详情 |
| | | */ |
| | | @RequestMapping(value = "/detail/{deptId}") |
| | | @Permission |
| | | @ResponseBody |
| | | public Object detail(@PathVariable("deptId") Integer deptId) { |
| | | return deptService.selectById(deptId); |
| | | } |
| | | |
| | | /** |
| | | * 修改部门 |
| | | */ |
| | | @BussinessLog(value = "修改部门", key = "simplename", dict = DeptDict.class) |
| | | @RequestMapping(value = "/update") |
| | | @Permission |
| | | @ResponseBody |
| | | public Object update(Dept dept) { |
| | | if (ToolUtil.isEmpty(dept) || dept.getId() == null) { |
| | | throw new GunsException(BizExceptionEnum.REQUEST_NULL); |
| | | } |
| | | deptSetPids(dept); |
| | | deptService.updateById(dept); |
| | | return SUCCESS_TIP; |
| | | } |
| | | |
| | | /** |
| | | * 删除部门 |
| | | */ |
| | | @BussinessLog(value = "删除部门", key = "deptId", dict = DeptDict.class) |
| | | @RequestMapping(value = "/delete") |
| | | @Permission |
| | | @ResponseBody |
| | | public Object delete(@RequestParam Integer deptId) { |
| | | |
| | | //缓存被删除的部门名称 |
| | | LogObjectHolder.me().set(ConstantFactory.me().getDeptName(deptId)); |
| | | |
| | | deptService.deleteDept(deptId); |
| | | |
| | | return SUCCESS_TIP; |
| | | } |
| | | |
| | | private void deptSetPids(Dept dept) { |
| | | if (ToolUtil.isEmpty(dept.getPid()) || dept.getPid().equals(0)) { |
| | | dept.setPid(0); |
| | | dept.setPids("[0],"); |
| | | } else { |
| | | int pid = dept.getPid(); |
| | | Dept temp = deptService.selectById(pid); |
| | | String pids = temp.getPids(); |
| | | dept.setPid(pid); |
| | | dept.setPids(pids + "[" + pid + "],"); |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.controller; |
| | | |
| | | import com.baomidou.mybatisplus.mapper.EntityWrapper; |
| | | import com.stylefeng.guns.core.base.controller.BaseController; |
| | | import com.stylefeng.guns.core.common.annotion.BussinessLog; |
| | | import com.stylefeng.guns.core.common.annotion.Permission; |
| | | import com.stylefeng.guns.core.common.constant.Const; |
| | | import com.stylefeng.guns.core.common.constant.dictmap.DictMap; |
| | | import com.stylefeng.guns.core.common.constant.factory.ConstantFactory; |
| | | import com.stylefeng.guns.core.common.exception.BizExceptionEnum; |
| | | import com.stylefeng.guns.core.exception.GunsException; |
| | | import com.stylefeng.guns.core.log.LogObjectHolder; |
| | | import com.stylefeng.guns.core.util.ToolUtil; |
| | | import com.stylefeng.guns.modular.system.model.Dict; |
| | | import com.stylefeng.guns.modular.system.service.IDictService; |
| | | import com.stylefeng.guns.modular.system.warpper.DictWarpper; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Controller; |
| | | import org.springframework.ui.Model; |
| | | import org.springframework.web.bind.annotation.PathVariable; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RequestParam; |
| | | import org.springframework.web.bind.annotation.ResponseBody; |
| | | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * 字典控制器 |
| | | * |
| | | * @author fengshuonan |
| | | * @Date 2017年4月26日 12:55:31 |
| | | */ |
| | | @Controller |
| | | @RequestMapping("/dict") |
| | | public class DictController extends BaseController { |
| | | |
| | | private String PREFIX = "/system/dict/"; |
| | | |
| | | @Autowired |
| | | private IDictService dictService; |
| | | |
| | | /** |
| | | * 跳转到字典管理首页 |
| | | */ |
| | | @RequestMapping("") |
| | | public String index() { |
| | | return PREFIX + "dict.html"; |
| | | } |
| | | |
| | | /** |
| | | * 跳转到添加字典 |
| | | */ |
| | | @RequestMapping("/dict_add") |
| | | public String deptAdd() { |
| | | return PREFIX + "dict_add.html"; |
| | | } |
| | | |
| | | /** |
| | | * 跳转到修改字典 |
| | | */ |
| | | @Permission(Const.ADMIN_NAME) |
| | | @RequestMapping("/dict_edit/{dictId}") |
| | | public String deptUpdate(@PathVariable Integer dictId, Model model) { |
| | | Dict dict = dictService.selectById(dictId); |
| | | model.addAttribute("dict", dict); |
| | | List<Dict> subDicts = dictService.selectList(new EntityWrapper<Dict>().eq("pid", dictId)); |
| | | model.addAttribute("subDicts", subDicts); |
| | | LogObjectHolder.me().set(dict); |
| | | return PREFIX + "dict_edit.html"; |
| | | } |
| | | |
| | | /** |
| | | * 新增字典 |
| | | * |
| | | * @param dictValues 格式例如 "1:启用;2:禁用;3:冻结" |
| | | */ |
| | | @BussinessLog(value = "添加字典记录", key = "dictName,dictValues", dict = DictMap.class) |
| | | @RequestMapping(value = "/add") |
| | | @Permission(Const.ADMIN_NAME) |
| | | @ResponseBody |
| | | public Object add(String dictCode,String dictTips,String dictName, String dictValues) { |
| | | if (ToolUtil.isOneEmpty(dictCode,dictName, dictValues)) { |
| | | throw new GunsException(BizExceptionEnum.REQUEST_NULL); |
| | | } |
| | | this.dictService.addDict(dictCode,dictName,dictTips,dictValues); |
| | | return SUCCESS_TIP; |
| | | } |
| | | |
| | | /** |
| | | * 获取所有字典列表 |
| | | */ |
| | | @RequestMapping(value = "/list") |
| | | @Permission(Const.ADMIN_NAME) |
| | | @ResponseBody |
| | | public Object list(String condition) { |
| | | List<Map<String, Object>> list = this.dictService.list(condition); |
| | | return super.warpObject(new DictWarpper(list)); |
| | | } |
| | | |
| | | /** |
| | | * 字典详情 |
| | | */ |
| | | @RequestMapping(value = "/detail/{dictId}") |
| | | @Permission(Const.ADMIN_NAME) |
| | | @ResponseBody |
| | | public Object detail(@PathVariable("dictId") Integer dictId) { |
| | | return dictService.selectById(dictId); |
| | | } |
| | | |
| | | /** |
| | | * 修改字典 |
| | | */ |
| | | @BussinessLog(value = "修改字典", key = "dictName,dictValues", dict = DictMap.class) |
| | | @RequestMapping(value = "/update") |
| | | @Permission(Const.ADMIN_NAME) |
| | | @ResponseBody |
| | | public Object update(Integer dictId,String dictCode,String dictName, String dictTips,String dictValues) { |
| | | if (ToolUtil.isOneEmpty(dictId, dictCode, dictName, dictValues)) { |
| | | throw new GunsException(BizExceptionEnum.REQUEST_NULL); |
| | | } |
| | | dictService.editDict(dictId, dictCode,dictName, dictTips,dictValues); |
| | | return SUCCESS_TIP; |
| | | } |
| | | |
| | | /** |
| | | * 删除字典记录 |
| | | */ |
| | | @BussinessLog(value = "删除字典记录", key = "dictId", dict = DictMap.class) |
| | | @RequestMapping(value = "/delete") |
| | | @Permission(Const.ADMIN_NAME) |
| | | @ResponseBody |
| | | public Object delete(@RequestParam Integer dictId) { |
| | | |
| | | //缓存被删除的名称 |
| | | LogObjectHolder.me().set(ConstantFactory.me().getDictName(dictId)); |
| | | |
| | | this.dictService.delteDict(dictId); |
| | | return SUCCESS_TIP; |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.controller; |
| | | |
| | | import com.google.code.kaptcha.Constants; |
| | | import com.google.code.kaptcha.Producer; |
| | | import com.stylefeng.guns.config.properties.GunsProperties; |
| | | import com.stylefeng.guns.core.util.FileUtil; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Controller; |
| | | import org.springframework.web.bind.annotation.PathVariable; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | |
| | | import javax.imageio.ImageIO; |
| | | import javax.servlet.ServletOutputStream; |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import javax.servlet.http.HttpSession; |
| | | import java.awt.image.BufferedImage; |
| | | import java.io.IOException; |
| | | |
| | | /** |
| | | * 验证码生成 |
| | | * |
| | | * @author fengshuonan |
| | | * @date 2017-05-05 23:10 |
| | | */ |
| | | @Controller |
| | | @RequestMapping("/kaptcha") |
| | | public class KaptchaController { |
| | | |
| | | @Autowired |
| | | private GunsProperties gunsProperties; |
| | | |
| | | @Autowired |
| | | private Producer producer; |
| | | |
| | | /** |
| | | * 生成验证码 |
| | | */ |
| | | @RequestMapping("") |
| | | public void index(HttpServletRequest request, HttpServletResponse response) { |
| | | HttpSession session = request.getSession(); |
| | | |
| | | response.setDateHeader("Expires", 0); |
| | | |
| | | // Set standard HTTP/1.1 no-cache headers. |
| | | response.setHeader("Cache-Control", "no-store, no-cache, must-revalidate"); |
| | | |
| | | // Set IE extended HTTP/1.1 no-cache headers (use addHeader). |
| | | response.addHeader("Cache-Control", "post-check=0, pre-check=0"); |
| | | |
| | | // Set standard HTTP/1.0 no-cache header. |
| | | response.setHeader("Pragma", "no-cache"); |
| | | |
| | | // return a jpeg |
| | | response.setContentType("image/jpeg"); |
| | | |
| | | // create the text for the image |
| | | String capText = producer.createText(); |
| | | |
| | | // store the text in the session |
| | | session.setAttribute(Constants.KAPTCHA_SESSION_KEY, capText); |
| | | |
| | | // create the image with the text |
| | | BufferedImage bi = producer.createImage(capText); |
| | | ServletOutputStream out = null; |
| | | try { |
| | | out = response.getOutputStream(); |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | // write the data out |
| | | try { |
| | | ImageIO.write(bi, "jpg", out); |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | try { |
| | | try { |
| | | out.flush(); |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } finally { |
| | | try { |
| | | out.close(); |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 返回图片 |
| | | * |
| | | * @author stylefeng |
| | | * @Date 2017/5/24 23:00 |
| | | */ |
| | | @RequestMapping("/{pictureId}") |
| | | public void renderPicture(@PathVariable("pictureId") String pictureId, HttpServletResponse response) { |
| | | String path = gunsProperties.getFileUploadPath() + pictureId; |
| | | try { |
| | | byte[] bytes = FileUtil.toByteArray(path); |
| | | response.getOutputStream().write(bytes); |
| | | } catch (Exception e) { |
| | | //如果找不到图片就返回一个默认图片 |
| | | try { |
| | | response.sendRedirect("/static/img/girl.gif"); |
| | | } catch (IOException e1) { |
| | | e1.printStackTrace(); |
| | | } |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.controller; |
| | | |
| | | import com.baomidou.mybatisplus.mapper.SqlRunner; |
| | | import com.baomidou.mybatisplus.plugins.Page; |
| | | import com.stylefeng.guns.core.base.controller.BaseController; |
| | | import com.stylefeng.guns.core.common.annotion.BussinessLog; |
| | | import com.stylefeng.guns.core.common.annotion.Permission; |
| | | import com.stylefeng.guns.core.common.constant.Const; |
| | | import com.stylefeng.guns.core.common.constant.factory.PageFactory; |
| | | import com.stylefeng.guns.core.common.constant.state.BizLogType; |
| | | import com.stylefeng.guns.core.support.BeanKit; |
| | | import com.stylefeng.guns.modular.system.model.OperationLog; |
| | | import com.stylefeng.guns.modular.system.service.IOperationLogService; |
| | | import com.stylefeng.guns.modular.system.warpper.LogWarpper; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Controller; |
| | | import org.springframework.web.bind.annotation.PathVariable; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RequestParam; |
| | | import org.springframework.web.bind.annotation.ResponseBody; |
| | | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * 日志管理的控制器 |
| | | * |
| | | * @author fengshuonan |
| | | * @Date 2017年4月5日 19:45:36 |
| | | */ |
| | | @Controller |
| | | @RequestMapping("/log") |
| | | public class LogController extends BaseController { |
| | | |
| | | private static String PREFIX = "/system/log/"; |
| | | |
| | | @Autowired |
| | | private IOperationLogService operationLogService; |
| | | |
| | | /** |
| | | * 跳转到日志管理的首页 |
| | | */ |
| | | @RequestMapping("") |
| | | public String index() { |
| | | return PREFIX + "log.html"; |
| | | } |
| | | |
| | | /** |
| | | * 查询操作日志列表 |
| | | */ |
| | | @RequestMapping("/list") |
| | | @Permission(Const.ADMIN_NAME) |
| | | @ResponseBody |
| | | public Object list(@RequestParam(required = false) String beginTime, @RequestParam(required = false) String endTime, @RequestParam(required = false) String logName, @RequestParam(required = false) Integer logType) { |
| | | Page<OperationLog> page = new PageFactory<OperationLog>().defaultPage(); |
| | | List<Map<String, Object>> result = operationLogService.getOperationLogs(page, beginTime, endTime, logName, BizLogType.valueOf(logType), page.getOrderByField(), page.isAsc()); |
| | | page.setRecords((List<OperationLog>) new LogWarpper(result).warp()); |
| | | return super.packForBT(page); |
| | | } |
| | | |
| | | /** |
| | | * 查询操作日志详情 |
| | | */ |
| | | @RequestMapping("/detail/{id}") |
| | | @Permission(Const.ADMIN_NAME) |
| | | @ResponseBody |
| | | public Object detail(@PathVariable Integer id) { |
| | | OperationLog operationLog = operationLogService.selectById(id); |
| | | Map<String, Object> stringObjectMap = BeanKit.beanToMap(operationLog); |
| | | return super.warpObject(new LogWarpper(stringObjectMap)); |
| | | } |
| | | |
| | | /** |
| | | * 清空日志 |
| | | */ |
| | | @BussinessLog(value = "清空业务日志") |
| | | @RequestMapping("/delLog") |
| | | @Permission(Const.ADMIN_NAME) |
| | | @ResponseBody |
| | | public Object delLog() { |
| | | SqlRunner.db().delete("delete from sys_operation_log"); |
| | | return SUCCESS_TIP; |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.controller; |
| | | |
| | | import com.google.code.kaptcha.Constants; |
| | | import com.stylefeng.guns.core.base.controller.BaseController; |
| | | import com.stylefeng.guns.core.common.exception.InvalidKaptchaException; |
| | | import com.stylefeng.guns.core.log.LogManager; |
| | | import com.stylefeng.guns.core.log.factory.LogTaskFactory; |
| | | import com.stylefeng.guns.core.node.MenuNode; |
| | | import com.stylefeng.guns.core.shiro.ShiroKit; |
| | | import com.stylefeng.guns.core.shiro.ShiroUser; |
| | | import com.stylefeng.guns.core.util.ApiMenuFilter; |
| | | import com.stylefeng.guns.core.util.KaptchaUtil; |
| | | import com.stylefeng.guns.core.util.ToolUtil; |
| | | import com.stylefeng.guns.modular.system.model.User; |
| | | import com.stylefeng.guns.modular.system.service.IMenuService; |
| | | import com.stylefeng.guns.modular.system.service.IUserService; |
| | | import org.apache.shiro.authc.UsernamePasswordToken; |
| | | import org.apache.shiro.subject.Subject; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Controller; |
| | | import org.springframework.ui.Model; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RequestMethod; |
| | | |
| | | import java.util.List; |
| | | |
| | | import static com.stylefeng.guns.core.support.HttpKit.getIp; |
| | | |
| | | /** |
| | | * 登录控制器 |
| | | * |
| | | * @author fengshuonan |
| | | * @Date 2017年1月10日 下午8:25:24 |
| | | */ |
| | | @Controller |
| | | public class LoginController extends BaseController { |
| | | |
| | | @Autowired |
| | | private IMenuService menuService; |
| | | |
| | | @Autowired |
| | | private IUserService userService; |
| | | |
| | | /** |
| | | * 跳转到主页 |
| | | */ |
| | | @RequestMapping(value = "/", method = RequestMethod.GET) |
| | | public String index(Model model) { |
| | | //获取菜单列表 |
| | | List<Integer> roleList = ShiroKit.getUser().getRoleList(); |
| | | if (roleList == null || roleList.size() == 0) { |
| | | ShiroKit.getSubject().logout(); |
| | | model.addAttribute("tips", "该用户没有角色,无法登陆"); |
| | | return "/login.html"; |
| | | } |
| | | List<MenuNode> menus = menuService.getMenusByRoleIds(roleList); |
| | | List<MenuNode> titles = MenuNode.buildTitle(menus); |
| | | titles = ApiMenuFilter.build(titles); |
| | | |
| | | model.addAttribute("titles", titles); |
| | | |
| | | //获取用户头像 |
| | | Integer id = ShiroKit.getUser().getId(); |
| | | User user = userService.selectById(id); |
| | | String avatar = user.getAvatar(); |
| | | model.addAttribute("avatar", avatar); |
| | | |
| | | return "/index.html"; |
| | | } |
| | | |
| | | /** |
| | | * 跳转到登录页面 |
| | | */ |
| | | @RequestMapping(value = "/login", method = RequestMethod.GET) |
| | | public String login() { |
| | | if (ShiroKit.isAuthenticated() || ShiroKit.getUser() != null) { |
| | | return REDIRECT + "/"; |
| | | } else { |
| | | return "/login.html"; |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 点击登录执行的动作 |
| | | */ |
| | | @RequestMapping(value = "/login", method = RequestMethod.POST) |
| | | public String loginVali() { |
| | | |
| | | String username = super.getPara("username").trim(); |
| | | String password = super.getPara("password").trim(); |
| | | String remember = super.getPara("remember"); |
| | | |
| | | //验证验证码是否正确 |
| | | if (KaptchaUtil.getKaptchaOnOff()) { |
| | | String kaptcha = super.getPara("kaptcha").trim(); |
| | | String code = (String) super.getSession().getAttribute(Constants.KAPTCHA_SESSION_KEY); |
| | | if (ToolUtil.isEmpty(kaptcha) || !kaptcha.equalsIgnoreCase(code)) { |
| | | throw new InvalidKaptchaException(); |
| | | } |
| | | } |
| | | |
| | | Subject currentUser = ShiroKit.getSubject(); |
| | | UsernamePasswordToken token = new UsernamePasswordToken(username, password.toCharArray()); |
| | | |
| | | if ("on".equals(remember)) { |
| | | token.setRememberMe(true); |
| | | } else { |
| | | token.setRememberMe(false); |
| | | } |
| | | |
| | | currentUser.login(token); |
| | | |
| | | ShiroUser shiroUser = ShiroKit.getUser(); |
| | | super.getSession().setAttribute("shiroUser", shiroUser); |
| | | super.getSession().setAttribute("username", shiroUser.getAccount()); |
| | | |
| | | LogManager.me().executeLog(LogTaskFactory.loginLog(shiroUser.getId(), getIp())); |
| | | |
| | | ShiroKit.getSession().setAttribute("sessionFlag", true); |
| | | |
| | | return REDIRECT + "/"; |
| | | } |
| | | |
| | | /** |
| | | * 退出登录 |
| | | */ |
| | | @RequestMapping(value = "/logout", method = RequestMethod.GET) |
| | | public String logOut() { |
| | | LogManager.me().executeLog(LogTaskFactory.exitLog(ShiroKit.getUser().getId(), getIp())); |
| | | ShiroKit.getSubject().logout(); |
| | | deleteAllCookie(); |
| | | return REDIRECT + "/login"; |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.controller; |
| | | |
| | | import com.baomidou.mybatisplus.mapper.SqlRunner; |
| | | import com.baomidou.mybatisplus.plugins.Page; |
| | | import com.stylefeng.guns.core.base.controller.BaseController; |
| | | import com.stylefeng.guns.core.common.annotion.BussinessLog; |
| | | import com.stylefeng.guns.core.common.annotion.Permission; |
| | | import com.stylefeng.guns.core.common.constant.Const; |
| | | import com.stylefeng.guns.core.common.constant.factory.PageFactory; |
| | | import com.stylefeng.guns.modular.system.model.LoginLog; |
| | | import com.stylefeng.guns.modular.system.service.ILoginLogService; |
| | | import com.stylefeng.guns.modular.system.warpper.LogWarpper; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Controller; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RequestParam; |
| | | import org.springframework.web.bind.annotation.ResponseBody; |
| | | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * 日志管理的控制器 |
| | | * |
| | | * @author fengshuonan |
| | | * @Date 2017年4月5日 19:45:36 |
| | | */ |
| | | @Controller |
| | | @RequestMapping("/loginLog") |
| | | public class LoginLogController extends BaseController { |
| | | |
| | | private static String PREFIX = "/system/log/"; |
| | | |
| | | @Autowired |
| | | private ILoginLogService loginLogService; |
| | | |
| | | /** |
| | | * 跳转到日志管理的首页 |
| | | */ |
| | | @RequestMapping("") |
| | | public String index() { |
| | | return PREFIX + "login_log.html"; |
| | | } |
| | | |
| | | /** |
| | | * 查询登录日志列表 |
| | | */ |
| | | @RequestMapping("/list") |
| | | @Permission(Const.ADMIN_NAME) |
| | | @ResponseBody |
| | | public Object list(@RequestParam(required = false) String beginTime, @RequestParam(required = false) String endTime, @RequestParam(required = false) String logName) { |
| | | Page<LoginLog> page = new PageFactory<LoginLog>().defaultPage(); |
| | | List<Map<String, Object>> result = loginLogService.getLoginLogs(page, beginTime, endTime, logName, page.getOrderByField(), page.isAsc()); |
| | | page.setRecords((List<LoginLog>) new LogWarpper(result).warp()); |
| | | return super.packForBT(page); |
| | | } |
| | | |
| | | /** |
| | | * 清空日志 |
| | | */ |
| | | @BussinessLog("清空登录日志") |
| | | @RequestMapping("/delLoginLog") |
| | | @Permission(Const.ADMIN_NAME) |
| | | @ResponseBody |
| | | public Object delLog() { |
| | | SqlRunner.db().delete("delete from sys_login_log"); |
| | | return SUCCESS_TIP; |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.controller; |
| | | |
| | | import com.baomidou.mybatisplus.mapper.EntityWrapper; |
| | | import com.stylefeng.guns.core.base.controller.BaseController; |
| | | import com.stylefeng.guns.core.base.tips.Tip; |
| | | import com.stylefeng.guns.core.common.annotion.BussinessLog; |
| | | import com.stylefeng.guns.core.common.annotion.Permission; |
| | | import com.stylefeng.guns.core.common.constant.Const; |
| | | import com.stylefeng.guns.core.common.constant.dictmap.MenuDict; |
| | | import com.stylefeng.guns.core.common.constant.factory.ConstantFactory; |
| | | import com.stylefeng.guns.core.common.constant.state.MenuStatus; |
| | | import com.stylefeng.guns.core.common.exception.BizExceptionEnum; |
| | | import com.stylefeng.guns.core.exception.GunsException; |
| | | import com.stylefeng.guns.core.log.LogObjectHolder; |
| | | import com.stylefeng.guns.core.node.ZTreeNode; |
| | | import com.stylefeng.guns.core.support.BeanKit; |
| | | import com.stylefeng.guns.core.util.ToolUtil; |
| | | import com.stylefeng.guns.modular.system.model.Menu; |
| | | import com.stylefeng.guns.modular.system.service.IMenuService; |
| | | import com.stylefeng.guns.modular.system.warpper.MenuWarpper; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Controller; |
| | | import org.springframework.ui.Model; |
| | | import org.springframework.validation.BindingResult; |
| | | import org.springframework.web.bind.annotation.PathVariable; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RequestParam; |
| | | import org.springframework.web.bind.annotation.ResponseBody; |
| | | |
| | | import javax.validation.Valid; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * 菜单控制器 |
| | | * |
| | | * @author fengshuonan |
| | | * @Date 2017年2月12日21:59:14 |
| | | */ |
| | | @Controller |
| | | @RequestMapping("/menu") |
| | | public class MenuController extends BaseController { |
| | | |
| | | private static String PREFIX = "/system/menu/"; |
| | | |
| | | @Autowired |
| | | private IMenuService menuService; |
| | | |
| | | /** |
| | | * 跳转到菜单列表列表页面 |
| | | */ |
| | | @RequestMapping("") |
| | | public String index() { |
| | | return PREFIX + "menu.html"; |
| | | } |
| | | |
| | | /** |
| | | * 跳转到菜单列表列表页面 |
| | | */ |
| | | @RequestMapping(value = "/menu_add") |
| | | public String menuAdd() { |
| | | return PREFIX + "menu_add.html"; |
| | | } |
| | | |
| | | /** |
| | | * 跳转到菜单详情列表页面 |
| | | */ |
| | | @Permission(Const.ADMIN_NAME) |
| | | @RequestMapping(value = "/menu_edit/{menuId}") |
| | | public String menuEdit(@PathVariable Long menuId, Model model) { |
| | | if (ToolUtil.isEmpty(menuId)) { |
| | | throw new GunsException(BizExceptionEnum.REQUEST_NULL); |
| | | } |
| | | Menu menu = this.menuService.selectById(menuId); |
| | | |
| | | //获取父级菜单的id |
| | | Menu temp = new Menu(); |
| | | temp.setCode(menu.getPcode()); |
| | | Menu pMenu = this.menuService.selectOne(new EntityWrapper<>(temp)); |
| | | |
| | | //如果父级是顶级菜单 |
| | | if (pMenu == null) { |
| | | menu.setPcode("0"); |
| | | } else { |
| | | //设置父级菜单的code为父级菜单的id |
| | | menu.setPcode(String.valueOf(pMenu.getId())); |
| | | } |
| | | |
| | | Map<String, Object> menuMap = BeanKit.beanToMap(menu); |
| | | menuMap.put("pcodeName", ConstantFactory.me().getMenuNameByCode(temp.getCode())); |
| | | model.addAttribute("menu", menuMap); |
| | | LogObjectHolder.me().set(menu); |
| | | return PREFIX + "menu_edit.html"; |
| | | } |
| | | |
| | | /** |
| | | * 修该菜单 |
| | | */ |
| | | @Permission(Const.ADMIN_NAME) |
| | | @RequestMapping(value = "/edit") |
| | | @BussinessLog(value = "修改菜单", key = "name", dict = MenuDict.class) |
| | | @ResponseBody |
| | | public Tip edit(@Valid Menu menu, BindingResult result) { |
| | | if (result.hasErrors()) { |
| | | throw new GunsException(BizExceptionEnum.REQUEST_NULL); |
| | | } |
| | | //设置父级菜单编号 |
| | | menuSetPcode(menu); |
| | | |
| | | this.menuService.updateById(menu); |
| | | return SUCCESS_TIP; |
| | | } |
| | | |
| | | /** |
| | | * 获取菜单列表 |
| | | */ |
| | | @Permission(Const.ADMIN_NAME) |
| | | @RequestMapping(value = "/list") |
| | | @ResponseBody |
| | | public Object list(@RequestParam(required = false) String menuName, @RequestParam(required = false) String level) { |
| | | List<Map<String, Object>> menus = this.menuService.selectMenus(menuName, level); |
| | | return super.warpObject(new MenuWarpper(menus)); |
| | | } |
| | | |
| | | /** |
| | | * 新增菜单 |
| | | */ |
| | | @Permission(Const.ADMIN_NAME) |
| | | @RequestMapping(value = "/add") |
| | | @BussinessLog(value = "菜单新增", key = "name", dict = MenuDict.class) |
| | | @ResponseBody |
| | | public Tip add(@Valid Menu menu, BindingResult result) { |
| | | if (result.hasErrors()) { |
| | | throw new GunsException(BizExceptionEnum.REQUEST_NULL); |
| | | } |
| | | |
| | | //判断是否存在该编号 |
| | | String existedMenuName = ConstantFactory.me().getMenuNameByCode(menu.getCode()); |
| | | if (ToolUtil.isNotEmpty(existedMenuName)) { |
| | | throw new GunsException(BizExceptionEnum.EXISTED_THE_MENU); |
| | | } |
| | | |
| | | //设置父级菜单编号 |
| | | menuSetPcode(menu); |
| | | |
| | | menu.setStatus(MenuStatus.ENABLE.getCode()); |
| | | this.menuService.insert(menu); |
| | | return SUCCESS_TIP; |
| | | } |
| | | |
| | | /** |
| | | * 删除菜单 |
| | | */ |
| | | @Permission(Const.ADMIN_NAME) |
| | | @RequestMapping(value = "/remove") |
| | | @BussinessLog(value = "删除菜单", key = "menuId", dict = MenuDict.class) |
| | | @ResponseBody |
| | | public Tip remove(@RequestParam Long menuId) { |
| | | if (ToolUtil.isEmpty(menuId)) { |
| | | throw new GunsException(BizExceptionEnum.REQUEST_NULL); |
| | | } |
| | | |
| | | //缓存菜单的名称 |
| | | LogObjectHolder.me().set(ConstantFactory.me().getMenuName(menuId)); |
| | | |
| | | this.menuService.delMenuContainSubMenus(menuId); |
| | | return SUCCESS_TIP; |
| | | } |
| | | |
| | | /** |
| | | * 查看菜单 |
| | | */ |
| | | @RequestMapping(value = "/view/{menuId}") |
| | | @ResponseBody |
| | | public Tip view(@PathVariable Long menuId) { |
| | | if (ToolUtil.isEmpty(menuId)) { |
| | | throw new GunsException(BizExceptionEnum.REQUEST_NULL); |
| | | } |
| | | this.menuService.selectById(menuId); |
| | | return SUCCESS_TIP; |
| | | } |
| | | |
| | | /** |
| | | * 获取菜单列表(首页用) |
| | | */ |
| | | @RequestMapping(value = "/menuTreeList") |
| | | @ResponseBody |
| | | public List<ZTreeNode> menuTreeList() { |
| | | List<ZTreeNode> roleTreeList = this.menuService.menuTreeList(); |
| | | return roleTreeList; |
| | | } |
| | | |
| | | /** |
| | | * 获取菜单列表(选择父级菜单用) |
| | | */ |
| | | @RequestMapping(value = "/selectMenuTreeList") |
| | | @ResponseBody |
| | | public List<ZTreeNode> selectMenuTreeList() { |
| | | List<ZTreeNode> roleTreeList = this.menuService.menuTreeList(); |
| | | roleTreeList.add(ZTreeNode.createParent()); |
| | | return roleTreeList; |
| | | } |
| | | |
| | | /** |
| | | * 获取角色列表 |
| | | */ |
| | | @RequestMapping(value = "/menuTreeListByRoleId/{roleId}") |
| | | @ResponseBody |
| | | public List<ZTreeNode> menuTreeListByRoleId(@PathVariable Integer roleId) { |
| | | List<Long> menuIds = this.menuService.getMenuIdsByRoleId(roleId); |
| | | if (ToolUtil.isEmpty(menuIds)) { |
| | | List<ZTreeNode> roleTreeList = this.menuService.menuTreeList(); |
| | | return roleTreeList; |
| | | } else { |
| | | List<ZTreeNode> roleTreeListByUserId = this.menuService.menuTreeListByMenuIds(menuIds); |
| | | return roleTreeListByUserId; |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 根据请求的父级菜单编号设置pcode和层级 |
| | | */ |
| | | private void menuSetPcode(@Valid Menu menu) { |
| | | if (ToolUtil.isEmpty(menu.getPcode()) || menu.getPcode().equals("0")) { |
| | | menu.setPcode("0"); |
| | | menu.setPcodes("[0],"); |
| | | menu.setLevels(1); |
| | | } else { |
| | | long code = Long.parseLong(menu.getPcode()); |
| | | Menu pMenu = menuService.selectById(code); |
| | | Integer pLevels = pMenu.getLevels(); |
| | | menu.setPcode(pMenu.getCode()); |
| | | |
| | | //如果编号和父编号一致会导致无限递归 |
| | | if (menu.getCode().equals(menu.getPcode())) { |
| | | throw new GunsException(BizExceptionEnum.MENU_PCODE_COINCIDENCE); |
| | | } |
| | | |
| | | menu.setLevels(pLevels + 1); |
| | | menu.setPcodes(pMenu.getPcodes() + "[" + pMenu.getCode() + "],"); |
| | | } |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.controller; |
| | | |
| | | import com.stylefeng.guns.core.base.controller.BaseController; |
| | | import com.stylefeng.guns.core.common.annotion.BussinessLog; |
| | | import com.stylefeng.guns.core.common.constant.dictmap.NoticeMap; |
| | | import com.stylefeng.guns.core.common.constant.factory.ConstantFactory; |
| | | import com.stylefeng.guns.core.common.exception.BizExceptionEnum; |
| | | import com.stylefeng.guns.core.exception.GunsException; |
| | | import com.stylefeng.guns.core.log.LogObjectHolder; |
| | | import com.stylefeng.guns.core.shiro.ShiroKit; |
| | | import com.stylefeng.guns.core.util.ToolUtil; |
| | | import com.stylefeng.guns.modular.system.model.Notice; |
| | | import com.stylefeng.guns.modular.system.service.INoticeService; |
| | | import com.stylefeng.guns.modular.system.warpper.NoticeWrapper; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Controller; |
| | | import org.springframework.ui.Model; |
| | | import org.springframework.web.bind.annotation.PathVariable; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RequestParam; |
| | | import org.springframework.web.bind.annotation.ResponseBody; |
| | | |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * 通知控制器 |
| | | * |
| | | * @author fengshuonan |
| | | * @Date 2017-05-09 23:02:21 |
| | | */ |
| | | @Controller |
| | | @RequestMapping("/notice") |
| | | public class NoticeController extends BaseController { |
| | | |
| | | private String PREFIX = "/system/notice/"; |
| | | |
| | | @Autowired |
| | | private INoticeService noticeService; |
| | | |
| | | /** |
| | | * 跳转到通知列表首页 |
| | | */ |
| | | @RequestMapping("") |
| | | public String index() { |
| | | return PREFIX + "notice.html"; |
| | | } |
| | | |
| | | /** |
| | | * 跳转到添加通知 |
| | | */ |
| | | @RequestMapping("/notice_add") |
| | | public String noticeAdd() { |
| | | return PREFIX + "notice_add.html"; |
| | | } |
| | | |
| | | /** |
| | | * 跳转到修改通知 |
| | | */ |
| | | @RequestMapping("/notice_update/{noticeId}") |
| | | public String noticeUpdate(@PathVariable Integer noticeId, Model model) { |
| | | Notice notice = this.noticeService.selectById(noticeId); |
| | | model.addAttribute("notice",notice); |
| | | LogObjectHolder.me().set(notice); |
| | | return PREFIX + "notice_edit.html"; |
| | | } |
| | | |
| | | /** |
| | | * 跳转到首页通知 |
| | | */ |
| | | @RequestMapping("/hello") |
| | | public String hello() { |
| | | List<Map<String, Object>> notices = noticeService.list(null); |
| | | super.setAttr("noticeList",notices); |
| | | return "/blackboard.html"; |
| | | } |
| | | |
| | | /** |
| | | * 获取通知列表 |
| | | */ |
| | | @RequestMapping(value = "/list") |
| | | @ResponseBody |
| | | public Object list(String condition) { |
| | | List<Map<String, Object>> list = this.noticeService.list(condition); |
| | | return super.warpObject(new NoticeWrapper(list)); |
| | | } |
| | | |
| | | /** |
| | | * 新增通知 |
| | | */ |
| | | @RequestMapping(value = "/add") |
| | | @ResponseBody |
| | | @BussinessLog(value = "新增通知",key = "title",dict = NoticeMap.class) |
| | | public Object add(Notice notice) { |
| | | if (ToolUtil.isOneEmpty(notice, notice.getTitle(), notice.getContent())) { |
| | | throw new GunsException(BizExceptionEnum.REQUEST_NULL); |
| | | } |
| | | notice.setCreater(ShiroKit.getUser().getId()); |
| | | notice.setCreatetime(new Date()); |
| | | notice.insert(); |
| | | return SUCCESS_TIP; |
| | | } |
| | | |
| | | /** |
| | | * 删除通知 |
| | | */ |
| | | @RequestMapping(value = "/delete") |
| | | @ResponseBody |
| | | @BussinessLog(value = "删除通知",key = "noticeId",dict = NoticeMap.class) |
| | | public Object delete(@RequestParam Integer noticeId) { |
| | | |
| | | //缓存通知名称 |
| | | LogObjectHolder.me().set(ConstantFactory.me().getNoticeTitle(noticeId)); |
| | | |
| | | this.noticeService.deleteById(noticeId); |
| | | |
| | | return SUCCESS_TIP; |
| | | } |
| | | |
| | | /** |
| | | * 修改通知 |
| | | */ |
| | | @RequestMapping(value = "/update") |
| | | @ResponseBody |
| | | @BussinessLog(value = "修改通知",key = "title",dict = NoticeMap.class) |
| | | public Object update(Notice notice) { |
| | | if (ToolUtil.isOneEmpty(notice, notice.getId(), notice.getTitle(), notice.getContent())) { |
| | | throw new GunsException(BizExceptionEnum.REQUEST_NULL); |
| | | } |
| | | Notice old = this.noticeService.selectById(notice.getId()); |
| | | old.setTitle(notice.getTitle()); |
| | | old.setContent(notice.getContent()); |
| | | old.updateById(); |
| | | return SUCCESS_TIP; |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.controller; |
| | | |
| | | import com.stylefeng.guns.core.base.controller.BaseController; |
| | | import com.stylefeng.guns.core.base.tips.Tip; |
| | | import com.stylefeng.guns.core.cache.CacheKit; |
| | | import com.stylefeng.guns.core.common.annotion.BussinessLog; |
| | | import com.stylefeng.guns.core.common.annotion.Permission; |
| | | import com.stylefeng.guns.core.common.constant.Const; |
| | | import com.stylefeng.guns.core.common.constant.cache.Cache; |
| | | import com.stylefeng.guns.core.common.constant.dictmap.RoleDict; |
| | | import com.stylefeng.guns.core.common.constant.factory.ConstantFactory; |
| | | import com.stylefeng.guns.core.common.exception.BizExceptionEnum; |
| | | import com.stylefeng.guns.core.exception.GunsException; |
| | | import com.stylefeng.guns.core.log.LogObjectHolder; |
| | | import com.stylefeng.guns.core.node.ZTreeNode; |
| | | import com.stylefeng.guns.core.util.Convert; |
| | | import com.stylefeng.guns.core.util.ToolUtil; |
| | | import com.stylefeng.guns.modular.system.model.Role; |
| | | import com.stylefeng.guns.modular.system.model.User; |
| | | import com.stylefeng.guns.modular.system.service.IRoleService; |
| | | import com.stylefeng.guns.modular.system.service.IUserService; |
| | | import com.stylefeng.guns.modular.system.warpper.RoleWarpper; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Controller; |
| | | import org.springframework.ui.Model; |
| | | import org.springframework.validation.BindingResult; |
| | | import org.springframework.web.bind.annotation.PathVariable; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RequestParam; |
| | | import org.springframework.web.bind.annotation.ResponseBody; |
| | | |
| | | import javax.validation.Valid; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * 角色控制器 |
| | | * |
| | | * @author fengshuonan |
| | | * @Date 2017年2月12日21:59:14 |
| | | */ |
| | | @Controller |
| | | @RequestMapping("/role") |
| | | public class RoleController extends BaseController { |
| | | |
| | | private static String PREFIX = "/system/role"; |
| | | |
| | | @Autowired |
| | | private IUserService userService; |
| | | |
| | | @Autowired |
| | | private IRoleService roleService; |
| | | |
| | | /** |
| | | * 跳转到角色列表页面 |
| | | */ |
| | | @RequestMapping("") |
| | | public String index() { |
| | | return PREFIX + "/role.html"; |
| | | } |
| | | |
| | | /** |
| | | * 跳转到添加角色 |
| | | */ |
| | | @RequestMapping(value = "/role_add") |
| | | public String roleAdd() { |
| | | return PREFIX + "/role_add.html"; |
| | | } |
| | | |
| | | /** |
| | | * 跳转到修改角色 |
| | | */ |
| | | @Permission |
| | | @RequestMapping(value = "/role_edit/{roleId}") |
| | | public String roleEdit(@PathVariable Integer roleId, Model model) { |
| | | if (ToolUtil.isEmpty(roleId)) { |
| | | throw new GunsException(BizExceptionEnum.REQUEST_NULL); |
| | | } |
| | | Role role = this.roleService.selectById(roleId); |
| | | model.addAttribute(role); |
| | | model.addAttribute("pName", ConstantFactory.me().getSingleRoleName(role.getPid())); |
| | | model.addAttribute("deptName", ConstantFactory.me().getDeptName(role.getDeptid())); |
| | | LogObjectHolder.me().set(role); |
| | | return PREFIX + "/role_edit.html"; |
| | | } |
| | | |
| | | /** |
| | | * 跳转到角色分配 |
| | | */ |
| | | @Permission |
| | | @RequestMapping(value = "/role_assign/{roleId}") |
| | | public String roleAssign(@PathVariable("roleId") Integer roleId, Model model) { |
| | | if (ToolUtil.isEmpty(roleId)) { |
| | | throw new GunsException(BizExceptionEnum.REQUEST_NULL); |
| | | } |
| | | model.addAttribute("roleId", roleId); |
| | | model.addAttribute("roleName", ConstantFactory.me().getSingleRoleName(roleId)); |
| | | return PREFIX + "/role_assign.html"; |
| | | } |
| | | |
| | | /** |
| | | * 获取角色列表 |
| | | */ |
| | | @Permission |
| | | @RequestMapping(value = "/list") |
| | | @ResponseBody |
| | | public Object list(@RequestParam(required = false) String roleName) { |
| | | List<Map<String, Object>> roles = this.roleService.selectRoles(super.getPara("roleName")); |
| | | return super.warpObject(new RoleWarpper(roles)); |
| | | } |
| | | |
| | | /** |
| | | * 角色新增 |
| | | */ |
| | | @RequestMapping(value = "/add") |
| | | @BussinessLog(value = "添加角色", key = "name", dict = RoleDict.class) |
| | | @Permission(Const.ADMIN_NAME) |
| | | @ResponseBody |
| | | public Tip add(@Valid Role role, BindingResult result) { |
| | | if (result.hasErrors()) { |
| | | throw new GunsException(BizExceptionEnum.REQUEST_NULL); |
| | | } |
| | | role.setId(null); |
| | | this.roleService.insert(role); |
| | | return SUCCESS_TIP; |
| | | } |
| | | |
| | | /** |
| | | * 角色修改 |
| | | */ |
| | | @RequestMapping(value = "/edit") |
| | | @BussinessLog(value = "修改角色", key = "name", dict = RoleDict.class) |
| | | @Permission(Const.ADMIN_NAME) |
| | | @ResponseBody |
| | | public Tip edit(@Valid Role role, BindingResult result) { |
| | | if (result.hasErrors()) { |
| | | throw new GunsException(BizExceptionEnum.REQUEST_NULL); |
| | | } |
| | | this.roleService.updateById(role); |
| | | |
| | | //删除缓存 |
| | | CacheKit.removeAll(Cache.CONSTANT); |
| | | return SUCCESS_TIP; |
| | | } |
| | | |
| | | /** |
| | | * 删除角色 |
| | | */ |
| | | @RequestMapping(value = "/remove") |
| | | @BussinessLog(value = "删除角色", key = "roleId", dict = RoleDict.class) |
| | | @Permission(Const.ADMIN_NAME) |
| | | @ResponseBody |
| | | public Tip remove(@RequestParam Integer roleId) { |
| | | if (ToolUtil.isEmpty(roleId)) { |
| | | throw new GunsException(BizExceptionEnum.REQUEST_NULL); |
| | | } |
| | | |
| | | //不能删除超级管理员角色 |
| | | if (roleId.equals(Const.ADMIN_ROLE_ID)) { |
| | | throw new GunsException(BizExceptionEnum.CANT_DELETE_ADMIN); |
| | | } |
| | | |
| | | //缓存被删除的角色名称 |
| | | LogObjectHolder.me().set(ConstantFactory.me().getSingleRoleName(roleId)); |
| | | |
| | | this.roleService.delRoleById(roleId); |
| | | |
| | | //删除缓存 |
| | | CacheKit.removeAll(Cache.CONSTANT); |
| | | return SUCCESS_TIP; |
| | | } |
| | | |
| | | /** |
| | | * 查看角色 |
| | | */ |
| | | @RequestMapping(value = "/view/{roleId}") |
| | | @ResponseBody |
| | | public Tip view(@PathVariable Integer roleId) { |
| | | if (ToolUtil.isEmpty(roleId)) { |
| | | throw new GunsException(BizExceptionEnum.REQUEST_NULL); |
| | | } |
| | | this.roleService.selectById(roleId); |
| | | return SUCCESS_TIP; |
| | | } |
| | | |
| | | /** |
| | | * 配置权限 |
| | | */ |
| | | @RequestMapping("/setAuthority") |
| | | @BussinessLog(value = "配置权限", key = "roleId,ids", dict = RoleDict.class) |
| | | @Permission(Const.ADMIN_NAME) |
| | | @ResponseBody |
| | | public Tip setAuthority(@RequestParam("roleId") Integer roleId, @RequestParam("ids") String ids) { |
| | | if (ToolUtil.isOneEmpty(roleId)) { |
| | | throw new GunsException(BizExceptionEnum.REQUEST_NULL); |
| | | } |
| | | this.roleService.setAuthority(roleId, ids); |
| | | return SUCCESS_TIP; |
| | | } |
| | | |
| | | /** |
| | | * 获取角色列表 |
| | | */ |
| | | @RequestMapping(value = "/roleTreeList") |
| | | @ResponseBody |
| | | public List<ZTreeNode> roleTreeList() { |
| | | List<ZTreeNode> roleTreeList = this.roleService.roleTreeList(); |
| | | roleTreeList.add(ZTreeNode.createParent()); |
| | | return roleTreeList; |
| | | } |
| | | |
| | | /** |
| | | * 获取角色列表 |
| | | */ |
| | | @RequestMapping(value = "/roleTreeListByUserId/{userId}") |
| | | @ResponseBody |
| | | public List<ZTreeNode> roleTreeListByUserId(@PathVariable Integer userId) { |
| | | User theUser = this.userService.selectById(userId); |
| | | String roleid = theUser.getRoleid(); |
| | | if (ToolUtil.isEmpty(roleid)) { |
| | | List<ZTreeNode> roleTreeList = this.roleService.roleTreeList(); |
| | | return roleTreeList; |
| | | } else { |
| | | String[] strArray = Convert.toStrArray(",", roleid); |
| | | List<ZTreeNode> roleTreeListByUserId = this.roleService.roleTreeListByRoleId(strArray); |
| | | return roleTreeListByUserId; |
| | | } |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.controller; |
| | | |
| | | import com.stylefeng.guns.config.properties.GunsProperties; |
| | | import com.stylefeng.guns.core.base.controller.BaseController; |
| | | import com.stylefeng.guns.core.base.tips.Tip; |
| | | import com.stylefeng.guns.core.common.annotion.BussinessLog; |
| | | import com.stylefeng.guns.core.common.annotion.Permission; |
| | | import com.stylefeng.guns.core.common.constant.Const; |
| | | import com.stylefeng.guns.core.common.constant.dictmap.UserDict; |
| | | import com.stylefeng.guns.core.common.constant.factory.ConstantFactory; |
| | | import com.stylefeng.guns.core.common.constant.state.ManagerStatus; |
| | | import com.stylefeng.guns.core.common.exception.BizExceptionEnum; |
| | | import com.stylefeng.guns.core.datascope.DataScope; |
| | | import com.stylefeng.guns.core.db.Db; |
| | | import com.stylefeng.guns.core.exception.GunsException; |
| | | import com.stylefeng.guns.core.log.LogObjectHolder; |
| | | import com.stylefeng.guns.core.shiro.ShiroKit; |
| | | import com.stylefeng.guns.core.shiro.ShiroUser; |
| | | import com.stylefeng.guns.core.util.ToolUtil; |
| | | import com.stylefeng.guns.modular.system.dao.UserMapper; |
| | | import com.stylefeng.guns.modular.system.factory.UserFactory; |
| | | import com.stylefeng.guns.modular.system.model.User; |
| | | import com.stylefeng.guns.modular.system.service.IUserService; |
| | | import com.stylefeng.guns.modular.system.transfer.UserDto; |
| | | import com.stylefeng.guns.modular.system.warpper.UserWarpper; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Controller; |
| | | import org.springframework.ui.Model; |
| | | import org.springframework.validation.BindingResult; |
| | | import org.springframework.web.bind.annotation.*; |
| | | import org.springframework.web.multipart.MultipartFile; |
| | | |
| | | import javax.naming.NoPermissionException; |
| | | import javax.validation.Valid; |
| | | import java.io.File; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.UUID; |
| | | |
| | | /** |
| | | * 系统管理员控制器 |
| | | * |
| | | * @author fengshuonan |
| | | * @Date 2017年1月11日 下午1:08:17 |
| | | */ |
| | | @Controller |
| | | @RequestMapping("/mgr") |
| | | public class UserMgrController extends BaseController { |
| | | |
| | | private static String PREFIX = "/system/user/"; |
| | | |
| | | @Autowired |
| | | private GunsProperties gunsProperties; |
| | | |
| | | @Autowired |
| | | private IUserService userService; |
| | | |
| | | /** |
| | | * 跳转到查看管理员列表的页面 |
| | | */ |
| | | @RequestMapping("") |
| | | public String index() { |
| | | return PREFIX + "user.html"; |
| | | } |
| | | |
| | | /** |
| | | * 跳转到查看管理员列表的页面 |
| | | */ |
| | | @RequestMapping("/user_add") |
| | | public String addView() { |
| | | return PREFIX + "user_add.html"; |
| | | } |
| | | |
| | | /** |
| | | * 跳转到角色分配页面 |
| | | */ |
| | | //@RequiresPermissions("/mgr/role_assign") //利用shiro自带的权限检查 |
| | | @Permission |
| | | @RequestMapping("/role_assign/{userId}") |
| | | public String roleAssign(@PathVariable Integer userId, Model model) { |
| | | if (ToolUtil.isEmpty(userId)) { |
| | | throw new GunsException(BizExceptionEnum.REQUEST_NULL); |
| | | } |
| | | User user = (User) Db.create(UserMapper.class).selectOneByCon("id", userId); |
| | | model.addAttribute("userId", userId); |
| | | model.addAttribute("userAccount", user.getAccount()); |
| | | return PREFIX + "user_roleassign.html"; |
| | | } |
| | | |
| | | /** |
| | | * 跳转到编辑管理员页面 |
| | | */ |
| | | @Permission |
| | | @RequestMapping("/user_edit/{userId}") |
| | | public String userEdit(@PathVariable Integer userId, Model model) { |
| | | if (ToolUtil.isEmpty(userId)) { |
| | | throw new GunsException(BizExceptionEnum.REQUEST_NULL); |
| | | } |
| | | assertAuth(userId); |
| | | User user = this.userService.selectById(userId); |
| | | model.addAttribute(user); |
| | | model.addAttribute("roleName", ConstantFactory.me().getRoleName(user.getRoleid())); |
| | | model.addAttribute("deptName", ConstantFactory.me().getDeptName(user.getDeptid())); |
| | | LogObjectHolder.me().set(user); |
| | | return PREFIX + "user_edit.html"; |
| | | } |
| | | |
| | | /** |
| | | * 跳转到查看用户详情页面 |
| | | */ |
| | | @RequestMapping("/user_info") |
| | | public String userInfo(Model model) { |
| | | Integer userId = ShiroKit.getUser().getId(); |
| | | if (ToolUtil.isEmpty(userId)) { |
| | | throw new GunsException(BizExceptionEnum.REQUEST_NULL); |
| | | } |
| | | User user = this.userService.selectById(userId); |
| | | model.addAttribute(user); |
| | | model.addAttribute("roleName", ConstantFactory.me().getRoleName(user.getRoleid())); |
| | | model.addAttribute("deptName", ConstantFactory.me().getDeptName(user.getDeptid())); |
| | | LogObjectHolder.me().set(user); |
| | | return PREFIX + "user_view.html"; |
| | | } |
| | | |
| | | /** |
| | | * 跳转到修改密码界面 |
| | | */ |
| | | @RequestMapping("/user_chpwd") |
| | | public String chPwd() { |
| | | return PREFIX + "user_chpwd.html"; |
| | | } |
| | | |
| | | /** |
| | | * 修改当前用户的密码 |
| | | */ |
| | | @RequestMapping("/changePwd") |
| | | @ResponseBody |
| | | public Object changePwd(@RequestParam String oldPwd, @RequestParam String newPwd, @RequestParam String rePwd) { |
| | | if (!newPwd.equals(rePwd)) { |
| | | throw new GunsException(BizExceptionEnum.TWO_PWD_NOT_MATCH); |
| | | } |
| | | Integer userId = ShiroKit.getUser().getId(); |
| | | User user = userService.selectById(userId); |
| | | String oldMd5 = ShiroKit.md5(oldPwd, user.getSalt()); |
| | | if (user.getPassword().equals(oldMd5)) { |
| | | String newMd5 = ShiroKit.md5(newPwd, user.getSalt()); |
| | | user.setPassword(newMd5); |
| | | user.updateById(); |
| | | return SUCCESS_TIP; |
| | | } else { |
| | | throw new GunsException(BizExceptionEnum.OLD_PWD_NOT_RIGHT); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 查询管理员列表 |
| | | */ |
| | | @RequestMapping("/list") |
| | | @Permission |
| | | @ResponseBody |
| | | public Object list(@RequestParam(required = false) String name, @RequestParam(required = false) String beginTime, @RequestParam(required = false) String endTime, @RequestParam(required = false) Integer deptid) { |
| | | if (ShiroKit.isAdmin()) { |
| | | List<Map<String, Object>> users = userService.selectUsers(null, name, beginTime, endTime, deptid); |
| | | return new UserWarpper(users).warp(); |
| | | } else { |
| | | DataScope dataScope = new DataScope(ShiroKit.getDeptDataScope()); |
| | | List<Map<String, Object>> users = userService.selectUsers(dataScope, name, beginTime, endTime, deptid); |
| | | return new UserWarpper(users).warp(); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 添加管理员 |
| | | */ |
| | | @RequestMapping("/add") |
| | | @BussinessLog(value = "添加管理员", key = "account", dict = UserDict.class) |
| | | @Permission(Const.ADMIN_NAME) |
| | | @ResponseBody |
| | | public Tip add(@Valid UserDto user, BindingResult result) { |
| | | if (result.hasErrors()) { |
| | | throw new GunsException(BizExceptionEnum.REQUEST_NULL); |
| | | } |
| | | |
| | | // 判断账号是否重复 |
| | | User theUser = userService.getByAccount(user.getAccount()); |
| | | if (theUser != null) { |
| | | throw new GunsException(BizExceptionEnum.USER_ALREADY_REG); |
| | | } |
| | | |
| | | // 完善账号信息 |
| | | user.setSalt(ShiroKit.getRandomSalt(5)); |
| | | user.setPassword(ShiroKit.md5(user.getPassword(), user.getSalt())); |
| | | user.setStatus(ManagerStatus.OK.getCode()); |
| | | user.setCreatetime(new Date()); |
| | | |
| | | this.userService.insert(UserFactory.createUser(user)); |
| | | return SUCCESS_TIP; |
| | | } |
| | | |
| | | /** |
| | | * 修改管理员 |
| | | * |
| | | * @throws NoPermissionException |
| | | */ |
| | | @RequestMapping("/edit") |
| | | @BussinessLog(value = "修改管理员", key = "account", dict = UserDict.class) |
| | | @ResponseBody |
| | | public Tip edit(@Valid UserDto user, BindingResult result) throws NoPermissionException { |
| | | if (result.hasErrors()) { |
| | | throw new GunsException(BizExceptionEnum.REQUEST_NULL); |
| | | } |
| | | |
| | | User oldUser = userService.selectById(user.getId()); |
| | | |
| | | if (ShiroKit.hasRole(Const.ADMIN_NAME)) { |
| | | this.userService.updateById(UserFactory.editUser(user, oldUser)); |
| | | return SUCCESS_TIP; |
| | | } else { |
| | | assertAuth(user.getId()); |
| | | ShiroUser shiroUser = ShiroKit.getUser(); |
| | | if (shiroUser.getId().equals(user.getId())) { |
| | | this.userService.updateById(UserFactory.editUser(user, oldUser)); |
| | | return SUCCESS_TIP; |
| | | } else { |
| | | throw new GunsException(BizExceptionEnum.NO_PERMITION); |
| | | } |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 删除管理员(逻辑删除) |
| | | */ |
| | | @RequestMapping("/delete") |
| | | @BussinessLog(value = "删除管理员", key = "userId", dict = UserDict.class) |
| | | @Permission |
| | | @ResponseBody |
| | | public Tip delete(@RequestParam Integer userId) { |
| | | if (ToolUtil.isEmpty(userId)) { |
| | | throw new GunsException(BizExceptionEnum.REQUEST_NULL); |
| | | } |
| | | //不能删除超级管理员 |
| | | if (userId.equals(Const.ADMIN_ID)) { |
| | | throw new GunsException(BizExceptionEnum.CANT_DELETE_ADMIN); |
| | | } |
| | | assertAuth(userId); |
| | | this.userService.setStatus(userId, ManagerStatus.DELETED.getCode()); |
| | | return SUCCESS_TIP; |
| | | } |
| | | |
| | | /** |
| | | * 查看管理员详情 |
| | | */ |
| | | @RequestMapping("/view/{userId}") |
| | | @ResponseBody |
| | | public User view(@PathVariable Integer userId) { |
| | | if (ToolUtil.isEmpty(userId)) { |
| | | throw new GunsException(BizExceptionEnum.REQUEST_NULL); |
| | | } |
| | | assertAuth(userId); |
| | | return this.userService.selectById(userId); |
| | | } |
| | | |
| | | /** |
| | | * 重置管理员的密码 |
| | | */ |
| | | @RequestMapping("/reset") |
| | | @BussinessLog(value = "重置管理员密码", key = "userId", dict = UserDict.class) |
| | | @Permission(Const.ADMIN_NAME) |
| | | @ResponseBody |
| | | public Tip reset(@RequestParam Integer userId) { |
| | | if (ToolUtil.isEmpty(userId)) { |
| | | throw new GunsException(BizExceptionEnum.REQUEST_NULL); |
| | | } |
| | | assertAuth(userId); |
| | | User user = this.userService.selectById(userId); |
| | | user.setSalt(ShiroKit.getRandomSalt(5)); |
| | | user.setPassword(ShiroKit.md5(Const.DEFAULT_PWD, user.getSalt())); |
| | | this.userService.updateById(user); |
| | | return SUCCESS_TIP; |
| | | } |
| | | |
| | | /** |
| | | * 冻结用户 |
| | | */ |
| | | @RequestMapping("/freeze") |
| | | @BussinessLog(value = "冻结用户", key = "userId", dict = UserDict.class) |
| | | @Permission(Const.ADMIN_NAME) |
| | | @ResponseBody |
| | | public Tip freeze(@RequestParam Integer userId) { |
| | | if (ToolUtil.isEmpty(userId)) { |
| | | throw new GunsException(BizExceptionEnum.REQUEST_NULL); |
| | | } |
| | | //不能冻结超级管理员 |
| | | if (userId.equals(Const.ADMIN_ID)) { |
| | | throw new GunsException(BizExceptionEnum.CANT_FREEZE_ADMIN); |
| | | } |
| | | assertAuth(userId); |
| | | this.userService.setStatus(userId, ManagerStatus.FREEZED.getCode()); |
| | | return SUCCESS_TIP; |
| | | } |
| | | |
| | | /** |
| | | * 解除冻结用户 |
| | | */ |
| | | @RequestMapping("/unfreeze") |
| | | @BussinessLog(value = "解除冻结用户", key = "userId", dict = UserDict.class) |
| | | @Permission(Const.ADMIN_NAME) |
| | | @ResponseBody |
| | | public Tip unfreeze(@RequestParam Integer userId) { |
| | | if (ToolUtil.isEmpty(userId)) { |
| | | throw new GunsException(BizExceptionEnum.REQUEST_NULL); |
| | | } |
| | | assertAuth(userId); |
| | | this.userService.setStatus(userId, ManagerStatus.OK.getCode()); |
| | | return SUCCESS_TIP; |
| | | } |
| | | |
| | | /** |
| | | * 分配角色 |
| | | */ |
| | | @RequestMapping("/setRole") |
| | | @BussinessLog(value = "分配角色", key = "userId,roleIds", dict = UserDict.class) |
| | | @Permission(Const.ADMIN_NAME) |
| | | @ResponseBody |
| | | public Tip setRole(@RequestParam("userId") Integer userId, @RequestParam("roleIds") String roleIds) { |
| | | if (ToolUtil.isOneEmpty(userId, roleIds)) { |
| | | throw new GunsException(BizExceptionEnum.REQUEST_NULL); |
| | | } |
| | | //不能修改超级管理员 |
| | | if (userId.equals(Const.ADMIN_ID)) { |
| | | throw new GunsException(BizExceptionEnum.CANT_CHANGE_ADMIN); |
| | | } |
| | | assertAuth(userId); |
| | | this.userService.setRoles(userId, roleIds); |
| | | return SUCCESS_TIP; |
| | | } |
| | | |
| | | /** |
| | | * 上传图片 |
| | | */ |
| | | @RequestMapping(method = RequestMethod.POST, path = "/upload") |
| | | @ResponseBody |
| | | public String upload(@RequestPart("file") MultipartFile picture) { |
| | | |
| | | String pictureName = UUID.randomUUID().toString() + "." + ToolUtil.getFileSuffix(picture.getOriginalFilename()); |
| | | try { |
| | | String fileSavePath = gunsProperties.getFileUploadPath(); |
| | | picture.transferTo(new File(fileSavePath + pictureName)); |
| | | } catch (Exception e) { |
| | | throw new GunsException(BizExceptionEnum.UPLOAD_ERROR); |
| | | } |
| | | return pictureName; |
| | | } |
| | | |
| | | /** |
| | | * 判断当前登录的用户是否有操作这个用户的权限 |
| | | */ |
| | | private void assertAuth(Integer userId) { |
| | | if (ShiroKit.isAdmin()) { |
| | | return; |
| | | } |
| | | List<Integer> deptDataScope = ShiroKit.getDeptDataScope(); |
| | | User user = this.userService.selectById(userId); |
| | | Integer deptid = user.getDeptid(); |
| | | if (deptDataScope.contains(deptid)) { |
| | | return; |
| | | } else { |
| | | throw new GunsException(BizExceptionEnum.NO_PERMITION); |
| | | } |
| | | |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.dao; |
| | | |
| | | import com.baomidou.mybatisplus.mapper.BaseMapper; |
| | | import com.stylefeng.guns.modular.system.model.Car; |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | public interface CarMapper extends BaseMapper<Car> { |
| | | |
| | | |
| | | /** |
| | | * 获取企业所有车辆列表 |
| | | * @param companyId |
| | | * @return |
| | | */ |
| | | List<Map<String, Object>> queryCarList(@Param("companyId") Integer companyId); |
| | | |
| | | |
| | | /** |
| | | * 获取车辆详情 |
| | | * @param id |
| | | * @return |
| | | */ |
| | | Map<String, Object> queryCarInfo(@Param("id") Integer id); |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.dao; |
| | | |
| | | import com.baomidou.mybatisplus.mapper.BaseMapper; |
| | | import com.stylefeng.guns.modular.system.model.CarModel; |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | public interface CarModelMapper extends BaseMapper<CarModel> { |
| | | |
| | | |
| | | /** |
| | | * 根据车辆id获取对应的车型 |
| | | * @param carId |
| | | * @return |
| | | */ |
| | | CarModel queryByCarId(@Param("carId") Integer carId); |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.dao; |
| | | |
| | | import com.baomidou.mybatisplus.mapper.BaseMapper; |
| | | import com.stylefeng.guns.core.node.ZTreeNode; |
| | | import com.stylefeng.guns.modular.system.model.Dept; |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * <p> |
| | | * 部门表 Mapper 接口 |
| | | * </p> |
| | | * |
| | | * @author stylefeng |
| | | * @since 2017-07-11 |
| | | */ |
| | | public interface DeptMapper extends BaseMapper<Dept> { |
| | | |
| | | /** |
| | | * 获取ztree的节点列表 |
| | | */ |
| | | List<ZTreeNode> tree(); |
| | | |
| | | /** |
| | | * 获取所有部门列表 |
| | | */ |
| | | List<Map<String, Object>> list(@Param("condition") String condition); |
| | | |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.dao; |
| | | |
| | | import com.baomidou.mybatisplus.mapper.BaseMapper; |
| | | import com.stylefeng.guns.modular.system.model.Dict; |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * <p> |
| | | * 字典表 Mapper 接口 |
| | | * </p> |
| | | * |
| | | * @author stylefeng |
| | | * @since 2017-07-11 |
| | | */ |
| | | public interface DictMapper extends BaseMapper<Dict> { |
| | | |
| | | /** |
| | | * 根据编码获取词典列表 |
| | | */ |
| | | List<Dict> selectByCode(@Param("code") String code); |
| | | |
| | | /** |
| | | * 查询字典列表 |
| | | */ |
| | | List<Map<String, Object>> list(@Param("condition") String conditiion); |
| | | |
| | | /** |
| | | * 根据父类编码获取词典列表 |
| | | */ |
| | | List<Dict> selectByParentCode(@Param("code") String code); |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.dao; |
| | | |
| | | import com.baomidou.mybatisplus.mapper.BaseMapper; |
| | | import com.stylefeng.guns.modular.system.model.Dispatch; |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | | public interface DispatchMapper extends BaseMapper<Dispatch> { |
| | | |
| | | |
| | | /** |
| | | * 根据账号获取数据 |
| | | * @param account |
| | | * @return |
| | | */ |
| | | Dispatch queryByAccount(@Param("account") String account); |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.dao; |
| | | |
| | | import com.baomidou.mybatisplus.mapper.BaseMapper; |
| | | import com.stylefeng.guns.modular.system.model.Driver; |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | public interface DriverMapper extends BaseMapper<Driver> { |
| | | |
| | | |
| | | /** |
| | | * 获取改派的司机列表(专车) |
| | | * 1.司机上班 |
| | | * 2.司机设置了接单规则 |
| | | * 3.给定企业下的司机 |
| | | * 4.司机车辆服务车型匹配 |
| | | * 5.司机设置了专车服务类型 |
| | | * 6.司机处于空闲状态 |
| | | * @param companyId |
| | | * @param serverCarModelId |
| | | * @return |
| | | */ |
| | | List<Map<String, Object>> queryReassignDriverPrivateCar(@Param("companyId") Integer companyId, @Param("serverCarModelId") Integer serverCarModelId); |
| | | |
| | | |
| | | |
| | | |
| | | /** |
| | | * 获取改派的司机列表(跨城) |
| | | * 1.司机上班 |
| | | * 2.司机设置了接单规则 |
| | | * 3.给定企业下的司机 |
| | | * 4.司机车辆服务车型匹配 |
| | | * 5.司机设置了跨城服务类型 |
| | | * 6.司机可经营给定线路 |
| | | * 7.司机预约了给定班次 |
| | | * 8.剩余座位数满足给定数量 |
| | | * 9.司机不处于离线状态 |
| | | * @param companyId |
| | | * @param serverCarModelId |
| | | * @return |
| | | */ |
| | | List<Map<String, Object>> queryReassignDriverCrossCity(@Param("companyId") Integer companyId, @Param("serverCarModelId") Integer serverCarModelId, |
| | | @Param("lineId") Integer lineId, @Param("lineShiftId") Integer lineShiftId, |
| | | @Param("time") Date time, @Param("num") Integer num); |
| | | |
| | | |
| | | /** |
| | | * 获取所有没有服务的司机 |
| | | * @param companyId |
| | | * @return |
| | | */ |
| | | List<Map<String, Object>> queryAllDriver(@Param("companyId") Integer companyId); |
| | | |
| | | |
| | | /** |
| | | * 根据车辆id获取司机 |
| | | * @param carId |
| | | * @return |
| | | */ |
| | | List<Driver> queryByCarId(@Param("carId") Integer carId); |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.dao; |
| | | |
| | | import com.baomidou.mybatisplus.mapper.BaseMapper; |
| | | import com.stylefeng.guns.modular.system.model.DriverService; |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | | import java.util.List; |
| | | |
| | | public interface DriverServiceMapper extends BaseMapper<DriverService> { |
| | | |
| | | |
| | | /** |
| | | * 获取司机的业务类型 |
| | | * @param uid |
| | | * @return |
| | | * @throws Exception |
| | | */ |
| | | List<DriverService> queryBusiness(@Param("uid") Integer uid, @Param("type") Integer... type); |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.dao; |
| | | |
| | | import com.baomidou.mybatisplus.mapper.BaseMapper; |
| | | import com.stylefeng.guns.modular.system.model.Expense; |
| | | |
| | | /** |
| | | * <p> |
| | | * 报销表 Mapper 接口 |
| | | * </p> |
| | | * |
| | | * @author stylefeng |
| | | * @since 2017-12-04 |
| | | */ |
| | | public interface ExpenseMapper extends BaseMapper<Expense> { |
| | | |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.dao; |
| | | |
| | | import com.baomidou.mybatisplus.mapper.BaseMapper; |
| | | import com.stylefeng.guns.modular.system.model.GDInterface; |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | | public interface GDInterfaceMapper extends BaseMapper<GDInterface> { |
| | | |
| | | |
| | | GDInterface query(@Param("name") String name, @Param("explanation") String explanation, |
| | | @Param("time") String time); |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.dao; |
| | | |
| | | import com.baomidou.mybatisplus.mapper.BaseMapper; |
| | | import com.stylefeng.guns.modular.system.model.Income; |
| | | |
| | | public interface IncomeMapper extends BaseMapper<Income> { |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.dao; |
| | | |
| | | import com.baomidou.mybatisplus.mapper.BaseMapper; |
| | | import com.stylefeng.guns.modular.system.model.Line; |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | public interface LineMapper extends BaseMapper<Line> { |
| | | |
| | | /** |
| | | * 获取企业的所有线路 |
| | | * @param companyId |
| | | * @return |
| | | */ |
| | | List<Map<String, Object>> queryLine(@Param("companyId") Integer companyId); |
| | | |
| | | |
| | | |
| | | /** |
| | | * 根据站点id获取匹配的线路数据 |
| | | * @param siteId |
| | | * @param type |
| | | * @return |
| | | */ |
| | | List<Map<String, Object>> queryLines(@Param("siteId") Integer siteId, @Param("type")Integer type, |
| | | @Param("companyId") Integer companyId); |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.dao; |
| | | |
| | | import com.baomidou.mybatisplus.mapper.BaseMapper; |
| | | import com.stylefeng.guns.modular.system.model.LinePrice; |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | | import java.util.Map; |
| | | |
| | | public interface LinePriceMapper extends BaseMapper<LinePrice> { |
| | | |
| | | |
| | | /** |
| | | * 获取价格计算规则 |
| | | * @param lineId |
| | | * @param serverCarModelId |
| | | * @return |
| | | */ |
| | | Map<String, Object> query(@Param("lineId") Integer lineId, @Param("serverCarModelId") Integer serverCarModelId); |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.dao; |
| | | |
| | | import com.baomidou.mybatisplus.mapper.BaseMapper; |
| | | import com.stylefeng.guns.modular.system.model.LineShiftDriver; |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | public interface LineShiftDriverMapper extends BaseMapper<LineShiftDriver> { |
| | | |
| | | /** |
| | | * 获取预约数据 |
| | | * @param lineShiftId |
| | | * @param driverId |
| | | * @param time |
| | | * @return |
| | | */ |
| | | List<LineShiftDriver> query(@Param("lineShiftId") Integer lineShiftId, @Param("driverId") Integer driverId, |
| | | @Param("time") Date time) ; |
| | | |
| | | |
| | | /** |
| | | * 获取没有预约给定日期班次的司机 |
| | | * @param lineShiftId |
| | | * @param time |
| | | * @return |
| | | */ |
| | | List<Map<String, Object>> queryNotInLineShiftDriver(@Param("lineShiftId") Integer lineShiftId, @Param("time") Date time); |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.dao; |
| | | |
| | | import com.baomidou.mybatisplus.mapper.BaseMapper; |
| | | import com.stylefeng.guns.modular.system.model.LineShift; |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | public interface LineShiftMapper extends BaseMapper<LineShift> { |
| | | |
| | | |
| | | /** |
| | | * 根据线路id获取排班数据 |
| | | * @param lineId |
| | | * @return |
| | | */ |
| | | List<Map<String, Object>> queryByLineId(@Param("lineId") Integer lineId); |
| | | |
| | | |
| | | /** |
| | | * 获取详情数据 |
| | | * @param id |
| | | * @return |
| | | */ |
| | | List<Map<String, Object>> queryInfo(@Param("id") Integer id, @Param("time") Date time); |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.dao; |
| | | |
| | | import com.baomidou.mybatisplus.mapper.BaseMapper; |
| | | import com.stylefeng.guns.modular.system.model.LineSite; |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | public interface LineSiteMapper extends BaseMapper<LineSite> { |
| | | |
| | | |
| | | /** |
| | | * 获取线路排班数据 |
| | | * @param lineId |
| | | * @param day |
| | | * @return |
| | | */ |
| | | List<Map<String, Object>> queryDriver(@Param("lineId") Integer lineId, @Param("day") Date day, |
| | | @Param("driverId") Integer driverId); |
| | | |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.dao; |
| | | |
| | | import com.baomidou.mybatisplus.mapper.BaseMapper; |
| | | import com.stylefeng.guns.modular.system.model.Location; |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | public interface LocationMapper extends BaseMapper<Location> { |
| | | |
| | | /** |
| | | * 根据站点id获取区域数据 |
| | | * @param siteId |
| | | * @return |
| | | */ |
| | | List<Map<String, Object>> queryLocation(@Param("siteId") Integer siteId); |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.dao; |
| | | |
| | | import com.baomidou.mybatisplus.mapper.BaseMapper; |
| | | import com.baomidou.mybatisplus.plugins.Page; |
| | | import com.stylefeng.guns.modular.system.model.LoginLog; |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * <p> |
| | | * 登录记录 Mapper 接口 |
| | | * </p> |
| | | * |
| | | * @author stylefeng |
| | | * @since 2017-07-11 |
| | | */ |
| | | public interface LoginLogMapper extends BaseMapper<LoginLog> { |
| | | |
| | | /** |
| | | * 获取登录日志 |
| | | */ |
| | | List<Map<String, Object>> getLoginLogs(@Param("page") Page<LoginLog> page, @Param("beginTime") String beginTime, |
| | | @Param("endTime") String endTime, @Param("logName") String logName, @Param("orderByField") String orderByField, @Param("isAsc") boolean isAsc); |
| | | |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.dao; |
| | | |
| | | import com.baomidou.mybatisplus.mapper.BaseMapper; |
| | | import com.stylefeng.guns.core.node.MenuNode; |
| | | import com.stylefeng.guns.core.node.ZTreeNode; |
| | | import com.stylefeng.guns.modular.system.model.Menu; |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * <p> |
| | | * 菜单表 Mapper 接口 |
| | | * </p> |
| | | * |
| | | * @author stylefeng |
| | | * @since 2017-07-11 |
| | | */ |
| | | public interface MenuMapper extends BaseMapper<Menu> { |
| | | |
| | | /** |
| | | * 根据条件查询菜单 |
| | | * |
| | | * @return |
| | | * @date 2017年2月12日 下午9:14:34 |
| | | */ |
| | | List<Map<String, Object>> selectMenus(@Param("condition") String condition, @Param("level") String level); |
| | | |
| | | /** |
| | | * 根据条件查询菜单 |
| | | * |
| | | * @return |
| | | * @date 2017年2月12日 下午9:14:34 |
| | | */ |
| | | List<Long> getMenuIdsByRoleId(@Param("roleId") Integer roleId); |
| | | |
| | | /** |
| | | * 获取菜单列表树 |
| | | * |
| | | * @return |
| | | * @date 2017年2月19日 下午1:33:51 |
| | | */ |
| | | List<ZTreeNode> menuTreeList(); |
| | | |
| | | /** |
| | | * 获取菜单列表树 |
| | | * |
| | | * @return |
| | | * @date 2017年2月19日 下午1:33:51 |
| | | */ |
| | | List<ZTreeNode> menuTreeListByMenuIds(List<Long> menuIds); |
| | | |
| | | /** |
| | | * 删除menu关联的relation |
| | | * |
| | | * @param menuId |
| | | * @return |
| | | * @date 2017年2月19日 下午4:10:59 |
| | | */ |
| | | int deleteRelationByMenu(Long menuId); |
| | | |
| | | /** |
| | | * 获取资源url通过角色id |
| | | * |
| | | * @param roleId |
| | | * @return |
| | | * @date 2017年2月19日 下午7:12:38 |
| | | */ |
| | | List<String> getResUrlsByRoleId(Integer roleId); |
| | | |
| | | /** |
| | | * 根据角色获取菜单 |
| | | * |
| | | * @param roleIds |
| | | * @return |
| | | * @date 2017年2月19日 下午10:35:40 |
| | | */ |
| | | List<MenuNode> getMenusByRoleIds(List<Integer> roleIds); |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.dao; |
| | | |
| | | import com.baomidou.mybatisplus.mapper.BaseMapper; |
| | | import com.stylefeng.guns.modular.system.model.Notice; |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * <p> |
| | | * 通知表 Mapper 接口 |
| | | * </p> |
| | | * |
| | | * @author stylefeng |
| | | * @since 2017-07-11 |
| | | */ |
| | | public interface NoticeMapper extends BaseMapper<Notice> { |
| | | |
| | | /** |
| | | * 获取通知列表 |
| | | */ |
| | | List<Map<String, Object>> list(@Param("condition") String condition); |
| | | |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.dao; |
| | | |
| | | import com.baomidou.mybatisplus.mapper.BaseMapper; |
| | | import com.baomidou.mybatisplus.plugins.Page; |
| | | import com.stylefeng.guns.modular.system.model.OperationLog; |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * <p> |
| | | * 操作日志 Mapper 接口 |
| | | * </p> |
| | | * |
| | | * @author stylefeng |
| | | * @since 2017-07-11 |
| | | */ |
| | | public interface OperationLogMapper extends BaseMapper<OperationLog> { |
| | | |
| | | /** |
| | | * 获取操作日志 |
| | | */ |
| | | List<Map<String, Object>> getOperationLogs(@Param("page") Page<OperationLog> page, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("logName") String logName, @Param("logType") String logType, @Param("orderByField") String orderByField, @Param("isAsc") boolean isAsc); |
| | | |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.dao; |
| | | |
| | | import com.baomidou.mybatisplus.mapper.BaseMapper; |
| | | import com.stylefeng.guns.modular.system.model.OrderCancel; |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | | public interface OrderCancelMapper extends BaseMapper<OrderCancel> { |
| | | |
| | | /** |
| | | * 获取数据 |
| | | * @param orderId |
| | | * @param orderType |
| | | * @param money |
| | | * @param payType |
| | | * @param state |
| | | * @return |
| | | */ |
| | | OrderCancel query(@Param("orderId") Integer orderId, @Param("orderType") Integer orderType, |
| | | @Param("money") Double money, @Param("payType") Integer payType, |
| | | @Param("state") Integer state); |
| | | |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.dao; |
| | | |
| | | import com.baomidou.mybatisplus.mapper.BaseMapper; |
| | | import com.stylefeng.guns.modular.system.model.OrderCrossCity; |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | public interface OrderCrossCityMapper extends BaseMapper<OrderCrossCity> { |
| | | |
| | | |
| | | /** |
| | | * 获取订单列表 |
| | | * @param search |
| | | * @param orderSource |
| | | * @param state |
| | | * @param companyId |
| | | * @param pageNum |
| | | * @param size |
| | | * @return |
| | | */ |
| | | List<Map<String, Object>> queryOrderList(@Param("search") String search, @Param("orderSource") List<String> orderSource, |
| | | @Param("state") List<String> state, @Param("lineId") List<String> lineId, |
| | | @Param("companyId") Integer companyId, @Param("pageNum") Integer pageNum, |
| | | @Param("size") Integer size); |
| | | |
| | | |
| | | /** |
| | | * 获取订单详情 |
| | | * @param orderId |
| | | * @return |
| | | */ |
| | | Map<String, Object> queryOrderInfo(@Param("id") Integer orderId); |
| | | |
| | | |
| | | /** |
| | | * 根据司机id查询数据 |
| | | * @param driverId |
| | | * @param state |
| | | * @return |
| | | */ |
| | | List<OrderCrossCity> queryByDriverId(@Param("driverId") Integer driverId, @Param("state") Integer...state); |
| | | |
| | | List<OrderCrossCity> queryOrders(@Param("driverId") Integer driverId, @Param("lineShiftDriverId") Integer lineShiftDriverId, |
| | | @Param("state") List<Integer> state); |
| | | |
| | | |
| | | List<OrderCrossCity> query(@Param("start") Date start, @Param("end") Date end); |
| | | |
| | | |
| | | /** |
| | | * 获取司机给定时间范围内的订单 |
| | | * @param driverId |
| | | * @param start |
| | | * @param end |
| | | * @param state |
| | | * @return |
| | | */ |
| | | List<OrderCrossCity> queryByDriver(@Param("driverId") Integer driverId, @Param("start") Date start, |
| | | @Param("end") Date end, @Param("state") Integer... state); |
| | | |
| | | |
| | | /** |
| | | * 获取排班数据对应的订单 |
| | | * @param lineShiftDriverId |
| | | * @param state |
| | | * @return |
| | | */ |
| | | List<OrderCrossCity> queryByLineShiftDriverId(@Param("lineShiftDriverId") Integer lineShiftDriverId, @Param("state") Integer... state); |
| | | |
| | | |
| | | |
| | | List<OrderCrossCity> queryListOrder(@Param("driverId") Integer driverId, @Param("lineShiftId") Integer lineShiftId, |
| | | @Param("state") List<Integer> state, @Param("day") String day); |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.dao; |
| | | |
| | | import com.baomidou.mybatisplus.mapper.BaseMapper; |
| | | import com.stylefeng.guns.modular.system.model.OrderPosition; |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | | public interface OrderPositionMapper extends BaseMapper<OrderPosition> { |
| | | |
| | | |
| | | /** |
| | | * 获取最新的坐标位置 |
| | | * @param orderId |
| | | * @param orderType |
| | | * @return |
| | | */ |
| | | OrderPosition queryNew(@Param("orderId") Integer orderId, @Param("orderType") Integer orderType); |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.dao; |
| | | |
| | | import com.baomidou.mybatisplus.mapper.BaseMapper; |
| | | import com.stylefeng.guns.modular.system.model.OrderPrivateCar; |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | public interface OrderPrivateCarMapper extends BaseMapper<OrderPrivateCar> { |
| | | |
| | | |
| | | /** |
| | | * 获取订单列表 |
| | | * @param search |
| | | * @param orderSource |
| | | * @param state |
| | | * @param companyId |
| | | * @param pageNum |
| | | * @param size |
| | | * @return |
| | | */ |
| | | List<Map<String, Object>> queryOrderList(@Param("search") String search, @Param("orderSource") List<String> orderSource, |
| | | @Param("state") List<String> state, @Param("companyId") Integer companyId, |
| | | @Param("pageNum") Integer pageNum, @Param("size") Integer size); |
| | | |
| | | |
| | | /** |
| | | * 获取订单详情 |
| | | * @param orderId |
| | | * @return |
| | | */ |
| | | Map<String, Object> queryOrderInfo(@Param("orderId") Integer orderId); |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.dao; |
| | | |
| | | import com.baomidou.mybatisplus.mapper.BaseMapper; |
| | | import com.stylefeng.guns.modular.system.model.OrderTaxi; |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | public interface OrderTaxiMapper extends BaseMapper<OrderTaxi> { |
| | | |
| | | |
| | | /** |
| | | * 获取数据 |
| | | * @param start |
| | | * @param end |
| | | * @return |
| | | * @throws Exception |
| | | */ |
| | | List<OrderTaxi> query(@Param("start") Date start, @Param("end") Date end) throws Exception; |
| | | |
| | | |
| | | /** |
| | | * 获取用户的订单列表 |
| | | * @param uid |
| | | * @param pageNum |
| | | * @param size |
| | | * @return |
| | | */ |
| | | List<Map<String, Object>> queryMyOrderList(@Param("uid") Integer uid, @Param("pageNum") Integer pageNum, |
| | | @Param("size") Integer size); |
| | | |
| | | |
| | | /** |
| | | * 获取历史消费记录 |
| | | * @param uid |
| | | * @return |
| | | */ |
| | | List<Map<String, Object>> queryMyTravelRecord(@Param("uid") Integer uid); |
| | | |
| | | |
| | | /** |
| | | * 获取红包使用记录 |
| | | * @param uid |
| | | * @return |
| | | */ |
| | | List<Map<String, Object>> queryRedEnvelope(@Param("uid") Integer uid); |
| | | |
| | | |
| | | /** |
| | | * 获取用户单发票页面的订单列表 |
| | | * @param type 开票状态(1=未开票,2=已开票) |
| | | * @param startTime 订单开始时间 |
| | | * @param endTime 订单结束时间 |
| | | * @param startMoney 订单金额范围 |
| | | * @param endMoney |
| | | * @param uid |
| | | * @return |
| | | */ |
| | | List<Map<String, Object>> queryInvoiceOrder(@Param("type") Integer type, @Param("startTime") Date startTime, |
| | | @Param("endTime") Date endTime, @Param("startMoney") Double startMoney, |
| | | @Param("endMoney") Double endMoney, @Param("uid") Integer uid); |
| | | |
| | | |
| | | /** |
| | | * 获取订单详情 |
| | | * @param orderId |
| | | * @return |
| | | */ |
| | | Map<String, Object> queryOrderInfo(@Param("orderId") Integer orderId); |
| | | |
| | | |
| | | /** |
| | | * 获取订单数据 |
| | | * @param uid |
| | | * @param state |
| | | * @return |
| | | */ |
| | | List<OrderTaxi> queryByState(@Param("uid") Integer uid, @Param("state") Integer... state); |
| | | |
| | | |
| | | /** |
| | | * 获取订单数据 |
| | | * @param uid |
| | | * @param orderType 1=即时单,2=预约单 |
| | | * @param state |
| | | * @return |
| | | */ |
| | | List<OrderTaxi> queryByState_(@Param("uid") Integer uid, @Param("orderType") Integer orderType, |
| | | @Param("type") Integer type, @Param("state") Integer... state); |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.dao; |
| | | |
| | | import com.baomidou.mybatisplus.mapper.BaseMapper; |
| | | import com.stylefeng.guns.modular.system.model.PaymentRecord; |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | | public interface PaymentRecordMapper extends BaseMapper<PaymentRecord> { |
| | | |
| | | |
| | | /** |
| | | * 获取数据 |
| | | * @param orderId |
| | | * @param payType |
| | | * @param state |
| | | * @return |
| | | */ |
| | | PaymentRecord query(@Param("category") Integer category, @Param("userId") Integer userId, |
| | | @Param("type") Integer type, @Param("orderId") Integer orderId, |
| | | @Param("orderType") Integer orderType, @Param("payType") Integer payType, |
| | | @Param("state") Integer state); |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.dao; |
| | | |
| | | import com.baomidou.mybatisplus.mapper.BaseMapper; |
| | | import com.stylefeng.guns.modular.system.model.Reassign; |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | public interface ReassignMapper extends BaseMapper<Reassign> { |
| | | |
| | | |
| | | /** |
| | | * 获取企业的改派申请数据(未处理的) |
| | | * @param companyId |
| | | * @param pageNum |
| | | * @param size |
| | | * @return |
| | | */ |
| | | List<Map<String, Object>> queryApplyReassignList(@Param("companyId") Integer companyId, @Param("state") Integer state, |
| | | @Param("pageNum") Integer pageNum, @Param("size") Integer size); |
| | | |
| | | |
| | | /** |
| | | * 获取改派详情 |
| | | * @param id |
| | | * @return |
| | | */ |
| | | Map<String, Object> queryReassignInfo(@Param("id") Integer id); |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.dao; |
| | | |
| | | import com.baomidou.mybatisplus.mapper.BaseMapper; |
| | | import com.stylefeng.guns.modular.system.model.Region; |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | | public interface RegionMapper extends BaseMapper<Region> { |
| | | |
| | | |
| | | |
| | | Region query(@Param("code") String code); |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.dao; |
| | | |
| | | import com.baomidou.mybatisplus.mapper.BaseMapper; |
| | | import com.stylefeng.guns.modular.system.model.Relation; |
| | | |
| | | /** |
| | | * <p> |
| | | * 角色和菜单关联表 Mapper 接口 |
| | | * </p> |
| | | * |
| | | * @author stylefeng |
| | | * @since 2017-07-11 |
| | | */ |
| | | public interface RelationMapper extends BaseMapper<Relation> { |
| | | |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.dao; |
| | | |
| | | import com.baomidou.mybatisplus.mapper.BaseMapper; |
| | | import com.stylefeng.guns.core.node.ZTreeNode; |
| | | import com.stylefeng.guns.modular.system.model.Role; |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * <p> |
| | | * 角色表 Mapper 接口 |
| | | * </p> |
| | | * |
| | | * @author stylefeng |
| | | * @since 2017-07-11 |
| | | */ |
| | | public interface RoleMapper extends BaseMapper<Role> { |
| | | |
| | | /** |
| | | * 根据条件查询角色列表 |
| | | * |
| | | * @return |
| | | * @date 2017年2月12日 下午9:14:34 |
| | | */ |
| | | List<Map<String, Object>> selectRoles(@Param("condition") String condition); |
| | | |
| | | /** |
| | | * 删除某个角色的所有权限 |
| | | * |
| | | * @param roleId 角色id |
| | | * @return |
| | | * @date 2017年2月13日 下午7:57:51 |
| | | */ |
| | | int deleteRolesById(@Param("roleId") Integer roleId); |
| | | |
| | | /** |
| | | * 获取角色列表树 |
| | | * |
| | | * @return |
| | | * @date 2017年2月18日 上午10:32:04 |
| | | */ |
| | | List<ZTreeNode> roleTreeList(); |
| | | |
| | | /** |
| | | * 获取角色列表树 |
| | | * |
| | | * @return |
| | | * @date 2017年2月18日 上午10:32:04 |
| | | */ |
| | | List<ZTreeNode> roleTreeListByRoleId(String[] roleId); |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.dao; |
| | | |
| | | import com.baomidou.mybatisplus.mapper.BaseMapper; |
| | | import com.stylefeng.guns.modular.system.model.Site; |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | public interface SiteMapper extends BaseMapper<Site> { |
| | | |
| | | |
| | | /** |
| | | * 根据起点站点获取线路相关的终点站点 |
| | | * @param startSiteId |
| | | * @return |
| | | */ |
| | | List<Map<String, Object>> querySite(@Param("startSiteId") Integer startSiteId, @Param("companyId") Integer companyId); |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.dao; |
| | | |
| | | import com.baomidou.mybatisplus.mapper.BaseMapper; |
| | | import com.stylefeng.guns.modular.system.model.SystemNotice; |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | public interface SystemNoticeMapper extends BaseMapper<SystemNotice> { |
| | | |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.dao; |
| | | |
| | | import com.baomidou.mybatisplus.mapper.BaseMapper; |
| | | import com.stylefeng.guns.modular.system.model.TransactionDetails; |
| | | |
| | | public interface TransactionDetailsMapper extends BaseMapper<TransactionDetails> { |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.dao; |
| | | |
| | | import com.baomidou.mybatisplus.mapper.BaseMapper; |
| | | import com.stylefeng.guns.modular.system.model.UserInfo; |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | | import java.util.Map; |
| | | |
| | | public interface UserInfoMapper extends BaseMapper<UserInfo> { |
| | | |
| | | |
| | | /** |
| | | * 电话号查询用户 |
| | | * @param phone |
| | | * @return |
| | | */ |
| | | UserInfo queryByPhone(@Param("phone") String phone); |
| | | |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.dao; |
| | | |
| | | import com.baomidou.mybatisplus.mapper.BaseMapper; |
| | | import com.stylefeng.guns.core.datascope.DataScope; |
| | | import com.stylefeng.guns.modular.system.model.User; |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * <p> |
| | | * 管理员表 Mapper 接口 |
| | | * </p> |
| | | * |
| | | * @author stylefeng |
| | | * @since 2017-07-11 |
| | | */ |
| | | public interface UserMapper extends BaseMapper<User> { |
| | | |
| | | /** |
| | | * 修改用户状态 |
| | | */ |
| | | int setStatus(@Param("userId") Integer userId, @Param("status") int status); |
| | | |
| | | /** |
| | | * 修改密码 |
| | | */ |
| | | int changePwd(@Param("userId") Integer userId, @Param("pwd") String pwd); |
| | | |
| | | /** |
| | | * 根据条件查询用户列表 |
| | | */ |
| | | List<Map<String, Object>> selectUsers(@Param("dataScope") DataScope dataScope, @Param("name") String name, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Integer deptid); |
| | | |
| | | /** |
| | | * 设置用户的角色 |
| | | */ |
| | | int setRoles(@Param("userId") Integer userId, @Param("roleIds") String roleIds); |
| | | |
| | | /** |
| | | * 通过账号获取用户 |
| | | */ |
| | | User getByAccount(@Param("account") String account); |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.dao; |
| | | |
| | | import com.baomidou.mybatisplus.mapper.BaseMapper; |
| | | import com.stylefeng.guns.modular.system.model.VersionManagement; |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | | import java.util.Map; |
| | | |
| | | public interface VersionManagementMapper extends BaseMapper<VersionManagement> { |
| | | |
| | | |
| | | /** |
| | | * 获取最新版本 |
| | | * @return |
| | | */ |
| | | Map<String, Object> queryNewVersion(@Param("type") Integer type); |
| | | } |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | <mapper namespace="com.stylefeng.guns.modular.system.dao.CarMapper"> |
| | | |
| | | <!-- 通用查询映射结果 --> |
| | | <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.Car"> |
| | | <id column="id" property="id"/> |
| | | <result column="isPlatCar" property="isPlatCar"/> |
| | | <result column="companyId" property="companyId"/> |
| | | <result column="franchiseeId" property="franchiseeId"/> |
| | | <result column="carColor" property="carColor"/> |
| | | <result column="carModelId" property="carModelId"/> |
| | | <result column="carBrandId" property="carBrandId"/> |
| | | <result column="carLicensePlate" property="carLicensePlate"/> |
| | | <result column="carPhoto" property="carPhoto"/> |
| | | <result column="drivingLicenseNumber" property="drivingLicenseNumber"/> |
| | | <result column="drivingLicensePhoto" property="drivingLicensePhoto"/> |
| | | <result column="annualInspectionTime" property="annualInspectionTime"/> |
| | | <result column="insurancePhoto" property="insurancePhoto" /> |
| | | <result column="commercialInsuranceTime" property="commercialInsuranceTime"/> |
| | | <result column="insertTime" property="insertTime"/> |
| | | <result column="state" property="state"/> |
| | | <result column="addType" property="addType"/> |
| | | <result column="addObjectId" property="addObjectId"/> |
| | | </resultMap> |
| | | |
| | | |
| | | |
| | | |
| | | <select id="queryCarList" resultType="map"> |
| | | select |
| | | a.id as id, |
| | | a.carLicensePlate as name, |
| | | if(( |
| | | (select count(id) from t_order_private_car where isDelete = 1 and state in (6,7,8,9,10,12) and carId = a.id) + |
| | | (select count(id) from t_order_taxi where isDelete = 1 and state in (6,7,8,9,10,12) and carId = a.id) + |
| | | (select count(id) from t_order_cross_city where isDelete = 1 and state in (6,8,9,10,12) and carId = a.id) |
| | | ) = 0, 1, 2) as state |
| | | from t_car a where a.state = 1 and if(a.franchiseeId is null or a.franchiseeId = 0, a.companyId = #{companyId}, a.franchiseeId = #{companyId}) |
| | | </select> |
| | | |
| | | |
| | | <select id="queryCarInfo" resultType="map"> |
| | | select |
| | | a.id as id, |
| | | c.`name` as brand, |
| | | d.`name` as carModel, |
| | | a.carColor as color, |
| | | if(( |
| | | (select count(id) from t_order_private_car where isDelete = 1 and state in (6,7,8,9,10,12) and carId = a.id) + |
| | | (select count(id) from t_order_taxi where isDelete = 1 and state in (6,7,8,9,10,12) and carId = a.id) + |
| | | (select count(id) from t_order_cross_city where isDelete = 1 and state in (6,8,9,10,12) and carId = a.id) |
| | | ) = 0, 1, 2) as state |
| | | from t_car a |
| | | left join t_car_brand c on (a.carBrandId = c.id) |
| | | left join t_car_model d on (a.carModelId = d.id) |
| | | where a.id = #{id} |
| | | </select> |
| | | </mapper> |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | <mapper namespace="com.stylefeng.guns.modular.system.dao.CarModelMapper"> |
| | | |
| | | <!-- 通用查询映射结果 --> |
| | | <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.CarModel"> |
| | | <id column="id" property="id"/> |
| | | <result column="name" property="name"/> |
| | | <result column="remark" property="remark"/> |
| | | <result column="insertTime" property="insertTime"/> |
| | | <result column="state" property="state"/> |
| | | <result column="seat" property="seat"/> |
| | | <result column="brandId" property="brandId"/> |
| | | </resultMap> |
| | | |
| | | |
| | | <select id="queryByCarId" resultType="CarModel"> |
| | | select |
| | | id as id, |
| | | name as name, |
| | | remark as remark, |
| | | insertTime as insertTime, |
| | | state as state, |
| | | seat as seat, |
| | | brandId as brandId |
| | | from t_car_model where id in (select carModelId from t_car where id = #{carId}) |
| | | </select> |
| | | </mapper> |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | <mapper namespace="com.stylefeng.guns.modular.system.dao.DeptMapper"> |
| | | |
| | | <!-- 通用查询映射结果 --> |
| | | <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.Dept"> |
| | | <id column="id" property="id"/> |
| | | <result column="num" property="num"/> |
| | | <result column="pid" property="pid"/> |
| | | <result column="pids" property="pids"/> |
| | | <result column="simplename" property="simplename"/> |
| | | <result column="fullname" property="fullname"/> |
| | | <result column="tips" property="tips"/> |
| | | <result column="version" property="version"/> |
| | | </resultMap> |
| | | |
| | | <select id="tree" resultType="com.stylefeng.guns.core.node.ZTreeNode"> |
| | | select id,pid as pId,simplename as name, |
| | | ( |
| | | CASE |
| | | WHEN (pId = 0 OR pId IS NULL) THEN |
| | | 'true' |
| | | ELSE |
| | | 'false' |
| | | END |
| | | ) as isOpen from sys_dept |
| | | </select> |
| | | |
| | | <select id="list" resultType="map"> |
| | | select * from sys_dept |
| | | <if test="condition != null and condition != ''"> |
| | | where simplename like CONCAT('%',#{condition},'%') or fullname like CONCAT('%',#{condition},'%') |
| | | </if> |
| | | order by num ASC |
| | | </select> |
| | | |
| | | </mapper> |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | <mapper namespace="com.stylefeng.guns.modular.system.dao.DictMapper"> |
| | | |
| | | <!-- 通用查询映射结果 --> |
| | | <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.Dict"> |
| | | <id column="id" property="id"/> |
| | | <result column="num" property="num"/> |
| | | <result column="pid" property="pid"/> |
| | | <result column="name" property="name"/> |
| | | <result column="code" property="code"/> |
| | | <result column="tips" property="tips"/> |
| | | </resultMap> |
| | | |
| | | <sql id="Base_Column_List"> |
| | | id, num, pid, name,code,tips |
| | | </sql> |
| | | |
| | | <select id="selectByCode" resultType="dict"> |
| | | select |
| | | <include refid="Base_Column_List"/> |
| | | from sys_dict |
| | | where code = #{code} |
| | | </select> |
| | | |
| | | <select id="selectByParentCode" resultType="dict"> |
| | | select |
| | | <include refid="Base_Column_List"/> |
| | | from sys_dict |
| | | where pid in(select id from sys_dict where code = #{code}) order by num asc |
| | | </select> |
| | | |
| | | <select id="list" resultType="map"> |
| | | select * from sys_dict |
| | | where pid = 0 |
| | | <if test="condition != null and condition != ''"> |
| | | AND name like CONCAT('%',#{condition},'%') |
| | | </if> |
| | | order by id ASC |
| | | </select> |
| | | |
| | | </mapper> |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | <mapper namespace="com.stylefeng.guns.modular.system.dao.DispatchMapper"> |
| | | |
| | | <!-- 通用查询映射结果 --> |
| | | <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.Dispatch"> |
| | | <id column="id" property="id"/> |
| | | <result column="insertTime" property="insertTime"/> |
| | | <result column="name" property="name"/> |
| | | <result column="companyId" property="companyId"/> |
| | | <result column="franchiseeId" property="franchiseeId"/> |
| | | <result column="phone" property="phone"/> |
| | | <result column="account" property="account"/> |
| | | <result column="password" property="password"/> |
| | | <result column="insertUserId" property="insertUserId"/> |
| | | <result column="state" property="state"/> |
| | | <result column="pushOrder" property="pushOrder"/> |
| | | </resultMap> |
| | | |
| | | |
| | | <select id="queryByAccount" resultType="Dispatch"> |
| | | select |
| | | id as id, |
| | | insertTime as insertTime, |
| | | `name` as `name`, |
| | | companyId as companyId, |
| | | franchiseeId as franchiseeId, |
| | | phone as phone, |
| | | account as account, |
| | | password as password, |
| | | insertUserId as insertUserId, |
| | | state as state, |
| | | pushOrder as pushOrder |
| | | from t_dispatch where state != 3 and account = #{account} |
| | | </select> |
| | | </mapper> |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | <mapper namespace="com.stylefeng.guns.modular.system.dao.DriverMapper"> |
| | | |
| | | <!-- 通用查询映射结果 --> |
| | | <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.Driver"> |
| | | <id column="id" property="id" /> |
| | | <result column="account" property="account" /> |
| | | <result column="jobNumber" property="jobNumber" /> |
| | | <result column="phone" property="phone" /> |
| | | <result column="password" property="password" /> |
| | | <result column="name" property="name" /> |
| | | <result column="sex" property="sex" /> |
| | | <result column="idCard" property="idCard" /> |
| | | <result column="companyId" property="companyId" /> |
| | | <result column="franchiseeId" property="franchiseeId" /> |
| | | <result column="headImgUrl" property="headImgUrl" /> |
| | | <result column="faceImgUrl" property="faceImgUrl" /> |
| | | <result column="idCardImgUrl1" property="idCardImgUrl1" /> |
| | | <result column="idCardImgUrl2" property="idCardImgUrl2" /> |
| | | <result column="placeOfEmployment" property="placeOfEmployment" /> |
| | | <result column="birthday" property="birthday" /> |
| | | <result column="bankCardNumber" property="bankCardNumber" /> |
| | | <result column="driverNationality" property="driverNationality" /> |
| | | <result column="driverNation" property="driverNation" /> |
| | | <result column="driverMaritalStatus" property="driverMaritalStatus" /> |
| | | <result column="driverLanguageLevel" property="driverLanguageLevel" /> |
| | | <result column="driverEducation" property="driverEducation" /> |
| | | <result column="driverCensus" property="driverCensus" /> |
| | | <result column="driverAddress" property="driverAddress" /> |
| | | <result column="driverContactAddress" property="driverContactAddress" /> |
| | | <result column="driverAge" property="driverAge" /> |
| | | <result column="driveCard" property="driveCard" /> |
| | | <result column="driveCardImgUrl" property="driveCardImgUrl" /> |
| | | <result column="driverType" property="driverType" /> |
| | | <result column="getDriverLicenseDate" property="getDriverLicenseDate" /> |
| | | <result column="driverLicenseOn" property="driverLicenseOn" /> |
| | | <result column="driverLicenseOff" property="driverLicenseOff" /> |
| | | <result column="taxiDriver" property="taxiDriver" /> |
| | | <result column="taxiAptitudeCard" property="taxiAptitudeCard" /> |
| | | <result column="networkCarlssueImg" property="networkCarlssueImg"/> |
| | | <result column="networkCarlssueOrganization" property="networkCarlssueOrganization" /> |
| | | <result column="networkCarlssueDate" property="networkCarlssueDate" /> |
| | | <result column="getNetworkCarProofDate" property="getNetworkCarProofDate" /> |
| | | <result column="networkCarProofOn" property="networkCarProofOn" /> |
| | | <result column="networkCarProofOff" property="networkCarProofOff" /> |
| | | <result column="registerDate" property="registerDate" /> |
| | | <result column="fullTimeDriver" property="fullTimeDriver" /> |
| | | <result column="inDriverBlacklist" property="inDriverBlacklist" /> |
| | | <result column="commercialType" property="commercialType" /> |
| | | <result column="contractCompany" property="contractCompany" /> |
| | | <result column="contractOn" property="contractOn" /> |
| | | <result column="contractOff" property="contractOff" /> |
| | | <result column="emergencyContact" property="emergencyContact" /> |
| | | <result column="emergencyContactPhone" property="emergencyContactPhone" /> |
| | | <result column="emergencyContactAddress" property="emergencyContactAddress" /> |
| | | <result column="remark" property="remark" /> |
| | | <result column="isPlatCar" property="isPlatCar" /> |
| | | <result column="carId" property="carId" /> |
| | | <result column="authState" property="authState" /> |
| | | <result column="state" property="state" /> |
| | | <result column="addType" property="addType" /> |
| | | <result column="balance" property="balance" /> |
| | | <result column="activityMoney" property="activityMoney" /> |
| | | <result column="laveActivityMoney" property="laveActivityMoney" /> |
| | | <result column="businessMoney" property="businessMoney" /> |
| | | <result column="laveBusinessMoney" property="laveBusinessMoney" /> |
| | | <result column="laveBusinessMoney" property="laveBusinessMoney" /> |
| | | <result column="appletsOpenId" property="appletsOpenId"/> |
| | | |
| | | |
| | | <result column="flag" property="flag"/> |
| | | <result column="insertTime" property="insertTime"/> |
| | | <result column="insertUser" property="insertUser"/> |
| | | <result column="updateTime" property="updateTime"/> |
| | | <result column="updateUser" property="updateUser"/> |
| | | </resultMap> |
| | | |
| | | |
| | | <select id="queryReassignDriverPrivateCar" resultType="map"> |
| | | select |
| | | a.id as id, |
| | | CONCAT(a.`name`, '-', d.carLicensePlate) as `name` |
| | | from t_driver a |
| | | left join t_driver_service b on (a.id = b.driverId) |
| | | left join t_driver_orders c on (a.id = c.driverId) |
| | | left join t_car d on (a.carId = d.id) |
| | | left join t_car_service e on (d.id = e.carId) |
| | | where a.authState = 2 and a.state = 2 and a.flag != 3 and if(a.franchiseeId is null or a.franchiseeId = 0, a.companyId = #{companyId}, a.franchiseeId = #{companyId}) |
| | | and a.id in (select driverId from t_driver_work where state = 1 and type like '%1%') |
| | | and b.type = 1 and c.type = 1 and e.type = 1 and e.serverCarModelId = #{serverCarModelId} |
| | | </select> |
| | | |
| | | |
| | | <select id="queryReassignDriverCrossCity" resultType="map"> |
| | | select |
| | | a.id as id, |
| | | CONCAT(a.`name`, '-', d.carLicensePlate) as `name` |
| | | from t_driver a |
| | | left join t_driver_service b on (a.id = b.driverId) |
| | | left join t_driver_orders c on (a.id = c.driverId) |
| | | left join t_car d on (a.carId = d.id) |
| | | left join t_car_service e on (d.id = e.carId) |
| | | left join t_driver_line f on (a.id = f.driverId) |
| | | left join t_line_shift g on (f.lineId = g.lineId) |
| | | where a.authState = 2 and a.state != 1 and a.flag != 3 and if(a.franchiseeId is null or a.franchiseeId = 0, a.companyId = #{companyId}, a.franchiseeId = #{companyId}) |
| | | and a.id in (select driverId from t_driver_work where state = 1 and type like '%3%') |
| | | and b.type = 3 and c.type = 3 and e.type = 3 and e.serverCarModelId = #{serverCarModelId} and f.lineId = #{lineId} and g.id = #{lineShiftId} |
| | | and a.id in (select driverId from t_line_shift_driver where lineShiftId = #{lineShiftId} and DATE_FORMAT(`day`, '%Y-%m-%d') = DATE_FORMAT(#{time}, '%Y-%m-%d') and laveSeat >= #{num}) |
| | | </select> |
| | | |
| | | |
| | | <select id="queryAllDriver" resultType="map"> |
| | | select |
| | | id as id, |
| | | CONCAT(`name`, '-', phone) as name |
| | | from t_driver where authState = 2 and state != 3 and flag != 3 and if(franchiseeId is null or franchiseeId = 0, companyId = #{companyId}, franchiseeId = #{companyId}) |
| | | </select> |
| | | |
| | | |
| | | |
| | | <select id="queryByCarId" resultType="Driver"> |
| | | select |
| | | id as id, |
| | | account as account, |
| | | jobNumber as jobNumber, |
| | | phone as phone, |
| | | password as password, |
| | | name as name, |
| | | sex as sex, |
| | | idCard as idCard, |
| | | companyId as companyId, |
| | | franchiseeId as franchiseeId, |
| | | headImgUrl as headImgUrl, |
| | | faceImgUrl as faceImgUrl, |
| | | idCardImgUrl1 as idCardImgUrl1, |
| | | idCardImgUrl2 as idCardImgUrl2, |
| | | placeOfEmployment as placeOfEmployment, |
| | | birthday as birthday, |
| | | bankCardNumber as bankCardNumber, |
| | | driverNationality as driverNationality, |
| | | driverNation as driverNation, |
| | | driverMaritalStatus as driverMaritalStatus, |
| | | driverLanguageLevel as driverLanguageLevel, |
| | | driverEducation as driverEducation, |
| | | driverCensus as driverCensus, |
| | | driverAddress as driverAddress, |
| | | driverContactAddress as driverContactAddress, |
| | | driverAge as driverAge, |
| | | driveCard as driveCard, |
| | | driveCardImgUrl as driveCardImgUrl, |
| | | driverType as driverType, |
| | | getDriverLicenseDate as getDriverLicenseDate, |
| | | driverLicenseOn as driverLicenseOn, |
| | | driverLicenseOff as driverLicenseOff, |
| | | taxiDriver as taxiDriver, |
| | | taxiAptitudeCard as taxiAptitudeCard, |
| | | networkCarlssueImg as networkCarlssueImg, |
| | | networkCarlssueOrganization as networkCarlssueOrganization, |
| | | networkCarlssueDate as networkCarlssueDate, |
| | | getNetworkCarProofDate as getNetworkCarProofDate, |
| | | networkCarProofOn as networkCarProofOn, |
| | | networkCarProofOff as networkCarProofOff, |
| | | registerDate as registerDate, |
| | | fullTimeDriver as fullTimeDriver, |
| | | inDriverBlacklist as inDriverBlacklist, |
| | | commercialType as commercialType, |
| | | contractCompany as contractCompany, |
| | | contractOn as contractOn, |
| | | contractOff as contractOff, |
| | | emergencyContact as emergencyContact, |
| | | emergencyContactPhone as emergencyContactPhone, |
| | | emergencyContactAddress as emergencyContactAddress, |
| | | remark as remark, |
| | | isPlatCar as isPlatCar, |
| | | carId as carId, |
| | | authState as authState, |
| | | state as state, |
| | | addType as addType, |
| | | balance as balance, |
| | | activityMoney as activityMoney, |
| | | laveActivityMoney as laveActivityMoney, |
| | | businessMoney as businessMoney, |
| | | laveBusinessMoney as laveBusinessMoney, |
| | | laveBusinessMoney as laveBusinessMoney, |
| | | appletsOpenId as appletsOpenId, |
| | | flag as flag, |
| | | insertTime as insertTime, |
| | | insertUser as insertUser, |
| | | updateTime as updateTime, |
| | | updateUser as updateUser |
| | | from t_driver where flag != 3 and authState = 2 and carId = #{carId} |
| | | </select> |
| | | </mapper> |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | <mapper namespace="com.stylefeng.guns.modular.system.dao.DriverServiceMapper"> |
| | | |
| | | <!-- 通用查询映射结果 --> |
| | | <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.DriverService"> |
| | | <id column="id" property="id" /> |
| | | <result column="driverId" property="driverId" /> |
| | | <result column="type" property="type" /> |
| | | </resultMap> |
| | | |
| | | |
| | | <select id="queryBusiness" resultType="DriverService"> |
| | | select |
| | | id as id, |
| | | driverId as driverId, |
| | | `type` as `type` |
| | | from t_driver_service where driverId = #{uid} |
| | | <if test="null != type"> |
| | | and `type` in |
| | | <foreach collection="type" item="item" index="index" open="(" separator="," close=")"> |
| | | #{item} |
| | | </foreach> |
| | | </if> |
| | | </select> |
| | | </mapper> |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | <mapper namespace="com.stylefeng.guns.modular.system.dao.ExpenseMapper"> |
| | | |
| | | <!-- 通用查询映射结果 --> |
| | | <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.Expense"> |
| | | <id column="id" property="id" /> |
| | | <result column="money" property="money" /> |
| | | <result column="desc" property="desc" /> |
| | | <result column="createtime" property="createtime" /> |
| | | <result column="state" property="state" /> |
| | | <result column="userid" property="userid" /> |
| | | </resultMap> |
| | | |
| | | <!-- 通用查询结果列 --> |
| | | <sql id="Base_Column_List"> |
| | | id, money, desc, createtime, state, userid |
| | | </sql> |
| | | |
| | | </mapper> |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | <mapper namespace="com.stylefeng.guns.modular.system.dao.GDInterfaceMapper"> |
| | | |
| | | <!-- 通用查询映射结果 --> |
| | | <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.GDInterface"> |
| | | <id column="id" property="id"/> |
| | | <result column="name" property="name"/> |
| | | <result column="explanation" property="explanation"/> |
| | | <result column="num" property="num"/> |
| | | <result column="time" property="time"/> |
| | | </resultMap> |
| | | |
| | | |
| | | <select id="query" resultType="GDInterface"> |
| | | select * from t_gdinterface where `name` like #{name} and explanation like #{explanation} and `time` = #{time} |
| | | </select> |
| | | </mapper> |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | <mapper namespace="com.stylefeng.guns.modular.system.dao.IncomeMapper"> |
| | | |
| | | <!-- 通用查询映射结果 --> |
| | | <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.Income"> |
| | | <id column="id" property="id"/> |
| | | <result column="userType" property="userType"/> |
| | | <result column="objectId" property="objectId"/> |
| | | <result column="type" property="type"/> |
| | | <result column="incomeId" property="incomeId"/> |
| | | <result column="orderType" property="orderType"/> |
| | | <result column="money" property="money"/> |
| | | <result column="insertTime" property="insertTime"/> |
| | | </resultMap> |
| | | </mapper> |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | <mapper namespace="com.stylefeng.guns.modular.system.dao.LineMapper"> |
| | | |
| | | <!-- 通用查询映射结果 --> |
| | | <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.Line"> |
| | | <id column="id" property="id"/> |
| | | <result column="name" property="name"/> |
| | | <result column="shiftInterval" property="shiftInterval"/> |
| | | <result column="rakeRate" property="rakeRate"/> |
| | | <result column="state" property="state"/> |
| | | <result column="insertTime" property="insertTime"/> |
| | | </resultMap> |
| | | |
| | | |
| | | <select id="queryLines" resultType="map"> |
| | | select |
| | | a.id as id, |
| | | a.name as name |
| | | from t_line a |
| | | left join t_line_site b on (a.id = b.lineId) |
| | | left join t_line_company c on (b.lineId = c.lineId) |
| | | where a.state = 1 and b.siteId = #{siteId} and b.type = #{type} and c.companyId = #{companyId} |
| | | </select> |
| | | |
| | | |
| | | <select id="queryLine" resultType="map"> |
| | | select |
| | | a.id as id, |
| | | a.`name` as `name` |
| | | from t_line a |
| | | left join t_line_company b on (a.id = b.lineId) |
| | | where a.state = 1 |
| | | <if test="null != companyId"> |
| | | and b.companyId = #{companyId} |
| | | </if> |
| | | </select> |
| | | </mapper> |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | <mapper namespace="com.stylefeng.guns.modular.system.dao.LinePriceMapper"> |
| | | |
| | | <!-- 通用查询映射结果 --> |
| | | <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.LinePrice"> |
| | | <id column="id" property="id"/> |
| | | <result column="lineId" property="lineId"/> |
| | | <result column="serverCarModelId" property="serverCarModelId"/> |
| | | <result column="type" property="type"/> |
| | | <result column="content" property="content"/> |
| | | <result column="state" property="state"/> |
| | | <result column="insertTime" property="insertTime"/> |
| | | </resultMap> |
| | | |
| | | |
| | | <select id="query" resultType="map"> |
| | | select |
| | | `type` as `type`, |
| | | content as content |
| | | from t_line_price where state = 1 and lineId = #{lineId} and serverCarModelId = #{serverCarModelId} |
| | | </select> |
| | | </mapper> |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | <mapper namespace="com.stylefeng.guns.modular.system.dao.LineShiftDriverMapper"> |
| | | |
| | | <!-- 通用查询映射结果 --> |
| | | <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.LineShiftDriver"> |
| | | <id column="id" property="id"/> |
| | | <result column="lineShiftId" property="lineShiftId"/> |
| | | <result column="driverId" property="driverId"/> |
| | | <result column="day" property="day"/> |
| | | <result column="laveSeat" property="laveSeat"/> |
| | | <result column="laveSeatNumber" property="laveSeatNumber"/> |
| | | <result column="totalSeat" property="totalSeat"/> |
| | | <result column="inserTime" property="inserTime"/> |
| | | </resultMap> |
| | | |
| | | |
| | | |
| | | <select id="query" resultType="LineShiftDriver"> |
| | | select |
| | | id as id, |
| | | lineShiftId as lineShiftId, |
| | | driverId as driverId, |
| | | `day` as `day`, |
| | | laveSeat as laveSeat, |
| | | laveSeatNumber as laveSeatNumber, |
| | | totalSeat as totalSeat, |
| | | inserTime as inserTime |
| | | from t_line_shift_driver where 1 = 1 |
| | | <if test="null != lineShiftId"> |
| | | and lineShiftId = #{lineShiftId} |
| | | </if> |
| | | <if test="null != driverId"> |
| | | and driverId = #{driverId} |
| | | </if> |
| | | <if test="null != time"> |
| | | and DATE_FORMAT(`day`, '%Y-%m-%d') = DATE_FORMAT(#{time}, '%Y-%m-%d') |
| | | </if> |
| | | order by `day` |
| | | </select> |
| | | |
| | | |
| | | <select id="queryNotInLineShiftDriver" resultType="map"> |
| | | select |
| | | d.id as id, |
| | | CONCAT(d.`name`, '-', d.phone) as `name` |
| | | from t_driver d |
| | | left join t_driver_line dl on (d.id = dl.driverId) |
| | | where d.authState = 2 and d.flag != 3 and dl.lineId in |
| | | ( |
| | | select lineId from t_line_shift where id = #{lineShiftId} |
| | | ) |
| | | and d.id not in |
| | | ( |
| | | select lsd.driverId |
| | | from t_line_shift_driver lsd |
| | | left join t_line_shift ls on (lsd.lineShiftId = ls.id) |
| | | where ls.id = #{lineShiftId} and DATE_FORMAT(lsd.`day`, '%Y-%m-%d') = DATE_FORMAT(#{time}, '%Y-%m-%d') |
| | | ) |
| | | </select> |
| | | </mapper> |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | <mapper namespace="com.stylefeng.guns.modular.system.dao.LineShiftMapper"> |
| | | |
| | | <!-- 通用查询映射结果 --> |
| | | <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.LineShift"> |
| | | <id column="id" property="id"/> |
| | | <result column="lineId" property="lineId"/> |
| | | <result column="startTime" property="startTime"/> |
| | | <result column="endTime" property="endTime"/> |
| | | <result column="carNum" property="carNum"/> |
| | | <result column="state" property="state"/> |
| | | <result column="insertTime" property="insertTime"/> |
| | | </resultMap> |
| | | |
| | | |
| | | <select id="queryByLineId" resultType="map"> |
| | | select |
| | | id as id, |
| | | CONCAT(startTime, '-', endTime) as content |
| | | from t_line_shift where state = 1 and lineId = #{lineId} order by startTime |
| | | </select> |
| | | |
| | | |
| | | <select id="queryInfo" resultType="map"> |
| | | select |
| | | a.id as id, |
| | | b.id as driverId, |
| | | CONCAT(b.`name`, '-', b.phone) as driver |
| | | from t_line_shift_driver a |
| | | left join t_driver b on (a.driverId = b.id) |
| | | where b.flag != 3 and b.authState = 2 and DATE_FORMAT(a.`day`,'%Y-%m-%d') = DATE_FORMAT(#{time},'%Y-%m-%d') and a.lineShiftId = #{id} |
| | | </select> |
| | | </mapper> |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | <mapper namespace="com.stylefeng.guns.modular.system.dao.LineSiteMapper"> |
| | | |
| | | <!-- 通用查询映射结果 --> |
| | | <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.LineSite"> |
| | | <id column="id" property="id"/> |
| | | <result column="lineId" property="lineId"/> |
| | | <result column="startTime" property="startTime"/> |
| | | <result column="endTime" property="endTime"/> |
| | | <result column="carNum" property="carNum"/> |
| | | <result column="state" property="state"/> |
| | | <result column="insertTime" property="insertTime"/> |
| | | </resultMap> |
| | | |
| | | |
| | | <select id="queryDriver" resultType="map"> |
| | | select |
| | | a.id as id, |
| | | b.id as lineShiftId, |
| | | b.startTime as startTime, |
| | | c.headImgUrl as headImgUrl, |
| | | CONCAT(left(c.`name`, 1), '师傅') as `name`, |
| | | d.carLicensePlate as carLicensePlate, |
| | | CONCAT(e.`name`, f.`name`) as brand, |
| | | d.carColor as carColor, |
| | | CONCAT((a.totalSeat - a.laveSeat), '/', a.totalSeat) as `number`, |
| | | (select sum(fraction)/count(fraction) from t_order_evaluate where driverId = a.driverId) as evaluate, |
| | | h.type as priceType, |
| | | h.content as content, |
| | | a.driverId as driverId, |
| | | c.carId as carId, |
| | | a.totalSeat as totalSeat, |
| | | g.serverCarModelId as serverCarModelId, |
| | | a.laveSeatNumber as laveSeatNumber, |
| | | a.laveSeat as laveSeat |
| | | from t_line_shift_driver a |
| | | left join t_line_shift b on (a.lineShiftId = b.id) |
| | | left join t_driver c on (a.driverId = c.id) |
| | | left join t_car d on (c.carId = d.id) |
| | | left join t_car_brand e on (d.carBrandId = e.id) |
| | | left join t_car_model f on (d.carModelId = f.id) |
| | | left join t_car_service g on (d.id = g.carId and g.`type` = 3) |
| | | left join t_line_price h on (g.serverCarModelId = h.serverCarModelId and b.lineId = h.lineId) |
| | | where 1 = 1 |
| | | <if test="null != lineId"> |
| | | and b.lineId = #{lineId} |
| | | </if> |
| | | <if test="null != day"> |
| | | and a.day = #{day} |
| | | </if> |
| | | <if test="null != driverId"> |
| | | and a.driverId = #{driverId} |
| | | </if> |
| | | order by b.startTime |
| | | </select> |
| | | </mapper> |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | <mapper namespace="com.stylefeng.guns.modular.system.dao.LocationMapper"> |
| | | |
| | | <!-- 通用查询映射结果 --> |
| | | <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.Location"> |
| | | <id column="id" property="id"/> |
| | | <result column="siteId" property="siteId"/> |
| | | <result column="type" property="type"/> |
| | | <result column="province" property="province"/> |
| | | <result column="provinceCode" property="provinceCode"/> |
| | | <result column="city" property="city"/> |
| | | <result column="cityCode" property="cityCode"/> |
| | | <result column="district" property="district"/> |
| | | <result column="districtCode" property="districtCode"/> |
| | | <result column="coordinate" property="coordinate"/> |
| | | <result column="state" property="state"/> |
| | | <result column="insertTime" property="insertTime"/> |
| | | </resultMap> |
| | | |
| | | |
| | | <select id="queryLocation" resultType="map"> |
| | | select |
| | | `type` as `type`, |
| | | province as province, |
| | | provinceCode as provinceCode, |
| | | city as city, |
| | | cityCode as cityCode, |
| | | district as district, |
| | | districtCode as districtCode, |
| | | coordinate as coordinate |
| | | from t_location where state = 1 and siteId = #{siteId} |
| | | </select> |
| | | </mapper> |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | <mapper namespace="com.stylefeng.guns.modular.system.dao.LoginLogMapper"> |
| | | |
| | | <!-- 通用查询映射结果 --> |
| | | <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.LoginLog"> |
| | | <id column="id" property="id" /> |
| | | <result column="logname" property="logname" /> |
| | | <result column="userid" property="userid" /> |
| | | <result column="createtime" property="createtime" /> |
| | | <result column="succeed" property="succeed" /> |
| | | <result column="message" property="message" /> |
| | | <result column="ip" property="ip" /> |
| | | </resultMap> |
| | | |
| | | <select id="getLoginLogs" resultType="map" parameterType="com.baomidou.mybatisplus.plugins.Page"> |
| | | select * from sys_login_log where 1 = 1 |
| | | <if test="beginTime != null and beginTime !='' and endTime != null and endTime != ''"> |
| | | and (createTime between CONCAT(#{beginTime},' 00:00:00') and CONCAT(#{endTime},' 23:59:59')) |
| | | </if> |
| | | <if test="logName != null and logName !=''"> |
| | | and logname like CONCAT('%',#{logName},'%') |
| | | </if> |
| | | <choose> |
| | | <when test="orderByField != null and orderByField !=''"> |
| | | <choose> |
| | | <when test="isAsc == true"> |
| | | order by ${orderByField} ASC |
| | | </when> |
| | | <otherwise> |
| | | order by ${orderByField} DESC |
| | | </otherwise> |
| | | </choose> |
| | | </when> |
| | | <otherwise> |
| | | order by createtime DESC |
| | | </otherwise> |
| | | </choose> |
| | | </select> |
| | | |
| | | </mapper> |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | <mapper namespace="com.stylefeng.guns.modular.system.dao.MenuMapper"> |
| | | |
| | | <!-- 通用查询映射结果 --> |
| | | <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.Menu"> |
| | | <id column="id" property="id" /> |
| | | <result column="code" property="code" /> |
| | | <result column="pcode" property="pcode" /> |
| | | <result column="pcodes" property="pcodes" /> |
| | | <result column="name" property="name" /> |
| | | <result column="icon" property="icon" /> |
| | | <result column="url" property="url" /> |
| | | <result column="num" property="num" /> |
| | | <result column="levels" property="levels" /> |
| | | <result column="ismenu" property="ismenu" /> |
| | | <result column="tips" property="tips" /> |
| | | <result column="status" property="status" /> |
| | | <result column="isopen" property="isopen" /> |
| | | </resultMap> |
| | | |
| | | <sql id="Base_Column_List"> |
| | | id, code, pcode, name, icon, url, num, levels,pcodes, |
| | | tips, status,isopen,ismenu |
| | | </sql> |
| | | |
| | | <select id="selectMenus" resultType="map"> |
| | | select |
| | | <include refid="Base_Column_List" /> |
| | | from sys_menu |
| | | where status = 1 |
| | | <if test="condition != null and condition != ''"> |
| | | and (name like CONCAT('%',#{condition},'%') or code like CONCAT('%',#{condition},'%')) |
| | | </if> |
| | | <if test="level != null and level != ''"> |
| | | and levels = #{level} |
| | | </if> |
| | | </select> |
| | | |
| | | <select id="getMenuIdsByRoleId" resultType="long"> |
| | | select menuid from |
| | | sys_relation where roleid = #{roleId} |
| | | </select> |
| | | |
| | | <select id="menuTreeList" resultType="com.stylefeng.guns.core.node.ZTreeNode"> |
| | | SELECT |
| | | m1.id AS id, |
| | | ( |
| | | CASE |
| | | WHEN (m2.id = 0 OR m2.id IS NULL) THEN |
| | | 0 |
| | | ELSE |
| | | m2.id |
| | | END |
| | | ) AS pId, |
| | | m1. NAME |
| | | AS NAME, |
| | | ( |
| | | CASE |
| | | WHEN (m2.id = 0 OR m2.id IS NULL) THEN |
| | | 'true' |
| | | ELSE |
| | | 'false' |
| | | END |
| | | ) as isOpen |
| | | FROM |
| | | sys_menu m1 |
| | | LEFT join sys_menu m2 ON m1.pcode = m2. CODE |
| | | ORDER BY |
| | | m1.id ASC |
| | | </select> |
| | | |
| | | <select id="menuTreeListByMenuIds" resultType="com.stylefeng.guns.core.node.ZTreeNode"> |
| | | SELECT |
| | | m1.id AS id, |
| | | ( |
| | | CASE |
| | | WHEN (m2.id = 0 OR m2.id IS NULL) THEN |
| | | 0 |
| | | ELSE |
| | | m2.id |
| | | END |
| | | ) AS pId, |
| | | m1. NAME AS NAME, |
| | | ( |
| | | CASE |
| | | WHEN (m2.id = 0 OR m2.id IS |
| | | NULL) THEN |
| | | 'true' |
| | | ELSE |
| | | 'false' |
| | | END |
| | | ) as isOpen, |
| | | ( |
| | | CASE |
| | | WHEN (m3.ID = 0 OR m3.ID |
| | | IS NULL) THEN |
| | | 'false' |
| | | ELSE |
| | | 'true' |
| | | END |
| | | ) "checked" |
| | | FROM |
| | | sys_menu m1 |
| | | LEFT JOIN |
| | | sys_menu m2 |
| | | ON m1.pcode = m2. CODE |
| | | left join ( |
| | | SELECT |
| | | ID |
| | | FROM |
| | | sys_menu |
| | | WHERE |
| | | ID IN |
| | | <foreach collection="list" index="index" item="i" open="(" |
| | | separator="," close=")"> |
| | | #{i} |
| | | </foreach> |
| | | ) m3 on m1.id = m3.id |
| | | ORDER BY |
| | | m1.id ASC |
| | | </select> |
| | | |
| | | <delete id="deleteRelationByMenu"> |
| | | delete from sys_relation where menuid = #{menuId} |
| | | </delete> |
| | | |
| | | <select id="getResUrlsByRoleId" resultType="string"> |
| | | select url from |
| | | sys_relation rel |
| | | inner join sys_menu m on rel.menuid = m.id |
| | | where rel.roleid = #{roleId} |
| | | </select> |
| | | |
| | | <select id="getMenusByRoleIds" resultType="com.stylefeng.guns.core.node.MenuNode"> |
| | | SELECT |
| | | m1.id AS id, |
| | | m1.icon AS icon, |
| | | ( |
| | | CASE |
| | | WHEN (m2.id = 0 OR m2.id IS NULL) THEN |
| | | 0 |
| | | ELSE |
| | | m2.id |
| | | END |
| | | ) AS parentId, |
| | | m1.NAME as name, |
| | | m1.url as url, |
| | | m1.levels as levels, |
| | | m1.ismenu as ismenu, |
| | | m1.num as num |
| | | FROM |
| | | sys_menu m1 |
| | | LEFT join sys_menu m2 ON m1.pcode = m2. CODE |
| | | INNER JOIN ( |
| | | SELECT |
| | | ID |
| | | FROM |
| | | sys_menu |
| | | WHERE |
| | | ID IN ( |
| | | SELECT |
| | | menuid |
| | | FROM |
| | | sys_relation rela |
| | | WHERE |
| | | rela.roleid IN |
| | | <foreach collection="list" index="index" item="i" open="(" separator="," close=")"> |
| | | #{i} |
| | | </foreach> |
| | | ) |
| | | ) m3 ON m1.id = m3.id |
| | | where m1.ismenu = 1 |
| | | order by levels,num asc |
| | | </select> |
| | | |
| | | </mapper> |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | <mapper namespace="com.stylefeng.guns.modular.system.dao.NoticeMapper"> |
| | | |
| | | <!-- 通用查询映射结果 --> |
| | | <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.Notice"> |
| | | <id column="id" property="id"/> |
| | | <result column="title" property="title"/> |
| | | <result column="type" property="type"/> |
| | | <result column="content" property="content"/> |
| | | <result column="createtime" property="createtime"/> |
| | | <result column="creater" property="creater"/> |
| | | </resultMap> |
| | | |
| | | <select id="list" resultType="map"> |
| | | select * from sys_notice |
| | | <if test="condition != null and condition != ''"> |
| | | where title like CONCAT('%',#{condition},'%') or content like CONCAT('%',#{condition},'%') |
| | | </if> |
| | | order by createtime DESC |
| | | </select> |
| | | |
| | | </mapper> |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | <mapper namespace="com.stylefeng.guns.modular.system.dao.OperationLogMapper"> |
| | | |
| | | <!-- 通用查询映射结果 --> |
| | | <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.OperationLog"> |
| | | <id column="id" property="id" /> |
| | | <result column="logtype" property="logtype" /> |
| | | <result column="logname" property="logname" /> |
| | | <result column="userid" property="userid" /> |
| | | <result column="classname" property="classname" /> |
| | | <result column="method" property="method" /> |
| | | <result column="createtime" property="createtime" /> |
| | | <result column="succeed" property="succeed" /> |
| | | <result column="message" property="message" /> |
| | | </resultMap> |
| | | |
| | | <select id="getOperationLogs" resultType="map"> |
| | | select * from sys_operation_log where 1 = 1 |
| | | <if test="beginTime != null and beginTime !='' and endTime != null and endTime != ''"> |
| | | and (createTime between CONCAT(#{beginTime},' 00:00:00') and CONCAT(#{endTime},' 23:59:59')) |
| | | </if> |
| | | <if test="logName != null and logName !=''"> |
| | | and logname like CONCAT('%',#{logName},'%') |
| | | </if> |
| | | <if test="logType != null and logType !=''"> |
| | | and logtype like CONCAT('%',#{logType},'%') |
| | | </if> |
| | | <choose> |
| | | <when test="orderByField != null and orderByField !=''"> |
| | | <choose> |
| | | <when test="isAsc == true"> |
| | | order by ${orderByField} ASC |
| | | </when> |
| | | <otherwise> |
| | | order by ${orderByField} DESC |
| | | </otherwise> |
| | | </choose> |
| | | </when> |
| | | <otherwise> |
| | | order by createtime DESC |
| | | </otherwise> |
| | | </choose> |
| | | </select> |
| | | |
| | | </mapper> |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | <mapper namespace="com.stylefeng.guns.modular.system.dao.OrderCancelMapper"> |
| | | |
| | | <!-- 通用查询映射结果 --> |
| | | <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.OrderCancel"> |
| | | <id column="id" property="id"/> |
| | | <result column="orderId" property="orderId"/> |
| | | <result column="orderType" property="orderType"/> |
| | | <result column="reason" property="reason"/> |
| | | <result column="remark" property="remark"/> |
| | | <result column="payType" property="payType"/> |
| | | <result column="money" property="money"/> |
| | | <result column="state" property="state"/> |
| | | <result column="insertTime" property="insertTime"/> |
| | | <result column="userType" property="userType"/> |
| | | <result column="userId" property="userId"/> |
| | | </resultMap> |
| | | |
| | | |
| | | |
| | | <select id="query" resultType="OrderCancel"> |
| | | select |
| | | id as id, |
| | | orderId as orderId, |
| | | orderType as orderType, |
| | | reason as reason, |
| | | remark as remark, |
| | | payType as payType, |
| | | money as money, |
| | | state as state, |
| | | insertTime as insertTime, |
| | | userType as userType |
| | | from t_order_cancel where 1 = 1 |
| | | <if test="null != orderId"> |
| | | and orderId = #{orderId} |
| | | </if> |
| | | <if test="null != orderType"> |
| | | and orderType = #{orderType} |
| | | </if> |
| | | <if test="null != money"> |
| | | and money = #{money} |
| | | </if> |
| | | <if test="null != payType"> |
| | | and payType = #{payType} |
| | | </if> |
| | | <if test="null != state"> |
| | | and state = #{state} |
| | | </if> |
| | | order by insertTime desc limit 0,1 |
| | | </select> |
| | | </mapper> |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | <mapper namespace="com.stylefeng.guns.modular.system.dao.OrderCrossCityMapper"> |
| | | |
| | | <!-- 通用查询映射结果 --> |
| | | <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.OrderCrossCity"> |
| | | <id column="id" property="id"/> |
| | | <result column="userId" property="userId"/> |
| | | <result column="serverCarModelId" property="serverCarModelId"/> |
| | | <result column="driverId" property="driverId"/> |
| | | <result column="lineId" property="lineId"/> |
| | | <result column="lineShiftDriverId" property="lineShiftDriverId"/> |
| | | <result column="carId" property="carId"/> |
| | | <result column="orderNum" property="orderNum"/> |
| | | <result column="placementLon" property="placementLon"/> |
| | | <result column="placementLat" property="placementLat"/> |
| | | <result column="placementAddress" property="placementAddress"/> |
| | | <result column="startLon" property="startLon"/> |
| | | <result column="startLat" property="startLat"/> |
| | | <result column="startAddress" property="startAddress"/> |
| | | <result column="endLon" property="endLon"/> |
| | | <result column="endLat" property="endLat"/> |
| | | <result column="endAddress" property="endAddress"/> |
| | | <result column="boardingLon" property="boardingLon"/> |
| | | <result column="boardingLat" property="boardingLat"/> |
| | | <result column="boardingAddress" property="boardingAddress"/> |
| | | <result column="boardingTime" property="boardingTime"/> |
| | | <result column="getoffLon" property="getoffLon"/> |
| | | <result column="getoffLat" property="getoffLat"/> |
| | | <result column="getoffAddress" property="getoffAddress"/> |
| | | <result column="getoffTime" property="getoffTime"/> |
| | | <result column="mileage" property="mileage"/> |
| | | <result column="payManner" property="payManner"/> |
| | | <result column="payType" property="payType"/> |
| | | <result column="orderMoney" property="orderMoney"/> |
| | | <result column="redPacketMoney" property="redPacketMoney"/> |
| | | <result column="couponMoney" property="couponMoney"/> |
| | | <result column="redPacketId" property="redPacketId"/> |
| | | <result column="couponId" property="couponId"/> |
| | | <result column="discount" property="discount"/> |
| | | <result column="discountMoney" property="discountMoney"/> |
| | | <result column="peopleNumber" property="peopleNumber"/> |
| | | <result column="seatNumber" property="seatNumber" /> |
| | | <result column="activityId" property="activityId"/> |
| | | <result column="companyId" property="companyId"/> |
| | | <result column="payMoney" property="payMoney"/> |
| | | <result column="passengers" property="passengers"/> |
| | | <result column="passengersPhone" property="passengersPhone"/> |
| | | <result column="sort" property="sort"/> |
| | | <result column="state" property="state"/> |
| | | <result column="insertTime" property="insertTime"/> |
| | | <result column="travelTime" property="travelTime"/> |
| | | <result column="snatchOrderTime" property="snatchOrderTime"/> |
| | | <result column="setOutTime" property="setOutTime"/> |
| | | <result column="arriveTime" property="arriveTime"/> |
| | | <result column="startServiceTime" property="startServiceTime"/> |
| | | <result column="endServiceTime" property="endServiceTime"/> |
| | | <result column="travelMode" property="travelMode"/> |
| | | <result column="orderSource" property="orderSource"/> |
| | | <result column="isReassign" property="isReassign"/> |
| | | <result column="reassignNotice" property="reassignNotice"/> |
| | | <result column="invoiceId" property="invoiceId"/> |
| | | <result column="trackId" property="trackId"/> |
| | | <result column="isDelete" property="isDelete"/> |
| | | <result column="oldState" property="oldState"/> |
| | | <result column="telX" property="telX"/> |
| | | <result column="bindId" property="bindId"/> |
| | | </resultMap> |
| | | |
| | | |
| | | <select id="queryOrderList" resultType="map"> |
| | | select |
| | | a.id as id, |
| | | DATE_FORMAT(a.insertTime, '%Y年%m月%d日%H:%i') as orderTime, |
| | | CONCAT(b.nickName, '-', b.phone) as `user`, |
| | | a.startAddress as startAddress, |
| | | a.endAddress as endAddress, |
| | | a.state as state, |
| | | c.`name` as lineName |
| | | from t_order_cross_city a |
| | | left join t_user b on (a.userId = b.id) |
| | | left join t_line c on (a.lineId = c.id) |
| | | left join t_car d on (a.carId = d.id) |
| | | left join t_driver e on (a.driverId = e.id) |
| | | where a.isDelete = 1 and a.companyId = #{companyId} |
| | | <if test="null != search and '' != search"> |
| | | and (a.passengersPhone = #{search} or c.name like CONCAT('%', #{search}, '%') or e.phone like CONCAT('%', #{search}, '%') or d.carLicensePlate like CONCAT('%', #{search}, '%')) |
| | | </if> |
| | | <if test="null != orderSource"> |
| | | and a.orderSource in |
| | | <foreach collection="orderSource" item="item" index="index" open="(" separator="," close=")"> |
| | | #{item} |
| | | </foreach> |
| | | </if> |
| | | <if test="null != state"> |
| | | and a.state in |
| | | <foreach collection="state" item="item" index="index" open="(" separator="," close=")"> |
| | | #{item} |
| | | </foreach> |
| | | </if> |
| | | <if test="null != lineId"> |
| | | and a.lineId in |
| | | <foreach collection="lineId" item="item" index="index" open="(" separator="," close=")"> |
| | | #{item} |
| | | </foreach> |
| | | </if> |
| | | order by a.insertTime desc |
| | | <if test="null != pageNum and null != size"> |
| | | limit #{pageNum}, #{size} |
| | | </if> |
| | | </select> |
| | | |
| | | |
| | | <select id="queryOrderInfo" resultType="map"> |
| | | select |
| | | a.id as id, |
| | | DATE_FORMAT(a.insertTime, '%Y/%m/%d/%H:%i') as orderTime, |
| | | a.orderNum as orderNumber, |
| | | a.orderSource as orderSource, |
| | | DATE_FORMAT(a.travelTime, '%Y/%m/%d/%H:%i') as travelTime, |
| | | CONCAT(b.nickName, '-', b.phone) as `user`, |
| | | CONCAT(a.passengers, '-',a.passengersPhone) as passengers, |
| | | a.startAddress as startAddress, |
| | | a.endAddress as endAddress, |
| | | c.`name` as line, |
| | | a.peopleNumber as peopleNumber, |
| | | a.seatNumber as seatNumber, |
| | | a.remark as remark, |
| | | a.orderMoney as orderMoney, |
| | | a.travelMode as travelType, |
| | | CONCAT(d.`name`, '-',d.phone) as driver, |
| | | e.carLicensePlate as car, |
| | | a.state as state |
| | | from t_order_cross_city a |
| | | left join t_user b on (a.userId = b.id) |
| | | left join t_line c on (a.lineId = c.id) |
| | | left join t_driver d on (a.driverId = d.id) |
| | | left join t_car e on (a.carId = e.id) |
| | | where a.id = #{id} |
| | | </select> |
| | | |
| | | |
| | | <select id="queryByDriverId" resultType="OrderCrossCity"> |
| | | select |
| | | id as id, |
| | | userId as userId, |
| | | serverCarModelId as serverCarModelId, |
| | | driverId as driverId, |
| | | lineId as lineId, |
| | | lineShiftDriverId as lineShiftDriverId, |
| | | carId as carId, |
| | | orderNum as orderNum, |
| | | placementLon as placementLon, |
| | | placementLat as placementLat, |
| | | placementAddress as placementAddress, |
| | | startLon as startLon, |
| | | startLat as startLat, |
| | | startAddress as startAddress, |
| | | endLon as endLon, |
| | | endLat as endLat, |
| | | endAddress as endAddress, |
| | | boardingLon as boardingLon, |
| | | boardingLat as boardingLat, |
| | | boardingAddress as boardingAddress, |
| | | boardingTime as boardingTime, |
| | | getoffLon as getoffLon, |
| | | getoffLat as getoffLat, |
| | | getoffAddress as getoffAddress, |
| | | getoffTime as getoffTime, |
| | | mileage as mileage, |
| | | payManner as payManner, |
| | | payType as payType, |
| | | orderMoney as orderMoney, |
| | | redPacketMoney as redPacketMoney, |
| | | couponMoney as couponMoney, |
| | | redPacketId as redPacketId, |
| | | couponId as couponId, |
| | | discount as discount, |
| | | discountMoney as discountMoney, |
| | | activityId as activityId, |
| | | companyId as companyId, |
| | | payMoney as payMoney, |
| | | passengers as passengers, |
| | | passengersPhone as passengersPhone, |
| | | peopleNumber as peopleNumber, |
| | | seatNumber as seatNumber, |
| | | sort as sort, |
| | | state as state, |
| | | insertTime as insertTime, |
| | | travelTime as travelTime, |
| | | snatchOrderTime as snatchOrderTime, |
| | | setOutTime as setOutTime, |
| | | arriveTime as arriveTime, |
| | | startServiceTime as startServiceTime, |
| | | endServiceTime as endServiceTime, |
| | | travelMode as travelMode, |
| | | orderSource as orderSource, |
| | | isReassign as isReassign, |
| | | reassignNotice as reassignNotice, |
| | | invoiceId as invoiceId, |
| | | trackId as trackId, |
| | | isDelete as isDelete, |
| | | oldState as oldState, |
| | | telX as telX, |
| | | bindId as bindId |
| | | from t_order_cross_city where isDelete = 1 |
| | | <if test="null != driverId"> |
| | | and driverId = #{driverId} |
| | | </if> |
| | | <if test="null != state"> |
| | | and state in |
| | | <foreach collection="state" item="item" index="index" open="(" separator="," close=")"> |
| | | #{item} |
| | | </foreach> |
| | | </if> |
| | | </select> |
| | | |
| | | |
| | | |
| | | <select id="query" resultType="OrderCrossCity"> |
| | | select |
| | | id as id, |
| | | userId as userId, |
| | | serverCarModelId as serverCarModelId, |
| | | driverId as driverId, |
| | | lineId as lineId, |
| | | lineShiftDriverId as lineShiftDriverId, |
| | | carId as carId, |
| | | orderNum as orderNum, |
| | | placementLon as placementLon, |
| | | placementLat as placementLat, |
| | | placementAddress as placementAddress, |
| | | startLon as startLon, |
| | | startLat as startLat, |
| | | startAddress as startAddress, |
| | | endLon as endLon, |
| | | endLat as endLat, |
| | | endAddress as endAddress, |
| | | boardingLon as boardingLon, |
| | | boardingLat as boardingLat, |
| | | boardingAddress as boardingAddress, |
| | | boardingTime as boardingTime, |
| | | getoffLon as getoffLon, |
| | | getoffLat as getoffLat, |
| | | getoffAddress as getoffAddress, |
| | | getoffTime as getoffTime, |
| | | mileage as mileage, |
| | | payManner as payManner, |
| | | payType as payType, |
| | | orderMoney as orderMoney, |
| | | redPacketMoney as redPacketMoney, |
| | | couponMoney as couponMoney, |
| | | redPacketId as redPacketId, |
| | | couponId as couponId, |
| | | discount as discount, |
| | | discountMoney as discountMoney, |
| | | activityId as activityId, |
| | | companyId as companyId, |
| | | payMoney as payMoney, |
| | | passengers as passengers, |
| | | passengersPhone as passengersPhone, |
| | | peopleNumber as peopleNumber, |
| | | seatNumber as seatNumber, |
| | | sort as sort, |
| | | state as state, |
| | | insertTime as insertTime, |
| | | travelTime as travelTime, |
| | | snatchOrderTime as snatchOrderTime, |
| | | setOutTime as setOutTime, |
| | | arriveTime as arriveTime, |
| | | startServiceTime as startServiceTime, |
| | | endServiceTime as endServiceTime, |
| | | travelMode as travelMode, |
| | | orderSource as orderSource, |
| | | isReassign as isReassign, |
| | | reassignNotice as reassignNotice, |
| | | invoiceId as invoiceId, |
| | | trackId as trackId, |
| | | isDelete as isDelete, |
| | | oldState as oldState, |
| | | telX as telX, |
| | | bindId as bindId |
| | | from t_order_cross_city where isDelete = 1 |
| | | <if test="null != start and null != end"> |
| | | and travelTime between #{start} and #{end} |
| | | </if> |
| | | </select> |
| | | |
| | | |
| | | <select id="queryByDriver" resultType="OrderCrossCity"> |
| | | select |
| | | id as id, |
| | | userId as userId, |
| | | serverCarModelId as serverCarModelId, |
| | | driverId as driverId, |
| | | lineId as lineId, |
| | | lineShiftDriverId as lineShiftDriverId, |
| | | carId as carId, |
| | | orderNum as orderNum, |
| | | placementLon as placementLon, |
| | | placementLat as placementLat, |
| | | placementAddress as placementAddress, |
| | | startLon as startLon, |
| | | startLat as startLat, |
| | | startAddress as startAddress, |
| | | endLon as endLon, |
| | | endLat as endLat, |
| | | endAddress as endAddress, |
| | | boardingLon as boardingLon, |
| | | boardingLat as boardingLat, |
| | | boardingAddress as boardingAddress, |
| | | boardingTime as boardingTime, |
| | | getoffLon as getoffLon, |
| | | getoffLat as getoffLat, |
| | | getoffAddress as getoffAddress, |
| | | getoffTime as getoffTime, |
| | | mileage as mileage, |
| | | payManner as payManner, |
| | | payType as payType, |
| | | orderMoney as orderMoney, |
| | | redPacketMoney as redPacketMoney, |
| | | couponMoney as couponMoney, |
| | | redPacketId as redPacketId, |
| | | couponId as couponId, |
| | | discount as discount, |
| | | discountMoney as discountMoney, |
| | | activityId as activityId, |
| | | companyId as companyId, |
| | | payMoney as payMoney, |
| | | passengers as passengers, |
| | | passengersPhone as passengersPhone, |
| | | peopleNumber as peopleNumber, |
| | | seatNumber as seatNumber, |
| | | sort as sort, |
| | | state as state, |
| | | insertTime as insertTime, |
| | | travelTime as travelTime, |
| | | snatchOrderTime as snatchOrderTime, |
| | | setOutTime as setOutTime, |
| | | arriveTime as arriveTime, |
| | | startServiceTime as startServiceTime, |
| | | endServiceTime as endServiceTime, |
| | | travelMode as travelMode, |
| | | orderSource as orderSource, |
| | | isReassign as isReassign, |
| | | reassignNotice as reassignNotice, |
| | | invoiceId as invoiceId, |
| | | trackId as trackId, |
| | | isDelete as isDelete, |
| | | oldState as oldState, |
| | | telX as telX, |
| | | bindId as bindId |
| | | from t_order_cross_city where isDelete = 1 |
| | | <if test="null != start and null != end"> |
| | | and travelTime between #{start} and #{end} |
| | | </if> |
| | | <if test="null != driverId"> |
| | | and driverId = #{driverId} |
| | | </if> |
| | | <if test="null != state"> |
| | | and state in |
| | | <foreach collection="state" item="item" index="index" open="(" separator="," close=")"> |
| | | #{item} |
| | | </foreach> |
| | | </if> |
| | | </select> |
| | | |
| | | |
| | | <select id="queryByLineShiftDriverId" resultType="OrderCrossCity"> |
| | | select |
| | | id as id, |
| | | userId as userId, |
| | | serverCarModelId as serverCarModelId, |
| | | driverId as driverId, |
| | | lineId as lineId, |
| | | lineShiftDriverId as lineShiftDriverId, |
| | | carId as carId, |
| | | orderNum as orderNum, |
| | | placementLon as placementLon, |
| | | placementLat as placementLat, |
| | | placementAddress as placementAddress, |
| | | startLon as startLon, |
| | | startLat as startLat, |
| | | startAddress as startAddress, |
| | | endLon as endLon, |
| | | endLat as endLat, |
| | | endAddress as endAddress, |
| | | boardingLon as boardingLon, |
| | | boardingLat as boardingLat, |
| | | boardingAddress as boardingAddress, |
| | | boardingTime as boardingTime, |
| | | getoffLon as getoffLon, |
| | | getoffLat as getoffLat, |
| | | getoffAddress as getoffAddress, |
| | | getoffTime as getoffTime, |
| | | mileage as mileage, |
| | | payManner as payManner, |
| | | payType as payType, |
| | | orderMoney as orderMoney, |
| | | redPacketMoney as redPacketMoney, |
| | | couponMoney as couponMoney, |
| | | redPacketId as redPacketId, |
| | | couponId as couponId, |
| | | discount as discount, |
| | | discountMoney as discountMoney, |
| | | activityId as activityId, |
| | | companyId as companyId, |
| | | payMoney as payMoney, |
| | | passengers as passengers, |
| | | passengersPhone as passengersPhone, |
| | | peopleNumber as peopleNumber, |
| | | seatNumber as seatNumber, |
| | | sort as sort, |
| | | state as state, |
| | | insertTime as insertTime, |
| | | travelTime as travelTime, |
| | | snatchOrderTime as snatchOrderTime, |
| | | setOutTime as setOutTime, |
| | | arriveTime as arriveTime, |
| | | startServiceTime as startServiceTime, |
| | | endServiceTime as endServiceTime, |
| | | travelMode as travelMode, |
| | | orderSource as orderSource, |
| | | isReassign as isReassign, |
| | | reassignNotice as reassignNotice, |
| | | invoiceId as invoiceId, |
| | | trackId as trackId, |
| | | isDelete as isDelete, |
| | | oldState as oldState, |
| | | telX as telX, |
| | | bindId as bindId |
| | | from t_order_cross_city where isDelete = 1 |
| | | <if test="null != lineShiftDriverId"> |
| | | and lineShiftDriverId = #{lineShiftDriverId} |
| | | </if> |
| | | <if test="null != state"> |
| | | and state in |
| | | <foreach collection="state" item="item" index="index" open="(" separator="," close=")"> |
| | | #{item} |
| | | </foreach> |
| | | </if> |
| | | </select> |
| | | |
| | | |
| | | <select id="queryOrders" resultType="OrderCrossCity"> |
| | | select |
| | | id as id, |
| | | userId as userId, |
| | | serverCarModelId as serverCarModelId, |
| | | driverId as driverId, |
| | | lineId as lineId, |
| | | lineShiftDriverId as lineShiftDriverId, |
| | | carId as carId, |
| | | orderNum as orderNum, |
| | | placementLon as placementLon, |
| | | placementLat as placementLat, |
| | | placementAddress as placementAddress, |
| | | startLon as startLon, |
| | | startLat as startLat, |
| | | startAddress as startAddress, |
| | | endLon as endLon, |
| | | endLat as endLat, |
| | | endAddress as endAddress, |
| | | boardingLon as boardingLon, |
| | | boardingLat as boardingLat, |
| | | boardingAddress as boardingAddress, |
| | | boardingTime as boardingTime, |
| | | getoffLon as getoffLon, |
| | | getoffLat as getoffLat, |
| | | getoffAddress as getoffAddress, |
| | | getoffTime as getoffTime, |
| | | mileage as mileage, |
| | | payManner as payManner, |
| | | payType as payType, |
| | | orderMoney as orderMoney, |
| | | redPacketMoney as redPacketMoney, |
| | | couponMoney as couponMoney, |
| | | redPacketId as redPacketId, |
| | | couponId as couponId, |
| | | discount as discount, |
| | | discountMoney as discountMoney, |
| | | activityId as activityId, |
| | | companyId as companyId, |
| | | payMoney as payMoney, |
| | | passengers as passengers, |
| | | passengersPhone as passengersPhone, |
| | | peopleNumber as peopleNumber, |
| | | seatNumber as seatNumber, |
| | | sort as sort, |
| | | state as state, |
| | | insertTime as insertTime, |
| | | travelTime as travelTime, |
| | | snatchOrderTime as snatchOrderTime, |
| | | setOutTime as setOutTime, |
| | | arriveTime as arriveTime, |
| | | startServiceTime as startServiceTime, |
| | | endServiceTime as endServiceTime, |
| | | travelMode as travelMode, |
| | | orderSource as orderSource, |
| | | isReassign as isReassign, |
| | | reassignNotice as reassignNotice, |
| | | invoiceId as invoiceId, |
| | | trackId as trackId, |
| | | isDelete as isDelete, |
| | | oldState as oldState, |
| | | telX as telX, |
| | | bindId as bindId |
| | | from t_order_cross_city where isDelete = 1 |
| | | <if test="null != driverId"> |
| | | and driverId = #{driverId} |
| | | </if> |
| | | <if test="null != lineShiftDriverId"> |
| | | and lineShiftDriverId = #{lineShiftDriverId} |
| | | </if> |
| | | <if test="null != state"> |
| | | and state in |
| | | <foreach collection="state" item="item" index="index" open="(" separator="," close=")"> |
| | | #{item} |
| | | </foreach> |
| | | </if> |
| | | </select> |
| | | |
| | | |
| | | <select id="queryListOrder" resultType="OrderCrossCity"> |
| | | select |
| | | a.id as id, |
| | | a.userId as userId, |
| | | a.serverCarModelId as serverCarModelId, |
| | | a.driverId as driverId, |
| | | a.lineId as lineId, |
| | | a.lineShiftDriverId as lineShiftDriverId, |
| | | a.carId as carId, |
| | | a.orderNum as orderNum, |
| | | a.placementLon as placementLon, |
| | | a.placementLat as placementLat, |
| | | a.placementAddress as placementAddress, |
| | | a.startLon as startLon, |
| | | a.startLat as startLat, |
| | | a.startAddress as startAddress, |
| | | a.endLon as endLon, |
| | | a.endLat as endLat, |
| | | a.endAddress as endAddress, |
| | | a.boardingLon as boardingLon, |
| | | a.boardingLat as boardingLat, |
| | | a.boardingAddress as boardingAddress, |
| | | a.boardingTime as boardingTime, |
| | | a.getoffLon as getoffLon, |
| | | a.getoffLat as getoffLat, |
| | | a.getoffAddress as getoffAddress, |
| | | a.getoffTime as getoffTime, |
| | | a.mileage as mileage, |
| | | a.payManner as payManner, |
| | | a.payType as payType, |
| | | a.orderMoney as orderMoney, |
| | | a.redPacketMoney as redPacketMoney, |
| | | a.couponMoney as couponMoney, |
| | | a.redPacketId as redPacketId, |
| | | a.couponId as couponId, |
| | | a.discount as discount, |
| | | a.discountMoney as discountMoney, |
| | | a.activityId as activityId, |
| | | a.companyId as companyId, |
| | | a.payMoney as payMoney, |
| | | a.passengers as passengers, |
| | | a.passengersPhone as passengersPhone, |
| | | a.peopleNumber as peopleNumber, |
| | | a.seatNumber as seatNumber, |
| | | a.sort as sort, |
| | | a.state as state, |
| | | a.insertTime as insertTime, |
| | | a.travelTime as travelTime, |
| | | a.snatchOrderTime as snatchOrderTime, |
| | | a.setOutTime as setOutTime, |
| | | a.arriveTime as arriveTime, |
| | | a.startServiceTime as startServiceTime, |
| | | a.endServiceTime as endServiceTime, |
| | | a.travelMode as travelMode, |
| | | a.orderSource as orderSource, |
| | | a.isReassign as isReassign, |
| | | a.reassignNotice as reassignNotice, |
| | | a.invoiceId as invoiceId, |
| | | a.trackId as trackId, |
| | | a.isDelete as isDelete, |
| | | a.oldState as oldState, |
| | | a.telX as telX, |
| | | a.bindId as bindId, |
| | | a.remark as remark |
| | | from t_order_cross_city a |
| | | left join t_line_shift_driver b on (a.lineShiftDriverId = b.id) |
| | | where a.isDelete = 1 |
| | | <if test="null != driverId"> |
| | | and a.driverId = #{driverId} |
| | | </if> |
| | | <if test="null != lineShiftId"> |
| | | and b.lineShiftId = #{lineShiftId} |
| | | </if> |
| | | <if test="null != state"> |
| | | and a.state in |
| | | <foreach collection="state" item="item" index="index" open="(" separator="," close=")"> |
| | | #{item} |
| | | </foreach> |
| | | </if> |
| | | <if test="null != day and '' != day"> |
| | | and DATE_FORMAT(a.travelTime, '%Y-%m-%d') = #{day} |
| | | </if> |
| | | </select> |
| | | </mapper> |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | <mapper namespace="com.stylefeng.guns.modular.system.dao.OrderPositionMapper"> |
| | | |
| | | <!-- 通用查询映射结果 --> |
| | | <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.OrderPosition"> |
| | | <id column="id" property="id"/> |
| | | <result column="orderType" property="orderType"/> |
| | | <result column="orderId" property="orderId"/> |
| | | <result column="driverId" property="driverId"/> |
| | | <result column="lon" property="lon"/> |
| | | <result column="lat" property="lat"/> |
| | | <result column="directionAngle" property="directionAngle"/> |
| | | <result column="altitude" property="altitude"/> |
| | | <result column="insertTime" property="insertTime"/> |
| | | </resultMap> |
| | | |
| | | |
| | | <select id="queryNew" resultType="OrderPosition"> |
| | | select |
| | | id as id, |
| | | orderType as orderType, |
| | | orderId as orderId, |
| | | driverId as driverId, |
| | | lon as lon, |
| | | lat as lat, |
| | | directionAngle as directionAngle, |
| | | altitude as altitude, |
| | | insertTime as insertTime |
| | | from t_order_position where orderId = #{orderId} and orderType = #{orderType} order by insertTime desc limit 0,1 |
| | | </select> |
| | | </mapper> |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | <mapper namespace="com.stylefeng.guns.modular.system.dao.OrderPrivateCarMapper"> |
| | | |
| | | <!-- 通用查询映射结果 --> |
| | | <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.OrderPrivateCar"> |
| | | <id column="id" property="id"/> |
| | | <result column="type" property="type"/> |
| | | <result column="userId" property="userId"/> |
| | | <result column="serverCarModelId" property="serverCarModelId"/> |
| | | <result column="driverId" property="driverId"/> |
| | | <result column="carId" property="carId"/> |
| | | <result column="orderNum" property="orderNum"/> |
| | | <result column="placementLon" property="placementLon"/> |
| | | <result column="placementLat" property="placementLat"/> |
| | | <result column="placementAddress" property="placementAddress"/> |
| | | <result column="startLon" property="startLon"/> |
| | | <result column="startLat" property="startLat"/> |
| | | <result column="startAddress" property="startAddress"/> |
| | | <result column="endLon" property="endLon"/> |
| | | <result column="endLat" property="endLat"/> |
| | | <result column="endAddress" property="endAddress"/> |
| | | <result column="boardingLon" property="boardingLon"/> |
| | | <result column="boardingLat" property="boardingLat"/> |
| | | <result column="boardingAddress" property="boardingAddress"/> |
| | | <result column="boardingTime" property="boardingTime"/> |
| | | <result column="getoffLon" property="getoffLon"/> |
| | | <result column="getoffLat" property="getoffLat"/> |
| | | <result column="getoffAddress" property="getoffAddress"/> |
| | | <result column="getoffTime" property="getoffTime"/> |
| | | <result column="mileage" property="mileage"/> |
| | | <result column="payManner" property="payManner"/> |
| | | <result column="payType" property="payType"/> |
| | | <result column="orderMoney" property="orderMoney"/> |
| | | <result column="startMileage" property="startMileage"/> |
| | | <result column="startMoney" property="startMoney"/> |
| | | <result column="mileageKilometers" property="mileageKilometers"/> |
| | | <result column="mileageMoney" property="mileageMoney"/> |
| | | <result column="duration" property="duration"/> |
| | | <result column="durationMoney" property="durationMoney"/> |
| | | <result column="wait" property="wait"/> |
| | | <result column="waitMoney" property="waitMoney"/> |
| | | <result column="longDistance" property="longDistance"/> |
| | | <result column="longDistanceMoney" property="longDistanceMoney"/> |
| | | <result column="parkMoney" property="parkMoney"/> |
| | | <result column="roadTollMoney" property="roadTollMoney"/> |
| | | <result column="redPacketMoney" property="redPacketMoney"/> |
| | | <result column="couponMoney" property="couponMoney"/> |
| | | <result column="redPacketId" property="redPacketId"/> |
| | | <result column="couponId" property="couponId"/> |
| | | <result column="discount" property="discount"/> |
| | | <result column="discountMoney" property="discountMoney"/> |
| | | <result column="activityId" property="activityId"/> |
| | | <result column="companyId" property="companyId"/> |
| | | <result column="payMoney" property="payMoney"/> |
| | | <result column="substitute" property="substitute"/> |
| | | <result column="passengers" property="passengers"/> |
| | | <result column="passengersPhone" property="passengersPhone"/> |
| | | <result column="state" property="state"/> |
| | | <result column="insertTime" property="insertTime"/> |
| | | <result column="travelTime" property="travelTime"/> |
| | | <result column="snatchOrderTime" property="snatchOrderTime"/> |
| | | <result column="setOutTime" property="setOutTime"/> |
| | | <result column="arriveTime" property="arriveTime"/> |
| | | <result column="startServiceTime" property="startServiceTime"/> |
| | | <result column="endServiceTime" property="endServiceTime"/> |
| | | <result column="orderType" property="orderType"/> |
| | | <result column="orderSource" property="orderSource"/> |
| | | <result column="invoiceId" property="invoiceId"/> |
| | | <result column="isReassign" property="isReassign"/> |
| | | <result column="reassignNotice" property="reassignNotice"/> |
| | | <result column="trackId" property="trackId"/> |
| | | <result column="isDelete" property="isDelete"/> |
| | | <result column="oldState" property="oldState"/> |
| | | <result column="telX" property="telX"/> |
| | | <result column="bindId" property="bindId"/> |
| | | </resultMap> |
| | | |
| | | |
| | | |
| | | <select id="queryOrderList" resultType="map"> |
| | | select |
| | | a.id as id, |
| | | DATE_FORMAT(a.insertTime, '%Y年%m月%d日%H:%i') as orderTime, |
| | | CONCAT(b.nickName, '-', b.phone) as `user`, |
| | | a.startAddress as startAddress, |
| | | a.endAddress as endAddress, |
| | | a.state as state |
| | | from t_order_private_car a |
| | | left join t_user b on (a.userId = b.id) |
| | | left join t_driver c on (a.driverId = c.id) |
| | | left join t_car d on (a.carId = d.id) |
| | | where a.isDelete = 1 and a.companyId = #{companyId} |
| | | <if test="null != search and '' != search"> |
| | | and (a.passengersPhone = #{search} or c.name like CONCAT('%', #{search}, '%') or c.phone like CONCAT('%', #{search}, '%') or d.carLicensePlate like CONCAT('%', #{search}, '%')) |
| | | </if> |
| | | <if test="null != orderSource"> |
| | | and a.orderSource in |
| | | <foreach collection="orderSource" item="item" index="index" open="(" separator="," close=")"> |
| | | #{item} |
| | | </foreach> |
| | | </if> |
| | | <if test="null != state"> |
| | | and a.state in |
| | | <foreach collection="state" item="item" index="index" open="(" separator="," close=")"> |
| | | #{item} |
| | | </foreach> |
| | | </if> |
| | | order by a.insertTime desc |
| | | <if test="null != pageNum and null != size"> |
| | | limit #{pageNum}, #{size} |
| | | </if> |
| | | </select> |
| | | |
| | | |
| | | |
| | | <select id="queryOrderInfo" resultType="map"> |
| | | select |
| | | a.id as id, |
| | | DATE_FORMAT(a.insertTime, '%Y/%m/%d/%H:%i') as orderTime, |
| | | a.orderNum as orderNumber, |
| | | DATE_FORMAT(a.travelTime, '%Y/%m/%d/%H:%i') as travelTime, |
| | | CONCAT(b.nickName, '-', b.phone) as `user`, |
| | | a.startAddress as startAddress, |
| | | a.endAddress as endAddress, |
| | | c.`name` as serverCarModel, |
| | | a.orderMoney as orderMoney, |
| | | CONCAT(d.`name`, '-',d.phone) as driver, |
| | | e.carLicensePlate as car, |
| | | CONCAT(g.`name`, '-',g.phone) as originalDriver, |
| | | a.state as state |
| | | from t_order_private_car a |
| | | left join t_user b on (a.userId = b.id) |
| | | left join t_server_carmodel c on (a.serverCarModelId = c.id) |
| | | left join t_driver d on (a.driverId = d.id) |
| | | left join t_car e on (a.carId = e.id) |
| | | left join (select * from t_reassign where orderType = 1 and orderId = #{orderId} order by insertTime desc limit 0, 1) as f on (a.id = f.orderId and f.orderType = 1) |
| | | left join t_driver g on (f.originalDriverId = g.id) |
| | | where a.id = #{orderId} |
| | | </select> |
| | | </mapper> |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | <mapper namespace="com.stylefeng.guns.modular.system.dao.OrderTaxiMapper"> |
| | | |
| | | <!-- 通用查询映射结果 --> |
| | | <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.OrderTaxi"> |
| | | <id column="id" property="id"/> |
| | | <result column="type" property="type"/> |
| | | <result column="crossCityOrderId" property="crossCityOrderId"/> |
| | | <result column="place" property="place"/> |
| | | <result column="userId" property="userId"/> |
| | | <result column="driverId" property="driverId"/> |
| | | <result column="carId" property="carId"/> |
| | | <result column="orderNum" property="orderNum"/> |
| | | <result column="placementLon" property="placementLon"/> |
| | | <result column="placementLat" property="placementLat"/> |
| | | <result column="placementAddress" property="placementAddress"/> |
| | | <result column="startLon" property="startLon"/> |
| | | <result column="startLat" property="startLat"/> |
| | | <result column="startAddress" property="startAddress"/> |
| | | <result column="endLon" property="endLon"/> |
| | | <result column="endLat" property="endLat"/> |
| | | <result column="endAddress" property="endAddress"/> |
| | | <result column="boardingLon" property="boardingLon"/> |
| | | <result column="boardingLat" property="boardingLat"/> |
| | | <result column="boardingAddress" property="boardingAddress"/> |
| | | <result column="boardingTime" property="boardingTime"/> |
| | | <result column="getoffLon" property="getoffLon"/> |
| | | <result column="getoffLat" property="getoffLat"/> |
| | | <result column="getoffAddress" property="getoffAddress"/> |
| | | <result column="getoffTime" property="getoffTime"/> |
| | | <result column="mileage" property="mileage"/> |
| | | <result column="payManner" property="payManner"/> |
| | | <result column="payType" property="payType"/> |
| | | <result column="orderMoney" property="orderMoney"/> |
| | | <result column="travelMoney" property="travelMoney"/> |
| | | <result column="parkMoney" property="parkMoney"/> |
| | | <result column="roadTollMoney" property="roadTollMoney"/> |
| | | <result column="tipMoney" property="tipMoney"/> |
| | | <result column="redPacketMoney" property="redPacketMoney"/> |
| | | <result column="couponMoney" property="couponMoney"/> |
| | | <result column="redPacketId" property="redPacketId"/> |
| | | <result column="couponId" property="couponId"/> |
| | | <result column="discount" property="discount"/> |
| | | <result column="discountMoney" property="discountMoney"/> |
| | | <result column="activityId" property="activityId"/> |
| | | <result column="companyId" property="companyId"/> |
| | | <result column="payMoney" property="payMoney"/> |
| | | <result column="substitute" property="substitute"/> |
| | | <result column="passengers" property="passengers"/> |
| | | <result column="passengersPhone" property="passengersPhone"/> |
| | | <result column="state" property="state"/> |
| | | <result column="insertTime" property="insertTime"/> |
| | | <result column="travelTime" property="travelTime"/> |
| | | <result column="snatchOrderTime" property="snatchOrderTime"/> |
| | | <result column="setOutTime" property="setOutTime"/> |
| | | <result column="arriveTime" property="arriveTime"/> |
| | | <result column="startServiceTime" property="startServiceTime"/> |
| | | <result column="endServiceTime" property="endServiceTime"/> |
| | | <result column="orderType" property="orderType"/> |
| | | <result column="orderSource" property="orderSource"/> |
| | | <result column="invoiceId" property="invoiceId"/> |
| | | <result column="isReassign" property="isReassign"/> |
| | | <result column="reassignNotice" property="reassignNotice"/> |
| | | <result column="trackId" property="trackId"/> |
| | | <result column="isDelete" property="isDelete"/> |
| | | <result column="oldState" property="oldState"/> |
| | | <result column="telX" property="telX"/> |
| | | <result column="bindId" property="bindId"/> |
| | | </resultMap> |
| | | |
| | | |
| | | |
| | | <select id="query" resultType="OrderTaxi"> |
| | | select |
| | | id as id, |
| | | userId as userId, |
| | | driverId as driverId, |
| | | carId as carId, |
| | | orderNum as orderNum, |
| | | placementLon as placementLon, |
| | | placementLat as placementLat, |
| | | placementAddress as placementAddress, |
| | | startLon as startLon, |
| | | startLat as startLat, |
| | | startAddress as startAddress, |
| | | endLon as endLon, |
| | | endLat as endLat, |
| | | endAddress as endAddress, |
| | | boardingLon as boardingLon, |
| | | boardingLat as boardingLat, |
| | | boardingAddress as boardingAddress, |
| | | boardingTime as boardingTime, |
| | | getoffLon as getoffLon, |
| | | getoffLat as getoffLat, |
| | | getoffAddress as getoffAddress, |
| | | getoffTime as getoffTime, |
| | | mileage as mileage, |
| | | payManner as payManner, |
| | | payType as payType, |
| | | orderMoney as orderMoney, |
| | | travelMoney as travelMoney, |
| | | parkMoney as parkMoney, |
| | | roadTollMoney as roadTollMoney, |
| | | tipMoney as tipMoney, |
| | | redPacketMoney as redPacketMoney, |
| | | couponMoney as couponMoney, |
| | | redPacketId as redPacketId, |
| | | couponId as couponId, |
| | | discount as discount, |
| | | discountMoney as discountMoney, |
| | | activityId as activityId, |
| | | companyId as companyId, |
| | | payMoney as payMoney, |
| | | substitute as substitute, |
| | | passengers as passengers, |
| | | passengersPhone as passengersPhone, |
| | | state as state, |
| | | insertTime as insertTime, |
| | | travelTime as travelTime, |
| | | snatchOrderTime as snatchOrderTime, |
| | | setOutTime as setOutTime, |
| | | arriveTime as arriveTime, |
| | | startServiceTime as startServiceTime, |
| | | endServiceTime as endServiceTime, |
| | | orderType as orderType, |
| | | orderSource as orderSource, |
| | | invoiceId as invoiceId |
| | | from t_order_taxi where insertTime between #{start} and #{end} |
| | | </select> |
| | | |
| | | |
| | | |
| | | <select id="queryMyOrderList" resultType="map"> |
| | | select |
| | | id as orderId, |
| | | DATE_FORMAT(insertTime, '%Y-%m-%d %H:%i') as orderTime, |
| | | DATE_FORMAT(travelTime, '%m月%d日 %H:%i') as time, |
| | | startAddress as startAddress, |
| | | endAddress as endAddress, |
| | | driverId as driverId, |
| | | (2) as orderType, |
| | | state as state, |
| | | oldState as oldState |
| | | from t_order_taxi where userId = #{uid} order by insertTime desc limit #{pageNum}, #{size} |
| | | </select> |
| | | |
| | | |
| | | <select id="queryMyTravelRecord" resultType="map"> |
| | | select |
| | | (payMoney * -1) as money, |
| | | DATE_FORMAT(insertTime, '%Y-%m-%d %H:%i') as time, |
| | | ('出租车订单') as name, |
| | | UNIX_TIMESTAMP(insertTime) as insertTime |
| | | from t_order_taxi where payMoney != 0 and userId = #{uid} and state in (8, 9, 10, 11, 12) |
| | | </select> |
| | | |
| | | |
| | | <select id="queryRedEnvelope" resultType="map"> |
| | | select |
| | | redPacketMoney as money, |
| | | DATE_FORMAT(insertTime, '%Y-%m-%d %H:%i') as time, |
| | | ('出租车订单') as name, |
| | | UNIX_TIMESTAMP(insertTime) as insertTime |
| | | from t_order_taxi where userId = #{uid} and state in (8, 9) and redPacketId is not null |
| | | </select> |
| | | |
| | | |
| | | |
| | | <select id="queryInvoiceOrder" resultType="map"> |
| | | select |
| | | id as id, |
| | | DATE_FORMAT(travelTime, '%Y-%m-%d %H:%i') as time, |
| | | startAddress as startAddress, |
| | | endAddress as endAddress, |
| | | payMoney as payMoney, |
| | | ('出租车订单') as orderName, |
| | | if(invoiceId is null, 1, 2) as invoice, |
| | | unix_timestamp(insertTime) as insertTime, |
| | | (2) as orderType |
| | | from t_order_taxi where state in (8, 9) |
| | | <if test="type == 1"> |
| | | and invoiceId is null and invoiceId in (select id from t_invoice where state != 2) |
| | | </if> |
| | | <if test="type == 2"> |
| | | and invoiceId in (select id from t_invoice where state = 2) |
| | | </if> |
| | | <if test="null != startTime and null != endTime"> |
| | | and travelTime between #{startTime} and #{endTime} |
| | | </if> |
| | | <if test="null != startMoney and null != endMoney"> |
| | | and payMoney between #{startMoney} and #{endMoney} |
| | | </if> |
| | | <if test="null !=uid"> |
| | | and userId = #{uid} |
| | | </if> |
| | | </select> |
| | | |
| | | |
| | | |
| | | <select id="queryOrderInfo" resultType="map"> |
| | | select |
| | | a.id as orderId, |
| | | a.type as type, |
| | | a.state as state, |
| | | DATE_FORMAT(a.insertTime, '%Y-%m-%d %H:%i:%s') as insertTime, |
| | | DATE_FORMAT(a.travelTime, '%m月%d日 %H:%i') as travelTime, |
| | | DATE_FORMAT(a.arriveTime, '%Y-%m-%d %H:%i:%s') as arriveTime, |
| | | a.startLon as startLon, |
| | | a.startLat as startLat, |
| | | a.startAddress as startAddress, |
| | | a.endLon as endLon, |
| | | a.endLat as endLat, |
| | | a.endAddress as endAddress, |
| | | a.driverId as driverId, |
| | | a.orderMoney as orderMoney, |
| | | a.travelMoney as travelMoney, |
| | | a.parkMoney as parkMoney, |
| | | a.roadTollMoney as roadTollMoney, |
| | | a.redPacketMoney as redPacketMoney, |
| | | a.couponMoney as couponMoney, |
| | | a.discountMoney as discountMoney, |
| | | a.tipMoney as tipMoney, |
| | | a.payMoney as payMoney, |
| | | a.reassignNotice as reassignNotice, |
| | | a.oldState as oldState, |
| | | b.headImgUrl as driverAvatar, |
| | | b.`name` as driverName, |
| | | c.carLicensePlate as licensePlate, |
| | | c.carColor as carColor, |
| | | CONCAT(f.`name`, d.`name`) as brand, |
| | | ((select sum(fraction) from t_order_evaluate where driverId = a.driverId) / (select count(id) from t_order_evaluate where driverId = a.driverId)) as score, |
| | | ( |
| | | (select count(id) from t_order_private_car where driverId = a.driverId and state in (7, 8, 9)) + |
| | | (select count(id) from t_order_taxi where driverId = a.driverId and state in (7, 8, 9)) + |
| | | (select count(id) from t_order_cross_city where driverId = a.driverId and state in (6, 8, 9)) |
| | | ) as orderNum, |
| | | b.phone as driverPhone, |
| | | if(a.state = 12, (select money from t_order_cancel where orderId = a.id and orderType = 2 and state = 1 order by insertTime desc limit 0, 1), if(a.state = 10, (select money from t_order_cancel where orderId = a.id and orderType = 2 and state = 2 order by insertTime desc limit 0, 1), 0)) as cancelPayMoney, |
| | | if(a.state = 12, (select id from t_order_cancel where orderId = a.id and orderType = 2 and state = 1 order by insertTime desc limit 0, 1), 0) as cancelId, |
| | | g.fraction as orderScore, |
| | | g.content as evaluate, |
| | | a.telX as telX, |
| | | h.userType as cancelUserType, |
| | | h.money as cancelMoney, |
| | | h.reason as cancelReason, |
| | | h.remark as cancelRemark |
| | | from t_order_taxi a |
| | | left join t_driver b on (a.driverId = b.id) |
| | | left join t_car c on (a.carId = c.id) |
| | | left join t_car_model d on (c.carModelId = d.id) |
| | | left join t_car_brand f on (d.brandId = f.id) |
| | | left join t_order_evaluate g on (a.id = g.orderId and g.orderType = 2) |
| | | left join t_order_cancel h on (a.id = h.orderId and h.orderType = 2 and h.state = 2) |
| | | where a.id = #{orderId} |
| | | </select> |
| | | |
| | | |
| | | |
| | | <select id="queryByState" resultType="OrderTaxi"> |
| | | select |
| | | id as id, |
| | | userId as userId, |
| | | driverId as driverId, |
| | | carId as carId, |
| | | orderNum as orderNum, |
| | | placementLon as placementLon, |
| | | placementLat as placementLat, |
| | | placementAddress as placementAddress, |
| | | startLon as startLon, |
| | | startLat as startLat, |
| | | startAddress as startAddress, |
| | | endLon as endLon, |
| | | endLat as endLat, |
| | | endAddress as endAddress, |
| | | boardingLon as boardingLon, |
| | | boardingLat as boardingLat, |
| | | boardingAddress as boardingAddress, |
| | | boardingTime as boardingTime, |
| | | getoffLon as getoffLon, |
| | | getoffLat as getoffLat, |
| | | getoffAddress as getoffAddress, |
| | | getoffTime as getoffTime, |
| | | mileage as mileage, |
| | | payManner as payManner, |
| | | payType as payType, |
| | | orderMoney as orderMoney, |
| | | travelMoney as travelMoney, |
| | | parkMoney as parkMoney, |
| | | roadTollMoney as roadTollMoney, |
| | | tipMoney as tipMoney, |
| | | redPacketMoney as redPacketMoney, |
| | | couponMoney as couponMoney, |
| | | redPacketId as redPacketId, |
| | | couponId as couponId, |
| | | discount as discount, |
| | | discountMoney as discountMoney, |
| | | activityId as activityId, |
| | | companyId as companyId, |
| | | payMoney as payMoney, |
| | | substitute as substitute, |
| | | passengers as passengers, |
| | | passengersPhone as passengersPhone, |
| | | state as state, |
| | | insertTime as insertTime, |
| | | travelTime as travelTime, |
| | | snatchOrderTime as snatchOrderTime, |
| | | setOutTime as setOutTime, |
| | | arriveTime as arriveTime, |
| | | startServiceTime as startServiceTime, |
| | | endServiceTime as endServiceTime, |
| | | orderType as orderType, |
| | | orderSource as orderSource, |
| | | invoiceId as invoiceId |
| | | from t_order_taxi where userId = #{uid} |
| | | <if test="null != state"> |
| | | and state in |
| | | <foreach collection="state" item="item" index="index" open="(" separator="," close=")"> |
| | | #{item} |
| | | </foreach> |
| | | </if> |
| | | </select> |
| | | |
| | | |
| | | |
| | | |
| | | <select id="queryByState_" resultType="OrderTaxi"> |
| | | select |
| | | id as id, |
| | | `type` as `type`, |
| | | userId as userId, |
| | | driverId as driverId, |
| | | carId as carId, |
| | | orderNum as orderNum, |
| | | placementLon as placementLon, |
| | | placementLat as placementLat, |
| | | placementAddress as placementAddress, |
| | | startLon as startLon, |
| | | startLat as startLat, |
| | | startAddress as startAddress, |
| | | endLon as endLon, |
| | | endLat as endLat, |
| | | endAddress as endAddress, |
| | | boardingLon as boardingLon, |
| | | boardingLat as boardingLat, |
| | | boardingAddress as boardingAddress, |
| | | boardingTime as boardingTime, |
| | | getoffLon as getoffLon, |
| | | getoffLat as getoffLat, |
| | | getoffAddress as getoffAddress, |
| | | getoffTime as getoffTime, |
| | | mileage as mileage, |
| | | payManner as payManner, |
| | | payType as payType, |
| | | orderMoney as orderMoney, |
| | | travelMoney as travelMoney, |
| | | parkMoney as parkMoney, |
| | | roadTollMoney as roadTollMoney, |
| | | tipMoney as tipMoney, |
| | | redPacketMoney as redPacketMoney, |
| | | couponMoney as couponMoney, |
| | | redPacketId as redPacketId, |
| | | couponId as couponId, |
| | | discount as discount, |
| | | discountMoney as discountMoney, |
| | | activityId as activityId, |
| | | companyId as companyId, |
| | | payMoney as payMoney, |
| | | substitute as substitute, |
| | | passengers as passengers, |
| | | passengersPhone as passengersPhone, |
| | | state as state, |
| | | insertTime as insertTime, |
| | | travelTime as travelTime, |
| | | snatchOrderTime as snatchOrderTime, |
| | | setOutTime as setOutTime, |
| | | arriveTime as arriveTime, |
| | | startServiceTime as startServiceTime, |
| | | endServiceTime as endServiceTime, |
| | | orderType as orderType, |
| | | orderSource as orderSource, |
| | | invoiceId as invoiceId |
| | | from t_order_taxi where userId = #{uid} |
| | | <if test="null != orderType"> |
| | | and orderType = #{orderType} |
| | | </if> |
| | | <if test="null != state"> |
| | | and state in |
| | | <foreach collection="state" item="item" index="index" open="(" separator="," close=")"> |
| | | #{item} |
| | | </foreach> |
| | | </if> |
| | | <if test="null != type"> |
| | | and `type` = #{type} |
| | | </if> |
| | | </select> |
| | | </mapper> |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | <mapper namespace="com.stylefeng.guns.modular.system.dao.PaymentRecordMapper"> |
| | | |
| | | <!-- 通用查询映射结果 --> |
| | | <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.PaymentRecord"> |
| | | <id column="id" property="id"/> |
| | | <result column="category" property="category"/> |
| | | <result column="userId" property="userId"/> |
| | | <result column="type" property="type"/> |
| | | <result column="orderId" property="orderId"/> |
| | | <result column="orderType" property="orderType"/> |
| | | <result column="payType" property="payType"/> |
| | | <result column="amount" property="amount"/> |
| | | <result column="code" property="code"/> |
| | | <result column="state" property="state"/> |
| | | <result column="insertTime" property="insertTime"/> |
| | | </resultMap> |
| | | |
| | | |
| | | <select id="query" resultType="PaymentRecord"> |
| | | select |
| | | id as id, |
| | | category as category, |
| | | userId as userId, |
| | | `type` as `type`, |
| | | orderId as orderId, |
| | | orderType as orderType, |
| | | payType as payType, |
| | | amount as amount, |
| | | code as code, |
| | | state as state, |
| | | insertTime as insertTime |
| | | from t_payment_record where category = #{category} |
| | | <if test="null != userId"> |
| | | and userId = #{userId} |
| | | </if> |
| | | <if test="null != type"> |
| | | and type = #{type} |
| | | </if> |
| | | <if test="null != orderId"> |
| | | and orderId = #{orderId} |
| | | </if> |
| | | <if test="null != orderType"> |
| | | and orderType = #{orderType} |
| | | </if> |
| | | <if test="null != payType"> |
| | | and payType = #{payType} |
| | | </if> |
| | | <if test="null != state"> |
| | | and state = #{state} |
| | | </if> |
| | | order by insertTime desc limit 0,1 |
| | | </select> |
| | | </mapper> |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | <mapper namespace="com.stylefeng.guns.modular.system.dao.ReassignMapper"> |
| | | |
| | | <!-- 通用查询映射结果 --> |
| | | <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.Reassign"> |
| | | <id column="id" property="id"/> |
| | | <result column="orderType" property="orderType"/> |
| | | <result column="orderId" property="orderId"/> |
| | | <result column="originalDriverId" property="originalDriverId"/> |
| | | <result column="originalCarId" property="originalCarId"/> |
| | | <result column="insertTime" property="insertTime"/> |
| | | <result column="nowDriverId" property="nowDriverId"/> |
| | | <result column="nowCarId" property="nowCarId"/> |
| | | <result column="money" property="money"/> |
| | | <result column="payType" property="payType"/> |
| | | <result column="payTime" property="payTime"/> |
| | | <result column="payOrder" property="payOrder"/> |
| | | <result column="state" property="state"/> |
| | | <result column="reason" property="reason"/> |
| | | <result column="remark" property="remark"/> |
| | | <result column="reviewer" property="reviewer"/> |
| | | <result column="reviewerType" property="reviewerType"/> |
| | | <result column="completeTime" property="completeTime"/> |
| | | </resultMap> |
| | | |
| | | |
| | | |
| | | <select id="queryApplyReassignList" resultType="map"> |
| | | select |
| | | a.id as id, |
| | | DATE_FORMAT(a.insertTime, '%Y年%m月%d日%H:%i') as applyTime, |
| | | if(a.orderType = 1, c.startAddress, b.startAddress) as startAddress, |
| | | if(a.orderType = 1, c.endAddress, b.endAddress) as endAddress, |
| | | CONCAT(d.`name`, '-', f.carLicensePlate) applyDriver, |
| | | CONCAT(e.`name`, '-', g.carLicensePlate) nowDriver, |
| | | a.state as state, |
| | | a.orderType as orderType |
| | | from t_reassign a |
| | | left join t_order_cross_city b on (a.orderId = b.id and a.orderType = 3) |
| | | left join t_order_private_car c on (a.orderId = c.id and a.orderType = 1) |
| | | left join t_driver d on (a.originalDriverId = d.id) |
| | | left join t_driver e on (a.nowDriverId = e.id) |
| | | left join t_car f on (d.carId = f.id) |
| | | left join t_car g on (e.carId = g.id) |
| | | where a.orderType in (1, 3) |
| | | <if test="null != companyId"> |
| | | and if(d.franchiseeId is null or d.franchiseeId = 0, d.companyId = #{companyId}, d.franchiseeId = #{companyId}) |
| | | </if> |
| | | <if test="state == 1"> |
| | | and a.state in (2) and (b.state not in (10, 12) or c.state not in (10, 12)) |
| | | </if> |
| | | <if test="state == 2"> |
| | | and a.state in (3, 4, 5) |
| | | </if> |
| | | order by a.insertTime desc |
| | | <if test="null != pageNum and null != size"> |
| | | limit #{pageNum}, #{size} |
| | | </if> |
| | | </select> |
| | | |
| | | |
| | | <select id="queryReassignInfo" resultType="map"> |
| | | select |
| | | a.id as id, |
| | | DATE_FORMAT(a.insertTime, '%Y.%m.%d-%H:%i') as applyTime, |
| | | CONCAT(d.`name`, '-', e.carLicensePlate) as applyDriver, |
| | | a.reason as reason, |
| | | if(a.orderType = 1, f.nickName, g.nickName) as `user`, |
| | | if(a.orderType = 1, DATE_FORMAT(b.travelTime, '%Y.%m.%d-%H:%i'), DATE_FORMAT(c.travelTime, '%Y.%m.%d-%H:%i')) as travelTime, |
| | | if(a.orderType = 1, b.startAddress, c.startAddress) as startAddress, |
| | | if(a.orderType = 1, b.endAddress, c.endAddress) as endAddress, |
| | | if(a.orderType = 1, b.state, c.state) as state, |
| | | a.state as `status`, |
| | | if(a.reviewerType = 1, i.`name`, h.`name`) as reviewer, |
| | | CONCAT(j.`name`, '-', k.carLicensePlate) as nowDriver, |
| | | a.orderType as orderType |
| | | from t_reassign a |
| | | left join t_order_private_car b on (a.orderId = b.id and a.orderType = 1) |
| | | left join t_order_cross_city c on (a.orderId = c.id and a.orderType = 3) |
| | | left join t_driver d on (a.originalDriverId = d.id) |
| | | left join t_car e on (a.originalCarId = e.id) |
| | | left join t_user f on (b.userId = f.id) |
| | | left join t_user g on (c.userId = g.id) |
| | | left join sys_user h on (a.reviewer = h.id and a.reviewerType = 2) |
| | | left join t_dispatch i on (a.reviewer = i.id and a.reviewerType = 1) |
| | | left join t_driver j on (a.nowDriverId = j.id) |
| | | left join t_car k on (a.nowCarId = k.id) |
| | | where a.id = #{id} |
| | | </select> |
| | | </mapper> |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | <mapper namespace="com.stylefeng.guns.modular.system.dao.RegionMapper"> |
| | | |
| | | <!-- 通用查询映射结果 --> |
| | | <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.Region"> |
| | | <id column="id" property="id" /> |
| | | <result column="name" property="name" /> |
| | | <result column="code" property="code" /> |
| | | <result column="citycode" property="citycode" /> |
| | | <result column="parent_id" property="parentId" /> |
| | | <result column="english" property="english" /> |
| | | </resultMap> |
| | | |
| | | |
| | | <select id="query" resultType="Region"> |
| | | select |
| | | id as id, |
| | | name as name, |
| | | code as code, |
| | | citycode as citycode, |
| | | parent_id as parentId, |
| | | english as english |
| | | from t_region where code = #{code} |
| | | </select> |
| | | </mapper> |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | <mapper namespace="com.stylefeng.guns.modular.system.dao.RelationMapper"> |
| | | |
| | | <!-- 通用查询映射结果 --> |
| | | <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.Relation"> |
| | | <id column="id" property="id" /> |
| | | <result column="menuid" property="menuid" /> |
| | | <result column="roleid" property="roleid" /> |
| | | </resultMap> |
| | | |
| | | </mapper> |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | <mapper namespace="com.stylefeng.guns.modular.system.dao.RoleMapper"> |
| | | |
| | | <!-- 通用查询映射结果 --> |
| | | <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.Role"> |
| | | <id column="id" property="id" /> |
| | | <result column="num" property="num" /> |
| | | <result column="pid" property="pid" /> |
| | | <result column="name" property="name" /> |
| | | <result column="deptid" property="deptid" /> |
| | | <result column="tips" property="tips" /> |
| | | <result column="version" property="version" /> |
| | | </resultMap> |
| | | |
| | | <sql id="Base_Column_List"> |
| | | id, num, pid, name, deptid, tips, version |
| | | </sql> |
| | | |
| | | <select id="selectRoles" resultType="map"> |
| | | select |
| | | <include refid="Base_Column_List" /> |
| | | from sys_role |
| | | <if test="condition != null"> |
| | | where name like CONCAT('%',#{condition},'%') |
| | | </if> |
| | | </select> |
| | | |
| | | <delete id="deleteRolesById"> |
| | | delete from sys_relation where roleid = #{roleId} |
| | | </delete> |
| | | |
| | | <select id="roleTreeList" resultType="com.stylefeng.guns.core.node.ZTreeNode"> |
| | | select id "id",pId |
| | | "pId",name as "name",(case when (pId=0 or pId is null) then 'true' |
| | | else 'false' end) "open" from sys_role |
| | | </select> |
| | | |
| | | <select id="roleTreeListByRoleId" resultType="com.stylefeng.guns.core.node.ZTreeNode"> |
| | | SELECT |
| | | r.id "id", |
| | | pId "pId", |
| | | NAME AS "name", |
| | | ( |
| | | CASE |
| | | WHEN (pId = 0 OR pId IS NULL) THEN |
| | | 'true' |
| | | ELSE |
| | | 'false' |
| | | END |
| | | ) "open", |
| | | ( |
| | | CASE |
| | | WHEN (r1.ID = 0 OR r1.ID IS NULL) THEN |
| | | 'false' |
| | | ELSE |
| | | 'true' |
| | | END |
| | | ) "checked" |
| | | FROM |
| | | sys_role r |
| | | LEFT JOIN ( |
| | | SELECT |
| | | ID |
| | | FROM |
| | | sys_role |
| | | WHERE |
| | | ID IN |
| | | |
| | | <foreach collection="array" index="index" item="i" open="(" separator="," close=")"> |
| | | #{i} |
| | | </foreach> |
| | | |
| | | ) r1 ON r.ID = r1.ID |
| | | ORDER BY |
| | | pId, |
| | | num ASC |
| | | </select> |
| | | </mapper> |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | <mapper namespace="com.stylefeng.guns.modular.system.dao.SiteMapper"> |
| | | |
| | | <!-- 通用查询映射结果 --> |
| | | <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.Site"> |
| | | <id column="id" property="id"/> |
| | | <result column="name" property="name"/> |
| | | <result column="province" property="province"/> |
| | | <result column="provinceCode" property="provinceCode"/> |
| | | <result column="city" property="city"/> |
| | | <result column="cityCode" property="cityCode"/> |
| | | <result column="district" property="district"/> |
| | | <result column="districtCode" property="districtCode"/> |
| | | <result column="state" property="state"/> |
| | | <result column="insertTime" property="insertTime"/> |
| | | <result column="insertUserId" property="insertUserId"/> |
| | | </resultMap> |
| | | |
| | | |
| | | |
| | | |
| | | <select id="querySite" resultType="map"> |
| | | select * from |
| | | ( |
| | | select si.id as id, si.`name` as `name`, si.provinceCode as cityCode, si.province as cityName from t_site si |
| | | where si.province like '%市' and si.state = 1 and si.id in |
| | | ( |
| | | select ls.siteId |
| | | from t_line_site ls |
| | | left join t_line_company lc on (ls.lineId = lc.lineId) |
| | | where 1 = 1 |
| | | <if test="null != companyId"> |
| | | and lc.companyId = #{companyId} |
| | | </if> |
| | | ) |
| | | |
| | | UNION ALL |
| | | select si.id as id, si.`name` as `name`, si.cityCode as cityCode, si.city as cityName from t_site si |
| | | where si.province not like '%市' and si.state = 1 and si.id in |
| | | ( |
| | | select ls.siteId from t_line_site ls |
| | | left join t_line_company lc on (ls.lineId = lc.lineId) |
| | | where 1 = 1 |
| | | <if test="null != companyId"> |
| | | and lc.companyId = #{companyId} |
| | | </if> |
| | | ) |
| | | ) as a where 1 = 1 |
| | | <if test="null != startSiteId"> |
| | | and a.id in(select siteId from t_line_site where lineId in(select lineId from t_line_site where siteId = #{startSiteId} and type = 1) and type = 2) |
| | | </if> |
| | | </select> |
| | | </mapper> |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | <mapper namespace="com.stylefeng.guns.modular.system.dao.SystemNoticeMapper"> |
| | | |
| | | <!-- 通用查询映射结果 --> |
| | | <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.SystemNotice"> |
| | | <id column="id" property="id"/> |
| | | <result column="type" property="type"/> |
| | | <result column="noticeType" property="noticeType"/> |
| | | <result column="userType" property="userType"/> |
| | | <result column="noticesId" property="noticesId"/> |
| | | <result column="content" property="content"/> |
| | | <result column="userId" property="userId"/> |
| | | <result column="insertTime" property="insertTime"/> |
| | | <result column="read" property="read"/> |
| | | </resultMap> |
| | | |
| | | |
| | | </mapper> |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | <mapper namespace="com.stylefeng.guns.modular.system.dao.TransactionDetailsMapper"> |
| | | |
| | | <!-- 通用查询映射结果 --> |
| | | <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.TransactionDetails"> |
| | | <id column="id" property="id"/> |
| | | <result column="userId" property="userId"/> |
| | | <result column="insertTime" property="insertTime"/> |
| | | <result column="remark" property="remark"/> |
| | | <result column="money" property="money"/> |
| | | <result column="state" property="state"/> |
| | | <result column="type" property="type"/> |
| | | <result column="userType" property="userType"/> |
| | | <result column="orderType" property="orderType"/> |
| | | <result column="orderId" property="orderId"/> |
| | | </resultMap> |
| | | </mapper> |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | <mapper namespace="com.stylefeng.guns.modular.system.dao.UserInfoMapper"> |
| | | |
| | | <!-- 通用查询映射结果 --> |
| | | <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.UserInfo"> |
| | | <id column="id" property="id"/> |
| | | <result column="companyId" property="companyId"/> |
| | | <result column="registIp" property="registIp"/> |
| | | <result column="registAreaCode" property="registAreaCode"/> |
| | | <result column="phone" property="phone"/> |
| | | <result column="nickName" property="nickName"/> |
| | | <result column="avatar" property="avatar"/> |
| | | <result column="birthday" property="birthday"/> |
| | | <result column="sex" property="sex"/> |
| | | <result column="emergencyContact" property="emergencyContact"/> |
| | | <result column="emergencyContactNumber" property="emergencyContactNumber"/> |
| | | <result column="isAuth" property="isAuth"/> |
| | | <result column="name" property="name"/> |
| | | <result column="idCard" property="idCard"/> |
| | | <result column="idCardFront" property="idCardFront"/> |
| | | <result column="idCardReverse" property="idCardReverse"/> |
| | | <result column="consumption" property="consumption"/> |
| | | <result column="balance" property="balance"/> |
| | | <result column="integral" property="integral"/> |
| | | <result column="passWord" property="passWord"/> |
| | | <result column="openId" property="openId"/> |
| | | <result column="appletsOpenId" property="appletsOpenId"/> |
| | | <result column="unionid" property="unionid"/> |
| | | <result column="remark" property="remark"/> |
| | | <result column="state" property="state"/> |
| | | <result column="flag" property="flag"/> |
| | | <result column="insertTime" property="insertTime"/> |
| | | <result column="insertUser" property="insertUser"/> |
| | | <result column="updateTime" property="updateTime"/> |
| | | <result column="updateUser" property="updateUser"/> |
| | | </resultMap> |
| | | |
| | | |
| | | <select id="queryByPhone" resultType="UserInfo"> |
| | | select |
| | | id as id, |
| | | registIp as registIp, |
| | | registAreaCode as registAreaCode, |
| | | phone as phone, |
| | | nickName as nickName, |
| | | avatar as avatar, |
| | | birthday as birthday, |
| | | sex as sex, |
| | | emergencyContact as emergencyContact, |
| | | emergencyContactNumber as emergencyContactNumber, |
| | | isAuth as isAuth, |
| | | name as name, |
| | | idCard as idCard, |
| | | idCardFront as idCardFront, |
| | | idCardReverse as idCardReverse, |
| | | consumption as consumption, |
| | | balance as balance, |
| | | integral as integral, |
| | | passWord as passWord, |
| | | openId as openId, |
| | | appletsOpenId as appletsOpenId, |
| | | unionid as unionid, |
| | | state as state, |
| | | flag as flag, |
| | | insertTime as insertTime, |
| | | insertUser as insertUser, |
| | | updateTime as updateTime, |
| | | updateUser as updateUser |
| | | from t_user where flag != 3 and phone = #{phone} |
| | | </select> |
| | | |
| | | |
| | | </mapper> |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | <mapper namespace="com.stylefeng.guns.modular.system.dao.UserMapper"> |
| | | |
| | | <!-- 通用查询映射结果 --> |
| | | <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.User"> |
| | | <id column="id" property="id" /> |
| | | <result column="avatar" property="avatar" /> |
| | | <result column="account" property="account" /> |
| | | <result column="password" property="password" /> |
| | | <result column="salt" property="salt" /> |
| | | <result column="name" property="name" /> |
| | | <result column="birthday" property="birthday" /> |
| | | <result column="sex" property="sex" /> |
| | | <result column="email" property="email" /> |
| | | <result column="phone" property="phone" /> |
| | | <result column="roleid" property="roleid" /> |
| | | <result column="deptid" property="deptid" /> |
| | | <result column="status" property="status" /> |
| | | <result column="createtime" property="createtime" /> |
| | | <result column="version" property="version" /> |
| | | </resultMap> |
| | | |
| | | <sql id="Base_Column_List"> |
| | | id, account, name, birthday, sex, email, avatar, |
| | | phone, roleid, |
| | | deptid, status, |
| | | createtime, version |
| | | </sql> |
| | | |
| | | <sql id="Base_Column_List_With_Pwd"> |
| | | id, account, name, birthday,password, sex, email, avatar, |
| | | phone, roleid,salt, |
| | | deptid, status, |
| | | createtime, version |
| | | </sql> |
| | | |
| | | <select id="selectUsers" resultType="map"> |
| | | select |
| | | <include refid="Base_Column_List" /> |
| | | from sys_user |
| | | where status != 3 |
| | | <if test="name != null and name != ''"> |
| | | and (phone like CONCAT('%',#{name},'%') |
| | | or account like CONCAT('%',#{name},'%') |
| | | or name like CONCAT('%',#{name},'%')) |
| | | </if> |
| | | <if test="deptid != null and deptid != 0"> |
| | | and (deptid = #{deptid} or deptid in ( select id from sys_dept where pids like CONCAT('%[', #{deptid}, ']%') )) |
| | | </if> |
| | | <if test="beginTime != null and beginTime != '' and endTime != null and endTime != ''"> |
| | | and (createTime between CONCAT(#{beginTime},' 00:00:00') and CONCAT(#{endTime},' 23:59:59')) |
| | | </if> |
| | | </select> |
| | | |
| | | <update id="setStatus"> |
| | | update sys_user set status = #{status} where id = |
| | | #{userId} |
| | | </update> |
| | | |
| | | <update id="changePwd"> |
| | | update sys_user set password = #{pwd} where id = |
| | | #{userId} |
| | | </update> |
| | | |
| | | <update id="setRoles"> |
| | | update sys_user set roleid = #{roleIds} where id = |
| | | #{userId} |
| | | </update> |
| | | |
| | | <select id="getByAccount" resultType="user"> |
| | | select |
| | | <include refid="Base_Column_List_With_Pwd" /> |
| | | from sys_user where account = #{account} and status != 3 |
| | | </select> |
| | | |
| | | </mapper> |
New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | <mapper namespace="com.stylefeng.guns.modular.system.dao.VersionManagementMapper"> |
| | | |
| | | <!-- 通用查询映射结果 --> |
| | | <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.VersionManagement"> |
| | | <id column="id" property="id"/> |
| | | <result column="url" property="url"/> |
| | | <result column="version" property="version"/> |
| | | <result column="content" property="content"/> |
| | | <result column="mandatory" property="mandatory"/> |
| | | <result column="insertTime" property="insertTime"/> |
| | | <result column="type" property="type"/> |
| | | </resultMap> |
| | | |
| | | |
| | | <select id="queryNewVersion" resultType="map"> |
| | | select |
| | | id as id, |
| | | url as url, |
| | | content as content, |
| | | mandatory as mandatory, |
| | | version as version |
| | | from t_version_management where type = #{type} order by insertTime desc limit 0, 1 |
| | | </select> |
| | | </mapper> |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.factory; |
| | | |
| | | import com.stylefeng.guns.core.util.ToolUtil; |
| | | import com.stylefeng.guns.modular.system.model.User; |
| | | import com.stylefeng.guns.modular.system.transfer.UserDto; |
| | | import org.springframework.beans.BeanUtils; |
| | | |
| | | /** |
| | | * 用户创建工厂 |
| | | * |
| | | * @author fengshuonan |
| | | * @date 2017-05-05 22:43 |
| | | */ |
| | | public class UserFactory { |
| | | |
| | | public static User createUser(UserDto userDto) { |
| | | if (userDto == null) { |
| | | return null; |
| | | } else { |
| | | User user = new User(); |
| | | BeanUtils.copyProperties(userDto, user); |
| | | return user; |
| | | } |
| | | } |
| | | |
| | | public static User editUser(UserDto newUser, User oldUser) { |
| | | if (newUser == null || oldUser == null) { |
| | | return oldUser; |
| | | } else { |
| | | if (ToolUtil.isNotEmpty(newUser.getAvatar())) { |
| | | oldUser.setAvatar(newUser.getAvatar()); |
| | | } |
| | | if (ToolUtil.isNotEmpty(newUser.getName())) { |
| | | oldUser.setName(newUser.getName()); |
| | | } |
| | | if (ToolUtil.isNotEmpty(newUser.getBirthday())) { |
| | | oldUser.setBirthday(newUser.getBirthday()); |
| | | } |
| | | if (ToolUtil.isNotEmpty(newUser.getDeptid())) { |
| | | oldUser.setDeptid(newUser.getDeptid()); |
| | | } |
| | | if (ToolUtil.isNotEmpty(newUser.getSex())) { |
| | | oldUser.setSex(newUser.getSex()); |
| | | } |
| | | if (ToolUtil.isNotEmpty(newUser.getEmail())) { |
| | | oldUser.setEmail(newUser.getEmail()); |
| | | } |
| | | if (ToolUtil.isNotEmpty(newUser.getPhone())) { |
| | | oldUser.setPhone(newUser.getPhone()); |
| | | } |
| | | return oldUser; |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.model; |
| | | |
| | | import com.baomidou.mybatisplus.annotations.TableField; |
| | | import com.baomidou.mybatisplus.annotations.TableId; |
| | | import com.baomidou.mybatisplus.enums.IdType; |
| | | |
| | | import java.util.Date; |
| | | |
| | | public class BaseBean { |
| | | /** |
| | | * 主键 |
| | | */ |
| | | @TableId(value = "id", type = IdType.AUTO) |
| | | @TableField("id") |
| | | private Integer id; |
| | | /** |
| | | * 1:正常,2:停用,3:删除 |
| | | */ |
| | | @TableField("flag") |
| | | private Integer flag; |
| | | /** |
| | | * 添加时间 |
| | | */ |
| | | @TableField("insertTime") |
| | | private Date insertTime; |
| | | /** |
| | | * 添加人员 |
| | | */ |
| | | @TableField("insertUser") |
| | | private Integer insertUser; |
| | | /** |
| | | * 修改时间 |
| | | */ |
| | | @TableField("updateTime") |
| | | private Date updateTime; |
| | | /** |
| | | * 修改人员 |
| | | */ |
| | | @TableField("updateUser") |
| | | private Integer updateUser; |
| | | |
| | | public BaseBean() { |
| | | Date date = new Date(); |
| | | this.flag = 1; |
| | | this.insertTime = date; |
| | | } |
| | | |
| | | public Integer getId() { |
| | | return id; |
| | | } |
| | | |
| | | public void setId(Integer id) { |
| | | this.id = id; |
| | | } |
| | | |
| | | public Integer getFlag() { |
| | | return flag; |
| | | } |
| | | |
| | | public void setFlag(Integer flag) { |
| | | this.flag = flag; |
| | | } |
| | | |
| | | public Date getInsertTime() { |
| | | return insertTime; |
| | | } |
| | | |
| | | public void setInsertTime(Date insertTime) { |
| | | this.insertTime = insertTime; |
| | | } |
| | | |
| | | public Integer getInsertUser() { |
| | | return insertUser; |
| | | } |
| | | |
| | | public void setInsertUser(Integer insertUser) { |
| | | this.insertUser = insertUser; |
| | | } |
| | | |
| | | public Date getUpdateTime() { |
| | | return updateTime; |
| | | } |
| | | |
| | | public void setUpdateTime(Date updateTime) { |
| | | this.updateTime = updateTime; |
| | | } |
| | | |
| | | public Integer getUpdateUser() { |
| | | return updateUser; |
| | | } |
| | | |
| | | public void setUpdateUser(Integer updateUser) { |
| | | this.updateUser = updateUser; |
| | | } |
| | | |
| | | @Override |
| | | public String toString() { |
| | | return "BaseBean{" + |
| | | "id=" + id + |
| | | ", flag=" + flag + |
| | | ", insertTime=" + insertTime + |
| | | ", insertUser=" + insertUser + |
| | | ", updateTime=" + updateTime + |
| | | ", updateUser=" + updateUser + |
| | | '}'; |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.model; |
| | | |
| | | import com.baomidou.mybatisplus.annotations.TableField; |
| | | import com.baomidou.mybatisplus.annotations.TableId; |
| | | import com.baomidou.mybatisplus.annotations.TableName; |
| | | import com.baomidou.mybatisplus.enums.IdType; |
| | | |
| | | import java.util.Date; |
| | | |
| | | /** |
| | | * 车辆 |
| | | */ |
| | | @TableName("t_car") |
| | | public class Car { |
| | | /** |
| | | * 主键 |
| | | */ |
| | | @TableId(value = "id", type = IdType.AUTO) |
| | | @TableField("id") |
| | | private Integer id; |
| | | /** |
| | | * 是否是平台车辆(1=是,2=否) |
| | | */ |
| | | @TableField("isPlatCar") |
| | | private Integer isPlatCar; |
| | | /** |
| | | * 公司id |
| | | */ |
| | | @TableField("companyId") |
| | | private Integer companyId; |
| | | /** |
| | | * 加盟商id |
| | | */ |
| | | @TableField("franchiseeId") |
| | | private Integer franchiseeId; |
| | | /** |
| | | * 车辆颜色 |
| | | */ |
| | | @TableField("carColor") |
| | | private String carColor; |
| | | /** |
| | | * 车型id |
| | | */ |
| | | @TableField("carModelId") |
| | | private Integer carModelId; |
| | | /** |
| | | * 车辆品牌id |
| | | */ |
| | | @TableField("carBrandId") |
| | | private Integer carBrandId; |
| | | /** |
| | | * 车牌号 |
| | | */ |
| | | @TableField("carLicensePlate") |
| | | private String carLicensePlate; |
| | | /** |
| | | * 车辆照片 |
| | | */ |
| | | @TableField("carPhoto") |
| | | private String carPhoto; |
| | | /** |
| | | * 行驶证号 |
| | | */ |
| | | @TableField("drivingLicenseNumber") |
| | | private String drivingLicenseNumber; |
| | | /** |
| | | * 行驶证照片 |
| | | */ |
| | | @TableField("drivingLicensePhoto") |
| | | private String drivingLicensePhoto; |
| | | /** |
| | | * 年检到期时间 |
| | | */ |
| | | @TableField("annualInspectionTime") |
| | | private Date annualInspectionTime; |
| | | /** |
| | | * 保险照片 |
| | | */ |
| | | @TableField("insurancePhoto") |
| | | private String insurancePhoto; |
| | | /** |
| | | * 商业保险到期时间 |
| | | */ |
| | | @TableField("commercialInsuranceTime") |
| | | private Date commercialInsuranceTime; |
| | | /** |
| | | * 添加时间 |
| | | */ |
| | | @TableField("insertTime") |
| | | private Date insertTime; |
| | | /** |
| | | * 状态(1=正常,2=删除) |
| | | */ |
| | | @TableField("state") |
| | | private Integer state; |
| | | /** |
| | | * 添加来源(1=司机注册 2=平台添加 3=分公司添加 4=加盟商添加) |
| | | */ |
| | | @TableField("addType") |
| | | private Integer addType; |
| | | /** |
| | | * 公司id |
| | | */ |
| | | @TableField("addObjectId") |
| | | private Integer addObjectId; |
| | | |
| | | public Integer getId() { |
| | | return id; |
| | | } |
| | | |
| | | public void setId(Integer id) { |
| | | this.id = id; |
| | | } |
| | | |
| | | public Integer getIsPlatCar() { |
| | | return isPlatCar; |
| | | } |
| | | |
| | | public void setIsPlatCar(Integer isPlatCar) { |
| | | this.isPlatCar = isPlatCar; |
| | | } |
| | | |
| | | public Integer getCompanyId() { |
| | | return companyId; |
| | | } |
| | | |
| | | public void setCompanyId(Integer companyId) { |
| | | this.companyId = companyId; |
| | | } |
| | | |
| | | public Integer getFranchiseeId() { |
| | | return franchiseeId; |
| | | } |
| | | |
| | | public void setFranchiseeId(Integer franchiseeId) { |
| | | this.franchiseeId = franchiseeId; |
| | | } |
| | | |
| | | public String getCarColor() { |
| | | return carColor; |
| | | } |
| | | |
| | | public void setCarColor(String carColor) { |
| | | this.carColor = carColor; |
| | | } |
| | | |
| | | public Integer getCarModelId() { |
| | | return carModelId; |
| | | } |
| | | |
| | | public void setCarModelId(Integer carModelId) { |
| | | this.carModelId = carModelId; |
| | | } |
| | | |
| | | public Integer getCarBrandId() { |
| | | return carBrandId; |
| | | } |
| | | |
| | | public void setCarBrandId(Integer carBrandId) { |
| | | this.carBrandId = carBrandId; |
| | | } |
| | | |
| | | public String getCarLicensePlate() { |
| | | return carLicensePlate; |
| | | } |
| | | |
| | | public void setCarLicensePlate(String carLicensePlate) { |
| | | this.carLicensePlate = carLicensePlate; |
| | | } |
| | | |
| | | public String getCarPhoto() { |
| | | return carPhoto; |
| | | } |
| | | |
| | | public void setCarPhoto(String carPhoto) { |
| | | this.carPhoto = carPhoto; |
| | | } |
| | | |
| | | public String getDrivingLicenseNumber() { |
| | | return drivingLicenseNumber; |
| | | } |
| | | |
| | | public void setDrivingLicenseNumber(String drivingLicenseNumber) { |
| | | this.drivingLicenseNumber = drivingLicenseNumber; |
| | | } |
| | | |
| | | public String getDrivingLicensePhoto() { |
| | | return drivingLicensePhoto; |
| | | } |
| | | |
| | | public void setDrivingLicensePhoto(String drivingLicensePhoto) { |
| | | this.drivingLicensePhoto = drivingLicensePhoto; |
| | | } |
| | | |
| | | public Date getAnnualInspectionTime() { |
| | | return annualInspectionTime; |
| | | } |
| | | |
| | | public void setAnnualInspectionTime(Date annualInspectionTime) { |
| | | this.annualInspectionTime = annualInspectionTime; |
| | | } |
| | | |
| | | public String getInsurancePhoto() { |
| | | return insurancePhoto; |
| | | } |
| | | |
| | | public void setInsurancePhoto(String insurancePhoto) { |
| | | this.insurancePhoto = insurancePhoto; |
| | | } |
| | | |
| | | public Date getCommercialInsuranceTime() { |
| | | return commercialInsuranceTime; |
| | | } |
| | | |
| | | public void setCommercialInsuranceTime(Date commercialInsuranceTime) { |
| | | this.commercialInsuranceTime = commercialInsuranceTime; |
| | | } |
| | | |
| | | public Date getInsertTime() { |
| | | return insertTime; |
| | | } |
| | | |
| | | public void setInsertTime(Date insertTime) { |
| | | this.insertTime = insertTime; |
| | | } |
| | | |
| | | public Integer getState() { |
| | | return state; |
| | | } |
| | | |
| | | public void setState(Integer state) { |
| | | this.state = state; |
| | | } |
| | | |
| | | public Integer getAddType() { |
| | | return addType; |
| | | } |
| | | |
| | | public void setAddType(Integer addType) { |
| | | this.addType = addType; |
| | | } |
| | | |
| | | public Integer getAddObjectId() { |
| | | return addObjectId; |
| | | } |
| | | |
| | | public void setAddObjectId(Integer addObjectId) { |
| | | this.addObjectId = addObjectId; |
| | | } |
| | | |
| | | @Override |
| | | public String toString() { |
| | | return "Car{" + |
| | | "id=" + id + |
| | | ", isPlatCar=" + isPlatCar + |
| | | ", companyId=" + companyId + |
| | | ", carColor='" + carColor + '\'' + |
| | | ", carModelId=" + carModelId + |
| | | ", carBrandId=" + carBrandId + |
| | | ", carLicensePlate='" + carLicensePlate + '\'' + |
| | | ", carPhoto='" + carPhoto + '\'' + |
| | | ", drivingLicenseNumber='" + drivingLicenseNumber + '\'' + |
| | | ", drivingLicensePhoto='" + drivingLicensePhoto + '\'' + |
| | | ", annualInspectionTime=" + annualInspectionTime + |
| | | ", commercialInsuranceTime=" + commercialInsuranceTime + |
| | | ", insertTime=" + insertTime + |
| | | ", state=" + state + |
| | | ", addType=" + addType + |
| | | ", addObjectId=" + addObjectId + |
| | | '}'; |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.model; |
| | | |
| | | import com.baomidou.mybatisplus.annotations.TableField; |
| | | import com.baomidou.mybatisplus.annotations.TableId; |
| | | import com.baomidou.mybatisplus.annotations.TableName; |
| | | import com.baomidou.mybatisplus.enums.IdType; |
| | | |
| | | import java.util.Date; |
| | | |
| | | /** |
| | | * 车辆型号 |
| | | */ |
| | | @TableName("t_car_model") |
| | | public class CarModel { |
| | | /** |
| | | * 主键 |
| | | */ |
| | | @TableId(value = "id", type = IdType.AUTO) |
| | | @TableField("id") |
| | | private Integer id; |
| | | /** |
| | | * 名称 |
| | | */ |
| | | @TableField("name") |
| | | private String name; |
| | | /** |
| | | * 备注 |
| | | */ |
| | | @TableField("remark") |
| | | private String remark; |
| | | /** |
| | | * 添加时间 |
| | | */ |
| | | @TableField("insertTime") |
| | | private Date insertTime; |
| | | /** |
| | | * 状态(1=正常,2=删除) |
| | | */ |
| | | @TableField("state") |
| | | private Integer state; |
| | | /** |
| | | * 座位数 |
| | | */ |
| | | @TableField("seat") |
| | | private Integer seat; |
| | | /** |
| | | * 车辆品牌id |
| | | */ |
| | | @TableField("brandId") |
| | | private Integer brandId; |
| | | |
| | | public Integer getId() { |
| | | return id; |
| | | } |
| | | |
| | | public void setId(Integer id) { |
| | | this.id = id; |
| | | } |
| | | |
| | | public String getName() { |
| | | return name; |
| | | } |
| | | |
| | | public void setName(String name) { |
| | | this.name = name; |
| | | } |
| | | |
| | | public String getRemark() { |
| | | return remark; |
| | | } |
| | | |
| | | public void setRemark(String remark) { |
| | | this.remark = remark; |
| | | } |
| | | |
| | | public Date getInsertTime() { |
| | | return insertTime; |
| | | } |
| | | |
| | | public void setInsertTime(Date insertTime) { |
| | | this.insertTime = insertTime; |
| | | } |
| | | |
| | | public Integer getState() { |
| | | return state; |
| | | } |
| | | |
| | | public void setState(Integer state) { |
| | | this.state = state; |
| | | } |
| | | |
| | | public Integer getSeat() { |
| | | return seat; |
| | | } |
| | | |
| | | public void setSeat(Integer seat) { |
| | | this.seat = seat; |
| | | } |
| | | |
| | | public Integer getBrandId() { |
| | | return brandId; |
| | | } |
| | | |
| | | public void setBrandId(Integer brandId) { |
| | | this.brandId = brandId; |
| | | } |
| | | |
| | | @Override |
| | | public String toString() { |
| | | return "CarModel{" + |
| | | "id=" + id + |
| | | ", name='" + name + '\'' + |
| | | ", remark='" + remark + '\'' + |
| | | ", insertTime=" + insertTime + |
| | | ", state=" + state + |
| | | ", seat=" + seat + |
| | | ", brandId=" + brandId + |
| | | '}'; |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.model; |
| | | |
| | | import com.baomidou.mybatisplus.activerecord.Model; |
| | | import com.baomidou.mybatisplus.annotations.TableId; |
| | | import com.baomidou.mybatisplus.annotations.TableName; |
| | | import com.baomidou.mybatisplus.enums.IdType; |
| | | |
| | | import java.io.Serializable; |
| | | |
| | | /** |
| | | * <p> |
| | | * 部门表 |
| | | * </p> |
| | | * |
| | | * @author stylefeng |
| | | * @since 2017-07-11 |
| | | */ |
| | | @TableName("sys_dept") |
| | | public class Dept extends Model<Dept> { |
| | | |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | /** |
| | | * 主键id |
| | | */ |
| | | @TableId(value="id", type= IdType.AUTO) |
| | | private Integer id; |
| | | /** |
| | | * 排序 |
| | | */ |
| | | private Integer num; |
| | | /** |
| | | * 父部门id |
| | | */ |
| | | private Integer pid; |
| | | /** |
| | | * 父级ids |
| | | */ |
| | | private String pids; |
| | | /** |
| | | * 简称 |
| | | */ |
| | | private String simplename; |
| | | /** |
| | | * 全称 |
| | | */ |
| | | private String fullname; |
| | | /** |
| | | * 提示 |
| | | */ |
| | | private String tips; |
| | | /** |
| | | * 版本(乐观锁保留字段) |
| | | */ |
| | | private Integer version; |
| | | |
| | | |
| | | public Integer getId() { |
| | | return id; |
| | | } |
| | | |
| | | public void setId(Integer id) { |
| | | this.id = id; |
| | | } |
| | | |
| | | public Integer getNum() { |
| | | return num; |
| | | } |
| | | |
| | | public void setNum(Integer num) { |
| | | this.num = num; |
| | | } |
| | | |
| | | public Integer getPid() { |
| | | return pid; |
| | | } |
| | | |
| | | public void setPid(Integer pid) { |
| | | this.pid = pid; |
| | | } |
| | | |
| | | public String getPids() { |
| | | return pids; |
| | | } |
| | | |
| | | public void setPids(String pids) { |
| | | this.pids = pids; |
| | | } |
| | | |
| | | public String getSimplename() { |
| | | return simplename; |
| | | } |
| | | |
| | | public void setSimplename(String simplename) { |
| | | this.simplename = simplename; |
| | | } |
| | | |
| | | public String getFullname() { |
| | | return fullname; |
| | | } |
| | | |
| | | public void setFullname(String fullname) { |
| | | this.fullname = fullname; |
| | | } |
| | | |
| | | public String getTips() { |
| | | return tips; |
| | | } |
| | | |
| | | public void setTips(String tips) { |
| | | this.tips = tips; |
| | | } |
| | | |
| | | public Integer getVersion() { |
| | | return version; |
| | | } |
| | | |
| | | public void setVersion(Integer version) { |
| | | this.version = version; |
| | | } |
| | | |
| | | @Override |
| | | protected Serializable pkVal() { |
| | | return this.id; |
| | | } |
| | | |
| | | @Override |
| | | public String toString() { |
| | | return "Dept{" + |
| | | "id=" + id + |
| | | ", num=" + num + |
| | | ", pid=" + pid + |
| | | ", pids=" + pids + |
| | | ", simplename=" + simplename + |
| | | ", fullname=" + fullname + |
| | | ", tips=" + tips + |
| | | ", version=" + version + |
| | | "}"; |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.model; |
| | | |
| | | import com.baomidou.mybatisplus.activerecord.Model; |
| | | import com.baomidou.mybatisplus.annotations.TableId; |
| | | import com.baomidou.mybatisplus.annotations.TableName; |
| | | import com.baomidou.mybatisplus.enums.IdType; |
| | | |
| | | |
| | | import java.io.Serializable; |
| | | |
| | | /** |
| | | * <p> |
| | | * 字典表 |
| | | * </p> |
| | | * |
| | | * @author stylefeng |
| | | * @since 2017-07-11 |
| | | */ |
| | | @TableName("sys_dict") |
| | | public class Dict extends Model<Dict> { |
| | | |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | /** |
| | | * 主键id |
| | | */ |
| | | @TableId(value="id", type= IdType.AUTO) |
| | | private Integer id; |
| | | /** |
| | | * 排序 |
| | | */ |
| | | private Integer num; |
| | | /** |
| | | * 父级字典 |
| | | */ |
| | | private Integer pid; |
| | | /** |
| | | * 名称 |
| | | */ |
| | | private String name; |
| | | |
| | | /** |
| | | * 编码 |
| | | */ |
| | | private String code; |
| | | /** |
| | | * 提示 |
| | | */ |
| | | private String tips; |
| | | |
| | | |
| | | public Integer getId() { |
| | | return id; |
| | | } |
| | | |
| | | public void setId(Integer id) { |
| | | this.id = id; |
| | | } |
| | | |
| | | public Integer getNum() { |
| | | return num; |
| | | } |
| | | |
| | | public void setNum(Integer num) { |
| | | this.num = num; |
| | | } |
| | | |
| | | public Integer getPid() { |
| | | return pid; |
| | | } |
| | | |
| | | public void setPid(Integer pid) { |
| | | this.pid = pid; |
| | | } |
| | | |
| | | public String getName() { |
| | | return name; |
| | | } |
| | | |
| | | public void setName(String name) { |
| | | this.name = name; |
| | | } |
| | | |
| | | public String getTips() { |
| | | return tips; |
| | | } |
| | | |
| | | public void setTips(String tips) { |
| | | this.tips = tips; |
| | | } |
| | | |
| | | @Override |
| | | protected Serializable pkVal() { |
| | | return this.id; |
| | | } |
| | | |
| | | public String getCode() { |
| | | return code; |
| | | } |
| | | |
| | | public void setCode(String code) { |
| | | this.code = code; |
| | | } |
| | | |
| | | @Override |
| | | public String toString() { |
| | | return "Dict{" + |
| | | "id=" + id + |
| | | ", num=" + num + |
| | | ", pid=" + pid + |
| | | ", name='" + name + '\'' + |
| | | ", code='" + code + '\'' + |
| | | ", tips='" + tips + '\'' + |
| | | '}'; |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.model; |
| | | |
| | | import com.baomidou.mybatisplus.annotations.TableField; |
| | | import com.baomidou.mybatisplus.annotations.TableId; |
| | | import com.baomidou.mybatisplus.annotations.TableName; |
| | | import com.baomidou.mybatisplus.enums.IdType; |
| | | |
| | | import java.util.Date; |
| | | |
| | | /** |
| | | * 调度 |
| | | */ |
| | | @TableName("t_dispatch") |
| | | public class Dispatch { |
| | | /** |
| | | * 主键 |
| | | */ |
| | | @TableId(value = "id", type = IdType.AUTO) |
| | | @TableField("id") |
| | | private Integer id; |
| | | /** |
| | | * 添加时间 |
| | | */ |
| | | @TableField("insertTime") |
| | | private Date insertTime; |
| | | /** |
| | | * 调度姓名 |
| | | */ |
| | | @TableField("name") |
| | | private String name; |
| | | /** |
| | | * 所属分公司id |
| | | */ |
| | | @TableField("companyId") |
| | | private Integer companyId; |
| | | /** |
| | | * 加盟商id |
| | | */ |
| | | @TableField("franchiseeId") |
| | | private Integer franchiseeId; |
| | | /** |
| | | * 联系电话 |
| | | */ |
| | | @TableField("phone") |
| | | private String phone; |
| | | /** |
| | | * 登录账号 |
| | | */ |
| | | @TableField("account") |
| | | private String account; |
| | | /** |
| | | * 登录密码 |
| | | */ |
| | | @TableField("password") |
| | | private String password; |
| | | /** |
| | | * 添加用户id |
| | | */ |
| | | @TableField("insertUserId") |
| | | private Integer insertUserId; |
| | | /** |
| | | * 状态(1=正常,2=冻结,3=删除) |
| | | */ |
| | | @TableField("state") |
| | | private Integer state; |
| | | /** |
| | | * 推单配置(1=接收,2=不接收) |
| | | * @return |
| | | */ |
| | | @TableField("pushOrder") |
| | | private Integer pushOrder; |
| | | |
| | | public Integer getId() { |
| | | return id; |
| | | } |
| | | |
| | | public void setId(Integer id) { |
| | | this.id = id; |
| | | } |
| | | |
| | | public Date getInsertTime() { |
| | | return insertTime; |
| | | } |
| | | |
| | | public void setInsertTime(Date insertTime) { |
| | | this.insertTime = insertTime; |
| | | } |
| | | |
| | | public String getName() { |
| | | return name; |
| | | } |
| | | |
| | | public void setName(String name) { |
| | | this.name = name; |
| | | } |
| | | |
| | | public Integer getCompanyId() { |
| | | return companyId; |
| | | } |
| | | |
| | | public void setCompanyId(Integer companyId) { |
| | | this.companyId = companyId; |
| | | } |
| | | |
| | | public Integer getFranchiseeId() { |
| | | return franchiseeId; |
| | | } |
| | | |
| | | public void setFranchiseeId(Integer franchiseeId) { |
| | | this.franchiseeId = franchiseeId; |
| | | } |
| | | |
| | | public String getPhone() { |
| | | return phone; |
| | | } |
| | | |
| | | public void setPhone(String phone) { |
| | | this.phone = phone; |
| | | } |
| | | |
| | | public String getAccount() { |
| | | return account; |
| | | } |
| | | |
| | | public void setAccount(String account) { |
| | | this.account = account; |
| | | } |
| | | |
| | | public String getPassword() { |
| | | return password; |
| | | } |
| | | |
| | | public void setPassword(String password) { |
| | | this.password = password; |
| | | } |
| | | |
| | | public Integer getInsertUserId() { |
| | | return insertUserId; |
| | | } |
| | | |
| | | public void setInsertUserId(Integer insertUserId) { |
| | | this.insertUserId = insertUserId; |
| | | } |
| | | |
| | | public Integer getState() { |
| | | return state; |
| | | } |
| | | |
| | | public void setState(Integer state) { |
| | | this.state = state; |
| | | } |
| | | |
| | | public Integer getPushOrder() { |
| | | return pushOrder; |
| | | } |
| | | |
| | | public void setPushOrder(Integer pushOrder) { |
| | | this.pushOrder = pushOrder; |
| | | } |
| | | |
| | | @Override |
| | | public String toString() { |
| | | return "Dispatch{" + |
| | | "id=" + id + |
| | | ", insertTime=" + insertTime + |
| | | ", name='" + name + '\'' + |
| | | ", companyId=" + companyId + |
| | | ", franchiseeId=" + franchiseeId + |
| | | ", phone='" + phone + '\'' + |
| | | ", account='" + account + '\'' + |
| | | ", password='" + password + '\'' + |
| | | ", insertUserId=" + insertUserId + |
| | | ", state=" + state + |
| | | ", pushOrder=" + pushOrder + |
| | | '}'; |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.model; |
| | | |
| | | import com.baomidou.mybatisplus.annotations.TableField; |
| | | import com.baomidou.mybatisplus.annotations.TableName; |
| | | |
| | | import java.util.Date; |
| | | |
| | | /** |
| | | * 司机 |
| | | */ |
| | | @TableName("t_driver") |
| | | public class Driver extends BaseBean { |
| | | /** |
| | | * 账号 |
| | | */ |
| | | @TableField("account") |
| | | private String account; |
| | | /** |
| | | * 工号 |
| | | */ |
| | | @TableField("jobNumber") |
| | | private String jobNumber; |
| | | /** |
| | | * 电话 |
| | | */ |
| | | @TableField("phone") |
| | | private String phone; |
| | | /** |
| | | * 登录密码 |
| | | */ |
| | | @TableField("password") |
| | | private String password; |
| | | /** |
| | | * 姓名 |
| | | */ |
| | | @TableField("name") |
| | | private String name; |
| | | /** |
| | | * 性别(1=男,2=女) |
| | | */ |
| | | @TableField("sex") |
| | | private Integer sex; |
| | | /** |
| | | * 身份证号码 |
| | | */ |
| | | @TableField("idCard") |
| | | private String idCard; |
| | | /** |
| | | * 公司id |
| | | */ |
| | | @TableField("companyId") |
| | | private Integer companyId; |
| | | /** |
| | | * 加盟商id |
| | | */ |
| | | @TableField("franchiseeId") |
| | | private Integer franchiseeId; |
| | | /** |
| | | * 头像图片 |
| | | */ |
| | | @TableField("headImgUrl") |
| | | private String headImgUrl; |
| | | /** |
| | | * 人脸识别照片 |
| | | */ |
| | | @TableField("faceImgUrl") |
| | | private String faceImgUrl; |
| | | /** |
| | | * 身份证正面照片 |
| | | */ |
| | | @TableField("idCardImgUrl1") |
| | | private String idCardImgUrl1; |
| | | /** |
| | | * 身份证背面照片 |
| | | */ |
| | | @TableField("idCardImgUrl2") |
| | | private String idCardImgUrl2; |
| | | /** |
| | | * 网约车注册地 |
| | | */ |
| | | @TableField("placeOfEmployment") |
| | | private String placeOfEmployment; |
| | | /** |
| | | * 生日 |
| | | */ |
| | | @TableField("birthday") |
| | | private Date birthday; |
| | | /** |
| | | * 银行卡号 |
| | | */ |
| | | @TableField("bankCardNumber") |
| | | private String bankCardNumber; |
| | | /** |
| | | * 国籍 |
| | | */ |
| | | @TableField("driverNationality") |
| | | private String driverNationality; |
| | | /** |
| | | * 民族 |
| | | */ |
| | | @TableField("driverNation") |
| | | private String driverNation; |
| | | /** |
| | | * 婚姻状况(1:未婚,2:已婚,3:离异) |
| | | */ |
| | | @TableField("driverMaritalStatus") |
| | | private Integer driverMaritalStatus; |
| | | /** |
| | | * 外语能力 |
| | | */ |
| | | @TableField("driverLanguageLevel") |
| | | private String driverLanguageLevel; |
| | | /** |
| | | * 学历 |
| | | */ |
| | | @TableField("driverEducation") |
| | | private String driverEducation; |
| | | /** |
| | | * 户口登记机关名称 |
| | | */ |
| | | @TableField("driverCensus") |
| | | private String driverCensus; |
| | | /** |
| | | * 户口地址或常住地址 |
| | | */ |
| | | @TableField("driverAddress") |
| | | private String driverAddress; |
| | | /** |
| | | * 通信地址 |
| | | */ |
| | | @TableField("driverContactAddress") |
| | | private String driverContactAddress; |
| | | /** |
| | | * 驾龄 |
| | | */ |
| | | @TableField("driverAge") |
| | | private Integer driverAge; |
| | | /** |
| | | * 驾驶证号码 |
| | | */ |
| | | @TableField("driveCard") |
| | | private String driveCard; |
| | | /** |
| | | * 驾驶证照片 |
| | | */ |
| | | @TableField("driveCardImgUrl") |
| | | private String driveCardImgUrl; |
| | | /** |
| | | * 准驾车型 |
| | | */ |
| | | @TableField("driverType") |
| | | private String driverType; |
| | | /** |
| | | * 初次领取驾驶证日期 |
| | | */ |
| | | @TableField("getDriverLicenseDate") |
| | | private Date getDriverLicenseDate; |
| | | /** |
| | | * 驾驶证有效期限起 |
| | | */ |
| | | @TableField("driverLicenseOn") |
| | | private Date driverLicenseOn; |
| | | /** |
| | | * 驾驶证有效期限止 |
| | | */ |
| | | @TableField("driverLicenseOff") |
| | | private Date driverLicenseOff; |
| | | /** |
| | | * 是否巡游出租车驾驶员(0:否,1:是) |
| | | */ |
| | | @TableField("taxiDriver") |
| | | private Integer taxiDriver; |
| | | /** |
| | | * 出租车资格证号 |
| | | */ |
| | | @TableField("taxiAptitudeCard") |
| | | private String taxiAptitudeCard; |
| | | /** |
| | | * 网约车资格证照片 |
| | | */ |
| | | @TableField("networkCarlssueImg") |
| | | private String networkCarlssueImg; |
| | | /** |
| | | * 网络预约出租车驾驶员证发证机构 |
| | | */ |
| | | @TableField("networkCarlssueOrganization") |
| | | private String networkCarlssueOrganization; |
| | | /** |
| | | * 资格证发证日期 |
| | | */ |
| | | @TableField("networkCarlssueDate") |
| | | private Date networkCarlssueDate; |
| | | /** |
| | | * 初次认领资格证日期 |
| | | */ |
| | | @TableField("getNetworkCarProofDate") |
| | | private Date getNetworkCarProofDate; |
| | | /** |
| | | * 资格证有效起始日期 |
| | | */ |
| | | @TableField("networkCarProofOn") |
| | | private Date networkCarProofOn; |
| | | /** |
| | | * 资格证有效截至日期 |
| | | */ |
| | | @TableField("networkCarProofOff") |
| | | private Date networkCarProofOff; |
| | | /** |
| | | * 报备日期 |
| | | */ |
| | | @TableField("registerDate") |
| | | private Date registerDate; |
| | | /** |
| | | * 是否专职驾驶员(0:否,1:是) |
| | | */ |
| | | @TableField("fullTimeDriver") |
| | | private Integer fullTimeDriver; |
| | | /** |
| | | * 是否在驾驶员黑名单内(0:否,1:是) |
| | | */ |
| | | @TableField("inDriverBlacklist") |
| | | private Integer inDriverBlacklist; |
| | | /** |
| | | * 服务类型(1:网络预约出租汽车,2:巡游出租汽车,3:私人小客车合乘) |
| | | */ |
| | | @TableField("commercialType") |
| | | private Integer commercialType; |
| | | /** |
| | | * 驾驶员合同签署公司 |
| | | */ |
| | | @TableField("contractCompany") |
| | | private String contractCompany; |
| | | /** |
| | | * 合同有效期起 |
| | | */ |
| | | @TableField("contractOn") |
| | | private Date contractOn; |
| | | /** |
| | | * 合同有效期止 |
| | | */ |
| | | @TableField("contractOff") |
| | | private Date contractOff; |
| | | /** |
| | | * 紧急联系人 |
| | | */ |
| | | @TableField("emergencyContact") |
| | | private String emergencyContact; |
| | | /** |
| | | * 紧急联系电话 |
| | | */ |
| | | @TableField("emergencyContactPhone") |
| | | private String emergencyContactPhone; |
| | | /** |
| | | * 紧急联系地址 |
| | | */ |
| | | @TableField("emergencyContactAddress") |
| | | private String emergencyContactAddress; |
| | | /** |
| | | * 备注 |
| | | */ |
| | | @TableField("remark") |
| | | private String remark; |
| | | /** |
| | | * 是否是平台车辆(1=是,2=否) |
| | | */ |
| | | @TableField("isPlatCar") |
| | | private Integer isPlatCar; |
| | | /** |
| | | * 司机管理车辆id |
| | | */ |
| | | @TableField("carId") |
| | | private Integer carId; |
| | | /** |
| | | * 审核状态(1=待审核,2=正常,3=冻结,4=拒绝) |
| | | */ |
| | | @TableField("authState") |
| | | private Integer authState; |
| | | /** |
| | | * 司机状态(1=离线,2=空闲,3=服务中) |
| | | */ |
| | | @TableField("state") |
| | | private Integer state; |
| | | /** |
| | | * 添加方式(1=司机注册 2=平台添加 3=分公司添加 4=加盟商添加) |
| | | * @return |
| | | */ |
| | | @TableField("addType") |
| | | private Integer addType; |
| | | /** |
| | | * 账户余额 |
| | | * @return |
| | | */ |
| | | @TableField("balance") |
| | | private Double balance; |
| | | /** |
| | | * 活动总收入 |
| | | * @return |
| | | */ |
| | | @TableField("activityMoney") |
| | | private Double activityMoney; |
| | | /** |
| | | * 剩余未提现活动总收入 |
| | | * @return |
| | | */ |
| | | @TableField("laveActivityMoney") |
| | | private Double laveActivityMoney; |
| | | /** |
| | | * 业务总收入 |
| | | * @return |
| | | */ |
| | | @TableField("businessMoney") |
| | | private Double businessMoney; |
| | | /** |
| | | * 剩余未提现业务总收入 |
| | | * @return |
| | | */ |
| | | @TableField("laveBusinessMoney") |
| | | private Double laveBusinessMoney; |
| | | /** |
| | | * 小程序openid |
| | | */ |
| | | @TableField("appletsOpenId") |
| | | private String appletsOpenId; |
| | | |
| | | public String getAccount() { |
| | | return account; |
| | | } |
| | | |
| | | public void setAccount(String account) { |
| | | this.account = account; |
| | | } |
| | | |
| | | public String getJobNumber() { |
| | | return jobNumber; |
| | | } |
| | | |
| | | public void setJobNumber(String jobNumber) { |
| | | this.jobNumber = jobNumber; |
| | | } |
| | | |
| | | public String getPhone() { |
| | | return phone; |
| | | } |
| | | |
| | | public void setPhone(String phone) { |
| | | this.phone = phone; |
| | | } |
| | | |
| | | public String getPassword() { |
| | | return password; |
| | | } |
| | | |
| | | public void setPassword(String password) { |
| | | this.password = password; |
| | | } |
| | | |
| | | public String getName() { |
| | | return name; |
| | | } |
| | | |
| | | public void setName(String name) { |
| | | this.name = name; |
| | | } |
| | | |
| | | public Integer getSex() { |
| | | return sex; |
| | | } |
| | | |
| | | public void setSex(Integer sex) { |
| | | this.sex = sex; |
| | | } |
| | | |
| | | public String getIdCard() { |
| | | return idCard; |
| | | } |
| | | |
| | | public void setIdCard(String idCard) { |
| | | this.idCard = idCard; |
| | | } |
| | | |
| | | public Integer getCompanyId() { |
| | | return companyId; |
| | | } |
| | | |
| | | public void setCompanyId(Integer companyId) { |
| | | this.companyId = companyId; |
| | | } |
| | | |
| | | public String getHeadImgUrl() { |
| | | return headImgUrl; |
| | | } |
| | | |
| | | public void setHeadImgUrl(String headImgUrl) { |
| | | this.headImgUrl = headImgUrl; |
| | | } |
| | | |
| | | public String getFaceImgUrl() { |
| | | return faceImgUrl; |
| | | } |
| | | |
| | | public void setFaceImgUrl(String faceImgUrl) { |
| | | this.faceImgUrl = faceImgUrl; |
| | | } |
| | | |
| | | public String getIdCardImgUrl1() { |
| | | return idCardImgUrl1; |
| | | } |
| | | |
| | | public void setIdCardImgUrl1(String idCardImgUrl1) { |
| | | this.idCardImgUrl1 = idCardImgUrl1; |
| | | } |
| | | |
| | | public String getIdCardImgUrl2() { |
| | | return idCardImgUrl2; |
| | | } |
| | | |
| | | public void setIdCardImgUrl2(String idCardImgUrl2) { |
| | | this.idCardImgUrl2 = idCardImgUrl2; |
| | | } |
| | | |
| | | public String getPlaceOfEmployment() { |
| | | return placeOfEmployment; |
| | | } |
| | | |
| | | public void setPlaceOfEmployment(String placeOfEmployment) { |
| | | this.placeOfEmployment = placeOfEmployment; |
| | | } |
| | | |
| | | public Date getBirthday() { |
| | | return birthday; |
| | | } |
| | | |
| | | public void setBirthday(Date birthday) { |
| | | this.birthday = birthday; |
| | | } |
| | | |
| | | public String getBankCardNumber() { |
| | | return bankCardNumber; |
| | | } |
| | | |
| | | public void setBankCardNumber(String bankCardNumber) { |
| | | this.bankCardNumber = bankCardNumber; |
| | | } |
| | | |
| | | public String getDriverNationality() { |
| | | return driverNationality; |
| | | } |
| | | |
| | | public void setDriverNationality(String driverNationality) { |
| | | this.driverNationality = driverNationality; |
| | | } |
| | | |
| | | public String getDriverNation() { |
| | | return driverNation; |
| | | } |
| | | |
| | | public void setDriverNation(String driverNation) { |
| | | this.driverNation = driverNation; |
| | | } |
| | | |
| | | public Integer getDriverMaritalStatus() { |
| | | return driverMaritalStatus; |
| | | } |
| | | |
| | | public void setDriverMaritalStatus(Integer driverMaritalStatus) { |
| | | this.driverMaritalStatus = driverMaritalStatus; |
| | | } |
| | | |
| | | public String getDriverLanguageLevel() { |
| | | return driverLanguageLevel; |
| | | } |
| | | |
| | | public void setDriverLanguageLevel(String driverLanguageLevel) { |
| | | this.driverLanguageLevel = driverLanguageLevel; |
| | | } |
| | | |
| | | public String getDriverEducation() { |
| | | return driverEducation; |
| | | } |
| | | |
| | | public void setDriverEducation(String driverEducation) { |
| | | this.driverEducation = driverEducation; |
| | | } |
| | | |
| | | public String getDriverCensus() { |
| | | return driverCensus; |
| | | } |
| | | |
| | | public void setDriverCensus(String driverCensus) { |
| | | this.driverCensus = driverCensus; |
| | | } |
| | | |
| | | public String getDriverAddress() { |
| | | return driverAddress; |
| | | } |
| | | |
| | | public void setDriverAddress(String driverAddress) { |
| | | this.driverAddress = driverAddress; |
| | | } |
| | | |
| | | public String getDriverContactAddress() { |
| | | return driverContactAddress; |
| | | } |
| | | |
| | | public void setDriverContactAddress(String driverContactAddress) { |
| | | this.driverContactAddress = driverContactAddress; |
| | | } |
| | | |
| | | public Integer getDriverAge() { |
| | | return driverAge; |
| | | } |
| | | |
| | | public void setDriverAge(Integer driverAge) { |
| | | this.driverAge = driverAge; |
| | | } |
| | | |
| | | public String getDriveCard() { |
| | | return driveCard; |
| | | } |
| | | |
| | | public void setDriveCard(String driveCard) { |
| | | this.driveCard = driveCard; |
| | | } |
| | | |
| | | public String getDriveCardImgUrl() { |
| | | return driveCardImgUrl; |
| | | } |
| | | |
| | | public void setDriveCardImgUrl(String driveCardImgUrl) { |
| | | this.driveCardImgUrl = driveCardImgUrl; |
| | | } |
| | | |
| | | public String getDriverType() { |
| | | return driverType; |
| | | } |
| | | |
| | | public void setDriverType(String driverType) { |
| | | this.driverType = driverType; |
| | | } |
| | | |
| | | public Date getGetDriverLicenseDate() { |
| | | return getDriverLicenseDate; |
| | | } |
| | | |
| | | public void setGetDriverLicenseDate(Date getDriverLicenseDate) { |
| | | this.getDriverLicenseDate = getDriverLicenseDate; |
| | | } |
| | | |
| | | public Date getDriverLicenseOn() { |
| | | return driverLicenseOn; |
| | | } |
| | | |
| | | public void setDriverLicenseOn(Date driverLicenseOn) { |
| | | this.driverLicenseOn = driverLicenseOn; |
| | | } |
| | | |
| | | public Date getDriverLicenseOff() { |
| | | return driverLicenseOff; |
| | | } |
| | | |
| | | public void setDriverLicenseOff(Date driverLicenseOff) { |
| | | this.driverLicenseOff = driverLicenseOff; |
| | | } |
| | | |
| | | public Integer getTaxiDriver() { |
| | | return taxiDriver; |
| | | } |
| | | |
| | | public void setTaxiDriver(Integer taxiDriver) { |
| | | this.taxiDriver = taxiDriver; |
| | | } |
| | | |
| | | public String getTaxiAptitudeCard() { |
| | | return taxiAptitudeCard; |
| | | } |
| | | |
| | | public void setTaxiAptitudeCard(String taxiAptitudeCard) { |
| | | this.taxiAptitudeCard = taxiAptitudeCard; |
| | | } |
| | | |
| | | public String getNetworkCarlssueOrganization() { |
| | | return networkCarlssueOrganization; |
| | | } |
| | | |
| | | public void setNetworkCarlssueOrganization(String networkCarlssueOrganization) { |
| | | this.networkCarlssueOrganization = networkCarlssueOrganization; |
| | | } |
| | | |
| | | public Date getNetworkCarlssueDate() { |
| | | return networkCarlssueDate; |
| | | } |
| | | |
| | | public void setNetworkCarlssueDate(Date networkCarlssueDate) { |
| | | this.networkCarlssueDate = networkCarlssueDate; |
| | | } |
| | | |
| | | public Date getGetNetworkCarProofDate() { |
| | | return getNetworkCarProofDate; |
| | | } |
| | | |
| | | public void setGetNetworkCarProofDate(Date getNetworkCarProofDate) { |
| | | this.getNetworkCarProofDate = getNetworkCarProofDate; |
| | | } |
| | | |
| | | public Date getNetworkCarProofOn() { |
| | | return networkCarProofOn; |
| | | } |
| | | |
| | | public void setNetworkCarProofOn(Date networkCarProofOn) { |
| | | this.networkCarProofOn = networkCarProofOn; |
| | | } |
| | | |
| | | public Date getNetworkCarProofOff() { |
| | | return networkCarProofOff; |
| | | } |
| | | |
| | | public void setNetworkCarProofOff(Date networkCarProofOff) { |
| | | this.networkCarProofOff = networkCarProofOff; |
| | | } |
| | | |
| | | public Date getRegisterDate() { |
| | | return registerDate; |
| | | } |
| | | |
| | | public void setRegisterDate(Date registerDate) { |
| | | this.registerDate = registerDate; |
| | | } |
| | | |
| | | public Integer getFullTimeDriver() { |
| | | return fullTimeDriver; |
| | | } |
| | | |
| | | public void setFullTimeDriver(Integer fullTimeDriver) { |
| | | this.fullTimeDriver = fullTimeDriver; |
| | | } |
| | | |
| | | public Integer getInDriverBlacklist() { |
| | | return inDriverBlacklist; |
| | | } |
| | | |
| | | public void setInDriverBlacklist(Integer inDriverBlacklist) { |
| | | this.inDriverBlacklist = inDriverBlacklist; |
| | | } |
| | | |
| | | public Integer getCommercialType() { |
| | | return commercialType; |
| | | } |
| | | |
| | | public void setCommercialType(Integer commercialType) { |
| | | this.commercialType = commercialType; |
| | | } |
| | | |
| | | public String getContractCompany() { |
| | | return contractCompany; |
| | | } |
| | | |
| | | public void setContractCompany(String contractCompany) { |
| | | this.contractCompany = contractCompany; |
| | | } |
| | | |
| | | public Date getContractOn() { |
| | | return contractOn; |
| | | } |
| | | |
| | | public void setContractOn(Date contractOn) { |
| | | this.contractOn = contractOn; |
| | | } |
| | | |
| | | public Date getContractOff() { |
| | | return contractOff; |
| | | } |
| | | |
| | | public void setContractOff(Date contractOff) { |
| | | this.contractOff = contractOff; |
| | | } |
| | | |
| | | public String getEmergencyContact() { |
| | | return emergencyContact; |
| | | } |
| | | |
| | | public void setEmergencyContact(String emergencyContact) { |
| | | this.emergencyContact = emergencyContact; |
| | | } |
| | | |
| | | public String getEmergencyContactPhone() { |
| | | return emergencyContactPhone; |
| | | } |
| | | |
| | | public void setEmergencyContactPhone(String emergencyContactPhone) { |
| | | this.emergencyContactPhone = emergencyContactPhone; |
| | | } |
| | | |
| | | public String getEmergencyContactAddress() { |
| | | return emergencyContactAddress; |
| | | } |
| | | |
| | | public void setEmergencyContactAddress(String emergencyContactAddress) { |
| | | this.emergencyContactAddress = emergencyContactAddress; |
| | | } |
| | | |
| | | public String getRemark() { |
| | | return remark; |
| | | } |
| | | |
| | | public void setRemark(String remark) { |
| | | this.remark = remark; |
| | | } |
| | | |
| | | public Integer getIsPlatCar() { |
| | | return isPlatCar; |
| | | } |
| | | |
| | | public void setIsPlatCar(Integer isPlatCar) { |
| | | this.isPlatCar = isPlatCar; |
| | | } |
| | | |
| | | public Integer getCarId() { |
| | | return carId; |
| | | } |
| | | |
| | | public void setCarId(Integer carId) { |
| | | this.carId = carId; |
| | | } |
| | | |
| | | public Integer getAuthState() { |
| | | return authState; |
| | | } |
| | | |
| | | public void setAuthState(Integer authState) { |
| | | this.authState = authState; |
| | | } |
| | | |
| | | public Integer getState() { |
| | | return state; |
| | | } |
| | | |
| | | public void setState(Integer state) { |
| | | this.state = state; |
| | | } |
| | | |
| | | public String getNetworkCarlssueImg() { |
| | | return networkCarlssueImg; |
| | | } |
| | | |
| | | public void setNetworkCarlssueImg(String networkCarlssueImg) { |
| | | this.networkCarlssueImg = networkCarlssueImg; |
| | | } |
| | | |
| | | public Integer getAddType() { |
| | | return addType; |
| | | } |
| | | |
| | | public void setAddType(Integer addType) { |
| | | this.addType = addType; |
| | | } |
| | | |
| | | public Double getBalance() { |
| | | return balance; |
| | | } |
| | | |
| | | public void setBalance(Double balance) { |
| | | this.balance = balance; |
| | | } |
| | | |
| | | public Double getActivityMoney() { |
| | | return activityMoney; |
| | | } |
| | | |
| | | public void setActivityMoney(Double activityMoney) { |
| | | this.activityMoney = activityMoney; |
| | | } |
| | | |
| | | public Double getLaveActivityMoney() { |
| | | return laveActivityMoney; |
| | | } |
| | | |
| | | public void setLaveActivityMoney(Double laveActivityMoney) { |
| | | this.laveActivityMoney = laveActivityMoney; |
| | | } |
| | | |
| | | public Double getBusinessMoney() { |
| | | return businessMoney; |
| | | } |
| | | |
| | | public void setBusinessMoney(Double businessMoney) { |
| | | this.businessMoney = businessMoney; |
| | | } |
| | | |
| | | public Double getLaveBusinessMoney() { |
| | | return laveBusinessMoney; |
| | | } |
| | | |
| | | public void setLaveBusinessMoney(Double laveBusinessMoney) { |
| | | this.laveBusinessMoney = laveBusinessMoney; |
| | | } |
| | | |
| | | public Integer getFranchiseeId() { |
| | | return franchiseeId; |
| | | } |
| | | |
| | | public void setFranchiseeId(Integer franchiseeId) { |
| | | this.franchiseeId = franchiseeId; |
| | | } |
| | | |
| | | public String getAppletsOpenId() { |
| | | return appletsOpenId; |
| | | } |
| | | |
| | | public void setAppletsOpenId(String appletsOpenId) { |
| | | this.appletsOpenId = appletsOpenId; |
| | | } |
| | | |
| | | @Override |
| | | public String toString() { |
| | | return "Driver{" + |
| | | "account='" + account + '\'' + |
| | | ", jobNumber='" + jobNumber + '\'' + |
| | | ", phone='" + phone + '\'' + |
| | | ", password='" + password + '\'' + |
| | | ", name='" + name + '\'' + |
| | | ", sex=" + sex + |
| | | ", idCard='" + idCard + '\'' + |
| | | ", companyId=" + companyId + |
| | | ", franchiseeId=" + franchiseeId + |
| | | ", headImgUrl='" + headImgUrl + '\'' + |
| | | ", faceImgUrl='" + faceImgUrl + '\'' + |
| | | ", idCardImgUrl1='" + idCardImgUrl1 + '\'' + |
| | | ", idCardImgUrl2='" + idCardImgUrl2 + '\'' + |
| | | ", placeOfEmployment='" + placeOfEmployment + '\'' + |
| | | ", birthday=" + birthday + |
| | | ", bankCardNumber='" + bankCardNumber + '\'' + |
| | | ", driverNationality='" + driverNationality + '\'' + |
| | | ", driverNation='" + driverNation + '\'' + |
| | | ", driverMaritalStatus=" + driverMaritalStatus + |
| | | ", driverLanguageLevel='" + driverLanguageLevel + '\'' + |
| | | ", driverEducation='" + driverEducation + '\'' + |
| | | ", driverCensus='" + driverCensus + '\'' + |
| | | ", driverAddress='" + driverAddress + '\'' + |
| | | ", driverContactAddress='" + driverContactAddress + '\'' + |
| | | ", driverAge=" + driverAge + |
| | | ", driveCard='" + driveCard + '\'' + |
| | | ", driveCardImgUrl='" + driveCardImgUrl + '\'' + |
| | | ", driverType='" + driverType + '\'' + |
| | | ", getDriverLicenseDate=" + getDriverLicenseDate + |
| | | ", driverLicenseOn=" + driverLicenseOn + |
| | | ", driverLicenseOff=" + driverLicenseOff + |
| | | ", taxiDriver=" + taxiDriver + |
| | | ", taxiAptitudeCard='" + taxiAptitudeCard + '\'' + |
| | | ", networkCarlssueImg='" + networkCarlssueImg + '\'' + |
| | | ", networkCarlssueOrganization='" + networkCarlssueOrganization + '\'' + |
| | | ", networkCarlssueDate=" + networkCarlssueDate + |
| | | ", getNetworkCarProofDate=" + getNetworkCarProofDate + |
| | | ", networkCarProofOn=" + networkCarProofOn + |
| | | ", networkCarProofOff=" + networkCarProofOff + |
| | | ", registerDate=" + registerDate + |
| | | ", fullTimeDriver=" + fullTimeDriver + |
| | | ", inDriverBlacklist=" + inDriverBlacklist + |
| | | ", commercialType=" + commercialType + |
| | | ", contractCompany='" + contractCompany + '\'' + |
| | | ", contractOn=" + contractOn + |
| | | ", contractOff=" + contractOff + |
| | | ", emergencyContact='" + emergencyContact + '\'' + |
| | | ", emergencyContactPhone='" + emergencyContactPhone + '\'' + |
| | | ", emergencyContactAddress='" + emergencyContactAddress + '\'' + |
| | | ", remark='" + remark + '\'' + |
| | | ", isPlatCar=" + isPlatCar + |
| | | ", carId=" + carId + |
| | | ", authState=" + authState + |
| | | ", state=" + state + |
| | | ", addType=" + addType + |
| | | ", balance=" + balance + |
| | | ", activityMoney=" + activityMoney + |
| | | ", laveActivityMoney=" + laveActivityMoney + |
| | | ", businessMoney=" + businessMoney + |
| | | ", laveBusinessMoney=" + laveBusinessMoney + |
| | | '}'; |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.model; |
| | | |
| | | import com.baomidou.mybatisplus.annotations.TableField; |
| | | import com.baomidou.mybatisplus.annotations.TableId; |
| | | import com.baomidou.mybatisplus.annotations.TableName; |
| | | import com.baomidou.mybatisplus.enums.IdType; |
| | | |
| | | /** |
| | | * 司机可经营的业务类型 |
| | | */ |
| | | @TableName("t_driver_service") |
| | | public class DriverService { |
| | | /** |
| | | * 主键 |
| | | */ |
| | | @TableId(value = "id", type = IdType.AUTO) |
| | | @TableField("id") |
| | | private Integer id; |
| | | /** |
| | | * 司机id |
| | | */ |
| | | @TableField("driverId") |
| | | private Integer driverId; |
| | | /** |
| | | * 业务类型(1=专车,2=出租车,3=城际,4=小件物流-同城,5=小件物流-跨城,6=包车) |
| | | */ |
| | | @TableField("type") |
| | | private Integer type; |
| | | |
| | | public Integer getId() { |
| | | return id; |
| | | } |
| | | |
| | | public void setId(Integer id) { |
| | | this.id = id; |
| | | } |
| | | |
| | | public Integer getDriverId() { |
| | | return driverId; |
| | | } |
| | | |
| | | public void setDriverId(Integer driverId) { |
| | | this.driverId = driverId; |
| | | } |
| | | |
| | | public Integer getType() { |
| | | return type; |
| | | } |
| | | |
| | | public void setType(Integer type) { |
| | | this.type = type; |
| | | } |
| | | |
| | | @Override |
| | | public String toString() { |
| | | return "DriverService{" + |
| | | "id=" + id + |
| | | ", driverId=" + driverId + |
| | | ", type=" + type + |
| | | '}'; |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.model; |
| | | |
| | | import com.baomidou.mybatisplus.activerecord.Model; |
| | | import com.baomidou.mybatisplus.annotations.TableId; |
| | | import com.baomidou.mybatisplus.annotations.TableName; |
| | | import com.baomidou.mybatisplus.enums.IdType; |
| | | |
| | | import java.io.Serializable; |
| | | import java.math.BigDecimal; |
| | | import java.util.Date; |
| | | |
| | | /** |
| | | * <p> |
| | | * 报销表 |
| | | * </p> |
| | | * |
| | | * @author stylefeng |
| | | * @since 2017-12-05 |
| | | */ |
| | | @TableName("sys_expense") |
| | | public class Expense extends Model<Expense> { |
| | | |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | @TableId(value="id", type= IdType.AUTO) |
| | | private Integer id; |
| | | /** |
| | | * 报销金额 |
| | | */ |
| | | private BigDecimal money; |
| | | /** |
| | | * 描述 |
| | | */ |
| | | private String desc; |
| | | private Date createtime; |
| | | /** |
| | | * 状态: 1.待提交 2:待审核 3.审核通过 |
| | | */ |
| | | private Integer state; |
| | | /** |
| | | * 用户id |
| | | */ |
| | | private Integer userid; |
| | | /** |
| | | * 流程定义id |
| | | */ |
| | | private String processId; |
| | | |
| | | |
| | | public Integer getId() { |
| | | return id; |
| | | } |
| | | |
| | | public void setId(Integer id) { |
| | | this.id = id; |
| | | } |
| | | |
| | | public BigDecimal getMoney() { |
| | | return money; |
| | | } |
| | | |
| | | public void setMoney(BigDecimal money) { |
| | | this.money = money; |
| | | } |
| | | |
| | | public String getDesc() { |
| | | return desc; |
| | | } |
| | | |
| | | public void setDesc(String desc) { |
| | | this.desc = desc; |
| | | } |
| | | |
| | | public Date getCreatetime() { |
| | | return createtime; |
| | | } |
| | | |
| | | public void setCreatetime(Date createtime) { |
| | | this.createtime = createtime; |
| | | } |
| | | |
| | | public Integer getState() { |
| | | return state; |
| | | } |
| | | |
| | | public void setState(Integer state) { |
| | | this.state = state; |
| | | } |
| | | |
| | | public Integer getUserid() { |
| | | return userid; |
| | | } |
| | | |
| | | public void setUserid(Integer userid) { |
| | | this.userid = userid; |
| | | } |
| | | |
| | | public String getProcessId() { |
| | | return processId; |
| | | } |
| | | |
| | | public void setProcessId(String processId) { |
| | | this.processId = processId; |
| | | } |
| | | |
| | | @Override |
| | | protected Serializable pkVal() { |
| | | return this.id; |
| | | } |
| | | |
| | | @Override |
| | | public String toString() { |
| | | return "Expense{" + |
| | | "id=" + id + |
| | | ", money=" + money + |
| | | ", desc=" + desc + |
| | | ", createtime=" + createtime + |
| | | ", state=" + state + |
| | | ", userid=" + userid + |
| | | ", processId=" + processId + |
| | | "}"; |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.model; |
| | | |
| | | |
| | | import com.baomidou.mybatisplus.annotations.TableField; |
| | | import com.baomidou.mybatisplus.annotations.TableId; |
| | | import com.baomidou.mybatisplus.annotations.TableName; |
| | | import com.baomidou.mybatisplus.enums.IdType; |
| | | |
| | | /** |
| | | * 高德接口统计 |
| | | */ |
| | | @TableName("t_gdinterface") |
| | | public class GDInterface { |
| | | /** |
| | | * 主键 |
| | | */ |
| | | @TableId(value = "id", type = IdType.AUTO) |
| | | @TableField("id") |
| | | private Integer id; |
| | | /** |
| | | * 接口名称 |
| | | */ |
| | | @TableField("name") |
| | | private String name; |
| | | /** |
| | | * 接口说明 |
| | | */ |
| | | @TableField("explanation") |
| | | private String explanation; |
| | | /** |
| | | * 调用次数 |
| | | */ |
| | | @TableField("num") |
| | | private Integer num; |
| | | /** |
| | | * 调用日期 |
| | | */ |
| | | @TableField("time") |
| | | private String time; |
| | | |
| | | public Integer getId() { |
| | | return id; |
| | | } |
| | | |
| | | public void setId(Integer id) { |
| | | this.id = id; |
| | | } |
| | | |
| | | public String getName() { |
| | | return name; |
| | | } |
| | | |
| | | public void setName(String name) { |
| | | this.name = name; |
| | | } |
| | | |
| | | public String getExplanation() { |
| | | return explanation; |
| | | } |
| | | |
| | | public void setExplanation(String explanation) { |
| | | this.explanation = explanation; |
| | | } |
| | | |
| | | public Integer getNum() { |
| | | return num; |
| | | } |
| | | |
| | | public void setNum(Integer num) { |
| | | this.num = num; |
| | | } |
| | | |
| | | public String getTime() { |
| | | return time; |
| | | } |
| | | |
| | | public void setTime(String time) { |
| | | this.time = time; |
| | | } |
| | | |
| | | @Override |
| | | public String toString() { |
| | | return "GDInterface{" + |
| | | "id=" + id + |
| | | ", name='" + name + '\'' + |
| | | ", explanation='" + explanation + '\'' + |
| | | ", num=" + num + |
| | | ", time=" + time + |
| | | '}'; |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.model; |
| | | |
| | | import com.baomidou.mybatisplus.annotations.TableField; |
| | | import com.baomidou.mybatisplus.annotations.TableId; |
| | | import com.baomidou.mybatisplus.annotations.TableName; |
| | | import com.baomidou.mybatisplus.enums.IdType; |
| | | |
| | | import java.util.Date; |
| | | |
| | | /** |
| | | * 收入明细 |
| | | */ |
| | | @TableName("t_income") |
| | | public class Income { |
| | | /** |
| | | * 主键 |
| | | */ |
| | | @TableId(value = "id", type = IdType.AUTO) |
| | | @TableField("id") |
| | | private Integer id; |
| | | /** |
| | | * 收入方类型(1=公司,2=司机) |
| | | */ |
| | | @TableField("userType") |
| | | private Integer userType; |
| | | /** |
| | | * 收入对象id |
| | | */ |
| | | @TableField("objectId") |
| | | private Integer objectId; |
| | | /** |
| | | * 收入类型(1=活动,2=业务) |
| | | */ |
| | | @TableField("type") |
| | | private Integer type; |
| | | /** |
| | | * 收入类型id |
| | | */ |
| | | @TableField("incomeId") |
| | | private Integer incomeId; |
| | | /** |
| | | * 订单类型 |
| | | */ |
| | | @TableField("orderType") |
| | | private Integer orderType; |
| | | /** |
| | | * 收入金额 |
| | | */ |
| | | @TableField("money") |
| | | private Double money; |
| | | /** |
| | | * 添加时间 |
| | | */ |
| | | @TableField("insertTime") |
| | | private Date insertTime; |
| | | |
| | | public Integer getId() { |
| | | return id; |
| | | } |
| | | |
| | | public void setId(Integer id) { |
| | | this.id = id; |
| | | } |
| | | |
| | | public Integer getUserType() { |
| | | return userType; |
| | | } |
| | | |
| | | public void setUserType(Integer userType) { |
| | | this.userType = userType; |
| | | } |
| | | |
| | | public Integer getObjectId() { |
| | | return objectId; |
| | | } |
| | | |
| | | public void setObjectId(Integer objectId) { |
| | | this.objectId = objectId; |
| | | } |
| | | |
| | | public Integer getType() { |
| | | return type; |
| | | } |
| | | |
| | | public void setType(Integer type) { |
| | | this.type = type; |
| | | } |
| | | |
| | | public Integer getIncomeId() { |
| | | return incomeId; |
| | | } |
| | | |
| | | public void setIncomeId(Integer incomeId) { |
| | | this.incomeId = incomeId; |
| | | } |
| | | |
| | | public Double getMoney() { |
| | | return money; |
| | | } |
| | | |
| | | public void setMoney(Double money) { |
| | | this.money = money; |
| | | } |
| | | |
| | | public Date getInsertTime() { |
| | | return insertTime; |
| | | } |
| | | |
| | | public void setInsertTime(Date insertTime) { |
| | | this.insertTime = insertTime; |
| | | } |
| | | |
| | | public Integer getOrderType() { |
| | | return orderType; |
| | | } |
| | | |
| | | public void setOrderType(Integer orderType) { |
| | | this.orderType = orderType; |
| | | } |
| | | |
| | | @Override |
| | | public String toString() { |
| | | return "Income{" + |
| | | "id=" + id + |
| | | ", userType=" + userType + |
| | | ", objectId=" + objectId + |
| | | ", type=" + type + |
| | | ", incomeId=" + incomeId + |
| | | ", orderType=" + orderType + |
| | | ", money=" + money + |
| | | ", insertTime=" + insertTime + |
| | | '}'; |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.model; |
| | | |
| | | import com.baomidou.mybatisplus.annotations.TableField; |
| | | import com.baomidou.mybatisplus.annotations.TableId; |
| | | import com.baomidou.mybatisplus.annotations.TableName; |
| | | import com.baomidou.mybatisplus.enums.IdType; |
| | | |
| | | import java.util.Date; |
| | | |
| | | /** |
| | | * 跨城线路 |
| | | */ |
| | | @TableName("t_line") |
| | | public class Line { |
| | | /** |
| | | * 主键 |
| | | */ |
| | | @TableId(value = "id", type = IdType.AUTO) |
| | | @TableField("id") |
| | | private Integer id; |
| | | /** |
| | | * 线路名称 |
| | | */ |
| | | @TableField("name") |
| | | private String name; |
| | | /** |
| | | * 排班申请间隔(分钟) |
| | | */ |
| | | @TableField("shiftInterval") |
| | | private Integer shiftInterval; |
| | | /** |
| | | * 抽成比例(80) |
| | | */ |
| | | @TableField("rakeRate") |
| | | private Integer rakeRate; |
| | | /** |
| | | * 状态(1=正常,2=冻结,3=删除) |
| | | */ |
| | | @TableField("state") |
| | | private Integer state; |
| | | /** |
| | | * 添加时间 |
| | | */ |
| | | @TableField("insertTime") |
| | | private Date insertTime; |
| | | |
| | | public Integer getId() { |
| | | return id; |
| | | } |
| | | |
| | | public void setId(Integer id) { |
| | | this.id = id; |
| | | } |
| | | |
| | | public String getName() { |
| | | return name; |
| | | } |
| | | |
| | | public void setName(String name) { |
| | | this.name = name; |
| | | } |
| | | |
| | | public Integer getShiftInterval() { |
| | | return shiftInterval; |
| | | } |
| | | |
| | | public void setShiftInterval(Integer shiftInterval) { |
| | | this.shiftInterval = shiftInterval; |
| | | } |
| | | |
| | | public Integer getRakeRate() { |
| | | return rakeRate; |
| | | } |
| | | |
| | | public void setRakeRate(Integer rakeRate) { |
| | | this.rakeRate = rakeRate; |
| | | } |
| | | |
| | | public Integer getState() { |
| | | return state; |
| | | } |
| | | |
| | | public void setState(Integer state) { |
| | | this.state = state; |
| | | } |
| | | |
| | | public Date getInsertTime() { |
| | | return insertTime; |
| | | } |
| | | |
| | | public void setInsertTime(Date insertTime) { |
| | | this.insertTime = insertTime; |
| | | } |
| | | |
| | | @Override |
| | | public String toString() { |
| | | return "Line{" + |
| | | "id=" + id + |
| | | ", name='" + name + '\'' + |
| | | ", shiftInterval=" + shiftInterval + |
| | | ", rakeRate=" + rakeRate + |
| | | ", state=" + state + |
| | | ", insertTime=" + insertTime + |
| | | '}'; |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.model; |
| | | |
| | | import com.baomidou.mybatisplus.annotations.TableField; |
| | | import com.baomidou.mybatisplus.annotations.TableId; |
| | | import com.baomidou.mybatisplus.annotations.TableName; |
| | | import com.baomidou.mybatisplus.enums.IdType; |
| | | |
| | | import java.util.Date; |
| | | |
| | | /** |
| | | * 线路价格 |
| | | */ |
| | | @TableName("t_line_price") |
| | | public class LinePrice { |
| | | /** |
| | | * 主键 |
| | | */ |
| | | @TableId(value = "id", type = IdType.AUTO) |
| | | @TableField("id") |
| | | private Integer id; |
| | | /** |
| | | * 线路id |
| | | */ |
| | | @TableField("lineId") |
| | | private Integer lineId; |
| | | /** |
| | | * 服务车型id |
| | | */ |
| | | @TableField("serverCarModelId") |
| | | private Integer serverCarModelId; |
| | | /** |
| | | * 价格类型(1=固定金额,2=浮动计费) |
| | | */ |
| | | @TableField("type") |
| | | private Integer type; |
| | | /** |
| | | * 价格计算规则 |
| | | */ |
| | | @TableField("content") |
| | | private String content; |
| | | /** |
| | | * 状态(1=正常,2=冻结,3=删除) |
| | | */ |
| | | @TableField("state") |
| | | private Integer state; |
| | | /** |
| | | * 添加时间 |
| | | */ |
| | | @TableField("insertTime") |
| | | private Date insertTime; |
| | | |
| | | public Integer getId() { |
| | | return id; |
| | | } |
| | | |
| | | public void setId(Integer id) { |
| | | this.id = id; |
| | | } |
| | | |
| | | public Integer getLineId() { |
| | | return lineId; |
| | | } |
| | | |
| | | public void setLineId(Integer lineId) { |
| | | this.lineId = lineId; |
| | | } |
| | | |
| | | public Integer getServerCarModelId() { |
| | | return serverCarModelId; |
| | | } |
| | | |
| | | public void setServerCarModelId(Integer serverCarModelId) { |
| | | this.serverCarModelId = serverCarModelId; |
| | | } |
| | | |
| | | public Integer getType() { |
| | | return type; |
| | | } |
| | | |
| | | public void setType(Integer type) { |
| | | this.type = type; |
| | | } |
| | | |
| | | public String getContent() { |
| | | return content; |
| | | } |
| | | |
| | | public void setContent(String content) { |
| | | this.content = content; |
| | | } |
| | | |
| | | public Integer getState() { |
| | | return state; |
| | | } |
| | | |
| | | public void setState(Integer state) { |
| | | this.state = state; |
| | | } |
| | | |
| | | public Date getInsertTime() { |
| | | return insertTime; |
| | | } |
| | | |
| | | public void setInsertTime(Date insertTime) { |
| | | this.insertTime = insertTime; |
| | | } |
| | | |
| | | @Override |
| | | public String toString() { |
| | | return "LinePrice{" + |
| | | "id=" + id + |
| | | ", lineId=" + lineId + |
| | | ", serverCarModelId=" + serverCarModelId + |
| | | ", type=" + type + |
| | | ", content='" + content + '\'' + |
| | | ", state=" + state + |
| | | ", insertTime=" + insertTime + |
| | | '}'; |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.model; |
| | | |
| | | import com.baomidou.mybatisplus.annotations.TableField; |
| | | import com.baomidou.mybatisplus.annotations.TableId; |
| | | import com.baomidou.mybatisplus.annotations.TableName; |
| | | import com.baomidou.mybatisplus.enums.IdType; |
| | | |
| | | import java.util.Date; |
| | | |
| | | @TableName("t_line_shift") |
| | | public class LineShift { |
| | | /** |
| | | * 主键 |
| | | */ |
| | | @TableId(value = "id", type = IdType.AUTO) |
| | | @TableField("id") |
| | | private Integer id; |
| | | /** |
| | | * 线路id |
| | | */ |
| | | @TableField("lineId") |
| | | private Integer lineId; |
| | | /** |
| | | * 开始时间段 |
| | | */ |
| | | @TableField("startTime") |
| | | private String startTime; |
| | | /** |
| | | * 结束时间段 |
| | | */ |
| | | @TableField("endTime") |
| | | private String endTime; |
| | | /** |
| | | * 车次数 |
| | | */ |
| | | @TableField("carNum") |
| | | private Integer carNum; |
| | | /** |
| | | * 状态(1=正常,2=冻结,3=删除) |
| | | */ |
| | | @TableField("state") |
| | | private Integer state; |
| | | /** |
| | | * 添加时间 |
| | | */ |
| | | @TableField("insertTime") |
| | | private Date insertTime; |
| | | |
| | | public Integer getId() { |
| | | return id; |
| | | } |
| | | |
| | | public void setId(Integer id) { |
| | | this.id = id; |
| | | } |
| | | |
| | | public Integer getLineId() { |
| | | return lineId; |
| | | } |
| | | |
| | | public void setLineId(Integer lineId) { |
| | | this.lineId = lineId; |
| | | } |
| | | |
| | | public String getStartTime() { |
| | | return startTime; |
| | | } |
| | | |
| | | public void setStartTime(String startTime) { |
| | | this.startTime = startTime; |
| | | } |
| | | |
| | | public String getEndTime() { |
| | | return endTime; |
| | | } |
| | | |
| | | public void setEndTime(String endTime) { |
| | | this.endTime = endTime; |
| | | } |
| | | |
| | | public Integer getCarNum() { |
| | | return carNum; |
| | | } |
| | | |
| | | public void setCarNum(Integer carNum) { |
| | | this.carNum = carNum; |
| | | } |
| | | |
| | | public Integer getState() { |
| | | return state; |
| | | } |
| | | |
| | | public void setState(Integer state) { |
| | | this.state = state; |
| | | } |
| | | |
| | | public Date getInsertTime() { |
| | | return insertTime; |
| | | } |
| | | |
| | | public void setInsertTime(Date insertTime) { |
| | | this.insertTime = insertTime; |
| | | } |
| | | |
| | | @Override |
| | | public String toString() { |
| | | return "LineShift{" + |
| | | "id=" + id + |
| | | ", lineId=" + lineId + |
| | | ", startTime='" + startTime + '\'' + |
| | | ", endTime='" + endTime + '\'' + |
| | | ", carNum=" + carNum + |
| | | ", state=" + state + |
| | | ", insertTime=" + insertTime + |
| | | '}'; |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.model; |
| | | |
| | | import com.baomidou.mybatisplus.annotations.TableField; |
| | | import com.baomidou.mybatisplus.annotations.TableId; |
| | | import com.baomidou.mybatisplus.annotations.TableName; |
| | | import com.baomidou.mybatisplus.enums.IdType; |
| | | |
| | | import java.util.Date; |
| | | |
| | | /** |
| | | * 司机预约排班记录 |
| | | */ |
| | | @TableName("t_line_shift_driver") |
| | | public class LineShiftDriver { |
| | | /** |
| | | * 主键 |
| | | */ |
| | | @TableId(value = "id", type = IdType.AUTO) |
| | | @TableField("id") |
| | | private Integer id; |
| | | /** |
| | | * 线路班次id |
| | | */ |
| | | @TableField("lineShiftId") |
| | | private Integer lineShiftId; |
| | | /** |
| | | * 司机id |
| | | */ |
| | | @TableField("driverId") |
| | | private Integer driverId; |
| | | /** |
| | | * 预约日期 |
| | | */ |
| | | @TableField("day") |
| | | private Date day; |
| | | /** |
| | | * 剩余座位数 |
| | | */ |
| | | @TableField("laveSeat") |
| | | private Integer laveSeat; |
| | | /** |
| | | * 剩余座位号(多个以逗号分隔) |
| | | */ |
| | | @TableField("laveSeatNumber") |
| | | private String laveSeatNumber; |
| | | /** |
| | | * 总座位数 |
| | | */ |
| | | @TableField("totalSeat") |
| | | private Integer totalSeat; |
| | | /** |
| | | * 添加时间 |
| | | */ |
| | | @TableField("inserTime") |
| | | private Date inserTime; |
| | | |
| | | public Integer getId() { |
| | | return id; |
| | | } |
| | | |
| | | public void setId(Integer id) { |
| | | this.id = id; |
| | | } |
| | | |
| | | public Integer getLineShiftId() { |
| | | return lineShiftId; |
| | | } |
| | | |
| | | public void setLineShiftId(Integer lineShiftId) { |
| | | this.lineShiftId = lineShiftId; |
| | | } |
| | | |
| | | public Integer getDriverId() { |
| | | return driverId; |
| | | } |
| | | |
| | | public void setDriverId(Integer driverId) { |
| | | this.driverId = driverId; |
| | | } |
| | | |
| | | public Date getDay() { |
| | | return day; |
| | | } |
| | | |
| | | public void setDay(Date day) { |
| | | this.day = day; |
| | | } |
| | | |
| | | public Integer getLaveSeat() { |
| | | return laveSeat; |
| | | } |
| | | |
| | | public void setLaveSeat(Integer laveSeat) { |
| | | this.laveSeat = laveSeat; |
| | | } |
| | | |
| | | public String getLaveSeatNumber() { |
| | | return laveSeatNumber; |
| | | } |
| | | |
| | | public void setLaveSeatNumber(String laveSeatNumber) { |
| | | this.laveSeatNumber = laveSeatNumber; |
| | | } |
| | | |
| | | public Integer getTotalSeat() { |
| | | return totalSeat; |
| | | } |
| | | |
| | | public void setTotalSeat(Integer totalSeat) { |
| | | this.totalSeat = totalSeat; |
| | | } |
| | | |
| | | public Date getInserTime() { |
| | | return inserTime; |
| | | } |
| | | |
| | | public void setInserTime(Date inserTime) { |
| | | this.inserTime = inserTime; |
| | | } |
| | | |
| | | @Override |
| | | public String toString() { |
| | | return "LineShiftDriver{" + |
| | | "id=" + id + |
| | | ", lineShiftId=" + lineShiftId + |
| | | ", driverId=" + driverId + |
| | | ", day=" + day + |
| | | ", laveSeat=" + laveSeat + |
| | | ", laveSeatNumber='" + laveSeatNumber + '\'' + |
| | | ", totalSeat=" + totalSeat + |
| | | ", inserTime=" + inserTime + |
| | | '}'; |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.model; |
| | | |
| | | |
| | | import com.baomidou.mybatisplus.annotations.TableField; |
| | | import com.baomidou.mybatisplus.annotations.TableId; |
| | | import com.baomidou.mybatisplus.annotations.TableName; |
| | | import com.baomidou.mybatisplus.enums.IdType; |
| | | |
| | | import java.util.Date; |
| | | |
| | | /** |
| | | * 线路排班 |
| | | */ |
| | | @TableName("t_line_shift") |
| | | public class LineSite { |
| | | /** |
| | | * 主键 |
| | | */ |
| | | @TableId(value = "id", type = IdType.AUTO) |
| | | @TableField("id") |
| | | private Integer id; |
| | | /** |
| | | * 线路id |
| | | */ |
| | | @TableField("lineId") |
| | | private Integer lineId; |
| | | /** |
| | | * 开始时间段 |
| | | */ |
| | | @TableField("startTime") |
| | | private String startTime; |
| | | /** |
| | | * 结束时间段 |
| | | */ |
| | | @TableField("endTime") |
| | | private String endTime; |
| | | /** |
| | | * 车次数 |
| | | */ |
| | | @TableField("carNum") |
| | | private Integer carNum; |
| | | /** |
| | | * 状态(1=正常,2=冻结,3=删除) |
| | | */ |
| | | @TableField("state") |
| | | private Integer state; |
| | | /** |
| | | * 添加时间 |
| | | */ |
| | | @TableField("insertTime") |
| | | private Date insertTime; |
| | | |
| | | public Integer getId() { |
| | | return id; |
| | | } |
| | | |
| | | public void setId(Integer id) { |
| | | this.id = id; |
| | | } |
| | | |
| | | public Integer getLineId() { |
| | | return lineId; |
| | | } |
| | | |
| | | public void setLineId(Integer lineId) { |
| | | this.lineId = lineId; |
| | | } |
| | | |
| | | public String getStartTime() { |
| | | return startTime; |
| | | } |
| | | |
| | | public void setStartTime(String startTime) { |
| | | this.startTime = startTime; |
| | | } |
| | | |
| | | public String getEndTime() { |
| | | return endTime; |
| | | } |
| | | |
| | | public void setEndTime(String endTime) { |
| | | this.endTime = endTime; |
| | | } |
| | | |
| | | public Integer getCarNum() { |
| | | return carNum; |
| | | } |
| | | |
| | | public void setCarNum(Integer carNum) { |
| | | this.carNum = carNum; |
| | | } |
| | | |
| | | public Integer getState() { |
| | | return state; |
| | | } |
| | | |
| | | public void setState(Integer state) { |
| | | this.state = state; |
| | | } |
| | | |
| | | public Date getInsertTime() { |
| | | return insertTime; |
| | | } |
| | | |
| | | public void setInsertTime(Date insertTime) { |
| | | this.insertTime = insertTime; |
| | | } |
| | | |
| | | @Override |
| | | public String toString() { |
| | | return "LineSite{" + |
| | | "id=" + id + |
| | | ", lineId=" + lineId + |
| | | ", startTime='" + startTime + '\'' + |
| | | ", endTime='" + endTime + '\'' + |
| | | ", carNum=" + carNum + |
| | | ", state=" + state + |
| | | ", insertTime=" + insertTime + |
| | | '}'; |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.model; |
| | | |
| | | import com.baomidou.mybatisplus.annotations.TableField; |
| | | import com.baomidou.mybatisplus.annotations.TableId; |
| | | import com.baomidou.mybatisplus.annotations.TableName; |
| | | import com.baomidou.mybatisplus.enums.IdType; |
| | | |
| | | import java.util.Date; |
| | | |
| | | /** |
| | | * 站点区域数据 |
| | | */ |
| | | @TableName("t_location") |
| | | public class Location { |
| | | /** |
| | | * 主键 |
| | | */ |
| | | @TableId(value = "id", type = IdType.AUTO) |
| | | @TableField("id") |
| | | private Integer id; |
| | | /** |
| | | * 站点id |
| | | */ |
| | | @TableField("siteId") |
| | | private Integer siteId; |
| | | /** |
| | | * 地点类型(1=行政区域,2=电子围栏) |
| | | */ |
| | | @TableField("type") |
| | | private Integer type; |
| | | /** |
| | | * 省名称 |
| | | */ |
| | | @TableField("province") |
| | | private String province; |
| | | /** |
| | | * 省编号 |
| | | */ |
| | | @TableField("provinceCode") |
| | | private String provinceCode; |
| | | /** |
| | | * 市名称 |
| | | */ |
| | | @TableField("city") |
| | | private String city; |
| | | /** |
| | | * 市编号 |
| | | */ |
| | | @TableField("cityCode") |
| | | private String cityCode; |
| | | /** |
| | | * 区县名称 |
| | | */ |
| | | @TableField("district") |
| | | private String district; |
| | | /** |
| | | * 区县编号 |
| | | */ |
| | | @TableField("districtCode") |
| | | private String districtCode; |
| | | /** |
| | | * 电子围栏坐标(多个以分号分隔) |
| | | */ |
| | | @TableField("coordinate") |
| | | private String coordinate; |
| | | /** |
| | | * 状态(1=正常,2=冻结,3=删除) |
| | | */ |
| | | @TableField("state") |
| | | private Integer state; |
| | | /** |
| | | * 添加时间 |
| | | */ |
| | | @TableField("insertTime") |
| | | private Date insertTime; |
| | | |
| | | public Integer getId() { |
| | | return id; |
| | | } |
| | | |
| | | public void setId(Integer id) { |
| | | this.id = id; |
| | | } |
| | | |
| | | public Integer getSiteId() { |
| | | return siteId; |
| | | } |
| | | |
| | | public void setSiteId(Integer siteId) { |
| | | this.siteId = siteId; |
| | | } |
| | | |
| | | public Integer getType() { |
| | | return type; |
| | | } |
| | | |
| | | public void setType(Integer type) { |
| | | this.type = type; |
| | | } |
| | | |
| | | public String getProvince() { |
| | | return province; |
| | | } |
| | | |
| | | public void setProvince(String province) { |
| | | this.province = province; |
| | | } |
| | | |
| | | public String getProvinceCode() { |
| | | return provinceCode; |
| | | } |
| | | |
| | | public void setProvinceCode(String provinceCode) { |
| | | this.provinceCode = provinceCode; |
| | | } |
| | | |
| | | public String getCity() { |
| | | return city; |
| | | } |
| | | |
| | | public void setCity(String city) { |
| | | this.city = city; |
| | | } |
| | | |
| | | public String getCityCode() { |
| | | return cityCode; |
| | | } |
| | | |
| | | public void setCityCode(String cityCode) { |
| | | this.cityCode = cityCode; |
| | | } |
| | | |
| | | public String getDistrict() { |
| | | return district; |
| | | } |
| | | |
| | | public void setDistrict(String district) { |
| | | this.district = district; |
| | | } |
| | | |
| | | public String getDistrictCode() { |
| | | return districtCode; |
| | | } |
| | | |
| | | public void setDistrictCode(String districtCode) { |
| | | this.districtCode = districtCode; |
| | | } |
| | | |
| | | public String getCoordinate() { |
| | | return coordinate; |
| | | } |
| | | |
| | | public void setCoordinate(String coordinate) { |
| | | this.coordinate = coordinate; |
| | | } |
| | | |
| | | public Integer getState() { |
| | | return state; |
| | | } |
| | | |
| | | public void setState(Integer state) { |
| | | this.state = state; |
| | | } |
| | | |
| | | public Date getInsertTime() { |
| | | return insertTime; |
| | | } |
| | | |
| | | public void setInsertTime(Date insertTime) { |
| | | this.insertTime = insertTime; |
| | | } |
| | | |
| | | @Override |
| | | public String toString() { |
| | | return "Location{" + |
| | | "id=" + id + |
| | | ", siteId=" + siteId + |
| | | ", type=" + type + |
| | | ", province='" + province + '\'' + |
| | | ", provinceCode='" + provinceCode + '\'' + |
| | | ", city='" + city + '\'' + |
| | | ", cityCode='" + cityCode + '\'' + |
| | | ", district='" + district + '\'' + |
| | | ", districtCode='" + districtCode + '\'' + |
| | | ", coordinate='" + coordinate + '\'' + |
| | | ", state=" + state + |
| | | ", insertTime=" + insertTime + |
| | | '}'; |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.model; |
| | | |
| | | import com.baomidou.mybatisplus.activerecord.Model; |
| | | import com.baomidou.mybatisplus.annotations.TableId; |
| | | import com.baomidou.mybatisplus.annotations.TableName; |
| | | import com.baomidou.mybatisplus.enums.IdType; |
| | | |
| | | import java.io.Serializable; |
| | | import java.util.Date; |
| | | |
| | | /** |
| | | * <p> |
| | | * 登录记录 |
| | | * </p> |
| | | * |
| | | * @author stylefeng |
| | | * @since 2017-07-11 |
| | | */ |
| | | @TableName("sys_login_log") |
| | | public class LoginLog extends Model<LoginLog> { |
| | | |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | /** |
| | | * 主键 |
| | | */ |
| | | @TableId(value="id", type= IdType.AUTO) |
| | | private Integer id; |
| | | /** |
| | | * 日志名称 |
| | | */ |
| | | private String logname; |
| | | /** |
| | | * 管理员id |
| | | */ |
| | | private Integer userid; |
| | | /** |
| | | * 创建时间 |
| | | */ |
| | | private Date createtime; |
| | | /** |
| | | * 是否执行成功 |
| | | */ |
| | | private String succeed; |
| | | /** |
| | | * 具体消息 |
| | | */ |
| | | private String message; |
| | | /** |
| | | * 登录ip |
| | | */ |
| | | private String ip; |
| | | |
| | | |
| | | public Integer getId() { |
| | | return id; |
| | | } |
| | | |
| | | public void setId(Integer id) { |
| | | this.id = id; |
| | | } |
| | | |
| | | public String getLogname() { |
| | | return logname; |
| | | } |
| | | |
| | | public void setLogname(String logname) { |
| | | this.logname = logname; |
| | | } |
| | | |
| | | public Integer getUserid() { |
| | | return userid; |
| | | } |
| | | |
| | | public void setUserid(Integer userid) { |
| | | this.userid = userid; |
| | | } |
| | | |
| | | public Date getCreatetime() { |
| | | return createtime; |
| | | } |
| | | |
| | | public void setCreatetime(Date createtime) { |
| | | this.createtime = createtime; |
| | | } |
| | | |
| | | public String getSucceed() { |
| | | return succeed; |
| | | } |
| | | |
| | | public void setSucceed(String succeed) { |
| | | this.succeed = succeed; |
| | | } |
| | | |
| | | public String getMessage() { |
| | | return message; |
| | | } |
| | | |
| | | public void setMessage(String message) { |
| | | this.message = message; |
| | | } |
| | | |
| | | public String getIp() { |
| | | return ip; |
| | | } |
| | | |
| | | public void setIp(String ip) { |
| | | this.ip = ip; |
| | | } |
| | | |
| | | @Override |
| | | protected Serializable pkVal() { |
| | | return this.id; |
| | | } |
| | | |
| | | @Override |
| | | public String toString() { |
| | | return "LoginLog{" + |
| | | "id=" + id + |
| | | ", logname=" + logname + |
| | | ", userid=" + userid + |
| | | ", createtime=" + createtime + |
| | | ", succeed=" + succeed + |
| | | ", message=" + message + |
| | | ", ip=" + ip + |
| | | "}"; |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.model; |
| | | |
| | | import com.baomidou.mybatisplus.activerecord.Model; |
| | | import com.baomidou.mybatisplus.annotations.TableId; |
| | | import com.baomidou.mybatisplus.annotations.TableName; |
| | | import com.baomidou.mybatisplus.enums.IdType; |
| | | import org.hibernate.validator.constraints.NotBlank; |
| | | |
| | | import java.io.Serializable; |
| | | |
| | | /** |
| | | * <p> |
| | | * 菜单表 |
| | | * </p> |
| | | * |
| | | * @author stylefeng |
| | | * @since 2017-07-11 |
| | | */ |
| | | @TableName("sys_menu") |
| | | public class Menu extends Model<Menu> { |
| | | |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | /** |
| | | * 主键id |
| | | */ |
| | | @TableId(value = "id", type = IdType.AUTO) |
| | | private Long id; |
| | | /** |
| | | * 菜单编号 |
| | | */ |
| | | private String code; |
| | | /** |
| | | * 菜单父编号 |
| | | */ |
| | | private String pcode; |
| | | /** |
| | | * 当前菜单的所有父菜单编号 |
| | | */ |
| | | private String pcodes; |
| | | /** |
| | | * 菜单名称 |
| | | */ |
| | | @NotBlank |
| | | private String name; |
| | | /** |
| | | * 菜单图标 |
| | | */ |
| | | private String icon; |
| | | /** |
| | | * url地址 |
| | | */ |
| | | @NotBlank |
| | | private String url; |
| | | /** |
| | | * 菜单排序号 |
| | | */ |
| | | private Integer num; |
| | | /** |
| | | * 菜单层级 |
| | | */ |
| | | private Integer levels; |
| | | /** |
| | | * 是否是菜单(1:是 0:不是) |
| | | */ |
| | | private Integer ismenu; |
| | | /** |
| | | * 备注 |
| | | */ |
| | | private String tips; |
| | | /** |
| | | * 菜单状态 : 1:启用 0:不启用 |
| | | */ |
| | | private Integer status; |
| | | /** |
| | | * 是否打开: 1:打开 0:不打开 |
| | | */ |
| | | private Integer isopen; |
| | | |
| | | |
| | | public Long getId() { |
| | | return id; |
| | | } |
| | | |
| | | public void setId(Long id) { |
| | | this.id = id; |
| | | } |
| | | |
| | | public String getCode() { |
| | | return code; |
| | | } |
| | | |
| | | public void setCode(String code) { |
| | | this.code = code; |
| | | } |
| | | |
| | | public String getPcode() { |
| | | return pcode; |
| | | } |
| | | |
| | | public void setPcode(String pcode) { |
| | | this.pcode = pcode; |
| | | } |
| | | |
| | | public String getPcodes() { |
| | | return pcodes; |
| | | } |
| | | |
| | | public void setPcodes(String pcodes) { |
| | | this.pcodes = pcodes; |
| | | } |
| | | |
| | | public String getName() { |
| | | return name; |
| | | } |
| | | |
| | | public void setName(String name) { |
| | | this.name = name; |
| | | } |
| | | |
| | | public String getIcon() { |
| | | return icon; |
| | | } |
| | | |
| | | public void setIcon(String icon) { |
| | | this.icon = icon; |
| | | } |
| | | |
| | | public String getUrl() { |
| | | return url; |
| | | } |
| | | |
| | | public void setUrl(String url) { |
| | | this.url = url; |
| | | } |
| | | |
| | | public Integer getNum() { |
| | | return num; |
| | | } |
| | | |
| | | public void setNum(Integer num) { |
| | | this.num = num; |
| | | } |
| | | |
| | | public Integer getLevels() { |
| | | return levels; |
| | | } |
| | | |
| | | public void setLevels(Integer levels) { |
| | | this.levels = levels; |
| | | } |
| | | |
| | | public Integer getIsmenu() { |
| | | return ismenu; |
| | | } |
| | | |
| | | public void setIsmenu(Integer ismenu) { |
| | | this.ismenu = ismenu; |
| | | } |
| | | |
| | | public String getTips() { |
| | | return tips; |
| | | } |
| | | |
| | | public void setTips(String tips) { |
| | | this.tips = tips; |
| | | } |
| | | |
| | | public Integer getStatus() { |
| | | return status; |
| | | } |
| | | |
| | | public void setStatus(Integer status) { |
| | | this.status = status; |
| | | } |
| | | |
| | | public Integer getIsopen() { |
| | | return isopen; |
| | | } |
| | | |
| | | public void setIsopen(Integer isopen) { |
| | | this.isopen = isopen; |
| | | } |
| | | |
| | | @Override |
| | | protected Serializable pkVal() { |
| | | return this.id; |
| | | } |
| | | |
| | | @Override |
| | | public String toString() { |
| | | return "Menu{" + |
| | | "id=" + id + |
| | | ", code=" + code + |
| | | ", pcode=" + pcode + |
| | | ", pcodes=" + pcodes + |
| | | ", name=" + name + |
| | | ", icon=" + icon + |
| | | ", url=" + url + |
| | | ", num=" + num + |
| | | ", levels=" + levels + |
| | | ", ismenu=" + ismenu + |
| | | ", tips=" + tips + |
| | | ", status=" + status + |
| | | ", isopen=" + isopen + |
| | | "}"; |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.model; |
| | | |
| | | import com.baomidou.mybatisplus.activerecord.Model; |
| | | import com.baomidou.mybatisplus.annotations.TableId; |
| | | import com.baomidou.mybatisplus.annotations.TableName; |
| | | import com.baomidou.mybatisplus.enums.IdType; |
| | | |
| | | import java.io.Serializable; |
| | | import java.util.Date; |
| | | |
| | | /** |
| | | * <p> |
| | | * 通知表 |
| | | * </p> |
| | | * |
| | | * @author stylefeng |
| | | * @since 2017-07-11 |
| | | */ |
| | | @TableName("sys_notice") |
| | | public class Notice extends Model<Notice> { |
| | | |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | /** |
| | | * 主键 |
| | | */ |
| | | @TableId(value="id", type= IdType.AUTO) |
| | | private Integer id; |
| | | /** |
| | | * 标题 |
| | | */ |
| | | private String title; |
| | | /** |
| | | * 类型 |
| | | */ |
| | | private Integer type; |
| | | /** |
| | | * 内容 |
| | | */ |
| | | private String content; |
| | | /** |
| | | * 创建时间 |
| | | */ |
| | | private Date createtime; |
| | | /** |
| | | * 创建人 |
| | | */ |
| | | private Integer creater; |
| | | |
| | | |
| | | public Integer getId() { |
| | | return id; |
| | | } |
| | | |
| | | public void setId(Integer id) { |
| | | this.id = id; |
| | | } |
| | | |
| | | public String getTitle() { |
| | | return title; |
| | | } |
| | | |
| | | public void setTitle(String title) { |
| | | this.title = title; |
| | | } |
| | | |
| | | public Integer getType() { |
| | | return type; |
| | | } |
| | | |
| | | public void setType(Integer type) { |
| | | this.type = type; |
| | | } |
| | | |
| | | public String getContent() { |
| | | return content; |
| | | } |
| | | |
| | | public void setContent(String content) { |
| | | this.content = content; |
| | | } |
| | | |
| | | public Date getCreatetime() { |
| | | return createtime; |
| | | } |
| | | |
| | | public void setCreatetime(Date createtime) { |
| | | this.createtime = createtime; |
| | | } |
| | | |
| | | public Integer getCreater() { |
| | | return creater; |
| | | } |
| | | |
| | | public void setCreater(Integer creater) { |
| | | this.creater = creater; |
| | | } |
| | | |
| | | @Override |
| | | protected Serializable pkVal() { |
| | | return this.id; |
| | | } |
| | | |
| | | @Override |
| | | public String toString() { |
| | | return "Notice{" + |
| | | "id=" + id + |
| | | ", title=" + title + |
| | | ", type=" + type + |
| | | ", content=" + content + |
| | | ", createtime=" + createtime + |
| | | ", creater=" + creater + |
| | | "}"; |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.model; |
| | | |
| | | import com.baomidou.mybatisplus.activerecord.Model; |
| | | import com.baomidou.mybatisplus.annotations.TableId; |
| | | import com.baomidou.mybatisplus.annotations.TableName; |
| | | import com.baomidou.mybatisplus.enums.IdType; |
| | | |
| | | import java.io.Serializable; |
| | | import java.util.Date; |
| | | |
| | | /** |
| | | * <p> |
| | | * 操作日志 |
| | | * </p> |
| | | * |
| | | * @author stylefeng |
| | | * @since 2017-07-11 |
| | | */ |
| | | @TableName("sys_operation_log") |
| | | public class OperationLog extends Model<OperationLog> { |
| | | |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | /** |
| | | * 主键 |
| | | */ |
| | | @TableId(value="id", type= IdType.AUTO) |
| | | private Integer id; |
| | | /** |
| | | * 日志类型 |
| | | */ |
| | | private String logtype; |
| | | /** |
| | | * 日志名称 |
| | | */ |
| | | private String logname; |
| | | /** |
| | | * 用户id |
| | | */ |
| | | private Integer userid; |
| | | /** |
| | | * 类名称 |
| | | */ |
| | | private String classname; |
| | | /** |
| | | * 方法名称 |
| | | */ |
| | | private String method; |
| | | /** |
| | | * 创建时间 |
| | | */ |
| | | private Date createtime; |
| | | /** |
| | | * 是否成功 |
| | | */ |
| | | private String succeed; |
| | | /** |
| | | * 备注 |
| | | */ |
| | | private String message; |
| | | |
| | | |
| | | public Integer getId() { |
| | | return id; |
| | | } |
| | | |
| | | public void setId(Integer id) { |
| | | this.id = id; |
| | | } |
| | | |
| | | public String getLogtype() { |
| | | return logtype; |
| | | } |
| | | |
| | | public void setLogtype(String logtype) { |
| | | this.logtype = logtype; |
| | | } |
| | | |
| | | public String getLogname() { |
| | | return logname; |
| | | } |
| | | |
| | | public void setLogname(String logname) { |
| | | this.logname = logname; |
| | | } |
| | | |
| | | public Integer getUserid() { |
| | | return userid; |
| | | } |
| | | |
| | | public void setUserid(Integer userid) { |
| | | this.userid = userid; |
| | | } |
| | | |
| | | public String getClassname() { |
| | | return classname; |
| | | } |
| | | |
| | | public void setClassname(String classname) { |
| | | this.classname = classname; |
| | | } |
| | | |
| | | public String getMethod() { |
| | | return method; |
| | | } |
| | | |
| | | public void setMethod(String method) { |
| | | this.method = method; |
| | | } |
| | | |
| | | public Date getCreatetime() { |
| | | return createtime; |
| | | } |
| | | |
| | | public void setCreatetime(Date createtime) { |
| | | this.createtime = createtime; |
| | | } |
| | | |
| | | public String getSucceed() { |
| | | return succeed; |
| | | } |
| | | |
| | | public void setSucceed(String succeed) { |
| | | this.succeed = succeed; |
| | | } |
| | | |
| | | public String getMessage() { |
| | | return message; |
| | | } |
| | | |
| | | public void setMessage(String message) { |
| | | this.message = message; |
| | | } |
| | | |
| | | @Override |
| | | protected Serializable pkVal() { |
| | | return this.id; |
| | | } |
| | | |
| | | @Override |
| | | public String toString() { |
| | | return "OperationLog{" + |
| | | "id=" + id + |
| | | ", logtype=" + logtype + |
| | | ", logname=" + logname + |
| | | ", userid=" + userid + |
| | | ", classname=" + classname + |
| | | ", method=" + method + |
| | | ", createtime=" + createtime + |
| | | ", succeed=" + succeed + |
| | | ", message=" + message + |
| | | "}"; |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.model; |
| | | |
| | | import com.baomidou.mybatisplus.annotations.TableField; |
| | | import com.baomidou.mybatisplus.annotations.TableId; |
| | | import com.baomidou.mybatisplus.annotations.TableName; |
| | | import com.baomidou.mybatisplus.enums.IdType; |
| | | |
| | | import java.util.Date; |
| | | |
| | | /** |
| | | * 取消订单 |
| | | */ |
| | | @TableName("t_order_cancel") |
| | | public class OrderCancel { |
| | | /** |
| | | * 主键 |
| | | */ |
| | | @TableId(value = "id", type = IdType.AUTO) |
| | | @TableField("id") |
| | | private Integer id; |
| | | /** |
| | | * 订单id |
| | | */ |
| | | @TableField("orderId") |
| | | private Integer orderId; |
| | | /** |
| | | * 订单类型(1=专车,2=出租车,3=城际,4=小件物流-同城,5=小件物流-跨城,6=包车) |
| | | */ |
| | | @TableField("orderType") |
| | | private Integer orderType; |
| | | /** |
| | | * 取消原因 |
| | | */ |
| | | @TableField("reason") |
| | | private String reason; |
| | | /** |
| | | * 备注 |
| | | */ |
| | | @TableField("remark") |
| | | private String remark; |
| | | /** |
| | | * 支付方式(1=微信,2=支付宝,3=余额) |
| | | */ |
| | | @TableField("payType") |
| | | private Integer payType; |
| | | /** |
| | | * 支付金额 |
| | | */ |
| | | @TableField("money") |
| | | private Double money; |
| | | /** |
| | | * 状态(1=临时,2=正式) |
| | | */ |
| | | @TableField("state") |
| | | private Integer state; |
| | | /** |
| | | * 添加时间 |
| | | * @return |
| | | */ |
| | | @TableField("insertTime") |
| | | private Date insertTime; |
| | | /** |
| | | * 取消人员类型(1=用户,2=后台, 3=调度) |
| | | * @return |
| | | */ |
| | | @TableField("userType") |
| | | private Integer userType; |
| | | /** |
| | | * 取消人id |
| | | * @return |
| | | */ |
| | | @TableField("userId") |
| | | private Integer userId; |
| | | |
| | | public Integer getId() { |
| | | return id; |
| | | } |
| | | |
| | | public void setId(Integer id) { |
| | | this.id = id; |
| | | } |
| | | |
| | | public Integer getOrderId() { |
| | | return orderId; |
| | | } |
| | | |
| | | public void setOrderId(Integer orderId) { |
| | | this.orderId = orderId; |
| | | } |
| | | |
| | | public Integer getOrderType() { |
| | | return orderType; |
| | | } |
| | | |
| | | public void setOrderType(Integer orderType) { |
| | | this.orderType = orderType; |
| | | } |
| | | |
| | | public String getReason() { |
| | | return reason; |
| | | } |
| | | |
| | | public void setReason(String reason) { |
| | | this.reason = reason; |
| | | } |
| | | |
| | | public String getRemark() { |
| | | return remark; |
| | | } |
| | | |
| | | public void setRemark(String remark) { |
| | | this.remark = remark; |
| | | } |
| | | |
| | | public Integer getPayType() { |
| | | return payType; |
| | | } |
| | | |
| | | public void setPayType(Integer payType) { |
| | | this.payType = payType; |
| | | } |
| | | |
| | | public Double getMoney() { |
| | | return money; |
| | | } |
| | | |
| | | public void setMoney(Double money) { |
| | | this.money = money; |
| | | } |
| | | |
| | | public Integer getState() { |
| | | return state; |
| | | } |
| | | |
| | | public void setState(Integer state) { |
| | | this.state = state; |
| | | } |
| | | |
| | | public Date getInsertTime() { |
| | | return insertTime; |
| | | } |
| | | |
| | | public void setInsertTime(Date insertTime) { |
| | | this.insertTime = insertTime; |
| | | } |
| | | |
| | | public Integer getUserType() { |
| | | return userType; |
| | | } |
| | | |
| | | public void setUserType(Integer userType) { |
| | | this.userType = userType; |
| | | } |
| | | |
| | | public Integer getUserId() { |
| | | return userId; |
| | | } |
| | | |
| | | public void setUserId(Integer userId) { |
| | | this.userId = userId; |
| | | } |
| | | |
| | | @Override |
| | | public String toString() { |
| | | return "OrderCancel{" + |
| | | "id=" + id + |
| | | ", orderId=" + orderId + |
| | | ", orderType=" + orderType + |
| | | ", reason='" + reason + '\'' + |
| | | ", remark='" + remark + '\'' + |
| | | ", payType=" + payType + |
| | | ", money=" + money + |
| | | ", state=" + state + |
| | | ", insertTime=" + insertTime + |
| | | ", userType=" + userType + |
| | | '}'; |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.model; |
| | | |
| | | import com.baomidou.mybatisplus.annotations.TableField; |
| | | import com.baomidou.mybatisplus.annotations.TableId; |
| | | import com.baomidou.mybatisplus.annotations.TableName; |
| | | import com.baomidou.mybatisplus.enums.IdType; |
| | | |
| | | import java.util.Date; |
| | | |
| | | /** |
| | | * 跨城订单 |
| | | */ |
| | | @TableName("t_order_cross_city") |
| | | public class OrderCrossCity { |
| | | /** |
| | | * 主键 |
| | | */ |
| | | @TableId(value = "id", type = IdType.AUTO) |
| | | @TableField("id") |
| | | private Integer id; |
| | | /** |
| | | * 用户id |
| | | */ |
| | | @TableField("userId") |
| | | private Integer userId; |
| | | /** |
| | | * 服务车型id |
| | | */ |
| | | @TableField("serverCarModelId") |
| | | private Integer serverCarModelId; |
| | | /** |
| | | * 司机id |
| | | */ |
| | | @TableField("driverId") |
| | | private Integer driverId; |
| | | /** |
| | | * 线路id |
| | | */ |
| | | @TableField("lineId") |
| | | private Integer lineId; |
| | | /** |
| | | * 预约班次的id |
| | | */ |
| | | @TableField("lineShiftDriverId") |
| | | private Integer lineShiftDriverId; |
| | | /** |
| | | * 车辆id |
| | | */ |
| | | @TableField("carId") |
| | | private Integer carId; |
| | | /** |
| | | * 订单号 |
| | | */ |
| | | @TableField("orderNum") |
| | | private String orderNum; |
| | | /** |
| | | * 下单地点经度 |
| | | */ |
| | | @TableField("placementLon") |
| | | private Double placementLon; |
| | | /** |
| | | * 下单地点纬度 |
| | | */ |
| | | @TableField("placementLat") |
| | | private Double placementLat; |
| | | /** |
| | | * 下单地点 |
| | | */ |
| | | @TableField("placementAddress") |
| | | private String placementAddress; |
| | | /** |
| | | * 起点经度 |
| | | */ |
| | | @TableField("startLon") |
| | | private Double startLon; |
| | | /** |
| | | * 起点纬度 |
| | | */ |
| | | @TableField("startLat") |
| | | private Double startLat; |
| | | /** |
| | | * 起点 |
| | | */ |
| | | @TableField("startAddress") |
| | | private String startAddress; |
| | | /** |
| | | * 目的地经度 |
| | | */ |
| | | @TableField("endLon") |
| | | private Double endLon; |
| | | /** |
| | | * 目的地纬度 |
| | | */ |
| | | @TableField("endLat") |
| | | private Double endLat; |
| | | /** |
| | | * 目的地 |
| | | */ |
| | | @TableField("endAddress") |
| | | private String endAddress; |
| | | /** |
| | | * 上车点经度 |
| | | */ |
| | | @TableField("boardingLon") |
| | | private Double boardingLon; |
| | | /** |
| | | * 上车点纬度 |
| | | */ |
| | | @TableField("boardingLat") |
| | | private Double boardingLat; |
| | | /** |
| | | * 上车地点 |
| | | */ |
| | | @TableField("boardingAddress") |
| | | private String boardingAddress; |
| | | /** |
| | | * 上车时间 |
| | | */ |
| | | @TableField("boardingTime") |
| | | private Date boardingTime; |
| | | /** |
| | | * 下车点经度 |
| | | */ |
| | | @TableField("getoffLon") |
| | | private Double getoffLon; |
| | | /** |
| | | * 下车点纬度 |
| | | */ |
| | | @TableField("getoffLat") |
| | | private Double getoffLat; |
| | | /** |
| | | * 下车点 |
| | | */ |
| | | @TableField("getoffAddress") |
| | | private String getoffAddress; |
| | | /** |
| | | * 下车时间 |
| | | */ |
| | | @TableField("getoffTime") |
| | | private Date getoffTime; |
| | | /** |
| | | * 行驶里程数(米) |
| | | */ |
| | | @TableField("mileage") |
| | | private Double mileage; |
| | | /** |
| | | * 支付方式(1=OK平台支付,2=其他方式支付) |
| | | */ |
| | | @TableField("payManner") |
| | | private Integer payManner; |
| | | /** |
| | | * 支付方式(1=微信,2=支付宝,3=余额) |
| | | */ |
| | | @TableField("payType") |
| | | private Integer payType; |
| | | /** |
| | | * 订单金额 |
| | | */ |
| | | @TableField("orderMoney") |
| | | private Double orderMoney; |
| | | /** |
| | | * 红包抵扣金额 |
| | | */ |
| | | @TableField("redPacketMoney") |
| | | private Double redPacketMoney; |
| | | /** |
| | | * 优惠券抵扣金额 |
| | | */ |
| | | @TableField("couponMoney") |
| | | private Double couponMoney; |
| | | /** |
| | | * 红包id |
| | | */ |
| | | @TableField("redPacketId") |
| | | private Integer redPacketId; |
| | | /** |
| | | * 优惠券id |
| | | */ |
| | | @TableField("couponId") |
| | | private Integer couponId; |
| | | /** |
| | | * 折扣 |
| | | */ |
| | | @TableField("discount") |
| | | private Double discount; |
| | | /** |
| | | * 折扣优惠金额 |
| | | */ |
| | | @TableField("discountMoney") |
| | | private Double discountMoney; |
| | | /** |
| | | * 折扣活动id |
| | | */ |
| | | @TableField("activityId") |
| | | private Integer activityId; |
| | | /** |
| | | * 公司id |
| | | */ |
| | | @TableField("companyId") |
| | | private Integer companyId; |
| | | /** |
| | | * 支付金额 |
| | | */ |
| | | @TableField("payMoney") |
| | | private Double payMoney; |
| | | /** |
| | | * 乘车人姓名 |
| | | */ |
| | | @TableField("passengers") |
| | | private String passengers; |
| | | /** |
| | | * 乘车人电话 |
| | | */ |
| | | @TableField("passengersPhone") |
| | | private String passengersPhone; |
| | | /** |
| | | * 出行人数 |
| | | */ |
| | | @TableField("peopleNumber") |
| | | private Integer peopleNumber; |
| | | /** |
| | | * 座位编号 |
| | | */ |
| | | @TableField("seatNumber") |
| | | private String seatNumber; |
| | | /** |
| | | * 排序(订单为拼车时的排序-不是所有订单的排序) |
| | | */ |
| | | @TableField("sort") |
| | | private Integer sort; |
| | | /** |
| | | * 订单状态(1=待接单,2=待出发,3=待到达预约地点,4=待乘客上车,5=服务中,6=完成服务,7=待支付,8=待评价,9=已完成,10=已取消,11=改派中,12=取消待支付) |
| | | */ |
| | | @TableField("state") |
| | | private Integer state; |
| | | /** |
| | | * 下单时间 |
| | | */ |
| | | @TableField("insertTime") |
| | | private Date insertTime; |
| | | /** |
| | | * 出行时间 |
| | | */ |
| | | @TableField("travelTime") |
| | | private Date travelTime; |
| | | /** |
| | | * 抢单时间 |
| | | */ |
| | | @TableField("snatchOrderTime") |
| | | private Date snatchOrderTime; |
| | | /** |
| | | * 司机点出发时间 |
| | | */ |
| | | @TableField("setOutTime") |
| | | private Date setOutTime; |
| | | /** |
| | | * 司机到达预约地点时间 |
| | | */ |
| | | @TableField("arriveTime") |
| | | private Date arriveTime; |
| | | /** |
| | | * 开始服务时间 |
| | | */ |
| | | @TableField("startServiceTime") |
| | | private Date startServiceTime; |
| | | /** |
| | | * 结束服务时间 |
| | | */ |
| | | @TableField("endServiceTime") |
| | | private Date endServiceTime; |
| | | /** |
| | | * 出行方式(1=拼车,2=包车) |
| | | */ |
| | | @TableField("travelMode") |
| | | private Integer travelMode; |
| | | /** |
| | | * 订单来源(1:APP下单,2:扫码下单,3:小程序下单,4:司机下单,5:调度下单) |
| | | */ |
| | | @TableField("orderSource") |
| | | private Integer orderSource; |
| | | /** |
| | | * 是否是改派单(1=否,=是) |
| | | * @return |
| | | */ |
| | | @TableField("isReassign") |
| | | private Integer isReassign; |
| | | /** |
| | | * 改派通知标识(0=没有改派,1=改派中,2=已改派)用于通知前端获取新司机数据 |
| | | */ |
| | | @TableField("reassignNotice") |
| | | private Integer reassignNotice; |
| | | /** |
| | | * 发票id |
| | | */ |
| | | @TableField("invoiceId") |
| | | private Integer invoiceId; |
| | | /** |
| | | * 高德猎鹰轨迹id |
| | | * @return |
| | | */ |
| | | @TableField("trackId") |
| | | private String trackId; |
| | | /** |
| | | * 是否删除(1=否,2=是) |
| | | */ |
| | | @TableField("isDelete") |
| | | private Integer isDelete; |
| | | /** |
| | | * 该派前的订单状态 |
| | | * @return |
| | | */ |
| | | @TableField("oldState") |
| | | private Integer oldState; |
| | | /** |
| | | * 移动小号 |
| | | * @return |
| | | */ |
| | | @TableField("telX") |
| | | private String telX; |
| | | /** |
| | | * 绑定小号关系id |
| | | * @return |
| | | */ |
| | | @TableField("bindId") |
| | | private String bindId; |
| | | |
| | | public Integer getId() { |
| | | return id; |
| | | } |
| | | |
| | | public void setId(Integer id) { |
| | | this.id = id; |
| | | } |
| | | |
| | | public Integer getUserId() { |
| | | return userId; |
| | | } |
| | | |
| | | public void setUserId(Integer userId) { |
| | | this.userId = userId; |
| | | } |
| | | |
| | | public Integer getServerCarModelId() { |
| | | return serverCarModelId; |
| | | } |
| | | |
| | | public void setServerCarModelId(Integer serverCarModelId) { |
| | | this.serverCarModelId = serverCarModelId; |
| | | } |
| | | |
| | | public Integer getDriverId() { |
| | | return driverId; |
| | | } |
| | | |
| | | public void setDriverId(Integer driverId) { |
| | | this.driverId = driverId; |
| | | } |
| | | |
| | | public Integer getLineId() { |
| | | return lineId; |
| | | } |
| | | |
| | | public void setLineId(Integer lineId) { |
| | | this.lineId = lineId; |
| | | } |
| | | |
| | | public Integer getLineShiftDriverId() { |
| | | return lineShiftDriverId; |
| | | } |
| | | |
| | | public void setLineShiftDriverId(Integer lineShiftDriverId) { |
| | | this.lineShiftDriverId = lineShiftDriverId; |
| | | } |
| | | |
| | | public Integer getCarId() { |
| | | return carId; |
| | | } |
| | | |
| | | public void setCarId(Integer carId) { |
| | | this.carId = carId; |
| | | } |
| | | |
| | | public String getOrderNum() { |
| | | return orderNum; |
| | | } |
| | | |
| | | public void setOrderNum(String orderNum) { |
| | | this.orderNum = orderNum; |
| | | } |
| | | |
| | | public Double getPlacementLon() { |
| | | return placementLon; |
| | | } |
| | | |
| | | public void setPlacementLon(Double placementLon) { |
| | | this.placementLon = placementLon; |
| | | } |
| | | |
| | | public Double getPlacementLat() { |
| | | return placementLat; |
| | | } |
| | | |
| | | public void setPlacementLat(Double placementLat) { |
| | | this.placementLat = placementLat; |
| | | } |
| | | |
| | | public String getPlacementAddress() { |
| | | return placementAddress; |
| | | } |
| | | |
| | | public void setPlacementAddress(String placementAddress) { |
| | | this.placementAddress = placementAddress; |
| | | } |
| | | |
| | | public Double getStartLon() { |
| | | return startLon; |
| | | } |
| | | |
| | | public void setStartLon(Double startLon) { |
| | | this.startLon = startLon; |
| | | } |
| | | |
| | | public Double getStartLat() { |
| | | return startLat; |
| | | } |
| | | |
| | | public void setStartLat(Double startLat) { |
| | | this.startLat = startLat; |
| | | } |
| | | |
| | | public String getStartAddress() { |
| | | return startAddress; |
| | | } |
| | | |
| | | public void setStartAddress(String startAddress) { |
| | | this.startAddress = startAddress; |
| | | } |
| | | |
| | | public Double getEndLon() { |
| | | return endLon; |
| | | } |
| | | |
| | | public void setEndLon(Double endLon) { |
| | | this.endLon = endLon; |
| | | } |
| | | |
| | | public Double getEndLat() { |
| | | return endLat; |
| | | } |
| | | |
| | | public void setEndLat(Double endLat) { |
| | | this.endLat = endLat; |
| | | } |
| | | |
| | | public String getEndAddress() { |
| | | return endAddress; |
| | | } |
| | | |
| | | public void setEndAddress(String endAddress) { |
| | | this.endAddress = endAddress; |
| | | } |
| | | |
| | | public Double getBoardingLon() { |
| | | return boardingLon; |
| | | } |
| | | |
| | | public void setBoardingLon(Double boardingLon) { |
| | | this.boardingLon = boardingLon; |
| | | } |
| | | |
| | | public Double getBoardingLat() { |
| | | return boardingLat; |
| | | } |
| | | |
| | | public void setBoardingLat(Double boardingLat) { |
| | | this.boardingLat = boardingLat; |
| | | } |
| | | |
| | | public String getBoardingAddress() { |
| | | return boardingAddress; |
| | | } |
| | | |
| | | public void setBoardingAddress(String boardingAddress) { |
| | | this.boardingAddress = boardingAddress; |
| | | } |
| | | |
| | | public Date getBoardingTime() { |
| | | return boardingTime; |
| | | } |
| | | |
| | | public void setBoardingTime(Date boardingTime) { |
| | | this.boardingTime = boardingTime; |
| | | } |
| | | |
| | | public Double getGetoffLon() { |
| | | return getoffLon; |
| | | } |
| | | |
| | | public void setGetoffLon(Double getoffLon) { |
| | | this.getoffLon = getoffLon; |
| | | } |
| | | |
| | | public Double getGetoffLat() { |
| | | return getoffLat; |
| | | } |
| | | |
| | | public void setGetoffLat(Double getoffLat) { |
| | | this.getoffLat = getoffLat; |
| | | } |
| | | |
| | | public String getGetoffAddress() { |
| | | return getoffAddress; |
| | | } |
| | | |
| | | public void setGetoffAddress(String getoffAddress) { |
| | | this.getoffAddress = getoffAddress; |
| | | } |
| | | |
| | | public Date getGetoffTime() { |
| | | return getoffTime; |
| | | } |
| | | |
| | | public void setGetoffTime(Date getoffTime) { |
| | | this.getoffTime = getoffTime; |
| | | } |
| | | |
| | | public Double getMileage() { |
| | | return mileage; |
| | | } |
| | | |
| | | public void setMileage(Double mileage) { |
| | | this.mileage = mileage; |
| | | } |
| | | |
| | | public Integer getPayManner() { |
| | | return payManner; |
| | | } |
| | | |
| | | public void setPayManner(Integer payManner) { |
| | | this.payManner = payManner; |
| | | } |
| | | |
| | | public Integer getPayType() { |
| | | return payType; |
| | | } |
| | | |
| | | public void setPayType(Integer payType) { |
| | | this.payType = payType; |
| | | } |
| | | |
| | | public Double getOrderMoney() { |
| | | return orderMoney; |
| | | } |
| | | |
| | | public void setOrderMoney(Double orderMoney) { |
| | | this.orderMoney = orderMoney; |
| | | } |
| | | |
| | | public Double getRedPacketMoney() { |
| | | return redPacketMoney; |
| | | } |
| | | |
| | | public void setRedPacketMoney(Double redPacketMoney) { |
| | | this.redPacketMoney = redPacketMoney; |
| | | } |
| | | |
| | | public Double getCouponMoney() { |
| | | return couponMoney; |
| | | } |
| | | |
| | | public void setCouponMoney(Double couponMoney) { |
| | | this.couponMoney = couponMoney; |
| | | } |
| | | |
| | | public Integer getRedPacketId() { |
| | | return redPacketId; |
| | | } |
| | | |
| | | public void setRedPacketId(Integer redPacketId) { |
| | | this.redPacketId = redPacketId; |
| | | } |
| | | |
| | | public Integer getCouponId() { |
| | | return couponId; |
| | | } |
| | | |
| | | public void setCouponId(Integer couponId) { |
| | | this.couponId = couponId; |
| | | } |
| | | |
| | | public Double getDiscount() { |
| | | return discount; |
| | | } |
| | | |
| | | public void setDiscount(Double discount) { |
| | | this.discount = discount; |
| | | } |
| | | |
| | | public Double getDiscountMoney() { |
| | | return discountMoney; |
| | | } |
| | | |
| | | public void setDiscountMoney(Double discountMoney) { |
| | | this.discountMoney = discountMoney; |
| | | } |
| | | |
| | | public Integer getActivityId() { |
| | | return activityId; |
| | | } |
| | | |
| | | public void setActivityId(Integer activityId) { |
| | | this.activityId = activityId; |
| | | } |
| | | |
| | | public Integer getCompanyId() { |
| | | return companyId; |
| | | } |
| | | |
| | | public void setCompanyId(Integer companyId) { |
| | | this.companyId = companyId; |
| | | } |
| | | |
| | | public Double getPayMoney() { |
| | | return payMoney; |
| | | } |
| | | |
| | | public void setPayMoney(Double payMoney) { |
| | | this.payMoney = payMoney; |
| | | } |
| | | |
| | | public String getPassengers() { |
| | | return passengers; |
| | | } |
| | | |
| | | public void setPassengers(String passengers) { |
| | | this.passengers = passengers; |
| | | } |
| | | |
| | | public String getPassengersPhone() { |
| | | return passengersPhone; |
| | | } |
| | | |
| | | public void setPassengersPhone(String passengersPhone) { |
| | | this.passengersPhone = passengersPhone; |
| | | } |
| | | |
| | | public Integer getPeopleNumber() { |
| | | return peopleNumber; |
| | | } |
| | | |
| | | public void setPeopleNumber(Integer peopleNumber) { |
| | | this.peopleNumber = peopleNumber; |
| | | } |
| | | |
| | | public String getSeatNumber() { |
| | | return seatNumber; |
| | | } |
| | | |
| | | public void setSeatNumber(String seatNumber) { |
| | | this.seatNumber = seatNumber; |
| | | } |
| | | |
| | | public Integer getSort() { |
| | | return sort; |
| | | } |
| | | |
| | | public void setSort(Integer sort) { |
| | | this.sort = sort; |
| | | } |
| | | |
| | | public Integer getState() { |
| | | return state; |
| | | } |
| | | |
| | | public void setState(Integer state) { |
| | | this.state = state; |
| | | } |
| | | |
| | | public Date getInsertTime() { |
| | | return insertTime; |
| | | } |
| | | |
| | | public void setInsertTime(Date insertTime) { |
| | | this.insertTime = insertTime; |
| | | } |
| | | |
| | | public Date getTravelTime() { |
| | | return travelTime; |
| | | } |
| | | |
| | | public void setTravelTime(Date travelTime) { |
| | | this.travelTime = travelTime; |
| | | } |
| | | |
| | | public Date getSnatchOrderTime() { |
| | | return snatchOrderTime; |
| | | } |
| | | |
| | | public void setSnatchOrderTime(Date snatchOrderTime) { |
| | | this.snatchOrderTime = snatchOrderTime; |
| | | } |
| | | |
| | | public Date getSetOutTime() { |
| | | return setOutTime; |
| | | } |
| | | |
| | | public void setSetOutTime(Date setOutTime) { |
| | | this.setOutTime = setOutTime; |
| | | } |
| | | |
| | | public Date getArriveTime() { |
| | | return arriveTime; |
| | | } |
| | | |
| | | public void setArriveTime(Date arriveTime) { |
| | | this.arriveTime = arriveTime; |
| | | } |
| | | |
| | | public Date getStartServiceTime() { |
| | | return startServiceTime; |
| | | } |
| | | |
| | | public void setStartServiceTime(Date startServiceTime) { |
| | | this.startServiceTime = startServiceTime; |
| | | } |
| | | |
| | | public Date getEndServiceTime() { |
| | | return endServiceTime; |
| | | } |
| | | |
| | | public void setEndServiceTime(Date endServiceTime) { |
| | | this.endServiceTime = endServiceTime; |
| | | } |
| | | |
| | | public Integer getTravelMode() { |
| | | return travelMode; |
| | | } |
| | | |
| | | public void setTravelMode(Integer travelMode) { |
| | | this.travelMode = travelMode; |
| | | } |
| | | |
| | | public Integer getOrderSource() { |
| | | return orderSource; |
| | | } |
| | | |
| | | public void setOrderSource(Integer orderSource) { |
| | | this.orderSource = orderSource; |
| | | } |
| | | |
| | | public Integer getInvoiceId() { |
| | | return invoiceId; |
| | | } |
| | | |
| | | public void setInvoiceId(Integer invoiceId) { |
| | | this.invoiceId = invoiceId; |
| | | } |
| | | |
| | | public String getTrackId() { |
| | | return trackId; |
| | | } |
| | | |
| | | public void setTrackId(String trackId) { |
| | | this.trackId = trackId; |
| | | } |
| | | |
| | | public Integer getIsDelete() { |
| | | return isDelete; |
| | | } |
| | | |
| | | public void setIsDelete(Integer isDelete) { |
| | | this.isDelete = isDelete; |
| | | } |
| | | |
| | | public String getTelX() { |
| | | return telX; |
| | | } |
| | | |
| | | public void setTelX(String telX) { |
| | | this.telX = telX; |
| | | } |
| | | |
| | | public String getBindId() { |
| | | return bindId; |
| | | } |
| | | |
| | | public void setBindId(String bindId) { |
| | | this.bindId = bindId; |
| | | } |
| | | |
| | | public Integer getIsReassign() { |
| | | return isReassign; |
| | | } |
| | | |
| | | public void setIsReassign(Integer isReassign) { |
| | | this.isReassign = isReassign; |
| | | } |
| | | |
| | | public Integer getReassignNotice() { |
| | | return reassignNotice; |
| | | } |
| | | |
| | | public void setReassignNotice(Integer reassignNotice) { |
| | | this.reassignNotice = reassignNotice; |
| | | } |
| | | |
| | | public Integer getOldState() { |
| | | return oldState; |
| | | } |
| | | |
| | | public void setOldState(Integer oldState) { |
| | | this.oldState = oldState; |
| | | } |
| | | |
| | | @Override |
| | | public String toString() { |
| | | return "OrderCrossCity{" + |
| | | "id=" + id + |
| | | ", userId=" + userId + |
| | | ", serverCarModelId=" + serverCarModelId + |
| | | ", driverId=" + driverId + |
| | | ", lineId=" + lineId + |
| | | ", lineShiftDriverId=" + lineShiftDriverId + |
| | | ", carId=" + carId + |
| | | ", orderNum='" + orderNum + '\'' + |
| | | ", placementLon=" + placementLon + |
| | | ", placementLat=" + placementLat + |
| | | ", placementAddress='" + placementAddress + '\'' + |
| | | ", startLon=" + startLon + |
| | | ", startLat=" + startLat + |
| | | ", startAddress='" + startAddress + '\'' + |
| | | ", endLon=" + endLon + |
| | | ", endLat=" + endLat + |
| | | ", endAddress='" + endAddress + '\'' + |
| | | ", boardingLon=" + boardingLon + |
| | | ", boardingLat=" + boardingLat + |
| | | ", boardingAddress='" + boardingAddress + '\'' + |
| | | ", boardingTime=" + boardingTime + |
| | | ", getoffLon=" + getoffLon + |
| | | ", getoffLat=" + getoffLat + |
| | | ", getoffAddress='" + getoffAddress + '\'' + |
| | | ", getoffTime=" + getoffTime + |
| | | ", mileage=" + mileage + |
| | | ", payManner=" + payManner + |
| | | ", payType=" + payType + |
| | | ", orderMoney=" + orderMoney + |
| | | ", redPacketMoney=" + redPacketMoney + |
| | | ", couponMoney=" + couponMoney + |
| | | ", redPacketId=" + redPacketId + |
| | | ", couponId=" + couponId + |
| | | ", discount=" + discount + |
| | | ", discountMoney=" + discountMoney + |
| | | ", activityId=" + activityId + |
| | | ", companyId=" + companyId + |
| | | ", payMoney=" + payMoney + |
| | | ", passengers='" + passengers + '\'' + |
| | | ", passengersPhone='" + passengersPhone + '\'' + |
| | | ", peopleNumber=" + peopleNumber + |
| | | ", seatNumber='" + seatNumber + '\'' + |
| | | ", sort=" + sort + |
| | | ", state=" + state + |
| | | ", insertTime=" + insertTime + |
| | | ", travelTime=" + travelTime + |
| | | ", snatchOrderTime=" + snatchOrderTime + |
| | | ", setOutTime=" + setOutTime + |
| | | ", arriveTime=" + arriveTime + |
| | | ", startServiceTime=" + startServiceTime + |
| | | ", endServiceTime=" + endServiceTime + |
| | | ", travelMode=" + travelMode + |
| | | ", orderSource=" + orderSource + |
| | | ", isReassign=" + isReassign + |
| | | ", reassignNotice=" + reassignNotice + |
| | | ", invoiceId=" + invoiceId + |
| | | ", trackId='" + trackId + '\'' + |
| | | ", isDelete=" + isDelete + |
| | | ", oldState=" + oldState + |
| | | ", telX='" + telX + '\'' + |
| | | ", bindId='" + bindId + '\'' + |
| | | '}'; |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.model; |
| | | |
| | | import com.baomidou.mybatisplus.annotations.TableField; |
| | | import com.baomidou.mybatisplus.annotations.TableId; |
| | | import com.baomidou.mybatisplus.annotations.TableName; |
| | | import com.baomidou.mybatisplus.enums.IdType; |
| | | |
| | | import java.util.Date; |
| | | |
| | | /** |
| | | * 订单坐标信息表 |
| | | */ |
| | | @TableName("t_order_position") |
| | | public class OrderPosition { |
| | | /** |
| | | * 主键 |
| | | */ |
| | | @TableId(value = "id", type = IdType.AUTO) |
| | | @TableField("id") |
| | | private Integer id; |
| | | /** |
| | | * 订单类型(1=专车,2=出租车,3=城际,4=小件物流-同城,5=小件物流-跨城,6=包车) |
| | | */ |
| | | @TableField("orderType") |
| | | private Integer orderType; |
| | | /** |
| | | * 订单id |
| | | */ |
| | | @TableField("orderId") |
| | | private Integer orderId; |
| | | /** |
| | | * 司机id |
| | | */ |
| | | @TableField("driverId") |
| | | private Integer driverId; |
| | | /** |
| | | * 经度 |
| | | */ |
| | | @TableField("lon") |
| | | private String lon; |
| | | /** |
| | | * 纬度 |
| | | */ |
| | | @TableField("lat") |
| | | private String lat; |
| | | /** |
| | | * 方向角 |
| | | */ |
| | | @TableField("directionAngle") |
| | | private String directionAngle; |
| | | /** |
| | | * 海拔 |
| | | */ |
| | | @TableField("altitude") |
| | | private String altitude; |
| | | /** |
| | | * 添加时间 |
| | | */ |
| | | @TableField("insertTime") |
| | | private Date insertTime; |
| | | |
| | | public Integer getId() { |
| | | return id; |
| | | } |
| | | |
| | | public void setId(Integer id) { |
| | | this.id = id; |
| | | } |
| | | |
| | | public Integer getOrderType() { |
| | | return orderType; |
| | | } |
| | | |
| | | public void setOrderType(Integer orderType) { |
| | | this.orderType = orderType; |
| | | } |
| | | |
| | | public Integer getOrderId() { |
| | | return orderId; |
| | | } |
| | | |
| | | public void setOrderId(Integer orderId) { |
| | | this.orderId = orderId; |
| | | } |
| | | |
| | | public Integer getDriverId() { |
| | | return driverId; |
| | | } |
| | | |
| | | public void setDriverId(Integer driverId) { |
| | | this.driverId = driverId; |
| | | } |
| | | |
| | | public String getLon() { |
| | | return lon; |
| | | } |
| | | |
| | | public void setLon(String lon) { |
| | | this.lon = lon; |
| | | } |
| | | |
| | | public String getLat() { |
| | | return lat; |
| | | } |
| | | |
| | | public void setLat(String lat) { |
| | | this.lat = lat; |
| | | } |
| | | |
| | | public String getDirectionAngle() { |
| | | return directionAngle; |
| | | } |
| | | |
| | | public void setDirectionAngle(String directionAngle) { |
| | | this.directionAngle = directionAngle; |
| | | } |
| | | |
| | | public String getAltitude() { |
| | | return altitude; |
| | | } |
| | | |
| | | public void setAltitude(String altitude) { |
| | | this.altitude = altitude; |
| | | } |
| | | |
| | | public Date getInsertTime() { |
| | | return insertTime; |
| | | } |
| | | |
| | | public void setInsertTime(Date insertTime) { |
| | | this.insertTime = insertTime; |
| | | } |
| | | |
| | | @Override |
| | | public String toString() { |
| | | return "OrderPosition{" + |
| | | "id=" + id + |
| | | ", orderType=" + orderType + |
| | | ", orderId=" + orderId + |
| | | ", driverId=" + driverId + |
| | | ", lon='" + lon + '\'' + |
| | | ", lat='" + lat + '\'' + |
| | | ", directionAngle='" + directionAngle + '\'' + |
| | | ", altitude='" + altitude + '\'' + |
| | | ", insertTime=" + insertTime + |
| | | '}'; |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.model; |
| | | |
| | | import com.baomidou.mybatisplus.annotations.TableField; |
| | | import com.baomidou.mybatisplus.annotations.TableId; |
| | | import com.baomidou.mybatisplus.annotations.TableName; |
| | | import com.baomidou.mybatisplus.enums.IdType; |
| | | |
| | | import java.util.Date; |
| | | |
| | | /** |
| | | * 专车车订单 |
| | | */ |
| | | @TableName("t_order_private_car") |
| | | public class OrderPrivateCar { |
| | | /** |
| | | * 主键 |
| | | */ |
| | | @TableId(value = "id", type = IdType.AUTO) |
| | | @TableField("id") |
| | | private Integer id; |
| | | /** |
| | | * 订单类型(1=普通订单,2=摆渡订单) |
| | | */ |
| | | @TableField("type") |
| | | private Integer type; |
| | | /** |
| | | * 用户id |
| | | */ |
| | | @TableField("userId") |
| | | private Integer userId; |
| | | /** |
| | | * 服务车型id |
| | | */ |
| | | @TableField("serverCarModelId") |
| | | private Integer serverCarModelId; |
| | | /** |
| | | * 司机id |
| | | */ |
| | | @TableField("driverId") |
| | | private Integer driverId; |
| | | /** |
| | | * 车辆id |
| | | */ |
| | | @TableField("carId") |
| | | private Integer carId; |
| | | /** |
| | | * 订单号 |
| | | */ |
| | | @TableField("orderNum") |
| | | private String orderNum; |
| | | /** |
| | | * 下单地点经度 |
| | | */ |
| | | @TableField("placementLon") |
| | | private Double placementLon; |
| | | /** |
| | | * 下单地点纬度 |
| | | */ |
| | | @TableField("placementLat") |
| | | private Double placementLat; |
| | | /** |
| | | * 下单地点 |
| | | */ |
| | | @TableField("placementAddress") |
| | | private String placementAddress; |
| | | /** |
| | | * 起点经度 |
| | | */ |
| | | @TableField("startLon") |
| | | private Double startLon; |
| | | /** |
| | | * 起点纬度 |
| | | */ |
| | | @TableField("startLat") |
| | | private Double startLat; |
| | | /** |
| | | * 起点 |
| | | */ |
| | | @TableField("startAddress") |
| | | private String startAddress; |
| | | /** |
| | | * 目的地经度 |
| | | */ |
| | | @TableField("endLon") |
| | | private Double endLon; |
| | | /** |
| | | * 目的地纬度 |
| | | */ |
| | | @TableField("endLat") |
| | | private Double endLat; |
| | | /** |
| | | * 目的地 |
| | | */ |
| | | @TableField("endAddress") |
| | | private String endAddress; |
| | | /** |
| | | * 上车点经度 |
| | | */ |
| | | @TableField("boardingLon") |
| | | private Double boardingLon; |
| | | /** |
| | | * 上车点纬度 |
| | | */ |
| | | @TableField("boardingLat") |
| | | private Double boardingLat; |
| | | /** |
| | | * 上车地点 |
| | | */ |
| | | @TableField("boardingAddress") |
| | | private String boardingAddress; |
| | | /** |
| | | * 上车时间 |
| | | */ |
| | | @TableField("boardingTime") |
| | | private Date boardingTime; |
| | | /** |
| | | * 下车点经度 |
| | | */ |
| | | @TableField("getoffLon") |
| | | private Double getoffLon; |
| | | /** |
| | | * 下车点纬度 |
| | | */ |
| | | @TableField("getoffLat") |
| | | private Double getoffLat; |
| | | /** |
| | | * 下车点 |
| | | */ |
| | | @TableField("getoffAddress") |
| | | private String getoffAddress; |
| | | /** |
| | | * 下车时间 |
| | | */ |
| | | @TableField("getoffTime") |
| | | private Date getoffTime; |
| | | /** |
| | | * 行驶里程数(米) |
| | | */ |
| | | @TableField("mileage") |
| | | private Double mileage; |
| | | /** |
| | | * 支付方式(1=OK平台支付,2=其他方式支付) |
| | | */ |
| | | @TableField("payManner") |
| | | private Integer payManner; |
| | | /** |
| | | * 支付方式(1=微信,2=支付宝,3=余额) |
| | | */ |
| | | @TableField("payType") |
| | | private Integer payType; |
| | | /** |
| | | * 订单金额 |
| | | */ |
| | | @TableField("orderMoney") |
| | | private Double orderMoney; |
| | | /** |
| | | * 起步里程 |
| | | */ |
| | | @TableField("startMileage") |
| | | private Double startMileage; |
| | | /** |
| | | * 起步价 |
| | | */ |
| | | @TableField("startMoney") |
| | | private Double startMoney; |
| | | /** |
| | | * 里程费 |
| | | */ |
| | | @TableField("mileageMoney") |
| | | private Double mileageMoney; |
| | | /** |
| | | * 时长费 |
| | | */ |
| | | @TableField("durationMoney") |
| | | private Double durationMoney; |
| | | /** |
| | | * 等待费 |
| | | */ |
| | | @TableField("waitMoney") |
| | | private Double waitMoney; |
| | | /** |
| | | * 远途费 |
| | | */ |
| | | @TableField("longDistanceMoney") |
| | | private Double longDistanceMoney; |
| | | /** |
| | | * 停车费 |
| | | */ |
| | | @TableField("parkMoney") |
| | | private Double parkMoney; |
| | | /** |
| | | * 过路费 |
| | | */ |
| | | @TableField("roadTollMoney") |
| | | private Double roadTollMoney; |
| | | /** |
| | | * 红包抵扣金额 |
| | | */ |
| | | @TableField("redPacketMoney") |
| | | private Double redPacketMoney; |
| | | /** |
| | | * 优惠券抵扣金额 |
| | | */ |
| | | @TableField("couponMoney") |
| | | private Double couponMoney; |
| | | /** |
| | | * 红包id |
| | | */ |
| | | @TableField("redPacketId") |
| | | private Integer redPacketId; |
| | | /** |
| | | * 优惠券id |
| | | */ |
| | | @TableField("couponId") |
| | | private Integer couponId; |
| | | /** |
| | | * 折扣 |
| | | */ |
| | | @TableField("discount") |
| | | private Double discount; |
| | | /** |
| | | * 折扣优惠金额 |
| | | */ |
| | | @TableField("discountMoney") |
| | | private Double discountMoney; |
| | | /** |
| | | * 折扣活动id |
| | | */ |
| | | @TableField("activityId") |
| | | private Integer activityId; |
| | | /** |
| | | * 公司id |
| | | */ |
| | | @TableField("companyId") |
| | | private Integer companyId; |
| | | /** |
| | | * 支付金额 |
| | | */ |
| | | @TableField("payMoney") |
| | | private Double payMoney; |
| | | /** |
| | | * 是否是代下单(0:否,1:是) |
| | | */ |
| | | @TableField("substitute") |
| | | private Integer substitute; |
| | | /** |
| | | * 乘车人姓名 |
| | | */ |
| | | @TableField("passengers") |
| | | private String passengers; |
| | | /** |
| | | * 乘车人电话 |
| | | */ |
| | | @TableField("passengersPhone") |
| | | private String passengersPhone; |
| | | /** |
| | | * 订单状态(1=待接单,2=待出发,3=待到达预约地点,4=待乘客上车,5=服务中,6=完成服务,7=待支付,8=待评价,9=已完成,10=已取消,11=改派中,12=取消待支付) |
| | | */ |
| | | @TableField("state") |
| | | private Integer state; |
| | | /** |
| | | * 下单时间 |
| | | */ |
| | | @TableField("insertTime") |
| | | private Date insertTime; |
| | | /** |
| | | * 出行时间 |
| | | */ |
| | | @TableField("travelTime") |
| | | private Date travelTime; |
| | | /** |
| | | * 抢单时间 |
| | | */ |
| | | @TableField("snatchOrderTime") |
| | | private Date snatchOrderTime; |
| | | /** |
| | | * 司机点出发时间 |
| | | */ |
| | | @TableField("setOutTime") |
| | | private Date setOutTime; |
| | | /** |
| | | * 司机到达预约地点时间 |
| | | */ |
| | | @TableField("arriveTime") |
| | | private Date arriveTime; |
| | | /** |
| | | * 开始服务时间 |
| | | */ |
| | | @TableField("startServiceTime") |
| | | private Date startServiceTime; |
| | | /** |
| | | * 结束服务时间 |
| | | */ |
| | | @TableField("endServiceTime") |
| | | private Date endServiceTime; |
| | | /** |
| | | * 订单类型(1=普通,2=预约) |
| | | */ |
| | | @TableField("orderType") |
| | | private Integer orderType; |
| | | /** |
| | | * 订单来源(1:APP下单,2:扫码下单,3:小程序下单,4:司机下单,5:调度下单) |
| | | */ |
| | | @TableField("orderSource") |
| | | private Integer orderSource; |
| | | /** |
| | | * 发票id |
| | | */ |
| | | @TableField("invoiceId") |
| | | private Integer invoiceId; |
| | | /** |
| | | * 是否是改派单(1=否,=是) |
| | | * @return |
| | | */ |
| | | @TableField("isReassign") |
| | | private Integer isReassign; |
| | | /** |
| | | * 改派通知标识(0=没有改派,1=改派中,2=已改派)用于通知前端获取新司机数据 |
| | | */ |
| | | @TableField("reassignNotice") |
| | | private Integer reassignNotice; |
| | | /** |
| | | * 高德猎鹰轨迹id |
| | | * @return |
| | | */ |
| | | @TableField("trackId") |
| | | private String trackId; |
| | | /** |
| | | * 是否删除(1=否,2=是) |
| | | */ |
| | | @TableField("isDelete") |
| | | private Integer isDelete; |
| | | /** |
| | | * 该派前的订单状态 |
| | | * @return |
| | | */ |
| | | @TableField("oldState") |
| | | private Integer oldState; |
| | | /** |
| | | * 移动小号 |
| | | * @return |
| | | */ |
| | | @TableField("telX") |
| | | private String telX; |
| | | /** |
| | | * 绑定小号关系id |
| | | * @return |
| | | */ |
| | | @TableField("bindId") |
| | | private String bindId; |
| | | |
| | | public Integer getId() { |
| | | return id; |
| | | } |
| | | |
| | | public void setId(Integer id) { |
| | | this.id = id; |
| | | } |
| | | |
| | | public Integer getType() { |
| | | return type; |
| | | } |
| | | |
| | | public void setType(Integer type) { |
| | | this.type = type; |
| | | } |
| | | |
| | | public Integer getUserId() { |
| | | return userId; |
| | | } |
| | | |
| | | public void setUserId(Integer userId) { |
| | | this.userId = userId; |
| | | } |
| | | |
| | | public Integer getServerCarModelId() { |
| | | return serverCarModelId; |
| | | } |
| | | |
| | | public void setServerCarModelId(Integer serverCarModelId) { |
| | | this.serverCarModelId = serverCarModelId; |
| | | } |
| | | |
| | | public Integer getDriverId() { |
| | | return driverId; |
| | | } |
| | | |
| | | public void setDriverId(Integer driverId) { |
| | | this.driverId = driverId; |
| | | } |
| | | |
| | | public Integer getCarId() { |
| | | return carId; |
| | | } |
| | | |
| | | public void setCarId(Integer carId) { |
| | | this.carId = carId; |
| | | } |
| | | |
| | | public String getOrderNum() { |
| | | return orderNum; |
| | | } |
| | | |
| | | public void setOrderNum(String orderNum) { |
| | | this.orderNum = orderNum; |
| | | } |
| | | |
| | | public Double getPlacementLon() { |
| | | return placementLon; |
| | | } |
| | | |
| | | public void setPlacementLon(Double placementLon) { |
| | | this.placementLon = placementLon; |
| | | } |
| | | |
| | | public Double getPlacementLat() { |
| | | return placementLat; |
| | | } |
| | | |
| | | public void setPlacementLat(Double placementLat) { |
| | | this.placementLat = placementLat; |
| | | } |
| | | |
| | | public String getPlacementAddress() { |
| | | return placementAddress; |
| | | } |
| | | |
| | | public void setPlacementAddress(String placementAddress) { |
| | | this.placementAddress = placementAddress; |
| | | } |
| | | |
| | | public Double getStartLon() { |
| | | return startLon; |
| | | } |
| | | |
| | | public void setStartLon(Double startLon) { |
| | | this.startLon = startLon; |
| | | } |
| | | |
| | | public Double getStartLat() { |
| | | return startLat; |
| | | } |
| | | |
| | | public void setStartLat(Double startLat) { |
| | | this.startLat = startLat; |
| | | } |
| | | |
| | | public String getStartAddress() { |
| | | return startAddress; |
| | | } |
| | | |
| | | public void setStartAddress(String startAddress) { |
| | | this.startAddress = startAddress; |
| | | } |
| | | |
| | | public Double getEndLon() { |
| | | return endLon; |
| | | } |
| | | |
| | | public void setEndLon(Double endLon) { |
| | | this.endLon = endLon; |
| | | } |
| | | |
| | | public Double getEndLat() { |
| | | return endLat; |
| | | } |
| | | |
| | | public void setEndLat(Double endLat) { |
| | | this.endLat = endLat; |
| | | } |
| | | |
| | | public String getEndAddress() { |
| | | return endAddress; |
| | | } |
| | | |
| | | public void setEndAddress(String endAddress) { |
| | | this.endAddress = endAddress; |
| | | } |
| | | |
| | | public Double getBoardingLon() { |
| | | return boardingLon; |
| | | } |
| | | |
| | | public void setBoardingLon(Double boardingLon) { |
| | | this.boardingLon = boardingLon; |
| | | } |
| | | |
| | | public Double getBoardingLat() { |
| | | return boardingLat; |
| | | } |
| | | |
| | | public void setBoardingLat(Double boardingLat) { |
| | | this.boardingLat = boardingLat; |
| | | } |
| | | |
| | | public String getBoardingAddress() { |
| | | return boardingAddress; |
| | | } |
| | | |
| | | public void setBoardingAddress(String boardingAddress) { |
| | | this.boardingAddress = boardingAddress; |
| | | } |
| | | |
| | | public Date getBoardingTime() { |
| | | return boardingTime; |
| | | } |
| | | |
| | | public void setBoardingTime(Date boardingTime) { |
| | | this.boardingTime = boardingTime; |
| | | } |
| | | |
| | | public Double getGetoffLon() { |
| | | return getoffLon; |
| | | } |
| | | |
| | | public void setGetoffLon(Double getoffLon) { |
| | | this.getoffLon = getoffLon; |
| | | } |
| | | |
| | | public Double getGetoffLat() { |
| | | return getoffLat; |
| | | } |
| | | |
| | | public void setGetoffLat(Double getoffLat) { |
| | | this.getoffLat = getoffLat; |
| | | } |
| | | |
| | | public String getGetoffAddress() { |
| | | return getoffAddress; |
| | | } |
| | | |
| | | public void setGetoffAddress(String getoffAddress) { |
| | | this.getoffAddress = getoffAddress; |
| | | } |
| | | |
| | | public Date getGetoffTime() { |
| | | return getoffTime; |
| | | } |
| | | |
| | | public void setGetoffTime(Date getoffTime) { |
| | | this.getoffTime = getoffTime; |
| | | } |
| | | |
| | | public Double getMileage() { |
| | | return mileage; |
| | | } |
| | | |
| | | public void setMileage(Double mileage) { |
| | | this.mileage = mileage; |
| | | } |
| | | |
| | | public Integer getPayManner() { |
| | | return payManner; |
| | | } |
| | | |
| | | public void setPayManner(Integer payManner) { |
| | | this.payManner = payManner; |
| | | } |
| | | |
| | | public Integer getPayType() { |
| | | return payType; |
| | | } |
| | | |
| | | public void setPayType(Integer payType) { |
| | | this.payType = payType; |
| | | } |
| | | |
| | | public Double getOrderMoney() { |
| | | return orderMoney; |
| | | } |
| | | |
| | | public void setOrderMoney(Double orderMoney) { |
| | | this.orderMoney = orderMoney; |
| | | } |
| | | |
| | | public Double getStartMoney() { |
| | | return startMoney; |
| | | } |
| | | |
| | | public void setStartMoney(Double startMoney) { |
| | | this.startMoney = startMoney; |
| | | } |
| | | |
| | | public Double getMileageMoney() { |
| | | return mileageMoney; |
| | | } |
| | | |
| | | public void setMileageMoney(Double mileageMoney) { |
| | | this.mileageMoney = mileageMoney; |
| | | } |
| | | |
| | | public Double getDurationMoney() { |
| | | return durationMoney; |
| | | } |
| | | |
| | | public void setDurationMoney(Double durationMoney) { |
| | | this.durationMoney = durationMoney; |
| | | } |
| | | |
| | | public Double getLongDistanceMoney() { |
| | | return longDistanceMoney; |
| | | } |
| | | |
| | | public void setLongDistanceMoney(Double longDistanceMoney) { |
| | | this.longDistanceMoney = longDistanceMoney; |
| | | } |
| | | |
| | | public Double getParkMoney() { |
| | | return parkMoney; |
| | | } |
| | | |
| | | public void setParkMoney(Double parkMoney) { |
| | | this.parkMoney = parkMoney; |
| | | } |
| | | |
| | | public Double getRoadTollMoney() { |
| | | return roadTollMoney; |
| | | } |
| | | |
| | | public void setRoadTollMoney(Double roadTollMoney) { |
| | | this.roadTollMoney = roadTollMoney; |
| | | } |
| | | |
| | | public Double getRedPacketMoney() { |
| | | return redPacketMoney; |
| | | } |
| | | |
| | | public void setRedPacketMoney(Double redPacketMoney) { |
| | | this.redPacketMoney = redPacketMoney; |
| | | } |
| | | |
| | | public Double getCouponMoney() { |
| | | return couponMoney; |
| | | } |
| | | |
| | | public void setCouponMoney(Double couponMoney) { |
| | | this.couponMoney = couponMoney; |
| | | } |
| | | |
| | | public Integer getRedPacketId() { |
| | | return redPacketId; |
| | | } |
| | | |
| | | public void setRedPacketId(Integer redPacketId) { |
| | | this.redPacketId = redPacketId; |
| | | } |
| | | |
| | | public Integer getCouponId() { |
| | | return couponId; |
| | | } |
| | | |
| | | public void setCouponId(Integer couponId) { |
| | | this.couponId = couponId; |
| | | } |
| | | |
| | | public Double getDiscount() { |
| | | return discount; |
| | | } |
| | | |
| | | public void setDiscount(Double discount) { |
| | | this.discount = discount; |
| | | } |
| | | |
| | | public Double getDiscountMoney() { |
| | | return discountMoney; |
| | | } |
| | | |
| | | public void setDiscountMoney(Double discountMoney) { |
| | | this.discountMoney = discountMoney; |
| | | } |
| | | |
| | | public Integer getActivityId() { |
| | | return activityId; |
| | | } |
| | | |
| | | public void setActivityId(Integer activityId) { |
| | | this.activityId = activityId; |
| | | } |
| | | |
| | | public Integer getCompanyId() { |
| | | return companyId; |
| | | } |
| | | |
| | | public void setCompanyId(Integer companyId) { |
| | | this.companyId = companyId; |
| | | } |
| | | |
| | | public Double getPayMoney() { |
| | | return payMoney; |
| | | } |
| | | |
| | | public void setPayMoney(Double payMoney) { |
| | | this.payMoney = payMoney; |
| | | } |
| | | |
| | | public Integer getSubstitute() { |
| | | return substitute; |
| | | } |
| | | |
| | | public void setSubstitute(Integer substitute) { |
| | | this.substitute = substitute; |
| | | } |
| | | |
| | | public String getPassengers() { |
| | | return passengers; |
| | | } |
| | | |
| | | public void setPassengers(String passengers) { |
| | | this.passengers = passengers; |
| | | } |
| | | |
| | | public String getPassengersPhone() { |
| | | return passengersPhone; |
| | | } |
| | | |
| | | public void setPassengersPhone(String passengersPhone) { |
| | | this.passengersPhone = passengersPhone; |
| | | } |
| | | |
| | | public Integer getState() { |
| | | return state; |
| | | } |
| | | |
| | | public void setState(Integer state) { |
| | | this.state = state; |
| | | } |
| | | |
| | | public Date getInsertTime() { |
| | | return insertTime; |
| | | } |
| | | |
| | | public void setInsertTime(Date insertTime) { |
| | | this.insertTime = insertTime; |
| | | } |
| | | |
| | | public Date getTravelTime() { |
| | | return travelTime; |
| | | } |
| | | |
| | | public void setTravelTime(Date travelTime) { |
| | | this.travelTime = travelTime; |
| | | } |
| | | |
| | | public Date getSnatchOrderTime() { |
| | | return snatchOrderTime; |
| | | } |
| | | |
| | | public void setSnatchOrderTime(Date snatchOrderTime) { |
| | | this.snatchOrderTime = snatchOrderTime; |
| | | } |
| | | |
| | | public Date getSetOutTime() { |
| | | return setOutTime; |
| | | } |
| | | |
| | | public void setSetOutTime(Date setOutTime) { |
| | | this.setOutTime = setOutTime; |
| | | } |
| | | |
| | | public Date getArriveTime() { |
| | | return arriveTime; |
| | | } |
| | | |
| | | public void setArriveTime(Date arriveTime) { |
| | | this.arriveTime = arriveTime; |
| | | } |
| | | |
| | | public Date getStartServiceTime() { |
| | | return startServiceTime; |
| | | } |
| | | |
| | | public void setStartServiceTime(Date startServiceTime) { |
| | | this.startServiceTime = startServiceTime; |
| | | } |
| | | |
| | | public Date getEndServiceTime() { |
| | | return endServiceTime; |
| | | } |
| | | |
| | | public void setEndServiceTime(Date endServiceTime) { |
| | | this.endServiceTime = endServiceTime; |
| | | } |
| | | |
| | | public Integer getOrderType() { |
| | | return orderType; |
| | | } |
| | | |
| | | public void setOrderType(Integer orderType) { |
| | | this.orderType = orderType; |
| | | } |
| | | |
| | | public Integer getOrderSource() { |
| | | return orderSource; |
| | | } |
| | | |
| | | public void setOrderSource(Integer orderSource) { |
| | | this.orderSource = orderSource; |
| | | } |
| | | |
| | | public Integer getInvoiceId() { |
| | | return invoiceId; |
| | | } |
| | | |
| | | public void setInvoiceId(Integer invoiceId) { |
| | | this.invoiceId = invoiceId; |
| | | } |
| | | |
| | | public Integer getIsReassign() { |
| | | return isReassign; |
| | | } |
| | | |
| | | public void setIsReassign(Integer isReassign) { |
| | | this.isReassign = isReassign; |
| | | } |
| | | |
| | | public Integer getReassignNotice() { |
| | | return reassignNotice; |
| | | } |
| | | |
| | | public void setReassignNotice(Integer reassignNotice) { |
| | | this.reassignNotice = reassignNotice; |
| | | } |
| | | |
| | | public String getTrackId() { |
| | | return trackId; |
| | | } |
| | | |
| | | public void setTrackId(String trackId) { |
| | | this.trackId = trackId; |
| | | } |
| | | |
| | | public Integer getIsDelete() { |
| | | return isDelete; |
| | | } |
| | | |
| | | public void setIsDelete(Integer isDelete) { |
| | | this.isDelete = isDelete; |
| | | } |
| | | |
| | | public Integer getOldState() { |
| | | return oldState; |
| | | } |
| | | |
| | | public void setOldState(Integer oldState) { |
| | | this.oldState = oldState; |
| | | } |
| | | |
| | | public String getTelX() { |
| | | return telX; |
| | | } |
| | | |
| | | public void setTelX(String telX) { |
| | | this.telX = telX; |
| | | } |
| | | |
| | | public String getBindId() { |
| | | return bindId; |
| | | } |
| | | |
| | | public void setBindId(String bindId) { |
| | | this.bindId = bindId; |
| | | } |
| | | |
| | | public Double getWaitMoney() { |
| | | return waitMoney; |
| | | } |
| | | |
| | | public void setWaitMoney(Double waitMoney) { |
| | | this.waitMoney = waitMoney; |
| | | } |
| | | |
| | | public Double getStartMileage() { |
| | | return startMileage; |
| | | } |
| | | |
| | | public void setStartMileage(Double startMileage) { |
| | | this.startMileage = startMileage; |
| | | } |
| | | |
| | | @Override |
| | | public String toString() { |
| | | return "OrderPrivateCar{" + |
| | | "id=" + id + |
| | | ", type=" + type + |
| | | ", userId=" + userId + |
| | | ", serverCarModelId=" + serverCarModelId + |
| | | ", driverId=" + driverId + |
| | | ", carId=" + carId + |
| | | ", orderNum='" + orderNum + '\'' + |
| | | ", placementLon=" + placementLon + |
| | | ", placementLat=" + placementLat + |
| | | ", placementAddress='" + placementAddress + '\'' + |
| | | ", startLon=" + startLon + |
| | | ", startLat=" + startLat + |
| | | ", startAddress='" + startAddress + '\'' + |
| | | ", endLon=" + endLon + |
| | | ", endLat=" + endLat + |
| | | ", endAddress='" + endAddress + '\'' + |
| | | ", boardingLon=" + boardingLon + |
| | | ", boardingLat=" + boardingLat + |
| | | ", boardingAddress='" + boardingAddress + '\'' + |
| | | ", boardingTime=" + boardingTime + |
| | | ", getoffLon=" + getoffLon + |
| | | ", getoffLat=" + getoffLat + |
| | | ", getoffAddress='" + getoffAddress + '\'' + |
| | | ", getoffTime=" + getoffTime + |
| | | ", mileage=" + mileage + |
| | | ", payManner=" + payManner + |
| | | ", payType=" + payType + |
| | | ", orderMoney=" + orderMoney + |
| | | ", startMileage=" + startMileage + |
| | | ", startMoney=" + startMoney + |
| | | ", mileageMoney=" + mileageMoney + |
| | | ", durationMoney=" + durationMoney + |
| | | ", waitMoney=" + waitMoney + |
| | | ", longDistanceMoney=" + longDistanceMoney + |
| | | ", parkMoney=" + parkMoney + |
| | | ", roadTollMoney=" + roadTollMoney + |
| | | ", redPacketMoney=" + redPacketMoney + |
| | | ", couponMoney=" + couponMoney + |
| | | ", redPacketId=" + redPacketId + |
| | | ", couponId=" + couponId + |
| | | ", discount=" + discount + |
| | | ", discountMoney=" + discountMoney + |
| | | ", activityId=" + activityId + |
| | | ", companyId=" + companyId + |
| | | ", payMoney=" + payMoney + |
| | | ", substitute=" + substitute + |
| | | ", passengers='" + passengers + '\'' + |
| | | ", passengersPhone='" + passengersPhone + '\'' + |
| | | ", state=" + state + |
| | | ", insertTime=" + insertTime + |
| | | ", travelTime=" + travelTime + |
| | | ", snatchOrderTime=" + snatchOrderTime + |
| | | ", setOutTime=" + setOutTime + |
| | | ", arriveTime=" + arriveTime + |
| | | ", startServiceTime=" + startServiceTime + |
| | | ", endServiceTime=" + endServiceTime + |
| | | ", orderType=" + orderType + |
| | | ", orderSource=" + orderSource + |
| | | ", invoiceId=" + invoiceId + |
| | | ", isReassign=" + isReassign + |
| | | ", reassignNotice=" + reassignNotice + |
| | | ", trackId='" + trackId + '\'' + |
| | | ", isDelete=" + isDelete + |
| | | ", oldState=" + oldState + |
| | | ", telX='" + telX + '\'' + |
| | | ", bindId='" + bindId + '\'' + |
| | | '}'; |
| | | } |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.model; |
| | | |
| | | import com.baomidou.mybatisplus.annotations.TableField; |
| | | import com.baomidou.mybatisplus.annotations.TableId; |
| | | import com.baomidou.mybatisplus.annotations.TableName; |
| | | import com.baomidou.mybatisplus.enums.IdType; |
| | | |
| | | import java.util.Date; |
| | | |
| | | /** |
| | | * 出租车订单 |
| | | */ |
| | | @TableName("t_order_taxi") |
| | | public class OrderTaxi { |
| | | /** |
| | | * 主键 |
| | | */ |
| | | @TableId(value = "id", type = IdType.AUTO) |
| | | @TableField("id") |
| | | private Integer id; |
| | | /** |
| | | * 订单类型(1=普通订单,2=摆渡订单) |
| | | */ |
| | | @TableField("type") |
| | | private Integer type; |
| | | /** |
| | | * 跨城订单id(摆渡车专用) |
| | | */ |
| | | @TableField("crossCityOrderId") |
| | | private Integer crossCityOrderId; |
| | | /** |
| | | * 摆渡方位(1=跨城起点,2=跨城终点) |
| | | */ |
| | | @TableField("place") |
| | | private Integer place; |
| | | /** |
| | | * 用户id |
| | | */ |
| | | @TableField("userId") |
| | | private Integer userId; |
| | | /** |
| | | * 司机id |
| | | */ |
| | | @TableField("driverId") |
| | | private Integer driverId; |
| | | /** |
| | | * 车辆id |
| | | */ |
| | | @TableField("carId") |
| | | private Integer carId; |
| | | /** |
| | | * 订单号 |
| | | */ |
| | | @TableField("orderNum") |
| | | private String orderNum; |
| | | /** |
| | | * 下单地点经度 |
| | | */ |
| | | @TableField("placementLon") |
| | | private Double placementLon; |
| | | /** |
| | | * 下单地点纬度 |
| | | */ |
| | | @TableField("placementLat") |
| | | private Double placementLat; |
| | | /** |
| | | * 下单地点 |
| | | */ |
| | | @TableField("placementAddress") |
| | | private String placementAddress; |
| | | /** |
| | | * 起点经度 |
| | | */ |
| | | @TableField("startLon") |
| | | private Double startLon; |
| | | /** |
| | | * 起点纬度 |
| | | */ |
| | | @TableField("startLat") |
| | | private Double startLat; |
| | | /** |
| | | * 起点 |
| | | */ |
| | | @TableField("startAddress") |
| | | private String startAddress; |
| | | /** |
| | | * 目的地经度 |
| | | */ |
| | | @TableField("endLon") |
| | | private Double endLon; |
| | | /** |
| | | * 目的地纬度 |
| | | */ |
| | | @TableField("endLat") |
| | | private Double endLat; |
| | | /** |
| | | * 目的地 |
| | | */ |
| | | @TableField("endAddress") |
| | | private String endAddress; |
| | | /** |
| | | * 上车点经度 |
| | | */ |
| | | @TableField("boardingLon") |
| | | private Double boardingLon; |
| | | /** |
| | | * 上车点纬度 |
| | | */ |
| | | @TableField("boardingLat") |
| | | private Double boardingLat; |
| | | /** |
| | | * 上车地点 |
| | | */ |
| | | @TableField("boardingAddress") |
| | | private String boardingAddress; |
| | | /** |
| | | * 上车时间 |
| | | */ |
| | | @TableField("boardingTime") |
| | | private Date boardingTime; |
| | | /** |
| | | * 下车点经度 |
| | | */ |
| | | @TableField("getoffLon") |
| | | private Double getoffLon; |
| | | /** |
| | | * 下车点纬度 |
| | | */ |
| | | @TableField("getoffLat") |
| | | private Double getoffLat; |
| | | /** |
| | | * 下车点 |
| | | */ |
| | | @TableField("getoffAddress") |
| | | private String getoffAddress; |
| | | /** |
| | | * 下车时间 |
| | | */ |
| | | @TableField("getoffTime") |
| | | private Date getoffTime; |
| | | /** |
| | | * 行驶里程数(米) |
| | | */ |
| | | @TableField("mileage") |
| | | private Double mileage; |
| | | /** |
| | | * 支付方式(1=OK平台支付,2=其他方式支付) |
| | | */ |
| | | @TableField("payManner") |
| | | private Integer payManner; |
| | | /** |
| | | * 支付方式(1=微信,2=支付宝,3=余额) |
| | | */ |
| | | @TableField("payType") |
| | | private Integer payType; |
| | | /** |
| | | * 订单金额 |
| | | */ |
| | | @TableField("orderMoney") |
| | | private Double orderMoney; |
| | | /** |
| | | * 行程费 |
| | | */ |
| | | @TableField("travelMoney") |
| | | private Double travelMoney; |
| | | /** |
| | | * 停车费 |
| | | */ |
| | | @TableField("parkMoney") |
| | | private Double parkMoney; |
| | | /** |
| | | * 过路费 |
| | | */ |
| | | @TableField("roadTollMoney") |
| | | private Double roadTollMoney; |
| | | /** |
| | | * 小费 |
| | | */ |
| | | @TableField("tipMoney") |
| | | private Double tipMoney; |
| | | /** |
| | | * 红包抵扣金额 |
| | | */ |
| | | @TableField("redPacketMoney") |
| | | private Double redPacketMoney; |
| | | /** |
| | | * 优惠券抵扣金额 |
| | | */ |
| | | @TableField("couponMoney") |
| | | private Double couponMoney; |
| | | /** |
| | | * 红包id |
| | | */ |
| | | @TableField("redPacketId") |
| | | private Integer redPacketId; |
| | | /** |
| | | * 优惠券id |
| | | */ |
| | | @TableField("couponId") |
| | | private Integer couponId; |
| | | /** |
| | | * 折扣 |
| | | */ |
| | | @TableField("discount") |
| | | private Double discount; |
| | | /** |
| | | * 折扣优惠金额 |
| | | */ |
| | | @TableField("discountMoney") |
| | | private Double discountMoney; |
| | | /** |
| | | * 折扣活动id |
| | | */ |
| | | @TableField("activityId") |
| | | private Integer activityId; |
| | | /** |
| | | * 公司id |
| | | */ |
| | | @TableField("companyId") |
| | | private Integer companyId; |
| | | /** |
| | | * 支付金额 |
| | | */ |
| | | @TableField("payMoney") |
| | | private Double payMoney; |
| | | /** |
| | | * 是否是代下单(0:否,1:是) |
| | | */ |
| | | @TableField("substitute") |
| | | private Integer substitute; |
| | | /** |
| | | * 乘车人姓名 |
| | | */ |
| | | @TableField("passengers") |
| | | private String passengers; |
| | | /** |
| | | * 乘车人电话 |
| | | */ |
| | | @TableField("passengersPhone") |
| | | private String passengersPhone; |
| | | /** |
| | | * 订单状态(1=待接单,2=待出发,3=待到达预约地点,4=待乘客上车,5=服务中,6=完成服务,7=待支付,8=待评价,9=已完成,10=已取消,11=改派中,12=取消待支付) |
| | | */ |
| | | @TableField("state") |
| | | private Integer state; |
| | | /** |
| | | * 下单时间 |
| | | */ |
| | | @TableField("insertTime") |
| | | private Date insertTime; |
| | | /** |
| | | * 出行时间 |
| | | */ |
| | | @TableField("travelTime") |
| | | private Date travelTime; |
| | | /** |
| | | * 抢单时间 |
| | | */ |
| | | @TableField("snatchOrderTime") |
| | | private Date snatchOrderTime; |
| | | /** |
| | | * 司机点出发时间 |
| | | */ |
| | | @TableField("setOutTime") |
| | | private Date setOutTime; |
| | | /** |
| | | * 司机到达预约地点时间 |
| | | */ |
| | | @TableField("arriveTime") |
| | | private Date arriveTime; |
| | | /** |
| | | * 开始服务时间 |
| | | */ |
| | | @TableField("startServiceTime") |
| | | private Date startServiceTime; |
| | | /** |
| | | * 结束服务时间 |
| | | */ |
| | | @TableField("endServiceTime") |
| | | private Date endServiceTime; |
| | | /** |
| | | * 订单类型(1=普通,2=预约) |
| | | */ |
| | | @TableField("orderType") |
| | | private Integer orderType; |
| | | /** |
| | | * 订单来源(1:APP下单,2:扫码下单,3:小程序下单,4:司机下单,5:调度下单) |
| | | */ |
| | | @TableField("orderSource") |
| | | private Integer orderSource; |
| | | /** |
| | | * 发票id |
| | | */ |
| | | @TableField("invoiceId") |
| | | private Integer invoiceId; |
| | | /** |
| | | * 是否是改派单(1=否,=是) |
| | | * @return |
| | | */ |
| | | @TableField("isReassign") |
| | | private Integer isReassign; |
| | | /** |
| | | * 改派通知标识(0=没有改派,1=改派中,2=已改派)用于通知前端获取新司机数据 |
| | | */ |
| | | @TableField("reassignNotice") |
| | | private Integer reassignNotice; |
| | | /** |
| | | * 高德猎鹰轨迹id |
| | | * @return |
| | | */ |
| | | @TableField("trackId") |
| | | private String trackId; |
| | | /** |
| | | * 是否删除(1=否,2=是) |
| | | */ |
| | | @TableField("isDelete") |
| | | private Integer isDelete; |
| | | /** |
| | | * 该派前的订单状态 |
| | | * @return |
| | | */ |
| | | @TableField("oldState") |
| | | private Integer oldState; |
| | | /** |
| | | * 移动小号 |
| | | * @return |
| | | */ |
| | | @TableField("telX") |
| | | private String telX; |
| | | /** |
| | | * 绑定小号关系id |
| | | * @return |
| | | */ |
| | | @TableField("bindId") |
| | | private String bindId; |
| | | |
| | | public Integer getId() { |
| | | return id; |
| | | } |
| | | |
| | | public void setId(Integer id) { |
| | | this.id = id; |
| | | } |
| | | |
| | | public Integer getType() { |
| | | return type; |
| | | } |
| | | |
| | | public void setType(Integer type) { |
| | | this.type = type; |
| | | } |
| | | |
| | | public Integer getCrossCityOrderId() { |
| | | return crossCityOrderId; |
| | | } |
| | | |
| | | public void setCrossCityOrderId(Integer crossCityOrderId) { |
| | | this.crossCityOrderId = crossCityOrderId; |
| | | } |
| | | |
| | | public Integer getPlace() { |
| | | return place; |
| | | } |
| | | |
| | | public void setPlace(Integer place) { |
| | | this.place = place; |
| | | } |
| | | |
| | | public Integer getUserId() { |
| | | return userId; |
| | | } |
| | | |
| | | public void setUserId(Integer userId) { |
| | | this.userId = userId; |
| | | } |
| | | |
| | | public Integer getDriverId() { |
| | | return driverId; |
| | | } |
| | | |
| | | public void setDriverId(Integer driverId) { |
| | | this.driverId = driverId; |
| | | } |
| | | |
| | | public Integer getCarId() { |
| | | return carId; |
| | | } |
| | | |
| | | public void setCarId(Integer carId) { |
| | | this.carId = carId; |
| | | } |
| | | |
| | | public String getOrderNum() { |
| | | return orderNum; |
| | | } |
| | | |
| | | public void setOrderNum(String orderNum) { |
| | | this.orderNum = orderNum; |
| | | } |
| | | |
| | | public Double getPlacementLon() { |
| | | return placementLon; |
| | | } |
| | | |
| | | public void setPlacementLon(Double placementLon) { |
| | | this.placementLon = placementLon; |
| | | } |
| | | |
| | | public Double getPlacementLat() { |
| | | return placementLat; |
| | | } |
| | | |
| | | public void setPlacementLat(Double placementLat) { |
| | | this.placementLat = placementLat; |
| | | } |
| | | |
| | | public String getPlacementAddress() { |
| | | return placementAddress; |
| | | } |
| | | |
| | | public void setPlacementAddress(String placementAddress) { |
| | | this.placementAddress = placementAddress; |
| | | } |
| | | |
| | | public Double getStartLon() { |
| | | return startLon; |
| | | } |
| | | |
| | | public void setStartLon(Double startLon) { |
| | | this.startLon = startLon; |
| | | } |
| | | |
| | | public Double getStartLat() { |
| | | return startLat; |
| | | } |
| | | |
| | | public void setStartLat(Double startLat) { |
| | | this.startLat = startLat; |
| | | } |
| | | |
| | | public String getStartAddress() { |
| | | return startAddress; |
| | | } |
| | | |
| | | public void setStartAddress(String startAddress) { |
| | | this.startAddress = startAddress; |
| | | } |
| | | |
| | | public Double getEndLon() { |
| | | return endLon; |
| | | } |
| | | |
| | | public void setEndLon(Double endLon) { |
| | | this.endLon = endLon; |
| | | } |
| | | |
| | | public Double getEndLat() { |
| | | return endLat; |
| | | } |
| | | |
| | | public void setEndLat(Double endLat) { |
| | | this.endLat = endLat; |
| | | } |
| | | |
| | | public String getEndAddress() { |
| | | return endAddress; |
| | | } |
| | | |
| | | public void setEndAddress(String endAddress) { |
| | | this.endAddress = endAddress; |
| | | } |
| | | |
| | | public Double getBoardingLon() { |
| | | return boardingLon; |
| | | } |
| | | |
| | | public void setBoardingLon(Double boardingLon) { |
| | | this.boardingLon = boardingLon; |
| | | } |
| | | |
| | | public Double getBoardingLat() { |
| | | return boardingLat; |
| | | } |
| | | |
| | | public void setBoardingLat(Double boardingLat) { |
| | | this.boardingLat = boardingLat; |
| | | } |
| | | |
| | | public String getBoardingAddress() { |
| | | return boardingAddress; |
| | | } |
| | | |
| | | public void setBoardingAddress(String boardingAddress) { |
| | | this.boardingAddress = boardingAddress; |
| | | } |
| | | |
| | | public Date getBoardingTime() { |
| | | return boardingTime; |
| | | } |
| | | |
| | | public void setBoardingTime(Date boardingTime) { |
| | | this.boardingTime = boardingTime; |
| | | } |
| | | |
| | | public Double getGetoffLon() { |
| | | return getoffLon; |
| | | } |
| | | |
| | | public void setGetoffLon(Double getoffLon) { |
| | | this.getoffLon = getoffLon; |
| | | } |
| | | |
| | | public Double getGetoffLat() { |
| | | return getoffLat; |
| | | } |
| | | |
| | | public void setGetoffLat(Double getoffLat) { |
| | | this.getoffLat = getoffLat; |
| | | } |
| | | |
| | | public String getGetoffAddress() { |
| | | return getoffAddress; |
| | | } |
| | | |
| | | public void setGetoffAddress(String getoffAddress) { |
| | | this.getoffAddress = getoffAddress; |
| | | } |
| | | |
| | | public Date getGetoffTime() { |
| | | return getoffTime; |
| | | } |
| | | |
| | | public void setGetoffTime(Date getoffTime) { |
| | | this.getoffTime = getoffTime; |
| | | } |
| | | |
| | | public Double getMileage() { |
| | | return mileage; |
| | | } |
| | | |
| | | public void setMileage(Double mileage) { |
| | | this.mileage = mileage; |
| | | } |
| | | |
| | | public Integer getPayType() { |
| | | return payType; |
| | | } |
| | | |
| | | public void setPayType(Integer payType) { |
| | | this.payType = payType; |
| | | } |
| | | |
| | | public Double getOrderMoney() { |
| | | return orderMoney; |
| | | } |
| | | |
| | | public void setOrderMoney(Double orderMoney) { |
| | | this.orderMoney = orderMoney; |
| | | } |
| | | |
| | | public Double getTravelMoney() { |
| | | return travelMoney; |
| | | } |
| | | |
| | | public void setTravelMoney(Double travelMoney) { |
| | | this.travelMoney = travelMoney; |
| | | } |
| | | |
| | | public Double getParkMoney() { |
| | | return parkMoney; |
| | | } |
| | | |
| | | public void setParkMoney(Double parkMoney) { |
| | | this.parkMoney = parkMoney; |
| | | } |
| | | |
| | | public Double getRoadTollMoney() { |
| | | return roadTollMoney; |
| | | } |
| | | |
| | | public void setRoadTollMoney(Double roadTollMoney) { |
| | | this.roadTollMoney = roadTollMoney; |
| | | } |
| | | |
| | | public Double getTipMoney() { |
| | | return tipMoney; |
| | | } |
| | | |
| | | public void setTipMoney(Double tipMoney) { |
| | | this.tipMoney = tipMoney; |
| | | } |
| | | |
| | | public Double getRedPacketMoney() { |
| | | return redPacketMoney; |
| | | } |
| | | |
| | | public void setRedPacketMoney(Double redPacketMoney) { |
| | | this.redPacketMoney = redPacketMoney; |
| | | } |
| | | |
| | | public Double getCouponMoney() { |
| | | return couponMoney; |
| | | } |
| | | |
| | | public void setCouponMoney(Double couponMoney) { |
| | | this.couponMoney = couponMoney; |
| | | } |
| | | |
| | | public Integer getRedPacketId() { |
| | | return redPacketId; |
| | | } |
| | | |
| | | public void setRedPacketId(Integer redPacketId) { |
| | | this.redPacketId = redPacketId; |
| | | } |
| | | |
| | | public Integer getCouponId() { |
| | | return couponId; |
| | | } |
| | | |
| | | public void setCouponId(Integer couponId) { |
| | | this.couponId = couponId; |
| | | } |
| | | |
| | | public Integer getCompanyId() { |
| | | return companyId; |
| | | } |
| | | |
| | | public void setCompanyId(Integer companyId) { |
| | | this.companyId = companyId; |
| | | } |
| | | |
| | | public Double getPayMoney() { |
| | | return payMoney; |
| | | } |
| | | |
| | | public void setPayMoney(Double payMoney) { |
| | | this.payMoney = payMoney; |
| | | } |
| | | |
| | | public Integer getSubstitute() { |
| | | return substitute; |
| | | } |
| | | |
| | | public void setSubstitute(Integer substitute) { |
| | | this.substitute = substitute; |
| | | } |
| | | |
| | | public String getPassengers() { |
| | | return passengers; |
| | | } |
| | | |
| | | public void setPassengers(String passengers) { |
| | | this.passengers = passengers; |
| | | } |
| | | |
| | | public String getPassengersPhone() { |
| | | return passengersPhone; |
| | | } |
| | | |
| | | public void setPassengersPhone(String passengersPhone) { |
| | | this.passengersPhone = passengersPhone; |
| | | } |
| | | |
| | | public Integer getState() { |
| | | return state; |
| | | } |
| | | |
| | | public void setState(Integer state) { |
| | | this.state = state; |
| | | } |
| | | |
| | | public Date getInsertTime() { |
| | | return insertTime; |
| | | } |
| | | |
| | | public void setInsertTime(Date insertTime) { |
| | | this.insertTime = insertTime; |
| | | } |
| | | |
| | | public Date getTravelTime() { |
| | | return travelTime; |
| | | } |
| | | |
| | | public void setTravelTime(Date travelTime) { |
| | | this.travelTime = travelTime; |
| | | } |
| | | |
| | | public Date getSnatchOrderTime() { |
| | | return snatchOrderTime; |
| | | } |
| | | |
| | | public void setSnatchOrderTime(Date snatchOrderTime) { |
| | | this.snatchOrderTime = snatchOrderTime; |
| | | } |
| | | |
| | | public Date getSetOutTime() { |
| | | return setOutTime; |
| | | } |
| | | |
| | | public void setSetOutTime(Date setOutTime) { |
| | | this.setOutTime = setOutTime; |
| | | } |
| | | |
| | | public Date getArriveTime() { |
| | | return arriveTime; |
| | | } |
| | | |
| | | public void setArriveTime(Date arriveTime) { |
| | | this.arriveTime = arriveTime; |
| | | } |
| | | |
| | | public Date getStartServiceTime() { |
| | | return startServiceTime; |
| | | } |
| | | |
| | | public void setStartServiceTime(Date startServiceTime) { |
| | | this.startServiceTime = startServiceTime; |
| | | } |
| | | |
| | | public Date getEndServiceTime() { |
| | | return endServiceTime; |
| | | } |
| | | |
| | | public void setEndServiceTime(Date endServiceTime) { |
| | | this.endServiceTime = endServiceTime; |
| | | } |
| | | |
| | | public Integer getOrderType() { |
| | | return orderType; |
| | | } |
| | | |
| | | public void setOrderType(Integer orderType) { |
| | | this.orderType = orderType; |
| | | } |
| | | |
| | | public Integer getOrderSource() { |
| | | return orderSource; |
| | | } |
| | | |
| | | public void setOrderSource(Integer orderSource) { |
| | | this.orderSource = orderSource; |
| | | } |
| | | |
| | | |
| | | public Integer getInvoiceId() { |
| | | return invoiceId; |
| | | } |
| | | |
| | | public void setInvoiceId(Integer invoiceId) { |
| | | this.invoiceId = invoiceId; |
| | | } |
| | | |
| | | public Integer getPayManner() { |
| | | return payManner; |
| | | } |
| | | |
| | | public void setPayManner(Integer payManner) { |
| | | this.payManner = payManner; |
| | | } |
| | | |
| | | public Integer getIsReassign() { |
| | | return isReassign; |
| | | } |
| | | |
| | | public void setIsReassign(Integer isReassign) { |
| | | this.isReassign = isReassign; |
| | | } |
| | | |
| | | public Integer getReassignNotice() { |
| | | return reassignNotice; |
| | | } |
| | | |
| | | public void setReassignNotice(Integer reassignNotice) { |
| | | this.reassignNotice = reassignNotice; |
| | | } |
| | | |
| | | public String getTrackId() { |
| | | return trackId; |
| | | } |
| | | |
| | | public void setTrackId(String trackId) { |
| | | this.trackId = trackId; |
| | | } |
| | | |
| | | public Double getDiscount() { |
| | | return discount; |
| | | } |
| | | |
| | | public void setDiscount(Double discount) { |
| | | this.discount = discount; |
| | | } |
| | | |
| | | public Double getDiscountMoney() { |
| | | return discountMoney; |
| | | } |
| | | |
| | | public void setDiscountMoney(Double discountMoney) { |
| | | this.discountMoney = discountMoney; |
| | | } |
| | | |
| | | public Integer getActivityId() { |
| | | return activityId; |
| | | } |
| | | |
| | | public void setActivityId(Integer activityId) { |
| | | this.activityId = activityId; |
| | | } |
| | | |
| | | public Integer getIsDelete() { |
| | | return isDelete; |
| | | } |
| | | |
| | | public void setIsDelete(Integer isDelete) { |
| | | this.isDelete = isDelete; |
| | | } |
| | | |
| | | public Integer getOldState() { |
| | | return oldState; |
| | | } |
| | | |
| | | public void setOldState(Integer oldState) { |
| | | this.oldState = oldState; |
| | | } |
| | | |
| | | public String getTelX() { |
| | | return telX; |
| | | } |
| | | |
| | | public void setTelX(String telX) { |
| | | this.telX = telX; |
| | | } |
| | | |
| | | public String getBindId() { |
| | | return bindId; |
| | | } |
| | | |
| | | public void setBindId(String bindId) { |
| | | this.bindId = bindId; |
| | | } |
| | | |
| | | @Override |
| | | public String toString() { |
| | | return "OrderTaxi{" + |
| | | "id=" + id + |
| | | ", type=" + type + |
| | | ", crossCityOrderId=" + crossCityOrderId + |
| | | ", place=" + place + |
| | | ", userId=" + userId + |
| | | ", driverId=" + driverId + |
| | | ", carId=" + carId + |
| | | ", orderNum='" + orderNum + '\'' + |
| | | ", placementLon=" + placementLon + |
| | | ", placementLat=" + placementLat + |
| | | ", placementAddress='" + placementAddress + '\'' + |
| | | ", startLon=" + startLon + |
| | | ", startLat=" + startLat + |
| | | ", startAddress='" + startAddress + '\'' + |
| | | ", endLon=" + endLon + |
| | | ", endLat=" + endLat + |
| | | ", endAddress='" + endAddress + '\'' + |
| | | ", boardingLon=" + boardingLon + |
| | | ", boardingLat=" + boardingLat + |
| | | ", boardingAddress='" + boardingAddress + '\'' + |
| | | ", boardingTime=" + boardingTime + |
| | | ", getoffLon=" + getoffLon + |
| | | ", getoffLat=" + getoffLat + |
| | | ", getoffAddress='" + getoffAddress + '\'' + |
| | | ", getoffTime=" + getoffTime + |
| | | ", mileage=" + mileage + |
| | | ", payManner=" + payManner + |
| | | ", payType=" + payType + |
| | | ", orderMoney=" + orderMoney + |
| | | ", travelMoney=" + travelMoney + |
| | | ", parkMoney=" + parkMoney + |
| | | ", roadTollMoney=" + roadTollMoney + |
| | | ", tipMoney=" + tipMoney + |
| | | ", redPacketMoney=" + redPacketMoney + |
| | | ", couponMoney=" + couponMoney + |
| | | ", redPacketId=" + redPacketId + |
| | | ", couponId=" + couponId + |
| | | ", discount=" + discount + |
| | | ", discountMoney=" + discountMoney + |
| | | ", activityId=" + activityId + |
| | | ", companyId=" + companyId + |
| | | ", payMoney=" + payMoney + |
| | | ", substitute=" + substitute + |
| | | ", passengers='" + passengers + '\'' + |
| | | ", passengersPhone='" + passengersPhone + '\'' + |
| | | ", state=" + state + |
| | | ", insertTime=" + insertTime + |
| | | ", travelTime=" + travelTime + |
| | | ", snatchOrderTime=" + snatchOrderTime + |
| | | ", setOutTime=" + setOutTime + |
| | | ", arriveTime=" + arriveTime + |
| | | ", startServiceTime=" + startServiceTime + |
| | | ", endServiceTime=" + endServiceTime + |
| | | ", orderType=" + orderType + |
| | | ", orderSource=" + orderSource + |
| | | ", invoiceId=" + invoiceId + |
| | | ", isReassign=" + isReassign + |
| | | ", reassignNotice=" + reassignNotice + |
| | | ", trackId='" + trackId + '\'' + |
| | | ", isDelete=" + isDelete + |
| | | ", oldState=" + oldState + |
| | | ", telX='" + telX + '\'' + |
| | | ", bindId='" + bindId + '\'' + |
| | | '}'; |
| | | } |
| | | } |
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/PaymentRecord.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Reassign.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Region.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Relation.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Role.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Site.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/SystemNotice.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TransactionDetails.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/User.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/UserInfo.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/VersionManagement.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ICarService.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IDeptService.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IDictService.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IDispatchService.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IDriverService.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IGDInterfaceService.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IIncomeService.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ILineService.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ILineShiftService.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ILineSiteService.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ILoginLogService.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IMenuService.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/INoticeService.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOperationLogService.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOrderCancelService.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOrderCrossCityService.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOrderPositionService.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOrderPrivateCarService.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOrderTaxiService.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IPaymentRecordService.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IReassignService.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IRelationService.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IRoleService.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ISiteService.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ISystemNoticeService.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITransactionDetailsService.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IUserInfoService.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IUserService.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IVersionManagementService.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/CarServiceImpl.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DeptServiceImpl.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DictServiceImpl.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DispatchServiceImpl.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/GDInterfaceServiceImpl.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/IncomeServiceImpl.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/LineServiceImpl.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/LineShiftServiceImpl.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/LineSiteServiceImpl.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/LoginLogServiceImpl.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/MenuServiceImpl.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/NoticeServiceImpl.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OperationLogServiceImpl.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderCancelServiceImpl.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderCrossCityServiceImpl.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderPositionServiceImpl.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderPrivateCarServiceImpl.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderTaxiServiceImpl.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/PaymentRecordServiceImpl.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/RelationServiceImpl.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/RoleServiceImpl.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/SiteServiceImpl.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/SystemNoticeServiceImpl.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TransactionDetailsServiceImpl.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserServiceImpl.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/VersionManagementServiceImpl.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/transfer/ManagerUser.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/transfer/ReqAddManager.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/transfer/ReqEditManager.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/transfer/UserDto.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ALiApiUtil.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ALiSendSms.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ChinaMobileUtil.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/DateUtil.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDFalconUtil.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapElectricFenceUtil.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapGeocodingUtil.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/HttpClientUtil.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ICBCPayUtil.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/JGPushUtil.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/JuHeUtil.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/MD5AndKL.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PayMoneyUtil.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushMinistryOfTransportUtil.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/RedisUtil.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ResultUtil.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/SystemException.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/UUIDUtil.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/WeChatUtil.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/BaseWarpper.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/CarInfoWarpper.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/CarListWarpper.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/DeptWarpper.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/DictWarpper.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/LineShiftWarpper.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/LineSiteWarpper.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/LocationWarpper.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/LogWarpper.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/LoginWarpper.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/MenuWarpper.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/NoticeWrapper.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/OrderCrossCityWarpper.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/OrderInfoWarpper.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/OrderListWarpper.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/ReassignInfoWarpper.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/ReassignListWarpper.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/RoleWarpper.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/RosterWarpper.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/SiteWarpper.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/UserWarpper.java
DispatchOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/VersionManagementWarpper.java
DispatchOKTravel/guns-admin/src/main/resources/META-INF/spring-devtools.properties
DispatchOKTravel/guns-admin/src/main/resources/application.yml
DispatchOKTravel/guns-admin/src/main/resources/ehcache.xml
DispatchOKTravel/guns-admin/src/main/resources/logback-spring.xml
DispatchOKTravel/guns-admin/src/main/webapp/WEB-INF/view/404.html
DispatchOKTravel/guns-admin/src/main/webapp/WEB-INF/view/blackboard.html
DispatchOKTravel/guns-admin/src/main/webapp/WEB-INF/view/code/code.html
DispatchOKTravel/guns-admin/src/main/webapp/WEB-INF/view/common/_container.html
DispatchOKTravel/guns-admin/src/main/webapp/WEB-INF/view/common/_right.html
DispatchOKTravel/guns-admin/src/main/webapp/WEB-INF/view/common/_tab.html
DispatchOKTravel/guns-admin/src/main/webapp/WEB-INF/view/common/_theme.html
DispatchOKTravel/guns-admin/src/main/webapp/WEB-INF/view/common/tags/NameCon.tag
DispatchOKTravel/guns-admin/src/main/webapp/WEB-INF/view/common/tags/SelectCon.tag
DispatchOKTravel/guns-admin/src/main/webapp/WEB-INF/view/common/tags/TimeCon.tag
DispatchOKTravel/guns-admin/src/main/webapp/WEB-INF/view/common/tags/avatar.tag
DispatchOKTravel/guns-admin/src/main/webapp/WEB-INF/view/common/tags/button.tag
DispatchOKTravel/guns-admin/src/main/webapp/WEB-INF/view/common/tags/input.tag
DispatchOKTravel/guns-admin/src/main/webapp/WEB-INF/view/common/tags/select.tag
DispatchOKTravel/guns-admin/src/main/webapp/WEB-INF/view/common/tags/table.tag
DispatchOKTravel/guns-admin/src/main/webapp/WEB-INF/view/common/tags/tag_tips
DispatchOKTravel/guns-admin/src/main/webapp/WEB-INF/view/index.html
DispatchOKTravel/guns-admin/src/main/webapp/WEB-INF/view/login.html
DispatchOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/code/code.html
DispatchOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/dept/dept.html
DispatchOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/dept/dept_add.html
DispatchOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/dept/dept_edit.html
DispatchOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/dict/dict.html
DispatchOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/dict/dict_add.html
DispatchOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/dict/dict_edit.html
DispatchOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/log/log.html
DispatchOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/log/login_log.html
DispatchOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/menu/menu.html
DispatchOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/menu/menu_add.html
DispatchOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/menu/menu_edit.html
DispatchOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/notice/notice.html
DispatchOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/notice/notice_add.html
DispatchOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/notice/notice_edit.html
DispatchOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/role/role.html
DispatchOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/role/role_add.html
DispatchOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/role/role_assign.html
DispatchOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/role/role_edit.html
DispatchOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/user/user.html
DispatchOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/user/user_add.html
DispatchOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/user/user_chpwd.html
DispatchOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/user/user_edit.html
DispatchOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/user/user_roleassign.html
DispatchOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/user/user_view.html
DispatchOKTravel/guns-admin/src/main/webapp/static/css/_fstyle.css
DispatchOKTravel/guns-admin/src/main/webapp/static/css/bootstrap-rtl.css
DispatchOKTravel/guns-admin/src/main/webapp/static/css/bootstrap.min.css
DispatchOKTravel/guns-admin/src/main/webapp/static/css/font-awesome.css
DispatchOKTravel/guns-admin/src/main/webapp/static/css/font-awesome.min.css
DispatchOKTravel/guns-admin/src/main/webapp/static/css/login.css
DispatchOKTravel/guns-admin/src/main/webapp/static/css/patterns/header-profile-skin-1.png
DispatchOKTravel/guns-admin/src/main/webapp/static/css/patterns/header-profile-skin-3.png
DispatchOKTravel/guns-admin/src/main/webapp/static/css/patterns/header-profile.png
DispatchOKTravel/guns-admin/src/main/webapp/static/css/patterns/shattered.png
DispatchOKTravel/guns-admin/src/main/webapp/static/css/plugins/bootstrap-table/bootstrap-table.min.css
DispatchOKTravel/guns-admin/src/main/webapp/static/css/plugins/bootstrap-treetable/bootstrap-treetable.css
DispatchOKTravel/guns-admin/src/main/webapp/static/css/plugins/chosen/chosen-sprite.png
DispatchOKTravel/guns-admin/src/main/webapp/static/css/plugins/chosen/chosen-sprite@2x.png
DispatchOKTravel/guns-admin/src/main/webapp/static/css/plugins/chosen/chosen.css
DispatchOKTravel/guns-admin/src/main/webapp/static/css/plugins/iCheck/custom.css
DispatchOKTravel/guns-admin/src/main/webapp/static/css/plugins/iCheck/green.png
DispatchOKTravel/guns-admin/src/main/webapp/static/css/plugins/iCheck/green@2x.png
DispatchOKTravel/guns-admin/src/main/webapp/static/css/plugins/images/sprite-skin-flat.png
DispatchOKTravel/guns-admin/src/main/webapp/static/css/plugins/validate/bootstrapValidator.min.css
DispatchOKTravel/guns-admin/src/main/webapp/static/css/plugins/webuploader/webuploader.css
DispatchOKTravel/guns-admin/src/main/webapp/static/css/plugins/ztree/demo.css
DispatchOKTravel/guns-admin/src/main/webapp/static/css/plugins/ztree/img/diy/1_close.png
DispatchOKTravel/guns-admin/src/main/webapp/static/css/plugins/ztree/img/diy/1_open.png
DispatchOKTravel/guns-admin/src/main/webapp/static/css/plugins/ztree/img/diy/2.png
DispatchOKTravel/guns-admin/src/main/webapp/static/css/plugins/ztree/img/diy/3.png
DispatchOKTravel/guns-admin/src/main/webapp/static/css/plugins/ztree/img/diy/4.png
DispatchOKTravel/guns-admin/src/main/webapp/static/css/plugins/ztree/img/diy/5.png
DispatchOKTravel/guns-admin/src/main/webapp/static/css/plugins/ztree/img/diy/6.png
DispatchOKTravel/guns-admin/src/main/webapp/static/css/plugins/ztree/img/diy/7.png
DispatchOKTravel/guns-admin/src/main/webapp/static/css/plugins/ztree/img/diy/8.png
DispatchOKTravel/guns-admin/src/main/webapp/static/css/plugins/ztree/img/diy/9.png
DispatchOKTravel/guns-admin/src/main/webapp/static/css/plugins/ztree/img/line_conn.gif
DispatchOKTravel/guns-admin/src/main/webapp/static/css/plugins/ztree/img/loading.gif
DispatchOKTravel/guns-admin/src/main/webapp/static/css/plugins/ztree/img/zTreeStandard.gif
DispatchOKTravel/guns-admin/src/main/webapp/static/css/plugins/ztree/img/zTreeStandard.png
DispatchOKTravel/guns-admin/src/main/webapp/static/css/plugins/ztree/zTreeStyle.css
DispatchOKTravel/guns-admin/src/main/webapp/static/css/style.css
DispatchOKTravel/guns-admin/src/main/webapp/static/favicon.ico
DispatchOKTravel/guns-admin/src/main/webapp/static/fonts/FontAwesome.otf
DispatchOKTravel/guns-admin/src/main/webapp/static/fonts/fontawesome-webfont.eot
DispatchOKTravel/guns-admin/src/main/webapp/static/fonts/fontawesome-webfont.svg
DispatchOKTravel/guns-admin/src/main/webapp/static/fonts/fontawesome-webfont.ttf
DispatchOKTravel/guns-admin/src/main/webapp/static/fonts/fontawesome-webfont.woff
DispatchOKTravel/guns-admin/src/main/webapp/static/fonts/fontawesome-webfont.woff2
DispatchOKTravel/guns-admin/src/main/webapp/static/fonts/glyphicons-halflings-regular.eot
DispatchOKTravel/guns-admin/src/main/webapp/static/fonts/glyphicons-halflings-regular.svg
DispatchOKTravel/guns-admin/src/main/webapp/static/fonts/glyphicons-halflings-regular.ttf
DispatchOKTravel/guns-admin/src/main/webapp/static/fonts/glyphicons-halflings-regular.woff
DispatchOKTravel/guns-admin/src/main/webapp/static/fonts/glyphicons-halflings-regular.woff2
DispatchOKTravel/guns-admin/src/main/webapp/static/img/bg.png
DispatchOKTravel/guns-admin/src/main/webapp/static/img/boy.gif
DispatchOKTravel/guns-admin/src/main/webapp/static/img/girl.gif
DispatchOKTravel/guns-admin/src/main/webapp/static/img/icons.png
DispatchOKTravel/guns-admin/src/main/webapp/static/img/loading-upload.gif
DispatchOKTravel/guns-admin/src/main/webapp/static/img/locked.png
DispatchOKTravel/guns-admin/src/main/webapp/static/img/user.png
DispatchOKTravel/guns-admin/src/main/webapp/static/js/bootstrap.min.js
DispatchOKTravel/guns-admin/src/main/webapp/static/js/common/DateUtils.js
DispatchOKTravel/guns-admin/src/main/webapp/static/js/common/Feng.js
DispatchOKTravel/guns-admin/src/main/webapp/static/js/common/ajax-object.js
DispatchOKTravel/guns-admin/src/main/webapp/static/js/common/bootstrap-table-object.js
DispatchOKTravel/guns-admin/src/main/webapp/static/js/common/select-list-object.js
DispatchOKTravel/guns-admin/src/main/webapp/static/js/common/tree-table-object.js
DispatchOKTravel/guns-admin/src/main/webapp/static/js/common/web-upload-object.js
DispatchOKTravel/guns-admin/src/main/webapp/static/js/common/ztree-object.js
DispatchOKTravel/guns-admin/src/main/webapp/static/js/contabs.js
DispatchOKTravel/guns-admin/src/main/webapp/static/js/content.js
DispatchOKTravel/guns-admin/src/main/webapp/static/js/hplus.js
DispatchOKTravel/guns-admin/src/main/webapp/static/js/jquery.min.js
DispatchOKTravel/guns-admin/src/main/webapp/static/js/jquery.min.map
DispatchOKTravel/guns-admin/src/main/webapp/static/js/plugins/bootstrap-table/bootstrap-table-mobile.min.js
DispatchOKTravel/guns-admin/src/main/webapp/static/js/plugins/bootstrap-table/bootstrap-table.min.js
DispatchOKTravel/guns-admin/src/main/webapp/static/js/plugins/bootstrap-table/locale/bootstrap-table-zh-CN.js
DispatchOKTravel/guns-admin/src/main/webapp/static/js/plugins/bootstrap-table/locale/bootstrap-table-zh-CN.min.js
DispatchOKTravel/guns-admin/src/main/webapp/static/js/plugins/bootstrap-treetable/bootstrap-treetable.js
DispatchOKTravel/guns-admin/src/main/webapp/static/js/plugins/chosen/chosen.jquery.js
DispatchOKTravel/guns-admin/src/main/webapp/static/js/plugins/iCheck/icheck.min.js
DispatchOKTravel/guns-admin/src/main/webapp/static/js/plugins/laydate/laydate.js
DispatchOKTravel/guns-admin/src/main/webapp/static/js/plugins/laydate/theme/default/font/iconfont.eot
DispatchOKTravel/guns-admin/src/main/webapp/static/js/plugins/laydate/theme/default/font/iconfont.svg
DispatchOKTravel/guns-admin/src/main/webapp/static/js/plugins/laydate/theme/default/font/iconfont.ttf
DispatchOKTravel/guns-admin/src/main/webapp/static/js/plugins/laydate/theme/default/font/iconfont.woff
DispatchOKTravel/guns-admin/src/main/webapp/static/js/plugins/laydate/theme/default/laydate.css
DispatchOKTravel/guns-admin/src/main/webapp/static/js/plugins/layer/layer.js
DispatchOKTravel/guns-admin/src/main/webapp/static/js/plugins/layer/mobile/layer.js
DispatchOKTravel/guns-admin/src/main/webapp/static/js/plugins/layer/mobile/need/layer.css
DispatchOKTravel/guns-admin/src/main/webapp/static/js/plugins/layer/theme/default/icon-ext.png
DispatchOKTravel/guns-admin/src/main/webapp/static/js/plugins/layer/theme/default/icon.png
DispatchOKTravel/guns-admin/src/main/webapp/static/js/plugins/layer/theme/default/layer.css
DispatchOKTravel/guns-admin/src/main/webapp/static/js/plugins/layer/theme/default/loading-0.gif
DispatchOKTravel/guns-admin/src/main/webapp/static/js/plugins/layer/theme/default/loading-1.gif
DispatchOKTravel/guns-admin/src/main/webapp/static/js/plugins/layer/theme/default/loading-2.gif
DispatchOKTravel/guns-admin/src/main/webapp/static/js/plugins/metisMenu/jquery.metisMenu.js
DispatchOKTravel/guns-admin/src/main/webapp/static/js/plugins/pace/pace.min.js
DispatchOKTravel/guns-admin/src/main/webapp/static/js/plugins/slimscroll/jquery.slimscroll.min.js
DispatchOKTravel/guns-admin/src/main/webapp/static/js/plugins/validate/additional-methods.min.js
DispatchOKTravel/guns-admin/src/main/webapp/static/js/plugins/validate/bootstrapValidator.min.js
DispatchOKTravel/guns-admin/src/main/webapp/static/js/plugins/validate/zh_CN.js
DispatchOKTravel/guns-admin/src/main/webapp/static/js/plugins/wangEditor/wangEditor.js
DispatchOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/Uploader.swf
DispatchOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/webuploader.css
DispatchOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/webuploader.custom.js
DispatchOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/webuploader.custom.min.js
DispatchOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/webuploader.fis.js
DispatchOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/webuploader.flashonly.js
DispatchOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/webuploader.flashonly.min.js
DispatchOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/webuploader.html5only.js
DispatchOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/webuploader.html5only.min.js
DispatchOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/webuploader.js
DispatchOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/webuploader.min.js
DispatchOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/webuploader.noimage.js
DispatchOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/webuploader.noimage.min.js
DispatchOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/webuploader.nolog.js
DispatchOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/webuploader.nolog.min.js
DispatchOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/webuploader.withoutimage.js
DispatchOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/webuploader.withoutimage.min.js
DispatchOKTravel/guns-admin/src/main/webapp/static/js/plugins/ztree/jquery.ztree.all.min.js
DispatchOKTravel/guns-admin/src/main/webapp/static/modular/code/gen.js
DispatchOKTravel/guns-admin/src/main/webapp/static/modular/flowable/expense/expense.js
DispatchOKTravel/guns-admin/src/main/webapp/static/modular/flowable/expense/expense_info.js
DispatchOKTravel/guns-admin/src/main/webapp/static/modular/flowable/process/process.js
DispatchOKTravel/guns-admin/src/main/webapp/static/modular/flowable/process/process_info.js
DispatchOKTravel/guns-admin/src/main/webapp/static/modular/system/code/code.js
DispatchOKTravel/guns-admin/src/main/webapp/static/modular/system/dept/dept.js
DispatchOKTravel/guns-admin/src/main/webapp/static/modular/system/dept/dept_info.js
DispatchOKTravel/guns-admin/src/main/webapp/static/modular/system/dict/dict.js
DispatchOKTravel/guns-admin/src/main/webapp/static/modular/system/dict/dict_info.js
DispatchOKTravel/guns-admin/src/main/webapp/static/modular/system/log/log.js
DispatchOKTravel/guns-admin/src/main/webapp/static/modular/system/log/login_log.js
DispatchOKTravel/guns-admin/src/main/webapp/static/modular/system/menu/menu.js
DispatchOKTravel/guns-admin/src/main/webapp/static/modular/system/menu/menu_info.js
DispatchOKTravel/guns-admin/src/main/webapp/static/modular/system/notice/notice.js
DispatchOKTravel/guns-admin/src/main/webapp/static/modular/system/notice/notice_info.js
DispatchOKTravel/guns-admin/src/main/webapp/static/modular/system/role/role.js
DispatchOKTravel/guns-admin/src/main/webapp/static/modular/system/role/role_info.js
DispatchOKTravel/guns-admin/src/main/webapp/static/modular/system/user/user.js
DispatchOKTravel/guns-admin/src/main/webapp/static/modular/system/user/user_info.js
DispatchOKTravel/guns-admin/src/test/java/com/stylefeng/guns/GunsApplicationTest.java
DispatchOKTravel/guns-core/pom.xml
DispatchOKTravel/guns-core/src/main/java/com/stylefeng/guns/core/CoreFlag.java
DispatchOKTravel/guns-core/src/main/java/com/stylefeng/guns/core/aop/BaseControllerExceptionHandler.java
DispatchOKTravel/guns-core/src/main/java/com/stylefeng/guns/core/base/controller/BaseController.java
DispatchOKTravel/guns-core/src/main/java/com/stylefeng/guns/core/base/controller/GlobalController.java
DispatchOKTravel/guns-core/src/main/java/com/stylefeng/guns/core/base/controller/GunsErrorView.java
DispatchOKTravel/guns-core/src/main/java/com/stylefeng/guns/core/base/tips/ErrorTip.java
DispatchOKTravel/guns-core/src/main/java/com/stylefeng/guns/core/base/tips/SuccessTip.java
DispatchOKTravel/guns-core/src/main/java/com/stylefeng/guns/core/base/tips/Tip.java
DispatchOKTravel/guns-core/src/main/java/com/stylefeng/guns/core/base/warpper/BaseControllerWarpper.java
DispatchOKTravel/guns-core/src/main/java/com/stylefeng/guns/core/cache/BaseCacheFactory.java
DispatchOKTravel/guns-core/src/main/java/com/stylefeng/guns/core/cache/CacheKit.java
DispatchOKTravel/guns-core/src/main/java/com/stylefeng/guns/core/cache/EhcacheFactory.java
DispatchOKTravel/guns-core/src/main/java/com/stylefeng/guns/core/cache/ICache.java
DispatchOKTravel/guns-core/src/main/java/com/stylefeng/guns/core/cache/ILoader.java
DispatchOKTravel/guns-core/src/main/java/com/stylefeng/guns/core/config/DefaultFastjsonConfig.java
DispatchOKTravel/guns-core/src/main/java/com/stylefeng/guns/core/config/DefaultMultiConfig.java
DispatchOKTravel/guns-core/src/main/java/com/stylefeng/guns/core/config/DefaultProperties.java
DispatchOKTravel/guns-core/src/main/java/com/stylefeng/guns/core/config/DefaultWebConfig.java
DispatchOKTravel/guns-core/src/main/java/com/stylefeng/guns/core/config/properties/DruidProperties.java
DispatchOKTravel/guns-core/src/main/java/com/stylefeng/guns/core/config/properties/MutiDataSourceProperties.java
DispatchOKTravel/guns-core/src/main/java/com/stylefeng/guns/core/constant/IsMenu.java
DispatchOKTravel/guns-core/src/main/java/com/stylefeng/guns/core/datascope/DataScope.java
DispatchOKTravel/guns-core/src/main/java/com/stylefeng/guns/core/datascope/DataScopeInterceptor.java
DispatchOKTravel/guns-core/src/main/java/com/stylefeng/guns/core/db/Db.java
DispatchOKTravel/guns-core/src/main/java/com/stylefeng/guns/core/exception/GunsException.java
DispatchOKTravel/guns-core/src/main/java/com/stylefeng/guns/core/exception/GunsExceptionEnum.java
DispatchOKTravel/guns-core/src/main/java/com/stylefeng/guns/core/exception/ServiceExceptionEnum.java
DispatchOKTravel/guns-core/src/main/java/com/stylefeng/guns/core/mutidatasource/DataSourceContextHolder.java
DispatchOKTravel/guns-core/src/main/java/com/stylefeng/guns/core/mutidatasource/DynamicDataSource.java
DispatchOKTravel/guns-core/src/main/java/com/stylefeng/guns/core/mutidatasource/annotion/DataSource.java
DispatchOKTravel/guns-core/src/main/java/com/stylefeng/guns/core/mutidatasource/aop/MultiSourceExAop.java
DispatchOKTravel/guns-core/src/main/java/com/stylefeng/guns/core/node/MenuNode.java
DispatchOKTravel/guns-core/src/main/java/com/stylefeng/guns/core/node/ZTreeNode.java
DispatchOKTravel/guns-core/src/main/java/com/stylefeng/guns/core/page/PageBT.java
DispatchOKTravel/guns-core/src/main/java/com/stylefeng/guns/core/page/PageInfoBT.java
DispatchOKTravel/guns-core/src/main/java/com/stylefeng/guns/core/qr/ImgQrTool.java
DispatchOKTravel/guns-core/src/main/java/com/stylefeng/guns/core/qr/MatrixToImageConfig.java
DispatchOKTravel/guns-core/src/main/java/com/stylefeng/guns/core/qr/MatrixToImageWriter.java
DispatchOKTravel/guns-core/src/main/java/com/stylefeng/guns/core/qr/QrImage.java
DispatchOKTravel/guns-core/src/main/java/com/stylefeng/guns/core/support/BasicType.java
DispatchOKTravel/guns-core/src/main/java/com/stylefeng/guns/core/support/BeanKit.java
DispatchOKTravel/guns-core/src/main/java/com/stylefeng/guns/core/support/ClassKit.java
DispatchOKTravel/guns-core/src/main/java/com/stylefeng/guns/core/support/CollectionKit.java
DispatchOKTravel/guns-core/src/main/java/com/stylefeng/guns/core/support/DateTime.java
DispatchOKTravel/guns-core/src/main/java/com/stylefeng/guns/core/support/DateTimeKit.java
DispatchOKTravel/guns-core/src/main/java/com/stylefeng/guns/core/support/HexKit.java
DispatchOKTravel/guns-core/src/main/java/com/stylefeng/guns/core/support/HttpKit.java
DispatchOKTravel/guns-core/src/main/java/com/stylefeng/guns/core/support/ObjectKit.java
DispatchOKTravel/guns-core/src/main/java/com/stylefeng/guns/core/support/PageKit.java
DispatchOKTravel/guns-core/src/main/java/com/stylefeng/guns/core/support/StrKit.java
DispatchOKTravel/guns-core/src/main/java/com/stylefeng/guns/core/support/WafKit.java
DispatchOKTravel/guns-core/src/main/java/com/stylefeng/guns/core/support/WafRequestWrapper.java
DispatchOKTravel/guns-core/src/main/java/com/stylefeng/guns/core/support/exception/ToolBoxException.java
DispatchOKTravel/guns-core/src/main/java/com/stylefeng/guns/core/util/Convert.java
DispatchOKTravel/guns-core/src/main/java/com/stylefeng/guns/core/util/DateUtil.java
DispatchOKTravel/guns-core/src/main/java/com/stylefeng/guns/core/util/FileUtil.java
DispatchOKTravel/guns-core/src/main/java/com/stylefeng/guns/core/util/HttpSessionHolder.java
DispatchOKTravel/guns-core/src/main/java/com/stylefeng/guns/core/util/IdGenerator.java
DispatchOKTravel/guns-core/src/main/java/com/stylefeng/guns/core/util/MD5Util.java
DispatchOKTravel/guns-core/src/main/java/com/stylefeng/guns/core/util/NumUtil.java
DispatchOKTravel/guns-core/src/main/java/com/stylefeng/guns/core/util/PingYinUtil.java
DispatchOKTravel/guns-core/src/main/java/com/stylefeng/guns/core/util/RenderUtil.java
DispatchOKTravel/guns-core/src/main/java/com/stylefeng/guns/core/util/ResKit.java
DispatchOKTravel/guns-core/src/main/java/com/stylefeng/guns/core/util/SimpleContrast.java
DispatchOKTravel/guns-core/src/main/java/com/stylefeng/guns/core/util/SpringContextHolder.java
DispatchOKTravel/guns-core/src/main/java/com/stylefeng/guns/core/util/SqlUtil.java
DispatchOKTravel/guns-core/src/main/java/com/stylefeng/guns/core/util/ToolUtil.java
DispatchOKTravel/guns-core/src/main/java/com/stylefeng/guns/core/xss/XssFilter.java
DispatchOKTravel/guns-core/src/main/java/com/stylefeng/guns/core/xss/XssHttpServletRequestWrapper.java
DispatchOKTravel/guns-core/src/main/resources/META-INF/spring.factories
DispatchOKTravel/guns-core/src/main/resources/default-config.properties
DispatchOKTravel/guns-generator/pom.xml
DispatchOKTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/action/GunsCodeGenerator.java
DispatchOKTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/action/config/AbstractGeneratorConfig.java
DispatchOKTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/action/config/GunsGeneratorConfig.java
DispatchOKTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/action/config/WebGeneratorConfig.java
DispatchOKTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/action/model/GenQo.java
DispatchOKTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/SimpleTemplateEngine.java
DispatchOKTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/base/AbstractTemplateEngine.java
DispatchOKTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/base/GunsTemplateEngine.java
DispatchOKTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/config/ContextConfig.java
DispatchOKTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/config/ControllerConfig.java
DispatchOKTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/config/DaoConfig.java
DispatchOKTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/config/Menu.java
DispatchOKTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/config/PageConfig.java
DispatchOKTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/config/ServiceConfig.java
DispatchOKTravel/guns-generator/src/main/java/com/stylefeng/guns/generator/engine/config/SqlConfig.java
DispatchOKTravel/guns-generator/src/main/resources/gunsTemplate/advanced/Controller.java.btl
DispatchOKTravel/guns-generator/src/main/resources/gunsTemplate/advanced/menu_sql.sql.btl
DispatchOKTravel/guns-generator/src/main/resources/gunsTemplate/advanced/page.html.btl
DispatchOKTravel/guns-generator/src/main/resources/gunsTemplate/advanced/page.js.btl
DispatchOKTravel/guns-generator/src/main/resources/gunsTemplate/advanced/page_add.html.btl
DispatchOKTravel/guns-generator/src/main/resources/gunsTemplate/advanced/page_edit.html.btl
DispatchOKTravel/guns-generator/src/main/resources/gunsTemplate/advanced/page_info.js.btl
DispatchOKTravel/guns-rest/db/guns_rest.sql
DispatchOKTravel/guns-rest/pom.xml
DispatchOKTravel/guns-rest/src/main/java/com/stylefeng/guns/rest/GunsRestApplication.java
DispatchOKTravel/guns-rest/src/main/java/com/stylefeng/guns/rest/GunsRestServletInitializer.java
DispatchOKTravel/guns-rest/src/main/java/com/stylefeng/guns/rest/common/SimpleObject.java
DispatchOKTravel/guns-rest/src/main/java/com/stylefeng/guns/rest/common/aop/GlobalExceptionHandler.java
DispatchOKTravel/guns-rest/src/main/java/com/stylefeng/guns/rest/common/exception/BizExceptionEnum.java
DispatchOKTravel/guns-rest/src/main/java/com/stylefeng/guns/rest/common/persistence/dao/UserMapper.java
DispatchOKTravel/guns-rest/src/main/java/com/stylefeng/guns/rest/common/persistence/dao/mapping/UserMapper.xml
DispatchOKTravel/guns-rest/src/main/java/com/stylefeng/guns/rest/common/persistence/model/User.java
DispatchOKTravel/guns-rest/src/main/java/com/stylefeng/guns/rest/config/MessageConverConfig.java
DispatchOKTravel/guns-rest/src/main/java/com/stylefeng/guns/rest/config/MybatisPlusConfig.java
DispatchOKTravel/guns-rest/src/main/java/com/stylefeng/guns/rest/config/WebConfig.java
DispatchOKTravel/guns-rest/src/main/java/com/stylefeng/guns/rest/config/properties/JwtProperties.java
DispatchOKTravel/guns-rest/src/main/java/com/stylefeng/guns/rest/config/properties/RestProperties.java
DispatchOKTravel/guns-rest/src/main/java/com/stylefeng/guns/rest/modular/auth/controller/AuthController.java
DispatchOKTravel/guns-rest/src/main/java/com/stylefeng/guns/rest/modular/auth/controller/dto/AuthRequest.java
DispatchOKTravel/guns-rest/src/main/java/com/stylefeng/guns/rest/modular/auth/controller/dto/AuthResponse.java
DispatchOKTravel/guns-rest/src/main/java/com/stylefeng/guns/rest/modular/auth/converter/BaseTransferEntity.java
DispatchOKTravel/guns-rest/src/main/java/com/stylefeng/guns/rest/modular/auth/converter/WithSignMessageConverter.java
DispatchOKTravel/guns-rest/src/main/java/com/stylefeng/guns/rest/modular/auth/filter/AuthFilter.java
DispatchOKTravel/guns-rest/src/main/java/com/stylefeng/guns/rest/modular/auth/security/DataSecurityAction.java
DispatchOKTravel/guns-rest/src/main/java/com/stylefeng/guns/rest/modular/auth/security/impl/Base64SecurityAction.java
DispatchOKTravel/guns-rest/src/main/java/com/stylefeng/guns/rest/modular/auth/util/JwtTokenUtil.java
DispatchOKTravel/guns-rest/src/main/java/com/stylefeng/guns/rest/modular/auth/validator/IReqValidator.java
DispatchOKTravel/guns-rest/src/main/java/com/stylefeng/guns/rest/modular/auth/validator/dto/Credence.java
DispatchOKTravel/guns-rest/src/main/java/com/stylefeng/guns/rest/modular/auth/validator/impl/DbValidator.java
DispatchOKTravel/guns-rest/src/main/java/com/stylefeng/guns/rest/modular/auth/validator/impl/SimpleValidator.java
DispatchOKTravel/guns-rest/src/main/java/com/stylefeng/guns/rest/modular/example/ExampleController.java
DispatchOKTravel/guns-rest/src/main/resources/application.yml
DispatchOKTravel/pom.xml
DriverNTTravel/.idea/compiler.xml
DriverNTTravel/.idea/encodings.xml
DriverNTTravel/.idea/inspectionProfiles/Project_Default.xml
DriverNTTravel/.idea/jarRepositories.xml
DriverNTTravel/.idea/libraries/Maven__antlr_antlr_2_7_7.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__aopalliance_aopalliance_1_0.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__ch_qos_logback_logback_classic_1_2_3.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__ch_qos_logback_logback_core_1_2_3.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__cn_jpush_api_jiguang_common_1_1_3.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__cn_jpush_api_jpush_client_3_3_10.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__com_alibaba_druid_1_1_10.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__com_alibaba_fastjson_1_2_47.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__com_alipay_sdk_alipay_sdk_java_4_8_10_ALL.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__com_aliyun_aliyun_java_sdk_core_4_4_3.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__com_aliyun_aliyun_java_sdk_ecs_4_2_0.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__com_aliyun_aliyun_java_sdk_ram_3_0_0.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__com_aliyun_aliyun_java_sdk_sts_3_0_0.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__com_aliyun_oss_aliyun_sdk_oss_3_8_0.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__com_baomidou_mybatis_plus_2_3.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__com_baomidou_mybatis_plus_core_2_3.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__com_baomidou_mybatis_plus_generate_2_3.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__com_baomidou_mybatis_plus_support_2_3.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__com_baomidou_mybatisplus_spring_boot_starter_1_0_5.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__com_fasterxml_classmate_1_3_4.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_annotations_2_9_0.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_9_5.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_databind_2_9_5.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jdk8_2_9_5.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jsr310_2_9_5.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__com_fasterxml_jackson_module_jackson_module_afterburner_2_9_5.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__com_fasterxml_jackson_module_jackson_module_parameter_names_2_9_5.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__com_github_andrewoma_dexx_dexx_collections_0_2.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__com_github_jsqlparser_jsqlparser_1_1.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__com_github_penggle_kaptcha_2_3_2.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__com_github_vlsi_compactmap_compactmap_1_2_1.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__com_google_code_gson_gson_2_8_5.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__com_google_guava_guava_20_0.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__com_google_inject_guice_4_1_0.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__com_google_protobuf_protobuf_java_2_6_0.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__com_google_zxing_core_3_2_1.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__com_ibeetl_beetl_2_8_5.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__com_jayway_jsonpath_json_path_2_4_0.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__com_jhlabs_filters_2_0_235_1.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__com_netflix_archaius_archaius_core_0_7_6.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__com_netflix_eureka_eureka_client_1_9_3.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__com_netflix_eureka_eureka_core_1_9_3.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__com_netflix_hystrix_hystrix_core_1_5_12.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__com_netflix_hystrix_hystrix_javanica_1_5_12.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__com_netflix_hystrix_hystrix_metrics_event_stream_1_5_12.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__com_netflix_hystrix_hystrix_serialization_1_5_12.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__com_netflix_netflix_commons_netflix_commons_util_0_3_0.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__com_netflix_netflix_commons_netflix_eventbus_0_3_0.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__com_netflix_netflix_commons_netflix_infix_0_3_0.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__com_netflix_netflix_commons_netflix_statistics_0_1_1.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__com_netflix_ribbon_ribbon_2_2_5.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__com_netflix_ribbon_ribbon_core_2_2_5.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__com_netflix_ribbon_ribbon_eureka_2_2_5.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__com_netflix_ribbon_ribbon_httpclient_2_2_5.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__com_netflix_ribbon_ribbon_loadbalancer_2_2_5.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__com_netflix_ribbon_ribbon_transport_2_2_5.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__com_netflix_servo_servo_core_0_12_21.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__com_sun_jersey_contribs_jersey_apache_client4_1_19_1.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__com_sun_jersey_jersey_client_1_19_1.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__com_sun_jersey_jersey_core_1_19_1.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__com_thoughtworks_xstream_xstream_1_4_10.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__com_vaadin_external_google_android_json_0_0_20131108_vaadin1.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__com_zaxxer_HikariCP_2_7_9.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__commons_beanutils_commons_beanutils_1_9_4.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__commons_codec_commons_codec_1_13.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__commons_collections_commons_collections_3_2_1.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__commons_configuration_commons_configuration_1_8.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__commons_jxpath_commons_jxpath_1_3.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__commons_lang_commons_lang_2_4.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__commons_logging_commons_logging_1_1_1.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__dom4j_dom4j_1_6_1.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__io_jsonwebtoken_jjwt_0_9_0.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__io_netty_netty_all_4_1_23_Final.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__io_netty_netty_buffer_4_1_23_Final.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__io_netty_netty_codec_4_1_23_Final.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__io_netty_netty_codec_http_4_1_23_Final.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__io_netty_netty_common_4_1_23_Final.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__io_netty_netty_resolver_4_1_23_Final.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__io_netty_netty_transport_4_1_23_Final.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__io_netty_netty_transport_native_epoll_4_1_23_Final.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__io_netty_netty_transport_native_unix_common_4_1_23_Final.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__io_reactivex_rxjava_1_3_8.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__io_reactivex_rxjava_reactive_streams_1_2_1.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__io_reactivex_rxnetty_0_4_9.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__io_reactivex_rxnetty_contexts_0_4_9.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__io_reactivex_rxnetty_servo_0_4_9.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__io_springfox_springfox_core_2_9_2.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__io_springfox_springfox_schema_2_9_2.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__io_springfox_springfox_spi_2_9_2.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__io_springfox_springfox_spring_web_2_9_2.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__io_springfox_springfox_swagger2_2_9_2.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__io_springfox_springfox_swagger_common_2_9_2.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__io_springfox_springfox_swagger_ui_2_9_2.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__io_swagger_swagger_annotations_1_5_20.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__io_swagger_swagger_models_1_5_20.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__javax_annotation_javax_annotation_api_1_3_2.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__javax_inject_javax_inject_1.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__javax_servlet_javax_servlet_api_3_1_0.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__javax_validation_validation_api_2_0_1_Final.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__javax_ws_rs_jsr311_api_1_1_1.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__javax_xml_bind_jaxb_api_2_3_0.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__javax_xml_stream_stax_api_1_0_2.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__joda_time_joda_time_2_9_9.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__junit_junit_4_12.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__mysql_mysql_connector_java_8_0_11.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__net_bytebuddy_byte_buddy_1_7_11.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__net_bytebuddy_byte_buddy_agent_1_7_11.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__net_minidev_accessors_smart_1_2.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__net_minidev_json_smart_2_3.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__net_sf_ehcache_ehcache_core_2_6_11.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_abego_treelayout_org_abego_treelayout_core_1_0_1.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_antlr_antlr4_annotations_4_2.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_antlr_antlr4_runtime_4_2.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_antlr_antlr_runtime_3_4.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_antlr_stringtemplate_3_2_1.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_apache_commons_commons_lang3_3_7.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_apache_commons_commons_math_2_2.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_apache_commons_commons_pool2_2_5_0.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_apache_httpcomponents_httpclient_4_5_6.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_apache_httpcomponents_httpcore_4_4_10.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_apache_logging_log4j_log4j_api_2_10_0.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_apache_logging_log4j_log4j_to_slf4j_2_10_0.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_apache_shiro_shiro_cache_1_7_0.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_apache_shiro_shiro_config_core_1_7_0.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_apache_shiro_shiro_config_ogdl_1_7_0.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_apache_shiro_shiro_core_1_7_0.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_apache_shiro_shiro_crypto_cipher_1_7_0.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_apache_shiro_shiro_crypto_core_1_7_0.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_apache_shiro_shiro_crypto_hash_1_7_0.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_apache_shiro_shiro_ehcache_1_7_0.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_apache_shiro_shiro_event_1_7_0.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_apache_shiro_shiro_lang_1_7_0.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_apache_shiro_shiro_spring_1_7_0.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_apache_shiro_shiro_web_1_7_0.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_core_8_5_32.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_el_8_5_32.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_websocket_8_5_32.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_apache_velocity_velocity_1_7.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_aspectj_aspectjweaver_1_8_13.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_assertj_assertj_core_3_9_1.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_bouncycastle_bcpkix_jdk15on_1_56.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_bouncycastle_bcprov_jdk15on_1_62.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_codehaus_jettison_jettison_1_1.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_codehaus_woodstox_stax2_api_3_1_4.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_codehaus_woodstox_woodstox_core_asl_4_4_1.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_ehcache_ehcache_3_3_1.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_gavaghan_geodesy_1_1_3.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_3.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_hamcrest_hamcrest_library_1_3.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_hdrhistogram_HdrHistogram_2_1_9.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_hibernate_validator_hibernate_validator_6_0_11_Final.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_ini4j_ini4j_0_5_4.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_jacoco_org_jacoco_agent_runtime_0_8_3.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_jboss_logging_jboss_logging_3_3_2_Final.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_jdom_jdom_1_1.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_mapstruct_mapstruct_1_2_0_Final.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_mockito_mockito_core_2_15_0.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_mybatis_mybatis_3_4_6.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_mybatis_mybatis_spring_1_3_2.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_objenesis_objenesis_2_6.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_ow2_asm_asm_5_0_4.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_owasp_encoder_encoder_1_2_2.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_reactivestreams_reactive_streams_1_0_2.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_skyscreamer_jsonassert_1_5_0.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_slf4j_jul_to_slf4j_1_7_25.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_25.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_springframework_boot_spring_boot_2_0_4_RELEASE.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_springframework_boot_spring_boot_autoconfigure_2_0_4_RELEASE.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_springframework_boot_spring_boot_configuration_processor_2_0_4_RELEASE.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_springframework_boot_spring_boot_devtools_2_0_4_RELEASE.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_2_0_4_RELEASE.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_aop_2_0_4_RELEASE.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_cache_2_0_4_RELEASE.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_jdbc_2_0_4_RELEASE.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_json_2_0_4_RELEASE.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_logging_2_0_4_RELEASE.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_test_2_0_4_RELEASE.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_tomcat_2_0_4_RELEASE.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_validation_2_0_4_RELEASE.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_web_2_0_4_RELEASE.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_2_0_4_RELEASE.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_autoconfigure_2_0_4_RELEASE.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_commons_2_0_1_RELEASE.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_context_2_0_1_RELEASE.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_netflix_archaius_2_0_1_RELEASE.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_netflix_core_2_0_1_RELEASE.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_netflix_eureka_client_2_0_1_RELEASE.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_netflix_ribbon_2_0_1_RELEASE.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_starter_2_0_1_RELEASE.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_starter_netflix_archaius_2_0_1_RELEASE.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_starter_netflix_eureka_client_2_0_1_RELEASE.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_starter_netflix_hystrix_2_0_1_RELEASE.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_starter_netflix_ribbon_2_0_1_RELEASE.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_springframework_plugin_spring_plugin_core_1_2_0_RELEASE.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_springframework_plugin_spring_plugin_metadata_1_2_0_RELEASE.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_springframework_security_spring_security_crypto_5_0_4_RELEASE.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_springframework_security_spring_security_rsa_1_0_5_RELEASE.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_springframework_spring_aop_5_0_5_RELEASE.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_springframework_spring_beans_5_0_5_RELEASE.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_springframework_spring_context_5_0_5_RELEASE.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_springframework_spring_context_support_5_0_5_RELEASE.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_springframework_spring_core_5_0_8_RELEASE.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_springframework_spring_expression_5_0_5_RELEASE.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_springframework_spring_jcl_5_0_5_RELEASE.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_springframework_spring_jdbc_5_0_5_RELEASE.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_springframework_spring_test_5_0_5_RELEASE.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_springframework_spring_tx_5_0_5_RELEASE.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_springframework_spring_web_5_0_5_RELEASE.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_springframework_spring_webmvc_5_0_5_RELEASE.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_xmlunit_xmlunit_core_2_5_1.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__org_yaml_snakeyaml_1_19.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__redis_clients_jedis_2_9_0.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__stax_stax_api_1_0_1.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__xml_apis_xml_apis_1_4_01.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__xmlpull_xmlpull_1_1_3_1.xml (deleted)
DriverNTTravel/.idea/libraries/Maven__xpp3_xpp3_min_1_1_4c.xml (deleted)
DriverNTTravel/.idea/misc.xml
DriverNTTravel/.idea/modules.xml
DriverNTTravel/.idea/vcs.xml
DriverNTTravel/.idea/workspace.xml
DriverNTTravel/guns-admin/guns-admin.iml
DriverNTTravel/guns-admin/pom.xml
DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/GunsApplication.java
DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java
DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/PhoneController.java
DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/LineSiteMapper.xml
DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/model/OrderCrossCity.java
DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/LineSiteServiceImpl.java
DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/model/OrderPrivateCar.java
DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/IOrderPrivateCarService.java
DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TOrderTapeMapper.java
DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TOrderTransferMapper.java
DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TSysFaceDistinguishMapper.java
DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TOrderTransferMapper.xml
DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TSysFaceDistinguishMapper.xml
DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Driver.java
DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/SysReformist.java
DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TOrderTape.java
DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TOrderTransfer.java
DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TSysFaceDistinguish.java
DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IDriverService.java
DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOrderService.java
DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IPhoneService.java
DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITOrderTapeService.java
DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITOrderTransferService.java
DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITSysFaceDistinguishService.java
DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java
DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java
DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/PhoneServiceImpl.java
DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderTapeServiceImpl.java
DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderTransferServiceImpl.java
DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TSysFaceDistinguishServiceImpl.java
DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/CompareFace.java
DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDFalconUtil.java
DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapElectricFenceUtil.java
DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapGeocodingUtil.java
DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java
DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ResultUtil.java
DriverNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java
DriverNTTravel/guns-admin/src/main/resources/application.yml
DriverNTTravel/guns-core/guns-core.iml
DriverNTTravel/guns-generator/guns-generator.iml
EurekaNTTravel/.idea/.gitignore
EurekaNTTravel/.idea/compiler.xml
EurekaNTTravel/.idea/encodings.xml
EurekaNTTravel/.idea/jarRepositories.xml
EurekaNTTravel/.idea/misc.xml
EurekaNTTravel/.idea/vcs.xml
EurekaNTTravel/target/classes/application.yml
ManagementNTTravel/.idea/.gitignore
ManagementNTTravel/.idea/compiler.xml
ManagementNTTravel/.idea/encodings.xml
ManagementNTTravel/.idea/inspectionProfiles/Project_Default.xml
ManagementNTTravel/.idea/jarRepositories.xml
ManagementNTTravel/.idea/misc.xml
ManagementNTTravel/.idea/vcs.xml
ManagementNTTravel/guns-admin/guns-admin.iml
ManagementNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/HomeController.java
ManagementNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/OssUploadUtil.java
ManagementNTTravel/guns-admin/src/main/resources/application.yml
ManagementNTTravel/guns-core/guns-core.iml
ManagementNTTravel/guns-generator/guns-generator.iml
ManagementNTTravel/guns-parent.iml
ManagementNTTravel/guns-rest/guns-rest.iml
UserNTTravel/.idea/compiler.xml
UserNTTravel/.idea/encodings.xml
UserNTTravel/.idea/inspectionProfiles/Project_Default.xml
UserNTTravel/.idea/jarRepositories.xml
UserNTTravel/.idea/libraries/Maven__antlr_antlr_2_7_7.xml (deleted)
UserNTTravel/.idea/libraries/Maven__aopalliance_aopalliance_1_0.xml (deleted)
UserNTTravel/.idea/libraries/Maven__ch_qos_logback_logback_classic_1_2_3.xml (deleted)
UserNTTravel/.idea/libraries/Maven__ch_qos_logback_logback_core_1_2_3.xml (deleted)
UserNTTravel/.idea/libraries/Maven__com_alibaba_druid_1_1_10.xml (deleted)
UserNTTravel/.idea/libraries/Maven__com_alibaba_fastjson_1_2_47.xml (deleted)
UserNTTravel/.idea/libraries/Maven__com_alipay_sdk_alipay_sdk_java_4_8_10_ALL.xml (deleted)
UserNTTravel/.idea/libraries/Maven__com_aliyun_aliyun_java_sdk_core_4_4_3.xml (deleted)
UserNTTravel/.idea/libraries/Maven__com_aliyun_aliyun_java_sdk_ecs_4_2_0.xml (deleted)
UserNTTravel/.idea/libraries/Maven__com_aliyun_aliyun_java_sdk_ram_3_0_0.xml (deleted)
UserNTTravel/.idea/libraries/Maven__com_aliyun_aliyun_java_sdk_sts_3_0_0.xml (deleted)
UserNTTravel/.idea/libraries/Maven__com_aliyun_oss_aliyun_sdk_oss_3_8_0.xml (deleted)
UserNTTravel/.idea/libraries/Maven__com_baomidou_mybatis_plus_2_3.xml (deleted)
UserNTTravel/.idea/libraries/Maven__com_baomidou_mybatis_plus_core_2_3.xml (deleted)
UserNTTravel/.idea/libraries/Maven__com_baomidou_mybatis_plus_generate_2_3.xml (deleted)
UserNTTravel/.idea/libraries/Maven__com_baomidou_mybatis_plus_support_2_3.xml (deleted)
UserNTTravel/.idea/libraries/Maven__com_baomidou_mybatisplus_spring_boot_starter_1_0_5.xml (deleted)
UserNTTravel/.idea/libraries/Maven__com_fasterxml_classmate_1_3_4.xml (deleted)
UserNTTravel/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_annotations_2_9_0.xml (deleted)
UserNTTravel/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_11_3.xml (deleted)
UserNTTravel/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_9_5.xml (deleted)
UserNTTravel/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_databind_2_9_5.xml (deleted)
UserNTTravel/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jdk8_2_9_5.xml (deleted)
UserNTTravel/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jsr310_2_9_5.xml (deleted)
UserNTTravel/.idea/libraries/Maven__com_fasterxml_jackson_module_jackson_module_afterburner_2_9_5.xml (deleted)
UserNTTravel/.idea/libraries/Maven__com_fasterxml_jackson_module_jackson_module_parameter_names_2_9_5.xml (deleted)
UserNTTravel/.idea/libraries/Maven__com_github_andrewoma_dexx_dexx_collections_0_2.xml (deleted)
UserNTTravel/.idea/libraries/Maven__com_github_jsqlparser_jsqlparser_1_1.xml (deleted)
UserNTTravel/.idea/libraries/Maven__com_github_penggle_kaptcha_2_3_2.xml (deleted)
UserNTTravel/.idea/libraries/Maven__com_github_vlsi_compactmap_compactmap_1_2_1.xml (deleted)
UserNTTravel/.idea/libraries/Maven__com_google_code_gson_gson_2_8_5.xml (deleted)
UserNTTravel/.idea/libraries/Maven__com_google_guava_guava_20_0.xml (deleted)
UserNTTravel/.idea/libraries/Maven__com_google_inject_guice_4_1_0.xml (deleted)
UserNTTravel/.idea/libraries/Maven__com_google_protobuf_protobuf_java_2_6_0.xml (deleted)
UserNTTravel/.idea/libraries/Maven__com_google_zxing_core_3_2_1.xml (deleted)
UserNTTravel/.idea/libraries/Maven__com_huaweicloud_esdk_obs_java_3_19_5.xml (deleted)
UserNTTravel/.idea/libraries/Maven__com_ibeetl_beetl_2_8_5.xml (deleted)
UserNTTravel/.idea/libraries/Maven__com_jamesmurty_utils_java_xmlbuilder_1_1.xml (deleted)
UserNTTravel/.idea/libraries/Maven__com_jayway_jsonpath_json_path_2_4_0.xml (deleted)
UserNTTravel/.idea/libraries/Maven__com_jhlabs_filters_2_0_235_1.xml (deleted)
UserNTTravel/.idea/libraries/Maven__com_netflix_archaius_archaius_core_0_7_6.xml (deleted)
UserNTTravel/.idea/libraries/Maven__com_netflix_eureka_eureka_client_1_9_3.xml (deleted)
UserNTTravel/.idea/libraries/Maven__com_netflix_eureka_eureka_core_1_9_3.xml (deleted)
UserNTTravel/.idea/libraries/Maven__com_netflix_hystrix_hystrix_core_1_5_12.xml (deleted)
UserNTTravel/.idea/libraries/Maven__com_netflix_hystrix_hystrix_javanica_1_5_12.xml (deleted)
UserNTTravel/.idea/libraries/Maven__com_netflix_hystrix_hystrix_metrics_event_stream_1_5_12.xml (deleted)
UserNTTravel/.idea/libraries/Maven__com_netflix_hystrix_hystrix_serialization_1_5_12.xml (deleted)
UserNTTravel/.idea/libraries/Maven__com_netflix_netflix_commons_netflix_commons_util_0_3_0.xml (deleted)
UserNTTravel/.idea/libraries/Maven__com_netflix_netflix_commons_netflix_eventbus_0_3_0.xml (deleted)
UserNTTravel/.idea/libraries/Maven__com_netflix_netflix_commons_netflix_infix_0_3_0.xml (deleted)
UserNTTravel/.idea/libraries/Maven__com_netflix_netflix_commons_netflix_statistics_0_1_1.xml (deleted)
UserNTTravel/.idea/libraries/Maven__com_netflix_ribbon_ribbon_2_2_5.xml (deleted)
UserNTTravel/.idea/libraries/Maven__com_netflix_ribbon_ribbon_core_2_2_5.xml (deleted)
UserNTTravel/.idea/libraries/Maven__com_netflix_ribbon_ribbon_eureka_2_2_5.xml (deleted)
UserNTTravel/.idea/libraries/Maven__com_netflix_ribbon_ribbon_httpclient_2_2_5.xml (deleted)
UserNTTravel/.idea/libraries/Maven__com_netflix_ribbon_ribbon_loadbalancer_2_2_5.xml (deleted)
UserNTTravel/.idea/libraries/Maven__com_netflix_ribbon_ribbon_transport_2_2_5.xml (deleted)
UserNTTravel/.idea/libraries/Maven__com_netflix_servo_servo_core_0_12_21.xml (deleted)
UserNTTravel/.idea/libraries/Maven__com_squareup_okhttp3_okhttp_3_8_1.xml (deleted)
UserNTTravel/.idea/libraries/Maven__com_squareup_okio_okio_1_14_0.xml (deleted)
UserNTTravel/.idea/libraries/Maven__com_sun_jersey_contribs_jersey_apache_client4_1_19_1.xml (deleted)
UserNTTravel/.idea/libraries/Maven__com_sun_jersey_jersey_client_1_19_1.xml (deleted)
UserNTTravel/.idea/libraries/Maven__com_sun_jersey_jersey_core_1_19_1.xml (deleted)
UserNTTravel/.idea/libraries/Maven__com_thoughtworks_xstream_xstream_1_4_10.xml (deleted)
UserNTTravel/.idea/libraries/Maven__com_vaadin_external_google_android_json_0_0_20131108_vaadin1.xml (deleted)
UserNTTravel/.idea/libraries/Maven__com_zaxxer_HikariCP_2_7_9.xml (deleted)
UserNTTravel/.idea/libraries/Maven__commons_beanutils_commons_beanutils_1_9_4.xml (deleted)
UserNTTravel/.idea/libraries/Maven__commons_codec_commons_codec_1_11.xml (deleted)
UserNTTravel/.idea/libraries/Maven__commons_collections_commons_collections_3_2_1.xml (deleted)
UserNTTravel/.idea/libraries/Maven__commons_configuration_commons_configuration_1_8.xml (deleted)
UserNTTravel/.idea/libraries/Maven__commons_jxpath_commons_jxpath_1_3.xml (deleted)
UserNTTravel/.idea/libraries/Maven__commons_lang_commons_lang_2_4.xml (deleted)
UserNTTravel/.idea/libraries/Maven__commons_logging_commons_logging_1_1_1.xml (deleted)
UserNTTravel/.idea/libraries/Maven__dom4j_dom4j_1_6_1.xml (deleted)
UserNTTravel/.idea/libraries/Maven__io_jsonwebtoken_jjwt_0_9_0.xml (deleted)
UserNTTravel/.idea/libraries/Maven__io_netty_netty_buffer_4_1_23_Final.xml (deleted)
UserNTTravel/.idea/libraries/Maven__io_netty_netty_codec_4_1_23_Final.xml (deleted)
UserNTTravel/.idea/libraries/Maven__io_netty_netty_codec_http_4_1_23_Final.xml (deleted)
UserNTTravel/.idea/libraries/Maven__io_netty_netty_common_4_1_23_Final.xml (deleted)
UserNTTravel/.idea/libraries/Maven__io_netty_netty_resolver_4_1_23_Final.xml (deleted)
UserNTTravel/.idea/libraries/Maven__io_netty_netty_transport_4_1_23_Final.xml (deleted)
UserNTTravel/.idea/libraries/Maven__io_netty_netty_transport_native_epoll_4_1_23_Final.xml (deleted)
UserNTTravel/.idea/libraries/Maven__io_netty_netty_transport_native_unix_common_4_1_23_Final.xml (deleted)
UserNTTravel/.idea/libraries/Maven__io_reactivex_rxjava_1_3_8.xml (deleted)
UserNTTravel/.idea/libraries/Maven__io_reactivex_rxjava_reactive_streams_1_2_1.xml (deleted)
UserNTTravel/.idea/libraries/Maven__io_reactivex_rxnetty_0_4_9.xml (deleted)
UserNTTravel/.idea/libraries/Maven__io_reactivex_rxnetty_contexts_0_4_9.xml (deleted)
UserNTTravel/.idea/libraries/Maven__io_reactivex_rxnetty_servo_0_4_9.xml (deleted)
UserNTTravel/.idea/libraries/Maven__io_springfox_springfox_core_2_9_2.xml (deleted)
UserNTTravel/.idea/libraries/Maven__io_springfox_springfox_schema_2_9_2.xml (deleted)
UserNTTravel/.idea/libraries/Maven__io_springfox_springfox_spi_2_9_2.xml (deleted)
UserNTTravel/.idea/libraries/Maven__io_springfox_springfox_spring_web_2_9_2.xml (deleted)
UserNTTravel/.idea/libraries/Maven__io_springfox_springfox_swagger2_2_9_2.xml (deleted)
UserNTTravel/.idea/libraries/Maven__io_springfox_springfox_swagger_common_2_9_2.xml (deleted)
UserNTTravel/.idea/libraries/Maven__io_springfox_springfox_swagger_ui_2_9_2.xml (deleted)
UserNTTravel/.idea/libraries/Maven__io_swagger_swagger_annotations_1_5_20.xml (deleted)
UserNTTravel/.idea/libraries/Maven__io_swagger_swagger_models_1_5_20.xml (deleted)
UserNTTravel/.idea/libraries/Maven__javax_annotation_javax_annotation_api_1_3_2.xml (deleted)
UserNTTravel/.idea/libraries/Maven__javax_inject_javax_inject_1.xml (deleted)
UserNTTravel/.idea/libraries/Maven__javax_servlet_javax_servlet_api_3_1_0.xml (deleted)
UserNTTravel/.idea/libraries/Maven__javax_validation_validation_api_2_0_1_Final.xml (deleted)
UserNTTravel/.idea/libraries/Maven__javax_ws_rs_jsr311_api_1_1_1.xml (deleted)
UserNTTravel/.idea/libraries/Maven__javax_xml_bind_jaxb_api_2_3_0.xml (deleted)
UserNTTravel/.idea/libraries/Maven__javax_xml_stream_stax_api_1_0_2.xml (deleted)
UserNTTravel/.idea/libraries/Maven__joda_time_joda_time_2_9_9.xml (deleted)
UserNTTravel/.idea/libraries/Maven__junit_junit_4_12.xml (deleted)
UserNTTravel/.idea/libraries/Maven__mysql_mysql_connector_java_8_0_11.xml (deleted)
UserNTTravel/.idea/libraries/Maven__net_bytebuddy_byte_buddy_1_7_11.xml (deleted)
UserNTTravel/.idea/libraries/Maven__net_bytebuddy_byte_buddy_agent_1_7_11.xml (deleted)
UserNTTravel/.idea/libraries/Maven__net_minidev_accessors_smart_1_2.xml (deleted)
UserNTTravel/.idea/libraries/Maven__net_minidev_json_smart_2_3.xml (deleted)
UserNTTravel/.idea/libraries/Maven__net_sf_ehcache_ehcache_core_2_6_11.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_abego_treelayout_org_abego_treelayout_core_1_0_1.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_antlr_antlr4_annotations_4_2.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_antlr_antlr4_runtime_4_2.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_antlr_antlr_runtime_3_4.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_antlr_stringtemplate_3_2_1.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_apache_commons_commons_lang3_3_7.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_apache_commons_commons_math_2_2.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_apache_commons_commons_pool2_2_5_0.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_apache_httpcomponents_httpclient_4_5_6.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_apache_httpcomponents_httpcore_4_4_10.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_apache_logging_log4j_log4j_api_2_10_0.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_apache_logging_log4j_log4j_core_2_10_0.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_apache_logging_log4j_log4j_to_slf4j_2_10_0.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_apache_shiro_shiro_cache_1_7_0.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_apache_shiro_shiro_config_core_1_7_0.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_apache_shiro_shiro_config_ogdl_1_7_0.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_apache_shiro_shiro_core_1_7_0.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_apache_shiro_shiro_crypto_cipher_1_7_0.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_apache_shiro_shiro_crypto_core_1_7_0.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_apache_shiro_shiro_crypto_hash_1_7_0.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_apache_shiro_shiro_ehcache_1_7_0.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_apache_shiro_shiro_event_1_7_0.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_apache_shiro_shiro_lang_1_7_0.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_apache_shiro_shiro_spring_1_7_0.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_apache_shiro_shiro_web_1_7_0.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_core_8_5_32.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_el_8_5_32.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_websocket_8_5_32.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_apache_velocity_velocity_1_7.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_aspectj_aspectjweaver_1_8_13.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_assertj_assertj_core_3_9_1.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_bouncycastle_bcpkix_jdk15on_1_56.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_bouncycastle_bcprov_jdk15on_1_62.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_codehaus_jettison_jettison_1_1.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_codehaus_woodstox_stax2_api_3_1_4.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_codehaus_woodstox_woodstox_core_asl_4_4_1.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_ehcache_ehcache_3_3_1.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_gavaghan_geodesy_1_1_3.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_3.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_hamcrest_hamcrest_library_1_3.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_hdrhistogram_HdrHistogram_2_1_9.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_hibernate_validator_hibernate_validator_6_0_11_Final.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_ini4j_ini4j_0_5_4.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_jacoco_org_jacoco_agent_runtime_0_8_3.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_jboss_logging_jboss_logging_3_3_2_Final.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_jdom_jdom_1_1.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_mapstruct_mapstruct_1_2_0_Final.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_mockito_mockito_core_2_15_0.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_mybatis_mybatis_3_4_6.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_mybatis_mybatis_spring_1_3_2.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_objenesis_objenesis_2_6.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_ow2_asm_asm_5_0_4.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_owasp_encoder_encoder_1_2_2.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_reactivestreams_reactive_streams_1_0_2.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_skyscreamer_jsonassert_1_5_0.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_slf4j_jul_to_slf4j_1_7_25.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_25.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_springframework_boot_spring_boot_2_0_4_RELEASE.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_springframework_boot_spring_boot_autoconfigure_2_0_4_RELEASE.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_springframework_boot_spring_boot_configuration_processor_2_0_4_RELEASE.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_springframework_boot_spring_boot_devtools_2_0_4_RELEASE.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_2_0_4_RELEASE.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_aop_2_0_4_RELEASE.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_cache_2_0_4_RELEASE.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_jdbc_2_0_4_RELEASE.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_json_2_0_4_RELEASE.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_logging_2_0_4_RELEASE.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_test_2_0_4_RELEASE.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_tomcat_2_0_4_RELEASE.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_validation_2_0_4_RELEASE.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_web_2_0_4_RELEASE.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_2_0_4_RELEASE.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_autoconfigure_2_0_4_RELEASE.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_commons_2_0_1_RELEASE.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_context_2_0_1_RELEASE.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_netflix_archaius_2_0_1_RELEASE.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_netflix_core_2_0_1_RELEASE.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_netflix_eureka_client_2_0_1_RELEASE.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_netflix_ribbon_2_0_1_RELEASE.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_starter_2_0_1_RELEASE.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_starter_netflix_archaius_2_0_1_RELEASE.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_starter_netflix_eureka_client_2_0_1_RELEASE.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_starter_netflix_hystrix_2_0_1_RELEASE.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_starter_netflix_ribbon_2_0_1_RELEASE.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_springframework_plugin_spring_plugin_core_1_2_0_RELEASE.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_springframework_plugin_spring_plugin_metadata_1_2_0_RELEASE.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_springframework_security_spring_security_crypto_5_0_4_RELEASE.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_springframework_security_spring_security_rsa_1_0_5_RELEASE.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_springframework_spring_aop_5_0_5_RELEASE.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_springframework_spring_beans_5_0_5_RELEASE.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_springframework_spring_context_5_0_5_RELEASE.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_springframework_spring_context_support_5_0_5_RELEASE.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_springframework_spring_core_5_0_8_RELEASE.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_springframework_spring_expression_5_0_5_RELEASE.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_springframework_spring_jcl_5_0_5_RELEASE.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_springframework_spring_jdbc_5_0_5_RELEASE.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_springframework_spring_test_5_0_5_RELEASE.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_springframework_spring_tx_5_0_5_RELEASE.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_springframework_spring_web_5_0_5_RELEASE.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_springframework_spring_webmvc_5_0_5_RELEASE.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_xmlunit_xmlunit_core_2_5_1.xml (deleted)
UserNTTravel/.idea/libraries/Maven__org_yaml_snakeyaml_1_19.xml (deleted)
UserNTTravel/.idea/libraries/Maven__redis_clients_jedis_2_9_0.xml (deleted)
UserNTTravel/.idea/libraries/Maven__stax_stax_api_1_0_1.xml (deleted)
UserNTTravel/.idea/libraries/Maven__xml_apis_xml_apis_1_4_01.xml (deleted)
UserNTTravel/.idea/libraries/Maven__xmlpull_xmlpull_1_1_3_1.xml (deleted)
UserNTTravel/.idea/libraries/Maven__xpp3_xpp3_min_1_1_4c.xml (deleted)
UserNTTravel/.idea/misc.xml
UserNTTravel/.idea/modules.xml
UserNTTravel/.idea/uiDesigner.xml
UserNTTravel/.idea/vcs.xml
UserNTTravel/.idea/workspace.xml
UserNTTravel/guns-admin/guns-admin.iml
UserNTTravel/guns-admin/pom.xml
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/GunsApplication.java
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/controller/OrderCharteredCarController.java
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/dao/TCharteredServiceMapper.java
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/dao/mapping/TCharteredServiceMapper.xml
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/dto/CharteredCarDto.java
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/model/OrderCharteredCar.java
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/server/IOrderCharteredCarService.java
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/server/impl/OrderCharteredCarServiceImpl.java
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/NettyController.java
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/RedEnvelopeController.java
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/ServerCarModelController.java
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserCallbackController.java
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/LineController.java
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/model/Line.java
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/model/LineSite.java
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/SysCouponRecordMapper.java
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/SysReformistMapper.java
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TActivityGeneralizationMapper.java
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/SysReformistMapper.xml
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/AliSms.java
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/SysCouponRecord.java
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/SysReformist.java
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TActivityGeneralization.java
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TCharteredService.java
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ISysCouponRecordService.java
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITActivityGeneralizationService.java
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITCharteredServiceService.java
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/NettyServiceImpl.java
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OpenCityBusinessServiceImpl.java
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/PhoneServiceImpl.java
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/SysCouponRecordServiceImpl.java
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TActivityGeneralizationServiceImpl.java
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TCharteredServiceServiceImpl.java
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ALiSendSms.java
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDFalconUtil.java
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapElectricFenceUtil.java
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapGeocodingUtil.java
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushMinistryOfTransportUtil.java
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/transfer/controller/OrderTransferController.java
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/transfer/dao/OrderTransferMapper.java
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/transfer/dao/mapping/OrderTransferMapper.xml
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/transfer/model/OrderTransferCar.java
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/transfer/server/IOrderTransferService.java
UserNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/transfer/server/impl/OrderTransferServiceImpl.java
UserNTTravel/guns-admin/src/main/resources/application.yml
UserNTTravel/guns-admin/target/classes/META-INF/spring-configuration-metadata.json
UserNTTravel/guns-admin/target/classes/META-INF/spring-devtools.properties
UserNTTravel/guns-admin/target/classes/WEB-INF/view/404.html
UserNTTravel/guns-admin/target/classes/WEB-INF/view/blackboard.html
UserNTTravel/guns-admin/target/classes/WEB-INF/view/code/code.html
UserNTTravel/guns-admin/target/classes/WEB-INF/view/common/_container.html
UserNTTravel/guns-admin/target/classes/WEB-INF/view/common/_right.html
UserNTTravel/guns-admin/target/classes/WEB-INF/view/common/_tab.html
UserNTTravel/guns-admin/target/classes/WEB-INF/view/common/_theme.html
UserNTTravel/guns-admin/target/classes/WEB-INF/view/common/tags/NameCon.tag
UserNTTravel/guns-admin/target/classes/WEB-INF/view/common/tags/SelectCon.tag
UserNTTravel/guns-admin/target/classes/WEB-INF/view/common/tags/TimeCon.tag
UserNTTravel/guns-admin/target/classes/WEB-INF/view/common/tags/avatar.tag
UserNTTravel/guns-admin/target/classes/WEB-INF/view/common/tags/button.tag
UserNTTravel/guns-admin/target/classes/WEB-INF/view/common/tags/input.tag
UserNTTravel/guns-admin/target/classes/WEB-INF/view/common/tags/select.tag
UserNTTravel/guns-admin/target/classes/WEB-INF/view/common/tags/table.tag
UserNTTravel/guns-admin/target/classes/WEB-INF/view/common/tags/tag_tips
UserNTTravel/guns-admin/target/classes/WEB-INF/view/index.html
UserNTTravel/guns-admin/target/classes/WEB-INF/view/login.html
UserNTTravel/guns-admin/target/classes/WEB-INF/view/system/code/code.html
UserNTTravel/guns-admin/target/classes/WEB-INF/view/system/dept/dept.html
UserNTTravel/guns-admin/target/classes/WEB-INF/view/system/dept/dept_add.html
UserNTTravel/guns-admin/target/classes/WEB-INF/view/system/dept/dept_edit.html
UserNTTravel/guns-admin/target/classes/WEB-INF/view/system/dict/dict.html
UserNTTravel/guns-admin/target/classes/WEB-INF/view/system/dict/dict_add.html
UserNTTravel/guns-admin/target/classes/WEB-INF/view/system/dict/dict_edit.html
UserNTTravel/guns-admin/target/classes/WEB-INF/view/system/log/log.html
UserNTTravel/guns-admin/target/classes/WEB-INF/view/system/log/login_log.html
UserNTTravel/guns-admin/target/classes/WEB-INF/view/system/menu/menu.html
UserNTTravel/guns-admin/target/classes/WEB-INF/view/system/menu/menu_add.html
UserNTTravel/guns-admin/target/classes/WEB-INF/view/system/menu/menu_edit.html
UserNTTravel/guns-admin/target/classes/WEB-INF/view/system/notice/notice.html
UserNTTravel/guns-admin/target/classes/WEB-INF/view/system/notice/notice_add.html
UserNTTravel/guns-admin/target/classes/WEB-INF/view/system/notice/notice_edit.html
UserNTTravel/guns-admin/target/classes/WEB-INF/view/system/role/role.html
UserNTTravel/guns-admin/target/classes/WEB-INF/view/system/role/role_add.html
UserNTTravel/guns-admin/target/classes/WEB-INF/view/system/role/role_assign.html
UserNTTravel/guns-admin/target/classes/WEB-INF/view/system/role/role_edit.html
UserNTTravel/guns-admin/target/classes/WEB-INF/view/system/user/user.html
UserNTTravel/guns-admin/target/classes/WEB-INF/view/system/user/user_add.html
UserNTTravel/guns-admin/target/classes/WEB-INF/view/system/user/user_chpwd.html
UserNTTravel/guns-admin/target/classes/WEB-INF/view/system/user/user_edit.html
UserNTTravel/guns-admin/target/classes/WEB-INF/view/system/user/user_roleassign.html
UserNTTravel/guns-admin/target/classes/WEB-INF/view/system/user/user_view.html
UserNTTravel/guns-admin/target/classes/application.yml
UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/CharteredCar/dao/mapping/OrderCharteredCarMapper.xml
UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/CharteredCar/dao/mapping/TCharteredServiceMapper.xml
UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/crossCity/dao/mapping/LineMapper.xml
UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/crossCity/dao/mapping/LinePriceMapper.xml
UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/crossCity/dao/mapping/LineShiftDriverMapper.xml
UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/crossCity/dao/mapping/LineShiftMapper.xml
UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/crossCity/dao/mapping/LineSiteMapper.xml
UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/crossCity/dao/mapping/LocationMapper.xml
UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/crossCity/dao/mapping/OrderCrossCityMapper.xml
UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/crossCity/dao/mapping/SiteMapper.xml
UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/smallLogistics/dao/mapping/OrderLogisticsMapper.xml
UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/smallLogistics/dao/mapping/OrderLogisticsSpreadMapper.xml
UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/specialTrain/dao/mapping/OrderPrivateCarMapper.xml
UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/system/dao/mapping/AdvertisementMapper.xml
UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/system/dao/mapping/AgreementMapper.xml
UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/system/dao/mapping/CancleOrderMapper.xml
UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/system/dao/mapping/CarMapper.xml
UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/system/dao/mapping/CarServiceMapper.xml
UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/system/dao/mapping/CompanyCityMapper.xml
UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/system/dao/mapping/CompanyMapper.xml
UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/system/dao/mapping/ComplaintMapper.xml
UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/system/dao/mapping/DeptMapper.xml
UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/system/dao/mapping/DictMapper.xml
UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/system/dao/mapping/DriverActivityHistoryMapper.xml
UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/system/dao/mapping/DriverActivityRegisteredMapper.xml
UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/system/dao/mapping/DriverMapper.xml
UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/system/dao/mapping/DriverOrdersMapper.xml
UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/system/dao/mapping/DriverServiceMapper.xml
UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/system/dao/mapping/DriverWorkMapper.xml
UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/system/dao/mapping/ExpenseMapper.xml
UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/system/dao/mapping/FeedbackMapper.xml
UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/system/dao/mapping/FrequentPassengersMapper.xml
UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/system/dao/mapping/GDInterfaceMapper.xml
UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/system/dao/mapping/IncomeMapper.xml
UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/system/dao/mapping/IntegralGoodsMapper.xml
UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/system/dao/mapping/IntegralOrderMapper.xml
UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/system/dao/mapping/InvoiceMapper.xml
UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/system/dao/mapping/LoginLogMapper.xml
UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/system/dao/mapping/MenuMapper.xml
UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/system/dao/mapping/NoticeMapper.xml
UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/system/dao/mapping/OpenCityBusinessMapper.xml
UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/system/dao/mapping/OpenCityMapper.xml
UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/system/dao/mapping/OperationLogMapper.xml
UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/system/dao/mapping/OrderCancelMapper.xml
UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/system/dao/mapping/OrderEvaluateMapper.xml
UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/system/dao/mapping/OrderFrequentPassengersMapper.xml
UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/system/dao/mapping/OrderPositionMapper.xml
UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/system/dao/mapping/PhoneMapper.xml
UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/system/dao/mapping/ProblemMapper.xml
UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/system/dao/mapping/PushOrderMapper.xml
UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/system/dao/mapping/RedPacketRecordMapper.xml
UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/system/dao/mapping/RegionMapper.xml
UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/system/dao/mapping/RelationMapper.xml
UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/system/dao/mapping/RoleMapper.xml
UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/system/dao/mapping/SensitiveWordsMapper.xml
UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/system/dao/mapping/ServerCarModelMapper.xml
UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/system/dao/mapping/SmsrecordMapper.xml
UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/system/dao/mapping/SysIntegralMapper.xml
UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/system/dao/mapping/SystemNoticeMapper.xml
UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/system/dao/mapping/SystemPriceMapper.xml
UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/system/dao/mapping/TNoticesMapper.xml
UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/system/dao/mapping/UserActivityBalanceMapper.xml
UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/system/dao/mapping/UserActivityDiscount1Mapper.xml
UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/system/dao/mapping/UserActivityInviteMapper.xml
UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/system/dao/mapping/UserActivityRedenvelopeMapper.xml
UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/system/dao/mapping/UserActivityRegisteredMapper.xml
UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/system/dao/mapping/UserCouponRecordMapper.xml
UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/system/dao/mapping/UserInfoMapper.xml
UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/system/dao/mapping/UserMapper.xml
UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/system/dao/mapping/UserRedPacketRecordMapper.xml
UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/system/dao/mapping/VerifiedMapper.xml
UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/system/dao/mapping/VersionManagementMapper.xml
UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/system/dao/mapping/WithdrawalMapper.xml
UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/taxi/dao/mapping/OrderTaxiMapper.xml
UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/taxi/dao/mapping/PaymentRecordMapper.xml
UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/taxi/dao/mapping/TransactionDetailsMapper.xml
UserNTTravel/guns-admin/target/classes/com/stylefeng/guns/modular/transfer/dao/mapping/OrderTransferMapper.xml
UserNTTravel/guns-admin/target/classes/ehcache.xml
UserNTTravel/guns-admin/target/classes/logback-spring.xml
UserNTTravel/guns-admin/target/classes/redis.properties
UserNTTravel/guns-admin/target/classes/static/css/_fstyle.css
UserNTTravel/guns-admin/target/classes/static/css/bootstrap-rtl.css
UserNTTravel/guns-admin/target/classes/static/css/bootstrap.min.css
UserNTTravel/guns-admin/target/classes/static/css/font-awesome.css
UserNTTravel/guns-admin/target/classes/static/css/font-awesome.min.css
UserNTTravel/guns-admin/target/classes/static/css/login.css
UserNTTravel/guns-admin/target/classes/static/css/patterns/header-profile-skin-1.png
UserNTTravel/guns-admin/target/classes/static/css/patterns/header-profile-skin-3.png
UserNTTravel/guns-admin/target/classes/static/css/patterns/header-profile.png
UserNTTravel/guns-admin/target/classes/static/css/patterns/shattered.png
UserNTTravel/guns-admin/target/classes/static/css/plugins/bootstrap-table/bootstrap-table.min.css
UserNTTravel/guns-admin/target/classes/static/css/plugins/bootstrap-treetable/bootstrap-treetable.css
UserNTTravel/guns-admin/target/classes/static/css/plugins/chosen/chosen-sprite.png
UserNTTravel/guns-admin/target/classes/static/css/plugins/chosen/chosen-sprite@2x.png
UserNTTravel/guns-admin/target/classes/static/css/plugins/chosen/chosen.css
UserNTTravel/guns-admin/target/classes/static/css/plugins/iCheck/custom.css
UserNTTravel/guns-admin/target/classes/static/css/plugins/iCheck/green.png
UserNTTravel/guns-admin/target/classes/static/css/plugins/iCheck/green@2x.png
UserNTTravel/guns-admin/target/classes/static/css/plugins/images/sprite-skin-flat.png
UserNTTravel/guns-admin/target/classes/static/css/plugins/validate/bootstrapValidator.min.css
UserNTTravel/guns-admin/target/classes/static/css/plugins/webuploader/webuploader.css
UserNTTravel/guns-admin/target/classes/static/css/plugins/ztree/demo.css
UserNTTravel/guns-admin/target/classes/static/css/plugins/ztree/img/diy/1_close.png
UserNTTravel/guns-admin/target/classes/static/css/plugins/ztree/img/diy/1_open.png
UserNTTravel/guns-admin/target/classes/static/css/plugins/ztree/img/diy/2.png
UserNTTravel/guns-admin/target/classes/static/css/plugins/ztree/img/diy/3.png
UserNTTravel/guns-admin/target/classes/static/css/plugins/ztree/img/diy/4.png
UserNTTravel/guns-admin/target/classes/static/css/plugins/ztree/img/diy/5.png
UserNTTravel/guns-admin/target/classes/static/css/plugins/ztree/img/diy/6.png
UserNTTravel/guns-admin/target/classes/static/css/plugins/ztree/img/diy/7.png
UserNTTravel/guns-admin/target/classes/static/css/plugins/ztree/img/diy/8.png
UserNTTravel/guns-admin/target/classes/static/css/plugins/ztree/img/diy/9.png
UserNTTravel/guns-admin/target/classes/static/css/plugins/ztree/img/line_conn.gif
UserNTTravel/guns-admin/target/classes/static/css/plugins/ztree/img/loading.gif
UserNTTravel/guns-admin/target/classes/static/css/plugins/ztree/img/zTreeStandard.gif
UserNTTravel/guns-admin/target/classes/static/css/plugins/ztree/img/zTreeStandard.png
UserNTTravel/guns-admin/target/classes/static/css/plugins/ztree/zTreeStyle.css
UserNTTravel/guns-admin/target/classes/static/css/style.css
UserNTTravel/guns-admin/target/classes/static/favicon.ico
UserNTTravel/guns-admin/target/classes/static/fonts/FontAwesome.otf
UserNTTravel/guns-admin/target/classes/static/fonts/fontawesome-webfont.eot
UserNTTravel/guns-admin/target/classes/static/fonts/fontawesome-webfont.svg
UserNTTravel/guns-admin/target/classes/static/fonts/fontawesome-webfont.ttf
UserNTTravel/guns-admin/target/classes/static/fonts/fontawesome-webfont.woff
UserNTTravel/guns-admin/target/classes/static/fonts/fontawesome-webfont.woff2
UserNTTravel/guns-admin/target/classes/static/fonts/glyphicons-halflings-regular.eot
UserNTTravel/guns-admin/target/classes/static/fonts/glyphicons-halflings-regular.svg
UserNTTravel/guns-admin/target/classes/static/fonts/glyphicons-halflings-regular.ttf
UserNTTravel/guns-admin/target/classes/static/fonts/glyphicons-halflings-regular.woff
UserNTTravel/guns-admin/target/classes/static/fonts/glyphicons-halflings-regular.woff2
UserNTTravel/guns-admin/target/classes/static/img/bg.png
UserNTTravel/guns-admin/target/classes/static/img/boy.gif
UserNTTravel/guns-admin/target/classes/static/img/girl.gif
UserNTTravel/guns-admin/target/classes/static/img/icons.png
UserNTTravel/guns-admin/target/classes/static/img/loading-upload.gif
UserNTTravel/guns-admin/target/classes/static/img/locked.png
UserNTTravel/guns-admin/target/classes/static/img/user.png
UserNTTravel/guns-admin/target/classes/static/js/bootstrap.min.js
UserNTTravel/guns-admin/target/classes/static/js/common/DateUtils.js
UserNTTravel/guns-admin/target/classes/static/js/common/Feng.js
UserNTTravel/guns-admin/target/classes/static/js/common/ajax-object.js
UserNTTravel/guns-admin/target/classes/static/js/common/bootstrap-table-object.js
UserNTTravel/guns-admin/target/classes/static/js/common/select-list-object.js
UserNTTravel/guns-admin/target/classes/static/js/common/tree-table-object.js
UserNTTravel/guns-admin/target/classes/static/js/common/web-upload-object.js
UserNTTravel/guns-admin/target/classes/static/js/common/ztree-object.js
UserNTTravel/guns-admin/target/classes/static/js/contabs.js
UserNTTravel/guns-admin/target/classes/static/js/content.js
UserNTTravel/guns-admin/target/classes/static/js/hplus.js
UserNTTravel/guns-admin/target/classes/static/js/jquery.min.js
UserNTTravel/guns-admin/target/classes/static/js/jquery.min.map
UserNTTravel/guns-admin/target/classes/static/js/plugins/bootstrap-table/bootstrap-table-mobile.min.js
UserNTTravel/guns-admin/target/classes/static/js/plugins/bootstrap-table/bootstrap-table.min.js
UserNTTravel/guns-admin/target/classes/static/js/plugins/bootstrap-table/locale/bootstrap-table-zh-CN.js
UserNTTravel/guns-admin/target/classes/static/js/plugins/bootstrap-table/locale/bootstrap-table-zh-CN.min.js
UserNTTravel/guns-admin/target/classes/static/js/plugins/bootstrap-treetable/bootstrap-treetable.js
UserNTTravel/guns-admin/target/classes/static/js/plugins/chosen/chosen.jquery.js
UserNTTravel/guns-admin/target/classes/static/js/plugins/iCheck/icheck.min.js
UserNTTravel/guns-admin/target/classes/static/js/plugins/laydate/laydate.js
UserNTTravel/guns-admin/target/classes/static/js/plugins/laydate/theme/default/font/iconfont.eot
UserNTTravel/guns-admin/target/classes/static/js/plugins/laydate/theme/default/font/iconfont.svg
UserNTTravel/guns-admin/target/classes/static/js/plugins/laydate/theme/default/font/iconfont.ttf
UserNTTravel/guns-admin/target/classes/static/js/plugins/laydate/theme/default/font/iconfont.woff
UserNTTravel/guns-admin/target/classes/static/js/plugins/laydate/theme/default/laydate.css
UserNTTravel/guns-admin/target/classes/static/js/plugins/layer/layer.js
UserNTTravel/guns-admin/target/classes/static/js/plugins/layer/mobile/layer.js
UserNTTravel/guns-admin/target/classes/static/js/plugins/layer/mobile/need/layer.css
UserNTTravel/guns-admin/target/classes/static/js/plugins/layer/theme/default/icon-ext.png
UserNTTravel/guns-admin/target/classes/static/js/plugins/layer/theme/default/icon.png
UserNTTravel/guns-admin/target/classes/static/js/plugins/layer/theme/default/layer.css
UserNTTravel/guns-admin/target/classes/static/js/plugins/layer/theme/default/loading-0.gif
UserNTTravel/guns-admin/target/classes/static/js/plugins/layer/theme/default/loading-1.gif
UserNTTravel/guns-admin/target/classes/static/js/plugins/layer/theme/default/loading-2.gif
UserNTTravel/guns-admin/target/classes/static/js/plugins/metisMenu/jquery.metisMenu.js
UserNTTravel/guns-admin/target/classes/static/js/plugins/pace/pace.min.js
UserNTTravel/guns-admin/target/classes/static/js/plugins/slimscroll/jquery.slimscroll.min.js
UserNTTravel/guns-admin/target/classes/static/js/plugins/validate/additional-methods.min.js
UserNTTravel/guns-admin/target/classes/static/js/plugins/validate/bootstrapValidator.min.js
UserNTTravel/guns-admin/target/classes/static/js/plugins/validate/zh_CN.js
UserNTTravel/guns-admin/target/classes/static/js/plugins/wangEditor/wangEditor.js
UserNTTravel/guns-admin/target/classes/static/js/plugins/webuploader/Uploader.swf
UserNTTravel/guns-admin/target/classes/static/js/plugins/webuploader/webuploader.css
UserNTTravel/guns-admin/target/classes/static/js/plugins/webuploader/webuploader.custom.js
UserNTTravel/guns-admin/target/classes/static/js/plugins/webuploader/webuploader.custom.min.js
UserNTTravel/guns-admin/target/classes/static/js/plugins/webuploader/webuploader.fis.js
UserNTTravel/guns-admin/target/classes/static/js/plugins/webuploader/webuploader.flashonly.js
UserNTTravel/guns-admin/target/classes/static/js/plugins/webuploader/webuploader.flashonly.min.js
UserNTTravel/guns-admin/target/classes/static/js/plugins/webuploader/webuploader.html5only.js
UserNTTravel/guns-admin/target/classes/static/js/plugins/webuploader/webuploader.html5only.min.js
UserNTTravel/guns-admin/target/classes/static/js/plugins/webuploader/webuploader.js
UserNTTravel/guns-admin/target/classes/static/js/plugins/webuploader/webuploader.min.js
UserNTTravel/guns-admin/target/classes/static/js/plugins/webuploader/webuploader.noimage.js
UserNTTravel/guns-admin/target/classes/static/js/plugins/webuploader/webuploader.noimage.min.js
UserNTTravel/guns-admin/target/classes/static/js/plugins/webuploader/webuploader.nolog.js
UserNTTravel/guns-admin/target/classes/static/js/plugins/webuploader/webuploader.nolog.min.js
UserNTTravel/guns-admin/target/classes/static/js/plugins/webuploader/webuploader.withoutimage.js
UserNTTravel/guns-admin/target/classes/static/js/plugins/webuploader/webuploader.withoutimage.min.js
UserNTTravel/guns-admin/target/classes/static/js/plugins/ztree/jquery.ztree.all.min.js
UserNTTravel/guns-admin/target/classes/static/modular/code/gen.js
UserNTTravel/guns-admin/target/classes/static/modular/flowable/expense/expense.js
UserNTTravel/guns-admin/target/classes/static/modular/flowable/expense/expense_info.js
UserNTTravel/guns-admin/target/classes/static/modular/flowable/process/process.js
UserNTTravel/guns-admin/target/classes/static/modular/flowable/process/process_info.js
UserNTTravel/guns-admin/target/classes/static/modular/system/code/code.js
UserNTTravel/guns-admin/target/classes/static/modular/system/dept/dept.js
UserNTTravel/guns-admin/target/classes/static/modular/system/dept/dept_info.js
UserNTTravel/guns-admin/target/classes/static/modular/system/dict/dict.js
UserNTTravel/guns-admin/target/classes/static/modular/system/dict/dict_info.js
UserNTTravel/guns-admin/target/classes/static/modular/system/log/log.js
UserNTTravel/guns-admin/target/classes/static/modular/system/log/login_log.js
UserNTTravel/guns-admin/target/classes/static/modular/system/menu/menu.js
UserNTTravel/guns-admin/target/classes/static/modular/system/menu/menu_info.js
UserNTTravel/guns-admin/target/classes/static/modular/system/notice/notice.js
UserNTTravel/guns-admin/target/classes/static/modular/system/notice/notice_info.js
UserNTTravel/guns-admin/target/classes/static/modular/system/role/role.js
UserNTTravel/guns-admin/target/classes/static/modular/system/role/role_info.js
UserNTTravel/guns-admin/target/classes/static/modular/system/user/user.js
UserNTTravel/guns-admin/target/classes/static/modular/system/user/user_info.js
UserNTTravel/guns-core/guns-core.iml
UserNTTravel/guns-core/target/classes/META-INF/spring-configuration-metadata.json
UserNTTravel/guns-core/target/classes/META-INF/spring.factories
UserNTTravel/guns-core/target/classes/default-config.properties
UserNTTravel/guns-generator/guns-generator.iml
UserNTTravel/guns-generator/target/classes/gunsTemplate/advanced/Controller.java.btl
UserNTTravel/guns-generator/target/classes/gunsTemplate/advanced/menu_sql.sql.btl
UserNTTravel/guns-generator/target/classes/gunsTemplate/advanced/page.html.btl
UserNTTravel/guns-generator/target/classes/gunsTemplate/advanced/page.js.btl
UserNTTravel/guns-generator/target/classes/gunsTemplate/advanced/page_add.html.btl
UserNTTravel/guns-generator/target/classes/gunsTemplate/advanced/page_edit.html.btl
UserNTTravel/guns-generator/target/classes/gunsTemplate/advanced/page_info.js.btl
UserNTTravel/guns-parent.iml (deleted)
ZuulNTTravel/.idea/.gitignore
ZuulNTTravel/.idea/compiler.xml
ZuulNTTravel/.idea/encodings.xml
ZuulNTTravel/.idea/jarRepositories.xml
ZuulNTTravel/.idea/misc.xml
ZuulNTTravel/.idea/vcs.xml
ZuulNTTravel/src/main/resources/redis.properties
ZuulNTTravel/target/classes/application.yml
ZuulNTTravel/target/classes/redis.properties
ZuulNTTravel/target/classes/static/tXQaRbVjpJ.txt |