Browse Source

echool 账号联动erp账号状态

icole 4 năm trước cách đây
mục cha
commit
6be743c8da
1 tập tin đã thay đổi với 37 bổ sung2 xóa
  1. 37 2
      utils/auth/light_auth.go

+ 37 - 2
utils/auth/light_auth.go

@@ -15,7 +15,7 @@ import (
 type LightAuth struct {
 }
 
-var session *xorm.Engine
+var session, erpDb *xorm.Engine
 
 func init() {
 	var err error
@@ -28,6 +28,14 @@ func init() {
 			return
 		}
 	}
+
+	if erpDb == nil {
+		erpDb, err = xorm.NewEngine("mysql", config.AppConfig.GetKey("erp_data_source"))
+		if err != nil {
+			fmt.Println(err)
+			return
+		}
+	}
 }
 
 func (la *LightAuth) Init() {
@@ -57,7 +65,6 @@ func (la *LightAuth) Login(c *entitys.CtrlContext) {
 			c.Ctx.JSON(200, sysmodel.SysReturn{400, "password incorrect!", nil})
 			return
 		}
-
 		//token := &entitys.Token{}
 		//timestamp_str := strconv.FormatUint(timestamp, 10)
 		//sec_tooken := sysutils.GenerateToken(logininfo.Account + timestamp_str)
@@ -99,6 +106,34 @@ func (la *LightAuth) Login(c *entitys.CtrlContext) {
 		//c.App.GetBusinessDb(user.Domain).SQL("select sys_role.* from sys_user_role, sys_role where sys_user_role.role_id = sys_role.id and sys_role.del_flag = 0 and sys_user_role.user_id = ? order by sys_role.priority asc", user.Id).Find(&roles)
 		//data.Roles = roles
 
+		//erp插入的用户 判断用户状态是否禁用
+		sql := fmt.Sprintf("select binding_id from school_account_binding where del_flag = 0 and user_id = ?")
+		bindRes, err := c.App.GetBusinessDb(user.Domain).SQL(sql, user.Id).Query().List()
+		if err != nil {
+			c.Ctx.JSON(200, sysmodel.SysReturn{400, err.Error(), nil})
+			return
+		}
+		if len(bindRes) >= 1 {
+			erpUserId, ok := bindRes[0]["binding_id"]
+			if ok {
+				sql := fmt.Sprintf("select * from sys_user where del_flag = 0 and id = ?")
+				erpRes, err := erpDb.NewSession().SQL(sql, erpUserId).Query().List()
+				if err != nil {
+					c.Ctx.JSON(200, sysmodel.SysReturn{400, err.Error(), nil})
+					return
+				}
+				if len(erpRes) <= 0 {
+					c.Ctx.JSON(200, sysmodel.SysReturn{400, "ERP账号不存在", nil})
+					return
+				}
+				stauts, _ := erpRes[0]["status"]
+				if stauts == "0" {
+					c.Ctx.JSON(200, sysmodel.SysReturn{400, "ERP账号已经禁用", nil})
+					return
+				}
+			}
+		}
+
 		data, err := AddToGlobalTokenStore(c, &user)
 		if err != nil {
 			c.Ctx.JSON(200, sysmodel.SysReturn{400, err.Error(), nil})