feat: 初始化

This commit is contained in:
2024-04-09 11:34:46 +08:00
commit 39f3acc15f
3209 changed files with 253442 additions and 0 deletions
@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>edu-device</artifactId>
<groupId>com.yida.data.device</groupId>
<version>2.2-RELEASE</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<packaging>jar</packaging>
<artifactId>edu-device-api</artifactId>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
</project>
@@ -0,0 +1,29 @@
package com.yida.data.device.convertor.studentCard;
import com.alibaba.excel.converters.Converter;
import com.alibaba.excel.enums.CellDataTypeEnum;
import com.alibaba.excel.metadata.CellData;
import com.alibaba.excel.metadata.GlobalConfiguration;
import com.alibaba.excel.metadata.property.ExcelContentProperty;
public class ActivateConverter implements Converter<Integer> {
@Override
public Class supportJavaTypeKey() {
return null;
}
@Override
public CellDataTypeEnum supportExcelTypeKey() {
return null;
}
@Override
public Integer convertToJavaData(CellData cellData, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) throws Exception {
return null;
}
@Override
public CellData convertToExcelData(Integer value, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) throws Exception {
return new CellData(value == 0 ? "未激活" : "已激活");
}
}
@@ -0,0 +1,29 @@
package com.yida.data.device.convertor.studentCard;
import com.alibaba.excel.converters.Converter;
import com.alibaba.excel.enums.CellDataTypeEnum;
import com.alibaba.excel.metadata.CellData;
import com.alibaba.excel.metadata.GlobalConfiguration;
import com.alibaba.excel.metadata.property.ExcelContentProperty;
public class BindConverter implements Converter<Integer> {
@Override
public Class supportJavaTypeKey() {
return null;
}
@Override
public CellDataTypeEnum supportExcelTypeKey() {
return null;
}
@Override
public Integer convertToJavaData(CellData cellData, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) throws Exception {
return null;
}
@Override
public CellData convertToExcelData(Integer value, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) throws Exception {
return new CellData(value == 0 ? "未绑定" : "已绑定");
}
}
@@ -0,0 +1,29 @@
package com.yida.data.device.convertor.studentCard;
import com.alibaba.excel.converters.Converter;
import com.alibaba.excel.enums.CellDataTypeEnum;
import com.alibaba.excel.metadata.CellData;
import com.alibaba.excel.metadata.GlobalConfiguration;
import com.alibaba.excel.metadata.property.ExcelContentProperty;
public class OnlineConverter implements Converter<Integer> {
@Override
public Class supportJavaTypeKey() {
return null;
}
@Override
public CellDataTypeEnum supportExcelTypeKey() {
return null;
}
@Override
public Integer convertToJavaData(CellData cellData, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) throws Exception {
return null;
}
@Override
public CellData convertToExcelData(Integer value, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) throws Exception {
return new CellData(value == 0 ? "离线" : "在线");
}
}
@@ -0,0 +1,29 @@
package com.yida.data.device.convertor.studentCard;
import com.alibaba.excel.converters.Converter;
import com.alibaba.excel.enums.CellDataTypeEnum;
import com.alibaba.excel.metadata.CellData;
import com.alibaba.excel.metadata.GlobalConfiguration;
import com.alibaba.excel.metadata.property.ExcelContentProperty;
public class UseConverter implements Converter<Integer> {
@Override
public Class supportJavaTypeKey() {
return null;
}
@Override
public CellDataTypeEnum supportExcelTypeKey() {
return null;
}
@Override
public Integer convertToJavaData(CellData cellData, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) throws Exception {
return null;
}
@Override
public CellData convertToExcelData(Integer value, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) throws Exception {
return new CellData(value == 0 ? "禁用" : "正常");
}
}
@@ -0,0 +1,37 @@
package com.yida.data.device.convertor.telephone;
import com.alibaba.excel.converters.Converter;
import com.alibaba.excel.enums.CellDataTypeEnum;
import com.alibaba.excel.metadata.CellData;
import com.alibaba.excel.metadata.GlobalConfiguration;
import com.alibaba.excel.metadata.property.ExcelContentProperty;
public class DurationConvertor implements Converter<Integer> {
@Override
public Class supportJavaTypeKey() {
return null;
}
@Override
public CellDataTypeEnum supportExcelTypeKey() {
return null;
}
@Override
public Integer convertToJavaData(CellData cellData, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) throws Exception {
return null;
}
@Override
public CellData<String> convertToExcelData(Integer value,
ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) throws Exception {
Integer minute = value / 60;
Integer second = value % 60;
StringBuilder builder = new StringBuilder();
if (minute > 0) {
builder.append(minute).append("");
}
builder.append(second).append("");
return new CellData<>(builder.toString());
}
}
@@ -0,0 +1,31 @@
package com.yida.data.device.convertor.telephone;
import com.alibaba.excel.converters.Converter;
import com.alibaba.excel.enums.CellDataTypeEnum;
import com.alibaba.excel.metadata.CellData;
import com.alibaba.excel.metadata.GlobalConfiguration;
import com.alibaba.excel.metadata.property.ExcelContentProperty;
import cn.hutool.core.util.NumberUtil;
public class MoneyConvertor implements Converter<Double> {
@Override
public Class supportJavaTypeKey() {
return null;
}
@Override
public CellDataTypeEnum supportExcelTypeKey() {
return null;
}
@Override
public Double convertToJavaData(CellData cellData, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) throws Exception {
return null;
}
@Override
public CellData convertToExcelData(Double value, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) throws Exception {
return new CellData("" + NumberUtil.toStr(value));
}
}
@@ -0,0 +1,47 @@
package com.yida.data.device.convertor.telephone;
import com.alibaba.excel.converters.Converter;
import com.alibaba.excel.enums.CellDataTypeEnum;
import com.alibaba.excel.metadata.CellData;
import com.alibaba.excel.metadata.GlobalConfiguration;
import com.alibaba.excel.metadata.property.ExcelContentProperty;
public class OrderStatusConvertor implements Converter<Integer> {
@Override
public Class supportJavaTypeKey() {
return null;
}
@Override
public CellDataTypeEnum supportExcelTypeKey() {
return null;
}
@Override
public Integer convertToJavaData(CellData cellData, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) throws Exception {
return null;
}
@Override
public CellData convertToExcelData(Integer value, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) throws Exception {
String res = null;
switch (value) {
case 0:
res = "待付款";
break;
case 1:
res = "付款中";
break;
case 2:
res = "交易完成";
break;
case 3:
res = "待付款";
break;
case 4:
res = "交易关闭";
break;
}
return new CellData(res);
}
}
@@ -0,0 +1,50 @@
package com.yida.data.device.dto.camera;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
/**
* @author ccl
*/
@Data
@ApiModel(value = "CameraDTO", description = "设备保存请求类")
public class CameraDTO implements Serializable {
private static final long serialVersionUID = 9104056853871131972L;
@ApiModelProperty("设备id")
private Long id;
@ApiModelProperty("设备编码")
private String code;
@ApiModelProperty("转码地址")
private String transUrl;
@ApiModelProperty("备注")
private String remarks;
@ApiModelProperty("区域分组id")
private Long areaGroupId;
@ApiModelProperty("开放状态")
private Integer openStatus;
@ApiModelProperty("运行状态")
private Integer runStatus;
@ApiModelProperty("设备名称")
private String cameraName;
@ApiModelProperty("设备类型.0:非公共摄像头,1:公共摄像头")
private Integer commonType;
@ApiModelProperty("非公共摄像头对应的部门id(目前为班级id)")
private Long deptId;
@ApiModelProperty("当前部门的链状部门字符串, 用于数据回显")
private String parentDept;
}
@@ -0,0 +1,45 @@
package com.yida.data.device.dto.camera;
import com.yida.data.common.core.common.BaseDTO;
import com.yida.data.common.core.entity.camera.EduCamera;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
/**
* 设备列表请求类
*
* @author ZYJ
* @date 2022/4/28
*/
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "ListCameraDTO", description = "设备列表请求类")
public class ListCameraDTO extends BaseDTO<EduCamera> implements Serializable {
private static final long serialVersionUID = -7583870156434892929L;
@ApiModelProperty("设备名称")
private String cameraName;
@ApiModelProperty("设备编码")
private String code;
@ApiModelProperty("设备类型.0:非公共摄像头,1:公共摄像头")
private Integer commonType;
@ApiModelProperty("区域id")
private Long areaGroupId;
@ApiModelProperty("开放状态.0是,1否")
private Integer openStatus;
@ApiModelProperty("运行状态.0在线,1离线")
private Integer runStatus;
@ApiModelProperty(value = "学校id", hidden = true)
private Long schoolId;
}
@@ -0,0 +1,16 @@
package com.yida.data.device.dto.camera;
import com.yida.data.common.core.entity.camera.EduCameraStrategyTrans;
import lombok.Data;
import java.util.List;
/**
* @author chenbo
*/
@Data
public class ListCameraSetDTO {
private List<Long> ids;
private List<EduCameraStrategyTrans> trans;
}
@@ -0,0 +1,22 @@
package com.yida.data.device.dto.camera;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @author ccl
*/
@Data
public class ListGroupDTO {
@ApiModelProperty("设备id")
private List<Long> cameraId;
@ApiModelProperty("区域组id")
private Long groupId;
@ApiModelProperty("班级id")
private Long classId;
}
@@ -0,0 +1,26 @@
package com.yida.data.device.dto.camera;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
/**
* 主题设备保存请求类
*
* @author ZYJ
* @date 2022/4/29
*/
@Data
@ApiModel(value = "ThemeCameraDTO", description = "主题设备保存请求类")
public class ThemeCameraDTO implements Serializable {
private static final long serialVersionUID = -7236602194359865843L;
@ApiModelProperty("设备id")
private Long cameraId;
@ApiModelProperty("设备名称")
private String cameraName;
}
@@ -0,0 +1,29 @@
package com.yida.data.device.dto.camera;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
/**
* 主题可见范围保存请求类
*
* @author ZYJ
* @date 2022/4/29
*/
@Data
@ApiModel(value = "ThemeDeptDTO", description = "主题可见范围保存请求类")
public class ThemeDeptDTO implements Serializable {
private static final long serialVersionUID = 7426835812642556516L;
@ApiModelProperty("部门id")
private Long deptId;
@ApiModelProperty("部门名称")
private String deptName;
@ApiModelProperty("当前部门的上级链状部门字符串, 用于数据回显")
private String parentDept;
}
@@ -0,0 +1,39 @@
package com.yida.data.device.dto.camera;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
/**
* 主题开放时间保存请求类
*
* @author ZYJ
* @date 2022/4/29
*/
@Data
@ApiModel(value = "ThemeOpenTimeDTO", description = "主题开放时间保存请求类")
public class ThemeOpenTimeDTO implements Serializable {
private static final long serialVersionUID = 922818271908797324L;
@ApiModelProperty(value = "开放日期周几的数字", example = "1")
private Integer week;
@ApiModelProperty(value = "开放日期标签", example = "周一")
private String label;
@ApiModelProperty("开始时间")
@DateTimeFormat(pattern = "HH:mm")
@JsonFormat(timezone = "GMT+8", pattern = "HH:mm")
private Date start;
@ApiModelProperty("结束时间")
@DateTimeFormat(pattern = "HH:mm")
@JsonFormat(timezone = "GMT+8", pattern = "HH:mm")
private Date end;
}
@@ -0,0 +1,49 @@
package com.yida.data.device.dto.camera;
import com.yida.data.common.core.entity.camera.enums.ThemeTypeEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* 主题保存请求类
*
* @author ZYJ
* @date 2022/4/29
*/
@Data
@ApiModel(value = "ThemeSaveDTO", description = "主题保存请求类")
public class ThemeSaveDTO implements Serializable {
private static final long serialVersionUID = 4815089614436140031L;
@ApiModelProperty("主题id")
private Long id;
@ApiModelProperty("主题名称")
private String theme;
@ApiModelProperty("主题简介")
private String themeDescribe;
@ApiModelProperty("开放状态:0未开放,1开放")
private Integer openStatus;
/**
* {@link ThemeTypeEnum}
*/
@ApiModelProperty("主题类型.0:固定,不可删除(此类型只有一条数据, 并且不能选择设备);1:不固定,可删除")
private Integer themeType;
@ApiModelProperty("设备信息集合")
private List<ThemeCameraDTO> cameraList;
@ApiModelProperty("可见范围, 班级信息集合")
private List<ThemeDeptDTO> deptList;
@ApiModelProperty("开放时间集合")
private List<ThemeOpenTimeDTO> openTimeList;
}
@@ -0,0 +1,42 @@
package com.yida.data.device.dto.consume;
import com.yida.data.common.core.common.BaseDTO;
import com.yida.data.common.core.entity.consume.EduConsumeOrder;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.io.Serializable;
/**
* 消费订单后台列表请求类
*
* @author ZYJ
* @date 2023/4/14
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "ConsumeOrderPageDTO", description = "消费订单后台列表请求类")
public class ConsumeOrderPageDTO extends BaseDTO<EduConsumeOrder> implements Serializable {
private static final long serialVersionUID = 5188209169253382906L;
@ApiModelProperty("订单状态")
private String orderStatus;
@ApiModelProperty("订单号")
private String orderCode;
@ApiModelProperty("学生姓名或校园卡号")
private String searchData;
@ApiModelProperty("学校id")
private Long schoolId;
}
@@ -0,0 +1,54 @@
package com.yida.data.device.dto.consume;
import com.yida.data.common.core.enums.PayWay;
import com.yida.data.common.core.enums.UnionPayTypeEnum;
import com.yida.data.common.core.enums.WxPayTypeEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* 生成消费订单请求类
*
* @author ZYJ
* @date 2023/3/23
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "CreateConsumeOrderDTO", description = "生成消费订单请求类")
public class CreateConsumeOrderDTO implements Serializable {
private static final long serialVersionUID = 230831080990848937L;
@ApiModelProperty("学生id")
private Long studentId;
@ApiModelProperty("学校id")
private Long schoolId;
@ApiModelProperty("充值金额. 单位: 元")
private BigDecimal money;
/**
* 支付方式
* {@link PayWay}
*/
@ApiModelProperty("支付方式")
private String payWay;
/**
* 支付类型
* 银联云闪付: {@link UnionPayTypeEnum}
* 微信类型: {@link WxPayTypeEnum}
*/
@ApiModelProperty("支付类型")
private Integer payType;
}
@@ -0,0 +1,36 @@
package com.yida.data.device.dto.consume;
import com.yida.data.common.core.common.BaseDTO;
import com.yida.data.common.core.entity.consume.EduConsumeOrder;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.io.Serializable;
/**
* 消费订单列表请求类(充值记录)
*
* @author ZYJ
* @date 2023/3/24
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "H5ConsumeOrderPageDTO", description = "消费订单列表请求类(充值记录)")
public class H5ConsumeOrderPageDTO extends BaseDTO<EduConsumeOrder> implements Serializable {
private static final long serialVersionUID = 3749227164138041581L;
@ApiModelProperty("学生id")
private Long studentId;
@ApiModelProperty("学校id")
private Long deptId;
}
@@ -0,0 +1,36 @@
package com.yida.data.device.dto.consume;
import com.yida.data.common.core.common.BaseDTO;
import com.yida.data.common.core.entity.consume.EduConsumeRecord;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.io.Serializable;
/**
* 消费机学生消费记录列表请求类
*
* @author ZYJ
* @date 2023/3/24
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "H5ConsumeRecordPageDTO", description = "消费机学生消费记录列表请求类")
public class H5ConsumeRecordPageDTO extends BaseDTO<EduConsumeRecord> implements Serializable {
private static final long serialVersionUID = 4230279140715058049L;
@ApiModelProperty("学生id")
private Long studentId;
@ApiModelProperty("学校id")
private Long deptId;
}
@@ -0,0 +1,41 @@
package com.yida.data.device.dto.studentCard;
import com.yida.data.common.core.common.BaseDTO;
import io.swagger.annotations.ApiModelProperty;
import java.time.LocalDateTime;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
@Data
public class AlarmPageDTO extends BaseDTO {
@ApiModelProperty("告警类型,字典card_alarm_type")
private Integer alarmType;
@ApiModelProperty("开始时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime startTime;
@ApiModelProperty("结束时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime endTime;
@ApiModelProperty("姓名或imei号")
private String keyword;
@ApiModelProperty("学校id")
private Long schoolId;
@ApiModelProperty("校区id")
private Long campusId;
@ApiModelProperty("学段id")
private Long sectionId;
@ApiModelProperty("年级id")
private Long gradeId;
@ApiModelProperty("班级id")
private Long classId;
}
@@ -0,0 +1,51 @@
package com.yida.data.device.dto.studentCard;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.time.LocalDateTime;
import lombok.Data;
@Data
public class CardMsgDTO implements Serializable {
private static final long serialVersionUID = 8024097842583669587L;
// 定位信息
public final static Integer LOCATION = 0;
// 危险区域
public final static Integer RISK_AREA = 1;
// 步数
public final static Integer STEP = 2;
// 低电量
public final static Integer LOW_BAT = 3;
// 设备脱落
public final static Integer DEVICE_STATIC = 4;
@ApiModelProperty("消息类型")
private Integer msgType;
@ApiModelProperty("设备imei")
private String imei;
@ApiModelProperty("经度")
private Double lng;
@ApiModelProperty("纬度")
private Double lat;
@ApiModelProperty("地址")
private String address;
@ApiModelProperty("附加信息")
private String remark;
@ApiModelProperty("电量")
private Integer bat;
@ApiModelProperty("步数")
private Integer step;
@ApiModelProperty("设备上报时间")
private LocalDateTime deviceTime;
private Integer type;
}
@@ -0,0 +1,61 @@
package com.yida.data.device.dto.studentCard;
import com.yida.data.common.core.common.BaseDTO;
import com.yida.data.device.vo.studentCard.CardPageVO;
import io.swagger.annotations.ApiModelProperty;
import java.time.LocalDateTime;
import java.util.List;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
@Data
public class CardPageDTO extends BaseDTO {
@ApiModelProperty("姓名")
private String name;
@ApiModelProperty("手机号")
private String mobile;
@ApiModelProperty("导入开始时间 yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private String importStartTime;
@ApiModelProperty("导入结束时间 yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private String importEndTime;
@ApiModelProperty("激活开始时间 yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime activateStartTime;
@ApiModelProperty("激活结束时间 yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime activateEndTime;
@ApiModelProperty("使用状态:0:禁用,1:正常")
private Integer useStatus;
@ApiModelProperty("设备型号")
private String mcType;
@ApiModelProperty("imei")
private String imei;
@ApiModelProperty("rfid")
private String rfid;
private Long schoolId;
private Long campusId;
private Long sectionId;
private Long gradeId;
private Long classId;
@ApiModelProperty("导出数据")
private List<CardPageVO> dataList;
}
@@ -0,0 +1,30 @@
package com.yida.data.device.dto.studentCard;
import com.yida.data.common.core.common.BaseDTO;
import io.swagger.annotations.ApiModelProperty;
import java.util.List;
import lombok.Data;
@Data
public class CardWithAddressDTO extends BaseDTO {
@ApiModelProperty("学校id")
private Long schoolId;
@ApiModelProperty("校区id")
private Long campusId;
@ApiModelProperty("学段id")
private Long sectionId;
@ApiModelProperty("年级id")
private Long gradeId;
@ApiModelProperty("班级id")
private Long classId;
private List<Long> studentIds;
@ApiModelProperty("在线状态,0-离线,1-在线")
private Integer onlineStatus;
}
@@ -0,0 +1,11 @@
package com.yida.data.device.dto.studentCard;
import lombok.Data;
@Data
public class DeptTypeDTO {
private Long deptId;
private Long deptType;
}
@@ -0,0 +1,20 @@
package com.yida.data.device.dto.studentCard;
import com.yida.data.common.core.entity.card.EduStudentCardDisturbTime;
import io.swagger.annotations.ApiModelProperty;
import java.util.List;
import lombok.Data;
/**
* @author ccl
*/
@Data
public class DisturbStatusDTO {
@ApiModelProperty("学生id列表")
private List<Long> studentId;
@ApiModelProperty("时间段列表")
private List<EduStudentCardDisturbTime> times;
}
@@ -0,0 +1,17 @@
package com.yida.data.device.dto.studentCard;
import java.time.LocalDateTime;
import lombok.Data;
@Data
public class PushAlarmDataDTO {
private String imei;
private String deviceName;
private String alarmType;
private String alarmName;
private Double lat;
private Double lng;
private LocalDateTime alarmTime;
private String address;
}
@@ -0,0 +1,10 @@
package com.yida.data.device.dto.studentCard;
import lombok.Data;
@Data
public class PushAlarmMsgDTO {
private String msgType;
private PushAlarmDataDTO data;
}
@@ -0,0 +1,37 @@
package com.yida.data.device.dto.telephone;
import lombok.Data;
@Data
public class DealRecordDTO {
/**
* 设备sn号
*/
private String sn;
/**
* 考勤时间
*/
private String date;
/**
* 考勤用户id
*/
private Long userId;
/**
* 用户类型,0-学生,1-教职工
*/
private Integer userType;
/**
* 设备方用户唯一标识
*/
private String userFlag;
/**
* 考勤图片
*/
private String picUrl;
}
@@ -0,0 +1,16 @@
package com.yida.data.device.dto.telephone;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.Data;
@Data
public class DevicePage<T> extends Page<T> {
public DevicePage(Integer pageNum, Integer pageSize) {
super(pageNum, pageSize);
}
private Integer onlineNumber;
private Integer offlineNumber;
}
@@ -0,0 +1,49 @@
package com.yida.data.device.dto.telephone;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yida.data.common.core.common.BaseDTO;
import com.yida.data.device.vo.telephone.OrderPageVO;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import java.util.List;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class OrderPageDTO extends BaseDTO {
private Long schoolId;
private Long campusId;
private Long sectionId;
private Long gradeId;
private Long classId;
@ApiModelProperty("学生姓名")
private String studentName;
@ApiModelProperty("学生ic卡号")
private String cardNo;
@ApiModelProperty("支付人手机号")
private String payPhone;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("开始时间")
private LocalDateTime startTime;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("结束时间")
private LocalDateTime endTime;
@ApiModelProperty("订单列表(导出用)")
private List<OrderPageVO> orderList;
}
@@ -0,0 +1,16 @@
package com.yida.data.device.dto.telephone;
import java.time.LocalDateTime;
import lombok.Data;
@Data
public class PhoneCdataDTO {
private String cardno;
private String phone;
private LocalDateTime starttime;
private Integer duration;
private Integer second;
private String phoneNumber;
private Integer money;
}
@@ -0,0 +1,17 @@
package com.yida.data.device.dto.telephone;
import java.util.List;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author ccl
*/
@Data
public class PhoneStatusDTO {
@ApiModelProperty("话机id")
private List<Long> ids;
@ApiModelProperty("0停运,1正常")
private Integer status;
}
@@ -0,0 +1,54 @@
package com.yida.data.device.dto.telephone;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yida.data.common.core.common.BaseDTO;
import com.yida.data.device.vo.telephone.RecordInfoVO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import java.util.List;
@Data
public class RecordPageDTO extends BaseDTO {
private Long schoolId;
private Long campusId;
private Long sectionId;
private Long gradeId;
private Long classId;
@ApiModelProperty("话机imei")
private String imei;
@ApiModelProperty("话机iccid")
private String iccid;
@ApiModelProperty("学生ic卡号")
private String cardNo;
@ApiModelProperty("学生姓名")
private String studentName;
@ApiModelProperty("被呼号码")
private String callPhone;
@ApiModelProperty("开始时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime startTime;
@ApiModelProperty("结束时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime endTime;
@ApiModelProperty("需要导出得数据列表")
private List<RecordInfoVO> recordList;
}
@@ -0,0 +1,34 @@
package com.yida.data.device.dto.telephone;
import com.baomidou.mybatisplus.annotation.TableField;
import com.yida.data.common.core.entity.telephone.EduTelephoneBlack;
import com.yida.data.common.core.entity.telephone.EduTelephonePeriod;
import java.util.List;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author ccl
*/
@Data
public class TelephoneDTO {
private List<Long> schoolId;
private List<EduTelephonePeriod> periods;
private List<EduTelephoneBlack> blacks;
@ApiModelProperty("单个设置传话机id")
private Long telephoneId;
/**
* 每月最大分钟数
*/
@TableField("month_max_len")
@ApiModelProperty("每月最大分钟数")
private Integer monthMaxLen;
/**
* 每次最大分钟数
*/
@TableField("time_max_len")
@ApiModelProperty("每次最大分钟数")
private Integer timeMaxLen;
}
@@ -0,0 +1,17 @@
package com.yida.data.device.dto.telephone;
import java.util.List;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author chenbo
*/
@Data
public class UpdateListCardPriceDTO {
@ApiModelProperty("ic卡id")
private List<Long> cardId;
@ApiModelProperty("费率id")
private Long id;
}
@@ -0,0 +1,32 @@
package com.yida.data.device.fallback;
import com.yida.data.common.core.annotation.Fallback;
import com.yida.data.common.core.common.ResultBean;
import com.yida.data.common.core.entity.consume.EduStudentConsumeCard;
import com.yida.data.device.feign.consume.RemoteConsumeCardService;
import feign.hystrix.FallbackFactory;
import lombok.extern.slf4j.Slf4j;
/**
* RemoteConsumeCardService fallback处理类
*
* @author ZYJ
* @date 2023/3/20
*/
@Slf4j
@Fallback
public class RemoteConsumeCardServiceFallback implements FallbackFactory<RemoteConsumeCardService> {
@Override
public RemoteConsumeCardService create(Throwable throwable) {
log.error("RemoteConsumeCardService fallback reason:{}", throwable.getMessage());
return new RemoteConsumeCardService() {
@Override
public ResultBean<String> saveConsumeCard(EduStudentConsumeCard eduStudentConsumeCard) {
return null;
}
};
}
}
@@ -0,0 +1,36 @@
package com.yida.data.device.fallback;
import com.yida.data.common.core.annotation.Fallback;
import com.yida.data.common.core.common.ResultBean;
import com.yida.data.device.feign.consume.RemoteConsumeOrderService;
import feign.hystrix.FallbackFactory;
import lombok.extern.slf4j.Slf4j;
/**
* RemoteConsumeOrderService fallback处理类
*
* @author ZYJ
* @date 2023/4/3
*/
@Slf4j
@Fallback
public class RemoteConsumeOrderServiceFallback implements FallbackFactory<RemoteConsumeOrderService> {
@Override
public RemoteConsumeOrderService create(Throwable throwable) {
log.error("RemoteConsumeOrderService fallback reason:{}", throwable.getMessage());
return new RemoteConsumeOrderService() {
@Override
public ResultBean<String> updateOrderStatus() {
return null;
}
@Override
public ResultBean<String> updateRefundStatus() {
return null;
}
};
}
}
@@ -0,0 +1,43 @@
package com.yida.data.device.fallback;
import com.yida.data.common.core.annotation.Fallback;
import com.yida.data.common.core.common.ResultBean;
import com.yida.data.device.feign.studentCard.RemoteStudentCardService;
import feign.hystrix.FallbackFactory;
import lombok.extern.slf4j.Slf4j;
/**
* RemoteStudentCardService fallback处理类
*
* @author ZYJ
* @date 2022/8/26
*/
@Slf4j
@Fallback
public class RemoteStudentCardServiceFallback implements FallbackFactory<RemoteStudentCardService> {
@Override
public RemoteStudentCardService create(Throwable throwable) {
log.error("RemoteStudentCardService fallback reason:{}", throwable.getMessage());
return new RemoteStudentCardService() {
/**
* 更新设备定位
*
* @return
*/
@Override
public ResultBean updateCardPos() {
return null;
}
/**
* 更新设备在线状态
*/
@Override
public ResultBean updateCardStatus() {
return null;
}
};
}
}
@@ -0,0 +1,33 @@
package com.yida.data.device.fallback;
import com.yida.data.common.core.annotation.Fallback;
import com.yida.data.common.core.common.ResultBean;
import com.yida.data.device.feign.telephone.RemoteTelephoneService;
import feign.hystrix.FallbackFactory;
import lombok.extern.slf4j.Slf4j;
/**
* RemoteTelephoneService fallback处理类
*
* @author ZYJ
* @date 2022/8/26
*/
@Slf4j
@Fallback
public class RemoteTelephoneServiceFallback implements FallbackFactory<RemoteTelephoneService> {
@Override
public RemoteTelephoneService create(Throwable throwable) {
log.error("RemoteTelephoneService fallback reason:{}", throwable.getMessage());
return new RemoteTelephoneService() {
/**
* 更新设备在线状态
*/
@Override
public ResultBean updateTelephoneStatus() {
return null;
}
};
}
}
@@ -0,0 +1,20 @@
package com.yida.data.device.feign.consume;
import com.yida.data.common.core.common.ResultBean;
import com.yida.data.common.core.entity.constant.FebsServerConstant;
import com.yida.data.common.core.entity.consume.EduStudentConsumeCard;
import com.yida.data.device.fallback.RemoteStudentCardServiceFallback;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@FeignClient(value = FebsServerConstant.EDU_DEVICE, contextId = "consumeCardClient",
fallbackFactory = RemoteStudentCardServiceFallback.class)
public interface RemoteConsumeCardService {
/**
* 保存学生消费机信息
*/
@PostMapping("/consumeCard/saveConsumeCard")
ResultBean<String> saveConsumeCard(@RequestBody EduStudentConsumeCard eduStudentConsumeCard);
}
@@ -0,0 +1,38 @@
package com.yida.data.device.feign.consume;
import com.yida.data.common.core.common.ResultBean;
import com.yida.data.common.core.entity.constant.FebsServerConstant;
import com.yida.data.device.fallback.RemoteConsumeOrderServiceFallback;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
/**
* 消费订单模块feign
*
* @author ZYJ
* @date 2023/4/3
*/
@FeignClient(value = FebsServerConstant.EDU_DEVICE, contextId = "consumeOrderServiceClient",
fallbackFactory = RemoteConsumeOrderServiceFallback.class)
public interface RemoteConsumeOrderService {
/**
* 更新超时订单状态
*
* @return com.yida.data.common.core.common.ResultBean<java.lang.String>
* @author ZYJ
* @date 2023/4/3 13:26
*/
@GetMapping("/in/consume/updateOrderStatus")
ResultBean<String> updateOrderStatus();
/**
* 更新退款订单状态
*
* @return com.yida.data.common.core.common.ResultBean<java.lang.String>
* @author ZYJ
* @date 2023/4/3 13:26
*/
@GetMapping("/in/consume/updateRefundStatus")
ResultBean<String> updateRefundStatus();
}
@@ -0,0 +1,27 @@
package com.yida.data.device.feign.studentCard;
import com.yida.data.common.core.common.ResultBean;
import com.yida.data.common.core.entity.constant.FebsServerConstant;
import com.yida.data.device.fallback.RemoteStudentCardServiceFallback;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
@FeignClient(value = FebsServerConstant.EDU_DEVICE, contextId = "Client",
fallbackFactory = RemoteStudentCardServiceFallback.class)
public interface RemoteStudentCardService {
/**
* 更新设备定位
*
* @return
*/
@GetMapping("/in/studentCard/card/updateCardPos")
ResultBean updateCardPos();
/**
* 更新设备在线状态
*/
@GetMapping("/in/studentCard/card/updateCardStatus")
ResultBean updateCardStatus();
}
@@ -0,0 +1,19 @@
package com.yida.data.device.feign.telephone;
import com.yida.data.common.core.common.ResultBean;
import com.yida.data.common.core.entity.constant.FebsServerConstant;
import com.yida.data.device.fallback.RemoteTelephoneServiceFallback;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
@FeignClient(value = FebsServerConstant.EDU_DEVICE, contextId = "studentCardService",
fallbackFactory = RemoteTelephoneServiceFallback.class)
public interface RemoteTelephoneService {
/**
* 更新设备在线状态
*/
@GetMapping("/in/telephone/telephone/updateTelephoneStatus")
ResultBean updateTelephoneStatus();
}
@@ -0,0 +1,11 @@
package com.yida.data.device.vo;
import lombok.Data;
@Data
public class OnlineCountVO {
private Integer onlineNum;
private Integer offlineNum;
}
@@ -0,0 +1,21 @@
package com.yida.data.device.vo.camera;
import com.yida.data.common.core.entity.camera.EduCamera;
import com.yida.data.common.core.entity.camera.EduCameraAuthorityTeacher;
import com.yida.data.common.core.entity.user.EduStaff;
import com.yida.data.common.core.entity.user.EduStaffDept;
import lombok.Data;
import java.util.List;
/**
* @author ccl
*/
@Data
public class AuthorityByGroupIdVO {
private List<EduStaffDept> staffs;
private List<EduCamera> cameras;
private Integer groupIndex;
private Long groupId;
}
@@ -0,0 +1,19 @@
package com.yida.data.device.vo.camera;
import lombok.Data;
import java.util.List;
/**
* @author ccl
*/
@Data
public class EduCameraAreaGroupVO {
private Long id;
private String label;
private Integer sort;
private Long parentId;
private Integer level;
private List<EduCameraAreaGroupVO> children;
}
@@ -0,0 +1,33 @@
package com.yida.data.device.vo.camera;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* H5家长端主题列表返回类
*
* @author ZYJ
* @date 2022/4/29
*/
@Data
@ApiModel(value = "H5ThemeListVO", description = "H5家长端主题列表返回类")
public class H5ThemeListVO implements Serializable {
private static final long serialVersionUID = 7850044412510177331L;
@ApiModelProperty("主题id")
private Long id;
@ApiModelProperty("主题名称")
private String theme;
@ApiModelProperty("主题简介")
private String themeDescribe;
@ApiModelProperty("设备数据集合")
private List<ListCameraVO> cameraList;
}
@@ -0,0 +1,51 @@
package com.yida.data.device.vo.camera;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
/**
* @author ccl
*/
@Data
public class ListCameraVO implements Serializable {
private static final long serialVersionUID = -4074002735610057946L;
@ApiModelProperty("设备id")
private Long id;
@ApiModelProperty("设备编码")
private String code;
@ApiModelProperty("转译地址")
private String transUrl;
@ApiModelProperty("区域名称")
private String areaName;
@ApiModelProperty("区域名称")
private Long areaGroupId;
@ApiModelProperty("备注")
private String remarks;
@ApiModelProperty("开放状态")
private Integer openStatus;
@ApiModelProperty("运行状态")
private Integer runStatus;
@ApiModelProperty("设备名称")
private String cameraName;
@ApiModelProperty("设备类型.0:非公共摄像头,1:公共摄像头")
private Integer commonType;
@ApiModelProperty("非公共摄像头对应的部门id(目前为班级id)")
private Long deptId;
@ApiModelProperty("当前部门的链状部门字符串, 用于数据回显")
private String parentDept;
}
@@ -0,0 +1,12 @@
package com.yida.data.device.vo.camera;
import lombok.Data;
/**
* @author ccl
*/
@Data
public class OpenCameraListVO {
private Long groupId;
private String groupName;
}
@@ -0,0 +1,14 @@
package com.yida.data.device.vo.camera;
import lombok.Data;
/**
* @author ccl
*/
@Data
public class OpenClassListVO {
private Long gradeId;
private String gradeName;
private Long classId;
private String className;
}
@@ -0,0 +1,21 @@
package com.yida.data.device.vo.camera;
import com.yida.data.device.dto.camera.ThemeSaveDTO;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 主题列表返回类
*
* @author ZYJ
* @date 2022/4/29
*/
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "ThemeListVO", description = "主题列表返回类")
public class ThemeListVO extends ThemeSaveDTO {
private static final long serialVersionUID = 3397522217012463506L;
}
@@ -0,0 +1,29 @@
package com.yida.data.device.vo.camera;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
/**
* 主题标签返回类
*
* @author ZYJ
* @date 2022/4/29
*/
@Data
@ApiModel(value = "ThemeTagVO", description = "主题标签返回类")
public class ThemeTagVO implements Serializable {
private static final long serialVersionUID = 5688003345642366787L;
@ApiModelProperty("主题id")
private Long id;
@ApiModelProperty("主题名称")
private String theme;
@ApiModelProperty("主题简介")
private String themeDescribe;
}
@@ -0,0 +1,21 @@
package com.yida.data.device.vo.camera;
import com.yida.data.device.dto.camera.ThemeSaveDTO;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 主题信息返回类
*
* @author ZYJ
* @date 2022/4/29
*/
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "ThemeVO", description = "主题信息返回类")
public class ThemeVO extends ThemeSaveDTO {
private static final long serialVersionUID = 4364763912001673106L;
}
@@ -0,0 +1,53 @@
package com.yida.data.device.vo.consume;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* 消费机列表返回接口
*
* @author ZYJ
* @date 2023-03-15 10:02:27
*/
@Data
@ApiModel("设备信息")
public class ConsumeDeviceVO implements Serializable {
private static final long serialVersionUID = 1192859620255962398L;
private Long id;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createDate;
@ApiModelProperty("设备名称")
private String name;
@ApiModelProperty("设备编号")
private String sn;
@ApiModelProperty("设备mac地址")
private String macAddress;
@ApiModelProperty("设备厂商")
private String deviceType;
@ApiModelProperty("ip")
private String ip;
@ApiModelProperty("学校id")
private Long schoolId;
@ApiModelProperty("学校名称")
private String schoolName;
@ApiModelProperty("设备在线状态,0-在线,1-未在线")
private Integer state;
}
@@ -0,0 +1,74 @@
package com.yida.data.device.vo.consume;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yida.data.common.core.entity.consume.EduConsumeOrderStudent;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
* 消费订单后台列表返回类
*
* @author ZYJ
* @date 2023/4/14
*/
@Data
@ApiModel(value = "ConsumeOrderPageVO", description = "消费订单后台列表返回类")
public class ConsumeOrderPageVO implements Serializable {
private static final long serialVersionUID = -4944464049391972122L;
@ApiModelProperty(value = "订单id")
private Long orderId;
@ApiModelProperty(value = "部门id")
private Long deptId;
@ApiModelProperty(value = "部门名称")
private String deptName;
@ApiModelProperty(value = "订单状态:0:待付款 1:付款中 2:交易完成(正常支付成功) 3:待退款 4:交易关闭(a:超时未支付,b:退款成功")
private String orderStatus;
@ApiModelProperty(value = "支付状态:0:未支付(默认) 1:已支付 2:已退款 3:已取消")
private String payStatus;
@ApiModelProperty(value = "订单总金额")
private BigDecimal totalMoney;
@ApiModelProperty(value = "实际支付金额")
private BigDecimal practicalMoney;
@ApiModelProperty(value = "支付人手机号(家长手机)")
private String phone;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("创建时间")
private Date createDate;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("支付时间")
private Date payDate;
@ApiModelProperty("订单编号")
private String orderCode;
@ApiModelProperty("交易流水号")
private String transactionNumber;
@ApiModelProperty(value = "支付方式:1:微信,2:支付宝,3:银联,4:收钱吧")
private String payWay;
@ApiModelProperty(value = "是否退款:0:否(默认) 1:是")
private String isRefund;
@ApiModelProperty("订单学生信息")
private EduConsumeOrderStudent student;
}
@@ -0,0 +1,44 @@
package com.yida.data.device.vo.consume;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* 学生消费订单缓存类
*
* @author ZYJ
* @date 2023/3/22
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "ConsumeOrderStudentCacheVO", description = "学生消费订单缓存类")
public class ConsumeOrderStudentCacheVO implements Serializable {
private static final long serialVersionUID = 8649760066609681494L;
@ApiModelProperty("学生id")
private Long studentId;
@ApiModelProperty("学生姓名")
private String studentName;
@ApiModelProperty("下单家长id")
private Long parentId;
@ApiModelProperty("家长类型")
private String parentType;
@ApiModelProperty("家长手机号码")
private String mobile;
@ApiModelProperty("订单号")
private String orderNo;
}
@@ -0,0 +1,77 @@
package com.yida.data.device.vo.consume;
import com.yida.data.common.core.enums.PayWay;
import com.yida.data.common.core.enums.UnionPayTypeEnum;
import com.yida.data.common.core.enums.WxPayTypeEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* 生成消费订单返回信息
*
* @author ZYJ
* @date 2023/3/22
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "ConsumePayInfoVO", description = "生成消费订单返回信息")
public class ConsumePayInfoVO implements Serializable {
private static final long serialVersionUID = 6829651635967940690L;
@ApiModelProperty("错误状态码. 仅在接口异常时返回")
private Integer errorCode;
@ApiModelProperty("错误信息. 仅在接口异常时返回")
private String errorMessage;
@ApiModelProperty("订单号")
private String orderCode;
@ApiModelProperty("微信时间戳")
private String wxTimestamp;
@ApiModelProperty("微信随机字符串")
private String wxNonceStr;
@ApiModelProperty("微信商户号")
private String wxAppId;
@ApiModelProperty("微信package")
private String wxPackage;
@ApiModelProperty("微信签名后串")
private String wxSign;
@ApiModelProperty("是否需要跳转支付")
private Boolean needToPay;
/**
* 支付方式
* {@link PayWay}
*/
@ApiModelProperty("支付方式")
private String payWay;
/**
* 支付类型
* 银联云闪付: {@link UnionPayTypeEnum}
* 微信类型: {@link WxPayTypeEnum}
*/
@ApiModelProperty("具体支付子类型")
private Integer payType;
@ApiModelProperty("支付域名")
private String payDomain;
@ApiModelProperty("支付地址")
private String payUrl;
}
@@ -0,0 +1,48 @@
package com.yida.data.device.vo.consume;
import lombok.Data;
import java.io.Serializable;
/**
* 消费订单退款数据
*
* @author ZYJ
* @date 2023/4/3
*/
@Data
public class ConsumeRefundOrderVO implements Serializable {
private static final long serialVersionUID = -6557981285672617008L;
/**
* 订单id
*/
private Long orderId;
/**
* 订单号
*/
private String orderCode;
/**
* 退款id
*/
private Long refundId;
/**
* 退款号
*/
private String refundCode;
/**
* 订单支付方式
* 支付方式:1:微信,2:支付宝,3:银联,4:收钱吧
*/
private String payWay;
/**
* 学校部门id
*/
private Long deptId;
}
@@ -0,0 +1,52 @@
package com.yida.data.device.vo.consume;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* 学生消费机会员返回类
*
* @author ZYJ
* @date 2023/3/16
*/
@Data
@ApiModel(value = "ConsumeVipVO", description = "学生消费机会员返回类")
public class ConsumeVipVO implements Serializable {
private static final long serialVersionUID = 6368984207326579608L;
@ApiModelProperty("true代表是会员, false代表非会员")
private Boolean vipFlag;
@ApiModelProperty("有效期开始时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime startTime;
@ApiModelProperty("有效期结束时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime endTime;
@ApiModelProperty("余额")
private BigDecimal balance;
@ApiModelProperty("卡片状态(1:正常卡 2:挂失卡)")
private Integer cardStatus;
@ApiModelProperty("卡号")
private String stuCardNum;
@ApiModelProperty("支付方式")
private String payWay;
@ApiModelProperty("支付类型")
private String payType;
}
@@ -0,0 +1,67 @@
package com.yida.data.device.vo.consume;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
* 消费订单列表返回类(充值记录)
*
* @author ZYJ
* @date 2023/3/24
*/
@Data
@ApiModel(value = "H5ConsumeOrderPageVO", description = "消费订单列表返回类(充值记录)")
public class H5ConsumeOrderPageVO implements Serializable {
private static final long serialVersionUID = -8643407654576586273L;
@ApiModelProperty(value = "订单id")
private Long orderId;
@ApiModelProperty(value = "部门id")
private Long deptId;
@ApiModelProperty(value = "部门名称")
private String deptName;
@ApiModelProperty(value = "订单状态:0:待付款 1:付款中 2:交易完成(正常支付成功) 3:待退款 4:交易关闭(a:超时未支付,b:退款成功")
private String orderStatus;
@ApiModelProperty(value = "支付状态:0:未支付(默认) 1:已支付 2:已退款 3:已取消")
private String payStatus;
@ApiModelProperty(value = "订单总金额")
private BigDecimal totalMoney;
@ApiModelProperty(value = "实际支付金额")
private BigDecimal practicalMoney;
@ApiModelProperty("学生名称")
private String studentName;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("创建时间")
private Date createDate;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("支付时间")
private Date payDate;
@ApiModelProperty("订单编号")
private String orderCode;
@ApiModelProperty("交易流水号")
private String transactionNumber;
@ApiModelProperty(value = "支付方式:1:微信,2:支付宝,3:银联,4:收钱吧")
private String payWay;
}
@@ -0,0 +1,85 @@
package com.yida.data.device.vo.consume;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* 学生消费记录列表返回类
*
* @author ZYJ
* @date 2023/3/24
*/
@Data
@ApiModel(value = "H5ConsumeRecordPageVO", description = "学生消费记录列表返回类")
public class H5ConsumeRecordPageVO implements Serializable {
private static final long serialVersionUID = -5754645385438209457L;
@ApiModelProperty(value = "主键")
private Long id;
@ApiModelProperty(value = "创建时间(下单时间)")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createDate;
@ApiModelProperty(value = "订单号")
private Long orderNo;
@ApiModelProperty(value = "消费机设备编号")
private String deviceNo;
@ApiModelProperty(value = "学生主键ID")
private Long studentId;
@ApiModelProperty(value = "学生姓名")
private String studentName;
@ApiModelProperty(value = "校园卡号")
private String stuCardNumber;
@ApiModelProperty(value = "消费金额. 单位: 元")
private BigDecimal transactionAmount;
@ApiModelProperty(value = "消费时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime transactionTime;
@ApiModelProperty(value = "学校主键ID")
private Long schoolId;
@ApiModelProperty(value = "学校名称")
private String schoolName;
@ApiModelProperty(value = "学区主键ID")
private Long campusId;
@ApiModelProperty(value = "学区名称")
private String campusName;
@ApiModelProperty(value = "学段主键ID")
private Long sectionId;
@ApiModelProperty(value = "学段名称")
private String sectionName;
@ApiModelProperty(value = "年级主键ID")
private Long gradeId;
@ApiModelProperty(value = "年级名称")
private String gradeName;
@ApiModelProperty(value = "班级主键ID")
private Long classId;
@ApiModelProperty(value = "班级名称")
private String className;
}
@@ -0,0 +1,36 @@
package com.yida.data.device.vo.studentCard;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.time.LocalDateTime;
import lombok.Data;
@ApiModel("告警分页信息")
@Data
public class AlarmPageVO {
@ApiModelProperty("姓名")
private String studentName;
@ApiModelProperty("班级")
private String gradeClass;
@ApiModelProperty("学校")
private String schoolName;
@ApiModelProperty("imei")
private String imei;
@ApiModelProperty("告警类型")
private Integer alarmType;
@ApiModelProperty("告警时间")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime alarmTime;
@ApiModelProperty("位置")
private String address;
private Long studentId;
}
@@ -0,0 +1,14 @@
package com.yida.data.device.vo.studentCard;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class CardBindInfoVO {
@ApiModelProperty("身份")
private String relation;
@ApiModelProperty("手机号")
private String phone;
}
@@ -0,0 +1,50 @@
package com.yida.data.device.vo.studentCard;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.time.LocalDateTime;
import java.util.List;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class CardInfoVO {
@ApiModelProperty("设备id")
private Long cardId;
@ApiModelProperty("学生id")
private Long studentId;
@ApiModelProperty("学生姓名")
private String studentName;
@ApiModelProperty("学生电话号码")
private String studentPhone;
@ApiModelProperty("设备IMEI")
private String imei;
@ApiModelProperty("设备型号")
private String mcType;
@ApiModelProperty("设备识别id")
private String rfid;
@ApiModelProperty("激活状态:0:已激活,1:已激活")
private Integer activateStatus;
@ApiModelProperty("在线状态:0:离线,1:在线")
private Integer onlineStatus;
@ApiModelProperty("学校")
private String schoolName;
@ApiModelProperty("激活时间")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime activateDate;
@ApiModelProperty("绑定信息")
private List<CardBindInfoVO> bindInfoList;
}
@@ -0,0 +1,68 @@
package com.yida.data.device.vo.studentCard;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yida.data.common.core.converter.LocalDateTimeConverter;
import com.yida.data.device.convertor.studentCard.OnlineConverter;
import io.swagger.annotations.ApiModelProperty;
import java.time.LocalDateTime;
import lombok.Data;
@Data
public class CardPageVO {
@ApiModelProperty("校园卡id")
@ExcelIgnore
private Long cardId;
@ExcelProperty("机型")
@ApiModelProperty("机型")
private String mcType;
@ExcelProperty("IMEI")
@ApiModelProperty("imei")
private String imei;
@ExcelProperty("RFID")
@ApiModelProperty("rfid")
private String rfid;
@ExcelIgnore
private Long studentId;
@ExcelProperty("学生姓名")
@ApiModelProperty("学生姓名")
private String name;
@ExcelProperty("学生手机号")
@ApiModelProperty("学生手机号")
private String mobile;
@ExcelIgnore
@ApiModelProperty("绑定状态:0:未绑定,1:已绑定")
private Integer bindStatus;
@ExcelIgnore
@ApiModelProperty("激活状态:0:已激活,1:已激活")
private Integer activateStatus;
@ExcelIgnore
// @ExcelProperty(value = "使用状态", converter = UseConverter.class)
@ApiModelProperty("使用状态:0:禁用,1:正常")
private Integer useStatus;
@ExcelProperty(value = "在线状态", converter = OnlineConverter.class)
@ApiModelProperty("在线状态:0:离线,1:在线")
private Integer onlineStatus;
@ExcelProperty(value = "导入时间", converter = LocalDateTimeConverter.class)
@ApiModelProperty("导入时间")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime importTime;
@ExcelIgnore
@ApiModelProperty("激活时间")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime activateDate;
}
@@ -0,0 +1,27 @@
package com.yida.data.device.vo.studentCard;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.time.LocalDateTime;
import lombok.Data;
@Data
public class CardWithAddressVO {
private Long cardId;
private Long studentId;
private String studentName;
private Integer onlineStatus;
private String imei;
private Double lng;
private Double lat;
private Integer posType;
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime posTime;
}
@@ -0,0 +1,36 @@
package com.yida.data.device.vo.studentCard;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.time.LocalDateTime;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class FenceListVO {
private Long id;
private String name;
private String description;
@ApiModelProperty("经度")
private Double lng;
@ApiModelProperty("纬度")
private Double lat;
@ApiModelProperty("半径")
private Double radius;
@ApiModelProperty("围栏告警类型,0-进出都有,1-进围栏,2-出围栏")
private Integer alarmType;
@ApiModelProperty("围栏中心地址")
private String address;
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createDate;
}
@@ -0,0 +1,55 @@
package com.yida.data.device.vo.studentCard;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author ccl
*/
@Data
public class ListStudentCardVO {
@ApiModelProperty("学生id")
private Long studentId;
@ApiModelProperty("学生姓名")
private String studentName;
@ApiModelProperty("头像")
private String avatar;
private Long schoolId;
@ApiModelProperty("学校名称")
private String schoolName;
@ApiModelProperty("年级名称")
private String gradeName;
@ApiModelProperty("班级名称")
private String className;
@ApiModelProperty("设备imei")
private String imei;
@ApiModelProperty("手机号")
private String phone;
@ApiModelProperty("设备类型,jm/810A")
private String mcType;
@ApiModelProperty("经度")
private Double lng;
@ApiModelProperty("纬度")
private Double lat;
@ApiModelProperty("电量")
private Integer bat;
@ApiModelProperty("0-在线,1-离线")
private Integer onlineStatus;
@ApiModelProperty("0-免打扰中,1-非免打扰中")
private Integer disturbStatus;
}
@@ -0,0 +1,39 @@
package com.yida.data.device.vo.studentCard;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.time.LocalDateTime;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
/**
* @author ccl
*/
@Data
public class LocationVO implements Serializable {
private static final long serialVersionUID = 6152546177503615224L;
private String imei;
@ApiModelProperty("经度")
private Double lng;
@ApiModelProperty("纬度")
private Double lat;
@ApiModelProperty("卫星定位-0, 基站定位-1, WIFI定位-2, 蓝牙定位-3")
private Integer type;
@ApiModelProperty("定位时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime deviceTime;
@ApiModelProperty("电量")
private Integer bat;
@ApiModelProperty("0-在线,1-不在线")
private Integer online;
}
@@ -0,0 +1,18 @@
package com.yida.data.device.vo.studentCard;
import com.yida.data.common.core.entity.card.EduStudentCardAlarm;
import com.yida.data.common.core.entity.card.EduStudentCardFence;
import java.util.List;
import lombok.Data;
/**
* @author ccl
*/
@Data
public class SelectAlarmVO {
private EduStudentCardAlarm eduStudentCardAlarm;
private EduStudentCardFence eduStudentCardFence;
private List<TrackVO> result;
}
@@ -0,0 +1,24 @@
package com.yida.data.device.vo.studentCard;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import java.time.LocalDateTime;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
@Data
public class StudentAlarmVO {
@ApiModelProperty("告警时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createDate;
@ApiModelProperty("告警类型")
private Integer alarmType;
@ApiModelProperty("备注信息")
private String remark;
private String remarkValue;
}
@@ -0,0 +1,40 @@
package com.yida.data.device.vo.studentCard;
import java.time.LocalDateTime;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class StudentCardListVO {
@ApiModelProperty("学生名称")
private String studentName;
@ApiModelProperty("在线状态")
private Integer onlineStatus;
@ApiModelProperty("学生证id")
private Long cardId;
@ApiModelProperty("imei")
private String imei;
@ApiModelProperty("电量")
private Integer electricity;
@ApiModelProperty("定位方式")
private Integer posType;
@ApiModelProperty("定位时间")
private LocalDateTime gpsTime;
@ApiModelProperty("位置")
private String address;
@ApiModelProperty("经度")
private Double lng;
@ApiModelProperty("纬度")
private Double lat;
}
@@ -0,0 +1,40 @@
package com.yida.data.device.vo.studentCard;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author ccl
*/
@Data
public class TrackVO {
@ApiModelProperty("设备IMEI")
private String imei;
@ApiModelProperty("设备名称")
private String deviceName;
@ApiModelProperty("车辆图标")
private String icon;
@ApiModelProperty("设备状态 0,离线; 1,在线")
private Integer status;
@ApiModelProperty("卫星定位-GPS, 基站定位-LBS, WIFI定位-WIFI, 蓝牙定位-BEACON")
private Integer posType;
@ApiModelProperty("经度 (如果设备过期,值为0)")
private Double lat;
@ApiModelProperty("维度 (如果设备过期,值为0)")
private Double lng;
@ApiModelProperty("Acc状态 0:关闭 1:打开")
private Integer accStatus;
@ApiModelProperty("速度 (单位:km/h)")
private String speed;
@ApiModelProperty("GPS定位时间")
private String gpsTime;
@ApiModelProperty("是否激活 1-激活 0-未激活")
private String activationFlag;
@ApiModelProperty("是否过期 1-未过期 0-过期")
private String expireFlag;
@ApiModelProperty("设备电量(0-100),部分设备型号不支持")
private String electQuantity;
@ApiModelProperty("外电电压(0-100),部分设备支持")
private String powerValue;
}
@@ -0,0 +1,34 @@
package com.yida.data.device.vo.telephone;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 设备数量统计返回类
*
* @author ZYJ
* @date 2021/10/8
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "DeviceNumberVO", description = "设备数量统计返回类")
public class DeviceNumberVO implements Serializable {
private static final long serialVersionUID = -7261215589760191372L;
@ApiModelProperty(value = "设备总数量")
private Long totalNumber;
@ApiModelProperty(value = "在线设备数量")
private Long onlineNumber;
@ApiModelProperty(value = "离线设备数量")
private Long offlineNumber;
}
@@ -0,0 +1,52 @@
package com.yida.data.device.vo.telephone;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.time.LocalDateTime;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
@ApiModel("设备信息")
@Data
public class DeviceVO {
private Long id;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createDate;
@ApiModelProperty("设备名称")
private String name;
@ApiModelProperty("设备编号")
private String sn;
@ApiModelProperty("设备mac地址")
private String macAddress;
@ApiModelProperty("设备厂商")
private String deviceType;
@ApiModelProperty("ip")
private String ip;
@ApiModelProperty("学校id")
private Long schoolId;
@ApiModelProperty("学校名称")
private String schoolName;
@ApiModelProperty("区域类型,0-进门,1-出门")
private Integer zoneScope;
@ApiModelProperty("0-校门,1-宿舍")
private Integer type;
@ApiModelProperty("设备在线状态,0-在线,1-未在线")
private Integer state;
@ApiModelProperty("分组名称")
private String groupName;
}
@@ -0,0 +1,21 @@
package com.yida.data.device.vo.telephone;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author ccl
*/
@Data
public class FamilyRecordVO {
@ApiModelProperty("ic卡id")
private Long id;
@ApiModelProperty("呼叫时间")
private String callDate;
@ApiModelProperty("关系")
private String relation;
@ApiModelProperty("手机号")
private String phone;
@ApiModelProperty("通话时长")
private Integer callDuration;
}
@@ -0,0 +1,37 @@
package com.yida.data.device.vo.telephone;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author ccl
*/
@Data
public class IcCardVO {
@ApiModelProperty("ic卡id")
private Long id;
@ApiModelProperty("ic卡号")
private String cardNo;
@ApiModelProperty("学生名字")
private String studentName;
@ApiModelProperty("余额")
private String balance;
@ApiModelProperty("余额")
private Double balanceValue;
@ApiModelProperty("使用状态,0-正常使用,1-冻结")
private Integer status;
@ApiModelProperty("费率")
private BigDecimal price;
@ApiModelProperty("本月通话时长")
private String callDuration;
@ApiModelProperty("创建时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private String createDate;
}
@@ -0,0 +1,18 @@
package com.yida.data.device.vo.telephone;
import java.util.List;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class ImportICCardVO {
@ApiModelProperty("导入进度")
private Integer percent;
@ApiModelProperty("导入数据错误信息")
private List<String> errorMsg;
@ApiModelProperty("上传任务是否已完成,0-进行中,1-已完成")
private Integer status;
}
@@ -0,0 +1,55 @@
package com.yida.data.device.vo.telephone;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yida.data.device.convertor.telephone.MoneyConvertor;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
@Data
public class OrderInfoVO {
@ExcelProperty(value = "ID", index = 0)
private Long id;
@ApiModelProperty("学生姓名")
private String studentName;
@ApiModelProperty("学生ic卡号")
private String cardNo;
@ApiModelProperty("学校名称")
private String schoolName;
@ApiModelProperty("年级班级")
private String gradeClass;
@ApiModelProperty("充值金额")
@ExcelProperty(value = "充值金额", index = 3, converter = MoneyConvertor.class)
private Double money;
@ApiModelProperty("支付手机号")
private String payPhone;
@ApiModelProperty("支付人名称")
private String payRelation;
@ApiModelProperty("充后余额")
private Double afterBalance;
@ApiModelProperty("订单状态 0:待付款\\r\\n1:付款中\\r\\n2:交易完成(正常支付成功)\\r\\n3:待退款\\r\\n4:交易关闭(a:超时未支付,b:退款成功")
private Integer orderStatus;
@ApiModelProperty("创建时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createDate;
@ApiModelProperty("支付时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime payDate;
}
@@ -0,0 +1,57 @@
package com.yida.data.device.vo.telephone;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yida.data.common.core.converter.LocalDateTimeConverter;
import com.yida.data.device.convertor.telephone.MoneyConvertor;
import com.yida.data.device.convertor.telephone.OrderStatusConvertor;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
@Data
public class OrderPageVO {
@ExcelProperty(value = "ID", index = 0)
private Long id;
@ApiModelProperty("学生姓名")
@ExcelProperty(value = "学生姓名", index = 1)
private String studentName;
@ApiModelProperty("学生ic卡号")
@ExcelProperty(value = "学生IC卡号", index = 2)
private String cardNo;
@ApiModelProperty("充值金额")
@ExcelProperty(value = "充值金额", index = 3, converter = MoneyConvertor.class)
private Double money;
@ApiModelProperty("支付手机号")
@ExcelIgnore
private String payPhone;
@ApiModelProperty("支付人名称")
@ExcelIgnore
private String payRelation;
@ApiModelProperty("充后余额")
@ExcelProperty(value = "充后余额", index = 5, converter = MoneyConvertor.class)
private Double afterBalance;
@ApiModelProperty("订单状态 0:待付款\\r\\n1:付款中\\r\\n2:交易完成(正常支付成功)\\r\\n3:待退款\\r\\n4:交易关闭(a:超时未支付,b:退款成功")
@ExcelProperty(value = "订单状态", index = 6, converter = OrderStatusConvertor.class)
private Integer orderStatus;
@ApiModelProperty("创建时间")
@ExcelProperty(value = "创建时间", index = 7, converter = LocalDateTimeConverter.class)
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createDate;
@ApiModelProperty("后台适用")
@ExcelProperty(value = "支付人", index = 4)
private String payPerson;
}
@@ -0,0 +1,54 @@
package com.yida.data.device.vo.telephone;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yida.data.common.core.converter.LocalDateTimeConverter;
import com.yida.data.device.convertor.telephone.DurationConvertor;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
@ApiModel("通话记录信息")
@Data
public class RecordInfoVO {
@ExcelIgnore
private Long id;
@ApiModelProperty("话机imei")
@ExcelProperty(value = "话机IMEI", index = 0)
private String imei;
@ApiModelProperty("学生姓名")
@ExcelProperty(value = "学生姓名", index = 1)
private String studentName;
@ApiModelProperty("学生ic卡号")
@ExcelProperty(value = "学生IC卡号", index = 2)
private String cardNo;
@ApiModelProperty("被呼号码")
@ExcelIgnore
private String callPhone;
@ApiModelProperty("被呼人关系 可能为空")
@ExcelIgnore
private String callName;
@ApiModelProperty("通话时长")
@ExcelProperty(value = "通话时长", converter = DurationConvertor.class)
private Integer duration;
@ApiModelProperty("呼叫时间")
@ExcelProperty(value = "呼叫时间", converter = LocalDateTimeConverter.class, index = 4)
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime callDate;
@ApiModelProperty("被叫号码(后台使用)")
@ExcelProperty(value = "被叫号码", index = 3)
private String callProperty;
}
@@ -0,0 +1,39 @@
package com.yida.data.device.vo.telephone;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yida.data.common.core.entity.telephone.EduTelephoneCard;
import com.yida.data.common.core.entity.telephone.EduTelephoneFamily;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import java.util.List;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author ccl
*/
@Data
public class TelephoneCardVO {
@ApiModelProperty("通话时长")
private Integer callDuration;
@ApiModelProperty("手机")
private String phone;
@ApiModelProperty("关系")
private String relation;
@ApiModelProperty("费率")
private Double price;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("开始时间")
private LocalDateTime startDate;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("结束时间")
private LocalDateTime endDate;
private EduTelephoneCard eduTelephoneCard;
private List<EduTelephoneFamily> familyList;
}
@@ -0,0 +1,18 @@
package com.yida.data.device.vo.telephone;
import lombok.Data;
/**
* @author chenbo
*/
@Data
public class TelephoneSummaryVO {
private Integer personNum;
private Integer callNum;
private Integer callDuration;
private String day;
private String time;
private Integer hours;
private String month;
}
@@ -0,0 +1,56 @@
package com.yida.data.device.vo.telephone;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yida.data.common.core.entity.telephone.EduTelephoneBlack;
import com.yida.data.common.core.entity.telephone.EduTelephonePeriod;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import java.util.List;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author ccl
*/
@Data
public class TelephoneVO {
@ApiModelProperty("话机id")
private Long id;
@ApiModelProperty("话机名称")
private String name;
@ApiModelProperty("在线状态,0在线1不在线")
private Integer onlineStatus;
@ApiModelProperty("运营状态,0在运营,1禁用")
private Integer runStatus;
@ApiModelProperty("iccid")
private String iccid;
@ApiModelProperty("imei")
private String imei;
@ApiModelProperty("通话时长")
private Integer callDuration;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("创建时间")
private LocalDateTime createDate;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("最近一次通话时间")
private LocalDateTime maxDate;
@ApiModelProperty("黑名单列表")
private List<EduTelephoneBlack> blackList;
@ApiModelProperty("每月最大通话时长")
private Integer monthMaxLen;
@ApiModelProperty("每次最大通话时长")
private Integer timeMaxLen;
@ApiModelProperty
private Long schoolId;
@ApiModelProperty("学校名字")
private String schoolName;
@ApiModelProperty("地区名字")
private String areaName;
@ApiModelProperty("通话时间段列表")
private List<EduTelephonePeriod> periodList;
}
@@ -0,0 +1,5 @@
# Auto Configure
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.yida.data.device.fallback.RemoteStudentCardServiceFallback,\
com.yida.data.device.fallback.RemoteTelephoneServiceFallback,\
com.yida.data.device.fallback.RemoteConsumeCardServiceFallback
@@ -0,0 +1,103 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>edu-device</artifactId>
<groupId>com.yida.data.device</groupId>
<version>2.2-RELEASE</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>edu-device-biz</artifactId>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
<dependencies>
<!--mqtt-->
<dependency>
<groupId>org.eclipse.paho</groupId>
<artifactId>org.eclipse.paho.client.mqttv3</artifactId>
<version>${paho.mqttv3.version}</version>
</dependency>
<dependency>
<groupId>com.yida.data.system</groupId>
<artifactId>febs-server-system-api</artifactId>
<version>${febs-cloud.version}</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.yida.data.user</groupId>
<artifactId>edu-user-api</artifactId>
<version>${febs-cloud.version}</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.yida.data.school</groupId>
<artifactId>edu-school-api</artifactId>
<version>${febs-cloud.version}</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.bytedeco</groupId>
<artifactId>javacv</artifactId>
<version>1.4.1</version>
</dependency>
<dependency>
<groupId>org.bytedeco.javacpp-presets</groupId>
<artifactId>opencv-platform</artifactId>
<version>3.4.1-1.4.1</version>
</dependency>
<dependency>
<groupId>org.bytedeco.javacpp-presets</groupId>
<artifactId>ffmpeg-platform</artifactId>
<version>3.4.2-1.4.1</version>
</dependency>
<!--通用工具-->
<dependency>
<groupId>com.yida.data.common</groupId>
<artifactId>edu-common</artifactId>
<version>${febs-cloud.version}</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.yida.data.job</groupId>
<artifactId>febs-server-job-api</artifactId>
<version>${febs-cloud.version}</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.yida.data.device</groupId>
<artifactId>edu-device-api</artifactId>
<version>${febs-cloud.version}</version>
<scope>compile</scope>
</dependency>
<!--activemq-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-activemq</artifactId>
</dependency>
<dependency>
<groupId>com.yida.data.server</groupId>
<artifactId>edu-card-server-api</artifactId>
<version>2.2-RELEASE</version>
<scope>compile</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<outputDirectory>../../../febs-jar</outputDirectory>
</configuration>
</plugin>
</plugins>
</build>
</project>
@@ -0,0 +1,33 @@
package com.yida.data.device;
import cc.mrbird.febs.common.security.starter.annotation.EnableFebsCloudResourceServer;
import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure;
import com.alibaba.druid.support.http.StatViewServlet;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.WebApplicationType;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.annotation.Bean;
import org.springframework.jms.annotation.EnableJms;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.annotation.EnableScheduling;
@EnableAsync
@EnableScheduling
@EnableFebsCloudResourceServer
@EnableFeignClients(basePackages = "com.yida.data")
@MapperScan("com.yida.data.device.*.mapper")
@SpringBootApplication(exclude = DruidDataSourceAutoConfigure.class)
@EnableJms
public class EduDeviceApplication {
public static void main(String[] args) {
new SpringApplicationBuilder(EduDeviceApplication.class)
.web(WebApplicationType.SERVLET)
.run(args);
}
}
@@ -0,0 +1,61 @@
package com.yida.data.device.camera.controller.app;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yida.data.common.core.common.ResultBean;
import com.yida.data.common.core.entity.camera.EduCamera;
import com.yida.data.common.core.entity.camera.EduCameraAreaGroup;
import com.yida.data.common.core.utils.FebsUtil;
import com.yida.data.device.camera.service.EduCameraAreaGroupService;
import com.yida.data.device.vo.camera.H5ThemeListVO;
import com.yida.data.device.vo.camera.ThemeListVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* @author ccl
*/
@Api(tags = "监控-教师端")
@Slf4j
@Validated
@RestController
@RequestMapping("/camera/teacher")
@RequiredArgsConstructor
public class H5EduCameraController {
private final EduCameraAreaGroupService cameraAreaGroupService;
@ApiOperation("查询分组列表")
@GetMapping("/listCameraGroup")
public ResultBean<List<EduCameraAreaGroup>> listCameraGroup() {
return ResultBean.buildSuccess(cameraAreaGroupService.listCameraGroup(FebsUtil.getCurrentUser().getDeptId()));
}
@ApiOperation("查询分组对应所有设备")
@GetMapping("/listCamera")
public ResultBean<Page<EduCamera>> listCamera(@RequestParam Long groupId,
@RequestParam(required = false) String cameraCode,
@RequestParam(required = false) Long staffId,
@RequestParam(defaultValue = "1") Integer pageNum,
@RequestParam(defaultValue = "10") Integer pageSize) {
Page<EduCamera> cameraPage = new Page<>();
cameraPage.setCurrent(pageNum);
cameraPage.setSize(pageSize);
return ResultBean.buildSuccess(cameraAreaGroupService.listCamera(cameraPage, groupId,cameraCode,staffId));
}
@ApiOperation("家长查询所有主题")
@GetMapping("/listParentTheme")
public ResultBean<List<H5ThemeListVO>> listParentTheme(@RequestParam Long parentId) {
return ResultBean.buildSuccess(cameraAreaGroupService.listParentTheme(parentId));
}
}
@@ -0,0 +1,144 @@
package com.yida.data.device.camera.controller.web;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yida.data.common.core.common.ModuleName;
import com.yida.data.common.core.common.ResultBean;
import com.yida.data.common.core.entity.camera.EduCamera;
import com.yida.data.common.core.entity.camera.EduCameraStrategyTrans;
import com.yida.data.common.core.entity.system.enums.OperationLogTypeEnum;
import com.yida.data.common.core.utils.FebsUtil;
import com.yida.data.common.core.utils.FileUtil;
import com.yida.data.device.camera.service.EduCameraService;
import com.yida.data.device.camera.service.EduCameraStrategyTransService;
import com.yida.data.device.dto.camera.CameraDTO;
import com.yida.data.device.dto.camera.ListCameraDTO;
import com.yida.data.device.dto.camera.ListCameraSetDTO;
import com.yida.data.device.dto.camera.ListGroupDTO;
import com.yida.data.device.vo.camera.ListCameraVO;
import com.yida.data.log.annotation.OperationLog;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Objects;
/**
* @author ccl
*/
@Api(tags = "监控-后台")
@Slf4j
@Validated
@RestController
@RequestMapping("/camera")
@RequiredArgsConstructor
public class WebEduCameraController {
private final EduCameraService cameraService;
private final EduCameraStrategyTransService transService;
@ApiOperation("查询设备列表")
@GetMapping("/listCamera")
public ResultBean<Page<ListCameraVO>> listCamera(ListCameraDTO listCameraDTO) {
return ResultBean.buildSuccess(cameraService.listCamera(listCameraDTO));
}
@ApiOperation("新增或修改监控设备")
@PostMapping("/saveOrUpCamera")
public ResultBean<String> saveOrUpCamera(@RequestBody CameraDTO dto) {
cameraService.saveOrUpCamera(dto);
return ResultBean.buildSuccess();
}
@ApiOperation("批量分组")
@PostMapping("/listGroup")
public ResultBean listGroup(@RequestBody ListGroupDTO dto) {
cameraService.listGroup(dto);
return ResultBean.buildSuccess();
}
@ApiOperation("批量设置")
@PostMapping("/listCameraSet")
public ResultBean listCameraSet(@RequestBody ListCameraSetDTO dto) {
cameraService.listCameraSet(dto);
return ResultBean.buildSuccess();
}
@ApiOperation("设置设备转码")
@PostMapping("/cameraTrans")
public ResultBean cameraTrans(@RequestBody List<EduCameraStrategyTrans> trans) {
transService.saveBatch(trans);
return ResultBean.buildSuccess();
}
@ApiOperation("注销监控设备")
@GetMapping("/removeCamera")
public ResultBean removeCamera(@RequestParam Long id) {
cameraService.removeCamera(id);
return ResultBean.buildSuccess();
}
@ApiOperation("开启或关闭监控各种状态")
@PostMapping("/updateCamera")
public ResultBean updateCamera(@RequestBody EduCamera camera) {
cameraService.updateById(camera);
return ResultBean.buildSuccess();
}
@ApiOperation("查询监控详情")
@GetMapping("/findCamera")
public ResultBean<ListCameraVO> findCamera(@RequestParam @ApiParam("监控id") Long id) {
return ResultBean.buildSuccess(cameraService.findCamera(id));
}
@ApiOperation("查询监控转码详情")
@GetMapping("/findCameraTrans")
public ResultBean<List<EduCameraStrategyTrans>> findCameraTrans(@RequestParam @ApiParam("监控id") Long id) {
List<EduCameraStrategyTrans> list = transService.list(Wrappers.query(new EduCameraStrategyTrans()).lambda().eq(EduCameraStrategyTrans::getCameraId, id));
return ResultBean.buildSuccess(list);
}
@ApiOperation("下载健康体测相关导入模板")
@PostMapping("/downloadTemplate")
public void downloadTemplate(HttpServletResponse response) throws Exception {
cameraService.downloadTemplate(response);
}
@ApiOperation("批量上传ic卡")
@PostMapping("/batchUpCamera")
@OperationLog(module = ModuleName.TELEPHONE, methods = "导入学生ic卡", type =
OperationLogTypeEnum.INSERT)
public ResultBean batchUpIcCard(@RequestBody MultipartFile file) {
cameraService.batchUpIcCard(FileUtil.uploadMultipartFile(file),
FebsUtil.getCurrentUser());
return ResultBean.buildSuccess();
}
@ApiOperation("查询开放监控列表")
@GetMapping("/findOpenCamera")
public ResultBean<List<EduCamera>> findOpenCamera(
@ApiParam(value = "设备类型.0:非公共摄像头,1:公共摄像头,不传则查询全部") @RequestParam(required = false) Integer commonType) {
LambdaQueryWrapper<EduCamera> wrapper = Wrappers.lambdaQuery(new EduCamera())
.eq(EduCamera::getSchoolId, FebsUtil.getDeptId())
.eq(EduCamera::getOpenStatus, 1);
if (Objects.nonNull(commonType)) {
wrapper.eq(EduCamera::getCommonType, commonType);
}
return ResultBean.buildSuccess(cameraService.list(wrapper));
}
}
@@ -0,0 +1,93 @@
package com.yida.data.device.camera.controller.web;
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.yida.data.common.core.common.ResultBean;
import com.yida.data.common.core.entity.camera.EduCamera;
import com.yida.data.common.core.entity.camera.EduCameraAreaGroup;
import com.yida.data.common.core.entity.camera.EduCameraAreaGroupCamera;
import com.yida.data.common.core.utils.FebsUtil;
import com.yida.data.device.camera.service.EduCameraAreaGroupCameraService;
import com.yida.data.device.camera.service.EduCameraAreaGroupService;
import com.yida.data.device.vo.camera.EduCameraAreaGroupVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* @author ccl
*/
@Api(tags = "监控-区域分组")
@Slf4j
@Validated
@RestController
@RequestMapping("/camera/groupType")
@RequiredArgsConstructor
public class WebEduCameraGroupTypeController {
private final EduCameraAreaGroupService areaGroupService;
private final EduCameraAreaGroupCameraService groupCameraService;
@ApiOperation("新增或修改区域分组")
@PostMapping("/saveOrUpAreaGroup")
public ResultBean saveOrUpAreaGroup(@RequestBody EduCameraAreaGroup areaGroup){
areaGroupService.saveOrUpdate(areaGroup);
return ResultBean.buildSuccess();
}
@ApiOperation("删除区域分组")
@GetMapping("/removeAreaGroup")
public ResultBean saveOrUpCamera(@RequestParam @ApiParam("区域分组id") Long id){
List<EduCameraAreaGroupCamera> list = groupCameraService.list(Wrappers.query(new EduCameraAreaGroupCamera()).lambda().eq(EduCameraAreaGroupCamera::getGroupId, id));
if (CollectionUtil.isNotEmpty(list)){
return ResultBean.buildError("该区域中含有设备,请先移除设备");
}
areaGroupService.removeById(id);
return ResultBean.buildSuccess();
}
@ApiOperation("查询区域分组详情")
@GetMapping("/findAreaGroup")
public ResultBean<EduCameraAreaGroup> findAreaGroup(@RequestParam @ApiParam("区域分组id") Long id){
return ResultBean.buildSuccess(areaGroupService.getById(id));
}
@ApiOperation("查询树状区域分组")
@GetMapping("/findAreaGroupList")
public ResultBean<List<EduCameraAreaGroup>> findAreaGroupList(){
return ResultBean.buildSuccess(areaGroupService.findAreaGroupList(FebsUtil.getCurrentUser().getDeptId()));
}
@ApiOperation("修改分组")
@GetMapping("/updateAreaGroupList")
public ResultBean updateAreaGroupList(@RequestParam (required = false) String name,
@RequestParam(required = false) Integer upOrDown,
@RequestParam Long groupId){
areaGroupService.updateAreaGroupList(name,upOrDown,groupId);
return ResultBean.buildSuccess();
}
@ApiOperation("查询区域设备列表")
@GetMapping("/findGroupCamera")
public ResultBean<List<EduCamera>> findGroupCamera(@RequestParam @ApiParam("区域分组id") Long id){
return ResultBean.buildSuccess(areaGroupService.findGroupCamera(id));
}
@ApiOperation("查询树状区域分组")
@GetMapping("/findTreeGroup")
public ResultBean<List<EduCameraAreaGroupVO>> findTreeGroup(){
return ResultBean.buildSuccess(areaGroupService.findTreeGroup(FebsUtil.getCurrentUser().getDeptId()));
}
}
@@ -0,0 +1,82 @@
package com.yida.data.device.camera.controller.web;
import com.yida.data.common.core.common.ResultBean;
import com.yida.data.common.core.utils.FebsUtil;
import com.yida.data.device.camera.service.EduCameraAuthorityTeacherService;
import com.yida.data.device.camera.service.EduCameraStrategyThemeService;
import com.yida.data.device.dto.camera.ThemeSaveDTO;
import com.yida.data.device.vo.camera.AuthorityByGroupIdVO;
import com.yida.data.device.vo.camera.ThemeListVO;
import com.yida.data.device.vo.camera.ThemeTagVO;
import com.yida.data.device.vo.camera.ThemeVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* @author ccl
*/
@Api(tags = "监控-主题配置和教师权限")
@Slf4j
@Validated
@RestController
@RequestMapping("/camera/set")
@RequiredArgsConstructor
public class WebEduCameraSetController {
private final EduCameraStrategyThemeService themeService;
private final EduCameraAuthorityTeacherService authorityTeacherService;
@ApiOperation("查询主题标签列表")
@GetMapping("/listThemeTag")
public ResultBean<List<ThemeTagVO>> listThemeTag() {
return ResultBean.buildSuccess(themeService.listThemeTag(FebsUtil.getDeptId()));
}
@ApiOperation("查询主题详情")
@GetMapping("/getThemeInfo")
public ResultBean<ThemeVO> getThemeInfo(
@ApiParam(value = "主题id", required = true) @RequestParam Integer themeId) {
return ResultBean.buildSuccess(themeService.getThemeInfo(themeId));
}
@ApiOperation("新增或者修改主题")
@PostMapping("/saveOrUpdateTheme")
public ResultBean<Long> saveOrUpdateTheme(@RequestBody ThemeSaveDTO dto) {
return ResultBean.buildSuccess(themeService.saveOrUpdateTheme(FebsUtil.getDeptId(), dto));
}
@ApiOperation("删除主题")
@GetMapping("/deleteTheme")
public ResultBean<String> deleteTheme(
@ApiParam(value = "主题id", required = true) @RequestParam Integer themeId) {
themeService.deleteTheme(themeId);
return ResultBean.buildSuccess();
}
@ApiOperation("查询主题列表")
@GetMapping("/listTheme")
public ResultBean<List<ThemeListVO>> listTheme() {
return ResultBean.buildSuccess(themeService.listTheme(FebsUtil.getDeptId()));
}
@ApiOperation("查询区域组对应权限")
@GetMapping("/findAuthorityByGroupId")
public ResultBean<List<AuthorityByGroupIdVO>> findAuthorityByGroupId(@RequestParam Long groupId) {
return ResultBean.buildSuccess(authorityTeacherService.findAuthorityByGroupId(groupId));
}
@ApiOperation("系新增区域组对应权限")
@PostMapping("/saveAuthority")
public ResultBean saveAuthority(@RequestBody List<AuthorityByGroupIdVO> vos) {
authorityTeacherService.saveAuthority(vos);
return ResultBean.buildSuccess();
}
}
@@ -0,0 +1,10 @@
package com.yida.data.device.camera.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yida.data.common.core.entity.camera.EduCameraAreaGroupCamera;
/**
* @author ccl
*/
public interface EduCameraAreaGroupCameraMapper extends BaseMapper<EduCameraAreaGroupCamera> {
}
@@ -0,0 +1,40 @@
package com.yida.data.device.camera.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yida.data.common.core.entity.camera.EduCamera;
import com.yida.data.common.core.entity.camera.EduCameraAreaGroup;
import com.yida.data.device.vo.camera.EduCameraAreaGroupVO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @author ccl
*/
public interface EduCameraAreaGroupMapper extends BaseMapper<EduCameraAreaGroup> {
/**
* 查询监控对应
* @param page
* @param groupId
* @param cameraCode
* @return
*/
Page<EduCamera> listCamera(@Param("page") Page<EduCamera> page, @Param("groupId") Long groupId, @Param("cameraCode") String cameraCode,
@Param("userId") Long userId, @Param("deptId") List<Long>deptId);
/**
* 查询区域树状列表
* @param schoolId 学校id
* @param parentId 父节点id
* @return
*/
List<EduCameraAreaGroup> findAreaGroupList(@Param("schoolId") Long schoolId, @Param("parentId") Long parentId);
List<EduCameraAreaGroup> findGroup(@Param("parentId") Long parentId);
List<EduCameraAreaGroupVO> findTreeGroup(@Param("schoolId") Long schoolId, @Param("parentId") Long parentId);
}
@@ -0,0 +1,10 @@
package com.yida.data.device.camera.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yida.data.common.core.entity.camera.EduCameraAuthorityTeacher;
/**
* @author ccl
*/
public interface EduCameraAuthorityTeacherMapper extends BaseMapper<EduCameraAuthorityTeacher> {
}
@@ -0,0 +1,29 @@
package com.yida.data.device.camera.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yida.data.common.core.entity.camera.EduCamera;
import com.yida.data.device.dto.camera.ListCameraDTO;
import com.yida.data.device.vo.camera.ListCameraVO;
import org.apache.ibatis.annotations.Param;
/**
* @author ccl
*/
public interface EduCameraMapper extends BaseMapper<EduCamera> {
ListCameraVO findCamera(Long id);
/**
* 分页查询设备列表
*
* @param page 分页数据
* @param dto 设备列表请求类
* @return com.baomidou.mybatisplus.extension.plugins.pagination.Page<com.yida.data.device.vo.camera.ListCameraVO>
* @author ZYJ
* @date 2022/4/28 15:48
*/
Page<ListCameraVO> listCamera(Page<EduCamera> page,
@Param("dto") ListCameraDTO dto);
}
@@ -0,0 +1,7 @@
package com.yida.data.device.camera.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yida.data.common.core.entity.camera.EduCameraStrategyOpenCamera;
public interface EduCameraStrategyOpenCameraMapper extends BaseMapper<EduCameraStrategyOpenCamera> {
}
@@ -0,0 +1,10 @@
package com.yida.data.device.camera.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yida.data.common.core.entity.camera.EduCameraStrategyOpenClass;
/**
* @author ccl
*/
public interface EduCameraStrategyOpenClassMapper extends BaseMapper<EduCameraStrategyOpenClass> {
}
@@ -0,0 +1,10 @@
package com.yida.data.device.camera.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yida.data.common.core.entity.camera.EduCameraStrategyOpenTime;
/**
* @author ccl
*/
public interface EduCameraStrategyOpenTimeMapper extends BaseMapper<EduCameraStrategyOpenTime> {
}
@@ -0,0 +1,24 @@
package com.yida.data.device.camera.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yida.data.common.core.entity.camera.EduCameraStrategyTheme;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @author ccl
*/
public interface EduCameraStrategyThemeMapper extends BaseMapper<EduCameraStrategyTheme> {
/**
* 家长查询符合条件的主题列表数据
*
* @param classIds 班级id集合
* @param weekDay 周几
* @return java.util.List<com.yida.data.common.core.entity.camera.EduCameraStrategyOpenClass>
* @author ZYJ
* @date 2022/4/29 15:16
*/
List<EduCameraStrategyTheme> selectThemeList(@Param("classIds") List<Long> classIds, @Param("weekDay") int weekDay);
}

Some files were not shown because too many files have changed in this diff Show More