Commit cdff0268 authored by AfirSraftGarrier's avatar AfirSraftGarrier

Merge remote-tracking branch 'origin/master' into for-yx

parents 7f895196 14de6597
......@@ -15,6 +15,8 @@ CREATE TABLE `pms_use_log`
AUTO_INCREMENT = 0
DEFAULT CHARSET = utf8 COMMENT ='使用记录表';
ALTER TABLE `device` MODIFY sn varchar (30) NULL COMMENT '授权SN';
ALTER TABLE `device`
ADD COLUMN `status` int(1) NULL DEFAULT NULL COMMENT '状态 0:未使用,1:已使用,2:失效' AFTER `app_id`;
......
......@@ -80,9 +80,14 @@ public class AuthManager {
log.info("in black...");
return false;
}
Apply apply = allApply.get(appId);
String theAppId = device.getAppId();
if (theAppId == null) {
log.info("no real valid appId...");
return false;
}
Apply apply = allApply.get(theAppId);
String appKey = apply.getAppKey();
String input = "app_id=" + appId + "&sn=" + sn;
String input = "app_id=" + theAppId + "&sn=" + sn;
String valSHA1 = HmacUtil.encrypt(input, appKey, HmacUtil.HMAC_SHA1).toUpperCase();
if (CommonUtil.toUpperCaseByEnglish(sign).equals(CommonUtil.toUpperCaseByEnglish(valSHA1))) {
return true;
......@@ -112,9 +117,14 @@ public class AuthManager {
log.info("in black...");
return false;
}
Apply apply = allApply.get(appId);
String theAppId = device.getAppId();
if (theAppId == null) {
log.info("no real valid appId...");
return false;
}
Apply apply = allApply.get(theAppId);
String appKey = apply.getAppKey();
String input = "app_id=" + appId + "&sn=" + sn + "&sn_bind=" + device.getSnBind();
String input = "app_id=" + theAppId + "&sn=" + sn + "&sn_bind=" + device.getSnBind();
String valSHA1 = HmacUtil.encrypt(input, appKey, HmacUtil.HMAC_SHA1).toUpperCase();
if (CommonUtil.toUpperCaseByEnglish(sign).equals(CommonUtil.toUpperCaseByEnglish(valSHA1))) {
return true;
......
......@@ -4,7 +4,11 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import iot.sixiang.license.model.BaseResult;
import iot.sixiang.license.model.ResResult;
import iot.sixiang.license.model.dto.*;
import iot.sixiang.license.model.dto.GetTerminalDeviceTokenDTO;
import iot.sixiang.license.model.dto.PlatFormBindDTO;
import iot.sixiang.license.model.dto.ReportErrorMsgDTO;
import iot.sixiang.license.model.dto.TerminalDevieBindDTO;
import iot.sixiang.license.model.dto.TerminalDevieUnBindDTO;
import iot.sixiang.license.service.TerminalDeviceService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
......@@ -22,23 +26,23 @@ public class TerminalDeviceController {
@Autowired
TerminalDeviceService terminalDeviceService;
// @GetMapping("/get_token")
// @ApiOperation(value = "终端设备获取token", notes = "终端设备获取token")
// public ResResult getToken(GetTerminalDeviceTokenDTO getTerminalDeviceTokenDTO) {
// return terminalDeviceService.getToken(getTerminalDeviceTokenDTO);
// }
@GetMapping("/get_token")
@ApiOperation(value = "终端设备获取token", notes = "终端设备获取token")
public ResResult getToken(GetTerminalDeviceTokenDTO getTerminalDeviceTokenDTO) {
return terminalDeviceService.getToken(getTerminalDeviceTokenDTO);
}
// @PostMapping("/report_error_msg")
// @ApiOperation(value = "终端设备上报错误信息", notes = "终端设备上报错误信息")
// public BaseResult reportErrorMsg(@RequestBody List<ReportErrorMsgDTO> reportErrorMsgDTO) {
// return terminalDeviceService.reportErrorMsg(reportErrorMsgDTO);
// }
@PostMapping("/report_error_msg")
@ApiOperation(value = "终端设备上报错误信息", notes = "终端设备上报错误信息")
public BaseResult reportErrorMsg(@RequestBody List<ReportErrorMsgDTO> reportErrorMsgDTO) {
return terminalDeviceService.reportErrorMsg(reportErrorMsgDTO);
}
// @PostMapping("/bind")
// @ApiOperation(value = "终端设备绑定接口", notes = "终端设备绑定接口")
// public BaseResult terminalDevieBind(@RequestBody TerminalDevieBindDTO terminalDevieBindDTO) {
// return terminalDeviceService.terminalDeviceBind(terminalDevieBindDTO);
// }
@PostMapping("/bind")
@ApiOperation(value = "终端设备绑定接口", notes = "终端设备绑定接口")
public BaseResult terminalDevieBind(@RequestBody TerminalDevieBindDTO terminalDevieBindDTO) {
return terminalDeviceService.terminalDeviceBind(terminalDevieBindDTO);
}
@PostMapping("/unbind")
@ApiOperation(value = "终端设备解绑接口", notes = "终端设备解绑接口")
......@@ -46,11 +50,11 @@ public class TerminalDeviceController {
return terminalDeviceService.terminalDeviceunBind(terminalDevieUnBindDTO);
}
// @GetMapping("/get_bind_status")
// @ApiOperation(value = "获取终端设备绑定状态接口", notes = "获取终端设备绑定状态接口")
// public ResResult getBindStatus(TerminalDevieUnBindDTO terminalDevieUnBindDTO) {
// return terminalDeviceService.getBindStatus(terminalDevieUnBindDTO);
// }
@GetMapping("/get_bind_status")
@ApiOperation(value = "获取终端设备绑定状态接口", notes = "获取终端设备绑定状态接口")
public ResResult getBindStatus(TerminalDevieUnBindDTO terminalDevieUnBindDTO) {
return terminalDeviceService.getBindStatus(terminalDevieUnBindDTO);
}
@PostMapping("/v2/bind")
@ApiOperation(value = "平台绑定设备sn接口", notes = "平台绑定设备sn接口")
......
......@@ -16,6 +16,9 @@ public class DeviceVo implements Serializable {
@ApiModelProperty("设备Id")
private int deviceId;
@ApiModelProperty("应用Id")
private String appId;
@ApiModelProperty("应用名")
private String appName;
......
......@@ -119,7 +119,9 @@ public class DeviceServiceImpl extends ServiceImpl<DeviceMapper, Device> impleme
queryWrapper.eq(Device::getSnBind, snBind).last("limit 1");
Device device = deviceMapper.selectOne(queryWrapper);
if (device != null) {
device.setSn(CommonUtil.genRandomNum(18));
if (snBind.equals(device.getSn())) {
device.setSn(null);
}
device.setSnBind(null);
device.setStatus(0);
device.setUpdateTime(new Date());
......
......@@ -3,7 +3,7 @@
<mapper namespace="iot.sixiang.license.mapper.DeviceMapper">
<select id="getDeviceList" resultType="iot.sixiang.license.model.vo.DeviceVo">
SELECT de.device_id,app_name,user_name,sn,sn_bind,de.status,de.create_time,de.update_time,de.device_id IN (select
SELECT de.device_id, de.app_id, app_name,user_name,sn,sn_bind,de.status,de.create_time,de.update_time,de.device_id IN (select
device_id from device_black) AS blackFlag FROM device AS de
JOIN apply AS app ON de.app_id = app.app_id
JOIN `user` AS us ON us.user_id = app.user_id
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment