package ServiceLoginPerson import ( "dsSso/Dao/DaoSysLoginPerson" "dsSso/Utils/CommonUtil" "dsSso/Utils/MobileUtil" "fmt" ) /** 功能:验证用户名和密码是否正确 作者:黄海 时间:2020-02-05 */ func Login(username string, password string, ip string) (bool, string, string, string, int) { //异常处理 defer func() { if err := recover(); err != nil { fmt.Printf("%s\n", err) } }() var personId string var err error //1、判断是不是身份证件号,是不是邮箱,是不是联系电话 if CommonUtil.IsEmail(username) { personId, err = DaoSysLoginPerson.GetPersonIdByEmail(username) if err != nil || len(personId) == 0 { return false, "", "", "", -1 } } else if CommonUtil.IsIdCard(username) { personId, err = DaoSysLoginPerson.GetPersonIdByIdCard(username) if err != nil || len(personId) == 0 { return false, "", "", "", -1 } } else if MobileUtil.VerifyMobileFormat(username) { personId, err = DaoSysLoginPerson.GetPersonIdByTel(username) if err != nil || len(personId) == 0 { return false, "", "", "", -1 } } if len(personId) > 0 { //根据person_id换取统一的登录名 username, err = DaoSysLoginPerson.GetLoginNameByPersonId(personId) if err != nil || len(username) == 0 { return false, "", "", "", -1 } } //调用dao层的方法,组合成service方法层 result, identityId, personId, personName, remainCount := DaoSysLoginPerson.Login(username, password, ip) return result, identityId, personId, personName, remainCount } // 对OpenId进行检查,如果已存在,则模拟登录,如果不存在,返回false,让其跳转到绑定用户页面 func CheckOpenId(openId string) (bool, error, int64, string) { found, err, identityId, personId := DaoSysLoginPerson.CheckOpenId(openId) return found, err, identityId, personId }