Merge branch 'develop' of https://gitee.com/fusenpack/fusenapi into develop
This commit is contained in:
commit
f41bea0201
4
go.mod
4
go.mod
@ -102,7 +102,7 @@ require (
|
|||||||
github.com/prometheus/common v0.42.0 // indirect
|
github.com/prometheus/common v0.42.0 // indirect
|
||||||
github.com/prometheus/procfs v0.10.1 // indirect
|
github.com/prometheus/procfs v0.10.1 // indirect
|
||||||
github.com/spaolacci/murmur3 v1.1.0 // indirect
|
github.com/spaolacci/murmur3 v1.1.0 // indirect
|
||||||
go.opentelemetry.io/otel v1.14.0 // indirect
|
go.opentelemetry.io/otel v1.14.0
|
||||||
go.opentelemetry.io/otel/exporters/jaeger v1.14.0 // indirect
|
go.opentelemetry.io/otel/exporters/jaeger v1.14.0 // indirect
|
||||||
go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.14.0 // indirect
|
go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.14.0 // indirect
|
||||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.14.0 // indirect
|
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.14.0 // indirect
|
||||||
@ -110,7 +110,7 @@ require (
|
|||||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.14.0 // indirect
|
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.14.0 // indirect
|
||||||
go.opentelemetry.io/otel/exporters/zipkin v1.14.0 // indirect
|
go.opentelemetry.io/otel/exporters/zipkin v1.14.0 // indirect
|
||||||
go.opentelemetry.io/otel/sdk v1.14.0 // indirect
|
go.opentelemetry.io/otel/sdk v1.14.0 // indirect
|
||||||
go.opentelemetry.io/otel/trace v1.14.0 // indirect
|
go.opentelemetry.io/otel/trace v1.14.0
|
||||||
go.opentelemetry.io/proto/otlp v0.19.0 // indirect
|
go.opentelemetry.io/proto/otlp v0.19.0 // indirect
|
||||||
go.uber.org/automaxprocs v1.5.2 // indirect
|
go.uber.org/automaxprocs v1.5.2 // indirect
|
||||||
golang.org/x/net v0.12.0 // indirect
|
golang.org/x/net v0.12.0 // indirect
|
||||||
|
@ -37,7 +37,7 @@ func InitMysql(sourceMysql string) *gorm.DB {
|
|||||||
sqlDB.SetMaxIdleConns(4)
|
sqlDB.SetMaxIdleConns(4)
|
||||||
|
|
||||||
// SetMaxOpenConns 设置打开数据库连接的最大数量。
|
// SetMaxOpenConns 设置打开数据库连接的最大数量。
|
||||||
sqlDB.SetMaxOpenConns(10)
|
sqlDB.SetMaxOpenConns(25)
|
||||||
|
|
||||||
// SetConnMaxLifetime 设置了连接可复用的最大时间。
|
// SetConnMaxLifetime 设置了连接可复用的最大时间。
|
||||||
sqlDB.SetConnMaxLifetime(time.Minute * 20)
|
sqlDB.SetConnMaxLifetime(time.Minute * 20)
|
||||||
|
24
model/gmodel/casbin_rule_gen.go
Normal file
24
model/gmodel/casbin_rule_gen.go
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
package gmodel
|
||||||
|
|
||||||
|
import (
|
||||||
|
"gorm.io/gorm"
|
||||||
|
)
|
||||||
|
|
||||||
|
// casbin_rule
|
||||||
|
type CasbinRule struct {
|
||||||
|
PType *string `gorm:"default:'';" json:"p_type"` //
|
||||||
|
V0 *string `gorm:"default:'';" json:"v0"` //
|
||||||
|
V1 *string `gorm:"default:'';" json:"v1"` //
|
||||||
|
V2 *string `gorm:"default:'';" json:"v2"` //
|
||||||
|
V3 *string `gorm:"default:'';" json:"v3"` //
|
||||||
|
V4 *string `gorm:"default:'';" json:"v4"` //
|
||||||
|
V5 *string `gorm:"default:'';" json:"v5"` //
|
||||||
|
}
|
||||||
|
type CasbinRuleModel struct {
|
||||||
|
db *gorm.DB
|
||||||
|
name string
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewCasbinRuleModel(db *gorm.DB) *CasbinRuleModel {
|
||||||
|
return &CasbinRuleModel{db: db, name: "casbin_rule"}
|
||||||
|
}
|
2
model/gmodel/casbin_rule_logic.go
Normal file
2
model/gmodel/casbin_rule_logic.go
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
package gmodel
|
||||||
|
// TODO: 使用model的属性做你想做的
|
33
model/gmodel/fs_admin_auth_role_gen.go
Normal file
33
model/gmodel/fs_admin_auth_role_gen.go
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
package gmodel
|
||||||
|
|
||||||
|
import (
|
||||||
|
"gorm.io/gorm"
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
|
// fs_admin_auth_role 后台--角色表
|
||||||
|
type FsAdminAuthRole struct {
|
||||||
|
Id int64 `gorm:"primary_key;default:0;" json:"id"` // 序号
|
||||||
|
RolePid *int64 `gorm:"default:0;" json:"role_pid"` // 上级角色
|
||||||
|
RoleName *string `gorm:"default:'';" json:"role_name"` //
|
||||||
|
DataAuthType *int64 `gorm:"default:1;" json:"data_auth_type"` // 数据权限类型
|
||||||
|
DataAuth *string `gorm:"default:'';" json:"data_auth"` //
|
||||||
|
Status *int64 `gorm:"default:2;" json:"status"` // 状态:1=启用,2=停用
|
||||||
|
Remark *string `gorm:"default:'';" json:"remark"` //
|
||||||
|
Sort *int64 `gorm:"default:0;" json:"sort"` // 排序权重
|
||||||
|
CreateTime *time.Time `gorm:"default:'0000-00-00 00:00:00';" json:"create_time"` //
|
||||||
|
UpdateTime *time.Time `gorm:"default:'0000-00-00 00:00:00';" json:"update_time"` //
|
||||||
|
DeleteTime *time.Time `gorm:"default:'0000-00-00 00:00:00';" json:"delete_time"` //
|
||||||
|
CreateUid *int64 `gorm:"default:0;" json:"create_uid"` // 创建人
|
||||||
|
UpdateUid *int64 `gorm:"default:0;" json:"update_uid"` // 更新人
|
||||||
|
DeleteUid *int64 `gorm:"default:0;" json:"delete_uid"` // 删除人
|
||||||
|
IsDel *int64 `gorm:"default:0;" json:"is_del"` // 是否删除:1=是 0=否
|
||||||
|
}
|
||||||
|
type FsAdminAuthRoleModel struct {
|
||||||
|
db *gorm.DB
|
||||||
|
name string
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewFsAdminAuthRoleModel(db *gorm.DB) *FsAdminAuthRoleModel {
|
||||||
|
return &FsAdminAuthRoleModel{db: db, name: "fs_admin_auth_role"}
|
||||||
|
}
|
2
model/gmodel/fs_admin_auth_role_logic.go
Normal file
2
model/gmodel/fs_admin_auth_role_logic.go
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
package gmodel
|
||||||
|
// TODO: 使用model的属性做你想做的
|
35
model/gmodel/fs_admin_department_gen.go
Normal file
35
model/gmodel/fs_admin_department_gen.go
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
package gmodel
|
||||||
|
|
||||||
|
import (
|
||||||
|
"gorm.io/gorm"
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
|
// fs_admin_department 后台--部门表
|
||||||
|
type FsAdminDepartment struct {
|
||||||
|
Id int64 `gorm:"primary_key;default:0;" json:"id"` // 序号
|
||||||
|
DeptPid *int64 `gorm:"default:0;" json:"dept_pid"` // 上级部门
|
||||||
|
DeptNo *string `gorm:"default:'';" json:"dept_no"` //
|
||||||
|
DeptName *string `gorm:"default:'';" json:"dept_name"` //
|
||||||
|
ShortName *string `gorm:"default:'';" json:"short_name"` //
|
||||||
|
UserId *int64 `gorm:"default:0;" json:"user_id"` // 部门负责人
|
||||||
|
Phone *string `gorm:"default:'';" json:"phone"` //
|
||||||
|
Status *int64 `gorm:"default:2;" json:"status"` // 状态:1=启用,2=停用
|
||||||
|
Remark *string `gorm:"default:'';" json:"remark"` //
|
||||||
|
Sort *int64 `gorm:"default:0;" json:"sort"` // 排序权重
|
||||||
|
CreateTime *time.Time `gorm:"default:'0000-00-00 00:00:00';" json:"create_time"` //
|
||||||
|
UpdateTime *time.Time `gorm:"default:'0000-00-00 00:00:00';" json:"update_time"` //
|
||||||
|
DeleteTime *time.Time `gorm:"default:'0000-00-00 00:00:00';" json:"delete_time"` //
|
||||||
|
CreateUid *int64 `gorm:"default:0;" json:"create_uid"` // 创建人
|
||||||
|
UpdateUid *int64 `gorm:"default:0;" json:"update_uid"` // 更新人
|
||||||
|
DeleteUid *int64 `gorm:"default:0;" json:"delete_uid"` // 删除人
|
||||||
|
IsDel *int64 `gorm:"default:0;" json:"is_del"` // 是否删除:1=是 0=否
|
||||||
|
}
|
||||||
|
type FsAdminDepartmentModel struct {
|
||||||
|
db *gorm.DB
|
||||||
|
name string
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewFsAdminDepartmentModel(db *gorm.DB) *FsAdminDepartmentModel {
|
||||||
|
return &FsAdminDepartmentModel{db: db, name: "fs_admin_department"}
|
||||||
|
}
|
2
model/gmodel/fs_admin_department_logic.go
Normal file
2
model/gmodel/fs_admin_department_logic.go
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
package gmodel
|
||||||
|
// TODO: 使用model的属性做你想做的
|
33
model/gmodel/fs_admin_menu_gen.go
Normal file
33
model/gmodel/fs_admin_menu_gen.go
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
package gmodel
|
||||||
|
|
||||||
|
import (
|
||||||
|
"gorm.io/gorm"
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
|
// fs_admin_menu 后台--菜单表
|
||||||
|
type FsAdminMenu struct {
|
||||||
|
Id int64 `gorm:"primary_key;default:0;auto_increment;" json:"id"` // 序号
|
||||||
|
Pid *int64 `gorm:"default:0;" json:"pid"` // 上级菜单
|
||||||
|
Name *string `gorm:"default:'';" json:"name"` //
|
||||||
|
Path *string `gorm:"default:'';" json:"path"` //
|
||||||
|
Hide *string `gorm:"default:'';" json:"hide"` //
|
||||||
|
Metadata *[]byte `gorm:"default:'';" json:"metadata"` // 元数据,json格式
|
||||||
|
Remark *string `gorm:"default:'';" json:"remark"` //
|
||||||
|
Sort *int64 `gorm:"default:0;" json:"sort"` // 排序权重
|
||||||
|
CreateTime *time.Time `gorm:"default:'0000-00-00 00:00:00';" json:"create_time"` //
|
||||||
|
UpdateTime *time.Time `gorm:"default:'0000-00-00 00:00:00';" json:"update_time"` //
|
||||||
|
DeleteTime *time.Time `gorm:"default:'0000-00-00 00:00:00';" json:"delete_time"` //
|
||||||
|
CreateUid *int64 `gorm:"default:0;" json:"create_uid"` // 创建人
|
||||||
|
UpdateUid *int64 `gorm:"default:0;" json:"update_uid"` // 更新人
|
||||||
|
DeleteUid *int64 `gorm:"default:0;" json:"delete_uid"` // 删除人
|
||||||
|
IsDel *int64 `gorm:"default:0;" json:"is_del"` // 是否删除:1=是 0=否
|
||||||
|
}
|
||||||
|
type FsAdminMenuModel struct {
|
||||||
|
db *gorm.DB
|
||||||
|
name string
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewFsAdminMenuModel(db *gorm.DB) *FsAdminMenuModel {
|
||||||
|
return &FsAdminMenuModel{db: db, name: "fs_admin_menu"}
|
||||||
|
}
|
2
model/gmodel/fs_admin_menu_logic.go
Normal file
2
model/gmodel/fs_admin_menu_logic.go
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
package gmodel
|
||||||
|
// TODO: 使用model的属性做你想做的
|
@ -12,6 +12,7 @@ type FsMerchantCategory struct {
|
|||||||
Icon *string `gorm:"default:'';" json:"icon"` // 图标
|
Icon *string `gorm:"default:'';" json:"icon"` // 图标
|
||||||
RecommendProduct *string `gorm:"default:'';" json:"recommend_product"` // 推荐商品
|
RecommendProduct *string `gorm:"default:'';" json:"recommend_product"` // 推荐商品
|
||||||
Sort *int64 `gorm:"default:0;" json:"sort"` // 排序
|
Sort *int64 `gorm:"default:0;" json:"sort"` // 排序
|
||||||
|
IsDefault *int64 `gorm:"default:0;" json:"is_default"` // 是否是默认商家类型0非1是
|
||||||
Status *int64 `gorm:"default:0;" json:"status"` // 状态
|
Status *int64 `gorm:"default:0;" json:"status"` // 状态
|
||||||
Ctime *int64 `gorm:"default:0;" json:"ctime"` // 添加时间
|
Ctime *int64 `gorm:"default:0;" json:"ctime"` // 添加时间
|
||||||
}
|
}
|
||||||
|
@ -14,8 +14,10 @@ func (m *FsMerchantCategoryModel) FindOne(ctx context.Context, id int64) (resp *
|
|||||||
err = m.db.WithContext(ctx).Model(&FsMerchantCategory{}).Where("id = ? and status = ?", id, 1).Take(&resp).Error
|
err = m.db.WithContext(ctx).Model(&FsMerchantCategory{}).Where("id = ? and status = ?", id, 1).Take(&resp).Error
|
||||||
return resp, err
|
return resp, err
|
||||||
}
|
}
|
||||||
func (m *FsMerchantCategoryModel) FindRandOne(ctx context.Context) (resp *FsMerchantCategory, err error) {
|
|
||||||
err = m.db.WithContext(ctx).Model(&FsMerchantCategory{}).Where("status = ?", 1).Order("RAND()").Take(&resp).Error
|
// 获取默认那个
|
||||||
|
func (m *FsMerchantCategoryModel) FindDefualtOne(ctx context.Context) (resp *FsMerchantCategory, err error) {
|
||||||
|
err = m.db.WithContext(ctx).Model(&FsMerchantCategory{}).Where("status = ? and is_default = ?", 1, 1).Take(&resp).Error
|
||||||
return resp, err
|
return resp, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4,7 +4,11 @@ import "gorm.io/gorm"
|
|||||||
|
|
||||||
// AllModelsGen 所有Model集合,修改单行,只要不改字段名,不会根据新的内容修改,需要修改的话手动删除
|
// AllModelsGen 所有Model集合,修改单行,只要不改字段名,不会根据新的内容修改,需要修改的话手动删除
|
||||||
type AllModelsGen struct {
|
type AllModelsGen struct {
|
||||||
|
CasbinRule *CasbinRuleModel // casbin_rule
|
||||||
FsAddress *FsAddressModel // fs_address 用户地址表
|
FsAddress *FsAddressModel // fs_address 用户地址表
|
||||||
|
FsAdminAuthRole *FsAdminAuthRoleModel // fs_admin_auth_role 后台--角色表
|
||||||
|
FsAdminDepartment *FsAdminDepartmentModel // fs_admin_department 后台--部门表
|
||||||
|
FsAdminMenu *FsAdminMenuModel // fs_admin_menu 后台--菜单表
|
||||||
FsAuthAssignment *FsAuthAssignmentModel // fs_auth_assignment 用户角色和权限信息
|
FsAuthAssignment *FsAuthAssignmentModel // fs_auth_assignment 用户角色和权限信息
|
||||||
FsAuthItem *FsAuthItemModel // fs_auth_item 用户角色和权限信息
|
FsAuthItem *FsAuthItemModel // fs_auth_item 用户角色和权限信息
|
||||||
FsAuthItemChild *FsAuthItemChildModel // fs_auth_item_child 角色和权限关系表
|
FsAuthItemChild *FsAuthItemChildModel // fs_auth_item_child 角色和权限关系表
|
||||||
@ -103,7 +107,11 @@ type AllModelsGen struct {
|
|||||||
|
|
||||||
func NewAllModels(gdb *gorm.DB) *AllModelsGen {
|
func NewAllModels(gdb *gorm.DB) *AllModelsGen {
|
||||||
models := &AllModelsGen{
|
models := &AllModelsGen{
|
||||||
|
CasbinRule: NewCasbinRuleModel(gdb),
|
||||||
FsAddress: NewFsAddressModel(gdb),
|
FsAddress: NewFsAddressModel(gdb),
|
||||||
|
FsAdminAuthRole: NewFsAdminAuthRoleModel(gdb),
|
||||||
|
FsAdminDepartment: NewFsAdminDepartmentModel(gdb),
|
||||||
|
FsAdminMenu: NewFsAdminMenuModel(gdb),
|
||||||
FsAuthAssignment: NewFsAuthAssignmentModel(gdb),
|
FsAuthAssignment: NewFsAuthAssignmentModel(gdb),
|
||||||
FsAuthItem: NewFsAuthItemModel(gdb),
|
FsAuthItem: NewFsAuthItemModel(gdb),
|
||||||
FsAuthItemChild: NewFsAuthItemChildModel(gdb),
|
FsAuthItemChild: NewFsAuthItemChildModel(gdb),
|
||||||
|
@ -3,7 +3,9 @@ Host: localhost
|
|||||||
Port: 9980
|
Port: 9980
|
||||||
ReplicaId: 10
|
ReplicaId: 10
|
||||||
MainAddress: "https://server.fusen.3718.cn:9900"
|
MainAddress: "https://server.fusen.3718.cn:9900"
|
||||||
SourceMysql: fsreaderwriter:XErSYmLELKMnf3Dh@tcp(fusen.cdmigcvz3rle.us-east-2.rds.amazonaws.com:3306)/fusen
|
SourceMysql: "fsreaderwriter:XErSYmLELKMnf3Dh@tcp(fusen.cdmigcvz3rle.us-east-2.rds.amazonaws.com:3306)/fusen"
|
||||||
|
Log:
|
||||||
|
Stat: false
|
||||||
Auth:
|
Auth:
|
||||||
AccessSecret: fusen2023
|
AccessSecret: fusen2023
|
||||||
AccessExpire: 2592000
|
AccessExpire: 2592000
|
||||||
|
@ -2,7 +2,9 @@ Name: backend
|
|||||||
Host: localhost
|
Host: localhost
|
||||||
Port: 9901
|
Port: 9901
|
||||||
Timeout: 15000 #服务超时时间
|
Timeout: 15000 #服务超时时间
|
||||||
SourceMysql: fsreaderwriter:XErSYmLELKMnf3Dh@tcp(fusen.cdmigcvz3rle.us-east-2.rds.amazonaws.com:3306)/fusen
|
SourceMysql: "fsreaderwriter:XErSYmLELKMnf3Dh@tcp(fusen.cdmigcvz3rle.us-east-2.rds.amazonaws.com:3306)/fusen"
|
||||||
|
Log:
|
||||||
|
Stat: false
|
||||||
Auth:
|
Auth:
|
||||||
AccessSecret: fusen_backend_2023
|
AccessSecret: fusen_backend_2023
|
||||||
AccessExpire: 2592000
|
AccessExpire: 2592000
|
||||||
|
@ -3,7 +3,9 @@ Host: 0.0.0.0
|
|||||||
Port: 9920
|
Port: 9920
|
||||||
ReplicaId: 15
|
ReplicaId: 15
|
||||||
Timeout: 15000 #服务超时时间(毫秒)
|
Timeout: 15000 #服务超时时间(毫秒)
|
||||||
SourceMysql: fsreaderwriter:XErSYmLELKMnf3Dh@tcp(fusen.cdmigcvz3rle.us-east-2.rds.amazonaws.com:3306)/fusen
|
SourceMysql: "fsreaderwriter:XErSYmLELKMnf3Dh@tcp(fusen.cdmigcvz3rle.us-east-2.rds.amazonaws.com:3306)/fusen"
|
||||||
|
Log:
|
||||||
|
Stat: false
|
||||||
Auth:
|
Auth:
|
||||||
AccessSecret: fusen2023
|
AccessSecret: fusen2023
|
||||||
AccessExpire: 2592000
|
AccessExpire: 2592000
|
||||||
|
@ -3,7 +3,9 @@ Host: localhost
|
|||||||
Port: 9902
|
Port: 9902
|
||||||
ReplicaId: 20
|
ReplicaId: 20
|
||||||
Timeout: 15000 #服务超时时间
|
Timeout: 15000 #服务超时时间
|
||||||
SourceMysql: fsreaderwriter:XErSYmLELKMnf3Dh@tcp(fusen.cdmigcvz3rle.us-east-2.rds.amazonaws.com:3306)/fusen
|
SourceMysql: "fsreaderwriter:XErSYmLELKMnf3Dh@tcp(fusen.cdmigcvz3rle.us-east-2.rds.amazonaws.com:3306)/fusen"
|
||||||
|
Log:
|
||||||
|
Stat: false
|
||||||
Auth:
|
Auth:
|
||||||
AccessSecret: fusen2023
|
AccessSecret: fusen2023
|
||||||
AccessExpire: 2592000
|
AccessExpire: 2592000
|
||||||
|
@ -3,7 +3,9 @@ Host: localhost
|
|||||||
Port: 9903
|
Port: 9903
|
||||||
ReplicaId: 25
|
ReplicaId: 25
|
||||||
Timeout: 15000 #服务超时时间
|
Timeout: 15000 #服务超时时间
|
||||||
SourceMysql: fsreaderwriter:XErSYmLELKMnf3Dh@tcp(fusen.cdmigcvz3rle.us-east-2.rds.amazonaws.com:3306)/fusen
|
SourceMysql: "fsreaderwriter:XErSYmLELKMnf3Dh@tcp(fusen.cdmigcvz3rle.us-east-2.rds.amazonaws.com:3306)/fusen"
|
||||||
|
Log:
|
||||||
|
Stat: false
|
||||||
Auth:
|
Auth:
|
||||||
AccessSecret: fusen2023
|
AccessSecret: fusen2023
|
||||||
AccessExpire: 2592000
|
AccessExpire: 2592000
|
||||||
|
@ -4,7 +4,9 @@ Port: 9904
|
|||||||
ReplicaId: 30
|
ReplicaId: 30
|
||||||
Timeout: 15000 #服务超时时间
|
Timeout: 15000 #服务超时时间
|
||||||
MainAddress: "http://localhost:9900"
|
MainAddress: "http://localhost:9900"
|
||||||
SourceMysql: fsreaderwriter:XErSYmLELKMnf3Dh@tcp(fusen.cdmigcvz3rle.us-east-2.rds.amazonaws.com:3306)/fusen
|
SourceMysql: "fsreaderwriter:XErSYmLELKMnf3Dh@tcp(fusen.cdmigcvz3rle.us-east-2.rds.amazonaws.com:3306)/fusen"
|
||||||
|
Log:
|
||||||
|
Stat: false
|
||||||
|
|
||||||
Auth:
|
Auth:
|
||||||
AccessSecret: fusen2023
|
AccessSecret: fusen2023
|
||||||
|
@ -3,7 +3,9 @@ Host: localhost
|
|||||||
Port: 9905
|
Port: 9905
|
||||||
ReplicaId: 35
|
ReplicaId: 35
|
||||||
Timeout: 15000 #服务超时时间
|
Timeout: 15000 #服务超时时间
|
||||||
SourceMysql: fsreaderwriter:XErSYmLELKMnf3Dh@tcp(fusen.cdmigcvz3rle.us-east-2.rds.amazonaws.com:3306)/fusen
|
SourceMysql: "fsreaderwriter:XErSYmLELKMnf3Dh@tcp(fusen.cdmigcvz3rle.us-east-2.rds.amazonaws.com:3306)/fusen"
|
||||||
|
Log:
|
||||||
|
Stat: false
|
||||||
Auth:
|
Auth:
|
||||||
AccessSecret: fusen2023
|
AccessSecret: fusen2023
|
||||||
AccessExpire: 2592000
|
AccessExpire: 2592000
|
||||||
|
@ -3,7 +3,9 @@ Host: localhost
|
|||||||
Port: 9906
|
Port: 9906
|
||||||
ReplicaId: 40
|
ReplicaId: 40
|
||||||
Timeout: 15000 #服务超时时间
|
Timeout: 15000 #服务超时时间
|
||||||
SourceMysql: fsreaderwriter:XErSYmLELKMnf3Dh@tcp(fusen.cdmigcvz3rle.us-east-2.rds.amazonaws.com:3306)/fusen
|
SourceMysql: "fsreaderwriter:XErSYmLELKMnf3Dh@tcp(fusen.cdmigcvz3rle.us-east-2.rds.amazonaws.com:3306)/fusen"
|
||||||
|
Log:
|
||||||
|
Stat: false
|
||||||
Auth:
|
Auth:
|
||||||
AccessSecret: fusen2023
|
AccessSecret: fusen2023
|
||||||
AccessExpire: 2592000
|
AccessExpire: 2592000
|
||||||
|
@ -3,7 +3,9 @@ Host: localhost
|
|||||||
Port: 9907
|
Port: 9907
|
||||||
ReplicaId: 45
|
ReplicaId: 45
|
||||||
Timeout: 15000 #服务超时时间
|
Timeout: 15000 #服务超时时间
|
||||||
SourceMysql: fsreaderwriter:XErSYmLELKMnf3Dh@tcp(fusen.cdmigcvz3rle.us-east-2.rds.amazonaws.com:3306)/fusen
|
SourceMysql: "fsreaderwriter:XErSYmLELKMnf3Dh@tcp(fusen.cdmigcvz3rle.us-east-2.rds.amazonaws.com:3306)/fusen"
|
||||||
|
Log:
|
||||||
|
Stat: false
|
||||||
Auth:
|
Auth:
|
||||||
AccessSecret: fusen2023
|
AccessSecret: fusen2023
|
||||||
AccessExpire: 2592000
|
AccessExpire: 2592000
|
||||||
|
@ -3,7 +3,9 @@ Host: 0.0.0.0
|
|||||||
Port: 9915
|
Port: 9915
|
||||||
ReplicaId: 50
|
ReplicaId: 50
|
||||||
Timeout: 15000 #服务超时时间
|
Timeout: 15000 #服务超时时间
|
||||||
SourceMysql: fsreaderwriter:XErSYmLELKMnf3Dh@tcp(fusen.cdmigcvz3rle.us-east-2.rds.amazonaws.com:3306)/fusen
|
SourceMysql: "fsreaderwriter:XErSYmLELKMnf3Dh@tcp(fusen.cdmigcvz3rle.us-east-2.rds.amazonaws.com:3306)/fusen"
|
||||||
|
Log:
|
||||||
|
Stat: false
|
||||||
Auth:
|
Auth:
|
||||||
AccessSecret: fusen2023
|
AccessSecret: fusen2023
|
||||||
AccessExpire: 2592000
|
AccessExpire: 2592000
|
||||||
|
@ -1,7 +1,9 @@
|
|||||||
Name: product-model
|
Name: product-model
|
||||||
Host: localhost
|
Host: localhost
|
||||||
Port: 9909
|
Port: 9909
|
||||||
SourceMysql: fsreaderwriter:XErSYmLELKMnf3Dh@tcp(fusen.cdmigcvz3rle.us-east-2.rds.amazonaws.com:3306)/fusen
|
SourceMysql: "fsreaderwriter:XErSYmLELKMnf3Dh@tcp(fusen.cdmigcvz3rle.us-east-2.rds.amazonaws.com:3306)/fusen"
|
||||||
|
Log:
|
||||||
|
Stat: false
|
||||||
Auth:
|
Auth:
|
||||||
AccessSecret: fusen2023
|
AccessSecret: fusen2023
|
||||||
AccessExpire: 2592000
|
AccessExpire: 2592000
|
||||||
|
@ -3,7 +3,9 @@ Host: 0.0.0.0
|
|||||||
ReplicaId: 65
|
ReplicaId: 65
|
||||||
Port: 9917
|
Port: 9917
|
||||||
Timeout: 15000 #服务超时时间
|
Timeout: 15000 #服务超时时间
|
||||||
SourceMysql: fsreaderwriter:XErSYmLELKMnf3Dh@tcp(fusen.cdmigcvz3rle.us-east-2.rds.amazonaws.com:3306)/fusen
|
SourceMysql: "fsreaderwriter:XErSYmLELKMnf3Dh@tcp(fusen.cdmigcvz3rle.us-east-2.rds.amazonaws.com:3306)/fusen"
|
||||||
|
Log:
|
||||||
|
Stat: false
|
||||||
Auth:
|
Auth:
|
||||||
AccessSecret: fusen2023
|
AccessSecret: fusen2023
|
||||||
AccessExpire: 2592000
|
AccessExpire: 2592000
|
||||||
|
@ -3,7 +3,9 @@ Host: localhost
|
|||||||
Port: 9910
|
Port: 9910
|
||||||
ReplicaId: 60
|
ReplicaId: 60
|
||||||
Timeout: 15000 #服务超时时间
|
Timeout: 15000 #服务超时时间
|
||||||
SourceMysql: fsreaderwriter:XErSYmLELKMnf3Dh@tcp(fusen.cdmigcvz3rle.us-east-2.rds.amazonaws.com:3306)/fusen
|
SourceMysql: "fsreaderwriter:XErSYmLELKMnf3Dh@tcp(fusen.cdmigcvz3rle.us-east-2.rds.amazonaws.com:3306)/fusen"
|
||||||
|
Log:
|
||||||
|
Stat: false
|
||||||
Auth:
|
Auth:
|
||||||
AccessSecret: fusen2023
|
AccessSecret: fusen2023
|
||||||
AccessExpire: 2592000
|
AccessExpire: 2592000
|
||||||
|
@ -3,7 +3,9 @@ Host: localhost
|
|||||||
Port: 9908
|
Port: 9908
|
||||||
ReplicaId: 55
|
ReplicaId: 55
|
||||||
Timeout: 15000 #服务超时时间
|
Timeout: 15000 #服务超时时间
|
||||||
SourceMysql: fsreaderwriter:XErSYmLELKMnf3Dh@tcp(fusen.cdmigcvz3rle.us-east-2.rds.amazonaws.com:3306)/fusen
|
SourceMysql: "fsreaderwriter:XErSYmLELKMnf3Dh@tcp(fusen.cdmigcvz3rle.us-east-2.rds.amazonaws.com:3306)/fusen"
|
||||||
|
Log:
|
||||||
|
Stat: false
|
||||||
Auth:
|
Auth:
|
||||||
AccessSecret: fusen2023
|
AccessSecret: fusen2023
|
||||||
AccessExpire: 2592000
|
AccessExpire: 2592000
|
||||||
|
@ -54,16 +54,23 @@ func (l *HomePageRecommendProductListLogic) HomePageRecommendProductList(req *ty
|
|||||||
//选了商家类型
|
//选了商家类型
|
||||||
if req.MerchantType > 0 {
|
if req.MerchantType > 0 {
|
||||||
merchantInfo, err = l.svcCtx.AllModels.FsMerchantCategory.FindOne(l.ctx, req.MerchantType)
|
merchantInfo, err = l.svcCtx.AllModels.FsMerchantCategory.FindOne(l.ctx, req.MerchantType)
|
||||||
} else {
|
|
||||||
//随机获取一个商家类型
|
|
||||||
merchantInfo, err = l.svcCtx.AllModels.FsMerchantCategory.FindRandOne(l.ctx)
|
|
||||||
}
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if errors.Is(err, gorm.ErrRecordNotFound) {
|
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||||
return resp.SetStatusWithMessage(basic.CodeDbRecordNotFoundErr, "none of merchant type found")
|
return resp.SetStatusWithMessage(basic.CodeOK, "the merchant category is not exists", []interface{}{})
|
||||||
}
|
}
|
||||||
logx.Error(err)
|
logx.Error(err)
|
||||||
return resp.SetStatusWithMessage(basic.CodeDbSqlErr, "failed to get merchant type info")
|
return resp.SetStatusWithMessage(basic.CodeDbSqlErr, "failed to get merchant category")
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
//获取默认的那个
|
||||||
|
merchantInfo, err = l.svcCtx.AllModels.FsMerchantCategory.FindDefualtOne(l.ctx)
|
||||||
|
if err != nil {
|
||||||
|
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||||
|
return resp.SetStatusWithMessage(basic.CodeOK, "the default merchant category is not exists", []interface{}{})
|
||||||
|
}
|
||||||
|
logx.Error(err)
|
||||||
|
return resp.SetStatusWithMessage(basic.CodeDbSqlErr, "failed to get default merchant category")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if *merchantInfo.RecommendProduct == "" {
|
if *merchantInfo.RecommendProduct == "" {
|
||||||
return resp.SetStatusWithMessage(basic.CodeOK, "success", []interface{}{})
|
return resp.SetStatusWithMessage(basic.CodeOK, "success", []interface{}{})
|
||||||
|
@ -3,7 +3,9 @@ Host: 0.0.0.0
|
|||||||
Port: 9919
|
Port: 9919
|
||||||
ReplicaId: 70
|
ReplicaId: 70
|
||||||
Timeout: 15000 #服务超时时间
|
Timeout: 15000 #服务超时时间
|
||||||
SourceMysql: fsreaderwriter:XErSYmLELKMnf3Dh@tcp(fusen.cdmigcvz3rle.us-east-2.rds.amazonaws.com:3306)/fusen
|
SourceMysql: "fsreaderwriter:XErSYmLELKMnf3Dh@tcp(fusen.cdmigcvz3rle.us-east-2.rds.amazonaws.com:3306)/fusen"
|
||||||
|
Log:
|
||||||
|
Stat: false
|
||||||
Auth:
|
Auth:
|
||||||
AccessSecret: fusen2023
|
AccessSecret: fusen2023
|
||||||
AccessExpire: 2592000
|
AccessExpire: 2592000
|
||||||
|
@ -3,7 +3,9 @@ Host: 0.0.0.0
|
|||||||
Port: 9916
|
Port: 9916
|
||||||
ReplicaId: 75
|
ReplicaId: 75
|
||||||
Timeout: 150000 #服务超时时间(毫秒)
|
Timeout: 150000 #服务超时时间(毫秒)
|
||||||
SourceMysql: fsreaderwriter:XErSYmLELKMnf3Dh@tcp(fusen.cdmigcvz3rle.us-east-2.rds.amazonaws.com:3306)/fusen
|
SourceMysql: "fsreaderwriter:XErSYmLELKMnf3Dh@tcp(fusen.cdmigcvz3rle.us-east-2.rds.amazonaws.com:3306)/fusen"
|
||||||
|
Log:
|
||||||
|
Stat: false
|
||||||
Auth:
|
Auth:
|
||||||
AccessSecret: fusen2023
|
AccessSecret: fusen2023
|
||||||
AccessExpire: 2592000
|
AccessExpire: 2592000
|
||||||
|
@ -3,7 +3,9 @@ Host: localhost
|
|||||||
Port: 9911
|
Port: 9911
|
||||||
ReplicaId: 80
|
ReplicaId: 80
|
||||||
Timeout: 15000 #服务超时时间
|
Timeout: 15000 #服务超时时间
|
||||||
SourceMysql: fsreaderwriter:XErSYmLELKMnf3Dh@tcp(fusen.cdmigcvz3rle.us-east-2.rds.amazonaws.com:3306)/fusen
|
SourceMysql: "fsreaderwriter:XErSYmLELKMnf3Dh@tcp(fusen.cdmigcvz3rle.us-east-2.rds.amazonaws.com:3306)/fusen"
|
||||||
|
Log:
|
||||||
|
Stat: false
|
||||||
Auth:
|
Auth:
|
||||||
AccessSecret: fusen2023
|
AccessSecret: fusen2023
|
||||||
AccessExpire: 2592000
|
AccessExpire: 2592000
|
||||||
|
@ -5,6 +5,8 @@ ReplicaId: 85
|
|||||||
Timeout: 150000 #服务超时时间
|
Timeout: 150000 #服务超时时间
|
||||||
MaxBytes: 104857600 #传输字节大小
|
MaxBytes: 104857600 #传输字节大小
|
||||||
SourceMysql: "fsreaderwriter:XErSYmLELKMnf3Dh@tcp(fusen.cdmigcvz3rle.us-east-2.rds.amazonaws.com:3306)/fusen"
|
SourceMysql: "fsreaderwriter:XErSYmLELKMnf3Dh@tcp(fusen.cdmigcvz3rle.us-east-2.rds.amazonaws.com:3306)/fusen"
|
||||||
|
Log:
|
||||||
|
Stat: false
|
||||||
Env: "test"
|
Env: "test"
|
||||||
Auth:
|
Auth:
|
||||||
AccessSecret: fusen2023
|
AccessSecret: fusen2023
|
||||||
|
@ -3,7 +3,9 @@ Host: 0.0.0.0
|
|||||||
Port: 9914
|
Port: 9914
|
||||||
ReplicaId: 95
|
ReplicaId: 95
|
||||||
Timeout: 15000 #服务超时时间
|
Timeout: 15000 #服务超时时间
|
||||||
SourceMysql: fsreaderwriter:XErSYmLELKMnf3Dh@tcp(fusen.cdmigcvz3rle.us-east-2.rds.amazonaws.com:3306)/fusen
|
SourceMysql: "fsreaderwriter:XErSYmLELKMnf3Dh@tcp(fusen.cdmigcvz3rle.us-east-2.rds.amazonaws.com:3306)/fusen"
|
||||||
|
Log:
|
||||||
|
Stat: false
|
||||||
Auth:
|
Auth:
|
||||||
AccessSecret: fusen2023
|
AccessSecret: fusen2023
|
||||||
AccessExpire: 2592000
|
AccessExpire: 2592000
|
||||||
|
@ -59,7 +59,7 @@ var (
|
|||||||
CheckOrigin: func(r *http.Request) bool {
|
CheckOrigin: func(r *http.Request) bool {
|
||||||
return true
|
return true
|
||||||
},
|
},
|
||||||
//写的缓存池
|
//写的缓冲队列
|
||||||
WriteBufferPool: &buffPool,
|
WriteBufferPool: &buffPool,
|
||||||
//是否支持压缩
|
//是否支持压缩
|
||||||
EnableCompression: false,
|
EnableCompression: false,
|
||||||
@ -75,8 +75,8 @@ type wsConnectItem struct {
|
|||||||
closeChan chan struct{} //ws连接关闭chan(基本属性)
|
closeChan chan struct{} //ws连接关闭chan(基本属性)
|
||||||
isClose bool //是否已经关闭(基本属性)
|
isClose bool //是否已经关闭(基本属性)
|
||||||
uniqueId string //ws连接唯一标识(基本属性)
|
uniqueId string //ws连接唯一标识(基本属性)
|
||||||
inChan chan []byte //接受消息缓冲池(基本属性)
|
inChan chan []byte //接受消息缓冲队列(基本属性)
|
||||||
outChan chan []byte //要发送回客户端的消息缓冲池(基本属性)
|
outChan chan []byte //要发送回客户端的消息缓冲队列(基本属性)
|
||||||
mutex sync.Mutex //互斥锁(基本属性)
|
mutex sync.Mutex //互斥锁(基本属性)
|
||||||
userId int64 //用户id(基本属性)
|
userId int64 //用户id(基本属性)
|
||||||
guestId int64 //游客id(基本属性)
|
guestId int64 //游客id(基本属性)
|
||||||
@ -268,7 +268,7 @@ func (w *wsConnectItem) close() {
|
|||||||
logx.Info("###websocket:", w.uniqueId, " uid:", w.userId, " gid:", w.guestId, " is closed")
|
logx.Info("###websocket:", w.uniqueId, " uid:", w.userId, " gid:", w.guestId, " is closed")
|
||||||
}
|
}
|
||||||
|
|
||||||
// 读取出口缓冲池数据输出返回给浏览器端
|
// 读取出口缓冲队列数据输出返回给浏览器端
|
||||||
func (w *wsConnectItem) writeLoop() {
|
func (w *wsConnectItem) writeLoop() {
|
||||||
defer func() {
|
defer func() {
|
||||||
if err := recover(); err != nil {
|
if err := recover(); err != nil {
|
||||||
@ -289,7 +289,7 @@ func (w *wsConnectItem) writeLoop() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 接受客户端发来的消息并写入入口缓冲池
|
// 接受客户端发来的消息并写入入口缓冲队列
|
||||||
func (w *wsConnectItem) readLoop() {
|
func (w *wsConnectItem) readLoop() {
|
||||||
defer func() {
|
defer func() {
|
||||||
if err := recover(); err != nil {
|
if err := recover(); err != nil {
|
||||||
@ -300,7 +300,7 @@ func (w *wsConnectItem) readLoop() {
|
|||||||
select {
|
select {
|
||||||
case <-w.closeChan: //如果关闭了
|
case <-w.closeChan: //如果关闭了
|
||||||
return
|
return
|
||||||
default:
|
default: //收取消息
|
||||||
msgType, data, err := w.conn.ReadMessage()
|
msgType, data, err := w.conn.ReadMessage()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logx.Error("接受信息错误:", err)
|
logx.Error("接受信息错误:", err)
|
||||||
@ -308,10 +308,9 @@ func (w *wsConnectItem) readLoop() {
|
|||||||
w.close()
|
w.close()
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
//ping的消息不处理
|
//ping/pong/close的消息不处理
|
||||||
if msgType != websocket.PingMessage {
|
if msgType != websocket.PingMessage && msgType != websocket.PongMessage && msgType != websocket.CloseMessage {
|
||||||
//消息传入缓冲通道
|
w.sendToInChan(data)
|
||||||
w.inChan <- data
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -334,7 +333,7 @@ func (w *wsConnectItem) sendLoop() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 把要传递给客户端的数据放入出口缓冲池
|
// 把要传递给客户端的数据放入出口缓冲队列
|
||||||
func (w *wsConnectItem) sendToOutChan(data []byte) {
|
func (w *wsConnectItem) sendToOutChan(data []byte) {
|
||||||
select {
|
select {
|
||||||
case <-w.closeChan:
|
case <-w.closeChan:
|
||||||
@ -346,6 +345,18 @@ func (w *wsConnectItem) sendToOutChan(data []byte) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 发送接受到的消息到入口缓冲队列中
|
||||||
|
func (w *wsConnectItem) sendToInChan(data []byte) {
|
||||||
|
select {
|
||||||
|
case <-w.closeChan: //关闭了
|
||||||
|
return
|
||||||
|
case w.inChan <- data:
|
||||||
|
return
|
||||||
|
case <-time.After(time.Second * 3): //3秒超时丢弃
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// 格式化为websocket标准返回格式
|
// 格式化为websocket标准返回格式
|
||||||
func (w *wsConnectItem) respondDataFormat(msgType constants.Websocket, data interface{}) []byte {
|
func (w *wsConnectItem) respondDataFormat(msgType constants.Websocket, data interface{}) []byte {
|
||||||
d := websocket_data.DataTransferData{
|
d := websocket_data.DataTransferData{
|
||||||
@ -356,7 +367,7 @@ func (w *wsConnectItem) respondDataFormat(msgType constants.Websocket, data inte
|
|||||||
return b
|
return b
|
||||||
}
|
}
|
||||||
|
|
||||||
// 处理入口缓冲池中不同类型的数据(分发处理)
|
// 处理入口缓冲队列中不同类型的数据(分发处理)
|
||||||
func (w *wsConnectItem) dealwithReciveData(data []byte) {
|
func (w *wsConnectItem) dealwithReciveData(data []byte) {
|
||||||
var parseInfo websocket_data.DataTransferData
|
var parseInfo websocket_data.DataTransferData
|
||||||
if err := json.Unmarshal(data, &parseInfo); err != nil {
|
if err := json.Unmarshal(data, &parseInfo); err != nil {
|
||||||
|
@ -82,18 +82,18 @@ func (l *RenderNotifyLogic) RenderNotify(req *types.RenderNotifyReq, userinfo *a
|
|||||||
}
|
}
|
||||||
//记录收到unity渲染结果时间以及上传渲染图耗时时间
|
//记录收到unity渲染结果时间以及上传渲染图耗时时间
|
||||||
ws.modifyRenderTaskTimeConsuming(renderImageControlChanItem{
|
ws.modifyRenderTaskTimeConsuming(renderImageControlChanItem{
|
||||||
Option: 2,
|
option: 2,
|
||||||
TaskId: req.TaskId,
|
taskId: req.TaskId,
|
||||||
TaskProperty: renderTask{
|
taskProperty: renderTask{
|
||||||
UnityRenderEndTime: unityRenderEndTime,
|
unityRenderEndTime: unityRenderEndTime,
|
||||||
UploadUnityRenderImageTakesTime: uploadUnityRenderImageTakesTime,
|
uploadUnityRenderImageTakesTime: uploadUnityRenderImageTakesTime,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
//发送处理并删除任务
|
//发送处理并删除任务
|
||||||
ws.deleteRenderTask(renderImageControlChanItem{
|
ws.deleteRenderTask(renderImageControlChanItem{
|
||||||
Option: 0, //0删除 1添加 2修改耗时属性
|
option: 0, //0删除 1添加 2修改耗时属性
|
||||||
TaskId: req.TaskId,
|
taskId: req.TaskId,
|
||||||
RenderNotifyImageUrl: uploadRes.ResourceUrl,
|
renderNotifyImageUrl: uploadRes.ResourceUrl,
|
||||||
})
|
})
|
||||||
return true
|
return true
|
||||||
})
|
})
|
||||||
|
@ -27,36 +27,36 @@ type extendRenderProperty struct {
|
|||||||
|
|
||||||
// 渲染任务新增移除的控制通道的数据
|
// 渲染任务新增移除的控制通道的数据
|
||||||
type renderImageControlChanItem struct {
|
type renderImageControlChanItem struct {
|
||||||
Option int // 0删除 1添加
|
option int // 0删除 1添加
|
||||||
TaskId string //map的key
|
taskId string //map的key
|
||||||
RenderId string // map的val(增加任务时候传)
|
renderId string // map的val(增加任务时候传)
|
||||||
RenderNotifyImageUrl string //渲染回调数据(删除任务时候传)
|
renderNotifyImageUrl string //渲染回调数据(删除任务时候传)
|
||||||
TaskProperty renderTask //渲染任务的属性
|
taskProperty renderTask //渲染任务的属性
|
||||||
}
|
}
|
||||||
|
|
||||||
// 渲染任务属性
|
// 渲染任务属性
|
||||||
type renderTask struct {
|
type renderTask struct {
|
||||||
RenderId string //渲染id(前端传的)
|
renderId string //渲染id(前端传的)
|
||||||
CombineTakesTime int64 //合刀版图耗时
|
combineTakesTime int64 //合刀版图耗时
|
||||||
UploadCombineImageTakesTime int64 //上传刀版图耗时
|
uploadCombineImageTakesTime int64 //上传刀版图耗时
|
||||||
UnityRenderBeginTime int64 //发送给unity时间
|
unityRenderBeginTime int64 //发送给unity时间
|
||||||
UnityRenderEndTime int64 //unity回调结果时间
|
unityRenderEndTime int64 //unity回调结果时间
|
||||||
UploadUnityRenderImageTakesTime int64 //上传unity渲染结果图时间
|
uploadUnityRenderImageTakesTime int64 //上传unity渲染结果图时间
|
||||||
}
|
}
|
||||||
|
|
||||||
// 发送到渲染缓冲池
|
// 发送到渲染缓冲队列
|
||||||
func (w *wsConnectItem) sendToRenderChan(data []byte) {
|
func (w *wsConnectItem) sendToRenderChan(data []byte) {
|
||||||
select {
|
select {
|
||||||
case <-w.closeChan: //已经关闭
|
case <-w.closeChan: //已经关闭
|
||||||
return
|
return
|
||||||
case w.extendRenderProperty.renderChan <- data: //发入到缓冲池
|
case w.extendRenderProperty.renderChan <- data: //发入到缓冲队列
|
||||||
return
|
return
|
||||||
case <-time.After(time.Second * 3): //三秒没进入缓冲池就丢弃
|
case <-time.After(time.Second * 3): //三秒没进入缓冲队列就丢弃
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 渲染发送到组装数据组装数据(缓冲池)
|
// 渲染发送到组装数据组装数据(缓冲队列)
|
||||||
func (w *wsConnectItem) renderImage() {
|
func (w *wsConnectItem) renderImage() {
|
||||||
for {
|
for {
|
||||||
select {
|
select {
|
||||||
@ -181,9 +181,9 @@ func (w *wsConnectItem) consumeRenderCache(data []byte) {
|
|||||||
//###########################################
|
//###########################################
|
||||||
//把需要渲染的图片任务加进去
|
//把需要渲染的图片任务加进去
|
||||||
w.createRenderTask(renderImageControlChanItem{
|
w.createRenderTask(renderImageControlChanItem{
|
||||||
Option: 1, //0删除 1添加 2修改耗时属性
|
option: 1, //0删除 1添加 2修改耗时属性
|
||||||
TaskId: taskId,
|
taskId: taskId,
|
||||||
RenderId: renderImageData.RenderId,
|
renderId: renderImageData.RenderId,
|
||||||
})
|
})
|
||||||
//组装数据
|
//组装数据
|
||||||
if err = w.assembleRenderData(taskId, renderImageData, productTemplate, model3dInfo, element, productFirstSize); err != nil {
|
if err = w.assembleRenderData(taskId, renderImageData, productTemplate, model3dInfo, element, productFirstSize); err != nil {
|
||||||
@ -247,11 +247,11 @@ func (w *wsConnectItem) assembleRenderData(taskId string, info websocket_data.Re
|
|||||||
}
|
}
|
||||||
//记录刀版图合成消耗时间跟上传刀版图时间
|
//记录刀版图合成消耗时间跟上传刀版图时间
|
||||||
w.modifyRenderTaskTimeConsuming(renderImageControlChanItem{
|
w.modifyRenderTaskTimeConsuming(renderImageControlChanItem{
|
||||||
Option: 2,
|
option: 2,
|
||||||
TaskId: taskId,
|
taskId: taskId,
|
||||||
TaskProperty: renderTask{
|
taskProperty: renderTask{
|
||||||
CombineTakesTime: res.DiffTimeLogoCombine,
|
combineTakesTime: res.DiffTimeLogoCombine,
|
||||||
UploadCombineImageTakesTime: res.DiffTimeUploadFile,
|
uploadCombineImageTakesTime: res.DiffTimeUploadFile,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
logx.Info("合成刀版图成功,合成刀版图数据:", combineReq, ",logo图片:", info.RenderData.Logo, " 刀版图:", *res.ResourceUrl)
|
logx.Info("合成刀版图成功,合成刀版图数据:", combineReq, ",logo图片:", info.RenderData.Logo, " 刀版图:", *res.ResourceUrl)
|
||||||
@ -349,10 +349,10 @@ func (w *wsConnectItem) assembleRenderData(taskId string, info websocket_data.Re
|
|||||||
}
|
}
|
||||||
//记录发送到unity时间
|
//记录发送到unity时间
|
||||||
w.modifyRenderTaskTimeConsuming(renderImageControlChanItem{
|
w.modifyRenderTaskTimeConsuming(renderImageControlChanItem{
|
||||||
Option: 2,
|
option: 2,
|
||||||
TaskId: taskId,
|
taskId: taskId,
|
||||||
TaskProperty: renderTask{
|
taskProperty: renderTask{
|
||||||
UnityRenderBeginTime: unityRenderBeginTime,
|
unityRenderBeginTime: unityRenderBeginTime,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
logx.Info("发送到unity成功,刀版图:", combineImage, " 请求unity的数据:", string(postDataBytes))
|
logx.Info("发送到unity成功,刀版图:", combineImage, " 请求unity的数据:", string(postDataBytes))
|
||||||
@ -362,7 +362,7 @@ func (w *wsConnectItem) assembleRenderData(taskId string, info websocket_data.Re
|
|||||||
// 增加渲染任务
|
// 增加渲染任务
|
||||||
func (w *wsConnectItem) createRenderTask(data renderImageControlChanItem) {
|
func (w *wsConnectItem) createRenderTask(data renderImageControlChanItem) {
|
||||||
//强制设为增加
|
//强制设为增加
|
||||||
data.Option = 1
|
data.option = 1
|
||||||
select {
|
select {
|
||||||
case <-w.closeChan: //关闭
|
case <-w.closeChan: //关闭
|
||||||
return
|
return
|
||||||
@ -376,7 +376,7 @@ func (w *wsConnectItem) createRenderTask(data renderImageControlChanItem) {
|
|||||||
// 渲染回调处理并删除渲染任务
|
// 渲染回调处理并删除渲染任务
|
||||||
func (w *wsConnectItem) deleteRenderTask(data renderImageControlChanItem) {
|
func (w *wsConnectItem) deleteRenderTask(data renderImageControlChanItem) {
|
||||||
//强制设为删除
|
//强制设为删除
|
||||||
data.Option = 0
|
data.option = 0
|
||||||
select {
|
select {
|
||||||
case <-w.closeChan: //关闭
|
case <-w.closeChan: //关闭
|
||||||
return
|
return
|
||||||
@ -389,12 +389,12 @@ func (w *wsConnectItem) deleteRenderTask(data renderImageControlChanItem) {
|
|||||||
|
|
||||||
// 修改耗时属性(只有耗时属性可以更新)
|
// 修改耗时属性(只有耗时属性可以更新)
|
||||||
func (w *wsConnectItem) modifyRenderTaskTimeConsuming(data renderImageControlChanItem) {
|
func (w *wsConnectItem) modifyRenderTaskTimeConsuming(data renderImageControlChanItem) {
|
||||||
if data.TaskId == "" {
|
if data.taskId == "" {
|
||||||
logx.Error("设置耗时属性需要的task_id不能为空")
|
logx.Error("设置耗时属性需要的task_id不能为空")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
//强制设为修改耗时属性
|
//强制设为修改耗时属性
|
||||||
data.Option = 2
|
data.option = 2
|
||||||
select {
|
select {
|
||||||
case <-w.closeChan: //关闭
|
case <-w.closeChan: //关闭
|
||||||
return
|
return
|
||||||
@ -417,34 +417,34 @@ func (w *wsConnectItem) operationRenderTask() {
|
|||||||
case <-w.closeChan:
|
case <-w.closeChan:
|
||||||
return
|
return
|
||||||
case data := <-w.extendRenderProperty.renderImageTaskCtlChan:
|
case data := <-w.extendRenderProperty.renderImageTaskCtlChan:
|
||||||
switch data.Option {
|
switch data.option {
|
||||||
case 0: //渲染结果回调,删除任务
|
case 0: //渲染结果回调,删除任务
|
||||||
//存在任务,则发送渲染结果给前端
|
//存在任务,则发送渲染结果给前端
|
||||||
if taskData, ok := w.extendRenderProperty.renderImageTask[data.TaskId]; ok {
|
if taskData, ok := w.extendRenderProperty.renderImageTask[data.taskId]; ok {
|
||||||
CombineTakesTime := "0ms"
|
CombineTakesTime := "0ms"
|
||||||
UnityRenderTakesTime := "0ms"
|
UnityRenderTakesTime := "0ms"
|
||||||
uploadCombineImageTakesTime := "0ms"
|
uploadCombineImageTakesTime := "0ms"
|
||||||
uploadUnityRenderImageTakesTime := "0ms"
|
uploadUnityRenderImageTakesTime := "0ms"
|
||||||
//合图时间
|
//合图时间
|
||||||
if taskData.CombineTakesTime > 0 {
|
if taskData.combineTakesTime > 0 {
|
||||||
CombineTakesTime = fmt.Sprintf("%dms", taskData.CombineTakesTime)
|
CombineTakesTime = fmt.Sprintf("%dms", taskData.combineTakesTime)
|
||||||
}
|
}
|
||||||
//上传刀版图时间
|
//上传刀版图时间
|
||||||
if taskData.UploadCombineImageTakesTime > 0 {
|
if taskData.uploadCombineImageTakesTime > 0 {
|
||||||
uploadCombineImageTakesTime = fmt.Sprintf("%dms", taskData.UploadCombineImageTakesTime)
|
uploadCombineImageTakesTime = fmt.Sprintf("%dms", taskData.uploadCombineImageTakesTime)
|
||||||
}
|
}
|
||||||
//unity渲染时间
|
//unity渲染时间
|
||||||
if taskData.UnityRenderBeginTime > 0 && taskData.UnityRenderEndTime > 0 {
|
if taskData.unityRenderBeginTime > 0 && taskData.unityRenderEndTime > 0 {
|
||||||
UnityRenderTakesTime = fmt.Sprintf("%dms", taskData.UnityRenderEndTime-taskData.UnityRenderBeginTime)
|
UnityRenderTakesTime = fmt.Sprintf("%dms", taskData.unityRenderEndTime-taskData.unityRenderBeginTime)
|
||||||
}
|
}
|
||||||
//上传unity渲染图耗时
|
//上传unity渲染图耗时
|
||||||
if taskData.UploadUnityRenderImageTakesTime > 0 {
|
if taskData.uploadUnityRenderImageTakesTime > 0 {
|
||||||
uploadUnityRenderImageTakesTime = fmt.Sprintf("%dms", taskData.UploadUnityRenderImageTakesTime)
|
uploadUnityRenderImageTakesTime = fmt.Sprintf("%dms", taskData.uploadUnityRenderImageTakesTime)
|
||||||
}
|
}
|
||||||
//发送到出口
|
//发送到出口
|
||||||
w.sendToOutChan(w.respondDataFormat(constants.WEBSOCKET_RENDER_IMAGE, websocket_data.RenderImageRspMsg{
|
w.sendToOutChan(w.respondDataFormat(constants.WEBSOCKET_RENDER_IMAGE, websocket_data.RenderImageRspMsg{
|
||||||
RenderId: taskData.RenderId,
|
RenderId: taskData.renderId,
|
||||||
Image: data.RenderNotifyImageUrl,
|
Image: data.renderNotifyImageUrl,
|
||||||
RenderProcessTime: websocket_data.RenderProcessTime{
|
RenderProcessTime: websocket_data.RenderProcessTime{
|
||||||
CombineTakesTime: CombineTakesTime,
|
CombineTakesTime: CombineTakesTime,
|
||||||
UnityRenderTakesTime: UnityRenderTakesTime,
|
UnityRenderTakesTime: UnityRenderTakesTime,
|
||||||
@ -454,32 +454,32 @@ func (w *wsConnectItem) operationRenderTask() {
|
|||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
//删除任务
|
//删除任务
|
||||||
delete(w.extendRenderProperty.renderImageTask, data.TaskId)
|
delete(w.extendRenderProperty.renderImageTask, data.taskId)
|
||||||
case 1: //新增任务
|
case 1: //新增任务
|
||||||
w.extendRenderProperty.renderImageTask[data.TaskId] = &renderTask{
|
w.extendRenderProperty.renderImageTask[data.taskId] = &renderTask{
|
||||||
RenderId: data.RenderId,
|
renderId: data.renderId,
|
||||||
}
|
}
|
||||||
case 2: //修改(耗时)属性
|
case 2: //修改(耗时)属性
|
||||||
if taskData, ok := w.extendRenderProperty.renderImageTask[data.TaskId]; ok {
|
if taskData, ok := w.extendRenderProperty.renderImageTask[data.taskId]; ok {
|
||||||
//合图耗时
|
//合图耗时
|
||||||
if data.TaskProperty.CombineTakesTime != 0 {
|
if data.taskProperty.combineTakesTime != 0 {
|
||||||
taskData.CombineTakesTime = data.TaskProperty.CombineTakesTime
|
taskData.combineTakesTime = data.taskProperty.combineTakesTime
|
||||||
}
|
}
|
||||||
//上传合图耗时
|
//上传合图耗时
|
||||||
if data.TaskProperty.UploadCombineImageTakesTime != 0 {
|
if data.taskProperty.uploadCombineImageTakesTime != 0 {
|
||||||
taskData.UploadCombineImageTakesTime = data.TaskProperty.UploadCombineImageTakesTime
|
taskData.uploadCombineImageTakesTime = data.taskProperty.uploadCombineImageTakesTime
|
||||||
}
|
}
|
||||||
//上传渲染结果图耗时
|
//上传渲染结果图耗时
|
||||||
if data.TaskProperty.UploadUnityRenderImageTakesTime != 0 {
|
if data.taskProperty.uploadUnityRenderImageTakesTime != 0 {
|
||||||
taskData.UploadUnityRenderImageTakesTime = data.TaskProperty.UploadUnityRenderImageTakesTime
|
taskData.uploadUnityRenderImageTakesTime = data.taskProperty.uploadUnityRenderImageTakesTime
|
||||||
}
|
}
|
||||||
//发送unity时间
|
//发送unity时间
|
||||||
if data.TaskProperty.UnityRenderBeginTime != 0 {
|
if data.taskProperty.unityRenderBeginTime != 0 {
|
||||||
taskData.UnityRenderBeginTime = data.TaskProperty.UnityRenderBeginTime
|
taskData.unityRenderBeginTime = data.taskProperty.unityRenderBeginTime
|
||||||
}
|
}
|
||||||
//收到unity返回的时间
|
//收到unity返回的时间
|
||||||
if data.TaskProperty.UnityRenderEndTime != 0 {
|
if data.taskProperty.unityRenderEndTime != 0 {
|
||||||
taskData.UnityRenderEndTime = data.TaskProperty.UnityRenderEndTime
|
taskData.unityRenderEndTime = data.taskProperty.unityRenderEndTime
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -123,6 +123,7 @@ func RequestParse(w http.ResponseWriter, r *http.Request, svcCtx any, LogicReque
|
|||||||
Code: 510,
|
Code: 510,
|
||||||
Message: err.Error(),
|
Message: err.Error(),
|
||||||
})
|
})
|
||||||
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
// 如果端点有请求结构体,则使用httpx.Parse方法从HTTP请求体中解析请求数据
|
// 如果端点有请求结构体,则使用httpx.Parse方法从HTTP请求体中解析请求数据
|
||||||
|
@ -104,6 +104,7 @@ func (upload *Upload) UploadFileByBase64(req *UploadBaseReq) (*UploadBaseRes, er
|
|||||||
&s3.PutObjectInput{
|
&s3.PutObjectInput{
|
||||||
Bucket: bucketName,
|
Bucket: bucketName,
|
||||||
Key: &resourceId,
|
Key: &resourceId,
|
||||||
|
CacheControl: aws.String("no-cache, must-revalidate"),
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -228,6 +229,7 @@ func (upload *Upload) UploadFileByByte(req *UploadBaseReq) (*UploadBaseRes, erro
|
|||||||
&s3.PutObjectInput{
|
&s3.PutObjectInput{
|
||||||
Bucket: bucketName,
|
Bucket: bucketName,
|
||||||
Key: &resourceId,
|
Key: &resourceId,
|
||||||
|
CacheControl: aws.String("no-cache, must-revalidate"),
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user