浏览代码

商管端-顶级商户流量卡明细查询

tanbin 1 年之前
父节点
当前提交
71d6c15306

+ 7 - 0
device-api-service-merc-mini/src/main/java/com/xy/controller/DeviceSimChargeController.java

@@ -46,4 +46,11 @@ public class DeviceSimChargeController {
         page.setMercId(MercAuthUtils.getMercId());
         return deviceSimService.page(page);
     }
+
+    @PostMapping("pageByTopMerc")
+    @ApiOperation("商管端-顶级商户流量卡明细查询")
+    public R<PageBean<DeviceSimChargeDto.PageByTopMercVO>> pageByTopMerc(@RequestBody @Validated DeviceSimChargeDto.PageByTopMerc page) {
+        page.setCurMercId(MercAuthUtils.getMercId());
+        return deviceSimChargeService.pageByTopMerc(page);
+    }
 }

+ 59 - 6
device-api-service/src/main/java/com/xy/service/DeviceSimChargeServiceImpl.java

@@ -1,5 +1,7 @@
 package com.xy.service;
 
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.collection.CollUtil;
 import com.alibaba.excel.annotation.ExcelProperty;
 import com.alibaba.excel.annotation.write.style.ColumnWidth;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -11,10 +13,13 @@ 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.dto.DeviceSimChargeDto;
-import com.xy.dto.OrderMercManageDto;
+import com.xy.device.EnumSimConfig;
+import com.xy.dto.*;
 import com.xy.dto.be.MercDto;
+import com.xy.entity.DeviceChargingHistory;
+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;
@@ -33,8 +38,11 @@ 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;
+import java.util.Map;
 
 import static com.xy.utils.Beans.copy;
 import static com.xy.utils.PlusBeans.toIPage;
@@ -64,6 +72,8 @@ public class DeviceSimChargeServiceImpl extends ServiceImpl<DeviceSimChargeMappe
 
     private FileConfig fileConfig;
 
+    private MercFeeConfigSimCardServiceImpl mercFeeConfigSimCardService;
+
     @PostMapping("page")
     @ApiOperation("分页查询")
     public R<PageBean<DeviceSimChargeDto.Vo>> page(@RequestBody DeviceSimChargeDto.Page page) {
@@ -81,12 +91,55 @@ public class DeviceSimChargeServiceImpl extends ServiceImpl<DeviceSimChargeMappe
                     .target(() -> orderMercManageService.list(new OrderMercManageDto.SelectList().setId(new JArrayList<>(records).getProperty(DeviceSimChargeDto.Vo::getOrderId))).getData()
                             , DeviceSimChargeDto.Vo::getOrderId, DeviceSimChargeDto.Vo::getFiles, OrderMercManageDto.Vo::getId, OrderMercManageDto.Vo::getFiles
                     ).target(() -> mercService.list(new MercDto.SelectList().setMercIds(new JArrayList<>(records).getProperty(DeviceSimChargeDto.Vo::getMercId).comparing())).getData()
-                    , DeviceSimChargeDto.Vo::getMercId, DeviceSimChargeDto.Vo::getMercName, MercDto.Vo::getId, MercDto.Vo::getName)
+                            , DeviceSimChargeDto.Vo::getMercId, DeviceSimChargeDto.Vo::getMercName, MercDto.Vo::getId, MercDto.Vo::getName)
+                    .builder();
+        }
+        return R.ok(voPageBean);
+    }
+
+    public R<PageBean<DeviceSimChargeDto.PageByTopMercVO>> pageByTopMerc(DeviceSimChargeDto.PageByTopMerc page) {
+        Long curMercId = page.getCurMercId();
+        Long chooseMercId = page.getChooseMercId();
+        List<Long> mercIds = new ArrayList<>();
+        if (chooseMercId == null) {
+            mercIds = R.feignCheckData(mercService.getAllSubMercIds(new MercDto.QuerySubDTO().setParentMercID(curMercId)));
+        } else {
+            //指定商户ID
+            mercIds.add(chooseMercId);
+        }
+        PageBean pageBean = page.getPage();
+        LambdaQueryWrapper<DeviceSimCharge> lambdaQueryWrapper = new MybatisPlusQuery().eqWrapper(page, DeviceSimCharge.class)
+                .ge(DeviceSimCharge::getCreateTime, page.getBeginCreateTime())
+                .le(DeviceSimCharge::getCreateTime, page.getEndCreateTime())
+                .in(DeviceSimCharge::getMercId, mercIds)
+                .build()
+                .orderByDesc(!Emptys.check(pageBean.getOrders()), DeviceSimCharge::getCreateTime);
+        IPage<DeviceSimCharge> iPage = page(toIPage(pageBean), lambdaQueryWrapper);
+        PageBean<DeviceSimChargeDto.PageByTopMercVO> voPageBean = toPageBean(DeviceSimChargeDto.PageByTopMercVO.class, iPage);
+        List<DeviceSimChargeDto.PageByTopMercVO> records = voPageBean.getRecords();
+        if (Emptys.check(records)) {
+            MercFeeConfigSimCardDto.DeviceSimConfigVO deviceSimConfigVO = R.feignCheckData(mercFeeConfigSimCardService.listByFeeConfig(new MercFeeConfigAlgorithmTypeDto.ListByFeeConfigDTO().setMercId(curMercId)));
+            List<MercFeeConfigSimCardDto.DeviceSimMercVO> deviceSimMercList = deviceSimConfigVO.getDeviceSimMercList();
+            Integer extraMoney = 0;
+            if (CollUtil.isNotEmpty(deviceSimMercList)) {
+                MercFeeConfigSimCardDto.DeviceSimMercVO deviceSimMercVO = deviceSimMercList.get(0);
+                extraMoney = deviceSimMercVO.getExtraMoney();
+            }
+            copy(records)
+                    .target(() -> orderMercManageService.list(new OrderMercManageDto.SelectList().setId(new JArrayList<>(records).getProperty(DeviceSimChargeDto.PageByTopMercVO::getOrderId))).getData()
+                            , DeviceSimChargeDto.PageByTopMercVO::getOrderId, DeviceSimChargeDto.PageByTopMercVO::getFiles, OrderMercManageDto.Vo::getId, OrderMercManageDto.Vo::getFiles
+                    ).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();
+            for (DeviceSimChargeDto.PageByTopMercVO record : records) {
+                record.setAgentMoney(extraMoney);
+            }
         }
         return R.ok(voPageBean);
+
     }
 
