浏览代码

增加 加油包相关 接口

hechunping 9 月之前
父节点
当前提交
8f91859a86

+ 10 - 2
device-api-service/src/main/java/com/xy/service/SimInfoServiceImpl.java

@@ -11,6 +11,8 @@ import org.springframework.stereotype.Service;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.RequestBody;
 
+import java.util.List;
+
 /**
  * <p>
  * 物联网卡服务
@@ -32,13 +34,19 @@ public class SimInfoServiceImpl implements SimInfoService {
 
     @Override
     @ApiOperation("刷新网络")
-    public R<String> refreshNet(SimInfoDto.RefreshNetDto dto) {
+    public R<String> refreshNet(@RequestBody @Validated SimInfoDto.RefreshNetDto dto) {
         return FactoryUtils.getServiceRoute(SimInfoFactory.class,dto.getIsp()).refreshNet(dto);
     }
 
     @Override
     @ApiOperation("机卡重绑")
-    public R<String> bindAgain(SimInfoDto.BindAgainDto dto) {
+    public R<String> bindAgain(@RequestBody @Validated SimInfoDto.BindAgainDto dto) {
         return FactoryUtils.getServiceRoute(SimInfoFactory.class,dto.getIsp()).bindAgain(dto);
     }
+
+    @Override
+    @ApiOperation("加油包列表")
+    public R<List<SimInfoDto.PackListVo>> packList(@RequestBody @Validated SimInfoDto.BaseDto dto) {
+        return FactoryUtils.getServiceRoute(SimInfoFactory.class,dto.getIsp()).packList();
+    }
 }

+ 16 - 0
device-api-service/src/main/java/com/xy/service/factory/sim/SimInfoFactory.java

@@ -3,6 +3,8 @@ package com.xy.service.factory.sim;
 import com.xy.dto.SimInfoDto;
 import com.xy.utils.R;
 
+import java.util.List;
+
 /**
  * <p>
  * Sim物联网卡接口
@@ -33,4 +35,18 @@ public interface SimInfoFactory {
      * @return
      */
     R<String> bindAgain(SimInfoDto.BindAgainDto dto);
+
+
+    /**
+     * 购买加油包
+     * @param dto
+     * @return
+     */
+    R<String> buyPack(SimInfoDto.BuyPackDto dto);
+
+    /**
+     * 加油包列表
+     * @return
+     */
+    R<List<SimInfoDto.PackListVo>> packList();
 }

+ 61 - 9
device-api-service/src/main/java/com/xy/service/factory/sim/impl/CtWingFactoryImpl.java

@@ -1,17 +1,23 @@
 package com.xy.service.factory.sim.impl;
 
+import cn.hutool.json.JSONObject;
+import cn.hutool.json.JSONUtil;
+import com.xy.Enum.ctwing.BindTypeEnum;
 import com.xy.annotate.Factory;
 import com.xy.dto.CtWingDto;
 import com.xy.dto.CtWingVo;
 import com.xy.dto.SimInfoDto;
+import com.xy.entity.SysDictRedis;
 import com.xy.service.factory.sim.SimInfoFactory;
