package com.yeshi.fanli.service.impl.push;
|
|
import java.util.Date;
|
|
import javax.annotation.Resource;
|
|
import org.springframework.stereotype.Service;
|
|
import com.yeshi.fanli.dao.mybatis.push.DeviceActiveMapper;
|
import com.yeshi.fanli.entity.push.DeviceActive;
|
import com.yeshi.fanli.service.inter.push.DeviceActiveService;
|
import com.yeshi.fanli.util.StringUtil;
|
import com.yeshi.fanli.util.cmq.DouYinDeviceActiveCMQManager;
|
|
@Service
|
public class DeviceActiveServiceImpl implements DeviceActiveService {
|
@Resource
|
private DeviceActiveMapper deviceActiveMapper;
|
|
@Override
|
public void addDeviceActive(DeviceActive deviceActive) {
|
// 添加记录
|
if (deviceActive == null)
|
return;
|
if (deviceActive.getPlatform() == null)
|
return;
|
|
if (deviceActive.getVersionCode() == null)
|
return;
|
|
if (StringUtil.isNullOrEmpty(deviceActive.getDevice()))
|
return;
|
|
// Android的唯一标识为device
|
if (StringUtil.isNullOrEmpty(deviceActive.getDevice()))
|
return;
|
DeviceActive da = deviceActiveMapper.selectByDeviceAndPlatform(deviceActive.getDevice(),
|
deviceActive.getPlatform());
|
if (da == null) {
|
deviceActive.setId(null);
|
deviceActive.setUpdateTime(new Date());
|
deviceActive.setCreateTime(new Date());
|
if (!StringUtil.isNullOrEmpty(deviceActive.getDeviceToken())) {
|
deviceActive.setDeviceTokenMd5(StringUtil.Md5(deviceActive.getDeviceToken()));
|
}
|
|
deviceActiveMapper.insertSelective(deviceActive);
|
DouYinDeviceActiveCMQManager.getInstance().addDeviceActive(deviceActive.getDevice(),
|
deviceActive.getPlatform());
|
} else {
|
DeviceActive updateDeviceActive = new DeviceActive();
|
updateDeviceActive.setId(da.getId());
|
updateDeviceActive.setUpdateTime(new Date());
|
updateDeviceActive.setVersionCode(deviceActive.getVersionCode());
|
if (StringUtil.isNullOrEmpty(da.getImei()))
|
updateDeviceActive.setImei(deviceActive.getImei());
|
if (!StringUtil.isNullOrEmpty(deviceActive.getDeviceToken())) {
|
updateDeviceActive.setDeviceToken(deviceActive.getDeviceToken());
|
updateDeviceActive.setDeviceTokenMd5(StringUtil.Md5(deviceActive.getDeviceToken()));
|
}
|
deviceActiveMapper.updateByPrimaryKeySelective(updateDeviceActive);
|
}
|
|
}
|
|
/**
|
*
|
* @param device
|
* 设备号
|
* @param platform
|
* 平台类型
|
* @return
|
*/
|
@Override
|
public DeviceActive getDeviceByDeviceAndPlatform(String device, String deviceToken, String platform) {
|
|
DeviceActive deviceActive = null;
|
if ("android".equalsIgnoreCase(platform)) {
|
|
deviceActive = deviceActiveMapper.selectFirstByDeviceAndPlatform(device, DeviceActive.PLATFORM_ANDROID);
|
|
} else if ("ios".equalsIgnoreCase(platform)) {
|
|
deviceActive = deviceActiveMapper.selectFirstByDeviceAndPlatform(device, DeviceActive.PLATFORM_IOS);
|
|
}
|
|
return deviceActive;
|
}
|
|
@Override
|
public DeviceActive getFirstActiveInfo(String device) {
|
return deviceActiveMapper.selectFirst(device);
|
}
|
|
@Override
|
public DeviceActive getFirstActiveInfoByImei(String imei) {
|
return deviceActiveMapper.selectFirstByImei(imei);
|
}
|
|
}
|