瀏覽代碼

营销系统-推送调用go服务

wangcl 4 天之前
父節點
當前提交
e0ace1cde3

+ 4 - 5
pig-marketing/pig-marketing-api/src/main/java/com/pig4cloud/pig/marketing/api/dto/go/GoPushRequest.java

@@ -4,7 +4,6 @@ import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
 import java.io.Serializable;
-import java.util.List;
 
 @Data
 @Schema(description = "Go 推送请求体")
@@ -13,11 +12,11 @@ public class GoPushRequest implements Serializable {
     @Schema(description = "客户端ID")
     private String clientId;
 
-    @Schema(description = "推送动作/方式")
-    private String pushAction;
+    @Schema(description = "推送动作/方式,整型")
+    private Integer action;
 
-    @Schema(description = "数据列表")
-    private List<GoPushDataItem> data;
+    @Schema(description = "推送内容")
+    private String data;
 }
 
 

+ 1 - 1
pig-marketing/pig-marketing-biz/src/main/java/com/pig4cloud/pig/marketing/feign/GoPushClient.java

@@ -5,7 +5,7 @@ import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.http.MediaType;
 import org.springframework.web.bind.annotation.PostMapping;
 
-@FeignClient(value = "GoServer-prod", contextId = "goPushClient", path = "/api/push")
+@FeignClient(name = "goPushClient", url = "${go.push.base-url}", path = "/api/push")
 public interface GoPushClient {
 
     @PostMapping(value = "/client", consumes = MediaType.APPLICATION_JSON_VALUE)

+ 8 - 13
pig-marketing/pig-marketing-biz/src/main/java/com/pig4cloud/pig/marketing/service/impl/MktMgmtHandPushServiceImpl.java

@@ -4,27 +4,26 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.pig4cloud.pig.marketing.api.dto.MktMgmtHandPushQueryDTO;
 import com.pig4cloud.pig.marketing.api.dto.MktMgmtPushRecordSaveDTO;
-import com.pig4cloud.pig.marketing.api.dto.config.SaveGlobalRuleDTO;
 import com.pig4cloud.pig.marketing.api.dto.config.PushAPPDTO;
+import com.pig4cloud.pig.marketing.api.dto.config.SaveGlobalRuleDTO;
+import com.pig4cloud.pig.marketing.api.dto.go.GoPushRequest;
 import com.pig4cloud.pig.marketing.api.entity.MktMgmtPushRecord;
 import com.pig4cloud.pig.marketing.api.entity.mongo.Device;
 import com.pig4cloud.pig.marketing.api.service.MktMgmtHandPushService;
 import com.pig4cloud.pig.marketing.api.vo.rule.push.HandPushVO;
 import com.pig4cloud.pig.marketing.config.PushValidationConfig;
+import com.pig4cloud.pig.marketing.feign.GoPushClient;
 import com.pig4cloud.pig.marketing.mapper.MktMgmtPushRecordMapper;
 import com.pig4cloud.pig.marketing.service.MarketingConfigService;
 import com.pig4cloud.pig.marketing.service.TcpDataService;
-import com.pig4cloud.pig.marketing.feign.GoPushClient;
-import com.pig4cloud.pig.marketing.api.dto.go.GoPushRequest;
-import com.pig4cloud.pig.marketing.api.dto.go.GoPushDataItem;
 import com.pig4cloud.pig.marketing.util.DeviceInfoUtil;
 import com.pig4cloud.pig.marketing.util.IPLocationUtil;
 import com.pig4cloud.pig.marketing.util.PushFrequencyUtil;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Lazy;
-import org.springframework.beans.BeanUtils;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
 import org.springframework.util.StringUtils;
@@ -208,7 +207,7 @@ public class MktMgmtHandPushServiceImpl implements MktMgmtHandPushService {
             if (result > 0) {
                 log.info("手动推送成功,推送内容:{},客户端ID:{}", saveDTO.getPushContent(), saveDTO.getClientId());
                 // 调用 Go 服务
-                sendToGoService(saveDTO.getClientId(), String.valueOf(pushRecord.getPushAction()), saveDTO.getPushContent());
+                sendToGoService(saveDTO.getClientId(), String.valueOf(pushRecord.getPushAction()), globalRule.getPushContent());
                 return "手动推送成功";
             } else {
                 return "手动推送失败,数据库保存异常";
@@ -222,15 +221,11 @@ public class MktMgmtHandPushServiceImpl implements MktMgmtHandPushService {
 
     private void sendToGoService(String clientId, String pushAction, String content) {
         try {
-            GoPushDataItem item = new GoPushDataItem();
-            item.setTitle("消息");
-            item.setMsg(content);
-
             GoPushRequest req = new GoPushRequest();
             req.setClientId(clientId);
-            req.setPushAction(pushAction);
-            req.setData(java.util.List.of(item));
-
+            req.setAction(Integer.valueOf(pushAction));
+            req.setData(content);
+			log.info("Go 服务请求: {}", req);
             String resp = goPushClient.receive(req);
             log.info("Go 服务响应: {}", resp);
         } catch (Exception e) {

+ 7 - 16
pig-marketing/pig-marketing-biz/src/main/java/com/pig4cloud/pig/marketing/service/impl/MktMgmtPushRecordServiceImpl.java

@@ -8,7 +8,6 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.pig4cloud.pig.marketing.api.dto.MktMgmtPushRecordQueryDTO;
 import com.pig4cloud.pig.marketing.api.dto.MktMgmtPushRecordSaveDTO;
-import com.pig4cloud.pig.marketing.api.dto.go.GoPushDataItem;
 import com.pig4cloud.pig.marketing.api.dto.go.GoPushRequest;
 import com.pig4cloud.pig.marketing.api.entity.*;
 import com.pig4cloud.pig.marketing.api.vo.rule.StatKeywordVO;
@@ -204,21 +203,13 @@ public class MktMgmtPushRecordServiceImpl implements MktMgmtPushRecordService {
 
     private void sendToGoService(String clientId, String pushAction, String content) {
         try {
-            GoPushDataItem item = new GoPushDataItem();
-			if ("1".equals(pushAction)){
-				item.setTitle("ping");
-			}else {
-				item.setTitle("消息");
-			}
-            item.setMsg(content);
-
-            GoPushRequest req = new GoPushRequest();
-            req.setClientId(clientId);
-            req.setPushAction(pushAction);
-            req.setData(List.of(item));
-
-            String resp = goPushClient.receive(req);
-            log.info("Go 服务响应: {}", resp);
+			GoPushRequest req = new GoPushRequest();
+			req.setClientId(clientId);
+			req.setAction(Integer.valueOf(pushAction));
+			req.setData(content);
+			log.info("Go 服务请求: {}", req);
+			String resp = goPushClient.receive(req);
+			log.info("Go 服务响应: {}", resp);
         } catch (Exception e) {
             log.warn("调用Go服务失败: {}", e.getMessage(), e);
         }