8-5 首頁分類顯示,list頁面各種排序

1、首頁分類顯示(商品分類顯示)css

一、index.html中循環代碼html

<ul class="goodsList cf">
   <li class="col-md-2 col-sm-4 col-xs-6"  th:each="goodsInfo,status:${typeInfo.list}">
     <div class="cont">
		<a th:href="@{initGoodsDetail(commodityId=${goodsInfo.commodityId})}">
		<img th:src="@{showImage(pictureId=${goodsInfo.pictureId})}" alt=""
			style="height: 168px; width: 168px;" /></a>
	<h4 class="h5">
			<a href="#"><p class="title"
			th:text="${goodsInfo.commodityName}">品美知糖道阿膠薑湯260g</p></a>
	</h4>
	<p class="num">
	   庫存:<span th:text="${goodsInfo.stock}">15</span> 
	   每<span th:text="${#strings.concat(goodsInfo.unit).concat(goodsInfo.specifications)}">
	      袋15kg</span>
	</p>
	<p class="cf">
		<span class="price yh">¥<span th:text="${goodsInfo.retailPrice}">15</span>元
		</span> <a th:href="@{addCart}" class="btnBuy" title="加入購物車"></a>
	</p>
     </div>
   </li>
</ul>

二、GoodsForm.java中定義變量 commodityTypeId      commodityTypeName      List<GoodsForm> listjava

private String commodityTypeId;
private String commodityTypeName;
private List<GoodsForm> list;

三、GuestController.javaweb

@RequestMapping(value = "/", method = RequestMethod.GET)
	public String index(Model model, HttpSession session, Device device) {
		log.info("系統初始化");
		UVO uvo = new UVO();
		session.setAttribute("UVO", uvo);
		GoodsForm goodsForm = new GoodsForm();
	   //獲取商品類型
		List<GoodsForm> commodityType = goodsService.getType();
		goodsForm.setCommodityTypeId(commodityType.get(0).getCommodityTypeId());
	
		model.addAttribute("goodsForm", goodsForm);
		model.addAttribute("commodityType", commodityType);
	//生成列表
		model.addAttribute("list", goodsService.searchGoodsList(goodsForm));
		GoodsForm goodsFormForId = new GoodsForm();
		for (int i = 0; i < commodityType.size(); i++) {
			goodsFormForId.setCommodityTypeId(commodityType.get(i)
					.getCommodityTypeId());
			commodityType.get(i).setList(
					goodsService.searchGoodsListLimit(goodsFormForId));
		}
        //在頁面初始化以前用size()方法對商品類型commodityType計數,計算出有多少類型
		int sum = commodityType.size();
        //使用循環設置Count的值爲i+F  ************  即在前臺能夠顯示文本1F
		for (int i = 1; i < sum; i++) {
			commodityType.get(i - 1).setCount(i + "F");
		}
	// 使用循環設置Color的值爲"columnT-"+(j%6+1) ****即在前臺能夠顯示文本相似columnT columnT-1
	// 是css中定義的樣式
	// j%6+1爲控制j爲1到6的循環輸出
		for (int j = 0; j < sum; j++) {
			commodityType.get(j).setColor(
					"columnT" + " " + "columnT-" + (j % 6 + 1));
		}

		List<CartForm> cartList = new ArrayList<>();
		model.addAttribute("cartList", cartList);
		if (device.isNormal()) {
			return "shop/index";
		} else {
			return "mobile/index";
		}

	}

四、GoodsControl.javasession

@RequestMapping(value = "initGoods", method = RequestMethod.GET)
    public String initGoods(Model model, HttpSession session, GoodsForm goodsForm, Device device) throws UnsupportedEncodingException {
    	log.info("商品列表初始化");
    	List<GoodsForm> commodityType = goodsService.getType();
    	model.addAttribute("commodityType", goodsService.getType());
    	if(goodsForm.getCommodityTypeId()==null)
    	{
		goodsForm.setCommodityTypeId(commodityType.get(0).getCommodityTypeId());
		
		model.addAttribute("list", goodsService.getTypeList(goodsForm));
	    	model.addAttribute("goodsForm", goodsForm);
    	}
    	else
    		{model.addAttribute("goodsForm", goodsForm);
    		model.addAttribute("list", goodsService.getTypeList(goodsForm));
    		}
    	UVO uvo = (UVO)session.getAttribute("UVO");
    	if (uvo == null) {
    	uvo = new UVO();
    	session.setAttribute("UVO", uvo);
    	}
    	
    	model.addAttribute("orderTypeId", 1);
    	
    	CartForm cartForm = new CartForm();
    	cartForm.setGuestId(uvo.getGuestId());
    	model.addAttribute("cartList", cartService.searchCartList(cartForm));
    	if(device.isNormal()) {
    		return "shop/list";
    	} else {
    		return "mobile/list";
    	}
    }

五、GoodsService.javaapp

public List<GoodsForm> searchGoodsListLimit(GoodsForm frm) {
      List<GoodsForm> result = queryDao.executeForObjectList("Goods.selectGoodsListLimit", frm,0,6);
      return result;
}

