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, string) { //异常处理 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, wxOpenId := DaoSysLoginPerson.Login(username, password, ip) return result, identityId, personId, personName, remainCount, wxOpenId } // 对OpenId进行检查,如果已存在,则模拟登录,如果不存在,返回false,让其跳转到绑定用户页面 func CheckOpenId(openId string) (bool, error, int64, string) { found, err, identityId, personId := DaoSysLoginPerson.CheckOpenId(openId) return found, err, identityId, personId } //绑定微信的用户 func BindWxUser(identityId string, personId string, openid string) (bool, error) { success, err := DaoSysLoginPerson.BindWxUser(identityId, personId, openid) return success, err }