-
Notifications
You must be signed in to change notification settings - Fork 2
/
orderService.go
130 lines (124 loc) · 3.85 KB
/
orderService.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
package orderService
import (
"strconv"
"time"
tcode "github.com/Biubiubiuuuu/warehouse/server/common/tips/code"
"github.com/Biubiubiuuuu/warehouse/server/common/tips/msg"
"github.com/Biubiubiuuuu/warehouse/server/entity"
"github.com/Biubiubiuuuu/warehouse/server/models"
)
// 创建订单
func AddOrder(token string, request entity.AddOrder) (responseData entity.ResponseData) {
user := models.User{Token: token}
if !user.QueryUser() {
responseData.Message = msg.GetMsg(tcode.ADD_ERROR) + ",用户不存在"
return
}
order := models.Order{
UserID: user.ID,
OrderUserDetail: models.OrderUserDetail{
Provice: request.UserDetails.Provice,
City: request.UserDetails.City,
ShopAddress: request.UserDetails.ShopAddress,
Tel: request.UserDetails.Tel,
},
}
var arr []models.OrderGoodsDetail
for _, item := range request.GoodsDetails {
g := models.GoodsType{}
g.ID = item.GoodsTypeID
if err := g.QueryByGoodsTypeID(); err != nil {
responseData.Message = msg.GetMsg(tcode.ADD_ERROR) + ",该商品不存在"
return
}
goodsStock := models.GoodsStock{}
goodsStock.GoodsTypeID = item.GoodsTypeID
stocks, errStock := goodsStock.QueryByID()
if errStock != nil {
responseData.Message = msg.GetMsg(tcode.ADD_ERROR) + ",该商品库存不存在,待添加"
return
}
if stocks.QuantityStock <= 0 || stocks.QuantityStock < item.GoodsQty {
responseData.Message = msg.GetMsg(tcode.ADD_ERROR) + ",该商品库存不足"
return
}
goodsDetail := models.OrderGoodsDetail{
GoodsName: g.GoodsName,
GoodsSpecs: g.GoodsSpecs,
GoodsPrince: g.GoodsPrince,
GoodsImages: g.GoodsImages,
GoodsQty: item.GoodsQty,
GoodsTypeID: item.GoodsTypeID,
}
// 订单总金额
str := strconv.FormatInt(item.GoodsQty, 10)
float, _ := strconv.ParseFloat(str, 64)
order.OrderPrince += g.GoodsPrince * float
arr = append(arr, goodsDetail)
}
order.OrderGoodsDetails = arr
// 订单编号 直接取时间戳
orderNumber := strconv.Itoa(time.Now().Nanosecond())
order.OrderNumber = orderNumber
// 订单状态 1.已付款 2.未付款
order.OrderStatus = "2"
if err := order.AddOrder(); err != nil {
responseData.Message = msg.GetMsg(tcode.ORDER_ERROR)
return
}
responseData.Status = true
responseData.Message = msg.GetMsg(tcode.ORDER_SUCCESS)
return
}
// 查询订单详情
func QueryByGoodsOrderID(id int64) (responseData entity.ResponseData) {
order := models.Order{}
order.ID = id
if err := order.QueryByGoodsOrderID(); err != nil {
responseData.Message = msg.GetMsg(tcode.QUERY_ERROR)
return
}
data := make(map[string]interface{})
data["orderInfo"] = order
responseData.Data = data
responseData.Status = true
responseData.Message = msg.GetMsg(tcode.QUERY_SUCCESS)
return
}
// 查询用户订单
func QueryByOrderUserID(token string, pageSize int, page int) (responseData entity.ResponseData) {
user := models.User{Token: token}
if !user.QueryUser() {
responseData.Message = msg.GetMsg(tcode.QUERY_ERROR) + ",用户不存在"
return
}
order := models.Order{}
order.UserID = user.ID
orders := order.QueryByOrderUserID(pageSize, page)
if len(orders) == 0 {
responseData.Message = msg.GetMsg(tcode.NOTMORE)
return
}
data := make(map[string]interface{})
data["orders"] = orders
responseData.Data = data
responseData.Status = true
responseData.Message = msg.GetMsg(tcode.QUERY_SUCCESS)
return
}
// 查询订单(分页) admin
func QueryOrderByLimitOffset(pageSize int, page int) (responseData entity.ResponseData) {
orders := models.QueryOrderByLimitOffset(pageSize, page)
responseData.Message = msg.GetMsg(tcode.QUERY_SUCCESS)
if len(orders) == 0 {
responseData.Message = msg.GetMsg(tcode.NOTMORE)
return
}
count := models.QueryOrderCount()
data := make(map[string]interface{})
data["orders"] = orders
data["count"] = count
responseData.Data = data
responseData.Status = true
return
}