package gonganxitong import ( "time" "shylinux.com/x/ice" kit "shylinux.com/x/toolkits" "shylinux.com/x/community/src/api" "shylinux.com/x/community/src/gonganxitong/model" ) type goodslist struct { Table quotalist quotalist spendlist spendlist paymentlist paymentlist order string `data:"91"` auth string `data:"issued"` fields string `data:"name,amount,title,content,user_uid"` create string `name:"create name* amount* title* content*" role:"leader"` remove string `name:"remove" role:"leader"` request string `name:"request" help:"购买" style:"notice" role:"void"` response string `name:"response" role:"void"` } func (s goodslist) AfterMigrate(m *ice.Message, arg ...string) { s.Table.AfterMigrate(m, arg...) if s.PrefixPortal(m) == api.RENZHENGSHOUQUAN_PORTAL { s.insert(m, "service", "3-1", "1000", "基础版") s.insert(m, "service", "3-2", "3000", "高级版") s.insert(m, "service", "3-3", "5000", "旗舰版") s.insert(m, "company", "4-1", "10000", "企业基础版") s.insert(m, "company", "4-2", "30000", "企业高级版") s.insert(m, "company", "4-3", "50000", "企业旗舰版") s.insert(m, "school", "5-1", "10000", "教育基础版") s.insert(m, "school", "5-2", "30000", "教育高级版") s.insert(m, "school", "5-3", "50000", "教育旗舰版") s.insert(m, "street", "6-1", "10000", "社区基础版") s.insert(m, "street", "6-2", "30000", "社区高级版") s.insert(m, "street", "6-3", "50000", "社区旗舰版") } } func (s goodslist) Create(m *ice.Message, arg ...string) { s.Insert(m, kit.Simple(s.TransPrice(m, arg, model.AMOUNT), m.OptionSimple(model.PLACE_UID, model.USER_UID))...) s.RecordEventWithName(m, "") } func (s goodslist) List(m *ice.Message, arg ...string) { if len(arg) == 1 { if s.PrefixPortal(m) == api.RENZHENGSHOUQUAN_PORTAL { msg := m.Cmd(api.RENZHENGSHOUQUAN_AUTH, s.Select, model.UID, arg[0]) switch kit.Int(msg.Append(model.AUTH_TYPE)) { case 3: s.Select(m, model.PLACE_UID, "service") case 4: s.Select(m, model.PLACE_UID, "company") case 5: s.Select(m, model.PLACE_UID, "school") case 6: s.Select(m, model.PLACE_UID, "street") } m.PushAction(s.Request).Action() } else { if s.IsLeader(m) { s.Select(m, model.PLACE_UID, "service") m.PushAction(s.Request).Action() } msg := s.Select(m.Spawn(), model.PLACE_UID, arg[0]) if s.IsLeader(m) { msg.PushAction(s.Request, s.Remove).Action(s.Create) } else { msg.PushAction(s.Request).Action() } m.Copy(msg) s.SelectJoinUser(m) } m.Display("") } else if len(arg) == 2 { m.Cmdy(s.Prefix(m, s.quotalist), s.Select, model.GOODSLIST_UID, arg[1]) m.EchoInfoButton("请购买会员", s.Request).Action() m.Display("quotalist.js") } } func (s goodslist) Request(m *ice.Message, arg ...string) { if msg := s.Select(m.Spawn(), m.OptionSimple(model.UID)...); msg.IsErr() { m.Copy(msg) } else if _msg := m.Cmd(s.Prefix(m, s.paymentlist), s.Create, model.GOODSLIST_UID, m.Option(model.UID), model.AMOUNT, kit.Float(msg.Append(model.AMOUNT))/100, msg.AppendSimple(model.TITLE, model.CONTENT)); _msg.IsErr() { m.Copy(_msg) } else { m.Options(msg.AppendSimple(model.AMOUNT, model.TITLE, model.CONTENT)) m.Cmdy(s.Prefix(m, s.paymentlist), m.ActionKey(), m.PrefixKey(), "", m.Option(model.PLACE_UID), _msg.Result()) m.Push(model.PAYMENTLIST_UID, _msg.Result()) } } func (s goodslist) Response(m *ice.Message, arg ...string) { if m.Cmdy(s.Prefix(m, s.paymentlist), m.ActionKey(), arg).IsErr() { return } t := time.Now().AddDate(0, 1, 0) msg := m.Cmd(s.Prefix(m, s.paymentlist), s.Select, model.UID, arg[1]) m.Cmd(s.Prefix(m, s.quotalist), s.Select, msg.AppendSimple(model.GOODSLIST_UID)).Table(func(value ice.Maps) { m.Cmd(s.Prefix(m, s.spendlist), s.Insert, model.PLACE_UID, arg[0], msg.AppendSimple(model.USER_UID), model.PAYMENTLIST_UID, arg[1], model.QUOTALIST_UID, value[model.UID], model.EXPIRE_TIME, t.Format(ice.MOD_TIME), model.VENDOR, value[model.VENDOR], model.TOTAL, value[model.TOTAL]) }) } func init() { ice.TeamCtxCmd(goodslist{Table: newTable()}) } func (s goodslist) insert(m *ice.Message, auth, level, amount string, arg ...string) { s.Insert(m, model.UID, kit.Hashs(auth, level), model.PLACE_UID, auth, model.NAME, level, model.AMOUNT, amount, model.TITLE, kit.Select("", arg, 0), model.CONTENT, kit.Select("", arg, 1)) }