- refactor weixin and mini program login

This commit is contained in:
gazebo
2019-01-26 16:02:01 +08:00
parent ab53a4b61d
commit aba16383fe
10 changed files with 284 additions and 116 deletions

View File

@@ -15,6 +15,7 @@ func CreateWeiXins(db *DaoDB, user *legacymodel.WeiXins) (err error) {
SET
openid = IF(openid = '', NULL, openid),
openid_mini = IF(openid_mini = '', NULL, openid_mini),
openid_union = IF(openid_union = '', NULL, openid_union),
tel = IF(tel = '', NULL, tel)
WHERE id = ?
`, user.ID); err != nil {
@@ -24,3 +25,59 @@ func CreateWeiXins(db *DaoDB, user *legacymodel.WeiXins) (err error) {
Commit(db)
return err
}
func GetWeiXinUserByIDs(db *DaoDB, tel, unionID, openID, miniOpenID string) (user *legacymodel.WeiXins, err error) {
fieldList := []string{
"Tel",
"OpenIDUnion",
"OpenID",
"OpenIDMini",
}
valueList := []string{
tel,
unionID,
openID,
miniOpenID,
}
user = &legacymodel.WeiXins{
Tel: tel,
OpenIDUnion: unionID,
OpenID: openID,
OpenIDMini: miniOpenID,
}
for index := range valueList {
if valueList[index] != "" {
if err = GetEntity(db, user, fieldList[index]); err == nil {
return user, nil
}
}
}
return nil, err
}
func UpdateWeiXinUser(db *DaoDB, tel, nickname, unionID, openID, miniOpenID string) (err error) {
user := &legacymodel.WeiXins{
Tel: tel,
}
if err = GetEntity(db, user, "Tel"); err == nil {
updateFields := []string{}
if openID != "" {
user.OpenID = openID
updateFields = append(updateFields, "OpenID")
}
if unionID != "" {
user.OpenIDUnion = unionID
updateFields = append(updateFields, "OpenIDUnion")
}
if miniOpenID != "" {
user.OpenIDMini = miniOpenID
updateFields = append(updateFields, "OpenIDMini")
}
if nickname != "" {
user.NickName = nickname
updateFields = append(updateFields, "NickName")
}
_, err = UpdateEntity(db, user, updateFields...)
}
return err
}

View File

@@ -0,0 +1,34 @@
package dao
import (
"testing"
"git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/business/model/legacymodel"
"git.rosy.net.cn/jx-callback/globals"
)
func TestCreateWeiXins(t *testing.T) {
err := CreateWeiXins(GetDB(), &legacymodel.WeiXins{
Tel: "12345",
})
if err != nil {
t.Fatal(err)
}
// globals.SugarLogger.Debug(utils.Format4Output(places, false))
}
func TestGetWeiXinUserByIDs(t *testing.T) {
user, err := GetWeiXinUserByIDs(GetDB(), "", "unionid", "", "")
if err != nil {
t.Fatal(err)
}
globals.SugarLogger.Debug(utils.Format4Output(user, false))
}
func TestUpdateWeiXinUser(t *testing.T) {
err := UpdateWeiXinUser(GetDB(), "12345", "nickname", "unionid", "openid", "miniid")
if err != nil {
t.Fatal(err)
}
}

View File

@@ -8,6 +8,7 @@ const (
ErrCodeSuccess = "0"
ErrCodeGeneralFailed = "-1"
ErrCodeTokenIsInvalid = "-2"
ErrCodeUserNotExist = "-3"
)
var (

View File

@@ -1,13 +1,14 @@
package legacymodel
type WeiXins struct {
ID int `orm:"column(id)" json:"id"`
JxStoreID int `orm:"column(jxstoreid);index" json:"storeID"`
OpenID string `orm:"column(openid);size(70);unique;null" json:"-"`
OpenIDMini string `orm:"column(openid_mini);size(70);unique;null" json:"-"`
Tel string `orm:"size(15);null;unique" json:"tel"`
ParentID int `orm:"column(parentid);default(-1);index" json:"parentID"`
NickName string `orm:"column(nickname);size(30)" json:"nickname"`
ID int `orm:"column(id)" json:"id"`
JxStoreID int `orm:"column(jxstoreid);index" json:"storeID"`
OpenID string `orm:"column(openid);size(70);unique;null" json:"-"`
OpenIDMini string `orm:"column(openid_mini);size(70);unique;null" json:"-"`
OpenIDUnion string `orm:"column(openid_union);size(70);unique;null" json:"-"`
Tel string `orm:"size(15);null;unique" json:"tel"`
ParentID int `orm:"column(parentid);default(-1);index" json:"parentID"`
NickName string `orm:"column(nickname);size(30)" json:"nickname"`
}
func (*WeiXins) TableName() string {