+
     @ApiOperation("月统计分页")
     @PostMapping("moonCountPage")
     public R<PageBean<DeviceSimChargeDto.MoonCountVo>> moonCountPage(@RequestBody DeviceSimChargeDto.MoonCountPage moonCountPage) {
@@ -121,7 +174,7 @@ public class DeviceSimChargeServiceImpl extends ServiceImpl<DeviceSimChargeMappe
         });
         //翻译商户名称
         Beans.copy(moonCountVos).target(() -> mercService.list(new MercDto.SelectList().setMercIds(moonCountVos.getProperty(DeviceSimChargeDto.MoonCountVo::getMercId).comparing())).getData(),
-                DeviceSimChargeDto.MoonCountVo::getMercId, DeviceSimChargeDto.MoonCountVo::getMercName, MercDto.Vo::getId, MercDto.Vo::getName)
+                        DeviceSimChargeDto.MoonCountVo::getMercId, DeviceSimChargeDto.MoonCountVo::getMercName, MercDto.Vo::getId, MercDto.Vo::getName)
                 .builder();
         PageBean<DeviceSimChargeDto.MoonCountVo> pageBean = new PageBean<DeviceSimChargeDto.MoonCountVo>()
                 .setCurrent(iPage.getCurrent())
@@ -167,7 +220,7 @@ public class DeviceSimChargeServiceImpl extends ServiceImpl<DeviceSimChargeMappe
         execute.end();
         //翻译商户名称
         Beans.copy(moonCountVos).target(() -> mercService.list(new MercDto.SelectList().setMercIds(moonCountVos.getProperty(DeviceSimChargeDto.MoonCountVo::getMercId).comparing())).getData(),
-                DeviceSimChargeDto.MoonCountVo::getMercId, DeviceSimChargeDto.MoonCountVo::getMercName, MercDto.Vo::getId, MercDto.Vo::getName)
+                        DeviceSimChargeDto.MoonCountVo::getMercId, DeviceSimChargeDto.MoonCountVo::getMercName, MercDto.Vo::getId, MercDto.Vo::getName)
                 .builder();
         return R.ok(moonCountVos.desc(DeviceSimChargeDto.MoonCountVo::getDate));
     }
@@ -227,4 +280,4 @@ public class DeviceSimChargeServiceImpl extends ServiceImpl<DeviceSimChargeMappe
         @ExcelProperty(value = "续费金额")
         private Integer money;
     }
