- verifyMobileHasNoMembers.
This commit is contained in:
@@ -12,15 +12,18 @@ import (
|
||||
|
||||
type StoreUserInfo struct {
|
||||
model.WeiXins
|
||||
Members []*model.WeiXins `orm:"-" json:"members"`
|
||||
MembersStr string `json:"-"`
|
||||
ParentMobile string `json:"parentMobile"`
|
||||
Members []*model.WeiXins `orm:"-" json:"members"`
|
||||
MembersStr string `json:"-"`
|
||||
}
|
||||
|
||||
func GetStoreUsers(storeID int) (storeUserInfo *StoreUserInfo, err error) {
|
||||
sql := `
|
||||
SELECT t1.id, t1.jxstoreid, t1.openid, t1.tel, t1.nickname, t1.parentid,
|
||||
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
|
||||
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
|
||||
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 = ?
|
||||
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) {
|
||||
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
|
||||
FROM weixins t1
|
||||
LEFT JOIN weixins t2 ON t2.parentid = t1.id
|
||||
LEFT JOIN weixins t3 ON t1.parentid = t3.id
|
||||
WHERE t1.tel = ?
|
||||
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 parentUser.ParentID == -1 {
|
||||
globals.SugarLogger.Debug(parentUser)
|
||||
user, err2 := verifyMobileIsBlank(db, mobile)
|
||||
if err = err2; err == nil || err == orm.ErrNoRows {
|
||||
user.ParentID = parentUser.ID
|
||||
if err == nil {
|
||||
num, err = dao.UpdateEntity(db, user, "ParentID")
|
||||
} else {
|
||||
err = dao.CreateEntity(db, user)
|
||||
num = 1
|
||||
if err = verifyMobileHasNoMembers(db, mobile); err == nil {
|
||||
user, err2 := verifyMobileIsBlank(db, mobile)
|
||||
if err = err2; err == nil || err == orm.ErrNoRows {
|
||||
user.ParentID = parentUser.ID
|
||||
if err == nil {
|
||||
num, err = dao.UpdateEntity(db, user, "ParentID")
|
||||
} else {
|
||||
err = dao.CreateEntity(db, user)
|
||||
num = 1
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
@@ -120,3 +126,17 @@ func verifyMobileIsBlank(db *dao.DaoDB, mobile string) (user *model.WeiXins, 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