diff --git a/ruoyi-admin/pom.xml b/ruoyi-admin/pom.xml
index 924518fac..44f3555a0 100644
--- a/ruoyi-admin/pom.xml
+++ b/ruoyi-admin/pom.xml
@@ -121,6 +121,14 @@
3.5.1
+
+
+
+ com.getui.push
+ restful-sdk
+ 1.0.5.0
+
+
diff --git a/ruoyi-admin/src/main/java/org/dromara/DromaraApplication.java b/ruoyi-admin/src/main/java/org/dromara/DromaraApplication.java
index 8ef33fe5f..a45b40b96 100644
--- a/ruoyi-admin/src/main/java/org/dromara/DromaraApplication.java
+++ b/ruoyi-admin/src/main/java/org/dromara/DromaraApplication.java
@@ -3,6 +3,7 @@ package org.dromara;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.metrics.buffering.BufferingApplicationStartup;
+import org.springframework.scheduling.annotation.EnableScheduling;
/**
* 启动程序
@@ -10,6 +11,7 @@ import org.springframework.boot.context.metrics.buffering.BufferingApplicationSt
* @author Lion Li
*/
+@EnableScheduling
@SpringBootApplication
public class DromaraApplication {
diff --git a/ruoyi-admin/src/main/java/org/dromara/web/config/GeTuiConfig.java b/ruoyi-admin/src/main/java/org/dromara/web/config/GeTuiConfig.java
new file mode 100644
index 000000000..968ecebb6
--- /dev/null
+++ b/ruoyi-admin/src/main/java/org/dromara/web/config/GeTuiConfig.java
@@ -0,0 +1,42 @@
+package org.dromara.web.config;
+
+import com.getui.push.v2.sdk.ApiHelper;
+import com.getui.push.v2.sdk.GtApiConfiguration;
+import com.getui.push.v2.sdk.api.PushApi;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+
+public class GeTuiConfig {
+
+ @Value("${getui.baseUrl}")
+ private String baseUrl;
+
+ @Value("${getui.appId}")
+ private String appId;
+
+ @Value("${getui.appKey}")
+ private String appKey;
+
+ @Value("${getui.appSecret}")
+ private String appSecret;
+
+ @Value("${getui.masterSecret}")
+ private String masterSecret;
+
+ @Bean(name = "pushApi")
+ public PushApi pushApi() {
+ GtApiConfiguration apiConfiguration = new GtApiConfiguration();
+ //填写应用配置
+ apiConfiguration.setAppId(appId);
+ apiConfiguration.setAppKey(appKey);
+ apiConfiguration.setMasterSecret(masterSecret);
+ // 接口调用前缀,请查看文档: 接口调用规范 -> 接口前缀, 可不填写appId
+ apiConfiguration.setDomain(baseUrl);
+ // 实例化ApiHelper对象,用于创建接口对象
+ ApiHelper apiHelper = ApiHelper.build(apiConfiguration);
+ // 创建对象,建议复用。目前有PushApi、StatisticApi、UserApi
+ PushApi pushApi = apiHelper.creatApi(PushApi.class);
+ return pushApi;
+ }
+
+}
diff --git a/ruoyi-admin/src/main/java/org/dromara/web/domain/vo/EqUserEquipmentVo.java b/ruoyi-admin/src/main/java/org/dromara/web/domain/vo/EqUserEquipmentVo.java
index f06531828..11c5978ec 100644
--- a/ruoyi-admin/src/main/java/org/dromara/web/domain/vo/EqUserEquipmentVo.java
+++ b/ruoyi-admin/src/main/java/org/dromara/web/domain/vo/EqUserEquipmentVo.java
@@ -41,6 +41,12 @@ public class EqUserEquipmentVo implements Serializable {
@ExcelProperty(value = "绑定账号")
private String userName;
+ /**
+ * 帐号状态(0正常 1停用)
+ */
+ @ExcelProperty(value = "账号状态")
+ private String status;
+
/**
* 绑定设备(个)
*/
diff --git a/ruoyi-admin/src/main/java/org/dromara/web/msg/Msg.java b/ruoyi-admin/src/main/java/org/dromara/web/msg/Msg.java
new file mode 100644
index 000000000..b16a4865f
--- /dev/null
+++ b/ruoyi-admin/src/main/java/org/dromara/web/msg/Msg.java
@@ -0,0 +1,19 @@
+package org.dromara.web.msg;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @ClassName : Msg
+ * @Author : ZZC
+ * @Date : 2024/10/20 20:39
+ * @Description :
+ **/
+@Data
+public class Msg implements Serializable {
+ private String cid;
+ private String title;
+ private String content;
+ private String uid;
+}
diff --git a/ruoyi-admin/src/main/java/org/dromara/web/msg/PushUtils.java b/ruoyi-admin/src/main/java/org/dromara/web/msg/PushUtils.java
new file mode 100644
index 000000000..0edeaa9a4
--- /dev/null
+++ b/ruoyi-admin/src/main/java/org/dromara/web/msg/PushUtils.java
@@ -0,0 +1,150 @@
+package org.dromara.web.msg;
+
+import com.getui.push.v2.sdk.api.PushApi;
+import com.getui.push.v2.sdk.api.UserApi;
+import com.getui.push.v2.sdk.common.ApiResult;
+import com.getui.push.v2.sdk.dto.CommonEnum;
+import com.getui.push.v2.sdk.dto.req.Audience;
+import com.getui.push.v2.sdk.dto.req.Settings;
+import com.getui.push.v2.sdk.dto.req.Strategy;
+import com.getui.push.v2.sdk.dto.req.message.PushChannel;
+import com.getui.push.v2.sdk.dto.req.message.PushDTO;
+import com.getui.push.v2.sdk.dto.req.message.PushMessage;
+import com.getui.push.v2.sdk.dto.req.message.android.AndroidDTO;
+import com.getui.push.v2.sdk.dto.req.message.android.ThirdNotification;
+import com.getui.push.v2.sdk.dto.req.message.android.Ups;
+import com.getui.push.v2.sdk.dto.req.message.ios.Alert;
+import com.getui.push.v2.sdk.dto.req.message.ios.Aps;
+import com.getui.push.v2.sdk.dto.req.message.ios.IosDTO;
+import com.google.common.collect.Sets;
+import org.dromara.common.core.domain.R;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import javax.annotation.Resource;
+import java.util.HashMap;
+import java.util.Map;
+
+public class PushUtils {
+
+ @Resource
+ PushApi pushApi;
+
+ UserApi userApi;
+
+ /**
+ * 查询用户状态
+ *
+ * @param cid 客户端标识
+ */
+ public void queryUserStatus(String cid) {
+ System.out.println(userApi.queryUserStatus(Sets.newHashSet(cid)));
+ }
+
+ /**
+ * 根据CID单推
+ *
+ * @throws InterruptedException
+ */
+ public R