cld.go 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  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. "io/ioutil"
  12. "net/http"
  13. "net/url"
  14. "strings"
  15. "go.mod/web/viewmodels"
  16. )
  17. type Cld struct {
  18. AuthUrl string
  19. Token string
  20. }
  21. type Result struct {
  22. // viewmodels.StaffCld []string
  23. Code int `form:"code" json:"code" `
  24. Data viewmodels.ResultCld `form:"data" json:"data" `
  25. Msg string `form:"msg" json:"msg" `
  26. }
  27. //创建项目用户service
  28. func NewCld() *Cld {
  29. return &Cld{
  30. AuthUrl: "http://cld.smartcost.com.cn/cm/auth",
  31. // AuthUrl: "http://cld.com/cm/auth",
  32. Token: "sc@ConS!tru@ct*88",
  33. }
  34. }
  35. // 验证CLD账号的登陆密码
  36. func (c *Cld) LoginValid(loginData viewmodels.StaffCld) (*Result, error) {
  37. // TODO 生成令牌和提交时间
  38. //const [encryptToken, postTime] = this.generateCLDToken();
  39. client := &http.Client{}
  40. // 构成数据
  41. data := url.Values{}
  42. data.Set("staffName", loginData.StaffName)
  43. data.Set("password", loginData.Password)
  44. parameter := strings.NewReader(data.Encode())
  45. reqest, err := http.NewRequest("POST", c.AuthUrl, parameter)
  46. if err != nil {
  47. return nil, errors.New("CLD网络出现问题")
  48. }
  49. reqest.Header.Add("Content-Type", "application/x-www-form-urlencoded")
  50. // 发送请求
  51. response, err := client.Do(reqest)
  52. if err != nil {
  53. return nil, errors.New("CLD网络出现问题")
  54. }
  55. if response.StatusCode != 200 {
  56. return nil, errors.New("请求CLD发送错误")
  57. }
  58. body, _ := ioutil.ReadAll(response.Body)
  59. // fmt.Println(string(body))
  60. result := Result{}
  61. err = json.Unmarshal(body, &result)
  62. if err != nil {
  63. return nil, errors.New("解析数据错误")
  64. }
  65. return &result, nil
  66. }
  67. // 获得cld办事处和员工 列表
  68. func (c *Cld) GetList(lcategoryId int) {
  69. }