瀏覽代碼

Merge branch '0.0.1' of hongze/hongze_mobile_admin into master

hongze 3 年之前
父節點
當前提交
dede098aaf
共有 2 個文件被更改,包括 29 次插入1 次删除
  1. 8 0
      models/tables/admin_record/admin_record.go
  2. 21 1
      services/admin.go

+ 8 - 0
models/tables/admin_record/admin_record.go

@@ -53,6 +53,14 @@ func BindAdminRecordByOpenid(adminId int, openId string) (err error) {
 	return
 }
 
+//根据openid解除绑定用户关系
+func UnBindAdminRecordByOpenid(openId string) (err error) {
+	o := orm.NewOrm()
+	msql := ` UPDATE admin_record SET user_id = 0 WHERE open_id = ? `
+	_, err = o.Raw(msql, openId).Exec()
+	return
+}
+
 //修改用户微信信息
 func ModifyAdminRecordInfo(openId, nickName, headimgUrl, city, province, country string, sex, adminId int) (err error) {
 	o := orm.NewOrm()

+ 21 - 1
services/admin.go

@@ -48,6 +48,22 @@ func GetAdminUserItemByOpenId(openid string) (item *custom.AdminWx, err error) {
 
 	item, adminInfoErr := admin.GetAdminWxById(adminRecord.UserId)
 	if adminInfoErr != nil {
+		//如果是找不到该用户
+		if adminInfoErr.Error() == utils.ErrNoRow() {
+			//用户被删除了,但是user_record没有删除对应的关系,那么去解除绑定
+			userUnbindErr := admin_record.UnBindAdminRecordByOpenid(openid)
+			if userUnbindErr != nil {
+				err = userUnbindErr
+				return
+			}
+			err = ERR_ADMIN_NOT_BIND
+			adminRecord.UserId = 0
+			item = &custom.AdminWx{}
+			//格式化返回用户数据
+			formatWxUserAndUserRecord(item, adminRecord)
+			return
+		}
+
 		err = adminInfoErr
 
 		//如果是下面这个错误,那么这个可能是用户信息被删除,然后user_record表没有移除该条记录所绑定的user_id信息
@@ -235,7 +251,11 @@ QUERY_WX_USER:
 	} else {
 		token = tokenItem.AccessToken
 		//如果联系人编号不为空,且联系人编号与session里面的联系人编号不一致的时候,需要做session变更
-		if adminId > 0 && tokenItem.AdminId != adminId {
+		//if adminId > 0 && tokenItem.AdminId != adminId {
+		//	_ = h5_admin_session.UpdateSession(tokenItem.SessionId, adminId, time.Now().AddDate(0, 1, 0))
+		//}
+		//如果联系人编号与session里面的联系人编号不一致的时候,需要做session变更
+		if tokenItem.AdminId != adminId {
 			_ = h5_admin_session.UpdateSession(tokenItem.SessionId, adminId, time.Now().AddDate(0, 1, 0))
 		}
 	}