1、续费和购买号码记录
This commit is contained in:
		| @ -1,7 +1,7 @@ | ||||
| package apis | ||||
|  | ||||
| import ( | ||||
|     "fmt" | ||||
| 	"fmt" | ||||
|  | ||||
| 	"github.com/gin-gonic/gin" | ||||
| 	"github.com/go-admin-team/go-admin-core/sdk/api" | ||||
| @ -29,27 +29,27 @@ type SmsRenewalLog struct { | ||||
| // @Router /api/v1/sms-renewal-log [get] | ||||
| // @Security Bearer | ||||
| func (e SmsRenewalLog) GetPage(c *gin.Context) { | ||||
|     req := dto.SmsRenewalLogGetPageReq{} | ||||
|     s := service.SmsRenewalLog{} | ||||
|     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 | ||||
|    	} | ||||
| 	req := dto.SmsRenewalLogGetPageReq{} | ||||
| 	s := service.SmsRenewalLog{} | ||||
| 	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 | ||||
| 	} | ||||
|  | ||||
| 	p := actions.GetPermissionFromContext(c) | ||||
| 	list := make([]models.SmsRenewalLog, 0) | ||||
| 	list := make([]dto.SmsRenewalLogResp, 0) | ||||
| 	var count int64 | ||||
|  | ||||
| 	err = s.GetPage(&req, p, &list, &count) | ||||
| 	if err != nil { | ||||
| 		e.Error(500, err, fmt.Sprintf("获取短信续期记录失败,\r\n失败信息 %s", err.Error())) | ||||
|         return | ||||
| 		return | ||||
| 	} | ||||
|  | ||||
| 	e.PageOK(list, int(count), req.GetPageIndex(), req.GetPageSize(), "查询成功") | ||||
| @ -66,7 +66,7 @@ func (e SmsRenewalLog) GetPage(c *gin.Context) { | ||||
| func (e SmsRenewalLog) Get(c *gin.Context) { | ||||
| 	req := dto.SmsRenewalLogGetReq{} | ||||
| 	s := service.SmsRenewalLog{} | ||||
|     err := e.MakeContext(c). | ||||
| 	err := e.MakeContext(c). | ||||
| 		MakeOrm(). | ||||
| 		Bind(&req). | ||||
| 		MakeService(&s.Service). | ||||
| @ -82,10 +82,10 @@ func (e SmsRenewalLog) Get(c *gin.Context) { | ||||
| 	err = s.Get(&req, p, &object) | ||||
| 	if err != nil { | ||||
| 		e.Error(500, err, fmt.Sprintf("获取短信续期记录失败,\r\n失败信息 %s", err.Error())) | ||||
|         return | ||||
| 		return | ||||
| 	} | ||||
|  | ||||
| 	e.OK( object, "查询成功") | ||||
| 	e.OK(object, "查询成功") | ||||
| } | ||||
|  | ||||
| // Insert 创建短信续期记录 | ||||
| @ -99,25 +99,25 @@ func (e SmsRenewalLog) Get(c *gin.Context) { | ||||
| // @Router /api/v1/sms-renewal-log [post] | ||||
| // @Security Bearer | ||||
| func (e SmsRenewalLog) Insert(c *gin.Context) { | ||||
|     req := dto.SmsRenewalLogInsertReq{} | ||||
|     s := service.SmsRenewalLog{} | ||||
|     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 | ||||
|     } | ||||
| 	req := dto.SmsRenewalLogInsertReq{} | ||||
| 	s := service.SmsRenewalLog{} | ||||
| 	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 | ||||
| 	} | ||||
| 	// 设置创建人 | ||||
| 	req.SetCreateBy(user.GetUserId(c)) | ||||
|  | ||||
| 	err = s.Insert(&req) | ||||
| 	if err != nil { | ||||
| 		e.Error(500, err, fmt.Sprintf("创建短信续期记录失败,\r\n失败信息 %s", err.Error())) | ||||
|         return | ||||
| 		return | ||||
| 	} | ||||
|  | ||||
| 	e.OK(req.GetId(), "创建成功") | ||||
| @ -135,27 +135,27 @@ func (e SmsRenewalLog) Insert(c *gin.Context) { | ||||
| // @Router /api/v1/sms-renewal-log/{id} [put] | ||||
| // @Security Bearer | ||||
| func (e SmsRenewalLog) Update(c *gin.Context) { | ||||
|     req := dto.SmsRenewalLogUpdateReq{} | ||||
|     s := service.SmsRenewalLog{} | ||||
|     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 | ||||
|     } | ||||
| 	req := dto.SmsRenewalLogUpdateReq{} | ||||
| 	s := service.SmsRenewalLog{} | ||||
| 	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 | ||||
| 	} | ||||
| 	req.SetUpdateBy(user.GetUserId(c)) | ||||
| 	p := actions.GetPermissionFromContext(c) | ||||
|  | ||||
| 	err = s.Update(&req, p) | ||||
| 	if err != nil { | ||||
| 		e.Error(500, err, fmt.Sprintf("修改短信续期记录失败,\r\n失败信息 %s", err.Error())) | ||||
|         return | ||||
| 		return | ||||
| 	} | ||||
| 	e.OK( req.GetId(), "修改成功") | ||||
| 	e.OK(req.GetId(), "修改成功") | ||||
| } | ||||
|  | ||||
| // Delete 删除短信续期记录 | ||||
| @ -167,18 +167,18 @@ func (e SmsRenewalLog) Update(c *gin.Context) { | ||||
| // @Router /api/v1/sms-renewal-log [delete] | ||||
| // @Security Bearer | ||||
| func (e SmsRenewalLog) Delete(c *gin.Context) { | ||||
|     s := service.SmsRenewalLog{} | ||||
|     req := dto.SmsRenewalLogDeleteReq{} | ||||
|     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 | ||||
|     } | ||||
| 	s := service.SmsRenewalLog{} | ||||
| 	req := dto.SmsRenewalLogDeleteReq{} | ||||
| 	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 | ||||
| 	} | ||||
|  | ||||
| 	// req.SetUpdateBy(user.GetUserId(c)) | ||||
| 	p := actions.GetPermissionFromContext(c) | ||||
| @ -186,7 +186,7 @@ func (e SmsRenewalLog) Delete(c *gin.Context) { | ||||
| 	err = s.Remove(&req, p) | ||||
| 	if err != nil { | ||||
| 		e.Error(500, err, fmt.Sprintf("删除短信续期记录失败,\r\n失败信息 %s", err.Error())) | ||||
|         return | ||||
| 		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 | ||||
| } | ||||
|  | ||||
| @ -12,7 +12,9 @@ import ( | ||||
|  | ||||
| type SmsRenewalLogGetPageReq struct { | ||||
| 	dto.Pagination `search:"-"` | ||||
| 	Type           int64 `form:"type"  search:"type:exact;column:type;table:sms_renewal_log" comment:"类型 0-长效 1-短效"` | ||||
| 	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, | ||||
|  | ||||
| @ -3,7 +3,7 @@ package service | ||||
| import ( | ||||
| 	"errors" | ||||
|  | ||||
|     "github.com/go-admin-team/go-admin-core/sdk/service" | ||||
| 	"github.com/go-admin-team/go-admin-core/sdk/service" | ||||
| 	"gorm.io/gorm" | ||||
|  | ||||
| 	"go-admin/app/admin/models" | ||||
| @ -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 | ||||
| } | ||||
|  | ||||
| @ -59,9 +79,9 @@ func (e *SmsRenewalLog) Get(d *dto.SmsRenewalLogGetReq, p *actions.DataPermissio | ||||
|  | ||||
| // Insert 创建SmsRenewalLog对象 | ||||
| func (e *SmsRenewalLog) Insert(c *dto.SmsRenewalLogInsertReq) error { | ||||
|     var err error | ||||
|     var data models.SmsRenewalLog | ||||
|     c.Generate(&data) | ||||
| 	var err error | ||||
| 	var data models.SmsRenewalLog | ||||
| 	c.Generate(&data) | ||||
| 	err = e.Orm.Create(&data).Error | ||||
| 	if err != nil { | ||||
| 		e.Log.Errorf("SmsRenewalLogService Insert error:%s \r\n", err) | ||||
| @ -72,22 +92,22 @@ func (e *SmsRenewalLog) Insert(c *dto.SmsRenewalLogInsertReq) error { | ||||
|  | ||||
| // Update 修改SmsRenewalLog对象 | ||||
| func (e *SmsRenewalLog) Update(c *dto.SmsRenewalLogUpdateReq, p *actions.DataPermission) error { | ||||
|     var err error | ||||
|     var data = models.SmsRenewalLog{} | ||||
|     e.Orm.Scopes( | ||||
|             actions.Permission(data.TableName(), p), | ||||
|         ).First(&data, c.GetId()) | ||||
|     c.Generate(&data) | ||||
| 	var err error | ||||
| 	var data = models.SmsRenewalLog{} | ||||
| 	e.Orm.Scopes( | ||||
| 		actions.Permission(data.TableName(), p), | ||||
| 	).First(&data, c.GetId()) | ||||
| 	c.Generate(&data) | ||||
|  | ||||
|     db := e.Orm.Save(&data) | ||||
|     if err = db.Error; err != nil { | ||||
|         e.Log.Errorf("SmsRenewalLogService Save error:%s \r\n", err) | ||||
|         return err | ||||
|     } | ||||
|     if db.RowsAffected == 0 { | ||||
|         return errors.New("无权更新该数据") | ||||
|     } | ||||
|     return nil | ||||
| 	db := e.Orm.Save(&data) | ||||
| 	if err = db.Error; err != nil { | ||||
| 		e.Log.Errorf("SmsRenewalLogService Save error:%s \r\n", err) | ||||
| 		return err | ||||
| 	} | ||||
| 	if db.RowsAffected == 0 { | ||||
| 		return errors.New("无权更新该数据") | ||||
| 	} | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| // Remove 删除SmsRenewalLog | ||||
| @ -99,11 +119,11 @@ func (e *SmsRenewalLog) Remove(d *dto.SmsRenewalLogDeleteReq, p *actions.DataPer | ||||
| 			actions.Permission(data.TableName(), p), | ||||
| 		).Delete(&data, d.GetId()) | ||||
| 	if err := db.Error; err != nil { | ||||
|         e.Log.Errorf("Service RemoveSmsRenewalLog error:%s \r\n", err) | ||||
|         return err | ||||
|     } | ||||
|     if db.RowsAffected == 0 { | ||||
|         return errors.New("无权删除该数据") | ||||
|     } | ||||
| 		e.Log.Errorf("Service RemoveSmsRenewalLog error:%s \r\n", err) | ||||
| 		return err | ||||
| 	} | ||||
| 	if db.RowsAffected == 0 { | ||||
| 		return errors.New("无权删除该数据") | ||||
| 	} | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
		Reference in New Issue
	
	Block a user