public List<GoodsForm> getType() {
	List<GoodsForm> result = queryDao.executeForObjectList("Goods.selectType", null);
	return result;
}
	
public List<GoodsForm> getTypeList(GoodsForm goodsForm) {
	List<GoodsForm> result = queryDao.executeForObjectList("Goods.selectTypeList", goodsForm);
	return result;
}

六、GoodsSqlMap.xmlide

<select id="selectGoodsListLimit"
		parameterClass="cn.agriculture.web.form.GoodsForm"
		resultClass="cn.agriculture.web.form.GoodsForm">
		SELECT commodity.commodity_id as commodityId,
			commodity.type as type,
			commodity_type.commodity_type_id as commodityTypeId,
			commodity_type.commodity_type_name as commodityTypeName,
			supplier.supplier_name as supplierName,
			brand.brand_name as brandName,
			commodity.commodity_name as commodityName,
			commodity.weight as weight,
			commodity.is_gift as isGift,
			commodity.specifications as specifications,
			commodity.unit as unit,
			commodity.benchmark_price as benchmarkPrice,
			commodity.guide_price as guidePrice,
			commodity.retail_price as retailPrice,
			commodity.competition_level as competitionLevel,
			commodity.note as note,
			commodity.update_time as updateTime,
			commodity.update_user as updateUser,
			commodity.picture_id as pictureId,
			stock.stock as stock
		FROM commodity, supplier, brand, stock,commodity_type
		WHERE commodity.commodity_id = stock.commodity_id
		AND commodity.supplier_id = supplier.supplier_id
		AND commodity.brand_id = brand.brand_id
		AND commodity.type = commodity_type.commodity_type_id
		AND commodity_type.commodity_type_id=#commodityTypeId#
</select>
	
<select id="selectType"
		resultClass="cn.agriculture.web.form.GoodsForm">
		SELECT commodity_type_name as commodityTypeName,
				commodity_type_id as commodityTypeId
		FROM commodity_type
</select>

<select id="selectTypeList"
		parameterClass="cn.agriculture.web.form.GoodsForm"
		resultClass="cn.agriculture.web.form.GoodsForm">
		SELECT commodity.commodity_id as commodityId,
			commodity.type as type,
			commodity_type.commodity_type_id as commodityTypeId,
			commodity_type.commodity_type_name as commodityTypeName,
			supplier.supplier_name as supplierName,
			brand.brand_name as brandName,
			commodity.commodity_name as commodityName,
			commodity.weight as weight,
			commodity.is_gift as isGift,
			commodity.specifications as specifications,
			commodity.unit as unit,
			commodity.benchmark_price as benchmarkPrice,
			commodity.guide_price as guidePrice,
			commodity.retail_price as retailPrice,
			commodity.competition_level as competitionLevel,
			commodity.note as note,
			commodity.update_time as updateTime,
			commodity.update_user as updateUser,
			commodity.picture_id as pictureId,
			stock.stock as stock
		FROM commodity, supplier, brand, stock,commodity_type
		WHERE commodity.commodity_id = stock.commodity_id
		AND commodity.supplier_id = supplier.supplier_id
		AND commodity.brand_id = brand.brand_id
		AND commodity.type = commodity_type.commodity_type_id
		AND commodity.type = #commodityTypeId#
</select>

2、list頁面各種排序(升降序轉換)ui

一、list.html中spa

<div class="btn-group btn-group-sm btn-sort col-sm-6" role="group" >
<!-- 默認排序 -->
 <a th:href="@{initGoods(commodityTypeId=${goodsForm.commodityTypeId})}" th:class="${orderTypeId}==1?'btn btn-default btn-danger':'btn btn-default'">&nbsp;默&nbsp;認&nbsp;</a>
 <!-- 人氣降序 (庫存)-->
<a th:href="@{initGoodsByPopularDesc(commodityTypeId=${goodsForm.commodityTypeId})}" th:class="${orderTypeId}==3?'btn btn-default btn-danger':'btn btn-default'" th:if="${orderTypeId}!=2">&nbsp;人&nbsp;氣<i></i>&nbsp;</a>
 <!-- 人氣升序 (庫存)-->
 <a th:href="@{initGoodsByPopular(commodityTypeId=${goodsForm.commodityTypeId})}" th:class="${orderTypeId}==2?'btn btn-default btn-danger':'btn btn-default'" th:if="${orderTypeId}==2">&nbsp;人&nbsp;氣<i class="up"></i>&nbsp;</a>
  <!-- 價格降序 -->
 <a th:href="@{initGoodsByPriceDesc(commodityTypeId=${goodsForm.commodityTypeId})}" th:class="${orderTypeId}==5?'btn btn-default btn-danger':'btn btn-default'" th:if="${orderTypeId}!=4">&nbsp;價&nbsp;格<i></i>&nbsp;</a>
 <!-- 價格升序 -->
 <a th:href="@{initGoodsByPrice(commodityTypeId=${goodsForm.commodityTypeId})}" th:class="${orderTypeId}==4?'btn btn-default btn-danger':'btn btn-default'" th:if="${orderTypeId}==4">&nbsp;價&nbsp;格<i class="up"></i>&nbsp;</a>
