From 996cd27fcb42859f4251202c767e379e3542f3ee Mon Sep 17 00:00:00 2001 From: hucan <951870319@qq.com> Date: Fri, 10 Oct 2025 10:01:40 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E7=BB=AD=E8=B4=B9=E5=92=8C=E8=B4=AD?= =?UTF-8?q?=E4=B9=B0=E5=8F=B7=E7=A0=81=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/admin/apis/sms_renewal_log.go | 118 +++++++++++------------ app/admin/models/sms_renewal_log.go | 3 + app/admin/service/dto/sms_renewal_log.go | 20 +++- app/admin/service/sms_phone.go | 21 ++++ app/admin/service/sms_renewal_log.go | 80 +++++++++------ 5 files changed, 152 insertions(+), 90 deletions(-) diff --git a/app/admin/apis/sms_renewal_log.go b/app/admin/apis/sms_renewal_log.go index 132019a..c45ab5d 100644 --- a/app/admin/apis/sms_renewal_log.go +++ b/app/admin/apis/sms_renewal_log.go @@ -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(), "删除成功") } diff --git a/app/admin/models/sms_renewal_log.go b/app/admin/models/sms_renewal_log.go index 472adb5..31ef843 100644 --- a/app/admin/models/sms_renewal_log.go +++ b/app/admin/models/sms_renewal_log.go @@ -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 } diff --git a/app/admin/service/dto/sms_renewal_log.go b/app/admin/service/dto/sms_renewal_log.go index da59c8b..3c4d113 100644 --- a/app/admin/service/dto/sms_renewal_log.go +++ b/app/admin/service/dto/sms_renewal_log.go @@ -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:"用户名"` +} diff --git a/app/admin/service/sms_phone.go b/app/admin/service/sms_phone.go index 3a06f4c..f60c42f 100644 --- a/app/admin/service/sms_phone.go +++ b/app/admin/service/sms_phone.go @@ -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, diff --git a/app/admin/service/sms_renewal_log.go b/app/admin/service/sms_renewal_log.go index dff19e9..81e6de5 100644 --- a/app/admin/service/sms_renewal_log.go +++ b/app/admin/service/sms_renewal_log.go @@ -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 }