Răsfoiți Sursa

加盟商-服务费管理-流量卡费明细 返现过期时间

tanbin 1 an în urmă
părinte
comite
88579383ed

+ 34 - 0
device-api-service/src/main/java/com/xy/service/DeviceSimChargeServiceImpl.java

@@ -13,11 +13,14 @@ import com.xy.collections.list.JArrayList;
 import com.xy.collections.list.JList;
 import com.xy.config.DeviceThreadPoolConfig;
 import com.xy.config.FileConfig;
+import com.xy.device.EnumSimConfig;
 import com.xy.dto.DeviceSimChargeDto;
 import com.xy.dto.MercFeeConfigDto;
 import com.xy.dto.OrderMercManageDto;
 import com.xy.dto.be.MercDto;
+import com.xy.entity.DeviceSim;
 import com.xy.entity.DeviceSimCharge;
+import com.xy.entity.SysDictRedis;
 import com.xy.mapper.DeviceSimChargeMapper;
 import com.xy.service.be.MercService;
 import com.xy.util.ExcelUtils;
@@ -36,6 +39,7 @@ import javax.servlet.http.HttpServletResponse;
 import java.io.File;
 import java.io.InputStream;
 import java.io.OutputStream;
+import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
@@ -72,6 +76,8 @@ public class DeviceSimChargeServiceImpl extends ServiceImpl<DeviceSimChargeMappe
 
     private MercFeeConfigService mercFeeConfigService;
 
+    private DeviceSimServiceImpl deviceSimService;
+
 
     @PostMapping("page")
     @ApiOperation("分页查询")
@@ -130,9 +136,19 @@ public class DeviceSimChargeServiceImpl extends ServiceImpl<DeviceSimChargeMappe
                     ).target(() -> mercService.list(new MercDto.SelectList().setMercIds(new JArrayList<>(records).getProperty(DeviceSimChargeDto.PageByTopMercVO::getMercId).comparing())).getData()
                             , DeviceSimChargeDto.PageByTopMercVO::getMercId, DeviceSimChargeDto.PageByTopMercVO::getMercName, MercDto.Vo::getId, MercDto.Vo::getName)
                     .builder();
+            List<String> simIds = records.stream().map(DeviceSimChargeDto.PageByTopMercVO::getSimId).collect(Collectors.toList());
+            List<DeviceSim> deviceSims = deviceSimService.listByIds(simIds);
+            Map<String, DeviceSim> deviceSimMap = MapUtil.newHashMap();
+            if (CollUtil.isNotEmpty(deviceSims)) {
+                deviceSimMap = deviceSims.stream().collect(Collectors.toMap(DeviceSim::getId, ds -> ds));
+            }
+            Map<String, SysDictRedis> simConfig = SysDictUtils.get(EnumSimConfig.Code.CODE.getCode());
+
+            Integer value = Integer.valueOf(simConfig.get(EnumSimConfig.N_200.getCode()).getValue());
 
             for (DeviceSimChargeDto.PageByTopMercVO record : records) {
                 Long mercId = record.getMercId();
+                String simId = record.getSimId();
                 //佣金初始化
                 Integer extraMoney = 0;
                 MercFeeConfigDto.ListFeeConfigByMercVO listFeeConfigByMercVO = configByMercVOMap.get(mercId);
@@ -140,6 +156,24 @@ public class DeviceSimChargeServiceImpl extends ServiceImpl<DeviceSimChargeMappe
                     extraMoney = listFeeConfigByMercVO.getFeeConfig().getFeeSimcard();
                     record.setAgentMoney(extraMoney);
                 }
+                DeviceSim sim = deviceSimMap.get(simId);
+                //封装过期状态说明
+                if (Emptys.check(sim)) {
+                    LocalDateTime timeout = sim.getTimeout();
+                    if (timeout == null) {
+                        record.setTimeoutStatus("未初始化");
+                    } else {
+                        String timeoutStatus;
+                        long s = DataTime.diff(LocalDateTime.now(), timeout, "s");
+                        if (s <= 0) {
+                            timeoutStatus = "欠费(" + (~(s / 86400 - 1)) + "天)";
+                        } else {
+                            timeoutStatus = s <= value * 86400 ? "即将到期(" + s / 86400 + "天)" : "正常(" + s / 86400 + "天)";
+                        }
+                        record.setTimeoutStatus(timeoutStatus);
+                    }
+                }
+
             }
         }
         return R.ok(voPageBean);

+ 16 - 25
device-api/src/main/java/com/xy/dto/DeviceSimChargeDto.java

@@ -12,7 +12,6 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.experimental.Accessors;
 
-import javax.validation.constraints.NotNull;
 import java.time.LocalDateTime;
 import java.util.List;
 
@@ -99,6 +98,14 @@ public class DeviceSimChargeDto {
     @Data
     @Accessors(chain = true)
     public static class PageByTopMercVO {
+        
+        @ApiModelProperty(value = "过期时间")
+        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+        private LocalDateTime timeout;
+
+        @ApiModelProperty(value = "过期状态说明")
+        private String timeoutStatus;
+
 
         @ApiModelProperty(value = "id")
         private Long id;
@@ -156,59 +163,43 @@ public class DeviceSimChargeDto {
 
         @ApiModelProperty("是否导出当前页")
         private Boolean exportPage = true;
-
-        //size -1 不分页
-        public PageBean getPage() {
-            if (!this.exportPage) {
-                this.page.setSize(-1L);
-            }
-            return page;
-        }
-
-
         @ApiModelProperty(value = "创建时间-起")
         @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
         private LocalDateTime beginCreateTime;
-
         @ApiModelProperty(value = "创建时间-始")
         @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
         private LocalDateTime endCreateTime;
-
-
         @ApiModelProperty(value = "商户id")
         private Long curMercId;
-
         @ApiModelProperty(value = "指定商户id")
         private Long chooseMercId;
-
         @ApiModelProperty(value = "id")
         private Long id;
-
         @ApiModelProperty(value = "订单id")
         private String orderId;
-
         @ApiModelProperty(value = "流量卡id")
         private String simId;
-
-
         @ApiModelProperty(value = "金额")
         private Integer money;
-
         @ApiModelProperty(value = "数量")
         private Integer size;
-
         @ApiModelProperty(value = "支付方式")
         private Integer payType;
-
         @ApiModelProperty(value = "状态")
         private Integer status;
-
         @ApiModelProperty(value = "备注")
         private String note;
-
         @ApiModelProperty(value = "附件")
         private String files;
 
+        //size -1 不分页
+        public PageBean getPage() {
+            if (!this.exportPage) {
+                this.page.setSize(-1L);
+            }
+            return page;
+        }
+
 
     }