Quellcode durchsuchen

授权关联兼职

icole vor 4 Jahren
Ursprung
Commit
79ee614d4a

+ 2 - 2
internal/logic/auth/login_by_weixin_logic.go

@@ -99,13 +99,13 @@ func (l *LoginByWeixinLogic) LoginByWeixin(req types.LoginByWeixinRequest) (*typ
 		logx.Error(err)
 		return nil, err
 	}
+	//关联兼职
 	partUser, err := model.GetPartTimeXormByUserId(rtnInfo.UserInfo.ID, l.svcCtx.DB)
 	if err != nil {
 		logx.Error(err)
 		return nil, err
 	}
-	//关联兼职
-	if partUser == nil || partUser.UserId == 0 {
+	if rtnInfo.UserInfo.Mobile != "" && (partUser == nil || partUser.UserId == 0) {
 		partTime := new(model.I2billMktPartTimeXorm)
 		_, err = l.svcCtx.DB.Where("ipone_number = ? and del_flag = 0 and user_id = 0", rtnInfo.UserInfo.Mobile).Get(partTime)
 		if err != nil {

+ 28 - 1
internal/logic/user/bind_mobile_logic.go

@@ -2,6 +2,7 @@ package user
 
 import (
 	"context"
+	"git.i2edu.net/i2/i2-bill-api/model"
 
 	"git.i2edu.net/i2/i2-bill-api/internal/svc"
 	"git.i2edu.net/i2/i2-bill-api/internal/types"
@@ -40,12 +41,38 @@ func (l *BindMobileLogic) BindMobile(req types.BindMobileRequest) (*types.Respon
 		logx.Error(err)
 		return nil, err
 	}
-	tx.Exec("update i2bill_mkt_part_time_user set ipone_number = ? where user_id = ?", mobile, l.UserId)
+	_, err = tx.Exec("update i2bill_mkt_part_time_user set ipone_number = ? where user_id = ?", mobile, l.UserId)
 	if err != nil {
 		tx.Rollback()
 		logx.Error(err)
 		return nil, err
 	}
+
+	//关联兼职
+	partUser, err := model.GetPartTimeXormByUserId(l.UserId, l.svcCtx.DB)
+	if err != nil {
+		tx.Rollback()
+		logx.Error(err)
+		return nil, err
+	}
+	if mobile != "" && (partUser == nil || partUser.UserId == 0) {
+		partTime := new(model.I2billMktPartTimeXorm)
+		_, err = l.svcCtx.DB.Where("ipone_number = ? and del_flag = 0 and user_id = 0", mobile).Get(partTime)
+		if err != nil {
+			tx.Rollback()
+			logx.Error(err)
+			return nil, err
+		}
+		partTime.UserId = l.UserId
+		if partTime.Id != 0 {
+			_, err := tx.ID(partTime.Id).Update(partTime)
+			if err != nil {
+				tx.Rollback()
+				logx.Error(err)
+				return nil, err
+			}
+		}
+	}
 	tx.Commit()
 	resp := make(map[string]interface{})
 	resp["id"] = l.UserId