Files
full/module/base/feedback/internal/logic/method/remark.go
2026-09-22 21:15:34 +08:00

63 lines
1.6 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// Package method 业务逻辑方法包,实现反馈相关的业务操作
package method
import (
"context"
"errors"
"time"
"bsm/full/module/base/feedback/internal/impl"
"bsm/full/module/base/feedback/internal/models"
pb "bsm/full/module/base/feedback/pb"
"git.apinb.com/bsm-sdk/core/errcode"
"git.apinb.com/bsm-sdk/core/service"
"git.apinb.com/bsm-sdk/core/vars"
"gorm.io/gorm"
)
// Remark 添加或更新反馈记录的备注和状态
// ctx: 上下文
// in: 备注请求参数包含记录ID、备注内容和状态
// 返回: 操作结果
func Remark(ctx context.Context, in *pb.RemarkRequest) (reply *pb.StatusReply, err error) {
// 解析用户认证信息
auth, err := service.ParseMetaCtx(ctx, nil)
if err != nil {
return nil, err
}
// 验证请求参数
if in.GetIdentity() == "" {
return nil, errcode.ErrInvalidArgument
}
// 归属校验:仅本人或管理端可修改备注与状态
exist := new(models.FeedbackItem)
if err = impl.DBService.Where("identity = ?", in.GetIdentity()).First(exist).Error; err != nil {
if errors.Is(err, gorm.ErrRecordNotFound) {
return nil, errcode.ErrPermissionDenied
}
return nil, err
}
if !canAccess(auth, exist.PassportIdentity) {
return nil, errcode.ErrPermissionDenied
}
// 构建更新记录
record := &models.FeedbackItem{
Remark: in.GetRemark(), // 备注内容
Status: in.GetStatus(), // 状态
}
// 更新记录的备注和状态
err = impl.DBService.Where("identity = ?", in.GetIdentity()).Updates(record).Error
if err != nil {
return nil, err
}
return &pb.StatusReply{
Message: vars.OK,
Timeseq: time.Now().UnixMilli(),
}, nil
}