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) | ||||
| @ -85,7 +85,7 @@ func (e SmsRenewalLog) Get(c *gin.Context) { | ||||
| 		return | ||||
| 	} | ||||
|  | ||||
| 	e.OK( object, "查询成功") | ||||
| 	e.OK(object, "查询成功") | ||||
| } | ||||
|  | ||||
| // Insert 创建短信续期记录 | ||||
| @ -155,7 +155,7 @@ func (e SmsRenewalLog) Update(c *gin.Context) { | ||||
| 		e.Error(500, err, fmt.Sprintf("修改短信续期记录失败,\r\n失败信息 %s", err.Error())) | ||||
| 		return | ||||
| 	} | ||||
| 	e.OK( req.GetId(), "修改成功") | ||||
| 	e.OK(req.GetId(), "修改成功") | ||||
| } | ||||
|  | ||||
| // Delete 删除短信续期记录 | ||||
| @ -188,5 +188,5 @@ func (e SmsRenewalLog) Delete(c *gin.Context) { | ||||
| 		e.Error(500, err, fmt.Sprintf("删除短信续期记录失败,\r\n失败信息 %s", err.Error())) | ||||
| 		return | ||||
| 	} | ||||
| 	e.OK( req.GetId(), "删除成功") | ||||
| 	e.OK(req.GetId(), "删除成功") | ||||
| } | ||||
|  | ||||
| @ -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