feat(REQ-2899):前端资源删除接口

This commit is contained in:
李昆鹏 2024-08-23 10:36:29 +08:00
parent cc28bb554a
commit 50e2543702
6 changed files with 91 additions and 2 deletions

View File

@ -73,6 +73,11 @@ public enum PermissionRelationOperateLogSceneEnum {
*/
OMS_UPSERT_PAGE_ELEMENT("OMS_UPSERT_PAGE_ELEMENT", "oms新增、编辑页面元素"),
/**
* oms删除页面元素
*/
OMS_DELETE_PAGE_ELEMENT("OMS_DELETE_PAGE_ELEMENT", "oms删除页面元素"),
;
@EnumValue

View File

@ -62,7 +62,11 @@ public interface PageElementApi {
@PostMapping("/api/pageElement/pageV2")
ApiPageResult<PageElementResp> pageV2(@RequestBody @Valid PageQueryElementV2Req req);
/** 新增、编辑页面元素类型 **/
/** 新增、编辑页面元素 **/
@PostMapping("/api/pageElement/saveOrUpdate")
ApiResult<Void> saveOrUpdate(@RequestBody @Valid SaveOrUpdatePageElementReq req);
/** 删除页面元素 **/
@PostMapping("/api/pageElement/delete")
ApiResult<Void> delete(@RequestBody @Valid DeletePageElementReq req);
}

View File

@ -0,0 +1,31 @@
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 DeletePageElementReq {
@NotNull(message = "ID不能为空")
@Min(value = 1, message = "ID有误")
private Long id;
/** 操作人personId **/
@NotNull(message = "操作人不能为空")
@Min(value = 1, message = "操作人有误")
private Long operatorId;
}

View File

@ -86,4 +86,10 @@ public class PageElementController implements PageElementApi {
saasPageElementService.saveOrUpdate(req);
return ApiResult.ok();
}
@Override
public ApiResult<Void> delete(DeletePageElementReq req) {
saasPageElementService.delete(req);
return ApiResult.ok();
}
}

View File

@ -81,4 +81,6 @@ public interface SaasPageElementService extends IService<SaasPageElement> {
PageResp<PageElementResp> pageV2(PageQueryElementV2Req req);
Long saveOrUpdate(SaveOrUpdatePageElementReq req);
void delete(DeletePageElementReq req);
}

View File

@ -47,6 +47,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.google.common.base.Strings;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
@ -529,7 +530,7 @@ public class SaasPageElementServiceImpl extends ServiceImpl<SaasPageElementMappe
if (Objects.nonNull(req.getId())) {
SaasPageElement dbPageElement = saasPageElementDao.getById(req.getId());
AssertUtil.notNull(dbPageElement, "页面元素不存在");
AssertUtil.notNull(dbPageElement, "页面元素资源不存在");
basePageElement.setId(dbPageElement.getId());
if (!dbPageElement.getCode().equals(basePageElement.getCode())) {
// 校验code唯一
@ -583,6 +584,35 @@ public class SaasPageElementServiceImpl extends ServiceImpl<SaasPageElementMappe
return basePageElement.getId();
}
@Override
@Transactional(rollbackFor = Exception.class)
public void delete(DeletePageElementReq req) {
SaasPageElement dbPageElement = saasPageElementDao.getById(req.getId());
AssertUtil.notNull(dbPageElement, "页面元素资源不存在");
Set<String> codes = Sets.newHashSet(dbPageElement.getCode());
if (PageElementTypeEnum.PAGE.getCode().equals(dbPageElement.getType())) {
// 删除页面的子元素
List<SaasPageElement> pageElements = saasPageElementDao.listByGroupCodesAndExcludeIds(Lists.newArrayList(dbPageElement.getGroupCode()), null, dbPageElement.getTerminal(), null);
saasPageElementDao.deleteIdsByTerminal(pageElements.stream().map(BaseEntity::getId).collect(Collectors.toList()), dbPageElement.getTerminal());
codes.addAll(pageElements.stream().map(SaasPageElement::getCode).collect(Collectors.toSet()));
} else {
saasPageElementDao.deleteIdsByTerminal(Lists.newArrayList(req.getId()), dbPageElement.getTerminal());
}
// 删除绑定关系
if (CollectionUtils.isNotEmpty(codes)) {
saasPageElementFeatureResourceRelationDao.deleteByTerminalAndPageElementCodes(dbPageElement.getTerminal(), Lists.newArrayList(codes), req.getOperatorId());
}
// 记录操作日志
try {
saveDeleteOperateLog(req, dbPageElement);
} catch (Exception e) {
log.warn("save operate log error", e);
}
}
private PageElementResp from(SaasPageElement saasPageElement,
Map<String, List<SaasFeatureResourceResp>> featureResources) {
PageElementResp pageElementResp = PageElementResp.builder().build();
@ -669,4 +699,15 @@ public class SaasPageElementServiceImpl extends ServiceImpl<SaasPageElementMappe
.operateData(basePageElement)
.build());
}
private void saveDeleteOperateLog(DeletePageElementReq req, SaasPageElement basePageElement) {
saasPgroupPermissionRelationOperateLogService.save(PermissionOperateLogReq.builder()
.tableName(PAGE_ELEMENT_TABLE_NAME)
.operatorId(req.getOperatorId())
.scene(PermissionRelationOperateLogSceneEnum.OMS_DELETE_PAGE_ELEMENT.getValue())
.sceneId(basePageElement.getId().toString())
.requestData(req)
.operateData(basePageElement)
.build());
}
}