jingganjiaoyu 7a3d5f238d pot some
2024-08-18 23:10:09 +08:00

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{})} }