diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/feign/PageElementApi.java b/tyr-api/src/main/java/cn/axzo/tyr/client/feign/PageElementApi.java index eefc626d..49867907 100644 --- a/tyr-api/src/main/java/cn/axzo/tyr/client/feign/PageElementApi.java +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/feign/PageElementApi.java @@ -1,6 +1,5 @@ package cn.axzo.tyr.client.feign; -import cn.axzo.framework.domain.page.Page; import cn.axzo.framework.domain.web.result.ApiPageResult; import cn.axzo.framework.domain.web.result.ApiResult; import cn.axzo.tyr.client.model.req.*; @@ -64,10 +63,6 @@ public interface PageElementApi { ApiPageResult pageV2(@RequestBody @Valid PageQueryElementV2Req req); /** 新增、编辑页面元素类型 **/ - @PostMapping("/api/pageElement/saveOrUpdatePage") - ApiResult saveOrUpdatePage(@RequestBody @Valid SaveOrUpdatePageElementPageReq req); - - /** 新增、编辑页面组件元素类型 **/ - @PostMapping("/api/pageElement/saveOrUpdateComponent") - ApiResult saveOrUpdateComponent(@RequestBody @Valid SaveOrUpdatePageElementComponentReq req); + @PostMapping("/api/pageElement/saveOrUpdate") + ApiResult saveOrUpdate(@RequestBody @Valid SaveOrUpdatePageElementReq req); } diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/model/req/SaveOrUpdatePageElementComponentReq.java b/tyr-api/src/main/java/cn/axzo/tyr/client/model/req/SaveOrUpdatePageElementComponentReq.java deleted file mode 100644 index 18843682..00000000 --- a/tyr-api/src/main/java/cn/axzo/tyr/client/model/req/SaveOrUpdatePageElementComponentReq.java +++ /dev/null @@ -1,42 +0,0 @@ -package cn.axzo.tyr.client.model.req; - -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - -import javax.validation.constraints.Min; -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.NotNull; - -/** - * @author likunpeng - * @version 1.0 - * @date 2024/8/21 - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -public class SaveOrUpdatePageElementComponentReq { - - private Long id; - - /** 分组ID **/ - @NotNull(message = "分组ID不能为空") - @Min(value = 1, message = "分组ID有误") - private Long pageId; - - /** 项目编码 **/ - @NotBlank(message = "项目编码不能为空") - private String code; - - /** 元素名称 **/ - @NotBlank(message = "元素名称不能为空") - private String name; - - /** 操作人personId **/ - @NotNull(message = "操作人不能为空") - @Min(value = 1, message = "操作人有误") - private Long operatorId; -} diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/model/req/SaveOrUpdatePageElementPageReq.java b/tyr-api/src/main/java/cn/axzo/tyr/client/model/req/SaveOrUpdatePageElementReq.java similarity index 84% rename from tyr-api/src/main/java/cn/axzo/tyr/client/model/req/SaveOrUpdatePageElementPageReq.java rename to tyr-api/src/main/java/cn/axzo/tyr/client/model/req/SaveOrUpdatePageElementReq.java index e4313a01..51f391b0 100644 --- a/tyr-api/src/main/java/cn/axzo/tyr/client/model/req/SaveOrUpdatePageElementPageReq.java +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/model/req/SaveOrUpdatePageElementReq.java @@ -18,14 +18,20 @@ import javax.validation.constraints.NotNull; @Builder @NoArgsConstructor @AllArgsConstructor -public class SaveOrUpdatePageElementPageReq { +public class SaveOrUpdatePageElementReq { private Long id; /** 项目编码 **/ - @NotBlank(message = "项目编码不能为空") private String itemCode; + /** 分组ID **/ + private Long pageId; + + /** 页面元素类型:PAGE/COMPONENT **/ + @NotBlank(message = "页面元素类型不能为空") + private String type; + /** 项目编码 **/ @NotBlank(message = "项目编码不能为空") private String code; diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/controller/permission/PageElementController.java b/tyr-server/src/main/java/cn/axzo/tyr/server/controller/permission/PageElementController.java index e1504269..5b56d023 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/controller/permission/PageElementController.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/controller/permission/PageElementController.java @@ -82,14 +82,8 @@ public class PageElementController implements PageElementApi { } @Override - public ApiResult saveOrUpdatePage(SaveOrUpdatePageElementPageReq req) { - saasPageElementService.saveOrUpdatePage(req); - return ApiResult.ok(); - } - - @Override - public ApiResult saveOrUpdateComponent(SaveOrUpdatePageElementComponentReq req) { - saasPageElementService.saveOrUpdateComponent(req); + public ApiResult saveOrUpdate(SaveOrUpdatePageElementReq req) { + saasPageElementService.saveOrUpdate(req); return ApiResult.ok(); } } diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/service/SaasPageElementService.java b/tyr-server/src/main/java/cn/axzo/tyr/server/service/SaasPageElementService.java index d4497533..8247864a 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/service/SaasPageElementService.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/service/SaasPageElementService.java @@ -80,7 +80,5 @@ public interface SaasPageElementService extends IService { PageResp pageV2(PageQueryElementV2Req req); - Long saveOrUpdatePage(SaveOrUpdatePageElementPageReq req); - - Long saveOrUpdateComponent(SaveOrUpdatePageElementComponentReq req); + Long saveOrUpdate(SaveOrUpdatePageElementReq req); } diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/SaasPageElementServiceImpl.java b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/SaasPageElementServiceImpl.java index ecfd952b..36d32179 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/SaasPageElementServiceImpl.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/SaasPageElementServiceImpl.java @@ -513,26 +513,18 @@ public class SaasPageElementServiceImpl extends ServiceImpl categories = saasPageElementCategoryDao.lambdaQuery() - .eq(BaseEntity::getIsDelete, DeleteEnum.NORMAL.getValue()) - .eq(SaasPageElementCategory::getItemCode, req.getItemCode()).list(); - AssertUtil.notEmpty(categories, "元素分类不存在。"); - SaasPageElementCategory category = categories.get(0); - + public Long saveOrUpdate(SaveOrUpdatePageElementReq req) { SaasPageElement basePageElement = SaasPageElement.builder() .version(req.getVersion()) .groupCode(req.getCode()) .code(req.getCode()) .name(req.getName()) - .type(PageElementTypeEnum.PAGE.getCode()) + .type(req.getType()) .linkUrl(req.getLinkUrl()) .linkExt(getLinkExtStr(req.getIosRouterUrl(), req.getAndroidRouterUrl())) - .terminal(category.getTerminal()) .appType(req.getAppType()) .appId(req.getAppId()) .itemCode(req.getItemCode()) - .itemName(category.getItemName()) .build(); if (Objects.nonNull(req.getId())) { @@ -542,67 +534,48 @@ public class SaasPageElementServiceImpl extends ServiceImpl categories = saasPageElementCategoryDao.lambdaQuery() + .eq(BaseEntity::getIsDelete, DeleteEnum.NORMAL.getValue()) + .eq(SaasPageElementCategory::getItemCode, req.getItemCode()).list(); + AssertUtil.notEmpty(categories, "元素分类不存在。"); + SaasPageElementCategory category = categories.get(0); + basePageElement.setTerminal(category.getTerminal()); + basePageElement.setItemName(category.getItemName()); + } else if (PageElementTypeEnum.COMPONENT.getCode().equals(req.getType())) { + AssertUtil.isTrue(Objects.nonNull(req.getPageId()) && req.getPageId() > 0, "页面元素不存在"); + List pageElements = saasPageElementDao.lambdaQuery() + .eq(BaseEntity::getIsDelete, DeleteEnum.NORMAL.getValue()) + .eq(SaasPageElement::getId, req.getPageId()).list(); + AssertUtil.notEmpty(pageElements, "父级元素不存在。"); + + SaasPageElement pageElement = pageElements.get(0); + basePageElement.setVersion(pageElement.getVersion()); + basePageElement.setGroupCode(pageElement.getCode()); + basePageElement.setTerminal(pageElement.getTerminal()); + basePageElement.setAppType(pageElement.getAppType()); + basePageElement.setAppId(pageElement.getAppId()); + basePageElement.setItemCode(pageElement.getItemCode()); + basePageElement.setItemName(pageElement.getItemName()); + } + // 校验code唯一 validCode(basePageElement.getCode()); saasPageElementDao.save(basePageElement); } // 记录操作日志 try { - saveOrUpdatePageOperateLog(req, basePageElement); - } catch (Exception e) { - log.warn("save operate log error", e); - } - - return basePageElement.getId(); - } - - @Override - public Long saveOrUpdateComponent(SaveOrUpdatePageElementComponentReq req) { - List pageElements = saasPageElementDao.lambdaQuery() - .eq(BaseEntity::getIsDelete, DeleteEnum.NORMAL.getValue()) - .eq(SaasPageElement::getId, req.getPageId()).list(); - AssertUtil.notEmpty(pageElements, "父级元素不存在。"); - SaasPageElement pageElement = pageElements.get(0); - - SaasPageElement basePageElement = SaasPageElement.builder() - .version(pageElement.getVersion()) - .groupCode(pageElement.getCode()) - .code(req.getCode()) - .name(req.getName()) - .type(PageElementTypeEnum.COMPONENT.getCode()) - .terminal(pageElement.getTerminal()) - .appType(pageElement.getAppType()) - .appId(pageElement.getAppId()) - .itemCode(pageElement.getItemCode()) - .itemName(pageElement.getItemName()) - .build(); - - if (Objects.nonNull(req.getId())) { - SaasPageElement dbPageElement = saasPageElementDao.getById(req.getId()); - AssertUtil.notNull(dbPageElement, "页面组件元素不存在"); - basePageElement.setId(dbPageElement.getId()); - if (!dbPageElement.getCode().equals(basePageElement.getCode())) { - // 校验code唯一 - validCode(basePageElement.getCode()); - // 更新关联关系的page_element_code - saasPageElementFeatureResourceRelationDao.updateGroupCode(dbPageElement.getCode(), basePageElement.getCode(), pageElement.getTerminal()); - } - saasPageElementDao.updateById(basePageElement); - } else { - validCode(basePageElement.getCode()); - saasPageElementDao.save(basePageElement); - } - - // 记录操作日志 - try { - saveOrUpdateComponentOperateLog(req, basePageElement); + saveOrUpdateOperateLog(req, basePageElement); } catch (Exception e) { log.warn("save operate log error", e); } @@ -686,18 +659,7 @@ public class SaasPageElementServiceImpl extends ServiceImpl