1、修改deepl 允许自定义源语言
This commit is contained in:
		
							
								
								
									
										193
									
								
								app/admin/apis/tm_recharge_package.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										193
									
								
								app/admin/apis/tm_recharge_package.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 TmRechargePackage struct { | ||||
| 	api.Api | ||||
| } | ||||
|  | ||||
| // GetPage 获取tm_recharge_package列表 | ||||
| // @Summary 获取tm_recharge_package列表 | ||||
| // @Description 获取tm_recharge_package列表 | ||||
| // @Tags tm_recharge_package | ||||
| // @Param platformId query int64 false "平台id" | ||||
| // @Param status query int64 false "状态 1-启用 2-禁用" | ||||
| // @Param pageSize query int false "页条数" | ||||
| // @Param pageIndex query int false "页码" | ||||
| // @Success 200 {object} response.Response{data=response.Page{list=[]models.TmRechargePackage}} "{"code": 200, "data": [...]}" | ||||
| // @Router /api/v1/tm-recharge-package [get] | ||||
| // @Security Bearer | ||||
| func (e TmRechargePackage) GetPage(c *gin.Context) { | ||||
|     req := dto.TmRechargePackageGetPageReq{} | ||||
|     s := service.TmRechargePackage{} | ||||
|     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.TmRechargePackage, 0) | ||||
| 	var count int64 | ||||
|  | ||||
| 	err = s.GetPage(&req, p, &list, &count) | ||||
| 	if err != nil { | ||||
| 		e.Error(500, err, fmt.Sprintf("获取tm_recharge_package失败,\r\n失败信息 %s", err.Error())) | ||||
|         return | ||||
| 	} | ||||
|  | ||||
| 	e.PageOK(list, int(count), req.GetPageIndex(), req.GetPageSize(), "查询成功") | ||||
| } | ||||
|  | ||||
| // Get 获取tm_recharge_package | ||||
| // @Summary 获取tm_recharge_package | ||||
| // @Description 获取tm_recharge_package | ||||
| // @Tags tm_recharge_package | ||||
| // @Param id path int false "id" | ||||
| // @Success 200 {object} response.Response{data=models.TmRechargePackage} "{"code": 200, "data": [...]}" | ||||
| // @Router /api/v1/tm-recharge-package/{id} [get] | ||||
| // @Security Bearer | ||||
| func (e TmRechargePackage) Get(c *gin.Context) { | ||||
| 	req := dto.TmRechargePackageGetReq{} | ||||
| 	s := service.TmRechargePackage{} | ||||
|     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.TmRechargePackage | ||||
|  | ||||
| 	p := actions.GetPermissionFromContext(c) | ||||
| 	err = s.Get(&req, p, &object) | ||||
| 	if err != nil { | ||||
| 		e.Error(500, err, fmt.Sprintf("获取tm_recharge_package失败,\r\n失败信息 %s", err.Error())) | ||||
|         return | ||||
| 	} | ||||
|  | ||||
| 	e.OK( object, "查询成功") | ||||
| } | ||||
|  | ||||
| // Insert 创建tm_recharge_package | ||||
| // @Summary 创建tm_recharge_package | ||||
| // @Description 创建tm_recharge_package | ||||
| // @Tags tm_recharge_package | ||||
| // @Accept application/json | ||||
| // @Product application/json | ||||
| // @Param data body dto.TmRechargePackageInsertReq true "data" | ||||
| // @Success 200 {object} response.Response	"{"code": 200, "message": "添加成功"}" | ||||
| // @Router /api/v1/tm-recharge-package [post] | ||||
| // @Security Bearer | ||||
| func (e TmRechargePackage) Insert(c *gin.Context) { | ||||
|     req := dto.TmRechargePackageInsertReq{} | ||||
|     s := service.TmRechargePackage{} | ||||
|     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("创建tm_recharge_package失败,\r\n失败信息 %s", err.Error())) | ||||
|         return | ||||
| 	} | ||||
|  | ||||
| 	e.OK(req.GetId(), "创建成功") | ||||
| } | ||||
|  | ||||
| // Update 修改tm_recharge_package | ||||
| // @Summary 修改tm_recharge_package | ||||
| // @Description 修改tm_recharge_package | ||||
| // @Tags tm_recharge_package | ||||
| // @Accept application/json | ||||
| // @Product application/json | ||||
| // @Param id path int true "id" | ||||
| // @Param data body dto.TmRechargePackageUpdateReq true "body" | ||||
| // @Success 200 {object} response.Response	"{"code": 200, "message": "修改成功"}" | ||||
| // @Router /api/v1/tm-recharge-package/{id} [put] | ||||
| // @Security Bearer | ||||
| func (e TmRechargePackage) Update(c *gin.Context) { | ||||
|     req := dto.TmRechargePackageUpdateReq{} | ||||
|     s := service.TmRechargePackage{} | ||||
|     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("修改tm_recharge_package失败,\r\n失败信息 %s", err.Error())) | ||||
|         return | ||||
| 	} | ||||
| 	e.OK( req.GetId(), "修改成功") | ||||
| } | ||||
|  | ||||
| // Delete 删除tm_recharge_package | ||||
| // @Summary 删除tm_recharge_package | ||||
| // @Description 删除tm_recharge_package | ||||
| // @Tags tm_recharge_package | ||||
| // @Param data body dto.TmRechargePackageDeleteReq true "body" | ||||
| // @Success 200 {object} response.Response	"{"code": 200, "message": "删除成功"}" | ||||
| // @Router /api/v1/tm-recharge-package [delete] | ||||
| // @Security Bearer | ||||
| func (e TmRechargePackage) Delete(c *gin.Context) { | ||||
|     s := service.TmRechargePackage{} | ||||
|     req := dto.TmRechargePackageDeleteReq{} | ||||
|     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("删除tm_recharge_package失败,\r\n失败信息 %s", err.Error())) | ||||
|         return | ||||
| 	} | ||||
| 	e.OK( req.GetId(), "删除成功") | ||||
| } | ||||
							
								
								
									
										30
									
								
								app/admin/models/tm_recharge_package.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								app/admin/models/tm_recharge_package.go
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,30 @@ | ||||
| package models | ||||
|  | ||||
| import ( | ||||
| 	"go-admin/common/models" | ||||
|  | ||||
| 	"github.com/shopspring/decimal" | ||||
| ) | ||||
|  | ||||
| type TmRechargePackage struct { | ||||
| 	models.Model | ||||
|  | ||||
| 	PlatformId int             `json:"platformId" gorm:"type:bigint;comment:平台id"` | ||||
| 	Amount     decimal.Decimal `json:"amount" gorm:"type:decimal(10,6);comment:套餐金额(U)"` | ||||
| 	Status     int             `json:"status" gorm:"type:tinyint;comment:状态 1-启用 2-禁用"` | ||||
| 	models.ModelTime | ||||
| 	models.ControlBy | ||||
| } | ||||
|  | ||||
| func (TmRechargePackage) TableName() string { | ||||
| 	return "tm_recharge_package" | ||||
| } | ||||
|  | ||||
| func (e *TmRechargePackage) Generate() models.ActiveRecord { | ||||
| 	o := *e | ||||
| 	return &o | ||||
| } | ||||
|  | ||||
| func (e *TmRechargePackage) GetId() interface{} { | ||||
| 	return e.Id | ||||
| } | ||||
							
								
								
									
										27
									
								
								app/admin/router/tm_recharge_package.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								app/admin/router/tm_recharge_package.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, registerTmRechargePackageRouter) | ||||
