Ver Fonte

商户流量卡费配置扩展

tanbin há 1 ano atrás
pai
commit
f32366833c

+ 74 - 13
device-api-service/src/main/java/com/xy/service/MercFeeConfigSimCardServiceImpl.java

@@ -1,25 +1,42 @@
 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.toolkit.Wrappers;
+import com.xy.device.EnumAlgorithmPayConfig;
+import com.xy.device.EnumAlgorithmTypes;
+import com.xy.device.EnumSimConfig;
+import com.xy.dto.AlgorithmDto;
+import com.xy.dto.DeviceAlgorithmChargingDto;
+import com.xy.dto.MercFeeConfigAlgorithmTypeDto;
+import com.xy.dto.be.MercDto;
+import com.xy.entity.MercFeeConfigAlgorithmType;
 import com.xy.entity.MercFeeConfigSimCard;
+import com.xy.entity.SysDictRedis;
+import com.xy.error.CommRuntimeException;
 import com.xy.mapper.MercFeeConfigSimCardMapper;
 import com.xy.service.MercFeeConfigSimCardService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.xy.service.be.MercService;
+import com.xy.utils.*;
 import org.springframework.stereotype.Service;
 import io.swagger.annotations.Api;
 import lombok.AllArgsConstructor;
 
+import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
-import com.xy.utils.R;
-import com.xy.utils.PageBean;
+import java.util.Map;
+import java.util.stream.Collectors;
+
 import com.xy.dto.MercFeeConfigSimCardDto;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.PostMapping;
 import io.swagger.annotations.ApiOperation;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.xy.utils.MybatisPlusQuery;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springframework.validation.annotation.Validated;
-import com.xy.utils.Emptys;
 
 import static com.xy.utils.Beans.copy;
 import static com.xy.utils.PlusBeans.toIPage;
@@ -27,24 +44,26 @@ import static com.xy.utils.PlusBeans.toPageBean;
 
 
 /**
-* <p>
-* 商户流量卡费配置扩展 服务实现类
-* </p>
-*
-* @author 谭斌
-* @since 2024-04-07
-*/
+ * <p>
+ * 商户流量卡费配置扩展 服务实现类
+ * </p>
+ *
+ * @author 谭斌
+ * @since 2024-04-07
+ */
 @Service
 @AllArgsConstructor
 @Api(tags = "商户流量卡费配置扩展")
 public class MercFeeConfigSimCardServiceImpl extends ServiceImpl<MercFeeConfigSimCardMapper, MercFeeConfigSimCard> implements MercFeeConfigSimCardService {
 
+    private MercService mercService;
+
     @PostMapping("obj")
     @ApiOperation("对象查询")
     public R<MercFeeConfigSimCardDto.Vo> obj(@RequestBody MercFeeConfigSimCardDto.Vo vo) {
         MercFeeConfigSimCardDto.SelectList selectList = copy(MercFeeConfigSimCardDto.SelectList.class, vo);
         List<MercFeeConfigSimCardDto.Vo> list = list(selectList).getData();
-        if(Emptys.check(list)) {
+        if (Emptys.check(list)) {
             return R.ok(list.get(0));
         }
         return R.ok();
@@ -67,9 +86,51 @@ public class MercFeeConfigSimCardServiceImpl extends ServiceImpl<MercFeeConfigSi
         return R.ok(toPageBean(MercFeeConfigSimCardDto.Vo.class, iPage));
     }
 
+    @PostMapping("listByFeeConfig")
+    @ApiOperation("设备算法费用配置查询")
+    public R<MercFeeConfigSimCardDto.DeviceSimConfigVO> listByFeeConfig(@RequestBody @Validated MercFeeConfigAlgorithmTypeDto.ListByFeeConfigDTO dto) {
+        MercFeeConfigSimCardDto.DeviceSimConfigVO data = new MercFeeConfigSimCardDto.DeviceSimConfigVO();
+        Long mercId = dto.getMercId();
+        MercDto.Vo merc = R.feignCheckData(mercService.obj(new MercDto.Vo().setId(mercId)));
+        //查询默认算法信息
+        //流量卡费-平台默认配置
+        List<MercFeeConfigSimCardDto.DeviceSimPlatformVO> deviceSimPlatformList = new ArrayList<>();
+
+        Integer money = SysDictUtils.getValue(EnumSimConfig.Code.CODE.getCode(), EnumSimConfig.money.getCode(), Integer.class);
+        String name = SysDictUtils.getValue(EnumSimConfig.Code.CODE.getCode(), EnumSimConfig.name.getCode(), String.class);
+        Integer expireDay = SysDictUtils.getValue(EnumSimConfig.Code.CODE.getCode(), EnumSimConfig.N_200.getCode(), Integer.class);
+        deviceSimPlatformList.add(new MercFeeConfigSimCardDto.DeviceSimPlatformVO().setName(name).setExpireDay(expireDay).setMoney(money));
+
+
+        // 设备管理费-商家自定义费用
+        List<MercFeeConfigSimCardDto.DeviceSimMercVO> deviceSimMercList = new ArrayList<>();
+        LambdaQueryWrapper<MercFeeConfigSimCard> lambdaQueryWrapper = new MybatisPlusQuery().eqWrapper(dto, MercFeeConfigSimCard.class)
+                .eq(MercFeeConfigSimCard::getMercId, merc.getId())
+                .build();
+        //默认配置 type 2预充 1赠送天数
+        List<MercFeeConfigSimCard> list = list(lambdaQueryWrapper);
+        if (CollUtil.isNotEmpty(list)) {
+            for (MercFeeConfigSimCard cfg : list) {
+                MercFeeConfigSimCardDto.DeviceSimMercVO deviceSimMercVO = BeanUtil.copyProperties(cfg, MercFeeConfigSimCardDto.DeviceSimMercVO.class);
+                deviceSimMercVO.setName(name).setExpireDay(expireDay).setMoney(money);
+                deviceSimMercList.add(deviceSimMercVO);
+            }
+        }
+        data.setDeviceSimPlatformList(deviceSimPlatformList);
+        data.setDeviceSimMercList(deviceSimMercList);
+        return R.ok(data);
+    }
+
     @PostMapping("save")
     @ApiOperation("添加")
     public R save(@RequestBody @Validated MercFeeConfigSimCardDto.Save save) {
+        Long mercId = save.getMercId();
+        MercFeeConfigSimCard mc = this.getOne(Wrappers.<MercFeeConfigSimCard>lambdaQuery()
+                .eq(MercFeeConfigSimCard::getMercId, mercId)
+        );
+        if (mc != null) {
+            throw new CommRuntimeException("该类型配置已存在,请勿重复添加!");
+        }
         MercFeeConfigSimCard saveInfo = copy(MercFeeConfigSimCard.class, save);
         save(saveInfo);
         return R.ok();
@@ -82,4 +143,4 @@ public class MercFeeConfigSimCardServiceImpl extends ServiceImpl<MercFeeConfigSi
         updateById(updateInfo);
         return R.ok();
     }
-}
+}