-import com.xy.utils.CtWingUtils;
-import com.xy.utils.FunctionUtils;
-import com.xy.utils.R;
+import com.xy.utils.*;
 import lombok.AllArgsConstructor;
 import lombok.SneakyThrows;
 import lombok.extern.slf4j.Slf4j;
 
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
 /**
  * <p>
  * 电信
@@ -79,14 +85,17 @@ public class CtWingFactoryImpl implements SimInfoFactory {
         if (!"0".equals(telephonePlusVo.getResultCode())) {
             return R.fail("三码查询错误!");
         }
-        String action = dto.getAction() ? "ADD":"DEL";
+        String action = dto.getAction() ? "ADD" : "DEL";
         CtWingDto.SingleCutNetDto singleCutNetDto = new CtWingDto.SingleCutNetDto()
                 .setAccessNumber(telephonePlusVo.getAccessNumber())
                 .setAction(action);
         CtWingVo.BaseVo baseVo = CtWingUtils.singleCutNet(singleCutNetDto);
-        if("0".equals(baseVo.getResultCode())){
+
+        if ("0".equals(baseVo.getResultCode())) {
+            log.info("");
             return R.ok("处理成功!");
-        }else{
+        } else {
+            log.error("");
             return R.fail(baseVo.getResultMsg());
         }
     }
@@ -95,12 +104,55 @@ public class CtWingFactoryImpl implements SimInfoFactory {
     @SneakyThrows
     public R<String> bindAgain(SimInfoDto.BindAgainDto dto) {
         CtWingDto.ImeiReRecordDto imeiReRecordDto = new CtWingDto.ImeiReRecordDto();
-        imeiReRecordDto.setBindType("1").setImei(null).setIccid(dto.getIccid());
+        imeiReRecordDto.setBindType(BindTypeEnum.T_1.getCode()).setImei(dto.getImei()).setIccid(dto.getIccid());
         CtWingVo.BaseVo baseVo = CtWingUtils.imeiReRecord(imeiReRecordDto);
-        if("0".equals(baseVo.getResultCode())){
+        if ("0".equals(baseVo.getResultCode())) {
+            log.info("");
             return R.ok("处理成功!");
-        }else{
+        } else {
+            log.error("");
+            return R.fail(baseVo.getResultMsg());
+        }
+    }
+
+    @Override
+    @SneakyThrows
+    public R<String> buyPack(SimInfoDto.BuyPackDto dto) {
+        CtWingDto.OrderRFPFlowDto orderRFPFlowDto = new CtWingDto.OrderRFPFlowDto();
+        orderRFPFlowDto.setFlowValue(dto.getPackCode()).setIccid(dto.getIccid());
+        CtWingVo.BaseVo baseVo = CtWingUtils.orderRFPFlow(orderRFPFlowDto);
+        if ("0".equals(baseVo.getResultCode())) {
+            log.info("");
+            return R.ok("订购成功!");
+        } else {
+            log.error("");
             return R.fail(baseVo.getResultMsg());
         }
     }
+
+    @Override
+    public R<List<SimInfoDto.PackListVo>> packList() {
+        Map<String, SysDictRedis> dict = SysDictUtils.get("sim-packs-ctwing");
+        List<SimInfoDto.PackListVo> voList = new ArrayList<>();
+        if (Emptys.check(dict)) {
+            dict.forEach((k, v) -> {
+                JSONObject jsonObject = JSONUtil.parseObj(v.getValue());
+                String name = jsonObject.get("name").toString();
+                String icp = jsonObject.get("icp").toString();
+                Integer money = Integer.valueOf(jsonObject.get("money").toString());
+
+                SimInfoDto.PackListVo vo = new SimInfoDto.PackListVo()
+                        .setPackCode(v.getCode())
+                        .setDesc(v.getMsg())
+                        .setName(name)
+                        .setIcp(icp)
+                        .setMoney(money);
+                voList.add(vo);
+            });
+        }
+
+        return R.ok(voList);
+    }
+
+
 }

+ 22 - 1
device-api/src/main/java/com/xy/dto/SimInfoDto.java

@@ -4,6 +4,7 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.experimental.Accessors;
 
+import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotNull;
 
 
@@ -12,7 +13,7 @@ public class SimInfoDto {
     @Data
     @Accessors(chain = true)
     public static class BaseDto {
-        @NotNull(message = "iccid 不能为空")
+        @NotBlank(message = "iccid 不能为空")
         @ApiModelProperty(value = "iccid", required = true)
         private String iccid;
 
@@ -59,9 +60,29 @@ public class SimInfoDto {
         private Boolean action;
     }
 
+    @Data
+    @Accessors(chain = true)
     public static class BindAgainDto extends BaseDto {
+        @ApiModelProperty("设备码")
+        private String imei;
+    }
 
+    @Data
+    @Accessors(chain = true)
+    public static class BuyPackDto extends BaseDto {
+        @NotBlank(message = "订购包CODE 不能为空")
+        @ApiModelProperty(value = "订购包CODE", required = true)
+        private String packCode;
     }
 
+    @Data
+    @Accessors(chain = true)
+    public static class PackListVo {
+        private String packCode;
+        private String desc;
+        private String name;
+        private String icp;
+        private Integer money;
+    }
 
 }

+ 6 - 1
device-api/src/main/java/com/xy/service/SimInfoService.java

@@ -7,6 +7,8 @@ import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 
+import java.util.List;
+
 /**
  * <p>
  * 物联网卡服务接口
@@ -24,5 +26,8 @@ public interface SimInfoService {
     R<String> refreshNet(@RequestBody @Validated SimInfoDto.RefreshNetDto dto);
 
     @PostMapping("bindAgain")
-    R<String> bindAgain(SimInfoDto.BindAgainDto dto);
+    R<String> bindAgain(@RequestBody @Validated SimInfoDto.BindAgainDto dto);
+
+    @PostMapping("packList")
+    R<List<SimInfoDto.PackListVo>> packList(@RequestBody @Validated SimInfoDto.BaseDto dto);
 }