From 704c1f5df0951cb39757aa70aa0a390ca27928a0 Mon Sep 17 00:00:00 2001 From: huangjiajun <582604932@qq.com> Date: Tue, 30 Apr 2024 11:33:58 +0800 Subject: [PATCH 1/8] =?UTF-8?q?1=E5=90=8E=E5=8F=B0=E7=AB=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/admin/svc/order/svc_order_list.go | 67 ++++++++++++++++++++++----- app/db/model/order_goods.go | 1 + 2 files changed, 57 insertions(+), 11 deletions(-) diff --git a/app/admin/svc/order/svc_order_list.go b/app/admin/svc/order/svc_order_list.go index c9750bd..545d8b7 100644 --- a/app/admin/svc/order/svc_order_list.go +++ b/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, "修改失败")) diff --git a/app/db/model/order_goods.go b/app/db/model/order_goods.go index 8779aa6..cfd27cb 100644 --- a/app/db/model/order_goods.go +++ b/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)"` From e9207284d9ae18d65d8b5b367247320e08e2fad4 Mon Sep 17 00:00:00 2001 From: huangjiajun <582604932@qq.com> Date: Tue, 30 Apr 2024 13:54:51 +0800 Subject: [PATCH 2/8] =?UTF-8?q?1=E5=90=8E=E5=8F=B0=E7=AB=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/admin/svc/order/svc_order_list.go | 7 +- app/admin/svc/svc_make_record.go | 46 ++----- app/db/db_goods_list.go | 13 ++ app/db/db_order_goods_doing.go | 13 +- app/db/model/order_goods.go | 3 +- app/db/model/order_goods_doing_flow.go | 2 + app/ipad/hdl/hdl_order_make.go | 12 -- app/ipad/svc/svc_order_make.go | 173 +------------------------ app/router/ipad_router.go | 15 +-- 9 files changed, 50 insertions(+), 234 deletions(-) diff --git a/app/admin/svc/order/svc_order_list.go b/app/admin/svc/order/svc_order_list.go index 545d8b7..8c8075a 100644 --- a/app/admin/svc/order/svc_order_list.go +++ b/app/admin/svc/order/svc_order_list.go @@ -384,6 +384,7 @@ func OrderDetail(c *gin.Context) { "spe": "", "sku_list": skuList, "goods_title": v.GoodsTitle, + "memo": v.DeductMemo, } skuData := make([]md.Sku, 0) @@ -681,9 +682,10 @@ func OrderEditNum(c *gin.Context) { //重新计算价格 tmp := orderGoodsSku orderGoodsSku.Num += utils.StrToInt(args["num"]) + orderGoodsSku.OldNum += utils.StrToInt(args["num"]) order.Amount = utils.Float64ToStr(utils.StrToFloat64(order.Amount) + utils.StrToFloat64(args["num"])*utils.StrToFloat64(orderGoodsSku.Price)) orderGoodsSku.DeductMemo = args["memo"] - _, err = sess.Where("id=?", orderGoodsSku.Id).Cols("num,memo").Update(orderGoodsSku) + _, err = sess.Where("id=?", orderGoodsSku.Id).Cols("num,memo,old_num").Update(orderGoodsSku) if err != nil { sess.Rollback() e.OutErr(c, 400, e.NewErr(400, "修改失败")) @@ -741,9 +743,10 @@ func OrderEditNum(c *gin.Context) { e.OutErr(c, 400, e.NewErr(400, "修改失败")) return } + orderGoods.OldNum = orderGoods.Num orderGoods.Num = utils.StrToInt(args["num"]) orderGoods.DeductMemo = args["memo"] - _, err = sess.Where("id=?", orderGoods.Id).Cols("num,sku_code,sku_id,sku,memo").Update(orderGoods) + _, err = sess.Where("id=?", orderGoods.Id).Cols("num,sku_code,sku_id,sku,memo,old_num").Update(orderGoods) if err != nil { sess.Rollback() e.OutErr(c, 400, e.NewErr(400, "修改失败")) diff --git a/app/admin/svc/svc_make_record.go b/app/admin/svc/svc_make_record.go index cc27d1c..3a9f72d 100644 --- a/app/admin/svc/svc_make_record.go +++ b/app/admin/svc/svc_make_record.go @@ -20,40 +20,28 @@ func MarkRecord(c *gin.Context) { data := make([]map[string]string, 0) if list != nil { stateArr := []string{"待制作", "制作中", "制作完成", "烘焙完成", "分拣完成", "已取消"} - enterpriseIds := make([]int, 0) adminIds := make([]int, 0) for _, v := range *list { - enterpriseIds = append(enterpriseIds, v.EnterpriseId) adminIds = append(adminIds, v.AdminId) } - enterpriseMap := db.GetEnterpriseMore(eg, enterpriseIds) adminMap := db.GetStaffMore(eg, adminIds) for _, v := range *list { - enterpriseName := "" adminName := "" - _, ok := enterpriseMap[v.EnterpriseId] - if ok { - enterpriseName = enterpriseMap[v.EnterpriseId].Name - } _, ok1 := adminMap[v.AdminId] if ok1 { adminName = adminMap[v.AdminId].Name } - var tmp = map[string]string{ - "oid": utils.Int64ToStr(v.Oid), - "id": utils.IntToStr(v.Id), - "state_str": stateArr[v.State], - "state": utils.IntToStr(v.State), - "time": v.Time.Format("2006-01-02 15:04:05"), - "enterprise_name": enterpriseName, - "sku_str": "", - "goods_title": v.GoodsTitle, - "memo": v.Memo, - "admin_name": adminName, - "num": utils.IntToStr(v.Num), - "success_num": utils.IntToStr(v.SuccessNum), + "id": utils.IntToStr(v.Id), + "state_str": stateArr[v.State], + "state": utils.IntToStr(v.State), + "time": v.Time.Format("2006-01-02 15:04:05"), + "sku_str": "", + "goods_title": v.GoodsTitle, + "memo": v.Memo, + "admin_name": adminName, + "success_num": utils.IntToStr(v.SuccessNum), } skuData := make([]md.Sku, 0) json.Unmarshal([]byte(v.Sku), &skuData) @@ -68,21 +56,9 @@ func MarkRecord(c *gin.Context) { data = append(data, tmp) } } - enterpriseList := db.GetEnterpriseList(eg) - enterpriseData := make([]map[string]string, 0) - if enterpriseList != nil { - for _, v := range *enterpriseList { - var tmp = map[string]string{ - "id": utils.IntToStr(v.Id), - "name": v.Name, - } - enterpriseData = append(enterpriseData, tmp) - } - } res := map[string]interface{}{ - "total": total, - "enterprise": enterpriseData, - "list": data, + "total": total, + "list": data, } e.OutSuc(c, res, nil) return diff --git a/app/db/db_goods_list.go b/app/db/db_goods_list.go index fe391c9..e988754 100644 --- a/app/db/db_goods_list.go +++ b/app/db/db_goods_list.go @@ -300,3 +300,16 @@ func GetGoodsMore(engine *xorm.Engine, gids []int64) map[int64]model.Goods { } return skuMap } + +func GetGoodsSku(eg *xorm.Engine, gid, skuId string) map[string]string { + var goods model.Goods + eg.Where("goods_id=?", gid).Get(&goods) + var sku model.Sku + eg.Where("goods_id=? and sku_id=?", gid, skuId).Get(&sku) + var data = map[string]string{ + "title": goods.Title, + "sku": sku.Sku, + } + + return data +} diff --git a/app/db/db_order_goods_doing.go b/app/db/db_order_goods_doing.go index 6229cc1..fe01d43 100644 --- a/app/db/db_order_goods_doing.go +++ b/app/db/db_order_goods_doing.go @@ -6,12 +6,12 @@ import ( "xorm.io/xorm" ) -func GetOrderGoodsDoingList(eg *xorm.Engine, param map[string]string) (*[]model.OrderGoods, int64) { - var order []model.OrderGoods - sess := eg.Where("state!=0 and state!=5") +func GetOrderGoodsDoingList(eg *xorm.Engine, param map[string]string) (*[]model.OrderGoodsDoingFlow, int64) { + var order []model.OrderGoodsDoingFlow + sess := eg.Where("1=1") if param["admin_name"] != "" { var data []model.Admin - eg.Where("memo like ?", "%"+param["admin_name"]+"%") + eg.Where("memo like ?", "%"+param["admin_name"]+"%").Find(&data) ids := []int{-1} for _, v := range data { ids = append(ids, v.AdmId) @@ -20,16 +20,13 @@ func GetOrderGoodsDoingList(eg *xorm.Engine, param map[string]string) (*[]model. } if param["enterprise_name"] != "" { var data []model.Enterprise - eg.Where("name like ?", "%"+param["enterprise_name"]+"%") + eg.Where("name like ?", "%"+param["enterprise_name"]+"%").Find(&data) ids := []int{-1} for _, v := range data { ids = append(ids, v.Id) } sess.In("enterprise_id", ids) } - if param["oid"] != "" { - sess.And("oid like ?", "%"+param["oid"]+"%") - } if param["state"] != "" { sess.And("state =?", param["state"]) } diff --git a/app/db/model/order_goods.go b/app/db/model/order_goods.go index cfd27cb..5b945b5 100644 --- a/app/db/model/order_goods.go +++ b/app/db/model/order_goods.go @@ -8,12 +8,13 @@ type OrderGoods struct { GoodsId int64 `json:"goods_id" xorm:"default 0 comment('商品id') BIGINT(20)"` SkuId int64 `json:"sku_id" xorm:"default 0 comment('sku') BIGINT(20)"` Num int `json:"num" xorm:"default 0 comment('购买数量') INT(11)"` + OldNum int `json:"old_num" xorm:"default 0 comment('购买数量') INT(11)"` Price string `json:"price" xorm:"default 0.00 comment('单价') DECIMAL(20,2)"` 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)"` + GoodsTitle string `json:"goods_title" xorm:"comment('商品标题') VARCHAR(255)"` SuccessNum int `json:"success_num" xorm:"comment('完成数量') INT(11)"` Memo string `json:"memo" xorm:"comment('制作完成备注') VARCHAR(255)"` Time time.Time `json:"time" xorm:"DATETIME"` diff --git a/app/db/model/order_goods_doing_flow.go b/app/db/model/order_goods_doing_flow.go index 360836f..a024717 100644 --- a/app/db/model/order_goods_doing_flow.go +++ b/app/db/model/order_goods_doing_flow.go @@ -15,4 +15,6 @@ type OrderGoodsDoingFlow struct { SkuId int64 `json:"sku_id" xorm:"BIGINT(20)"` SkuCode string `json:"sku_code" xorm:"VARCHAR(255)"` AdminId int `json:"admin_id" xorm:"default 0 comment('admin 的id') INT(11)"` + Sku string `json:"sku" xorm:"comment('规格数据') VARCHAR(1000)"` + GoodsTitle string `json:"goods_title" xorm:"comment('商品标题') VARCHAR(255)"` } diff --git a/app/ipad/hdl/hdl_order_make.go b/app/ipad/hdl/hdl_order_make.go index d386f45..1ba0ac5 100644 --- a/app/ipad/hdl/hdl_order_make.go +++ b/app/ipad/hdl/hdl_order_make.go @@ -5,18 +5,6 @@ import ( "github.com/gin-gonic/gin" ) -func OrderMakeBegin(c *gin.Context) { - svc.OrderMakeBegin(c) -} -func OrderMakeEnd(c *gin.Context) { - svc.OrderMakeEnd(c) -} -func OrderBakingEnd(c *gin.Context) { - svc.OrderBakingEnd(c) -} -func OrderSortingEnd(c *gin.Context) { - svc.OrderSortingEnd(c) -} func NewOrderMakeEnd(c *gin.Context) { svc.NewOrderMakeEnd(c) } diff --git a/app/ipad/svc/svc_order_make.go b/app/ipad/svc/svc_order_make.go index 061d75f..45dd688 100644 --- a/app/ipad/svc/svc_order_make.go +++ b/app/ipad/svc/svc_order_make.go @@ -10,173 +10,6 @@ import ( "time" ) -func OrderMakeBegin(c *gin.Context) { - var args map[string]string - if err := c.ShouldBindJSON(&args); err != nil { - e.OutErr(c, e.ERR_INVALID_ARGS, err) - return - } - args["state"] = "1" - args["str"] = "制作" - commMake(c, args) -} -func OrderMakeEnd(c *gin.Context) { - var args map[string]string - if err := c.ShouldBindJSON(&args); err != nil { - e.OutErr(c, e.ERR_INVALID_ARGS, err) - return - } - args["state"] = "2" - args["str"] = "烘焙" - commMake(c, args) -} -func OrderBakingEnd(c *gin.Context) { - var args map[string]string - if err := c.ShouldBindJSON(&args); err != nil { - e.OutErr(c, e.ERR_INVALID_ARGS, err) - return - } - args["state"] = "3" - args["str"] = "烘焙" - commMake(c, args) -} -func OrderSortingEnd(c *gin.Context) { - var args md.OrderSorting - if err := c.ShouldBindJSON(&args); err != nil { - e.OutErr(c, e.ERR_INVALID_ARGS, err) - return - } - eg := db.Db - sess := eg.NewSession() - defer sess.Close() - sess.Begin() - order := db.GetOrderByIdSess(sess, args.Oid) - if order == nil { - sess.Rollback() - e.OutErr(c, 400, e.NewErr(400, "订单查找失败,请重试")) - return - } - if order.State == 4 { - sess.Rollback() - e.OutErr(c, 400, e.NewErr(400, "订单已分拣完成")) - return - } - //修改制作记录 - for _, v := range args.GoodsInfo { - record := db.GetOrderGoodsByIdSess(sess, v["id"]) - record.SuccessNum = utils.StrToInt(v["num"]) - record.State = 4 - record.AdminId = utils.StrToInt(args.AdminId) - record.Time = time.Now() - _, err := sess.Where("id=?", record.Id).Cols("success_num,state,time").Update(record) - if err != nil { - sess.Rollback() - e.OutErr(c, 400, e.NewErr(400, "提交失败,请重试")) - return - } - //写入流程记录 - var recordFlow = &model.OrderGoodsDoingFlow{ - Num: record.Num, - State: 4, - Memo: "", - SuccessNum: utils.StrToInt(v["num"]), - Time: time.Now(), - Gid: record.GoodsId, - SkuId: record.SkuId, - SkuCode: record.SkuCode, - AdminId: utils.StrToInt(args.AdminId), - } - one, err := sess.InsertOne(recordFlow) - if one == 0 || err != nil { - sess.Rollback() - e.OutErr(c, 400, e.NewErr(400, "开始制作失败,请重试")) - return - } - } - //判断大订单 要不要改状态 - count, _ := sess.Where("oid=?", order.Oid).Count(&model.OrderGoods{}) - countEnd, _ := sess.Where("oid=? and state=?", order.Oid, 4).Count(&model.OrderGoods{}) - if countEnd == count { - _, err := sess.Where("oid=?", order.Oid).Cols("state").Update(&model.Order{State: 4}) - if err != nil { - sess.Rollback() - e.OutErr(c, 400, e.NewErr(400, "提交失败,请重试")) - return - } - } - sess.Commit() - e.OutSuc(c, "success", nil) - return -} - -func commMake(c *gin.Context, args map[string]string) { - eg := db.Db - sess := eg.NewSession() - defer sess.Close() - sess.Begin() - state := utils.StrToInt(args["state"]) - - orderGoods := db.GetOrderGoodsByIdSess(sess, args["id"]) - if orderGoods == nil { - sess.Rollback() - e.OutErr(c, 400, e.NewErr(400, "订单查找失败,请重试")) - return - } - order := db.GetOrderByIdSess(sess, utils.Int64ToStr(orderGoods.Oid)) - if order == nil { - sess.Rollback() - e.OutErr(c, 400, e.NewErr(400, "订单查找失败,请重试")) - return - } - if orderGoods.State >= state { - sess.Rollback() - e.OutErr(c, 400, e.NewErr(400, "该商品已在"+args["str"]+"中")) - return - } - orderGoods.SuccessNum = utils.StrToInt(args["num"]) - orderGoods.Memo = args["memo"] - orderGoods.State = state - orderGoods.AdminId = utils.StrToInt(args["admin_id"]) - orderGoods.Time = time.Now() - _, err := sess.Where("id=?", orderGoods.Id).Cols("success_num,memo,state,time").Update(orderGoods) - if err != nil { - sess.Rollback() - e.OutErr(c, 400, e.NewErr(400, "提交失败,请重试")) - return - } - //写入流程记录 - var recordFlow = &model.OrderGoodsDoingFlow{ - Num: orderGoods.Num, - State: state, - Memo: args["memo"], - SuccessNum: utils.StrToInt(args["num"]), - Time: time.Now(), - Gid: orderGoods.GoodsId, - SkuId: orderGoods.SkuId, - SkuCode: orderGoods.SkuCode, - AdminId: utils.StrToInt(args["admin_id"]), - } - one, err := sess.InsertOne(recordFlow) - if one == 0 || err != nil { - sess.Rollback() - e.OutErr(c, 400, e.NewErr(400, "开始制作失败,请重试")) - return - } - //判断大订单 要不要改状态 - count, _ := sess.Where("oid=?", orderGoods.Oid).Count(&model.OrderGoods{}) - countEnd, _ := sess.Where("oid=? and state=?", orderGoods.Oid, state).Count(&model.OrderGoods{}) - if countEnd == count { - _, err = sess.Where("oid=?", orderGoods.Oid).Cols("state").Update(&model.Order{State: state}) - if err != nil { - sess.Rollback() - e.OutErr(c, 400, e.NewErr(400, "提交失败,请重试")) - return - } - } - sess.Commit() - e.OutSuc(c, "success", nil) - return -} func NewOrderMakeEnd(c *gin.Context) { var args map[string]string if err := c.ShouldBindJSON(&args); err != nil { @@ -247,6 +80,8 @@ func NewOrderSortingEnd(c *gin.Context) { SkuId: record.SkuId, SkuCode: record.SkuCode, AdminId: utils.StrToInt(args.AdminId), + GoodsTitle: record.GoodsTitle, + Sku: record.Sku, } one, err := sess.InsertOne(recordFlow) if one == 0 || err != nil { @@ -309,6 +144,7 @@ func commNewMake(c *gin.Context, args map[string]string) { return } //写入流程记录 + var recordFlow = &model.OrderGoodsDoingFlow{ Num: WaitMakeNum, State: state, @@ -319,6 +155,8 @@ func commNewMake(c *gin.Context, args map[string]string) { SkuId: orderGoods.SkuId, SkuCode: orderGoods.SkuCode, AdminId: utils.StrToInt(args["admin_id"]), + GoodsTitle: orderGoods.GoodsTitle, + Sku: orderGoods.Sku, } one, err := sess.InsertOne(recordFlow) if one == 0 || err != nil { @@ -326,7 +164,6 @@ func commNewMake(c *gin.Context, args map[string]string) { e.OutErr(c, 400, e.NewErr(400, "操作失败,请重试")) return } - sess.Commit() e.OutSuc(c, "success", nil) return diff --git a/app/router/ipad_router.go b/app/router/ipad_router.go index 2204413..7a7f32a 100644 --- a/app/router/ipad_router.go +++ b/app/router/ipad_router.go @@ -8,14 +8,13 @@ import ( func IpadInit(r *gin.RouterGroup) { r.POST("/login", hdl.Login) - r.Use(mw.Auth) //检测登录状态 - r.GET("order/cate", hdl.OrderCate) //订单类目 - r.POST("order/list", hdl.Order) //订单 - r.POST("order/state_list", hdl.StateOrder) //订单 - r.GET("order/goods/cate", hdl.OrderGoodsCate) //订单商品类目 - r.POST("order/goods/list", hdl.OrderGoods) //订单商品 - r.GET("responsible", hdl.Responsible) //负责人 - r.POST("order/make/begin", hdl.OrderMakeBegin) //订单开始制作 + r.Use(mw.Auth) //检测登录状态 + r.GET("order/cate", hdl.OrderCate) //订单类目 + r.POST("order/list", hdl.Order) //订单 + r.POST("order/state_list", hdl.StateOrder) //订单 + r.GET("order/goods/cate", hdl.OrderGoodsCate) //订单商品类目 + r.POST("order/goods/list", hdl.OrderGoods) //订单商品 + r.GET("responsible", hdl.Responsible) //负责人 r.POST("order/make/end", hdl.NewOrderMakeEnd) //订单制作完成 r.POST("order/baking/end", hdl.NewOrderBakingEnd) //订单烘焙完成 From 54f2242b0718c30df9fdad99cfb90d193070cf9a Mon Sep 17 00:00:00 2001 From: huangjiajun <582604932@qq.com> Date: Tue, 30 Apr 2024 14:42:41 +0800 Subject: [PATCH 3/8] =?UTF-8?q?1=E6=95=B0=E6=8D=AE=E5=A4=A7=E5=B1=8F?= =?UTF-8?q?=E6=8F=90=E9=86=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/admin/svc/order/svc_order_pay.go | 1 + app/bigData/hdl/hdl_making_data.go | 52 ++++++++++++++++++++++++++++ app/db/model/order_goods.go | 1 + app/router/big_data_router.go | 9 ++--- etc/cfg.yml | 6 ++-- 5 files changed, 62 insertions(+), 7 deletions(-) diff --git a/app/admin/svc/order/svc_order_pay.go b/app/admin/svc/order/svc_order_pay.go index f46adbe..bb5891b 100644 --- a/app/admin/svc/order/svc_order_pay.go +++ b/app/admin/svc/order/svc_order_pay.go @@ -81,6 +81,7 @@ func GoodsPayCreate(c *gin.Context) { Price: skuPrice[v.SkuId], EnterpriseId: utils.StrToInt(req.EnterpriseId), State: 1, + IsNew: 1, } goodsTotal[tmp.GoodsId] += tmp.Num orderGoods = append(orderGoods, tmp) diff --git a/app/bigData/hdl/hdl_making_data.go b/app/bigData/hdl/hdl_making_data.go index 818cda7..b6422b8 100644 --- a/app/bigData/hdl/hdl_making_data.go +++ b/app/bigData/hdl/hdl_making_data.go @@ -1,10 +1,15 @@ package hdl import ( + "applet/app/admin/md" "applet/app/bigData/svc" "applet/app/db" + "applet/app/db/model" "applet/app/e" + "applet/app/utils" + "encoding/json" "github.com/gin-gonic/gin" + "strings" ) func MakingData(c *gin.Context) { @@ -43,3 +48,50 @@ func NewOrderNotice(c *gin.Context) { e.OutSuc(c, res, nil) return } +func NewOrderInfoNotice(c *gin.Context) { + var data []model.OrderGoods + db.Db.Where("is_new=1").Find(&data) + sysCfgDb := db.SysCfgDb{} + sysCfgDb.Set() + cfg, _ := sysCfgDb.SysCfgGetOne("new_order_notice") + str := "" + if cfg != nil { + str = cfg.Val + } + skuDatas := make(map[int64]map[string]string, 0) + for _, v := range data { + _, ok := skuDatas[v.SkuId] + if ok == false { + skuDatas[v.SkuId] = make(map[string]string) + } + skuDatas[v.SkuId]["goods_title"] = v.GoodsTitle + skuDatas[v.SkuId]["sku"] = v.Sku + skuDatas[v.SkuId]["count"] = utils.IntToStr(utils.StrToInt(skuDatas[v.SkuId]["count"]) + v.Num) + } + res := make([]map[string]string, 0) + for _, v := range skuDatas { + skuData := make([]md.Sku, 0) + json.Unmarshal([]byte(v["sku"]), &skuData) + skuStr := "" + for _, v1 := range skuData { + if skuStr != "" { + skuStr += ";" + } + skuStr += v1.Value + } + tip := str + tip = strings.ReplaceAll(tip, "[商品名称]", v["goods_title"]) + tip = strings.ReplaceAll(tip, "[规格]", skuStr) + tip = strings.ReplaceAll(tip, "[数量]", v["count"]) + tmp := map[string]string{ + "str": tip, + } + res = append(res, tmp) + } + for _, v := range data { + v.IsNew = 0 + db.Db.Where("id=?", v.Id).Cols("is_new").Update(&v) + } + e.OutSuc(c, res, nil) + return +} diff --git a/app/db/model/order_goods.go b/app/db/model/order_goods.go index 5b945b5..ce96bf6 100644 --- a/app/db/model/order_goods.go +++ b/app/db/model/order_goods.go @@ -9,6 +9,7 @@ type OrderGoods struct { SkuId int64 `json:"sku_id" xorm:"default 0 comment('sku') BIGINT(20)"` Num int `json:"num" xorm:"default 0 comment('购买数量') INT(11)"` OldNum int `json:"old_num" xorm:"default 0 comment('购买数量') INT(11)"` + IsNew int `json:"is_new" xorm:"default 0 comment('购买数量') INT(11)"` Price string `json:"price" xorm:"default 0.00 comment('单价') DECIMAL(20,2)"` State int `json:"state" xorm:"default 0 comment('状态 0待制作 1制作中 2烘焙中 3分拣中 4已完成 ') INT(11)"` SkuCode string `json:"sku_code" xorm:"VARCHAR(255)"` diff --git a/app/router/big_data_router.go b/app/router/big_data_router.go index c16c96c..3edced5 100644 --- a/app/router/big_data_router.go +++ b/app/router/big_data_router.go @@ -19,9 +19,10 @@ func rData(r *gin.RouterGroup) { r.GET("/leftData", hdl.LeftData) //左侧数据 r.POST("/rightData", hdl.RightData) //右侧数据 - r.GET("/making_data", hdl.MakingData) //制作区数据 - r.GET("/baking_data", hdl.BakingData) //烘焙区数据 - r.GET("/sorting_data", hdl.SortingData) //分拣区数据 - r.GET("/new_order_notice", hdl.NewOrderNotice) //新订单提醒 + r.GET("/making_data", hdl.MakingData) //制作区数据 + r.GET("/baking_data", hdl.BakingData) //烘焙区数据 + r.GET("/sorting_data", hdl.SortingData) //分拣区数据 + r.GET("/new_order_notice", hdl.NewOrderNotice) //新订单提醒 + r.GET("/new_order_info_notice", hdl.NewOrderInfoNotice) //新订单提醒 } diff --git a/etc/cfg.yml b/etc/cfg.yml index 8549d49..a47c022 100644 --- a/etc/cfg.yml +++ b/etc/cfg.yml @@ -11,10 +11,10 @@ redis_password: '' # 连接官网数据库获取db mapping db: - host: 'zhios123.rwlb.rds.aliyuncs.com:3306' + host: '119.23.182.117:3306' name: 'bakery' - user: 'canal' - psw: 'canal' + user: 'root' + psw: 'Fnuo123com@' show_log: true max_lifetime: 30 max_open_conns: 100 From 36e0e35afc4318ccebb477c2a5a5651dd95513e8 Mon Sep 17 00:00:00 2001 From: huangjiajun <582604932@qq.com> Date: Tue, 30 Apr 2024 14:43:42 +0800 Subject: [PATCH 4/8] =?UTF-8?q?1=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- etc/cfg.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/etc/cfg.yml b/etc/cfg.yml index a47c022..8549d49 100644 --- a/etc/cfg.yml +++ b/etc/cfg.yml @@ -11,10 +11,10 @@ redis_password: '' # 连接官网数据库获取db mapping db: - host: '119.23.182.117:3306' + host: 'zhios123.rwlb.rds.aliyuncs.com:3306' name: 'bakery' - user: 'root' - psw: 'Fnuo123com@' + user: 'canal' + psw: 'canal' show_log: true max_lifetime: 30 max_open_conns: 100 From 78998e29a08b2832b1e5b8e49ee9ec8aec5c0574 Mon Sep 17 00:00:00 2001 From: huangjiajun <582604932@qq.com> Date: Tue, 30 Apr 2024 16:06:57 +0800 Subject: [PATCH 5/8] =?UTF-8?q?1=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/admin/svc/order/svc_order_pay.go | 2 ++ app/db/db_order_list.go | 4 ++++ app/db/model/order.go | 1 + 3 files changed, 7 insertions(+) diff --git a/app/admin/svc/order/svc_order_pay.go b/app/admin/svc/order/svc_order_pay.go index bb5891b..19f6b04 100644 --- a/app/admin/svc/order/svc_order_pay.go +++ b/app/admin/svc/order/svc_order_pay.go @@ -11,6 +11,7 @@ import ( "errors" "fmt" "github.com/gin-gonic/gin" + "strings" "time" "xorm.io/xorm" ) @@ -51,6 +52,7 @@ func GoodsPayCreate(c *gin.Context) { BuyPhone: req.BuyInfo.Phone, Amount: utils.Float64ToStr(amount), State: 1, + Date: utils.StrToInt(strings.ReplaceAll(req.BuyInfo.Date, "-", "")), } one, err := sess.InsertOne(&order) if one == 0 || err != nil { diff --git a/app/db/db_order_list.go b/app/db/db_order_list.go index 30095a6..365bd80 100644 --- a/app/db/db_order_list.go +++ b/app/db/db_order_list.go @@ -60,6 +60,10 @@ func GetOrderList(eg *xorm.Engine, param map[string]string) (*[]model.Order, int if param["end_at"] != "" { sess.And("create_at <= ?", param["end_at"]) } + if param["date"] != "" { + param["date"] = strings.ReplaceAll(param["date"], "-", "") + sess.And("date = ?", param["date"]) + } if param["enterprise_name"] != "" { var enterprise []model.Enterprise eg.Where("name like ?", "%"+param["enterprise_name"]+"%").Find(&enterprise) diff --git a/app/db/model/order.go b/app/db/model/order.go index 1c2e460..1e05530 100644 --- a/app/db/model/order.go +++ b/app/db/model/order.go @@ -11,6 +11,7 @@ type Order struct { CreateAt time.Time `json:"create_at" xorm:"comment('下单时间') DATETIME"` CancelAt time.Time `json:"cancel_at" xorm:"comment('取消时间') DATETIME"` EnterpriseId int `json:"enterprise_id" xorm:"default 0 comment('校企id') INT(11)"` + Date int `json:"date" xorm:"default 0 comment('校企id') INT(11)"` BuyInfo string `json:"buy_info" xorm:"comment('购买人信息 json') VARCHAR(2000)"` Amount string `json:"amount" xorm:"default 0.00 comment('付款金额') DECIMAL(20,2)"` BuyPhone string `json:"buy_phone" xorm:"comment('购买人手机') VARCHAR(20)"` From 2b00cf77110b72632a16e973685241900177f2c2 Mon Sep 17 00:00:00 2001 From: huangjiajun <582604932@qq.com> Date: Tue, 30 Apr 2024 16:16:03 +0800 Subject: [PATCH 6/8] =?UTF-8?q?1=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/admin/svc/order/svc_order_list.go | 2 ++ app/db/db_order_list.go | 4 ++++ static/template/商品销售明细表.xlsx | Bin 9286 -> 9310 bytes 3 files changed, 6 insertions(+) diff --git a/app/admin/svc/order/svc_order_list.go b/app/admin/svc/order/svc_order_list.go index 8c8075a..08f62ad 100644 --- a/app/admin/svc/order/svc_order_list.go +++ b/app/admin/svc/order/svc_order_list.go @@ -489,6 +489,7 @@ func OrderOutput(c *gin.Context) { } for _, vv := range orderGoods { data[enterpriseName][v.Oid]["date"] = v.CreateAt.Format("2006-01-02") + data[enterpriseName][v.Oid]["send_date"] = gjson.Get(v.BuyInfo, "date").String() data[enterpriseName][v.Oid]["goods_name"] = vv.GoodsTitle skuData := make([]md.Sku, 0) json.Unmarshal([]byte(vv.Sku), &skuData) @@ -523,6 +524,7 @@ func OrderOutput(c *gin.Context) { vv["goods_name"], vv["sku_str"], vv["num"], + vv["send_date"], }) xlsx.SetRowHeight("Sheet1", j, 18) total += utils.StrToInt(vv["num"]) diff --git a/app/db/db_order_list.go b/app/db/db_order_list.go index 365bd80..90c03a9 100644 --- a/app/db/db_order_list.go +++ b/app/db/db_order_list.go @@ -137,6 +137,10 @@ func GetOrderListOutput(eg *xorm.Engine, param map[string]string) *[]model.Order if param["end_at"] != "" { sess.And("create_at <= ?", param["end_at"]) } + if param["date"] != "" { + param["date"] = strings.ReplaceAll(param["date"], "-", "") + sess.And("date = ?", param["date"]) + } if param["enterprise_name"] != "" { var enterprise []model.Enterprise eg.Where("name like ?", "%"+param["enterprise_name"]+"%").Find(&enterprise) diff --git a/static/template/商品销售明细表.xlsx b/static/template/商品销售明细表.xlsx index 5ecb9830a842cc8faab9dbad1a58fba69e2048ca..0e9975d7b0c1357b50fedc720ec3a7a89a99a60f 100644 GIT binary patch delta 4982 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 delta 4989 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 OqWSOg5^%Hp@%#_Gfm!MR From 50fa73a3b1fb5f633c635f1cf5fbc0cece56e69a Mon Sep 17 00:00:00 2001 From: huangjiajun <582604932@qq.com> Date: Tue, 30 Apr 2024 17:05:48 +0800 Subject: [PATCH 7/8] =?UTF-8?q?1=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/admin/svc/order/svc_order_list.go | 1 - static/template/商品销售明细表.xlsx | Bin 9310 -> 9270 bytes 2 files changed, 1 deletion(-) diff --git a/app/admin/svc/order/svc_order_list.go b/app/admin/svc/order/svc_order_list.go index 08f62ad..1721247 100644 --- a/app/admin/svc/order/svc_order_list.go +++ b/app/admin/svc/order/svc_order_list.go @@ -524,7 +524,6 @@ func OrderOutput(c *gin.Context) { vv["goods_name"], vv["sku_str"], vv["num"], - vv["send_date"], }) xlsx.SetRowHeight("Sheet1", j, 18) total += utils.StrToInt(vv["num"]) diff --git a/static/template/商品销售明细表.xlsx b/static/template/商品销售明细表.xlsx index 0e9975d7b0c1357b50fedc720ec3a7a89a99a60f..9c9ceed0700486c748eb1aef3df07e11e6891949 100644 GIT binary patch delta 4086 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 delta 4078 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 Date: Tue, 30 Apr 2024 18:02:51 +0800 Subject: [PATCH 8/8] =?UTF-8?q?1=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/admin/svc/order/svc_order_list.go | 1 + 1 file changed, 1 insertion(+) diff --git a/app/admin/svc/order/svc_order_list.go b/app/admin/svc/order/svc_order_list.go index 1721247..beb9b7e 100644 --- a/app/admin/svc/order/svc_order_list.go +++ b/app/admin/svc/order/svc_order_list.go @@ -380,6 +380,7 @@ func OrderDetail(c *gin.Context) { "goods_id": utils.Int64ToStr(v.GoodsId), "num": utils.IntToStr(v.Num), "amount": utils.Float64ToStr(utils.StrToFloat64(v.Price) * float64(v.Num)), + "price": utils.StrToFloat64(v.Price), "sku_str": "", "spe": "", "sku_list": skuList,