瀏覽代碼

商品模块

wangfei 6 年之前
父節點
當前提交
a94f80928a
共有 4 個檔案被更改,包括 42 行新增20 行删除
  1. 2
    2
      controllers/goods/goods.go
  2. 33
    12
      models/goods/goods.go
  3. 5
    4
      models/goods/types.go
  4. 2
    2
      routers/common.go

+ 2
- 2
controllers/goods/goods.go 查看文件

80
 	gds := model.TaGoods{}
80
 	gds := model.TaGoods{}
81
 	if err := c.ParseForm(&gds); err != nil {
81
 	if err := c.ParseForm(&gds); err != nil {
82
 		utils.LogError("接收商品参数失败: " + err.Error())
82
 		utils.LogError("接收商品参数失败: " + err.Error())
83
-		c.ResponseError(errors.New("接收商品参数失败"))
83
+		c.ResponseError(errors.New("接收商品参数失败1"))
84
 	}
84
 	}
85
 
85
 
86
 	// 图片
86
 	// 图片
91
 	specsJSON := c.GetString("specs")
91
 	specsJSON := c.GetString("specs")
92
 	if err := json.Unmarshal([]byte(specsJSON), &specs); err != nil {
92
 	if err := json.Unmarshal([]byte(specsJSON), &specs); err != nil {
93
 		utils.LogError("接收商品参数失败: " + err.Error())
93
 		utils.LogError("接收商品参数失败: " + err.Error())
94
-		c.ResponseError(errors.New("接收商品参数失败"))
94
+		c.ResponseError(errors.New("接收商品参数失败2"))
95
 	}
95
 	}
96
 
96
 
97
 	goodsID := c.GetString(":id")
97
 	goodsID := c.GetString(":id")

+ 33
- 12
models/goods/goods.go 查看文件

5
 	"spaceofcheng/services/models"
5
 	"spaceofcheng/services/models"
6
 	"spaceofcheng/services/models/model"
6
 	"spaceofcheng/services/models/model"
7
 	"spaceofcheng/services/utils"
7
 	"spaceofcheng/services/utils"
8
+	"strconv"
9
+	"strings"
8
 	"time"
10
 	"time"
9
 
11
 
10
 	"github.com/yl10/kit/guid"
12
 	"github.com/yl10/kit/guid"
32
 	sql := `
34
 	sql := `
33
 		SELECT *
35
 		SELECT *
34
 		FROM
36
 		FROM
35
-			ta_goods t
37
+			ta_goods
36
 		WHERE
38
 		WHERE
37
-			t.case_id = ?
39
+			case_id in ('` + strings.Replace(caseID, ",", "','", -1) + `')
38
 	`
40
 	`
39
 
41
 
40
 	if name != "" {
42
 	if name != "" {
41
 		sql += `
43
 		sql += `
42
-			AND LOWER(t.goods_name) LIKE '%` + name + `%'
44
+			AND goods_name LIKE '%` + name + `%'
43
 		`
45
 		`
44
 	}
46
 	}
45
 
47
 
46
 	if typeID != "" {
48
 	if typeID != "" {
47
 		sql += `
49
 		sql += `
48
-			AND t.type_id = '` + typeID + `'
50
+			AND type_id = '` + typeID + `'
49
 		`
51
 		`
50
 	}
52
 	}
51
 
53
 
52
 	sql += `		
54
 	sql += `		
53
-		AND t.status > ?
55
+		AND status > ` + strconv.Itoa(models.STATUS_DEL) + `
54
 		ORDER BY
56
 		ORDER BY
55
-			t.type_id,
56
-			t.create_date
57
+			type_id,
58
+			create_date
57
 	`
59
 	`
58
 
60
 
61
+	// sql += ` limit ` + strconv.Itoa(limit[0]) + ` OFFSET ` + strconv.Itoa(limit[1])
62
+
59
 	var goodsList []GoodsWithSpec
63
 	var goodsList []GoodsWithSpec
60
-	cnt, err := utils.NewPageNaviEngine(m.ctx).GetPageList(&goodsList, sql, limit, caseID, models.STATUS_DEL)
64
+	cnt, err := utils.NewPageNaviEngine(m.ctx).GetPageList(&goodsList, sql, limit)
61
 	if err != nil {
65
 	if err != nil {
62
 		return nil, 0, err
66
 		return nil, 0, err
63
 	}
67
 	}
64
-
65
 	for inx, goods := range goodsList {
68
 	for inx, goods := range goodsList {
66
 		specs, err := m.GetSpecWithPrice(goods.GoodsId)
69
 		specs, err := m.GetSpecWithPrice(goods.GoodsId)
67
 		if err != nil {
70
 		if err != nil {
68
 			return nil, 0, err
71
 			return nil, 0, err
69
 		}
72
 		}
70
-
71
 		goodsList[inx].Specs = specs
73
 		goodsList[inx].Specs = specs
74
+
75
+		imgs, err := m.GetGoodsImgByGoodsID(goods.GoodsId)
76
+		if err != nil {
77
+			return nil, 0, err
78
+		}
79
+		goodsList[inx].Images = imgs
72
 	}
80
 	}
73
 
81
 
74
 	return goodsList, cnt, nil
