1. 程式人生 > >10、新增商品——商品類目選擇

10、新增商品——商品類目選擇

新增商品——商品類目選擇

使用的是 EasyUI 的 tree 控制元件

原型

點選新增商品。最終目標如下:
在這裡插入圖片描述
點擊發送的請求為:
POST http://localhost:8081/item/cat/list 404 (Not Found)

功能分析

點選,觸發一個事件
在這裡插入圖片描述
搜尋一下selectItemCat,該jsp檔案沒有,那就是一個外部的 js
在這裡插入圖片描述
展示商品分類列表,使用EasyUItree控制元件展示。
在這裡插入圖片描述

初始化tree請求的url/item/cat/list
引數:
初始化tree時只需要把第一級節點展示,子節點非同步載入。
long id(父節點id)
返回值:json

。資料格式

 [{    
    "id": 1,    
    "text": "Node 1",    
    "state": "closed"
},{    
    "id": 2,    
    "text": "Node 2",    
    "state": "closed"   
}] 

state:如果節點下有子節點closed,如果沒有子節點open

步驟

建立EasyUITreeNode

建立一個pojo來描述tree的節點資訊,包含三個屬性idtextstate。放到e3-common工程中。

package cn.ynx.e3mall.
common.pojo; import java.io.Serializable; public class EasyUITreeNode implements Serializable { private long id; private String text; private String state; public long getId() { return id; } public void setId(long id) { this.id = id; } public String getText
() { return text; } public void setText(String text) { this.text = text; } public String getState() { return state; } public void setState(String state) { this.state = state; } }

查詢的表:
tb_item_cat
查詢列:
Idnameisparent
查詢條件parentId

Dao

tb_item_cat
可以使用逆向工程生成的程式碼

Service

引數:long parentId
業務邏輯:
1、根據parentId查詢節點列表
2、轉換成EasyUITreeNode列表。
3、返回。
返回值:List<EasyUITreeNode>

package cn.ynx.e3mall.service;

import cn.ynx.e3mall.common.pojo.EasyUITreeNode;

import java.util.List;

public interface ItemCatService {

    List<EasyUITreeNode> getCatList(long parentId);

}
package cn.ynx.e3mall.service.impl;


import cn.ynx.e3mall.common.pojo.EasyUITreeNode;
import cn.ynx.e3mall.mapper.TbItemCatMapper;
import cn.ynx.e3mall.pojo.TbItemCat;
import cn.ynx.e3mall.pojo.TbItemCatExample;
import cn.ynx.e3mall.service.ItemCatService;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;

@Service
public class ItemCatServiceImpl implements ItemCatService {

    @Resource
    private TbItemCatMapper tbItemCatMapper;

    @Override
    public List<EasyUITreeNode> getCatList(long parentId) {
        //根據parentId查詢子節點列表
        TbItemCatExample example = new TbItemCatExample();
        TbItemCatExample.Criteria criteria = example.createCriteria();
        criteria.andParentIdEqualTo(parentId);
        List<TbItemCat> list = tbItemCatMapper.selectByExample(example);
        //建立返回結果List
        List<EasyUITreeNode> resultList = new ArrayList<>();
        //把列表轉換成EasyUITreeNode列表
        for (TbItemCat tbItemCat : list) {
            EasyUITreeNode node = new EasyUITreeNode();
            //設定屬性
            node.setId(tbItemCat.getId());
            node.setText(tbItemCat.getName());
            node.setState(tbItemCat.getIsParent()?"closed":"open");
            //新增到結果列表
            resultList.add(node);
        }
        //返回結果
        return resultList;
    }

}

釋出服務:

    <dubbo:service interface="cn.ynx.e3mall.service.ItemCatService" ref="itemCatServiceImpl" timeout="300000" />

Controller

引用服務:

    <dubbo:reference interface="cn.ynx.e3mall.service.ItemCatService" id="itemCatService" />

初始化tree請求的url/item/cat/list
引數:
long id(父節點id)
返回值:json。資料格式
List<EasyUITreeNode>

package cn.ynx.e3mall.controller;

import cn.ynx.e3mall.common.pojo.EasyUITreeNode;
import cn.ynx.e3mall.service.ItemCatService;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.annotation.Resource;
import java.util.List;

@Controller
public class ItemCatController {

    @Resource
    private ItemCatService itemCatService;

    @RequestMapping("/item/cat/list")
    @ResponseBody
    public List<EasyUITreeNode> getItemCatList(
            @RequestParam(name = "id" ,defaultValue = "0")Long parentId){
        //呼叫服務查詢節點列表
        List<EasyUITreeNode> list = itemCatService.getCatList(parentId);
        return list;
    }

}

@RequestParam(value="id", defaultValue="0")Long parented
id一個預設值0