这是一个基于 Spring Boot 的钉钉消息推送系统,名为 dingtalk。该系统通过钉钉开放平台 API 实现了定时消息推送、用户管理、以及设备数据提醒等功能。
src/
├── main/
│ ├── java/com/gs/dingtalk/
│ │ ├── DingtalkApplication.java # Spring Boot 启动类
│ │ ├── config/
│ │ │ ├── DataAcquisitionConfiguration.java # 钉钉应用配置(AppKey、AppSecret等)
│ │ │ ├── ResultMessage.java # 统一响应消息格式
│ │ │ └── URLEncoder.java # URL编码工具类
│ │ ├── controller/
│ │ │ └── KMController.java # 消息发送控制层
│ │ ├── dto/
│ │ │ ├── ApiResponseCode.java # API响应码
│ │ │ ├── DingTalkMessage.java # 钉钉消息 DTO
│ │ │ ├── DingTalkResponse.java # 钉钉响应 DTO
│ │ │ └── Result.java # 统一返回结果
│ │ ├── entity/
│ │ │ ├── MesQaDingtalk.java # 质量检测钉钉消息实体
│ │ │ ├── SendDingtalk.java # 钉钉用户实体
│ │ │ └── SendMessage.java # 消息发送实体
│ │ ├── mapper/
│ │ │ ├── MesQaDingtalkMapper.java # 质量检测钉钉消息数据访问层
│ │ │ ├── SendDingtalkMapper.java # 钉钉用户数据访问层
│ │ │ └── SendMessageMapper.java # 消息发送数据访问层
│ │ ├── service/
│ │ │ ├── MesQaDingtalkService.java # 质量检测钉钉服务接口
│ │ │ ├── SendDingtalkService.java # 钉钉服务接口
│ │ │ ├── SendMessageService.java # 消息服务接口
│ │ │ ├── SimpleExample.java # 钉钉消息发送实现
│ │ │ └── impl/
│ │ │ ├── MesQaDingtalkServiceImpl.java # 质量检测钉钉服务实现
│ │ │ ├── SendDingtalkServiceImpl.java # 钉钉服务实现
│ │ │ └── SendMessageServiceImpl.java # 消息服务实现
│ │ └── task/
│ │ └── ScheduledTasks.java # 定时任务
│ └── resources/
│ ├── application.yml # 应用配置文件
│ └── mapper/ # MyBatis XML 映射文件
└── test/
└── java/com/gs/dingtalk/DeviceReceivingApplicationTests.java # 测试类
在 config/DataAcquisitionConfiguration.java 中配置:
- AppKey: 钉钉应用的 AppKey
- AppSecret: 钉钉应用的 AppSecret
- CorpId: 钉钉企业 CorpId
- 机器人Token: 钉钉群聊机器人 Token
- 机器人Secret: 钉钉群聊机器人 Secret
getDingTalkUserId(): 通过手机号获取钉钉用户ID并保存到数据库OapiV2UserGetbymobileResponse API 实现chatSendMessage(): 向钉钉群聊机器人发送消息sendDingTalkFiveMinute(), sendDingTalkFifteenMinute(), sendDingTalkthirtyMinute(): 定时向特定用户发送消息ScheduledTasks.java: 定义了三个定时任务MesQaDingtalkServiceImpl: 处理质量检测相关的钉钉消息推送SendDingtalk 实体中的 purview 字段控制用户消息接收权限procNo(工序编号)匹配用户权限mvn clean package
java -jar dingtalk.jar
或在 IDE 中运行 DingtalkApplication.java 的 main 方法
ResultMessage@Scheduled 注解