From 6e04dec96ef46884d1fea4f091c834e2ad5363a1 Mon Sep 17 00:00:00 2001 From: linbangquan <1437892690@qq.com> Date: Tue, 21 Nov 2023 12:05:36 +0800 Subject: [PATCH] =?UTF-8?q?[=E5=8A=9F=E8=83=BD]=20=E5=90=8E=E7=AB=AF-?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E8=A1=A8=E5=8D=95=E7=89=88=E6=9C=AC=E9=BB=98?= =?UTF-8?q?=E8=AE=A4=E5=9C=BA=E6=99=AF=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联 #[1029542964068352]后端-设置表单版本默认场景接口 http://192.168.0.96:8090/demo/rdm.html#/task-detail/939050947543040/939050947543050/1029542964068352 --- .../form/SaveFormVersionDefaultSceneApi.java | 89 +++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 src/main/java/neatlogic/module/tenant/api/form/SaveFormVersionDefaultSceneApi.java diff --git a/src/main/java/neatlogic/module/tenant/api/form/SaveFormVersionDefaultSceneApi.java b/src/main/java/neatlogic/module/tenant/api/form/SaveFormVersionDefaultSceneApi.java new file mode 100644 index 00000000..8b70896f --- /dev/null +++ b/src/main/java/neatlogic/module/tenant/api/form/SaveFormVersionDefaultSceneApi.java @@ -0,0 +1,89 @@ +package neatlogic.module.tenant.api.form; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import neatlogic.framework.auth.core.AuthAction; +import neatlogic.framework.auth.label.FORM_MODIFY; +import neatlogic.framework.common.constvalue.ApiParamType; +import neatlogic.framework.form.dao.mapper.FormMapper; +import neatlogic.framework.form.dto.FormVersionVo; +import neatlogic.framework.form.dto.FormVo; +import neatlogic.framework.form.exception.FormNotFoundException; +import neatlogic.framework.form.exception.FormVersionNotFoundException; +import neatlogic.framework.form.exception.FormVersionSceneNotFoundException; +import neatlogic.framework.restful.annotation.*; +import neatlogic.framework.restful.constvalue.OperationTypeEnum; +import neatlogic.framework.restful.core.privateapi.PrivateApiComponentBase; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.collections4.MapUtils; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Objects; + +@Service +@AuthAction(action = FORM_MODIFY.class) +@OperationType(type = OperationTypeEnum.UPDATE) +public class SaveFormVersionDefaultSceneApi extends PrivateApiComponentBase { + + @Resource + private FormMapper formMapper; + + @Override + public String getName() { + return "nmtaf.saveformversiondefaultsceneapi.getname"; + } + + @Input({ + @Param(name = "versionUuid", type = ApiParamType.STRING, desc = "common.versionuuid", isRequired = true), + @Param(name = "sceneUuid", type = ApiParamType.STRING, desc = "common.sceneuuid", isRequired = true) + }) + @Output({}) + @Description(desc = "nmtaf.saveformversiondefaultsceneapi.getname") + @Override + public Object myDoService(JSONObject paramObj) throws Exception { + String versionUuid = paramObj.getString("versionUuid"); + FormVersionVo formVersionVo = formMapper.getFormVersionByUuid(versionUuid); + if (formVersionVo == null) { + throw new FormVersionNotFoundException(versionUuid); + } + JSONObject config = formVersionVo.getFormConfig(); + if (MapUtils.isEmpty(config)) { + return null; + } + String sceneUuid = paramObj.getString("sceneUuid"); + String defaultSceneUuid = config.getString("defaultSceneUuid"); + if (Objects.equals(defaultSceneUuid, sceneUuid)) { + return null; + } + JSONArray sceneList = config.getJSONArray("sceneList"); + if (CollectionUtils.isEmpty(sceneList)) { + return null; + } + boolean flag = false; + for (int i = 0; i < sceneList.size(); i++) { + JSONObject sceneObj = sceneList.getJSONObject(i); + String uuid = sceneObj.getString("uuid"); + if (Objects.equals(uuid, sceneUuid)) { + flag = true; + break; + } + } + if (!flag) { + FormVo formVo = formMapper.getFormByUuid(formVersionVo.getFormUuid()); + if (formVo == null) { + throw new FormNotFoundException(formVersionVo.getFormUuid()); + } + throw new FormVersionSceneNotFoundException(formVo.getName(), String.valueOf(formVersionVo.getVersion()), sceneUuid); + } + config.put("defaultSceneUuid", sceneUuid); + formVersionVo.setFormConfig(config); + formMapper.updateFormVersionConfigByUuid(formVersionVo); + return null; + } + + @Override + public String getToken() { + return "form/version/defaultscene/save"; + } +} -- Gitee