admin
2019-10-11 6d33f770806ef059629b94cf74cb48a09b86502c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
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);
            if (deviceActive.getUpdateTime() == null)
                deviceActive.setUpdateTime(new Date());
            if (deviceActive.getCreateTime() == null)
                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()));
            }
 
            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);
    }
 
}