package com.pavis.app.saasbacken.controller; import com.alibaba.fastjson.JSON; import com.pavis.app.saasbacken.aop.PreSaveLog; import com.pavis.app.saasbacken.exception.GlobalExceptionHandler; import com.pavis.app.saasbacken.form.ModuleTree; import com.pavis.app.saasbacken.http.ResultBody; import com.pavis.app.saasbacken.service.*; import com.pavis.app.saasbacken.utils.HttpContextUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import java.io.IOException; import java.util.List; /** * @program: push-saas * @description: 通用接口 * @author: Guanzi * @created: 2021/11/04 14:42 */ @Slf4j @Api(value = "通用接口") @RestController @RequestMapping("/api") public class CommonController { @Autowired private DicService dicService; @Autowired private CheckModuleService checkModuleService; @Autowired private InitDataParentService initDataParentService; @Autowired private InitDataChildService initDataChildService; @Autowired private InitDataThirdService initDataThirdService; /** * 通用配置: * key-value。通用配置。 */ @PreSaveLog("构建字典库信息") @ApiOperation(value = "构建字典库信息接口", notes = "构建字典库信息接口") @GetMapping("/dic/{test}") public ResultBody dic(@PathVariable("test") String test) { HttpServletRequest request = HttpContextUtils.getHttpServletRequest(); String uri = request.getRequestURI(); try { log.info("param dic:{}", test); return ResultBody.ok().path(uri).data(dicService.createDic()); } catch (Exception e) { return GlobalExceptionHandler.resolveException(e, uri); } } /** * 通用配置: * key-value。通用配置。 */ @PreSaveLog("初始化节点data1数据信息") @ApiOperation(value = "初始化节点data1数据信息接口", notes = "初始化节点data1数据信息接口") @GetMapping("/init/parent") public ResultBody initDataParent() { HttpServletRequest request = HttpContextUtils.getHttpServletRequest(); String uri = request.getRequestURI(); try { log.info("init initDataParent:{}", "init"); return ResultBody.ok().path(uri).data(initDataParentService.initDataParent()); } catch (Exception e) { return GlobalExceptionHandler.resolveException(e, uri); } } /** * 通用配置: * key-value。通用配置。 */ @PreSaveLog("初始化节点data2数据信息") @ApiOperation(value = "初始化节点data2数据信息接口", notes = "初始化节点data2数据信息接口") @GetMapping("/init/child") public ResultBody initDataChild() { HttpServletRequest request = HttpContextUtils.getHttpServletRequest(); String uri = request.getRequestURI(); try { log.info("init initDataChild:{}", "init"); return ResultBody.ok().path(uri).data(initDataChildService.initDataChild()); } catch (Exception e) { return GlobalExceptionHandler.resolveException(e, uri); } } /** * 通用配置: * key-value。通用配置。 */ @PreSaveLog("初始化节点data3数据信息") @ApiOperation(value = "初始化节点data3数据信息接口", notes = "初始化节点data3数据信息接口") @GetMapping("/init/third") public ResultBody initDataThird() { HttpServletRequest request = HttpContextUtils.getHttpServletRequest(); String uri = request.getRequestURI(); try { log.info("init initDataThird:{}", "init"); return ResultBody.ok().path(uri).data(initDataThirdService.initDataThird()); } catch (Exception e) { return GlobalExceptionHandler.resolveException(e, uri); } } /** * 通用配置: * key-value。通用配置。 */ @PreSaveLog("获取所有基础功能数据") @ApiOperation(value = "获取所有基础功能数据信息接口", notes = "获取所有基础功能数据信息接口") @GetMapping("/get/lib") public ResultBody getLibrary() { HttpServletRequest request = HttpContextUtils.getHttpServletRequest(); String uri = request.getRequestURI(); try { log.info("getLibrary:{}", "init"); return ResultBody.ok().path(uri).data(checkModuleService.selModules()); } catch (Exception e) { return GlobalExceptionHandler.resolveException(e, uri); } } /** * 通用配置: * key-value。通用配置。 */ @PreSaveLog("节点管理员动态创建节点数据") @ApiOperation(value = "节点管理员动态创建节点数据接口", notes = "节点管理员动态创建节点数据接口") @PostMapping("/add/init") // public ResultBody addInitFunction(@RequestBody List moduleParams) { // public ResultBody addInitFunction(@RequestBody Object o) { public ResultBody addInitFunction(@RequestBody List moduleParams) { HttpServletRequest request = HttpContextUtils.getHttpServletRequest(); String uri = request.getRequestURI(); try { log.info("addInitFunction:{}", JSON.toJSONString(moduleParams)); // return ResultBody.ok().path(uri).data(null); return ResultBody.ok().path(uri).data(checkModuleService.addInitData(moduleParams)); } catch (Exception e) { return GlobalExceptionHandler.resolveException(e, uri); } } @PreSaveLog("获取节点基础数据") @ApiOperation(value = "获取节点基础数据接口", notes = "获取节点基础数据接口") @PostMapping("/node/data") public ResultBody getNodeData(String resType) { HttpServletRequest request = HttpContextUtils.getHttpServletRequest(); String uri = request.getRequestURI(); try { log.info("getNodeData:{}", resType); return ResultBody.ok().path(uri).data(checkModuleService.getNodeData(resType)); } catch (Exception e) { return GlobalExceptionHandler.resolveException(e, uri); } } @PostMapping("/province/get") @PreSaveLog("省市区联动") @ApiOperation(value = "获取省市区联动接口", notes = "获取省市区联动接口") public ResultBody getPCD(Integer pid) throws IOException { HttpServletRequest request = HttpContextUtils.getHttpServletRequest(); String uri = request.getRequestURI(); try { log.info("getPCD:{}", pid); return ResultBody.ok().path(uri).data(checkModuleService.getPCD(pid)); } catch (Exception e) { return GlobalExceptionHandler.resolveException(e, uri); } } }