一.需求分析

  • 在商品修改时,如果商品有规格参数,会在页面下方显示商品的规格参数
  • 在打开商品修改页面时,发起的ajax请求http://localhost/item/paramitem/selid 同时传递过去商品id
  • 要求请求返回的数据包含Status和Data,其中Data里面是商品的规格参数信息

二.代码实现

  • 在src/item/paramitem/TbItemParamItemDao.go中添加根据商品id查询的函数
  1. func selByItemIdDao(id int) *TbItemParamItem {
  2. r,err:=commons.Dql("select * from tb_item_param_item where item_id=?",id)
  3. if err!=nil{
  4. fmt.Println(err)
  5. return nil
  6. }
  7. if r.Next(){
  8. item:=new (TbItemParamItem)
  9. r.Scan(&item.Id,&item.ItemId,&item.ParamData,&item.Created,&item.Updated)
  10. return item
  11. }
  12. return nil
  13. }
  • 在src/item/paramitem下新建TbItemParamItemService.go
  1. package paramitem
  2. import "commons"
  3. //根据商品id显示商品规格参数
  4. func showItemByIdService(id int) ( e commons.EgoResult){
  5. item:=selByItemIdDao(id)
  6. if item!=nil{
  7. e.Status = 200
  8. e.Data = item.ParamData
  9. }
  10. return
  11. }
  • 在src/item/paramitem下新建TbiTemParamItemController.go
  1. package paramitem
  2. import (
  3. "commons"
  4. "net/http"
  5. "strconv"
  6. "encoding/json"
  7. )
  8. func ParamItemHandler(){
  9. commons.Router.HandleFunc("/item/paramitem/selid",selidController)
  10. }
  11. //显示商品的规格参数
  12. func selidController(w http.ResponseWriter,r *http.Request){
  13. id,_:=strconv.Atoi(r.FormValue("id"))
  14. er:=showItemByIdService(id)
  15. b,_:=json.Marshal(er)
  16. w.Header().Set(commons.HEADER_CONTENT_TYPE,commons.JSON_HEADER)
  17. w.Write(b)
  18. }
  • 在main.go中main()函数添加引用
  1. //规格参数
  2. param.ParamHandler()