工业级运维app手机api
沈斌
2017-10-20 10bc57b95993e571feb4e8f02e99eeca55898107
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
108
109
110
111
package com.moral.monitor.listener.quartz;
 
import cn.jiguang.common.ClientConfig;
import cn.jpush.api.JPushClient;
import cn.jpush.api.push.PushResult;
import cn.jpush.api.push.model.Platform;
import cn.jpush.api.push.model.PushPayload;
import cn.jpush.api.push.model.audience.Audience;
import cn.jpush.api.push.model.notification.Notification;
import com.moral.monitor.dao.TaskDao;
import com.moral.monitor.entity.Equipment;
import com.moral.monitor.entity.State;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
 
import javax.annotation.Resource;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
 
/**
 * Created by a on 2017/3/16.
 */
public class EquipmentCheck {
    @Resource
    TaskDao taskDao;
    private Logger logger = LoggerFactory.getLogger(EquipmentCheck.class);
    String MASTER_SECRET="980ec9da47076ff94e3b0f1a";
    String APP_KEY="3f115de9acc4860344a299ea";
 
    String MASTER_SECRET_IOS="";
    String APP_KEY_IOS="";
 
    public void check() {
        logger.warn("设备检测定时任务开始");
        long time = new Date().getTime();
        List<State> states = taskDao.selectFromstateGroupbymac();
        for (State state : states) {
            if (time - state.getTime().getTime() > 600000) {//10分钟
                String mac = state.getMac();
                taskDao.updateequipmentstate(0,mac);
                //极光推送致android 和 ios
                Equipment e = taskDao.selectFromequipment(mac);
                if (e==null){
                    continue;
                }
 
                String alais = e.getRepairman();
                String title="设备故障";
                String alert="设备"+e.getName()+"发生故障,请及时维修";
                HashMap<String, String> extras = new HashMap<String, String>();
 
                extras.put("id",String.valueOf(e.getId()));
                extras.put("name",e.getName());
                extras.put("address",e.getAddress());
                extras.put("mac",e.getMac());
 
                try {
                    JPushClient(alais,alert,title,extras,e);
                }catch (Exception exception){
                    logger.info("Error Message: " + exception.getMessage());
                }
            }
        }
    }
 
 
     public void JPushClient(String alias,String alert, String title, Map<String,String> extras,Equipment equipment){
         JPushClient jpushClient = new JPushClient(MASTER_SECRET, APP_KEY, null, ClientConfig.getInstance());
         //JPushClient jpushClient_IOS = new JPushClient(MASTER_SECRET_IOS, APP_KEY_IOS, null, ClientConfig.getInstance());
 
 
         PushPayload payload_android = buildPushObject_android_alias_alertWithTitle(alias,alert,title,extras);
         PushPayload pushload_ios = buildPushObject_ios_alias_alertWithTitle(alias,alert,extras);
 
         try {
             PushResult result1 = jpushClient.sendPush(payload_android);
             taskDao.insertToofflinelog(equipment.getName(),equipment.getAddress(),equipment.getRepairman());
             logger.info("极光android推送");
             PushResult result2 = jpushClient.sendPush(pushload_ios);
             logger.info(" 极光ios推送");
         }  catch (Exception e) {
             logger.error("极光推送失败,原因如下:", e);
         }
 
     }
 
 
    //构建推送对象:平台是 Android,目标是 alias 为 "alisename" 的设备,内容是 Android 通知 ALERT,并且标题为 TITLE。扩展数据为null
    public static PushPayload buildPushObject_android_alias_alertWithTitle(String alias,String alert, String title, Map<String,String> extras) {
        return PushPayload.newBuilder()
                .setPlatform(Platform.android())
                .setAudience(Audience.alias(alias))
                .setNotification(Notification.android(alert,title, extras))
                .build();
    }
 
 
    public static PushPayload buildPushObject_ios_alias_alertWithTitle(String alias,String alert, Map<String,String> extras) {
        return PushPayload.newBuilder()
                .setPlatform(Platform.ios())
                .setAudience(Audience.alias(alias))
                .setNotification(Notification.ios(alert,extras))
                .build();
    }
 
 
 
 
}