| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207 |
- package oilrtx
- import (
- "encoding/json"
- "io/ioutil"
- "log"
- "net/http"
- "strings"
- "time"
- "dashoo.cn/backend/api/business/organize"
- . "dashoo.cn/utils/db"
- "github.com/go-xorm/xorm"
- )
- type RtxService struct {
- ServiceBase
- }
- func GetRtxService(xormEngine *xorm.Engine) *RtxService {
- s := new(RtxService)
- s.DBE = xormEngine
- return s
- }
- //func (s *RtxService) RtxLogin(userName, password, userDomain string) *http.Response {
- func (s *RtxService) RtxLogin() *http.Response {
- client := &http.Client{}
- var rtx RtxLogin
- rtx.Username = "ORG_YJS"
- rtx.Password = "ORG_YJS!@#"
- rtx.UserDomain = "LOCAL_IDENT"
- json, err := json.Marshal(rtx)
- params := string(json)
- req, err := http.NewRequest("post", "http://api.uidp.dgyt.petrochina/ORG_Cloud_API/login/login", strings.NewReader(params))
- req.Header.Add("Content-Type", "application/json")
- resp, err := client.Do(req)
- if err != nil {
- log.Println("err= ", err)
- }
- log.Println("resp= ", resp)
- return resp
- }
- func (s *RtxService) SendRtxMsg() *http.Response {
- client := &http.Client{}
- var rtx RtxMsg
- rtx.Msg = "大港油田市场管理系统"
- rtx.Receiver = "yuedefeng"
- json, err := json.Marshal(rtx)
- params := string(json)
- req, err := http.NewRequest("post", "http://api.uidp.dgyt.petrochina/RTX/API/SendRTX", strings.NewReader(params))
- req.Header.Add("Content-Type", "application/json")
- req.Header.Add("X-Token", "BfdENJsoTGRW4g6nqvQlXOOB8bpQ3NIU7WA345bH2hoEMR9DL0Fcv59fj9KSjde99TFR+92plU4=")
- resp, err := client.Do(req)
- if err != nil {
- log.Println("err= ", err)
- }
- log.Println("resp= ", resp)
- return resp
- }
- func (s *RtxService) GetOrgListByToken(token string) *http.Response {
- client := &http.Client{}
- req, err := http.NewRequest("get", "http://api.uidp.dgyt.petrochina/ORG_Cloud_API/org/fetchorglist", strings.NewReader(""))
- req.Header.Add("Content-Type", "application/json")
- req.Header.Add("X-Token", token)
- resp, err := client.Do(req)
- if err != nil {
- log.Println("err= ", err)
- }
- log.Println("resp= ", resp)
- return resp
- }
- func (s *RtxService) GetOrgList() RtxOrganizeItems {
- var item RtxOrganizeItems
- respToken := s.RtxLogin()
- jsonBlob, _ := ioutil.ReadAll(respToken.Body)
- var rtxRespToken RtxRespToken
- json.Unmarshal(jsonBlob, &rtxRespToken)
- if len(rtxRespToken.Token) > 0 {
- respOrgList := s.GetOrgListByToken(rtxRespToken.Token)
- jsonBlob2, _ := ioutil.ReadAll(respOrgList.Body)
- json.Unmarshal(jsonBlob2, &item)
- }
- return item
- }
- func (s *RtxService) AutoSyncOrgList() bool {
- organizeItem := s.GetOrgList()
- return s.RecursionOrganize(organizeItem.Items)
- }
- //递归调用
- func (s *RtxService) RecursionOrganize(rtxOrganizes []RtxOrganize) bool {
- orgSvc := organize.GetOrganizeService(s.DBE)
- for _, rtxOrg := range rtxOrganizes {
- var baseOrganize *organize.Base_Organize
- where := "1=1 and Innerphone='" + rtxOrg.Id + "'"
- orgSvc.GetEntity(&baseOrganize, where)
- if baseOrganize == nil {
- baseOrganize = new(organize.Base_Organize)
- }
- parentId := 0
- if len(rtxOrg.ParentId) > 0 {
- var baseParentOrganize organize.Base_Organize
- where := "1=1 and Innerphone='" + rtxOrg.ParentId + "'"
- orgSvc.GetEntity(&baseParentOrganize, where)
- parentId = baseParentOrganize.Id
- }
- baseOrganize.Parentid = parentId
- baseOrganize.Code = rtxOrg.OrgCode
- baseOrganize.Fullname = rtxOrg.OrgShortName
- baseOrganize.Description = rtxOrg.OrgName
- baseOrganize.Innerphone = rtxOrg.Id
- baseOrganize.Outerphone = rtxOrg.ParentId
- if baseOrganize.Id <= 0 {
- baseOrganize.Layer = 0
- baseOrganize.Isinnerorganize = 1
- baseOrganize.Sortcode = 0
- baseOrganize.Deletionstatecode = 0
- baseOrganize.Enabled = 1
- baseOrganize.Createon = time.Now()
- baseOrganize.Createby = "演示用户"
- baseOrganize.Createuserid = 284
- baseOrganize.Modifiedon = time.Now()
- baseOrganize.Modifiedby = "演示用户"
- baseOrganize.Modifieduserid = 284
- orgSvc.InsertEntity(baseOrganize)
- } else {
- baseOrganize.Modifiedon = time.Now()
- baseOrganize.Modifiedby = "演示用户"
- baseOrganize.Modifieduserid = 284
- orgSvc.UpdateEntityById(baseOrganize.Id, baseOrganize)
- }
- if rtxOrg.Children != nil || len(rtxOrg.Children) > 0 {
- s.RecursionOrganize(rtxOrg.Children)
- }
- }
- return true
- }
- func (s *RtxService) HandleSendMsg(username string, tomobile string, message string) *http.Response {
- client := &http.Client{}
- var msg Msg
- msg.UserName = username
- msg.ToMobile = tomobile
- msg.Msg = message
- json, err := json.Marshal(msg)
- params := string(json)
- req, err := http.NewRequest("post", "http://api.uidp.dgyt.petrochina/SMS/API/sendSMS", strings.NewReader(params))
- req.Header.Add("Content-Type", "application/json")
- req.Header.Add("X-Token", "rzkTZhCbQKLFUOJI5L7VEqjsUWF+PoaewKQbvJHYo2Nimtn+fEWBne7G7JbWF3fpdJnAUN3e1pQ=")
- resp, err := client.Do(req)
- if err != nil {
- log.Println("err= ", err)
- }
- log.Println("resp= ", resp)
- return resp
- }
- func (s *RtxService) HandlePtrLogin(username string, password string) *http.Response {
- client := &http.Client{}
- var ptrUser PtrUser
- ptrUser.UserName = username
- ptrUser.PassWord = password
- reqJson, err := json.Marshal(ptrUser)
- params := string(reqJson)
- req, err := http.NewRequest("post", "http://api.uidp.dgyt.petrochina/PTR/API/validatePTR", strings.NewReader(params))
- req.Header.Add("Content-Type", "application/json")
- req.Header.Add("X-Token", "HJpczmIJr9z26t9KcV0i1OsBE9RXFeuyhuN9MdV+Ts/FlUjCgDOxaaubo9DkF91t+X2MCxBqX6s=")
- resp, err := client.Do(req)
- if err != nil {
- log.Println("err= ", err)
- }
- log.Println("resp= ", resp)
- jsonBlob, _ := ioutil.ReadAll(resp.Body)
- var rtxRespToken RtxRespToken
- json.Unmarshal(jsonBlob, &rtxRespToken)
- if rtxRespToken.Code == "2000" {
- log.Println("hahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")
- //在这里生成好的token
- } else {
- log.Println("出错了!!!!!!!!!!!!!!!!!!!!")
- }
- return resp
- }
|