diff --git a/app/admin/fronted/line_coin_network.go b/app/admin/fronted/line_coin_network.go new file mode 100644 index 0000000..6a6d88e --- /dev/null +++ b/app/admin/fronted/line_coin_network.go @@ -0,0 +1,39 @@ +package fronted + +import ( + "go-admin/app/admin/service" + "go-admin/app/admin/service/dto" + "go-admin/common/service/sysservice/sysstatuscode" + statuscode "go-admin/common/status_code" + + "github.com/gin-gonic/gin" + "github.com/go-admin-team/go-admin-core/sdk/api" +) + +type LineCoinnetwork struct { + api.Api +} + +// 获取区块链网络列表 +func (e LineCoinnetwork) GetList(c *gin.Context) { + s := service.LineCoinnetwork{} + err := e.MakeContext(c). + MakeOrm(). + MakeService(&s.Service). + Errors + if err != nil { + e.Logger.Error(err) + e.Error(500, err, err.Error()) + return + } + + data := make([]dto.LineCoinnetworkAppResp, 0) + code := s.GetOpenList(&data) + + if code != statuscode.OK { + e.Error(code, nil, sysstatuscode.GetStatusCodeDescription(c, code)) + return + } + + e.OK(data, "success") +} diff --git a/app/admin/models/line_coinnetwork.go b/app/admin/models/line_coinnetwork.go index 041425c..124cff6 100644 --- a/app/admin/models/line_coinnetwork.go +++ b/app/admin/models/line_coinnetwork.go @@ -2,17 +2,20 @@ package models import ( "go-admin/common/models" + + "github.com/shopspring/decimal" ) type LineCoinnetwork struct { models.Model - NetworkName string `json:"networkName" gorm:"type:varchar(255);comment:网络名称"` - TokenName string `json:"tokenName" gorm:"type:varchar(255);comment:网络token名称"` - ArrivalNum int64 `json:"arrivalNum" gorm:"type:int;comment:充值区块确认数"` - UnlockNum int64 `json:"unlockNum" gorm:"type:int;comment:提现解锁确认数"` - UnlockTime int64 `json:"unlockTime" gorm:"type:int;comment:提现确认平均时间,单位分钟"` - Fee string `json:"fee" gorm:"type:decimal(32,6);comment:网络手续费,该字段是动态的,后面会有服务定时更新该字段"` + NetworkName string `json:"networkName" gorm:"type:varchar(255);comment:网络名称"` + TokenName string `json:"tokenName" gorm:"type:varchar(255);comment:网络token名称"` + ArrivalNum int64 `json:"arrivalNum" gorm:"type:int;comment:充值区块确认数"` + UnlockNum int64 `json:"unlockNum" gorm:"type:int;comment:提现解锁确认数"` + UnlockTime int64 `json:"unlockTime" gorm:"type:int;comment:提现确认平均时间,单位分钟"` + Fee decimal.Decimal `json:"fee" gorm:"type:decimal(32,6);comment:网络手续费(百分比)"` + MinWithdrawal decimal.Decimal `json:"minWithdrawal" gorm:"type:decimal(32,6);comment:最小提现金额"` models.ModelTime models.ControlBy } diff --git a/app/admin/router/line_coinnetwork.go b/app/admin/router/line_coinnetwork.go index 391f428..f376141 100644 --- a/app/admin/router/line_coinnetwork.go +++ b/app/admin/router/line_coinnetwork.go @@ -5,12 +5,14 @@ import ( jwt "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth" "go-admin/app/admin/apis" - "go-admin/common/middleware" + "go-admin/app/admin/fronted" "go-admin/common/actions" + "go-admin/common/middleware" ) func init() { routerCheckRole = append(routerCheckRole, registerLineCoinnetworkRouter) + routerFrontedCheckRole = append(routerFrontedCheckRole, registerLineCoinnetworkFrontedRouter) } // registerLineCoinnetworkRouter @@ -24,4 +26,12 @@ func registerLineCoinnetworkRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJ r.PUT("/:id", actions.PermissionAction(), api.Update) r.DELETE("", api.Delete) } -} \ No newline at end of file +} + +func registerLineCoinnetworkFrontedRouter(v1 *gin.RouterGroup) { + api := fronted.LineCoinnetwork{} + r := v1.Group("/line-coinnetwork") + { + r.GET("/list", api.GetList) + } +} diff --git a/app/admin/service/dto/line_coinnetwork.go b/app/admin/service/dto/line_coinnetwork.go index 4d7b8ef..86dfda0 100644 --- a/app/admin/service/dto/line_coinnetwork.go +++ b/app/admin/service/dto/line_coinnetwork.go @@ -1,59 +1,68 @@ package dto import ( - "go-admin/app/admin/models" "go-admin/common/dto" common "go-admin/common/models" + + "github.com/shopspring/decimal" ) type LineCoinnetworkGetPageReq struct { - dto.Pagination `search:"-"` - LineCoinnetworkOrder + dto.Pagination `search:"-"` + LineCoinnetworkOrder } type LineCoinnetworkOrder struct { - Id string `form:"idOrder" search:"type:order;column:id;table:line_coinnetwork"` - NetworkName string `form:"networkNameOrder" search:"type:order;column:network_name;table:line_coinnetwork"` - TokenName string `form:"tokenNameOrder" search:"type:order;column:token_name;table:line_coinnetwork"` - ArrivalNum string `form:"arrivalNumOrder" search:"type:order;column:arrival_num;table:line_coinnetwork"` - UnlockNum string `form:"unlockNumOrder" search:"type:order;column:unlock_num;table:line_coinnetwork"` - UnlockTime string `form:"unlockTimeOrder" search:"type:order;column:unlock_time;table:line_coinnetwork"` - Fee string `form:"feeOrder" search:"type:order;column:fee;table:line_coinnetwork"` - CreateBy string `form:"createByOrder" search:"type:order;column:create_by;table:line_coinnetwork"` - UpdateBy string `form:"updateByOrder" search:"type:order;column:update_by;table:line_coinnetwork"` - CreatedAt string `form:"createdAtOrder" search:"type:order;column:created_at;table:line_coinnetwork"` - UpdatedAt string `form:"updatedAtOrder" search:"type:order;column:updated_at;table:line_coinnetwork"` - DeletedAt string `form:"deletedAtOrder" search:"type:order;column:deleted_at;table:line_coinnetwork"` - + Id string `form:"idOrder" search:"type:order;column:id;table:line_coinnetwork"` + NetworkName string `form:"networkNameOrder" search:"type:order;column:network_name;table:line_coinnetwork"` + TokenName string `form:"tokenNameOrder" search:"type:order;column:token_name;table:line_coinnetwork"` + ArrivalNum string `form:"arrivalNumOrder" search:"type:order;column:arrival_num;table:line_coinnetwork"` + UnlockNum string `form:"unlockNumOrder" search:"type:order;column:unlock_num;table:line_coinnetwork"` + UnlockTime string `form:"unlockTimeOrder" search:"type:order;column:unlock_time;table:line_coinnetwork"` + Fee string `form:"feeOrder" search:"type:order;column:fee;table:line_coinnetwork"` + CreateBy string `form:"createByOrder" search:"type:order;column:create_by;table:line_coinnetwork"` + UpdateBy string `form:"updateByOrder" search:"type:order;column:update_by;table:line_coinnetwork"` + CreatedAt string `form:"createdAtOrder" search:"type:order;column:created_at;table:line_coinnetwork"` + UpdatedAt string `form:"updatedAtOrder" search:"type:order;column:updated_at;table:line_coinnetwork"` + DeletedAt string `form:"deletedAtOrder" search:"type:order;column:deleted_at;table:line_coinnetwork"` } func (m *LineCoinnetworkGetPageReq) GetNeedSearch() interface{} { return *m } -type LineCoinnetworkInsertReq struct { - Id int `json:"-" comment:"主键ID"` // 主键ID - NetworkName string `json:"networkName" comment:"网络名称"` - TokenName string `json:"tokenName" comment:"网络token名称"` - ArrivalNum int64 `json:"arrivalNum" comment:"充值区块确认数"` - UnlockNum int64 `json:"unlockNum" comment:"提现解锁确认数"` - UnlockTime int64 `json:"unlockTime" comment:"提现确认平均时间,单位分钟"` - Fee string `json:"fee" comment:"网络手续费,该字段是动态的,后面会有服务定时更新该字段"` - common.ControlBy +type LineCoinnetworkAppResp struct { + Id int `json:"id"` + NetworkName string `json:"networkName"` + MinWithdrawal decimal.Decimal `json:"minWithdrawal"` + Fee decimal.Decimal `json:"fee"` } -func (s *LineCoinnetworkInsertReq) Generate(model *models.LineCoinnetwork) { - if s.Id == 0 { - model.Model = common.Model{ Id: s.Id } - } - model.NetworkName = s.NetworkName - model.TokenName = s.TokenName - model.ArrivalNum = s.ArrivalNum - model.UnlockNum = s.UnlockNum - model.UnlockTime = s.UnlockTime - model.Fee = s.Fee - model.CreateBy = s.CreateBy // 添加这而,需要记录是被谁创建的 +type LineCoinnetworkInsertReq struct { + Id int `json:"-" comment:"主键ID"` // 主键ID + NetworkName string `json:"networkName" comment:"网络名称"` + TokenName string `json:"tokenName" comment:"网络token名称"` + ArrivalNum int64 `json:"arrivalNum" comment:"充值区块确认数"` + UnlockNum int64 `json:"unlockNum" comment:"提现解锁确认数"` + UnlockTime int64 `json:"unlockTime" comment:"提现确认平均时间,单位分钟"` + Fee decimal.Decimal `json:"fee" comment:"网络手续费百分比"` + MinWithdrawal decimal.Decimal `json:"minWithdrawal" comment:"最小提现金额"` + common.ControlBy +} + +func (s *LineCoinnetworkInsertReq) Generate(model *models.LineCoinnetwork) { + if s.Id == 0 { + model.Model = common.Model{Id: s.Id} + } + model.NetworkName = s.NetworkName + model.TokenName = s.TokenName + model.ArrivalNum = s.ArrivalNum + model.UnlockNum = s.UnlockNum + model.UnlockTime = s.UnlockTime + model.Fee = s.Fee + model.MinWithdrawal = s.MinWithdrawal + model.CreateBy = s.CreateBy // 添加这而,需要记录是被谁创建的 } func (s *LineCoinnetworkInsertReq) GetId() interface{} { @@ -61,27 +70,29 @@ func (s *LineCoinnetworkInsertReq) GetId() interface{} { } type LineCoinnetworkUpdateReq struct { - Id int `uri:"id" comment:"主键ID"` // 主键ID - NetworkName string `json:"networkName" comment:"网络名称"` - TokenName string `json:"tokenName" comment:"网络token名称"` - ArrivalNum int64 `json:"arrivalNum" comment:"充值区块确认数"` - UnlockNum int64 `json:"unlockNum" comment:"提现解锁确认数"` - UnlockTime int64 `json:"unlockTime" comment:"提现确认平均时间,单位分钟"` - Fee string `json:"fee" comment:"网络手续费,该字段是动态的,后面会有服务定时更新该字段"` - common.ControlBy + Id int `uri:"id" comment:"主键ID"` // 主键ID + NetworkName string `json:"networkName" comment:"网络名称"` + TokenName string `json:"tokenName" comment:"网络token名称"` + ArrivalNum int64 `json:"arrivalNum" comment:"充值区块确认数"` + UnlockNum int64 `json:"unlockNum" comment:"提现解锁确认数"` + UnlockTime int64 `json:"unlockTime" comment:"提现确认平均时间,单位分钟"` + Fee decimal.Decimal `json:"fee" comment:"网络手续费百分比"` + MinWithdrawal decimal.Decimal `json:"minWithdrawal" comment:"最小提现金额"` + common.ControlBy } -func (s *LineCoinnetworkUpdateReq) Generate(model *models.LineCoinnetwork) { - if s.Id == 0 { - model.Model = common.Model{ Id: s.Id } - } - model.NetworkName = s.NetworkName - model.TokenName = s.TokenName - model.ArrivalNum = s.ArrivalNum - model.UnlockNum = s.UnlockNum - model.UnlockTime = s.UnlockTime - model.Fee = s.Fee - model.UpdateBy = s.UpdateBy // 添加这而,需要记录是被谁更新的 +func (s *LineCoinnetworkUpdateReq) Generate(model *models.LineCoinnetwork) { + if s.Id == 0 { + model.Model = common.Model{Id: s.Id} + } + model.NetworkName = s.NetworkName + model.TokenName = s.TokenName + model.ArrivalNum = s.ArrivalNum + model.UnlockNum = s.UnlockNum + model.UnlockTime = s.UnlockTime + model.Fee = s.Fee + model.MinWithdrawal = s.MinWithdrawal + model.UpdateBy = s.UpdateBy // 添加这而,需要记录是被谁更新的 } func (s *LineCoinnetworkUpdateReq) GetId() interface{} { @@ -90,8 +101,9 @@ func (s *LineCoinnetworkUpdateReq) GetId() interface{} { // LineCoinnetworkGetReq 功能获取请求参数 type LineCoinnetworkGetReq struct { - Id int `uri:"id"` + Id int `uri:"id"` } + func (s *LineCoinnetworkGetReq) GetId() interface{} { return s.Id } diff --git a/app/admin/service/line_coinnetwork.go b/app/admin/service/line_coinnetwork.go index c10c412..852fe90 100644 --- a/app/admin/service/line_coinnetwork.go +++ b/app/admin/service/line_coinnetwork.go @@ -3,13 +3,15 @@ package service import ( "errors" - "github.com/go-admin-team/go-admin-core/sdk/service" + "github.com/go-admin-team/go-admin-core/sdk/service" + "github.com/jinzhu/copier" "gorm.io/gorm" "go-admin/app/admin/models" "go-admin/app/admin/service/dto" "go-admin/common/actions" cDto "go-admin/common/dto" + statuscode "go-admin/common/status_code" ) type LineCoinnetwork struct { @@ -59,9 +61,9 @@ func (e *LineCoinnetwork) Get(d *dto.LineCoinnetworkGetReq, p *actions.DataPermi // Insert 创建LineCoinnetwork对象 func (e *LineCoinnetwork) Insert(c *dto.LineCoinnetworkInsertReq) error { - var err error - var data models.LineCoinnetwork - c.Generate(&data) + var err error + var data models.LineCoinnetwork + c.Generate(&data) err = e.Orm.Create(&data).Error if err != nil { e.Log.Errorf("LineCoinnetworkService Insert error:%s \r\n", err) @@ -72,22 +74,22 @@ func (e *LineCoinnetwork) Insert(c *dto.LineCoinnetworkInsertReq) error { // Update 修改LineCoinnetwork对象 func (e *LineCoinnetwork) Update(c *dto.LineCoinnetworkUpdateReq, p *actions.DataPermission) error { - var err error - var data = models.LineCoinnetwork{} - e.Orm.Scopes( - actions.Permission(data.TableName(), p), - ).First(&data, c.GetId()) - c.Generate(&data) + var err error + var data = models.LineCoinnetwork{} + 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("LineCoinnetworkService 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("LineCoinnetworkService Save error:%s \r\n", err) + return err + } + if db.RowsAffected == 0 { + return errors.New("无权更新该数据") + } + return nil } // Remove 删除LineCoinnetwork @@ -99,11 +101,29 @@ func (e *LineCoinnetwork) Remove(d *dto.LineCoinnetworkDeleteReq, p *actions.Dat actions.Permission(data.TableName(), p), ).Delete(&data, d.GetId()) if err := db.Error; err != nil { - e.Log.Errorf("Service RemoveLineCoinnetwork error:%s \r\n", err) - return err - } - if db.RowsAffected == 0 { - return errors.New("无权删除该数据") - } + e.Log.Errorf("Service RemoveLineCoinnetwork error:%s \r\n", err) + return err + } + if db.RowsAffected == 0 { + return errors.New("无权删除该数据") + } return nil } + +// 获取区块链列表 +// 状态码 +func (e *LineCoinnetwork) GetOpenList(list *[]dto.LineCoinnetworkAppResp) int { + var datas []models.LineCoinnetwork + item := dto.LineCoinnetworkAppResp{} + + if err := e.Orm.Model(&models.LineCoinnetwork{}).Find(&datas).Error; err != nil { + return statuscode.ServerError + } + + for _, v := range datas { + copier.Copy(&item, v) + + *list = append(*list, item) + } + return statuscode.OK +}