ソースを参照

费用管理-设备激活费用查询

tanbin 1 年間 前
コミット
b78f8c6360

+ 31 - 17
device-api-service/src/main/java/com/xy/service/DeviceTypeAlgorithmBeforConfigServiceImpl.java

@@ -1,5 +1,6 @@
 package com.xy.service;
 
+import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -20,6 +21,7 @@ import com.xy.utils.MybatisPlusQuery;
 import com.xy.utils.R;
 import com.xy.utils.SysDictUtils;
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
@@ -73,7 +75,8 @@ public class DeviceTypeAlgorithmBeforConfigServiceImpl extends ServiceImpl<Devic
 
     @PostMapping("deviceActiveFeeList")
     @ApiOperation("费用管理-设备激活费用查询")
-    public R<List<DeviceTypeAlgorithmBeforConfigDto.DeviceActiveFeeVO>> deviceActiveFeeList(@RequestBody DeviceTypeAlgorithmBeforConfigDto.DeviceActiveFeeDTO dto) {
+    public R<DeviceTypeAlgorithmBeforConfigDto.DeviceActiveFeeVO> deviceActiveFeeList(@RequestBody DeviceTypeAlgorithmBeforConfigDto.DeviceActiveFeeDTO dto) {
+        DeviceTypeAlgorithmBeforConfigDto.DeviceActiveFeeVO vo = new DeviceTypeAlgorithmBeforConfigDto.DeviceActiveFeeVO();
         Long mercId = dto.getMercId();
         LambdaQueryWrapper<DeviceTypeAlgorithmBeforConfig> lambdaQueryWrapper = new MybatisPlusQuery().eqWrapper(dto, DeviceTypeAlgorithmBeforConfig.class).build();
         List<DeviceTypeAlgorithmBeforConfig> list = list(lambdaQueryWrapper);
@@ -85,6 +88,7 @@ public class DeviceTypeAlgorithmBeforConfigServiceImpl extends ServiceImpl<Devic
         Map<Long, String> algorithmPayConfigMap = new HashMap<>();
         for (Long algorithmId : algorithmIds) {
             SysDictRedis moonAlgorithmTypes = SysDictUtils.get(EnumAlgorithmTypes.Code.CODE.getCode(), String.valueOf(algorithmId));
+            //算法类型对应的字典配置的默认激活费(无设备类型)
             SysDictRedis algorithmPayConfig = SysDictUtils.get(EnumAlgorithmPayConfig.Code.CODE.getCode(), String.valueOf(algorithmId));
 //            if (Emptys.check(moonAlgorithmTypes)) {
 //                moonAlgorithmTypesMap.put(algorithmId, moonAlgorithmTypes.getMsg());
@@ -93,30 +97,40 @@ public class DeviceTypeAlgorithmBeforConfigServiceImpl extends ServiceImpl<Devic
                 algorithmPayConfigMap.put(algorithmId, algorithmPayConfig.getValue());
             }
         }
-        if (CollUtil.isNotEmpty(list)) {
-            for (DeviceTypeAlgorithmBeforConfig dc : list) {
-              
 
-            }
-        }
-        List<DeviceTypeAlgorithmBeforConfigDto.DeviceActiveFeeVO> deviceActiveFeeVOS = new ArrayList<>();
+
+        //字典默认配置
+        List<DeviceTypeAlgorithmBeforConfigDto.DeviceActiveDictVO> deviceActiveDicts = new ArrayList<>();
+
         for (Long algorithmId : algorithmIds) {
             String algorithmName = agMap.get(algorithmId);
             String algorithmPayConfig = algorithmPayConfigMap.get(algorithmId);
             DeviceAlgorithmChargingDto.AlgorithmMoonConfig algorithmMoonConfig = JSONUtil.parseObj(algorithmPayConfig).toBean(DeviceAlgorithmChargingDto.AlgorithmMoonConfig.class);
             DeviceAlgorithmChargingDto.AlgorithmMoonConfig.Inf inf = algorithmMoonConfig.getInf();
             Integer money = inf.getMoney();
-            DeviceTypeAlgorithmBeforConfigDto.DeviceActiveFeeVO vo = new DeviceTypeAlgorithmBeforConfigDto.DeviceActiveFeeVO();
-            vo.setAlgorithmId(algorithmId);
-            vo.setAlgorithmName(algorithmName);
-            vo.setMoney(money);
-            vo.setMercId(mercId);
-            vo.setDeviceType(-1);
-            deviceActiveFeeVOS.add(vo);
+            DeviceTypeAlgorithmBeforConfigDto.DeviceActiveDictVO dictVO = new DeviceTypeAlgorithmBeforConfigDto.DeviceActiveDictVO();
+            dictVO.setAlgorithmId(algorithmId);
+            dictVO.setAlgorithmName(algorithmName);
+            dictVO.setMoney(money);
+            dictVO.setSize(inf.getSize());
+            deviceActiveDicts.add(dictVO);
         }
-
-
-        return R.ok(deviceActiveFeeVOS);
+        //平台给商家定义的配置
+        List<DeviceTypeAlgorithmBeforConfigDto.DeviceActiveMercFeeVO> deviceActiveMercFees = new ArrayList<>();
+        if (CollUtil.isNotEmpty(list)) {
+            //平台给商家自定义的设备激活费用,多了个设备类型
+            BeanUtil.copyToList(list, DeviceTypeAlgorithmBeforConfigDto.DeviceActiveMercFeeVO.class);
+            for (DeviceTypeAlgorithmBeforConfig db : list) {
+                DeviceTypeAlgorithmBeforConfigDto.DeviceActiveMercFeeVO dbData = new DeviceTypeAlgorithmBeforConfigDto.DeviceActiveMercFeeVO();
+                BeanUtil.copyProperties(db, dbData);
+                String algorithmName = agMap.get(db.getAlgorithmId());
+                dbData.setAlgorithmName(algorithmName);
+                deviceActiveMercFees.add(dbData);
+            }
+        }
+        vo.setDeviceActiveDicts(deviceActiveDicts);
+        vo.setDeviceActiveMercFees(deviceActiveMercFees);
+        return R.ok(vo);
     }
 
     @LogOperate

