perf:fwd钉钉群消息发送

This commit is contained in:
Zhujx
2025-08-07 10:36:20 +08:00
parent 443267a51b
commit df1e58eb9d
10 changed files with 87 additions and 23 deletions

View File

@@ -11,7 +11,7 @@
</parent>
<groupId>com.xiang</groupId>
<version>1.0-SNAPSHOT</version>
<version>1.0</version>
<packaging>jar</packaging>
<artifactId>script</artifactId>

View File

@@ -5,16 +5,20 @@ import com.alibaba.fastjson.JSONObject;
import com.google.common.collect.Maps;
import com.xiang.xservice.basic.utils.DateUtils;
import com.xiang.xservice.basic.utils.PrimaryKeyUtils;
import com.xiang.xservice.basic.xservice.dingTalk.service.DingTalkService;
import com.xiang.xservice.fwd.entity.param.FwdOrderTaskParam;
import com.xiang.xservice.fwd.entity.pojo.FPerformConfig;
import com.xiang.xservice.fwd.entity.pojo.FPerformProjectInfo;
import com.xiang.xservice.fwd.entity.pojo.FPerformSeatInfo;
import com.xiang.xservice.fwd.entity.resp.http.perform.*;
import com.xiang.xservice.fwd.entity.resp.http.perform.Perform;
import com.xiang.xservice.fwd.entity.resp.http.perform.PerformDetail;
import com.xiang.xservice.fwd.entity.resp.http.perform.PerformInfo;
import com.xiang.xservice.fwd.entity.resp.http.perform.SeatPlan;
import com.xiang.xservice.fwd.entity.resp.http.perform.SeatPlanStatus;
import com.xiang.xservice.fwd.mapper.FwdAudienceConfigMapper;
import com.xiang.xservice.fwd.mapper.FwdPerformConfigMapper;
import com.xiang.xservice.fwd.mapper.FwdPerformProjectInfoMapper;
import com.xiang.xservice.fwd.mapper.FwdUserConfigMapper;
import com.xiang.xservice.fwd.service.DingTalkFWDMsgService;
import com.xiang.xservice.fwd.service.IPerformService;
import com.xiang.xservice.fwd.service.IPerformServiceHttp;
import com.xiang.xservice.schedule.core.DynamicTaskScheduler;
@@ -58,7 +62,7 @@ public class FwdImportantMsgJob {
private final FwdPerformProjectInfoMapper performProjectInfoMapper;
private final FwdPerformConfigMapper performConfigMapper;
private final DynamicTaskScheduler dynamicTaskScheduler;
private final DingTalkService dingTalkService;
private final DingTalkFWDMsgService dingTalkFWDMsgService;
private final FwdUserConfigMapper fwdUserConfigMapper;
private final FwdAudienceConfigMapper fwdAudienceConfigMapper;
private final IPerformService iPerformService;
@@ -128,7 +132,7 @@ public class FwdImportantMsgJob {
savaTask(data, taskId, params);
}
msg.append("请注意进行数据库配置的更改!");
dingTalkService.sendRobotMessage(msg.toString());
dingTalkFWDMsgService.sendFWDMsg(msg.toString());
log.info("【芬玩岛】演唱会预售定时任务结束time:{}", System.currentTimeMillis());
}
@@ -225,12 +229,7 @@ public class FwdImportantMsgJob {
}
}
});
try {
dingTalkService.sendRobotMessage(msg.toString());
} catch (Exception e) {
log.error("信息发送异常, 信息:{}", msg, e);
}
dingTalkFWDMsgService.sendFWDMsg(msg.toString());
}
private void savaTask(FPerformProjectInfo data, long taskId, Map<String, Object> params) {

View File

@@ -0,0 +1,35 @@
package com.xiang.xservice.fwd.service;
import com.xiang.xservice.basic.xservice.dingTalk.service.DingTalkService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @Author: xiang
* @Date: 2025-08-07 10:30
*/
@Slf4j
@Service
@RequiredArgsConstructor
public class DingTalkFWDMsgService {
private final DingTalkService dingTalkService;
private static final String SECRET = "SEC768ed578c0fb31a9aec84b1c1db4f195f5aca203985bbb9d549e23e41c8874d1";
private static final String TOKEN = "4709b708d961846e0aee523c5abc3b67e8fa424ee292501d85efd4e504f15a8b";
private static final String USER_ID = "450841600726084717";
/**
* 发送芬玩岛消息
* @param msg 消息
*/
public void sendFWDMsg(String msg) {
try {
dingTalkService.sendRobotMessage(SECRET, TOKEN, List.of(USER_ID), msg);
} catch (Exception e) {
log.error("信息发送异常, 信息:{}", msg, e);
}
}
}

View File

@@ -2,7 +2,6 @@ package com.xiang.xservice.fwd.service.impl;
import com.alibaba.fastjson2.JSONObject;
import com.xiang.xservice.basic.config.MyThreadFactory;
import com.xiang.xservice.basic.xservice.dingTalk.service.DingTalkService;
import com.xiang.xservice.fwd.entity.pojo.FPerformConfig;
import com.xiang.xservice.fwd.entity.pojo.FPerformProjectInfo;
import com.xiang.xservice.fwd.entity.pojo.FPerformSeatInfo;
@@ -13,6 +12,7 @@ import com.xiang.xservice.fwd.mapper.FwdPerformConfigMapper;
import com.xiang.xservice.fwd.mapper.FwdPerformProjectInfoMapper;
import com.xiang.xservice.fwd.mapper.FwdPerformSeatInfoMapper;
import com.xiang.xservice.fwd.mapper.FwdUserConfigMapper;
import com.xiang.xservice.fwd.service.DingTalkFWDMsgService;
import com.xiang.xservice.fwd.service.IPerformService;
import com.xiang.xservice.fwd.service.IPerformServiceHttp;
import com.xiang.xservice.http.helper.HttpRequestHelper;
@@ -45,7 +45,7 @@ public class PerformServiceImpl implements IPerformService {
private final FwdPerformProjectInfoMapper fwdPerformProjectInfoMapper;
private final FwdPerformConfigMapper fwdPerformConfigMapper;
private final IPerformServiceHttp performServiceHttp;
private final DingTalkService dingTalkService;
private final DingTalkFWDMsgService dingTalkService;
private final FwdUserConfigMapper fwdUserConfigMapper;
@Value("${DingTalk.chatId}")
private String chatId;
@@ -110,7 +110,7 @@ public class PerformServiceImpl implements IPerformService {
if (Objects.nonNull(projectOrder)) {
log.info("下单成功,订单信息:{}", JSONObject.toJSONString(projectOrder));
String msg = "【芬玩岛】下单成功✅✅✅,演出名称:" + performByProjectId.getProjectName() + "请在2分钟内完成付款";
dingTalkService.sendRobotMessage(msg);
dingTalkService.sendFWDMsg(msg);
return Boolean.TRUE;
}
}

View File

@@ -19,6 +19,7 @@ import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.Objects;
@@ -136,6 +137,8 @@ public class FundMsgReportJob {
}
private static void buildMsg(List<FundList> funds, Map<String, XbFundList> fundMap, StringBuilder msg) {
funds = funds.stream().sorted(Comparator.comparing(FundList::getChange).reversed())
.collect(Collectors.toList());
for (FundList fund : funds) {
if (fundMap.containsKey(fund.getCode())) {
XbFundList fundList = fundMap.get(fund.getCode());

View File

@@ -21,3 +21,14 @@ aliyun:
dns:
RR:
- local
DingTalk:
# 钉钉消息用户,用逗号隔开
userList: "450841600726084717"
# 钉钉消息群ID需要调用/chat/create api创建群返回
chatId: "chatd16d8daeea33b36b73588c676d508096"
robot:
token: ad21ead99f0fdc63aa00d6732b7b0888c17590f7612c68297edfcb71844d1437
secret: SECc09d8aad6635f1a4cbadb7c0ab365523c46299f138438cd885e445e0f5f4d730
userIds:
- 450841600726084717

View File

@@ -21,4 +21,15 @@ aliyun:
dns:
RR:
- client
- file
- file
DingTalk:
# 钉钉消息用户,用逗号隔开
userList: "450841600726084717"
# 钉钉消息群ID需要调用/chat/create api创建群返回
chatId: "chatd16d8daeea33b36b73588c676d508096"
robot:
token: 340a9d39a5b0b6a52ba2262f9c27179cf50e3c8cfe6883ca082649d306038f41
secret: SECe10ade3058880b84df5c6f46ab072c11f4ac2a5ef9f134d684705c2a3b004de2
userIds:
- 450841600726084717

View File

@@ -20,4 +20,15 @@ spring:
aliyun:
dns:
RR:
- test
- test
DingTalk:
# 钉钉消息用户,用逗号隔开
userList: "450841600726084717"
# 钉钉消息群ID需要调用/chat/create api创建群返回
chatId: "chatd16d8daeea33b36b73588c676d508096"
robot:
token: ad21ead99f0fdc63aa00d6732b7b0888c17590f7612c68297edfcb71844d1437
secret: SECc09d8aad6635f1a4cbadb7c0ab365523c46299f138438cd885e445e0f5f4d730
userIds:
- 450841600726084717

View File

@@ -5,12 +5,6 @@ mybatis:
configuration:
map-underscore-to-camel-case: true
DingTalk:
# 钉钉消息用户,用逗号隔开
userList: "450841600726084717"
# 钉钉消息群ID需要调用/chat/create api创建群返回
chatId: "chatd16d8daeea33b36b73588c676d508096"
xiaobei:
unionId: o896o5y8bJZYMh2gdKhDdmUKc0Wk
codeArr: "010364, 022150, 013224, 008960, 013841, 015528, 012414, 020412, 014662, 016814, 014422, 015596, 007844,