2
3

RtxService.go 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207
  1. package oilrtx
  2. import (
  3. "encoding/json"
  4. "io/ioutil"
  5. "log"
  6. "net/http"
  7. "strings"
  8. "time"
  9. "dashoo.cn/backend/api/business/organize"
  10. . "dashoo.cn/utils/db"
  11. "github.com/go-xorm/xorm"
  12. )
  13. type RtxService struct {
  14. ServiceBase
  15. }
  16. func GetRtxService(xormEngine *xorm.Engine) *RtxService {
  17. s := new(RtxService)
  18. s.DBE = xormEngine
  19. return s
  20. }
  21. //func (s *RtxService) RtxLogin(userName, password, userDomain string) *http.Response {
  22. func (s *RtxService) RtxLogin() *http.Response {
  23. client := &http.Client{}
  24. var rtx RtxLogin
  25. rtx.Username = "ORG_YJS"
  26. rtx.Password = "ORG_YJS!@#"
  27. rtx.UserDomain = "LOCAL_IDENT"
  28. json, err := json.Marshal(rtx)
  29. params := string(json)
  30. req, err := http.NewRequest("post", "http://api.uidp.dgyt.petrochina/ORG_Cloud_API/login/login", strings.NewReader(params))
  31. req.Header.Add("Content-Type", "application/json")
  32. resp, err := client.Do(req)
  33. if err != nil {
  34. log.Println("err= ", err)
  35. }
  36. log.Println("resp= ", resp)
  37. return resp
  38. }
  39. func (s *RtxService) SendRtxMsg() *http.Response {
  40. client := &http.Client{}
  41. var rtx RtxMsg
  42. rtx.Msg = "大港油田市场管理系统"
  43. rtx.Receiver = "yuedefeng"
  44. json, err := json.Marshal(rtx)
  45. params := string(json)
  46. req, err := http.NewRequest("post", "http://api.uidp.dgyt.petrochina/RTX/API/SendRTX", strings.NewReader(params))
  47. req.Header.Add("Content-Type", "application/json")
  48. req.Header.Add("X-Token", "BfdENJsoTGRW4g6nqvQlXOOB8bpQ3NIU7WA345bH2hoEMR9DL0Fcv59fj9KSjde99TFR+92plU4=")
  49. resp, err := client.Do(req)
  50. if err != nil {
  51. log.Println("err= ", err)
  52. }
  53. log.Println("resp= ", resp)
  54. return resp
  55. }
  56. func (s *RtxService) GetOrgListByToken(token string) *http.Response {
  57. client := &http.Client{}
  58. req, err := http.NewRequest("get", "http://api.uidp.dgyt.petrochina/ORG_Cloud_API/org/fetchorglist", strings.NewReader(""))
  59. req.Header.Add("Content-Type", "application/json")
  60. req.Header.Add("X-Token", token)
  61. resp, err := client.Do(req)
  62. if err != nil {
  63. log.Println("err= ", err)
  64. }
  65. log.Println("resp= ", resp)
  66. return resp
  67. }
  68. func (s *RtxService) GetOrgList() RtxOrganizeItems {
  69. var item RtxOrganizeItems
  70. respToken := s.RtxLogin()
  71. jsonBlob, _ := ioutil.ReadAll(respToken.Body)
  72. var rtxRespToken RtxRespToken
  73. json.Unmarshal(jsonBlob, &rtxRespToken)
  74. if len(rtxRespToken.Token) > 0 {
  75. respOrgList := s.GetOrgListByToken(rtxRespToken.Token)
  76. jsonBlob2, _ := ioutil.ReadAll(respOrgList.Body)
  77. json.Unmarshal(jsonBlob2, &item)
  78. }
  79. return item
  80. }
  81. func (s *RtxService) AutoSyncOrgList() bool {
  82. organizeItem := s.GetOrgList()
  83. return s.RecursionOrganize(organizeItem.Items)
  84. }
  85. //递归调用
  86. func (s *RtxService) RecursionOrganize(rtxOrganizes []RtxOrganize) bool {
  87. orgSvc := organize.GetOrganizeService(s.DBE)
  88. for _, rtxOrg := range rtxOrganizes {
  89. var baseOrganize *organize.Base_Organize
  90. where := "1=1 and Innerphone='" + rtxOrg.Id + "'"
  91. orgSvc.GetEntity(&baseOrganize, where)
  92. if baseOrganize == nil {
  93. baseOrganize = new(organize.Base_Organize)
  94. }
  95. parentId := 0
  96. if len(rtxOrg.ParentId) > 0 {
  97. var baseParentOrganize organize.Base_Organize
  98. where := "1=1 and Innerphone='" + rtxOrg.ParentId + "'"
  99. orgSvc.GetEntity(&baseParentOrganize, where)
  100. parentId = baseParentOrganize.Id
  101. }
  102. baseOrganize.Parentid = parentId
  103. baseOrganize.Code = rtxOrg.OrgCode
  104. baseOrganize.Fullname = rtxOrg.OrgShortName
  105. baseOrganize.Description = rtxOrg.OrgName
  106. baseOrganize.Innerphone = rtxOrg.Id
  107. baseOrganize.Outerphone = rtxOrg.ParentId
  108. if baseOrganize.Id <= 0 {
  109. baseOrganize.Layer = 0
  110. baseOrganize.Isinnerorganize = 1
  111. baseOrganize.Sortcode = 0
  112. baseOrganize.Deletionstatecode = 0
  113. baseOrganize.Enabled = 1
  114. baseOrganize.Createon = time.Now()
  115. baseOrganize.Createby = "演示用户"
  116. baseOrganize.Createuserid = 284
  117. baseOrganize.Modifiedon = time.Now()
  118. baseOrganize.Modifiedby = "演示用户"
  119. baseOrganize.Modifieduserid = 284
  120. orgSvc.InsertEntity(baseOrganize)
  121. } else {
  122. baseOrganize.Modifiedon = time.Now()
  123. baseOrganize.Modifiedby = "演示用户"
  124. baseOrganize.Modifieduserid = 284
  125. orgSvc.UpdateEntityById(baseOrganize.Id, baseOrganize)
  126. }
  127. if rtxOrg.Children != nil || len(rtxOrg.Children) > 0 {
  128. s.RecursionOrganize(rtxOrg.Children)
  129. }
  130. }
  131. return true
  132. }
  133. func (s *RtxService) HandleSendMsg(username string, tomobile string, message string) *http.Response {
  134. client := &http.Client{}
  135. var msg Msg
  136. msg.UserName = username
  137. msg.ToMobile = tomobile
  138. msg.Msg = message
  139. json, err := json.Marshal(msg)
  140. params := string(json)
  141. req, err := http.NewRequest("post", "http://api.uidp.dgyt.petrochina/SMS/API/sendSMS", strings.NewReader(params))
  142. req.Header.Add("Content-Type", "application/json")
  143. req.Header.Add("X-Token", "rzkTZhCbQKLFUOJI5L7VEqjsUWF+PoaewKQbvJHYo2Nimtn+fEWBne7G7JbWF3fpdJnAUN3e1pQ=")
  144. resp, err := client.Do(req)
  145. if err != nil {
  146. log.Println("err= ", err)
  147. }
  148. log.Println("resp= ", resp)
  149. return resp
  150. }
  151. func (s *RtxService) HandlePtrLogin(username string, password string) *http.Response {
  152. client := &http.Client{}
  153. var ptrUser PtrUser
  154. ptrUser.UserName = username
  155. ptrUser.PassWord = password
  156. reqJson, err := json.Marshal(ptrUser)
  157. params := string(reqJson)
  158. req, err := http.NewRequest("post", "http://api.uidp.dgyt.petrochina/PTR/API/validatePTR", strings.NewReader(params))
  159. req.Header.Add("Content-Type", "application/json")
  160. req.Header.Add("X-Token", "HJpczmIJr9z26t9KcV0i1OsBE9RXFeuyhuN9MdV+Ts/FlUjCgDOxaaubo9DkF91t+X2MCxBqX6s=")
  161. resp, err := client.Do(req)
  162. if err != nil {
  163. log.Println("err= ", err)
  164. }
  165. log.Println("resp= ", resp)
  166. jsonBlob, _ := ioutil.ReadAll(resp.Body)
  167. var rtxRespToken RtxRespToken
  168. json.Unmarshal(jsonBlob, &rtxRespToken)
  169. if rtxRespToken.Code == "2000" {
  170. log.Println("hahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")
  171. //在这里生成好的token
  172. } else {
  173. log.Println("出错了!!!!!!!!!!!!!!!!!!!!")
  174. }
  175. return resp
  176. }