# 数据采集系统 **!!!引入包时请评估是否有必要,放在依赖数量急剧扩大** ### 架构说明 > 项目使用springboot3.3.x+mybatis plus搭建,权限框架暂定shiro。 ### 各模块说明 ##### 0、入口 `service-deploy` > 项目入口,提供一下全局的拦截、过滤器或者异常处理,也可以做全局的配置管理 ##### 1、基础模块 `service-base` > 该模块是所有依赖包引入入口,数据库访问层mapper以及对mapper的二次封装dao,建议按功能模块分包或者有更好的分包方式也请说明 > ##### 2、计算模块 `service-calc` > 指标计算的相关功能 > ##### 3、数据采集 `service-daq` > 主要的数据采集功能模块,对数据库的访问请走base提供的服务;当前模块可以按需求扩展数据采集方式,包括但不限于邮箱、托管api等方式 > ##### 4、后台管理 `service-manage` > 提供后台管理系统的api,建议按各一级菜单分包 > ##### 各模块依赖关系 > `service-base`依赖了所有第三方包,包括一个私有包,`service-calc`、`service-daq`和`service-manage`依赖`service-base`模块 ### 待办事项 - [x] shiro 基于jwt的登录认证+授权 - [x] 自定义基于rsa的密码匹配器 `ShiroRsaCredentialsMatcher` - [x] 可实现的用户信息适配器 `LoginAuthAdapter` - [x] 用户信息接入数据库数据 - [x] 系统管理-用户、角色、菜单和操作日志 ### FAQ - 1. 下列包的作用? ```xml com.smppw data-calc ${data-calc.version} ``` > 封装了一些常用对象、工具类和指标计算方法 2. 部分依赖不可删除,删除就报错,比如joda-time > data-calc包目前有强依赖的第三方包,待优化后可控制 3. 关于全局统一处理的说明 > 全局统一处理是要求所有接口必须返回一样的数据结构,目前在系统中定义为 ```json { "code": 2000, "msg": "", "data": null } ``` > 此结构中的data属性就是目前成功返回的数据对象,统一的对象结构为 `com.smppw.common.pojo.ResultVo`。 > > 约定:当接口返回结果是String类型时把返回字符串作为上述结构的data,当接口返回`com.smppw.common.pojo.ResultVo`时直接返回该对象; > 其他属性都用此对象的data接收 4. 关于操作日志记录 > 系统中定义了注解`SystemLog`来标记哪些接口需要记录用户操作,该注解必须针对方法标记,并且无法标记多种操作;当标记在类上时,仅取value字段作为上级模块名 5. 关于封装的公共方法和抽象对象包`com.simuwang.base.common.support.*`的说明 > 系统定义数据库操作数据抽象类 `BaseEntity`,基础查询请求参数抽象类 `BaseQuery`,基础视图对象 `BaseVO`,一系列支持新增和修改请求的抽象类 `*Cmd` > 和抽象的service方法 `IService`;包括常见的单表分页和自己实现的多表关联的分页案例。 > > 其中 BaseEntity对象可以转换为BaseVO对象,只需要实现其中的toVo方法即可。详情参考 `SysUserController`类的使用方法