82
 	return goodsList, cnt, nil
98
 
106
 
99
 // GetSpecWithPrice 获取商品规格 含 金额
107
 // GetSpecWithPrice 获取商品规格 含 金额
100
 func (m *GoodsDAO) GetSpecWithPrice(goodsID string) ([]SpecWithPrice, error) {
108
 func (m *GoodsDAO) GetSpecWithPrice(goodsID string) ([]SpecWithPrice, error) {
101
-	sql := `SELECT * FROM td_spec t
109
+	sql := `SELECT t.*,s.goods_price FROM td_spec t
102
 		JOIN ta_goods_spec s ON t.spec_id = s.spec_id
110
 		JOIN ta_goods_spec s ON t.spec_id = s.spec_id
103
-		WHERE t.status = ? AND s.goods_id = ?
111
+		WHERE t.status > ? AND s.goods_id = ?
104
 	`
112
 	`
105
 
113
 
106
 	var specs []SpecWithPrice
114
 	var specs []SpecWithPrice
162
 		return nil, err
170
 		return nil, err
163
 	}
171
 	}
164
 
172
 
173
+	imgs, err := m.GetGoodsImgByGoodsID(id)
174
+	if err != nil {
175
+		return nil, err
176
+	}
177
+
165
 	return &GoodsWithSpec{
178
 	return &GoodsWithSpec{
166
 		TaGoods: *goods,
179
 		TaGoods: *goods,
167
 		Specs:   specs,
180
 		Specs:   specs,
181
+		Images:  imgs,
168
 	}, nil
182
 	}, nil
169
 }
183
 }
170
 
184
 
293
 
307
 
294
 	return nil
308
 	return nil
295
 }
309
 }
310
+
311
+// GetGoodsImgByGoodsID 根据商品ID获取商品图片信息
312
+func (m *GoodsDAO) GetGoodsImgByGoodsID(goodsid string) ([]model.TaGoodsImg, error) {
313
+	var goodsimg []model.TaGoodsImg
314
+	err := m.db.Where("goods_id=?", goodsid).Find(&goodsimg)
315
+	return goodsimg, err
316
+}

+ 5
- 4
models/goods/types.go 查看文件

14
 
14
 
15
 // SpecWithPrice 规格价格
15
 // SpecWithPrice 规格价格
16
 type SpecWithPrice struct {
16
 type SpecWithPrice struct {
17
-	model.TdSpec `xorm."extends"`
17
+	model.TdSpec `xorm:"extends"`
18
 	GoodsPrice   string `xorm:"DECIMAL(8,2)"`
18
 	GoodsPrice   string `xorm:"DECIMAL(8,2)"`
19
 }
19
 }
20
 
20
 
21
 // GoodsWithSpec 含规格商品
21
 // GoodsWithSpec 含规格商品
22
 type GoodsWithSpec struct {
22
 type GoodsWithSpec struct {
23
-	model.TaGoods `xorm."extends"`
23
+	model.TaGoods `xorm:"extends"`
24
 	Specs         []SpecWithPrice
24
 	Specs         []SpecWithPrice
25
+	Images        []model.TaGoodsImg
25
 }
26
 }
26
 
27
 
27
 // GoodsWithPrice 含规格商品
28
 // GoodsWithPrice 含规格商品
28
 type GoodsWithPrice struct {
29
 type GoodsWithPrice struct {
29
-	model.TaGoods     `xorm."extends"`
30
-	model.TaGoodsSpec `xorm."extends"`
30
+	model.TaGoods     `xorm:"extends"`
31
+	model.TaGoodsSpec `xorm:"extends"`
31
 }
32
 }
32
 
33
 
33
 // OrdersWithGoods 订单列表
34
 // OrdersWithGoods 订单列表

+ 2
- 2
routers/common.go 查看文件

185
 
185
 
186
 		// 商品
186
 		// 商品
187
 		beego.NSRouter("/goods", &goods.GoodsController{}, "get:GetListByCase"),
187
 		beego.NSRouter("/goods", &goods.GoodsController{}, "get:GetListByCase"),
188
-		beego.NSRouter("/goods/:id", &goods.GoodsController{}, "get:UpdateGoods"),
188
+		beego.NSRouter("/goods/:id", &goods.GoodsController{}, "get:GetGoodsByID"),
189
 		beego.NSRouter("/goods", &goods.GoodsController{}, "post:UpdateGoods"),
189
 		beego.NSRouter("/goods", &goods.GoodsController{}, "post:UpdateGoods"),
190
 		beego.NSRouter("/goods/:id", &goods.GoodsController{}, "put:UpdateGoods"),
190
 		beego.NSRouter("/goods/:id", &goods.GoodsController{}, "put:UpdateGoods"),
191
-		beego.NSRouter("/goods/:id", &goods.GoodsController{}, "delete:UpdateGoods"),
191
+		beego.NSRouter("/goods/:id", &goods.GoodsController{}, "delete:DeleteGoods"),
192
 
192
 
193
 		// 商品订单
193
 		// 商品订单
194
 		beego.NSRouter("/order/goods", &goods.GoodsController{}, "get:GetOrderList"),
194
 		beego.NSRouter("/order/goods", &goods.GoodsController{}, "get:GetOrderList"),