- 新增,修改门店时,自动创建门店用户
This commit is contained in:
@@ -615,6 +615,9 @@ func UpdateStore(ctx *jxcontext.Context, storeID int, payload map[string]interfa
|
|||||||
if err2 := updateCourierStores(ctx, storeID); err2 != nil && err == nil {
|
if err2 := updateCourierStores(ctx, storeID); err2 != nil && err == nil {
|
||||||
err = err2
|
err = err2
|
||||||
}
|
}
|
||||||
|
if valid["tel1"] != nil {
|
||||||
|
BindMobile2Store(ctx, utils.Interface2String(valid["tel1"]), storeID)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
dao.Commit(db)
|
dao.Commit(db)
|
||||||
@@ -695,6 +698,7 @@ func CreateStore(ctx *jxcontext.Context, storeExt *StoreExt, userName string) (i
|
|||||||
store.ID = existingID
|
store.ID = existingID
|
||||||
if err = dao.CreateEntity(nil, store); err == nil {
|
if err = dao.CreateEntity(nil, store); err == nil {
|
||||||
UpdateOrCreateCourierStores(ctx, store.ID, false, false, false)
|
UpdateOrCreateCourierStores(ctx, store.ID, false, false, false)
|
||||||
|
BindMobile2Store(ctx, storeExt.Tel1, storeExt.ID)
|
||||||
return store.ID, err
|
return store.ID, err
|
||||||
}
|
}
|
||||||
return 0, err
|
return 0, err
|
||||||
|
|||||||
@@ -83,10 +83,21 @@ func BindMobile2Store(ctx *jxcontext.Context, mobile string, storeID int) (num i
|
|||||||
if err = err2; err == nil || err == orm.ErrNoRows {
|
if err = err2; err == nil || err == orm.ErrNoRows {
|
||||||
user.JxStoreID = storeID
|
user.JxStoreID = storeID
|
||||||
if err == nil {
|
if err == nil {
|
||||||
// todo transaction
|
dao.Begin(db)
|
||||||
|
defer func() {
|
||||||
|
if r := recover(); r != nil {
|
||||||
|
dao.Rollback(db)
|
||||||
|
panic(r)
|
||||||
|
}
|
||||||
|
}()
|
||||||
if num, err = dao.UpdateEntity(db, user, "JxStoreID"); err == nil {
|
if num, err = dao.UpdateEntity(db, user, "JxStoreID"); err == nil {
|
||||||
err = dao.SetWeiXinsEmpty2Null(db, user)
|
err = dao.SetWeiXinsEmpty2Null(db, user)
|
||||||
}
|
}
|
||||||
|
if err != nil {
|
||||||
|
dao.Rollback(db)
|
||||||
|
} else {
|
||||||
|
dao.Commit(db)
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
dao.WrapAddIDCULEntity(user, ctx.GetUserName())
|
dao.WrapAddIDCULEntity(user, ctx.GetUserName())
|
||||||
user.ParentID = -1
|
user.ParentID = -1
|
||||||
@@ -140,6 +151,9 @@ func ChangeMobile(ctx *jxcontext.Context, curMobile, expectedMobile string) (num
|
|||||||
}
|
}
|
||||||
|
|
||||||
func verifyMobileIsBlank(db *dao.DaoDB, mobile string) (user *legacymodel.WeiXins, err error) {
|
func verifyMobileIsBlank(db *dao.DaoDB, mobile string) (user *legacymodel.WeiXins, err error) {
|
||||||
|
if !jxutils.IsStringLikeMobile(mobile) {
|
||||||
|
return nil, fmt.Errorf("%s看起来不像是一个手机号", mobile)
|
||||||
|
}
|
||||||
user = &legacymodel.WeiXins{
|
user = &legacymodel.WeiXins{
|
||||||
Tel: mobile,
|
Tel: mobile,
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ import (
|
|||||||
|
|
||||||
var (
|
var (
|
||||||
storeNamePat = regexp.MustCompile(`([^(\[(【)\])】\-\s]*)[(\[(【\-\s]+([^(\[(【)\])】\-]*)[)\])】]*`)
|
storeNamePat = regexp.MustCompile(`([^(\[(【)\])】\-\s]*)[(\[(【\-\s]+([^(\[(【)\])】\-]*)[)\])】]*`)
|
||||||
|
mobilePat = regexp.MustCompile(`^1\d{10}$`)
|
||||||
)
|
)
|
||||||
|
|
||||||
// 合并得到最终的门店状态
|
// 合并得到最终的门店状态
|
||||||
@@ -344,6 +345,10 @@ func FormalizeMobile(mobile string) string {
|
|||||||
return strings.Replace(strings.Replace(mobile, "-", ",", -1), "_", ",", -1)
|
return strings.Replace(strings.Replace(mobile, "-", ",", -1), "_", ",", -1)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func IsStringLikeMobile(mobile string) bool {
|
||||||
|
return mobilePat.FindStringIndex(mobile) != nil
|
||||||
|
}
|
||||||
|
|
||||||
func IsLegalStoreID(id int) bool {
|
func IsLegalStoreID(id int) bool {
|
||||||
return id >= 100000 && id < 200000
|
return id >= 100000 && id < 200000
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user