</div>

二、GoodsControl.javacode

   initGoods     initGoodsByPopularDesc    initGoodsByPopular   initGoodsByPriceDesc   initGoodsByPrice

 @RequestMapping(value = "initGoodsByPopularDesc", method = RequestMethod.GET)
    public String initGoodsByPopularDesc(Model model, HttpSession session, GoodsForm goodsForm, Device device) {
    	log.info("以人氣爲條件商品列表初始化");
    	List<GoodsForm> commodityType = goodsService.getType();
    	model.addAttribute("commodityType", goodsService.getType());
    	if(goodsForm.getCommodityTypeId()==null)
    	{
		goodsForm.setCommodityTypeId(commodityType.get(0).getCommodityTypeId());
		model.addAttribute("list", goodsService.getTypeList(goodsForm));
	    	model.addAttribute("goodsForm", goodsForm);
    	}
    	else
    		{model.addAttribute("goodsForm", goodsForm);
    		model.addAttribute("list", goodsService.getTypeList(goodsForm));
    		}
    	UVO uvo = (UVO)session.getAttribute("UVO");
    	if (uvo == null) {
    		uvo = new UVO();
    		session.setAttribute("UVO", uvo);
    	}
    	model.addAttribute("list", goodsService.searchGoodsListByPopularDesc(goodsForm));    	
    	model.addAttribute("orderTypeId", 2);
    	
    	CartForm cartForm = new CartForm();
    	cartForm.setGuestId(uvo.getGuestId());
    	model.addAttribute("cartList", cartService.searchCartList(cartForm));
    	if(device.isNormal()) {
    		return "shop/list";
    	} else {
    		return "mobile/list";
    	}
    }

其中

model.addAttribute("list", goodsService.searchGoodsListByPopularDesc(goodsForm));    	
model.addAttribute("orderTypeId", 2);

換爲

model.addAttribute("list", goodsService.searchGoodsListByPopular(goodsForm));
model.addAttribute("orderTypeId", 3);
model.addAttribute("list", goodsService.searchGoodsListByPriceDesc(goodsForm));
model.addAttribute("orderTypeId", 4);
model.addAttribute("list", goodsService.searchGoodsListByPrice(goodsForm));
model.addAttribute("orderTypeId", 5);

三、GoodsService.java

public List<GoodsForm> searchGoodsListByPriceDesc(GoodsForm frm) {
    List<GoodsForm> result = queryDao.executeForObjectList("Goods.selectGoodsListByPriceDesc", frm);
    return result;
}
public List<GoodsForm> searchGoodsListByPrice(GoodsForm frm) {
        List<GoodsForm> result = queryDao.executeForObjectList("Goods.selectGoodsListByPrice", frm);
	return result;
}
public List<GoodsForm> searchGoodsListByPopularDesc(GoodsForm frm) {
  List<GoodsForm> result = queryDao.executeForObjectList("Goods.selectGoodsListByPopularDesc", frm);
  return result;
}
public List<GoodsForm> searchGoodsListByPopular(GoodsForm frm) {
      List<GoodsForm> result = queryDao.executeForObjectList("Goods.selectGoodsListByPopular", frm);
      return result;
}

四、GoodsSqlMap.xml

<select id="selectGoodsListLimit"
		parameterClass="cn.agriculture.web.form.GoodsForm"
		resultClass="cn.agriculture.web.form.GoodsForm">
		SELECT commodity.commodity_id as commodityId,
			commodity.type as type,
			commodity_type.commodity_type_id as commodityTypeId,
			commodity_type.commodity_type_name as commodityTypeName,
			supplier.supplier_name as supplierName,
			brand.brand_name as brandName,
			commodity.commodity_name as commodityName,
			commodity.weight as weight,
			commodity.is_gift as isGift,
			commodity.specifications as specifications,
			commodity.unit as unit,
			commodity.benchmark_price as benchmarkPrice,
			commodity.guide_price as guidePrice,
			commodity.retail_price as retailPrice,
			commodity.competition_level as competitionLevel,
			commodity.note as note,
			commodity.update_time as updateTime,
			commodity.update_user as updateUser,
			commodity.picture_id as pictureId,
			stock.stock as stock
		FROM commodity, supplier, brand, stock,commodity_type
		WHERE commodity.commodity_id = stock.commodity_id
		AND commodity.supplier_id = supplier.supplier_id
		AND commodity.brand_id = brand.brand_id
		AND commodity.type = commodity_type.commodity_type_id
		AND commodity_type.commodity_type_id=#commodityTypeId#
	</select>
	
 添加排序(默認爲升序)
     ORDER BY cast(stock.stock as signed) DESC
     ORDER BY cast(commodity.retail_price as signed) DESC
相關文章
相關標籤/搜索