- verifyMobileHasNoMembers.

This commit is contained in:
gazebo
2018-09-19 12:03:03 +08:00
parent 5d8017f4a6
commit 4e2c633a7f

View File

@@ -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
}