dubch 5 år sedan
förälder
incheckning
4489616a19

+ 53 - 0
src/dashoo.cn/backend/api/business/iamlogin/IamLoginService.go

@@ -0,0 +1,53 @@
+package iamlogin
+
+import (
+	"encoding/json"
+	"io/ioutil"
+	"log"
+	"net/http"
+	"net/url"
+
+	//"dashoo.cn/business2/userRole"
+	. "dashoo.cn/utils/db"
+	"github.com/go-xorm/xorm"
+)
+
+type IamLoginService struct {
+	ServiceBase
+}
+
+func GetIamLoginService(xormEngine *xorm.Engine) *IamLoginService {
+	s := new(IamLoginService)
+	s.DBE = xormEngine
+	return s
+}
+
+type iam struct {
+	UserAD string `json:"userAD"`
+	UserNo  string `json:"userNo"`
+}
+
+func (s *IamLoginService) HandleIamLogin(appCode string, secret string, code string) iam {
+
+	//ptrUrl := utils.Cfg.MustValue("PtrUrl", "ptrUrl")
+	Url := "http://iam.api.dgyt.petrochina/api/iam/loginex"
+
+	v := make(url.Values)
+	v.Add("appCode", appCode)
+	v.Add("secret", secret)
+	v.Add("code", code)
+
+	resp, err := http.PostForm(Url, v)
+
+	if err != nil {
+		log.Println("err= ", err)
+	}
+	log.Println("resp= ", resp)
+
+	body, _ := ioutil.ReadAll(resp.Body)
+	var iamJson iam
+	json.Unmarshal(body, &iamJson)
+
+
+	return iamJson
+}

+ 86 - 0
src/dashoo.cn/backend/api/business/iamlogin/iamlogin.go

@@ -0,0 +1,86 @@
+package iamlogin
+
+//"time"
+
+type RtxMsg struct {
+	Msg      string `json:"msg"`
+	Receiver string `json:"receiver"`
+}
+
+type PtrUser struct {
+	UserName string `json:"username"`
+	PassWord string `json:"password"`
+}
+
+type Msg struct {
+	UserName string `json:"userName"`
+	ToMobile string `json:"toMobile"`
+	Msg      string `json:"msg"`
+}
+
+type MsgTest struct {
+	UserName string `json:"UserName"`
+	ToMobile string `json:"ToMobile"`
+	Msg      string `json:"MSG"`
+	BizName  string `json:"BizName"`
+	BizPwd   string `json:"BizPwd"`
+	EXPCode  string `json:"EXPCode"`
+}
+
+type RtxLogin struct {
+	Username   string `json:"username"`
+	Password   string `json:"password"`
+	UserDomain string `json:"userDomain"`
+}
+
+type RtxRespToken struct {
+	Code    int    `json:"code"`
+	Message string `json:"message"`
+	Token   string `json:"token"`
+}
+
+type RtxOrganize struct {
+	Id           string        `json:"id"`
+	OrgCode      string        `json:"message"`
+	OrgName      string        `json:"orgName"`
+	OrgShortName string        `json:"orgShortName"`
+	ParentId     string        `json:"parentId"`
+	IsInValid    string        `json:"ISINVALID"`
+	Remark       string        `json:"remark"`
+	Children     []RtxOrganize `json:"children"`
+}
+
+type RtxOrganizeItems struct {
+	Items []RtxOrganize `json:"items"`
+}
+
+type Tmp_User struct {
+	Department string `xorm:"VARCHAR(500)"`
+	Fullname   string `xorm:"VARCHAR(500)"`
+	Username   string `xorm:"VARCHAR(500)"`
+	Code       string `xorm:"VARCHAR(500)"`
+	Email      string `xorm:"VARCHAR(500)"`
+	Telphone   string `xorm:"VARCHAR(500)"`
+	Deptid     string `xorm:"VARCHAR(500)"`
+}
+
+
+type Base_Msg struct {
+	Id           int    `xorm:"not null pk autoincr INT(11)"`
+	Type         string `xorm:"not null comment('类别(1注册(1-1注册成功1-2注册失败) 2密码重置(2-1验证码2-2重置密码))') VARCHAR(10)"`
+	UserName     string `xorm:"not null comment('企业用户名(即登录账号)') VARCHAR(50)"`
+	UserRealName string `xorm:"not null comment('企业名称') VARCHAR(100)"`
+	UserId       string `xorm:"not null comment('用户名Id(BaseUser表Id)') VARCHAR(11)"`
+	ToMobile     string `xorm:"not null comment('目标手机号') VARCHAR(20)"`
+	Msg          string `xorm:"not null comment('短信内容') VARCHAR(500)"`
+	ToTime       string `xorm:"not null comment('发送时间') VARCHAR(20)"`
+	Status       string `xorm:"not null comment('发送状态') VARCHAR(20)"`
+}
+
+
+type Base_VCode struct {
+	Id           int    `xorm:"not null pk autoincr INT(11)"`
+	UserName     string `xorm:"not null comment('企业用户名(即登录账号)') VARCHAR(50)"`
+	UserId       string `xorm:"not null comment('用户名Id(BaseUser表Id)') VARCHAR(11)"`
+	Code         string `xorm:"not null comment('验证码') VARCHAR(500)"`
+}

