Appearance
Api
以下是代码生成器生成的结构。 其中使用的getQueryMap方法需要继承 BasicApi 类,如果不需要使用这个快捷获取参数的方式,也可以不继承。
Api.API_MANAGE 是系统推荐的接口前缀,表明该接口为管理员接口,并且会校验系统是否有效。
此外还有
- API_PUBLIC不鉴权的接口,内部无法获取token。
- API_PROTECT需要鉴权,不校验系统有效性。
@RequireAuth 表名该接口需要鉴权
java
package cn.icframework.system.module.dep.api;
/**
* @author create by ic gen
* @since 2023/06/21
*/
@RestController
@RequestMapping(value = Api.API_MANAGE + "/dept", name = "部门(管理员)")
@RequireAuth(userType = UserType.MANAGER) // 必须是管理员才能访问
@RequiredArgsConstructor
public class ApiManageDept extends BasicApi {
private final DeptService deptService;
private final DeptVOConverter deptVOConverter;
private final DeptWrapperBuilder deptWrapperBuilder;
/**
* 获取单个详情
*
* @param id [Serializable] *id
* @return Response<DeptVO>
*/
@GetMapping(value = "/{id}", name = "获取详情")
public Response<DeptVO> detail(@PathVariable("id") Serializable id) {
Map<String, RequestValue> params = new HashMap<>();
params.put("id", new RequestValue(new String[]{id.toString()}));
SqlWrapper sqlWrapper = deptWrapperBuilder.build(params);
return Response.success(deptService.selectOneAs(sqlWrapper, DeptVO.class));
}
/**
* 删除
* @param ids [Serializable[]] id列表
* @return Response
*/
@DeleteMapping(name = "删除")
public Response<Void> delete(@RequestParam("ids") List<Serializable> ids) {
deptService.deleteByIds(ids);
return Response.success();
}
/**
* 编辑或者保存
* @return Response
*/
@PutMapping(name = "编辑")
public Response<Void> edit(@Validated DeptDTO form) {
deptService.edit(form);
return Response.success();
}
/**
* 新增
*/
@PostMapping(name = "新增")
public Response<Void> create(@Validated DeptDTO form) {
deptService.edit(form);
return Response.success();
}
/**
* 获取列表
*
* @param current [int] 当前页码
* @param pageSize [int] 分页大小
* @return PageResponse<DeptVO>
*/
@PostMapping(value = "/page", name = "分页查询")
public PageResponse<DeptVO> page(HttpServletRequest request, PageRequest page) {
SqlWrapper sqlWrapper = deptWrapperBuilder.build(getQueryMap(request));
return deptService.pageAs(page, sqlWrapper, DeptVO.class);
}
/**
* 查询全部
* @return List<DeptVO>
*/
@PostMapping(value = "/all", name = "查询全部")
public Response<List<DeptVO>> all(HttpServletRequest request) {
SqlWrapper sqlWrapper = deptWrapperBuilder.build(getQueryMap(request));
return Response.success(deptService.selectAs(sqlWrapper, DeptVO.class));
}
}