// 商品列表 func (this *ListC) List_Index(ctx *web.Context) { if this.BaseC.Requesting(ctx) { r := ctx.Request p := this.BaseC.GetPartner(ctx) const size int = 20 //-1表示全部 sortQuery := ctx.Request.URL.Query().Get("sort") idArr := this.getIdArray(r.URL.Path) page, _ := strconv.Atoi(r.FormValue("page")) if page < 1 { page = 1 } categoryId := idArr[len(idArr)-1] cat := dps.SaleService.GetCategory(p.Id, categoryId) total, items := dps.SaleService.GetPagedOnShelvesGoods(p.Id, categoryId, (page-1)*size, page*size, sortQuery) var pagerHtml string if total > size { pager := pager.NewUrlPager(pager.TotalPage(total, size), page, pager.GetterDefaultPager) pager.RecordCount = total pagerHtml = pager.PagerString() } buf := bytes.NewBufferString("") if len(items) == 0 { buf.WriteString("<div class=\"no_goods\">没有找到商品!</div>") } else { for i, v := range items { var hasDisCls string = "" if v.SalePrice == v.Price { hasDisCls = "no-disc" } buf.WriteString(fmt.Sprintf(` <div class="item item-i%d"> <div class="block"> <a href="/goods-%d.htm" class="goods-link"> <img class="goods-img" src="%s" alt="%s"/> <h3 class="name">%s</h3> <span class="sale-price">¥%s</span> <span class="market-price %s"><del>¥%s</del></span> </a> </div> <div class="clear-fix"></div> </div> `, i%2, v.GoodsId, format.GetGoodsImageUrl(v.Image), v.Name, v.Name, format.FormatFloat(v.SalePrice), hasDisCls, format.FormatFloat(v.Price))) } } sortBar := front.GetSorterHtml(front.GoodsListSortItems, sortQuery, ctx.Request.URL.RequestURI()) this.BaseC.ExecuteTemplate(ctx, gof.TemplateDataMap{ "cat": cat, "sort_bar": template.HTML(sortBar), "items": template.HTML(buf.Bytes()), "pager": template.HTML(pagerHtml), }, "views/shop/ols/{device}/list.html", "views/shop/ols/{device}/inc/header.html", "views/shop/ols/{device}/inc/footer.html") } }
// 销售标签列表 func (this *ListC) SaleTagGoodsList(ctx *web.Context) { if this.BaseC.Requesting(ctx) { r := ctx.Request p := this.BaseC.GetPartner(ctx) const size int = 20 page, _ := strconv.Atoi(r.FormValue("page")) if page < 1 { page = 1 } i := strings.LastIndex(r.URL.Path, "/") tagCode := r.URL.Path[i+1:] saleTag := dps.SaleService.GetSaleTagByCode(p.Id, tagCode) if saleTag == nil { http.Error(ctx.Response.ResponseWriter, "404 file not found!", http.StatusNotFound) ctx.Response.WriteHeader(404) return } total, items := dps.SaleService.GetPagedValueGoodsBySaleTag(p.Id, saleTag.Id, (page-1)*size, page*size) var pagerHtml string if total > size { pager := pager.NewUrlPager(pager.TotalPage(total, size), page, pager.GetterDefaultPager) pager.RecordCount = total pagerHtml = pager.PagerString() } buf := bytes.NewBufferString("") if len(items) == 0 { buf.WriteString("<div class=\"no_goods\">没有找到商品!</div>") } else { for i, v := range items { buf.WriteString(fmt.Sprintf(` <div class="item item-i%d"> <div class="block"> <a href="/goods-%d.htm" class="goods-link"> <img class="goods-img" src="%s" alt="%s"/> <h3 class="name">%s</h3> <span class="sale-price">¥%s</span> <span class="market-price"><del>¥%s</del></span> </a> </div> <div class="clear-fix"></div> </div> `, i%2, v.GoodsId, format.GetGoodsImageUrl(v.Image), v.Name, v.Name, format.FormatFloat(v.SalePrice), format.FormatFloat(v.Price))) } } this.BaseC.ExecuteTemplate(ctx, gof.TemplateDataMap{ "sale_tag": saleTag, "items": template.HTML(buf.Bytes()), "pager": template.HTML(pagerHtml), }, "views/shop/ols/{device}/sale_tag.html", "views/shop/ols/{device}/inc/header.html", "views/shop/ols/{device}/inc/footer.html") } }