浏览代码

update_sub_account

Xingyu Xian 5 天之前
父节点
当前提交
0d8e8b50e5
共有 3 个文件被更改,包括 125 次插入10 次删除
  1. 20 1
      handler/update_sub_account.go
  2. 1 2
      route/init.go
  3. 104 7
      service/sub_account.go

+ 20 - 1
handler/update_sub_account.go

@@ -39,15 +39,34 @@ func (h *UpdateSubAccountHandler) getResponse() interface{} {
 	return h.resp
 }
 func (h *UpdateSubAccountHandler) run() {
-	data, err := service.SubAccount.UpdateSubAccount(h.ctx, *h.req)
+	tag, data, err := service.LoginAuth.UpdateSubAccount(h.ctx, *h.req)
 	if err != nil {
 		logrus.Errorf("[FindSubAccountBySupplierId] call SetSession err:%+v\n", err)
 		util.HandlerPackErrorResp(h.resp, consts.ErrorInternal, err.Error())
 		log.Info("FindSubAccountBySupplierId fail,req:%+v", h.req)
 		h.resp.Message = err.Error()
+		h.resp.Data = nil
 		h.resp.Status = 40000
 		return
 	}
+	if tag == 1 {
+		h.resp.Data = data
+		h.resp.Status = 34000
+		h.resp.Message = "验证码校验错误"
+		return
+	}
+	if tag == 2 {
+		h.resp.Data = data
+		h.resp.Status = 35000
+		h.resp.Message = "此号码已被其他主账号绑定"
+		return
+	}
+	if tag == 3 {
+		h.resp.Data = data
+		h.resp.Status = 36000
+		h.resp.Message = "此号码已被其他子账号绑定"
+		return
+	}
 	h.resp.Data = data
 	h.resp.Status = 20000
 	h.resp.Message = "ok"

+ 1 - 2
route/init.go

@@ -135,11 +135,10 @@ func InitRoute(r *gin.Engine) {
 	f := r.Group("/youngee/f")
 	{
 		f.Use(middleware.LoginAuthMiddleware)
-
 		// 余额管理
 		f.POST("/supplierAmount/billList", handler.WrapSupplierAmountBillListHandler) // 账单列表
 		f.POST("/supplierAmount/billAmount", handler.WrapSupplierBillAmountHandler)   // 总余额、可提现金额
-
+		
 		// 账单查询
 		f.POST("/fullSProject/billList", handler.WrapFullSProjectBillListHandler)         // 种草任务账单列表
 		f.POST("/fullSProject/taskBillList", handler.WrapFullSProjectTaskBillListHandler) // 种草子任务账单列表

+ 104 - 7
service/sub_account.go

@@ -52,13 +52,110 @@ func (*subaccount) CreateSubAccount(ctx context.Context, request *http_model.Add
 }
 
 // UpdateSubAccount 修改子账号
-func (*subaccount) UpdateSubAccount(ctx context.Context, request http_model.UpdateSubAccountRequest) (*http_model.UpdateSubAccountInfo, error) {
-	//var newSubAccount *gorm_model.YounggeeSubAccount
-	//newSubAccount = &gorm_model.YounggeeSubAccount{}
-	//// 1. 若修改绑定手机号
-	//if request.Phone != "" {
-	//}
-	return nil, nil
+func (l *loginAuth) UpdateSubAccount(ctx context.Context, req http_model.UpdateSubAccountRequest) (int, *http_model.UpdateSubAccountInfo, error) {
+
+	// 1. 若修改绑定手机号
+	if req.Phone != "" {
+		vCode, codeErr := l.getSessionCode(ctx, req.Phone)
+		if codeErr != nil {
+			return 0, nil, codeErr
+		}
+		// fmt.Printf("缓存的验证码 vCode: %v,实际填入的 code:%v", vCode, code)
+		if vCode != req.Code {
+			// 验证码错误
+			// logrus.Debugf("[AuthCode] auth fail,phone:%+v", phone)
+			return 1, nil, nil
+		}
+
+		// 是否其他子账号注册
+		subAccountInfo, subAccountErr := db.FindSubAccountByPhone(ctx, req.Phone)
+		if subAccountErr != nil {
+			return 0, nil, subAccountErr
+		}
+		if subAccountInfo != nil {
+			// 已被其他子账号注册
+			return 3, nil, nil
+		} else {
+			// 未被其他子账号注册
+			// 判断是否被主账号注册
+			supplierUserInfo, supplierUserErr := db.GetUserByPhone(ctx, req.Phone)
+			if supplierUserErr != nil {
+				return 0, nil, supplierUserErr
+			}
+			if supplierUserInfo != nil {
+				if supplierUserInfo.AuthStatus != 1 {
+					// 被未认证主账号注册
+					subAccountUserInfo, subAccountUserErr := db.GetUserByPhone(ctx, req.Phone)
+					if subAccountUserErr != nil {
+						return 0, nil, subAccountUserErr
+					}
+					var subAccountUser *gorm_model.YounggeeUser
+					subAccountUser = &gorm_model.YounggeeUser{}
+					subAccountUser.Phone = req.Phone
+					subAccountUser.ID = subAccountUserInfo.ID
+					updateUserErr := db.UpdateUserById(ctx, subAccountUser)
+					if updateUserErr != nil {
+						return 0, nil, updateUserErr
+					}
+
+					// 更新subAccount信息
+					getSubAccount, getSubAccountErr := db.FindSubAccountById(ctx, req.SubAccountId)
+					if getSubAccountErr != nil {
+						return 0, nil, getSubAccountErr
+					}
+					if getSubAccount != nil {
+						var subAccount *gorm_model.YounggeeSubAccount
+						subAccount = &gorm_model.YounggeeSubAccount{}
+						subAccount.SubAccountId = getSubAccount.SubAccountId
+						subAccount.SubAccountName = getSubAccount.SubAccountName
+						subAccount.JobId = getSubAccount.JobId
+						subAccount.PhoneNumber = getSubAccount.PhoneNumber
+						updateSubAccountErr := db.UpdateSubAccount(ctx, subAccount)
+						if updateSubAccountErr != nil {
+							return 0, nil, updateSubAccountErr
+						}
+					}
+					return 0, nil, nil
+				}
+				// 被认证主账号注册
+				return 2, nil, nil
+			} else {
+				// 更新User信息
+				subAccountUserInfo, subAccountUserErr := db.GetSubUserByPhone(ctx, req.Phone)
+				if subAccountUserErr != nil {
+					return 0, nil, subAccountUserErr
+				}
+				var subAccountUser *gorm_model.YounggeeUser
+				subAccountUser = &gorm_model.YounggeeUser{}
+				subAccountUser.Phone = req.Phone
+				subAccountUser.ID = subAccountUserInfo.ID
+				updateUserErr := db.UpdateUserById(ctx, subAccountUser)
+				if updateUserErr != nil {
+					return 0, nil, updateUserErr
+				}
+
+				// 更新subAccount信息
+				getSubAccount, getSubAccountErr := db.FindSubAccountById(ctx, req.SubAccountId)
+				if getSubAccountErr != nil {
+					return 0, nil, getSubAccountErr
+				}
+				if getSubAccount != nil {
+					var subAccount *gorm_model.YounggeeSubAccount
+					subAccount = &gorm_model.YounggeeSubAccount{}
+					subAccount.SubAccountId = getSubAccount.SubAccountId
+					subAccount.SubAccountName = getSubAccount.SubAccountName
+					subAccount.JobId = getSubAccount.JobId
+					subAccount.PhoneNumber = getSubAccount.PhoneNumber
+					updateSubAccountErr := db.UpdateSubAccount(ctx, subAccount)
+					if updateSubAccountErr != nil {
+						return 0, nil, updateSubAccountErr
+					}
+				}
+				return 0, nil, nil
+			}
+		}
+	}
+	return 0, nil, nil
 }
 
 // DeleteSubAccount 删除子账号