Compare commits

..

2 Commits

Author SHA1 Message Date
a220fbb1ef Merge pull request 'feat: 增加按imei查询' (#9) from feature/add_imei_search into develop
Reviewed-on: #9
2025-06-11 01:13:20 -07:00
fengyarnom
c594d8b22e feat: 增加按imei查询 2025-06-11 16:42:20 +08:00
4 changed files with 80 additions and 1 deletions

View File

@ -165,6 +165,11 @@ public class GnssDeviceController extends BasicController{
if (StringUtils.hasText(appver)) { if (StringUtils.hasText(appver)) {
queryWrapper.like("appver", appver); queryWrapper.like("appver", appver);
} }
//IMEI
String imei = search.getString("imei");
if (StringUtils.hasText(imei)) {
queryWrapper.like("imei", imei);
}
//备注 //备注
String remark = search.getString("remark"); String remark = search.getString("remark");
if (StringUtils.hasText(remark)) { if (StringUtils.hasText(remark)) {

View File

@ -88,6 +88,9 @@ public class SimCardController extends BasicController {
case "iccid": case "iccid":
deviceQueryWrapper.like("iccid", searchContent.trim()); deviceQueryWrapper.like("iccid", searchContent.trim());
break; break;
case "imei":
deviceQueryWrapper.like("imei", searchContent.trim());
break;
case "simNumber": case "simNumber":
// 通过SIM号查找对应的ICCID然后查询设备 // 通过SIM号查找对应的ICCID然后查询设备
TrafficCard cardByMsisdn = trafficCardMapper.selectOne( TrafficCard cardByMsisdn = trafficCardMapper.selectOne(
@ -142,6 +145,7 @@ public class SimCardController extends BasicController {
deviceData.put("id", device.getId()); deviceData.put("id", device.getId());
deviceData.put("deviceid", device.getDeviceid()); deviceData.put("deviceid", device.getDeviceid());
deviceData.put("iccid", device.getIccid()); deviceData.put("iccid", device.getIccid());
deviceData.put("imei", device.getImei());
if (trafficCard != null) { if (trafficCard != null) {
deviceData.put("msisdn", trafficCard.getMsisdn()); deviceData.put("msisdn", trafficCard.getMsisdn());
@ -207,6 +211,19 @@ public class SimCardController extends BasicController {
} }
params.put("card", device.getIccid()); params.put("card", device.getIccid());
break; break;
case "imei":
if (content.trim().isEmpty()) {
throw new IllegalArgumentException("IMEI不能为空");
}
QueryWrapper<GnssDevice> deviceByImeiQueryWrapper = new QueryWrapper<>();
deviceByImeiQueryWrapper.eq("imei", content.trim());
deviceByImeiQueryWrapper.last("limit 1");
GnssDevice deviceByImei = gnssDeviceMapper.selectOne(deviceByImeiQueryWrapper);
if (deviceByImei == null || deviceByImei.getIccid() == null || deviceByImei.getIccid().trim().isEmpty()) {
throw new IllegalArgumentException("未找到该IMEI对应的设备或设备没有ICCID信息");
}
params.put("card", deviceByImei.getIccid());
break;
case "simNumber": case "simNumber":
params.put("card", content); params.put("card", content);
break; break;
@ -289,6 +306,17 @@ public class SimCardController extends BasicController {
case "iccid": case "iccid":
queryWrapper.like("iccid", searchContent.trim()); queryWrapper.like("iccid", searchContent.trim());
break; break;
case "imei":
QueryWrapper<GnssDevice> deviceByImeiQueryWrapper = new QueryWrapper<>();
deviceByImeiQueryWrapper.eq("imei", searchContent.trim());
deviceByImeiQueryWrapper.last("limit 1");
GnssDevice deviceByImei = gnssDeviceMapper.selectOne(deviceByImeiQueryWrapper);
if (deviceByImei != null && deviceByImei.getIccid() != null && !deviceByImei.getIccid().trim().isEmpty()) {
queryWrapper.eq("iccid", deviceByImei.getIccid());
} else {
queryWrapper.eq("iccid", "");
}
break;
case "simNumber": case "simNumber":
TrafficCard cardByMsisdn = trafficCardMapper.selectOne( TrafficCard cardByMsisdn = trafficCardMapper.selectOne(
new QueryWrapper<TrafficCard>().like("msisdn", searchContent.trim()) new QueryWrapper<TrafficCard>().like("msisdn", searchContent.trim())
@ -377,6 +405,17 @@ public class SimCardController extends BasicController {
case "iccid": case "iccid":
queryWrapper.like("iccid", searchContent.trim()); queryWrapper.like("iccid", searchContent.trim());
break; break;
case "imei":
QueryWrapper<GnssDevice> deviceByImeiQueryWrapper = new QueryWrapper<>();
deviceByImeiQueryWrapper.eq("imei", searchContent.trim());
deviceByImeiQueryWrapper.last("limit 1");
GnssDevice deviceByImei = gnssDeviceMapper.selectOne(deviceByImeiQueryWrapper);
if (deviceByImei != null && deviceByImei.getIccid() != null && !deviceByImei.getIccid().trim().isEmpty()) {
queryWrapper.eq("iccid", deviceByImei.getIccid());
} else {
queryWrapper.eq("iccid", "");
}
break;
case "simNumber": case "simNumber":
TrafficCard cardByMsisdn = trafficCardMapper.selectOne( TrafficCard cardByMsisdn = trafficCardMapper.selectOne(
new QueryWrapper<TrafficCard>().like("msisdn", searchContent.trim()) new QueryWrapper<TrafficCard>().like("msisdn", searchContent.trim())
@ -474,6 +513,9 @@ public class SimCardController extends BasicController {
case "iccid": case "iccid":
deviceQueryWrapper.like("iccid", searchContent.trim()); deviceQueryWrapper.like("iccid", searchContent.trim());
break; break;
case "imei":
deviceQueryWrapper.like("imei", searchContent.trim());
break;
case "simNumber": case "simNumber":
// 通过SIM号查找对应的ICCID然后查询设备 // 通过SIM号查找对应的ICCID然后查询设备
TrafficCard cardByMsisdn = trafficCardMapper.selectOne( TrafficCard cardByMsisdn = trafficCardMapper.selectOne(
@ -527,7 +569,7 @@ public class SimCardController extends BasicController {
} }
List<List<Object>> exportList = new ArrayList<>(); List<List<Object>> exportList = new ArrayList<>();
List<String> headList = Arrays.asList("设备号", "ICCID", "SIM卡号", "状态", List<String> headList = Arrays.asList("设备号", "ICCID", "SIM卡号", "IMEI", "状态",
"剩余流量(MB)", "总流量(MB)", "已用流量(MB)", "更新时间"); "剩余流量(MB)", "总流量(MB)", "已用流量(MB)", "更新时间");
for (GnssDevice device : devices) { for (GnssDevice device : devices) {
@ -542,6 +584,7 @@ public class SimCardController extends BasicController {
if (trafficCard != null) { if (trafficCard != null) {
rowData.add(trafficCard.getMsisdn()); // SIM卡号 rowData.add(trafficCard.getMsisdn()); // SIM卡号
rowData.add(device.getImei() != null ? device.getImei() : ""); // IMEI
String statusStr; String statusStr;
switch(trafficCard.getStatus()) { switch(trafficCard.getStatus()) {
@ -565,6 +608,7 @@ public class SimCardController extends BasicController {
rowData.add(trafficCard.getUpdatetime()); // 更新时间 rowData.add(trafficCard.getUpdatetime()); // 更新时间
} else { } else {
rowData.add("-"); // SIM卡号 rowData.add("-"); // SIM卡号
rowData.add(device.getImei() != null ? device.getImei() : ""); // IMEI
rowData.add("未知"); // 状态 rowData.add("未知"); // 状态
rowData.add("0"); // 剩余流量 rowData.add("0"); // 剩余流量
rowData.add("0"); // 总流量 rowData.add("0"); // 总流量
@ -622,6 +666,17 @@ public class SimCardController extends BasicController {
case "iccid": case "iccid":
queryWrapper.like("iccid", searchContent.trim()); queryWrapper.like("iccid", searchContent.trim());
break; break;
case "imei":
QueryWrapper<GnssDevice> deviceByImeiQueryWrapper = new QueryWrapper<>();
deviceByImeiQueryWrapper.eq("imei", searchContent.trim());
deviceByImeiQueryWrapper.last("limit 1");
GnssDevice deviceByImei = gnssDeviceMapper.selectOne(deviceByImeiQueryWrapper);
if (deviceByImei != null && deviceByImei.getIccid() != null && !deviceByImei.getIccid().trim().isEmpty()) {
queryWrapper.eq("iccid", deviceByImei.getIccid());
} else {
queryWrapper.eq("iccid", "");
}
break;
case "simNumber": case "simNumber":
TrafficCard cardByMsisdn = trafficCardMapper.selectOne( TrafficCard cardByMsisdn = trafficCardMapper.selectOne(
new QueryWrapper<TrafficCard>().like("msisdn", searchContent.trim()) new QueryWrapper<TrafficCard>().like("msisdn", searchContent.trim())
@ -714,6 +769,17 @@ public class SimCardController extends BasicController {
case "iccid": case "iccid":
queryWrapper.like("iccid", searchContent.trim()); queryWrapper.like("iccid", searchContent.trim());
break; break;
case "imei":
QueryWrapper<GnssDevice> deviceByImeiQueryWrapper = new QueryWrapper<>();
deviceByImeiQueryWrapper.eq("imei", searchContent.trim());
deviceByImeiQueryWrapper.last("limit 1");
GnssDevice deviceByImei = gnssDeviceMapper.selectOne(deviceByImeiQueryWrapper);
if (deviceByImei != null && deviceByImei.getIccid() != null && !deviceByImei.getIccid().trim().isEmpty()) {
queryWrapper.eq("iccid", deviceByImei.getIccid());
} else {
queryWrapper.eq("iccid", "");
}
break;
case "simNumber": case "simNumber":
TrafficCard cardByMsisdn = trafficCardMapper.selectOne( TrafficCard cardByMsisdn = trafficCardMapper.selectOne(
new QueryWrapper<TrafficCard>().like("msisdn", searchContent.trim()) new QueryWrapper<TrafficCard>().like("msisdn", searchContent.trim())

View File

@ -62,6 +62,12 @@
<input type="text" name="appver" autocomplete="off" class="layui-input"> <input type="text" name="appver" autocomplete="off" class="layui-input">
</div> </div>
</div> </div>
<div class="layui-inline">
<label class="layui-form-label">IMEI</label>
<div class="layui-input-inline">
<input type="text" name="imei" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-inline"> <div class="layui-inline">
<label class="layui-form-label">使用状态</label> <label class="layui-form-label">使用状态</label>
<div class="layui-input-inline"> <div class="layui-input-inline">

View File

@ -24,6 +24,7 @@
<option value="deviceId">设备号</option> <option value="deviceId">设备号</option>
<option value="iccid">ICCID</option> <option value="iccid">ICCID</option>
<option value="simNumber">SIM卡号</option> <option value="simNumber">SIM卡号</option>
<option value="imei">IMEI</option>
</select> </select>
</div> </div>
</div> </div>
@ -192,6 +193,7 @@
{field: 'deviceid', title: '设备号'}, {field: 'deviceid', title: '设备号'},
{field: 'iccid', title: 'ICCID'}, {field: 'iccid', title: 'ICCID'},
{field: 'msisdn', title: 'SIM 卡号'}, {field: 'msisdn', title: 'SIM 卡号'},
{field: 'imei', title: 'IMEI'},
{field: 'updateTime', title: '更新时间',templet: "<div>{{layui.util.toDateString(d.updateTime, 'yyyy-MM-dd HH:mm:ss')}}</div>"}, {field: 'updateTime', title: '更新时间',templet: "<div>{{layui.util.toDateString(d.updateTime, 'yyyy-MM-dd HH:mm:ss')}}</div>"},
{field: 'status', title: '状态',templet: '#statusTpl'}, {field: 'status', title: '状态',templet: '#statusTpl'},
{field: 'remaining', title: '剩余流量(MB)', templet: function(d) { {field: 'remaining', title: '剩余流量(MB)', templet: function(d) {