package com.gs.xky.controller; import com.gs.xky.config.ResultMessage; import com.gs.xky.dto.NumbericalDto; import com.gs.xky.service.DingtalkInfoService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** * 钉钉消息发送控制器 * * @author 28567 * @description 提供钉钉消息发送相关的REST接口 * @createDate 2025-01-27 */ @RestController @RequestMapping("/api/dingtalk") @RequiredArgsConstructor @Slf4j public class DingtalkController { private final DingtalkInfoService dingtalkInfoService; /** * 发送钉钉消息 * * @param numbericalDto 包含检验单号的请求参数 * @return ResultMessage 操作结果 */ @PostMapping("/sendMessage") public ResultMessage sendMessage(@RequestBody NumbericalDto numbericalDto) { try { log.info("开始发送钉钉消息,检验单号:{}", numbericalDto.getReleaseNo()); // 参数校验 if (numbericalDto == null || numbericalDto.getReleaseNo() == null || numbericalDto.getReleaseNo().trim().isEmpty()) { log.warn("检验单号不能为空"); return ResultMessage.error("检验单号不能为空"); } // 调用服务层发送消息 boolean result = dingtalkInfoService.sendMessage(numbericalDto.getReleaseNo()); if (result) { log.info("钉钉消息发送成功,检验单号:{}", numbericalDto.getReleaseNo()); return ResultMessage.ok(); } else { log.warn("钉钉消息发送失败,检验单号:{}", numbericalDto.getReleaseNo()); return ResultMessage.error("钉钉消息发送失败"); } } catch (Exception e) { log.error("发送钉钉消息时发生异常,检验单号:{}", numbericalDto != null ? numbericalDto.getReleaseNo() : "null", e); return ResultMessage.error(e); } } }