admin
2020-05-19 744594ef1a2f530fc3e86ea9dc48b62247f79420
fanli/src/main/java/com/yeshi/fanli/service/impl/push/DeviceActiveServiceImpl.java
@@ -10,6 +10,7 @@
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 {
@@ -27,59 +28,80 @@
      if (deviceActive.getVersionCode() == null)
         return;
      if (deviceActive.getPlatform() == DeviceActive.PLATFORM_ANDROID
            && StringUtil.isNullOrEmpty(deviceActive.getDevice()))
      if (StringUtil.isNullOrEmpty(deviceActive.getDevice()))
         return;
      if (deviceActive.getPlatform() == DeviceActive.PLATFORM_IOS
            && StringUtil.isNullOrEmpty(deviceActive.getDeviceToken()))
      // Android的唯一标识为device
      if (StringUtil.isNullOrEmpty(deviceActive.getDevice()))
         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 da = deviceActiveMapper.selectByDeviceAndPlatform(deviceActive.getDevice(),
            deviceActive.getPlatform());
      if (da == null) {
         deviceActive.setId(null);
         if (deviceActive.getUpdateTime() == null)
            deviceActive.setUpdateTime(new Date());
         if (deviceActive.getCreateTime() == null)
            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);
         if (!StringUtil.isNullOrEmpty(deviceActive.getDeviceToken())) {
            deviceActive.setDeviceTokenMd5(StringUtil.Md5(deviceActive.getDeviceToken()));
         }
         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(),
         deviceActiveMapper.insertSelective(deviceActive);
         DouYinDeviceActiveCMQManager.getInstance().addDeviceActive(deviceActive.getDevice(),
               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);
      } 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()));
         }
         break;
      default:
         return;
         if (StringUtil.isNullOrEmpty(da.getMac()))
            updateDeviceActive.setMac(deviceActive.getMac());
         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);
   }
}