Files
juwan-backend/app/dispute/rpc/internal/logic/updateDisputesLogic.go

63 lines
1.5 KiB
Go

package logic
import (
"context"
"time"
"juwan-backend/app/dispute/rpc/internal/svc"
"juwan-backend/app/dispute/rpc/pb"
"github.com/zeromicro/go-zero/core/logx"
)
type UpdateDisputesLogic struct {
ctx context.Context
svcCtx *svc.ServiceContext
logx.Logger
}
func NewUpdateDisputesLogic(ctx context.Context, svcCtx *svc.ServiceContext) *UpdateDisputesLogic {
return &UpdateDisputesLogic{
ctx: ctx,
svcCtx: svcCtx,
Logger: logx.WithContext(ctx),
}
}
func (l *UpdateDisputesLogic) UpdateDisputes(in *pb.UpdateDisputesReq) (*pb.UpdateDisputesResp, error) {
updater := l.svcCtx.DisputeModelRW.Disputes.UpdateOneID(in.GetId())
if in.Status != nil {
updater = updater.SetStatus(in.GetStatus())
}
if in.Result != nil {
updater = updater.SetResult(in.GetResult())
}
if in.RespondentReason != nil {
updater = updater.SetRespondentReason(in.GetRespondentReason())
}
if len(in.GetRespondentEvidence()) > 0 {
updater = updater.SetRespondentEvidence(toTextArray(in.GetRespondentEvidence()))
}
if in.AppealReason != nil {
updater = updater.SetAppealReason(in.GetAppealReason())
}
if in.AppealedAt != nil {
updater = updater.SetAppealedAt(time.Unix(in.GetAppealedAt(), 0))
}
if in.ResolvedBy != nil {
updater = updater.SetResolvedBy(in.GetResolvedBy())
}
if in.ResolvedAt != nil {
updater = updater.SetResolvedAt(time.Unix(in.GetResolvedAt(), 0))
}
_, err := updater.Save(l.ctx)
if err != nil {
logx.Errorf("updateDisputes err: %v", err)
return nil, err
}
return &pb.UpdateDisputesResp{}, nil
}