package com.kimgo.wepush.service; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import com.kimgo.wepush.common.PhoneNumberValidation; import com.kimgo.wepush.common.QyWeChatSendMessageApiResponse; import com.kimgo.wepush.config.URLConfig; import com.kimgo.wepush.config.UserConfig; import com.kimgo.wepush.mapper.QyWeChatAppInfoMapper; import com.kimgo.wepush.model.CallInfo; import com.kimgo.wepush.model.TextCardMessage; import com.kimgo.wepush.response.SendMessageResonse; import com.kimgo.wepush.response.ServerResponseEntity; import okhttp3.OkHttpClient; import okhttp3.RequestBody; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import okhttp3.*; import java.io.IOException; @Service public class CallService { private final Logger logger = LoggerFactory.getLogger(CallService.class); private ServerResponseEntity serverResponseEntity; @Autowired private QyWeChatURLService qyWeChatURLService; @Autowired private ApiSettingService apiSettingService; @Autowired TokenService tokenService; public ServerResponseEntity getPhoneNumber(String accessToken, CallInfo callInfo){ String correctAccessToken = tokenService.getApiAccessToken(); logger.info("accessToken: {} correctAccessToken: {}",accessToken,correctAccessToken); if (!correctAccessToken.equals(accessToken)){ return ServerResponseEntity.fail("Invalid accessToken"); } PhoneNumberValidation phoneNumberValidation = new PhoneNumberValidation(); String phoneNumber = callInfo.getPhoneNumber(); String callTime = callInfo.getCallTime(); if (!phoneNumberValidation.isValidPhoneNumber(callInfo.getPhoneNumber())){ return ServerResponseEntity.fail("Invalid phoneNumber"); } String qyAccessToken = tokenService.getAccessToken(); QyWeChatSendMessageApiResponse qyWeChatSendMessageApiResponse = requestWithOkhttp(qyAccessToken,phoneNumber,callTime); int code = qyWeChatSendMessageApiResponse.getErrcode(); if (code == 0){ SendMessageResonse sendMessageResonse = new SendMessageResonse(); sendMessageResonse.setMsgid(qyWeChatSendMessageApiResponse.getMsgid()); return ServerResponseEntity.success(sendMessageResonse); } else { return ServerResponseEntity.fail("request qyWeChat error,please check server error log."); } } public TextCardMessage setTextCardMessage(String phoneNumber, String callTime) { TextCardMessage textCardMessage = new TextCardMessage(); textCardMessage.setTouser(apiSettingService.getApiSetting().getTouser()); textCardMessage.setMsgtype(apiSettingService.getApiSetting().getMsgtype()); textCardMessage.setAgentid(apiSettingService.getApiSetting().getAgentid()); textCardMessage.setEnable_duplicate_check(apiSettingService.getApiSetting().getEnableDuplicateCheck()); textCardMessage.setDuplicate_check_interval(apiSettingService.getApiSetting().getDuplicateCheckInterval()); TextCardMessage.TextCard textCard = new TextCardMessage.TextCard(); textCard.setTitle("新来电通知"); textCard.setDescription("