|
|
@@ -1,13 +1,15 @@
|
|
|
package oilrtx
|
|
|
|
|
|
import (
|
|
|
+ "dashoo.cn/backend/api/business/organize"
|
|
|
+ . "dashoo.cn/utils/db"
|
|
|
"encoding/json"
|
|
|
+ "github.com/go-xorm/xorm"
|
|
|
+ "io/ioutil"
|
|
|
"log"
|
|
|
"net/http"
|
|
|
"strings"
|
|
|
-
|
|
|
- . "dashoo.cn/utils/db"
|
|
|
- "github.com/go-xorm/xorm"
|
|
|
+ "time"
|
|
|
)
|
|
|
|
|
|
type RtxService struct {
|
|
|
@@ -20,9 +22,29 @@ func GetRtxService(xormEngine *xorm.Engine) *RtxService {
|
|
|
return s
|
|
|
}
|
|
|
|
|
|
-func (s *RtxService) CallRtx() *http.Response {
|
|
|
+//func (s *RtxService) RtxLogin(userName, password, userDomain string) *http.Response {
|
|
|
+func (s *RtxService) RtxLogin() *http.Response {
|
|
|
client := &http.Client{}
|
|
|
- var rtx Rtx
|
|
|
+ var rtx RtxLogin
|
|
|
+ rtx.Username = "yuedefeng"
|
|
|
+ rtx.Password = "123456"
|
|
|
+ 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)
|
|
|
@@ -38,3 +60,90 @@ func (s *RtxService) CallRtx() *http.Response {
|
|
|
|
|
|
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 Outerphone='" + rtxOrg.Id + "'"
|
|
|
+ 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
|
|
|
+}
|