1、暂存

This commit is contained in:
2025-10-14 20:00:02 +08:00
parent 996cd27fcb
commit 73c6cf9844
3 changed files with 62 additions and 3 deletions

View File

@ -12,6 +12,8 @@ import (
"go-admin/app/admin/service" "go-admin/app/admin/service"
"go-admin/app/admin/service/dto" "go-admin/app/admin/service/dto"
"go-admin/common/actions" "go-admin/common/actions"
"go-admin/common/middleware"
"go-admin/common/statuscode"
) )
type SmsRenewalLog struct { type SmsRenewalLog struct {
@ -190,3 +192,37 @@ func (e SmsRenewalLog) Delete(c *gin.Context) {
} }
e.OK(req.GetId(), "删除成功") e.OK(req.GetId(), "删除成功")
} }
// 手动扣费
func (e SmsPhone) ManualDeduct(c *gin.Context) {
req := dto.ManualDeductReq{}
s := service.SmsPhone{}
err := e.MakeContext(c).
MakeOrm().
Bind(&req).
MakeService(&s.Service).
Errors
if err != nil {
e.Logger.Error(err)
e.Error(500, err, err.Error())
return
}
userId, err := middleware.GetUserIdByApiKey(c)
if err != nil {
e.Logger.Error("获取用户id失败", err)
e.Error(statuscode.Unauthorized, nil, statuscode.GetMsg(statuscode.Unauthorized, "en"))
return
}
_, err = s.ManualDeduct(&req, userId)
if err != nil {
e.Logger.Error(err)
e.Error(500, err, err.Error())
return
}
e.OK(nil, "success")
}

View File

@ -126,3 +126,8 @@ type SmsRenewalLogResp struct {
// DeletedAt time.Time `json:"deletedAt" comment:"删除时间"` // DeletedAt time.Time `json:"deletedAt" comment:"删除时间"`
UserName string `json:"username" comment:"用户名"` UserName string `json:"username" comment:"用户名"`
} }
// 手动扣费
type ManualDeductReq struct {
ActivationId string `json:"activationId" comment:"激活id"`
}

View File

@ -23,8 +23,26 @@ type SmsPhone struct {
service.Service service.Service
} }
// 手动扣费
func (e *SmsPhone) ManualDeduct(req *dto.ManualDeductReq, userId int) (any, int) {
//TODO
var entity models.SmsPhone
if err := e.Orm.Model(&entity).Where("activation_id =?", req.ActivationId).First(&entity).Error; err != nil {
e.Log.Errorf("获取短信号码失败, %s", err)
return nil, statuscode.SmsNotExisted
}
var serviceMap map[string]models.SmsServices
var permiumMap map[string]dto.GetSysConfigByKEYForServiceResp
e.processPhoneRenewal(entity, serviceMap, permiumMap)
return nil, statuscode.Success
}
// open-API 获取电话号码 // open-API 获取电话号码
func (e SmsPhone) OpenGetNumber(req *dto.GetNumberReq, userId int) (dto.OpenGetNumberResp, int) { func (e *SmsPhone) OpenGetNumber(req *dto.GetNumberReq, userId int) (dto.OpenGetNumberResp, int) {
resp := dto.OpenGetNumberResp{} resp := dto.OpenGetNumberResp{}
balanceService := MemberBalance{Service: e.Service} balanceService := MemberBalance{Service: e.Service}
balance, smsPhone, i := e.DoGetNumber(&balanceService, req, userId) balance, smsPhone, i := e.DoGetNumber(&balanceService, req, userId)
@ -613,7 +631,7 @@ func (e *SmsPhone) AutoRenewal() error {
return nil return nil
} }
// 手动续费 // 手动续费(处理到期号码)
func (e *SmsPhone) ManualRenewal(activationIds []string) ([]string, error) { func (e *SmsPhone) ManualRenewal(activationIds []string) ([]string, error) {
if len(activationIds) == 0 { if len(activationIds) == 0 {
return nil, errors.New("activationIds 不能为空") return nil, errors.New("activationIds 不能为空")
@ -761,7 +779,7 @@ func (e *SmsPhone) executeRenewalTransaction(phone models.SmsPhone, price decima
return nil return nil
}) })
if err != nil && err.Error() == "余额不足" { if err != nil && err.Error() == "余额不足" && phone.ExpireTime.Before(time.Now()) {
return e.handleInsufficientBalance(phone) return e.handleInsufficientBalance(phone)
} }