guoxb2016 9d854f867f fix:修改依赖版本与中心环境一致 | hace 5 meses | |
---|---|---|
server | hace 5 meses | |
.gitignore | hace 5 meses | |
README.md | hace 5 meses | |
pack.sh | hace 5 meses | |
pom.xml | hace 5 meses | |
卫星应用软件研究室开发规范.md | hace 5 meses |
持续集成结果演示地址:
开发语言
中间件
部署环境
通用
后端
在code-generator
模块内,运行CodeGenerator.java主类,控制台填相关参数,即可生成代码。
代码生成模板每个项目需要自己按照实际情况,调整部分内容,具体配置文件看: codegen.properties
代码生成模板,请按照实际情况进行调整,模板位置:codegen-template
登录
登录接口具体直接看Swagger - uac_Login
章节。包含登录、登出、用户会话列表查询、踢用户下线
使用swagger调试接口时,先调用/login
登录接口获取token,然后将token填入swagger右上角的Authorize按钮
中。
密码前端统一先使用md5普通加密一次,所以直接调用登录接口时,需要使用md5以后的密码。
例如初始密码六个1:
111111
,MD5以后为96e79218965eb72c92a549dd5a330112
,则直接调用接口登陆时,使用的密码即为此MD5码。 UI前端密码输入框自动做了MD5转换,所以直接输入111111
即可。
分页查询
分页查询,后端统一提供一个参数为PageModel对象的接口,前端传递对象信息作为参数进行查询。
- size: 分页条数,-1时表示查询所有
- page: 分页页数,第几页
- sortName: 排序方式:如多排序条件,分隔符为英文半角逗号:name asc,date desc
- queryConditionJson: 查询条件
前端可以自由定制查询条件,格式如下
```
[{"fieldName":"name","operate":"eq","value":"g"},{},...,{}]
等于:eq,不等于:ne
大于:gt,小于:lt,大于等于:ge,小于等于:le
类似:like,不类似:notLike
区间:between,两个值分别用 value,endValue
包含:in,不包含:notIn
为Null:isNull,不为Null:isNotNull
```
任意Service
内,可以使用以下方式,无需写sql即可创建查询,主要利用到mybatis-plus条件构造器实现。
使用方式例如:
```java
//方式1
public List<User> findAllByLoginId(String value) {
//需要在某service构造其他service的查询条件时,调用对应的 service.createQuery()方法即可。
QueryDetail<User> queryDetail = createQuery();
queryDetail.lambda().eq(User::getLoginId, value);
return findAll(queryDetail);
}
//方式2
public List<User> findAllByLoginIdOrPhone(String value) {
List<User> users = findAll(createQuery().lambda().eq(User::getLoginId, value).or().eq(User::getPhone, value));
return users;
}
```
使用方式请查看enhance-websocket/README.md
分离部署:前端单独打包为nginx镜像运行。 合并部署:前端build后,将dist文件夹内容,复制到server/gateway/src/main/resources/static 文件夹。
数据权限控制功能,一般情况下为根据用户、组织、角色等进行数据查询结果的筛选。
系统已经包含数据权限控制功能,本质上为不同查询接口,需要根据不同的用户角色权限拼接不同的SQL条件。具体用法举例如下:
@Controller
@RequestMapping("/user")
public class UserResource extends DataVOResource<UserService, UserVO> {
@DataScope(orgAlias = "o",statementIds = {"com.c503.htphy.ddcs.module.uac.repository.UserRepository.selectById"})
@GetMapping(value = "/")
@ApiOperation(value = "获取用户列表", notes = "根据分页参数获取分页列表")
public ResponseEntity<CustomMessage<JsonNode>> getPage(PageModel<UserVO> pm) {
service.findVOPage(pm);
JsonNode rs = JacksonUtils.toJsonNodeWithDefaultMapper(pm);
return ResultBuilder.buildObject(rs);
}
}
关键点在会调用到数据库访问的方法上,添加@DataScope
注解,注解具体字段内容,和需要控制的权限对象有关,具体请看:
DataScope.java
相关代码请查看:com.c503.htphy.ddcs.module.config.config.datascope
背后利用到Mybatis-plus拦截插件功能。基于注解,增加切面类对所有需要进行权限控制的SQL语句拼接条件。 因此如需自定义更丰富的权限控制条件,请继续拓展DataScopeAspect.java