- verifyMobileHasNoMembers.
This commit is contained in:
@@ -12,15 +12,18 @@ import (
|
|||||||
|
|
||||||
type StoreUserInfo struct {
|
type StoreUserInfo struct {
|
||||||
model.WeiXins
|
model.WeiXins
|
||||||
Members []*model.WeiXins `orm:"-" json:"members"`
|
ParentMobile string `json:"parentMobile"`
|
||||||
MembersStr string `json:"-"`
|
Members []*model.WeiXins `orm:"-" json:"members"`
|
||||||
|
MembersStr string `json:"-"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetStoreUsers(storeID int) (storeUserInfo *StoreUserInfo, err error) {
|
func GetStoreUsers(storeID int) (storeUserInfo *StoreUserInfo, err error) {
|
||||||
sql := `
|
sql := `
|
||||||
SELECT t1.id, t1.jxstoreid, t1.openid, t1.tel, t1.nickname, t1.parentid,
|
SELECT t1.id, t1.jxstoreid, t1.openid, t1.tel, t1.nickname, t1.parentid, t3.tel parent_mobile,
|
||||||
CONCAT("[", GROUP_CONCAT(CONCAT('{"id":', t2.id, ',"parentID":', t2.parentid, ',"openID":"', IF(t2.openid IS NULL, "", t2.openid), '","tel":"', t2.tel, '","nickname":"', IF(t2.nickname IS NULL, "", t2.nickname), '"}')), "]") members_str FROM weixins t1
|
CONCAT("[", GROUP_CONCAT(CONCAT('{"id":', t2.id, ',"parentID":', t2.parentid, ',"openID":"', IF(t2.openid IS NULL, "", t2.openid), '","tel":"', t2.tel, '","nickname":"', IF(t2.nickname IS NULL, "", t2.nickname), '"}')), "]") members_str
|
||||||
|
FROM weixins t1
|
||||||
LEFT JOIN weixins t2 ON t2.parentid = t1.id
|
LEFT JOIN weixins t2 ON t2.parentid = t1.id
|
||||||
|
LEFT JOIN weixins t3 ON t1.parentid = t3.id
|
||||||
WHERE t1.parentid = -1 AND t1.jxstoreid = ?
|
WHERE t1.parentid = -1 AND t1.jxstoreid = ?
|
||||||
GROUP BY t1.id, t1.jxstoreid, t1.openid, t1.tel, t1.nickname, t1.parentid;
|
GROUP BY t1.id, t1.jxstoreid, t1.openid, t1.tel, t1.nickname, t1.parentid;
|
||||||
`
|
`
|
||||||
@@ -35,10 +38,11 @@ func GetStoreUsers(storeID int) (storeUserInfo *StoreUserInfo, err error) {
|
|||||||
|
|
||||||
func GetUserInfo(mobile string) (storeUserInfo *StoreUserInfo, err error) {
|
func GetUserInfo(mobile string) (storeUserInfo *StoreUserInfo, err error) {
|
||||||
sql := `
|
sql := `
|
||||||
SELECT t1.id, t1.jxstoreid, t1.openid, t1.tel, t1.nickname, t1.parentid,
|
SELECT t1.id, t1.jxstoreid, t1.openid, t1.tel, t1.nickname, t1.parentid, t3.tel parent_mobile,
|
||||||
CONCAT("[", GROUP_CONCAT(CONCAT('{"id":', t2.id, ',"openID":"', IF(t2.openid IS NULL, "", t2.openid), '","tel":"', t2.tel, '","nickname":"', IF(t2.nickname IS NULL, "", t2.nickname), '"}')), "]") members_str
|
CONCAT("[", GROUP_CONCAT(CONCAT('{"id":', t2.id, ',"openID":"', IF(t2.openid IS NULL, "", t2.openid), '","tel":"', t2.tel, '","nickname":"', IF(t2.nickname IS NULL, "", t2.nickname), '"}')), "]") members_str
|
||||||
FROM weixins t1
|
FROM weixins t1
|
||||||
LEFT JOIN weixins t2 ON t2.parentid = t1.id
|
LEFT JOIN weixins t2 ON t2.parentid = t1.id
|
||||||
|
LEFT JOIN weixins t3 ON t1.parentid = t3.id
|
||||||
WHERE t1.tel = ?
|
WHERE t1.tel = ?
|
||||||
GROUP BY t1.id, t1.jxstoreid, t1.openid, t1.tel, t1.nickname, t1.parentid;
|
GROUP BY t1.id, t1.jxstoreid, t1.openid, t1.tel, t1.nickname, t1.parentid;
|
||||||
`
|
`
|
||||||
@@ -82,14 +86,16 @@ func AddMobile2Mobile(parentMobile, mobile string) (num int64, err error) {
|
|||||||
if err = dao.GetEntity(db, parentUser, "Tel"); err == nil {
|
if err = dao.GetEntity(db, parentUser, "Tel"); err == nil {
|
||||||
if parentUser.ParentID == -1 {
|
if parentUser.ParentID == -1 {
|
||||||
globals.SugarLogger.Debug(parentUser)
|
globals.SugarLogger.Debug(parentUser)
|
||||||
user, err2 := verifyMobileIsBlank(db, mobile)
|
if err = verifyMobileHasNoMembers(db, mobile); err == nil {
|
||||||
if err = err2; err == nil || err == orm.ErrNoRows {
|
user, err2 := verifyMobileIsBlank(db, mobile)
|
||||||
user.ParentID = parentUser.ID
|
if err = err2; err == nil || err == orm.ErrNoRows {
|
||||||
if err == nil {
|
user.ParentID = parentUser.ID
|
||||||
num, err = dao.UpdateEntity(db, user, "ParentID")
|
if err == nil {
|
||||||
} else {
|
num, err = dao.UpdateEntity(db, user, "ParentID")
|
||||||
err = dao.CreateEntity(db, user)
|
} else {
|
||||||
num = 1
|
err = dao.CreateEntity(db, user)
|
||||||
|
num = 1
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@@ -120,3 +126,17 @@ func verifyMobileIsBlank(db *dao.DaoDB, mobile string) (user *model.WeiXins, err
|
|||||||
}
|
}
|
||||||
return user, err
|
return user, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func verifyMobileHasNoMembers(db *dao.DaoDB, mobile string) (err error) {
|
||||||
|
countInfo := &struct{ Ct int }{}
|
||||||
|
if err = dao.GetRows(db, countInfo, `
|
||||||
|
SELECT COUNT(*) ct
|
||||||
|
FROM weixins t1
|
||||||
|
JOIN weixins t2 ON t1.parent_id = t2.id AND t2.mobile = ?
|
||||||
|
`, mobile); err == nil {
|
||||||
|
if countInfo.Ct > 0 {
|
||||||
|
err = fmt.Errorf("%s本身已经是组长", mobile)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user