refactor(tool): 为DeepCopy和ShallowCopy添加配置选项支持

为copy工具函数添加了CopyOption配置选项,允许调用方自定义复制行为。主要修改包括:
1. 新增CopyOption函数类型和CopyWithIgnoreEmpty选项
2. 修改DeepCopy和ShallowCopy函数签名以支持可变选项参数
3. 重构内部实现以应用传入的选项配置

这使得调用方可以灵活控制是否忽略空值等复制行为,增强了工具函数的可配置性。
This commit is contained in:
missish
2025-05-31 10:40:36 +08:00
parent 207ffc854e
commit 581e3ee48a
2 changed files with 33 additions and 9 deletions
@@ -39,7 +39,7 @@ func (l *UpdatePaymentMethodLogic) UpdatePaymentMethod(req *types.UpdatePaymentM
return nil, errors.Wrapf(xerr.NewErrCode(xerr.DatabaseQueryError), "find payment method error: %s", err.Error())
}
config := parsePaymentPlatformConfig(l.ctx, payment.ParsePlatform(req.Platform), req.Config)
tool.DeepCopy(method, req)
tool.DeepCopy(method, req, tool.CopyWithIgnoreEmpty(false))
method.Config = config
if err := l.svcCtx.PaymentModel.Update(l.ctx, method); err != nil {
l.Errorw("update payment method error", logger.Field("id", req.Id), logger.Field("error", err.Error()))