From 13f523073234df649c44434759e93526d439569e Mon Sep 17 00:00:00 2001 From: xjm Date: Tue, 20 Aug 2024 13:59:43 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=86=E9=A2=91=E5=9F=BA=E6=9C=AC=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E6=96=B0=E5=A2=9E,=E4=BF=AE=E6=94=B9,=E5=88=A0?= =?UTF-8?q?=E9=99=A4,=E5=88=86=E9=A1=B5=E6=9F=A5=E8=AF=A2=E4=BF=AE?= =?UTF-8?q?=E6=94=B9,=E8=A7=86=E9=A2=91=E7=82=B9=E7=9B=AE=E5=BD=95?= =?UTF-8?q?=E6=96=B0=E5=A2=9E,=E4=BF=AE=E6=94=B9,=E6=A0=91=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E4=BF=AE=E6=94=B9,=E7=B3=BB=E7=BB=9F=E5=AD=97?= =?UTF-8?q?=E5=85=B8=E6=A0=91=E6=9F=A5=E8=AF=A2=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xyt/controller/AttCctvBaseController.java | 49 ++++++++++++++++++- .../xyt/controller/CctvBMenuController.java | 15 ++++++ .../gunshi/project/xyt/model/AttCctvBase.java | 7 +++ .../gunshi/project/xyt/model/CctvBMenu.java | 1 + .../project/xyt/service/CctvBMenuService.java | 5 +- .../project/xyt/service/SysDictBService.java | 5 +- 6 files changed, 75 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/gunshi/project/xyt/controller/AttCctvBaseController.java b/src/main/java/com/gunshi/project/xyt/controller/AttCctvBaseController.java index 31b26c4..3f23acd 100644 --- a/src/main/java/com/gunshi/project/xyt/controller/AttCctvBaseController.java +++ b/src/main/java/com/gunshi/project/xyt/controller/AttCctvBaseController.java @@ -10,7 +10,9 @@ import com.gunshi.core.result.R; import com.gunshi.project.xyt.entity.so.AttCctvBasePage; import com.gunshi.project.xyt.entity.vo.CctvControlVo; import com.gunshi.project.xyt.model.AttCctvBase; +import com.gunshi.project.xyt.model.CctvBMenu; import com.gunshi.project.xyt.service.AttCctvBaseService; +import com.gunshi.project.xyt.service.CctvBMenuService; import com.gunshi.project.xyt.util.OkHttpUtil; import com.gunshi.project.xyt.validate.markers.Insert; import com.gunshi.project.xyt.validate.markers.Update; @@ -20,6 +22,8 @@ import io.swagger.v3.oas.annotations.tags.Tag; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -30,6 +34,7 @@ import java.util.Date; import java.util.List; import java.util.Map; import java.util.Objects; +import java.util.stream.Collectors; /** * 描述: 视频基本信息表 @@ -44,12 +49,24 @@ public class AttCctvBaseController { @Autowired private AttCctvBaseService service; + @Autowired + private CctvBMenuService menuService; @Operation(summary = "新增") @PostMapping("/insert") public R insert(@Validated(Insert.class) @RequestBody AttCctvBase dto) { dto.setId(IdWorker.getId()); dto.setCreateTime(new Date()); + if (StringUtils.isNotBlank(dto.getName()) && service.lambdaQuery().eq(AttCctvBase::getName,dto.getName()) + .count() > 0){ + throw new IllegalArgumentException("当前名称已存在"); + } + if (Objects.nonNull(dto.getMenuId()) && menuService.lambdaQuery().eq(CctvBMenu::getId,dto.getMenuId()) + .count() == 0 + ){ + throw new IllegalArgumentException("当前视频点目录不存在"); + } + dto.setCreateTime(new Date()); boolean result = service.save(dto); return R.ok(result ? dto : null); } @@ -57,9 +74,22 @@ public class AttCctvBaseController { @Operation(summary = "修改") @PostMapping("/update") public R update(@Validated(Update.class) @RequestBody AttCctvBase dto) { + if (Objects.isNull(service.getById(dto.getId()))){ throw new RuntimeException("当前数据不存在"); } + if (StringUtils.isNotBlank(dto.getName()) && service.lambdaQuery().eq(AttCctvBase::getName,dto.getName()) + .ne(AttCctvBase::getId,dto.getId()) + .count() > 0){ + throw new IllegalArgumentException("当前名称已存在"); + } + + if (Objects.nonNull(dto.getMenuId()) && menuService.lambdaQuery().eq(CctvBMenu::getId,dto.getMenuId()) + .count() == 0 + ){ + throw new IllegalArgumentException("当前视频点目录不存在"); + } + dto.setCreateTime(null); boolean result = service.updateById(dto); return R.ok(result ? dto : null); } @@ -96,7 +126,24 @@ public class AttCctvBaseController { if (ObjectUtils.isNotNull(page.getType())) { query.eq(AttCctvBase::getType, Integer.valueOf(page.getType())); } - return R.ok(service.page(page.getPageSo().toPage(), query)); + query.orderByDesc(AttCctvBase::getCreateTime); + Page basePage = service.page(page.getPageSo().toPage(), query); + List records = basePage.getRecords(); + if (CollectionUtils.isNotEmpty(records)){ + List list = menuService.list(); + if (CollectionUtils.isNotEmpty(list)){ + Map> listMap = list.stream(). + collect(Collectors.groupingBy(CctvBMenu::getId, Collectors.mapping(CctvBMenu::getName, Collectors.toList()))); + + records.forEach(item -> { + if (Objects.nonNull(item.getMenuId())){ + item.setMenuName(listMap.get(item.getMenuId()).getFirst()); + } + }); + } + basePage.setRecords(records); + } + return R.ok(basePage); } @Operation(summary = "获取预览地址") diff --git a/src/main/java/com/gunshi/project/xyt/controller/CctvBMenuController.java b/src/main/java/com/gunshi/project/xyt/controller/CctvBMenuController.java index 76a5a2b..4590997 100644 --- a/src/main/java/com/gunshi/project/xyt/controller/CctvBMenuController.java +++ b/src/main/java/com/gunshi/project/xyt/controller/CctvBMenuController.java @@ -9,12 +9,15 @@ import com.gunshi.project.xyt.validate.markers.Update; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.tags.Tag; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.io.Serializable; import java.util.List; +import java.util.Objects; + /** * 描述: 视频点目录 * author: xusan @@ -32,6 +35,13 @@ public class CctvBMenuController { @Operation(summary = "新增") @PostMapping("/insert") public R insert(@Validated(Insert.class) @RequestBody CctvBMenu dto) { + if (Objects.isNull(dto.getParentId())){ + dto.setParentId(0L); + } + if (StringUtils.isNotBlank(dto.getName()) && service.lambdaQuery().eq(CctvBMenu::getName,dto.getName()) + .count() > 0){ + throw new IllegalArgumentException("当前名称已存在"); + } dto.setId(IdWorker.getId()); boolean result = service.save(dto); return R.ok(result ? dto : null); @@ -40,6 +50,11 @@ public class CctvBMenuController { @Operation(summary = "修改") @PostMapping("/update") public R update(@Validated(Update.class) @RequestBody CctvBMenu dto) { + if (StringUtils.isNotBlank(dto.getName()) && service.lambdaQuery().eq(CctvBMenu::getName,dto.getName()) + .ne(CctvBMenu::getId,dto.getId()) + .count() > 0){ + throw new IllegalArgumentException("当前名称已存在"); + } boolean result = service.updateById(dto); return R.ok(result ? dto : null); } diff --git a/src/main/java/com/gunshi/project/xyt/model/AttCctvBase.java b/src/main/java/com/gunshi/project/xyt/model/AttCctvBase.java index c8754c2..178f1fb 100644 --- a/src/main/java/com/gunshi/project/xyt/model/AttCctvBase.java +++ b/src/main/java/com/gunshi/project/xyt/model/AttCctvBase.java @@ -111,6 +111,13 @@ public class AttCctvBase implements Serializable { @Schema(description="menu_id") private Long menuId; + /** + * menu_id + */ + @TableField(exist = false) + @Schema(description="所在区域") + private String menuName; + /** * 备注 */ diff --git a/src/main/java/com/gunshi/project/xyt/model/CctvBMenu.java b/src/main/java/com/gunshi/project/xyt/model/CctvBMenu.java index 1f5d082..55b9f01 100644 --- a/src/main/java/com/gunshi/project/xyt/model/CctvBMenu.java +++ b/src/main/java/com/gunshi/project/xyt/model/CctvBMenu.java @@ -43,6 +43,7 @@ public class CctvBMenu implements Serializable { */ @TableField(value="parent_id") @Schema(description="parent_id") + @JsonSerialize(using = ToStringSerializer.class) private Long parentId; /** diff --git a/src/main/java/com/gunshi/project/xyt/service/CctvBMenuService.java b/src/main/java/com/gunshi/project/xyt/service/CctvBMenuService.java index 00a69bf..bd61654 100644 --- a/src/main/java/com/gunshi/project/xyt/service/CctvBMenuService.java +++ b/src/main/java/com/gunshi/project/xyt/service/CctvBMenuService.java @@ -11,7 +11,6 @@ import org.springframework.transaction.annotation.Transactional; import java.util.Comparator; import java.util.List; import java.util.Map; -import java.util.Objects; import java.util.stream.Collectors; /** @@ -26,14 +25,14 @@ public class CctvBMenuService extends ServiceImpl { public List tree() { - List list = list(lambdaQuery().orderByDesc(CctvBMenu::getId)); + List list = list(); if (CollectionUtils.isEmpty(list)){ return list; } Map> listMap = list.stream().collect(Collectors.groupingBy(CctvBMenu::getParentId)); list.forEach(o -> o.setChildren(listMap.get(o.getId()))); - List parentList = list.stream().filter(o -> Objects.isNull(o.getParentId())).collect(Collectors.toList()); + List parentList = list.stream().filter(o -> 0L == o.getParentId()).collect(Collectors.toList()); return sorted(parentList); } diff --git a/src/main/java/com/gunshi/project/xyt/service/SysDictBService.java b/src/main/java/com/gunshi/project/xyt/service/SysDictBService.java index fceeab4..bb22267 100644 --- a/src/main/java/com/gunshi/project/xyt/service/SysDictBService.java +++ b/src/main/java/com/gunshi/project/xyt/service/SysDictBService.java @@ -11,7 +11,6 @@ import org.springframework.transaction.annotation.Transactional; import java.util.Comparator; import java.util.List; import java.util.Map; -import java.util.Objects; import java.util.stream.Collectors; /** @@ -27,14 +26,14 @@ public class SysDictBService extends ServiceImpl public List tree() { - List list = list(lambdaQuery().orderByDesc(SysDictB::getId)); + List list = list(); if (CollectionUtils.isEmpty(list)){ return list; } Map> listMap = list.stream().collect(Collectors.groupingBy(SysDictB::getPid)); list.forEach(o -> o.setChildren(listMap.get(o.getId()))); - List parentList = list.stream().filter(o -> Objects.isNull(o.getPid())).collect(Collectors.toList()); + List parentList = list.stream().filter(o -> 0L == o.getPid()).collect(Collectors.toList()); return sorted(parentList); }