Compare commits

..

No commits in common. "790404cf5e65f886fac3d23aa6fc35edb9853836" and "77759c3a316a2adabd2fc3e2d99f54b40f5315e6" have entirely different histories.

3 changed files with 21 additions and 49 deletions

View File

@ -1,11 +0,0 @@
package com.kimgo.wepush.exceptions;
public class DatabaseQueryException extends Exception {
public DatabaseQueryException(String message) {
super(message);
}
public DatabaseQueryException(String message, Throwable cause) {
super(message, cause);
}
}

View File

@ -2,53 +2,40 @@ package com.kimgo.wepush.service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.kimgo.wepush.exceptions.DatabaseQueryException;
import com.kimgo.wepush.mapper.DeviceInfoDAOMapper;
import com.kimgo.wepush.model.DeviceInfo;
import com.kimgo.wepush.model.DeviceInfoDAO;
import com.kimgo.wepush.response.ServerResponseEntity;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class HeartBeatService {
private final Logger logger = LoggerFactory.getLogger(HeartBeatService.class);
private final long TIME_OUT_PERIOD = 600;
private final TokenService tokenService;
private final DeviceInfoDAOMapper deviceInfoDAOMapper;
public HeartBeatService(TokenService tokenService, DeviceInfoDAOMapper deviceInfoDAOMapper) {
this.tokenService = tokenService;
this.deviceInfoDAOMapper = deviceInfoDAOMapper;
}
public ServerResponseEntity handleHeartbeatSignal(String accessToken, DeviceInfo deviceInfo) {
@Autowired
TokenService tokenService;
@Autowired
private DeviceInfoDAOMapper deviceInfoDAOMapper;
public ServerResponseEntity handleHeartbeatSignal(String accessToken,DeviceInfo deviceInfo) {
String correctAccessToken = tokenService.getApiAccessToken();
logger.info("accessToken: {} correctAccessToken: {}", accessToken, correctAccessToken);
if (!correctAccessToken.equals(accessToken)) {
logger.info("accessToken: {} correctAccessToken: {}",accessToken,correctAccessToken);
if (!correctAccessToken.equals(accessToken)){
return ServerResponseEntity.fail("Invalid accessToken");
}
try {
DeviceInfoDAO deviceInfoDAO = getDeviceInfoBySN(deviceInfo.getSN());
if (deviceInfoDAO == null) {
// 设备信息不存在,可能是无效的设备
logger.info("device not find,start add device to mysql.");
boolean isSuccess = addDeviceInfo(deviceInfo);
if (isSuccess) {
return ServerResponseEntity.success();
} else {
logger.info("add to mysql error");
return ServerResponseEntity.fail("server error,please check log.");
}
DeviceInfoDAO deviceInfoDAO = getDeviceInfoBySN(deviceInfo.getSN());
logger.info("deviceInfoDAO: {}",deviceInfoDAO);
if (deviceInfoDAO == null) {
// 设备信息不存在,可能是无效的设备
logger.info("device not find,start add device to mysql.");
boolean isSuccess = addDeviceInfo(deviceInfo);
if (isSuccess){
return ServerResponseEntity.success();
} else {
logger.info("add to mysql error");
}
} catch (DatabaseQueryException e) {
// 处理查询失败的情况
logger.error("Database query failed.", e);
return ServerResponseEntity.fail("Database query failed");
} catch (Exception e) {
logger.error("update client status error.");
return ServerResponseEntity.fail("Error updating client status");
}
try {
updateClientStatus(deviceInfo);
@ -78,11 +65,10 @@ public class HeartBeatService {
}
public boolean addDeviceInfo(DeviceInfo deviceInfo) {
logger.info("start add device. device info: {}", deviceInfo);
try {
DeviceInfoDAO deviceInfoDAO = convertToDeviceInfoDAO(deviceInfo);
int result = deviceInfoDAOMapper.insert(deviceInfoDAO);
logger.info("result: {}", result);
logger.info("result: {}",result);
return result > 0;
} catch (Exception e) {
logger.error("Error adding device info", e);
@ -96,7 +82,7 @@ public class HeartBeatService {
* @param SN SN
* @return androidId DeviceInfoDAO null
*/
public DeviceInfoDAO getDeviceInfoBySN(String SN) throws DatabaseQueryException {
public DeviceInfoDAO getDeviceInfoBySN(String SN) {
QueryWrapper<DeviceInfoDAO> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("sn", SN);
try {
@ -105,11 +91,10 @@ public class HeartBeatService {
logger.info("Data is queried in the database based on the SN");
return deviceInfoDAO;
}
return null; // 数据不存在
} catch (Exception e) {
logger.error("Error querying device info by SN", e);
throw new DatabaseQueryException("Error querying device info by SN", e);
}
return null;
}

View File

@ -14,12 +14,10 @@ class HeartBeatServiceTest {
@Test
void updateClientStatus() {
DeviceInfo deviceInfo = new DeviceInfo();
System.out.printf(deviceInfo.toString());
}
@Test
void addDeviceInfo() {
DeviceInfo deviceInfo = new DeviceInfo();
System.out.printf(deviceInfo.toString());
}
}