| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- package router
- import (
- "demo/data/dao"
- "demo/data/dao/manage"
- "demo/data/domain"
- "demo/data/domain/vo"
- "demo/share"
- "fmt"
- "github.com/gin-gonic/gin"
- "github.com/spf13/cast"
- "time"
- )
- func OrderRouter(engine *gin.RouterGroup) {
- order := engine.Group("/order")
- {
- order.POST("/submit", GetOrderData)
- }
- }
- // GetOrderData 创建订单
- func GetOrderData(c *gin.Context) {
- id := GetUserIdByToken(c)
- if id == 0 {
- return
- }
- data := share.GetJsonAnyParam(c)
- skuId, _ := data("skuId")
- count, _ := data("count")
- couponUserId, _ := data("couponUserId")
- contactInformation, _ := data("contactInformation")
- sku, err := dao.SelectSkuBySkuId(cast.ToInt(skuId))
- fmt.Println(sku)
- if err != nil {
- c.JSON(200, CreateResultError(1000, "商品规格不存在"))
- return
- }
- //查询库存数量
- if sku.InventoryNumber < cast.ToInt(count) {
- c.JSON(200, CreateResultError(1000, "库存不足"))
- }
- order := &domain.GoodsOrder{}
- order.SkuId = cast.ToInt(skuId)
- order.Count = cast.ToInt(count)
- order.CouponUserId = cast.ToInt(couponUserId)
- order.ContactInformation = cast.ToString(contactInformation)
- order.OrderName = fmt.Sprint(sku.SkuName, "【x", count, "】")
- order.Price = sku.Price
- order.TotalPrice = sku.Price * float64(cast.ToInt(count))
- order.CreateBy = id
- order.CreateTime = time.Now()
- order, err = dao.CreateOrder(order)
- if err != nil {
- c.JSON(200, CreateResultError(1000, "创建订单失败"))
- return
- }
- c.JSON(200, CreateResultData(*order))
- }
- // 支付回调模拟
- func PayBuyTest(c *gin.Context) {
- id := GetUserIdByToken(c)
- if id == 0 {
- return
- }
- data := share.GetJsonAnyParam(c)
- orderId, _ := data("orderId")
- dao.OrderPaySuccess(cast.ToInt(orderId))
- }
- // 订单列表
- func GetOrderList(c *gin.Context) {
- id := GetUserIdByToken(c)
- if id == 0 {
- return
- }
- orders, err := dao.GetOrderByUserId(id)
- var ids = make([]int, 0)
- for _, order := range orders {
- ids = append(ids, order.CouponUserId)
- }
- skus, err := manage.GetInIdListGoodsSku(ids)
- if err != nil {
- c.JSON(200, CreateResultError(1000, "查询失败"))
- }
- var vos = make([]vo.OrderVo, 0)
- for _, order := range orders {
- var vo vo.OrderVo
- vo.Order = order
- for _, sku := range skus {
- if order.CouponUserId == sku.Id {
- vo.Sku = sku
- break
- }
- }
- vos = append(vos, vo)
- }
- c.JSON(200, CreateResultData(map[string]interface{}{
- "vos": vos,
- "len": len(vos),
- }))
- }
|