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;
|
|
@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 (deviceActive.getPlatform() == DeviceActive.PLATFORM_ANDROID
|
&& StringUtil.isNullOrEmpty(deviceActive.getDevice()))
|
return;
|
|
if (deviceActive.getPlatform() == DeviceActive.PLATFORM_IOS
|
&& StringUtil.isNullOrEmpty(deviceActive.getDeviceToken()))
|
return;
|
|
switch (deviceActive.getPlatform()) {
|
case DeviceActive.PLATFORM_ANDROID:
|
// 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());
|
deviceActiveMapper.insertSelective(deviceActive);
|
} else {
|
DeviceActive updateDeviceActive = new DeviceActive();
|
updateDeviceActive.setId(da.getId());
|
updateDeviceActive.setUpdateTime(new Date());
|
updateDeviceActive.setVersionCode(deviceActive.getVersionCode());
|
deviceActiveMapper.updateByPrimaryKeySelective(updateDeviceActive);
|
}
|
|
break;
|
case DeviceActive.PLATFORM_IOS:
|
// IOS的设备标识为deviceToken
|
if (StringUtil.isNullOrEmpty(deviceActive.getDeviceToken()))
|
return;
|
deviceActive.setDeviceTokenMd5(StringUtil.Md5(deviceActive.getDeviceToken()));
|
DeviceActive da1 = deviceActiveMapper.selectByDeviceToeknMd5AndPlatform(deviceActive.getDeviceTokenMd5(),
|
deviceActive.getPlatform());
|
if (da1 == null) {
|
deviceActive.setId(null);
|
deviceActive.setUpdateTime(new Date());
|
deviceActive.setCreateTime(new Date());
|
deviceActiveMapper.insertSelective(deviceActive);
|
} else {
|
DeviceActive updateDeviceActive = new DeviceActive();
|
updateDeviceActive.setId(da1.getId());
|
updateDeviceActive.setUpdateTime(new Date());
|
updateDeviceActive.setVersionCode(deviceActive.getVersionCode());
|
deviceActiveMapper.updateByPrimaryKeySelective(updateDeviceActive);
|
}
|
|
break;
|
default:
|
return;
|
}
|
}
|
|
|
/**
|
*
|
* @param device 设备号
|
* @param platform 平台类型
|
* @return
|
*/
|
@Override
|
public DeviceActive getDeviceByDeviceAndPlatform(String device, String deviceToken, String platform) {
|
|
DeviceActive deviceActive = null;
|
if ("android".equalsIgnoreCase(platform)) {
|
|
deviceActive = deviceActiveMapper.selectByDeviceAndPlatform(device, DeviceActive.PLATFORM_ANDROID);
|
|
} else if ("ios".equalsIgnoreCase(platform)) {
|
|
deviceActive = deviceActiveMapper.selectByDeviceToeknMd5AndPlatform(StringUtil.Md5(deviceToken),
|
DeviceActive.PLATFORM_IOS);
|
|
}
|
|
return deviceActive;
|
}
|
|
}
|