|
@@ -1,6 +1,8 @@
|
|
package com.xy.service;
|
|
package com.xy.service;
|
|
|
|
|
|
import com.alibaba.excel.EasyExcel;
|
|
import com.alibaba.excel.EasyExcel;
|
|
|
|
+import com.alibaba.excel.annotation.ExcelProperty;
|
|
|
|
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
|
|
import com.alibaba.excel.context.AnalysisContext;
|
|
import com.alibaba.excel.context.AnalysisContext;
|
|
import com.alibaba.excel.read.listener.ReadListener;
|
|
import com.alibaba.excel.read.listener.ReadListener;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
@@ -11,12 +13,14 @@ import com.xy.collections.list.JArrayList;
|
|
import com.xy.collections.list.JList;
|
|
import com.xy.collections.list.JList;
|
|
import com.xy.collections.map.JMap;
|
|
import com.xy.collections.map.JMap;
|
|
import com.xy.config.DeviceThreadPoolConfig;
|
|
import com.xy.config.DeviceThreadPoolConfig;
|
|
|
|
+import com.xy.config.FileConfig;
|
|
import com.xy.device.EnumSimConfig;
|
|
import com.xy.device.EnumSimConfig;
|
|
import com.xy.dto.DeviceSimDto;
|
|
import com.xy.dto.DeviceSimDto;
|
|
import com.xy.entity.DeviceSim;
|
|
import com.xy.entity.DeviceSim;
|
|
import com.xy.entity.DeviceSimCharge;
|
|
import com.xy.entity.DeviceSimCharge;
|
|
import com.xy.entity.SysDictRedis;
|
|
import com.xy.entity.SysDictRedis;
|
|
import com.xy.mapper.DeviceSimMapper;
|
|
import com.xy.mapper.DeviceSimMapper;
|
|
|
|
+import com.xy.util.ExcelUtils;
|
|
import com.xy.utils.*;
|
|
import com.xy.utils.*;
|
|
import io.swagger.annotations.Api;
|
|
import io.swagger.annotations.Api;
|
|
import io.swagger.annotations.ApiOperation;
|
|
import io.swagger.annotations.ApiOperation;
|
|
@@ -24,6 +28,7 @@ import lombok.AllArgsConstructor;
|
|
import lombok.Data;
|
|
import lombok.Data;
|
|
import lombok.RequiredArgsConstructor;
|
|
import lombok.RequiredArgsConstructor;
|
|
import lombok.SneakyThrows;
|
|
import lombok.SneakyThrows;
|
|
|
|
+import lombok.experimental.Accessors;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.web.bind.annotation.PostMapping;
|
|
import org.springframework.web.bind.annotation.PostMapping;
|
|
@@ -32,6 +37,7 @@ import org.springframework.web.bind.annotation.RequestParam;
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
|
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
|
+import java.io.File;
|
|
import java.io.IOException;
|
|
import java.io.IOException;
|
|
import java.io.InputStream;
|
|
import java.io.InputStream;
|
|
import java.io.OutputStream;
|
|
import java.io.OutputStream;
|
|
@@ -59,6 +65,10 @@ public class DeviceSimServiceImpl extends ServiceImpl<DeviceSimMapper, DeviceSim
|
|
|
|
|
|
private DeviceSimChargeServiceImpl deviceSimChargeService;
|
|
private DeviceSimChargeServiceImpl deviceSimChargeService;
|
|
|
|
|
|
|
|
+ private HttpServletResponse response;
|
|
|
|
+
|
|
|
|
+ private FileConfig fileConfig;
|
|
|
|
+
|
|
@Override
|
|
@Override
|
|
@ApiOperation("购买")
|
|
@ApiOperation("购买")
|
|
public R pay(DeviceSimDto.Pay pay) {
|
|
public R pay(DeviceSimDto.Pay pay) {
|
|
@@ -128,7 +138,7 @@ public class DeviceSimServiceImpl extends ServiceImpl<DeviceSimMapper, DeviceSim
|
|
records.forEach(record -> {
|
|
records.forEach(record -> {
|
|
//封装过期状态说明
|
|
//封装过期状态说明
|
|
DeviceSimDto.Vo sim = record.getSim();
|
|
DeviceSimDto.Vo sim = record.getSim();
|
|
- if(Emptys.check(sim)) {
|
|
|
|
|
|
+ if (Emptys.check(sim)) {
|
|
String timeoutStatus;
|
|
String timeoutStatus;
|
|
LocalDateTime timeout = sim.getTimeout();
|
|
LocalDateTime timeout = sim.getTimeout();
|
|
long s = DataTime.diff(page.getThisTime(), timeout, "s");
|
|
long s = DataTime.diff(page.getThisTime(), timeout, "s");
|
|
@@ -147,11 +157,31 @@ public class DeviceSimServiceImpl extends ServiceImpl<DeviceSimMapper, DeviceSim
|
|
}
|
|
}
|
|
|
|
|
|
@SneakyThrows
|
|
@SneakyThrows
|
|
- @ApiOperation("下载流量卡号模板")
|
|
|
|
- @PostMapping("downloadSimTemplet")
|
|
|
|
- public void downloadSnTemplet(HttpServletResponse response) {
|
|
|
|
- InputStream inputStream = IoUtils.inputStream("sim_templet.xlsx").get();
|
|
|
|
- response.setHeader("Content-Disposition", "attachment; filename=" + "sim_templet.xlsx");
|
|
|
|
|
|
+ @ApiOperation("导出流量卡数据")
|
|
|
|
+ @PostMapping("download")
|
|
|
|
+ public void download(@RequestBody DeviceSimDto.Page page) {
|
|
|
|
+ //生成excel
|
|
|
|
+ String name = YitIdHelper.nextId() + ".xlsx";
|
|
|
|
+ String path = fileConfig.getPath() + File.separator + name;
|
|
|
|
+ ExcelUtils.SheetAndData<UploadSim> sheetAndData = ExcelUtils.create(path, UploadSim.class);
|
|
|
|
+ sheetAndData.sheet("流量卡数据", () -> {
|
|
|
|
+ List<DeviceSimDto.PageVo> pageVos = baseMapper.page(page);
|
|
|
|
+ List<UploadSim> uploadSims = new ArrayList<>();
|
|
|
|
+ pageVos.forEach(pageVo -> {
|
|
|
|
+ UploadSim uploadSim = new UploadSim()
|
|
|
|
+ .setSimId(pageVo.getSimIccid());
|
|
|
|
+ DeviceSimDto.Vo sim = pageVo.getSim();
|
|
|
|
+ if (sim != null) {
|
|
|
|
+ uploadSim.setActivateTime(DataTime.toString(sim.getActivateTime()))
|
|
|
|
+ .setTimeout(DataTime.toString(sim.getTimeout()));
|
|
|
|
+ }
|
|
|
|
+ uploadSims.add(uploadSim);
|
|
|
|
+ });
|
|
|
|
+ return uploadSims;
|
|
|
|
+ }).builder();
|
|
|
|
+ //下载文件
|
|
|
|
+ InputStream inputStream = IoUtils.inputStream(path).get();
|
|
|
|
+ response.setHeader("Content-Disposition", "attachment; filename=" + "sim_data.xlsx");
|
|
response.setContentType("application/xlsx");
|
|
response.setContentType("application/xlsx");
|
|
byte[] buffer = new byte[1024];
|
|
byte[] buffer = new byte[1024];
|
|
int bytesRead;
|
|
int bytesRead;
|
|
@@ -159,6 +189,10 @@ public class DeviceSimServiceImpl extends ServiceImpl<DeviceSimMapper, DeviceSim
|
|
while ((bytesRead = inputStream.read(buffer)) != -1) {
|
|
while ((bytesRead = inputStream.read(buffer)) != -1) {
|
|
outputStream.write(buffer, 0, bytesRead);
|
|
outputStream.write(buffer, 0, bytesRead);
|
|
}
|
|
}
|
|
|
|
+ inputStream.close();
|
|
|
|
+ outputStream.close();
|
|
|
|
+ //删除文件
|
|
|
|
+ new File(path).delete();
|
|
}
|
|
}
|
|
|
|
|
|
@ApiOperation("导入流量卡号数据")
|
|
@ApiOperation("导入流量卡号数据")
|
|
@@ -223,21 +257,19 @@ public class DeviceSimServiceImpl extends ServiceImpl<DeviceSimMapper, DeviceSim
|
|
}
|
|
}
|
|
|
|
|
|
@Data
|
|
@Data
|
|
|
|
+ @Accessors(chain = true)
|
|
public static class UploadSim {
|
|
public static class UploadSim {
|
|
|
|
|
|
- /**
|
|
|
|
- * 流量卡号
|
|
|
|
- */
|
|
|
|
|
|
+ @ColumnWidth(25)
|
|
|
|
+ @ExcelProperty(value = "流量卡号")
|
|
private String simId;
|
|
private String simId;
|
|
|
|
|
|
- /**
|
|
|
|
- * 激活时间
|
|
|
|
- */
|
|
|
|
|
|
+ @ColumnWidth(25)
|
|
|
|
+ @ExcelProperty(value = "激活时间")
|
|
private String activateTime;
|
|
private String activateTime;
|
|
|
|
|
|
- /**
|
|
|
|
- * 过期时间
|
|
|
|
- */
|
|
|
|
|
|
+ @ColumnWidth(25)
|
|
|
|
+ @ExcelProperty(value = "过期时间")
|
|
private String timeout;
|
|
private String timeout;
|
|
|
|
|
|
}
|
|
}
|