mirror of
https://shylinux.com/x/community
synced 2025-04-26 01:54:05 +08:00
99 lines
4.1 KiB
Go
99 lines
4.1 KiB
Go
package gonganxitong
|
|
|
|
import (
|
|
"path"
|
|
"strings"
|
|
|
|
"shylinux.com/x/ice"
|
|
"shylinux.com/x/icebergs/base/aaa"
|
|
"shylinux.com/x/icebergs/base/ctx"
|
|
"shylinux.com/x/icebergs/base/mdb"
|
|
"shylinux.com/x/icebergs/base/nfs"
|
|
"shylinux.com/x/icebergs/base/tcp"
|
|
"shylinux.com/x/icebergs/base/web"
|
|
"shylinux.com/x/icebergs/core/code"
|
|
kit "shylinux.com/x/toolkits"
|
|
|
|
"shylinux.com/x/community/src/gonganxitong/model"
|
|
)
|
|
|
|
type service struct {
|
|
Table
|
|
order string `data:"904"`
|
|
update string `name:"update index name icon"`
|
|
autogen string `name:"autogen name* help* class* table*" icon:"bi bi-plus-square-dotted"`
|
|
oauth string `name:"oauth" icon:"bi bi-shield-fill-check"`
|
|
open string `name:"open" role:"void"`
|
|
conf string `name:"conf" role:"void"`
|
|
}
|
|
|
|
func ServiceUID(m *ice.Message) string {
|
|
return kit.Hashs(ice.Info.Hostname, ice.Info.Pwd, m.Prefix(web.PORTAL))
|
|
}
|
|
func (s service) Update(m *ice.Message, arg ...string) {
|
|
uid := ServiceUID(m)
|
|
if s.Select(m.Spawn(), model.UID, uid).Length() == 0 {
|
|
s.Insert(m, kit.Simple(model.UID, uid, model.INDEX, m.Prefix(web.PORTAL), tcp.NODETYPE, ice.Info.NodeType, tcp.NODENAME, ice.Info.NodeName, nfs.PATHNAME, ice.Info.Pwd, tcp.HOSTNAME, ice.Info.Hostname)...)
|
|
}
|
|
s.Table.Update(m, kit.Dict(arg, m.OptionSimple(mdb.NAME, mdb.ICON), nfs.MODULE, ice.Info.Make.Module, nfs.VERSION, ice.Info.Make.Versions()), model.UID, uid)
|
|
m.Cmd(s.PrefixPortal(m), Portal{}.CommandUpdate, uid)
|
|
}
|
|
func (s service) Autogen(m *ice.Message, arg ...string) {
|
|
m.Option("CLASS", strings.ToUpper(m.Option(mdb.CLASS)))
|
|
m.Option("Class", kit.Capital(m.Option(mdb.CLASS)))
|
|
m.Option("class", kit.LowerCapital(m.Option(mdb.CLASS)))
|
|
table := m.Option(mdb.TABLE)
|
|
m.Option("TABLE", strings.ToUpper(table))
|
|
m.Option("Table", kit.Capital(table))
|
|
m.Option("table", kit.LowerCapital(table))
|
|
code.AutogenImport(m.Message, m.Option(mdb.NAME))
|
|
m.Option(nfs.MODULE, path.Join(code.AutogenMod(m.Message), nfs.SRC, m.Option(mdb.NAME)))
|
|
p, from := path.Join(nfs.SRC, m.Option(mdb.NAME)), "template/"
|
|
msg := m.Cmd("web.team.gonganxitong.service")
|
|
m.Option("table", kit.LowerCapital(table))
|
|
m.Cmd(nfs.DEFS, path.Join(p, "model/model.go"), msg.Template(from+"model/model.go"))
|
|
m.Cmd(nfs.DEFS, path.Join(p, "common.go"), msg.Template(from+"common.go"))
|
|
m.Cmd(nfs.DEFS, path.Join(p, "portal.go"), msg.Template(from+"portal.go"))
|
|
m.Cmd(nfs.DEFS, path.Join(p, "portal.json"), msg.Template(from+"portal.json"))
|
|
m.Cmd(nfs.DEFS, path.Join(p, "user"+m.Option("Class")+".go"), msg.Template(from+"userClass.go"))
|
|
m.Cmd(nfs.DEFS, path.Join(p, m.Option("class")+".go"), msg.Template(from+"class.go"))
|
|
kit.For(kit.Split(m.Option(mdb.TABLE)), func(table string) {
|
|
msg.Option(mdb.TABLE, kit.LowerCapital(table))
|
|
m.Cmd(nfs.DEFS, path.Join(p, m.Option(mdb.TABLE)+".go"), msg.Template(from+"homework.go"))
|
|
m.Cmd(nfs.DEFS, path.Join(p, m.Option(mdb.TABLE)+".js"), msg.Template(from+"homework.js"))
|
|
})
|
|
}
|
|
func (s service) Compile(m *ice.Message, arg ...string) {
|
|
m.Cmdy(code.VIMER, code.COMPILE)
|
|
}
|
|
func (s service) Oauth(m *ice.Message, arg ...string) {
|
|
m.Options(m.Cmd(web.CHAT_WX_ACCESS).AppendSimple())
|
|
m.Option("sess_cmd", kit.JoinWord(m.Prefix(aaa.SESS), mdb.CREATE))
|
|
m.Option("user_cmd", kit.JoinWord(m.Prefix(aaa.USER), mdb.CREATE))
|
|
m.Cmd(web.SPACE, ice.OPS, ctx.CONFIG, web.CHAT_WX_AGENT, web.SPACE, m.Option(ice.MSG_USERPOD))
|
|
m.Cmd(web.CHAT_WX_ACCESS, web.OAUTH)
|
|
m.ProcessHold()
|
|
}
|
|
func (s service) List(m *ice.Message, arg ...string) {
|
|
if len(arg) < 2 {
|
|
s.Orders(m, s.Desc(model.UPDATED_AT)).Select(m)
|
|
} else {
|
|
s.SelectDetail(m, model.UID, arg[1])
|
|
}
|
|
if m.IsTech() {
|
|
m.PushAction(s.Open, s.Conf).Action(s.Autogen, s.Compile, s.Oauth)
|
|
} else {
|
|
m.PushAction(s.Open).Action()
|
|
}
|
|
m.RenameAppend(model.NODENAME, model.SPACE, model.NODETYPE, model.SERVICE_TYPE, mdb.STATUS, model.SERVICE_STATUS)
|
|
s.DisplayBase(m, "")
|
|
}
|
|
func (s service) Open(m *ice.Message, arg ...string) {
|
|
m.ProcessOpen(web.S(m.Option(web.SPACE)) + web.C(m.Option(ctx.INDEX)))
|
|
}
|
|
func (s service) Conf(m *ice.Message, arg ...string) {
|
|
m.ProcessOpen(web.S(m.Option(web.SPACE)) + web.C(m.Option(ctx.INDEX)) + "?view=table")
|
|
}
|
|
|
|
func init() { ice.TeamCtxCmd(service{}) }
|