1
This commit is contained in:
193
app/admin/apis/wm_transfer.go
Normal file
193
app/admin/apis/wm_transfer.go
Normal file
@ -0,0 +1,193 @@
|
||||
package apis
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/go-admin-team/go-admin-core/sdk/api"
|
||||
"github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth/user"
|
||||
_ "github.com/go-admin-team/go-admin-core/sdk/pkg/response"
|
||||
|
||||
"go-admin/app/admin/models"
|
||||
"go-admin/app/admin/service"
|
||||
"go-admin/app/admin/service/dto"
|
||||
"go-admin/common/actions"
|
||||
)
|
||||
|
||||
type WmTransfer struct {
|
||||
api.Api
|
||||
}
|
||||
|
||||
// GetPage 获取批量转账任务列表
|
||||
// @Summary 获取批量转账任务列表
|
||||
// @Description 获取批量转账任务列表
|
||||
// @Tags 批量转账任务
|
||||
// @Param type query int64 false "类型 0-百分比 1-实际金额"
|
||||
// @Param transferType query int64 false "转账类型 0-批量转出 1-批量汇总"
|
||||
// @Param pageSize query int false "页条数"
|
||||
// @Param pageIndex query int false "页码"
|
||||
// @Success 200 {object} response.Response{data=response.Page{list=[]models.WmTransfer}} "{"code": 200, "data": [...]}"
|
||||
// @Router /api/v1/wm-transfer [get]
|
||||
// @Security Bearer
|
||||
func (e WmTransfer) GetPage(c *gin.Context) {
|
||||
req := dto.WmTransferGetPageReq{}
|
||||
s := service.WmTransfer{}
|
||||
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.WmTransfer, 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
|
||||
}
|
||||
|
||||
e.PageOK(list, int(count), req.GetPageIndex(), req.GetPageSize(), "查询成功")
|
||||
}
|
||||
|
||||
// Get 获取批量转账任务
|
||||
// @Summary 获取批量转账任务
|
||||
// @Description 获取批量转账任务
|
||||
// @Tags 批量转账任务
|
||||
// @Param id path int false "id"
|
||||
// @Success 200 {object} response.Response{data=models.WmTransfer} "{"code": 200, "data": [...]}"
|
||||
// @Router /api/v1/wm-transfer/{id} [get]
|
||||
// @Security Bearer
|
||||
func (e WmTransfer) Get(c *gin.Context) {
|
||||
req := dto.WmTransferGetReq{}
|
||||
s := service.WmTransfer{}
|
||||
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
|
||||
}
|
||||
var object models.WmTransfer
|
||||
|
||||
p := actions.GetPermissionFromContext(c)
|
||||
err = s.Get(&req, p, &object)
|
||||
if err != nil {
|
||||
e.Error(500, err, fmt.Sprintf("获取批量转账任务失败,\r\n失败信息 %s", err.Error()))
|
||||
return
|
||||
}
|
||||
|
||||
e.OK( object, "查询成功")
|
||||
}
|
||||
|
||||
// Insert 创建批量转账任务
|
||||
// @Summary 创建批量转账任务
|
||||
// @Description 创建批量转账任务
|
||||
// @Tags 批量转账任务
|
||||
// @Accept application/json
|
||||
// @Product application/json
|
||||
// @Param data body dto.WmTransferInsertReq true "data"
|
||||
// @Success 200 {object} response.Response "{"code": 200, "message": "添加成功"}"
|
||||
// @Router /api/v1/wm-transfer [post]
|
||||
// @Security Bearer
|
||||
func (e WmTransfer) Insert(c *gin.Context) {
|
||||
req := dto.WmTransferInsertReq{}
|
||||
s := service.WmTransfer{}
|
||||
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
|
||||
}
|
||||
|
||||
e.OK(req.GetId(), "创建成功")
|
||||
}
|
||||
|
||||
// Update 修改批量转账任务
|
||||
// @Summary 修改批量转账任务
|
||||
// @Description 修改批量转账任务
|
||||
// @Tags 批量转账任务
|
||||
// @Accept application/json
|
||||
// @Product application/json
|
||||
// @Param id path int true "id"
|
||||
// @Param data body dto.WmTransferUpdateReq true "body"
|
||||
// @Success 200 {object} response.Response "{"code": 200, "message": "修改成功"}"
|
||||
// @Router /api/v1/wm-transfer/{id} [put]
|
||||
// @Security Bearer
|
||||
func (e WmTransfer) Update(c *gin.Context) {
|
||||
req := dto.WmTransferUpdateReq{}
|
||||
s := service.WmTransfer{}
|
||||
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
|
||||
}
|
||||
e.OK( req.GetId(), "修改成功")
|
||||
}
|
||||
|
||||
// Delete 删除批量转账任务
|
||||
// @Summary 删除批量转账任务
|
||||
// @Description 删除批量转账任务
|
||||
// @Tags 批量转账任务
|
||||
// @Param data body dto.WmTransferDeleteReq true "body"
|
||||
// @Success 200 {object} response.Response "{"code": 200, "message": "删除成功"}"
|
||||
// @Router /api/v1/wm-transfer [delete]
|
||||
// @Security Bearer
|
||||
func (e WmTransfer) Delete(c *gin.Context) {
|
||||
s := service.WmTransfer{}
|
||||
req := dto.WmTransferDeleteReq{}
|
||||
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.Remove(&req, p)
|
||||
if err != nil {
|
||||
e.Error(500, err, fmt.Sprintf("删除批量转账任务失败,\r\n失败信息 %s", err.Error()))
|
||||
return
|
||||
}
|
||||
e.OK( req.GetId(), "删除成功")
|
||||
}
|
||||
191
app/admin/apis/wm_transfer_item.go
Normal file
191
app/admin/apis/wm_transfer_item.go
Normal file
@ -0,0 +1,191 @@
|
||||
package apis
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/go-admin-team/go-admin-core/sdk/api"
|
||||
"github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth/user"
|
||||
_ "github.com/go-admin-team/go-admin-core/sdk/pkg/response"
|
||||
|
||||
"go-admin/app/admin/models"
|
||||
"go-admin/app/admin/service"
|
||||
"go-admin/app/admin/service/dto"
|
||||
"go-admin/common/actions"
|
||||
)
|
||||
|
||||
type WmTransferItem struct {
|
||||
api.Api
|
||||
}
|
||||
|
||||
// GetPage 获取批量转账明细列表
|
||||
// @Summary 获取批量转账明细列表
|
||||
// @Description 获取批量转账明细列表
|
||||
// @Tags 批量转账明细
|
||||
// @Param pageSize query int false "页条数"
|
||||
// @Param pageIndex query int false "页码"
|
||||
// @Success 200 {object} response.Response{data=response.Page{list=[]models.WmTransferItem}} "{"code": 200, "data": [...]}"
|
||||
// @Router /api/v1/wm-transfer-item [get]
|
||||
// @Security Bearer
|
||||
func (e WmTransferItem) GetPage(c *gin.Context) {
|
||||
req := dto.WmTransferItemGetPageReq{}
|
||||
s := service.WmTransferItem{}
|
||||
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.WmTransferItem, 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
|
||||
}
|
||||
|
||||
e.PageOK(list, int(count), req.GetPageIndex(), req.GetPageSize(), "查询成功")
|
||||
}
|
||||
|
||||
// Get 获取批量转账明细
|
||||
// @Summary 获取批量转账明细
|
||||
// @Description 获取批量转账明细
|
||||
// @Tags 批量转账明细
|
||||
// @Param id path int false "id"
|
||||
// @Success 200 {object} response.Response{data=models.WmTransferItem} "{"code": 200, "data": [...]}"
|
||||
// @Router /api/v1/wm-transfer-item/{id} [get]
|
||||
// @Security Bearer
|
||||
func (e WmTransferItem) Get(c *gin.Context) {
|
||||
req := dto.WmTransferItemGetReq{}
|
||||
s := service.WmTransferItem{}
|
||||
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
|
||||
}
|
||||
var object models.WmTransferItem
|
||||
|
||||
p := actions.GetPermissionFromContext(c)
|
||||
err = s.Get(&req, p, &object)
|
||||
if err != nil {
|
||||
e.Error(500, err, fmt.Sprintf("获取批量转账明细失败,\r\n失败信息 %s", err.Error()))
|
||||
return
|
||||
}
|
||||
|
||||
e.OK( object, "查询成功")
|
||||
}
|
||||
|
||||
// Insert 创建批量转账明细
|
||||
// @Summary 创建批量转账明细
|
||||
// @Description 创建批量转账明细
|
||||
// @Tags 批量转账明细
|
||||
// @Accept application/json
|
||||
// @Product application/json
|
||||
// @Param data body dto.WmTransferItemInsertReq true "data"
|
||||
// @Success 200 {object} response.Response "{"code": 200, "message": "添加成功"}"
|
||||
// @Router /api/v1/wm-transfer-item [post]
|
||||
// @Security Bearer
|
||||
func (e WmTransferItem) Insert(c *gin.Context) {
|
||||
req := dto.WmTransferItemInsertReq{}
|
||||
s := service.WmTransferItem{}
|
||||
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
|
||||
}
|
||||
|
||||
e.OK(req.GetId(), "创建成功")
|
||||
}
|
||||
|
||||
// Update 修改批量转账明细
|
||||
// @Summary 修改批量转账明细
|
||||
// @Description 修改批量转账明细
|
||||
// @Tags 批量转账明细
|
||||
// @Accept application/json
|
||||
// @Product application/json
|
||||
// @Param id path int true "id"
|
||||
// @Param data body dto.WmTransferItemUpdateReq true "body"
|
||||
// @Success 200 {object} response.Response "{"code": 200, "message": "修改成功"}"
|
||||
// @Router /api/v1/wm-transfer-item/{id} [put]
|
||||
// @Security Bearer
|
||||
func (e WmTransferItem) Update(c *gin.Context) {
|
||||
req := dto.WmTransferItemUpdateReq{}
|
||||
s := service.WmTransferItem{}
|
||||
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
|
||||
}
|
||||
e.OK( req.GetId(), "修改成功")
|
||||
}
|
||||
|
||||
// Delete 删除批量转账明细
|
||||
// @Summary 删除批量转账明细
|
||||
// @Description 删除批量转账明细
|
||||
// @Tags 批量转账明细
|
||||
// @Param data body dto.WmTransferItemDeleteReq true "body"
|
||||
// @Success 200 {object} response.Response "{"code": 200, "message": "删除成功"}"
|
||||
// @Router /api/v1/wm-transfer-item [delete]
|
||||
// @Security Bearer
|
||||
func (e WmTransferItem) Delete(c *gin.Context) {
|
||||
s := service.WmTransferItem{}
|
||||
req := dto.WmTransferItemDeleteReq{}
|
||||
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.Remove(&req, p)
|
||||
if err != nil {
|
||||
e.Error(500, err, fmt.Sprintf("删除批量转账明细失败,\r\n失败信息 %s", err.Error()))
|
||||
return
|
||||
}
|
||||
e.OK( req.GetId(), "删除成功")
|
||||
}
|
||||
154
app/admin/apis/wm_wallet_info.go
Normal file
154
app/admin/apis/wm_wallet_info.go
Normal file
@ -0,0 +1,154 @@
|
||||
package apis
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/go-admin-team/go-admin-core/sdk/api"
|
||||
"github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth/user"
|
||||
_ "github.com/go-admin-team/go-admin-core/sdk/pkg/response"
|
||||
|
||||
"go-admin/app/admin/models"
|
||||
"go-admin/app/admin/service"
|
||||
"go-admin/app/admin/service/dto"
|
||||
"go-admin/common/actions"
|
||||
)
|
||||
|
||||
type WmWalletInfo struct {
|
||||
api.Api
|
||||
}
|
||||
|
||||
// GetPage 获取钱包信息列表
|
||||
// @Summary 获取钱包信息列表
|
||||
// @Description 获取钱包信息列表
|
||||
// @Tags 钱包信息
|
||||
// @Param privateKey query string false "钱包私钥"
|
||||
// @Param pageSize query int false "页条数"
|
||||
// @Param pageIndex query int false "页码"
|
||||
// @Success 200 {object} response.Response{data=response.Page{list=[]models.WmWalletInfo}} "{"code": 200, "data": [...]}"
|
||||
// @Router /api/v1/wm-wallet-info [get]
|
||||
// @Security Bearer
|
||||
func (e WmWalletInfo) GetPage(c *gin.Context) {
|
||||
req := dto.WmWalletInfoGetPageReq{}
|
||||
s := service.WmWalletInfo{}
|
||||
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.WmWalletInfo, 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
|
||||
}
|
||||
|
||||
e.PageOK(list, int(count), req.GetPageIndex(), req.GetPageSize(), "查询成功")
|
||||
}
|
||||
|
||||
// Get 获取钱包信息
|
||||
// @Summary 获取钱包信息
|
||||
// @Description 获取钱包信息
|
||||
// @Tags 钱包信息
|
||||
// @Param id path int false "id"
|
||||
// @Success 200 {object} response.Response{data=models.WmWalletInfo} "{"code": 200, "data": [...]}"
|
||||
// @Router /api/v1/wm-wallet-info/{id} [get]
|
||||
// @Security Bearer
|
||||
func (e WmWalletInfo) Get(c *gin.Context) {
|
||||
req := dto.WmWalletInfoGetReq{}
|
||||
s := service.WmWalletInfo{}
|
||||
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
|
||||
}
|
||||
var object models.WmWalletInfo
|
||||
|
||||
p := actions.GetPermissionFromContext(c)
|
||||
err = s.Get(&req, p, &object)
|
||||
if err != nil {
|
||||
e.Error(500, err, fmt.Sprintf("获取钱包信息失败,\r\n失败信息 %s", err.Error()))
|
||||
return
|
||||
}
|
||||
|
||||
e.OK(object, "查询成功")
|
||||
}
|
||||
|
||||
// Insert 创建钱包信息
|
||||
// @Summary 创建钱包信息
|
||||
// @Description 创建钱包信息
|
||||
// @Tags 钱包信息
|
||||
// @Accept application/json
|
||||
// @Product application/json
|
||||
// @Param data body dto.WmWalletInfoInsertReq true "data"
|
||||
// @Success 200 {object} response.Response "{"code": 200, "message": "添加成功"}"
|
||||
// @Router /api/v1/wm-wallet-info [post]
|
||||
// @Security Bearer
|
||||
func (e WmWalletInfo) Insert(c *gin.Context) {
|
||||
req := dto.WmWalletInfoBatchInsertReq{}
|
||||
s := service.WmWalletInfo{}
|
||||
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))
|
||||
|
||||
errs := s.Insert(&req)
|
||||
|
||||
e.OK(strings.Join(errs, "<br/>"), "创建成功")
|
||||
}
|
||||
|
||||
// Delete 删除钱包信息
|
||||
// @Summary 删除钱包信息
|
||||
// @Description 删除钱包信息
|
||||
// @Tags 钱包信息
|
||||
// @Param data body dto.WmWalletInfoDeleteReq true "body"
|
||||
// @Success 200 {object} response.Response "{"code": 200, "message": "删除成功"}"
|
||||
// @Router /api/v1/wm-wallet-info [delete]
|
||||
// @Security Bearer
|
||||
func (e WmWalletInfo) Delete(c *gin.Context) {
|
||||
s := service.WmWalletInfo{}
|
||||
req := dto.WmWalletInfoDeleteReq{}
|
||||
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.Remove(&req, p)
|
||||
if err != nil {
|
||||
e.Error(500, err, fmt.Sprintf("删除钱包信息失败,\r\n失败信息 %s", err.Error()))
|
||||
return
|
||||
}
|
||||
e.OK(req.GetId(), "删除成功")
|
||||
}
|
||||
31
app/admin/models/wm_transfer.go
Normal file
31
app/admin/models/wm_transfer.go
Normal file
@ -0,0 +1,31 @@
|
||||
package models
|
||||
|
||||
import (
|
||||
|
||||
"go-admin/common/models"
|
||||
|
||||
)
|
||||
|
||||
type WmTransfer struct {
|
||||
models.Model
|
||||
|
||||
Type int64 `json:"type" gorm:"type:tinyint;comment:类型 0-百分比 1-实际金额"`
|
||||
TransferType int64 `json:"transferType" gorm:"type:tinyint;comment:转账类型 0-批量转出 1-批量汇总"`
|
||||
Status int64 `json:"status" gorm:"type:tinyint;comment:状态"`
|
||||
Remark string `json:"remark" gorm:"type:varchar(255);comment:备注信息"`
|
||||
models.ModelTime
|
||||
models.ControlBy
|
||||
}
|
||||
|
||||
func (WmTransfer) TableName() string {
|
||||
return "wm_transfer"
|
||||
}
|
||||
|
||||
func (e *WmTransfer) Generate() models.ActiveRecord {
|
||||
o := *e
|
||||
return &o
|
||||
}
|
||||
|
||||
func (e *WmTransfer) GetId() interface{} {
|
||||
return e.Id
|
||||
}
|
||||
34
app/admin/models/wm_transfer_item.go
Normal file
34
app/admin/models/wm_transfer_item.go
Normal file
@ -0,0 +1,34 @@
|
||||
package models
|
||||
|
||||
import (
|
||||
|
||||
"go-admin/common/models"
|
||||
|
||||
)
|
||||
|
||||
type WmTransferItem struct {
|
||||
models.Model
|
||||
|
||||
TokenAddress string `json:"tokenAddress" gorm:"type:varchar(50);comment:代币地址"`
|
||||
FromAddress string `json:"fromAddress" gorm:"type:varchar(50);comment:来源地址"`
|
||||
ToAddress string `json:"toAddress" gorm:"type:varchar(50);comment:目标地址"`
|
||||
Amount string `json:"amount" gorm:"type:decimal(18,8);comment:代币数量"`
|
||||
Type string `json:"type" gorm:"type:tinyint;comment:类型 0-主账号百分比 1-实际数量"`
|
||||
TypeValue string `json:"typeValue" gorm:"type:decimal(18,8);comment:操作类型值"`
|
||||
PrivateKey string `json:"privateKey" gorm:"type:varchar(255);comment:私钥"`
|
||||
models.ModelTime
|
||||
models.ControlBy
|
||||
}
|
||||
|
||||
func (WmTransferItem) TableName() string {
|
||||
return "wm_transfer_item"
|
||||
}
|
||||
|
||||
func (e *WmTransferItem) Generate() models.ActiveRecord {
|
||||
o := *e
|
||||
return &o
|
||||
}
|
||||
|
||||
func (e *WmTransferItem) GetId() interface{} {
|
||||
return e.Id
|
||||
}
|
||||
30
app/admin/models/wm_wallet_info.go
Normal file
30
app/admin/models/wm_wallet_info.go
Normal file
@ -0,0 +1,30 @@
|
||||
package models
|
||||
|
||||
import (
|
||||
"go-admin/common/models"
|
||||
|
||||
"github.com/shopspring/decimal"
|
||||
)
|
||||
|
||||
type WmWalletInfo struct {
|
||||
models.Model
|
||||
|
||||
PrivateKey string `json:"privateKey" gorm:"type:varchar(50);comment:钱包私钥"`
|
||||
Address string `json:"address" gorm:"type:varchar(50);comment:钱包地址"`
|
||||
UsdcAmount decimal.Decimal `json:"usdcAmount" gorm:"type:decimal(18,8);comment:USDC余额"`
|
||||
models.ModelTime
|
||||
models.ControlBy
|
||||
}
|
||||
|
||||
func (WmWalletInfo) TableName() string {
|
||||
return "wm_wallet_info"
|
||||
}
|
||||
|
||||
func (e *WmWalletInfo) Generate() models.ActiveRecord {
|
||||
o := *e
|
||||
return &o
|
||||
}
|
||||
|
||||
func (e *WmWalletInfo) GetId() interface{} {
|
||||
return e.Id
|
||||
}
|
||||
27
app/admin/router/wm_transfer.go
Normal file
27
app/admin/router/wm_transfer.go
Normal file
@ -0,0 +1,27 @@
|
||||
package router
|
||||
|
||||
import (
|
||||
"github.com/gin-gonic/gin"
|
||||
jwt "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth"
|
||||
|
||||
"go-admin/app/admin/apis"
|
||||
"go-admin/common/middleware"
|
||||
"go-admin/common/actions"
|
||||
)
|
||||
|
||||
func init() {
|
||||
routerCheckRole = append(routerCheckRole, registerWmTransferRouter)
|
||||
}
|
||||
|
||||
// registerWmTransferRouter
|
||||
func registerWmTransferRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) {
|
||||
api := apis.WmTransfer{}
|
||||
r := v1.Group("/wm-transfer").Use(authMiddleware.MiddlewareFunc()).Use(middleware.AuthCheckRole())
|
||||
{
|
||||
r.GET("", actions.PermissionAction(), api.GetPage)
|
||||
r.GET("/:id", actions.PermissionAction(), api.Get)
|
||||
r.POST("", api.Insert)
|
||||
r.PUT("/:id", actions.PermissionAction(), api.Update)
|
||||
r.DELETE("", api.Delete)
|
||||
}
|
||||
}
|
||||
27
app/admin/router/wm_transfer_item.go
Normal file
27
app/admin/router/wm_transfer_item.go
Normal file
@ -0,0 +1,27 @@
|
||||
package router
|
||||
|
||||
import (
|
||||
"github.com/gin-gonic/gin"
|
||||
jwt "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth"
|
||||
|
||||
"go-admin/app/admin/apis"
|
||||
"go-admin/common/middleware"
|
||||
"go-admin/common/actions"
|
||||
)
|
||||
|
||||
func init() {
|
||||
routerCheckRole = append(routerCheckRole, registerWmTransferItemRouter)
|
||||
}
|
||||
|
||||
// registerWmTransferItemRouter
|
||||
func registerWmTransferItemRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) {
|
||||
api := apis.WmTransferItem{}
|
||||
r := v1.Group("/wm-transfer-item").Use(authMiddleware.MiddlewareFunc()).Use(middleware.AuthCheckRole())
|
||||
{
|
||||
r.GET("", actions.PermissionAction(), api.GetPage)
|
||||
r.GET("/:id", actions.PermissionAction(), api.Get)
|
||||
r.POST("", api.Insert)
|
||||
r.PUT("/:id", actions.PermissionAction(), api.Update)
|
||||
r.DELETE("", api.Delete)
|
||||
}
|
||||
}
|
||||
27
app/admin/router/wm_wallet_info.go
Normal file
27
app/admin/router/wm_wallet_info.go
Normal file
@ -0,0 +1,27 @@
|
||||
package router
|
||||
|
||||
import (
|
||||
"github.com/gin-gonic/gin"
|
||||
jwt "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth"
|
||||
|
||||
"go-admin/app/admin/apis"
|
||||
"go-admin/common/actions"
|
||||
"go-admin/common/middleware"
|
||||
)
|
||||
|
||||
func init() {
|
||||
routerCheckRole = append(routerCheckRole, registerWmWalletInfoRouter)
|
||||
}
|
||||
|
||||
// registerWmWalletInfoRouter
|
||||
func registerWmWalletInfoRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) {
|
||||
api := apis.WmWalletInfo{}
|
||||
r := v1.Group("/wm-wallet-info").Use(authMiddleware.MiddlewareFunc()).Use(middleware.AuthCheckRole())
|
||||
{
|
||||
r.GET("", actions.PermissionAction(), api.GetPage)
|
||||
r.GET("/:id", actions.PermissionAction(), api.Get)
|
||||
r.POST("", api.Insert)
|
||||
// r.PUT("/:id", actions.PermissionAction(), api.Update)
|
||||
r.DELETE("", api.Delete)
|
||||
}
|
||||
}
|
||||
98
app/admin/service/dto/wm_transfer.go
Normal file
98
app/admin/service/dto/wm_transfer.go
Normal file
@ -0,0 +1,98 @@
|
||||
package dto
|
||||
|
||||
import (
|
||||
|
||||
"go-admin/app/admin/models"
|
||||
"go-admin/common/dto"
|
||||
common "go-admin/common/models"
|
||||
)
|
||||
|
||||
type WmTransferGetPageReq struct {
|
||||
dto.Pagination `search:"-"`
|
||||
Type int64 `form:"type" search:"type:exact;column:type;table:wm_transfer" comment:"类型 0-百分比 1-实际金额"`
|
||||
TransferType int64 `form:"transferType" search:"type:exact;column:transfer_type;table:wm_transfer" comment:"转账类型 0-批量转出 1-批量汇总"`
|
||||
WmTransferOrder
|
||||
}
|
||||
|
||||
type WmTransferOrder struct {
|
||||
Id string `form:"idOrder" search:"type:order;column:id;table:wm_transfer"`
|
||||
Type string `form:"typeOrder" search:"type:order;column:type;table:wm_transfer"`
|
||||
TransferType string `form:"transferTypeOrder" search:"type:order;column:transfer_type;table:wm_transfer"`
|
||||
Status string `form:"statusOrder" search:"type:order;column:status;table:wm_transfer"`
|
||||
Remark string `form:"remarkOrder" search:"type:order;column:remark;table:wm_transfer"`
|
||||
CreateBy string `form:"createByOrder" search:"type:order;column:create_by;table:wm_transfer"`
|
||||
UpdateBy string `form:"updateByOrder" search:"type:order;column:update_by;table:wm_transfer"`
|
||||
CreatedAt string `form:"createdAtOrder" search:"type:order;column:created_at;table:wm_transfer"`
|
||||
UpdatedAt string `form:"updatedAtOrder" search:"type:order;column:updated_at;table:wm_transfer"`
|
||||
DeletedAt string `form:"deletedAtOrder" search:"type:order;column:deleted_at;table:wm_transfer"`
|
||||
|
||||
}
|
||||
|
||||
func (m *WmTransferGetPageReq) GetNeedSearch() interface{} {
|
||||
return *m
|
||||
}
|
||||
|
||||
type WmTransferInsertReq struct {
|
||||
Id int `json:"-" comment:"主键id"` // 主键id
|
||||
Type int64 `json:"type" comment:"类型 0-百分比 1-实际金额"`
|
||||
TransferType int64 `json:"transferType" comment:"转账类型 0-批量转出 1-批量汇总"`
|
||||
Status int64 `json:"status" comment:"状态"`
|
||||
Remark string `json:"remark" comment:"备注信息"`
|
||||
common.ControlBy
|
||||
}
|
||||
|
||||
func (s *WmTransferInsertReq) Generate(model *models.WmTransfer) {
|
||||
if s.Id == 0 {
|
||||
model.Model = common.Model{ Id: s.Id }
|
||||
}
|
||||
model.Type = s.Type
|
||||
model.TransferType = s.TransferType
|
||||
model.Status = s.Status
|
||||
model.Remark = s.Remark
|
||||
model.CreateBy = s.CreateBy // 添加这而,需要记录是被谁创建的
|
||||
}
|
||||
|
||||
func (s *WmTransferInsertReq) GetId() interface{} {
|
||||
return s.Id
|
||||
}
|
||||
|
||||
type WmTransferUpdateReq struct {
|
||||
Id int `uri:"id" comment:"主键id"` // 主键id
|
||||
Type int64 `json:"type" comment:"类型 0-百分比 1-实际金额"`
|
||||
TransferType int64 `json:"transferType" comment:"转账类型 0-批量转出 1-批量汇总"`
|
||||
Status int64 `json:"status" comment:"状态"`
|
||||
Remark string `json:"remark" comment:"备注信息"`
|
||||
common.ControlBy
|
||||
}
|
||||
|
||||
func (s *WmTransferUpdateReq) Generate(model *models.WmTransfer) {
|
||||
if s.Id == 0 {
|
||||
model.Model = common.Model{ Id: s.Id }
|
||||
}
|
||||
model.Type = s.Type
|
||||
model.TransferType = s.TransferType
|
||||
model.Status = s.Status
|
||||
model.Remark = s.Remark
|
||||
model.UpdateBy = s.UpdateBy // 添加这而,需要记录是被谁更新的
|
||||
}
|
||||
|
||||
func (s *WmTransferUpdateReq) GetId() interface{} {
|
||||
return s.Id
|
||||
}
|
||||
|
||||
// WmTransferGetReq 功能获取请求参数
|
||||
type WmTransferGetReq struct {
|
||||
Id int `uri:"id"`
|
||||
}
|
||||
func (s *WmTransferGetReq) GetId() interface{} {
|
||||
return s.Id
|
||||
}
|
||||
|
||||
// WmTransferDeleteReq 功能删除请求参数
|
||||
type WmTransferDeleteReq struct {
|
||||
Ids []int `json:"ids"`
|
||||
}
|
||||
|
||||
func (s *WmTransferDeleteReq) GetId() interface{} {
|
||||
return s.Ids
|
||||
}
|
||||
111
app/admin/service/dto/wm_transfer_item.go
Normal file
111
app/admin/service/dto/wm_transfer_item.go
Normal file
@ -0,0 +1,111 @@
|
||||
package dto
|
||||
|
||||
import (
|
||||
|
||||
"go-admin/app/admin/models"
|
||||
"go-admin/common/dto"
|
||||
common "go-admin/common/models"
|
||||
)
|
||||
|
||||
type WmTransferItemGetPageReq struct {
|
||||
dto.Pagination `search:"-"`
|
||||
WmTransferItemOrder
|
||||
}
|
||||
|
||||
type WmTransferItemOrder struct {
|
||||
Id string `form:"idOrder" search:"type:order;column:id;table:wm_transfer_item"`
|
||||
TokenAddress string `form:"tokenAddressOrder" search:"type:order;column:token_address;table:wm_transfer_item"`
|
||||
FromAddress string `form:"fromAddressOrder" search:"type:order;column:from_address;table:wm_transfer_item"`
|
||||
ToAddress string `form:"toAddressOrder" search:"type:order;column:to_address;table:wm_transfer_item"`
|
||||
Amount string `form:"amountOrder" search:"type:order;column:amount;table:wm_transfer_item"`
|
||||
Type string `form:"typeOrder" search:"type:order;column:type;table:wm_transfer_item"`
|
||||
TypeValue string `form:"typeValueOrder" search:"type:order;column:type_value;table:wm_transfer_item"`
|
||||
PrivateKey string `form:"privateKeyOrder" search:"type:order;column:private_key;table:wm_transfer_item"`
|
||||
CreateBy string `form:"createByOrder" search:"type:order;column:create_by;table:wm_transfer_item"`
|
||||
UpdateBy string `form:"updateByOrder" search:"type:order;column:update_by;table:wm_transfer_item"`
|
||||
CreatedAt string `form:"createdAtOrder" search:"type:order;column:created_at;table:wm_transfer_item"`
|
||||
UpdatedAt string `form:"updatedAtOrder" search:"type:order;column:updated_at;table:wm_transfer_item"`
|
||||
DeletedAt string `form:"deletedAtOrder" search:"type:order;column:deleted_at;table:wm_transfer_item"`
|
||||
|
||||
}
|
||||
|
||||
func (m *WmTransferItemGetPageReq) GetNeedSearch() interface{} {
|
||||
return *m
|
||||
}
|
||||
|
||||
type WmTransferItemInsertReq struct {
|
||||
Id int `json:"-" comment:"主键id"` // 主键id
|
||||
TokenAddress string `json:"tokenAddress" comment:"代币地址"`
|
||||
FromAddress string `json:"fromAddress" comment:"来源地址"`
|
||||
ToAddress string `json:"toAddress" comment:"目标地址"`
|
||||
Amount string `json:"amount" comment:"代币数量"`
|
||||
Type string `json:"type" comment:"类型 0-主账号百分比 1-实际数量"`
|
||||
TypeValue string `json:"typeValue" comment:"操作类型值"`
|
||||
PrivateKey string `json:"privateKey" comment:"私钥"`
|
||||
common.ControlBy
|
||||
}
|
||||
|
||||
func (s *WmTransferItemInsertReq) Generate(model *models.WmTransferItem) {
|
||||
if s.Id == 0 {
|
||||
model.Model = common.Model{ Id: s.Id }
|
||||
}
|
||||
model.TokenAddress = s.TokenAddress
|
||||
model.FromAddress = s.FromAddress
|
||||
model.ToAddress = s.ToAddress
|
||||
model.Amount = s.Amount
|
||||
model.Type = s.Type
|
||||
model.TypeValue = s.TypeValue
|
||||
model.PrivateKey = s.PrivateKey
|
||||
model.CreateBy = s.CreateBy // 添加这而,需要记录是被谁创建的
|
||||
}
|
||||
|
||||
func (s *WmTransferItemInsertReq) GetId() interface{} {
|
||||
return s.Id
|
||||
}
|
||||
|
||||
type WmTransferItemUpdateReq struct {
|
||||
Id int `uri:"id" comment:"主键id"` // 主键id
|
||||
TokenAddress string `json:"tokenAddress" comment:"代币地址"`
|
||||
FromAddress string `json:"fromAddress" comment:"来源地址"`
|
||||
ToAddress string `json:"toAddress" comment:"目标地址"`
|
||||
Amount string `json:"amount" comment:"代币数量"`
|
||||
Type string `json:"type" comment:"类型 0-主账号百分比 1-实际数量"`
|
||||
TypeValue string `json:"typeValue" comment:"操作类型值"`
|
||||
PrivateKey string `json:"privateKey" comment:"私钥"`
|
||||
common.ControlBy
|
||||
}
|
||||
|
||||
func (s *WmTransferItemUpdateReq) Generate(model *models.WmTransferItem) {
|
||||
if s.Id == 0 {
|
||||
model.Model = common.Model{ Id: s.Id }
|
||||
}
|
||||
model.TokenAddress = s.TokenAddress
|
||||
model.FromAddress = s.FromAddress
|
||||
model.ToAddress = s.ToAddress
|
||||
model.Amount = s.Amount
|
||||
model.Type = s.Type
|
||||
model.TypeValue = s.TypeValue
|
||||
model.PrivateKey = s.PrivateKey
|
||||
model.UpdateBy = s.UpdateBy // 添加这而,需要记录是被谁更新的
|
||||
}
|
||||
|
||||
func (s *WmTransferItemUpdateReq) GetId() interface{} {
|
||||
return s.Id
|
||||
}
|
||||
|
||||
// WmTransferItemGetReq 功能获取请求参数
|
||||
type WmTransferItemGetReq struct {
|
||||
Id int `uri:"id"`
|
||||
}
|
||||
func (s *WmTransferItemGetReq) GetId() interface{} {
|
||||
return s.Id
|
||||
}
|
||||
|
||||
// WmTransferItemDeleteReq 功能删除请求参数
|
||||
type WmTransferItemDeleteReq struct {
|
||||
Ids []int `json:"ids"`
|
||||
}
|
||||
|
||||
func (s *WmTransferItemDeleteReq) GetId() interface{} {
|
||||
return s.Ids
|
||||
}
|
||||
105
app/admin/service/dto/wm_wallet_info.go
Normal file
105
app/admin/service/dto/wm_wallet_info.go
Normal file
@ -0,0 +1,105 @@
|
||||
package dto
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"go-admin/app/admin/models"
|
||||
"go-admin/common/dto"
|
||||
common "go-admin/common/models"
|
||||
"strings"
|
||||
)
|
||||
|
||||
type WmWalletInfoGetPageReq struct {
|
||||
dto.Pagination `search:"-"`
|
||||
PrivateKey string `form:"privateKey" search:"type:exact;column:private_key;table:wm_wallet_info" comment:"钱包私钥"`
|
||||
WmWalletInfoOrder
|
||||
}
|
||||
|
||||
type WmWalletInfoOrder struct {
|
||||
Id string `form:"idOrder" search:"type:order;column:id;table:wm_wallet_info"`
|
||||
PrivateKey string `form:"privateKeyOrder" search:"type:order;column:private_key;table:wm_wallet_info"`
|
||||
Address string `form:"addressOrder" search:"type:order;column:address;table:wm_wallet_info"`
|
||||
CreateBy string `form:"createByOrder" search:"type:order;column:create_by;table:wm_wallet_info"`
|
||||
UpdateBy string `form:"updateByOrder" search:"type:order;column:update_by;table:wm_wallet_info"`
|
||||
CreatedAt string `form:"createdAtOrder" search:"type:order;column:created_at;table:wm_wallet_info"`
|
||||
UpdatedAt string `form:"updatedAtOrder" search:"type:order;column:updated_at;table:wm_wallet_info"`
|
||||
DeletedAt string `form:"deletedAtOrder" search:"type:order;column:deleted_at;table:wm_wallet_info"`
|
||||
}
|
||||
|
||||
func (m *WmWalletInfoGetPageReq) GetNeedSearch() interface{} {
|
||||
return *m
|
||||
}
|
||||
|
||||
type WmWalletInfoBatchInsertReq struct {
|
||||
Keys string `json:"keys"`
|
||||
common.ControlBy
|
||||
}
|
||||
|
||||
func (s *WmWalletInfoBatchInsertReq) Valid() error {
|
||||
s.Keys = strings.ReplaceAll(s.Keys, " ", "")
|
||||
s.Keys = strings.ReplaceAll(s.Keys, ",", "\n")
|
||||
s.Keys = strings.ReplaceAll(s.Keys, ",", "\n")
|
||||
|
||||
if s.Keys == "" {
|
||||
return errors.New("请至少输入一条数据")
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
type WmWalletInfoInsertReq struct {
|
||||
Id int `json:"-" comment:"主键Id"` // 主键Id
|
||||
PrivateKey string `json:"privateKey" comment:"钱包私钥"`
|
||||
Address string `json:"address" comment:"钱包地址"`
|
||||
common.ControlBy
|
||||
}
|
||||
|
||||
func (s *WmWalletInfoInsertReq) Generate(model *models.WmWalletInfo) {
|
||||
if s.Id == 0 {
|
||||
model.Model = common.Model{Id: s.Id}
|
||||
}
|
||||
model.PrivateKey = s.PrivateKey
|
||||
model.Address = s.Address
|
||||
model.CreateBy = s.CreateBy // 添加这而,需要记录是被谁创建的
|
||||
}
|
||||
|
||||
func (s *WmWalletInfoInsertReq) GetId() interface{} {
|
||||
return s.Id
|
||||
}
|
||||
|
||||
type WmWalletInfoUpdateReq struct {
|
||||
Id int `uri:"id" comment:"主键Id"` // 主键Id
|
||||
PrivateKey string `json:"privateKey" comment:"钱包私钥"`
|
||||
Address string `json:"address" comment:"钱包地址"`
|
||||
common.ControlBy
|
||||
}
|
||||
|
||||
func (s *WmWalletInfoUpdateReq) Generate(model *models.WmWalletInfo) {
|
||||
if s.Id == 0 {
|
||||
model.Model = common.Model{Id: s.Id}
|
||||
}
|
||||
model.PrivateKey = s.PrivateKey
|
||||
model.Address = s.Address
|
||||
model.UpdateBy = s.UpdateBy // 添加这而,需要记录是被谁更新的
|
||||
}
|
||||
|
||||
func (s *WmWalletInfoUpdateReq) GetId() interface{} {
|
||||
return s.Id
|
||||
}
|
||||
|
||||
// WmWalletInfoGetReq 功能获取请求参数
|
||||
type WmWalletInfoGetReq struct {
|
||||
Id int `uri:"id"`
|
||||
}
|
||||
|
||||
func (s *WmWalletInfoGetReq) GetId() interface{} {
|
||||
return s.Id
|
||||
}
|
||||
|
||||
// WmWalletInfoDeleteReq 功能删除请求参数
|
||||
type WmWalletInfoDeleteReq struct {
|
||||
Ids []int `json:"ids"`
|
||||
}
|
||||
|
||||
func (s *WmWalletInfoDeleteReq) GetId() interface{} {
|
||||
return s.Ids
|
||||
}
|
||||
109
app/admin/service/wm_transfer.go
Normal file
109
app/admin/service/wm_transfer.go
Normal file
@ -0,0 +1,109 @@
|
||||
package service
|
||||
|
||||
import (
|
||||
"errors"
|
||||
|
||||
"github.com/go-admin-team/go-admin-core/sdk/service"
|
||||
"gorm.io/gorm"
|
||||
|
||||
"go-admin/app/admin/models"
|
||||
"go-admin/app/admin/service/dto"
|
||||
"go-admin/common/actions"
|
||||
cDto "go-admin/common/dto"
|
||||
)
|
||||
|
||||
type WmTransfer struct {
|
||||
service.Service
|
||||
}
|
||||
|
||||
// GetPage 获取WmTransfer列表
|
||||
func (e *WmTransfer) GetPage(c *dto.WmTransferGetPageReq, p *actions.DataPermission, list *[]models.WmTransfer, count *int64) error {
|
||||
var err error
|
||||
var data models.WmTransfer
|
||||
|
||||
err = e.Orm.Model(&data).
|
||||
Scopes(
|
||||
cDto.MakeCondition(c.GetNeedSearch()),
|
||||
cDto.Paginate(c.GetPageSize(), c.GetPageIndex()),
|
||||
actions.Permission(data.TableName(), p),
|
||||
).
|
||||
Find(list).Limit(-1).Offset(-1).
|
||||
Count(count).Error
|
||||
if err != nil {
|
||||
e.Log.Errorf("WmTransferService GetPage error:%s \r\n", err)
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// Get 获取WmTransfer对象
|
||||
func (e *WmTransfer) Get(d *dto.WmTransferGetReq, p *actions.DataPermission, model *models.WmTransfer) error {
|
||||
var data models.WmTransfer
|
||||
|
||||
err := e.Orm.Model(&data).
|
||||
Scopes(
|
||||
actions.Permission(data.TableName(), p),
|
||||
).
|
||||
First(model, d.GetId()).Error
|
||||
if err != nil && errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
err = errors.New("查看对象不存在或无权查看")
|
||||
e.Log.Errorf("Service GetWmTransfer error:%s \r\n", err)
|
||||
return err
|
||||
}
|
||||
if err != nil {
|
||||
e.Log.Errorf("db error:%s", err)
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// Insert 创建WmTransfer对象
|
||||
func (e *WmTransfer) Insert(c *dto.WmTransferInsertReq) error {
|
||||
var err error
|
||||
var data models.WmTransfer
|
||||
c.Generate(&data)
|
||||
err = e.Orm.Create(&data).Error
|
||||
if err != nil {
|
||||
e.Log.Errorf("WmTransferService Insert error:%s \r\n", err)
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// Update 修改WmTransfer对象
|
||||
func (e *WmTransfer) Update(c *dto.WmTransferUpdateReq, p *actions.DataPermission) error {
|
||||
var err error
|
||||
var data = models.WmTransfer{}
|
||||
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("WmTransferService Save error:%s \r\n", err)
|
||||
return err
|
||||
}
|
||||
if db.RowsAffected == 0 {
|
||||
return errors.New("无权更新该数据")
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// Remove 删除WmTransfer
|
||||
func (e *WmTransfer) Remove(d *dto.WmTransferDeleteReq, p *actions.DataPermission) error {
|
||||
var data models.WmTransfer
|
||||
|
||||
db := e.Orm.Model(&data).
|
||||
Scopes(
|
||||
actions.Permission(data.TableName(), p),
|
||||
).Delete(&data, d.GetId())
|
||||
if err := db.Error; err != nil {
|
||||
e.Log.Errorf("Service RemoveWmTransfer error:%s \r\n", err)
|
||||
return err
|
||||
}
|
||||
if db.RowsAffected == 0 {
|
||||
return errors.New("无权删除该数据")
|
||||
}
|
||||
return nil
|
||||
}
|
||||
109
app/admin/service/wm_transfer_item.go
Normal file
109
app/admin/service/wm_transfer_item.go
Normal file
@ -0,0 +1,109 @@
|
||||
package service
|
||||
|
||||
import (
|
||||
"errors"
|
||||
|
||||
"github.com/go-admin-team/go-admin-core/sdk/service"
|
||||
"gorm.io/gorm"
|
||||
|
||||
"go-admin/app/admin/models"
|
||||
"go-admin/app/admin/service/dto"
|
||||
"go-admin/common/actions"
|
||||
cDto "go-admin/common/dto"
|
||||
)
|
||||
|
||||
type WmTransferItem struct {
|
||||
service.Service
|
||||
}
|
||||
|
||||
// GetPage 获取WmTransferItem列表
|
||||
func (e *WmTransferItem) GetPage(c *dto.WmTransferItemGetPageReq, p *actions.DataPermission, list *[]models.WmTransferItem, count *int64) error {
|
||||
var err error
|
||||
var data models.WmTransferItem
|
||||
|
||||
err = e.Orm.Model(&data).
|
||||
Scopes(
|
||||
cDto.MakeCondition(c.GetNeedSearch()),
|
||||
cDto.Paginate(c.GetPageSize(), c.GetPageIndex()),
|
||||
actions.Permission(data.TableName(), p),
|
||||
).
|
||||
Find(list).Limit(-1).Offset(-1).
|
||||
Count(count).Error
|
||||
if err != nil {
|
||||
e.Log.Errorf("WmTransferItemService GetPage error:%s \r\n", err)
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// Get 获取WmTransferItem对象
|
||||
func (e *WmTransferItem) Get(d *dto.WmTransferItemGetReq, p *actions.DataPermission, model *models.WmTransferItem) error {
|
||||
var data models.WmTransferItem
|
||||
|
||||
err := e.Orm.Model(&data).
|
||||
Scopes(
|
||||
actions.Permission(data.TableName(), p),
|
||||
).
|
||||
First(model, d.GetId()).Error
|
||||
if err != nil && errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
err = errors.New("查看对象不存在或无权查看")
|
||||
e.Log.Errorf("Service GetWmTransferItem error:%s \r\n", err)
|
||||
return err
|
||||
}
|
||||
if err != nil {
|
||||
e.Log.Errorf("db error:%s", err)
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// Insert 创建WmTransferItem对象
|
||||
func (e *WmTransferItem) Insert(c *dto.WmTransferItemInsertReq) error {
|
||||
var err error
|
||||
var data models.WmTransferItem
|
||||
c.Generate(&data)
|
||||
err = e.Orm.Create(&data).Error
|
||||
if err != nil {
|
||||
e.Log.Errorf("WmTransferItemService Insert error:%s \r\n", err)
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// Update 修改WmTransferItem对象
|
||||
func (e *WmTransferItem) Update(c *dto.WmTransferItemUpdateReq, p *actions.DataPermission) error {
|
||||
var err error
|
||||
var data = models.WmTransferItem{}
|
||||
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("WmTransferItemService Save error:%s \r\n", err)
|
||||
return err
|
||||
}
|
||||
if db.RowsAffected == 0 {
|
||||
return errors.New("无权更新该数据")
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// Remove 删除WmTransferItem
|
||||
func (e *WmTransferItem) Remove(d *dto.WmTransferItemDeleteReq, p *actions.DataPermission) error {
|
||||
var data models.WmTransferItem
|
||||
|
||||
db := e.Orm.Model(&data).
|
||||
Scopes(
|
||||
actions.Permission(data.TableName(), p),
|
||||
).Delete(&data, d.GetId())
|
||||
if err := db.Error; err != nil {
|
||||
e.Log.Errorf("Service RemoveWmTransferItem error:%s \r\n", err)
|
||||
return err
|
||||
}
|
||||
if db.RowsAffected == 0 {
|
||||
return errors.New("无权删除该数据")
|
||||
}
|
||||
return nil
|
||||
}
|
||||
174
app/admin/service/wm_wallet_info.go
Normal file
174
app/admin/service/wm_wallet_info.go
Normal file
@ -0,0 +1,174 @@
|
||||
package service
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"strings"
|
||||
|
||||
"github.com/go-admin-team/go-admin-core/sdk/service"
|
||||
"gorm.io/gorm"
|
||||
|
||||
"go-admin/abis/ethereumabi"
|
||||
"go-admin/app/admin/models"
|
||||
"go-admin/app/admin/service/dto"
|
||||
"go-admin/common/actions"
|
||||
cDto "go-admin/common/dto"
|
||||
"go-admin/config"
|
||||
"go-admin/utils/aeshelper"
|
||||
"go-admin/utils/ethbalanceofhelper"
|
||||
"go-admin/utils/ethtransferhelper"
|
||||
"go-admin/utils/stringhelper"
|
||||
)
|
||||
|
||||
type WmWalletInfo struct {
|
||||
service.Service
|
||||
}
|
||||
|
||||
// GetPage 获取WmWalletInfo列表
|
||||
func (e *WmWalletInfo) GetPage(c *dto.WmWalletInfoGetPageReq, p *actions.DataPermission, list *[]models.WmWalletInfo, count *int64) error {
|
||||
var err error
|
||||
var data models.WmWalletInfo
|
||||
|
||||
err = e.Orm.Model(&data).
|
||||
Scopes(
|
||||
cDto.MakeCondition(c.GetNeedSearch()),
|
||||
cDto.Paginate(c.GetPageSize(), c.GetPageIndex()),
|
||||
actions.Permission(data.TableName(), p),
|
||||
).
|
||||
Find(list).Limit(-1).Offset(-1).
|
||||
Count(count).Error
|
||||
if err != nil {
|
||||
e.Log.Errorf("WmWalletInfoService GetPage error:%s \r\n", err)
|
||||
return err
|
||||
}
|
||||
|
||||
for i := 0; i < len(*list); i++ {
|
||||
(*list)[i].PrivateKey = stringhelper.DesensitizeWalletAddress(aeshelper.AesEcbDecrypt((*list)[i].PrivateKey))
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// Get 获取WmWalletInfo对象
|
||||
func (e *WmWalletInfo) Get(d *dto.WmWalletInfoGetReq, p *actions.DataPermission, model *models.WmWalletInfo) error {
|
||||
var data models.WmWalletInfo
|
||||
|
||||
err := e.Orm.Model(&data).
|
||||
Scopes(
|
||||
actions.Permission(data.TableName(), p),
|
||||
).
|
||||
First(model, d.GetId()).Error
|
||||
if err != nil && errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
err = errors.New("查看对象不存在或无权查看")
|
||||
e.Log.Errorf("Service GetWmWalletInfo error:%s \r\n", err)
|
||||
return err
|
||||
}
|
||||
if err != nil {
|
||||
e.Log.Errorf("db error:%s", err)
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// Insert 创建WmWalletInfo对象
|
||||
func (e *WmWalletInfo) Insert(c *dto.WmWalletInfoBatchInsertReq) []string {
|
||||
errs := []string{}
|
||||
var count int64
|
||||
keys := strings.Split(c.Keys, "\n")
|
||||
|
||||
for _, key := range keys {
|
||||
if key == "" {
|
||||
continue
|
||||
}
|
||||
|
||||
var data models.WmWalletInfo
|
||||
data.PrivateKey = aeshelper.AesEcbEncrypt(key)
|
||||
_, address, _ := ethtransferhelper.GetAddressFromPrivateKey(key)
|
||||
data.Address = address.String()
|
||||
|
||||
if err := e.Orm.Model(data).Where("private_key =?", data.PrivateKey).Count(&count).Error; err != nil {
|
||||
e.Log.Errorf("db error:%s", err)
|
||||
}
|
||||
|
||||
if count == 0 {
|
||||
if err := e.Orm.Create(&data).Error; err != nil {
|
||||
e.Log.Errorf("db error:%s", err)
|
||||
errs = append(errs, key)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return errs
|
||||
}
|
||||
|
||||
// Update 修改WmWalletInfo对象
|
||||
func (e *WmWalletInfo) Update(c *dto.WmWalletInfoUpdateReq, p *actions.DataPermission) error {
|
||||
var err error
|
||||
var data = models.WmWalletInfo{}
|
||||
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("WmWalletInfoService Save error:%s \r\n", err)
|
||||
return err
|
||||
}
|
||||
if db.RowsAffected == 0 {
|
||||
return errors.New("无权更新该数据")
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// Remove 删除WmWalletInfo
|
||||
func (e *WmWalletInfo) Remove(d *dto.WmWalletInfoDeleteReq, p *actions.DataPermission) error {
|
||||
var data models.WmWalletInfo
|
||||
|
||||
db := e.Orm.Model(&data).
|
||||
Scopes(
|
||||
actions.Permission(data.TableName(), p),
|
||||
).Delete(&data, d.GetId())
|
||||
if err := db.Error; err != nil {
|
||||
e.Log.Errorf("Service RemoveWmWalletInfo error:%s \r\n", err)
|
||||
return err
|
||||
}
|
||||
if db.RowsAffected == 0 {
|
||||
return errors.New("无权删除该数据")
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// ScheduledTask 定时任务
|
||||
func (e *WmWalletInfo) ScheduledTask() error {
|
||||
var datas []models.WmWalletInfo
|
||||
|
||||
if err := e.Orm.Model(models.WmWalletInfo{}).Find(&datas).Error; err != nil {
|
||||
e.Log.Errorf("db error:%s", err)
|
||||
return err
|
||||
}
|
||||
|
||||
client, err := ethbalanceofhelper.EthClientWithProxy(config.ExtConfig.ApiEndpoint, config.ExtConfig.ProxyUrl)
|
||||
|
||||
if err != nil {
|
||||
e.Log.Errorf("ethclient error:%s", err)
|
||||
return err
|
||||
}
|
||||
|
||||
for i := range datas {
|
||||
amount, err := ethbalanceofhelper.GetERC20Balance(client, ethereumabi.USDCErc20, datas[i].Address)
|
||||
|
||||
if err != nil {
|
||||
e.Log.Errorf("GetERC20Balance error:%s", err)
|
||||
continue
|
||||
}
|
||||
|
||||
datas[i].UsdcAmount = amount
|
||||
|
||||
if err := e.Orm.Model(&datas[i]).Update("usdc_amount", amount).Error; err != nil {
|
||||
e.Log.Errorf("db error:%s", err)
|
||||
continue
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
31
app/jobs/transfer_job.go
Normal file
31
app/jobs/transfer_job.go
Normal file
@ -0,0 +1,31 @@
|
||||
package jobs
|
||||
|
||||
import (
|
||||
"go-admin/app/admin/service"
|
||||
|
||||
"github.com/go-admin-team/go-admin-core/logger"
|
||||
"github.com/go-admin-team/go-admin-core/sdk"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
type TransferJob struct{}
|
||||
|
||||
// 定期转账
|
||||
func (t TransferJob) Exec(arg interface{}) error {
|
||||
walletService := service.WmWalletInfo{}
|
||||
walletService.Orm = getDefaultDb()
|
||||
walletService.Log = logger.NewHelper(logger.DefaultLogger)
|
||||
|
||||
return walletService.ScheduledTask()
|
||||
}
|
||||
|
||||
func getDefaultDb() *gorm.DB {
|
||||
dbs := sdk.Runtime.GetDb()
|
||||
var db *gorm.DB
|
||||
|
||||
for _, item := range dbs {
|
||||
db = item
|
||||
break
|
||||
}
|
||||
return db
|
||||
}
|
||||
23
app/jobs/transfer_job_test.go
Normal file
23
app/jobs/transfer_job_test.go
Normal file
@ -0,0 +1,23 @@
|
||||
package jobs
|
||||
|
||||
import (
|
||||
"go-admin/config"
|
||||
"testing"
|
||||
|
||||
"github.com/go-admin-team/go-admin-core/sdk"
|
||||
"gorm.io/driver/mysql"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
func TestTransferJob(t *testing.T) {
|
||||
dsn := "root:123456@tcp(127.0.0.1:3306)/eth_transfer?charset=utf8mb4&parseTime=True&loc=Local&timeout=1000ms"
|
||||
db, _ := gorm.Open(mysql.Open(dsn), &gorm.Config{})
|
||||
sdk.Runtime.SetDb("default", db)
|
||||
|
||||
config.ExtConfig.ApiEndpoint = "https://stylish-cool-fire.ethereum-sepolia.quiknode.pro/17572db4c091accfa5dc6faa0c60a805e5173459"
|
||||
config.ExtConfig.ProxyUrl = "http://127.0.0.1:7890"
|
||||
|
||||
job := TransferJob{}
|
||||
|
||||
job.Exec(nil)
|
||||
}
|
||||
Reference in New Issue
Block a user