mirror of
https://shylinux.com/x/enterprise
synced 2025-04-25 09:08:06 +08:00
109 lines
4.5 KiB
Go
109 lines
4.5 KiB
Go
package gongyinglian
|
|
|
|
import (
|
|
"shylinux.com/x/ice"
|
|
kit "shylinux.com/x/toolkits"
|
|
|
|
"shylinux.com/x/enterprise/src/gongyinglian/model"
|
|
"shylinux.com/x/enterprise/src/guanlixitong"
|
|
)
|
|
|
|
type Table struct {
|
|
guanlixitong.Table
|
|
list string `name:"list store_uid uid auto" role:"void"`
|
|
}
|
|
|
|
func (s Table) Inputs(m *ice.Message, arg ...string) {
|
|
switch arg[0] {
|
|
case model.USER_STORE_ROLE:
|
|
for k, v := range UserStoreRoleList {
|
|
if k != UserStoreCreator && k != UserStoreVisitor {
|
|
m.Push(arg[0], k).Push(model.NAME, v)
|
|
}
|
|
}
|
|
m.SortInt(arg[0]).DisplayInputKeyNameIconTitle()
|
|
case model.STORE_TYPE:
|
|
for k, v := range StoreTypeList {
|
|
m.Push(arg[0], k).Push(model.NAME, v)
|
|
}
|
|
m.SortInt(arg[0]).DisplayInputKeyNameIconTitle()
|
|
case model.PRODUCT_TYPE:
|
|
for k, v := range ProductTypeList {
|
|
m.Push(arg[0], k).Push(model.NAME, v)
|
|
}
|
|
m.SortInt(arg[0]).DisplayInputKeyNameIconTitle()
|
|
case model.FROM_STORE_UID, model.TO_STORE_UID:
|
|
m.Cmdy(userStore{}, m.Option(model.USER_UID)).Cut(model.STORE_UID, model.STORE_NAME).DisplayInputKeyNameIconTitle()
|
|
m.RenameAppend(model.STORE_UID, arg[0])
|
|
case model.COMPANY_UID:
|
|
m.Cmdy(guanlixitong.Company{}, s.Select).Cut(model.UID, model.NAME).DisplayInputKeyNameIconTitle()
|
|
m.RenameAppend(model.UID, arg[0])
|
|
default:
|
|
s.Table.Inputs(m, arg...)
|
|
}
|
|
}
|
|
func (s Table) RewriteAppend(m *ice.Message, arg ...string) *ice.Message {
|
|
m.RewriteAppend(func(value, key string, index int) string {
|
|
kit.If(key == model.USER_STORE_ROLE, func() { value = UserStoreRole(kit.Int(value)).String() })
|
|
kit.If(key == model.STORE_TYPE, func() { value = StoreType(kit.Int(value)).String() })
|
|
kit.If(key == model.PRODUCT_TYPE, func() { value = ProductType(kit.Int(value)).String() })
|
|
kit.If(key == model.ORDER_TYPE, func() { value = OrderType(kit.Int(value)).String() })
|
|
kit.If(key == model.ORDER_STATUS, func() { value = OrderStatus(kit.Int(value)).String() })
|
|
kit.If(key == model.PAYMENT_STATUS, func() { value = PaymentStatus(kit.Int(value)).String() })
|
|
kit.If(key == model.EXPRESS_STATUS, func() { value = ExpressStatus(kit.Int(value)).String() })
|
|
kit.If(key == model.RETURN_STATUS, func() { value = ReturnStatus(kit.Int(value)).String() })
|
|
kit.If(key == model.REFUND_STATUS, func() { value = RefundStatus(kit.Int(value)).String() })
|
|
kit.If(key == model.PRICE, func() { value = kit.Format("%0.2f", float64(kit.Int(value))/100) })
|
|
kit.If(key == model.AMOUNT, func() { value = kit.Format("%0.2f", float64(kit.Int(value))/100) })
|
|
return value
|
|
})
|
|
return s.Table.RewriteAppend(m)
|
|
}
|
|
func (s Table) CheckRole(m *ice.Message, arg ...string) *ice.Message {
|
|
role := UserStoreRole(kit.Int(m.Cmd(userStore{}, s.Select, m.OptionSimple(model.STORE_UID, model.USER_UID)).Append(model.ROLE)))
|
|
m.WarnNotRight(!kit.IsIn(role.String(), append(arg, UserStoreCreator.String())...), role.String())
|
|
return m
|
|
}
|
|
func (s Table) checkRole(m *ice.Message, arg ...UserStoreRole) bool {
|
|
kit.If(len(arg) == 0, func() { arg = append(arg, UserStoreBoss) })
|
|
if msg := m.Cmd(userStore{}, s.Select, m.OptionSimple(model.STORE_UID, model.USER_UID)); msg.Length() > 0 {
|
|
role := UserStoreRole(kit.Int(msg.Append(model.ROLE)))
|
|
for _, v := range append(arg, UserStoreCreator) {
|
|
if role == v {
|
|
return true
|
|
}
|
|
}
|
|
}
|
|
return !m.WarnNotRight(true)
|
|
}
|
|
func (s Table) userStoreRole(m *ice.Message, arg ...string) UserStoreRole {
|
|
msg := m.Cmd(userStore{}, s.Select, model.STORE_UID, arg[0], model.USER_UID, m.Option(model.USER_UID))
|
|
if msg.Length() > 0 {
|
|
return UserStoreRole(kit.Int(msg.Append(model.ROLE)))
|
|
} else {
|
|
return -1
|
|
}
|
|
}
|
|
func (s Table) checkOrderRole(m *ice.Message, arg ...string) bool {
|
|
user_uid := m.Option(model.USER_UID)
|
|
msg := s.Select(m.Spawn(), "(from_store_uid = ? OR to_store_uid = ?) AND uid = ?", arg[0], arg[0], arg[1])
|
|
if msg.Append(model.FROM_USER_UID) != "" && msg.Append(model.TO_USER_UID) != "" && user_uid != msg.Append(model.FROM_USER_UID) && user_uid != msg.Append(model.TO_USER_UID) {
|
|
return false
|
|
}
|
|
return true
|
|
}
|
|
func (s Table) recordEvent(m *ice.Message, info string, arg ...string) {
|
|
s.Table.RecordEvent(m, m.Option(model.STORE_UID), info, kit.Select(m.Option(model.UID), arg, 0))
|
|
}
|
|
func (s Table) recordEventWithUID(m *ice.Message, info string, arg ...string) {
|
|
uid := kit.Select(m.Result(), m.Option(model.UID))
|
|
kit.If(info == "", func() { info = m.ActionCmdTitle() })
|
|
s.recordEvent(m, kit.JoinWord(info, kit.Cut(uid, 6), m.Option(model.NAME)), uid)
|
|
}
|
|
|
|
type Tables struct{ Table }
|
|
|
|
func (s Tables) BeforeMigrate(m *ice.Message, arg ...string) {}
|
|
|
|
func newTable() Table { return Table{Table: guanlixitong.NewTable(userStore{}, store{})} }
|