소스 검색

1后台端

master
huangjiajun 6 달 전
부모
커밋
704c1f5df0
2개의 변경된 파일57개의 추가작업 그리고 11개의 파일을 삭제
  1. +56
    -11
      app/admin/svc/order/svc_order_list.go
  2. +1
    -0
      app/db/model/order_goods.go

+ 56
- 11
app/admin/svc/order/svc_order_list.go 파일 보기

@@ -60,10 +60,7 @@ func OrderList(c *gin.Context) {
}
}
state := []map[string]string{
{"name": "待制作", "value": "0"},
{"name": "制作中", "value": "1"},
{"name": "烘焙中", "value": "2"},
{"name": "分拣中", "value": "3"},
{"name": "已完成", "value": "4"},
{"name": "已取消", "value": "5"},
}
@@ -264,8 +261,7 @@ func OrderTotal(c *gin.Context) {
for _, v := range nativeString {
res = append(res, "订单总金额(元):"+v["amount"])
res = append(res, "总订单数量:"+v["alls"])
res = append(res, "待制作订单数:"+v["wait_do"])
res = append(res, "待烘焙订单数:"+v["dos"])
res = append(res, "制作中订单数:"+v["dos"])
res = append(res, "已完成订单数:"+v["success"])
res = append(res, "已取消订单数:"+v["cancel"])
}
@@ -634,10 +630,10 @@ func OrderEditNum(c *gin.Context) {
e.OutErr(c, 400, e.NewErr(400, "订单已取消,不能修改"))
return
}
if order.State > 0 {
e.OutErr(c, 400, e.NewErr(400, "订单制作中,不能修改"))
return
}
//if order.State > 0 {
// e.OutErr(c, 400, e.NewErr(400, "订单制作中,不能修改"))
// return
//}
sess := eg.NewSession()
defer sess.Close()
sess.Begin()
@@ -645,6 +641,25 @@ func OrderEditNum(c *gin.Context) {
orderGoods := db.GetOrderGoodsByIdSess(sess, args["id"])
isHasSku := 0
if orderGoods.SkuId != utils.StrToInt64(args["sku_id"]) {
//判断有没有的扣
all := db.GetOrderGoodsMakeStockAll(sess, orderGoods.GoodsId, orderGoods.SkuId)
if all == nil {
sess.Rollback()
e.OutErr(c, 400, e.NewErr(400, "修改失败"))
return
}
if all.WaitMakeNum < orderGoods.Num {
sess.Rollback()
e.OutErr(c, 400, e.NewErr(400, "订单已经在制作,取消失败"))
return
}
all.WaitBakingNum -= orderGoods.Num
_, err := sess.Where("id=?", all.Id).Cols("wait_baking_num").Update(all)
if err != nil {
sess.Rollback()
e.OutErr(c, 400, e.NewErr(400, "修改失败"))
return
}
orderGoodsSku := db.GetOrderGoodsBySkuIdSess(sess, args["oid"], args["sku_id"])
if orderGoodsSku != nil {
isHasSku = 1
@@ -664,14 +679,23 @@ func OrderEditNum(c *gin.Context) {
sqlSecond = fmt.Sprintf(sqlSecond, args["num"], orderGoodsSku.GoodsId)
db.QueryNativeStringSess(sess, sqlSecond)
//重新计算价格
tmp := orderGoodsSku
orderGoodsSku.Num += utils.StrToInt(args["num"])
order.Amount = utils.Float64ToStr(utils.StrToFloat64(order.Amount) + utils.StrToFloat64(args["num"])*utils.StrToFloat64(orderGoodsSku.Price))
_, err = sess.Where("id=?", orderGoodsSku.Id).Cols("num").Update(orderGoodsSku)
orderGoodsSku.DeductMemo = args["memo"]
_, err = sess.Where("id=?", orderGoodsSku.Id).Cols("num,memo").Update(orderGoodsSku)
if err != nil {
sess.Rollback()
e.OutErr(c, 400, e.NewErr(400, "修改失败"))
return
}
tmp.Num = utils.StrToInt(args["num"])
err = Total(sess, *tmp)
if err != nil {
sess.Rollback()
e.OutErr(c, 400, e.NewErr(400, "下单失败"))
return
}
} else {
orderGoods.SkuId = utils.StrToInt64(args["sku_id"])
_, sku, _ := db.GetMallSkuBySkuId(eg, args["sku_id"], utils.Int64ToStr(orderGoods.GoodsId))
@@ -682,23 +706,44 @@ func OrderEditNum(c *gin.Context) {
}
}
if isHasSku == 0 {
//判断有没有的扣
all := db.GetOrderGoodsMakeStockAll(sess, orderGoods.GoodsId, orderGoods.SkuId)
if all == nil {
sess.Rollback()
e.OutErr(c, 400, e.NewErr(400, "修改失败"))
return
}
num := utils.StrToInt(args["num"]) - orderGoods.Num
if num < 0 { //少要了 就总金额 减少
if all.WaitMakeNum < orderGoods.Num {
sess.Rollback()
e.OutErr(c, 400, e.NewErr(400, "订单已经在制作,取消失败"))
return
}
num = orderGoods.Num - utils.StrToInt(args["num"])
all.WaitBakingNum -= orderGoods.Num
order.Amount = utils.Float64ToStr(utils.StrToFloat64(order.Amount) - float64(num)*utils.StrToFloat64(orderGoods.Price))
//销量扣除
sqlSecond := `UPDATE goods SET sale=sale-%d WHERE id=%d`
sqlSecond = fmt.Sprintf(sqlSecond, num, orderGoods.GoodsId)
db.QueryNativeStringSess(sess, sqlSecond)
} else {
all.WaitBakingNum += orderGoods.Num
order.Amount = utils.Float64ToStr(utils.StrToFloat64(order.Amount) + float64(num)*utils.StrToFloat64(orderGoods.Price))
//销量增加
sqlSecond := `UPDATE goods SET sale=sale+%d WHERE id=%d`
sqlSecond = fmt.Sprintf(sqlSecond, num, orderGoods.GoodsId)
db.QueryNativeStringSess(sess, sqlSecond)
}
_, err := sess.Where("id=?", all.Id).Cols("wait_baking_num").Update(all)
if err != nil {
sess.Rollback()
e.OutErr(c, 400, e.NewErr(400, "修改失败"))
return
}
orderGoods.Num = utils.StrToInt(args["num"])
_, err := sess.Where("id=?", orderGoods.Id).Cols("num,sku_code,sku_id,sku").Update(orderGoods)
orderGoods.DeductMemo = args["memo"]
_, err = sess.Where("id=?", orderGoods.Id).Cols("num,sku_code,sku_id,sku,memo").Update(orderGoods)
if err != nil {
sess.Rollback()
e.OutErr(c, 400, e.NewErr(400, "修改失败"))


+ 1
- 0
app/db/model/order_goods.go 파일 보기

@@ -12,6 +12,7 @@ type OrderGoods struct {
State int `json:"state" xorm:"default 0 comment('状态 0待制作 1制作中 2烘焙中 3分拣中 4已完成 ') INT(11)"`
SkuCode string `json:"sku_code" xorm:"VARCHAR(255)"`
GoodsTitle string `json:"goods_title" xorm:"comment('商品标题') VARCHAR(255)"`
DeductMemo string `json:"deduct_memo" xorm:"comment('商品标题') VARCHAR(255)"`
Sku string `json:"sku" xorm:"comment('规格数据') VARCHAR(1000)"`
SuccessNum int `json:"success_num" xorm:"comment('完成数量') INT(11)"`
Memo string `json:"memo" xorm:"comment('制作完成备注') VARCHAR(255)"`


불러오는 중...
취소
저장