| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247 |
- package oilrtx
- import (
- "encoding/json"
- "fmt"
- "io/ioutil"
- "log"
- "net/http"
- "strconv"
- "strings"
- "time"
- "dashoo.cn/utils"
- "dashoo.cn/backend/api/business/organize"
- "dashoo.cn/business2/userRole"
- . "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)
- fmt.Sprintf(params, "短信=====")
- params1 := "{\"UserName\":\"" + msg.UserName + "\",\"ToMobile\":\"" + msg.ToMobile + "\",\"MSG\":\"" + msg.Msg +"\"}"
- fmt.Println(params1)
- 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", "/LT6VRmkY8mpGHJzWMKxzMQhjbkXwAHsk0zJkRfAPtjC0Wsecn1539xiULbJU32D59Kh0jTuUD0=")
- 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, BaseUser string) int {
- 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)
- flag := 0
- if rtxRespToken.Code == 2000 {
- sql := " UserName='" + username + "'"
- var baseUser1 userRole.Base_User
- s.GetEntity(&baseUser1,sql)
- if baseUser1.Username!="" {
- flag = 1
- res:=utils.RBAC.GetRolesForUserInDomain("uid_"+strconv.Itoa(baseUser1.Id),utils.DOMAIN)
- if len(res)<=0{
- flag = 3
- }
- } else {
- flag = 2
- var baseuser userRole.Base_User
- pwd, key, _ := utils.TripleDesEncrypt(password)
- baseuser.Id = 0
- baseuser.Username = username
- baseuser.Realname = username
- baseuser.Userpassword = pwd
- baseuser.Publickey = key
- _, err := s.InsertEntity(&baseuser)
- if err != nil {
- log.Println(err)
- }
- //查询角色表里有没有权限登录此系统
- res:=utils.RBAC.GetRolesForUserInDomain("uid_"+strconv.Itoa(baseuser.Id),utils.DOMAIN)
- if len(res)<=0{
- flag = 3
- }
- }
- } else {
- log.Println("Code:" + string(rtxRespToken.Code) + ",Message:" + rtxRespToken.Message + ",Token:" + rtxRespToken.Token)
- }
- return flag
- }
|