|
|
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
|
|
|
}
|
|
|
//解除绑定微信的用户
|
|
|
func UnBindWxUser(identityId string, personId string) (bool, error) {
|
|
|
success, err := DaoSysLoginPerson.UnBindWxUser(identityId, personId)
|
|
|
return success, err
|
|
|
}
|