diff --git a/api/controller/OrderMember.go b/api/controller/OrderMember.go index 6f474d6..ce854c9 100644 --- a/api/controller/OrderMember.go +++ b/api/controller/OrderMember.go @@ -224,6 +224,71 @@ func (b *OrderMember) GetOrderMemberPay(c *gin.Context) { responses.OkWithData(g, c) } +// DeleteOrderMember 删除会员订单支付数据 +func (b *OrderMember) DeleteOrderMember(c *gin.Context) { + userId := c.GetInt64("UserId") + + id := c.Param("order_id") + if id == "" { + responses.FailWithMessage("缺少参数", c) + return + } + + // 将 id 转换为 int64 类型 + orderId, err := strconv.ParseInt(id, 10, 64) + if err != nil { + responses.Fail(c) + return + } + + // 获取订单数据 + orderMemberDao := dao.OrderMemberDao{} + maps := make(map[string]interface{}) + maps["user_id"] = userId + maps["order_id"] = orderId + orderMember, err := orderMemberDao.GetOrderMember(maps) + if err != nil { + responses.FailWithMessage("订单异常", c) + return + } + + // 检测订单状态 + if orderMember.OrderStatus != 2 { + responses.FailWithMessage("订单不允许删除", c) + return + } + + // 检测订单删除状态 + if orderMember.IsDelete == 1 { + responses.Ok(c) + return + } + + // 开始事务 + tx := global.Db.Begin() + defer func() { + if r := recover(); r != nil { + tx.Rollback() + utils.LogJsonErr("操作失败", r) + responses.FailWithMessage("操作失败", c) + return + } + }() + + orderMemberData := make(map[string]interface{}) + orderMemberData["is_delete"] = 1 + orderMemberData["updated_at"] = time.Now().Format("2006-01-02 15:04:05") + err = orderMemberDao.EditOrderMemberById(tx, orderId, orderMemberData) + if err != nil { + tx.Rollback() + responses.FailWithMessage("删除失败", c) + return + } + + tx.Commit() + responses.Ok(c) +} + // GetOrderMemberPayStatus 查询订单支付状态-会员 func (b *OrderMember) GetOrderMemberPayStatus(c *gin.Context) { userId := c.GetInt64("UserId") diff --git a/api/router/router.go b/api/router/router.go index f778310..7e0db35 100644 --- a/api/router/router.go +++ b/api/router/router.go @@ -319,6 +319,9 @@ func privateRouter(r *gin.Engine, api controller.Api) { // 获取会员订单支付数据 memberGroup.GET("/pay/:order_id", api.OrderMember.GetOrderMemberPay) + // 删除会员订单 + memberGroup.DELETE("/:order_id", api.OrderMember.DeleteOrderMember) + // 查询订单支付状态-会员 memberGroup.GET("/pay/status/:order_id", api.OrderMember.GetOrderMemberPayStatus)