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 (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); } else { DeviceActive updateDeviceActive = new DeviceActive(); updateDeviceActive.setId(da.getId()); updateDeviceActive.setUpdateTime(new Date()); updateDeviceActive.setVersionCode(deviceActive.getVersionCode()); 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.selectByDeviceAndPlatform(device, DeviceActive.PLATFORM_ANDROID); } else if ("ios".equalsIgnoreCase(platform)) { deviceActive = deviceActiveMapper.selectByDeviceToeknMd5AndPlatform(StringUtil.Md5(deviceToken), DeviceActive.PLATFORM_IOS); } return deviceActive; } }