package com.ruoyi.web.controller.common; import com.ruoyi.common.config.RuoYiConfig; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.utils.RSAPublicKeyExample; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.file.FileUtils; import com.ruoyi.common.utils.sms.smsUtils; import com.ruoyi.framework.config.ServerConfig; import com.smartor.domain.HtmlContentVO; import com.smartor.domain.ServiceOutPath; import com.smartor.domain.ServiceTask; import com.smartor.domain.smsVO; import com.smartor.mapper.ServiceTaskMapper; import com.smartor.service.IServiceOutPathService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import java.nio.charset.StandardCharsets; import java.util.Date; @RestController @Api(description = "知信接口") @RequestMapping("/sms") public class SmsController { @Value("${xhsmsPath}") private String xhsmsPath; @Value("${xhsmsAccount}") private String xhsmsAccount; @Value("${xhsmsPwd}") private String xhsmsPwd; @Value("${localIP}") private String ip; @Value("${req_path}") private String req_path; @Value("${pub_key}") private String pub_key; @Autowired private IServiceOutPathService iServiceOutPathService; @Autowired private ServiceTaskMapper serviceTaskMapper; /** * @param * @return */ @ApiOperation("短信发送") @PostMapping("/send") public AjaxResult send(@RequestBody smsVO vo) { String sendMsg = smsUtils.sendSms(xhsmsPath, xhsmsAccount, xhsmsPwd, vo.getPhone(), vo.getContent()); return AjaxResult.success(sendMsg); } /** * @param * @return */ @ApiOperation("短信发送") @PostMapping("/sendAsk") public AjaxResult sendAsk(@RequestBody smsVO vo) throws UnsupportedEncodingException { RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample(); String taskId = rsaPublicKeyExample.encryptedData(vo.getTaskId().toString(), pub_key); String patid = rsaPublicKeyExample.encryptedData(vo.getPatId().toString(), pub_key); String subId = rsaPublicKeyExample.encryptedData(vo.getSubId().toString(), pub_key); ServiceOutPath serviceOutPath = new ServiceOutPath(); serviceOutPath.setParam1(taskId); serviceOutPath.setParam2(patid); serviceOutPath.setParam3(vo.getTaskName()); serviceOutPath.setParam6(subId); serviceOutPath.setCreateTime(new Date()); iServiceOutPathService.insertServiceOutPath(serviceOutPath); String format = String.format("%03X", serviceOutPath.getId()); serviceOutPath.setRadix(format); serviceOutPath.setUpdateTime(new Date()); iServiceOutPathService.updateServiceOutPath(serviceOutPath); String url = ip + ":" + req_path + "/wt?p=" + format; ServiceTask serviceTask = serviceTaskMapper.selectServiceTaskByTaskid(Long.valueOf(taskId)); //如果type是语音随访的话(说明补偿发送方式中有电话随访的方式,这里的外链就地址只能用/sf) if (serviceTask.getType().equals("1")) { url = ip + ":" + req_path + "/sf?p=" + format; } //String url = = ip + ":" + req_path + "/outsideChainwt?param1=" + taskId + "¶m2=" + patid + "¶m3=" + URLEncoder.encode(vo.getTaskName(), StandardCharsets.UTF_8.toString()) + "¶m5=false"; String content = "您好,邀请您填写出院调查表,请点击" + url + "填写。感谢您配合!"; String sendMsg = smsUtils.sendSms(xhsmsPath, xhsmsAccount, xhsmsPwd, vo.getPhone(), content); return AjaxResult.success(sendMsg); } }