feature/simcards_checker #2
@ -0,0 +1,59 @@
|
||||
package com.imdroid.secapi.dto;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
@Data
|
||||
@TableName("traffic_cards")
|
||||
public class TrafficCard {
|
||||
public static final int STATUS_UNKNOWN = -1; // 未知
|
||||
public static final int STATUS_WAIT_ACTIVE = 1; // 待激活
|
||||
public static final int STATUS_ACTIVATED = 2; // 已激活
|
||||
public static final int STATUS_SUSPENDED = 3; // 停机
|
||||
public static final int STATUS_CANCELLED = 4; // 注销
|
||||
public static final int STATUS_IN_STOCK = 5; // 库存
|
||||
public static final int STATUS_TESTABLE = 6; // 可测试
|
||||
public static final int STATUS_INVALID = 7; // 失效
|
||||
public static final int STATUS_NOT_EXIST = 99; // 号码不存在
|
||||
|
||||
// 查询状态常量定义
|
||||
public static final int QUERY_STATUS_NORMAL = 0; // 正常状态
|
||||
public static final int QUERY_STATUS_NOT_CURRENT_VENDOR = 1; // 非当前卡商
|
||||
public static final int QUERY_STATUS_OTHER_ERROR = 2; // 其他错误
|
||||
|
||||
@TableId(type = IdType.AUTO)
|
||||
@ExcelProperty("ID")
|
||||
private Integer id;
|
||||
|
||||
@ExcelProperty("ICCID")
|
||||
private String iccid;
|
||||
|
||||
@ExcelProperty("物联卡号码")
|
||||
private String msisdn;
|
||||
|
||||
@ExcelProperty("状态")
|
||||
private Integer status;
|
||||
|
||||
@ExcelProperty("剩余流量(MB)")
|
||||
private Integer remaining;
|
||||
|
||||
@ExcelProperty("总流量(MB)")
|
||||
private Integer total;
|
||||
|
||||
@ExcelProperty("已用流量(MB)")
|
||||
private Integer used;
|
||||
|
||||
@TableField("update_time")
|
||||
@ExcelProperty("更新时间")
|
||||
private Date updateTime;
|
||||
|
||||
@TableField("query_status")
|
||||
@ExcelProperty("查询状态")
|
||||
private Integer queryStatus;
|
||||
}
|
||||
@ -0,0 +1,37 @@
|
||||
package com.imdroid.secapi.dto;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.apache.ibatis.annotations.Select;
|
||||
import org.apache.ibatis.annotations.Update;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Mapper
|
||||
public interface TrafficCardMapper extends BaseMapper<TrafficCard> {
|
||||
|
||||
@Select("select * from traffic_cards where iccid = #{iccid} limit 1")
|
||||
TrafficCard findByIccid(String iccid);
|
||||
|
||||
@Update("UPDATE traffic_cards SET " +
|
||||
"update_time = #{updateTime}, " +
|
||||
"msisdn = #{msisdn}, " +
|
||||
"status = #{status}, " +
|
||||
"remaining = #{remaining}, " +
|
||||
"total = #{total}, " +
|
||||
"used = #{used} " +
|
||||
"WHERE iccid = #{iccid}")
|
||||
int updateCardInfo(TrafficCard trafficCard);
|
||||
|
||||
@Update("UPDATE traffic_cards SET query_status = #{queryStatus} WHERE iccid = #{iccid}")
|
||||
int updateQueryStatus(String iccid,int queryStatus);
|
||||
|
||||
@Update("UPDATE traffic_cards SET " +
|
||||
"update_time = #{updateTime}, " +
|
||||
"remaining = #{remaining}, " +
|
||||
"total = #{total}, " +
|
||||
"used = #{used} " +
|
||||
"WHERE iccid = #{iccid} AND iccid IS NOT NULL AND iccid != ''")
|
||||
int updateCardTrafficInfo(TrafficCard trafficCard);
|
||||
}
|
||||
@ -0,0 +1,27 @@
|
||||
package com.imdroid.secapi.dto;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
@Data
|
||||
@TableName("traffic_device_mappings")
|
||||
public class TrafficDeviceMapping {
|
||||
|
||||
@TableId(type = IdType.AUTO)
|
||||
private Integer id;
|
||||
|
||||
private String deviceid;
|
||||
|
||||
private String iccid;
|
||||
|
||||
@TableField("start_time")
|
||||
private Date startTime;
|
||||
|
||||
@TableField("end_time")
|
||||
private Date endTime; // 结束使用时间,NULL表示当前正在使用
|
||||
}
|
||||
@ -0,0 +1,24 @@
|
||||
package com.imdroid.secapi.dto;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.apache.ibatis.annotations.Select;
|
||||
import org.apache.ibatis.annotations.Update;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Mapper
|
||||
public interface TrafficDeviceMappingMapper extends BaseMapper<TrafficDeviceMapping> {
|
||||
@Select("SELECT * FROM traffic_device_mappings WHERE deviceid = #{deviceId} AND end_time IS NULL LIMIT 1")
|
||||
TrafficDeviceMapping findActiveByDeviceId(String deviceId);
|
||||
|
||||
@Select("SELECT * FROM traffic_device_mappings WHERE iccid = #{iccid} AND end_time IS NULL LIMIT 1")
|
||||
TrafficDeviceMapping findActiveByIccid(String iccid);
|
||||
|
||||
@Select("SELECT * FROM traffic_device_mappings WHERE deviceid = #{deviceId} ORDER BY start_time DESC")
|
||||
List<TrafficDeviceMapping> findHistoryByDeviceId(String deviceId);
|
||||
|
||||
@Update("UPDATE traffic_device_mappings SET end_time = NOW() WHERE id = #{id}")
|
||||
int endMapping(Integer id);
|
||||
}
|
||||
@ -0,0 +1,26 @@
|
||||
package com.imdroid.secapi.dto;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
@Data
|
||||
@TableName("traffic_records")
|
||||
public class TrafficRecord {
|
||||
|
||||
@TableId(type = IdType.AUTO)
|
||||
private Integer id;
|
||||
|
||||
private String iccid;
|
||||
|
||||
@TableField("record_time")
|
||||
private Date recordTime;
|
||||
|
||||
private Integer remaining; // 剩余流量(MB×1000)
|
||||
private Integer used; // 已用流量(MB×1000)
|
||||
private Integer total; // 总流量(MB×1000)
|
||||
}
|
||||
@ -0,0 +1,10 @@
|
||||
package com.imdroid.secapi.dto;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
|
||||
@Mapper
|
||||
public interface TrafficRecordMapper extends BaseMapper<TrafficRecord> {
|
||||
|
||||
}
|
||||
@ -396,3 +396,52 @@ CREATE TABLE IF NOT EXISTS `ehmconfig` (
|
||||
`calcstathours` int DEFAULT NULL COMMENT '数据分析周期',
|
||||
PRIMARY KEY (`updatetime`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
/***
|
||||
流量卡信息表
|
||||
*/
|
||||
CREATE TABLE IF NOT EXISTS `traffic_cards` (
|
||||
`id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,唯一',
|
||||
`iccid` VARCHAR(20) NOT NULL COMMENT 'ICCID号,唯一标识SIM卡',
|
||||
`msisdn` VARCHAR(20) NOT NULL COMMENT '物联卡号码',
|
||||
`status` INT DEFAULT -1 COMMENT 'SIM卡状态(-1:未知, 1:待激活, 2:已激活, 3:停机, 4:注销, 5:库存, 6:可测试, 7:失效, 99:号码不存在)',
|
||||
`remaining` INT DEFAULT 0 COMMENT '剩余流量,单位MB,为避免小数,存储值为实际值的1000倍',
|
||||
`total` INT DEFAULT 0 COMMENT '总流量,单位MB,同上',
|
||||
`used` INT DEFAULT 0 COMMENT '已用流量,单位MB,同上',
|
||||
`update_time` DATETIME DEFAULT NULL COMMENT '最后更新时间',
|
||||
`query_status` TINYINT DEFAULT 0 COMMENT 'SIM卡查询状态:0=正常,1=非当前卡商,2=其他错误',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_iccid` (`iccid`),
|
||||
INDEX `idx_status` (`status`),
|
||||
INDEX `idx_query_status` (`query_status`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='流量卡信息表';
|
||||
|
||||
/***
|
||||
设备-SIM卡映射表
|
||||
*/
|
||||
CREATE TABLE IF NOT EXISTS `traffic_device_mappings` (
|
||||
`id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,唯一',
|
||||
`deviceid` VARCHAR(20) NOT NULL COMMENT '设备ID',
|
||||
`iccid` VARCHAR(20) NOT NULL COMMENT 'SIM卡ICCID',
|
||||
`start_time` DATETIME NOT NULL COMMENT '开始使用时间',
|
||||
`end_time` DATETIME DEFAULT NULL COMMENT '结束使用时间,NULL表示当前正在使用',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_deviceid` (`deviceid`),
|
||||
KEY `idx_iccid` (`iccid`),
|
||||
KEY `idx_start_time` (`start_time`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='设备-SIM卡映射表';
|
||||
|
||||
/***
|
||||
流量使用记录表
|
||||
*/
|
||||
CREATE TABLE IF NOT EXISTS `traffic_records` (
|
||||
`id` INT NOT NULL AUTO_INCREMENT COMMENT '主键,自增,唯一',
|
||||
`iccid` VARCHAR(20) NOT NULL COMMENT 'SIM卡ICCID',
|
||||
`record_time` DATETIME NOT NULL COMMENT '记录时间',
|
||||
`remaining` INT DEFAULT NULL COMMENT '剩余流量,单位MB,为避免小数,存储值为实际值的1000倍',
|
||||
`used` INT DEFAULT NULL COMMENT '已用流量,单位MB,为避免小数,存储值为实际值的1000倍',
|
||||
`total` INT DEFAULT NULL COMMENT '总流量,单位MB,为避免小数,存储值为实际值的1000倍',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_iccid` (`iccid`),
|
||||
KEY `idx_record_time` (`record_time`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='流量使用记录表';
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user