【新增】设备激活接口
This commit is contained in:
@@ -0,0 +1,15 @@
|
|||||||
|
package com.corewing.app.dto;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import javax.validation.constraints.NotBlank;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class DeviceActivationRequest {
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "MAC地址", required = true)
|
||||||
|
@NotBlank(message = "MAC地址不能为空")
|
||||||
|
private String mac;
|
||||||
|
|
||||||
|
}
|
||||||
40
src/main/java/com/corewing/app/entity/BizDevice.java
Normal file
40
src/main/java/com/corewing/app/entity/BizDevice.java
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
package com.corewing.app.entity;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import com.corewing.app.common.base.CommonEntity;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设备表
|
||||||
|
*/
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@Data
|
||||||
|
@TableName("biz_device")
|
||||||
|
public class BizDevice extends CommonEntity {
|
||||||
|
|
||||||
|
@TableId
|
||||||
|
@ApiModelProperty("设备id")
|
||||||
|
private String id;
|
||||||
|
|
||||||
|
@ApiModelProperty("设备mac地址")
|
||||||
|
private String deviceMac;
|
||||||
|
|
||||||
|
@ApiModelProperty("状态")
|
||||||
|
private String status;
|
||||||
|
|
||||||
|
@ApiModelProperty("公布状态")
|
||||||
|
private String publicStatus;
|
||||||
|
|
||||||
|
@ApiModelProperty("排序")
|
||||||
|
private int sortCode;
|
||||||
|
|
||||||
|
@ApiModelProperty("备注")
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
@ApiModelProperty("扩展字段")
|
||||||
|
private String extJson;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,45 @@
|
|||||||
|
package com.corewing.app.entity;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import com.corewing.app.common.base.CommonEntity;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设备激活表
|
||||||
|
*/
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@Data
|
||||||
|
@TableName("biz_device_activation")
|
||||||
|
public class BizDeviceActivation extends CommonEntity {
|
||||||
|
|
||||||
|
@TableId
|
||||||
|
@ApiModelProperty("激活id")
|
||||||
|
private String id;
|
||||||
|
|
||||||
|
@ApiModelProperty("设备mac地址")
|
||||||
|
private String deviceMac;
|
||||||
|
|
||||||
|
@ApiModelProperty("设备id")
|
||||||
|
private String deviceId;
|
||||||
|
|
||||||
|
@ApiModelProperty("激活时间")
|
||||||
|
private Date activationTime;
|
||||||
|
|
||||||
|
@ApiModelProperty("用户id")
|
||||||
|
private Long userId;
|
||||||
|
|
||||||
|
@ApiModelProperty("激活ip")
|
||||||
|
private String activationIp;
|
||||||
|
|
||||||
|
@ApiModelProperty("备注")
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
@ApiModelProperty("扩展字段")
|
||||||
|
private String extJson;
|
||||||
|
|
||||||
|
}
|
||||||
38
src/main/java/com/corewing/app/entity/BizDeviceCategory.java
Normal file
38
src/main/java/com/corewing/app/entity/BizDeviceCategory.java
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
package com.corewing.app.entity;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import com.corewing.app.common.base.CommonEntity;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设备型号表
|
||||||
|
*/
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@Data
|
||||||
|
@TableName("biz_device_category")
|
||||||
|
public class BizDeviceCategory extends CommonEntity {
|
||||||
|
|
||||||
|
@TableId
|
||||||
|
@ApiModelProperty("设备型号id")
|
||||||
|
private String id;
|
||||||
|
|
||||||
|
@ApiModelProperty("设备型号缩略图")
|
||||||
|
private String thumbnail;
|
||||||
|
|
||||||
|
@ApiModelProperty("设备型号名称")
|
||||||
|
private String deviceName;
|
||||||
|
|
||||||
|
@ApiModelProperty("排序")
|
||||||
|
private int sortCode;
|
||||||
|
|
||||||
|
@ApiModelProperty("备注")
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
@ApiModelProperty("扩展字段")
|
||||||
|
private String extJson;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package com.corewing.app.mapper;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.corewing.app.entity.BizDeviceActivation;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
|
@Mapper
|
||||||
|
public interface BizDeviceActivationMapper extends BaseMapper<BizDeviceActivation> {
|
||||||
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package com.corewing.app.mapper;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.corewing.app.entity.BizDeviceCategory;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
|
@Mapper
|
||||||
|
public interface BizDeviceCategoryMapper extends BaseMapper<BizDeviceCategory> {
|
||||||
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package com.corewing.app.mapper;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.corewing.app.entity.BizDevice;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
|
@Mapper
|
||||||
|
public interface BizDeviceMapper extends BaseMapper<BizDevice> {
|
||||||
|
}
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
package com.corewing.app.modules.app;
|
||||||
|
|
||||||
|
import com.corewing.app.common.Result;
|
||||||
|
import com.corewing.app.dto.DeviceActivationRequest;
|
||||||
|
import com.corewing.app.service.BizDeviceActivationService;
|
||||||
|
import io.swagger.annotations.Api;
|
||||||
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 产品激活接口
|
||||||
|
*/
|
||||||
|
@Api(tags = "产品激活")
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/api/app/device")
|
||||||
|
public class AppDeviceController {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private BizDeviceActivationService activationService;
|
||||||
|
|
||||||
|
@ApiOperation("激活接口")
|
||||||
|
@PostMapping("activation")
|
||||||
|
public Result<Boolean> activation(@RequestBody DeviceActivationRequest deviceActivationRequest) {
|
||||||
|
return Result.success(activationService.activation(deviceActivationRequest));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package com.corewing.app.service;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.corewing.app.dto.DeviceActivationRequest;
|
||||||
|
import com.corewing.app.entity.BizDeviceActivation;
|
||||||
|
|
||||||
|
public interface BizDeviceActivationService extends IService<BizDeviceActivation> {
|
||||||
|
Boolean activation(DeviceActivationRequest deviceActivationRequest);
|
||||||
|
}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
package com.corewing.app.service;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.corewing.app.entity.BizDeviceCategory;
|
||||||
|
|
||||||
|
public interface BizDeviceCategoryService extends IService<BizDeviceCategory> {
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
package com.corewing.app.service;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.corewing.app.entity.BizDevice;
|
||||||
|
|
||||||
|
public interface BizDeviceService extends IService<BizDevice> {
|
||||||
|
}
|
||||||
@@ -0,0 +1,60 @@
|
|||||||
|
package com.corewing.app.service.impl;
|
||||||
|
|
||||||
|
import cn.dev33.satoken.stp.StpUtil;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import com.corewing.app.dto.DeviceActivationRequest;
|
||||||
|
import com.corewing.app.entity.BizDevice;
|
||||||
|
import com.corewing.app.entity.BizDeviceActivation;
|
||||||
|
import com.corewing.app.mapper.BizDeviceActivationMapper;
|
||||||
|
import com.corewing.app.service.BizDeviceActivationService;
|
||||||
|
import com.corewing.app.service.BizDeviceService;
|
||||||
|
import com.corewing.app.util.CommonServletUtil;
|
||||||
|
import com.corewing.app.util.IpUtil;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
public class BizDeviceActivationServiceImpl extends ServiceImpl<BizDeviceActivationMapper, BizDeviceActivation> implements BizDeviceActivationService {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private BizDeviceService deviceService;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Boolean activation(DeviceActivationRequest deviceActivationRequest) {
|
||||||
|
Object loginId = StpUtil.getLoginId();
|
||||||
|
LambdaQueryWrapper<BizDeviceActivation> wrapper = new LambdaQueryWrapper<>();
|
||||||
|
wrapper.eq(BizDeviceActivation::getDeviceMac, deviceActivationRequest.getMac());
|
||||||
|
BizDeviceActivation checkDeviceActivation = getOne(wrapper);
|
||||||
|
if(checkDeviceActivation != null) {
|
||||||
|
// 该用户已经激活过该设备
|
||||||
|
if(checkDeviceActivation.getUserId().equals(loginId)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return updateById(checkDeviceActivation);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 校验是否为酷翼飞控设备
|
||||||
|
LambdaQueryWrapper<BizDevice> checkDeviceWrapper = new LambdaQueryWrapper<>();
|
||||||
|
checkDeviceWrapper.eq(BizDevice::getDeviceMac, deviceActivationRequest.getMac());
|
||||||
|
List<BizDevice> list = deviceService.list(checkDeviceWrapper);
|
||||||
|
if(list.isEmpty()) {
|
||||||
|
throw new RuntimeException("该设备不是酷翼官方产品");
|
||||||
|
}
|
||||||
|
|
||||||
|
BizDevice bizDevice = list.get(0);
|
||||||
|
|
||||||
|
// 执行新设备绑定激活
|
||||||
|
BizDeviceActivation deviceActivation = new BizDeviceActivation();
|
||||||
|
deviceActivation.setDeviceMac(bizDevice.getDeviceMac());
|
||||||
|
deviceActivation.setActivationIp(IpUtil.getClientIp(CommonServletUtil.getRequest()));
|
||||||
|
deviceActivation.setActivationTime(new Date());
|
||||||
|
deviceActivation.setUserId(Long.valueOf(loginId.toString()));
|
||||||
|
deviceActivation.setDeviceId(bizDevice.getId());
|
||||||
|
return this.saveOrUpdate(deviceActivation);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
package com.corewing.app.service.impl;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import com.corewing.app.entity.BizDeviceCategory;
|
||||||
|
import com.corewing.app.mapper.BizDeviceCategoryMapper;
|
||||||
|
import com.corewing.app.service.BizDeviceCategoryService;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
public class BizDeviceCategoryServiceImpl extends ServiceImpl<BizDeviceCategoryMapper, BizDeviceCategory> implements BizDeviceCategoryService {
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
package com.corewing.app.service.impl;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import com.corewing.app.entity.BizDevice;
|
||||||
|
import com.corewing.app.mapper.BizDeviceMapper;
|
||||||
|
import com.corewing.app.service.BizDeviceService;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
public class BizDeviceServiceImpl extends ServiceImpl<BizDeviceMapper, BizDevice> implements BizDeviceService {
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user