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;
|
}
|
}
|
|
}
|