| } | ||||
|  | ||||
| // registerTmRechargePackageRouter | ||||
| func registerTmRechargePackageRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) { | ||||
| 	api := apis.TmRechargePackage{} | ||||
| 	r := v1.Group("/tm-recharge-package").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) | ||||
| 	} | ||||
| } | ||||
							
								
								
									
										94
									
								
								app/admin/service/dto/tm_recharge_package.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										94
									
								
								app/admin/service/dto/tm_recharge_package.go
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,94 @@ | ||||
| package dto | ||||
|  | ||||
| import ( | ||||
| 	"go-admin/app/admin/models" | ||||
| 	"go-admin/common/dto" | ||||
| 	common "go-admin/common/models" | ||||
|  | ||||
| 	"github.com/shopspring/decimal" | ||||
| ) | ||||
|  | ||||
| type TmRechargePackageGetPageReq struct { | ||||
| 	dto.Pagination `search:"-"` | ||||
| 	PlatformId     int64 `form:"platformId"  search:"type:exact;column:platform_id;table:tm_recharge_package" comment:"平台id"` | ||||
| 	Status         int64 `form:"status"  search:"type:exact;column:status;table:tm_recharge_package" comment:"状态 1-启用 2-禁用"` | ||||
| 	TmRechargePackageOrder | ||||
| } | ||||
|  | ||||
| type TmRechargePackageOrder struct { | ||||
| 	Id         string `form:"idOrder"  search:"type:order;column:id;table:tm_recharge_package"` | ||||
| 	PlatformId string `form:"platformIdOrder"  search:"type:order;column:platform_id;table:tm_recharge_package"` | ||||
| 	Amount     string `form:"amountOrder"  search:"type:order;column:amount;table:tm_recharge_package"` | ||||
| 	Status     string `form:"statusOrder"  search:"type:order;column:status;table:tm_recharge_package"` | ||||
| 	CreateBy   string `form:"createByOrder"  search:"type:order;column:create_by;table:tm_recharge_package"` | ||||
| 	UpdateBy   string `form:"updateByOrder"  search:"type:order;column:update_by;table:tm_recharge_package"` | ||||
| 	CreatedAt  string `form:"createdAtOrder"  search:"type:order;column:created_at;table:tm_recharge_package"` | ||||
| 	UpdatedAt  string `form:"updatedAtOrder"  search:"type:order;column:updated_at;table:tm_recharge_package"` | ||||
| 	DeletedAt  string `form:"deletedAtOrder"  search:"type:order;column:deleted_at;table:tm_recharge_package"` | ||||
| } | ||||
|  | ||||
| func (m *TmRechargePackageGetPageReq) GetNeedSearch() interface{} { | ||||
| 	return *m | ||||
| } | ||||
|  | ||||
| type TmRechargePackageInsertReq struct { | ||||
| 	Id         int             `json:"-" comment:"主键id"` // 主键id | ||||
| 	PlatformId int             `json:"platformId" comment:"平台id"` | ||||
| 	Amount     decimal.Decimal `json:"amount" comment:"套餐金额(U)"` | ||||
| 	Status     int             `json:"status" comment:"状态 1-启用 2-禁用"` | ||||
| 	common.ControlBy | ||||
| } | ||||
|  | ||||
| func (s *TmRechargePackageInsertReq) Generate(model *models.TmRechargePackage) { | ||||
| 	if s.Id == 0 { | ||||
| 		model.Model = common.Model{Id: s.Id} | ||||
| 	} | ||||
| 	model.PlatformId = s.PlatformId | ||||
| 	model.Amount = s.Amount | ||||
| 	model.Status = s.Status | ||||
| 	model.CreateBy = s.CreateBy // 添加这而,需要记录是被谁创建的 | ||||
| } | ||||
|  | ||||
| func (s *TmRechargePackageInsertReq) GetId() interface{} { | ||||
| 	return s.Id | ||||
| } | ||||
|  | ||||
| type TmRechargePackageUpdateReq struct { | ||||
| 	Id         int             `uri:"id" comment:"主键id"` // 主键id | ||||
| 	PlatformId int             `json:"platformId" comment:"平台id"` | ||||
| 	Amount     decimal.Decimal `json:"amount" comment:"套餐金额(U)"` | ||||
| 	Status     int             `json:"status" comment:"状态 1-启用 2-禁用"` | ||||
| 	common.ControlBy | ||||
| } | ||||
|  | ||||
| func (s *TmRechargePackageUpdateReq) Generate(model *models.TmRechargePackage) { | ||||
| 	if s.Id == 0 { | ||||
| 		model.Model = common.Model{Id: s.Id} | ||||
| 	} | ||||
| 	model.PlatformId = s.PlatformId | ||||
| 	model.Amount = s.Amount | ||||
| 	model.Status = s.Status | ||||
| 	model.UpdateBy = s.UpdateBy // 添加这而,需要记录是被谁更新的 | ||||
| } | ||||
|  | ||||
| func (s *TmRechargePackageUpdateReq) GetId() interface{} { | ||||
| 	return s.Id | ||||
| } | ||||
|  | ||||
| // TmRechargePackageGetReq 功能获取请求参数 | ||||
| type TmRechargePackageGetReq struct { | ||||
| 	Id int `uri:"id"` | ||||
| } | ||||
|  | ||||
| func (s *TmRechargePackageGetReq) GetId() interface{} { | ||||
| 	return s.Id | ||||
| } | ||||
|  | ||||
| // TmRechargePackageDeleteReq 功能删除请求参数 | ||||
| type TmRechargePackageDeleteReq struct { | ||||
| 	Ids []int `json:"ids"` | ||||
| } | ||||
|  | ||||
| func (s *TmRechargePackageDeleteReq) GetId() interface{} { | ||||
| 	return s.Ids | ||||
| } | ||||
| @ -0,0 +1,12 @@ | ||||
| -- KEYS[1] = locked_payment_amounts | ||||
| -- KEYS[2] = locked_payment_expire_queue | ||||
| -- ARGV[1] = amount(字符串) | ||||
| -- ARGV[2] = expire_ts | ||||
|  | ||||
| if redis.call("HEXISTS", KEYS[1], ARGV[1]) == 1 then | ||||
|   return 0 | ||||
| end | ||||
|  | ||||
| redis.call("HSET", KEYS[1], ARGV[1], ARGV[2]) | ||||
| redis.call("ZADD", KEYS[2], ARGV[2], ARGV[1]) | ||||
| return 1 | ||||
| @ -0,0 +1,78 @@ | ||||
| package receiveaddressmanager | ||||
|  | ||||
| import ( | ||||
| 	"context" | ||||
| 	"errors" | ||||
| 	"fmt" | ||||
| 	"time" | ||||
|  | ||||
| 	"github.com/go-redis/redis/v8" | ||||
| ) | ||||
|  | ||||
| func LockAmount(ctx context.Context, rdb *redis.Client, amount string, ttl time.Duration) (bool, error) { | ||||
| 	lockKey := "locked_payment_amounts" | ||||
| 	queueKey := "locked_payment_expire_queue" | ||||
| 	expireTs := time.Now().Add(ttl).Unix() | ||||
|  | ||||
| 	script := ` | ||||
| 	if redis.call("HEXISTS", KEYS[1], ARGV[1]) == 1 then return 0 end | ||||
| 	redis.call("HSET", KEYS[1], ARGV[1], ARGV[2]) | ||||
| 	redis.call("ZADD", KEYS[2], ARGV[2], ARGV[1]) | ||||
| 	return 1 | ||||
| 	` | ||||
|  | ||||
| 	ok, err := rdb.Eval(ctx, script, []string{lockKey, queueKey}, amount, expireTs).Bool() | ||||
| 	return ok, err | ||||
| } | ||||
|  | ||||
| // 金额分配逻辑 | ||||
| func AllocatePaymentAmount(ctx context.Context, rdb *redis.Client, baseAmount float64) (string, error) { | ||||
| 	for i := 0; i < 100; i++ { | ||||
| 		amount := baseAmount + float64(i)*0.0001 | ||||
| 		amountStr := fmt.Sprintf("%.4f", amount) | ||||
| 		ok, err := LockAmount(ctx, rdb, amountStr, 10*time.Minute) | ||||
| 		if err != nil { | ||||
| 			return "", err | ||||
| 		} | ||||
| 		if ok { | ||||
| 			return amountStr, nil | ||||
| 		} | ||||
| 	} | ||||
| 	return "", errors.New("无法锁定可用金额,请稍后再试") | ||||
| } | ||||
|  | ||||
| // 清理过期锁 | ||||
| func CleanExpiredAmountLocks(ctx context.Context, rdb *redis.Client) error { | ||||
| 	now := time.Now().Unix() | ||||
| 	zsetKey := "locked_payment_expire_queue" | ||||
| 	hashKey := "locked_payment_amounts" | ||||
|  | ||||
| 	amounts, err := rdb.ZRangeByScore(ctx, zsetKey, &redis.ZRangeBy{ | ||||
| 		Min: "-inf", | ||||
| 		Max: fmt.Sprintf("%d", now), | ||||
| 	}).Result() | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 	if len(amounts) == 0 { | ||||
| 		return nil | ||||
| 	} | ||||
|  | ||||
| 	// 删除已过期锁 | ||||
|  | ||||
| 	if _, err := rdb.HDel(ctx, hashKey, amounts...).Result(); err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 	if _, err := rdb.ZRem(ctx, zsetKey, stringSliceToInterface(amounts)...).Result(); err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| func stringSliceToInterface(slice []string) []interface{} { | ||||
| 	result := make([]interface{}, len(slice)) | ||||
| 	for i, v := range slice { | ||||
| 		result[i] = v | ||||
| 	} | ||||
| 	return result | ||||
| } | ||||
							
								
								
									
										109
									
								
								app/admin/service/tm_recharge_package.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										109
									
								
								app/admin/service/tm_recharge_package.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 TmRechargePackage struct { | ||||
| 	service.Service | ||||
| } | ||||
|  | ||||
| // GetPage 获取TmRechargePackage列表 | ||||
| func (e *TmRechargePackage) GetPage(c *dto.TmRechargePackageGetPageReq, p *actions.DataPermission, list *[]models.TmRechargePackage, count *int64) error { | ||||
| 	var err error | ||||
| 	var data models.TmRechargePackage | ||||
|  | ||||
| 	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("TmRechargePackageService GetPage error:%s \r\n", err) | ||||
| 		return err | ||||
| 	} | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| // Get 获取TmRechargePackage对象 | ||||
| func (e *TmRechargePackage) Get(d *dto.TmRechargePackageGetReq, p *actions.DataPermission, model *models.TmRechargePackage) error { | ||||
| 	var data models.TmRechargePackage | ||||
|  | ||||
| 	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 GetTmRechargePackage error:%s \r\n", err) | ||||
| 		return err | ||||
| 	} | ||||
| 	if err != nil { | ||||
| 		e.Log.Errorf("db error:%s", err) | ||||
| 		return err | ||||
| 	} | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| // Insert 创建TmRechargePackage对象 | ||||
| func (e *TmRechargePackage) Insert(c *dto.TmRechargePackageInsertReq) error { | ||||
|     var err error | ||||
|     var data models.TmRechargePackage | ||||
|     c.Generate(&data) | ||||
| 	err = e.Orm.Create(&data).Error | ||||
| 	if err != nil { | ||||
| 		e.Log.Errorf("TmRechargePackageService Insert error:%s \r\n", err) | ||||
| 		return err | ||||
| 	} | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| // Update 修改TmRechargePackage对象 | ||||
| func (e *TmRechargePackage) Update(c *dto.TmRechargePackageUpdateReq, p *actions.DataPermission) error { | ||||
|     var err error | ||||
|     var data = models.TmRechargePackage{} | ||||
|     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("TmRechargePackageService Save error:%s \r\n", err) | ||||
|         return err | ||||
|     } | ||||
|     if db.RowsAffected == 0 { | ||||
|         return errors.New("无权更新该数据") | ||||
|     } | ||||
|     return nil | ||||
| } | ||||
|  | ||||
| // Remove 删除TmRechargePackage | ||||
| func (e *TmRechargePackage) Remove(d *dto.TmRechargePackageDeleteReq, p *actions.DataPermission) error { | ||||
| 	var data models.TmRechargePackage | ||||
|  | ||||
| 	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 RemoveTmRechargePackage error:%s \r\n", err) | ||||
|         return err | ||||
|     } | ||||
|     if db.RowsAffected == 0 { | ||||
|         return errors.New("无权删除该数据") | ||||
|     } | ||||
| 	return nil | ||||
| } | ||||
| @ -63,8 +63,10 @@ func (e *DeeplTranslator) Translate(text string, sourceLang, targetLang string) | ||||
| 		"Authorization": fmt.Sprintf("DeepL-Auth-Key %s", e.config.ApiKey), | ||||
| 		"Content-Type":  "application/json", | ||||
| 	} | ||||
| 	if sourceLang != "" || strings.ToLower(sourceLang) == "auto" { | ||||
| 	if sourceLang != "" && strings.ToLower(sourceLang) == "auto" { | ||||
| 		requestBody["source_lang"] = "" | ||||
| 	} else { | ||||
| 		requestBody["source_lang"] = sourceLang | ||||
| 	} | ||||
|  | ||||
| 	var responseData deeplTranslationResponse | ||||
|  | ||||
		Reference in New Issue
	
	Block a user