package svc import ( md2 "applet/app/admin/md" "applet/app/bigData/md" "applet/app/db" "applet/app/db/model" "encoding/json" "time" ) func LeftDataForMake() (resp []md.LeftDataForMakeResp, err error) { now := time.Now() startDate := now.Format("2006-01-02") + " 00:00:00" endDate := now.AddDate(0, 0, 1).Format("2006-01-02") + " 00:00:00" engine := db.Db var enterprise []model.Enterprise err = engine.Where("1=1").Find(&enterprise) if err != nil { return } var enterpriseMap = map[int]model.Enterprise{} for _, v := range enterprise { enterpriseMap[v.Id] = v } //1、查找当天的 order 数据(大于 待制作) var orders []model.Order err = engine.Where("create_at >= ?", startDate).And("create_at < ?", endDate).And("state > ? and state != 5", 0).Find(&orders) if err != nil { return } var oIds []int64 for _, v := range orders { oIds = append(oIds, v.Oid) } //2、查找对应的订单产品记录 var orderGoods []model.OrderGoods err = engine.In("oid", oIds).Find(&orderGoods) if err != nil { return } var orderGoodsMap = map[int64][]model.OrderGoods{} var records []int for _, v := range orderGoods { if orderGoodsMap[v.Oid] == nil { orderGoodsMap[v.Oid] = []model.OrderGoods{} } orderGoodsMap[v.Oid] = append(orderGoodsMap[v.Oid], v) records = append(records, v.Id) } //3、用户订单商品操作流程 var orderGoodsDoingFlows []model.OrderGoodsDoingFlow err = engine.Where("state = 2").In("record_id", records).Find(&orderGoodsDoingFlows) if err != nil { return } var orderGoodsDoingFlowsMap = map[int]model.OrderGoodsDoingFlow{} for _, v := range orderGoodsDoingFlows { orderGoodsDoingFlowsMap[v.RecordId] = v } //4、整合数据 orderStateArr := []string{"待制作", "制作中", "烘焙完成", "分拣完成", "已取消"} for _, v := range orders { var list []md.LeftDataForMakeList if len(orderGoodsMap[v.Oid]) > 0 { orderGoodsStateArr := []string{"待制作", "制作中"} for _, vv := range orderGoodsMap[v.Oid] { skuData := make([]md2.Sku, 0) json.Unmarshal([]byte(vv.Sku), &skuData) skuStr := "" for _, v1 := range skuData { if skuStr != "" { skuStr += ";" } skuStr += v1.Value } var stateZh = "已完成" if vv.State <= 1 { stateZh = orderGoodsStateArr[vv.State] } list = append(list, md.LeftDataForMakeList{ GoodsName: vv.GoodsTitle, Sku: skuStr, Num: vv.Num, SuccessNum: orderGoodsDoingFlowsMap[vv.Id].SuccessNum, StateZh: stateZh, State: vv.State, }) } resp = append(resp, md.LeftDataForMakeResp{ EnterpriseName: enterpriseMap[v.EnterpriseId].Name, EnterpriseId: v.EnterpriseId, StateZh: orderStateArr[v.State], State: v.State, List: list, }) } } return } func LeftDataForBaking() (resp []md.LeftDataForMakeResp, err error) { now := time.Now() startDate := now.Format("2006-01-02") + " 00:00:00" endDate := now.AddDate(0, 0, 1).Format("2006-01-02") + " 00:00:00" engine := db.Db var enterprise []model.Enterprise err = engine.Where("1=1").Find(&enterprise) if err != nil { return } var enterpriseMap = map[int]model.Enterprise{} for _, v := range enterprise { enterpriseMap[v.Id] = v } //1、查找当天的 order 数据(大于 待制作) var orders []model.Order err = engine.Where("create_at >= ?", startDate).And("create_at < ?", endDate).And("state > ? and state != 5", 1).Find(&orders) if err != nil { return } var oIds []int64 for _, v := range orders { oIds = append(oIds, v.Oid) } //2、查找对应的订单产品记录 var orderGoods []model.OrderGoods err = engine.In("oid", oIds).Find(&orderGoods) if err != nil { return } var orderGoodsMap = map[int64][]model.OrderGoods{} var records []int for _, v := range orderGoods { if orderGoodsMap[v.Oid] == nil { orderGoodsMap[v.Oid] = []model.OrderGoods{} } orderGoodsMap[v.Oid] = append(orderGoodsMap[v.Oid], v) records = append(records, v.Id) } //3、用户订单商品操作流程 var orderGoodsDoingFlows []model.OrderGoodsDoingFlow err = engine.Where("state = 2").In("record_id", records).Find(&orderGoodsDoingFlows) if err != nil { return } var orderGoodsDoingFlowsMap = map[int]model.OrderGoodsDoingFlow{} for _, v := range orderGoodsDoingFlows { orderGoodsDoingFlowsMap[v.RecordId] = v } //4、整合数据 orderStateArr := []string{"待制作", "制作中", "制作完成", "烘焙完成", "分拣完成", "已取消"} for _, v := range orders { var list []md.LeftDataForMakeList if len(orderGoodsMap[v.Oid]) > 0 { for _, vv := range orderGoodsMap[v.Oid] { skuData := make([]md2.Sku, 0) json.Unmarshal([]byte(vv.Sku), &skuData) skuStr := "" for _, v1 := range skuData { if skuStr != "" { skuStr += ";" } skuStr += v1.Value } var stateZh = "已完成" if vv.State == 2 { stateZh = "烘焙中" } list = append(list, md.LeftDataForMakeList{ GoodsName: vv.GoodsTitle, Sku: skuStr, Num: vv.Num, SuccessNum: orderGoodsDoingFlowsMap[vv.Id].SuccessNum, StateZh: stateZh, State: vv.State, }) } resp = append(resp, md.LeftDataForMakeResp{ EnterpriseName: enterpriseMap[v.EnterpriseId].Name, EnterpriseId: v.EnterpriseId, StateZh: orderStateArr[v.State], State: v.State, List: list, }) } } return } func LeftDataForSorting() (resp []md.LeftDataForMakeResp, err error) { now := time.Now() startDate := now.Format("2006-01-02") + " 00:00:00" endDate := now.AddDate(0, 0, 1).Format("2006-01-02") + " 00:00:00" engine := db.Db var enterprise []model.Enterprise err = engine.Where("1=1").Find(&enterprise) if err != nil { return } var enterpriseMap = map[int]model.Enterprise{} for _, v := range enterprise { enterpriseMap[v.Id] = v } //1、查找当天的 order 数据(大于 待制作) var orders []model.Order err = engine.Where("create_at >= ?", startDate).And("create_at < ?", endDate).And("state > ? and state != 5", 2).Find(&orders) if err != nil { return } var oIds []int64 for _, v := range orders { oIds = append(oIds, v.Oid) } //2、查找对应的订单产品记录 var orderGoods []model.OrderGoods err = engine.In("oid", oIds).Find(&orderGoods) if err != nil { return } var orderGoodsMap = map[int64][]model.OrderGoods{} var records []int for _, v := range orderGoods { if orderGoodsMap[v.Oid] == nil { orderGoodsMap[v.Oid] = []model.OrderGoods{} } orderGoodsMap[v.Oid] = append(orderGoodsMap[v.Oid], v) records = append(records, v.Id) } //3、用户订单商品操作流程 var orderGoodsDoingFlows []model.OrderGoodsDoingFlow err = engine.Where("state = 2").In("record_id", records).Find(&orderGoodsDoingFlows) if err != nil { return } var orderGoodsDoingFlowsMap = map[int]model.OrderGoodsDoingFlow{} for _, v := range orderGoodsDoingFlows { orderGoodsDoingFlowsMap[v.RecordId] = v } //4、整合数据 orderStateArr := []string{"待制作", "制作中", "制作完成", "烘焙完成", "分拣完成", "已取消"} for _, v := range orders { var list []md.LeftDataForMakeList if len(orderGoodsMap[v.Oid]) > 0 { orderGoodsStateArr := []string{"待制作", "制作中", "烘焙中", "分拣中", "已完成"} for _, vv := range orderGoodsMap[v.Oid] { skuData := make([]md2.Sku, 0) json.Unmarshal([]byte(vv.Sku), &skuData) skuStr := "" for _, v1 := range skuData { if skuStr != "" { skuStr += ";" } skuStr += v1.Value } var stateZh = orderGoodsStateArr[vv.State] list = append(list, md.LeftDataForMakeList{ GoodsName: vv.GoodsTitle, Sku: skuStr, Num: vv.Num, SuccessNum: orderGoodsDoingFlowsMap[vv.Id].SuccessNum, StateZh: stateZh, State: vv.State, }) } resp = append(resp, md.LeftDataForMakeResp{ EnterpriseName: enterpriseMap[v.EnterpriseId].Name, EnterpriseId: v.EnterpriseId, StateZh: orderStateArr[v.State], State: v.State, List: list, }) } } return } func RightDataForMake(req md.RightDataForMakeReq) (resp []md.RightDataForMakeResp, total int64, err error) { now := time.Now() startDate := now.Format("2006-01-02") + " 00:00:00" endDate := now.AddDate(0, 0, 1).Format("2006-01-02") + " 00:00:00" engine := db.Db var enterprise []model.Enterprise err = engine.Where("1=1").Find(&enterprise) if err != nil { return } var enterpriseMap = map[int]model.Enterprise{} for _, v := range enterprise { enterpriseMap[v.Id] = v } //1、查找当天的 order 数据(大于 待制作) var orders []model.Order total, err = engine.Where("create_at >= ?", startDate).And("create_at < ?", endDate).And("state > ? and state != 5", 0). Limit(req.Limit, (req.Page-1)*req.Limit).FindAndCount(&orders) if err != nil { return } var oIds []int64 for _, v := range orders { oIds = append(oIds, v.Oid) } //2、整合数据 orderStateArr := []string{"待制作", "制作中", "制作完成", "烘焙完成", "分拣完成", "已取消"} for _, v := range orders { resp = append(resp, md.RightDataForMakeResp{ EnterpriseName: enterpriseMap[v.EnterpriseId].Name, EnterpriseId: v.EnterpriseId, StateZh: orderStateArr[v.State], State: v.State, }) } return } func RightDataForBaking(req md.RightDataForMakeReq) (resp []md.RightDataForMakeResp, total int64, err error) { now := time.Now() startDate := now.Format("2006-01-02") + " 00:00:00" endDate := now.AddDate(0, 0, 1).Format("2006-01-02") + " 00:00:00" engine := db.Db var enterprise []model.Enterprise err = engine.Where("1=1").Find(&enterprise) if err != nil { return } var enterpriseMap = map[int]model.Enterprise{} for _, v := range enterprise { enterpriseMap[v.Id] = v } //1、查找当天的 order 数据(大于 待制作) var orders []model.Order total, err = engine.Where("create_at >= ?", startDate).And("create_at < ?", endDate).And("state > ? and state != 5", 1). Limit(req.Limit, (req.Page-1)*req.Limit).FindAndCount(&orders) if err != nil { return } var oIds []int64 for _, v := range orders { oIds = append(oIds, v.Oid) } //2、整合数据 orderStateArr := []string{"待制作", "制作中", "制作完成", "烘焙完成", "分拣完成", "已取消"} for _, v := range orders { resp = append(resp, md.RightDataForMakeResp{ EnterpriseName: enterpriseMap[v.EnterpriseId].Name, EnterpriseId: v.EnterpriseId, StateZh: orderStateArr[v.State], State: v.State, }) } return } func RightDataForSorting(req md.RightDataForMakeReq) (resp []md.RightDataForMakeResp, total int64, err error) { now := time.Now() startDate := now.Format("2006-01-02") + " 00:00:00" endDate := now.AddDate(0, 0, 1).Format("2006-01-02") + " 00:00:00" engine := db.Db var enterprise []model.Enterprise err = engine.Where("1=1").Find(&enterprise) if err != nil { return } var enterpriseMap = map[int]model.Enterprise{} for _, v := range enterprise { enterpriseMap[v.Id] = v } //1、查找当天的 order 数据(大于 待制作) var orders []model.Order total, err = engine.Where("create_at >= ?", startDate).And("create_at < ?", endDate).And("state > ? and state != 5", 2). Limit(req.Limit, (req.Page-1)*req.Limit).FindAndCount(&orders) if err != nil { return } var oIds []int64 for _, v := range orders { oIds = append(oIds, v.Oid) } //2、整合数据 orderStateArr := []string{"待制作", "制作中", "制作完成", "烘焙完成", "分拣完成", "已取消"} for _, v := range orders { resp = append(resp, md.RightDataForMakeResp{ EnterpriseName: enterpriseMap[v.EnterpriseId].Name, EnterpriseId: v.EnterpriseId, StateZh: orderStateArr[v.State], State: v.State, }) } return }