浏览代码

商管端授权设备

tanbin 1 年之前
父节点
当前提交
57620e9a25

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

@@ -92,6 +92,23 @@ public class MercMiniDeviceController {
         return R.ok(deviceInfoService.unBindDeviceByMerc(dto));
     }
 
+    @ApiOperation("商户设备授权")
+    @PostMapping("deviceAuth")
+    public R mercDeviceAuth(@RequestBody @Validated DeviceInfoDto.MercDeviceAuthDto auth) {
+        String mercCode = auth.getMercCode();
+        MercDto.Vo merc = R.feignCheckData(mercFeignService.obj(new MercDto.ListDTO().setMercCode(mercCode)));
+//        MercAuthUtils.MercAuth.Merc merc = MercAuthUtils.getMercAuth().getMerc();
+        auth.setMercCode(mercCode);
+        auth.setMercId(merc.getId());
+        auth.setParentId(merc.getParentId());
+        auth.setMercName(merc.getName());
+        auth.setAlgorithmId(merc.getAlgorithmId());
+        auth.setMercOperate(true);
+        //设备服务授权处理
+        R<Boolean> r = R.feignCheck(deviceInfoService.mercDeviceAuth(auth));
+        return R.ok(r.getData());
+    }
+
     @ApiOperation("设备分页-管理员")
     @PostMapping("pageByAdminName")
     public R<PageBean<DeviceInfoDto.ListByAdminName>> pageByAdminName(@RequestBody @Validated DeviceInfoDto.PageByAdminNameDto dto) {

+ 22 - 15
device-api-service/src/main/java/com/xy/service/DeviceInfoServiceImpl.java

@@ -756,23 +756,30 @@ public class DeviceInfoServiceImpl extends ServiceImpl<DeviceInfoMapper, DeviceI
             }
             int refMercId = deviceInfo.getMercId().intValue();
             String refMercCode = deviceInfo.getMercCode();
-            //  只有解绑后,才能给顶级商户授权
-            if (refMercId != -1 && refMercId != mercId.intValue()) {
-                StrBuilder sb = StrBuilder.create();
-                String errMsg = sb.append("设备[")
-                        .append(deviceInfo.getDeviceId())
-                        .append("]")
-                        .append("已被商户[")
-                        .append(deviceInfo.getMercName())
-                        .append("]绑定,请先进行解绑!")
-                        .toString();
-                //非质检商户需要进行判断,质检商户跳过
-                if (!QA_MERC_CODE.equals(refMercCode)) {
-                    //已关联别商户
-                    return R.fail(errMsg, Boolean.FALSE);
-                }
 
+            if (BooleanUtil.isFalse(auth.getMercOperate())) {
+                //非商户操作
+                //  只有解绑后,才能给顶级商户授权
+                if (refMercId != -1 && refMercId != mercId.intValue()) {
+                    StrBuilder sb = StrBuilder.create();
+                    String errMsg = sb.append("设备[")
+                            .append(deviceInfo.getDeviceId())
+                            .append("]")
+                            .append("已被商户[")
+                            .append(deviceInfo.getMercName())
+                            .append("]绑定,请先进行解绑!")
+                            .toString();
+                    //非质检商户需要进行判断,质检商户跳过
+                    if (!QA_MERC_CODE.equals(refMercCode)) {
+                        //已关联别商户
+                        return R.fail(errMsg, Boolean.FALSE);
+                    }
+
+                }
+            } else {
+                //商户操作直接转移给子商户
             }
+
             //绑定关系
             deviceInfo.setMercId(mercId).setMercCode(mercCode).setAlgorithmId(algorithmId).setMercName(mercName);
             //标记机器可交易

+ 7 - 5
device-api/src/main/java/com/xy/dto/DeviceInfoDto.java

@@ -16,7 +16,6 @@ import lombok.Data;
 import lombok.experimental.Accessors;
 
 import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotEmpty;
 import javax.validation.constraints.NotNull;
 import java.math.BigDecimal;
 import java.time.LocalDate;
@@ -853,6 +852,10 @@ public class DeviceInfoDto {
     @Data
     @Accessors(chain = true)
     public static class MercDeviceAuthDto {
+        @ApiModelProperty(value = "是否商户操作", required = false)
+        private Boolean mercOperate;
+
+
         @ApiModelProperty(value = "对应商户的全量设备ID(传空则取消商户所有机器)", required = false)
         private List<Long> deviceIds;
 
@@ -877,19 +880,18 @@ public class DeviceInfoDto {
     @Data
     @Accessors(chain = true)
     public static class MercDeviceUnBindDto {
-        @NotEmpty(message = "请选择设备!")
         @ApiModelProperty(value = "设备ID", required = false)
         private List<Long> deviceIds;
 
-        @ApiModelProperty(value = "商户ID")
-        private Long mercId;
-
         @ApiModelProperty(value = "商户ID")
         private String mercName;
 
         @ApiModelProperty(value = "商户编码")
         private String mercCode;
 
+        @ApiModelProperty(value = "商户ID")
+        private Long mercId;
+
     }