90 lines
2.3 KiB
Go
90 lines
2.3 KiB
Go
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
|
|
}
|