package logic import ( "context" "lone-services/pkg/rpcclient" "lone-services/pkg/utils" salepb "lone-services/rpc/sale/pb" "lone-services/services/user/internal/dao" "google.golang.org/grpc/codes" "google.golang.org/grpc/status" ) func fetchSaleByUserId(ctx context.Context, saleSvcName string, userId int64) (*salepb.InfoData, error) { if saleSvcName == utils.StringEmpty || userId < utils.NumberOne { return nil, nil } cli, err := rpcclient.Get(saleSvcName) if err != nil { return nil, err } data, err := salepb.NewSaleClient(cli.Conn()).InfoByUserId(ctx, &salepb.InfoByUserIdReq{UserId: userId}) if err != nil { if st, ok := status.FromError(err); ok && st.Code() == codes.NotFound { return nil, nil } return nil, err } return data, nil } func fetchSaleById(ctx context.Context, saleSvcName string, saleId int64) (*salepb.InfoData, error) { if saleSvcName == utils.StringEmpty || saleId < utils.NumberOne { return nil, nil } cli, err := rpcclient.Get(saleSvcName) if err != nil { return nil, err } data, err := salepb.NewSaleClient(cli.Conn()).InfoInternal(ctx, &salepb.InfoReq{Id: saleId}) if err != nil { if st, ok := status.FromError(err); ok && st.Code() == codes.NotFound { return nil, nil } return nil, err } return data, nil } func toProfileSale(data *salepb.InfoData) *dao.ProfileSaleData { if data == nil { return nil } out := &dao.ProfileSaleData{ Id: data.Id, SaleId: data.SaleId, Name: data.Name, Mobile: data.Mobile, OriginMobile: data.OriginMobile, Avatar: data.Avatar, Account: data.Account, Type: data.Type, Sex: data.Sex, BirthDate: data.BirthDate, Status: data.Status, GroupId: data.GroupId, Address: data.Address, ProvinceId: data.ProvinceId, CityId: data.CityId, DistrictId: data.DistrictId, TerritoryId: data.TerritoryId, TerritoryName: data.TerritoryName, IdCardFront: data.IdCardFront, IdCardBack: data.IdCardBack, BusinessLicense: data.BusinessLicense, } if data.Group != nil { out.GroupName = data.Group.Name } if data.Region != nil { out.Region = &dao.ProfileSaleRegion{ Province: data.Region.Province, City: data.Region.City, District: data.Region.District, } } return out }