+ 83 - 0
src/dashoo.cn/backend/api/controllers/iamlogin/iamLogin.go

@@ -0,0 +1,83 @@
+package iamlogin
+
+import (
+	"dashoo.cn/backend/api/business/iamlogin"
+	"encoding/json"
+
+	//"dashoo.cn/backend/api/business/register"
+	"dashoo.cn/backend/api/models"
+	"dashoo.cn/business2/auth"
+	"dashoo.cn/business2/userRole"
+	"github.com/astaxie/beego"
+	"log"
+	"strconv"
+	"strings"
+
+	. "dashoo.cn/backend/api/controllers"
+	"dashoo.cn/utils"
+)
+
+type IamLoginController struct {
+	BaseController
+}
+
+type iam struct {
+	AppCode string `json:"appCode"`
+	Secret  string `json:"secret"`
+	Code  string `json:"code"`
+}
+
+// @Title send message
+// @Description send message in dagangnetwork
+// @Success 200 {object} historicTasks
+// @router /iamlogin [post]
+func (this *IamLoginController) IamLogin() {
+	iamLoginSvc := iamlogin.GetIamLoginService(utils.DBE)
+
+	var iam iam
+	var jsonBlob = this.Ctx.Input.RequestBody
+	json.Unmarshal(jsonBlob, &iam)
+
+	//userToken, err := models.CreateToken("rongjiya")
+
+	iamJson := iamLoginSvc.HandleIamLogin(iam.AppCode, iam.Secret, iam.Code)
+	log.Println("appCode= ", iam.AppCode)
+
+	svc := auth.GetAuthServic(utils.DBE)
+	var user userRole.Base_User
+
+	userName := ""
+	if iamJson.UserAD != "" {
+		userName = iamJson.UserAD
+	} else {
+		if iamJson.UserNo != "" {
+			var userEntity userRole.Base_User
+			svc := userRole.GetUserService(utils.DBE)
+			svc.GetEntity (&userEntity, "UserNo = '" + iamJson.UserNo + "'")
+			userName = userEntity.Username
+		}
+	}
+	if userName != "yanshi" {
+		//sql := " UserName='" + user4CreateToken.Username + "'"
+		var baseUser userRole.Base_User
+		svc.DBE.Table("Base_User").Where("UserName=?", userName).Get(&baseUser)
+		res := utils.RBAC.GetRolesForUserInDomain("uid_"+strconv.Itoa(baseUser.Id), utils.DOMAIN)
+		if len(res) <= 0 {
+			this.Abort("777")
+		}
+	}
+	userToken, err := models.CreateToken(userName)
+
+	if err != nil {
+		beego.Error("token:", err)
+		this.Abort("401")
+	}
+	//写入登录日志
+	ip := strings.Split(this.Ctx.Request.RemoteAddr, ":")[0]
+	ipaddr := this.Ctx.Request.RemoteAddr
+	svc.WriteLoginLog(utils.ToStr(user.Id), user.Username, user.AccCode, ip, ipaddr, "登录成功")
+
+	this.Data["json"] = &userToken
+	this.ServeJSON()
+}
+