bug修改

This commit is contained in:
2025-08-20 19:52:13 +08:00
parent de51102af6
commit ff2996853a
8 changed files with 504 additions and 42 deletions

View File

@@ -50,7 +50,6 @@ func CheckUserExists(userID string) (bool, error) {
return count > 0, nil
}
// 获取当前用户的好友ID列表
// 获取当前用户的好友ID列表
func getFriendUserIDs(userID string) ([]string, error) {
var friends []model.FriendRelationship

View File

@@ -91,10 +91,62 @@ func HandleFriendApplication(applicationID int64, status model.FriendApplication
return nil
}
// GetApplications 获取收到的好友申请/获取发出的好友申请
// GetApplications 获取好友申请
func GetApplications(req user.ListFriendRelationshipReq, status ...model.FriendApplicationStatus) ([]*user.FriendRelationshipListInfo, error) {
tx := DB
var applications []*model.FriendRelationship
query := tx.Where("target_user_id = ? ", req.UserID)
if len(status) > 0 {
query = query.Where("status IN (?)", status)
}
if err := query.Order("created_at DESC").Find(&applications).Error; err != nil {
return nil, err
}
var result []*user.FriendRelationshipListInfo
for _, v := range applications {
info := &user.FriendRelationshipListInfo{
ID: int64(v.ID),
ApplicationMessage: v.ApplicationMessage,
Status: int8(v.Status),
}
// 发出的申请获取目标用户信息TargetUserID
if v.ApplicantID == req.UserID {
info.UserID = v.TargetUserID
userInfo, err := InfoUser(v.TargetUserID) // 假设改为获取单个用户的函数
if err != nil {
hlog.Errorf("获取目标用户 %s 信息失败: %v", v.TargetUserID, err)
// 可设置默认值(如"未知用户"),避免漏显示
info.UserName = "未知用户"
} else {
info.UserName = userInfo.UserName
info.AvatarImageURL = userInfo.AvatarImageURL
}
} else if v.TargetUserID == req.UserID { // 收到的申请获取申请人信息ApplicantID
info.UserID = v.ApplicantID
userInfo, err := InfoUser(v.ApplicantID)
if err != nil {
hlog.Errorf("获取申请人 %s 信息失败: %v", v.ApplicantID, err)
info.UserName = "未知用户"
} else {
info.UserName = userInfo.UserName
info.AvatarImageURL = userInfo.AvatarImageURL
}
}
result = append(result, info)
}
return result, nil
}
// GetApplicationsRecord 获取好友申请记录
func GetApplicationsRecord(req user.ListFriendRelationshipReq, status ...model.FriendApplicationStatus) ([]*user.FriendRelationshipListInfo, error) {
tx := DB
var applications []*model.FriendRelationship
query := tx.Where("target_user_id = ? or applicant_id = ?", req.UserID, req.UserID)

View File

@@ -11,41 +11,49 @@ import (
"time"
)
func GetUserAssets(req user_assets.GetUserAssetsRequest) (*user_assets.UserAssets, error) {
// 检查用户ID是否为空
if req.UserID == "" {
return nil, errors.New("用户ID不能为空")
func GetUserAssets(req user_assets.GetUserAssetsRequest) (*user_assets.UserAssets, error) { // 1. 参数验证 if req.UserID == "" { return nil, errors.New("用户ID不能为空") }
// 2. 初始化响应结构体
userAssets := &user_assets.UserAssets{
UserID: req.UserID, // 确保用户 ID 始终返回
}
// 初始化接收结果的结构体
userAssets := &user_assets.UserAssets{}
// 构建查询:关联用户资产主表和各类资产表
db := DB.Model(&model.UserAssets{}).
Joins("JOIN diamond ON user_assets.user_id = diamond.user_id").
Joins("JOIN gold_bean ON user_assets.user_id = gold_bean.user_id").
Joins("JOIN gold_leaf ON user_assets.user_id = gold_leaf.user_id").
Where("user_assets.user_id = ?", req.UserID)
// 执行查询并扫描结果到结构体
err := db.Select(`
user_assets.user_id,
user_assets.status,
user_assets.created_at,
user_assets.updated_at,
diamond.diamond,
gold_bean.gold_bean,
gold_leaf.gold_leaf
`).First(userAssets).Error
// 处理查询错误
// 3. 查询用户资产主表信息(状态、时间戳)
var mainAsset model.UserAssets
err := DB.Model(&model.UserAssets{}).
Where("user_id = ?", req.UserID).
First(&mainAsset).Error
// 4. 处理主表记录不存在的情况(不直接报错,允许资产明细单独存在)
if err != nil {
if errors.Is(err, gorm.ErrRecordNotFound) {
return nil, errors.New("用户资产记录不存在")
if !errors.Is(err, gorm.ErrRecordNotFound) {
// 非 "记录不存在" 的数据库错误才返回错误
return nil, fmt.Errorf("查询用户资产主表失败: % w", err)
}
return nil, fmt.Errorf("查询用户资产失败: %w", err)
}
}
// 5. 分别查询各类资产明细(避免 JOIN 导致的记录缺失问题)
var (
diamond model.Diamond
goldBean model.GoldBean
goldLeaf model.GoldLeaf
)
// 查询钻石
if err := DB.Where("user_id = ?", req.UserID).First(&diamond).Error; err != nil && !errors.Is(err, gorm.ErrRecordNotFound) {
return nil, fmt.Errorf("查询钻石资产失败: %w", err)
}
userAssets.Diamond = diamond.Diamond.String()
// 查询金豆
if err := DB.Where("user_id = ?", req.UserID).First(&goldBean).Error; err != nil && !errors.Is(err, gorm.ErrRecordNotFound) {
return nil, fmt.Errorf("查询金豆资产失败: %w", err)
}
userAssets.GoldBean = goldBean.GoldBean.String()
// 查询金叶
if err := DB.Where("user_id = ?", req.UserID).First(&goldLeaf).Error; err != nil && !errors.Is(err, gorm.ErrRecordNotFound) {
return nil, fmt.Errorf("查询金叶资产失败: %w", err)
}
userAssets.GoldLeaf = goldLeaf.GoldLeaf.String()
// 6. 检查是否所有资产都不存在(可选:根据业务需求决定是否返回错误)
if mainAsset.ID == 0 && diamond.ID == 0 && goldBean.ID == 0 && goldLeaf.ID == 0 {
return nil, errors.New("用户资产记录不存在")
}
return userAssets, nil
}
@@ -65,6 +73,20 @@ func AddDiamond(req user_assets.AddDiamondRequest) error {
return errors.New("钻石数量必须大于0")
}
// 查询银行卡信息,验证存在性和归属关系
var bankcard model.Bankcard
if err := DB.Where("bankcard_number = ?", req.BankcardNumber).First(&bankcard).Error; err != nil {
if errors.Is(err, gorm.ErrRecordNotFound) {
return errors.New("银行卡不存在")
}
return fmt.Errorf("查询银行卡信息失败: %w", err)
}
// 4. 验证用户ID如果指定
if bankcard.UserID != req.UserID {
return errors.New("银行卡不属于指定用户")
}
// 3. 使用事务确保数据一致性
return DB.Transaction(func(tx *gorm.DB) error {
// 4. 查询用户当前钻石数量
@@ -110,7 +132,7 @@ func AddDiamond(req user_assets.AddDiamondRequest) error {
AfterAmount: afterAmount,
BusinessType: "recharge_diamond", // 业务类型:钻石充值
BusinessID: generateBusinessID(), // 生成业务唯一ID
Remark: fmt.Sprintf("银行卡充值: %s", req.BankcardNumber),
Remark: req.BankcardNumber,
Operator: "system",
SourceType: model.SourceTypeBankcard,
}
@@ -203,7 +225,7 @@ func AddGoldBean(req user_assets.AddGoldBeanRequest) error {
AfterAmount: afterAmount,
BusinessType: "recharge_gold_bean", // 业务类型:金豆充值
BusinessID: generateGoldBeanBusinessID(),
Remark: fmt.Sprintf("银行卡充值: %s", req.BankcardNumber),
Remark: req.BankcardNumber,
Operator: "system",
SourceType: model.SourceTypeBankcard,
}
@@ -296,7 +318,7 @@ func AddGoldLeaf(req user_assets.AddGoldLeafRequest) error {
AfterAmount: afterAmount,
BusinessType: "recharge_gold_leaf", // 业务类型:金叶充值
BusinessID: generateGoldLeafBusinessID(),
Remark: fmt.Sprintf("银行卡充值: %s", req.BankcardNumber),
Remark: req.BankcardNumber,
Operator: "system",
SourceType: model.SourceTypeBankcard,
}
@@ -582,7 +604,7 @@ func ListConsumptionByBankcard(req user_assets.ListConsumptionByBankcardRequest)
// 5. 构建查询条件用户ID + 银行卡来源类型
query := DB.Model(&model.ConsumptionRecord{}).
Where("user_id = ? AND source_type = ?", targetUserID, model.SourceTypeBankcard)
Where("user_id = ? AND source_type = ? AND remark= ?", targetUserID, model.SourceTypeBankcard, req.BankcardNumber)
// 6. 查询总记录数
var total int64

View File

@@ -88,7 +88,7 @@ func ListFriendRelationship(ctx context.Context, c *app.RequestContext) {
c.JSON(consts.StatusBadRequest, err.Error())
return
}
data, err := mysql.GetApplications(req, model.ApplicationPending, model.ApplicationAccepted, model.ApplicationRejected)
data, err := mysql.GetApplications(req, model.ApplicationPending)
if err != nil {
c.JSON(consts.StatusBadRequest, err.Error())
return
@@ -98,3 +98,25 @@ func ListFriendRelationship(ctx context.Context, c *app.RequestContext) {
resp.Total = int64(len(data))
c.JSON(consts.StatusOK, resp)
}
// ListFriendRelationshipRecord .
// @router /v1/user/friendRelationship/record/ [GET]
func ListFriendRelationshipRecord(ctx context.Context, c *app.RequestContext) {
var err error
var req user.ListFriendRelationshipReq
err = c.BindAndValidate(&req)
if err != nil {
c.String(consts.StatusBadRequest, err.Error())
return
}
data, err := mysql.GetApplicationsRecord(req, model.ApplicationPending, model.ApplicationAccepted, model.ApplicationRejected)
if err != nil {
c.JSON(consts.StatusBadRequest, err.Error())
return
}
resp := new(user.ListFriendRelationshipRes)
resp.FriendRelationshipInfos = data
resp.Total = int64(len(data))
c.JSON(consts.StatusOK, resp)
}

View File

@@ -1822,12 +1822,12 @@ func (p *UserInfoReq) String() string {
}
type CreateUserRequest struct {
Name string `thrift:"name,1" form:"name" json:"name" vd:"(len($) > 0 && len($) < 100)"`
Name string `thrift:"name,1" form:"name" form:"name" json:"name" vd:"(len($) > 0 && len($) < 100)"`
Gender Gender `thrift:"gender,2" form:"gender" json:"gender" vd:"($ == 1||$ == 2)"`
Age int64 `thrift:"age,3" form:"age" json:"age" vd:"$>0"`
Mobile string `thrift:"mobile,4" form:"mobile" json:"mobile" vd:"(len($) > 0 && len($) < 12)"`
Area int64 `thrift:"area,5" form:"area" json:"area" vd:"$>0"`
UserPassword string `thrift:"user_password,6" form:"user_password" json:"user_password" vd:"(len($) > 0 && len($) < 15)"`
Area int64 `thrift:"area,5" form:"area" form:"area" json:"area" vd:"$>0"`
UserPassword string `thrift:"user_password,6" form:"user_password" form:"user_password" json:"user_password" vd:"(len($) > 0 && len($) < 15)"`
}
func NewCreateUserRequest() *CreateUserRequest {
@@ -18787,6 +18787,8 @@ type FriendRelationshipService interface {
UpdateFriendRelationship(ctx context.Context, req *UpdateFriendRelationshipReq) (r *UpdateFriendRelationshipRes, err error)
ListFriendRelationship(ctx context.Context, req *ListFriendRelationshipReq) (r *ListFriendRelationshipRes, err error)
ListFriendRelationshipRecord(ctx context.Context, req *ListFriendRelationshipReq) (r *ListFriendRelationshipRes, err error)
}
type FriendRelationshipServiceClient struct {
@@ -18842,6 +18844,15 @@ func (p *FriendRelationshipServiceClient) ListFriendRelationship(ctx context.Con
}
return _result.GetSuccess(), nil
}
func (p *FriendRelationshipServiceClient) ListFriendRelationshipRecord(ctx context.Context, req *ListFriendRelationshipReq) (r *ListFriendRelationshipRes, err error) {
var _args FriendRelationshipServiceListFriendRelationshipRecordArgs
_args.Req = req
var _result FriendRelationshipServiceListFriendRelationshipRecordResult
if err = p.Client_().Call(ctx, "ListFriendRelationshipRecord", &_args, &_result); err != nil {
return
}
return _result.GetSuccess(), nil
}
type ChatGroupService interface {
CreateChatGroup(ctx context.Context, req *CreateChatGroupReq) (r *CreateChatGroupRes, err error)
@@ -23285,6 +23296,7 @@ func NewFriendRelationshipServiceProcessor(handler FriendRelationshipService) *F
self.AddToProcessorMap("CreateFriendRelationship", &friendRelationshipServiceProcessorCreateFriendRelationship{handler: handler})
self.AddToProcessorMap("UpdateFriendRelationship", &friendRelationshipServiceProcessorUpdateFriendRelationship{handler: handler})
self.AddToProcessorMap("ListFriendRelationship", &friendRelationshipServiceProcessorListFriendRelationship{handler: handler})
self.AddToProcessorMap("ListFriendRelationshipRecord", &friendRelationshipServiceProcessorListFriendRelationshipRecord{handler: handler})
return self
}
func (p *FriendRelationshipServiceProcessor) Process(ctx context.Context, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {
@@ -23449,6 +23461,54 @@ func (p *friendRelationshipServiceProcessorListFriendRelationship) Process(ctx c
return true, err
}
type friendRelationshipServiceProcessorListFriendRelationshipRecord struct {
handler FriendRelationshipService
}
func (p *friendRelationshipServiceProcessorListFriendRelationshipRecord) Process(ctx context.Context, seqId int32, iprot, oprot thrift.TProtocol) (success bool, err thrift.TException) {
args := FriendRelationshipServiceListFriendRelationshipRecordArgs{}
if err = args.Read(iprot); err != nil {
iprot.ReadMessageEnd()
x := thrift.NewTApplicationException(thrift.PROTOCOL_ERROR, err.Error())
oprot.WriteMessageBegin("ListFriendRelationshipRecord", thrift.EXCEPTION, seqId)
x.Write(oprot)
oprot.WriteMessageEnd()
oprot.Flush(ctx)
return false, err
}
iprot.ReadMessageEnd()
var err2 error
result := FriendRelationshipServiceListFriendRelationshipRecordResult{}
var retval *ListFriendRelationshipRes
if retval, err2 = p.handler.ListFriendRelationshipRecord(ctx, args.Req); err2 != nil {
x := thrift.NewTApplicationException(thrift.INTERNAL_ERROR, "Internal error processing ListFriendRelationshipRecord: "+err2.Error())
oprot.WriteMessageBegin("ListFriendRelationshipRecord", thrift.EXCEPTION, seqId)
x.Write(oprot)
oprot.WriteMessageEnd()
oprot.Flush(ctx)
return true, err2
} else {
result.Success = retval
}
if err2 = oprot.WriteMessageBegin("ListFriendRelationshipRecord", thrift.REPLY, seqId); err2 != nil {
err = err2
}
if err2 = result.Write(oprot); err == nil && err2 != nil {
err = err2
}
if err2 = oprot.WriteMessageEnd(); err == nil && err2 != nil {
err = err2
}
if err2 = oprot.Flush(ctx); err == nil && err2 != nil {
err = err2
}
if err != nil {
return
}
return true, err
}
type FriendRelationshipServiceCreateFriendRelationshipArgs struct {
Req *CreateFriendRelationshipReq `thrift:"req,1"`
}
@@ -24325,6 +24385,298 @@ func (p *FriendRelationshipServiceListFriendRelationshipResult) String() string
}
type FriendRelationshipServiceListFriendRelationshipRecordArgs struct {
Req *ListFriendRelationshipReq `thrift:"req,1"`
}
func NewFriendRelationshipServiceListFriendRelationshipRecordArgs() *FriendRelationshipServiceListFriendRelationshipRecordArgs {
return &FriendRelationshipServiceListFriendRelationshipRecordArgs{}
}
func (p *FriendRelationshipServiceListFriendRelationshipRecordArgs) InitDefault() {
}
var FriendRelationshipServiceListFriendRelationshipRecordArgs_Req_DEFAULT *ListFriendRelationshipReq
func (p *FriendRelationshipServiceListFriendRelationshipRecordArgs) GetReq() (v *ListFriendRelationshipReq) {
if !p.IsSetReq() {
return FriendRelationshipServiceListFriendRelationshipRecordArgs_Req_DEFAULT
}
return p.Req
}
var fieldIDToName_FriendRelationshipServiceListFriendRelationshipRecordArgs = map[int16]string{
1: "req",
}
func (p *FriendRelationshipServiceListFriendRelationshipRecordArgs) IsSetReq() bool {
return p.Req != nil
}
func (p *FriendRelationshipServiceListFriendRelationshipRecordArgs) Read(iprot thrift.TProtocol) (err error) {
var fieldTypeId thrift.TType
var fieldId int16
if _, err = iprot.ReadStructBegin(); err != nil {
goto ReadStructBeginError
}
for {
_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()
if err != nil {
goto ReadFieldBeginError
}
if fieldTypeId == thrift.STOP {
break
}
switch fieldId {
case 1:
if fieldTypeId == thrift.STRUCT {
if err = p.ReadField1(iprot); err != nil {
goto ReadFieldError
}
} else if err = iprot.Skip(fieldTypeId); err != nil {
goto SkipFieldError
}
default:
if err = iprot.Skip(fieldTypeId); err != nil {
goto SkipFieldError
}
}
if err = iprot.ReadFieldEnd(); err != nil {
goto ReadFieldEndError
}
}
if err = iprot.ReadStructEnd(); err != nil {
goto ReadStructEndError
}
return nil
ReadStructBeginError:
return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err)
ReadFieldBeginError:
return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err)
ReadFieldError:
return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_FriendRelationshipServiceListFriendRelationshipRecordArgs[fieldId]), err)
SkipFieldError:
return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err)
ReadFieldEndError:
return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err)
ReadStructEndError:
return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
}
func (p *FriendRelationshipServiceListFriendRelationshipRecordArgs) ReadField1(iprot thrift.TProtocol) error {
_field := NewListFriendRelationshipReq()
if err := _field.Read(iprot); err != nil {
return err
}
p.Req = _field
return nil
}
func (p *FriendRelationshipServiceListFriendRelationshipRecordArgs) Write(oprot thrift.TProtocol) (err error) {
var fieldId int16
if err = oprot.WriteStructBegin("ListFriendRelationshipRecord_args"); err != nil {
goto WriteStructBeginError
}
if p != nil {
if err = p.writeField1(oprot); err != nil {
fieldId = 1
goto WriteFieldError
}
}
if err = oprot.WriteFieldStop(); err != nil {
goto WriteFieldStopError
}
if err = oprot.WriteStructEnd(); err != nil {
goto WriteStructEndError
}
return nil
WriteStructBeginError:
return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err)
WriteFieldError:
return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err)
WriteFieldStopError:
return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err)
WriteStructEndError:
return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err)
}
func (p *FriendRelationshipServiceListFriendRelationshipRecordArgs) writeField1(oprot thrift.TProtocol) (err error) {
if err = oprot.WriteFieldBegin("req", thrift.STRUCT, 1); err != nil {
goto WriteFieldBeginError
}
if err := p.Req.Write(oprot); err != nil {
return err
}
if err = oprot.WriteFieldEnd(); err != nil {
goto WriteFieldEndError
}
return nil
WriteFieldBeginError:
return thrift.PrependError(fmt.Sprintf("%T write field 1 begin error: ", p), err)
WriteFieldEndError:
return thrift.PrependError(fmt.Sprintf("%T write field 1 end error: ", p), err)
}
func (p *FriendRelationshipServiceListFriendRelationshipRecordArgs) String() string {
if p == nil {
return "<nil>"
}
return fmt.Sprintf("FriendRelationshipServiceListFriendRelationshipRecordArgs(%+v)", *p)
}
type FriendRelationshipServiceListFriendRelationshipRecordResult struct {
Success *ListFriendRelationshipRes `thrift:"success,0,optional"`
}
func NewFriendRelationshipServiceListFriendRelationshipRecordResult() *FriendRelationshipServiceListFriendRelationshipRecordResult {
return &FriendRelationshipServiceListFriendRelationshipRecordResult{}
}
func (p *FriendRelationshipServiceListFriendRelationshipRecordResult) InitDefault() {
}
var FriendRelationshipServiceListFriendRelationshipRecordResult_Success_DEFAULT *ListFriendRelationshipRes
func (p *FriendRelationshipServiceListFriendRelationshipRecordResult) GetSuccess() (v *ListFriendRelationshipRes) {
if !p.IsSetSuccess() {
return FriendRelationshipServiceListFriendRelationshipRecordResult_Success_DEFAULT
}
return p.Success
}
var fieldIDToName_FriendRelationshipServiceListFriendRelationshipRecordResult = map[int16]string{
0: "success",
}
func (p *FriendRelationshipServiceListFriendRelationshipRecordResult) IsSetSuccess() bool {
return p.Success != nil
}
func (p *FriendRelationshipServiceListFriendRelationshipRecordResult) Read(iprot thrift.TProtocol) (err error) {
var fieldTypeId thrift.TType
var fieldId int16
if _, err = iprot.ReadStructBegin(); err != nil {
goto ReadStructBeginError
}
for {
_, fieldTypeId, fieldId, err = iprot.ReadFieldBegin()
if err != nil {
goto ReadFieldBeginError
}
if fieldTypeId == thrift.STOP {
break
}
switch fieldId {
case 0:
if fieldTypeId == thrift.STRUCT {
if err = p.ReadField0(iprot); err != nil {
goto ReadFieldError
}
} else if err = iprot.Skip(fieldTypeId); err != nil {
goto SkipFieldError
}
default:
if err = iprot.Skip(fieldTypeId); err != nil {
goto SkipFieldError
}
}
if err = iprot.ReadFieldEnd(); err != nil {
goto ReadFieldEndError
}
}
if err = iprot.ReadStructEnd(); err != nil {
goto ReadStructEndError
}
return nil
ReadStructBeginError:
return thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err)
ReadFieldBeginError:
return thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err)
ReadFieldError:
return thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_FriendRelationshipServiceListFriendRelationshipRecordResult[fieldId]), err)
SkipFieldError:
return thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err)
ReadFieldEndError:
return thrift.PrependError(fmt.Sprintf("%T read field end error", p), err)
ReadStructEndError:
return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
}
func (p *FriendRelationshipServiceListFriendRelationshipRecordResult) ReadField0(iprot thrift.TProtocol) error {
_field := NewListFriendRelationshipRes()
if err := _field.Read(iprot); err != nil {
return err
}
p.Success = _field
return nil
}
func (p *FriendRelationshipServiceListFriendRelationshipRecordResult) Write(oprot thrift.TProtocol) (err error) {
var fieldId int16
if err = oprot.WriteStructBegin("ListFriendRelationshipRecord_result"); err != nil {
goto WriteStructBeginError
}
if p != nil {
if err = p.writeField0(oprot); err != nil {
fieldId = 0
goto WriteFieldError
}
}
if err = oprot.WriteFieldStop(); err != nil {
goto WriteFieldStopError
}
if err = oprot.WriteStructEnd(); err != nil {
goto WriteStructEndError
}
return nil
WriteStructBeginError:
return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err)
WriteFieldError:
return thrift.PrependError(fmt.Sprintf("%T write field %d error: ", p, fieldId), err)
WriteFieldStopError:
return thrift.PrependError(fmt.Sprintf("%T write field stop error: ", p), err)
WriteStructEndError:
return thrift.PrependError(fmt.Sprintf("%T write struct end error: ", p), err)
}
func (p *FriendRelationshipServiceListFriendRelationshipRecordResult) writeField0(oprot thrift.TProtocol) (err error) {
if p.IsSetSuccess() {
if err = oprot.WriteFieldBegin("success", thrift.STRUCT, 0); err != nil {
goto WriteFieldBeginError
}
if err := p.Success.Write(oprot); err != nil {
return err
}
if err = oprot.WriteFieldEnd(); err != nil {
goto WriteFieldEndError
}
}
return nil
WriteFieldBeginError:
return thrift.PrependError(fmt.Sprintf("%T write field 0 begin error: ", p), err)
WriteFieldEndError:
return thrift.PrependError(fmt.Sprintf("%T write field 0 end error: ", p), err)
}
func (p *FriendRelationshipServiceListFriendRelationshipRecordResult) String() string {
if p == nil {
return "<nil>"
}
return fmt.Sprintf("FriendRelationshipServiceListFriendRelationshipRecordResult(%+v)", *p)
}
type ChatGroupServiceProcessor struct {
processorMap map[string]thrift.TProcessorFunction
handler ChatGroupService

View File

@@ -335,3 +335,13 @@ func _checkotpMw() []app.HandlerFunc {
// your code...
return nil
}
func _recordMw() []app.HandlerFunc {
// your code...
return nil
}
func _listfriendrelationshiprecordMw() []app.HandlerFunc {
// your code...
return nil
}

View File

@@ -94,6 +94,10 @@ func Register(r *server.Hertz) {
_friendrelationship.GET("/", append(_listfriendrelationshipMw(), user.ListFriendRelationship)...)
_friendrelationship.POST("/", append(_createfriendrelationshipMw(), user.CreateFriendRelationship)...)
_friendrelationship.PUT("/", append(_updatefriendrelationshipMw(), user.UpdateFriendRelationship)...)
{
_record := _friendrelationship.Group("/record", _recordMw()...)
_record.GET("/", append(_listfriendrelationshiprecordMw(), user.ListFriendRelationshipRecord)...)
}
}
{
_login := _user0.Group("/login", _loginMw()...)

View File

@@ -278,7 +278,8 @@ struct ListFriendRelationshipRes{
service FriendRelationshipService {
CreateFriendRelationshipRes CreateFriendRelationship(1:CreateFriendRelationshipReq req)(api.post="/v1/user/friendRelationship/") //发起好友申请
UpdateFriendRelationshipRes UpdateFriendRelationship(1:UpdateFriendRelationshipReq req)(api.put="/v1/user/friendRelationship/") //同意或拒绝好友申请
ListFriendRelationshipRes ListFriendRelationship(1:ListFriendRelationshipReq req)(api.get="/v1/user/friendRelationship/") //获取添加或申请记录列表
ListFriendRelationshipRes ListFriendRelationship(1:ListFriendRelationshipReq req)(api.get="/v1/user/friendRelationship/") //获取好友添加请求列表
ListFriendRelationshipRes ListFriendRelationshipRecord(1:ListFriendRelationshipReq req)(api.get="/v1/user/friendRelationship/record/") //获取好友添加记录列表
}