创建订单
来源:8-5 商品数据控制(上)
活着_007
2019-12-31
光标移上去,提示 unresolved reference OrderService
main文件源代码
//1.创建iris 实例
app := iris.New()
//2.设置错误模式,在mvc模式下提示错误
app.Logger().SetLevel("debug")
//3.注册模板
tmplate := iris.HTML("./fronted/web/views", ".html").Layout("shared/layout.html").Reload(true)
app.RegisterView(tmplate)
//4.设置模板
app.StaticWeb("/public", "./fronted/web/public")
//访问生成好的html静态文件
app.StaticWeb("/html", "./fronted/web/htmlProductShow")
//出现异常跳转到指定页面
app.OnAnyErrorCode(func(ctx iris.Context) {
ctx.ViewData("message", ctx.Values().GetStringDefault("message", "访问的页面出错!"))
ctx.ViewLayout("")
ctx.View("shared/error.html")
})
//连接数据库
db, err := common.NewMysqlConn()
if err != nil {
}
sess := sessions.New(sessions.Config{
Cookie:"AdminCookie",
Expires:600*time.Minute,
})
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
user := repositories.NewUserRepository("user", db)
userService := services.NewService(user)
userPro := mvc.New(app.Party("/user"))
userPro.Register(userService, ctx,sess)
userPro.Handle(new(controllers.UserController))
//注册product控制器
product := repositories.NewProductManager("product", db)
productService := services.NewProductService(product)
order := repositories.NewOrderMangerRepository("order", db)
orderService := services.NewOrderService(order)
proProduct := app.Party("/product")
pro := mvc.New(proProduct)
proProduct.Use(middlerware.AuthConProduct)
pro.Register(productService, orderService)
pro.Handle(new(controllers.ProductController))
app.Run(
iris.Addr("0.0.0.0:8082"),
iris.WithoutServerError(iris.ErrServerClosed),
iris.WithOptimizations,
)
product_controller源代码
func (p *ProductController) GetOrder() mvc.View {
productString := p.Ctx.URLParam("productID")
userString := p.Ctx.GetCookie("uid")
productID, err := strconv.Atoi(productString)
if err != nil {
p.Ctx.Application().Logger().Debug(err)
}
product, err := p.ProductService.GetProductById(int64(productID))
if err != nil {
p.Ctx.Application().Logger().Debug(err)
}
//判断商品数量是否满足需求
var orderID int64
showMessage := "抢购失败!"
if product.ProductNum > 0 {
//扣除商品数量
product.ProductNum -=1
err := p.ProductService.UpdateProduct(product)
if err != nil {
p.Ctx.Application().Logger().Debug(err)
}
//创建订单
userID, err := strconv.Atoi(userString)
if err != nil {
p.Ctx.Application().Logger().Debug(err)
}
order := &datamodels.Order{
UserId: int64(userID),
ProductId: int64(productID),
OrderStatus: datamodels.OrderSuccess,
}
//新建订单
orderID, err = p.OrderService.InsertOrder(order)
if err != nil {
p.Ctx.Application().Logger().Debug(err)
} else {
showMessage = "抢购成功!"
}
}
return mvc.View{
Layout: "shared/productLayout.html",
Name: "product/result.html",
Data: iris.Map{
"orderID": orderID,
"showMessage": showMessage,
},
}
}
写回答
1回答
-
活着_007
提问者
2019-12-31
已解决。原因是struct。我写的是order services.OrderService
00
相似问题