SmsTemplate.go 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195
  1. package http
  2. import (
  3. "FollowUp_Notice/conf"
  4. "FollowUp_Notice/logs"
  5. "encoding/json"
  6. "git.baozhida.cn/ERP_libs/lib"
  7. "github.com/go-resty/resty/v2"
  8. )
  9. type Template struct {
  10. Template_id string `json:"template_id"`
  11. Sms_title string `json:"sms_title"`
  12. Sms_signature string `json:"sms_signature"`
  13. Sms_content string `json:"sms_content"`
  14. Add_date string `json:"add_date"`
  15. Edit_date string `json:"edit_date"`
  16. Template_status string `json:"template_status"`
  17. Template_status_description string `json:"template_status_description"`
  18. }
  19. type TemplateRes struct {
  20. Status string `json:"status"`
  21. Template_id string `json:"template_id"`
  22. Template Template `json:"template"`
  23. }
  24. type XSendRes struct {
  25. Status string `json:"status"`
  26. Send_id string `json:"send_id"`
  27. Fee int `json:"fee"`
  28. }
  29. func SmsTemplate_Get(template_id string) (TemplateRes, error) {
  30. // Create a Resty Client
  31. client := resty.New()
  32. resp, err := client.R().
  33. SetQueryParams(map[string]string{
  34. "appid": conf.Sms_Appid,
  35. "signature": conf.Sms_Signature,
  36. "template_id": template_id,
  37. }).
  38. Get("https://api-v4.mysubmail.com/sms/template.json")
  39. if err != nil {
  40. return TemplateRes{}, err
  41. }
  42. temp := TemplateRes{}
  43. if err = json.Unmarshal(resp.Body(), &temp); err != nil {
  44. logs.Error(lib.FuncName(), err)
  45. return TemplateRes{}, err
  46. }
  47. return temp, nil
  48. }
  49. // 创建模板
  50. func SmsTemplate_Post(sms_signature string) (TemplateRes, error) {
  51. client := resty.New()
  52. resp, err := client.R().
  53. SetHeader("Content-Type", "application/x-www-form-urlencoded").
  54. SetFormData(map[string]string{
  55. "appid": conf.Sms_Appid,
  56. "signature": conf.Sms_Signature,
  57. "sms_title": "复诊通知",
  58. "sms_signature": sms_signature,
  59. "sms_content": "敬爱的@var(name),离上一次来我院治疗的复诊时间已到,为了更好关注您的病情,请于@var(time)到我院进行复诊,祝您早日康复!",
  60. }).
  61. Post("http://api.mysubmail.com/sms/template.json")
  62. if err != nil {
  63. return TemplateRes{}, err
  64. }
  65. temp := TemplateRes{}
  66. if err = json.Unmarshal(resp.Body(), &temp); err != nil {
  67. logs.Error(lib.FuncName(), err)
  68. return TemplateRes{}, err
  69. }
  70. return temp, nil
  71. }
  72. // 修改模板
  73. func SmsTemplate_Put(template_id, sms_signature string) (TemplateRes, error) {
  74. client := resty.New()
  75. resp, err := client.R().
  76. SetHeader("Content-Type", "application/x-www-form-urlencoded").
  77. SetFormData(map[string]string{
  78. "appid": conf.Sms_Appid,
  79. "signature": conf.Sms_Signature,
  80. "template_id": template_id,
  81. "sms_title": "复诊通知",
  82. "sms_signature": sms_signature,
  83. "sms_content": "敬爱的@var(code),离上一次来我院治疗的复诊时间已到,为了更好关注您的病情,请于明日到我院进行复诊,祝您早日康复!",
  84. }).
  85. SetResult(&TemplateRes{}).
  86. Put("http://api.mysubmail.com/sms/template.json")
  87. if err != nil {
  88. return TemplateRes{}, err
  89. }
  90. temp := TemplateRes{}
  91. if err = json.Unmarshal(resp.Body(), &temp); err != nil {
  92. logs.Error(lib.FuncName(), err)
  93. return TemplateRes{}, err
  94. }
  95. return temp, nil
  96. }
  97. func SmsTemplate_Delete(template_id string) (TemplateRes, error) {
  98. client := resty.New()
  99. resp, err := client.R().
  100. SetHeader("Content-Type", "application/x-www-form-urlencoded").
  101. SetFormData(map[string]string{
  102. "appid": conf.Sms_Appid,
  103. "signature": conf.Sms_Signature,
  104. "template_id": template_id,
  105. }).
  106. SetResult(&TemplateRes{}).
  107. Delete("http://api.mysubmail.com/sms/template.json")
  108. if err != nil {
  109. return TemplateRes{}, err
  110. }
  111. temp := TemplateRes{}
  112. if err = json.Unmarshal(resp.Body(), &temp); err != nil {
  113. logs.Error(lib.FuncName(), err)
  114. return TemplateRes{}, err
  115. }
  116. return temp, nil
  117. }
  118. // 批量发送短信
  119. func SmsMultiSend(template_id, content string) (TemplateRes, error) {
  120. client := resty.New()
  121. resp, err := client.R().
  122. SetHeader("Content-Type", "application/x-www-form-urlencoded").
  123. SetFormData(map[string]string{
  124. "appid": conf.Sms_Appid,
  125. "signature": conf.Sms_Signature,
  126. "content": content,
  127. }).
  128. SetResult(&TemplateRes{}).
  129. Delete("https://api-v4.mysubmail.com/sms/multisend")
  130. if err != nil {
  131. return TemplateRes{}, err
  132. }
  133. temp := TemplateRes{}
  134. if err = json.Unmarshal(resp.Body(), &temp); err != nil {
  135. logs.Error(lib.FuncName(), err)
  136. return TemplateRes{}, err
  137. }
  138. return temp, nil
  139. }
  140. // 短信模板发送
  141. func SmsXSend(template_id, to, name, time string) (XSendRes, error) {
  142. type Vars struct {
  143. Name string `json:"name"`
  144. Time string `json:"time"`
  145. }
  146. vars := Vars{Name: name, Time: time}
  147. b, _ := json.Marshal(vars)
  148. client := resty.New()
  149. resp, err := client.R().
  150. SetHeader("Content-Type", "application/x-www-form-urlencoded").
  151. SetFormData(map[string]string{
  152. "appid": conf.Sms_Appid,
  153. "signature": conf.Sms_Signature,
  154. "to": to,
  155. "project": template_id,
  156. "vars": string(b),
  157. }).
  158. SetResult(&XSendRes{}).
  159. Post("https://api-v4.mysubmail.com/sms/xsend")
  160. if err != nil {
  161. return XSendRes{}, err
  162. }
  163. temp := XSendRes{}
  164. if err = json.Unmarshal(resp.Body(), &temp); err != nil {
  165. logs.Error(lib.FuncName(), err)
  166. return XSendRes{}, err
  167. }
  168. return temp, nil
  169. }