123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232 |
- package service
- import (
- "context"
- "fmt"
- log "github.com/sirupsen/logrus"
- "time"
- "youngee_b_api/db"
- "youngee_b_api/model/gorm_model"
- "youngee_b_api/model/http_model"
- )
- var SubAccount *subaccount
- type subaccount struct {
- }
- // CreateSubAccount 新增子账号
- func (*subaccount) CreateSubAccount(ctx context.Context, request *http_model.AddNewSubAccountRequest) (*gorm_model.YounggeeSubAccount, error) {
- user := gorm_model.YounggeeUser{
- Phone: request.PhoneNumber,
- User: "1002",
- Username: request.PhoneNumber,
- Password: "1002",
- RealName: "",
- Role: "7",
- Email: "",
- LastLoginTime: time.Now().UTC().Local(),
- }
- userId, err := db.CreateUser(ctx, user)
- if err != nil {
- log.Infof("[CreateEnterpriseSubUser] fail,err:%+v", err)
- return nil, err
- }
- fmt.Println("userId: ", userId)
- var curr = int(*userId)
- var newSubAccount = gorm_model.YounggeeSubAccount{
- PhoneNumber: request.PhoneNumber,
- SubAccountName: request.SubAccountName,
- JobId: request.JobId,
- SupplierId: request.SupplierId,
- AccountStatus: 1,
- UserId: curr,
- SubAccountType: 3,
- }
- err1 := db.CreateSubAccount(ctx, newSubAccount)
- if err1 != nil {
- return nil, err1
- }
- return &newSubAccount, nil
- }
- // UpdateSubAccount 修改子账号
- 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 删除子账号
- func (*subaccount) DeleteSubAccount(ctx context.Context, request http_model.DeleteSubAccountRequest) error {
- var newSubAccount = gorm_model.YounggeeSubAccount{
- SubAccountId: request.SubAccountId,
- }
- err := db.DeleteSubAccount(ctx, newSubAccount)
- if err != nil {
- return err
- }
- return nil
- }
- // FindSubAccountBySupplierId 根据服务商ID查找包含的所有子账号信息
- func (*subaccount) FindSubAccountBySupplierId(ctx context.Context, request http_model.FindAllSubAccountRequest) (*http_model.FindAllSubAccountData, error) {
- var subAccountResp *http_model.FindAllSubAccountData
- subAccountResp = &http_model.FindAllSubAccountData{}
- // 1. 取出子账号基本信息
- newSubAccount, total, subAccountErr := db.FindSubAccountBySupplierId(ctx, request.PageNum, request.PageSize, request.SupplierId, request.JobId, request.AccountStatus, request.Condition)
- if subAccountErr != nil {
- return nil, subAccountErr
- }
- if newSubAccount != nil {
- for _, s := range newSubAccount {
- var subAccountInfo *http_model.FindAllSubAccountInfo
- subAccountInfo = &http_model.FindAllSubAccountInfo{}
- // fmt.Println("s:", s.SubAccountId)
- subAccountInfo.SubAccountId = s.SubAccountId
- subAccountInfo.SubAccountName = s.SubAccountName
- subAccountInfo.JobId = s.JobId
- subAccountInfo.UserId = s.UserId
- subAccountInfo.PhoneNumber = s.PhoneNumber
- subAccountInfo.SupplierId = s.SupplierId
- subAccountInfo.AccountStatus = s.AccountStatus
- // 2. 岗位信息
- jobInfo, jobErr := db.FindJobByJobId(ctx, s.JobId)
- if jobErr != nil {
- return nil, jobErr
- }
- if jobInfo != nil {
- subAccountInfo.JobName = jobInfo.JobName
- }
- // 3. 服务商信息
- supplierInfo, supplierErr := db.GetSupplierById(ctx, s.SupplierId)
- if supplierErr != nil {
- return nil, supplierErr
- }
- if supplierInfo != nil {
- subAccountInfo.SupplierName = supplierInfo.SupplierName
- }
- subAccountResp.SubAccountInfo = append(subAccountResp.SubAccountInfo, subAccountInfo)
- }
- }
- subAccountResp.Total = total
- return subAccountResp, nil
- }
- // ShutDownSubAccount 停用子账号
- func (*subaccount) ShutDownSubAccount(ctx context.Context, request http_model.ShutDownSubAccountRequest) error {
- var newSubAccount *gorm_model.YounggeeSubAccount
- newSubAccount = &gorm_model.YounggeeSubAccount{}
- newSubAccount.SubAccountId = request.SubAccountId
- newSubAccount.AccountStatus = 2
- err := db.UpdateSubAccount(ctx, newSubAccount)
- if err != nil {
- return err
- }
- return nil
- }
|