fix
This commit is contained in:
parent
b2062d6448
commit
edeb2bb5f1
|
@ -2,10 +2,10 @@ package gmodel
|
||||||
|
|
||||||
import "context"
|
import "context"
|
||||||
|
|
||||||
func (ml *FsMapLibraryModel) GetAllEnabledList(ctx context.Context, fields string) (resp []FsMapLibrary, err error) {
|
func (ml *FsMapLibraryModel) GetAllEnabledList(ctx context.Context, fields ...string) (resp []FsMapLibrary, err error) {
|
||||||
db := ml.db.WithContext(ctx).Model(&FsMapLibrary{}).Where("`status` = ?", 1)
|
db := ml.db.WithContext(ctx).Model(&FsMapLibrary{}).Where("`status` = ?", 1)
|
||||||
if fields != "" {
|
if len(fields) != 0 {
|
||||||
db = db.Select(fields)
|
db = db.Select(fields[0])
|
||||||
}
|
}
|
||||||
err = db.Find(&resp).Error
|
err = db.Find(&resp).Error
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
|
@ -1 +1,11 @@
|
||||||
package gmodel
|
package gmodel
|
||||||
|
|
||||||
|
import "context"
|
||||||
|
|
||||||
|
func (l *FsProductModel3dLightModel) GetAllByIds(ctx context.Context, ids []int64) (resp []FsProductModel3dLight, err error) {
|
||||||
|
err = l.db.WithContext(ctx).Model(&FsProductModel3dLight{}).Where("`id` in (?)", ids).Find(&resp).Error
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
|
@ -14,3 +14,12 @@ func (pt *FsProductTemplateTagsModel) GetListByIds(ctx context.Context, ids []in
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (pt *FsProductTemplateTagsModel) FindOne(ctx context.Context, id int64, fields ...string) (resp *FsProductTemplateTags, err error) {
|
||||||
|
db := pt.db.WithContext(ctx).Model(&FsProductTemplateTags{}).Where("`id` = ?", id)
|
||||||
|
if len(fields) != 0 {
|
||||||
|
db = db.Select(fields[0])
|
||||||
|
}
|
||||||
|
err = db.Take(resp).Error
|
||||||
|
return resp, err
|
||||||
|
}
|
||||||
|
|
|
@ -29,3 +29,11 @@ func (t *FsProductTemplateV2Model) FindOne(ctx context.Context, id int64) (resp
|
||||||
err = t.db.WithContext(ctx).Model(&FsProductTemplateV2{}).Where("`id` = ? ", id).Find(&resp).Error
|
err = t.db.WithContext(ctx).Model(&FsProductTemplateV2{}).Where("`id` = ? ", id).Find(&resp).Error
|
||||||
return resp, err
|
return resp, err
|
||||||
}
|
}
|
||||||
|
func (t *FsProductTemplateV2Model) FindByParam(ctx context.Context, id int64, modelId int64, fields ...string) (resp *FsProductTemplateV2, err error) {
|
||||||
|
db := t.db.WithContext(ctx).Model(&FsProductTemplateV2{}).Where("`id` = ? and `model_id` = ?", id, modelId)
|
||||||
|
if len(fields) != 0 {
|
||||||
|
db = db.Select(fields[0])
|
||||||
|
}
|
||||||
|
err = db.Take(&resp).Error
|
||||||
|
return resp, err
|
||||||
|
}
|
||||||
|
|
|
@ -32,7 +32,7 @@ func (l *GetMapLibraryListLogic) GetMapLibraryList(userinfo *auth.UserInfo) (res
|
||||||
return resp.SetStatusWithMessage(basic.CodeServiceErr, "please login first")
|
return resp.SetStatusWithMessage(basic.CodeServiceErr, "please login first")
|
||||||
}
|
}
|
||||||
mapLibraryModel := gmodel.NewFsMapLibraryModel(l.svcCtx.MysqlConn)
|
mapLibraryModel := gmodel.NewFsMapLibraryModel(l.svcCtx.MysqlConn)
|
||||||
mapLibraryList, err := mapLibraryModel.GetAllEnabledList(l.ctx, "")
|
mapLibraryList, err := mapLibraryModel.GetAllEnabledList(l.ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logx.Error(err)
|
logx.Error(err)
|
||||||
return resp.SetStatusWithMessage(basic.CodeServiceErr, "failed to get map library list")
|
return resp.SetStatusWithMessage(basic.CodeServiceErr, "failed to get map library list")
|
||||||
|
|
|
@ -45,7 +45,7 @@ func (l *SaveMapLibraryLogic) SaveMapLibrary(userinfo *auth.UserInfo, req *http.
|
||||||
}
|
}
|
||||||
//获取所有贴图数据[获取id]
|
//获取所有贴图数据[获取id]
|
||||||
mapLibraryModel := gmodel.NewFsMapLibraryModel(l.svcCtx.MysqlConn)
|
mapLibraryModel := gmodel.NewFsMapLibraryModel(l.svcCtx.MysqlConn)
|
||||||
maplibraryList, err := mapLibraryModel.GetAllEnabledList(l.ctx, "`id`")
|
maplibraryList, err := mapLibraryModel.GetAllEnabledList(l.ctx, "id")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logx.Error(err)
|
logx.Error(err)
|
||||||
return resp.SetStatusWithMessage(basic.CodeServiceErr, "failed to get map library list")
|
return resp.SetStatusWithMessage(basic.CodeServiceErr, "failed to get map library list")
|
||||||
|
|
|
@ -1,9 +1,17 @@
|
||||||
package logic
|
package logic
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"encoding/json"
|
||||||
|
"errors"
|
||||||
|
"fusenapi/model/gmodel"
|
||||||
"fusenapi/utils/basic"
|
"fusenapi/utils/basic"
|
||||||
|
"fusenapi/utils/format"
|
||||||
|
"gorm.io/gorm"
|
||||||
"net/http"
|
"net/http"
|
||||||
|
"strconv"
|
||||||
|
"strings"
|
||||||
|
|
||||||
|
"context"
|
||||||
|
|
||||||
"fusenapi/server/product-templatev2/internal/svc"
|
"fusenapi/server/product-templatev2/internal/svc"
|
||||||
"fusenapi/server/product-templatev2/internal/types"
|
"fusenapi/server/product-templatev2/internal/types"
|
||||||
|
@ -26,7 +34,8 @@ func NewGetTemplatevDetailLogic(ctx context.Context, svcCtx *svc.ServiceContext)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (l *GetTemplatevDetailLogic) GetTemplatevDetail(req *types.GetTemplatevDetailReq, r *http.Request) (resp *basic.Response) {
|
func (l *GetTemplatevDetailLogic) GetTemplatevDetail(req *types.GetTemplatevDetailReq, r *http.Request) (resp *basic.Response) {
|
||||||
/*authKey := r.Header.Get("Auth-Key")
|
//
|
||||||
|
authKey := r.Header.Get("Auth-Key")
|
||||||
if authKey == "" {
|
if authKey == "" {
|
||||||
return resp.SetStatusWithMessage(basic.CodeUnAuth, "please login first")
|
return resp.SetStatusWithMessage(basic.CodeUnAuth, "please login first")
|
||||||
}
|
}
|
||||||
|
@ -45,7 +54,7 @@ func (l *GetTemplatevDetailLogic) GetTemplatevDetail(req *types.GetTemplatevDeta
|
||||||
logx.Error(err)
|
logx.Error(err)
|
||||||
return resp.SetStatusWithMessage(basic.CodeUnAuth, "failed to get user info")
|
return resp.SetStatusWithMessage(basic.CodeUnAuth, "failed to get user info")
|
||||||
}
|
}
|
||||||
//查询产品模型并肩测数据完整性
|
//获取模型信息
|
||||||
productModel3dModel := gmodel.NewFsProductModel3dModel(l.svcCtx.MysqlConn)
|
productModel3dModel := gmodel.NewFsProductModel3dModel(l.svcCtx.MysqlConn)
|
||||||
model3dInfo, err := productModel3dModel.FindOne(l.ctx, req.ModelId)
|
model3dInfo, err := productModel3dModel.FindOne(l.ctx, req.ModelId)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -55,11 +64,109 @@ func (l *GetTemplatevDetailLogic) GetTemplatevDetail(req *types.GetTemplatevDeta
|
||||||
logx.Error(err)
|
logx.Error(err)
|
||||||
return resp.SetStatusWithMessage(basic.CodeServiceErr, "failed to get product model info")
|
return resp.SetStatusWithMessage(basic.CodeServiceErr, "failed to get product model info")
|
||||||
}
|
}
|
||||||
|
//查询产品模板并检测数据完整
|
||||||
|
productTemplatev2Model := gmodel.NewFsProductTemplateV2Model(l.svcCtx.MysqlConn)
|
||||||
|
fields := "cover_img,id,is_public,logo_height,logo_width,material_img,model_id,name,product_id,sort,tag,template_info,title"
|
||||||
|
templatev2Info, err := productTemplatev2Model.FindByParam(l.ctx, req.TemplateId, req.ModelId, fields)
|
||||||
|
if err != nil {
|
||||||
|
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||||
|
return resp.SetStatusWithMessage(basic.CodeDbRecordNotFoundErr, "template info is not exists")
|
||||||
|
}
|
||||||
|
logx.Error(err)
|
||||||
|
return resp.SetStatusWithMessage(basic.CodeServiceErr, "failed to get product template info")
|
||||||
|
}
|
||||||
|
//获取模板标签
|
||||||
|
templateTagModel := gmodel.NewFsProductTemplateTagsModel(l.svcCtx.MysqlConn)
|
||||||
|
tagId, err := strconv.ParseInt(*templatev2Info.Tag, 10, 64)
|
||||||
|
if err != nil {
|
||||||
|
logx.Error(err)
|
||||||
|
return resp.SetStatusWithMessage(basic.CodeServiceErr, "parse int tag id err")
|
||||||
|
}
|
||||||
|
templateTagInfo, err := templateTagModel.FindOne(l.ctx, tagId, "id,title")
|
||||||
|
if err != nil {
|
||||||
|
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||||
|
return resp.SetStatusWithMessage(basic.CodeDbRecordNotFoundErr, "template tag info is not exists")
|
||||||
|
}
|
||||||
|
logx.Error(err)
|
||||||
|
return resp.SetStatusWithMessage(basic.CodeServiceErr, "failed to get product template tag info")
|
||||||
|
}
|
||||||
//配件ids
|
//配件ids
|
||||||
partIds, err := format.StrSlicToIntSlice(strings.Split(*model3dInfo.PartList, ","))
|
partIds, err := format.StrSlicToIntSlice(strings.Split(*model3dInfo.PartList, ","))
|
||||||
//产品模型数据解析model_info
|
//灯光ids
|
||||||
if model3dInfo.ModelInfo != nil && *model3dInfo.ModelInfo != "" {
|
var lightIds []int64
|
||||||
|
if err = json.Unmarshal([]byte(*model3dInfo.LightList), &lightIds); err != nil {
|
||||||
|
logx.Error(err)
|
||||||
|
return resp.SetStatusWithMessage(basic.CodeServiceErr, "parse light list err")
|
||||||
|
}
|
||||||
|
//获取灯光列表
|
||||||
|
productModel3dLightModel := gmodel.NewFsProductModel3dLightModel(l.svcCtx.MysqlConn)
|
||||||
|
model3dLightList, err := productModel3dLightModel.GetAllByIds(l.ctx, lightIds)
|
||||||
|
if err != nil {
|
||||||
|
logx.Error(err)
|
||||||
|
return resp.SetStatusWithMessage(basic.CodeServiceErr, "failed to get product model light list")
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
|
||||||
}*/
|
//产品模型数据解析model_info
|
||||||
|
$productModel['model_info'] = $productModel['model_info'] ? json_decode($productModel['model_info']) : null;
|
||||||
|
|
||||||
|
//产品模板数据解析template_info
|
||||||
|
if ($productTemplate) {
|
||||||
|
$productTemplate['template_info'] = $productTemplate['template_info'] ? json_decode($productTemplate['template_info']) : '';
|
||||||
|
}
|
||||||
|
//获取灯光列表
|
||||||
|
$lightList = ProductModelLight::find()->where(['in', 'id', $lightListArr])
|
||||||
|
->select(['id', 'info'])
|
||||||
|
->asArray()->all();
|
||||||
|
|
||||||
|
//产品模型灯光数据解析
|
||||||
|
foreach ($lightList as $key => $val) {
|
||||||
|
$lightList[$key]['info'] = json_decode($val['info'], true);
|
||||||
|
}
|
||||||
|
|
||||||
|
//查询使用该选项的模板
|
||||||
|
if ($partIds) {
|
||||||
|
$optionModelInfo = ProductModel::find()
|
||||||
|
->where(['in', 'id', $partIds])
|
||||||
|
->select('id,model_info,option_template')
|
||||||
|
->asArray()
|
||||||
|
->all();
|
||||||
|
|
||||||
|
//公共模板数据
|
||||||
|
$optionIds = array_column($optionModelInfo, 'option_template');
|
||||||
|
$optionTemplates = ProductTemplateV2::find()->where(['in', 'id', $optionIds])
|
||||||
|
->asArray()
|
||||||
|
->all();
|
||||||
|
$optionTemplates = array_column($optionTemplates, null, 'id');
|
||||||
|
|
||||||
|
//处理数据
|
||||||
|
$optionModelInfoArr = [];
|
||||||
|
foreach ($optionModelInfo as $item => $row) {
|
||||||
|
$rowInfo = json_decode($row['model_info'], true);
|
||||||
|
if (isset($optionTemplates[$row['option_template']])) {
|
||||||
|
$rowInfo['material_img'] = $optionTemplates[$row['option_template']]['material_img'];
|
||||||
|
}
|
||||||
|
$rowInfo['id'] = $row['id'];
|
||||||
|
$optionModelInfoArr[] = $rowInfo;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//是否是公共模板
|
||||||
|
if ($productTemplate) {
|
||||||
|
if ($productTemplate['is_public'] == 1) {
|
||||||
|
$productTemplate['is_public'] = true;
|
||||||
|
} else {
|
||||||
|
$productTemplate['is_public'] = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//返回的数据组装
|
||||||
|
return [
|
||||||
|
'product_model_info' => $productModel['model_info'],
|
||||||
|
'product_template' => $productTemplate ?? null,
|
||||||
|
'light_list' => $lightList ?? [],
|
||||||
|
'option_model_info' => $optionModelInfoArr ?? [],
|
||||||
|
'tag' => $productModel['tag'],
|
||||||
|
];*/
|
||||||
return resp.SetStatus(basic.CodeOK)
|
return resp.SetStatus(basic.CodeOK)
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,7 +12,7 @@ type GetTemplatevDetailReq struct {
|
||||||
|
|
||||||
type GetTemplatevDetailRsp struct {
|
type GetTemplatevDetailRsp struct {
|
||||||
ProductModelInfo interface{} `json:"product_model_info"`
|
ProductModelInfo interface{} `json:"product_model_info"`
|
||||||
ProductTemplate ProductTemplate `json:"product_template"`
|
ProductTemplate interface{} `json:"product_template"`
|
||||||
LightList []*Light `json:"light_list"`
|
LightList []*Light `json:"light_list"`
|
||||||
OptionModelInfo []interface{} `json:"option_model_info"`
|
OptionModelInfo []interface{} `json:"option_model_info"`
|
||||||
Tag int64 `json:"tag"`
|
Tag int64 `json:"tag"`
|
||||||
|
@ -23,116 +23,9 @@ type Tag struct {
|
||||||
Title string `json:"title"`
|
Title string `json:"title"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type TemplateInfo struct {
|
|
||||||
Id int64 `json:"id"`
|
|
||||||
Name string `json:"name"`
|
|
||||||
Cover string `json:"cover"`
|
|
||||||
IsPublic bool `json:"isPublic"`
|
|
||||||
Material string `json:"material"`
|
|
||||||
MaterialList []*TemplateMateria `json:"materialList"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type ProductTemplate struct {
|
|
||||||
CoverImg string `json:"cover_img"`
|
|
||||||
Id int64 `json:"id"`
|
|
||||||
IsPublic bool `json:"is_public"`
|
|
||||||
LogoHeight int64 `json:"logo_height"`
|
|
||||||
LogoWidth int64 `json:"logo_width"`
|
|
||||||
MaterialImg string `json:"material_img"`
|
|
||||||
ModelId int64 `json:"model_id"`
|
|
||||||
Name string `json:"name"`
|
|
||||||
ProductId int64 `json:"product_id"`
|
|
||||||
Sort int64 `json:"sort"`
|
|
||||||
Tag Tag `json:"tag"`
|
|
||||||
TemplateInfo *TemplateInfo `json:"template_info"`
|
|
||||||
Title string `json:"title"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type Light struct {
|
type Light struct {
|
||||||
Id int64 `json:"id"`
|
Id int64 `json:"id"`
|
||||||
Info LightInfo `json:"info"`
|
Info interface{} `json:"info"`
|
||||||
}
|
|
||||||
|
|
||||||
type TemplateMateria struct {
|
|
||||||
Id string `json:"id"`
|
|
||||||
Tag string `json:"tag"`
|
|
||||||
Title string `json:"title"`
|
|
||||||
Type string `json:"type"`
|
|
||||||
Text string `json:"text"`
|
|
||||||
Fill string `json:"fill"`
|
|
||||||
FontSize int64 `json:"fontSize"`
|
|
||||||
FontFamily string `json:"fontFamily"`
|
|
||||||
IfBr bool `json:"ifBr"`
|
|
||||||
IfShow bool `json:"ifShow"`
|
|
||||||
IfGroup bool `json:"ifGroup"`
|
|
||||||
MaxNum int64 `json:"maxNum"`
|
|
||||||
Rotation int64 `json:"rotation"`
|
|
||||||
LineHeight int64 `json:"lineHeight"`
|
|
||||||
Align string `json:"align"`
|
|
||||||
VerticalAlign string `json:"verticalAlign"`
|
|
||||||
Material string `json:"material"`
|
|
||||||
MaterialTime string `json:"materialTime"`
|
|
||||||
MaterialName string `json:"materialName"`
|
|
||||||
QRcodeType string `json:"QRcodeType"`
|
|
||||||
Width int64 `json:"width"`
|
|
||||||
Height int64 `json:"height"`
|
|
||||||
Proportion int64 `json:"proportion"`
|
|
||||||
X int64 `json:"x"`
|
|
||||||
Y int64 `json:"y"`
|
|
||||||
Opacity int64 `json:"opacity"`
|
|
||||||
OptionalColor []*OptionalColor `json:"optionalColor"`
|
|
||||||
ZIndex int64 `json:"zIndex"`
|
|
||||||
SvgPath string `json:"svgPath"`
|
|
||||||
Follow Follow `json:"follow"`
|
|
||||||
Group []interface{} `json:"group"`
|
|
||||||
CameraStand CameraStand `json:"cameraStand"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type LightInfo struct {
|
|
||||||
Name string `json:"name"`
|
|
||||||
Hdr Hdr `json:"hdr"`
|
|
||||||
LightData []LightDataItem `json:"lightData"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type LightDataItem struct {
|
|
||||||
Color string `json:"color"`
|
|
||||||
Id string `json:"id"`
|
|
||||||
Intensity float64 `json:"intensity"`
|
|
||||||
Name string `json:"name"`
|
|
||||||
Type string `json:"type"`
|
|
||||||
X float64 `json:"x,omitempty"`
|
|
||||||
Y int64 `json:"y,omitempty"`
|
|
||||||
Z float64 `json:"z,omitempty"`
|
|
||||||
ShowHelper bool `json:"showHelper,omitempty"`
|
|
||||||
Width int64 `json:"width,omitempty"`
|
|
||||||
Height int64 `json:"height,omitempty"`
|
|
||||||
Rx int64 `json:"rx,omitempty"`
|
|
||||||
Ry int64 `json:"ry,omitempty"`
|
|
||||||
Rz int64 `json:"rz,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type Hdr struct {
|
|
||||||
IfBg bool `json:"ifBg"`
|
|
||||||
ToneMappingExposure float64 `json:"toneMappingExposure"`
|
|
||||||
Url string `json:"url"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type OptionalColor struct {
|
|
||||||
Color string `json:"color"`
|
|
||||||
Name string `json:"name"`
|
|
||||||
Default bool `json:"default"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type Follow struct {
|
|
||||||
Fill string `json:"fill"`
|
|
||||||
IfShow string `json:"ifShow"`
|
|
||||||
Content string `json:"content"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type CameraStand struct {
|
|
||||||
X int64 `json:"x"`
|
|
||||||
Y int64 `json:"y"`
|
|
||||||
Z int64 `json:"z"`
|
|
||||||
}
|
}
|
||||||
|
|
||||||
type Response struct {
|
type Response struct {
|
||||||
|
|
|
@ -20,7 +20,7 @@ type GetTemplatevDetailReq {
|
||||||
}
|
}
|
||||||
type GetTemplatevDetailRsp {
|
type GetTemplatevDetailRsp {
|
||||||
ProductModelInfo interface{} `json:"product_model_info"`
|
ProductModelInfo interface{} `json:"product_model_info"`
|
||||||
ProductTemplate ProductTemplate `json:"product_template"`
|
ProductTemplate interface{} `json:"product_template"`
|
||||||
LightList []*Light `json:"light_list"`
|
LightList []*Light `json:"light_list"`
|
||||||
OptionModelInfo []interface{} `json:"option_model_info"`
|
OptionModelInfo []interface{} `json:"option_model_info"`
|
||||||
Tag int64 `json:"tag"`
|
Tag int64 `json:"tag"`
|
||||||
|
@ -30,106 +30,8 @@ type Tag {
|
||||||
Id int64 `json:"id"`
|
Id int64 `json:"id"`
|
||||||
Title string `json:"title"`
|
Title string `json:"title"`
|
||||||
}
|
}
|
||||||
type TemplateInfo {
|
|
||||||
Id int64 `json:"id"`
|
|
||||||
Name string `json:"name"`
|
|
||||||
Cover string `json:"cover"`
|
|
||||||
IsPublic bool `json:"isPublic"`
|
|
||||||
Material string `json:"material"`
|
|
||||||
MaterialList []*TemplateMateria `json:"materialList"`
|
|
||||||
}
|
|
||||||
type ProductTemplate {
|
|
||||||
CoverImg string `json:"cover_img"`
|
|
||||||
Id int64 `json:"id"`
|
|
||||||
IsPublic bool `json:"is_public"`
|
|
||||||
LogoHeight int64 `json:"logo_height"`
|
|
||||||
LogoWidth int64 `json:"logo_width"`
|
|
||||||
MaterialImg string `json:"material_img"`
|
|
||||||
ModelId int64 `json:"model_id"`
|
|
||||||
Name string `json:"name"`
|
|
||||||
ProductId int64 `json:"product_id"`
|
|
||||||
Sort int64 `json:"sort"`
|
|
||||||
Tag Tag `json:"tag"`
|
|
||||||
TemplateInfo *TemplateInfo `json:"template_info"`
|
|
||||||
Title string `json:"title"`
|
|
||||||
}
|
|
||||||
type Light {
|
type Light {
|
||||||
Id int64 `json:"id"`
|
Id int64 `json:"id"`
|
||||||
Info LightInfo `json:"info"`
|
Info interface{} `json:"info"`
|
||||||
}
|
|
||||||
|
|
||||||
type TemplateMateria {
|
|
||||||
Id string `json:"id"`
|
|
||||||
Tag string `json:"tag"`
|
|
||||||
Title string `json:"title"`
|
|
||||||
Type string `json:"type"`
|
|
||||||
Text string `json:"text"`
|
|
||||||
Fill string `json:"fill"`
|
|
||||||
FontSize int64 `json:"fontSize"`
|
|
||||||
FontFamily string `json:"fontFamily"`
|
|
||||||
IfBr bool `json:"ifBr"`
|
|
||||||
IfShow bool `json:"ifShow"`
|
|
||||||
IfGroup bool `json:"ifGroup"`
|
|
||||||
MaxNum int64 `json:"maxNum"`
|
|
||||||
Rotation int64 `json:"rotation"`
|
|
||||||
LineHeight int64 `json:"lineHeight"`
|
|
||||||
Align string `json:"align"`
|
|
||||||
VerticalAlign string `json:"verticalAlign"`
|
|
||||||
Material string `json:"material"`
|
|
||||||
MaterialTime string `json:"materialTime"`
|
|
||||||
MaterialName string `json:"materialName"`
|
|
||||||
QRcodeType string `json:"QRcodeType"`
|
|
||||||
Width int64 `json:"width"`
|
|
||||||
Height int64 `json:"height"`
|
|
||||||
Proportion int64 `json:"proportion"`
|
|
||||||
X int64 `json:"x"`
|
|
||||||
Y int64 `json:"y"`
|
|
||||||
Opacity int64 `json:"opacity"`
|
|
||||||
OptionalColor []*OptionalColor `json:"optionalColor"`
|
|
||||||
ZIndex int64 `json:"zIndex"`
|
|
||||||
SvgPath string `json:"svgPath"`
|
|
||||||
Follow Follow `json:"follow"`
|
|
||||||
Group []interface{} `json:"group"`
|
|
||||||
CameraStand CameraStand `json:"cameraStand"`
|
|
||||||
}
|
|
||||||
type LightInfo {
|
|
||||||
Name string `json:"name"`
|
|
||||||
Hdr Hdr `json:"hdr"`
|
|
||||||
LightData []LightDataItem `json:"lightData"`
|
|
||||||
}
|
|
||||||
type LightDataItem {
|
|
||||||
Color string `json:"color"`
|
|
||||||
Id string `json:"id"`
|
|
||||||
Intensity float64 `json:"intensity"`
|
|
||||||
Name string `json:"name"`
|
|
||||||
Type string `json:"type"`
|
|
||||||
X float64 `json:"x,omitempty"`
|
|
||||||
Y int64 `json:"y,omitempty"`
|
|
||||||
Z float64 `json:"z,omitempty"`
|
|
||||||
ShowHelper bool `json:"showHelper,omitempty"`
|
|
||||||
Width int64 `json:"width,omitempty"`
|
|
||||||
Height int64 `json:"height,omitempty"`
|
|
||||||
Rx int64 `json:"rx,omitempty"`
|
|
||||||
Ry int64 `json:"ry,omitempty"`
|
|
||||||
Rz int64 `json:"rz,omitempty"`
|
|
||||||
}
|
|
||||||
type Hdr {
|
|
||||||
IfBg bool `json:"ifBg"`
|
|
||||||
ToneMappingExposure float64 `json:"toneMappingExposure"`
|
|
||||||
Url string `json:"url"`
|
|
||||||
}
|
|
||||||
type OptionalColor {
|
|
||||||
Color string `json:"color"`
|
|
||||||
Name string `json:"name"`
|
|
||||||
Default bool `json:"default"`
|
|
||||||
}
|
|
||||||
type Follow {
|
|
||||||
Fill string `json:"fill"`
|
|
||||||
IfShow string `json:"ifShow"`
|
|
||||||
Content string `json:"content"`
|
|
||||||
}
|
|
||||||
type CameraStand {
|
|
||||||
X int64 `json:"x"`
|
|
||||||
Y int64 `json:"y"`
|
|
||||||
Z int64 `json:"z"`
|
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user