feat(REQ-2899):前端资源新增、编辑接口调整

This commit is contained in:
李昆鹏 2024-08-23 08:50:33 +08:00
parent 7113284251
commit cc28bb554a
6 changed files with 48 additions and 135 deletions

View File

@ -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<PageElementResp> pageV2(@RequestBody @Valid PageQueryElementV2Req req);
/** 新增、编辑页面元素类型 **/
@PostMapping("/api/pageElement/saveOrUpdatePage")
ApiResult<Void> saveOrUpdatePage(@RequestBody @Valid SaveOrUpdatePageElementPageReq req);
/** 新增、编辑页面组件元素类型 **/
@PostMapping("/api/pageElement/saveOrUpdateComponent")
ApiResult<Void> saveOrUpdateComponent(@RequestBody @Valid SaveOrUpdatePageElementComponentReq req);
@PostMapping("/api/pageElement/saveOrUpdate")
ApiResult<Void> saveOrUpdate(@RequestBody @Valid SaveOrUpdatePageElementReq req);
}

View File

@ -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;
}

View File

@ -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;

View File

@ -82,14 +82,8 @@ public class PageElementController implements PageElementApi {
}
@Override
public ApiResult<Void> saveOrUpdatePage(SaveOrUpdatePageElementPageReq req) {
saasPageElementService.saveOrUpdatePage(req);
return ApiResult.ok();
}
@Override
public ApiResult<Void> saveOrUpdateComponent(SaveOrUpdatePageElementComponentReq req) {
saasPageElementService.saveOrUpdateComponent(req);
public ApiResult<Void> saveOrUpdate(SaveOrUpdatePageElementReq req) {
saasPageElementService.saveOrUpdate(req);
return ApiResult.ok();
}
}

View File

@ -80,7 +80,5 @@ public interface SaasPageElementService extends IService<SaasPageElement> {
PageResp<PageElementResp> pageV2(PageQueryElementV2Req req);
Long saveOrUpdatePage(SaveOrUpdatePageElementPageReq req);
Long saveOrUpdateComponent(SaveOrUpdatePageElementComponentReq req);
Long saveOrUpdate(SaveOrUpdatePageElementReq req);
}

View File

@ -513,26 +513,18 @@ public class SaasPageElementServiceImpl extends ServiceImpl<SaasPageElementMappe
@Override
@Transactional(rollbackFor = Exception.class)
public Long saveOrUpdatePage(SaveOrUpdatePageElementPageReq req) {
List<SaasPageElementCategory> 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<SaasPageElementMappe
if (!dbPageElement.getCode().equals(basePageElement.getCode())) {
// 校验code唯一
validCode(basePageElement.getCode());
// 更新子元素的group_code
saasPageElementDao.updateComponentsGroupCode(dbPageElement.getCode(), basePageElement.getCode(), category.getTerminal());
if (PageElementTypeEnum.PAGE.getCode().equals(req.getType())) {
// 更新子元素的group_code
saasPageElementDao.updateComponentsGroupCode(dbPageElement.getCode(), basePageElement.getCode(), dbPageElement.getTerminal());
}
// 更新关联关系的page_element_code
saasPageElementFeatureResourceRelationDao.updateGroupCode(dbPageElement.getCode(), basePageElement.getCode(), category.getTerminal());
saasPageElementFeatureResourceRelationDao.updateGroupCode(dbPageElement.getCode(), basePageElement.getCode(), dbPageElement.getTerminal());
}
saasPageElementDao.updateById(basePageElement);
} else {
if (PageElementTypeEnum.PAGE.getCode().equals(req.getType())) {
AssertUtil.isTrue(StringUtils.isNotBlank(req.getItemCode()), "页面元素不存在");
List<SaasPageElementCategory> 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<SaasPageElement> 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<SaasPageElement> 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<SaasPageElementMappe
return JSONObject.toJSONString(exts);
}
private void saveOrUpdatePageOperateLog(SaveOrUpdatePageElementPageReq req, SaasPageElement basePageElement) {
saasPgroupPermissionRelationOperateLogService.save(PermissionOperateLogReq.builder()
.tableName(PAGE_ELEMENT_TABLE_NAME)
.operatorId(req.getOperatorId())
.scene(PermissionRelationOperateLogSceneEnum.OMS_UPSERT_PAGE_ELEMENT.getValue())
.sceneId(basePageElement.getId().toString())
.requestData(req)
.operateData(basePageElement)
.build());
}
private void saveOrUpdateComponentOperateLog(SaveOrUpdatePageElementComponentReq req, SaasPageElement basePageElement) {
private void saveOrUpdateOperateLog(SaveOrUpdatePageElementReq req, SaasPageElement basePageElement) {
saasPgroupPermissionRelationOperateLogService.save(PermissionOperateLogReq.builder()
.tableName(PAGE_ELEMENT_TABLE_NAME)
.operatorId(req.getOperatorId())