func (p *OrderQuery) SetupRender() { // fix the pagers if p.PageItems <= 0 { p.PageItems = config.LIST_PAGE_SIZE // TODO default pager number. Config this. } // fetch data var err error var parser = service.Order.EntityManager().NewQueryParser() parser.Where() switch strings.ToLower(p.Tab) { // case "today": // now := time.Now().UTC() // start := now.Truncate(time.Hour * 24) // end := now.AddDate(0, 0, 1).Truncate(time.Hour * 24) // parser.Where().Range("create_time", start, end) // case "returned": // parser.Where("status", "returned") case "all", "": // all status default: parser.And("status", p.Tab) } // filter by time range if utils.ValidTime(p.TimeTo) && utils.ValidTime(p.TimeFrom) { parser.Range("create_time", p.TimeFrom, p.TimeTo) // fmt.Println(">>> query by ", p.TimeFrom, p.TimeTo) } else if !utils.ValidTime(p.TimeTo) { } else if !utils.ValidTime(p.TimeFrom) { } parser.Or("type", model.Wholesale, model.ShippingInstead) // restrict type // get total p.Total, err = parser.Count() if err != nil { panic(err.Error()) } // 2. get order list. parser.Limit(p.Current, p.PageItems) // pager p.Orders, err = service.Order.ListOrders(parser, service.WITH_PERSON) if err != nil { panic(err.Error()) } }
func (p *OrderQuery) Activate() { // service.User.RequireRole(p.W, p.R, syd.RoleSet_Orders...) // not injected with parameters. if p.Tab == "" { p.Tab = "all" // default go in toprint } // time if !utils.ValidTime(p.TimeTo) && !utils.ValidTime(p.TimeFrom) { p.TimeFrom, p.TimeTo = gxl.NatureTimeRange(0, 0, -3) // TODO NOT-UTC } else if !utils.ValidTime(p.TimeTo) { p.TimeTo = gxl.NatureTimeTodayEnd() } else if !utils.ValidTime(p.TimeFrom) { // TODO what to do? } }