diff --git a/cmd/v2/ui/tool_valid.go b/cmd/v2/ui/tool_valid.go index 35062e743..ab81905de 100644 --- a/cmd/v2/ui/tool_valid.go +++ b/cmd/v2/ui/tool_valid.go @@ -7,6 +7,8 @@ import ( "go_dreamfactory/cmd/v2/service/observer" mytheme "go_dreamfactory/cmd/v2/theme" "io/ioutil" + "path" + "strings" "fyne.io/fyne/v2" "fyne.io/fyne/v2/container" @@ -18,26 +20,31 @@ import ( ) type jsonFileList struct { - selItemId string //选择的文件ID - cacheList common.List - itemList *widget.List - fileTotal int //文件数 + selItemId string //选择的文件ID + cachedList common.List + itemList *widget.List + fileTotal int //文件数 + + //字段 + columnList *widget.List + } func newJsonFileList() *jsonFileList { return &jsonFileList{ - cacheList: common.NewList(""), + cachedList: common.NewList(""), } } type appConfigValid struct { appAdapter - jsonFileList + jsonFileList *jsonFileList + jsonDirString string //json目录 } func (a *appConfigValid) LazyInit(pt service.PttService, obs observer.Observer) error { a.tabItem = container.NewTabItemWithIcon(common.TOOLBAR_VALID, mytheme.ResourceExcelJpg, nil) - a.jsonFileList = *newJsonFileList() + a.jsonFileList = newJsonFileList() //load conf storage, _ := os_storage.NewOSStorage() @@ -47,8 +54,8 @@ func (a *appConfigValid) LazyInit(pt service.PttService, obs observer.Observer) return err } - if conf.JsonDir!=""{ - + if conf.JsonDir != "" { + a.jsonDirString = conf.JsonDir } content := container.NewMax() content.Objects = []fyne.CanvasObject{} @@ -72,6 +79,10 @@ func (a *appConfigValid) LazyInit(pt service.PttService, obs observer.Observer) //配置json路径 jsonDir := widget.NewEntry() jsonDir.PlaceHolder = "json目录" + jsonDir.OnChanged = func(s string) { + a.jsonFileList.initItem(jsonDir.Text) + a.jsonDirString = jsonDir.Text + } form := widget.NewForm( widget.NewFormItem("json目录", container.NewBorder(nil, nil, nil, widget.NewButtonWithIcon("", theme.FolderIcon(), func() { openFolder(jsonDir) @@ -80,8 +91,27 @@ func (a *appConfigValid) LazyInit(pt service.PttService, obs observer.Observer) ) jsonDir.SetText(conf.JsonDir) - - c := container.NewBorder(form, nil, nil, nil) + + confBtn := &widget.Button{Text: "保存配置", Icon: theme.DocumentCreateIcon()} + confBtn.OnTapped = func() { + conf.JsonDir = jsonDir.Text + + if err := storage.StoreConfig(conf); err != nil { + logrus.WithField("err", err).Debug("保存配置") + return + } + } + + // 创建json文件 List + a.jsonFileList.itemList = a.jsonFileList.createList() + + //创建字段 + + c := container.NewBorder(form, + container.NewHBox(confBtn), + nil, nil, + container.NewGridWithColumns(3, + container.NewVScroll(a.jsonFileList.itemList))) content.Objects = append(content.Objects, c) a.tabItem.Content = content @@ -104,19 +134,39 @@ func (f *jsonFileList) initItem(dir string) { } for _, file := range files { - if file.IsDir() { - if file.Name() == ".vscode" { - continue - } - fm := common.Item{ - Text: file.Name(), - Checked: false, - } - f.cacheList.Items = append(f.cacheList.Items, fm) - // f.selItemIds = append(f.selItemIds, fm.Id) - f.fileTotal++ - // logrus.Debugf("%v", fm.Id) + fileSuffix := path.Ext(file.Name()) + name := strings.TrimSuffix(file.Name(), fileSuffix) + name = strings.TrimPrefix(name, "game_") + fm := common.Item{ + Id: file.Name(), + Text: name, + Checked: false, } + f.cachedList.Items = append(f.cachedList.Items, fm) + f.fileTotal++ + // logrus.Debugf("%v", fm.Id) } - +} + +func (f *jsonFileList) createList() *widget.List { + f.itemList = widget.NewList( + func() int { + return len(f.cachedList.Items) + }, + func() fyne.CanvasObject { + return widget.NewLabel("Template") + }, + func(id widget.ListItemID, item fyne.CanvasObject) { + c, _ := item.(*widget.Label) + c.Text = f.cachedList.Items[id].Text + c.Refresh() + }, + ) + + f.itemList.OnSelected = func(id widget.ListItemID) { + selId := f.cachedList.Items[id].Id + f.selItemId = selId + return + } + return f.itemList } diff --git a/cmd/v2/ui/views/smithy.go b/cmd/v2/ui/views/smithy.go index fad4d8847..bd6d1f99f 100644 --- a/cmd/v2/ui/views/smithy.go +++ b/cmd/v2/ui/views/smithy.go @@ -27,9 +27,25 @@ func (s *SmithyView) CreateView(t *model.TestCase) fyne.CanvasObject { return } } - customerBtn := widget.NewButton("顾客", loadCustomer) - btns := container.NewHBox(customerBtn) + //交易 + jiaoyi := func() { + if err := service.GetPttService().SendToClient( + t.MainType, + "jiaoyi", + &pb.SmithySellReq{ + EquipIds: []string{}, + CustomerId: 1, + }, + ); err != nil { + logrus.Error(err) + return + } + } + customerBtn := widget.NewButton("顾客", loadCustomer) + jiaoyiBtn := widget.NewButton("交易", jiaoyi) + + btns := container.NewHBox(customerBtn, jiaoyiBtn) c := container.NewBorder(btns, nil, nil, nil) return c } diff --git a/modules/smithy/model_trade.go b/modules/smithy/model_trade.go index a92488c15..9af59a2ad 100644 --- a/modules/smithy/model_trade.go +++ b/modules/smithy/model_trade.go @@ -150,12 +150,12 @@ func (s *modelTrade) updateCustomer(uid string, customerId int32) error { } // 返回概率下的套装 -func (s *modelTrade) GetSuitRandom(uid string) string { +func (s *modelTrade) GetSuitRandom(uid string) (suiteId int32) { //获取玩家所有解锁套装 uex, err := s.module.ModuleUser.GetUserExpand(uid) if err != nil { s.module.Errorln(err) - return "" + return } var unlockSuiteItems []*WeightItem for _, v := range uex.SuiteId { @@ -168,7 +168,7 @@ func (s *modelTrade) GetSuitRandom(uid string) string { ec, suites := s.module.ModuleEquipment.GetActionableSuit(uid) if ec!=pb.ErrorCode_Success { s.module.Error("获取玩家已有装备:", log.Field{Key:"code",Value: ec}) - return "" + return } var ownerSuiteItems []*WeightItem for _, v := range suites { @@ -182,9 +182,9 @@ func (s *modelTrade) GetSuitRandom(uid string) string { // 设置权重 wr := newWeightedRandom(merge) if c := wr.pick(); c != nil { - return c.Id.(string) + return c.Id.(int32) } - return "" + return } // 交易 diff --git a/pb/smithy_db.pb.go b/pb/smithy_db.pb.go index c27f346f4..42c434bc7 100644 --- a/pb/smithy_db.pb.go +++ b/pb/smithy_db.pb.go @@ -184,9 +184,9 @@ type CustomerInfo struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - CustomerId int32 `protobuf:"varint,1,opt,name=customerId,proto3" json:"customerId"` //顾客ID - SuitId string `protobuf:"bytes,2,opt,name=suitId,proto3" json:"suitId"` //套装ID 随机套装 - EquipCount int32 `protobuf:"varint,3,opt,name=equipCount,proto3" json:"equipCount"` //装备数量 + CustomerId int32 `protobuf:"varint,1,opt,name=customerId,proto3" json:"customerId"` //顾客ID + SuitId int32 `protobuf:"varint,2,opt,name=suitId,proto3" json:"suitId"` //套装ID 随机套装 + EquipCount int32 `protobuf:"varint,3,opt,name=equipCount,proto3" json:"equipCount"` //装备数量 } func (x *CustomerInfo) Reset() { @@ -228,11 +228,11 @@ func (x *CustomerInfo) GetCustomerId() int32 { return 0 } -func (x *CustomerInfo) GetSuitId() string { +func (x *CustomerInfo) GetSuitId() int32 { if x != nil { return x.SuitId } - return "" + return 0 } func (x *CustomerInfo) GetEquipCount() int32 { @@ -773,7 +773,7 @@ var file_smithy_smithy_db_proto_rawDesc = []byte{ 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x75, - 0x69, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x75, 0x69, 0x74, + 0x69, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x75, 0x69, 0x74, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x71, 0x75, 0x69, 0x70, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x65, 0x71, 0x75, 0x69, 0x70, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9b, 0x01, 0x0a, 0x0a, 0x44, 0x42, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65,