+ 38 - 0
device-api/src/main/java/com/xy/dto/DeviceTypeAlgorithmBeforConfigDto.java

@@ -7,6 +7,7 @@ import lombok.experimental.Accessors;
 
 import javax.validation.constraints.NotNull;
 import java.time.LocalDateTime;
+import java.util.List;
 
 /**
  * <p>
@@ -39,12 +40,28 @@ public class DeviceTypeAlgorithmBeforConfigDto {
         @ApiModelProperty(value = "算法id")
         private Long algorithmId;
 
+
     }
 
     @Data
     @Accessors(chain = true)
     public static class DeviceActiveFeeVO {
 
+        @ApiModelProperty(value = "字典默认配置")
+        private List<DeviceActiveDictVO> deviceActiveDicts;
+
+        @ApiModelProperty(value = "平台给商家定义的配置")
+        private List<DeviceActiveMercFeeVO> deviceActiveMercFees;
+
+    }
+
+    /**
+     * 平台给商家定义的费用配置
+     */
+    @Data
+    @Accessors(chain = true)
+    public static class DeviceActiveMercFeeVO {
+
         @ApiModelProperty(value = "id")
         private Long id;
 
@@ -72,6 +89,27 @@ public class DeviceTypeAlgorithmBeforConfigDto {
         private LocalDateTime updateTime;
 
 
+    }
+
+    /**
+     * 字典默认配置
+     */
+    @Data
+    @Accessors(chain = true)
+    public static class DeviceActiveDictVO {
+        @ApiModelProperty(value = "算法笔数")
+        private Integer size;
+
+        @ApiModelProperty(value = "算法id")
+        private Long algorithmId;
+
+        @ApiModelProperty(value = "算法名称")
+        private String algorithmName;
+
+        @ApiModelProperty(value = "预充金额;单位:分")
+        private Integer money;
+
+
     }