此目录用于存放项目的开发相关文档,包括开发指南、代码样例、问题记录等。
# 开发环境启动脚本示例
#!/bin/bash
# 启动MySQL
sudo systemctl start mysql
# 启动Redis
sudo systemctl start redis
# 启动后端应用
cd ruoyi-admin
mvn spring-boot:run -Dspring-boot.run.profiles=dev
# 启动前端应用
cd ../plus-ui
npm run dev
// 标准Controller示例
@RestController
@RequestMapping("/api/v1/users")
@Tag(name = "用户管理", description = "用户管理相关接口")
public class UserController extends BaseController {
@Autowired
private IUserService userService;
@SaCheckPermission("system:user:list")
@GetMapping
@Operation(summary = "查询用户列表", description = "分页查询用户信息")
public R<PageResult<UserVO>> list(@Valid UserQueryDTO queryDTO) {
return R.ok(userService.queryPageList(queryDTO));
}
}
@Service
@Transactional(rollbackFor = Exception.class)
public class UserServiceImpl implements IUserService {
@Autowired
private UserMapper userMapper;
@Override
@DataPermission(deptAlias = "d", userAlias = "u")
public PageResult<UserVO> queryPageList(UserQueryDTO queryDTO) {
LambdaQueryWrapper<SysUser> lqw = buildQueryWrapper(queryDTO);
Page<UserVO> result = userMapper.selectVoPage(queryDTO.toPage(), lqw);
return PageResult.build(result);
}
private LambdaQueryWrapper<SysUser> buildQueryWrapper(UserQueryDTO queryDTO) {
return Wrappers.<SysUser>lambdaQuery()
.like(StringUtils.isNotBlank(queryDTO.getUserName()),
SysUser::getUserName, queryDTO.getUserName())
.eq(StringUtils.isNotBlank(queryDTO.getStatus()),
SysUser::getStatus, queryDTO.getStatus())
.between(queryDTO.getCreateTime() != null && queryDTO.getCreateTime().length == 2,
SysUser::getCreateTime,
queryDTO.getCreateTime()[0], queryDTO.getCreateTime()[1]);
}
}
@SpringBootTest
@Transactional
@Rollback
class UserServiceTest {
@Autowired
private IUserService userService;
@Test
@DisplayName("测试用户查询功能")
void testQueryUser() {
// Given
UserQueryDTO queryDTO = new UserQueryDTO();
queryDTO.setUserName("admin");
// When
PageResult<UserVO> result = userService.queryPageList(queryDTO);
// Then
assertThat(result).isNotNull();
assertThat(result.getRecords()).isNotEmpty();
}
}
必装插件:
- Lombok
- MyBatis Plus
- Alibaba Java规约检查
- SonarLint
- GitToolBox
- Rainbow Brackets
- Translation
可选插件:
- JRebel (热部署)
- Sequence Diagram (时序图)
- RestfulTool (接口测试)
- Database Navigator (数据库)
# 1. 克隆项目
git clone https://gitee.com/dromara/RuoYi-Vue-Plus.git
# 2. 导入数据库
mysql -u root -p < script/sql/ry_vue_5.X.sql
# 3. 修改配置
# 编辑 ruoyi-admin/src/main/resources/application-dev.yml
# 修改数据库连接信息
# 4. 启动后端
cd ruoyi-admin
mvn spring-boot:run
# 5. 启动前端
cd plus-ui
npm install
npm run dev