fix: resolve admin acceptance defects

This commit is contained in:
richjohnrambo
2026-10-16 10:14:41 +08:00
parent c6ec45cccf
commit 2b3d855bcc
39 changed files with 1079 additions and 204 deletions
+68 -4
View File
@@ -321,7 +321,12 @@ func (s *sSysAppMember) Category(ctx context.Context, in *sysin.AppMemberCategor
func (s *sSysAppMember) PaymentList(ctx context.Context, in *sysin.AppMemberPaymentListInp) (list []*sysin.AppMemberPaymentModel, err error) {
c := dao.AppMemberPaymentAccount.Columns()
err = s.paymentModel(ctx).Fields(c.Id, c.MemberId, c.AccountType, c.BankCode, c.BankName, c.HolderMask, c.MobileMask, c.AccountNoMask, c.QrAttachmentId, c.VerifyStatus, c.IsDefault, c.CreatedAt, c.UpdatedAt).Where(c.MemberId, in.MemberId).OrderDesc(c.IsDefault).OrderDesc(c.Id).Scan(&list)
ac := dao.SysAttachment.Columns()
err = s.paymentModel(ctx).As("p").
LeftJoin(dao.SysAttachment.Table()+" wq", col("wq", ac.Id)+"="+col("p", c.WechatQrAttachmentId)).
LeftJoin(dao.SysAttachment.Table()+" aq", col("aq", ac.Id)+"="+col("p", c.AlipayQrAttachmentId)).
Fields(col("p", c.Id), col("p", c.MemberId), col("p", c.AccountType), col("p", c.BankCode), col("p", c.BankName), col("p", c.HolderMask), col("p", c.IdentityNoMask), col("p", c.MobileMask), col("p", c.AccountNoMask), col("p", c.DigitalRmbCodeMask), col("p", c.QrAttachmentId), col("p", c.WechatQrAttachmentId), col("p", c.AlipayQrAttachmentId), fmt.Sprintf("COALESCE(%s,'') wechat_qr_url", col("wq", ac.FileUrl)), fmt.Sprintf("COALESCE(%s,'') alipay_qr_url", col("aq", ac.FileUrl)), col("p", c.VerifyStatus), col("p", c.IsDefault), col("p", c.CreatedAt), col("p", c.UpdatedAt)).
Where(col("p", c.MemberId), in.MemberId).OrderDesc(col("p", c.IsDefault)).OrderDesc(col("p", c.Id)).Scan(&list)
if err != nil {
err = gerror.Wrap(err, "获取收款账户失败")
}
@@ -330,7 +335,23 @@ func (s *sSysAppMember) PaymentList(ctx context.Context, in *sysin.AppMemberPaym
func (s *sSysAppMember) PaymentEdit(ctx context.Context, in *sysin.AppMemberPaymentEditInp) error {
c := dao.AppMemberPaymentAccount.Columns()
data := g.Map{c.MemberId: in.MemberId, c.AccountType: in.AccountType, c.BankCode: in.BankCode, c.BankName: in.BankName, c.QrAttachmentId: in.QrAttachmentId, c.VerifyStatus: in.VerifyStatus, c.IsDefault: in.IsDefault, c.UpdatedBy: contexts.GetUserId(ctx)}
attachmentColumns := dao.SysAttachment.Columns()
if in.WechatQrAttachmentId == 0 && in.WechatQrUrl != "" {
_ = dao.SysAttachment.Ctx(ctx).Fields(attachmentColumns.Id).Where(attachmentColumns.FileUrl, in.WechatQrUrl).OrderDesc(attachmentColumns.Id).Limit(1).Scan(&in.WechatQrAttachmentId)
}
if in.AlipayQrAttachmentId == 0 && in.AlipayQrUrl != "" {
_ = dao.SysAttachment.Ctx(ctx).Fields(attachmentColumns.Id).Where(attachmentColumns.FileUrl, in.AlipayQrUrl).OrderDesc(attachmentColumns.Id).Limit(1).Scan(&in.AlipayQrAttachmentId)
}
data := g.Map{c.MemberId: in.MemberId, c.AccountType: in.AccountType, c.BankCode: in.BankCode, c.BankName: in.BankName, c.VerifyStatus: in.VerifyStatus, c.IsDefault: in.IsDefault, c.UpdatedBy: contexts.GetUserId(ctx)}
if in.QrAttachmentId > 0 {
data[c.QrAttachmentId] = in.QrAttachmentId
}
if in.WechatQrAttachmentId > 0 {
data[c.WechatQrAttachmentId] = in.WechatQrAttachmentId
}
if in.AlipayQrAttachmentId > 0 {
data[c.AlipayQrAttachmentId] = in.AlipayQrAttachmentId
}
if in.Holder != "" {
v, e := encrypt.EncryptField(ctx, in.Holder)
if e != nil {
@@ -347,6 +368,19 @@ func (s *sSysAppMember) PaymentEdit(ctx context.Context, in *sysin.AppMemberPaym
data[c.MobileCipher] = v
data[c.MobileMask] = encrypt.MaskMobile(in.Mobile)
}
if in.IdentityNo != "" {
v, e := encrypt.EncryptField(ctx, in.IdentityNo)
if e != nil {
return e
}
h, e := encrypt.HashField(ctx, in.IdentityNo)
if e != nil {
return e
}
data[c.IdentityNoCipher] = v
data[c.IdentityNoHash] = h
data[c.IdentityNoMask] = encrypt.MaskAccount(in.IdentityNo)
}
if in.AccountNo != "" {
v, e := encrypt.EncryptField(ctx, in.AccountNo)
if e != nil {
@@ -360,6 +394,19 @@ func (s *sSysAppMember) PaymentEdit(ctx context.Context, in *sysin.AppMemberPaym
data[c.AccountNoHash] = h
data[c.AccountNoMask] = encrypt.MaskAccount(in.AccountNo)
}
if in.DigitalRMBCode != "" {
v, e := encrypt.EncryptField(ctx, in.DigitalRMBCode)
if e != nil {
return e
}
h, e := encrypt.HashField(ctx, in.DigitalRMBCode)
if e != nil {
return e
}
data[c.DigitalRmbCodeCipher] = v
data[c.DigitalRmbCodeHash] = h
data[c.DigitalRmbCodeMask] = encrypt.MaskAccount(in.DigitalRMBCode)
}
if in.IsDefault == 1 {
_, _ = s.paymentModel(ctx).Where(c.MemberId, in.MemberId).Data(g.Map{c.IsDefault: 2}).Update()
}
@@ -370,7 +417,7 @@ func (s *sSysAppMember) PaymentEdit(ctx context.Context, in *sysin.AppMemberPaym
}
} else {
data[c.CreatedBy] = contexts.GetUserId(ctx)
_, err := s.paymentModel(ctx).Fields(c.MemberId, c.AccountType, c.BankCode, c.BankName, c.HolderCipher, c.HolderMask, c.MobileCipher, c.MobileMask, c.AccountNoCipher, c.AccountNoHash, c.AccountNoMask, c.QrAttachmentId, c.VerifyStatus, c.IsDefault, c.CreatedBy, c.UpdatedBy).Hook(hook.SaveTenant).Data(data).Insert()
_, err := s.paymentModel(ctx).Fields(c.MemberId, c.AccountType, c.BankCode, c.BankName, c.HolderCipher, c.HolderMask, c.IdentityNoCipher, c.IdentityNoHash, c.IdentityNoMask, c.MobileCipher, c.MobileMask, c.AccountNoCipher, c.AccountNoHash, c.AccountNoMask, c.DigitalRmbCodeCipher, c.DigitalRmbCodeHash, c.DigitalRmbCodeMask, c.QrAttachmentId, c.WechatQrAttachmentId, c.AlipayQrAttachmentId, c.VerifyStatus, c.IsDefault, c.CreatedBy, c.UpdatedBy).Hook(hook.SaveTenant).Data(data).Insert()
if err != nil {
return gerror.Wrap(err, "创建收款账户失败")
}
@@ -465,8 +512,25 @@ func (s *sSysAppMember) Sensitive(ctx context.Context, in *sysin.AppMemberSensit
var row *entity.AppMemberPaymentAccount
if err = s.paymentModel(ctx).WherePri(in.TargetId).Scan(&row); err == nil && row != nil {
res.Fields["holder"], _ = encrypt.DecryptField(ctx, row.HolderCipher)
res.Fields["identityNo"], _ = encrypt.DecryptField(ctx, row.IdentityNoCipher)
res.Fields["mobile"], _ = encrypt.DecryptField(ctx, row.MobileCipher)
res.Fields["accountNo"], err = encrypt.DecryptField(ctx, row.AccountNoCipher)
res.Fields["accountNo"], _ = encrypt.DecryptField(ctx, row.AccountNoCipher)
res.Fields["digitalRmbCode"], _ = encrypt.DecryptField(ctx, row.DigitalRmbCodeCipher)
if res.Fields["holder"] == "" {
res.Fields["holder"] = row.HolderMask
}
if res.Fields["identityNo"] == "" {
res.Fields["identityNo"] = row.IdentityNoMask
}
if res.Fields["mobile"] == "" {
res.Fields["mobile"] = row.MobileMask
}
if res.Fields["accountNo"] == "" {
res.Fields["accountNo"] = row.AccountNoMask
}
if res.Fields["digitalRmbCode"] == "" {
res.Fields["digitalRmbCode"] = row.DigitalRmbCodeMask
}
}
case "address":
var row *entity.AppMemberAddress