-}
+}

+ 9 - 0
device-api-service/src/main/java/com/xy/service/DeviceSimServiceImpl.java

@@ -1,5 +1,6 @@
 package com.xy.service;
 
+import cn.hutool.core.bean.BeanUtil;
 import com.alibaba.excel.EasyExcel;
 import com.alibaba.excel.annotation.ExcelProperty;
 import com.alibaba.excel.annotation.write.style.ColumnWidth;
@@ -17,13 +18,17 @@ import com.xy.config.DeviceThreadPoolConfig;
 import com.xy.config.FileConfig;
 import com.xy.device.EnumDeviceChargingHistoryStatus;
 import com.xy.device.EnumSimConfig;
+import com.xy.dto.DeviceChargingHistoryDto;
 import com.xy.dto.DeviceSimDto;
 import com.xy.dto.MercFeeConfigAlgorithmTypeDto;
 import com.xy.dto.MercFeeConfigSimCardDto;
+import com.xy.dto.be.MercDto;
+import com.xy.entity.DeviceChargingHistory;
 import com.xy.entity.DeviceSim;
 import com.xy.entity.DeviceSimCharge;
 import com.xy.entity.SysDictRedis;
 import com.xy.mapper.DeviceSimMapper;
+import com.xy.service.be.MercService;
 import com.xy.util.ExcelUtils;
 import com.xy.utils.*;
 import io.swagger.annotations.Api;
@@ -74,8 +79,11 @@ public class DeviceSimServiceImpl extends ServiceImpl<DeviceSimMapper, DeviceSim
     private HttpServletResponse response;
 
     private FileConfig fileConfig;
+
     private MercFeeConfigSimCardServiceImpl mercFeeConfigSimCardService;
 
+    private MercService mercService;
+
 
     @PostMapping("countWaitHandle")
     @ApiOperation("抄送流量卡-运营首页概况")
@@ -198,6 +206,7 @@ public class DeviceSimServiceImpl extends ServiceImpl<DeviceSimMapper, DeviceSim
         return R.ok(toPageBean(iPage));
     }
 
+
     @PostMapping("pageByNotInit")
     @ApiOperation("未初始化分页查询")
     public R<PageBean<DeviceSimDto.PageVo>> pageByNotInit(@RequestBody DeviceSimDto.Page page) {

+ 106 - 0
device-api/src/main/java/com/xy/dto/DeviceSimChargeDto.java

@@ -6,6 +6,7 @@ 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;
 
@@ -35,6 +36,111 @@ public class DeviceSimChargeDto {
         private LocalDateTime endCreateTime;
     }
 
+    @Data
+    @Accessors(chain = true)
+    public static class PageByTopMercVO {
+
+        @ApiModelProperty(value = "id")
+        private Long id;
+
+        @ApiModelProperty(value = "订单id")
+        private String orderId;
+
+        @ApiModelProperty(value = "流量卡id")
+        private String simId;
+
+        @ApiModelProperty(value = "商户id")
+        private Long mercId;
+
+        @ApiModelProperty(value = "金额")
+        private Integer money;
+
+        @ApiModelProperty(value = "代理商金额")
+        private Integer agentMoney;
+
+        @ApiModelProperty(value = "数量")
+        private Integer size;
+
+        @ApiModelProperty(value = "支付方式")
+        private Integer payType;
+
+        @ApiModelProperty(value = "状态")
+        private Integer status;
+
+        @ApiModelProperty(value = "备注")
+        private String note;
+
+        @ApiModelProperty(value = "创建时间")
+        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+        private LocalDateTime createTime;
+
+        @ApiModelProperty(value = "更新时间")
+        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+        private LocalDateTime updateTime;
+
+        @ApiModelProperty(value = "附件")
+        private String files;
+
+        @ApiModelProperty(value = "商户名称")
+        private String mercName;
+
+
+    }
+
+    @Data
+    @Accessors(chain = true)
+    public static class PageByTopMerc {
+
+        @ApiModelProperty("分页对象")
+        private PageBean 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;
+
+
+    }
+
+
     @Data
     @Accessors(chain = true)
     public static class Vo {

+ 1 - 0
device-api/src/main/java/com/xy/dto/DeviceSimDto.java

@@ -277,6 +277,7 @@ public class DeviceSimDto {
         private Boolean isTest;
     }
 
+
     @Data
     @Accessors(chain = true)
     public static class PageVo {