控制器接口
控制器(controller)在系统或者插件下controller文件夹下,使用springboot开发,遵循restfulapi接口规范,开发之前请掌握相关知识
- 打开系统你会发现controller下有adminapi,api,core子项文件夹,这里是系统将不同的端口放在一起统一管理,包括后期插件开发也是分成不同端口。
- 接口使用restfulapi开发,命名为:主题+Controller, 接口命名规范:adminapi(api)/插件或者模块名称/功能子项模块或者功能名称/功能名称/参数
例如:adminapi/member/member_account/{id} 代表adminapi端口,会员模块,会员账户,对应id的账户详情
adminapi/shop/goods/goods_category 代表adminapi端口,商城插件,商品模块,商品分类
下面是一个类文件实例:
package com.niu.core.controller.adminapi.site;
import cn.dev33.satoken.annotation.SaCheckLogin;
import cn.hutool.json.JSONArray;
import com.niu.core.common.domain.Result;
import com.niu.core.common.domain.PageResult;
import com.niu.core.entity.addon.Addon;
import com.niu.core.enums.site.SiteStatusEnum;
import com.niu.core.service.admin.auth.IAuthService;
import com.niu.core.service.admin.site.ISiteService;
import com.niu.core.service.admin.site.param.SiteAddParam;
import com.niu.core.service.admin.site.param.SiteEditParam;
import com.niu.core.service.admin.site.param.SiteParam;
import com.niu.core.service.admin.site.param.SiteSearchParam;
import com.niu.core.service.admin.site.vo.SiteInfoVo;
import com.niu.core.service.admin.site.vo.SiteListVo;
import com.niu.core.common.domain.PageParam;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
/**
* 站点控制器
*/
@RestController
@RequestMapping("adminapi/site")
@SaCheckLogin
public class SiteController {
@Resource
ISiteService siteService;
@Resource
IAuthService authService;
/**
* 站点列表
* @param pageParam 分页
* @param searchParam 搜索条件
* @return Result<PageResult<SiteListVo>>
*/
@GetMapping("/site")
public Result<PageResult<SiteListVo>> list(@Validated PageParam pageParam,
@Validated SiteSearchParam searchParam) {
PageResult<SiteListVo> list = siteService.list(pageParam, searchParam);
return Result.success(list);
}
/**
* 站点详情
* @param id 主键ID
* @return Result<SiteInfoVo>
*/
@GetMapping("/site/{id}")
public Result<SiteInfoVo> info(@Validated @PathVariable("id") Integer id) {
SiteInfoVo info = siteService.info(id);
return Result.success(info);
}
/**
* 站点添加
* @param addParam 添加参数
* @return Result<Object>
*/
@PostMapping("/site")
public Result<Object> add(@Validated @RequestBody SiteAddParam addParam) {
siteService.add(addParam);
return Result.success();
}
/**
* 站点编辑
* @param editParam 编辑参数
* @return Result<Object>
*/
@PutMapping("/site/{id}")
public Result<Object> edit(@Validated @PathVariable("id") Integer id, @Validated @RequestBody SiteEditParam editParam) {
siteService.edit(id, editParam);
return Result.success();
}
/**
* 站点删除
* @param id 参数
* @return Result<Object>
*/
@DeleteMapping("/site/{id}")
public Result<Object> del(@Validated @PathVariable("id") Integer id) {
siteService.del(id);
return Result.success();
}
/**
* 关闭站点
* @param id
* @return
*/
@PutMapping("/closesite/{id}")
public Result<Object> closeSite(@Validated @PathVariable Integer id){
siteService.closeSite(id);
return Result.success();
}
/**
* 关闭站点
* @param id
* @return
*/
@PutMapping("/opensite/{id}")
public Result<Object> openSite(@Validated @PathVariable Integer id){
siteService.openSite(id);
return Result.success();
}
/**
* 站点状态列表
* @return
*/
@GetMapping("/statuslist")
public Result<Map<Integer, String>> statusList(){
return Result.success(SiteStatusEnum.getMap());
}
/**
* 获取所有菜单
*
* @return
*/
@GetMapping("/site/menu")
public Result<JSONArray> menu(){
return Result.success(authService.getAuthMenuTreeList("all"));
}
/**
* 获取站点支持的应用插件
*
*/
@GetMapping("/addons")
public Result<List<Addon>> addons() {
return Result.success(siteService.getSiteAddons());
}
}