+ 61 - 0
device-api/src/main/java/com/xy/dto/MercFeeConfigSimCardDto.java

@@ -3,6 +3,7 @@ package com.xy.dto;
 import java.time.LocalDateTime;
 
 import java.io.Serializable;
+import java.util.List;
 
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -19,6 +20,66 @@ import com.fasterxml.jackson.annotation.JsonFormat;
  * @since 2024-04-07
  */
 public class MercFeeConfigSimCardDto {
+    @Data
+    @Accessors(chain = true)
+    public static class DeviceSimConfigVO {
+        @ApiModelProperty(value = "流量卡费-平台默认配置")
+        private List<DeviceSimPlatformVO> deviceSimPlatformList;
+        @ApiModelProperty(value = "流量卡费-商家自定义费用")
+        private List<DeviceSimMercVO> deviceSimMercList;
+    }
+
+    @Data
+    @Accessors(chain = true)
+    public static class DeviceSimPlatformVO {
+
+        @ApiModelProperty(value = "名称")
+        private String name;
+        @ApiModelProperty(value = "年费,单位 分")
+        private Integer money;
+        @ApiModelProperty(value = "即将过期天数")
+        private Integer expireDay;
+    }
+
+    @Data
+    @Accessors(chain = true)
+    public static class DeviceSimMercVO {
+
+        @ApiModelProperty(value = "ID")
+        private Long id;
+
+        @ApiModelProperty(value = "商户编码")
+        private String mercCode;
+
+        @ApiModelProperty(value = "商户id")
+        private Long mercId;
+
+        @ApiModelProperty(value = "创建时间")
+        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+        private LocalDateTime createTime;
+
+        @ApiModelProperty(value = "创建人")
+        private Long createUser;
+
+        @ApiModelProperty(value = "更新人")
+        private Long updateUser;
+
+        @ApiModelProperty(value = "更新时间")
+        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+        private LocalDateTime updateTime;
+
+        @ApiModelProperty(value = "流量卡费金额(比平台多收的金额)")
+        private Integer extraMoney;
+
+        @ApiModelProperty(value = "名称")
+        private String name;
+        @ApiModelProperty(value = "年费,单位 分")
+        private Integer money;
+        @ApiModelProperty(value = "即将过期天数")
+        private Integer expireDay;
+
+    }
+
 
     @Data
     @Accessors(chain = true)