package com.qmth.ops.api.controller.admin; import com.qmth.boot.api.annotation.Aac; import com.qmth.boot.api.annotation.BOOL; import com.qmth.ops.api.constants.OpsApiConstants; import com.qmth.ops.api.security.AdminSession; import com.qmth.ops.api.security.Permission; import com.qmth.ops.api.vo.CodeNameVO; import com.qmth.ops.api.vo.EnvVO; import com.qmth.ops.biz.domain.AppEnv; import com.qmth.ops.biz.domain.Env; import com.qmth.ops.biz.domain.EnvType; import com.qmth.ops.biz.service.AppService; import com.qmth.ops.biz.service.EnvService; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; @RestController @RequestMapping(OpsApiConstants.ADMIN_URI_PREFIX + "/env") public class EnvController { @Resource private EnvService envService; @Resource private AppService appService; @RequestMapping("/types") @Aac(auth = BOOL.FALSE) public Object types() { return Arrays.stream(EnvType.values()).map(item -> new CodeNameVO(item.getCode(), item.getName())).toArray(); } @PostMapping("/insert") public EnvVO insert(@RequestAttribute AdminSession adminSession, Env env) { adminSession.permissionCheck(Permission.ENV_INSERT); env = envService.insert(env); return new EnvVO(env); } @PostMapping("/update") public EnvVO update(@RequestAttribute AdminSession adminSession, Env env) { adminSession.permissionCheck(Permission.ENV_EDIT); env = envService.update(env); return new EnvVO(env); } @PostMapping("/list") public List<AppEnv> list() { return envService.listAppEnv(); } @PostMapping("/app/list") public List<EnvVO> listByApp(@RequestParam Long appId) { return envService.list(appId).stream().map(EnvVO::new).collect(Collectors.toList()); } }