package com.qmth.ops.api.controller.admin; import com.baomidou.mybatisplus.core.metadata.IPage; import com.qmth.ops.api.constants.OpsApiConstants; import com.qmth.ops.api.security.AdminSession; import com.qmth.ops.biz.domain.App; import com.qmth.ops.biz.domain.AppDTO; import com.qmth.ops.biz.domain.AppUser; import com.qmth.ops.biz.domain.Role; import com.qmth.ops.biz.query.AppQuery; import com.qmth.ops.biz.service.AppService; import com.qmth.ops.biz.service.AppUserService; import com.qmth.ops.biz.service.UserService; import com.qmth.ops.biz.service.VersionService; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.List; @RestController @RequestMapping(OpsApiConstants.ADMIN_URI_PREFIX + "/app") public class AppController { @Resource private AppService appService; @Resource private AppUserService appUserService; @Resource private VersionService versionService; @Resource private UserService userService; @PostMapping("/query") public IPage query(@RequestAttribute AdminSession adminSession, AppQuery query) { query.setUser(adminSession.getUser()); return appService.query(query); } @PostMapping("/list") public List list(@RequestAttribute AdminSession adminSession, AppQuery query) { query.setUser(adminSession.getUser()); return appService.list(query); } @PostMapping("/insert") public AppDTO insert(@RequestAttribute AdminSession adminSession, App app) { adminSession.validateRole(Role.ADMIN, Role.OPS); appService.insert(app); return appService.findDTO(app.getId()); } @PostMapping("/update") public AppDTO update(@RequestAttribute AdminSession adminSession, App app) { adminSession.validateRole(Role.ADMIN, Role.OPS); appService.update(app); return appService.findDTO(app.getId()); } @PostMapping("/master_version") public AppDTO updateMasterVersion(@RequestAttribute AdminSession adminSession, @RequestParam Long id, @RequestParam Long versionId) { adminSession.validateRole(Role.ADMIN, Role.OPS); appService.setMasterVersion(appService.getById(id), versionService.getById(versionId)); return appService.findDTO(id); } @PostMapping("/user/bind") public AppUser bindUser(@RequestAttribute AdminSession adminSession, @RequestParam Long id, @RequestParam Long userId) { adminSession.validateRole(Role.ADMIN); return appUserService.insert(appService.getById(id), userService.getById(userId)); } @PostMapping("/user/unbind") public AppUser unbindUser(@RequestAttribute AdminSession adminSession, @RequestParam Long id, @RequestParam Long userId) { adminSession.validateRole(Role.ADMIN); appUserService.delete(appService.getById(id), userService.getById(userId)); return new AppUser(id, userId); } }