1、续费和购买号码记录
This commit is contained in:
@ -43,7 +43,7 @@ func (e SmsRenewalLog) GetPage(c *gin.Context) {
|
||||
}
|
||||
|
||||
p := actions.GetPermissionFromContext(c)
|
||||
list := make([]models.SmsRenewalLog, 0)
|
||||
list := make([]dto.SmsRenewalLogResp, 0)
|
||||
var count int64
|
||||
|
||||
err = s.GetPage(&req, p, &list, &count)
|
||||
|
||||
@ -12,11 +12,14 @@ type SmsRenewalLog struct {
|
||||
models.Model
|
||||
|
||||
PhoneId int `json:"phoneId" gorm:"type:bigint;comment:号码id"`
|
||||
Phone string `json:"phone" gorm:"type:varchar(50);comment:号码"`
|
||||
Type int `json:"type" gorm:"type:tinyint;comment:类型 0-长效 1-短效"`
|
||||
Category int `json:"category" gorm:"type:tinyint;comment:类别 1-购买号码 2-续费号码"`
|
||||
UserId int `json:"userId" gorm:"type:bigint;comment:用户id"`
|
||||
Amount decimal.Decimal `json:"amount" gorm:"type:decimal(10,2);comment:扣费金额"`
|
||||
BeforeTime time.Time `json:"beforeTime" gorm:"type:datetime;comment:续费前过期时间"`
|
||||
Period int `json:"period" gorm:"type:int;comment:时间段"`
|
||||
Username string `json:"username" gorm:"->"`
|
||||
models.ModelTime
|
||||
models.ControlBy
|
||||
}
|
||||
|
||||
@ -13,6 +13,8 @@ import (
|
||||
type SmsRenewalLogGetPageReq struct {
|
||||
dto.Pagination `search:"-"`
|
||||
Type int64 `form:"type" search:"type:exact;column:type;table:sms_renewal_log" comment:"类型 0-长效 1-短效"`
|
||||
Category int `form:"category" search:"type:exact;column:category;table:sms_renewal_log" comment:"类别 0-普通续费 1-号码补偿"`
|
||||
UserName string `form:"userName" search:"-"`
|
||||
SmsRenewalLogOrder
|
||||
}
|
||||
|
||||
@ -108,3 +110,19 @@ type SmsRenewalLogDeleteReq struct {
|
||||
func (s *SmsRenewalLogDeleteReq) GetId() interface{} {
|
||||
return s.Ids
|
||||
}
|
||||
|
||||
type SmsRenewalLogResp struct {
|
||||
Id int `json:"id" comment:"主键id"` // 主键id
|
||||
PhoneId int `json:"phoneId" comment:"号码id"`
|
||||
Phone string `json:"phone" comment:"电话号码"`
|
||||
Type int `json:"type" comment:"类型 0-长效 1-短效"`
|
||||
Category int `json:"category" comment:"类别 1-购买 2-续期"`
|
||||
UserId int `json:"userId" comment:"用户id"`
|
||||
Amount decimal.Decimal `json:"amount" comment:"扣费金额"`
|
||||
BeforeTime time.Time `json:"beforeTime" comment:"续费前过期时间"`
|
||||
Period int `json:"period" comment:"时间(天)"`
|
||||
CreatedAt time.Time `json:"createdAt" comment:"创建时间"`
|
||||
// UpdatedAt time.Time `json:"updatedAt" comment:"更新时间"`
|
||||
// DeletedAt time.Time `json:"deletedAt" comment:"删除时间"`
|
||||
UserName string `json:"username" comment:"用户名"`
|
||||
}
|
||||
|
||||
@ -83,6 +83,11 @@ func (e *SmsPhone) CancelNumber(req *dto.SmsPhoneCancelNumberReq, userId int) in
|
||||
if err != nil {
|
||||
e.Log.Errorf("取消租赁后修改失败, %s", err)
|
||||
}
|
||||
|
||||
if err1 := e.Orm.
|
||||
Where("phone_id = ?", data.Id).Delete(&models.SmsRenewalLog{}).Error; err1 != nil {
|
||||
e.Log.Errorf("更新短信号码续费日志失败, %s", err1)
|
||||
}
|
||||
} else {
|
||||
e.Log.Errorf("取消租赁失败, %s", code)
|
||||
return code
|
||||
@ -393,6 +398,20 @@ func (e *SmsPhone) DoGetNumber(balanceService *MemberBalance, req *dto.GetNumber
|
||||
}
|
||||
}
|
||||
|
||||
log := models.SmsRenewalLog{}
|
||||
log.PhoneId = smsPhone.Id
|
||||
log.Phone = smsPhone.Phone
|
||||
log.Type = smsPhone.Type
|
||||
log.Category = 1
|
||||
log.UserId = userId
|
||||
log.Amount = price
|
||||
log.BeforeTime = time.Now()
|
||||
log.Period = req.Period * 30
|
||||
|
||||
if err := e.Orm.Save(&log).Error; err != nil {
|
||||
e.Log.Errorf("保存短信续费日志失败,phone_id:%d, %s", smsPhone.Id, err)
|
||||
}
|
||||
|
||||
return balance, smsPhone, statuscode.Success
|
||||
}
|
||||
|
||||
@ -700,6 +719,8 @@ func (e *SmsPhone) calculateRenewalPrice(basePrice decimal.Decimal, platformCode
|
||||
func (e *SmsPhone) createRenewalLog(phone models.SmsPhone, amount decimal.Decimal) models.SmsRenewalLog {
|
||||
return models.SmsRenewalLog{
|
||||
UserId: phone.UserId,
|
||||
Phone: phone.Phone,
|
||||
Category: 2,
|
||||
PhoneId: phone.Id,
|
||||
Type: phone.Type,
|
||||
Amount: amount,
|
||||
|
||||
@ -17,22 +17,42 @@ type SmsRenewalLog struct {
|
||||
}
|
||||
|
||||
// GetPage 获取SmsRenewalLog列表
|
||||
func (e *SmsRenewalLog) GetPage(c *dto.SmsRenewalLogGetPageReq, p *actions.DataPermission, list *[]models.SmsRenewalLog, count *int64) error {
|
||||
func (e *SmsRenewalLog) GetPage(c *dto.SmsRenewalLogGetPageReq, p *actions.DataPermission, list *[]dto.SmsRenewalLogResp, count *int64) error {
|
||||
var err error
|
||||
var data models.SmsRenewalLog
|
||||
|
||||
err = e.Orm.Model(&data).
|
||||
var datas []models.SmsRenewalLog
|
||||
query := e.Orm.Model(&data).
|
||||
Joins("left join sys_user on sys_user.user_id = sms_renewal_log.user_id").
|
||||
Scopes(
|
||||
cDto.MakeCondition(c.GetNeedSearch()),
|
||||
cDto.Paginate(c.GetPageSize(), c.GetPageIndex()),
|
||||
actions.Permission(data.TableName(), p),
|
||||
).
|
||||
Find(list).Limit(-1).Offset(-1).
|
||||
)
|
||||
|
||||
if c.UserName != "" {
|
||||
query = query.Where("sys_user.username LIKE ?", "%"+c.UserName+"%")
|
||||
}
|
||||
err = query.Select("sms_renewal_log.*, sys_user.username").Find(&datas).Limit(-1).Offset(-1).
|
||||
Count(count).Error
|
||||
|
||||
if err != nil {
|
||||
e.Log.Errorf("SmsRenewalLogService GetPage error:%s \r\n", err)
|
||||
return err
|
||||
}
|
||||
|
||||
for _, v := range datas {
|
||||
*list = append(*list, dto.SmsRenewalLogResp{
|
||||
Id: v.Id,
|
||||
UserId: v.UserId,
|
||||
Category: v.Category,
|
||||
Phone: v.Phone,
|
||||
Amount: v.Amount,
|
||||
BeforeTime: v.BeforeTime,
|
||||
Period: v.Period,
|
||||
CreatedAt: v.CreatedAt,
|
||||
UserName: v.Username,
|
||||
})
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user