cld.go 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. /*
  2. * @description:计量支付接口相关操作
  3. * @Author: CP
  4. * @Date: 2020-09-03 16:57:56
  5. * @FilePath: \construction_management\lib\cld.go
  6. */
  7. package lib
  8. import (
  9. "encoding/json"
  10. "errors"
  11. "fmt"
  12. "io/ioutil"
  13. "net/http"
  14. "net/url"
  15. "strings"
  16. "go.mod/web/viewmodels"
  17. )
  18. type Cld struct {
  19. AuthUrl string
  20. CategoryUrl string
  21. Token string
  22. }
  23. type Result struct {
  24. // viewmodels.StaffCld []string
  25. Code int `form:"code" json:"code" `
  26. Data viewmodels.ResultCld `form:"data" json:"data" `
  27. Msg string `form:"msg" json:"msg" `
  28. }
  29. //创建项目用户service
  30. func NewCld() *Cld {
  31. return &Cld{
  32. AuthUrl: "http://cld.smartcost.com.cn/cm/auth",
  33. CategoryUrl: "http://cld.com/cm/category",
  34. // AuthUrl: "http://cld.com/cm/auth",
  35. Token: "sc@ConS!tru@ct*88",
  36. }
  37. }
  38. // 验证CLD账号的登陆密码
  39. func (c *Cld) LoginValid(loginData viewmodels.StaffCld) (*Result, error) {
  40. // TODO 生成令牌和提交时间
  41. //const [encryptToken, postTime] = this.generateCLDToken();
  42. client := &http.Client{}
  43. // 构成数据
  44. data := url.Values{}
  45. data.Set("staffName", loginData.StaffName)
  46. data.Set("password", loginData.Password)
  47. parameter := strings.NewReader(data.Encode())
  48. reqest, err := http.NewRequest("POST", c.AuthUrl, parameter)
  49. if err != nil {
  50. return nil, errors.New("CLD网络出现问题")
  51. }
  52. reqest.Header.Add("Content-Type", "application/x-www-form-urlencoded")
  53. // 发送请求
  54. response, err := client.Do(reqest)
  55. if err != nil {
  56. return nil, errors.New("CLD网络出现问题")
  57. }
  58. if response.StatusCode != 200 {
  59. return nil, errors.New("请求CLD发送错误")
  60. }
  61. body, _ := ioutil.ReadAll(response.Body)
  62. // fmt.Println(string(body))
  63. result := Result{}
  64. err = json.Unmarshal(body, &result)
  65. if err != nil {
  66. return nil, errors.New("解析数据错误")
  67. }
  68. return &result, nil
  69. }
  70. // 获得cld办事处和员工 列表
  71. func (c *Cld) GetList(categoryId int) {
  72. data := url.Values{}
  73. parameter := strings.NewReader(data.Encode())
  74. url := fmt.Sprintf("%s?categoryId=%d", c.CategoryUrl, categoryId)
  75. fmt.Println(url)
  76. c.cldRequest("GET", url, parameter)
  77. }
  78. func (c *Cld) cldRequest(Method string, url string, parameter *strings.Reader) (*Result, error) {
  79. client := &http.Client{}
  80. fmt.Println("====================")
  81. reqest, err := http.NewRequest(Method, url, parameter)
  82. if err != nil {
  83. return nil, errors.New("CLD网络出现问题")
  84. }
  85. reqest.Header.Add("Content-Type", "application/x-www-form-urlencoded")
  86. // 发送请求
  87. response, err := client.Do(reqest)
  88. if err != nil {
  89. return nil, errors.New("CLD网络出现问题")
  90. }
  91. if response.StatusCode != 200 {
  92. return nil, errors.New("请求CLD发送错误")
  93. }
  94. body, _ := ioutil.ReadAll(response.Body)
  95. fmt.Println(string(body))
  96. return nil, nil
  97. }