From c079462dbdc60f02f0f5ac57cc50d6c86c5adeac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Fri, 31 Mar 2023 15:41:52 +0800 Subject: [PATCH 01/93] 1 --- conf/app.conf | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/conf/app.conf b/conf/app.conf index 3ed046f73..5d82c1268 100644 --- a/conf/app.conf +++ b/conf/app.conf @@ -116,7 +116,8 @@ dingdingCallbackURL = "http://callback.test.jxc4.com/dingding/msg" dingdingCorpID = "ding7ab5687f3784a8db" alipayAppID = "2019110769024042" -alipayPrivateKey = "MIIEpAIBAAKCAQEAjI46NiIj+Z19+ll4FFR+xss2N69jD5b31LtZVONM8CqNKCe7eBYx6y2pfslgg8R9Xj67PEmc/30euoG7bW23ow6QCj2fS0K2AZBA+TuEbtDpSFr0CUqS+tc/4nEurSyLOOt53ijNFPfVTT56Kl2h0mXLBDA5nvEKlzZTNimJcM/r4yyz4N72zXqfjT7cVTE/3cx6f4fkD3EsYdrxzIAruAYEywqraexLI1oIotGqufBemUhHdcOJquJJtxRLfYC000nEovHFtq1RhtakKRz8j80Edp0X+Dk1vA6JY1sVXnIFh/9QFyT70uFc77GPgwh7OT/qWvWnkBIbY+TGO7+dVQIDAQABAoIBAHQ0do4g5ctO2UOsyqlMPlBO2/Fn8KeH8jgP+MhE8GwzUebcCpM7DmRYqSRoi4IFZn0Psi8i0UktgcVC0tmi90s5E/9TeSp46g8a24zzFwejcutePxqbbC803N1zI9sK08PocyYoZ32pdNFbEReLt+lCPXmmAU2WDWJ9CIjkCHyaO+eadwqckc8VDGuBZU44pKrDDjlYfaWJk3bi7DJ2YqIGL+i0rm+1vVuK7qFTX9fHeeedperVwuBjjA5SPC6xn8I0Uq55fUQ36KQok53VIOzk5HrtiFw9GRBmULthY4/WT7mh44uG93hb+dzFvFNaK1tqgpPwqQTcGuYCNPTkmLUCgYEA4klP52ho3A4+VWXznjblzL2T/uzQPTTbeLUtLoLfKNGg+JiCTc8rJsVFalTyRXPEK8UHveM3/rR0aCc10mh07XHFG6XD7Md20jtTdHoag4HF+aubW2jY6SmbUXlWDxe7FcxRvaP8R2XxacFyIOT41ehphsS1tghU/ipbEDf01N8CgYEAnwMMIfp0ZGNm0IgYVHHKVmqfTC/ZW6epHGyfr/6mQ8hiU5arp2rHWtGUdF3EQFEJu69n8tUYK8hAoCOoPXrnEzMQdLhi389u+2dh8bKuliFzpJy0Ug0z9y4AIzdvCcuKoBMPGV4Db6adXFEHRgR1NIdsQegrtSjvuzgbGIZiwEsCgYEAxX805QRkmMM5tjEgOlMxp8tCUvl/Ghx6/NQsFe8VNDwZ4T7CY4TP5avBVPfE58cNTSJPCnU41u3Kt2iZegW/H8nvPZ0k7hB87SnoQb2cTHDESI91LYfJ4V5199sNuGh+2ZyVLw3jzrDzzdiPcpRFdfS9vWkMK08EVzzCc9pSrkMCgYBkO4iHVpfNu/bQVil3+W6BAJ6/aJ4Lr2jjOPmD9/IYYhTQ+fXkB2P4tIluvLh7jlmjTFMq9/ZPiuBp0XA4qONF7/dci+oPiHM92BIeR/LTQezig8EKw7XRBtchW80LkJkmhD0NUXy7AXzJ922tThwPa5nrBY2fmVlcW2aBFBzldwKBgQCl7y3eMG77BwD0nHxPHopWL6jsowNwxwMyN9eg40yemhfYol8+AhfouRuzaMCzROY9p5nY1N/jmPRa1dM7lXvZuij0ugwIebQXFhEjRtxtENbY5nRU4wlS7Y69oLSqFrQmW/MZbiCuIa6yXirSbEPIUojhHBI17yqq5yRD1vEHGQ==" +# alipayPrivateKey = "MIIEpAIBAAKCAQEAjI46NiIj+Z19+ll4FFR+xss2N69jD5b31LtZVONM8CqNKCe7eBYx6y2pfslgg8R9Xj67PEmc/30euoG7bW23ow6QCj2fS0K2AZBA+TuEbtDpSFr0CUqS+tc/4nEurSyLOOt53ijNFPfVTT56Kl2h0mXLBDA5nvEKlzZTNimJcM/r4yyz4N72zXqfjT7cVTE/3cx6f4fkD3EsYdrxzIAruAYEywqraexLI1oIotGqufBemUhHdcOJquJJtxRLfYC000nEovHFtq1RhtakKRz8j80Edp0X+Dk1vA6JY1sVXnIFh/9QFyT70uFc77GPgwh7OT/qWvWnkBIbY+TGO7+dVQIDAQABAoIBAHQ0do4g5ctO2UOsyqlMPlBO2/Fn8KeH8jgP+MhE8GwzUebcCpM7DmRYqSRoi4IFZn0Psi8i0UktgcVC0tmi90s5E/9TeSp46g8a24zzFwejcutePxqbbC803N1zI9sK08PocyYoZ32pdNFbEReLt+lCPXmmAU2WDWJ9CIjkCHyaO+eadwqckc8VDGuBZU44pKrDDjlYfaWJk3bi7DJ2YqIGL+i0rm+1vVuK7qFTX9fHeeedperVwuBjjA5SPC6xn8I0Uq55fUQ36KQok53VIOzk5HrtiFw9GRBmULthY4/WT7mh44uG93hb+dzFvFNaK1tqgpPwqQTcGuYCNPTkmLUCgYEA4klP52ho3A4+VWXznjblzL2T/uzQPTTbeLUtLoLfKNGg+JiCTc8rJsVFalTyRXPEK8UHveM3/rR0aCc10mh07XHFG6XD7Md20jtTdHoag4HF+aubW2jY6SmbUXlWDxe7FcxRvaP8R2XxacFyIOT41ehphsS1tghU/ipbEDf01N8CgYEAnwMMIfp0ZGNm0IgYVHHKVmqfTC/ZW6epHGyfr/6mQ8hiU5arp2rHWtGUdF3EQFEJu69n8tUYK8hAoCOoPXrnEzMQdLhi389u+2dh8bKuliFzpJy0Ug0z9y4AIzdvCcuKoBMPGV4Db6adXFEHRgR1NIdsQegrtSjvuzgbGIZiwEsCgYEAxX805QRkmMM5tjEgOlMxp8tCUvl/Ghx6/NQsFe8VNDwZ4T7CY4TP5avBVPfE58cNTSJPCnU41u3Kt2iZegW/H8nvPZ0k7hB87SnoQb2cTHDESI91LYfJ4V5199sNuGh+2ZyVLw3jzrDzzdiPcpRFdfS9vWkMK08EVzzCc9pSrkMCgYBkO4iHVpfNu/bQVil3+W6BAJ6/aJ4Lr2jjOPmD9/IYYhTQ+fXkB2P4tIluvLh7jlmjTFMq9/ZPiuBp0XA4qONF7/dci+oPiHM92BIeR/LTQezig8EKw7XRBtchW80LkJkmhD0NUXy7AXzJ922tThwPa5nrBY2fmVlcW2aBFBzldwKBgQCl7y3eMG77BwD0nHxPHopWL6jsowNwxwMyN9eg40yemhfYol8+AhfouRuzaMCzROY9p5nY1N/jmPRa1dM7lXvZuij0ugwIebQXFhEjRtxtENbY5nRU4wlS7Y69oLSqFrQmW/MZbiCuIa6yXirSbEPIUojhHBI17yqq5yRD1vEHGQ==" +alipayPrivateKey = "MIIEogIBAAKCAQEAilPMZeE7xXewRQrfwmbEbYgfn5oY5NHUR5RSbgaDohp6CdtOXL1IGEMuQ/OA3Zrx7Yd5Et5rX7d+k3BUz42k+7Xxu2opk3mBZB2UGWvBLzMcWCE0K/OQH89cJl8N3NX1V2ylrmhNQIqbRfkFunc1dnovhPZBzgSUDHnRcc4JzRI79/6HMxUN36+gfnkShhp92flM1ZYdpj6dYtwWiz5geaCXCLS9RVDIAN+6wl2ie9fiEu4gL8XWi+BrESGUC0R/r9QjoAir+5c7xAbdIPHqhRnXz18xoJorBtLnaMbYR3hoMZq/b4AgukgOJEPwsiewCGMqsyyZRAli9jFQHPByiQIDAQABAoIBAHncqU13x7iHYPryQX56GsKEEZgBoby0PldxC81yX7UHrkvQsJBzEHiPdsrWUsjoIAoqNzewStfgR9qMM6tGFfrKp1N8i3Qorx0MEdTzYRW76VSaq+Osh2P+wifrxcKvm5yRUsT7jlM1yOU0JR/ItYjSy9pPOFnPHr5+801XPrsx8aC+4ZS9oLewyou8yB0piRbyk4PiY2lf/JP6TkQt85ajNjcTLOTh+xLmIR692Z5mJcRT3N+yekpYrETAs4TiSQNgM/C17KreXjJQ97257rqcvOzdvAQwkus9kpbStFTadGMZAp5Q+ItbfDhKY0n/x9h50thoLUZBBk7Y8Bx3qCECgYEAvSKy0KxgZjr4Zw7utj6VNnSWLzkXVVpD2GjuHQgMe4tWm5xBBAbx8W72Y2sgHBoYUNtnblNmNgA1QI2/EtUWdGRnXePXu6RxB+I21PUDNw2hCXUR0v8dPxd80Yxjii31LSutEPq7NNeWkV3RNJal5ejc6RDT7nhQ9M4y8gXp7xsCgYEAuzrQVO1dVaT+KHXJV2AqjL3EQxOMQ8r9MMsBXicXZdm4faFnwIPdXcRPxBNjKK6UziV/ztNUw5IBQyReh9sG7ZRijz8S5+UF4hTA+5W8xb//EaK5TnJ3rP2zPnTkqCEJu/BERzx1paHVPq7LbxQmlVcHyODVktv5W+OJULFvaysCgYAdNKZ4IqYgIysIfv3NloxkBEzMrfw0aePgHxPl18BVs4aEMPS5MnlZ1tClOX2T2VO36KloF+jIne+bMEg5GD6HapmrnetKRnJNzVi6ObttXOVpGHLQKiTSAUZ89TjJtZ8OgpgO7yjJWCEgAWS0wi6L+hFiy/5t7JZTtyOWy+L70QKBgCOnT4TcrqlgggWyaGT7Kx8iA/3B+zPts8lW3yvOxeXfUAKceeVvNvhkKcxs5LUaibu36F66X6neY98lTdsRGoCjgSFGIZOHSVeEHDvMh+YgabIyCpeltKR8q2V5XRGnOPNRDa+DE+Q2rSUCpDrC25YUvKbEKeeNfC7DZaK4Jz+BAoGAPEYYdZXtQbOCXGyPU6CS6W5a2IlOWIpDFCMD+S+qFZBnkqCtBgS0CtQGLEL5t4gYsOBuWUreIxy0UAUIlFFGsDmwqsHu9jHi49LDcAhkciV886nYb/2qCFXo6oiZRBV65Xfai973dHqaVftmZWBsLT+cKJ7eRYHx//uGyJWe/04=" feieUser = "jianhua.xu@rosy.net.cn" feieKey = "2JfKh8TyheQ9mwss" From a8eeec6f5ff2d52f90b8217afa2ec9ddfe8b8ec2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Fri, 31 Mar 2023 16:52:39 +0800 Subject: [PATCH 02/93] 1 --- business/jxstore/cms/sku.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/jxstore/cms/sku.go b/business/jxstore/cms/sku.go index 807490f3d..84b67f50c 100644 --- a/business/jxstore/cms/sku.go +++ b/business/jxstore/cms/sku.go @@ -1194,7 +1194,7 @@ func getJDCategoryLoadingLocalCategoryReflex(jdCategoryId, jdsCategoryID, ebaiCa if mtwmCategoryID == "" && cats[0].MtwmCategoryID != 0 { mtwmCategoryID = utils.Int64ToStr(cats[0].MtwmCategoryID) } - if jxCategoryId == 0 { + if jxCategoryId == 0 || jxCategoryId == 291 { jxCategoryId = cats[0].ID } } From 30b0b68b55eec9c3bea0be644c01c8a2a328fdfe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Fri, 31 Mar 2023 17:04:53 +0800 Subject: [PATCH 03/93] 1' --- business/jxutils/jxutils_cms.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/business/jxutils/jxutils_cms.go b/business/jxutils/jxutils_cms.go index 6605bb5cb..18e2b8b44 100644 --- a/business/jxutils/jxutils_cms.go +++ b/business/jxutils/jxutils_cms.go @@ -495,6 +495,8 @@ func GuessVendorIDFromVendorStoreID(vendorStoreID int64) (vendorID int) { // vendorID = model.VendorIDWSC } else if vendorStoreID > 123456 && vendorStoreID < 654321 { // 京西门店ID,6位 vendorID = model.VendorIDJX + } else if vendorStoreID >= 100000000 { // 饿百出现九未id + vendorID = model.VendorIDEBAI } return vendorID } From 1b3c7ab50798105e471e0270346674b9a84df749 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Fri, 31 Mar 2023 17:18:58 +0800 Subject: [PATCH 04/93] 1 --- business/jxstore/cms/sku.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/business/jxstore/cms/sku.go b/business/jxstore/cms/sku.go index 84b67f50c..22b0b0181 100644 --- a/business/jxstore/cms/sku.go +++ b/business/jxstore/cms/sku.go @@ -1321,6 +1321,10 @@ func updateOrCreateSkuVendorCategoryMap(db *dao.DaoDB, ctx *jxcontext.Context, n updateOrCreate(model.VendorIDJD, nameID, jdCategoryId) flag = true } + if jxCategoryID != 0 && jxCategoryID != 291 { + dao.ExecuteSQL(dao.GetDB(), `UPDATE sku_name SET category_id = ? WHERE id = ?`, []interface{}{jxCategoryID, nameID}...) + flag = true + } } return flag From 89c0b80f5fceac94c2c4fc6bcdb25ecba0c9aaf0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Fri, 31 Mar 2023 17:54:15 +0800 Subject: [PATCH 05/93] 1 --- business/jxstore/cms/sku.go | 38 ++++++++++++++++++++++++++----------- 1 file changed, 27 insertions(+), 11 deletions(-) diff --git a/business/jxstore/cms/sku.go b/business/jxstore/cms/sku.go index 22b0b0181..1811c9771 100644 --- a/business/jxstore/cms/sku.go +++ b/business/jxstore/cms/sku.go @@ -2335,18 +2335,34 @@ func CreateUpcSkuByExcelBin(ctx *jxcontext.Context, reader io.Reader, categoryID if configs, err := dao.QueryConfigs(dao.GetDB(), "mtwmCookieStr", model.ConfigTypeCookie, ""); err == nil { api.MtwmAPI.SetCookieWithStr(configs[0].Value) } - result, err := api.MtwmAPI.GetStandardProductListWithCond(*skuName.Upc) - if result != nil { - productInfo.OriginalName = result.Name - productInfo.OriginalSpec = result.Spec - productInfo.Name = result.Name - productInfo.SpecUnit = result.SpecUnit - productInfo.Unit = result.Unit - productInfo.SpecQuality = float32(result.SpecNew) - productInfo.ImgList = strings.Split(result.Pic, ",") - productInfo.Weight = float32(result.Weight) - productInfo.BrandName = result.BrandNamePath + + //result, err := api.MtwmAPI.GetStandardProductListWithCond(*skuName.Upc) + //if result != nil { + result, err := api.JdAPI.GetJdUpcCodeByName("", *skuName.Upc, 1, 5) + if result != nil && len(result) != 0 { + productInfo.OriginalName = result[0].OriginalName + productInfo.OriginalSpec = result[0].OriginalSpec + productInfo.Name = result[0].Name + productInfo.SpecUnit = result[0].SpecUnit + productInfo.Unit = result[0].Unit + productInfo.SpecQuality = result[0].SpecQuality + productInfo.ImgList = result[0].ImgList + if result[0].Img != "" { + productInfo.ImgList = append(productInfo.ImgList, productInfo.Img) + } + productInfo.Weight = result[0].Weight + productInfo.BrandName = result[0].BrandName setImgs(skuName, productInfo.ImgList) + // productInfo.OriginalName = result.Name + // productInfo.OriginalSpec = result.Spec + // productInfo.Name = result.Name + // productInfo.SpecUnit = result.SpecUnit + // productInfo.Unit = result.Unit + // productInfo.SpecQuality = float32(result.SpecNew) + // productInfo.ImgList = strings.Split(result.Pic, ",") + // productInfo.Weight = float32(result.Weight) + // productInfo.BrandName = result.BrandNamePath + // setImgs(skuName, productInfo.ImgList) } else { retVal = []*CreateUpcSkuByExcelErr{buildCreateUpcSkuByExcelErr(v, "美团cookie过期或者没查询到")} return retVal, err From a534d95ba7fdc79fe4a1d19ea3311e081ff8ae8c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Fri, 31 Mar 2023 18:10:33 +0800 Subject: [PATCH 06/93] 1 --- business/jxstore/cms/sku.go | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/business/jxstore/cms/sku.go b/business/jxstore/cms/sku.go index 1811c9771..13f416496 100644 --- a/business/jxstore/cms/sku.go +++ b/business/jxstore/cms/sku.go @@ -2535,6 +2535,21 @@ func CreateUpcSkuByExcelBin(ctx *jxcontext.Context, reader io.Reader, categoryID sku.Img4 = skuName.Img4 sku.Img5 = skuName.Img5 dao.UpdateEntity(db, sku, "Name", "Img", "Img2", "Img3", "Img4", "Img5") + payload := make(map[string]interface{}, 0) + payload["jdCategoryID"] = sku.JdCategoryID + payload["jdsCategoryID"] = sku.JdsStockSwitch + payload["ebaiCategoryID"] = "" + payload["mtwmCategoryID"] = "" + payload["categoryID2"] = sku.CategoryID + payload["categoryID"] = sku.CategoryID + payload["ddCategoryID"] = "" + payload["descImg"] = sku.DescImg + payload["img"] = sku.Img + payload["img2"] = sku.Img2 + payload["img3"] = sku.Img3 + payload["img4"] = sku.Img4 + payload["img5"] = sku.Img5 + updateOrCreateSkuVendorCategoryMap(db, ctx, sku.ID, nil, nil, false) } if err != nil { retVal = []*CreateUpcSkuByExcelErr{buildCreateUpcSkuByExcelErr(v, err.Error())} From 07e7284e3174118897766bc3a03fba30a8118d88 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Fri, 31 Mar 2023 18:20:54 +0800 Subject: [PATCH 07/93] 1 --- business/jxstore/cms/sku.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/jxstore/cms/sku.go b/business/jxstore/cms/sku.go index 13f416496..8622afbea 100644 --- a/business/jxstore/cms/sku.go +++ b/business/jxstore/cms/sku.go @@ -2549,7 +2549,7 @@ func CreateUpcSkuByExcelBin(ctx *jxcontext.Context, reader io.Reader, categoryID payload["img3"] = sku.Img3 payload["img4"] = sku.Img4 payload["img5"] = sku.Img5 - updateOrCreateSkuVendorCategoryMap(db, ctx, sku.ID, nil, nil, false) + updateOrCreateSkuVendorCategoryMap(db, ctx, sku.ID, payload, nil, false) } if err != nil { retVal = []*CreateUpcSkuByExcelErr{buildCreateUpcSkuByExcelErr(v, err.Error())} From 7a51356d9df7ca010b8adc13fe474d66571dedcb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Fri, 31 Mar 2023 18:37:32 +0800 Subject: [PATCH 08/93] 1 --- business/jxstore/cms/sku.go | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/business/jxstore/cms/sku.go b/business/jxstore/cms/sku.go index 8622afbea..b86a24d8d 100644 --- a/business/jxstore/cms/sku.go +++ b/business/jxstore/cms/sku.go @@ -2525,6 +2525,11 @@ func CreateUpcSkuByExcelBin(ctx *jxcontext.Context, reader io.Reader, categoryID skuName.Img5 = downloadURL } } + + // 标品不存在规格是默认为包 + if (skuName.Unit == "份" && *skuName.Upc != "") || skuName.Unit == "" { + skuName.Unit = "包" + } if !isUpdate { _, err = AddSkuName(ctx, skuName, ctx.GetUserName()) } else { @@ -2534,14 +2539,15 @@ func CreateUpcSkuByExcelBin(ctx *jxcontext.Context, reader io.Reader, categoryID sku.Img3 = skuName.Img3 sku.Img4 = skuName.Img4 sku.Img5 = skuName.Img5 + sku.Unit = skuName.Unit dao.UpdateEntity(db, sku, "Name", "Img", "Img2", "Img3", "Img4", "Img5") payload := make(map[string]interface{}, 0) - payload["jdCategoryID"] = sku.JdCategoryID - payload["jdsCategoryID"] = sku.JdsStockSwitch + payload["jdCategoryID"] = utils.Int64ToStr(sku.JdCategoryID) + payload["jdsCategoryID"] = int64(sku.JdsStockSwitch) payload["ebaiCategoryID"] = "" payload["mtwmCategoryID"] = "" - payload["categoryID2"] = sku.CategoryID - payload["categoryID"] = sku.CategoryID + payload["categoryID2"] = int64(sku.CategoryID) + payload["categoryID"] = int64(sku.CategoryID) payload["ddCategoryID"] = "" payload["descImg"] = sku.DescImg payload["img"] = sku.Img From 02ba5e6f6b3b4c69c32ee806719a833b846ad6a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Fri, 31 Mar 2023 18:42:05 +0800 Subject: [PATCH 09/93] 1' --- business/jxstore/cms/sku.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/business/jxstore/cms/sku.go b/business/jxstore/cms/sku.go index b86a24d8d..332323e22 100644 --- a/business/jxstore/cms/sku.go +++ b/business/jxstore/cms/sku.go @@ -2540,14 +2540,14 @@ func CreateUpcSkuByExcelBin(ctx *jxcontext.Context, reader io.Reader, categoryID sku.Img4 = skuName.Img4 sku.Img5 = skuName.Img5 sku.Unit = skuName.Unit - dao.UpdateEntity(db, sku, "Name", "Img", "Img2", "Img3", "Img4", "Img5") + dao.UpdateEntity(db, sku, "Name", "Img", "Img2", "Img3", "Img4", "Img5", "Unit") payload := make(map[string]interface{}, 0) payload["jdCategoryID"] = utils.Int64ToStr(sku.JdCategoryID) - payload["jdsCategoryID"] = int64(sku.JdsStockSwitch) + payload["jdsCategoryID"] = utils.Int2Str(int(sku.JdsStockSwitch)) payload["ebaiCategoryID"] = "" payload["mtwmCategoryID"] = "" - payload["categoryID2"] = int64(sku.CategoryID) - payload["categoryID"] = int64(sku.CategoryID) + payload["categoryID2"] = utils.Int2Str(sku.CategoryID) + payload["categoryID"] = utils.Int2Str(sku.CategoryID) payload["ddCategoryID"] = "" payload["descImg"] = sku.DescImg payload["img"] = sku.Img From 9c802daa850999da4d9afbec112a5ba6d3fc05a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Fri, 31 Mar 2023 18:51:23 +0800 Subject: [PATCH 10/93] 1 --- business/jxstore/cms/sku.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/business/jxstore/cms/sku.go b/business/jxstore/cms/sku.go index 332323e22..1c0b7a74a 100644 --- a/business/jxstore/cms/sku.go +++ b/business/jxstore/cms/sku.go @@ -1277,13 +1277,13 @@ func updateOrCreateSkuVendorCategoryMap(db *dao.DaoDB, ctx *jxcontext.Context, n if payload["categoryID2"] != nil && !utils.IsNil(payload["categoryID2"]) { jxCategoryIDNumber, err := payload["categoryID2"].(json.Number).Int64() if err != nil { - return false + jxCategoryIDNumber = utils.Str2Int64(payload["categoryID2"].(string)) } jxCategoryID = int(jxCategoryIDNumber) } else if payload["categoryID"] != nil && !utils.IsNil(payload["categoryID"]) { jxCategoryIDNumber, err := payload["categoryID"].(json.Number).Int64() if err != nil { - return false + jxCategoryIDNumber = utils.Str2Int64(payload["categoryID2"].(string)) } jxCategoryID = int(jxCategoryIDNumber) } else { From 7d181829a5531fe77031c95b33aa562e6bd3a9d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Fri, 31 Mar 2023 18:57:50 +0800 Subject: [PATCH 11/93] 1' --- business/jxstore/cms/sku.go | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/business/jxstore/cms/sku.go b/business/jxstore/cms/sku.go index 1c0b7a74a..80503a095 100644 --- a/business/jxstore/cms/sku.go +++ b/business/jxstore/cms/sku.go @@ -9,6 +9,7 @@ import ( "math" "mime/multipart" "net/http" + "reflect" "regexp" "strconv" "strings" @@ -1275,15 +1276,27 @@ func updateOrCreateSkuVendorCategoryMap(db *dao.DaoDB, ctx *jxcontext.Context, n mtwmCategoryID = payload["mtwmCategoryID"].(string) } if payload["categoryID2"] != nil && !utils.IsNil(payload["categoryID2"]) { - jxCategoryIDNumber, err := payload["categoryID2"].(json.Number).Int64() - if err != nil { + vi := reflect.ValueOf(payload["categoryID2"]) + var jxCategoryIDNumber int64 + switch vi.Kind() { + case reflect.String: jxCategoryIDNumber = utils.Str2Int64(payload["categoryID2"].(string)) + case reflect.Int64, reflect.Int: + jxCategoryIDNumber, _ = payload["categoryID2"].(int64) + default: + jxCategoryIDNumber, _ = payload["categoryID2"].(json.Number).Int64() } jxCategoryID = int(jxCategoryIDNumber) } else if payload["categoryID"] != nil && !utils.IsNil(payload["categoryID"]) { - jxCategoryIDNumber, err := payload["categoryID"].(json.Number).Int64() - if err != nil { - jxCategoryIDNumber = utils.Str2Int64(payload["categoryID2"].(string)) + vi := reflect.ValueOf(payload["categoryID"]) + var jxCategoryIDNumber int64 + switch vi.Kind() { + case reflect.String: + jxCategoryIDNumber = utils.Str2Int64(payload["categoryID"].(string)) + case reflect.Int64, reflect.Int: + jxCategoryIDNumber, _ = payload["categoryID"].(int64) + default: + jxCategoryIDNumber, _ = payload["categoryID"].(json.Number).Int64() } jxCategoryID = int(jxCategoryIDNumber) } else { From 98532b94ca8c0203bd8fa354921e1712e72e226a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Fri, 31 Mar 2023 19:18:39 +0800 Subject: [PATCH 12/93] 1 --- business/jxstore/cms/sku.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/business/jxstore/cms/sku.go b/business/jxstore/cms/sku.go index 80503a095..43b9e4aff 100644 --- a/business/jxstore/cms/sku.go +++ b/business/jxstore/cms/sku.go @@ -1182,6 +1182,7 @@ func getCategoryByImg(img ...string) string { // 根据平台返回的分类id,获取本地绑定的映射分类id func getJDCategoryLoadingLocalCategoryReflex(jdCategoryId, jdsCategoryID, ebaiCategoryID, mtwmCategoryID string, jxCategoryId int) (string, string, string, int) { + globals.SugarLogger.Debugf("==getJDCategoryLoadingLocalCategoryReflex=== jxCategoryId=== %d",jxCategoryId) cats, err := dao.GetCategoriesByName(dao.GetDB(), "", jdCategoryId) if len(cats) == 0 || err != nil { return jdsCategoryID, ebaiCategoryID, mtwmCategoryID, 0 @@ -1199,6 +1200,7 @@ func getJDCategoryLoadingLocalCategoryReflex(jdCategoryId, jdsCategoryID, ebaiCa jxCategoryId = cats[0].ID } } + globals.SugarLogger.Debugf("==getJDCategoryLoadingLocalCategoryReflex=== jxCategoryId===222 %d",jxCategoryId) return jdsCategoryID, ebaiCategoryID, mtwmCategoryID, jxCategoryId } @@ -1286,6 +1288,7 @@ func updateOrCreateSkuVendorCategoryMap(db *dao.DaoDB, ctx *jxcontext.Context, n default: jxCategoryIDNumber, _ = payload["categoryID2"].(json.Number).Int64() } + globals.SugarLogger.Debugf("===========categoryID2 1 %d",jxCategoryIDNumber) jxCategoryID = int(jxCategoryIDNumber) } else if payload["categoryID"] != nil && !utils.IsNil(payload["categoryID"]) { vi := reflect.ValueOf(payload["categoryID"]) @@ -1298,6 +1301,7 @@ func updateOrCreateSkuVendorCategoryMap(db *dao.DaoDB, ctx *jxcontext.Context, n default: jxCategoryIDNumber, _ = payload["categoryID"].(json.Number).Int64() } + globals.SugarLogger.Debugf("===========categoryID 2 %d",jxCategoryIDNumber) jxCategoryID = int(jxCategoryIDNumber) } else { jxCategoryID = 0 @@ -1335,6 +1339,7 @@ func updateOrCreateSkuVendorCategoryMap(db *dao.DaoDB, ctx *jxcontext.Context, n flag = true } if jxCategoryID != 0 && jxCategoryID != 291 { + globals.SugarLogger.Debugf("===========categoryID 2 %d",jxCategoryID) dao.ExecuteSQL(dao.GetDB(), `UPDATE sku_name SET category_id = ? WHERE id = ?`, []interface{}{jxCategoryID, nameID}...) flag = true } From 2df2fe9282d0e0abf884923c70c9dcf0e89dc03e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Fri, 31 Mar 2023 19:24:24 +0800 Subject: [PATCH 13/93] 1' --- business/jxstore/cms/sku.go | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/business/jxstore/cms/sku.go b/business/jxstore/cms/sku.go index 43b9e4aff..a23db008e 100644 --- a/business/jxstore/cms/sku.go +++ b/business/jxstore/cms/sku.go @@ -1182,7 +1182,7 @@ func getCategoryByImg(img ...string) string { // 根据平台返回的分类id,获取本地绑定的映射分类id func getJDCategoryLoadingLocalCategoryReflex(jdCategoryId, jdsCategoryID, ebaiCategoryID, mtwmCategoryID string, jxCategoryId int) (string, string, string, int) { - globals.SugarLogger.Debugf("==getJDCategoryLoadingLocalCategoryReflex=== jxCategoryId=== %d",jxCategoryId) + globals.SugarLogger.Debugf("==getJDCategoryLoadingLocalCategoryReflex=== jxCategoryId=== %d", jxCategoryId) cats, err := dao.GetCategoriesByName(dao.GetDB(), "", jdCategoryId) if len(cats) == 0 || err != nil { return jdsCategoryID, ebaiCategoryID, mtwmCategoryID, 0 @@ -1200,7 +1200,7 @@ func getJDCategoryLoadingLocalCategoryReflex(jdCategoryId, jdsCategoryID, ebaiCa jxCategoryId = cats[0].ID } } - globals.SugarLogger.Debugf("==getJDCategoryLoadingLocalCategoryReflex=== jxCategoryId===222 %d",jxCategoryId) + globals.SugarLogger.Debugf("==getJDCategoryLoadingLocalCategoryReflex=== jxCategoryId===222 %d", jxCategoryId) return jdsCategoryID, ebaiCategoryID, mtwmCategoryID, jxCategoryId } @@ -1288,7 +1288,7 @@ func updateOrCreateSkuVendorCategoryMap(db *dao.DaoDB, ctx *jxcontext.Context, n default: jxCategoryIDNumber, _ = payload["categoryID2"].(json.Number).Int64() } - globals.SugarLogger.Debugf("===========categoryID2 1 %d",jxCategoryIDNumber) + globals.SugarLogger.Debugf("===========categoryID2 1 %d", jxCategoryIDNumber) jxCategoryID = int(jxCategoryIDNumber) } else if payload["categoryID"] != nil && !utils.IsNil(payload["categoryID"]) { vi := reflect.ValueOf(payload["categoryID"]) @@ -1301,7 +1301,7 @@ func updateOrCreateSkuVendorCategoryMap(db *dao.DaoDB, ctx *jxcontext.Context, n default: jxCategoryIDNumber, _ = payload["categoryID"].(json.Number).Int64() } - globals.SugarLogger.Debugf("===========categoryID 2 %d",jxCategoryIDNumber) + globals.SugarLogger.Debugf("===========categoryID 2 %d", jxCategoryIDNumber) jxCategoryID = int(jxCategoryIDNumber) } else { jxCategoryID = 0 @@ -1339,7 +1339,7 @@ func updateOrCreateSkuVendorCategoryMap(db *dao.DaoDB, ctx *jxcontext.Context, n flag = true } if jxCategoryID != 0 && jxCategoryID != 291 { - globals.SugarLogger.Debugf("===========categoryID 2 %d",jxCategoryID) + globals.SugarLogger.Debugf("===========categoryID 2 %d", jxCategoryID) dao.ExecuteSQL(dao.GetDB(), `UPDATE sku_name SET category_id = ? WHERE id = ?`, []interface{}{jxCategoryID, nameID}...) flag = true } @@ -2551,6 +2551,8 @@ func CreateUpcSkuByExcelBin(ctx *jxcontext.Context, reader io.Reader, categoryID if !isUpdate { _, err = AddSkuName(ctx, skuName, ctx.GetUserName()) } else { + globals.SugarLogger.Debugf("============sku== %s", utils.Format4Output(sku, false)) + globals.SugarLogger.Debugf("============skuName== %s", utils.Format4Output(skuName, false)) sku.Name = skuName.Name sku.Img = skuName.Img sku.Img2 = skuName.Img2 From 046d2c489d7d79b7b780797cdc7d1a4fe731e987 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Fri, 31 Mar 2023 19:39:24 +0800 Subject: [PATCH 14/93] 1 --- business/jxstore/cms/sku.go | 1 + 1 file changed, 1 insertion(+) diff --git a/business/jxstore/cms/sku.go b/business/jxstore/cms/sku.go index a23db008e..455eea40c 100644 --- a/business/jxstore/cms/sku.go +++ b/business/jxstore/cms/sku.go @@ -2575,6 +2575,7 @@ func CreateUpcSkuByExcelBin(ctx *jxcontext.Context, reader io.Reader, categoryID payload["img3"] = sku.Img3 payload["img4"] = sku.Img4 payload["img5"] = sku.Img5 + globals.SugarLogger.Debugf("payload := %s", utils.Format4Output(payload, false)) updateOrCreateSkuVendorCategoryMap(db, ctx, sku.ID, payload, nil, false) } if err != nil { From c890e5d54d3faa22ca4350ada5cb410ee5da1ac2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Fri, 31 Mar 2023 19:53:12 +0800 Subject: [PATCH 15/93] 1 --- business/jxstore/cms/sku.go | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/business/jxstore/cms/sku.go b/business/jxstore/cms/sku.go index 455eea40c..513dd6343 100644 --- a/business/jxstore/cms/sku.go +++ b/business/jxstore/cms/sku.go @@ -2551,8 +2551,9 @@ func CreateUpcSkuByExcelBin(ctx *jxcontext.Context, reader io.Reader, categoryID if !isUpdate { _, err = AddSkuName(ctx, skuName, ctx.GetUserName()) } else { - globals.SugarLogger.Debugf("============sku== %s", utils.Format4Output(sku, false)) - globals.SugarLogger.Debugf("============skuName== %s", utils.Format4Output(skuName, false)) + var data []*model.SkuVendorCategoryMap + err = dao.GetRows(db, &data, `SELECT * FROM sku_vendor_category_map WHERE name_id = ? AND deleted_at = ?`, []interface{}{sku.ID, utils.DefaultTimeValue}...) + sku.Name = skuName.Name sku.Img = skuName.Img sku.Img2 = skuName.Img2 @@ -2562,19 +2563,27 @@ func CreateUpcSkuByExcelBin(ctx *jxcontext.Context, reader io.Reader, categoryID sku.Unit = skuName.Unit dao.UpdateEntity(db, sku, "Name", "Img", "Img2", "Img3", "Img4", "Img5", "Unit") payload := make(map[string]interface{}, 0) - payload["jdCategoryID"] = utils.Int64ToStr(sku.JdCategoryID) - payload["jdsCategoryID"] = utils.Int2Str(int(sku.JdsStockSwitch)) - payload["ebaiCategoryID"] = "" - payload["mtwmCategoryID"] = "" payload["categoryID2"] = utils.Int2Str(sku.CategoryID) payload["categoryID"] = utils.Int2Str(sku.CategoryID) - payload["ddCategoryID"] = "" payload["descImg"] = sku.DescImg payload["img"] = sku.Img payload["img2"] = sku.Img2 payload["img3"] = sku.Img3 payload["img4"] = sku.Img4 payload["img5"] = sku.Img5 + for _, d := range data { + switch d.VendorID { + case model.VendorIDJD: + payload["jdCategoryID"] = d.VendorCategoryID + case model.VendorIDMTWM: + payload["mtwmCategoryID"] = d.VendorCategoryID + case model.VendorIDJDShop: + case model.VendorIDDD: + payload["ddCategoryID"] = d.VendorCategoryID + case model.VendorIDEBAI: + payload["ebaiCategoryID"] = d.VendorCategoryID + } + } globals.SugarLogger.Debugf("payload := %s", utils.Format4Output(payload, false)) updateOrCreateSkuVendorCategoryMap(db, ctx, sku.ID, payload, nil, false) } From 0b628f09a97e7767336f6be70d2f19f4003e3663 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Fri, 31 Mar 2023 20:10:39 +0800 Subject: [PATCH 16/93] 1 --- business/jxstore/cms/sku.go | 36 ++++++++++++++++-------------------- 1 file changed, 16 insertions(+), 20 deletions(-) diff --git a/business/jxstore/cms/sku.go b/business/jxstore/cms/sku.go index 513dd6343..728b411d2 100644 --- a/business/jxstore/cms/sku.go +++ b/business/jxstore/cms/sku.go @@ -9,7 +9,6 @@ import ( "math" "mime/multipart" "net/http" - "reflect" "regexp" "strconv" "strings" @@ -1278,30 +1277,28 @@ func updateOrCreateSkuVendorCategoryMap(db *dao.DaoDB, ctx *jxcontext.Context, n mtwmCategoryID = payload["mtwmCategoryID"].(string) } if payload["categoryID2"] != nil && !utils.IsNil(payload["categoryID2"]) { - vi := reflect.ValueOf(payload["categoryID2"]) var jxCategoryIDNumber int64 - switch vi.Kind() { - case reflect.String: - jxCategoryIDNumber = utils.Str2Int64(payload["categoryID2"].(string)) - case reflect.Int64, reflect.Int: - jxCategoryIDNumber, _ = payload["categoryID2"].(int64) - default: - jxCategoryIDNumber, _ = payload["categoryID2"].(json.Number).Int64() + if value, ok := payload["categoryID2"].(string); ok { + jxCategoryIDNumber = utils.Str2Int64(value) + } + if value, ok := payload["categoryID2"].(int64); ok { + jxCategoryIDNumber = value + } + if value, ok := payload["categoryID2"].(json.Number); ok { + jxCategoryIDNumber, _ = value.Int64() } - globals.SugarLogger.Debugf("===========categoryID2 1 %d", jxCategoryIDNumber) jxCategoryID = int(jxCategoryIDNumber) } else if payload["categoryID"] != nil && !utils.IsNil(payload["categoryID"]) { - vi := reflect.ValueOf(payload["categoryID"]) var jxCategoryIDNumber int64 - switch vi.Kind() { - case reflect.String: - jxCategoryIDNumber = utils.Str2Int64(payload["categoryID"].(string)) - case reflect.Int64, reflect.Int: - jxCategoryIDNumber, _ = payload["categoryID"].(int64) - default: - jxCategoryIDNumber, _ = payload["categoryID"].(json.Number).Int64() + if value, ok := payload["categoryID"].(string); ok { + jxCategoryIDNumber = utils.Str2Int64(value) + } + if value, ok := payload["categoryID"].(int64); ok { + jxCategoryIDNumber = value + } + if value, ok := payload["categoryID"].(json.Number); ok { + jxCategoryIDNumber, _ = value.Int64() } - globals.SugarLogger.Debugf("===========categoryID 2 %d", jxCategoryIDNumber) jxCategoryID = int(jxCategoryIDNumber) } else { jxCategoryID = 0 @@ -1339,7 +1336,6 @@ func updateOrCreateSkuVendorCategoryMap(db *dao.DaoDB, ctx *jxcontext.Context, n flag = true } if jxCategoryID != 0 && jxCategoryID != 291 { - globals.SugarLogger.Debugf("===========categoryID 2 %d", jxCategoryID) dao.ExecuteSQL(dao.GetDB(), `UPDATE sku_name SET category_id = ? WHERE id = ?`, []interface{}{jxCategoryID, nameID}...) flag = true } From 7f4596a0418ad656852bf99c95a27fe319dac3b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Fri, 31 Mar 2023 20:18:59 +0800 Subject: [PATCH 17/93] 1 --- business/jxstore/misc/misc.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/business/jxstore/misc/misc.go b/business/jxstore/misc/misc.go index 62176f0ca..a4016209f 100644 --- a/business/jxstore/misc/misc.go +++ b/business/jxstore/misc/misc.go @@ -253,11 +253,11 @@ func Init() { orderman.FixedOrderManager.AmendMissingOrders(jxcontext.AdminCtx, []int{model.VendorIDJD, model.VendorIDMTWM, model.VendorIDEBAI, model.VendorIDDD}, 0, curDate, curDate, true, true) }, 5*time.Second, 10*time.Minute) - // 抖音更新门店商品 + // 抖音更新门店商品 ,接口收费暂不使用 if beego.BConfig.RunMode != "jxgy" { - ScheduleTimerFunc("RefreshSyncSkuList", func() { - syncStoreSkuTiktok() - }, []string{"13:00:00"}) + //ScheduleTimerFunc("RefreshSyncSkuList", func() { + // syncStoreSkuTiktok() + //}, []string{"13:00:00"}) } //刷新抖音门店token From 87620e87b8c361e7c6d5ea8c58c1516090bc2f80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Sat, 1 Apr 2023 00:08:03 +0800 Subject: [PATCH 18/93] 1 --- business/jxstore/cms/sku.go | 3 --- 1 file changed, 3 deletions(-) diff --git a/business/jxstore/cms/sku.go b/business/jxstore/cms/sku.go index 728b411d2..8567af23b 100644 --- a/business/jxstore/cms/sku.go +++ b/business/jxstore/cms/sku.go @@ -1181,7 +1181,6 @@ func getCategoryByImg(img ...string) string { // 根据平台返回的分类id,获取本地绑定的映射分类id func getJDCategoryLoadingLocalCategoryReflex(jdCategoryId, jdsCategoryID, ebaiCategoryID, mtwmCategoryID string, jxCategoryId int) (string, string, string, int) { - globals.SugarLogger.Debugf("==getJDCategoryLoadingLocalCategoryReflex=== jxCategoryId=== %d", jxCategoryId) cats, err := dao.GetCategoriesByName(dao.GetDB(), "", jdCategoryId) if len(cats) == 0 || err != nil { return jdsCategoryID, ebaiCategoryID, mtwmCategoryID, 0 @@ -1199,7 +1198,6 @@ func getJDCategoryLoadingLocalCategoryReflex(jdCategoryId, jdsCategoryID, ebaiCa jxCategoryId = cats[0].ID } } - globals.SugarLogger.Debugf("==getJDCategoryLoadingLocalCategoryReflex=== jxCategoryId===222 %d", jxCategoryId) return jdsCategoryID, ebaiCategoryID, mtwmCategoryID, jxCategoryId } @@ -2580,7 +2578,6 @@ func CreateUpcSkuByExcelBin(ctx *jxcontext.Context, reader io.Reader, categoryID payload["ebaiCategoryID"] = d.VendorCategoryID } } - globals.SugarLogger.Debugf("payload := %s", utils.Format4Output(payload, false)) updateOrCreateSkuVendorCategoryMap(db, ctx, sku.ID, payload, nil, false) } if err != nil { From b18fca48fac2e0c6791154012467993616c493c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Sat, 1 Apr 2023 00:35:11 +0800 Subject: [PATCH 19/93] 1 --- business/jxstore/cms/sku.go | 40 +++++++++++++++++++++++++------------ 1 file changed, 27 insertions(+), 13 deletions(-) diff --git a/business/jxstore/cms/sku.go b/business/jxstore/cms/sku.go index 8567af23b..00c16d2fc 100644 --- a/business/jxstore/cms/sku.go +++ b/business/jxstore/cms/sku.go @@ -1260,41 +1260,53 @@ func updateOrCreateSkuVendorCategoryMap(db *dao.DaoDB, ctx *jxcontext.Context, n } } else { if payload["jdCategoryID"] != nil { - jdCategoryId = payload["jdCategoryID"].(string) - } else { - jdCategoryId = getCategoryByName(payload["name"].(string)) + value, ok := payload["jdCategoryID"].(string) + if ok && value != "" && value != "0" { + jdCategoryId = payload["jdCategoryID"].(string) + } else { + jdCategoryId = getCategoryByName(payload["name"].(string)) + } } if payload["jdsCategoryID"] != nil { - jdsCategoryID = payload["jdsCategoryID"].(string) + value, ok := payload["jdCategoryID"].(string) + if ok && value != "" && value != "0" { + jdsCategoryID = payload["jdsCategoryID"].(string) + } } if payload["ebaiCategoryID"] != nil { - ebaiCategoryID = payload["ebaiCategoryID"].(string) + value, ok := payload["ebaiCategoryID"].(string) + if ok && value != "" && value != "0" { + ebaiCategoryID = payload["ebaiCategoryID"].(string) + } } if payload["mtwmCategoryID"] != nil { - mtwmCategoryID = payload["mtwmCategoryID"].(string) + value, ok := payload["mtwmCategoryID"].(string) + if ok && value != "" && value != "0" { + mtwmCategoryID = payload["mtwmCategoryID"].(string) + } } if payload["categoryID2"] != nil && !utils.IsNil(payload["categoryID2"]) { var jxCategoryIDNumber int64 - if value, ok := payload["categoryID2"].(string); ok { + if value, ok := payload["categoryID2"].(string); ok && value != "" { jxCategoryIDNumber = utils.Str2Int64(value) } - if value, ok := payload["categoryID2"].(int64); ok { + if value, ok := payload["categoryID2"].(int64); ok && value != 0 { jxCategoryIDNumber = value } - if value, ok := payload["categoryID2"].(json.Number); ok { + if value, ok := payload["categoryID2"].(json.Number); ok && value != "" { jxCategoryIDNumber, _ = value.Int64() } jxCategoryID = int(jxCategoryIDNumber) } else if payload["categoryID"] != nil && !utils.IsNil(payload["categoryID"]) { var jxCategoryIDNumber int64 - if value, ok := payload["categoryID"].(string); ok { + if value, ok := payload["categoryID"].(string); ok && value != "" { jxCategoryIDNumber = utils.Str2Int64(value) } - if value, ok := payload["categoryID"].(int64); ok { + if value, ok := payload["categoryID"].(int64); ok && value != 0 { jxCategoryIDNumber = value } - if value, ok := payload["categoryID"].(json.Number); ok { + if value, ok := payload["categoryID"].(json.Number); ok && value != "" { jxCategoryIDNumber, _ = value.Int64() } jxCategoryID = int(jxCategoryIDNumber) @@ -1307,7 +1319,9 @@ func updateOrCreateSkuVendorCategoryMap(db *dao.DaoDB, ctx *jxcontext.Context, n } if payload["ddCategoryID"] != nil { - ddCategoryID = payload["ddCategoryID"].(string) + if value, ok := payload["ddCategoryID"].(string); ok && value != "" { + ddCategoryID = value + } } else { ddCategoryID = getCategoryByImg(payload["descImg"].(string), payload["img"].(string), payload["img2"].(string), payload["img3"].(string), payload["img4"].(string), payload["img5"].(string)) } From afcee6fe387e92a8485da13cce956e91457b24c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Mon, 3 Apr 2023 09:22:09 +0800 Subject: [PATCH 20/93] 1 --- business/auth2/auth2.go | 2 -- business/jxcallback/auto_delivery/auto_delivery.go | 1 - business/jxcallback/orderman/fake_jd_order.go | 1 - business/jxcallback/scheduler/basesch/basesch_ext.go | 2 +- business/model/dao/dao_order.go | 1 - business/msghub/msghub.go | 2 -- business/netspider/netspider.go | 1 - business/partner/delivery/delivery.go | 1 - business/partner/printer/xpyun/xpyun.go | 4 ---- business/partner/purchase/ebai/store.go | 4 ---- business/partner/purchase/jd/sku2.go | 4 ---- business/partner/purchase/jdshop/store_sku.go | 1 - business/partner/purchase/jx/localjx/order.go | 3 +-- business/partner/purchase/tiktok_store/callback.go | 2 -- business/partner/purchase/tiktok_store/order.go | 1 - business/partner/purchase/tiktok_store/store.go | 2 -- business/partner/purchase/tiktok_store/store_sku2_utils.go | 1 - business/partner/purchase/weimob/wsc/order.go | 1 - 18 files changed, 2 insertions(+), 32 deletions(-) diff --git a/business/auth2/auth2.go b/business/auth2/auth2.go index 1ab4c6c7f..401a05efd 100644 --- a/business/auth2/auth2.go +++ b/business/auth2/auth2.go @@ -5,7 +5,6 @@ import ( "encoding/base64" "encoding/json" "errors" - "git.rosy.net.cn/jx-callback/globals" "regexp" "strings" "time" @@ -286,7 +285,6 @@ func LoginInternal(ctx *Context, authType, authID, authIDType, authSecret string //如果是小程序 if authType == AuthTypeWXMini { // || authType == AuthTypeWXApp 此处AuthTypeWXApp没用上 appID := strings.Split(authSecret, ",")[0] - globals.SugarLogger.Debugf("authSecret=%s,appID=%s", authSecret, appID) // 菜市商家 // // // 京西商城 if appID == model.JXC4BusinessAppId || appID == "wx2d6949f724b2541d" || appID == "wx18111a41fd17f24f" || appID == model.JXC4AppId { //菜市或者果园 if authInfo.AuthBindInfo.UserID != "" { diff --git a/business/jxcallback/auto_delivery/auto_delivery.go b/business/jxcallback/auto_delivery/auto_delivery.go index c9030077e..a01da9ba7 100644 --- a/business/jxcallback/auto_delivery/auto_delivery.go +++ b/business/jxcallback/auto_delivery/auto_delivery.go @@ -148,7 +148,6 @@ func AutoSettingFakeDelivery() { break } for riderName, riderPhone := range riderListInfo[riderKey][randTime] { - globals.SugarLogger.Debugf("SelfDeliveringAndUpdateStatus : %s", v.VendorOrderID) if err := defsch.FixedScheduler.SelfDeliveringAndUpdateStatus(jxcontext.AdminCtx, v.VendorOrderID, v.VendorID, jxcontext.AdminCtx.GetUserName(), riderName, riderPhone); err != nil { globals.SugarLogger.Errorf("自动发货错误:[%v]", err) break diff --git a/business/jxcallback/orderman/fake_jd_order.go b/business/jxcallback/orderman/fake_jd_order.go index f0ea22f67..04b370f42 100644 --- a/business/jxcallback/orderman/fake_jd_order.go +++ b/business/jxcallback/orderman/fake_jd_order.go @@ -66,7 +66,6 @@ func notifyWxNewFakeJdOrder(order *model.GoodsOrder, storeID int) (err error) { } title := fmt.Sprintf("你有到家菜市新订单%d", order.OrderSeq) content := sb.String() - // globals.SugarLogger.Debugf("notifyWxNewFakeJdOrder, orderID:%s, content:%s", order.VendorOrderID, content) _, err = weixinmsg.SendStoreMessage(jxcontext.AdminCtx, title, content, []int{storeID}, nil, "", model.MessageTypeStore, true, true) return err } diff --git a/business/jxcallback/scheduler/basesch/basesch_ext.go b/business/jxcallback/scheduler/basesch/basesch_ext.go index 3f00fa775..cb38933ee 100644 --- a/business/jxcallback/scheduler/basesch/basesch_ext.go +++ b/business/jxcallback/scheduler/basesch/basesch_ext.go @@ -99,7 +99,7 @@ func (c *BaseScheduler) PickupGoodsAndUpdateStatus(ctx *jxcontext.Context, vendo err = c.PickupGoods(order, flag, userName) if err == nil { order.Status = model.OrderStatusFinishedPickup - if err = partner.CurOrderManager.UpdateOrderStatusAndDeliveryFlag(order); err == nil { + if err = partner.CurOrderManager.UpdateOrderStatusAndDeliveryFlag(order); err != nil { return err } } diff --git a/business/model/dao/dao_order.go b/business/model/dao/dao_order.go index 8960542bd..3ea92e52b 100644 --- a/business/model/dao/dao_order.go +++ b/business/model/dao/dao_order.go @@ -943,7 +943,6 @@ func GetOrders(db *DaoDB, ids []int64, isIncludeSku, isIncludeFake bool, fromDat } else { sqlWhere += " AND IF(t1.jx_store_id != 0, t1.jx_store_id, t1.store_id) IN (" + GenQuestionMarks(len(storeIDs)) + ")" sqlParams = append(sqlParams, storeIDs) - //globals.SugarLogger.Debugf("sqlParams storeIDs========%d", storeIDs) } } } diff --git a/business/msghub/msghub.go b/business/msghub/msghub.go index 14a8efce5..88bd3451f 100644 --- a/business/msghub/msghub.go +++ b/business/msghub/msghub.go @@ -152,7 +152,6 @@ func GetMsg(ctx *jxcontext.Context, storeID int, lastOrderTime time.Time, lastOr } close(chan2Listen) } else { - globals.SugarLogger.Debugf("GetMsg vendorOrderIDs:%s", utils.Format4Output(vendorOrderIDs, true)) msg.MsgData = len(vendorOrderIDs) } storeMap, _ := permission.GetUserStoresResultMap(ctx.GetUserID()) @@ -215,7 +214,6 @@ func OnNewWait4ApproveAfsOrder(order *model.AfsOrder) { } func OnKeyAfsOrderStatusChanged(order *model.AfsOrder) { - globals.SugarLogger.Debugf("msghub OnKeyAfsOrderStatusChanged, order:%s", utils.Format4Output(order, true)) utils.CallFuncAsync(func() { msgChan <- &ServerMsg{ Type: ServerMsgKeyAfsOrderStatusChanged, diff --git a/business/netspider/netspider.go b/business/netspider/netspider.go index f3a9ca94b..e3bc59780 100644 --- a/business/netspider/netspider.go +++ b/business/netspider/netspider.go @@ -199,7 +199,6 @@ func GetAndStoreCitiesShops(ctx *jxcontext.Context, vendorIDs []int, cityCodeLis } }() for _, v := range shopList { - globals.SugarLogger.Debugf("GetAndStoreCitiesShops cityCode:%d, 平台:%s, shopID:%s, districtCode:%d", cityCode, model.VendorChineseNames[v.VendorID], v.VendorStoreID, v.DistrictCode) if v.DistrictCode > 0 { tmpShop := *v dao.DeleteEntity(db, &tmpShop, model.FieldVendorStoreID, model.FieldVendorID) diff --git a/business/partner/delivery/delivery.go b/business/partner/delivery/delivery.go index dc494a84c..e3d1d6ebc 100644 --- a/business/partner/delivery/delivery.go +++ b/business/partner/delivery/delivery.go @@ -29,7 +29,6 @@ func CallCreateWaybillPolicy(deliveryFee, maxDeliveryFee int64, order *model.Goo if deliveryFee > maxDeliveryFee { errStr := fmt.Sprintf("超最高限价, 所需运费:%s, 最高限价:%s", jxutils.IntPrice2StandardCurrencyString(deliveryFee), jxutils.IntPrice2StandardCurrencyString(maxDeliveryFee)) err = fmt.Errorf(errStr) - globals.SugarLogger.Debugf("CallCreateWaybillPolicy orderID:%s, 平台:%s运单,创建出错:%s", order.VendorOrderID, model.VendorChineseNames[waybillVendorID], errStr) } return err } diff --git a/business/partner/printer/xpyun/xpyun.go b/business/partner/printer/xpyun/xpyun.go index 6d602d50e..57f22556a 100644 --- a/business/partner/printer/xpyun/xpyun.go +++ b/business/partner/printer/xpyun/xpyun.go @@ -34,7 +34,6 @@ func (c *PrinterHandler) GetVendorID() int { func (c *PrinterHandler) PrintMsg(ctx *jxcontext.Context, sn, copies, voiceType, msgContent string) (printerStatus *partner.PrinterStatus, err error) { if sn != "" { if globals.EnableStoreWrite { - globals.SugarLogger.Debugf("printMsg voiceType====%s", voiceType) printOrderID, err1 := api.XpyunAPI.Print(&xpyunapi.PrintRequest{ Sn: sn, Content: msgContent, @@ -100,9 +99,7 @@ func (c *PrinterHandler) RebindPrinter(ctx *jxcontext.Context, lastBindResult *p } func (c *PrinterHandler) PrintOrder(ctx *jxcontext.Context, store *model.Store, storeDetail *dao.StoreDetail, order *model.GoodsOrder, printType string, asfOrder *model.AfsOrder) (printerStatus *partner.PrinterStatus, err error) { - globals.SugarLogger.Debugf("打印order参数:%s", utils.Format4Output(order, false)) if len(order.Skus) == 0 { - globals.SugarLogger.Debugf("order.sku为空") return } content := "" @@ -143,7 +140,6 @@ func (c *PrinterHandler) PrintCancelOrRefundOrder(ctx *jxcontext.Context, printT } else { content = c.getCancelOrRefundOrderContentBig(order, printType, storeDetail) } - globals.SugarLogger.Debugf("PrintCancelOrRefundOrder content=====%s", content) if content == "" { return nil, nil } diff --git a/business/partner/purchase/ebai/store.go b/business/partner/purchase/ebai/store.go index c6645f625..7320d14d1 100644 --- a/business/partner/purchase/ebai/store.go +++ b/business/partner/purchase/ebai/store.go @@ -270,7 +270,6 @@ func (p *PurchaseHandler) UpdateStore(db *dao.DaoDB, storeID int, userName strin if err == nil { if shopID > 0 { err = p.UpdateStoreCustomID(jxcontext.AdminCtx, "", store.VendorStoreID, int64(shopID)) - globals.SugarLogger.Debugf("UpdateStore store.VendorStoreID====%s,shopID====%s", store.VendorStoreID, shopID) } else if shopID == 0 { // todo remove out shop id } @@ -346,7 +345,6 @@ func (p *PurchaseHandler) RefreshAllStoresID(ctx *jxcontext.Context, parentTask fBaiduIDs, fShopIDs, err1 := FilterStoreRel(baiduShopIDs) globals.SugarLogger.Debugf("RefreshAllStoresID FilterStoreRel fBaiduIDs====%d fShopIDs====%d err====%v", fBaiduIDs, fShopIDs, err1) err = api.EbaiAPI.ShopIDBatchUpdate(fBaiduIDs, fShopIDs) - globals.SugarLogger.Debugf("RefreshAllStoresID baiduShopIDs====%s,shopIDs====%s", baiduShopIDs, shopIDs) } return nil, err }, stores) @@ -373,7 +371,6 @@ func FilterStoreRel(baiduShopIDs []string) (fBaiduShopIDs []string, fShopIDs []s return nil, nil, err } localRel, err := dao.GetStoreDetailByVendorStoreID(dao.GetDB(), k, model.VendorIDEBAI, "") - globals.SugarLogger.Debugf("get localRel err===%v", err) if remoteRel.ShopID != utils.Int2Str(localRel.ID) { fBaiduShopIDs = append(fBaiduShopIDs, k) fShopIDs = append(fShopIDs, utils.Int2Str(localRel.ID)) @@ -673,7 +670,6 @@ func (c *PurchaseHandler) UpdateStoreCustomID(ctx *jxcontext.Context, vendorOrgC if err1 != nil { globals.SugarLogger.Debugf("UpdateStoreCustomID err1====%v", err1) } - globals.SugarLogger.Debugf("UpdateStoreCustomID fBaiduIDs====%s fShopIDs====%d err1", fBaiduIDs, fShopIDs) err = api.EbaiAPI.ShopIDBatchUpdate(fBaiduIDs, fShopIDs) //err = api.EbaiAPI.ShopIDBatchUpdate([]string{vendorStoreID}, []string{utils.Int64ToStr(storeID)}) } diff --git a/business/partner/purchase/jd/sku2.go b/business/partner/purchase/jd/sku2.go index b743af333..9a74f221a 100644 --- a/business/partner/purchase/jd/sku2.go +++ b/business/partner/purchase/jd/sku2.go @@ -108,10 +108,6 @@ func (p *PurchaseHandler) DeleteCategory2(ctx *jxcontext.Context, vendorOrgCode, func (p *PurchaseHandler) ReorderCategories2(ctx *jxcontext.Context, vendorOrgCode, vendorParentCatID string, vendorCatIDList []string) (err error) { if globals.EnableJdStoreWrite { err = getAPI(vendorOrgCode).ChangeShopCategoryOrder(utils.Str2Int64WithDefault(vendorParentCatID, 0), utils.StringSlice2Int64(vendorCatIDList)) - globals.SugarLogger.Debugf("vendorInfo.vendorOrgCode=== %s", vendorOrgCode) - globals.SugarLogger.Debugf("vendorInfo.vendorParentCatID=== %s", vendorParentCatID) - globals.SugarLogger.Debugf("vendorInfo.vendorCatIDList=== %s", vendorCatIDList) - globals.SugarLogger.Debugf("ReorderCategories2 === %v", err) } return err } diff --git a/business/partner/purchase/jdshop/store_sku.go b/business/partner/purchase/jdshop/store_sku.go index f4dd476ba..14eec353b 100644 --- a/business/partner/purchase/jdshop/store_sku.go +++ b/business/partner/purchase/jdshop/store_sku.go @@ -297,7 +297,6 @@ func (p *PurchaseHandler) CreateStoreSkus(ctx *jxcontext.Context, storeID int, v } func (p *PurchaseHandler) UpdateStoreSkus(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeSkuList []*dao.StoreSkuSyncInfo) (failedList []*partner.StoreSkuInfoWithErr, err error) { - globals.SugarLogger.Debugf("是不是正儿八经的京东商城%s", "UpdateStoreSkus") if globals.EnableJdShopWrite && vendorStoreID == model.JdShopMainVendorStoreID { if vendorStoreID == model.JdShopMainVendorStoreID { for _, v := range storeSkuList { diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index f0d5fb8a0..bcc1b1600 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -252,7 +252,6 @@ func CreateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64, outJxOrder.OrderID = jxutils.GenOrderNo() } order, err2 := jxOrder2GoodsOrder(ctx, outJxOrder, deliveryAddress, "", IsDeliverySelf, couponIDs) - globals.SugarLogger.Debugf("order order %s", utils.Format4Output(order, false)) if err = err2; err == nil { order.AddressID = addressID @@ -839,7 +838,7 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64 if jxOrder.OrderType != model.OrderTypeMatter || (jxOrder.OrderType == model.OrderTypeMatter && fromStoreID == -1) { outJxOrder.Skus = append(outJxOrder.Skus, jxSku) outJxOrder.OrderPrice += int64(jxSku.Count) * jxSku.SalePrice - } else { //以下else为物料订单袋子金额和数量处理 + } else { //以下else为物料订单袋子金额和数量处理 if !result.Flag { //只要flag是false就按原价申请,是true再按订单量 outJxOrder.Skus = append(outJxOrder.Skus, jxSku) outJxOrder.OrderPrice += int64(jxSku.Count) * jxSku.SalePrice diff --git a/business/partner/purchase/tiktok_store/callback.go b/business/partner/purchase/tiktok_store/callback.go index f1ae1889c..bee40db01 100644 --- a/business/partner/purchase/tiktok_store/callback.go +++ b/business/partner/purchase/tiktok_store/callback.go @@ -28,7 +28,6 @@ const ( func OnOrderMsg(msgId string, msg interface{}) (response *tiktokShop.CallbackResponse) { if CurPurchaseHandler != nil { orderId, shopId, _ := api.TiktokStore.GetCallbackOrderId(msgId, msg) - globals.SugarLogger.Debugf("order_id %s,%d", orderId, shopId) orderDetail, err := GetTiktokApi(utils.Int64ToStr(shopId), 0, "").GetTiktokOrderDetail(orderId) if err != nil { return tiktokShop.Err2CallbackResponse(err, "") @@ -78,7 +77,6 @@ func HttpToGuoYuan(param map[string]interface{}, requestType string) (*http.Resp } } body := strings.NewReader(string(paramData)) - globals.SugarLogger.Debugf("HttpToGuoYuan paramData====%s", utils.Format4Output(paramData, false)) url := "" switch requestType { case CaiShiPushGyTagOrder: // 订单相关 diff --git a/business/partner/purchase/tiktok_store/order.go b/business/partner/purchase/tiktok_store/order.go index de7b1f0f5..e9d78fc8a 100644 --- a/business/partner/purchase/tiktok_store/order.go +++ b/business/partner/purchase/tiktok_store/order.go @@ -192,7 +192,6 @@ func (p *PurchaseHandler) getOrder(vendorOrgCode, vendorOrderID, vendorStoreID s // 预订单还是快速达 localStore, err := dao.GetStoreDetailByVendorStoreID(dao.GetDB(), vendorStoreIdRelly, model.VendorIDDD, vendorOrgCode) if err != nil || localStore == nil || localStore.ID == 0 { - globals.SugarLogger.Debugf("平台门店未绑定到京西系统 %s", err.Error()) return nil, nil, err } diff --git a/business/partner/purchase/tiktok_store/store.go b/business/partner/purchase/tiktok_store/store.go index 2f0f16d6b..a6cafc6a3 100644 --- a/business/partner/purchase/tiktok_store/store.go +++ b/business/partner/purchase/tiktok_store/store.go @@ -494,7 +494,6 @@ func CreateFreightTemplate(storeCode, deliveryFeeDeductionSill int) (int64, erro //}, //} } - globals.SugarLogger.Debugf("CreateFreightTemplate 直辖市code====%d", param.Template.ProductCity) if deliveryFeeDeductionSill != 0 { param.Template.TemplateName += "满减包邮模板" param.Columns = []freightTemplate_create_request.ColumnsItem{{ @@ -601,7 +600,6 @@ func CreateBindFreeShipTemplate(vendorOrgCode string, storeID int, shipFee int64 } else { param.Template.ProductCity = int64(storeDetail.CityCode) } - globals.SugarLogger.Debugf("CreateBindFreeShipTemplate 直辖市code=%d", param.Template.ProductCity) if resp, err := getAPI(vendorOrgCode, 0, "").FreightTemplateCreate(param); err != nil { return errors.New(fmt.Sprintf("平台门店(%s) 京西门店(%d) 创建包邮模板失败:%v,根据提示处理", storeDetail.VendorStoreID, storeID, err)) } else { diff --git a/business/partner/purchase/tiktok_store/store_sku2_utils.go b/business/partner/purchase/tiktok_store/store_sku2_utils.go index 48e6b330c..ff638af00 100644 --- a/business/partner/purchase/tiktok_store/store_sku2_utils.go +++ b/business/partner/purchase/tiktok_store/store_sku2_utils.go @@ -498,7 +498,6 @@ func makeMainProductSku(db *dao.DaoDB, api *tiktokShop.API, storeSku *dao.StoreS } func getTiktokBrandId(api *tiktokShop.API, db *dao.DaoDB, upc, upcBrandName, upcTiktokBrandId string, categoryLeafId int64) (int64, error) { - globals.SugarLogger.Debugf("upc:%s,upcBrandName:%s,upcTiktokBrandId:%s,categoryLeafId:%d", upc, upcBrandName, upcTiktokBrandId, categoryLeafId) if upc == "" { // 默认品牌京西菜市 596120136 return 596120136, nil } else if upc != "" && upcBrandName != "" && upcTiktokBrandId != "" { diff --git a/business/partner/purchase/weimob/wsc/order.go b/business/partner/purchase/weimob/wsc/order.go index 787c3a925..8c88c141d 100644 --- a/business/partner/purchase/weimob/wsc/order.go +++ b/business/partner/purchase/weimob/wsc/order.go @@ -275,7 +275,6 @@ func (p *PurchaseHandler) setStoreOrderSeq(order *model.GoodsOrder) { db := dao.GetDB() if err := dao.GetRow(db, &count, sql, order.StoreID, dateBegin, model.VendorIDWSC); err == nil { order.OrderSeq = count + 1 - globals.SugarLogger.Debugf("setStoreOrderSeq orderID:%s, dateBegin:%s, orderSeq:%d", order.VendorOrderID, utils.Time2Str(dateBegin), order.OrderSeq) } else { globals.SugarLogger.Errorf("setStoreOrderSeq orderID:%s failed with error:%v", order.VendorOrderID, err) } From 30ed11db6c54ac8b6b5d5ead1f5872d08da57f30 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Mon, 3 Apr 2023 14:32:34 +0800 Subject: [PATCH 21/93] 1 --- .../scheduler/basesch/basesch_ext.go | 4 +- business/jxstore/cms/store.go | 48 +++++++++++++++++++ business/jxstore/permission/permission.go | 2 + 3 files changed, 53 insertions(+), 1 deletion(-) diff --git a/business/jxcallback/scheduler/basesch/basesch_ext.go b/business/jxcallback/scheduler/basesch/basesch_ext.go index cb38933ee..7f2f17d26 100644 --- a/business/jxcallback/scheduler/basesch/basesch_ext.go +++ b/business/jxcallback/scheduler/basesch/basesch_ext.go @@ -78,10 +78,12 @@ func (c *BaseScheduler) SelfDeliveredAndUpdateStatus(ctx *jxcontext.Context, ven err = c.Swtich2SelfDelivered(order, userName) } if err == nil { - // order.Status = model.OrderStatusFinished // todo 是否需要强制设置完成状态? + order.Status = model.OrderStatusFinished // todo 是否需要强制设置完成状态? if err = dao.SetOrderFlag(dao.GetDB(), ctx.GetUserName(), order.VendorOrderID, order.VendorID, model.OrderFlagMaskSetDelivered); err == nil { return err } + order.OrderFinishedAt = time.Now() + dao.UpdateEntity(dao.GetDB(), order, "Status", "OrderFinishedAt") } } return err diff --git a/business/jxstore/cms/store.go b/business/jxstore/cms/store.go index 61189f6cc..aaa76d4f6 100644 --- a/business/jxstore/cms/store.go +++ b/business/jxstore/cms/store.go @@ -600,6 +600,7 @@ func GetStores(ctx *jxcontext.Context, keyword string, params map[string]interfa } } } + globals.SugarLogger.Debugf("===============params := %s", utils.Format4Output(params, false)) sql, sqlParams, _, _, err := getStoresSql(ctx, keyword, params, orderTimeFrom, orderTimeTo) if err != nil { return nil, err @@ -1078,6 +1079,7 @@ func UpdateStore(ctx *jxcontext.Context, storeID int, payload map[string]interfa } } + globals.SugarLogger.Debugf("===========valid := %s", utils.Format4Output(valid, false)) if len(valid) > 0 { if globals.IsAddEvent { mapBefore := refutil.FindMapAndStructMixed(valid, beforStore) @@ -1125,10 +1127,56 @@ func UpdateStore(ctx *jxcontext.Context, storeID int, payload map[string]interfa } } else { globals.SugarLogger.Debugf("UpdateStore track:%s, store:%s", ctx.GetTrackInfo(), utils.Format4Output(store, true)) + } + if status == -2 { + } return num, err } +// updateVendorStoreStatusAndDeliveryStatus 当门店被禁用时,将三方平台和三方配送全部关闭 +//func updateVendorStoreStatusAndDeliveryStatus(ctx *jxcontext.Context, storeId int) error { +// var ( +// db = dao.GetDB() +// ) +// // 获取门店绑定三方平台列表 +// storeMap, err := dao.GetStoresMapList(db, nil, []int{storeId}, nil, 0, 0, "", "", "") +// if err != nil { +// return err +// } +// // 获取门店绑定的配送凭条 +// storeCouriers, err := dao.GetOpenedStoreCouriersByStoreID(db, storeId, -1) +// if err != nil { +// return err +// } +// +// work := func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { +// var errList []error +// step := batchItemList[0].(int) +// switch step { +// case 0: // 同步修改门店营业撞他 +// // 京东关店,本地店铺状态修改 +// // 美团关店,本地店铺状态修改 +// // 饿百关店,本地店铺状态修改 +// // 抖音关店,本地店铺状态修改 +// case 1: // 同步修改门店配送状态 +// // 美团跑腿配送(没有门店状态修改,直接修改本店) +// // 蜂鸟配送,关闭(有) +// // 达达配送,关闭(有) +// // uu跑腿,关闭(不涉及门店概念,直接本地取消绑定信息) +// } +// return errList, nil +// } +// tasksch.NewParallelTask( +// "禁用门店,修改平台门店状态", +// tasksch.NewParallelConfig().SetParallelCount(1).SetIsContinueWhenError(false), +// ctx, +// work, +// []int{0, 1}, +// ) +// +//} + func notifyStoreOperatorChanged(ctx *jxcontext.Context, storeID int, operatorRoleName, phone string, newPhone interface{}) { if phone != "" && newPhone != nil { db := dao.GetDB() diff --git a/business/jxstore/permission/permission.go b/business/jxstore/permission/permission.go index 04bea7b00..46cdff96d 100644 --- a/business/jxstore/permission/permission.go +++ b/business/jxstore/permission/permission.go @@ -3,6 +3,7 @@ package permission import ( "fmt" "git.rosy.net.cn/jx-callback/business/jxutils/tasksch" + "git.rosy.net.cn/jx-callback/globals" "strings" "time" @@ -352,6 +353,7 @@ func GetUserStoresResultMap(userID string) (resultMap map[int]int, err error) { } } userRoles, err2 := dao.GetUserRole2(db, []string{userID}, nil) + globals.SugarLogger.Debugf("======userRoles:%s", utils.Format4Output(userRoles, false)) err = err2 for _, v := range userRoles { var ( From 015d14ee0cb70fbe2e6bf9304c871d5947a6c69a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Mon, 3 Apr 2023 15:07:19 +0800 Subject: [PATCH 22/93] 1 --- .../jxcallback/scheduler/basesch/basesch_ext.go | 2 +- business/jxstore/cms/store.go | 15 +++++++++++++++ business/jxstore/permission/permission.go | 4 +++- 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/business/jxcallback/scheduler/basesch/basesch_ext.go b/business/jxcallback/scheduler/basesch/basesch_ext.go index 7f2f17d26..bcc619432 100644 --- a/business/jxcallback/scheduler/basesch/basesch_ext.go +++ b/business/jxcallback/scheduler/basesch/basesch_ext.go @@ -79,7 +79,7 @@ func (c *BaseScheduler) SelfDeliveredAndUpdateStatus(ctx *jxcontext.Context, ven } if err == nil { order.Status = model.OrderStatusFinished // todo 是否需要强制设置完成状态? - if err = dao.SetOrderFlag(dao.GetDB(), ctx.GetUserName(), order.VendorOrderID, order.VendorID, model.OrderFlagMaskSetDelivered); err == nil { + if err = dao.SetOrderFlag(dao.GetDB(), ctx.GetUserName(), order.VendorOrderID, order.VendorID, model.OrderFlagMaskSetDelivered); err != nil { return err } order.OrderFinishedAt = time.Now() diff --git a/business/jxstore/cms/store.go b/business/jxstore/cms/store.go index aaa76d4f6..678aa6d4e 100644 --- a/business/jxstore/cms/store.go +++ b/business/jxstore/cms/store.go @@ -562,9 +562,16 @@ func setStoreMapInfo(ctx *jxcontext.Context, db *dao.DaoDB, storesInfo *StoresIn // todo 门店绑定信息可以考虑以数组形式返回,而不是现在这样 func GetStores(ctx *jxcontext.Context, keyword string, params map[string]interface{}, offset, pageSize int, orderTimeFrom, orderTimeTo time.Time, orderCountFrom, orderCountTo int) (retVal *StoresInfo, err error) { briefLevel := int(utils.ForceInterface2Int64(params["briefLevel"])) + if ctx.GetUserID() == "6D914A8BB71611EDB37F525400E86DC0" { + globals.SugarLogger.Debugf("======params:%s", utils.Format4Output(params, false)) + } //权限 if permission.IsRoled(ctx) { if storeIDsMap, err := permission.GetUserStoresResultMap(ctx.GetUserID()); err == nil { + if ctx.GetUserID() == "6D914A8BB71611EDB37F525400E86DC0" { + globals.SugarLogger.Debugf("======storeIDsMap:%s", utils.Format4Output(storeIDsMap, false)) + } + var storeIDs2 []int if params["storeIDs"] != nil { var storeIDs []int @@ -636,8 +643,16 @@ func GetStores(ctx *jxcontext.Context, keyword string, params map[string]interfa pageSize = jxutils.FormalizePageSize(pageSize) sqlParams = append(sqlParams, pageSize, offset) //mapLimit := false + if ctx.GetUserID() == "6D914A8BB71611EDB37F525400E86DC0" { + globals.SugarLogger.Debugf("======sql:%s", sql) + globals.SugarLogger.Debugf("======sql:%s", sqlParams) + } txDB, _ := dao.Begin(db) if err = dao.GetRowsTx(txDB, &storeList, sql, sqlParams...); err == nil { + if ctx.GetUserID() == "6D914A8BB71611EDB37F525400E86DC0" { + globals.SugarLogger.Debugf("======storeList:%s", utils.Format4Output(storeList, false)) + } + retVal.Stores = storeList retVal.TotalCount = dao.GetLastTotalRowCount2(db, txDB) // 地图区域限制过滤 diff --git a/business/jxstore/permission/permission.go b/business/jxstore/permission/permission.go index 46cdff96d..9b46c9d1d 100644 --- a/business/jxstore/permission/permission.go +++ b/business/jxstore/permission/permission.go @@ -353,7 +353,9 @@ func GetUserStoresResultMap(userID string) (resultMap map[int]int, err error) { } } userRoles, err2 := dao.GetUserRole2(db, []string{userID}, nil) - globals.SugarLogger.Debugf("======userRoles:%s", utils.Format4Output(userRoles, false)) + if userID == "6D914A8BB71611EDB37F525400E86DC0" { + globals.SugarLogger.Debugf("======userRoles:%s", utils.Format4Output(userRoles, false)) + } err = err2 for _, v := range userRoles { var ( From 1f06ab54d4a181256c0b0fe3e94e23abcc631cbe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Mon, 3 Apr 2023 18:39:11 +0800 Subject: [PATCH 23/93] 1 --- business/jxstore/cms/store.go | 18 +------- business/jxstore/permission/permission.go | 4 -- business/model/order.go | 53 +++++++++++------------ controllers/jx_order.go | 2 + 4 files changed, 29 insertions(+), 48 deletions(-) diff --git a/business/jxstore/cms/store.go b/business/jxstore/cms/store.go index 678aa6d4e..f2de6c887 100644 --- a/business/jxstore/cms/store.go +++ b/business/jxstore/cms/store.go @@ -562,16 +562,9 @@ func setStoreMapInfo(ctx *jxcontext.Context, db *dao.DaoDB, storesInfo *StoresIn // todo 门店绑定信息可以考虑以数组形式返回,而不是现在这样 func GetStores(ctx *jxcontext.Context, keyword string, params map[string]interface{}, offset, pageSize int, orderTimeFrom, orderTimeTo time.Time, orderCountFrom, orderCountTo int) (retVal *StoresInfo, err error) { briefLevel := int(utils.ForceInterface2Int64(params["briefLevel"])) - if ctx.GetUserID() == "6D914A8BB71611EDB37F525400E86DC0" { - globals.SugarLogger.Debugf("======params:%s", utils.Format4Output(params, false)) - } //权限 if permission.IsRoled(ctx) { if storeIDsMap, err := permission.GetUserStoresResultMap(ctx.GetUserID()); err == nil { - if ctx.GetUserID() == "6D914A8BB71611EDB37F525400E86DC0" { - globals.SugarLogger.Debugf("======storeIDsMap:%s", utils.Format4Output(storeIDsMap, false)) - } - var storeIDs2 []int if params["storeIDs"] != nil { var storeIDs []int @@ -607,7 +600,6 @@ func GetStores(ctx *jxcontext.Context, keyword string, params map[string]interfa } } } - globals.SugarLogger.Debugf("===============params := %s", utils.Format4Output(params, false)) sql, sqlParams, _, _, err := getStoresSql(ctx, keyword, params, orderTimeFrom, orderTimeTo) if err != nil { return nil, err @@ -643,16 +635,8 @@ func GetStores(ctx *jxcontext.Context, keyword string, params map[string]interfa pageSize = jxutils.FormalizePageSize(pageSize) sqlParams = append(sqlParams, pageSize, offset) //mapLimit := false - if ctx.GetUserID() == "6D914A8BB71611EDB37F525400E86DC0" { - globals.SugarLogger.Debugf("======sql:%s", sql) - globals.SugarLogger.Debugf("======sql:%s", sqlParams) - } txDB, _ := dao.Begin(db) if err = dao.GetRowsTx(txDB, &storeList, sql, sqlParams...); err == nil { - if ctx.GetUserID() == "6D914A8BB71611EDB37F525400E86DC0" { - globals.SugarLogger.Debugf("======storeList:%s", utils.Format4Output(storeList, false)) - } - retVal.Stores = storeList retVal.TotalCount = dao.GetLastTotalRowCount2(db, txDB) // 地图区域限制过滤 @@ -1149,7 +1133,7 @@ func UpdateStore(ctx *jxcontext.Context, storeID int, payload map[string]interfa return num, err } -// updateVendorStoreStatusAndDeliveryStatus 当门店被禁用时,将三方平台和三方配送全部关闭 +//// updateVendorStoreStatusAndDeliveryStatus 当门店被禁用时,将三方平台和三方配送全部关闭 //func updateVendorStoreStatusAndDeliveryStatus(ctx *jxcontext.Context, storeId int) error { // var ( // db = dao.GetDB() diff --git a/business/jxstore/permission/permission.go b/business/jxstore/permission/permission.go index 9b46c9d1d..04bea7b00 100644 --- a/business/jxstore/permission/permission.go +++ b/business/jxstore/permission/permission.go @@ -3,7 +3,6 @@ package permission import ( "fmt" "git.rosy.net.cn/jx-callback/business/jxutils/tasksch" - "git.rosy.net.cn/jx-callback/globals" "strings" "time" @@ -353,9 +352,6 @@ func GetUserStoresResultMap(userID string) (resultMap map[int]int, err error) { } } userRoles, err2 := dao.GetUserRole2(db, []string{userID}, nil) - if userID == "6D914A8BB71611EDB37F525400E86DC0" { - globals.SugarLogger.Debugf("======userRoles:%s", utils.Format4Output(userRoles, false)) - } err = err2 for _, v := range userRoles { var ( diff --git a/business/model/order.go b/business/model/order.go index a35834342..a78f3fd41 100644 --- a/business/model/order.go +++ b/business/model/order.go @@ -135,32 +135,31 @@ type GoodsOrder struct { DeliveryType string `orm:"size(32)" json:"deliveryType"` // 订单配送方式,缺省是平台配送 CreateDeliveryType int `orm:"default(0)" json:"createDeliveryType"` //默认0系统发单,1为门店发单 - VendorWaybillID string `orm:"column(vendor_waybill_id);size(48)" json:"vendorWaybillID"` - WaybillVendorID int `orm:"column(waybill_vendor_id)" json:"waybillVendorID"` // 表示当前承运商,-1表示还没有安排 - AdjustCount int8 `json:"adjustCount"` // 调整单(次数) - DeliveryFlag int8 `json:"deliveryFlag"` // 第1位为1表示禁止调度器调度三方配送 - DuplicatedCount int `json:"-"` // 重复新订单消息数,这个一般不是由于消息重发造成的(消息重发由OrderStatus过滤),一般是业务逻辑造成的 - OrderCreatedAt time.Time `orm:"type(datetime);index" json:"orderCreatedAt"` // 这里记录的是订单生效时间,即用户支付完成(货到付款即为下单时间) - OrderFinishedAt time.Time `orm:"type(datetime)" json:"orderFinishedAt"` - StatusTime time.Time `orm:"type(datetime)" json:"statusTime"` // last status time - PickDeadline time.Time `orm:"type(datetime);null" json:"pickDeadline"` - DeliveryFeeFrom *time.Time `orm:"type(datetime);null" json:"deliveryFeeFrom,omitempty"` // 三方配置费计算的开始基准时间 - ModelTimeInfo `json:"-"` - Flag int `json:"flag"` //非运单调整相关的其它状态 - - InvoiceTitle string `orm:"size(64)" json:"invoiceTitle"` // 发票抬头 - InvoiceTaxerID string `orm:"size(32);column(invoice_taxer_id)" json:"invoiceTaxerID"` // 发票纳税人识别码 - InvoiceEmail string `orm:"size(64)" json:"invoiceEmail"` // 发票邮箱 - VendorOrgCode string `orm:"size(64)" json:"vendorOrgCode"` // 同一平台下不同的商户代码,如果只有一个,可以为空 - FromStoreID int `orm:"column(from_store_id)" json:"fromStoreID"` //物料配送门店 - EclpOutID string `orm:"column(eclp_out_id)" json:"eclpOutID"` //物料配送的出库单号 - AddressID int64 `orm:"column(address_id)" json:"addressID"` //配送地址ID - EarningType int `json:"earningType"` //订单结算方式,2为扣点,1为报价 - OrderType int `json:"orderType"` //订单类型,0为普通订单,1为物料订单,2为进货订单 - OrderPayPercentage int `json:"orderPayPercentage"` - CouponIDs string `orm:"column(coupon_ids)" json:"couponIDs"` //优惠券IDs(京西商城) - NotifyType int `json:"notifyType"` //0表示没有通知,1表示发的短信,2表示发的语音 - PhoneAscription string `orm:"column(phone_ascription)" json:"phoneAscription"` // 电话号码归属地 + VendorWaybillID string `orm:"column(vendor_waybill_id);size(48)" json:"vendorWaybillID"` + WaybillVendorID int `orm:"column(waybill_vendor_id)" json:"waybillVendorID"` // 表示当前承运商,-1表示还没有安排 + AdjustCount int8 `json:"adjustCount"` // 调整单(次数) + DeliveryFlag int8 `json:"deliveryFlag"` // 第1位为1表示禁止调度器调度三方配送 + DuplicatedCount int `json:"-"` // 重复新订单消息数,这个一般不是由于消息重发造成的(消息重发由OrderStatus过滤),一般是业务逻辑造成的 + OrderCreatedAt time.Time `orm:"type(datetime);index" json:"orderCreatedAt"` // 这里记录的是订单生效时间,即用户支付完成(货到付款即为下单时间) + OrderFinishedAt time.Time `orm:"type(datetime)" json:"orderFinishedAt"` + StatusTime time.Time `orm:"type(datetime)" json:"statusTime"` // last status time + PickDeadline time.Time `orm:"type(datetime);null" json:"pickDeadline"` + DeliveryFeeFrom *time.Time `orm:"type(datetime);null" json:"deliveryFeeFrom,omitempty"` // 三方配置费计算的开始基准时间 + ModelTimeInfo `json:"-"` // 1 + Flag int `json:"flag"` // 非运单调整相关的其它状态 + InvoiceTitle string `orm:"size(64)" json:"invoiceTitle"` // 发票抬头 + InvoiceTaxerID string `orm:"size(32);column(invoice_taxer_id)" json:"invoiceTaxerID"` // 发票纳税人识别码 + InvoiceEmail string `orm:"size(64)" json:"invoiceEmail"` // 发票邮箱 + VendorOrgCode string `orm:"size(64)" json:"vendorOrgCode"` // 同一平台下不同的商户代码,如果只有一个,可以为空 + FromStoreID int `orm:"column(from_store_id)" json:"fromStoreID"` // 物料配送门店 + EclpOutID string `orm:"column(eclp_out_id)" json:"eclpOutID"` // 物料配送的出库单号 + AddressID int64 `orm:"column(address_id)" json:"addressID"` // 配送地址ID + EarningType int `json:"earningType"` // 订单结算方式,2为扣点,1为报价 + OrderType int `json:"orderType"` // 订单类型,0为普通订单,1为物料订单,2为进货订单 + OrderPayPercentage int `json:"orderPayPercentage"` // 调价包? + CouponIDs string `orm:"column(coupon_ids)" json:"couponIDs"` // 优惠券IDs(京西商城) + NotifyType int `json:"notifyType"` // 0表示没有通知,1表示发的短信,2表示发的语音 + PhoneAscription string `orm:"column(phone_ascription)" json:"phoneAscription"` // 电话号码归属地,{代表抖音号码归宿地[yes-四川成都]} // 以下只是用于传递数据 OriginalData string `orm:"-" json:"-"` @@ -244,7 +243,7 @@ type Waybill struct { ModelTimeInfo `json:"-"` OriginalData string `orm:"type(text)" json:"-"` Remark string `orm:"-" json:"-"` // 用于传递remark - + //OtherFee int64 `orm:"column(other_fee)" json:"otherFee"` // 对应美团外卖运单的保险费 VendorOrgCode string `orm:"size(64)" json:"vendorOrgCode"` // 同一平台下不同的商户代码,如果只有一个,可以为空 } diff --git a/controllers/jx_order.go b/controllers/jx_order.go index ffa5c3071..f5997b40d 100644 --- a/controllers/jx_order.go +++ b/controllers/jx_order.go @@ -2,6 +2,7 @@ package controllers import ( "encoding/json" + "errors" "fmt" "git.rosy.net.cn/jx-callback/business/bidding" "strings" @@ -827,6 +828,7 @@ func (c *OrderController) RefreshHistoryOrdersEarningPrice() { // @router /PartRefundOrder [put] func (c *OrderController) PartRefundOrder() { c.callPartRefundOrder(func(params *tOrderPartRefundOrderParams) (retVal interface{}, errCode string, err error) { + return nil, "", errors.New("接口暂停使用") var skuList []*model.OrderSku err = jxutils.Strings2Objs(params.RefundSkuList, &skuList) if err == nil { From 13c305ea4d570776ba3ed41668c30e1ff6faa570 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Mon, 3 Apr 2023 18:39:45 +0800 Subject: [PATCH 24/93] 1 --- business/model/order.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/business/model/order.go b/business/model/order.go index a78f3fd41..c2ac52093 100644 --- a/business/model/order.go +++ b/business/model/order.go @@ -144,8 +144,8 @@ type GoodsOrder struct { OrderFinishedAt time.Time `orm:"type(datetime)" json:"orderFinishedAt"` StatusTime time.Time `orm:"type(datetime)" json:"statusTime"` // last status time PickDeadline time.Time `orm:"type(datetime);null" json:"pickDeadline"` - DeliveryFeeFrom *time.Time `orm:"type(datetime);null" json:"deliveryFeeFrom,omitempty"` // 三方配置费计算的开始基准时间 - ModelTimeInfo `json:"-"` // 1 + DeliveryFeeFrom *time.Time `orm:"type(datetime);null" json:"deliveryFeeFrom,omitempty"` // 三方配置费计算的开始基准时间 + ModelTimeInfo `json:"-"` // 1 Flag int `json:"flag"` // 非运单调整相关的其它状态 InvoiceTitle string `orm:"size(64)" json:"invoiceTitle"` // 发票抬头 InvoiceTaxerID string `orm:"size(32);column(invoice_taxer_id)" json:"invoiceTaxerID"` // 发票纳税人识别码 From 80325e752d71e1a1ac92bdf9e00a02d3dd89a966 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Mon, 3 Apr 2023 18:46:34 +0800 Subject: [PATCH 25/93] 1 --- controllers/jx_order.go | 2 -- 1 file changed, 2 deletions(-) diff --git a/controllers/jx_order.go b/controllers/jx_order.go index f5997b40d..ffa5c3071 100644 --- a/controllers/jx_order.go +++ b/controllers/jx_order.go @@ -2,7 +2,6 @@ package controllers import ( "encoding/json" - "errors" "fmt" "git.rosy.net.cn/jx-callback/business/bidding" "strings" @@ -828,7 +827,6 @@ func (c *OrderController) RefreshHistoryOrdersEarningPrice() { // @router /PartRefundOrder [put] func (c *OrderController) PartRefundOrder() { c.callPartRefundOrder(func(params *tOrderPartRefundOrderParams) (retVal interface{}, errCode string, err error) { - return nil, "", errors.New("接口暂停使用") var skuList []*model.OrderSku err = jxutils.Strings2Objs(params.RefundSkuList, &skuList) if err == nil { From 49159ebcd89e97c4323eaf4c08822b4b769a0ad7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Mon, 3 Apr 2023 18:59:20 +0800 Subject: [PATCH 26/93] 1 --- controllers/jx_order.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/controllers/jx_order.go b/controllers/jx_order.go index ffa5c3071..2b139d834 100644 --- a/controllers/jx_order.go +++ b/controllers/jx_order.go @@ -2,6 +2,7 @@ package controllers import ( "encoding/json" + "errors" "fmt" "git.rosy.net.cn/jx-callback/business/bidding" "strings" @@ -830,6 +831,9 @@ func (c *OrderController) PartRefundOrder() { var skuList []*model.OrderSku err = jxutils.Strings2Objs(params.RefundSkuList, &skuList) if err == nil { + if params.VendorID == model.VendorIDJX { + return nil, "", errors.New("京西小程序暂未开启此功能") + } _, _, skuList = skuList2Map(skuList) var order *model.GoodsOrder order, err = partner.CurOrderManager.LoadOrder(params.VendorOrderID, params.VendorID) From f2855fa9ecb2c800247289e8a9ad20ff07afd9d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Thu, 6 Apr 2023 18:25:51 +0800 Subject: [PATCH 27/93] 1 --- business/jxstore/misc/misc.go | 34 ++-- business/model/api_config.go | 3 +- business/model/order.go | 7 +- business/partner/purchase/ebai/store_sku2.go | 3 + .../purchase/jx/localjx/kuaishou_pay.go | 191 ++++++++++++++++++ business/partner/purchase/jx/localjx/order.go | 18 +- .../partner/purchase/jx/localjx/tiktokPay.go | 1 + controllers/jx_order.go | 33 +++ controllers/kuaishou_callback.go | 72 +++++++ routers/commentsRouter_controllers.go | 9 + routers/router.go | 1 + 11 files changed, 348 insertions(+), 24 deletions(-) create mode 100644 business/partner/purchase/jx/localjx/kuaishou_pay.go create mode 100644 controllers/kuaishou_callback.go diff --git a/business/jxstore/misc/misc.go b/business/jxstore/misc/misc.go index a4016209f..523455b84 100644 --- a/business/jxstore/misc/misc.go +++ b/business/jxstore/misc/misc.go @@ -182,18 +182,18 @@ func Init() { delivery.GetOrderRiderInfoToPlatform("", 0) }, 10*time.Second, 4*time.Minute) - //每天晚上23:00更新抖店 审核状态 - ScheduleTimerFunc("UpdateStorePoiStatus", func() { - cms.UpdateStorePoiStatus(jxcontext.AdminCtx) - }, []string{ - "22:00:00", - }) - //每天晚上23:00获取门店 电子围栏、仓库、限售模板、运费模板ID同步进数据库 - ScheduleTimerFunc("UpdateStoreRelInformation", func() { - cms.UpdateStoreRelInformation(jxcontext.AdminCtx) - }, []string{ - "22:00:00", - }) + //每天晚上23:00更新抖店 审核状态(收费注释) + //ScheduleTimerFunc("UpdateStorePoiStatus", func() { + // cms.UpdateStorePoiStatus(jxcontext.AdminCtx) + //}, []string{ + // "22:00:00", + //}) + //每天晚上23:00获取门店 电子围栏、仓库、限售模板、运费模板ID同步进数据库(收费注释) + //ScheduleTimerFunc("UpdateStoreRelInformation", func() { + // cms.UpdateStoreRelInformation(jxcontext.AdminCtx) + //}, []string{ + // "22:00:00", + //}) // 更新抖店订单的结算信息 ScheduleTimerFunc("UpdateTiktokShopTotalMoney", func() { orderman.UpdateTiktokShopTotalMoney() @@ -264,7 +264,7 @@ func Init() { if beego.BConfig.RunMode != "jxgy" { ScheduleTimerFuncByInterval(func() { cms.RefreshTiktokShopToken(jxcontext.AdminCtx) - }, 60*time.Second, 30*time.Minute) + }, 60*time.Second, 60*time.Minute) } // 定时任务刷新当前订单的物流信息 @@ -368,10 +368,10 @@ func Init() { ScheduleTimerFunc("GetNewVendorPopActs", func() { act.GetNewVendorPopActs(jxcontext.AdminCtx) }, dailyHeartbeat) - //企业微信群人数通告 - ScheduleTimerFunc("SendQywxPeopleCount", func() { - cms.SendQywxPeopleCount(jxcontext.AdminCtx) - }, dailyHeartbeat) + //企业微信群人数通告(暂时取消) + //ScheduleTimerFunc("SendQywxPeopleCount", func() { + // cms.SendQywxPeopleCount(jxcontext.AdminCtx) + //}, dailyHeartbeat) ScheduleTimerFunc("doDailyWork1", func() { //同步商品额外前缀和水印图(打标记) cms.SyncSkuExperfixAndWatermark(jxcontext.AdminCtx) diff --git a/business/model/api_config.go b/business/model/api_config.go index cdb2bf2a9..298283ac0 100644 --- a/business/model/api_config.go +++ b/business/model/api_config.go @@ -22,7 +22,8 @@ const ( VendorGoMei = 12 // 国美 VendorIDTT = 13 // 抖音平台小程序 VendorIDDD = 14 // 抖店 - VendorIDPurchaseEnd = 15 + VendorIDKS = 15 // 快手小程序 + VendorIDPurchaseEnd = 20 VendorIDWXPay = 51 // 微信支付 diff --git a/business/model/order.go b/business/model/order.go index c2ac52093..74303f634 100644 --- a/business/model/order.go +++ b/business/model/order.go @@ -11,9 +11,10 @@ const ( ) const ( - PayTypeWX = 1 // 微信支付 - PayTypeTL = 2 // 通联宝支付 - PayTypeTicTok = 3 // 抖音支付 + PayTypeWX = 1 // 微信支付 + PayTypeTL = 2 // 通联宝支付 + PayTypeTicTok = 3 // 抖音支付 + PayTypeKuaiShou = 4 // 快手支付 PayTypeTL_DiscountCard = 3 // 通联宝支付(会员折扣卡) PayTypeTL_StoreAcctPay = 4 // 通联宝支付(门店账户充值) diff --git a/business/partner/purchase/ebai/store_sku2.go b/business/partner/purchase/ebai/store_sku2.go index 1f2ceacb9..c2fdee9a7 100644 --- a/business/partner/purchase/ebai/store_sku2.go +++ b/business/partner/purchase/ebai/store_sku2.go @@ -515,6 +515,9 @@ func genSkuParamsFromStoreSkuInfo2(storeSku *dao.StoreSkuSyncInfo, isCreate, isE if storeSku.MinOrderCount > 0 { params["minimum"] = utils.Int2Float64(storeSku.MinOrderCount) } + if storeSku.MinOrderCount == 0 { + params["minimum"] = utils.Int2Float64(1) + } return params } diff --git a/business/partner/purchase/jx/localjx/kuaishou_pay.go b/business/partner/purchase/jx/localjx/kuaishou_pay.go new file mode 100644 index 000000000..6a54e5e3a --- /dev/null +++ b/business/partner/purchase/jx/localjx/kuaishou_pay.go @@ -0,0 +1,191 @@ +package localjx + +import ( + "errors" + "fmt" + "git.rosy.net.cn/baseapi/platformapi/kuaishou_mini" + "strings" + "time" + + "git.rosy.net.cn/baseapi/utils" + "git.rosy.net.cn/jx-callback/business/auth2/authprovider/kuaishou" + "git.rosy.net.cn/jx-callback/business/jxutils" + "git.rosy.net.cn/jx-callback/business/jxutils/jxcontext" + "git.rosy.net.cn/jx-callback/business/model" + "git.rosy.net.cn/jx-callback/business/model/dao" + "git.rosy.net.cn/jx-callback/globals" + "git.rosy.net.cn/jx-callback/globals/api" +) + +func getOrderBriefKs(order *model.GoodsOrder) string { + sku := make([]string, len(order.Skus)) + for _, v := range order.Skus { + sku = append(sku, fmt.Sprintf("%s x %d件商品", v.SkuName, v.Count)) + } + return strings.Join(sku, ",") +} + +func pay4OrderByKs(ctx *jxcontext.Context, order *model.GoodsOrder, vendorPayType, subAppID string) (orderPay *model.OrderPay, err error) { + // 获取用户快手OpenId + var ( + db = dao.GetDB() + ) + authBindList, err := dao.GetUserBindAuthInfo(db, ctx.GetUserID(), model.AuthBindTypeAuth, []string{kuaishou.AuthTypeKuaiShouMini}, "", "", nil) + if err != nil { + return nil, err + } + if len(authBindList) == model.NO { + return nil, errors.New("用户未绑定快手,无法快手支付") + } + + param := &kuaishou_mini.PreCreateOrderReq{ + OutOrderNo: utils.Int64ToStr(GenPayOrderID(order)), + OpenId: authBindList[0].AuthID, + TotalAmount: order.ActualPayPrice, + Subject: "蔬菜水果日用品", + Detail: getOrderBriefKs(order), + TypeDetail: 1832, // 蔬菜:费率2%,水果:1833%2 + ExpireTime: 60 * 10, + Sign: "", + Attach: "", + NotifyUrl: "http://callback.jxc4.com/kuaishou/KuaiShouCallback", + GoodsId: "", + GoodsDetailUrl: "", + MultiCopiesGoodsInfo: "", + CancelOrder: 0, + } + + // 预下单 + prePayInfo, err := api.KuaiShouApi.PreCreateOrder(param) + if err == nil { + orderPay = &model.OrderPay{ + PayOrderID: order.VendorOrderID, // 抖音订单id + PayType: model.PayTypeKuaiShou, + VendorPayType: vendorPayType, + VendorOrderID: order.VendorOrderID, + VendorID: order.VendorID, + Status: 0, + PayCreatedAt: time.Now(), + PrepayID: "", + CodeURL: prePayInfo, // 抖音支付token + TotalFee: int(order.ActualPayPrice), + } + } + return orderPay, err +} + +func OnKSPayCallback(msg *kuaishou_mini.CallBackDetail, refund *kuaishou_mini.RefundCallBack, payType string) (err error) { + switch payType { + case kuaishou_mini.CallbackTypePay: // 支付回调 + err = onKSPayFinished(msg) + case kuaishou_mini.CallbackTypeRefund: // 退款回调 + err = onKSPayRefund(refund) + } + return err +} + +func onKSPayFinished(msg *kuaishou_mini.CallBackDetail) (err error) { + orderPay := &model.OrderPay{ + PayOrderID: msg.OutOrderNo, + PayType: model.PayTypeTicTok, + } + orderPay.DeletedAt = utils.DefaultTimeValue + db := dao.GetDB() + if err = dao.GetEntity(db, orderPay, "PayOrderID", "PayType", "DeletedAt"); err == nil { + orderPay.PayFinishedAt = utils.Time2Pointer(time.Now()) + orderPay.TransactionID = msg.TradeNo + orderPay.OriginalData = utils.Format4Output(msg, true) + switch msg.Status { + case kuaishou_mini.OrderPayStatusHandleing: + orderPay.Status = model.PayStatusNo + case kuaishou_mini.OrderPayStatusSuccess: + orderPay.Status = model.PayStatusYes + case kuaishou_mini.OrderPayStatusFailed: + orderPay.Status = model.PayStatusFailed + } + dao.UpdateEntity(db, orderPay) + + if msg.Status == kuaishou_mini.OrderPayStatusSuccess { + err = OnPayFinished(orderPay) + } + } else { + globals.SugarLogger.Debugf("onKSPayFinished msg:%s, err:%v", utils.Format4Output(msg, true), err) + } + return err +} + +func onKSPayRefund(msg *kuaishou_mini.RefundCallBack) (err error) { + orderPayRefund := &model.OrderPayRefund{ + RefundID: msg.OutRefundNo, + } + db := dao.GetDB() + if err = dao.GetEntity(db, orderPayRefund, "RefundID"); err == nil { + switch msg.Status { + case kuaishou_mini.OrderPayStatusHandleing: + orderPayRefund.Status = model.PayStatusNo + case kuaishou_mini.OrderPayStatusSuccess: + orderPayRefund.Status = model.PayStatusYes + case kuaishou_mini.OrderPayStatusFailed: + orderPayRefund.Status = model.PayStatusFailed + } + + orderPayRefund.OriginalData = utils.Format4Output(msg, true) + dao.UpdateEntity(db, orderPayRefund) + } else if dao.IsNoRowsError(err) { + globals.SugarLogger.Warnf("收到异常的退款事件, msg:%s", utils.Format4Output(msg, true)) + } + + orderPay := &model.OrderPay{ + VendorOrderID: orderPayRefund.VendorOrderID, + VendorID: jxutils.GetPossibleVendorIDFromVendorOrderID(orderPayRefund.VendorOrderID), + PayType: model.PayTypeKuaiShou, + Status: model.PayStatusYes, + } + orderPay.DeletedAt = utils.DefaultTimeValue + if err = dao.GetEntity(db, orderPay, "VendorOrderID", "VendorID", "PayType", "Status", "DeletedAt"); err == nil { + orderPay.Status = model.PayStatusRefund + dao.UpdateEntity(db, orderPay) + } + return err +} + +// RefundOrderByKS 申请退款 +func RefundOrderByKS(ctx *jxcontext.Context, orderPay *model.OrderPay, refundID string, refundFee int, refundDesc string) (orderPayRefund *model.OrderPayRefund, err error) { + + param := kuaishou_mini.RefundParam{ + OutOrderNo: orderPay.VendorOrderID, + OutRefundNo: refundID, + Reason: refundDesc, + Attach: "", + NotifyUrl: "http://callback.jxc4.com/kuaishou/kuaiShouCallback", + RefundAmount: int64(orderPay.TotalFee), + Sign: "", + MultiCopiesGoodsInfo: "", + } + result, err := api.KuaiShouApi.RefundOrder(¶m) + if err == nil { + orderPayRefund = &model.OrderPayRefund{ + RefundID: refundID, + VendorRefundID: result, + VendorOrderID: orderPay.VendorOrderID, + VendorID: orderPay.VendorID, + Status: model.RefundStatusNo, + TransactionID: orderPay.TransactionID, + RefundFee: refundFee, + RefundCreatedAt: time.Now(), + } + dao.WrapAddIDCULDEntity(orderPayRefund, ctx.GetUserName()) + db := dao.GetDB() + if result != "" { + orderPayRefund.Status = model.RefundStatusYes + } else { + orderPayRefund.Status = model.RefundStatusFailed + } + orderPayRefund.OriginalData = utils.Format4Output(result, true) + dao.CreateEntity(db, orderPayRefund) + + orderPay.Status = model.PayStatusRefund + dao.UpdateEntity(db, orderPay) + } + return orderPayRefund, err +} diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index bcc1b1600..e4c2b6751 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -335,6 +335,11 @@ func Pay4Order(ctx *jxcontext.Context, orderID int64, payType int, vendorPayType dao.WrapAddIDCULDEntity(orderPay, ctx.GetUserName()) err = dao.CreateEntity(dao.GetDB(), orderPay) } + case model.PayTypeKuaiShou: + if orderPay, err = pay4OrderByKs(ctx, order, vendorPayType, subAppID); err == nil && orderPay != nil { + dao.WrapAddIDCULDEntity(orderPay, ctx.GetUserName()) + err = dao.CreateEntity(dao.GetDB(), orderPay) + } default: err = fmt.Errorf("支付方式:%d当前不支持", payType) } @@ -1393,7 +1398,8 @@ func CancelOrder(ctx *jxcontext.Context, order *model.GoodsOrder, reason string) // refundID := utils.Int64ToStr(GenRefundID(order)) refundID := order.VendorOrderID var orderPayRefund *model.OrderPayRefund - if orderPay.PayType == model.PayTypeWX { + switch orderPay.PayType { + case model.PayTypeWX: orderPayRefund, err = refundOrderByWX(ctx, orderPay, refundID, orderPay.TotalFee, reason) if err == nil { dao.WrapAddIDCULDEntity(orderPayRefund, ctx.GetUserName()) @@ -1401,17 +1407,23 @@ func CancelOrder(ctx *jxcontext.Context, order *model.GoodsOrder, reason string) } else { errList.AddErr(err) } - } else if orderPay.PayType == model.PayTypeTL { + case model.PayTypeTL: orderPayRefund, err = RefundOrderByTL(ctx, orderPay, refundID, orderPay.TotalFee, reason) if err != nil { errList.AddErr(err) } - } else if orderPay.PayType == model.PayTypeTicTok { + case model.PayTypeTicTok: orderPayRefund, err = RefundOrderByTT(ctx, orderPay, refundID, orderPay.TotalFee, reason) if err != nil { errList.AddErr(err) } + case model.PayTypeKuaiShou: + orderPayRefund, err = RefundOrderByKS(ctx, orderPay, refundID, orderPay.TotalFee, reason) + if err != nil { + errList.AddErr(err) + } } + if err == nil { //如果用了优惠券,状态要刷回去 if order.CouponIDs != "" { diff --git a/business/partner/purchase/jx/localjx/tiktokPay.go b/business/partner/purchase/jx/localjx/tiktokPay.go index 7acd5f8cd..132d120ce 100644 --- a/business/partner/purchase/jx/localjx/tiktokPay.go +++ b/business/partner/purchase/jx/localjx/tiktokPay.go @@ -58,6 +58,7 @@ func getTikTok(appID string) (TikTokMini *tiktok.API) { } return TikTokMini } + func OnTTPayCallback(msg *tiktok.DetailCallBackMessage, refund *tiktok.DetailCallBackMessage2Refund, payType string) (err error) { switch payType { case tiktok.PayStatus: // 支付回调 diff --git a/controllers/jx_order.go b/controllers/jx_order.go index 2b139d834..faf94ec9f 100644 --- a/controllers/jx_order.go +++ b/controllers/jx_order.go @@ -852,6 +852,39 @@ func (c *OrderController) PartRefundOrder() { }) } +// @Title 小程序用户申请售后(退款) +// @Description 小程序用户申请售后(退款) +// @Param token header string true "认证token" +// @Param vendorOrderID formData string true "订单ID" +// @Param vendorID formData int true "订单所属厂商ID" +// @Param refundSkuList formData string true "要去除的商品信息,只有skuID与Count字段有效" +// @Param reason formData string true "原因" +// @Success 200 {object} controllers.CallResult +// @Failure 200 {object} controllers.CallResult +// @router /ApplyRefundOrder [post] +func (c *OrderController) ApplyRefundOrder() { + c.callApplyRefundOrder(func(params *tOrderApplyRefundOrderParams) (retVal interface{}, errCode string, err error) { + //var skuList []*model.OrderSku + //err = jxutils.Strings2Objs(params.RefundSkuList, &skuList) + //if err == nil { + // _, _, skuList = skuList2Map(skuList) + // var order *model.GoodsOrder + // order, err = partner.CurOrderManager.LoadOrder(params.VendorOrderID, params.VendorID) + // if err == nil { + // removedAll, err2 := fillSkuList(skuList, order.Skus) + // if err = err2; err == nil { + // if removedAll { + // err = defsch.FixedScheduler.RefundOrder(params.Ctx, order, params.Reason) + // } else { + // err = defsch.FixedScheduler.PartRefundOrder(params.Ctx, order, skuList, params.Reason) + // } + // } + // } + //} + return retVal, "", err + }) +} + func fillSkuList(skuList, orderSkuList []*model.OrderSku) (isSame bool, err error) { skuCount, orderSkuMap, _ := skuList2Map(orderSkuList) skuCount2 := 0 diff --git a/controllers/kuaishou_callback.go b/controllers/kuaishou_callback.go new file mode 100644 index 000000000..2e4e0b17b --- /dev/null +++ b/controllers/kuaishou_callback.go @@ -0,0 +1,72 @@ +package controllers + +import ( + "git.rosy.net.cn/baseapi/platformapi/kuaishou_mini" + "git.rosy.net.cn/baseapi/utils" + "git.rosy.net.cn/jx-callback/business/partner/purchase/jx/localjx" + "git.rosy.net.cn/jx-callback/globals" + "git.rosy.net.cn/jx-callback/globals/api" + "github.com/astaxie/beego/server/web" +) + +type KuaiShouController struct { + web.Controller +} + +// KuaiShouCallBack 快手回调 +func (c *KuaiShouController) KuaiShouCallback() { + payOrder, refundOrder, payType, msgId, err := api.KuaiShouApi.KauiShouCallback(c.Ctx.Request) + globals.SugarLogger.Debugf("KuaiShouCallBack payOrder =: %s", utils.Format4Output(payOrder, false)) + globals.SugarLogger.Debugf("KuaiShouCallBack refundOrder=: %s", refundOrder) + globals.SugarLogger.Debugf("KuaiShouCallBack payType=: %s", payType) + globals.SugarLogger.Debugf("KuaiShouCallBack err=: %s", utils.Format4Output(err, false)) + if err != nil { + c.Data["json"] = CallBackFail(msgId) + c.ServeJSON() + return + } + + switch payType { + case kuaishou_mini.CallbackTypePay: + err = localjx.OnKSPayCallback(payOrder, nil, payType) + case kuaishou_mini.CallbackTypeRefund: + err = localjx.OnKSPayCallback(nil, refundOrder, payType) + case kuaishou_mini.CallbackTypeSettle: + c.Data["json"] = CallBackFail(msgId) + c.ServeJSON() + return + default: + c.Data["json"] = CallBackFail(msgId) + c.ServeJSON() + return + } + + if err != nil { + c.Data["json"] = CallBackFail(msgId) + c.ServeJSON() + return + } + + c.Data["json"] = CallBackSuccess(msgId) + c.ServeJSON() + return +} + +type CallBackResult struct { + Result string `json:"result"` + MessageId string `json:"message_id"` +} + +func CallBackSuccess(msgId string) *CallBackResult { + return &CallBackResult{ + Result: "1", + MessageId: msgId, + } +} + +func CallBackFail(msgId string) *CallBackResult { + return &CallBackResult{ + Result: "-1", + MessageId: msgId, + } +} diff --git a/routers/commentsRouter_controllers.go b/routers/commentsRouter_controllers.go index 1bdfbe821..810c99afb 100644 --- a/routers/commentsRouter_controllers.go +++ b/routers/commentsRouter_controllers.go @@ -1466,6 +1466,15 @@ func init() { Filters: nil, Params: nil}) + web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:OrderController"] = append(web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:OrderController"], + web.ControllerComments{ + Method: "ApplyRefundOrder", + Router: `/ApplyRefundOrder`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:OrderController"] = append(web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:OrderController"], web.ControllerComments{ Method: "PrintOrder", diff --git a/routers/router.go b/routers/router.go index ef6e2191d..9b4ef8fab 100644 --- a/routers/router.go +++ b/routers/router.go @@ -193,6 +193,7 @@ func init() { web.AutoRouter(&controllers.TiktokController{}) // 订单 web.AutoRouter(&controllers.TiktokShopController{}) // 门店授权 web.AutoRouter(&controllers.LogisticsController{}) // 抖音快递信息同步 + web.AutoRouter(&controllers.KuaiShouController{}) // 快手回调 // 如下都是用于检测存活的空接口 web.Any("/", func(ctx *beecontext.Context) { ctx.WriteString("pong\n") From f2571c61a596da7888cf74770522562db3d03ab6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Thu, 6 Apr 2023 18:32:20 +0800 Subject: [PATCH 28/93] 1 --- business/jxutils/unipush/push.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/jxutils/unipush/push.go b/business/jxutils/unipush/push.go index 4baa74d79..38d3f6409 100644 --- a/business/jxutils/unipush/push.go +++ b/business/jxutils/unipush/push.go @@ -46,7 +46,7 @@ func NotifyNewOrder(order *model.GoodsOrder) { msg.StoreTitle = storeDetail.Name msg.Context = "老板,你有新的订单了!" context, _ := json.Marshal(msg) - body := fmt.Sprintf(msg.Context+"(%s)", model.VendorChineseNames[order.VendorID]+"#"+msg.OrderSqs) + body := fmt.Sprintf(msg.Context+"(%s)", model.VendorChineseNames[order.VendorID]+"#"+msg.OrderSqs+"订单Id:"+order.VendorOrderID) pushMsgByUniApp(storeDetail.ID, storeDetail.Name, cid, string(context), body, SoundsFileNewOrder) } From 747a5f33264cc760e100428da9985f676560cef5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Thu, 6 Apr 2023 18:39:05 +0800 Subject: [PATCH 29/93] 1 --- business/jxutils/unipush/push.go | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/business/jxutils/unipush/push.go b/business/jxutils/unipush/push.go index 38d3f6409..a71d8bff5 100644 --- a/business/jxutils/unipush/push.go +++ b/business/jxutils/unipush/push.go @@ -45,8 +45,9 @@ func NotifyNewOrder(order *model.GoodsOrder) { msg.OrderSqs = utils.Int2Str(order.OrderSeq) msg.StoreTitle = storeDetail.Name msg.Context = "老板,你有新的订单了!" + msg.VendorOrderId = order.VendorOrderID context, _ := json.Marshal(msg) - body := fmt.Sprintf(msg.Context+"(%s)", model.VendorChineseNames[order.VendorID]+"#"+msg.OrderSqs+"订单Id:"+order.VendorOrderID) + body := fmt.Sprintf(msg.Context+"(%s)", model.VendorChineseNames[order.VendorID]+"#"+msg.OrderSqs) pushMsgByUniApp(storeDetail.ID, storeDetail.Name, cid, string(context), body, SoundsFileNewOrder) } @@ -136,11 +137,12 @@ func GetStoreBoosCID(storeId int) ([]string, error) { } type MsgContext struct { - MsgType string `json:"msg_type"` // 订单类型[新订单/售后单/取消单] - StoreTitle string `json:"store_title"` // 门店名称 - Context string `json:"context"` // 消息文本 - VendorName string `json:"vendor_name"` // 平台名称 - OrderSqs string `json:"order_sqs"` // 订单流水号 + MsgType string `json:"msg_type"` // 订单类型[新订单/售后单/取消单] + StoreTitle string `json:"store_title"` // 门店名称 + Context string `json:"context"` // 消息文本 + VendorName string `json:"vendor_name"` // 平台名称 + OrderSqs string `json:"order_sqs"` // 订单流水号 + VendorOrderId string `json:"vendor_order_id"` // 订单id } func pushMsgByUniApp(storeId int, storeName string, cID []string, msg string, body string, soundsFileName string) { From 32cc348dfd5c7a2f47604196ecd0ca5eca0b3a65 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Fri, 7 Apr 2023 11:32:07 +0800 Subject: [PATCH 30/93] 1 --- business/jxstore/misc/misc.go | 32 ++++++++++++++--------------- controllers/jx_order.go | 38 +++++++++++++++++++---------------- 2 files changed, 37 insertions(+), 33 deletions(-) diff --git a/business/jxstore/misc/misc.go b/business/jxstore/misc/misc.go index 523455b84..8266e7fc9 100644 --- a/business/jxstore/misc/misc.go +++ b/business/jxstore/misc/misc.go @@ -182,18 +182,18 @@ func Init() { delivery.GetOrderRiderInfoToPlatform("", 0) }, 10*time.Second, 4*time.Minute) - //每天晚上23:00更新抖店 审核状态(收费注释) - //ScheduleTimerFunc("UpdateStorePoiStatus", func() { - // cms.UpdateStorePoiStatus(jxcontext.AdminCtx) - //}, []string{ - // "22:00:00", - //}) - //每天晚上23:00获取门店 电子围栏、仓库、限售模板、运费模板ID同步进数据库(收费注释) - //ScheduleTimerFunc("UpdateStoreRelInformation", func() { - // cms.UpdateStoreRelInformation(jxcontext.AdminCtx) - //}, []string{ - // "22:00:00", - //}) + //每天晚上23:00更新抖店 审核状态 + ScheduleTimerFunc("UpdateStorePoiStatus", func() { + cms.UpdateStorePoiStatus(jxcontext.AdminCtx) + }, []string{ + "22:00:00", + }) + //每天晚上23:00获取门店 电子围栏、仓库、限售模板、运费模板ID同步进数据库 + ScheduleTimerFunc("UpdateStoreRelInformation", func() { + cms.UpdateStoreRelInformation(jxcontext.AdminCtx) + }, []string{ + "22:00:00", + }) // 更新抖店订单的结算信息 ScheduleTimerFunc("UpdateTiktokShopTotalMoney", func() { orderman.UpdateTiktokShopTotalMoney() @@ -255,16 +255,16 @@ func Init() { // 抖音更新门店商品 ,接口收费暂不使用 if beego.BConfig.RunMode != "jxgy" { - //ScheduleTimerFunc("RefreshSyncSkuList", func() { - // syncStoreSkuTiktok() - //}, []string{"13:00:00"}) + ScheduleTimerFunc("RefreshSyncSkuList", func() { + syncStoreSkuTiktok() + }, []string{"13:00:00"}) } //刷新抖音门店token if beego.BConfig.RunMode != "jxgy" { ScheduleTimerFuncByInterval(func() { cms.RefreshTiktokShopToken(jxcontext.AdminCtx) - }, 60*time.Second, 60*time.Minute) + }, 60*time.Second, 30*time.Minute) } // 定时任务刷新当前订单的物流信息 diff --git a/controllers/jx_order.go b/controllers/jx_order.go index faf94ec9f..f5fad4a41 100644 --- a/controllers/jx_order.go +++ b/controllers/jx_order.go @@ -864,23 +864,27 @@ func (c *OrderController) PartRefundOrder() { // @router /ApplyRefundOrder [post] func (c *OrderController) ApplyRefundOrder() { c.callApplyRefundOrder(func(params *tOrderApplyRefundOrderParams) (retVal interface{}, errCode string, err error) { - //var skuList []*model.OrderSku - //err = jxutils.Strings2Objs(params.RefundSkuList, &skuList) - //if err == nil { - // _, _, skuList = skuList2Map(skuList) - // var order *model.GoodsOrder - // order, err = partner.CurOrderManager.LoadOrder(params.VendorOrderID, params.VendorID) - // if err == nil { - // removedAll, err2 := fillSkuList(skuList, order.Skus) - // if err = err2; err == nil { - // if removedAll { - // err = defsch.FixedScheduler.RefundOrder(params.Ctx, order, params.Reason) - // } else { - // err = defsch.FixedScheduler.PartRefundOrder(params.Ctx, order, skuList, params.Reason) - // } - // } - // } - //} + // 微信,支付宝-通联,(抖音-抖音支付,快手-快手支付) 小程序,下单时不区分平台,支付时区分() + + // 1- 创建afsOrder 售后单 + // 2- + var skuList []*model.OrderSku + err = jxutils.Strings2Objs(params.RefundSkuList, &skuList) + if err == nil { + _, _, skuList = skuList2Map(skuList) + var order *model.GoodsOrder + order, err = partner.CurOrderManager.LoadOrder(params.VendorOrderID, params.VendorID) + if err == nil { + removedAll, err2 := fillSkuList(skuList, order.Skus) + if err = err2; err == nil { + if removedAll { + err = defsch.FixedScheduler.RefundOrder(params.Ctx, order, params.Reason) + } else { + err = defsch.FixedScheduler.PartRefundOrder(params.Ctx, order, skuList, params.Reason) + } + } + } + } return retVal, "", err }) } From 12423cfd83f72185faa1cec19e05882532f0cdcc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Mon, 10 Apr 2023 10:47:34 +0800 Subject: [PATCH 31/93] 1 --- business/partner/purchase/tiktok_store/order.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/business/partner/purchase/tiktok_store/order.go b/business/partner/purchase/tiktok_store/order.go index e9d78fc8a..f715b6b6c 100644 --- a/business/partner/purchase/tiktok_store/order.go +++ b/business/partner/purchase/tiktok_store/order.go @@ -218,7 +218,8 @@ func (p *PurchaseHandler) getOrder(vendorOrgCode, vendorOrderID, vendorStoreID s } // 用户保密信息脱敏 - name, tel, address, _ := api.OrderUserInfoDecrypt(vendorOrderID, result.EncryptPostReceiver, result.EncryptPostTel, result.PostAddr.EncryptDetail) + name, tel, address, err := api.OrderUserInfoDecrypt(vendorOrderID, result.EncryptPostReceiver, result.EncryptPostTel, result.PostAddr.EncryptDetail) + globals.SugarLogger.Debugf("===========err OrderUserInfoDecrypt :%v", err) order.ConsigneeName = name order.ConsigneeMobile = tel order.ConsigneeAddress = fmt.Sprintf("%s%s%s%s%s", result.PostAddr.Province.Name, result.PostAddr.City.Name, result.PostAddr.Town.Name, result.PostAddr.Street.Name, address) From 7a6e9d8ed718ac2925a5189eede977798537be83 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Mon, 10 Apr 2023 14:19:50 +0800 Subject: [PATCH 32/93] 1 --- business/model/const.go | 2 +- business/partner/purchase/tiktok_store/order.go | 3 +-- conf/app.conf | 16 ++++++++-------- 3 files changed, 10 insertions(+), 11 deletions(-) diff --git a/business/model/const.go b/business/model/const.go index 49b457930..151f5e790 100644 --- a/business/model/const.go +++ b/business/model/const.go @@ -567,7 +567,7 @@ func IsWaybillFinalStatus(status int) bool { const ( JXC4AppId = "wx4b5930c13f8b1170" // 京西菜市appId type=weixinmini JXC4BusinessAppId = "wx08a5c2a8581414ff" // 京西商家appId type=weixinmini - JXC4TiktokAppId = "tta6a1d01c399f264201" // 抖音appID + JXC4TiktokAppId = "ttaceeda5333d7a7ab01" // 抖音appID JXC4ClientAppID = "wxf3657c94aa01a3f0" //京西菜市客户端APP ID type="weixinapp" diff --git a/business/partner/purchase/tiktok_store/order.go b/business/partner/purchase/tiktok_store/order.go index f715b6b6c..e9d78fc8a 100644 --- a/business/partner/purchase/tiktok_store/order.go +++ b/business/partner/purchase/tiktok_store/order.go @@ -218,8 +218,7 @@ func (p *PurchaseHandler) getOrder(vendorOrgCode, vendorOrderID, vendorStoreID s } // 用户保密信息脱敏 - name, tel, address, err := api.OrderUserInfoDecrypt(vendorOrderID, result.EncryptPostReceiver, result.EncryptPostTel, result.PostAddr.EncryptDetail) - globals.SugarLogger.Debugf("===========err OrderUserInfoDecrypt :%v", err) + name, tel, address, _ := api.OrderUserInfoDecrypt(vendorOrderID, result.EncryptPostReceiver, result.EncryptPostTel, result.PostAddr.EncryptDetail) order.ConsigneeName = name order.ConsigneeMobile = tel order.ConsigneeAddress = fmt.Sprintf("%s%s%s%s%s", result.PostAddr.Province.Name, result.PostAddr.City.Name, result.PostAddr.Town.Name, result.PostAddr.Street.Name, address) diff --git a/conf/app.conf b/conf/app.conf index 5d82c1268..a76323c04 100644 --- a/conf/app.conf +++ b/conf/app.conf @@ -234,8 +234,8 @@ dbConnectStr = "root:WebServer@1@tcp(127.0.0.1:3306)/jxd_dev_0?charset=utf8mb4&l getWeixinTokenURL = "http://www.jxc4.com/v2/sys/GetWXToken" getYLYTokenURL = "http://www.jxc4.com/v2/sys/GetYLYToken" -tiktokAppKey = "tta6a1d01c399f264201" -tiktokAppSecret = "5c08a0465cf0f996af254a03b6c2548defef87ad" +tiktokAppKey = "ttaceeda5333d7a7ab01" +tiktokAppSecret = "9285b20dce3c46179204a5aa4d92ca96ee1ed5c9" tiktokJXDJKey="ttaceeda5333d7a7ab01" #京西到家抖音小程序 TiktokJXDJApiID="ttaceeda5333d7a7ab01" @@ -374,8 +374,8 @@ uuOpenID="8d8464e7c9354c1e88a3f5afa2a7922e" jxPrintAppID = "1000" jxPrintAppKey = "rfBd56ti2SMtYvSg" -tiktokAppKey = "tta6a1d01c399f264201" -tiktokAppSecret = "5c08a0465cf0f996af254a03b6c2548defef87ad" +tiktokAppKey = "ttaceeda5333d7a7ab01" +tiktokAppSecret = "9285b20dce3c46179204a5aa4d92ca96ee1ed5c9" tiktokJXDJKey="ttaceeda5333d7a7ab01" #京西到家抖音小程序 TiktokJXDJApiID="ttaceeda5333d7a7ab01" @@ -498,8 +498,8 @@ jxPrintAppID = "1000" jxPrintAppKey = "rfBd56ti2SMtYvSg" storeName = "京西果园" -tiktokAppKey = "tta6a1d01c399f264201" -tiktokAppSecret = "5c08a0465cf0f996af254a03b6c2548defef87ad" +tiktokAppKey = "ttaceeda5333d7a7ab01" +tiktokAppSecret = "9285b20dce3c46179204a5aa4d92ca96ee1ed5c9" tiktokJXDJKey="ttaceeda5333d7a7ab01" #京西到家抖音小程序 TiktokJXDJApiID="ttaceeda5333d7a7ab01" @@ -700,8 +700,8 @@ uuOpenID="8d8464e7c9354c1e88a3f5afa2a7922e" jxPrintAppID = "1000" jxPrintAppKey = "rfBd56ti2SMtYvSg" -tiktokAppKey = "tta6a1d01c399f264201" -tiktokAppSecret = "5c08a0465cf0f996af254a03b6c2548defef87ad" +tiktokAppKey = "ttaceeda5333d7a7ab01" +tiktokAppSecret = "9285b20dce3c46179204a5aa4d92ca96ee1ed5c9" tiktokJXDJKey="ttaceeda5333d7a7ab01" #京西到家抖音小程序 TiktokJXDJApiID="ttaceeda5333d7a7ab01" From 441359bb1e79aa7aec488250fa7887fced3d23a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Mon, 10 Apr 2023 14:21:22 +0800 Subject: [PATCH 33/93] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=A7=98=E9=92=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- conf/app.conf | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/conf/app.conf b/conf/app.conf index a76323c04..4b325d339 100644 --- a/conf/app.conf +++ b/conf/app.conf @@ -235,7 +235,7 @@ getWeixinTokenURL = "http://www.jxc4.com/v2/sys/GetWXToken" getYLYTokenURL = "http://www.jxc4.com/v2/sys/GetYLYToken" tiktokAppKey = "ttaceeda5333d7a7ab01" -tiktokAppSecret = "9285b20dce3c46179204a5aa4d92ca96ee1ed5c9" +tiktokAppSecret = "020c0aa40371cd112eecc034bb3dc094907ff925" tiktokJXDJKey="ttaceeda5333d7a7ab01" #京西到家抖音小程序 TiktokJXDJApiID="ttaceeda5333d7a7ab01" @@ -375,7 +375,7 @@ jxPrintAppID = "1000" jxPrintAppKey = "rfBd56ti2SMtYvSg" tiktokAppKey = "ttaceeda5333d7a7ab01" -tiktokAppSecret = "9285b20dce3c46179204a5aa4d92ca96ee1ed5c9" +tiktokAppSecret = "020c0aa40371cd112eecc034bb3dc094907ff925" tiktokJXDJKey="ttaceeda5333d7a7ab01" #京西到家抖音小程序 TiktokJXDJApiID="ttaceeda5333d7a7ab01" @@ -499,7 +499,7 @@ jxPrintAppKey = "rfBd56ti2SMtYvSg" storeName = "京西果园" tiktokAppKey = "ttaceeda5333d7a7ab01" -tiktokAppSecret = "9285b20dce3c46179204a5aa4d92ca96ee1ed5c9" +tiktokAppSecret = "020c0aa40371cd112eecc034bb3dc094907ff925" tiktokJXDJKey="ttaceeda5333d7a7ab01" #京西到家抖音小程序 TiktokJXDJApiID="ttaceeda5333d7a7ab01" @@ -701,7 +701,7 @@ jxPrintAppID = "1000" jxPrintAppKey = "rfBd56ti2SMtYvSg" tiktokAppKey = "ttaceeda5333d7a7ab01" -tiktokAppSecret = "9285b20dce3c46179204a5aa4d92ca96ee1ed5c9" +tiktokAppSecret = "020c0aa40371cd112eecc034bb3dc094907ff925" tiktokJXDJKey="ttaceeda5333d7a7ab01" #京西到家抖音小程序 TiktokJXDJApiID="ttaceeda5333d7a7ab01" From 0cb801877596beb157bec06cf7bcdee0ee4d7141 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Mon, 10 Apr 2023 14:46:19 +0800 Subject: [PATCH 34/93] =?UTF-8?q?=E6=97=A5=E5=BF=97=E6=89=93=E5=8D=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxcallback/orderman/order_afs.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/business/jxcallback/orderman/order_afs.go b/business/jxcallback/orderman/order_afs.go index 783a72385..3a5e50895 100644 --- a/business/jxcallback/orderman/order_afs.go +++ b/business/jxcallback/orderman/order_afs.go @@ -38,6 +38,8 @@ func (c *OrderManager) OnAfsOrderNew(afsOrder *model.AfsOrder, orderStatus *mode } func (c *OrderManager) onAfsOrderNew(afsOrder *model.AfsOrder, orderStatus *model.OrderStatus, isAdjust bool) (err error) { + globals.SugarLogger.Debugf("afsOrder 1 := %s", utils.Format4Output(afsOrder, false)) + globals.SugarLogger.Debugf("orderStatus 1 := %s", utils.Format4Output(orderStatus, false)) db := dao.GetDB() c.setAfsOrderID(db, orderStatus) if afsOrder.AfsOrderID == "" { @@ -50,9 +52,11 @@ func (c *OrderManager) onAfsOrderNew(afsOrder *model.AfsOrder, orderStatus *mode afsOrder.Status = orderStatus.Status } if order, _ := c.LoadOrder(afsOrder.VendorOrderID, afsOrder.VendorID); order != nil { + globals.SugarLogger.Debugf("order 1 := %s", utils.Format4Output(order, false)) if order.ConsigneeMobile2 == "" { if handler := partner.GetPurchaseOrderHandlerFromVendorID(order.VendorID); handler != nil { if order2, _ := handler.GetOrder(order.VendorOrgCode, order.VendorOrderID, order.VendorStoreID); order2 != nil && order.ConsigneeMobile != order2.ConsigneeMobile { + globals.SugarLogger.Debugf("order 2 := %s", utils.Format4Output(order2, false)) order.ConsigneeMobile = order2.ConsigneeMobile c.UpdateOrderFields(order, []string{"ConsigneeMobile"}) } @@ -68,6 +72,7 @@ func (c *OrderManager) onAfsOrderNew(afsOrder *model.AfsOrder, orderStatus *mode } }() isDuplicated, err := addOrderOrWaybillStatus(orderStatus, db) + globals.SugarLogger.Debugf("isDuplicated 1 := %s", utils.Format4Output(isDuplicated, false)) if err != nil || isDuplicated { if err == nil { dao.Commit(db, txDB) @@ -80,6 +85,9 @@ func (c *OrderManager) onAfsOrderNew(afsOrder *model.AfsOrder, orderStatus *mode return err } } + globals.SugarLogger.Debugf("existAfsOrder 1 := %s", utils.Format4Output(existAfsOrder, false)) + globals.SugarLogger.Debugf("existAfsOrder != nil := %s", utils.Format4Output(existAfsOrder != nil, false)) + if existAfsOrder != nil { // todo 可能导致状态回绕 existAfsOrder.Status = afsOrder.Status @@ -94,6 +102,7 @@ func (c *OrderManager) onAfsOrderNew(afsOrder *model.AfsOrder, orderStatus *mode isAdjust = true } if err = c.SaveAfsOrder(db, afsOrder, isAdjust); err != nil { + globals.SugarLogger.Debugf("SaveAfsOrder := %s", utils.Format4Output(err, false)) return err } } From 1c90d8a2bf2bc4e81376429e9c893085b17c5d99 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Mon, 10 Apr 2023 14:51:36 +0800 Subject: [PATCH 35/93] =?UTF-8?q?=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxcallback/orderman/order_afs.go | 1 + 1 file changed, 1 insertion(+) diff --git a/business/jxcallback/orderman/order_afs.go b/business/jxcallback/orderman/order_afs.go index 3a5e50895..3d3201ef0 100644 --- a/business/jxcallback/orderman/order_afs.go +++ b/business/jxcallback/orderman/order_afs.go @@ -73,6 +73,7 @@ func (c *OrderManager) onAfsOrderNew(afsOrder *model.AfsOrder, orderStatus *mode }() isDuplicated, err := addOrderOrWaybillStatus(orderStatus, db) globals.SugarLogger.Debugf("isDuplicated 1 := %s", utils.Format4Output(isDuplicated, false)) + globals.SugarLogger.Debugf("err 1 := %s", utils.Format4Output(err, false)) if err != nil || isDuplicated { if err == nil { dao.Commit(db, txDB) From 5abc5f16e9a188c4628674f6caf24b910036bb70 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Mon, 10 Apr 2023 14:56:13 +0800 Subject: [PATCH 36/93] =?UTF-8?q?=E6=97=A5=E5=AD=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxcallback/orderman/order_afs.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/business/jxcallback/orderman/order_afs.go b/business/jxcallback/orderman/order_afs.go index 3d3201ef0..60d246994 100644 --- a/business/jxcallback/orderman/order_afs.go +++ b/business/jxcallback/orderman/order_afs.go @@ -82,6 +82,8 @@ func (c *OrderManager) onAfsOrderNew(afsOrder *model.AfsOrder, orderStatus *mode } var existAfsOrder *model.AfsOrder if existAfsOrder, err = c.loadAfsOrder(db, afsOrder.AfsOrderID, afsOrder.VendorID); err != nil { + globals.SugarLogger.Debugf("loadAfsOrder 1 := %s", utils.Format4Output(existAfsOrder, false)) + globals.SugarLogger.Debugf("loadAfsOrder err := %s", utils.Format4Output(err, false)) if !dao.IsNoRowsError(err) { return err } From a59645ba547266e794e0a01fd86e660f16e8a902 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Mon, 10 Apr 2023 15:32:57 +0800 Subject: [PATCH 37/93] 1 --- business/jxcallback/orderman/order_afs.go | 1 + 1 file changed, 1 insertion(+) diff --git a/business/jxcallback/orderman/order_afs.go b/business/jxcallback/orderman/order_afs.go index 60d246994..d1b68f93e 100644 --- a/business/jxcallback/orderman/order_afs.go +++ b/business/jxcallback/orderman/order_afs.go @@ -71,6 +71,7 @@ func (c *OrderManager) onAfsOrderNew(afsOrder *model.AfsOrder, orderStatus *mode panic(r) } }() + globals.SugarLogger.Debugf("orderStatus 2 := %s", utils.Format4Output(orderStatus, false)) isDuplicated, err := addOrderOrWaybillStatus(orderStatus, db) globals.SugarLogger.Debugf("isDuplicated 1 := %s", utils.Format4Output(isDuplicated, false)) globals.SugarLogger.Debugf("err 1 := %s", utils.Format4Output(err, false)) From b86ee6373f46f98a070dd2b47c0c1074ffed81f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Mon, 10 Apr 2023 16:21:46 +0800 Subject: [PATCH 38/93] 1 --- business/jxcallback/orderman/order_afs.go | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/business/jxcallback/orderman/order_afs.go b/business/jxcallback/orderman/order_afs.go index d1b68f93e..e9f5d8777 100644 --- a/business/jxcallback/orderman/order_afs.go +++ b/business/jxcallback/orderman/order_afs.go @@ -71,16 +71,17 @@ func (c *OrderManager) onAfsOrderNew(afsOrder *model.AfsOrder, orderStatus *mode panic(r) } }() - globals.SugarLogger.Debugf("orderStatus 2 := %s", utils.Format4Output(orderStatus, false)) - isDuplicated, err := addOrderOrWaybillStatus(orderStatus, db) - globals.SugarLogger.Debugf("isDuplicated 1 := %s", utils.Format4Output(isDuplicated, false)) - globals.SugarLogger.Debugf("err 1 := %s", utils.Format4Output(err, false)) - if err != nil || isDuplicated { - if err == nil { - dao.Commit(db, txDB) + + if orderStatus.VendorID != model.VendorIDJX { + isDuplicated, err := addOrderOrWaybillStatus(orderStatus, db) + if err != nil || isDuplicated { + if err == nil { + dao.Commit(db, txDB) + } + return err } - return err } + var existAfsOrder *model.AfsOrder if existAfsOrder, err = c.loadAfsOrder(db, afsOrder.AfsOrderID, afsOrder.VendorID); err != nil { globals.SugarLogger.Debugf("loadAfsOrder 1 := %s", utils.Format4Output(existAfsOrder, false)) From badacc25e1892b2fb23df3ae162b46d64a479696 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Mon, 10 Apr 2023 16:41:06 +0800 Subject: [PATCH 39/93] 1 --- business/jxcallback/orderman/order_afs.go | 12 +++++------- business/partner/purchase/jx/phpjx/order_afs.go | 1 + 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/business/jxcallback/orderman/order_afs.go b/business/jxcallback/orderman/order_afs.go index e9f5d8777..3766797ed 100644 --- a/business/jxcallback/orderman/order_afs.go +++ b/business/jxcallback/orderman/order_afs.go @@ -72,14 +72,12 @@ func (c *OrderManager) onAfsOrderNew(afsOrder *model.AfsOrder, orderStatus *mode } }() - if orderStatus.VendorID != model.VendorIDJX { - isDuplicated, err := addOrderOrWaybillStatus(orderStatus, db) - if err != nil || isDuplicated { - if err == nil { - dao.Commit(db, txDB) - } - return err + isDuplicated, err := addOrderOrWaybillStatus(orderStatus, db) + if err != nil || isDuplicated { + if err == nil { + dao.Commit(db, txDB) } + return err } var existAfsOrder *model.AfsOrder diff --git a/business/partner/purchase/jx/phpjx/order_afs.go b/business/partner/purchase/jx/phpjx/order_afs.go index 2e2fbd109..420d0ed1e 100644 --- a/business/partner/purchase/jx/phpjx/order_afs.go +++ b/business/partner/purchase/jx/phpjx/order_afs.go @@ -58,6 +58,7 @@ func buildAfsOrder(msg *CallbackMsg) (outAfsOrder *model.AfsOrder, err error) { VendorAppealType: afsOrder.VendorAppealType, AppealType: int8(utils.Str2Int64WithDefault(afsOrder.VendorAppealType, 0)), Flag: model.OrderFlagMaskTempJX, + RefundType: model.AfsTypeFullRefund, } outAfsOrder.Status = int(utils.Str2Int64WithDefault(afsOrder.VendorStatus, 0)) From 25c30c6a907061213062b4adc71ce6259e2bb2b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Mon, 10 Apr 2023 17:28:20 +0800 Subject: [PATCH 40/93] 1 --- business/jxcallback/orderman/order_afs.go | 18 +++++++++++------- .../partner/purchase/jx/phpjx/order_afs.go | 2 +- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/business/jxcallback/orderman/order_afs.go b/business/jxcallback/orderman/order_afs.go index 3766797ed..fde397741 100644 --- a/business/jxcallback/orderman/order_afs.go +++ b/business/jxcallback/orderman/order_afs.go @@ -38,8 +38,6 @@ func (c *OrderManager) OnAfsOrderNew(afsOrder *model.AfsOrder, orderStatus *mode } func (c *OrderManager) onAfsOrderNew(afsOrder *model.AfsOrder, orderStatus *model.OrderStatus, isAdjust bool) (err error) { - globals.SugarLogger.Debugf("afsOrder 1 := %s", utils.Format4Output(afsOrder, false)) - globals.SugarLogger.Debugf("orderStatus 1 := %s", utils.Format4Output(orderStatus, false)) db := dao.GetDB() c.setAfsOrderID(db, orderStatus) if afsOrder.AfsOrderID == "" { @@ -73,7 +71,7 @@ func (c *OrderManager) onAfsOrderNew(afsOrder *model.AfsOrder, orderStatus *mode }() isDuplicated, err := addOrderOrWaybillStatus(orderStatus, db) - if err != nil || isDuplicated { + if err != nil || (isDuplicated && orderStatus.VendorID != model.VendorIDJX) { if err == nil { dao.Commit(db, txDB) } @@ -82,14 +80,10 @@ func (c *OrderManager) onAfsOrderNew(afsOrder *model.AfsOrder, orderStatus *mode var existAfsOrder *model.AfsOrder if existAfsOrder, err = c.loadAfsOrder(db, afsOrder.AfsOrderID, afsOrder.VendorID); err != nil { - globals.SugarLogger.Debugf("loadAfsOrder 1 := %s", utils.Format4Output(existAfsOrder, false)) - globals.SugarLogger.Debugf("loadAfsOrder err := %s", utils.Format4Output(err, false)) if !dao.IsNoRowsError(err) { return err } } - globals.SugarLogger.Debugf("existAfsOrder 1 := %s", utils.Format4Output(existAfsOrder, false)) - globals.SugarLogger.Debugf("existAfsOrder != nil := %s", utils.Format4Output(existAfsOrder != nil, false)) if existAfsOrder != nil { // todo 可能导致状态回绕 @@ -104,6 +98,9 @@ func (c *OrderManager) onAfsOrderNew(afsOrder *model.AfsOrder, orderStatus *mode if afsOrder.RefundType == model.AfsTypeFullRefund { isAdjust = true } + globals.SugarLogger.Debugf("afsOrder 1 := %s", utils.Format4Output(afsOrder, false)) + globals.SugarLogger.Debugf("orderStatus 1 := %s", utils.Format4Output(orderStatus, false)) + globals.SugarLogger.Debugf("isAdjust 1 := %s", utils.Format4Output(isAdjust, false)) if err = c.SaveAfsOrder(db, afsOrder, isAdjust); err != nil { globals.SugarLogger.Debugf("SaveAfsOrder := %s", utils.Format4Output(err, false)) return err @@ -116,6 +113,9 @@ func (c *OrderManager) onAfsOrderNew(afsOrder *model.AfsOrder, orderStatus *mode } func (c *OrderManager) SaveAfsOrder(db *dao.DaoDB, afsOrder *model.AfsOrder, isDeleteFirst bool) (err error) { + defer func() { + globals.SugarLogger.Debugf("===========err defer %v", err) + }() if db == nil { db = dao.GetDB() } @@ -156,6 +156,8 @@ func (c *OrderManager) SaveAfsOrder(db *dao.DaoDB, afsOrder *model.AfsOrder, isD afsOrder.RefundMoneyByCal = afsOrder.SkuUserMoney + afsOrder.FreightUserMoney + deductionsByPm - afsOrder.PmRefundMoney // order.TotalMoney += order.SkuJxMoney // 退款单京西补贴部分先不作计算 if err = dao.CreateEntity(db, afsOrder); err != nil { + globals.SugarLogger.Debugf("=CreateEntity 1 ==========: %v", utils.Format4Output(err, false)) + globals.SugarLogger.Debugf("=afsOrder 1 ==========: %v", utils.Format4Output(afsOrder, false)) return err } @@ -165,6 +167,8 @@ func (c *OrderManager) SaveAfsOrder(db *dao.DaoDB, afsOrder *model.AfsOrder, isD utils.Float64TwoInt64(float64(afsOrder.RefundMoneyByCal-afsOrder.PmSkuSubsidyMoney)*float64(orderSku.UserMoney+orderSku.PmSubsidyMoney-orderSku.PmSkuSubsidyMoney)/float64(afsOrder.SkuUserMoney+afsOrder.PmSubsidyMoney-afsOrder.PmSkuSubsidyMoney)) afsOrder.Skus[0].RefundMoneyByCal += orderSku.RefundMoneyByCal if err = dao.CreateEntity(db, orderSku); err != nil { + globals.SugarLogger.Debugf("=CreateEntity 1 ==========: %v", utils.Format4Output(err, false)) + globals.SugarLogger.Debugf("=afsOrder 1 ==========: %v", utils.Format4Output(afsOrder, false)) return err } } diff --git a/business/partner/purchase/jx/phpjx/order_afs.go b/business/partner/purchase/jx/phpjx/order_afs.go index 420d0ed1e..3d6daf521 100644 --- a/business/partner/purchase/jx/phpjx/order_afs.go +++ b/business/partner/purchase/jx/phpjx/order_afs.go @@ -87,7 +87,7 @@ func callbackAfsMsg2Status(msg *CallbackMsg) *model.OrderStatus { RefVendorID: model.VendorIDJX, VendorStatus: msg.SubMsgType, Status: int(utils.Str2Int64WithDefault(msg.SubMsgType, 0)), - StatusTime: utils.Timestamp2Time(msg.Timestamp), + StatusTime: time.Now(), Remark: "", } return orderStatus From d0bae37a7fc701e6b601d06b0443d3facd5fc9ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Mon, 10 Apr 2023 17:39:05 +0800 Subject: [PATCH 41/93] 1 --- business/partner/purchase/jx/order_afs.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/business/partner/purchase/jx/order_afs.go b/business/partner/purchase/jx/order_afs.go index 730aa90ea..746726e50 100644 --- a/business/partner/purchase/jx/order_afs.go +++ b/business/partner/purchase/jx/order_afs.go @@ -177,5 +177,11 @@ func isJxShop(appID string) bool { } func (c *PurchaseHandler) GetOrderAfsInfo(ctx *jxcontext.Context, vendorOrderID, afsOrderID string) (orderAfsInfo *partner.OrderAfsInfo, err error) { + orderAfsInfo = &partner.OrderAfsInfo{} + + if order, err := partner.CurOrderManager.LoadOrder(vendorOrderID, model.VendorIDJX); err == nil { + orderAfsInfo.AfsTotalShopMoney = order.TotalShopMoney + } + orderAfsInfo.VendorOrderID = vendorOrderID return orderAfsInfo, err } From 56ad26ba07d9223dcac6bdd40b968b00bfe475f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Tue, 11 Apr 2023 09:34:12 +0800 Subject: [PATCH 42/93] 1 --- business/jxcallback/orderman/order_afs.go | 14 +------------- business/partner/purchase/jx/order_afs.go | 3 +++ 2 files changed, 4 insertions(+), 13 deletions(-) diff --git a/business/jxcallback/orderman/order_afs.go b/business/jxcallback/orderman/order_afs.go index fde397741..87d1901cb 100644 --- a/business/jxcallback/orderman/order_afs.go +++ b/business/jxcallback/orderman/order_afs.go @@ -50,11 +50,9 @@ func (c *OrderManager) onAfsOrderNew(afsOrder *model.AfsOrder, orderStatus *mode afsOrder.Status = orderStatus.Status } if order, _ := c.LoadOrder(afsOrder.VendorOrderID, afsOrder.VendorID); order != nil { - globals.SugarLogger.Debugf("order 1 := %s", utils.Format4Output(order, false)) if order.ConsigneeMobile2 == "" { if handler := partner.GetPurchaseOrderHandlerFromVendorID(order.VendorID); handler != nil { if order2, _ := handler.GetOrder(order.VendorOrgCode, order.VendorOrderID, order.VendorStoreID); order2 != nil && order.ConsigneeMobile != order2.ConsigneeMobile { - globals.SugarLogger.Debugf("order 2 := %s", utils.Format4Output(order2, false)) order.ConsigneeMobile = order2.ConsigneeMobile c.UpdateOrderFields(order, []string{"ConsigneeMobile"}) } @@ -98,11 +96,7 @@ func (c *OrderManager) onAfsOrderNew(afsOrder *model.AfsOrder, orderStatus *mode if afsOrder.RefundType == model.AfsTypeFullRefund { isAdjust = true } - globals.SugarLogger.Debugf("afsOrder 1 := %s", utils.Format4Output(afsOrder, false)) - globals.SugarLogger.Debugf("orderStatus 1 := %s", utils.Format4Output(orderStatus, false)) - globals.SugarLogger.Debugf("isAdjust 1 := %s", utils.Format4Output(isAdjust, false)) if err = c.SaveAfsOrder(db, afsOrder, isAdjust); err != nil { - globals.SugarLogger.Debugf("SaveAfsOrder := %s", utils.Format4Output(err, false)) return err } } @@ -113,9 +107,6 @@ func (c *OrderManager) onAfsOrderNew(afsOrder *model.AfsOrder, orderStatus *mode } func (c *OrderManager) SaveAfsOrder(db *dao.DaoDB, afsOrder *model.AfsOrder, isDeleteFirst bool) (err error) { - defer func() { - globals.SugarLogger.Debugf("===========err defer %v", err) - }() if db == nil { db = dao.GetDB() } @@ -155,9 +146,8 @@ func (c *OrderManager) SaveAfsOrder(db *dao.DaoDB, afsOrder *model.AfsOrder, isD deductionsByPm := afsOrder.PmSubsidyMoney + afsOrder.AfsFreightMoney + afsOrder.BoxMoney + afsOrder.TongchengFreightMoney afsOrder.RefundMoneyByCal = afsOrder.SkuUserMoney + afsOrder.FreightUserMoney + deductionsByPm - afsOrder.PmRefundMoney // order.TotalMoney += order.SkuJxMoney // 退款单京西补贴部分先不作计算 + globals.SugarLogger.Debugf("=====SaveAfsOrder===== := %s", utils.Format4Output(afsOrder, false)) if err = dao.CreateEntity(db, afsOrder); err != nil { - globals.SugarLogger.Debugf("=CreateEntity 1 ==========: %v", utils.Format4Output(err, false)) - globals.SugarLogger.Debugf("=afsOrder 1 ==========: %v", utils.Format4Output(afsOrder, false)) return err } @@ -167,8 +157,6 @@ func (c *OrderManager) SaveAfsOrder(db *dao.DaoDB, afsOrder *model.AfsOrder, isD utils.Float64TwoInt64(float64(afsOrder.RefundMoneyByCal-afsOrder.PmSkuSubsidyMoney)*float64(orderSku.UserMoney+orderSku.PmSubsidyMoney-orderSku.PmSkuSubsidyMoney)/float64(afsOrder.SkuUserMoney+afsOrder.PmSubsidyMoney-afsOrder.PmSkuSubsidyMoney)) afsOrder.Skus[0].RefundMoneyByCal += orderSku.RefundMoneyByCal if err = dao.CreateEntity(db, orderSku); err != nil { - globals.SugarLogger.Debugf("=CreateEntity 1 ==========: %v", utils.Format4Output(err, false)) - globals.SugarLogger.Debugf("=afsOrder 1 ==========: %v", utils.Format4Output(afsOrder, false)) return err } } diff --git a/business/partner/purchase/jx/order_afs.go b/business/partner/purchase/jx/order_afs.go index 746726e50..7b34ce0c3 100644 --- a/business/partner/purchase/jx/order_afs.go +++ b/business/partner/purchase/jx/order_afs.go @@ -47,6 +47,9 @@ func (c *PurchaseHandler) AgreeOrRefuseRefund(ctx *jxcontext.Context, order *mod if orderPays[0].PayType == model.PayTypeTicTok { _, err = localjx.RefundOrderByTT(ctx, orderPays[0], order.VendorOrderID, int(order.SkuUserMoney), reason) } + if orderPays[0].PayType == model.PayTypeKuaiShou { + _, err = localjx.RefundOrderByKS(ctx, orderPays[0], order.VendorOrderID, int(order.SkuUserMoney), reason) + } if err != nil { return err } else { From c5da1712062945167c61ba3f1e9baf2eb55fc2e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Tue, 11 Apr 2023 10:04:07 +0800 Subject: [PATCH 43/93] 1 --- business/jxcallback/orderman/order_afs.go | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/business/jxcallback/orderman/order_afs.go b/business/jxcallback/orderman/order_afs.go index 87d1901cb..ceaea5b64 100644 --- a/business/jxcallback/orderman/order_afs.go +++ b/business/jxcallback/orderman/order_afs.go @@ -38,6 +38,8 @@ func (c *OrderManager) OnAfsOrderNew(afsOrder *model.AfsOrder, orderStatus *mode } func (c *OrderManager) onAfsOrderNew(afsOrder *model.AfsOrder, orderStatus *model.OrderStatus, isAdjust bool) (err error) { + globals.SugarLogger.Debugf("=afsOrder1========== :=%v", utils.Format4Output(afsOrder, false)) + db := dao.GetDB() c.setAfsOrderID(db, orderStatus) if afsOrder.AfsOrderID == "" { @@ -69,6 +71,9 @@ func (c *OrderManager) onAfsOrderNew(afsOrder *model.AfsOrder, orderStatus *mode }() isDuplicated, err := addOrderOrWaybillStatus(orderStatus, db) + globals.SugarLogger.Debugf("=isDuplicated========== :=%s", utils.Format4Output(isDuplicated, false)) + globals.SugarLogger.Debugf("=err========== :=%v", utils.Format4Output(err, false)) + globals.SugarLogger.Debugf("=orderStatus========== :=%v", utils.Format4Output(orderStatus, false)) if err != nil || (isDuplicated && orderStatus.VendorID != model.VendorIDJX) { if err == nil { dao.Commit(db, txDB) @@ -76,8 +81,10 @@ func (c *OrderManager) onAfsOrderNew(afsOrder *model.AfsOrder, orderStatus *mode return err } - var existAfsOrder *model.AfsOrder - if existAfsOrder, err = c.loadAfsOrder(db, afsOrder.AfsOrderID, afsOrder.VendorID); err != nil { + existAfsOrder, err := c.loadAfsOrder(db, afsOrder.AfsOrderID, afsOrder.VendorID) + globals.SugarLogger.Debugf("=existAfsOrder========== :=%v", utils.Format4Output(existAfsOrder, false)) + globals.SugarLogger.Debugf("=err========== :=%v", utils.Format4Output(err, false)) + if err != nil { if !dao.IsNoRowsError(err) { return err } @@ -96,6 +103,7 @@ func (c *OrderManager) onAfsOrderNew(afsOrder *model.AfsOrder, orderStatus *mode if afsOrder.RefundType == model.AfsTypeFullRefund { isAdjust = true } + globals.SugarLogger.Debugf("=afsOrder==========2 :=%v", utils.Format4Output(afsOrder, false)) if err = c.SaveAfsOrder(db, afsOrder, isAdjust); err != nil { return err } From 9bc1ba4cbc557900b8533211c6e422018e744349 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Tue, 11 Apr 2023 13:53:51 +0800 Subject: [PATCH 44/93] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=B0=8F=E7=A8=8B?= =?UTF-8?q?=E5=BA=8F=E6=94=AF=E4=BB=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxcallback/orderman/order_afs.go | 9 ------ .../scheduler/basesch/basesch_ext.go | 2 +- .../partner/purchase/jx/phpjx/order_afs.go | 32 ++++++++++++++++++- 3 files changed, 32 insertions(+), 11 deletions(-) diff --git a/business/jxcallback/orderman/order_afs.go b/business/jxcallback/orderman/order_afs.go index ceaea5b64..510c0b675 100644 --- a/business/jxcallback/orderman/order_afs.go +++ b/business/jxcallback/orderman/order_afs.go @@ -38,8 +38,6 @@ func (c *OrderManager) OnAfsOrderNew(afsOrder *model.AfsOrder, orderStatus *mode } func (c *OrderManager) onAfsOrderNew(afsOrder *model.AfsOrder, orderStatus *model.OrderStatus, isAdjust bool) (err error) { - globals.SugarLogger.Debugf("=afsOrder1========== :=%v", utils.Format4Output(afsOrder, false)) - db := dao.GetDB() c.setAfsOrderID(db, orderStatus) if afsOrder.AfsOrderID == "" { @@ -71,9 +69,6 @@ func (c *OrderManager) onAfsOrderNew(afsOrder *model.AfsOrder, orderStatus *mode }() isDuplicated, err := addOrderOrWaybillStatus(orderStatus, db) - globals.SugarLogger.Debugf("=isDuplicated========== :=%s", utils.Format4Output(isDuplicated, false)) - globals.SugarLogger.Debugf("=err========== :=%v", utils.Format4Output(err, false)) - globals.SugarLogger.Debugf("=orderStatus========== :=%v", utils.Format4Output(orderStatus, false)) if err != nil || (isDuplicated && orderStatus.VendorID != model.VendorIDJX) { if err == nil { dao.Commit(db, txDB) @@ -82,8 +77,6 @@ func (c *OrderManager) onAfsOrderNew(afsOrder *model.AfsOrder, orderStatus *mode } existAfsOrder, err := c.loadAfsOrder(db, afsOrder.AfsOrderID, afsOrder.VendorID) - globals.SugarLogger.Debugf("=existAfsOrder========== :=%v", utils.Format4Output(existAfsOrder, false)) - globals.SugarLogger.Debugf("=err========== :=%v", utils.Format4Output(err, false)) if err != nil { if !dao.IsNoRowsError(err) { return err @@ -103,7 +96,6 @@ func (c *OrderManager) onAfsOrderNew(afsOrder *model.AfsOrder, orderStatus *mode if afsOrder.RefundType == model.AfsTypeFullRefund { isAdjust = true } - globals.SugarLogger.Debugf("=afsOrder==========2 :=%v", utils.Format4Output(afsOrder, false)) if err = c.SaveAfsOrder(db, afsOrder, isAdjust); err != nil { return err } @@ -154,7 +146,6 @@ func (c *OrderManager) SaveAfsOrder(db *dao.DaoDB, afsOrder *model.AfsOrder, isD deductionsByPm := afsOrder.PmSubsidyMoney + afsOrder.AfsFreightMoney + afsOrder.BoxMoney + afsOrder.TongchengFreightMoney afsOrder.RefundMoneyByCal = afsOrder.SkuUserMoney + afsOrder.FreightUserMoney + deductionsByPm - afsOrder.PmRefundMoney // order.TotalMoney += order.SkuJxMoney // 退款单京西补贴部分先不作计算 - globals.SugarLogger.Debugf("=====SaveAfsOrder===== := %s", utils.Format4Output(afsOrder, false)) if err = dao.CreateEntity(db, afsOrder); err != nil { return err } diff --git a/business/jxcallback/scheduler/basesch/basesch_ext.go b/business/jxcallback/scheduler/basesch/basesch_ext.go index bcc619432..5559583d1 100644 --- a/business/jxcallback/scheduler/basesch/basesch_ext.go +++ b/business/jxcallback/scheduler/basesch/basesch_ext.go @@ -280,7 +280,7 @@ func (c *BaseScheduler) AgreeOrRefuseRefund(ctx *jxcontext.Context, afsOrderID s } } - if approveType != partner.AfsApproveTypeRefused { + if approveType != partner.AfsApproveTypeRefused && err == nil { storeDetail, err := partner.CurOrderManager.LoadStoreDetail(afsOrder.StoreID, afsOrder.VendorID) if err != nil { return err diff --git a/business/partner/purchase/jx/phpjx/order_afs.go b/business/partner/purchase/jx/phpjx/order_afs.go index 3d6daf521..a8bdd3e42 100644 --- a/business/partner/purchase/jx/phpjx/order_afs.go +++ b/business/partner/purchase/jx/phpjx/order_afs.go @@ -1,6 +1,7 @@ package phpjx import ( + "git.rosy.net.cn/jx-callback/business/model/dao" "time" "git.rosy.net.cn/baseapi/platformapi/jdapi" @@ -58,10 +59,12 @@ func buildAfsOrder(msg *CallbackMsg) (outAfsOrder *model.AfsOrder, err error) { VendorAppealType: afsOrder.VendorAppealType, AppealType: int8(utils.Str2Int64WithDefault(afsOrder.VendorAppealType, 0)), Flag: model.OrderFlagMaskTempJX, - RefundType: model.AfsTypeFullRefund, } outAfsOrder.Status = int(utils.Str2Int64WithDefault(afsOrder.VendorStatus, 0)) + skuNumber := 0 // 申请退款商品种类个数 + skuCount := 0 // 申请商品退款总条数 + refundMoney := 0 for _, x := range afsOrder.Skus { orderSku := &model.OrderSkuFinancial{ Count: x.Count, @@ -73,6 +76,33 @@ func buildAfsOrder(msg *CallbackMsg) (outAfsOrder *model.AfsOrder, err error) { orderSku.StoreSubName = utils.Int2Str(x.PromotionType) } outAfsOrder.Skus = append(outAfsOrder.Skus, orderSku) + skuCount += orderSku.Count + skuNumber++ + refundMoney += x.Count * int(x.SalePrice) + } + + // 获取订单商品列表 + skuList, err := dao.GetSimpleOrderSkus(dao.GetDB(), afsOrder.VendorOrderID, nil) + if err != nil { + return nil, err + } + orderSkuNumber := 0 + orderSkuCount := 0 + for _, v := range skuList { + orderSkuNumber++ + orderSkuCount += v.Count + } + if skuNumber == orderSkuNumber && skuCount == orderSkuCount { + // 全额退款,退还支付款项(商品+运费) + order, err := dao.GetSimpleOrder(dao.GetDB(), afsOrder.VendorOrderID) + if err != nil { + return nil, err + } + outAfsOrder.RefundType = model.AfsTypeFullRefund + outAfsOrder.SkuUserMoney = order.ActualPayPrice + } else { // 部分退款,只退还商品部分 + outAfsOrder.RefundType = model.AfsTypePartRefund + outAfsOrder.SkuUserMoney = int64(refundMoney) } } return outAfsOrder, err From b352e8f440157a69d78d7ffe8f13d0408974d0d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Tue, 11 Apr 2023 14:10:41 +0800 Subject: [PATCH 45/93] 1 --- business/partner/purchase/jx/localjx/order.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index e4c2b6751..28c372e93 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -843,7 +843,7 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64 if jxOrder.OrderType != model.OrderTypeMatter || (jxOrder.OrderType == model.OrderTypeMatter && fromStoreID == -1) { outJxOrder.Skus = append(outJxOrder.Skus, jxSku) outJxOrder.OrderPrice += int64(jxSku.Count) * jxSku.SalePrice - } else { //以下else为物料订单袋子金额和数量处理 + } else { //以下else为物料订单袋子金额和数量处理 if !result.Flag { //只要flag是false就按原价申请,是true再按订单量 outJxOrder.Skus = append(outJxOrder.Skus, jxSku) outJxOrder.OrderPrice += int64(jxSku.Count) * jxSku.SalePrice @@ -1032,6 +1032,11 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64 if storeDetail.ID == 668470 || storeDetail.ID == 668469 { outJxOrder.FreightPrice = 1 } + + if IsDeliverySelf { + outJxOrder.FreightPrice = 0 + } + if err == nil { if jxOrder.OrderType == model.OrderTypeNormal { outJxOrder.TotalPrice = outJxOrder.OrderPrice + outJxOrder.FreightPrice From 28a72de6a62bdab80a20fc0762fbfc79198f6101 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Tue, 11 Apr 2023 14:46:44 +0800 Subject: [PATCH 46/93] 1 --- business/partner/purchase/jx/phpjx/order_afs.go | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/business/partner/purchase/jx/phpjx/order_afs.go b/business/partner/purchase/jx/phpjx/order_afs.go index a8bdd3e42..5259464f0 100644 --- a/business/partner/purchase/jx/phpjx/order_afs.go +++ b/business/partner/purchase/jx/phpjx/order_afs.go @@ -71,6 +71,7 @@ func buildAfsOrder(msg *CallbackMsg) (outAfsOrder *model.AfsOrder, err error) { VendorSkuID: x.VendorSkuID, SkuID: int(utils.Str2Int64WithDefault(x.VendorSkuID, 0)), Name: x.Name, + UserMoney: x.SalePrice * int64(x.Count), } if x.PromotionType != 0 && x.PromotionType != jdapi.PromotionTypeNormal { orderSku.StoreSubName = utils.Int2Str(x.PromotionType) @@ -93,16 +94,9 @@ func buildAfsOrder(msg *CallbackMsg) (outAfsOrder *model.AfsOrder, err error) { orderSkuCount += v.Count } if skuNumber == orderSkuNumber && skuCount == orderSkuCount { - // 全额退款,退还支付款项(商品+运费) - order, err := dao.GetSimpleOrder(dao.GetDB(), afsOrder.VendorOrderID) - if err != nil { - return nil, err - } outAfsOrder.RefundType = model.AfsTypeFullRefund - outAfsOrder.SkuUserMoney = order.ActualPayPrice } else { // 部分退款,只退还商品部分 outAfsOrder.RefundType = model.AfsTypePartRefund - outAfsOrder.SkuUserMoney = int64(refundMoney) } } return outAfsOrder, err From d39d080882a4dc0cd4cf375029edd77dfa82e766 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Tue, 11 Apr 2023 15:07:09 +0800 Subject: [PATCH 47/93] 1 --- business/jxcallback/scheduler/basesch/basesch_ext.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/business/jxcallback/scheduler/basesch/basesch_ext.go b/business/jxcallback/scheduler/basesch/basesch_ext.go index 5559583d1..872f6466a 100644 --- a/business/jxcallback/scheduler/basesch/basesch_ext.go +++ b/business/jxcallback/scheduler/basesch/basesch_ext.go @@ -110,7 +110,8 @@ func (c *BaseScheduler) PickupGoodsAndUpdateStatus(ctx *jxcontext.Context, vendo order.Status = model.OrderStatusFinished order.VendorStatus = utils.Int64ToStr(model.OrderStatusFinished) order.Flag = 128 - dao.UpdateEntity(dao.GetDB(), order, "Status", "VendorStatus", "Flag") + order.OrderFinishedAt = time.Now() + dao.UpdateEntity(dao.GetDB(), order, "Status", "VendorStatus", "Flag", "OrderFinishedAt") } } return err From daea96600a5000ed11365a60fc0fcf0d64be49c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Tue, 11 Apr 2023 17:16:12 +0800 Subject: [PATCH 48/93] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=94=AE=E5=90=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxcallback/orderman/order_afs.go | 12 ++++-- .../partner/purchase/jx/phpjx/order_afs.go | 42 ++++++++++++++++++- 2 files changed, 49 insertions(+), 5 deletions(-) diff --git a/business/jxcallback/orderman/order_afs.go b/business/jxcallback/orderman/order_afs.go index 510c0b675..530eebc64 100644 --- a/business/jxcallback/orderman/order_afs.go +++ b/business/jxcallback/orderman/order_afs.go @@ -330,8 +330,9 @@ func (c *OrderManager) updateAfsOrderOtherInfo(db *dao.DaoDB, afsOrder *model.Af afsOrder.JxStoreID = storeDetail.Store.ID } } + order, err2 := c.LoadOrder(afsOrder.VendorOrderID, afsOrder.VendorID) if afsOrder.StoreID == 0 && afsOrder.JxStoreID == 0 { - if order, err2 := c.LoadOrder(afsOrder.VendorOrderID, afsOrder.VendorID); err2 == nil { + if err2 == nil { afsOrder.JxStoreID = order.JxStoreID if afsOrder.StoreID == 0 { afsOrder.StoreID = order.StoreID @@ -349,6 +350,9 @@ func (c *OrderManager) updateAfsOrderOtherInfo(db *dao.DaoDB, afsOrder *model.Af } if err = c.updateAfsOrderSkuOtherInfo(db, afsOrder); err == nil { jxutils.RefreshAfsOrderSkuRelated(afsOrder) + if afsOrder.RefundType == model.AfsTypeFullRefund && afsOrder.VendorID == model.VendorIDJX && order.DeliveryType != model.OrderDeliveryTypeSelfTake { + afsOrder.SkuUserMoney += order.ActualPayPrice + } } } return err @@ -371,9 +375,9 @@ func (c *OrderManager) setAfsOrderID(db *dao.DaoDB, orderStatus *model.OrderStat list := strings.Split(afsOrderList[0].AfsOrderID, "-") if len(list) > 1 { index = int(utils.Str2Int64WithDefault(list[1], 0)) - if afsOrderList[0].Status >= model.AfsOrderStatusFinished { - index++ - } + //if afsOrderList[0].Status >= model.AfsOrderStatusFinished { + index++ + //} } } } else { diff --git a/business/partner/purchase/jx/phpjx/order_afs.go b/business/partner/purchase/jx/phpjx/order_afs.go index 5259464f0..78727962b 100644 --- a/business/partner/purchase/jx/phpjx/order_afs.go +++ b/business/partner/purchase/jx/phpjx/order_afs.go @@ -1,7 +1,9 @@ package phpjx import ( + "fmt" "git.rosy.net.cn/jx-callback/business/model/dao" + "strings" "time" "git.rosy.net.cn/baseapi/platformapi/jdapi" @@ -40,9 +42,36 @@ func OnAfsOrderMsg(msg *CallbackMsg) (err error) { return err } +func CheckOrderSkuCanRefund(db *dao.DaoDB, afsOrder *Data4AfsOrder) error { + // 获取此订单商品吃否存在售后单 + refundFinancial, err := dao.GetStoreAfsOrderSkuList2(db, []string{afsOrder.VendorOrderID}) + if err != nil && !strings.Contains(err.Error(), "no row found") { + return err + } + + if len(refundFinancial) == model.NO { + return nil + } + + for _, r := range refundFinancial { + for _, s := range afsOrder.Skus { + if r.SkuID == utils.Str2Int(s.VendorSkuID) { + return fmt.Errorf("商品:[%s],已经存在售后单无法重复申请", s.Name) + } + } + } + + return nil +} + func buildAfsOrder(msg *CallbackMsg) (outAfsOrder *model.AfsOrder, err error) { var afsOrder *Data4AfsOrder + var db = dao.GetDB() if err = utils.UnmarshalUseNumber([]byte(msg.Data), &afsOrder); err == nil { + if err := CheckOrderSkuCanRefund(db, afsOrder); err != nil { + return nil, err + } + outAfsOrder = &model.AfsOrder{ VendorID: model.VendorIDJX, AfsOrderID: afsOrder.AfsOrderID, @@ -65,6 +94,7 @@ func buildAfsOrder(msg *CallbackMsg) (outAfsOrder *model.AfsOrder, err error) { skuNumber := 0 // 申请退款商品种类个数 skuCount := 0 // 申请商品退款总条数 refundMoney := 0 + // 当前申请退款的商品 for _, x := range afsOrder.Skus { orderSku := &model.OrderSkuFinancial{ Count: x.Count, @@ -81,8 +111,18 @@ func buildAfsOrder(msg *CallbackMsg) (outAfsOrder *model.AfsOrder, err error) { skuNumber++ refundMoney += x.Count * int(x.SalePrice) } + // 已经退款商品 + refundFinancial, err := dao.GetStoreAfsOrderSkuList2(db, []string{afsOrder.VendorOrderID}) + if err != nil && !dao.IsNoRowsError(err) { + return nil, err + } + for _, f := range refundFinancial { + skuCount += f.Count + skuNumber++ + refundMoney += f.Count * int(f.SalePrice) + } - // 获取订单商品列表 + // 获取订单商品列表(所有的订单商品) skuList, err := dao.GetSimpleOrderSkus(dao.GetDB(), afsOrder.VendorOrderID, nil) if err != nil { return nil, err From 718f9b29dc78f355a32c1d3382c147fa9a6912cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Tue, 11 Apr 2023 17:40:56 +0800 Subject: [PATCH 49/93] 1 --- business/model/dao/dao_order.go | 16 ++++++++++++++++ business/partner/purchase/jx/phpjx/order_afs.go | 4 ++-- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/business/model/dao/dao_order.go b/business/model/dao/dao_order.go index 3ea92e52b..e26b5f719 100644 --- a/business/model/dao/dao_order.go +++ b/business/model/dao/dao_order.go @@ -506,6 +506,22 @@ func GetStoreAfsOrderSkuList2(db *DaoDB, vendorOrderIDs []string) (afsSkuList [] return afsSkuList, err } +func GetOrderRefundSkuList(db *DaoDB, vendorOrderIDs []string) (afsSkuList []*model.OrderSkuFinancial, err error) { + sql := ` + SELECT t1.* + FROM order_sku_financial t1 + JOIN afs_order t2 ON t2.vendor_order_id = t1.vendor_order_id AND t2.vendor_id = t1.vendor_id AND t2.afs_order_id = t1.afs_order_id + WHERE t1.is_afs_order = 1 + ` + sqlParams := []interface{}{} + if len(vendorOrderIDs) > 0 { + sql += " AND t2.vendor_order_id IN (" + GenQuestionMarks(len(vendorOrderIDs)) + ")" + sqlParams = append(sqlParams, vendorOrderIDs) + } + err = GetRows(db, &afsSkuList, sql, sqlParams...) + return afsSkuList, err +} + func GetDailyFinishOrderList(db *DaoDB, storeID int, dateTime time.Time) (orderList []*model.OrderPickupTime, err error) { sql := ` SELECT t2.status_time, t1.pick_deadline diff --git a/business/partner/purchase/jx/phpjx/order_afs.go b/business/partner/purchase/jx/phpjx/order_afs.go index 78727962b..058b1f0c6 100644 --- a/business/partner/purchase/jx/phpjx/order_afs.go +++ b/business/partner/purchase/jx/phpjx/order_afs.go @@ -44,9 +44,9 @@ func OnAfsOrderMsg(msg *CallbackMsg) (err error) { func CheckOrderSkuCanRefund(db *dao.DaoDB, afsOrder *Data4AfsOrder) error { // 获取此订单商品吃否存在售后单 - refundFinancial, err := dao.GetStoreAfsOrderSkuList2(db, []string{afsOrder.VendorOrderID}) + refundFinancial, err := dao.GetOrderRefundSkuList(db, []string{afsOrder.VendorOrderID}) if err != nil && !strings.Contains(err.Error(), "no row found") { - return err + return nil } if len(refundFinancial) == model.NO { From ff26bcdb00d637583870039b6b03ab7a22d20380 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Wed, 12 Apr 2023 09:43:33 +0800 Subject: [PATCH 50/93] 1 --- business/jxcallback/orderman/order_afs.go | 2 +- .../partner/purchase/jx/phpjx/order_afs.go | 30 ++++++++++++++++--- .../purchase/tiktok_store/order_afs_utils.go | 8 ++--- 3 files changed, 31 insertions(+), 9 deletions(-) diff --git a/business/jxcallback/orderman/order_afs.go b/business/jxcallback/orderman/order_afs.go index 530eebc64..e361d0cdc 100644 --- a/business/jxcallback/orderman/order_afs.go +++ b/business/jxcallback/orderman/order_afs.go @@ -351,7 +351,7 @@ func (c *OrderManager) updateAfsOrderOtherInfo(db *dao.DaoDB, afsOrder *model.Af if err = c.updateAfsOrderSkuOtherInfo(db, afsOrder); err == nil { jxutils.RefreshAfsOrderSkuRelated(afsOrder) if afsOrder.RefundType == model.AfsTypeFullRefund && afsOrder.VendorID == model.VendorIDJX && order.DeliveryType != model.OrderDeliveryTypeSelfTake { - afsOrder.SkuUserMoney += order.ActualPayPrice + afsOrder.SkuUserMoney = order.ActualPayPrice } } } diff --git a/business/partner/purchase/jx/phpjx/order_afs.go b/business/partner/purchase/jx/phpjx/order_afs.go index 058b1f0c6..2bf21a1c5 100644 --- a/business/partner/purchase/jx/phpjx/order_afs.go +++ b/business/partner/purchase/jx/phpjx/order_afs.go @@ -1,6 +1,7 @@ package phpjx import ( + "errors" "fmt" "git.rosy.net.cn/jx-callback/business/model/dao" "strings" @@ -8,7 +9,6 @@ import ( "git.rosy.net.cn/baseapi/platformapi/jdapi" "git.rosy.net.cn/baseapi/utils" - "git.rosy.net.cn/jx-callback/business/jxutils" "git.rosy.net.cn/jx-callback/business/model" "git.rosy.net.cn/jx-callback/business/partner" ) @@ -36,9 +36,9 @@ type Data4AfsOrder struct { } func OnAfsOrderMsg(msg *CallbackMsg) (err error) { - jxutils.CallMsgHandlerAsync(func() { - err = onAfsOrderMsg(msg) - }, jxutils.ComposeUniversalOrderID(msg.ThingID, model.VendorIDJX)) + //jxutils.CallMsgHandlerAsync(func() { + err = onAfsOrderMsg(msg) + //}, jxutils.ComposeUniversalOrderID(msg.ThingID, model.VendorIDJX)) return err } @@ -61,6 +61,22 @@ func CheckOrderSkuCanRefund(db *dao.DaoDB, afsOrder *Data4AfsOrder) error { } } + // 获取用户下单商品列表 + skuList, err := dao.GetSimpleOrderSkus(dao.GetDB(), afsOrder.VendorOrderID, nil) + if err != nil { + return err + } + + var really = make(map[int]bool, 0) + for _, s := range skuList { + really[s.SkuID] = true + } + for _, v := range afsOrder.Skus { + if _, ok := really[utils.Str2Int(v.VendorSkuID)]; !ok { + return fmt.Errorf("商品:[%s],不是购买商品", v.Name) + } + } + return nil } @@ -127,6 +143,12 @@ func buildAfsOrder(msg *CallbackMsg) (outAfsOrder *model.AfsOrder, err error) { if err != nil { return nil, err } + + // 最后一个商品 + if len(skuList) == len(refundFinancial)+len(afsOrder.Skus) { + return nil, errors.New("如需整单退款,请使用整单退,无法分批次整单退款") + } + orderSkuNumber := 0 orderSkuCount := 0 for _, v := range skuList { diff --git a/business/partner/purchase/tiktok_store/order_afs_utils.go b/business/partner/purchase/tiktok_store/order_afs_utils.go index 53f2718ab..e085e067c 100644 --- a/business/partner/purchase/tiktok_store/order_afs_utils.go +++ b/business/partner/purchase/tiktok_store/order_afs_utils.go @@ -186,20 +186,20 @@ func (c *PurchaseHandler) callbackAfsMsg2Status(msgId string, msg interface{}) ( RefVendorOrderID: utils.Int64ToStr(refundOrder.PId), RefVendorID: model.VendorIDDD, VendorStatus: fmt.Sprintf("%s:%s", "order", "refund_success"), - Status: c.GetAfsStatusFromVendorStatus(refundOrder.AftersaleType, tiktokShop.CallbackUpdateRefundOrderMsgTagId), + Status: c.GetAfsStatusFromVendorStatus(int(refundOrder.AftersaleType), tiktokShop.CallbackUpdateRefundOrderMsgTagId), StatusTime: utils.Timestamp2Time(int64(refundOrder.SuccessTime)), } - if k, ok := ReasonCodeMap[refundOrder.ReasonCode]; ok { + if k, ok := ReasonCodeMap[int(refundOrder.ReasonCode)]; ok { orderMsg.Remark = k } else { - orderMsg.Remark = "退款成功回调,抖音reason_code对应reason不足,需要更新.code:" + utils.Int2Str(refundOrder.ReasonCode) + orderMsg.Remark = "退款成功回调,抖音reason_code对应reason不足,需要更新.code:" + utils.Int64ToStr(refundOrder.ReasonCode) } if refundOrder.AftersaleId > 0 { orderMsg.VendorOrderID = utils.Int64ToStr(refundOrder.AftersaleId) } else { orderMsg.VendorOrderID = orderMsg.RefVendorOrderID } - vendorOrgCode = refundOrder.ShopId + vendorOrgCode = int(refundOrder.ShopId) orderStatus = orderMsg case tiktokShop.CallbackRefundOrderRefuseMsgTagId: // 拒绝退款消息 refundOrder := msg.(tiktokShop.BusinessNotRefundRefusedData) From 875d7b7854f76164c120ae75276db4ae0ec9e5f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Wed, 12 Apr 2023 10:09:13 +0800 Subject: [PATCH 51/93] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=94=AE=E5=90=8E?= =?UTF-8?q?=E6=88=90=E5=8A=9F,=E5=8F=96=E6=B6=88=E8=AE=A2=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../partner/purchase/tiktok_store/order_afs_utils.go | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/business/partner/purchase/tiktok_store/order_afs_utils.go b/business/partner/purchase/tiktok_store/order_afs_utils.go index e085e067c..df46b1996 100644 --- a/business/partner/purchase/tiktok_store/order_afs_utils.go +++ b/business/partner/purchase/tiktok_store/order_afs_utils.go @@ -47,6 +47,7 @@ func (c *PurchaseHandler) OnAfsOrderMsg(msgId, orderId string, msg interface{}) // todo 对于退款与部分退款,order.go与这个文件中对于状态的处理不一致 func (c *PurchaseHandler) onAfsOrderMsg(msgId string, msg interface{}) (retVal *tiktokShop.CallbackResponse) { var err error + var db = dao.GetDB() orderStatus, vendorOrgCode := c.callbackAfsMsg2Status(msgId, msg) if orderStatus == nil { return tiktokShop.Err2CallbackResponse(nil, "") @@ -115,14 +116,20 @@ func (c *PurchaseHandler) onAfsOrderMsg(msgId string, msg interface{}) (retVal * afsOrder.AfsFinishedAt = afsOrder.AfsCreatedAt } if msgId == tiktokShop.CallbackUpdateRefundOrderMsgTagId { - _, err = dao.DeleteEntity(dao.GetDB(), afsOrder, "VendorOrderID", "VendorID") + _, err = dao.DeleteEntity(db, afsOrder, "VendorOrderID", "VendorID") afsOrder.Skus[0].VendorOrderID = afsOrder.VendorOrderID - _, err = dao.DeleteEntity(dao.GetDB(), afsOrder.Skus[0], "VendorOrderID") + _, err = dao.DeleteEntity(db, afsOrder.Skus[0], "VendorOrderID") } err = partner.CurOrderManager.OnAfsOrderNew(afsOrder, orderStatus) } } else { err = partner.CurOrderManager.OnAfsOrderStatusChanged(orderStatus) + if err == nil && msgId == tiktokShop.CallbackReturnRefundAgreedMsgTagId { + goodsOrder, _ := partner.CurOrderManager.LoadOrder(orderStatus.VendorOrderID, orderStatus.VendorID) + goodsOrder.Status = model.OrderStatusCanceled + goodsOrder.VendorStatus = orderStatus.VendorStatus + dao.UpdateEntity(db, goodsOrder, "Status", "VendorStatus") + } } return tiktokShop.Err2CallbackResponse(err, "") From 0e4657d57413adab2560c7b5407bbae8ca960e78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Wed, 12 Apr 2023 10:25:02 +0800 Subject: [PATCH 52/93] 1 --- business/partner/purchase/tiktok_store/order_afs_utils.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/business/partner/purchase/tiktok_store/order_afs_utils.go b/business/partner/purchase/tiktok_store/order_afs_utils.go index df46b1996..e8350c832 100644 --- a/business/partner/purchase/tiktok_store/order_afs_utils.go +++ b/business/partner/purchase/tiktok_store/order_afs_utils.go @@ -7,6 +7,7 @@ import ( "git.rosy.net.cn/jx-callback/business/model" "git.rosy.net.cn/jx-callback/business/model/dao" "git.rosy.net.cn/jx-callback/business/partner" + "git.rosy.net.cn/jx-callback/globals" "strings" ) @@ -125,7 +126,10 @@ func (c *PurchaseHandler) onAfsOrderMsg(msgId string, msg interface{}) (retVal * } else { err = partner.CurOrderManager.OnAfsOrderStatusChanged(orderStatus) if err == nil && msgId == tiktokShop.CallbackReturnRefundAgreedMsgTagId { - goodsOrder, _ := partner.CurOrderManager.LoadOrder(orderStatus.VendorOrderID, orderStatus.VendorID) + goodsOrder, err := partner.CurOrderManager.LoadOrder(orderStatus.VendorOrderID, orderStatus.VendorID) + globals.SugarLogger.Debugf("=err=======:%s", utils.Format4Output(err, false)) + globals.SugarLogger.Debugf("=goodsOrder=======:%s", utils.Format4Output(goodsOrder, false)) + globals.SugarLogger.Debugf("=status=======:%s", utils.Format4Output(orderStatus, false)) goodsOrder.Status = model.OrderStatusCanceled goodsOrder.VendorStatus = orderStatus.VendorStatus dao.UpdateEntity(db, goodsOrder, "Status", "VendorStatus") From 866b9ab96f3fabf782cca7a0da1cdc4353a00ff5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Wed, 12 Apr 2023 10:29:05 +0800 Subject: [PATCH 53/93] 1 --- business/partner/purchase/tiktok_store/order_afs_utils.go | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/business/partner/purchase/tiktok_store/order_afs_utils.go b/business/partner/purchase/tiktok_store/order_afs_utils.go index e8350c832..2039479e4 100644 --- a/business/partner/purchase/tiktok_store/order_afs_utils.go +++ b/business/partner/purchase/tiktok_store/order_afs_utils.go @@ -7,7 +7,6 @@ import ( "git.rosy.net.cn/jx-callback/business/model" "git.rosy.net.cn/jx-callback/business/model/dao" "git.rosy.net.cn/jx-callback/business/partner" - "git.rosy.net.cn/jx-callback/globals" "strings" ) @@ -126,10 +125,7 @@ func (c *PurchaseHandler) onAfsOrderMsg(msgId string, msg interface{}) (retVal * } else { err = partner.CurOrderManager.OnAfsOrderStatusChanged(orderStatus) if err == nil && msgId == tiktokShop.CallbackReturnRefundAgreedMsgTagId { - goodsOrder, err := partner.CurOrderManager.LoadOrder(orderStatus.VendorOrderID, orderStatus.VendorID) - globals.SugarLogger.Debugf("=err=======:%s", utils.Format4Output(err, false)) - globals.SugarLogger.Debugf("=goodsOrder=======:%s", utils.Format4Output(goodsOrder, false)) - globals.SugarLogger.Debugf("=status=======:%s", utils.Format4Output(orderStatus, false)) + goodsOrder, _ := partner.CurOrderManager.LoadOrder(orderStatus.RefVendorOrderID, orderStatus.VendorID) goodsOrder.Status = model.OrderStatusCanceled goodsOrder.VendorStatus = orderStatus.VendorStatus dao.UpdateEntity(db, goodsOrder, "Status", "VendorStatus") From 9a193d6b92c1e825635e377964686d015c6a70a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Wed, 12 Apr 2023 15:10:57 +0800 Subject: [PATCH 54/93] 1 --- business/jxstore/cms/sku.go | 13 ++++++++++++- business/jxstore/cms/store_sku.go | 10 ++++++---- controllers/cms_sku.go | 20 +++++++++++++++++++- routers/commentsRouter_controllers.go | 9 +++++++++ 4 files changed, 46 insertions(+), 6 deletions(-) diff --git a/business/jxstore/cms/sku.go b/business/jxstore/cms/sku.go index 00c16d2fc..26fcc486e 100644 --- a/business/jxstore/cms/sku.go +++ b/business/jxstore/cms/sku.go @@ -3381,7 +3381,7 @@ func setImgs2(v *model.SkuName, imgs []string) (err error) { return err } -func GetSkuNamesNew(ctx *jxcontext.Context, keyword string, skuIDs, skuNameIDs []int, categoryID, status int, isBySku bool, offset, pageSize int) (skuNamesInfo *SkuNamesInfo, err error) { +func GetSkuNamesNew(ctx *jxcontext.Context, keyword string, skuIDs, skuNameIDs []int, categoryID, status int, isBySku bool, offset, pageSize, bestSeller int) (skuNamesInfo *SkuNamesInfo, err error) { var ( db = dao.GetDB() sql = "" @@ -3486,6 +3486,10 @@ func GetSkuNamesNew(ctx *jxcontext.Context, keyword string, skuIDs, skuNameIDs [ sql += " AND t2.id IN (" + dao.GenQuestionMarks(len(skuIDs)) + ")" sqlParams = append(sqlParams, skuIDs) } + if bestSeller > 0 { + sql += " AND t1.best_seller = ? " + sqlParams = append(sqlParams, bestSeller) + } if categoryID > 0 { cat := &model.SkuCategory{} cat.ID = categoryID @@ -3580,3 +3584,10 @@ func GetSkuNamesNew(ctx *jxcontext.Context, keyword string, skuIDs, skuNameIDs [ } return skuNamesInfo, err } + +func SetSkuNameSeller(nameIds []int64, bastSeller int) error { + sql := ` UPDATE sku_name SET bast_seller = ? WHERE id IN (` + dao.GenQuestionMarks(len(nameIds)) + `)` + param := []interface{}{bastSeller, nameIds} + _, err := dao.ExecuteSQL(dao.GetDB(), sql, param...) + return err +} diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index 4399c586f..fd2dcd382 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -3740,6 +3740,11 @@ func GetTopSkusByStoreIDs(ctx *jxcontext.Context, storeIDs []int) (storeSkuNameE func GetTopSkusByCityCode(ctx *jxcontext.Context, cityCode, storeID int) (skuNameAndPlaceList []*dao.SkuNameAndPlace, err error) { db := dao.GetDB() + store, err := dao.GetStoreDetail(db, storeID, -1, "") + if err != nil { + return nil, err + } + cityCode = store.CityCode orderCreate := time.Now().AddDate(0, -1, 0) var skuNameAndPlace []*dao.SkuNameAndPlace if cityCode > 0 { @@ -3779,10 +3784,7 @@ func GetTopSkusByCityCode(ctx *jxcontext.Context, cityCode, storeID int) (skuNam for _, v := range skuNameList { skuNameMap[v.ID] = v } - store, err := dao.GetStoreDetail(db, storeID, -1, "") - if err != nil { - return nil, err - } + var payPercentage int if store.PayPercentage < 50 { payPercentage = 70 diff --git a/controllers/cms_sku.go b/controllers/cms_sku.go index 636461648..86ecde8d1 100644 --- a/controllers/cms_sku.go +++ b/controllers/cms_sku.go @@ -11,6 +11,7 @@ import ( "git.rosy.net.cn/jx-callback/business/partner/purchase/tiktok_store" "git.rosy.net.cn/jx-callback/globals" "github.com/astaxie/beego/server/web" + "strings" "time" ) @@ -742,6 +743,7 @@ func (c *SkuController) RefreshNoImgSku() { // @Param categoryID query int false "商品名所属类别ID" // @Param status query int false "查询起始状态(0:下架,1:正常, -1全部)" // @Param isBySku query bool false "是否将sku拆开,缺省为false" +// @Param bestSeller query int false "是否为畅销品[0-不是/1-是]" // @Param offset query int false "门店列表起始序号(以0开始,缺省为0)" // @Param pageSize query int false "门店列表页大小(缺省为50,-1表示全部)" // @Success 200 {object} controllers.CallResult @@ -751,12 +753,28 @@ func (c *SkuController) GetSkuNamesNew() { c.callGetSkuNamesNew(func(params *tSkuGetSkuNamesNewParams) (retVal interface{}, errCode string, err error) { var skuIDs, skuNameIDs []int if err = jxutils.Strings2Objs(params.SkuIDs, &skuIDs, params.NameIDs, &skuNameIDs); err == nil { - retVal, err = cms.GetSkuNamesNew(params.Ctx, params.Keyword, skuIDs, skuNameIDs, params.CategoryID, params.Status, params.IsBySku, params.Offset, params.PageSize) + retVal, err = cms.GetSkuNamesNew(params.Ctx, params.Keyword, skuIDs, skuNameIDs, params.CategoryID, params.Status, params.IsBySku, params.Offset, params.PageSize, params.BestSeller) } return retVal, "", err }) } +// @Title 设置商品为热销/取消热销商品 +// @Description 设置商品为热销/取消热销商品 +// @Param token header string true "认证token" +// @Param skuNameId query string true "商品nameId,多个用逗号分割" +// @Param bestSeller query int true "是否为热销[0不是/1是]" +// @Success 200 {object} controllers.CallResult +// @Failure 200 {object} controllers.CallResult +// @router /SetSkuBestSeller [post] +func (c *SkuController) SetSkuBestSeller() { + c.callSetSkuBestSeller(func(params *tSkuSetSkuBestSellerParams) (retVal interface{}, errCode string, err error) { + nameIds := strings.Split(params.SkuNameId, ",") + err = cms.SetSkuNameSeller(utils.StringSlice2Int64(nameIds), params.BestSeller) + return nil, "", err + }) +} + // @Title 根据分类id获取平台属性值 // @Description 根据分类id获取平台属性值 // @Param token header string true "认证token" diff --git a/routers/commentsRouter_controllers.go b/routers/commentsRouter_controllers.go index 810c99afb..ae493ebdf 100644 --- a/routers/commentsRouter_controllers.go +++ b/routers/commentsRouter_controllers.go @@ -1871,6 +1871,15 @@ func init() { Filters: nil, Params: nil}) + web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:SkuController"] = append(web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:SkuController"], + web.ControllerComments{ + Method: "SetSkuBestSeller", + Router: `/SetSkuBestSeller`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:SkuController"] = append(web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:SkuController"], web.ControllerComments{ Method: "GetTiktokCategoryValue", From 17c794ae513f1c8aeb1261a9a10a823539b84391 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Thu, 13 Apr 2023 10:32:39 +0800 Subject: [PATCH 55/93] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=BE=8E=E5=A5=BD?= =?UTF-8?q?=E8=8F=9C=E5=B8=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/model/api.go | 2 ++ business/model/dao/dao_order.go | 3 ++- business/partner/purchase/jx/localjx/order.go | 4 +--- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/business/model/api.go b/business/model/api.go index 057a1ea6c..ac163d118 100644 --- a/business/model/api.go +++ b/business/model/api.go @@ -68,6 +68,8 @@ type GoodsOrderExt struct { OperatorPhone3 string `orm:"size(16)" json:"operatorPhone3"` // 饿百运营人电话 OperatorName3 string `orm:"size(32)" json:"operatorName3"` // 饿百运营人组(角色) + + VendorPayType string `json:"vendorPayType"` // 支付方式,当订单来源小程序时通过支付方式区分订单来源(w06微信/tt抖音/ks快手/支付宝) } type OrderSkuExt struct { diff --git a/business/model/dao/dao_order.go b/business/model/dao/dao_order.go index e26b5f719..6f00386b6 100644 --- a/business/model/dao/dao_order.go +++ b/business/model/dao/dao_order.go @@ -842,7 +842,7 @@ func GetOrders(db *DaoDB, ids []int64, isIncludeSku, isIncludeFake bool, fromDat t5.pay_percentage, t5.comment ,t5.old_pay_percentage, t5.market_man_phone, tu.name market_man_name, t5.operator_phone, t5.operator_phone2, t5.operator_phone3, tu1.name operator_name, tu2.name operator_name2, tu3.name operator_name3, t6.vendor_pay_percentage, - city.name city_name, district.name district_name, + city.name city_name, district.name district_name,op.vendor_pay_type, ROUND(IF(t1.earning_type = 1, t1.total_shop_money-t1.earning_price-IFNULL(t2.desired_fee,0), t1.total_shop_money *(t1.order_pay_percentage/2)/100)) jx_income`, model.DefaultEarningPricePercentage) if isIncludeSku { sql += `, @@ -865,6 +865,7 @@ func GetOrders(db *DaoDB, ids []int64, isIncludeSku, isIncludeFake bool, fromDat LEFT JOIN user tu1 ON tu1.mobile = t5.operator_phone LEFT JOIN user tu2 ON tu2.mobile = t5.operator_phone2 LEFT JOIN user tu3 ON tu3.mobile = t5.operator_phone3 + LEFT JOIN order_pay op ON op.vendor_order_id = t1.vendor_order_id -- LEFT JOIN (SELECT MAX(created_at), afs_order_id, vendor_order_id, vendor_id FROM afs_order WHERE status = 180 GROUP BY 2, 3, 4) t7 ON t7.vendor_order_id = t1.vendor_order_id AND t7.vendor_id = t1.vendor_id -- LEFT JOIN afs_order t8 ON t8.afs_order_id = t7.afs_order_id ` diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index 28c372e93..a28d6fb04 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -3,7 +3,6 @@ package localjx import ( "errors" "fmt" - "git.rosy.net.cn/jx-callback/globals" "math" "regexp" "strings" @@ -314,7 +313,6 @@ func Pay4Order(ctx *jxcontext.Context, orderID int64, payType int, vendorPayType db = dao.GetDB() ) order, err := partner.CurOrderManager.LoadOrder(utils.Int64ToStr(orderID), model.VendorIDJX) - globals.SugarLogger.Debugf("goodsorder := %s", utils.Format4Output(order, false)) if err == nil { switch payType { case model.PayTypeWX: @@ -843,7 +841,7 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64 if jxOrder.OrderType != model.OrderTypeMatter || (jxOrder.OrderType == model.OrderTypeMatter && fromStoreID == -1) { outJxOrder.Skus = append(outJxOrder.Skus, jxSku) outJxOrder.OrderPrice += int64(jxSku.Count) * jxSku.SalePrice - } else { //以下else为物料订单袋子金额和数量处理 + } else { //以下else为物料订单袋子金额和数量处理 if !result.Flag { //只要flag是false就按原价申请,是true再按订单量 outJxOrder.Skus = append(outJxOrder.Skus, jxSku) outJxOrder.OrderPrice += int64(jxSku.Count) * jxSku.SalePrice From eccfb45dc66ebb46e4749454206b4724ce63e91d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Thu, 13 Apr 2023 14:52:22 +0800 Subject: [PATCH 56/93] 1 --- business/jxstore/cms/store_sku.go | 1 + business/model/dao/store_sku.go | 2 +- business/partner/purchase/jx/phpjx/order_afs.go | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index fd2dcd382..74fcacabf 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -3738,6 +3738,7 @@ func GetTopSkusByStoreIDs(ctx *jxcontext.Context, storeIDs []int) (storeSkuNameE return storeSkuNameExt2, err } +// GetTopSkusByCityCode 获取当前城市订单销量前一百的商品,排除掉商户已经可售的商品剩下的为热销推荐 func GetTopSkusByCityCode(ctx *jxcontext.Context, cityCode, storeID int) (skuNameAndPlaceList []*dao.SkuNameAndPlace, err error) { db := dao.GetDB() store, err := dao.GetStoreDetail(db, storeID, -1, "") diff --git a/business/model/dao/store_sku.go b/business/model/dao/store_sku.go index 32b8e34f0..fd40306fe 100644 --- a/business/model/dao/store_sku.go +++ b/business/model/dao/store_sku.go @@ -1285,7 +1285,7 @@ func GetTopSkusByCityCode(db *DaoDB, cityCode int, orderCreate time.Time) (skuNa AND b.sale_price > ? AND a.order_created_at BETWEEN ? and NOW() GROUP BY 2,3,4 - ORDER BY count DESC + ORDER BY count DESC LIMIT 100 ` sqlParams := []interface{}{ utils.DefaultTimeValue, diff --git a/business/partner/purchase/jx/phpjx/order_afs.go b/business/partner/purchase/jx/phpjx/order_afs.go index 2bf21a1c5..f768c2869 100644 --- a/business/partner/purchase/jx/phpjx/order_afs.go +++ b/business/partner/purchase/jx/phpjx/order_afs.go @@ -145,7 +145,7 @@ func buildAfsOrder(msg *CallbackMsg) (outAfsOrder *model.AfsOrder, err error) { } // 最后一个商品 - if len(skuList) == len(refundFinancial)+len(afsOrder.Skus) { + if len(skuList) == len(refundFinancial)+len(afsOrder.Skus) && len(skuList) != model.YES { return nil, errors.New("如需整单退款,请使用整单退,无法分批次整单退款") } From 70fa2ccdd36699dc5a8d7a67490695ab48d80092 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Fri, 14 Apr 2023 09:11:06 +0800 Subject: [PATCH 57/93] 1 --- .../scheduler/basesch/basesch_ext.go | 10 ++++++++-- business/model/order.go | 2 +- .../partner/purchase/jx/phpjx/order_afs.go | 18 ++++++++++++++++-- business/partner/purchase/mtwm/waybill.go | 9 +++++++-- 4 files changed, 32 insertions(+), 7 deletions(-) diff --git a/business/jxcallback/scheduler/basesch/basesch_ext.go b/business/jxcallback/scheduler/basesch/basesch_ext.go index 872f6466a..c7df132cb 100644 --- a/business/jxcallback/scheduler/basesch/basesch_ext.go +++ b/business/jxcallback/scheduler/basesch/basesch_ext.go @@ -230,7 +230,7 @@ func (c *BaseScheduler) AgreeOrRefuseRefund(ctx *jxcontext.Context, afsOrderID s ) waybills, _ := dao.GetWaybills(db, order.VendorOrderID) //美团的订单如果是同意全部退款,要取消所有三方运单并停止调度 - if order.VendorID == model.VendorIDMTWM { + if order.VendorID == model.VendorIDMTWM || order.VendorID == model.VendorIDJX { var ( afsCount, orderCount int ) @@ -242,13 +242,19 @@ func (c *BaseScheduler) AgreeOrRefuseRefund(ctx *jxcontext.Context, afsOrderID s orderCount += v.Count } //如果售后退款的商品数等于订单商品数,我就当是全部退款了 - if afsCount == orderCount { + if afsCount == orderCount && order.VendorID == model.VendorIDMTWM { order.DeliveryFlag |= model.OrderDeliveryFlagMaskScheduleDisabled partner.CurOrderManager.UpdateOrderFields(order, []string{"DeliveryFlag"}) for _, v := range waybills { c.CancelWaybill(v, partner.CancelWaybillReasonOther, partner.CancelWaybillReasonStrActive) } } + if afsCount == orderCount && order.VendorID == model.VendorIDJX { + order.DeliveryFlag |= model.OrderDeliveryFlagMaskScheduleDisabled + order.Status = model.OrderStatusCanceled + order.VendorStatus = utils.Int2Str(model.OrderStatusCanceled) + partner.CurOrderManager.UpdateOrderFields(order, []string{"DeliveryFlag", "Status", "VendorStatus"}) + } } if order.EarningType == model.EarningTypePoints { var ( diff --git a/business/model/order.go b/business/model/order.go index 74303f634..acf5b7e22 100644 --- a/business/model/order.go +++ b/business/model/order.go @@ -244,7 +244,7 @@ type Waybill struct { ModelTimeInfo `json:"-"` OriginalData string `orm:"type(text)" json:"-"` Remark string `orm:"-" json:"-"` // 用于传递remark - //OtherFee int64 `orm:"column(other_fee)" json:"otherFee"` // 对应美团外卖运单的保险费 + //PunctualFee int64 `orm:"column(punctual_fee)" json:"punctualFee"` // 对应美团外卖运单的准时保险费 VendorOrgCode string `orm:"size(64)" json:"vendorOrgCode"` // 同一平台下不同的商户代码,如果只有一个,可以为空 } diff --git a/business/partner/purchase/jx/phpjx/order_afs.go b/business/partner/purchase/jx/phpjx/order_afs.go index f768c2869..c2985b376 100644 --- a/business/partner/purchase/jx/phpjx/order_afs.go +++ b/business/partner/purchase/jx/phpjx/order_afs.go @@ -144,8 +144,22 @@ func buildAfsOrder(msg *CallbackMsg) (outAfsOrder *model.AfsOrder, err error) { return nil, err } - // 最后一个商品 - if len(skuList) == len(refundFinancial)+len(afsOrder.Skus) && len(skuList) != model.YES { + makeOrderSkuCount := 0 + afsOrderOrderSkuCount := 0 + refundFinacialSkuCount := 0 + for _, v := range skuList { + makeOrderSkuCount += v.Count + } + for _, v := range afsOrder.Skus { + afsOrderOrderSkuCount += v.Count + } + for _, v := range refundFinancial { + refundFinacialSkuCount += v.Count + } + // 这么写主要是不想让满足条件一的进入条件三 + if makeOrderSkuCount == afsOrderOrderSkuCount && refundFinacialSkuCount == model.NO { // 整单退 + } else if makeOrderSkuCount-refundFinacialSkuCount == model.YES && makeOrderSkuCount == model.YES { // 整单退且只有一个商品 + } else if makeOrderSkuCount-refundFinacialSkuCount-afsOrderOrderSkuCount == model.NO && afsOrderOrderSkuCount > 0 { // 分单退最后一个,不给退 return nil, errors.New("如需整单退款,请使用整单退,无法分批次整单退款") } diff --git a/business/partner/purchase/mtwm/waybill.go b/business/partner/purchase/mtwm/waybill.go index bb615bf7f..01be0cf0e 100644 --- a/business/partner/purchase/mtwm/waybill.go +++ b/business/partner/purchase/mtwm/waybill.go @@ -49,11 +49,16 @@ func (c *PurchaseHandler) callbackMsg2Waybill(msg *mtwmapi.CallbackMsg) (retVal Status: c.GetWaybillStatusFromVendorStatus(vendorStatus), StatusTime: getTimeFromTimestamp(utils.Str2Int64(msg.FormData.Get("time"))), Remark: "", - - VendorOrgCode: msg.AppID, + VendorOrgCode: msg.AppID, } if retVal.StatusTime == utils.DefaultTimeValue { retVal.StatusTime = getTimeFromTimestamp(utils.Str2Int64(msg.FormData.Get("timestamp"))) } + + //if vendorStatus == "4" || vendorStatus == "8" { // 4:美团推送已经(确认骑手)订单 8:美团推送(骑手完成)订单 + // retVal.DesiredFee = utils.Float64TwoInt64(utils.Str2Float64WithDefault(msg.FormData.Get("shipping_fee"), 0)) // 订单优惠前的总费用 + // partner.CurOrderManager + //} + return retVal } From 256501cd7ed49f5866d528a1173a4a3740b891fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Fri, 14 Apr 2023 09:58:38 +0800 Subject: [PATCH 58/93] 1 --- business/jxcallback/orderman/orderman_ext.go | 2 +- business/model/dao/dao_order.go | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/business/jxcallback/orderman/orderman_ext.go b/business/jxcallback/orderman/orderman_ext.go index b5ba39178..542cdcea6 100644 --- a/business/jxcallback/orderman/orderman_ext.go +++ b/business/jxcallback/orderman/orderman_ext.go @@ -902,7 +902,7 @@ func (c *OrderManager) GetStoresOrderSaleInfoNew(ctx *jxcontext.Context, storeID orderIDMap := make(map[string]struct{}) var vendorOrderIDs []string - orderSkuList, err := dao.GetStoreOrderSkuList(db, storeIDList, fromTime, toTime, statusList, true, isService) + orderSkuList, err := dao.GetStoreOrderSkuList(db, storeIDList, fromTime, toTime, statusList, true, isService) // 所有的完成订单 if err != nil { return nil, err } diff --git a/business/model/dao/dao_order.go b/business/model/dao/dao_order.go index 6f00386b6..cb177174d 100644 --- a/business/model/dao/dao_order.go +++ b/business/model/dao/dao_order.go @@ -2,6 +2,7 @@ package dao import ( "fmt" + "git.rosy.net.cn/jx-callback/globals" "regexp" "strconv" "time" @@ -407,6 +408,8 @@ func GetStoreOrderSkuList(db *DaoDB, storeIDs []int, finishedAtBegin, finishedAt sqlParams = append(sqlParams, model.VendorIDMTWM) } + globals.SugarLogger.Debugf("==========GetStoreOrderSkuList := %s", sql) + globals.SugarLogger.Debugf("==========GetStoreOrderSkuListparm := %s", utils.Format4Output(sqlParams, false)) err = GetRows(db, &skuList, sql, sqlParams...) return skuList, err } @@ -458,6 +461,9 @@ func GetStoreOrderSkuList4Afs2(db *DaoDB, vendorOrderIDs []string) (skuList []*O ` sqlParams = append(sqlParams, vendorOrderIDs) } + + globals.SugarLogger.Debugf("==========GetStoreOrderSkuList4Afs2 := %s", sql) + globals.SugarLogger.Debugf("==========GetStoreOrderSkuList4Afs2 := %s", utils.Format4Output(sqlParams, false)) err = GetRows(db, &skuList, sql, sqlParams...) return skuList, err } @@ -502,6 +508,9 @@ func GetStoreAfsOrderSkuList2(db *DaoDB, vendorOrderIDs []string) (afsSkuList [] sql += " AND t2.vendor_order_id IN (" + GenQuestionMarks(len(vendorOrderIDs)) + ")" sqlParams = append(sqlParams, vendorOrderIDs) } + + globals.SugarLogger.Debugf("==========GetStoreAfsOrderSkuList2 := %s", sql) + globals.SugarLogger.Debugf("==========GetStoreAfsOrderSkuList2 := %s", utils.Format4Output(sqlParams, false)) err = GetRows(db, &afsSkuList, sql, sqlParams...) return afsSkuList, err } From 850fc4f0e31540cad735b20d673e629606fa2898 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Fri, 14 Apr 2023 11:41:42 +0800 Subject: [PATCH 59/93] 1 --- business/jxcallback/orderman/orderman_ext.go | 5 +++- business/model/dao/dao_order.go | 29 +++++++++++++++----- 2 files changed, 26 insertions(+), 8 deletions(-) diff --git a/business/jxcallback/orderman/orderman_ext.go b/business/jxcallback/orderman/orderman_ext.go index 542cdcea6..09830b938 100644 --- a/business/jxcallback/orderman/orderman_ext.go +++ b/business/jxcallback/orderman/orderman_ext.go @@ -1019,7 +1019,7 @@ func (c *OrderManager) GetStoresOrderSaleInfoNew(ctx *jxcontext.Context, storeID } return orderMap, orderSkuMap, saleInfoMap } - _, _, saleInfoMap := orderSkuHandler(orderSkuList) + _, _, saleInfoMap := orderSkuHandler(orderSkuList) // 所有订单的支付金额 orderMap, orderSkuMap, _ := orderSkuHandler(orderSkuList4Afs) afsOrderMap := make(map[string]*model.GoodsOrder) @@ -1074,6 +1074,9 @@ func (c *OrderManager) GetStoresOrderSaleInfoNew(ctx *jxcontext.Context, storeID saleInfo.Count++ } for _, v := range saleInfoMap { + if v.Status == model.OrderStatusFinished { + v.PlatformSettlement, _ = dao.GetPlatformSettlement(db, storeIDList, fromTime, toTime) + } saleInfoList = append(saleInfoList, v) } return saleInfoList, err diff --git a/business/model/dao/dao_order.go b/business/model/dao/dao_order.go index cb177174d..2df4ba2b7 100644 --- a/business/model/dao/dao_order.go +++ b/business/model/dao/dao_order.go @@ -2,7 +2,6 @@ package dao import ( "fmt" - "git.rosy.net.cn/jx-callback/globals" "regexp" "strconv" "time" @@ -38,6 +37,8 @@ type StoresOrderSaleInfo struct { WaybillTipMoney int64 `json:"waybillTipMoney"` // 京西加的平台配送小费 RealEarningPrice int64 `json:"realEarningPrice"` + + PlatformSettlement int64 `json:"platformSettlement"` // 真实订单的平台结算 } type OrderSkuWithActualPayPrice struct { @@ -408,12 +409,30 @@ func GetStoreOrderSkuList(db *DaoDB, storeIDs []int, finishedAtBegin, finishedAt sqlParams = append(sqlParams, model.VendorIDMTWM) } - globals.SugarLogger.Debugf("==========GetStoreOrderSkuList := %s", sql) - globals.SugarLogger.Debugf("==========GetStoreOrderSkuListparm := %s", utils.Format4Output(sqlParams, false)) err = GetRows(db, &skuList, sql, sqlParams...) return skuList, err } +func GetPlatformSettlement(db *DaoDB, storeIDs []int, finishedAtBegin, finishedAtEnd time.Time) (int64, error) { + sql := ` + SELECT SUM(t2.total_shop_money) total_shop_money FROM goods_order t2 WHERE t2.order_finished_at >= ? AND t2.order_finished_at <= ? " +` + sqlParams := []interface{}{ + finishedAtBegin, + finishedAtEnd, + } + if len(storeIDs) > 0 { + sql += " AND IF(t2.jx_store_id > 0, t2.jx_store_id, t2.store_id) IN (" + GenQuestionMarks(len(storeIDs)) + ")" + sqlParams = append(sqlParams, storeIDs) + } + sql += ` AND t2.status = ? ` + sqlParams = append(sqlParams, model.OrderStatusFinished) + + var count int64 = 0 + err := GetRow(db, &count, sql, sqlParams...) + return count, err +} + func GetStoreOrderSkuList4Afs(db *DaoDB, storeIDs []int, finishedAtBegin, finishedAtEnd time.Time, isFinish bool) (skuList []*OrderSkuWithActualPayPrice, err error) { sql := ` SELECT t1.*, @@ -462,8 +481,6 @@ func GetStoreOrderSkuList4Afs2(db *DaoDB, vendorOrderIDs []string) (skuList []*O sqlParams = append(sqlParams, vendorOrderIDs) } - globals.SugarLogger.Debugf("==========GetStoreOrderSkuList4Afs2 := %s", sql) - globals.SugarLogger.Debugf("==========GetStoreOrderSkuList4Afs2 := %s", utils.Format4Output(sqlParams, false)) err = GetRows(db, &skuList, sql, sqlParams...) return skuList, err } @@ -509,8 +526,6 @@ func GetStoreAfsOrderSkuList2(db *DaoDB, vendorOrderIDs []string) (afsSkuList [] sqlParams = append(sqlParams, vendorOrderIDs) } - globals.SugarLogger.Debugf("==========GetStoreAfsOrderSkuList2 := %s", sql) - globals.SugarLogger.Debugf("==========GetStoreAfsOrderSkuList2 := %s", utils.Format4Output(sqlParams, false)) err = GetRows(db, &afsSkuList, sql, sqlParams...) return afsSkuList, err } From a6a1562490122d0aa4a82096cd2bdd35ada71411 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Fri, 14 Apr 2023 14:47:08 +0800 Subject: [PATCH 60/93] 1 --- business/jxcallback/orderman/orderman_ext.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/business/jxcallback/orderman/orderman_ext.go b/business/jxcallback/orderman/orderman_ext.go index 09830b938..4dcc220a4 100644 --- a/business/jxcallback/orderman/orderman_ext.go +++ b/business/jxcallback/orderman/orderman_ext.go @@ -1075,7 +1075,8 @@ func (c *OrderManager) GetStoresOrderSaleInfoNew(ctx *jxcontext.Context, storeID } for _, v := range saleInfoMap { if v.Status == model.OrderStatusFinished { - v.PlatformSettlement, _ = dao.GetPlatformSettlement(db, storeIDList, fromTime, toTime) + v.PlatformSettlement, err = dao.GetPlatformSettlement(db, storeIDList, fromTime, toTime) + globals.SugarLogger.Debugf("============err :%v", err) } saleInfoList = append(saleInfoList, v) } From ebca9c93efa656518f92fe89c8c6895be3913238 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Fri, 14 Apr 2023 14:54:00 +0800 Subject: [PATCH 61/93] 1 --- business/model/dao/dao_order.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/business/model/dao/dao_order.go b/business/model/dao/dao_order.go index 2df4ba2b7..db8004605 100644 --- a/business/model/dao/dao_order.go +++ b/business/model/dao/dao_order.go @@ -428,9 +428,11 @@ func GetPlatformSettlement(db *DaoDB, storeIDs []int, finishedAtBegin, finishedA sql += ` AND t2.status = ? ` sqlParams = append(sqlParams, model.OrderStatusFinished) - var count int64 = 0 + var count struct { + Count int64 `json:"count"` + } err := GetRow(db, &count, sql, sqlParams...) - return count, err + return count.Count, err } func GetStoreOrderSkuList4Afs(db *DaoDB, storeIDs []int, finishedAtBegin, finishedAtEnd time.Time, isFinish bool) (skuList []*OrderSkuWithActualPayPrice, err error) { From 3883bd9fbb9139a8c4cd41827cb604a686325e4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Fri, 14 Apr 2023 14:56:45 +0800 Subject: [PATCH 62/93] 1 --- business/model/dao/dao_order.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/business/model/dao/dao_order.go b/business/model/dao/dao_order.go index db8004605..3bb0e55cf 100644 --- a/business/model/dao/dao_order.go +++ b/business/model/dao/dao_order.go @@ -2,6 +2,7 @@ package dao import ( "fmt" + "git.rosy.net.cn/jx-callback/globals" "regexp" "strconv" "time" @@ -431,6 +432,8 @@ func GetPlatformSettlement(db *DaoDB, storeIDs []int, finishedAtBegin, finishedA var count struct { Count int64 `json:"count"` } + globals.SugarLogger.Debugf("========sql := %s", sql) + globals.SugarLogger.Debugf("========sql := %s", utils.Format4Output(sqlParams, false)) err := GetRow(db, &count, sql, sqlParams...) return count.Count, err } From a9210d87052d9996512af2b2736eab4ce405fcbe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Fri, 14 Apr 2023 14:59:24 +0800 Subject: [PATCH 63/93] 1 --- business/model/dao/dao_order.go | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/business/model/dao/dao_order.go b/business/model/dao/dao_order.go index 3bb0e55cf..48e29e098 100644 --- a/business/model/dao/dao_order.go +++ b/business/model/dao/dao_order.go @@ -2,7 +2,6 @@ package dao import ( "fmt" - "git.rosy.net.cn/jx-callback/globals" "regexp" "strconv" "time" @@ -416,7 +415,7 @@ func GetStoreOrderSkuList(db *DaoDB, storeIDs []int, finishedAtBegin, finishedAt func GetPlatformSettlement(db *DaoDB, storeIDs []int, finishedAtBegin, finishedAtEnd time.Time) (int64, error) { sql := ` - SELECT SUM(t2.total_shop_money) total_shop_money FROM goods_order t2 WHERE t2.order_finished_at >= ? AND t2.order_finished_at <= ? " + SELECT SUM(t2.total_shop_money) total_shop_money FROM goods_order t2 WHERE t2.order_finished_at >= ? AND t2.order_finished_at <= ? ` sqlParams := []interface{}{ finishedAtBegin, @@ -429,13 +428,12 @@ func GetPlatformSettlement(db *DaoDB, storeIDs []int, finishedAtBegin, finishedA sql += ` AND t2.status = ? ` sqlParams = append(sqlParams, model.OrderStatusFinished) - var count struct { - Count int64 `json:"count"` - } - globals.SugarLogger.Debugf("========sql := %s", sql) - globals.SugarLogger.Debugf("========sql := %s", utils.Format4Output(sqlParams, false)) + //var count struct { + // Count int64 `json:"count"` + //} + var count int64 = 0 err := GetRow(db, &count, sql, sqlParams...) - return count.Count, err + return count, err } func GetStoreOrderSkuList4Afs(db *DaoDB, storeIDs []int, finishedAtBegin, finishedAtEnd time.Time, isFinish bool) (skuList []*OrderSkuWithActualPayPrice, err error) { From 85d26b69918d3299b617180581ba8d437d963ba4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Fri, 14 Apr 2023 16:00:31 +0800 Subject: [PATCH 64/93] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxcallback/orderman/orderman_ext.go | 7 ++++++- business/model/dao/dao_order.go | 16 +++++++++------- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/business/jxcallback/orderman/orderman_ext.go b/business/jxcallback/orderman/orderman_ext.go index 4dcc220a4..7f98c892b 100644 --- a/business/jxcallback/orderman/orderman_ext.go +++ b/business/jxcallback/orderman/orderman_ext.go @@ -1075,8 +1075,13 @@ func (c *OrderManager) GetStoresOrderSaleInfoNew(ctx *jxcontext.Context, storeID } for _, v := range saleInfoMap { if v.Status == model.OrderStatusFinished { - v.PlatformSettlement, err = dao.GetPlatformSettlement(db, storeIDList, fromTime, toTime) + settle, err := dao.GetPlatformSettlement(db, storeIDList, fromTime, toTime) globals.SugarLogger.Debugf("============err :%v", err) + for _, s := range settle { + if v.VendorID == s.VendorID { + v.PlatformSettlement = s.TotalShopMoney + } + } } saleInfoList = append(saleInfoList, v) } diff --git a/business/model/dao/dao_order.go b/business/model/dao/dao_order.go index 48e29e098..d620e7b44 100644 --- a/business/model/dao/dao_order.go +++ b/business/model/dao/dao_order.go @@ -413,7 +413,12 @@ func GetStoreOrderSkuList(db *DaoDB, storeIDs []int, finishedAtBegin, finishedAt return skuList, err } -func GetPlatformSettlement(db *DaoDB, storeIDs []int, finishedAtBegin, finishedAtEnd time.Time) (int64, error) { +type TotalShopMoney struct { + TotalShopMoney int64 `json:"totalShopMoney"` + VendorID int `json:"vendorID"` +} + +func GetPlatformSettlement(db *DaoDB, storeIDs []int, finishedAtBegin, finishedAtEnd time.Time) ([]*TotalShopMoney, error) { sql := ` SELECT SUM(t2.total_shop_money) total_shop_money FROM goods_order t2 WHERE t2.order_finished_at >= ? AND t2.order_finished_at <= ? ` @@ -428,12 +433,9 @@ func GetPlatformSettlement(db *DaoDB, storeIDs []int, finishedAtBegin, finishedA sql += ` AND t2.status = ? ` sqlParams = append(sqlParams, model.OrderStatusFinished) - //var count struct { - // Count int64 `json:"count"` - //} - var count int64 = 0 - err := GetRow(db, &count, sql, sqlParams...) - return count, err + var total []*TotalShopMoney + err := GetRows(db, &total, sql, sqlParams...) + return total, err } func GetStoreOrderSkuList4Afs(db *DaoDB, storeIDs []int, finishedAtBegin, finishedAtEnd time.Time, isFinish bool) (skuList []*OrderSkuWithActualPayPrice, err error) { From ab2345fc278c706bb534fc3994a9680b46672d6d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Fri, 14 Apr 2023 16:07:38 +0800 Subject: [PATCH 65/93] 1 --- business/jxcallback/orderman/orderman_ext.go | 1 + 1 file changed, 1 insertion(+) diff --git a/business/jxcallback/orderman/orderman_ext.go b/business/jxcallback/orderman/orderman_ext.go index 7f98c892b..887160b65 100644 --- a/business/jxcallback/orderman/orderman_ext.go +++ b/business/jxcallback/orderman/orderman_ext.go @@ -1077,6 +1077,7 @@ func (c *OrderManager) GetStoresOrderSaleInfoNew(ctx *jxcontext.Context, storeID if v.Status == model.OrderStatusFinished { settle, err := dao.GetPlatformSettlement(db, storeIDList, fromTime, toTime) globals.SugarLogger.Debugf("============err :%v", err) + globals.SugarLogger.Debugf("============settle :%s", utils.Format4Output(settle, false)) for _, s := range settle { if v.VendorID == s.VendorID { v.PlatformSettlement = s.TotalShopMoney From 4d28c2101f93aaf752295f60fbe7a505f24e0733 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Fri, 14 Apr 2023 16:10:38 +0800 Subject: [PATCH 66/93] 1 --- business/model/dao/dao_order.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/business/model/dao/dao_order.go b/business/model/dao/dao_order.go index d620e7b44..bad74d388 100644 --- a/business/model/dao/dao_order.go +++ b/business/model/dao/dao_order.go @@ -420,7 +420,7 @@ type TotalShopMoney struct { func GetPlatformSettlement(db *DaoDB, storeIDs []int, finishedAtBegin, finishedAtEnd time.Time) ([]*TotalShopMoney, error) { sql := ` - SELECT SUM(t2.total_shop_money) total_shop_money FROM goods_order t2 WHERE t2.order_finished_at >= ? AND t2.order_finished_at <= ? + SELECT SUM(t2.total_shop_money) total_shop_money,t2.vendor_id FROM goods_order t2 WHERE t2.order_finished_at >= ? AND t2.order_finished_at <= ? ` sqlParams := []interface{}{ finishedAtBegin, @@ -430,7 +430,7 @@ func GetPlatformSettlement(db *DaoDB, storeIDs []int, finishedAtBegin, finishedA sql += " AND IF(t2.jx_store_id > 0, t2.jx_store_id, t2.store_id) IN (" + GenQuestionMarks(len(storeIDs)) + ")" sqlParams = append(sqlParams, storeIDs) } - sql += ` AND t2.status = ? ` + sql += ` AND t2.status = ? GROUP BY t2.vendor_id` sqlParams = append(sqlParams, model.OrderStatusFinished) var total []*TotalShopMoney From 2e2d7f4cd591d2013cf4a57933a88ef1a247b3d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Fri, 14 Apr 2023 16:15:48 +0800 Subject: [PATCH 67/93] 1 --- business/model/dao/dao_order.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/model/dao/dao_order.go b/business/model/dao/dao_order.go index bad74d388..bfe408d46 100644 --- a/business/model/dao/dao_order.go +++ b/business/model/dao/dao_order.go @@ -415,7 +415,7 @@ func GetStoreOrderSkuList(db *DaoDB, storeIDs []int, finishedAtBegin, finishedAt type TotalShopMoney struct { TotalShopMoney int64 `json:"totalShopMoney"` - VendorID int `json:"vendorID"` + VendorID int `json:"vendorId"` } func GetPlatformSettlement(db *DaoDB, storeIDs []int, finishedAtBegin, finishedAtEnd time.Time) ([]*TotalShopMoney, error) { From 647dcd1fb9e47b4648f68a517c4dd2a74f3ff55d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Fri, 14 Apr 2023 16:24:22 +0800 Subject: [PATCH 68/93] 1 --- business/model/dao/dao_order.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/model/dao/dao_order.go b/business/model/dao/dao_order.go index bfe408d46..cce0e0aa5 100644 --- a/business/model/dao/dao_order.go +++ b/business/model/dao/dao_order.go @@ -415,7 +415,7 @@ func GetStoreOrderSkuList(db *DaoDB, storeIDs []int, finishedAtBegin, finishedAt type TotalShopMoney struct { TotalShopMoney int64 `json:"totalShopMoney"` - VendorID int `json:"vendorId"` + VendorID int `orm:"column(vendor_id)" json:"vendorID"` } func GetPlatformSettlement(db *DaoDB, storeIDs []int, finishedAtBegin, finishedAtEnd time.Time) ([]*TotalShopMoney, error) { From 3bca7378ffdfabbcef25cfd88accc5f2c3c0c6a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Fri, 14 Apr 2023 17:08:38 +0800 Subject: [PATCH 69/93] 1 --- business/jxcallback/orderman/orderman_ext.go | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/business/jxcallback/orderman/orderman_ext.go b/business/jxcallback/orderman/orderman_ext.go index 887160b65..c3fb530e3 100644 --- a/business/jxcallback/orderman/orderman_ext.go +++ b/business/jxcallback/orderman/orderman_ext.go @@ -1075,9 +1075,7 @@ func (c *OrderManager) GetStoresOrderSaleInfoNew(ctx *jxcontext.Context, storeID } for _, v := range saleInfoMap { if v.Status == model.OrderStatusFinished { - settle, err := dao.GetPlatformSettlement(db, storeIDList, fromTime, toTime) - globals.SugarLogger.Debugf("============err :%v", err) - globals.SugarLogger.Debugf("============settle :%s", utils.Format4Output(settle, false)) + settle, _ := dao.GetPlatformSettlement(db, storeIDList, fromTime, toTime) for _, s := range settle { if v.VendorID == s.VendorID { v.PlatformSettlement = s.TotalShopMoney From d07350b0d524939ec05480f352b078f7860e66aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Fri, 14 Apr 2023 18:04:56 +0800 Subject: [PATCH 70/93] 1 --- business/jxstore/cms/store.go | 1 - 1 file changed, 1 deletion(-) diff --git a/business/jxstore/cms/store.go b/business/jxstore/cms/store.go index f2de6c887..70a40fbf1 100644 --- a/business/jxstore/cms/store.go +++ b/business/jxstore/cms/store.go @@ -1078,7 +1078,6 @@ func UpdateStore(ctx *jxcontext.Context, storeID int, payload map[string]interfa } } - globals.SugarLogger.Debugf("===========valid := %s", utils.Format4Output(valid, false)) if len(valid) > 0 { if globals.IsAddEvent { mapBefore := refutil.FindMapAndStructMixed(valid, beforStore) From f3438dddc14ccd2c973dcc812263a8cac305ae60 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Mon, 17 Apr 2023 14:01:53 +0800 Subject: [PATCH 71/93] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=8A=9B=E8=8D=90?= =?UTF-8?q?=E5=95=86=E5=93=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/act/act.go | 52 ++++++++++++++++++------------------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/business/jxstore/act/act.go b/business/jxstore/act/act.go index 41967ad06..b1ac311df 100644 --- a/business/jxstore/act/act.go +++ b/business/jxstore/act/act.go @@ -2035,32 +2035,32 @@ func RrefreshMtwmVendorAct(ctx *jxcontext.Context) (err error) { } // 查询门店爆款商品,当门店存在爆款时,取消之前的力荐商品,将新的爆款设置为力荐商品 // 商品为手动设置力荐或者爆款活动在取消力荐之前被删除,那么无法取消被力荐的商品! - //if k == mtwmapi.RetailActTypeSecKill && len(actList) > 0 && storeMap.StoreID == 1 { - // allActivitySkuIdList := make([]string, 0, 0) // 此门店全部的折扣(爆款)活动商品 - // activationActivitySkuIdList := make([]*partner.StoreSkuInfo, 0, 0) // 此门店正在进行的折扣(爆款)活动商品 - // loseActivitySkuIdList := make([]*partner.StoreSkuInfo, 0, 0) // 此门店已经结束的折扣(爆款)活动商品 - // for _, ac := range actList { - // allActivitySkuIdList = append(allActivitySkuIdList, utils.Int64ToStr(ac.ItemID)) - // // 已经生效的爆款活动 - // if ac.Status == 1 && ac.SkuId != "" { - // activationActivitySkuIdList = append(activationActivitySkuIdList, &partner.StoreSkuInfo{ - // SkuID: utils.Str2Int(ac.SkuId), - // IsSpecialty: 1, - // }) - // } - // // 已经失效的爆款活动 - // if ac.Status == 0 && ac.SkuId != "" { - // loseActivitySkuIdList = append(loseActivitySkuIdList, &partner.StoreSkuInfo{ - // SkuID: utils.Str2Int(ac.SkuId), - // IsSpecialty: 0, - // }) - // } - // } - // // 取消当前力荐商品 - // partner.GetPurchasePlatformFromVendorID(storeMap.VendorID).(partner.ISingleStoreStoreSkuHandler).UpdateStoreSkusSpecTag(ctx, storeMap.VendorOrgCode, storeMap.StoreID, storeMap.VendorStoreID, loseActivitySkuIdList) - // // 重新推荐力荐商品 - // partner.GetPurchasePlatformFromVendorID(storeMap.VendorID).(partner.ISingleStoreStoreSkuHandler).UpdateStoreSkusSpecTag(ctx, storeMap.VendorOrgCode, storeMap.StoreID, storeMap.VendorStoreID, activationActivitySkuIdList) - //} + if k == mtwmapi.RetailActTypeSecKill && len(actList) > 0 && storeMap.VendorID == model.VendorIDMTWM { + allActivitySkuIdList := make([]string, 0, 0) // 此门店全部的折扣(爆款)活动商品 + activationActivitySkuIdList := make([]*partner.StoreSkuInfo, 0, 0) // 此门店正在进行的折扣(爆款)活动商品 + loseActivitySkuIdList := make([]*partner.StoreSkuInfo, 0, 0) // 此门店已经结束的折扣(爆款)活动商品 + for _, ac := range actList { + allActivitySkuIdList = append(allActivitySkuIdList, utils.Int64ToStr(ac.ItemID)) + // 已经生效的爆款活动 + if ac.Status == 1 && ac.SkuId != "" { + activationActivitySkuIdList = append(activationActivitySkuIdList, &partner.StoreSkuInfo{ + SkuID: utils.Str2Int(ac.SkuId), + IsSpecialty: 1, + }) + } + // 已经失效的爆款活动 + if ac.Status == 0 && ac.SkuId != "" { + loseActivitySkuIdList = append(loseActivitySkuIdList, &partner.StoreSkuInfo{ + SkuID: utils.Str2Int(ac.SkuId), + IsSpecialty: 0, + }) + } + } + // 取消当前力荐商品 + partner.GetPurchasePlatformFromVendorID(storeMap.VendorID).(partner.ISingleStoreStoreSkuHandler).UpdateStoreSkusSpecTag(ctx, storeMap.VendorOrgCode, storeMap.StoreID, storeMap.VendorStoreID, loseActivitySkuIdList) + // 重新推荐力荐商品 + partner.GetPurchasePlatformFromVendorID(storeMap.VendorID).(partner.ISingleStoreStoreSkuHandler).UpdateStoreSkusSpecTag(ctx, storeMap.VendorOrgCode, storeMap.StoreID, storeMap.VendorStoreID, activationActivitySkuIdList) + } } return retVal, err }, storeMaps) From 79bd42ea73ef6911bdb4e45692ff1d0d7079ff09 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Tue, 18 Apr 2023 13:50:02 +0800 Subject: [PATCH 72/93] =?UTF-8?q?=E6=B7=BB=E5=8A=A0ebai?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jxcallback/auto_delivery/auto_delivery.go | 2 +- business/jxcallback/orderman/orderman_ext.go | 9 ++ .../jxcallback/scheduler/defsch/defsch_ext.go | 10 +- business/jxstore/act/act.go | 2 +- business/jxstore/cms/system_store_sku.go | 108 ++++++++++++++++++ business/model/dao/dao_order.go | 36 +++++- business/partner/delivery/rider.go | 104 ++++++++++------- business/partner/purchase/ebai/ebai.go | 2 +- 8 files changed, 219 insertions(+), 54 deletions(-) create mode 100644 business/jxstore/cms/system_store_sku.go diff --git a/business/jxcallback/auto_delivery/auto_delivery.go b/business/jxcallback/auto_delivery/auto_delivery.go index a01da9ba7..e0f2ffe05 100644 --- a/business/jxcallback/auto_delivery/auto_delivery.go +++ b/business/jxcallback/auto_delivery/auto_delivery.go @@ -75,7 +75,7 @@ func Init() { riderListInfo = list } -// AutoSettingFakeDelivery 抖音自动设置骑手, 推送假订单 +// AutoSettingFakeDelivery 抖音自动设置骑手(饿百), 推送假订单 func AutoSettingFakeDelivery() { db := dao.GetDB() diff --git a/business/jxcallback/orderman/orderman_ext.go b/business/jxcallback/orderman/orderman_ext.go index c3fb530e3..cb5a9aa2f 100644 --- a/business/jxcallback/orderman/orderman_ext.go +++ b/business/jxcallback/orderman/orderman_ext.go @@ -1075,12 +1075,21 @@ func (c *OrderManager) GetStoresOrderSaleInfoNew(ctx *jxcontext.Context, storeID } for _, v := range saleInfoMap { if v.Status == model.OrderStatusFinished { + // 计算平台计算 settle, _ := dao.GetPlatformSettlement(db, storeIDList, fromTime, toTime) for _, s := range settle { if v.VendorID == s.VendorID { v.PlatformSettlement = s.TotalShopMoney } } + + // 计算三方配送 + fee, _ := dao.GetPlatformDesiredFee(db, storeIDList, fromTime, toTime) + for _, f := range fee { + if v.VendorID == f.VendorID { + v.ActualFee = f.ActualFee + } + } } saleInfoList = append(saleInfoList, v) } diff --git a/business/jxcallback/scheduler/defsch/defsch_ext.go b/business/jxcallback/scheduler/defsch/defsch_ext.go index d09b25037..2a1f50f7e 100644 --- a/business/jxcallback/scheduler/defsch/defsch_ext.go +++ b/business/jxcallback/scheduler/defsch/defsch_ext.go @@ -94,7 +94,7 @@ func (s *DefScheduler) SelfDeliveringAndUpdateStatus(ctx *jxcontext.Context, ven VendorWaybillID2: "", WaybillVendorID: model.VendorJXFakeWL, VendorOrderID: order.VendorOrderID, - OrderVendorID: model.VendorIDDD, + OrderVendorID: order.VendorID, CourierName: courierName, CourierMobile: courierMobile, Status: model.OrderStatusNew, @@ -108,7 +108,7 @@ func (s *DefScheduler) SelfDeliveringAndUpdateStatus(ctx *jxcontext.Context, ven WaybillFinishedAt: utils.DefaultTimeValue, StatusTime: timeNow.Add(randTime), // 下一状态时间 OriginalData: "", - Remark: "自定义物流单", + Remark: "自定义物流单(抖音/饿了么)", VendorOrgCode: order.VendorOrgCode, } err = dao.CreateEntity(dao.GetDB(), bill) @@ -130,9 +130,9 @@ func (s *DefScheduler) canOrderCreateWaybillNormally(order *model.GoodsOrder, sa func (s *DefScheduler) isPossibleSwitch2SelfDelivery(order *model.GoodsOrder) (err error) { //TODO 刷单用,之后不刷单了删除 - if order.VendorID == model.VendorIDDD { - return nil - } + //if order.VendorID == model.VendorIDDD { + // return nil + //} if model.IsOrderDeliveryByPlatform(order) { if order.Status < model.OrderStatusFinishedPickup { diff --git a/business/jxstore/act/act.go b/business/jxstore/act/act.go index b1ac311df..97cc988bc 100644 --- a/business/jxstore/act/act.go +++ b/business/jxstore/act/act.go @@ -2045,7 +2045,7 @@ func RrefreshMtwmVendorAct(ctx *jxcontext.Context) (err error) { if ac.Status == 1 && ac.SkuId != "" { activationActivitySkuIdList = append(activationActivitySkuIdList, &partner.StoreSkuInfo{ SkuID: utils.Str2Int(ac.SkuId), - IsSpecialty: 1, + IsSpecialty: 0, }) } // 已经失效的爆款活动 diff --git a/business/jxstore/cms/system_store_sku.go b/business/jxstore/cms/system_store_sku.go new file mode 100644 index 000000000..15d137397 --- /dev/null +++ b/business/jxstore/cms/system_store_sku.go @@ -0,0 +1,108 @@ +package cms + +import ( + "fmt" + "git.rosy.net.cn/baseapi/platformapi/mtwmapi" + "git.rosy.net.cn/jx-callback/business/jxutils/jxcontext" + "git.rosy.net.cn/jx-callback/business/jxutils/tasksch" + "git.rosy.net.cn/jx-callback/business/model" + "git.rosy.net.cn/jx-callback/business/model/dao" + "git.rosy.net.cn/jx-callback/business/partner" + "time" +) + +// CopyOnStoreSkuToOther 将一个美团门店分类和商品复制到另一个门店 +func CopyOnStoreSkuToOther(ctx *jxcontext.Context, fromStoreId, toStoreId int, isAsync bool) (hint string, err error) { + var ( + db = dao.GetDB() + ) + + // 门店api加载 + fromStore, err := dao.GetStoreDetail(db, fromStoreId, model.VendorIDMTWM, "") + if err != nil { + return "", err + } + toStore, err := dao.GetStoreDetail(db, fromStoreId, model.VendorIDMTWM, "") + if err != nil { + return "", err + } + fromApi := partner.CurAPIManager.GetAPI(model.VendorIDMTWM, fromStore.VendorOrgCode).(*mtwmapi.API) + toApi := partner.CurAPIManager.GetAPI(model.VendorIDMTWM, toStore.VendorOrgCode).(*mtwmapi.API) + + taskName := fmt.Sprintf("将平台门店[%d],分类和商品复制到[%d]", fromStoreId, toStoreId) + config := tasksch.NewParallelConfig().SetParallelCount(1).SetIsContinueWhenError(false) + work := func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { + step := batchItemList[0].(int) + switch step { + case 1: + // 1.加载门店商品,删除商品.当分类下没有商品时.删除分类 + errs := LoadingStoreSkuList(ctx, toApi, toStore.VendorStoreID) + if errs != nil && len(errs) > 0 { + return nil, errs[0] + } + case 2: + // 同步分类 + fromCategoryList, err := fromApi.RetailCatList(fromStore.VendorStoreID) + if err != nil { + return nil, err + } + for _, v := range fromCategoryList { + if err := toApi.RetailCatUpdate(toStore.VendorStoreID, v.Name, &mtwmapi.Param4UpdateCat{ + CategoryCode: v.Code, + Sequence: v.Sequence, + }); err != nil { + return nil, err + } + if v.Children != nil && len(v.Children) != 0 { + //for _, c := range v.Children { + // if err := toApi.RetailCatUpdate(toStore.VendorStoreID, v.Name, &mtwmapi.Param4UpdateCat{ + // CategoryCode: v.Code, + // Sequence: v.Sequence, + // }); err != nil { + // return nil, err + // } + //} + } + } + + case 3: + // 同步商品 + + } + return + } + task := tasksch.NewParallelTask(taskName, config, ctx, work, []int{1, 2, 3}) + tasksch.HandleTask(task, nil, true).Run() + if !isAsync { + _, err = task.GetResult(0) + hint = "1" + } else { + hint = task.ID + } + return hint, err +} + +func LoadingStoreSkuList(ctx *jxcontext.Context, api *mtwmapi.API, poiCode string) (err []error) { + foodList, err1 := api.RetailListAll(poiCode) + if err1 != nil { + return append(err, err1) + } + + i := 0 + for _, v := range foodList { + err1 := api.RetailDelete(ctx.GetTrackInfo(), poiCode, v.AppFoodCode) + if err1 != nil { + err = append(err, err1) + } + if i%40 == 0 { + time.Sleep(200 * time.Millisecond) + } + i++ + } + + return +} + +func LoadStoreCategoryList() { + +} diff --git a/business/model/dao/dao_order.go b/business/model/dao/dao_order.go index cce0e0aa5..e056158e1 100644 --- a/business/model/dao/dao_order.go +++ b/business/model/dao/dao_order.go @@ -38,7 +38,8 @@ type StoresOrderSaleInfo struct { RealEarningPrice int64 `json:"realEarningPrice"` - PlatformSettlement int64 `json:"platformSettlement"` // 真实订单的平台结算 + PlatformSettlement int64 `json:"platformSettlement"` // 真实订单的平台结算(无扣点) + ActualFee int64 `json:"actualFee"` // 真三方运单配送费 } type OrderSkuWithActualPayPrice struct { @@ -418,6 +419,7 @@ type TotalShopMoney struct { VendorID int `orm:"column(vendor_id)" json:"vendorID"` } +// GetPlatformSettlement 统计平台的结算信息 func GetPlatformSettlement(db *DaoDB, storeIDs []int, finishedAtBegin, finishedAtEnd time.Time) ([]*TotalShopMoney, error) { sql := ` SELECT SUM(t2.total_shop_money) total_shop_money,t2.vendor_id FROM goods_order t2 WHERE t2.order_finished_at >= ? AND t2.order_finished_at <= ? @@ -438,6 +440,34 @@ func GetPlatformSettlement(db *DaoDB, storeIDs []int, finishedAtBegin, finishedA return total, err } +type DeliveryFee struct { + ActualFee int64 `json:"actualFee"` + VendorID int `orm:"column(vendor_id)" json:"vendorID"` +} + +// GetPlatformDesiredFee 统计平台的订单的配送费信息 +func GetPlatformDesiredFee(db *DaoDB, storeIDs []int, finishedAtBegin, finishedAtEnd time.Time) (fee []*DeliveryFee, err error) { + sql := ` + SELECT sum(b.actual_fee) actual_fee,b.order_vendor_id vendor_id FROM goods_order t2 + RIGHT JOIN waybill b ON t2.vendor_order_id = b.vendor_order_id AND b.status IN (?,?) AND b.vendor_order_id <> b.vendor_waybill_id + WHERE t2.order_finished_at >= ? AND t2.order_finished_at <= ? +` + sqlParams := []interface{}{ + model.WaybillStatusDelivered, + 110, + finishedAtBegin, + finishedAtEnd, + } + if len(storeIDs) > 0 { + sql += " AND IF(t2.jx_store_id > 0, t2.jx_store_id, t2.store_id) IN (" + GenQuestionMarks(len(storeIDs)) + ")" + sqlParams = append(sqlParams, storeIDs) + } + + sql += ` GROUP BY b.order_vendor_id ` + err = GetRows(db, &fee, sql, sqlParams...) + return +} + func GetStoreOrderSkuList4Afs(db *DaoDB, storeIDs []int, finishedAtBegin, finishedAtEnd time.Time, isFinish bool) (skuList []*OrderSkuWithActualPayPrice, err error) { sql := ` SELECT t1.*, @@ -1866,8 +1896,8 @@ func GetOrderStoreIDs(db *DaoDB, beginAt, endAt time.Time, vendorID int) (storeI // GetOrderListByStoreList 根据门店id获取正在刷单的门店商品 func GetOrderListByStoreList(db *DaoDB, storeId []int64) (order []*model.GoodsOrder, err error) { - sql := `SELECT * FROM goods_order g WHERE g.order_created_at >= ? AND g.order_created_at <= ? AND g.jx_store_id IN (` + GenQuestionMarks(len(storeId)) + `)` + `AND g.vendor_id = ? AND g.status < ?` - sqlParam := []interface{}{time.Now().AddDate(0, 0, -5), time.Now().AddDate(0, 0, 1), storeId, model.VendorIDDD, model.OrderStatusDelivering} + sql := `SELECT * FROM goods_order g WHERE g.order_created_at >= ? AND g.order_created_at <= ? AND g.jx_store_id IN (` + GenQuestionMarks(len(storeId)) + `)` + `AND g.vendor_id IN (` + GenQuestionMarks(2) + `)` + `AND g.status < ?` + sqlParam := []interface{}{time.Now().AddDate(0, 0, -5), time.Now().AddDate(0, 0, 1), storeId, []int{model.VendorIDDD, model.VendorIDEBAI}, model.OrderStatusDelivering} if err := GetRows(db, &order, sql, sqlParam...); err != nil { return nil, err diff --git a/business/partner/delivery/rider.go b/business/partner/delivery/rider.go index 5550a8559..5d240c759 100644 --- a/business/partner/delivery/rider.go +++ b/business/partner/delivery/rider.go @@ -220,6 +220,52 @@ func UpdateOrder2Complete() { return } +func makeRiderInfo(fakeWayBill *model.Waybill, riderInfo *mtpsapi.RiderInfo) { + switch fakeWayBill.Status { + case 5: // 呼叫骑手 + riderInfo.LogisticsContext = "呼叫骑手,新建运单" + riderInfo.LogisticsStatus = 0 + riderInfo.CourierName = "" + riderInfo.CourierPhone = "" + riderInfo.OpCode = tiktok_api.TiktokLogisticsStatusCALLRIDER + + // 下一状态以及推送时间 + fakeWayBill.Status = model.WaybillStatusCourierAssigned + fakeWayBill.VendorStatus = utils.Int64ToStr(model.WaybillStatusCourierAssigned) + case 12: // 骑手接单 + riderInfo.LogisticsContext = model.RiderWaitGetGoods + riderInfo.LogisticsStatus = 12 + riderInfo.OpCode = tiktok_api.TiktokLogisticsORDERRECEIVED + // 下一状态以及推送时间 + fakeWayBill.Status = model.WaybillStatusCourierArrived + fakeWayBill.VendorStatus = utils.Int64ToStr(model.WaybillStatusCourierArrived) + case 15: // 到店 + riderInfo.LogisticsContext = model.RiderToStore + riderInfo.LogisticsStatus = 15 + riderInfo.OpCode = tiktok_api.TiktokLogisticsRIDERARRIVED + // 下一状态以及推送时间 + fakeWayBill.Status = model.WaybillStatusDelivering + fakeWayBill.VendorStatus = utils.Int64ToStr(model.WaybillStatusDelivering) + case 20: //配送中 + riderInfo.LogisticsContext = model.RiderGetOrderDelivering + riderInfo.LogisticsStatus = 20 + riderInfo.OpCode = tiktok_api.TiktokLogisticsRIDERPICKUP + // 下一状态以及推送时间 + fakeWayBill.Status = model.WaybillStatusDelivered + fakeWayBill.VendorStatus = utils.Int64ToStr(model.WaybillStatusDelivered) + case 105: // 完成 + riderInfo.LogisticsContext = model.RiderGetOrderDelivered + riderInfo.LogisticsStatus = 40 + riderInfo.OpCode = tiktok_api.TiktokLogisticsDELIVERED + // 下一状态以及推送时间 + fakeWayBill.Status = model.WaybillStatusFailed + fakeWayBill.VendorStatus = utils.Int64ToStr(model.WaybillStatusFailed) + default: + return + } + return +} + // UpdateFakeWayBillToTiktok 轮询更新假订单到抖音 func UpdateFakeWayBillToTiktok() { scheduleTimer, _ := rand.Int(rand.Reader, big.NewInt(1000)) @@ -252,48 +298,7 @@ func UpdateFakeWayBillToTiktok() { LogisticsStatus: fakeWayBill[i].Status, } - switch fakeWayBill[i].Status { - case 5: // 呼叫骑手 - riderInfo.LogisticsContext = "呼叫骑手,新建运单" - riderInfo.LogisticsStatus = 0 - riderInfo.CourierName = "" - riderInfo.CourierPhone = "" - riderInfo.OpCode = tiktok_api.TiktokLogisticsStatusCALLRIDER - - // 下一状态以及推送时间 - fakeWayBill[i].Status = model.WaybillStatusCourierAssigned - fakeWayBill[i].VendorStatus = utils.Int64ToStr(model.WaybillStatusCourierAssigned) - case 12: // 骑手接单 - riderInfo.LogisticsContext = model.RiderWaitGetGoods - riderInfo.LogisticsStatus = 12 - riderInfo.OpCode = tiktok_api.TiktokLogisticsORDERRECEIVED - // 下一状态以及推送时间 - fakeWayBill[i].Status = model.WaybillStatusCourierArrived - fakeWayBill[i].VendorStatus = utils.Int64ToStr(model.WaybillStatusCourierArrived) - case 15: // 到店 - riderInfo.LogisticsContext = model.RiderToStore - riderInfo.LogisticsStatus = 15 - riderInfo.OpCode = tiktok_api.TiktokLogisticsRIDERARRIVED - // 下一状态以及推送时间 - fakeWayBill[i].Status = model.WaybillStatusDelivering - fakeWayBill[i].VendorStatus = utils.Int64ToStr(model.WaybillStatusDelivering) - case 20: //配送中 - riderInfo.LogisticsContext = model.RiderGetOrderDelivering - riderInfo.LogisticsStatus = 20 - riderInfo.OpCode = tiktok_api.TiktokLogisticsRIDERPICKUP - // 下一状态以及推送时间 - fakeWayBill[i].Status = model.WaybillStatusDelivered - fakeWayBill[i].VendorStatus = utils.Int64ToStr(model.WaybillStatusDelivered) - case 105: // 完成 - riderInfo.LogisticsContext = model.RiderGetOrderDelivered - riderInfo.LogisticsStatus = 40 - riderInfo.OpCode = tiktok_api.TiktokLogisticsDELIVERED - // 下一状态以及推送时间 - fakeWayBill[i].Status = model.WaybillStatusFailed - fakeWayBill[i].VendorStatus = utils.Int64ToStr(model.WaybillStatusFailed) - default: - continue - } + makeRiderInfo(fakeWayBill[i], riderInfo) if riderInfo.LogisticsContext != model.RiderGetOrderDeliverFailed && riderInfo.LogisticsContext != model.RiderGetOrderDeliverOther && riderInfo.LogisticsContext != model.RiderWaitRider { riderInfo.LogisticsContext = fmt.Sprintf(riderInfo.LogisticsContext, riderInfo.CourierName, riderInfo.CourierPhone) @@ -301,7 +306,8 @@ func UpdateFakeWayBillToTiktok() { // 推送骑手信息 paramsMap := utils.Struct2Map(riderInfo, "", true) - if handler := partner.GetPurchaseOrderHandlerFromVendorID(model.VendorIDDD); handler != nil { + handler := partner.GetPurchaseOrderHandlerFromVendorID(fakeWayBill[i].OrderVendorID) + if handler != nil { if err := handler.GetOrderRider(fakeWayBill[i].VendorOrgCode, "", paramsMap); err != nil { globals.SugarLogger.Errorf("Fake Pull Rider Info Err :%s--%s--%v", riderInfo.OrderId, riderInfo.ThirdCarrierOrderId, err) continue @@ -326,6 +332,18 @@ func UpdateFakeWayBillToTiktok() { if err != nil { globals.SugarLogger.Debugf("UPDATA goods_order Err :%s", err.Error()) } + // 饿百订单推送订单送达 + if fakeWayBill[i].OrderVendorID == model.VendorIDEBAI { + order, err := partner.CurOrderManager.LoadOrder(fakeWayBill[i].VendorOrderID, fakeWayBill[i].OrderVendorID) + if err != nil { + globals.SugarLogger.Errorf("Loading order by wayBill vendorOrderID err := %v", err) + continue + } + if err := handler.Swtich2SelfDelivered(order, "JingXiAdmin"); err != nil { + globals.SugarLogger.Errorf("Swtich2SelfDelivered err := %v", err) + } + } + } } diff --git a/business/partner/purchase/ebai/ebai.go b/business/partner/purchase/ebai/ebai.go index da8d97498..de7853796 100644 --- a/business/partner/purchase/ebai/ebai.go +++ b/business/partner/purchase/ebai/ebai.go @@ -158,5 +158,5 @@ func (p *PurchaseHandler) GetVendorCategories(ctx *jxcontext.Context) (vendorCat } func (p *PurchaseHandler) GetOrderRider(vendorOrgCode, vendorStoreID string, param map[string]interface{}) (err error) { - return nil + return api.EbaiAPI.OrderselfDeliveryStateSync(param["order_id"].(string), param["courier_phone"].(string)) } From 7a37f4fc0345f8da59dec7f230fd7ff4b40be916 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Tue, 18 Apr 2023 15:44:19 +0800 Subject: [PATCH 73/93] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=A1=91=E8=91=9A?= =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/system_store_sku.go | 70 +++++++++++++++++--- business/partner/purchase/mtwm/store_sku2.go | 4 +- 2 files changed, 62 insertions(+), 12 deletions(-) diff --git a/business/jxstore/cms/system_store_sku.go b/business/jxstore/cms/system_store_sku.go index 15d137397..64f7c542e 100644 --- a/business/jxstore/cms/system_store_sku.go +++ b/business/jxstore/cms/system_store_sku.go @@ -3,11 +3,14 @@ package cms import ( "fmt" "git.rosy.net.cn/baseapi/platformapi/mtwmapi" + "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-callback/business/jxutils/jxcontext" "git.rosy.net.cn/jx-callback/business/jxutils/tasksch" "git.rosy.net.cn/jx-callback/business/model" "git.rosy.net.cn/jx-callback/business/model/dao" "git.rosy.net.cn/jx-callback/business/partner" + "git.rosy.net.cn/jx-callback/business/partner/purchase/mtwm" + "git.rosy.net.cn/jx-callback/business/partner/putils" "time" ) @@ -54,20 +57,28 @@ func CopyOnStoreSkuToOther(ctx *jxcontext.Context, fromStoreId, toStoreId int, i return nil, err } if v.Children != nil && len(v.Children) != 0 { - //for _, c := range v.Children { - // if err := toApi.RetailCatUpdate(toStore.VendorStoreID, v.Name, &mtwmapi.Param4UpdateCat{ - // CategoryCode: v.Code, - // Sequence: v.Sequence, - // }); err != nil { - // return nil, err - // } - //} + for _, c := range v.Children { + if err := toApi.RetailCatUpdate(toStore.VendorStoreID, v.Name, &mtwmapi.Param4UpdateCat{ + CategoryCode: v.Code, + SecondaryCategoryCode: c.Code, + SecondaryCategoryName: c.Name, + Sequence: c.Sequence, + }); err != nil { + return nil, err + } + } } } case 3: // 同步商品 - + fromFoodList, err1 := fromApi.RetailListAll(fromStore.VendorStoreID) + if err1 != nil { + return nil, err1 + } + if err := BatchInitData(ctx, fromFoodList, toApi, toStore.VendorStoreID); err != nil { + return nil, err + } } return } @@ -103,6 +114,45 @@ func LoadingStoreSkuList(ctx *jxcontext.Context, api *mtwmapi.API, poiCode strin return } -func LoadStoreCategoryList() { +// BatchInitData 批量创建商品 +func BatchInitData(ctx *jxcontext.Context, fromSku []*mtwmapi.AppFood, toApi *mtwmapi.API, vendorStoreID string) error { + foodDataList := make([]map[string]interface{}, len(fromSku)) + for i, storeSku := range fromSku { + foodData := make(map[string]interface{}) + foodDataList[i] = foodData + foodData[mtwmapi.KeyAppFoodCode] = storeSku.AppFoodCode + foodData["skus"] = storeSku.Skus + foodData["name"] = utils.LimitUTF8StringLen(storeSku.Name, mtwmapi.MaxSkuNameCharCount) + foodData["description"] = storeSku.Description + foodData["price"] = storeSku.Price + if storeSku.MinOrderCount != 0 { + foodData["min_order_count"] = storeSku.MinOrderCount + } else { + foodData["min_order_count"] = 1 + } + foodData["unit"] = storeSku.Unit + attr := mtwm.SwitchAttr(int64(storeSku.TagID)) + if attr != "" { + foodData["common_attr_value"] = attr + } + foodData["category_code"] = storeSku.CategoryCode + foodData["category_name"] = storeSku.CategoryName + foodData["is_sold_out"] = storeSku.IsSoldOut + foodData["picture"] = storeSku.Picture + foodData["picture_contents"] = storeSku.PictureContents + foodData["sequence"] = storeSku.Sequence + foodData["tag_id"] = storeSku.TagID + } + failedFoodList, err2 := toApi.RetailBatchInitData(ctx.GetTrackInfo(), vendorStoreID, foodDataList) + if err := err2; err == nil { + if err = putils.GenPartialFailedErr(failedFoodList, len(failedFoodList)); err != nil { + return err + } + } else if err2 != nil && len(failedFoodList) == 0 { + if errExt, ok := err2.(*utils.ErrorWithCode); ok { + return utils.UnmarshalUseNumber([]byte(errExt.ErrMsg()), &failedFoodList) + } + } + return nil } diff --git a/business/partner/purchase/mtwm/store_sku2.go b/business/partner/purchase/mtwm/store_sku2.go index d9142bf15..b2ea34890 100644 --- a/business/partner/purchase/mtwm/store_sku2.go +++ b/business/partner/purchase/mtwm/store_sku2.go @@ -323,7 +323,7 @@ func (p *PurchaseHandler) createOrUpdateStoreSkus(ctx *jxcontext.Context, storeI foodData["min_order_count"] = 1 } foodData["unit"] = storeSku.Unit - attr := switchAttr(storeSku.VendorVendorCatID) + attr := SwitchAttr(storeSku.VendorVendorCatID) if attr != "" { foodData["common_attr_value"] = attr } @@ -452,7 +452,7 @@ func (p *PurchaseHandler) DeleteStoreSkus(ctx *jxcontext.Context, storeID int, v return failedList, err } -func switchAttr(vendorCatID int64) (attrs string) { +func SwitchAttr(vendorCatID int64) (attrs string) { switch vendorCatID { case 200002727: return mtwmapi.MtwmSkuAttr200002727 From 9f06ac0489fbc7228d64f7d3c95656fd961fa22e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Wed, 19 Apr 2023 09:17:42 +0800 Subject: [PATCH 74/93] 1 --- business/jxstore/act/act.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/jxstore/act/act.go b/business/jxstore/act/act.go index 97cc988bc..b1ac311df 100644 --- a/business/jxstore/act/act.go +++ b/business/jxstore/act/act.go @@ -2045,7 +2045,7 @@ func RrefreshMtwmVendorAct(ctx *jxcontext.Context) (err error) { if ac.Status == 1 && ac.SkuId != "" { activationActivitySkuIdList = append(activationActivitySkuIdList, &partner.StoreSkuInfo{ SkuID: utils.Str2Int(ac.SkuId), - IsSpecialty: 0, + IsSpecialty: 1, }) } // 已经失效的爆款活动 From ec6936aa3e1db67362e1475b19f855c37997d54b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Wed, 19 Apr 2023 09:27:51 +0800 Subject: [PATCH 75/93] 1 --- business/jxstore/misc/misc.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/jxstore/misc/misc.go b/business/jxstore/misc/misc.go index 8266e7fc9..7d4b263e9 100644 --- a/business/jxstore/misc/misc.go +++ b/business/jxstore/misc/misc.go @@ -50,7 +50,7 @@ var ( "21:30:00", } dailyWorkTimeList2 = []string{ - "2:00:00", + "09:30:00", } priceReferTimeList = []string{ "03:00:00", From fead07291b1b0fbc2b2f840d7bae92627866ee33 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Wed, 19 Apr 2023 15:04:51 +0800 Subject: [PATCH 76/93] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=A5=BF=E7=99=BE?= =?UTF-8?q?=E9=AA=91=E6=89=8B=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/misc/misc.go | 2 +- business/partner/purchase/ebai/ebai.go | 33 +++++++++++++++++++++++++- controllers/cms_store_sku.go | 16 +++++++++++++ routers/commentsRouter_controllers.go | 9 +++++++ 4 files changed, 58 insertions(+), 2 deletions(-) diff --git a/business/jxstore/misc/misc.go b/business/jxstore/misc/misc.go index 7d4b263e9..d9131d22b 100644 --- a/business/jxstore/misc/misc.go +++ b/business/jxstore/misc/misc.go @@ -50,7 +50,7 @@ var ( "21:30:00", } dailyWorkTimeList2 = []string{ - "09:30:00", + "02:30:00", } priceReferTimeList = []string{ "03:00:00", diff --git a/business/partner/purchase/ebai/ebai.go b/business/partner/purchase/ebai/ebai.go index de7853796..87d00fe51 100644 --- a/business/partner/purchase/ebai/ebai.go +++ b/business/partner/purchase/ebai/ebai.go @@ -158,5 +158,36 @@ func (p *PurchaseHandler) GetVendorCategories(ctx *jxcontext.Context) (vendorCat } func (p *PurchaseHandler) GetOrderRider(vendorOrgCode, vendorStoreID string, param map[string]interface{}) (err error) { - return api.EbaiAPI.OrderselfDeliveryStateSync(param["order_id"].(string), param["courier_phone"].(string)) + selfStatus := 0 + switch param["logistics_status"].(int) { + case 0: + selfStatus = 2 // 2:配送待分配 + case 12: + selfStatus = 3 // 骑士接单 + case 15: + selfStatus = 8 // 骑士到店 + case 20: + selfStatus = 20 // 骑手送出 + case 40: + selfStatus = 30 // 配送完成 + default: + selfStatus = 7 // 配送异常 + } + param2 := &ebaiapi.PushRiderInfo{ + DistributorId: 201, + OrderId: param["order_id"].(string), + State: 21, + SelfStatus: selfStatus, + SelfStatusDesc: param["logistics_context"].(string), + DistributorInfoDTO: ebaiapi.DistributorInfoDTO{ + DistributorTypeId: "99999", + DistributorName: "商家自行配送", + }, + Knight: ebaiapi.Knight{ + Id: param["order_id"].(int64), + Name: param["courier_name"].(string), + Phone: param["courier_phone"].(string), + }, + } + return api.EbaiAPI.OrderselfDeliveryStateSync2(param2) } diff --git a/controllers/cms_store_sku.go b/controllers/cms_store_sku.go index b70369015..36c3d0008 100644 --- a/controllers/cms_store_sku.go +++ b/controllers/cms_store_sku.go @@ -2,6 +2,7 @@ package controllers import ( "git.rosy.net.cn/baseapi/platformapi/jdapi" + "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-callback/business/auth2" "git.rosy.net.cn/jx-callback/business/model" @@ -1039,3 +1040,18 @@ func (c *StoreSkuController) CopyMtToJd() { return retVal, "", err }) } + +// @Title 美团门店复制到美团 +// @Description 美团门店复制到美团 +// @Param token header string true "认证token" +// @Param fromStoreID formData string true "被复制门店id" +// @Param toStoreID formData string true "复制到门店id" +// @Success 200 {object} controllers.CallResult +// @Failure 200 {object} controllers.CallResult +// @router /CopyMtToMt [post] +func (c *StoreSkuController) CopyMtToMt() { + c.callCopyMtToMt(func(params *tStoreSkuCopyMtToMtParams) (retVal interface{}, errCode string, err error) { + retVal, err = cms.CopyOnStoreSkuToOther(params.Ctx, utils.Str2Int(params.FromStoreID), utils.Str2Int(params.ToStoreID), false) + return retVal, errCode, err + }) +} diff --git a/routers/commentsRouter_controllers.go b/routers/commentsRouter_controllers.go index ae493ebdf..2d32cee6a 100644 --- a/routers/commentsRouter_controllers.go +++ b/routers/commentsRouter_controllers.go @@ -3218,6 +3218,15 @@ func init() { Filters: nil, Params: nil}) + web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreSkuController"] = append(web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreSkuController"], + web.ControllerComments{ + Method: "CopyMtToMt", + Router: `/CopyMtToMt`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreSkuController"] = append(web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreSkuController"], web.ControllerComments{ Method: "GetStoresSkusSaleInfo", From f308a225b05abde4ab62785667de46ebc93846f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Wed, 19 Apr 2023 18:16:23 +0800 Subject: [PATCH 77/93] 1 --- business/jxcallback/auto_delivery/auto_delivery.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/jxcallback/auto_delivery/auto_delivery.go b/business/jxcallback/auto_delivery/auto_delivery.go index e0f2ffe05..4df4fda8a 100644 --- a/business/jxcallback/auto_delivery/auto_delivery.go +++ b/business/jxcallback/auto_delivery/auto_delivery.go @@ -137,7 +137,7 @@ func AutoSettingFakeDelivery() { if v.Status < model.OrderStatusFinishedPickup { // 未拣货 handler := partner.GetPurchaseOrderHandlerFromVendorID(v.VendorID) flag := model.IsOrderDeliveryByStore(v) || model.IsOrderDeliveryBySelf(v) - if err := handler.PickupGoods(v, flag, jxcontext.AdminCtx.GetUserName()); err != nil { + if err := handler.PickupGoods(v, flag, jxcontext.AdminCtx.GetUserName()); err != nil && v.VendorID == model.VendorIDDD { globals.SugarLogger.Errorf("自动拣货错误:[%v]", err) break } From 604d95d1a162802b3ed62772d039aee893a88717 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Wed, 19 Apr 2023 18:32:47 +0800 Subject: [PATCH 78/93] 1 --- business/jxcallback/auto_delivery/auto_delivery.go | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/business/jxcallback/auto_delivery/auto_delivery.go b/business/jxcallback/auto_delivery/auto_delivery.go index 4df4fda8a..0d294215d 100644 --- a/business/jxcallback/auto_delivery/auto_delivery.go +++ b/business/jxcallback/auto_delivery/auto_delivery.go @@ -109,6 +109,16 @@ func AutoSettingFakeDelivery() { } else { riderKey = strings.Split(v.ConsigneeAddress, "省")[0] } + + if riderKey == "" { + storeDetail, _ := dao.GetStoreDetail(db, v.JxStoreID, 0, "") + if strings.Contains(storeDetail.Address, "重庆") || strings.Contains(storeDetail.Address, "上海") || strings.Contains(storeDetail.Address, "北京") { + riderKey = strings.Split(storeDetail.Address, "市")[0] + } else { + riderKey = strings.Split(storeDetail.Address, "省")[0] + } + } + if len(riderListInfo[riderKey]) == model.NO { // 骑手列表 configRiderList, err := dao.QueryConfigs(db, "riderList", "Sys", "") @@ -137,7 +147,7 @@ func AutoSettingFakeDelivery() { if v.Status < model.OrderStatusFinishedPickup { // 未拣货 handler := partner.GetPurchaseOrderHandlerFromVendorID(v.VendorID) flag := model.IsOrderDeliveryByStore(v) || model.IsOrderDeliveryBySelf(v) - if err := handler.PickupGoods(v, flag, jxcontext.AdminCtx.GetUserName()); err != nil && v.VendorID == model.VendorIDDD { + if err := handler.PickupGoods(v, flag, jxcontext.AdminCtx.GetUserName()); err != nil { globals.SugarLogger.Errorf("自动拣货错误:[%v]", err) break } From d1c29b2eb04eb50415375a163b4574f73b8c82e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Wed, 19 Apr 2023 18:39:08 +0800 Subject: [PATCH 79/93] 1 --- business/jxcallback/auto_delivery/auto_delivery.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/business/jxcallback/auto_delivery/auto_delivery.go b/business/jxcallback/auto_delivery/auto_delivery.go index 0d294215d..984366ad4 100644 --- a/business/jxcallback/auto_delivery/auto_delivery.go +++ b/business/jxcallback/auto_delivery/auto_delivery.go @@ -99,6 +99,7 @@ func AutoSettingFakeDelivery() { if len(orderList) == model.NO { return } + globals.SugarLogger.Debugf("==================orderList=:%s", utils.Format4Output(orderList, false)) for _, v := range orderList { //jxutils.CallMsgHandler(func() { @@ -131,6 +132,7 @@ func AutoSettingFakeDelivery() { return } } + globals.SugarLogger.Debugf("==================riderKey=:%s", riderKey) randNumber, _ := rand.Int(rand.Reader, big.NewInt(int64(len(riderListInfo[riderKey])))) randTime := randNumber.Int64() From 739d8c260d05eabd537ead30df93811765cc4b8c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Wed, 19 Apr 2023 18:43:21 +0800 Subject: [PATCH 80/93] 1 --- business/jxcallback/auto_delivery/auto_delivery.go | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/business/jxcallback/auto_delivery/auto_delivery.go b/business/jxcallback/auto_delivery/auto_delivery.go index 984366ad4..44732079f 100644 --- a/business/jxcallback/auto_delivery/auto_delivery.go +++ b/business/jxcallback/auto_delivery/auto_delivery.go @@ -107,11 +107,9 @@ func AutoSettingFakeDelivery() { riderKey := "" if strings.Contains(v.ConsigneeAddress, "重庆") || strings.Contains(v.ConsigneeAddress, "上海") || strings.Contains(v.ConsigneeAddress, "北京") { riderKey = strings.Split(v.ConsigneeAddress, "市")[0] - } else { + } else if strings.Contains(v.ConsigneeAddress, "省") { riderKey = strings.Split(v.ConsigneeAddress, "省")[0] - } - - if riderKey == "" { + } else { storeDetail, _ := dao.GetStoreDetail(db, v.JxStoreID, 0, "") if strings.Contains(storeDetail.Address, "重庆") || strings.Contains(storeDetail.Address, "上海") || strings.Contains(storeDetail.Address, "北京") { riderKey = strings.Split(storeDetail.Address, "市")[0] From 38aa6e1e7a607a308b83399c3585b24eb49c7ffd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Wed, 19 Apr 2023 18:46:51 +0800 Subject: [PATCH 81/93] 1 --- business/jxcallback/auto_delivery/auto_delivery.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/jxcallback/auto_delivery/auto_delivery.go b/business/jxcallback/auto_delivery/auto_delivery.go index 44732079f..3aef986f9 100644 --- a/business/jxcallback/auto_delivery/auto_delivery.go +++ b/business/jxcallback/auto_delivery/auto_delivery.go @@ -140,7 +140,7 @@ func AutoSettingFakeDelivery() { if randTime >= int64(len(riderListInfo[riderKey])) { randTime = int64(len(riderListInfo[riderKey])) - 1 } - if v.PhoneAscription == "" || strings.Split(v.PhoneAscription, "-")[0] != model.PhoneAscriptionAddressYes { + if (v.PhoneAscription == "" || strings.Split(v.PhoneAscription, "-")[0] != model.PhoneAscriptionAddressYes) && v.VendorID == model.VendorIDDD { continue } // 自动拣货 From 20525db52047f3fed3bd6af200276c2027c32784 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Wed, 19 Apr 2023 18:52:26 +0800 Subject: [PATCH 82/93] 1 --- business/jxcallback/scheduler/defsch/defsch_ext.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/jxcallback/scheduler/defsch/defsch_ext.go b/business/jxcallback/scheduler/defsch/defsch_ext.go index 2a1f50f7e..9a8c6eb06 100644 --- a/business/jxcallback/scheduler/defsch/defsch_ext.go +++ b/business/jxcallback/scheduler/defsch/defsch_ext.go @@ -81,7 +81,7 @@ func (s *DefScheduler) SelfDeliveringAndUpdateStatus(ctx *jxcontext.Context, ven } // 上面是真的转自送,支持美团,饿百,京东,如果时抖店,抖店暂时全部是自送的!但是有骑手信息时,就是一个白嫖单子! - if order.VendorID == model.VendorIDDD && courierName != "" && courierMobile != "" && err == nil { + if (order.VendorID == model.VendorIDDD || order.VendorID == model.VendorIDEBAI) && courierName != "" && courierMobile != "" && err == nil { timeNow := time.Now() rand.Seed(timeNow.UnixNano()) randNumber := rand.Int63n(640) From e33b96af28cd3206a816d695109b7bbe74f470f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Wed, 19 Apr 2023 21:04:53 +0800 Subject: [PATCH 83/93] 1 --- business/partner/delivery/rider.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/business/partner/delivery/rider.go b/business/partner/delivery/rider.go index 5d240c759..8afe0dcc6 100644 --- a/business/partner/delivery/rider.go +++ b/business/partner/delivery/rider.go @@ -288,6 +288,7 @@ func UpdateFakeWayBillToTiktok() { if fakeWayBill[i].StatusTime.After(time.Now()) { continue } + globals.SugarLogger.Debugf("========fakeWayBill=====:%s", utils.Format4Output(fakeWayBill, false)) riderInfo := &mtpsapi.RiderInfo{ OrderId: fakeWayBill[i].VendorOrderID, @@ -307,6 +308,7 @@ func UpdateFakeWayBillToTiktok() { // 推送骑手信息 paramsMap := utils.Struct2Map(riderInfo, "", true) handler := partner.GetPurchaseOrderHandlerFromVendorID(fakeWayBill[i].OrderVendorID) + globals.SugarLogger.Debugf("================handeler:%s", utils.Format4Output(handler == nil, false)) if handler != nil { if err := handler.GetOrderRider(fakeWayBill[i].VendorOrgCode, "", paramsMap); err != nil { globals.SugarLogger.Errorf("Fake Pull Rider Info Err :%s--%s--%v", riderInfo.OrderId, riderInfo.ThirdCarrierOrderId, err) From 0d27dbe77138beb86100e87d782b1dc35f65f570 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Wed, 19 Apr 2023 21:10:43 +0800 Subject: [PATCH 84/93] 1 --- business/partner/purchase/ebai/ebai.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/partner/purchase/ebai/ebai.go b/business/partner/purchase/ebai/ebai.go index 87d00fe51..9f8f955ee 100644 --- a/business/partner/purchase/ebai/ebai.go +++ b/business/partner/purchase/ebai/ebai.go @@ -184,7 +184,7 @@ func (p *PurchaseHandler) GetOrderRider(vendorOrgCode, vendorStoreID string, par DistributorName: "商家自行配送", }, Knight: ebaiapi.Knight{ - Id: param["order_id"].(int64), + Id: utils.Str2Int64(param["order_id"].(string)), Name: param["courier_name"].(string), Phone: param["courier_phone"].(string), }, From 3f6ab1bd91012ad1117d3b00e4c6c66240a4465e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Thu, 20 Apr 2023 16:07:25 +0800 Subject: [PATCH 85/93] 1 --- .../jxcallback/auto_delivery/auto_delivery.go | 1 - business/jxstore/act/act.go | 48 +++++++++---------- business/jxstore/cms/sync2.go | 1 - business/jxstore/cms/system_store_sku.go | 14 +++--- business/partner/delivery/rider.go | 2 - 5 files changed, 31 insertions(+), 35 deletions(-) diff --git a/business/jxcallback/auto_delivery/auto_delivery.go b/business/jxcallback/auto_delivery/auto_delivery.go index 3aef986f9..097d4929a 100644 --- a/business/jxcallback/auto_delivery/auto_delivery.go +++ b/business/jxcallback/auto_delivery/auto_delivery.go @@ -99,7 +99,6 @@ func AutoSettingFakeDelivery() { if len(orderList) == model.NO { return } - globals.SugarLogger.Debugf("==================orderList=:%s", utils.Format4Output(orderList, false)) for _, v := range orderList { //jxutils.CallMsgHandler(func() { diff --git a/business/jxstore/act/act.go b/business/jxstore/act/act.go index b1ac311df..9773c534b 100644 --- a/business/jxstore/act/act.go +++ b/business/jxstore/act/act.go @@ -2036,30 +2036,30 @@ func RrefreshMtwmVendorAct(ctx *jxcontext.Context) (err error) { // 查询门店爆款商品,当门店存在爆款时,取消之前的力荐商品,将新的爆款设置为力荐商品 // 商品为手动设置力荐或者爆款活动在取消力荐之前被删除,那么无法取消被力荐的商品! if k == mtwmapi.RetailActTypeSecKill && len(actList) > 0 && storeMap.VendorID == model.VendorIDMTWM { - allActivitySkuIdList := make([]string, 0, 0) // 此门店全部的折扣(爆款)活动商品 - activationActivitySkuIdList := make([]*partner.StoreSkuInfo, 0, 0) // 此门店正在进行的折扣(爆款)活动商品 - loseActivitySkuIdList := make([]*partner.StoreSkuInfo, 0, 0) // 此门店已经结束的折扣(爆款)活动商品 - for _, ac := range actList { - allActivitySkuIdList = append(allActivitySkuIdList, utils.Int64ToStr(ac.ItemID)) - // 已经生效的爆款活动 - if ac.Status == 1 && ac.SkuId != "" { - activationActivitySkuIdList = append(activationActivitySkuIdList, &partner.StoreSkuInfo{ - SkuID: utils.Str2Int(ac.SkuId), - IsSpecialty: 1, - }) - } - // 已经失效的爆款活动 - if ac.Status == 0 && ac.SkuId != "" { - loseActivitySkuIdList = append(loseActivitySkuIdList, &partner.StoreSkuInfo{ - SkuID: utils.Str2Int(ac.SkuId), - IsSpecialty: 0, - }) - } - } - // 取消当前力荐商品 - partner.GetPurchasePlatformFromVendorID(storeMap.VendorID).(partner.ISingleStoreStoreSkuHandler).UpdateStoreSkusSpecTag(ctx, storeMap.VendorOrgCode, storeMap.StoreID, storeMap.VendorStoreID, loseActivitySkuIdList) - // 重新推荐力荐商品 - partner.GetPurchasePlatformFromVendorID(storeMap.VendorID).(partner.ISingleStoreStoreSkuHandler).UpdateStoreSkusSpecTag(ctx, storeMap.VendorOrgCode, storeMap.StoreID, storeMap.VendorStoreID, activationActivitySkuIdList) + //allActivitySkuIdList := make([]string, 0, 0) // 此门店全部的折扣(爆款)活动商品 + //activationActivitySkuIdList := make([]*partner.StoreSkuInfo, 0, 0) // 此门店正在进行的折扣(爆款)活动商品 + //loseActivitySkuIdList := make([]*partner.StoreSkuInfo, 0, 0) // 此门店已经结束的折扣(爆款)活动商品 + //for _, ac := range actList { + // allActivitySkuIdList = append(allActivitySkuIdList, utils.Int64ToStr(ac.ItemID)) + // // 已经生效的爆款活动 + // if ac.Status == 1 && ac.SkuId != "" { + // activationActivitySkuIdList = append(activationActivitySkuIdList, &partner.StoreSkuInfo{ + // SkuID: utils.Str2Int(ac.SkuId), + // IsSpecialty: 1, + // }) + // } + // // 已经失效的爆款活动 + // if ac.Status == 0 && ac.SkuId != "" { + // loseActivitySkuIdList = append(loseActivitySkuIdList, &partner.StoreSkuInfo{ + // SkuID: utils.Str2Int(ac.SkuId), + // IsSpecialty: 0, + // }) + // } + //} + //// 取消当前力荐商品 + //partner.GetPurchasePlatformFromVendorID(storeMap.VendorID).(partner.ISingleStoreStoreSkuHandler).UpdateStoreSkusSpecTag(ctx, storeMap.VendorOrgCode, storeMap.StoreID, storeMap.VendorStoreID, loseActivitySkuIdList) + //// 重新推荐力荐商品 + //partner.GetPurchasePlatformFromVendorID(storeMap.VendorID).(partner.ISingleStoreStoreSkuHandler).UpdateStoreSkusSpecTag(ctx, storeMap.VendorOrgCode, storeMap.StoreID, storeMap.VendorStoreID, activationActivitySkuIdList) } } return retVal, err diff --git a/business/jxstore/cms/sync2.go b/business/jxstore/cms/sync2.go index 800ca15cf..5271e925e 100644 --- a/business/jxstore/cms/sync2.go +++ b/business/jxstore/cms/sync2.go @@ -203,7 +203,6 @@ func SyncSkus(ctx *jxcontext.Context, parentTask tasksch.ITask, vendorIDs []int, } if err == nil && len(skuList) > 0 { - // todo 按vendorID orgCode合并操作SyncSkus============= task := tasksch.NewParallelTask( fmt.Sprintf("同步商品:%v,%v", nameIDs, skuIDs), tasksch.NewParallelConfig().SetIsContinueWhenError(true), ctx, cc, skuList) diff --git a/business/jxstore/cms/system_store_sku.go b/business/jxstore/cms/system_store_sku.go index 64f7c542e..80950a899 100644 --- a/business/jxstore/cms/system_store_sku.go +++ b/business/jxstore/cms/system_store_sku.go @@ -15,24 +15,24 @@ import ( ) // CopyOnStoreSkuToOther 将一个美团门店分类和商品复制到另一个门店 -func CopyOnStoreSkuToOther(ctx *jxcontext.Context, fromStoreId, toStoreId int, isAsync bool) (hint string, err error) { +func CopyOnStoreSkuToOther(ctx *jxcontext.Context, fromVendorStoreId, toStoreId int, isAsync bool) (hint string, err error) { var ( db = dao.GetDB() ) // 门店api加载 - fromStore, err := dao.GetStoreDetail(db, fromStoreId, model.VendorIDMTWM, "") + // fromStore, err := dao.GetStoreDetail(db, fromStoreId, model.VendorIDMTWM, "") if err != nil { return "", err } - toStore, err := dao.GetStoreDetail(db, fromStoreId, model.VendorIDMTWM, "") + toStore, err := dao.GetStoreDetail(db, toStoreId, model.VendorIDMTWM, "") if err != nil { return "", err } - fromApi := partner.CurAPIManager.GetAPI(model.VendorIDMTWM, fromStore.VendorOrgCode).(*mtwmapi.API) + //fromApi := partner.CurAPIManager.GetAPI(model.VendorIDMTWM, toStore.VendorOrgCode).(*mtwmapi.API) toApi := partner.CurAPIManager.GetAPI(model.VendorIDMTWM, toStore.VendorOrgCode).(*mtwmapi.API) - taskName := fmt.Sprintf("将平台门店[%d],分类和商品复制到[%d]", fromStoreId, toStoreId) + taskName := fmt.Sprintf("将平台门店[%d],分类和商品复制到[%d]", fromVendorStoreId, toStoreId) config := tasksch.NewParallelConfig().SetParallelCount(1).SetIsContinueWhenError(false) work := func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { step := batchItemList[0].(int) @@ -45,7 +45,7 @@ func CopyOnStoreSkuToOther(ctx *jxcontext.Context, fromStoreId, toStoreId int, i } case 2: // 同步分类 - fromCategoryList, err := fromApi.RetailCatList(fromStore.VendorStoreID) + fromCategoryList, err := toApi.RetailCatList(utils.Int2Str(fromVendorStoreId)) if err != nil { return nil, err } @@ -72,7 +72,7 @@ func CopyOnStoreSkuToOther(ctx *jxcontext.Context, fromStoreId, toStoreId int, i case 3: // 同步商品 - fromFoodList, err1 := fromApi.RetailListAll(fromStore.VendorStoreID) + fromFoodList, err1 := toApi.RetailListAll(utils.Int2Str(fromVendorStoreId)) if err1 != nil { return nil, err1 } diff --git a/business/partner/delivery/rider.go b/business/partner/delivery/rider.go index 8afe0dcc6..5d240c759 100644 --- a/business/partner/delivery/rider.go +++ b/business/partner/delivery/rider.go @@ -288,7 +288,6 @@ func UpdateFakeWayBillToTiktok() { if fakeWayBill[i].StatusTime.After(time.Now()) { continue } - globals.SugarLogger.Debugf("========fakeWayBill=====:%s", utils.Format4Output(fakeWayBill, false)) riderInfo := &mtpsapi.RiderInfo{ OrderId: fakeWayBill[i].VendorOrderID, @@ -308,7 +307,6 @@ func UpdateFakeWayBillToTiktok() { // 推送骑手信息 paramsMap := utils.Struct2Map(riderInfo, "", true) handler := partner.GetPurchaseOrderHandlerFromVendorID(fakeWayBill[i].OrderVendorID) - globals.SugarLogger.Debugf("================handeler:%s", utils.Format4Output(handler == nil, false)) if handler != nil { if err := handler.GetOrderRider(fakeWayBill[i].VendorOrgCode, "", paramsMap); err != nil { globals.SugarLogger.Errorf("Fake Pull Rider Info Err :%s--%s--%v", riderInfo.OrderId, riderInfo.ThirdCarrierOrderId, err) From 5331dcd4c5c3352b112dde7ec09511a06f4d0994 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Fri, 21 Apr 2023 12:41:50 +0800 Subject: [PATCH 86/93] 1 --- business/jxcallback/scheduler/defsch/defsch.go | 2 +- business/jxutils/smsmsg/smsmsg_test.go | 10 +++++----- business/model/store.go | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/business/jxcallback/scheduler/defsch/defsch.go b/business/jxcallback/scheduler/defsch/defsch.go index 388b396bc..d389bb204 100644 --- a/business/jxcallback/scheduler/defsch/defsch.go +++ b/business/jxcallback/scheduler/defsch/defsch.go @@ -650,7 +650,7 @@ func (s *DefScheduler) OnWaybillStatusChanged(bill *model.Waybill, isPending boo //针对快送的订单(订单接单后会立马召唤骑手,不会到自动拣货完成) //如果骑手已接单,没有通知过的门店,需要发送通知 if bill.Status == model.WaybillStatusAccepted && order.NotifyType == 0 { - smsmsg.NotifyPickOrder(order) + //smsmsg.NotifyPickOrder(order) } // 订单处于配送状态来的新分配骑手运单 diff --git a/business/jxutils/smsmsg/smsmsg_test.go b/business/jxutils/smsmsg/smsmsg_test.go index 49583a31b..85a005615 100644 --- a/business/jxutils/smsmsg/smsmsg_test.go +++ b/business/jxutils/smsmsg/smsmsg_test.go @@ -17,12 +17,12 @@ func init() { } func TestSendSMSMsg(t *testing.T) { - err := SendVoiceMsg([]string{"18981810340"}, "tts_222871733", map[string]interface{}{ - "tel": "18981810340", - }) - aa := map[string]interface{}{"tel": "13957767601"} + //err := SendVoiceMsg([]string{"18981810340"}, "tts_222871733", map[string]interface{}{ + // "tel": "18981810340", + //}) + aa := map[string]interface{}{"tel": "18981810340"} request := &dyvmsapiclient.SingleCallByTtsRequest{ - CalledNumber: tea.String("13957767601"), + CalledNumber: tea.String("18981810340"), TtsCode: tea.String("tts_222871733"), TtsParam: tea.String(string(utils.MustMarshal(aa))), } diff --git a/business/model/store.go b/business/model/store.go index d7f665eb0..90c634612 100644 --- a/business/model/store.go +++ b/business/model/store.go @@ -325,7 +325,7 @@ type Store struct { AutoEnableAt *time.Time `orm:"type(datetime);null" json:"autoEnableAt"` // 自动营业时间(临时休息用) ChangePriceType int8 `json:"changePriceType"` // 修改价格类型,即是否需要审核 SMSNotify int8 `orm:"column(sms_notify);" json:"smsNotify"` // 是否通过短信接收订单消息(每天只推一条) - SMSNotifyMark int8 `orm:"column(sms_notify_mark);" json:"smsNotifyMark"` //今天是否已经推送过订单消息 + SMSNotifyMark int8 `orm:"column(sms_notify_mark);" json:"smsNotifyMark"` // 今天是否已经推送过订单消息 AutoReplyType int8 `json:"autoReplyType"` // 订单评价自动回复类型 LinkStoreID int `orm:"column(link_store_id);default(0);index" json:"linkStoreID"` // 关联门店ID StoreLevel string `orm:"default(C);size(32)" json:"storeLevel"` // 门店等级(筛选用,京西的) From de3c3c63a5a65e32d4d22ccc4a164d107d453835 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Sun, 23 Apr 2023 15:46:39 +0800 Subject: [PATCH 87/93] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=8A=A5=E4=BB=B7?= =?UTF-8?q?=E9=97=A8=E5=BA=97=E5=95=86=E5=93=81=E4=BB=B7=E6=A0=BC=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jxcallback/auto_delivery/auto_delivery.go | 1 - business/jxcallback/scheduler/defsch/defsch.go | 2 +- business/jxstore/cms/store_sku.go | 3 +-- business/partner/delivery/rider.go | 16 ++++++++++------ 4 files changed, 12 insertions(+), 10 deletions(-) diff --git a/business/jxcallback/auto_delivery/auto_delivery.go b/business/jxcallback/auto_delivery/auto_delivery.go index 097d4929a..3ee5dc124 100644 --- a/business/jxcallback/auto_delivery/auto_delivery.go +++ b/business/jxcallback/auto_delivery/auto_delivery.go @@ -129,7 +129,6 @@ func AutoSettingFakeDelivery() { return } } - globals.SugarLogger.Debugf("==================riderKey=:%s", riderKey) randNumber, _ := rand.Int(rand.Reader, big.NewInt(int64(len(riderListInfo[riderKey])))) randTime := randNumber.Int64() diff --git a/business/jxcallback/scheduler/defsch/defsch.go b/business/jxcallback/scheduler/defsch/defsch.go index d389bb204..388b396bc 100644 --- a/business/jxcallback/scheduler/defsch/defsch.go +++ b/business/jxcallback/scheduler/defsch/defsch.go @@ -650,7 +650,7 @@ func (s *DefScheduler) OnWaybillStatusChanged(bill *model.Waybill, isPending boo //针对快送的订单(订单接单后会立马召唤骑手,不会到自动拣货完成) //如果骑手已接单,没有通知过的门店,需要发送通知 if bill.Status == model.WaybillStatusAccepted && order.NotifyType == 0 { - //smsmsg.NotifyPickOrder(order) + smsmsg.NotifyPickOrder(order) } // 订单处于配送状态来的新分配骑手运单 diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index 74fcacabf..e8665dabb 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -5892,14 +5892,13 @@ func doStoreSkuAudit(ctx *jxcontext.Context, storeIDs []int, skuBindInfos []*Sto } } for _, skuBindInfo := range skuBindInfos { - globals.SugarLogger.Debugf("doStoreSkuAudit storeID: %v , nameID: %v", storeID, skuBindInfo.NameID) storeAudits, err := dao.GetStoreSkuAuditLight(db, []int{storeID}, []int{skuBindInfo.NameID}, model.StoreAuditStatusOnline) //取消关注,可售排除 if skuBindInfo.IsFocus == -1 || skuBindInfo.IsSale != 0 || skuBindInfo.UnitPrice == 0 { return false, err } - if ctx.GetLoginType() != weixin.AuthTypeMP && ctx.GetLoginType() != weixin.AuthTypeMini && ctx.GetLoginType() != weixin.AuthTypeWxApp && ctx.GetLoginType() != weixin.AuthTypeWxAppCaishi && ctx.GetLoginType() != auth2.AuthTypeMobile { + if ctx.GetLoginType() != weixin.AuthTypeMP && ctx.GetLoginType() != weixin.AuthTypeMini && ctx.GetLoginType() != weixin.AuthTypeWxApp && ctx.GetLoginType() != weixin.AuthTypeWxAppCaishi && ctx.GetLoginType() != auth2.AuthTypeMobile && ctx.GetLoginType() != auth2.AuthTypePassword { authInfo, err := ctx.GetV2AuthInfo() if err == nil && authInfo != nil && (ctx.GetFullUser().Type&model.UserTypeOperator) != 0 { if len(storeAudits) > 0 { diff --git a/business/partner/delivery/rider.go b/business/partner/delivery/rider.go index 5d240c759..3564f6139 100644 --- a/business/partner/delivery/rider.go +++ b/business/partner/delivery/rider.go @@ -327,18 +327,22 @@ func UpdateFakeWayBillToTiktok() { } // 更新运单为完成状态 if fakeWayBill[i].Status == model.WaybillStatusDelivered { + order, err := partner.CurOrderManager.LoadOrder(fakeWayBill[i].VendorOrderID, fakeWayBill[i].OrderVendorID) + if err != nil { + globals.SugarLogger.Errorf("Loading order by wayBill vendorOrderID err := %v", err) + continue + } + if order.Status == model.OrderStatusCanceled { + continue + } + sql := `UPDATE goods_order g SET g.status = ?,g.vendor_status = ?,g.order_finished_at = ? WHERE g.vendor_order_id = ? ` - _, err := dao.ExecuteSQL(dao.GetDB(), sql, []interface{}{model.OrderStatusFinished, model.OrderStatusFinished, time.Now(), fakeWayBill[i].VendorOrderID}...) + _, err = dao.ExecuteSQL(dao.GetDB(), sql, []interface{}{model.OrderStatusFinished, model.OrderStatusFinished, time.Now(), fakeWayBill[i].VendorOrderID}...) if err != nil { globals.SugarLogger.Debugf("UPDATA goods_order Err :%s", err.Error()) } // 饿百订单推送订单送达 if fakeWayBill[i].OrderVendorID == model.VendorIDEBAI { - order, err := partner.CurOrderManager.LoadOrder(fakeWayBill[i].VendorOrderID, fakeWayBill[i].OrderVendorID) - if err != nil { - globals.SugarLogger.Errorf("Loading order by wayBill vendorOrderID err := %v", err) - continue - } if err := handler.Swtich2SelfDelivered(order, "JingXiAdmin"); err != nil { globals.SugarLogger.Errorf("Swtich2SelfDelivered err := %v", err) } From d46df6fb093bab6720f8cd72cfd118dcce7edd78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Sun, 23 Apr 2023 16:53:51 +0800 Subject: [PATCH 88/93] 1 --- business/partner/purchase/tiktok_store/store_sku2.go | 1 - business/partner/purchase/tiktok_store/store_sku2_utils.go | 2 ++ 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/business/partner/purchase/tiktok_store/store_sku2.go b/business/partner/purchase/tiktok_store/store_sku2.go index ac0d638a0..2076c608b 100644 --- a/business/partner/purchase/tiktok_store/store_sku2.go +++ b/business/partner/purchase/tiktok_store/store_sku2.go @@ -116,7 +116,6 @@ func (p *PurchaseHandler) DeleteStoreSkus(ctx *jxcontext.Context, storeID int, v if err = getAPI(storeSkuList[0].VendorOrgCode, storeID, vendorStoreID).DeleteStoreCommodity(utils.Str2Int64(v.VendorSkuID)); err != nil { failedList = append(failedList, putils.GetErrMsg2FailedSingleList(v, err, storeID, model.VendorChineseNames[model.VendorIDDD], "删除子商品")...) } - dao.DeleteThingToTiktokMapList(model.VendorIDDD, v.VendorMainId, storeSkuList[0].SkuID) } } if len(failedList) > 0 { diff --git a/business/partner/purchase/tiktok_store/store_sku2_utils.go b/business/partner/purchase/tiktok_store/store_sku2_utils.go index ff638af00..9e3c49f12 100644 --- a/business/partner/purchase/tiktok_store/store_sku2_utils.go +++ b/business/partner/purchase/tiktok_store/store_sku2_utils.go @@ -226,6 +226,8 @@ func (p *PurchaseHandler) createOrUpdateStoreSkus(ctx *jxcontext.Context, storeI } else if localThing[0].SyncStatus == model.ThingTypeSyncSuccess { // 主商品存在,直接同步子商品 childrenProductId, err := api.CreateSubProduct(utils.Str2Int64(localThing[0].VendorThingID), utils.Str2Int64(vendorStoreID)) + globals.SugarLogger.Debugf("==========:%s", localThing[0].VendorThingID) + globals.SugarLogger.Debugf("==========:%v", err) if err != nil && strings.Contains(err.Error(), "2010004") { // 2010004:主商品非在线审核通过状态,不允许绑定子商品 // 线上本地都存在,但是线上审核不成功,就去更新主商品 mainOrderDetail = loadMainProductId(api, storeSku, localThing[0].VendorThingID) From d091a494534ab6c49b82c3b81996b957bd4cdbc2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Sun, 23 Apr 2023 17:32:41 +0800 Subject: [PATCH 89/93] 1 --- business/partner/purchase/mtwm/order.go | 1 + 1 file changed, 1 insertion(+) diff --git a/business/partner/purchase/mtwm/order.go b/business/partner/purchase/mtwm/order.go index 21e5bcbd7..055483cf2 100644 --- a/business/partner/purchase/mtwm/order.go +++ b/business/partner/purchase/mtwm/order.go @@ -339,6 +339,7 @@ func (c *PurchaseHandler) onOrderMsg(msg *mtwmapi.CallbackMsg) (response *mtwmap var err error if c.isAfsMsg(msg) { response = c.OnAfsOrderMsg(msg) + return response } else { status := c.callbackMsg2Status(msg) if partner.CurOrderManager.GetStatusDuplicatedCount(status) > 0 { From 3e1bda86d56ca7cbe86e6d2f9755e6d0c3ba1f07 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Sun, 23 Apr 2023 18:03:03 +0800 Subject: [PATCH 90/93] 1 --- business/partner/purchase/mtwm/order_afs.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/business/partner/purchase/mtwm/order_afs.go b/business/partner/purchase/mtwm/order_afs.go index ccbc1c9a8..a7dea03b1 100644 --- a/business/partner/purchase/mtwm/order_afs.go +++ b/business/partner/purchase/mtwm/order_afs.go @@ -145,7 +145,15 @@ func (c *PurchaseHandler) onAfsOrderMsg(msg *mtwmapi.CallbackMsg) (retVal *mtwma err = partner.CurOrderManager.OnAfsOrderNew(afsOrder, orderStatus) } } else { - err = partner.CurOrderManager.OnAfsOrderStatusChanged(orderStatus) + if err := partner.CurOrderManager.OnAfsOrderStatusChanged(orderStatus); err != nil { + // 订单回调全额退款接口时,将订单状态修改为取消 + refundData := msg.Data.(*mtwmapi.CallbackRefundInfo) + if refundData.NotifyType == "agree" && msg.Cmd == mtwmapi.MsgTypeOrderRefund { + order, _ := partner.CurOrderManager.LoadOrder(orderStatus.RefVendorOrderID, model.VendorIDMTWM) + order.Status = model.OrderStatusCanceled + dao.UpdateEntity(dao.GetDB(), &order, "Status") + } + } } return mtwmapi.Err2CallbackResponse(err, "") } From 919fb4d14c581e3da42254607de7abbcc16b55bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Sun, 23 Apr 2023 18:13:37 +0800 Subject: [PATCH 91/93] 1 --- business/partner/purchase/mtwm/order_afs.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/partner/purchase/mtwm/order_afs.go b/business/partner/purchase/mtwm/order_afs.go index a7dea03b1..efeb0506b 100644 --- a/business/partner/purchase/mtwm/order_afs.go +++ b/business/partner/purchase/mtwm/order_afs.go @@ -145,7 +145,7 @@ func (c *PurchaseHandler) onAfsOrderMsg(msg *mtwmapi.CallbackMsg) (retVal *mtwma err = partner.CurOrderManager.OnAfsOrderNew(afsOrder, orderStatus) } } else { - if err := partner.CurOrderManager.OnAfsOrderStatusChanged(orderStatus); err != nil { + if err := partner.CurOrderManager.OnAfsOrderStatusChanged(orderStatus); err == nil { // 订单回调全额退款接口时,将订单状态修改为取消 refundData := msg.Data.(*mtwmapi.CallbackRefundInfo) if refundData.NotifyType == "agree" && msg.Cmd == mtwmapi.MsgTypeOrderRefund { From f3a74e00c1de3ae319cf1709eeccd4acbc83f0bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Sun, 23 Apr 2023 18:17:41 +0800 Subject: [PATCH 92/93] 1 --- business/partner/purchase/mtwm/order_afs.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/partner/purchase/mtwm/order_afs.go b/business/partner/purchase/mtwm/order_afs.go index efeb0506b..5f07c1831 100644 --- a/business/partner/purchase/mtwm/order_afs.go +++ b/business/partner/purchase/mtwm/order_afs.go @@ -151,7 +151,7 @@ func (c *PurchaseHandler) onAfsOrderMsg(msg *mtwmapi.CallbackMsg) (retVal *mtwma if refundData.NotifyType == "agree" && msg.Cmd == mtwmapi.MsgTypeOrderRefund { order, _ := partner.CurOrderManager.LoadOrder(orderStatus.RefVendorOrderID, model.VendorIDMTWM) order.Status = model.OrderStatusCanceled - dao.UpdateEntity(dao.GetDB(), &order, "Status") + dao.UpdateEntity(dao.GetDB(), order, "Status") } } } From 6dc064ecd96a185466ae291b8866995bfb53741b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Mon, 24 Apr 2023 13:52:34 +0800 Subject: [PATCH 93/93] 1 --- .../jxcallback/auto_delivery/auto_delivery.go | 2 +- business/jxstore/cms/store.go | 24 ++++++++++++++++++- business/partner/purchase/ebai/order.go | 3 +++ 3 files changed, 27 insertions(+), 2 deletions(-) diff --git a/business/jxcallback/auto_delivery/auto_delivery.go b/business/jxcallback/auto_delivery/auto_delivery.go index 3ee5dc124..02df8318c 100644 --- a/business/jxcallback/auto_delivery/auto_delivery.go +++ b/business/jxcallback/auto_delivery/auto_delivery.go @@ -129,7 +129,7 @@ func AutoSettingFakeDelivery() { return } } - + globals.SugarLogger.Debugf("===============riderListInfo= : %s", riderKey) randNumber, _ := rand.Int(rand.Reader, big.NewInt(int64(len(riderListInfo[riderKey])))) randTime := randNumber.Int64() if randTime < 0 { diff --git a/business/jxstore/cms/store.go b/business/jxstore/cms/store.go index 70a40fbf1..b4d4a9dbf 100644 --- a/business/jxstore/cms/store.go +++ b/business/jxstore/cms/store.go @@ -1826,6 +1826,7 @@ func UpdateStoreVendorMap(ctx *jxcontext.Context, db *dao.DaoDB, storeID, vendor dao.Rollback(db, txDB) return 0, err } + isSyncStoreMapSku := false if num > 0 { if globals.IsAddEvent { mapBefore := refutil.FindMapAndStructMixed(valid, beforeStoreMap) @@ -1840,6 +1841,7 @@ func UpdateStoreVendorMap(ctx *jxcontext.Context, db *dao.DaoDB, storeID, vendor dao.Rollback(db, txDB) return 0, err } + isSyncStoreMapSku = true } } else { if valid["pricePercentage"] != nil || valid["pricePercentagePack"] != nil { @@ -1850,7 +1852,27 @@ func UpdateStoreVendorMap(ctx *jxcontext.Context, db *dao.DaoDB, storeID, vendor dao.Commit(db, txDB) if isStoreMapNeedSync(vendorID, valid) { _, err = CurVendorSync.SyncStore(ctx, db, vendorID, storeID, false, userName) - globals.SugarLogger.Debug("CurVendorSync.SyncStore:err======%v", err) + } + + // 更新商品 + if isSyncStoreMapSku { + globals.SugarLogger.Debugf("修改门店调价包是同步门店商品价格=============: %v", err) + singleStoreHandler, _ := partner.GetPurchasePlatformFromVendorID(vendorID).(partner.ISingleStoreStoreSkuHandler) + task := tasksch.NewParallelTask("修改门店调价包的时候,同时同步门店商品", tasksch.NewParallelConfig().SetParallelCount(1).SetIsContinueWhenError(true), ctx, + func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { + step := batchItemList[0].(int) + switch step { + case 1: + if singleStoreHandler != nil { + // 直接同步商品 + err = syncStoreSkuNew(ctx, task, 0, true, vendorID, storeID, "", nil, nil, nil, false, true) + } + } + return retVal, err + }, []int{1}) + tasksch.HandleTask(task, nil, true).Run() + _, err = task.GetResult(0) + return 0, err } } } diff --git a/business/partner/purchase/ebai/order.go b/business/partner/purchase/ebai/order.go index b488a10f4..c92ddb899 100644 --- a/business/partner/purchase/ebai/order.go +++ b/business/partner/purchase/ebai/order.go @@ -522,6 +522,9 @@ func (c *PurchaseHandler) onOrderNew(msg *ebaiapi.CallbackMsg, orderStatus *mode }) } } + if handler := partner.GetPurchaseOrderHandlerFromVendorID(model.VendorIDEBAI); handler != nil { + handler.AcceptOrRefuseOrder(order, true, "jxAdmin") + } return api.EbaiAPI.Err2CallbackResponse(msg.Cmd, err, map[string]interface{}{ "source_order_id": vendorOrderID, })