diff --git a/pom.xml b/pom.xml index f05decc..2d30e69 100644 --- a/pom.xml +++ b/pom.xml @@ -26,7 +26,22 @@ gunshi-modules-all 1.0-SNAPSHOT - + + org.junit.jupiter + junit-jupiter + test + + + org.springframework.boot + spring-boot-test + test + + + org.springframework + spring-test + 6.1.1 + test + diff --git a/src/main/java/com/gunshi/project/xyt/entity/basedata/StCameraAreaTreeVo.java b/src/main/java/com/gunshi/project/xyt/entity/basedata/StCameraAreaTreeVo.java new file mode 100644 index 0000000..ff95a97 --- /dev/null +++ b/src/main/java/com/gunshi/project/xyt/entity/basedata/StCameraAreaTreeVo.java @@ -0,0 +1,24 @@ +package com.gunshi.project.xyt.entity.basedata; + +import com.gunshi.project.xyt.model.StCameraAreaB; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +import java.io.Serializable; +import java.util.List; + +/** + * @author Sun Lejun + * @version 1.0 + * @date 2024/1/24 + */ + +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class StCameraAreaTreeVo extends StCameraAreaB implements Serializable { + @Schema(description="子对象") + private List children; +} diff --git a/src/main/java/com/gunshi/project/xyt/entity/basedata/StCameraAreaVo.java b/src/main/java/com/gunshi/project/xyt/entity/basedata/StCameraAreaVo.java new file mode 100644 index 0000000..1949196 --- /dev/null +++ b/src/main/java/com/gunshi/project/xyt/entity/basedata/StCameraAreaVo.java @@ -0,0 +1,23 @@ +package com.gunshi.project.xyt.entity.basedata; + +import com.gunshi.project.xyt.model.StCameraAreaB; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +import java.io.Serializable; + +/** + * @author Sun Lejun + * @version 1.0 + * @date 2024/1/24 + */ + +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Data +public class StCameraAreaVo extends StCameraAreaB implements Serializable { + @Schema(description="上级区域名称") + private String pidName; +} diff --git a/src/main/java/com/gunshi/project/xyt/mapper/StCameraAreaBMapper.java b/src/main/java/com/gunshi/project/xyt/mapper/StCameraAreaBMapper.java index 717d954..f2c0c3d 100644 --- a/src/main/java/com/gunshi/project/xyt/mapper/StCameraAreaBMapper.java +++ b/src/main/java/com/gunshi/project/xyt/mapper/StCameraAreaBMapper.java @@ -1,6 +1,8 @@ package com.gunshi.project.xyt.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.gunshi.project.xyt.entity.basedata.StCameraAreaTreeVo; +import com.gunshi.project.xyt.entity.basedata.StCameraAreaVo; import com.gunshi.project.xyt.model.StCameraAreaB; import java.util.List; import org.apache.ibatis.annotations.Mapper; @@ -9,4 +11,8 @@ import org.apache.ibatis.annotations.Param; @Mapper public interface StCameraAreaBMapper extends BaseMapper { int batchInsert(@Param("list") List list); + + List queryStCameraAreaBList(@Param("name") String name); + + List queryStCameraAreaBTree(); } \ No newline at end of file diff --git a/src/main/java/com/gunshi/project/xyt/service/BaseDataService.java b/src/main/java/com/gunshi/project/xyt/service/BaseDataService.java index e820f16..6efdabf 100644 --- a/src/main/java/com/gunshi/project/xyt/service/BaseDataService.java +++ b/src/main/java/com/gunshi/project/xyt/service/BaseDataService.java @@ -5,16 +5,32 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.IdWorker; import com.gunshi.core.result.BusinessResult; import com.gunshi.core.result.exception.BusinessException; +import com.gunshi.project.xyt.entity.basedata.StCameraAreaTreeVo; +import com.gunshi.project.xyt.entity.basedata.StCameraAreaVo; import com.gunshi.project.xyt.mapper.StCameraAreaBMapper; import com.gunshi.project.xyt.model.StCameraAreaB; +import com.gunshi.util.common.tree.TreeUtil; +import jakarta.annotation.Nonnull; +import jakarta.annotation.Nullable; +import jakarta.validation.constraints.NotNull; import lombok.Data; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.collections4.MapUtils; +import org.apache.commons.compress.utils.Lists; import org.springframework.stereotype.Service; import org.springframework.web.bind.MethodArgumentNotValidException; +import java.io.Serializable; +import java.util.ArrayList; import java.util.Date; import java.util.List; +import java.util.Map; import java.util.Objects; +import java.util.function.BiConsumer; +import java.util.function.Consumer; +import java.util.function.Function; +import java.util.stream.Collectors; /** * @author Sun Lejun @@ -29,12 +45,29 @@ import java.util.Objects; public class BaseDataService { private final StCameraAreaBMapper stCameraAreaBMapper; + /** + * 根据视频区域ID查询视频区域 + * @param camArId 视频区域ID + * @return 视频区域 + */ + public StCameraAreaB queryStCameraAreaBById(Long camArId) { + return stCameraAreaBMapper.selectById(camArId); + } - public List queryStCameraAreaBList() { - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq(StCameraAreaB.COL_STATUS, 1); - queryWrapper.orderByAsc(StCameraAreaB.COL_SORT_ON); - return stCameraAreaBMapper.selectList(queryWrapper); + public List queryStCameraAreaBTree() { + List list = stCameraAreaBMapper.queryStCameraAreaBTree(); + return TreeUtil.list2ListTree(list, Long.valueOf(0L), + StCameraAreaTreeVo::getCamArId, StCameraAreaTreeVo::getPid, + StCameraAreaTreeVo::setChildren, null); + } + + + /** + * 查询视频区域列表 + * @return 视频区域列表 + */ + public List queryStCameraAreaBList(String name) { + return stCameraAreaBMapper.queryStCameraAreaBList(name); } /** @@ -48,8 +81,8 @@ public class BaseDataService { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq(StCameraAreaB.COL_PID, stCameraAreaB.getPid()); queryWrapper.eq(StCameraAreaB.COL_STATUS, 1); - queryWrapper.orderByAsc(StCameraAreaB.COL_SORT_ON); - StCameraAreaB first = stCameraAreaBMapper.selectList(queryWrapper).getFirst(); + queryWrapper.orderByDesc(StCameraAreaB.COL_SORT_ON); + StCameraAreaB first = stCameraAreaBMapper.selectOne(queryWrapper, false); if (Objects.isNull(first)) { stCameraAreaB.setSortOn(1); } else { @@ -108,4 +141,5 @@ public class BaseDataService { } } + } diff --git a/src/main/resources/mapper/StCameraAreaBMapper.xml b/src/main/resources/mapper/StCameraAreaBMapper.xml index 92e6518..4fbfa6d 100644 --- a/src/main/resources/mapper/StCameraAreaBMapper.xml +++ b/src/main/resources/mapper/StCameraAreaBMapper.xml @@ -28,4 +28,23 @@ #{item.createTm,jdbcType=TIMESTAMP}, #{item.tm,jdbcType=TIMESTAMP}) + + + + \ No newline at end of file diff --git a/src/test/java/com/gunshi/project/xyt/service/BaseDataServiceTest.java b/src/test/java/com/gunshi/project/xyt/service/BaseDataServiceTest.java new file mode 100644 index 0000000..ffc0309 --- /dev/null +++ b/src/test/java/com/gunshi/project/xyt/service/BaseDataServiceTest.java @@ -0,0 +1,62 @@ +package com.gunshi.project.xyt.service; + +import com.gunshi.project.xyt.Main; +import com.gunshi.project.xyt.entity.basedata.StCameraAreaTreeVo; +import com.gunshi.project.xyt.entity.basedata.StCameraAreaVo; +import com.gunshi.project.xyt.model.StCameraAreaB; +import lombok.extern.slf4j.Slf4j; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.ContextConfiguration; + +import java.util.List; + +@SpringBootTest +@ContextConfiguration(classes = Main.class) +@Slf4j +class BaseDataServiceTest { + @Autowired + private BaseDataService baseDataService; + + @Test + void queryStCameraAreaBList() { + List list1 = baseDataService.queryStCameraAreaBList("公路"); + log.info("{}", list1); + List list2 = baseDataService.queryStCameraAreaBList(""); + log.info("{}", list2); + } + + @Test + void insertStCameraAreaB() { + StCameraAreaB stCameraAreaB = new StCameraAreaB(); + stCameraAreaB.setCamArNm("公路2"); + stCameraAreaB.setPid(0L); + stCameraAreaB.setStatus(1); + stCameraAreaB.setComments("备注2"); + baseDataService.insertStCameraAreaB(stCameraAreaB); + } + + @Test + void insertStCameraAreaB2() { + StCameraAreaB stCameraAreaB = new StCameraAreaB(); + stCameraAreaB.setCamArNm("公路1-1"); + stCameraAreaB.setPid(1750075892207497218L); + stCameraAreaB.setStatus(1); + stCameraAreaB.setComments("备注"); + baseDataService.insertStCameraAreaB(stCameraAreaB); + } + + @Test + void updateStCameraAreaB() { + StCameraAreaB stCameraAreaB = baseDataService.queryStCameraAreaBById(1750077729811742721L); + stCameraAreaB.setComments("1234557"); + baseDataService.updateStCameraAreaB(stCameraAreaB); + } + + @Test + void queryStCameraAreaBTree() { + List list = baseDataService.queryStCameraAreaBTree(); + log.info("{}", list); + } +} \ No newline at end of file