feat: openid login

This commit is contained in:
zzw
2026-09-02 17:37:12 +08:00
parent 540f74f9b7
commit bb14f9e324
38 changed files with 1627 additions and 1091 deletions
@@ -0,0 +1,89 @@
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
}