From ec1395ab269afe64872d427a00123b8b03d8e132 Mon Sep 17 00:00:00 2001 From: huangjiajun <582604932@qq.com> Date: Thu, 13 Jun 2024 13:35:53 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/admin/svc/order/svc_order_list.go | 57 ++++++++++++++++----------- 1 file changed, 34 insertions(+), 23 deletions(-) diff --git a/app/admin/svc/order/svc_order_list.go b/app/admin/svc/order/svc_order_list.go index e356d35..3cd23ca 100644 --- a/app/admin/svc/order/svc_order_list.go +++ b/app/admin/svc/order/svc_order_list.go @@ -1598,29 +1598,40 @@ func OrderDeductNum(c *gin.Context) { return } if all1.WaitMakeNum < num { - sess.Rollback() - e.OutErr(c, 400, e.NewErr(400, "订单已经在制作,减少数量失败")) - return - } - all1.WaitMakeNum -= num - _, err = sess.Where("id=?", all1.Id).Cols("wait_make_num").Update(all1) - if err != nil { - sess.Rollback() - e.OutErr(c, 400, e.NewErr(400, "修改失败")) - return - } - all := all1 - all.Id = 0 - all.WaitBakingNum = 0 - all.WaitMakeNum = num - all.WaitSortingNum = 0 - all.GoodsTitle = orderGoods1.GoodsTitle - all.GoodsType = 2 - _, err = sess.InsertOne(all) - if err != nil { - sess.Rollback() - e.OutErr(c, 400, e.NewErr(400, "修改失败")) - return + //不够的话就看分拣区有没有 扣掉分拣区的 + if all1.WaitSortingNum < num { + sess.Rollback() + e.OutErr(c, 400, e.NewErr(400, "分拣区数量不足,减少数量失败")) + return + } + all1.WaitSortingNum -= num + _, err = sess.Where("id=?", all1.Id).Cols("wait_sorting_num").Update(all1) + if err != nil { + sess.Rollback() + e.OutErr(c, 400, e.NewErr(400, "修改失败")) + return + } + } else { + all1.WaitMakeNum -= num + _, err = sess.Where("id=?", all1.Id).Cols("wait_make_num").Update(all1) + if err != nil { + sess.Rollback() + e.OutErr(c, 400, e.NewErr(400, "修改失败")) + return + } + all := all1 + all.Id = 0 + all.WaitBakingNum = 0 + all.WaitMakeNum = num + all.WaitSortingNum = 0 + all.GoodsTitle = orderGoods1.GoodsTitle + all.GoodsType = 2 + _, err = sess.InsertOne(all) + if err != nil { + sess.Rollback() + e.OutErr(c, 400, e.NewErr(400, "修改失败")) + return + } } order.Amount = utils.Float64ToStr(utils.StrToFloat64(order.Amount) - float64(num)*utils.StrToFloat64(orderGoods1.Price)) //销量减少