package cn.timer.api.controller.zpgl.sevice; import cn.hutool.http.HttpUtil; import cn.timer.api.bean.wechat.MessageTemplate; import cn.timer.api.dto.template.InterviewNotice; import cn.timer.api.dto.template.TemplateData; import cn.timer.api.dto.wxgzh.MessageQueueDto; import com.alibaba.fastjson.JSON; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import javax.transaction.Transactional; import java.util.ArrayList; import java.util.List; import java.util.Map; /** * @author longys * @date 2022/3/25 18:08 */ @Slf4j @Service @Transactional(rollbackOn = Exception.class) public class ZpglWxgzptServiceImpl implements ZpglWxgzptService { @Value("${youling.serverUrl}") private String serverUrl; /** * 添加消息队列 * * @param map * @return */ @Override public String addMessageQueue(Map<String, Object> map) { return HttpUtil.post(serverUrl + "/wxgzh/addMessageQueue", map); } /** * 添加消息队列 * * @param interviewNotice * @return */ @Override public String addInterviewMessageQueue(InterviewNotice interviewNotice) { return HttpUtil.post(serverUrl + "/wxgzh/addMessageQueue", this.copyMessageQueueToMap(interviewNotice)); } @Override public String sendApplyOrCePin(InterviewNotice interviewNotice) { return HttpUtil.post(serverUrl + "/wxgzh/addMessageQueue", this.copyMessageQueueToMap(interviewNotice)); } private Map copyMessageQueueToMap(InterviewNotice interviewNotice){ //消息队列对象 MessageQueueDto mqd = new MessageQueueDto(); BeanUtils.copyProperties(interviewNotice, mqd); /** 模板消息内容 start */ List<TemplateData> templateData = new ArrayList<>(); // 内容 TemplateData key1 = new TemplateData("first", interviewNotice.getContentStr(), "#000000"); templateData.add(key1); // 面试职位 TemplateData key2 = new TemplateData("keyword1", interviewNotice.getZpglZwxxName(), "#000000"); templateData.add(key2); // 面试时间 TemplateData key3 = new TemplateData("keyword2", interviewNotice.getInterviewTime(), "#000000"); templateData.add(key3); // 备注 TemplateData key4 = new TemplateData("remark", interviewNotice.getRemark(), "#000000"); templateData.add(key4); //数据处理成固定好的json格式 String content = mqd.getContentJson(templateData); mqd.setContent(content); /** 模板消息内容 end */ Map map = JSON.parseObject(JSON.toJSONString(mqd), Map.class); return map; } }