1006-商品推薦 - 實現接口與聯調

一、CategoryService、CategoryServiceImpl

    /**
     * 查詢首頁每一個一級分類下的6個最新的商品數據
     * @param rootCatId
     * @return
     */
    public List<NewItemsVo> getSixNewItemsLazy(Integer rootCatId);
	
	/**
		CategoryServiceImpl中實現方法
	*/
    @Transactional(propagation = Propagation.SUPPORTS)
    @Override
    public List<NewItemsVo> getSixNewItemsLazy(Integer rootCatId) {

        Map<String, Object> map = new HashMap<>();
        map.put("rootCatId", rootCatId);

        return categoryMapperCustom.getSixNewItemsLazy(map);
    }

二、CategoryMapperCustom.xml


    <resultMap id="myNewItemsVo" type="com.imooc.pojo.vo.NewItemsVo">
        <id column="rootCatId" property="rootCatId"/>
        <result column="rootCatName" property="rootCatName"/>
        <result column="slogan" property="slogan"/>
        <result column="catImage" property="catImage"/>
        <result column="bgColor" property="bgColor"/>

        <collection property="simpleItemList" ofType="com.imooc.pojo.vo.SimpleItemVo">
            <id column="itemId" property="itemId"/>
            <result column="itemName" property="itemName"/>
            <result column="itemUrl" property="itemUrl"/>
        </collection>
    </resultMap>

    <select id="getSixNewItemsLazy" resultMap="myNewItemsVo" parameterType="Map">
    SELECT
        f.id AS id,
        f.`name` AS NAME,
        f.slogan AS slogan,
        f.cat_image AS catImage,
        f.bg_color AS bgColor,
        i.id AS itemId,
        i.item_name AS itemName,
        ii.url AS itemUrl,
        i.created_time AS createTime
    FROM
        `category` f
    LEFT JOIN items i ON i.root_cat_id = f.id
    LEFT JOIN items_img ii ON ii.item_id = i.id
    WHERE
        f.type = 1
    AND
        i.root_cat_id = #{paramsMap.rootCatId}
    AND
        ii.is_main = 1
    ORDER BY
        i.created_time
    DESC
    LIMIT 0,6
    </select>

三、CategoryMapperCustom

public List<NewItemsVo> getSixNewItemsLazy(@Param("paramsMap") Map<String, Object> map);

四、IndexController

    @ApiOperation(value = "查詢每個一級分類下的最新6條商品數據", notes = "查詢每個一級分類下的最新6條商品數據", httpMethod = "GET")
    @GetMapping("/sixNewItems/{rootCatId}")
    public IMOOCJSONResult sixNewItems(
            @ApiParam(name = "rootCatId", value = "一級分類id", required = true)
            @PathVariable Integer rootCatId) {
        if (rootCatId == null) {
            return IMOOCJSONResult.errorMsg("分類不存在");
        }
        List<NewItemsVo> list = categoryService.getSixNewItemsLazy(rootCatId);
        return IMOOCJSONResult.ok(list);
    }

五、VO-view實體類

/**
 * 6個最新商品的簡單數據類型
 */
public class SimpleItemVo {
    private String itemId;
    private String itemName;
    private String itemUrl;
}


/**
 * 最新商品VO
 */
public class NewItemsVo {
    private Integer rootCatId;
    private String rootCatName;
    private String slogan;
    private String catImage;
    private String bgColor;
    private List<SimpleItemVo> simpleItemList;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章