package com.persagy.proxy.adm.controller; import cn.hutool.core.collection.CollUtil; import com.persagy.proxy.adm.constant.AdmCommonConstant; import com.persagy.proxy.adm.model.AdmFloor; import com.persagy.proxy.adm.request.AdmCreateRequest; import com.persagy.proxy.adm.request.AdmQueryCriteria; import com.persagy.proxy.adm.request.AdmResponse; import com.persagy.proxy.adm.service.IAdmFloorService; import com.persagy.proxy.common.entity.InstanceUrlParam; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.ws.rs.QueryParam; import java.util.List; /** * Adm 楼层 API * @author lvxy * @date 2021/8/16 */ @RestController @RequestMapping("/object/floor") public class AdmFloorController { @Autowired private IAdmFloorService service; @Value("${middleware.group.code}") private String groupCode; /** * 创建 * @param createRequest * @return * @throws Exception */ @PostMapping("/create") public AdmResponse create(@RequestBody AdmCreateRequest createRequest, @QueryParam("projectId") String projectId) throws Exception { // 组装上下文条件 InstanceUrlParam context = new InstanceUrlParam(groupCode, null, projectId, AdmCommonConstant.APP_ID); //List vos = CollUtil.newArrayList(createRequest.getContent()); List vos = service.doInsert(context, AdmFloor.class, createRequest.getContent()); return AdmResponse.success(vos); } /** * 根据ID删除 * @param vos * @return * @throws Exception */ @PostMapping("/delete") public AdmResponse delete(@QueryParam("projectId") String projectId, @RequestBody List vos) throws Exception { // 组装上下文条件 InstanceUrlParam context = new InstanceUrlParam(groupCode, null, projectId, AdmCommonConstant.APP_ID); service.doDelete(context, vos); return AdmResponse.success(); } /** * 根据ID删除 - 单条删除 * @param vos * @return * @throws Exception */ @PostMapping("/single/delete") public AdmResponse deleteSingle(@QueryParam("projectId") String projectId, @RequestBody List vos) throws Exception { // 组装上下文条件 InstanceUrlParam context = new InstanceUrlParam(groupCode, null, projectId, AdmCommonConstant.APP_ID); service.doDelete(context, vos); return AdmResponse.success(); } /** * 更新 * @param admFloor * @return * @throws Exception */ @PostMapping("/update") public AdmResponse update(@RequestBody AdmCreateRequest admFloor, @QueryParam("projectId") String projectId) throws Exception { // 组装上下文条件 InstanceUrlParam context = new InstanceUrlParam(groupCode, null, projectId, AdmCommonConstant.APP_ID); List vos = CollUtil.newArrayList(admFloor.getContent()); vos = service.doUpdate(context, AdmFloor.class, vos); return AdmResponse.success(vos); } /** * 更新 outline * TODO 暂时不知道具体的参数,先做所有字段的更新,之后有具体场景再做细化 * @param admFloor * @return * @throws Exception */ @PostMapping("/update-outline") public AdmResponse updateOutline(@RequestBody AdmCreateRequest admFloor, @QueryParam("projectId") String projectId) throws Exception { // 组装上下文条件 InstanceUrlParam context = new InstanceUrlParam(groupCode, null, projectId, AdmCommonConstant.APP_ID); List vos = CollUtil.newArrayList(admFloor.getContent()); vos = service.doUpdateOutLine(context, AdmFloor.class, vos); return AdmResponse.success(vos); } /** * 查询 * @param projectId * @param request * @return * @throws Exception */ @PostMapping("/query") public AdmResponse query(@QueryParam("projectId") String projectId, @RequestBody AdmQueryCriteria request) throws Exception { // 组装上下文条件 InstanceUrlParam context = new InstanceUrlParam(groupCode, null, projectId, AdmCommonConstant.APP_ID); request.setName("floor"); return service.doQuery(context, request, AdmFloor.class); } /** * 查询 * @param projectId * @param request * @return * @throws Exception */ @PostMapping("/query-outline") public AdmResponse queryOutline(@QueryParam("projectId") String projectId, @RequestBody AdmQueryCriteria request) throws Exception { // 组装上下文条件 InstanceUrlParam context = new InstanceUrlParam(groupCode, null, projectId, AdmCommonConstant.APP_ID); request.setName("floor"); return service.doQueryOutLine(context, request, AdmFloor.class); } }