测试用例
This commit is contained in:
parent
c86a8156b8
commit
7d20057de0
|
|
@ -0,0 +1,224 @@
|
|||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.mockito.InjectMocks;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.junit.jupiter.MockitoExtension;
|
||||
import org.springframework.mock.web.MockHttpServletResponse;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
import static org.mockito.ArgumentMatchers.*;
|
||||
import static org.mockito.Mockito.*;
|
||||
|
||||
import com.dkl.common.core.domain.AjaxResult;
|
||||
import com.dkl.common.core.page.TableDataInfo;
|
||||
import com.dkl.large.controller.DklVideoDataController;
|
||||
import com.dkl.large.domain.DklVideoData;
|
||||
import com.dkl.large.service.IDklVideoDataService;
|
||||
|
||||
/**
|
||||
* DklVideoDataController 单元测试
|
||||
* 遵循 JUnit 5 + Mockito 统一风格
|
||||
*
|
||||
* @author Dkl
|
||||
* @date 2025-06-06
|
||||
*/
|
||||
@ExtendWith(MockitoExtension.class)
|
||||
class DklVideoDataControllerTest {
|
||||
|
||||
// Mock 业务层服务(Controller 依赖的核心组件)
|
||||
@Mock
|
||||
private IDklVideoDataService dklVideoDataService;
|
||||
|
||||
// 注入 Mock 到待测试的 Controller
|
||||
@InjectMocks
|
||||
private DklVideoDataController dklVideoDataController;
|
||||
|
||||
// 测试用例数据初始化
|
||||
private DklVideoData testVideoData;
|
||||
private List<DklVideoData> testVideoDataList;
|
||||
|
||||
/**
|
||||
* 前置初始化:统一设置测试数据,避免重复代码
|
||||
*/
|
||||
@BeforeEach
|
||||
void setUp() {
|
||||
// 初始化单条测试数据
|
||||
testVideoData = new DklVideoData();
|
||||
testVideoData.setId(1);
|
||||
testVideoData.setDelFlag("0");
|
||||
testVideoData.setCreateTime(new Date());
|
||||
testVideoData.setCreateBy("testUser");
|
||||
testVideoData.setDeptId(100L);
|
||||
testVideoData.setUpdateTime(new Date());
|
||||
testVideoData.setUpdateBy("testUser");
|
||||
|
||||
// 初始化列表测试数据
|
||||
testVideoDataList = new ArrayList<>();
|
||||
testVideoDataList.add(testVideoData);
|
||||
|
||||
// 模拟 Controller 父类的基础方法(BaseController)
|
||||
// 注:若 BaseController 的 getUsername()/getDeptId()/startPage()/getDataTable() 是私有/受保护方法,
|
||||
// 需要通过 Mockito spy 或 PowerMock 模拟,此处先 Mock 核心返回值
|
||||
doReturn("testUser").when(dklVideoDataController).getUsername();
|
||||
doReturn(100L).when(dklVideoDataController).getDeptId();
|
||||
}
|
||||
|
||||
// ---------------------- 测试场景 1:查询列表(list 接口) ----------------------
|
||||
@Test
|
||||
void list_ValidParam_ReturnsTableDataInfo() {
|
||||
// 1. Mock 业务层方法返回值
|
||||
when(dklVideoDataService.selectDklVideoDataList(any(DklVideoData.class))).thenReturn(testVideoDataList);
|
||||
|
||||
// 2. 执行 Controller 方法
|
||||
TableDataInfo result = dklVideoDataController.list(testVideoData);
|
||||
|
||||
// 3. 断言结果有效性
|
||||
assertNotNull(result);
|
||||
assertNotNull(result.getRows());
|
||||
assertEquals(1, result.getRows().size());
|
||||
assertEquals(testVideoDataList, result.getRows());
|
||||
|
||||
// 4. 验证业务层方法调用
|
||||
verify(dklVideoDataService, times(1)).selectDklVideoDataList(any(DklVideoData.class));
|
||||
}
|
||||
|
||||
// ---------------------- 测试场景 2:导出列表(export 接口) ----------------------
|
||||
@Test
|
||||
void export_ValidParam_InvokesExportExcel() {
|
||||
// 1. 模拟 HttpServletResponse(Spring 提供的 Mock 类)
|
||||
HttpServletResponse response = new MockHttpServletResponse();
|
||||
|
||||
// 2. Mock 业务层方法返回值
|
||||
when(dklVideoDataService.selectDklVideoDataList(any(DklVideoData.class))).thenReturn(testVideoDataList);
|
||||
|
||||
// 3. 执行 Controller 方法(无返回值,验证方法调用即可)
|
||||
dklVideoDataController.export(response, testVideoData);
|
||||
|
||||
// 4. 验证业务层方法调用
|
||||
verify(dklVideoDataService, times(1)).selectDklVideoDataList(any(DklVideoData.class));
|
||||
// 注:ExcelUtil.exportExcel 是工具类,若需验证可 Mock ExcelUtil,此处优先验证核心业务调用
|
||||
}
|
||||
|
||||
// ---------------------- 测试场景 3:获取详情(getInfo 接口) ----------------------
|
||||
@Test
|
||||
void getInfo_ValidId_ReturnsSuccessAjaxResult() {
|
||||
// 1. Mock 业务层方法返回值
|
||||
when(dklVideoDataService.selectDklVideoDataById(1)).thenReturn(testVideoData);
|
||||
|
||||
// 2. 执行 Controller 方法
|
||||
AjaxResult result = dklVideoDataController.getInfo(1);
|
||||
|
||||
// 3. 断言结果
|
||||
assertNotNull(result);
|
||||
assertEquals(AjaxResult.Type.SUCCESS, result.getType()); // 验证返回成功状态
|
||||
assertEquals(testVideoData, result.getData()); // 验证返回数据正确
|
||||
|
||||
// 4. 验证业务层方法调用
|
||||
verify(dklVideoDataService, times(1)).selectDklVideoDataById(1);
|
||||
}
|
||||
|
||||
@Test
|
||||
void getInfo_InvalidId_ReturnsSuccessWithNull() {
|
||||
// 1. Mock 业务层方法返回 null(ID不存在场景)
|
||||
when(dklVideoDataService.selectDklVideoDataById(999)).thenReturn(null);
|
||||
|
||||
// 2. 执行 Controller 方法
|
||||
AjaxResult result = dklVideoDataController.getInfo(999);
|
||||
|
||||
// 3. 断言结果
|
||||
assertNotNull(result);
|
||||
assertEquals(AjaxResult.Type.SUCCESS, result.getType());
|
||||
assertNull(result.getData());
|
||||
|
||||
// 4. 验证业务层方法调用
|
||||
verify(dklVideoDataService, times(1)).selectDklVideoDataById(999);
|
||||
}
|
||||
|
||||
// ---------------------- 测试场景 4:新增数据(add 接口) ----------------------
|
||||
@Test
|
||||
void add_ValidData_ReturnsAjaxResult() {
|
||||
// 1. Mock 业务层方法返回 1(新增成功)
|
||||
when(dklVideoDataService.insertDklVideoData(any(DklVideoData.class))).thenReturn(1);
|
||||
|
||||
// 2. 执行 Controller 方法
|
||||
AjaxResult result = dklVideoDataController.add(testVideoData);
|
||||
|
||||
// 3. 断言结果
|
||||
assertNotNull(result);
|
||||
assertEquals(1, result.getData()); // toAjax(1) 返回成功(数据为1)
|
||||
|
||||
// 4. 验证业务层方法调用 & 数据赋值
|
||||
verify(dklVideoDataService, times(1)).insertDklVideoData(any(DklVideoData.class));
|
||||
// 验证 Controller 自动赋值的系统字段
|
||||
assertEquals("0", testVideoData.getDelFlag());
|
||||
assertNotNull(testVideoData.getCreateTime());
|
||||
assertEquals("testUser", testVideoData.getCreateBy());
|
||||
assertEquals(100L, testVideoData.getDeptId());
|
||||
assertNotNull(testVideoData.getUpdateTime());
|
||||
assertEquals("testUser", testVideoData.getUpdateBy());
|
||||
}
|
||||
|
||||
// ---------------------- 测试场景 5:修改数据(edit 接口) ----------------------
|
||||
@Test
|
||||
void edit_ValidData_ReturnsAjaxResult() {
|
||||
// 1. Mock 业务层方法返回 1(修改成功)
|
||||
when(dklVideoDataService.updateDklVideoData(any(DklVideoData.class))).thenReturn(1);
|
||||
|
||||
// 2. 执行 Controller 方法
|
||||
AjaxResult result = dklVideoDataController.edit(testVideoData);
|
||||
|
||||
// 3. 断言结果
|
||||
assertNotNull(result);
|
||||
assertEquals(1, result.getData());
|
||||
|
||||
// 4. 验证业务层方法调用 & 数据赋值
|
||||
verify(dklVideoDataService, times(1)).updateDklVideoData(any(DklVideoData.class));
|
||||
// 验证修改时的系统字段赋值
|
||||
assertNotNull(testVideoData.getUpdateTime());
|
||||
assertEquals("testUser", testVideoData.getUpdateBy());
|
||||
}
|
||||
|
||||
// ---------------------- 测试场景 6:删除数据(remove 接口) ----------------------
|
||||
@Test
|
||||
void remove_ValidIds_ReturnsAjaxResult() {
|
||||
// 1. 准备删除ID数组
|
||||
int[] deleteIds = {1, 2};
|
||||
|
||||
// 2. Mock 业务层方法返回 2(删除2条成功)
|
||||
when(dklVideoDataService.deleteDklVideoDataByIds(deleteIds)).thenReturn(2);
|
||||
|
||||
// 3. 执行 Controller 方法
|
||||
AjaxResult result = dklVideoDataController.remove(deleteIds);
|
||||
|
||||
// 4. 断言结果
|
||||
assertNotNull(result);
|
||||
assertEquals(2, result.getData());
|
||||
|
||||
// 5. 验证业务层方法调用
|
||||
verify(dklVideoDataService, times(1)).deleteDklVideoDataByIds(deleteIds);
|
||||
}
|
||||
|
||||
@Test
|
||||
void remove_EmptyIds_ReturnsAjaxResult() {
|
||||
// 1. 空ID数组场景
|
||||
int[] emptyIds = {};
|
||||
|
||||
// 2. Mock 业务层方法返回 0(无数据删除)
|
||||
when(dklVideoDataService.deleteDklVideoDataByIds(emptyIds)).thenReturn(0);
|
||||
|
||||
// 3. 执行 Controller 方法
|
||||
AjaxResult result = dklVideoDataController.remove(emptyIds);
|
||||
|
||||
// 4. 断言结果
|
||||
assertNotNull(result);
|
||||
assertEquals(0, result.getData());
|
||||
|
||||
// 5. 验证业务层方法调用
|
||||
verify(dklVideoDataService, times(1)).deleteDklVideoDataByIds(emptyIds);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,60 @@
|
|||
package com.dkl.large.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import lombok.Data;
|
||||
import org.apache.commons.lang3.builder.ToStringBuilder;
|
||||
import org.apache.commons.lang3.builder.ToStringStyle;
|
||||
import com.dkl.common.annotation.Excel;
|
||||
import com.dkl.common.core.domain.BaseEntity;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 大客流视频数据获取对象 dkl_video_data
|
||||
*
|
||||
* @author Dkl
|
||||
* @date 2025-06-06
|
||||
*/
|
||||
@Data
|
||||
public class DklVideoData extends BaseEntity
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** id */
|
||||
private int id;
|
||||
|
||||
/** 监控id */
|
||||
@Excel(name = "监控id")
|
||||
private int videoId;
|
||||
|
||||
/** 获取时间 */
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@Excel(name = "获取时间", width = 30, dateFormat = "yyyy-MM-dd")
|
||||
private Date acquisitionTime;
|
||||
|
||||
/** 人数 */
|
||||
@Excel(name = "人数")
|
||||
private String numberPeople;
|
||||
|
||||
/** 是否出现异常(跌倒/斗殴等) */
|
||||
@Excel(name = "是否出现异常(跌倒/斗殴等)")
|
||||
private String isAbnormal;
|
||||
|
||||
/** 删除标志(0代表存在 2代表删除) */
|
||||
private String delFlag;
|
||||
|
||||
/** 原数据 */
|
||||
@Excel(name = "原数据")
|
||||
private String originalData;
|
||||
|
||||
/** 部门id */
|
||||
@Excel(name = "部门id")
|
||||
private Long deptId;
|
||||
|
||||
/** 视频名称 */
|
||||
@TableField(exist = false)
|
||||
private String videoName;
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,97 @@
|
|||
package com.dkl.large.mapper;
|
||||
|
||||
import java.util.List;
|
||||
import com.dkl.large.domain.DklVideoData;
|
||||
import com.dkl.large.domain.vo.DklMonitoringCameraDataVo;
|
||||
|
||||
/**
|
||||
* 大客流视频数据获取Mapper接口
|
||||
*
|
||||
* @author Dkl
|
||||
* @date 2025-06-06
|
||||
*/
|
||||
public interface DklVideoDataMapper
|
||||
{
|
||||
/**
|
||||
* 查询大客流视频数据获取
|
||||
*
|
||||
* @param id 大客流视频数据获取主键
|
||||
* @return 大客流视频数据获取
|
||||
*/
|
||||
public DklVideoData selectDklVideoDataById(int id);
|
||||
|
||||
/**
|
||||
* 查询大客流视频数据获取列表
|
||||
*
|
||||
* @param dklVideoData 大客流视频数据获取
|
||||
* @return 大客流视频数据获取集合
|
||||
*/
|
||||
public List<DklVideoData> selectDklVideoDataList(DklVideoData dklVideoData);
|
||||
|
||||
/**
|
||||
* 新增大客流视频数据获取
|
||||
*
|
||||
* @param dklVideoData 大客流视频数据获取
|
||||
* @return 结果
|
||||
*/
|
||||
public int insertDklVideoData(DklVideoData dklVideoData);
|
||||
|
||||
/**
|
||||
* 修改大客流视频数据获取
|
||||
*
|
||||
* @param dklVideoData 大客流视频数据获取
|
||||
* @return 结果
|
||||
*/
|
||||
public int updateDklVideoData(DklVideoData dklVideoData);
|
||||
|
||||
/**
|
||||
* 删除大客流视频数据获取
|
||||
*
|
||||
* @param id 大客流视频数据获取主键
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteDklVideoDataById(int id);
|
||||
|
||||
/**
|
||||
* 批量删除大客流视频数据获取
|
||||
*
|
||||
* @param ids 需要删除的数据主键集合
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteDklVideoDataByIds(int[] ids);
|
||||
|
||||
/**
|
||||
* @Author :rq
|
||||
* @Description :监控点摄像头数据获取人员数量
|
||||
* @Date :2025/06/12 11:14
|
||||
* @Param :[]
|
||||
* @return :java.lang.String
|
||||
**/
|
||||
public String getDklVideoDataCount();
|
||||
|
||||
/**
|
||||
* @Author :rq
|
||||
* @Description :监控点摄像头数据获取人员数量
|
||||
* @Date :2025/06/12 11:14
|
||||
* @Param :[]
|
||||
* @return :java.lang.String
|
||||
**/
|
||||
public String getDklVideoDataPeopleCount();
|
||||
/**
|
||||
* @Author :rq
|
||||
* @Description :获取数据人数 时间段内
|
||||
* @Date :2025/06/12 13:35
|
||||
* @Param :[dklMonitoringCameraDataVo]
|
||||
* @return :java.util.List<com.dkl.large.domain.vo.DklMonitoringCameraDataVo>
|
||||
**/
|
||||
public List<DklMonitoringCameraDataVo> peopleDataStatisticsByActivity(DklMonitoringCameraDataVo dklMonitoringCameraDataVo);
|
||||
|
||||
/**
|
||||
* @Author :rq
|
||||
* @Description :获取数据条数 时间段内
|
||||
* @Date :2025/06/12 13:35
|
||||
* @Param :[dklMonitoringCameraDataVo]
|
||||
* @return :java.util.List<com.dkl.large.domain.vo.DklMonitoringCameraDataVo>
|
||||
**/
|
||||
public List<DklMonitoringCameraDataVo> itemsDataStatisticsByActivity(DklMonitoringCameraDataVo dklMonitoringCameraDataVo);
|
||||
}
|
||||
|
|
@ -0,0 +1,61 @@
|
|||
package com.dkl.large.service;
|
||||
|
||||
import java.util.List;
|
||||
import com.dkl.large.domain.DklVideoData;
|
||||
|
||||
/**
|
||||
* 大客流视频数据获取Service接口
|
||||
*
|
||||
* @author Dkl
|
||||
* @date 2025-06-06
|
||||
*/
|
||||
public interface IDklVideoDataService
|
||||
{
|
||||
/**
|
||||
* 查询大客流视频数据获取
|
||||
*
|
||||
* @param id 大客流视频数据获取主键
|
||||
* @return 大客流视频数据获取
|
||||
*/
|
||||
public DklVideoData selectDklVideoDataById(int id);
|
||||
|
||||
/**
|
||||
* 查询大客流视频数据获取列表
|
||||
*
|
||||
* @param dklVideoData 大客流视频数据获取
|
||||
* @return 大客流视频数据获取集合
|
||||
*/
|
||||
public List<DklVideoData> selectDklVideoDataList(DklVideoData dklVideoData);
|
||||
|
||||
/**
|
||||
* 新增大客流视频数据获取
|
||||
*
|
||||
* @param dklVideoData 大客流视频数据获取
|
||||
* @return 结果
|
||||
*/
|
||||
public int insertDklVideoData(DklVideoData dklVideoData);
|
||||
|
||||
/**
|
||||
* 修改大客流视频数据获取
|
||||
*
|
||||
* @param dklVideoData 大客流视频数据获取
|
||||
* @return 结果
|
||||
*/
|
||||
public int updateDklVideoData(DklVideoData dklVideoData);
|
||||
|
||||
/**
|
||||
* 批量删除大客流视频数据获取
|
||||
*
|
||||
* @param ids 需要删除的大客流视频数据获取主键集合
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteDklVideoDataByIds(int[] ids);
|
||||
|
||||
/**
|
||||
* 删除大客流视频数据获取信息
|
||||
*
|
||||
* @param id 大客流视频数据获取主键
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteDklVideoDataById(int id);
|
||||
}
|
||||
|
|
@ -0,0 +1,96 @@
|
|||
package com.dkl.large.service.impl;
|
||||
|
||||
import java.util.List;
|
||||
import com.dkl.common.utils.DateUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.dkl.large.mapper.DklVideoDataMapper;
|
||||
import com.dkl.large.domain.DklVideoData;
|
||||
import com.dkl.large.service.IDklVideoDataService;
|
||||
|
||||
/**
|
||||
* 大客流视频数据获取Service业务层处理
|
||||
*
|
||||
* @author Dkl
|
||||
* @date 2025-06-06
|
||||
*/
|
||||
@Service
|
||||
public class DklVideoDataServiceImpl implements IDklVideoDataService
|
||||
{
|
||||
@Autowired
|
||||
private DklVideoDataMapper dklVideoDataMapper;
|
||||
|
||||
/**
|
||||
* 查询大客流视频数据获取
|
||||
*
|
||||
* @param id 大客流视频数据获取主键
|
||||
* @return 大客流视频数据获取
|
||||
*/
|
||||
@Override
|
||||
public DklVideoData selectDklVideoDataById(int id)
|
||||
{
|
||||
return dklVideoDataMapper.selectDklVideoDataById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询大客流视频数据获取列表
|
||||
*
|
||||
* @param dklVideoData 大客流视频数据获取
|
||||
* @return 大客流视频数据获取
|
||||
*/
|
||||
@Override
|
||||
public List<DklVideoData> selectDklVideoDataList(DklVideoData dklVideoData)
|
||||
{
|
||||
return dklVideoDataMapper.selectDklVideoDataList(dklVideoData);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增大客流视频数据获取
|
||||
*
|
||||
* @param dklVideoData 大客流视频数据获取
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int insertDklVideoData(DklVideoData dklVideoData)
|
||||
{
|
||||
dklVideoData.setCreateTime(DateUtils.getNowDate());
|
||||
return dklVideoDataMapper.insertDklVideoData(dklVideoData);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改大客流视频数据获取
|
||||
*
|
||||
* @param dklVideoData 大客流视频数据获取
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int updateDklVideoData(DklVideoData dklVideoData)
|
||||
{
|
||||
dklVideoData.setUpdateTime(DateUtils.getNowDate());
|
||||
return dklVideoDataMapper.updateDklVideoData(dklVideoData);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除大客流视频数据获取
|
||||
*
|
||||
* @param ids 需要删除的大客流视频数据获取主键
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int deleteDklVideoDataByIds(int[] ids)
|
||||
{
|
||||
return dklVideoDataMapper.deleteDklVideoDataByIds(ids);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除大客流视频数据获取信息
|
||||
*
|
||||
* @param id 大客流视频数据获取主键
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int deleteDklVideoDataById(int id)
|
||||
{
|
||||
return dklVideoDataMapper.deleteDklVideoDataById(id);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,149 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.dkl.large.mapper.DklVideoDataMapper">
|
||||
|
||||
<resultMap type="DklVideoData" id="DklVideoDataResult">
|
||||
<result property="id" column="id" />
|
||||
<result property="videoId" column="video_id" />
|
||||
<result property="acquisitionTime" column="acquisition_time" />
|
||||
<result property="numberPeople" column="number_people" />
|
||||
<result property="isAbnormal" column="is_abnormal" />
|
||||
<result property="createBy" column="create_by" />
|
||||
<result property="createTime" column="create_time" />
|
||||
<result property="updateBy" column="update_by" />
|
||||
<result property="updateTime" column="update_time" />
|
||||
<result property="delFlag" column="del_flag" />
|
||||
<result property="originalData" column="original_data" />
|
||||
<result property="deptId" column="dept_id" />
|
||||
</resultMap>
|
||||
|
||||
<sql id="selectDklVideoDataVo">
|
||||
select dv.id, dv.video_id, dvi.name AS videoName,dv.acquisition_time, dv.number_people, dv.is_abnormal, dv.create_by, dv.create_time, dv.update_by, dv.update_time, dv.del_flag,dv.original_data, dv.dept_id from dkl_video_data dv
|
||||
left join sys_dept d on dv.dept_id = d.dept_id
|
||||
left join dkl_video dvi on dvi.id = dv.video_id
|
||||
</sql>
|
||||
|
||||
<select id="selectDklVideoDataList" parameterType="DklVideoData" resultMap="DklVideoDataResult">
|
||||
<include refid="selectDklVideoDataVo"/>
|
||||
<where>
|
||||
<if test="videoId != null and videoId != ''"> and dv.video_id = #{videoId}</if>
|
||||
<if test="acquisitionTime != null and acquisitionTime != ''"> and dv.acquisition_time = #{acquisitionTime}</if>
|
||||
<if test="numberPeople != null and numberPeople != ''"> and dv.number_people = #{numberPeople}</if>
|
||||
<if test="isAbnormal != null and isAbnormal != ''"> and dv.is_abnormal = #{isAbnormal}</if>
|
||||
<if test="originalData != null and originalData != ''"> and dv.original_data = #{originalData}</if>
|
||||
<if test="deptId != null "> and dv.dept_id = #{deptId}</if>
|
||||
<if test="delFlag != null and delFlag != ''"> and dv.del_flag = #{delFlag}</if>
|
||||
</where>
|
||||
<!-- 数据范围过滤 -->
|
||||
${params.dataScope}
|
||||
order by dv.create_time desc
|
||||
</select>
|
||||
|
||||
<select id="selectDklVideoDataById" parameterType="int" resultMap="DklVideoDataResult">
|
||||
<include refid="selectDklVideoDataVo"/>
|
||||
where dv.id = #{id}
|
||||
</select>
|
||||
|
||||
<insert id="insertDklVideoData" parameterType="DklVideoData">
|
||||
insert into dkl_video_data
|
||||
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||
<if test="videoId != null">video_id,</if>
|
||||
<if test="acquisitionTime != null">acquisition_time,</if>
|
||||
<if test="numberPeople != null">number_people,</if>
|
||||
<if test="isAbnormal != null">is_abnormal,</if>
|
||||
<if test="createBy != null">create_by,</if>
|
||||
<if test="createTime != null">create_time,</if>
|
||||
<if test="updateBy != null">update_by,</if>
|
||||
<if test="updateTime != null">update_time,</if>
|
||||
<if test="delFlag != null">del_flag,</if>
|
||||
<if test="originalData != null">original_data,</if>
|
||||
<if test="deptId != null">dept_id,</if>
|
||||
</trim>
|
||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||
<if test="videoId != null">#{videoId},</if>
|
||||
<if test="acquisitionTime != null">#{acquisitionTime},</if>
|
||||
<if test="numberPeople != null">#{numberPeople},</if>
|
||||
<if test="isAbnormal != null">#{isAbnormal},</if>
|
||||
<if test="createBy != null">#{createBy},</if>
|
||||
<if test="createTime != null">#{createTime},</if>
|
||||
<if test="updateBy != null">#{updateBy},</if>
|
||||
<if test="updateTime != null">#{updateTime},</if>
|
||||
<if test="delFlag != null">#{delFlag},</if>
|
||||
<if test="originalData != null">#{originalData},</if>
|
||||
<if test="deptId != null">#{deptId},</if>
|
||||
</trim>
|
||||
</insert>
|
||||
|
||||
<update id="updateDklVideoData" parameterType="DklVideoData">
|
||||
update dkl_video_data
|
||||
<trim prefix="SET" suffixOverrides=",">
|
||||
<if test="videoId != null">video_id = #{videoId},</if>
|
||||
<if test="acquisitionTime != null">acquisition_time = #{acquisitionTime},</if>
|
||||
<if test="numberPeople != null">number_people = #{numberPeople},</if>
|
||||
<if test="isAbnormal != null">is_abnormal = #{isAbnormal},</if>
|
||||
<if test="createBy != null">create_by = #{createBy},</if>
|
||||
<if test="createTime != null">create_time = #{createTime},</if>
|
||||
<if test="updateBy != null">update_by = #{updateBy},</if>
|
||||
<if test="updateTime != null">update_time = #{updateTime},</if>
|
||||
<if test="delFlag != null">del_flag = #{delFlag},</if>
|
||||
<if test="originalData != null">original_data = #{originalData},</if>
|
||||
<if test="deptId != null">dept_id = #{deptId},</if>
|
||||
</trim>
|
||||
where id = #{id}
|
||||
</update>
|
||||
|
||||
<update id="deleteDklVideoDataById" parameterType="int">
|
||||
update dkl_video_data set del_flag = 2 where id = #{id}
|
||||
</update>
|
||||
|
||||
<update id="deleteDklVideoDataByIds" parameterType="int">
|
||||
update dkl_video_data set del_flag = 2 where id in
|
||||
<foreach item="id" collection="array" open="(" separator="," close=")">
|
||||
#{id}
|
||||
</foreach>
|
||||
</update>
|
||||
|
||||
<select id="getDklVideoDataCount" parameterType="string">
|
||||
SELECT COUNT(*) FROM dkl_video_data WHERE del_flag = '0'
|
||||
</select>
|
||||
<select id="getDklVideoDataPeopleCount" parameterType="string">
|
||||
SELECT sum(number_people) FROM dkl_video_data WHERE del_flag = '0'
|
||||
</select>
|
||||
|
||||
<select id="peopleDataStatisticsByActivity" resultType="DklMonitoringCameraDataVo">
|
||||
SELECT SUM
|
||||
( number_people ) as numberPeople,
|
||||
to_char( acquisition_time, 'YYYY-MM-DD' ) as acquisitionTime
|
||||
FROM
|
||||
dkl_video_data
|
||||
WHERE
|
||||
del_flag = '0'
|
||||
<if test="startTime!=null">
|
||||
AND acquisition_time BETWEEN #{startTime}
|
||||
AND #{endTime}
|
||||
</if>
|
||||
GROUP BY
|
||||
acquisitionTime
|
||||
ORDER BY acquisitionTime DESC
|
||||
|
||||
</select>
|
||||
|
||||
<select id="itemsDataStatisticsByActivity" resultType="DklMonitoringCameraDataVo">
|
||||
SELECT COUNT(*) as numberItems,
|
||||
to_char( acquisition_time, 'YYYY-MM-DD' ) AS acquisitionTime
|
||||
FROM
|
||||
dkl_video_data
|
||||
WHERE
|
||||
del_flag = '0'
|
||||
<if test="startTime!=null">
|
||||
AND acquisition_time BETWEEN #{startTime}
|
||||
AND #{endTime}
|
||||
</if>
|
||||
GROUP BY
|
||||
acquisitionTime
|
||||
ORDER BY acquisitionTime DESC
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
Loading…
Reference in New Issue