|
|
@@ -2,15 +2,21 @@ package cn.iocoder.yudao.module.system.service.homepage;
|
|
|
|
|
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
|
|
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
|
|
+import cn.iocoder.yudao.framework.mybatis.core.query.MPJLambdaWrapperX;
|
|
|
import cn.iocoder.yudao.module.system.controller.admin.homepage.vo.PageUiComponentPageReqVO;
|
|
|
import cn.iocoder.yudao.module.system.controller.admin.homepage.vo.PageUiComponentSaveReqVO;
|
|
|
import cn.iocoder.yudao.module.system.dal.dataobject.homepage.PageUiComponentDO;
|
|
|
+import cn.iocoder.yudao.module.system.dal.dataobject.homepage.RolePageDO;
|
|
|
+import cn.iocoder.yudao.module.system.dal.dataobject.homepage.UiComponentDO;
|
|
|
import cn.iocoder.yudao.module.system.dal.mysql.homepage.PageUiComponentMapper;
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import jakarta.annotation.Resource;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.util.Assert;
|
|
|
import org.springframework.validation.annotation.Validated;
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
|
|
|
/**
|
|
|
@@ -24,9 +30,16 @@ public class PageUiComponentServiceImpl extends ServiceImpl<PageUiComponentMappe
|
|
|
|
|
|
@Resource
|
|
|
private PageUiComponentMapper pageUiComponentMapper;
|
|
|
+ @Resource
|
|
|
+ private RolePageService rolePageService;
|
|
|
|
|
|
@Override
|
|
|
public Long createPageUiComponent(PageUiComponentSaveReqVO createReqVO) {
|
|
|
+ // 检查是否存在重复的
|
|
|
+ List<PageUiComponentDO> list = list(Wrappers.<PageUiComponentDO>lambdaQuery()
|
|
|
+ .eq(PageUiComponentDO::getPageId, createReqVO.getPageId())
|
|
|
+ .eq(PageUiComponentDO::getComponentId, createReqVO.getComponentId()));
|
|
|
+ Assert.isTrue(list.isEmpty(), "驾驶舱设置了相同的组件!");
|
|
|
// 插入
|
|
|
PageUiComponentDO pageUiComponent = BeanUtils.toBean(createReqVO, PageUiComponentDO.class);
|
|
|
pageUiComponentMapper.insert(pageUiComponent);
|
|
|
@@ -37,22 +50,22 @@ public class PageUiComponentServiceImpl extends ServiceImpl<PageUiComponentMappe
|
|
|
|
|
|
@Override
|
|
|
public void updatePageUiComponent(PageUiComponentSaveReqVO updateReqVO) {
|
|
|
+ // 检查是否存在重复的
|
|
|
+ List<PageUiComponentDO> list = list(Wrappers.<PageUiComponentDO>lambdaQuery()
|
|
|
+ .ne(PageUiComponentDO::getId, updateReqVO.getId())
|
|
|
+ .eq(PageUiComponentDO::getPageId, updateReqVO.getPageId())
|
|
|
+ .eq(PageUiComponentDO::getComponentId, updateReqVO.getComponentId()));
|
|
|
+ Assert.isTrue(list.isEmpty(), "驾驶舱设置了相同的组件!");
|
|
|
// 更新
|
|
|
PageUiComponentDO updateObj = BeanUtils.toBean(updateReqVO, PageUiComponentDO.class);
|
|
|
pageUiComponentMapper.updateById(updateObj);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public void deletePageUiComponent(Long id) {
|
|
|
- // 删除
|
|
|
- pageUiComponentMapper.deleteById(id);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void deletePageUiComponentListByIds(List<Long> ids) {
|
|
|
+ public void deletePageUiComponentListByIds(List<Long> ids) {
|
|
|
// 删除
|
|
|
pageUiComponentMapper.deleteByIds(ids);
|
|
|
- }
|
|
|
+ }
|
|
|
|
|
|
|
|
|
@Override
|
|
|
@@ -65,4 +78,28 @@ public class PageUiComponentServiceImpl extends ServiceImpl<PageUiComponentMappe
|
|
|
return pageUiComponentMapper.selectPage(pageReqVO);
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public List<PageUiComponentDO> getUiComponentList(List<Long> roleIds) {
|
|
|
+ List<PageUiComponentDO> pageUiComponentDOList = new ArrayList<>();
|
|
|
+ if (roleIds.isEmpty()) {
|
|
|
+ return pageUiComponentDOList;
|
|
|
+ }
|
|
|
+ // 开始查询sys_role_page
|
|
|
+ List<RolePageDO> rolePageDOList = rolePageService.list(Wrappers.<RolePageDO>lambdaQuery()
|
|
|
+ .in(RolePageDO::getRoleId, roleIds));
|
|
|
+ if (rolePageDOList.isEmpty()) {
|
|
|
+ return pageUiComponentDOList;
|
|
|
+ }
|
|
|
+ // 开始查询sys_page_ui_component
|
|
|
+ List<Long> pageIds = rolePageDOList.stream().map(RolePageDO::getId).toList();
|
|
|
+ return list(new MPJLambdaWrapperX<PageUiComponentDO>()
|
|
|
+ .leftJoin(UiComponentDO.class, UiComponentDO::getId, PageUiComponentDO::getComponentId)
|
|
|
+ .in(PageUiComponentDO::getPageId, pageIds)
|
|
|
+ .selectAll(PageUiComponentDO.class)
|
|
|
+ .selectAs(UiComponentDO::getComponentName, "componentName")
|
|
|
+ .selectAs(UiComponentDO::getComponentCategory, "componentCategory")
|
|
|
+ .selectAs(UiComponentDO::getComponentThumbnail, "componentThumbnail")
|
|
|
+ .selectAs(UiComponentDO::getComponentFilePath, "componentFilePath"));
|
|
|
+ }
|
|
|
+
|
|
|
}
|