From ae47d1d29cbabaebf3ea5859fe2d9e91a8dfd5fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Fri, 21 Feb 2020 17:25:02 +0800 Subject: [PATCH 001/286] =?UTF-8?q?=E5=88=B7=E6=96=B0=E9=A5=BF=E9=B2=9C?= =?UTF-8?q?=E8=BE=BE=E5=95=86=E5=93=81=E8=A7=A3=E9=99=A4=E5=88=86=E7=B1=BB?= =?UTF-8?q?=E9=99=90=E5=88=B6=EF=BC=8C=E5=85=A8=E5=88=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/sku.go | 1 - 1 file changed, 1 deletion(-) diff --git a/business/jxstore/cms/sku.go b/business/jxstore/cms/sku.go index fb3aeb68e..42725dc59 100644 --- a/business/jxstore/cms/sku.go +++ b/business/jxstore/cms/sku.go @@ -1600,7 +1600,6 @@ func UpdateExianDaSkuCategory(ctx *jxcontext.Context, isAsync, isContinueWhenErr WHERE b.exd_sku_id <> '' AND a.deleted_at = ? AND b.deleted_at = ? - AND a.category_id = 35 ` sqlParams := []interface{}{ utils.DefaultTimeValue, utils.DefaultTimeValue, From 03fc2bd95cf0a486121ce5626ce6b97ee8289492 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Fri, 21 Feb 2020 17:36:47 +0800 Subject: [PATCH 002/286] =?UTF-8?q?cookie=E9=AA=8C=E8=AF=81=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E4=B8=A4=E4=B8=AA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/event/event.go | 30 ++++++++++++------------------ 1 file changed, 12 insertions(+), 18 deletions(-) diff --git a/business/jxstore/event/event.go b/business/jxstore/event/event.go index f8695719f..c8e5e7cbb 100644 --- a/business/jxstore/event/event.go +++ b/business/jxstore/event/event.go @@ -6,6 +6,8 @@ import ( "strings" "time" + "git.rosy.net.cn/baseapi/platformapi/ebaiapi" + "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-callback/business/jxutils" "git.rosy.net.cn/jx-callback/business/jxutils/jxcontext" @@ -162,6 +164,16 @@ func GetCheckVendorCookie(ctx *jxcontext.Context, vendorIDs []int, isAuto bool) flag = true } } + result, err := api.Ebai2API.GetEbaiDepotSku(ebaiapi.EbaiWholeCountryStore, "190700570") + if err != nil || len(result) < 1 { + errMsg += fmt.Sprintf(" 饿百账号:[饿百后台饿鲜达全国账号]的Cookie无效了!", vv) + flag = true + } + result2, err2 := api.EbaiAPI.GetExianDaSkuDepot("190600741") + if err2 != nil || result2 == nil { + errMsg += fmt.Sprintf(" 饿百账号:[饿鲜达供应链系统]的Cookie无效了!", vv) + flag = true + } case model.VendorIDMTWM: _, err := api.MtwmAPI.PackagePriceGet(mtStoreID) if err != nil { @@ -189,24 +201,6 @@ func GetCheckVendorCookie(ctx *jxcontext.Context, vendorIDs []int, isAuto bool) ccList = append(ccList, cc) } } - // else { - // cc := &CheckCookie{} - // var flag = false - // if v == model.VendorIDMTPS { - // err := api.MtpsAPI.GetAccountDetail() - // if err != nil && strings.Contains(err.Error(), mtpsErr) { - // errMsg += " 美团配送账号的Cookie无效了!" - // flag = true - // } - // } - // cc.VendorID = v - // if flag { - // cc.Status = "无效" - // } else { - // cc.Status = "有效" - // } - // ccList = append(ccList, cc) - // } } if isAuto && errMsg != "" { globals.SugarLogger.Warnf("GetCheckVendorCookie:[%v]", errMsg) From 871c247c66f8cc35dcaa2d49d37dda2fd7241942 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Fri, 21 Feb 2020 17:41:48 +0800 Subject: [PATCH 003/286] =?UTF-8?q?cokokie=E9=AA=8C=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/event/event.go | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/business/jxstore/event/event.go b/business/jxstore/event/event.go index c8e5e7cbb..c10782004 100644 --- a/business/jxstore/event/event.go +++ b/business/jxstore/event/event.go @@ -166,11 +166,21 @@ func GetCheckVendorCookie(ctx *jxcontext.Context, vendorIDs []int, isAuto bool) } result, err := api.Ebai2API.GetEbaiDepotSku(ebaiapi.EbaiWholeCountryStore, "190700570") if err != nil || len(result) < 1 { + cc := &CheckCookie{} + cc.VendorID = v + cc.VendorOrgCode = "饿百后台饿鲜达全国账号" + cc.Status = "无效" + ccList = append(ccList, cc) errMsg += fmt.Sprintf(" 饿百账号:[饿百后台饿鲜达全国账号]的Cookie无效了!", vv) flag = true } result2, err2 := api.EbaiAPI.GetExianDaSkuDepot("190600741") if err2 != nil || result2 == nil { + cc := &CheckCookie{} + cc.VendorID = v + cc.VendorOrgCode = "饿鲜达供应链系统" + cc.Status = "无效" + ccList = append(ccList, cc) errMsg += fmt.Sprintf(" 饿百账号:[饿鲜达供应链系统]的Cookie无效了!", vv) flag = true } From c6b41df9ed0147a16b98e9d3614d042cf1ec410b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 24 Feb 2020 11:09:08 +0800 Subject: [PATCH 004/286] =?UTF-8?q?=E8=8E=B7=E5=8F=96=E5=B0=8F=E7=A8=8B?= =?UTF-8?q?=E5=BA=8F=E7=A0=81=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- controllers/event.go | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/controllers/event.go b/controllers/event.go index e60db4764..113e2344e 100644 --- a/controllers/event.go +++ b/controllers/event.go @@ -1,8 +1,11 @@ package controllers import ( + "encoding/base64" + "git.rosy.net.cn/jx-callback/business/jxstore/event" "git.rosy.net.cn/jx-callback/business/jxutils" + "git.rosy.net.cn/jx-callback/globals/api" "github.com/astaxie/beego" ) @@ -55,3 +58,19 @@ func (c *EventController) GetCheckVendorCookie() { return retVal, "", err }) } + +// @Title 得到微信小程序码 +// @Description 得到微信小程序码 +// @Param token header string true "认证token" +// @Param scene formData string true "最大32个可见字符,只支持数字,大小写英文以及部分特殊字符:!#$&'()*+,/:;=?@-._~,其它字符请自行编码为合法字符(因不支持%,中文无法使用 urlencode 处理,请使用其他编码方式)" +// @Param page formData string false "必须是已经发布的小程序存在的页面(否则报错),例如 pages/index/index, 根路径前不要填加 /,不能携带参数(参数请放在scene字段里),如果不填写这个字段,默认跳主页面" +// @Success 200 {object} controllers.CallResult +// @Failure 200 {object} controllers.CallResult +// @router /GetWeixinUnlimited [post] +func (c *EventController) GetWeixinUnlimited() { + c.callGetWeixinUnlimited(func(params *tEventGetWeixinUnlimitedParams) (retVal interface{}, errCode string, err error) { + retVal, err = api.WeixinMiniAPI2.GetUnlimited(params.Scene, params.Page) + retVal = base64.StdEncoding.EncodeToString(retVal.([]byte)) + return retVal, "", err + }) +} From b1a2420e42f95b135f5850b78c983be2868713fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 24 Feb 2020 11:13:48 +0800 Subject: [PATCH 005/286] =?UTF-8?q?=E8=8E=B7=E5=8F=96=E5=B0=8F=E7=A8=8B?= =?UTF-8?q?=E5=BA=8F=E7=A0=81=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- routers/commentsRouter_controllers.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/routers/commentsRouter_controllers.go b/routers/commentsRouter_controllers.go index 67eddb1ce..a735ecf86 100644 --- a/routers/commentsRouter_controllers.go +++ b/routers/commentsRouter_controllers.go @@ -421,6 +421,15 @@ func init() { Filters: nil, Params: nil}) + beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:EventController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:EventController"], + beego.ControllerComments{ + Method: "GetWeixinUnlimited", + Router: `/GetWeixinUnlimited`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:FinancialController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:FinancialController"], beego.ControllerComments{ Method: "GetOrdersFinancial", From 5aa75aea389d8b40009a9ace0827f619d4613788 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 24 Feb 2020 11:41:29 +0800 Subject: [PATCH 006/286] =?UTF-8?q?=E8=8E=B7=E5=8F=96=E5=BE=AE=E4=BF=A1?= =?UTF-8?q?=E5=B0=8F=E7=A8=8B=E5=BA=8F=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- controllers/event.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/controllers/event.go b/controllers/event.go index 113e2344e..ee1aea50d 100644 --- a/controllers/event.go +++ b/controllers/event.go @@ -3,6 +3,8 @@ package controllers import ( "encoding/base64" + "git.rosy.net.cn/jx-callback/business/jxutils/tasks" + "git.rosy.net.cn/jx-callback/business/jxstore/event" "git.rosy.net.cn/jx-callback/business/jxutils" "git.rosy.net.cn/jx-callback/globals/api" @@ -69,8 +71,10 @@ func (c *EventController) GetCheckVendorCookie() { // @router /GetWeixinUnlimited [post] func (c *EventController) GetWeixinUnlimited() { c.callGetWeixinUnlimited(func(params *tEventGetWeixinUnlimitedParams) (retVal interface{}, errCode string, err error) { + api.WeixinMiniAPI2.CBRetrieveToken() retVal, err = api.WeixinMiniAPI2.GetUnlimited(params.Scene, params.Page) retVal = base64.StdEncoding.EncodeToString(retVal.([]byte)) + tasks.RefreshWeixinToken() return retVal, "", err }) } From 25a3379e876d3f89db7c5662915986c89e55e202 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 24 Feb 2020 11:59:48 +0800 Subject: [PATCH 007/286] =?UTF-8?q?=E5=BE=AE=E7=9B=9Ftoken?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxutils/tasks/configrefresh.go | 2 ++ controllers/event.go | 13 ++++--------- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/business/jxutils/tasks/configrefresh.go b/business/jxutils/tasks/configrefresh.go index 3f66b89b2..eac10e8d0 100644 --- a/business/jxutils/tasks/configrefresh.go +++ b/business/jxutils/tasks/configrefresh.go @@ -145,6 +145,8 @@ func RefreshWeimobToken() (err error) { if globals.IsMainProductEnv() { if tokenInfo, err := api.WeimobAPI.RefreshTokenByRefreshToken(); err == nil { return string(utils.MustMarshal(tokenInfo)), utils.Time2Str(time.Now().Add((time.Duration(tokenInfo.ExpiresIn) - weimobTokenExpires/time.Second) * time.Second)) + } else { + globals.SugarLogger.Debugf("RefreshWeimobToken err:%s", err) } } else { curToken := "" diff --git a/controllers/event.go b/controllers/event.go index ee1aea50d..c66a170cb 100644 --- a/controllers/event.go +++ b/controllers/event.go @@ -1,13 +1,8 @@ package controllers import ( - "encoding/base64" - - "git.rosy.net.cn/jx-callback/business/jxutils/tasks" - "git.rosy.net.cn/jx-callback/business/jxstore/event" "git.rosy.net.cn/jx-callback/business/jxutils" - "git.rosy.net.cn/jx-callback/globals/api" "github.com/astaxie/beego" ) @@ -71,10 +66,10 @@ func (c *EventController) GetCheckVendorCookie() { // @router /GetWeixinUnlimited [post] func (c *EventController) GetWeixinUnlimited() { c.callGetWeixinUnlimited(func(params *tEventGetWeixinUnlimitedParams) (retVal interface{}, errCode string, err error) { - api.WeixinMiniAPI2.CBRetrieveToken() - retVal, err = api.WeixinMiniAPI2.GetUnlimited(params.Scene, params.Page) - retVal = base64.StdEncoding.EncodeToString(retVal.([]byte)) - tasks.RefreshWeixinToken() + // api.WeixinMiniAPI2.CBRetrieveToken() + // result, err = api.WeixinMiniAPI2.GetUnlimited(params.Scene, params.Page) + // retVal = base64.StdEncoding.EncodeToString(result["fakeData"].([]byte)) + // tasks.RefreshWeixinToken() return retVal, "", err }) } From 4950abc40176b6605afede3b738ad925b95153ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 24 Feb 2020 12:01:58 +0800 Subject: [PATCH 008/286] =?UTF-8?q?=E6=9A=82=E6=97=B6=E5=B1=8F=E8=94=BD?= =?UTF-8?q?=E6=8A=A5=E8=AD=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxutils/tasks/configrefresh.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/jxutils/tasks/configrefresh.go b/business/jxutils/tasks/configrefresh.go index eac10e8d0..323783a9e 100644 --- a/business/jxutils/tasks/configrefresh.go +++ b/business/jxutils/tasks/configrefresh.go @@ -70,7 +70,7 @@ func RefreshConfig(configKey string, expiresTime time.Duration, configGetter fun if handleType != 0 { if curConfig.Token, curConfig.Date = configGetter(); curConfig.Token == "" { if globals.IsProductEnv() { - globals.SugarLogger.Errorf("RefreshConfig %s get empty token", configKey) + globals.SugarLogger.Infof("RefreshConfig %s get empty token", configKey) sleepDuration = errRefreshGap } else { globals.SugarLogger.Infof("RefreshConfig %s get empty token", configKey) From b317d26080e97f12be8af7113ce19a2e18d55da3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 24 Feb 2020 12:12:51 +0800 Subject: [PATCH 009/286] =?UTF-8?q?=E6=9A=82=E6=97=B6=E5=88=AB=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E5=BE=AE=E7=9B=9F=E7=9A=84token?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/main.go b/main.go index 00908e8c2..a642bdbb0 100644 --- a/main.go +++ b/main.go @@ -126,10 +126,10 @@ func main() { globals.SugarLogger.Errorf("RefreshWeixinToken failed with error:%s", err) return } - if err := tasks.RefreshWeimobToken(); err != nil { - globals.SugarLogger.Errorf("RefreshWeimobToken failed with error:%s", err) - return - } + // if err := tasks.RefreshWeimobToken(); err != nil { + // globals.SugarLogger.Errorf("RefreshWeimobToken failed with error:%s", err) + // return + // } if err := tasks.RefreshYilianyunToken(); err != nil { globals.SugarLogger.Errorf("RefreshYilianyunToken failed with error:%s", err) return From 3bb98f8de7cccce607399f269d41547314d853b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 24 Feb 2020 13:30:13 +0800 Subject: [PATCH 010/286] =?UTF-8?q?=E8=8E=B7=E5=8F=96=E5=BE=AE=E4=BF=A1?= =?UTF-8?q?=E5=B0=8F=E7=A8=8B=E5=BA=8F=E7=A0=81=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- controllers/event.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/controllers/event.go b/controllers/event.go index c66a170cb..2a979323c 100644 --- a/controllers/event.go +++ b/controllers/event.go @@ -66,10 +66,10 @@ func (c *EventController) GetCheckVendorCookie() { // @router /GetWeixinUnlimited [post] func (c *EventController) GetWeixinUnlimited() { c.callGetWeixinUnlimited(func(params *tEventGetWeixinUnlimitedParams) (retVal interface{}, errCode string, err error) { - // api.WeixinMiniAPI2.CBRetrieveToken() - // result, err = api.WeixinMiniAPI2.GetUnlimited(params.Scene, params.Page) - // retVal = base64.StdEncoding.EncodeToString(result["fakeData"].([]byte)) - // tasks.RefreshWeixinToken() + api.WeixinMiniAPI2.CBRetrieveToken() + result, err = api.WeixinMiniAPI2.GetUnlimited(params.Scene, params.Page) + retVal = base64.StdEncoding.EncodeToString(result["fakeData"].([]byte)) + tasks.RefreshWeixinToken() return retVal, "", err }) } From 841ed4e4073b013a64d115ea04e04e60e9abc657 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 24 Feb 2020 13:31:33 +0800 Subject: [PATCH 011/286] =?UTF-8?q?=E8=8E=B7=E5=8F=96=E5=BE=AE=E4=BF=A1?= =?UTF-8?q?=E5=B0=8F=E7=A8=8B=E5=BA=8F=E7=A0=81=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- controllers/event.go | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/controllers/event.go b/controllers/event.go index 2a979323c..032b67826 100644 --- a/controllers/event.go +++ b/controllers/event.go @@ -1,8 +1,11 @@ package controllers import ( + "encoding/base64" + "git.rosy.net.cn/jx-callback/business/jxstore/event" "git.rosy.net.cn/jx-callback/business/jxutils" + "git.rosy.net.cn/jx-callback/globals/api" "github.com/astaxie/beego" ) @@ -67,9 +70,9 @@ func (c *EventController) GetCheckVendorCookie() { func (c *EventController) GetWeixinUnlimited() { c.callGetWeixinUnlimited(func(params *tEventGetWeixinUnlimitedParams) (retVal interface{}, errCode string, err error) { api.WeixinMiniAPI2.CBRetrieveToken() - result, err = api.WeixinMiniAPI2.GetUnlimited(params.Scene, params.Page) + result, err := api.WeixinMiniAPI2.GetUnlimited(params.Scene, params.Page) retVal = base64.StdEncoding.EncodeToString(result["fakeData"].([]byte)) - tasks.RefreshWeixinToken() + // tasks.RefreshWeixinToken() return retVal, "", err }) } From 64e990829824c326de995393061acfbe960e3d0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 24 Feb 2020 13:46:48 +0800 Subject: [PATCH 012/286] =?UTF-8?q?=E8=8E=B7=E5=8F=96=E5=BE=AE=E4=BF=A1?= =?UTF-8?q?=E5=B0=8F=E7=A8=8B=E5=BA=8F=E7=A0=81=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- controllers/event.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/controllers/event.go b/controllers/event.go index 032b67826..2cb739b22 100644 --- a/controllers/event.go +++ b/controllers/event.go @@ -71,7 +71,7 @@ func (c *EventController) GetWeixinUnlimited() { c.callGetWeixinUnlimited(func(params *tEventGetWeixinUnlimitedParams) (retVal interface{}, errCode string, err error) { api.WeixinMiniAPI2.CBRetrieveToken() result, err := api.WeixinMiniAPI2.GetUnlimited(params.Scene, params.Page) - retVal = base64.StdEncoding.EncodeToString(result["fakeData"].([]byte)) + retVal = base64.StdEncoding.EncodeToString([]byte(result["fakeData"].(string))) // tasks.RefreshWeixinToken() return retVal, "", err }) From 002361eb429f2bab4bf542b7e95c4476d6df0e57 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 24 Feb 2020 13:53:59 +0800 Subject: [PATCH 013/286] =?UTF-8?q?=E8=8E=B7=E5=8F=96=E5=BE=AE=E4=BF=A1?= =?UTF-8?q?=E5=B0=8F=E7=A8=8B=E5=BA=8F=E7=A0=81=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- controllers/event.go | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/controllers/event.go b/controllers/event.go index 2cb739b22..b0a36cc13 100644 --- a/controllers/event.go +++ b/controllers/event.go @@ -1,7 +1,9 @@ package controllers import ( - "encoding/base64" + "time" + + "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-callback/business/jxstore/event" "git.rosy.net.cn/jx-callback/business/jxutils" @@ -71,7 +73,8 @@ func (c *EventController) GetWeixinUnlimited() { c.callGetWeixinUnlimited(func(params *tEventGetWeixinUnlimitedParams) (retVal interface{}, errCode string, err error) { api.WeixinMiniAPI2.CBRetrieveToken() result, err := api.WeixinMiniAPI2.GetUnlimited(params.Scene, params.Page) - retVal = base64.StdEncoding.EncodeToString([]byte(result["fakeData"].(string))) + fileName := "微信小程序码" + utils.Int64ToStr(time.Now().Unix()) + ".jpg" + retVal, err = jxutils.UploadExportContent([]byte(result["fakeData"].(string)), fileName) // tasks.RefreshWeixinToken() return retVal, "", err }) From 232fda3558abc5f32891f345f63f1b9d7fe3c7df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 24 Feb 2020 13:56:33 +0800 Subject: [PATCH 014/286] =?UTF-8?q?=E8=8E=B7=E5=8F=96=E5=BE=AE=E4=BF=A1?= =?UTF-8?q?=E5=B0=8F=E7=A8=8B=E5=BA=8F=E7=A0=81=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- controllers/event.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/controllers/event.go b/controllers/event.go index b0a36cc13..04645522a 100644 --- a/controllers/event.go +++ b/controllers/event.go @@ -73,7 +73,7 @@ func (c *EventController) GetWeixinUnlimited() { c.callGetWeixinUnlimited(func(params *tEventGetWeixinUnlimitedParams) (retVal interface{}, errCode string, err error) { api.WeixinMiniAPI2.CBRetrieveToken() result, err := api.WeixinMiniAPI2.GetUnlimited(params.Scene, params.Page) - fileName := "微信小程序码" + utils.Int64ToStr(time.Now().Unix()) + ".jpg" + fileName := "wxcode" + utils.Int64ToStr(time.Now().Unix()) + ".jpg" retVal, err = jxutils.UploadExportContent([]byte(result["fakeData"].(string)), fileName) // tasks.RefreshWeixinToken() return retVal, "", err From 747c19a26d79223311c12efc140114faa8b4a59e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 24 Feb 2020 14:16:01 +0800 Subject: [PATCH 015/286] =?UTF-8?q?=E5=BE=97=E5=88=B0=E5=BE=AE=E4=BF=A1?= =?UTF-8?q?=E5=B0=8F=E7=A8=8B=E5=BA=8F=E7=A0=81=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- controllers/event.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/controllers/event.go b/controllers/event.go index 04645522a..6618627f9 100644 --- a/controllers/event.go +++ b/controllers/event.go @@ -71,8 +71,8 @@ func (c *EventController) GetCheckVendorCookie() { // @router /GetWeixinUnlimited [post] func (c *EventController) GetWeixinUnlimited() { c.callGetWeixinUnlimited(func(params *tEventGetWeixinUnlimitedParams) (retVal interface{}, errCode string, err error) { - api.WeixinMiniAPI2.CBRetrieveToken() - result, err := api.WeixinMiniAPI2.GetUnlimited(params.Scene, params.Page) + // api.WeixinMiniAPI2.CBRetrieveToken() + result, err := api.WeixinAPI.GetUnlimited(params.Scene, params.Page) fileName := "wxcode" + utils.Int64ToStr(time.Now().Unix()) + ".jpg" retVal, err = jxutils.UploadExportContent([]byte(result["fakeData"].(string)), fileName) // tasks.RefreshWeixinToken() From e135b3e5f614f3b1a71f5c2dcdd5e964ec46e7b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 24 Feb 2020 15:31:01 +0800 Subject: [PATCH 016/286] =?UTF-8?q?getwx2token=E4=B8=80=E5=A5=97=E6=B5=8B?= =?UTF-8?q?=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../eventhub/syseventhub/syseventhub.go | 18 +++++++++- business/jxutils/tasks/configrefresh.go | 36 +++++++++++++++++++ conf/app.conf | 4 +++ controllers/event.go | 2 +- controllers/sys.go | 17 +++++++++ globals/globals.go | 10 +++--- main.go | 4 +++ routers/commentsRouter_controllers.go | 9 +++++ 8 files changed, 94 insertions(+), 6 deletions(-) diff --git a/business/jxutils/eventhub/syseventhub/syseventhub.go b/business/jxutils/eventhub/syseventhub/syseventhub.go index 528c76973..a99d35e02 100644 --- a/business/jxutils/eventhub/syseventhub/syseventhub.go +++ b/business/jxutils/eventhub/syseventhub/syseventhub.go @@ -13,7 +13,9 @@ import ( const ( EventCategory = "sys" - EventTypeWXToken = "wxToken" + EventTypeWXToken = "wxToken" + EventTypeWX2Token = "wx2Token" + EventTypeYLYToken = "ylyToken" EventTypeWeimobToken = "weimobToken" ) @@ -57,6 +59,13 @@ func (h *Hub) OnNewWXToken(token string) { }) } +func (h *Hub) OnNewWX2Token(token string) { + h.eventHub.PostNewEvent(EventCategory, &eventhub.EventInfo{ + Type: EventTypeWX2Token, + Data: token, + }) +} + func (h *Hub) OnNewYLYToken(token string) { h.eventHub.PostNewEvent(EventCategory, &eventhub.EventInfo{ Type: EventTypeYLYToken, @@ -82,7 +91,10 @@ func (h *Hub) GetToken(tokenType, oldToken string, waitTime time.Duration) (toke if weimobToken := api.WeimobAPI.GetToken(); weimobToken != nil { token = string(utils.MustMarshal(weimobToken)) } + case EventTypeWX2Token: + token = api.WeixinMiniAPI2.CBGetToken() } + if token != oldToken { tokenInfo = &TokenInfo{ IsNew: false, @@ -105,6 +117,10 @@ func (h *Hub) GetWXToken(oldToken string, waitTime time.Duration) (tokenInfo *To return h.GetToken(EventTypeWXToken, oldToken, waitTime) } +func (h *Hub) GetWX2Token(oldToken string, waitTime time.Duration) (tokenInfo *TokenInfo) { + return h.GetToken(EventTypeWX2Token, oldToken, waitTime) +} + func (h *Hub) GetYLYToken(oldToken string, waitTime time.Duration) (tokenInfo *TokenInfo) { return h.GetToken(EventTypeYLYToken, oldToken, waitTime) } diff --git a/business/jxutils/tasks/configrefresh.go b/business/jxutils/tasks/configrefresh.go index 323783a9e..be687df7e 100644 --- a/business/jxutils/tasks/configrefresh.go +++ b/business/jxutils/tasks/configrefresh.go @@ -138,6 +138,33 @@ func RefreshWeixinToken() (err error) { return err } +func RefreshWeixin2Token() (err error) { + if api.WeixinMiniAPI2 != nil { + err = RefreshConfig("wechat2", weixinTokenExpires, func() (token string, expireTimeStr string) { + globals.SugarLogger.Debugf("RefreshWeixin2Token RunMode:%s", beego.BConfig.RunMode) + if globals.IsMainProductEnv() { + if tokenInfo, err := api.WeixinMiniAPI2.CBRetrieveToken(); err == nil { + globals.SugarLogger.Debugf("RefreshWeixin2Token tokenInfo:%s", utils.Format4Output(tokenInfo, true)) + token = tokenInfo.AccessToken + } else { + globals.SugarLogger.Errorf("RefreshWeixin2Token RefreshToken failed with error:%v", err) + } + } else { + if tokenInfo := getWX2TokenFromRemote(api.WeixinMiniAPI2.CBGetToken()); tokenInfo != nil { + expireTimeStr = utils.Time2Str(time.Now().Add(-weixinTokenExpires)) + token = tokenInfo.Token + } + } + return token, expireTimeStr + }, func(value string) { + globals.SugarLogger.Debugf("RefreshWeixinToken setter value:%s", value) + syseventhub.SysEventHub.OnNewWX2Token(value) + api.WeixinMiniAPI2.CBSetToken(value) + }) + } + return err +} + func RefreshWeimobToken() (err error) { if api.WeimobAPI != nil { err = RefreshConfig("weimob", weimobTokenExpires, func() (token string, expireTimeStr string) { @@ -279,6 +306,15 @@ func getWXTokenFromRemote(oldToken string) (tokenInfo *syseventhub.TokenInfo) { return tokenInfo } +func getWX2TokenFromRemote(oldToken string) (tokenInfo *syseventhub.TokenInfo) { + if !globals.IsMainProductEnv() && globals.GetWeixinTokenKey != "" && globals.GetWeixin2TokenURL != "" { + tokenInfo = PollingRemotEvent(globals.GetWeixin2TokenURL, 0, map[string]interface{}{ + "oldToken": oldToken, + }) + } + return tokenInfo +} + func getYLYTokenFromRemote(oldToken string) (tokenInfo *syseventhub.TokenInfo) { if !globals.IsMainProductEnv() && globals.GetWeixinTokenKey != "" && globals.GetYLYTokenURL != "" { tokenInfo = PollingRemotEvent(globals.GetYLYTokenURL, 0, map[string]interface{}{ diff --git a/conf/app.conf b/conf/app.conf index 21cafe9ef..554a79ec2 100644 --- a/conf/app.conf +++ b/conf/app.conf @@ -316,6 +316,9 @@ dadaSourceID = "73753" weixinAppID = "wx2bb99eb5d2c9b82c" weixinSecret = "6bbbed1443cc062c20a015a64c07a531" getWeixinTokenURL = "http://www.jxc4.com/v2/sys/GetWXToken" +getWeixin2TokenURL = "http://www.jxc4.com/v2/sys/GetWX2Token" +weixinMiniAppID2 = "wx4b5930c13f8b1170" +weixinMiniSecret2 = "2a57228a716ce991a52739f0ff41111d" mtwmCallbackURL = "http://callback.alpha.jxc4.com" @@ -367,6 +370,7 @@ weixinMiniSecret2 = "2a57228a716ce991a52739f0ff41111d" disableWeimob = false getWeixinTokenURL = "http://www.jxc4.com/v2/sys/GetWXToken" +getWeixin2TokenURL = "http://www.jxc4.com/v2/sys/GetWX2Token" getWeimobTokenURL = "http://www.jxc4.com/v2/sys/GetWeimobToken" dbConnectStr = "root:WebServer@1@tcp(127.0.0.1:3306)/jxd_dev_0?charset=utf8mb4&loc=Local&parseTime=true" diff --git a/controllers/event.go b/controllers/event.go index 6618627f9..2a70b7a52 100644 --- a/controllers/event.go +++ b/controllers/event.go @@ -72,7 +72,7 @@ func (c *EventController) GetCheckVendorCookie() { func (c *EventController) GetWeixinUnlimited() { c.callGetWeixinUnlimited(func(params *tEventGetWeixinUnlimitedParams) (retVal interface{}, errCode string, err error) { // api.WeixinMiniAPI2.CBRetrieveToken() - result, err := api.WeixinAPI.GetUnlimited(params.Scene, params.Page) + result, err := api.WeixinMiniAPI2.GetUnlimited(params.Scene, params.Page) fileName := "wxcode" + utils.Int64ToStr(time.Now().Unix()) + ".jpg" retVal, err = jxutils.UploadExportContent([]byte(result["fakeData"].(string)), fileName) // tasks.RefreshWeixinToken() diff --git a/controllers/sys.go b/controllers/sys.go index 4e4b66a0e..6c7160961 100644 --- a/controllers/sys.go +++ b/controllers/sys.go @@ -37,6 +37,23 @@ func (c *SysController) GetWXToken() { }) } +// @Title 得到微信小程序2token +// @Description 得到微信小程序2token +// @Param accessKey query string true "假token" +// @Param oldToken query string false "之前的token" +// @Param waitSecond query int false "等待秒数" +// @Success 200 {object} controllers.CallResult +// @Failure 200 {object} controllers.CallResult +// @router /GetWX2Token [get] +func (c *SysController) GetWX2Token() { + c.callGetWX2Token(func(params *tSysGetWX2TokenParams) (retVal interface{}, errCode string, err error) { + if params.AccessKey == globals.GetWeixinTokenKey { + retVal = syseventhub.SysEventHub.GetWX2Token(params.OldToken, time.Duration(params.WaitSecond)*time.Second) + } + return retVal, "", err + }) +} + // @Title 得到易联云token // @Description 得到易联云token // @Param accessKey query string true "假token" diff --git a/globals/globals.go b/globals/globals.go index 85cc2ea0a..4a8ab712c 100644 --- a/globals/globals.go +++ b/globals/globals.go @@ -32,10 +32,11 @@ var ( BackstageHost string WxBackstageHost string - GetWeixinTokenURL string - GetWeixinTokenKey string - GetYLYTokenURL string - GetWeimobTokenURL string + GetWeixinTokenURL string + GetWeixin2TokenURL string + GetWeixinTokenKey string + GetYLYTokenURL string + GetWeimobTokenURL string StoreName string StoreNameMtwm string @@ -99,6 +100,7 @@ func Init() { WxBackstageHost = beego.AppConfig.DefaultString("wxBackstageHost", "") GetWeixinTokenURL = beego.AppConfig.DefaultString("getWeixinTokenURL", "") + GetWeixin2TokenURL = beego.AppConfig.DefaultString("getWeixin2TokenURL", "") GetYLYTokenURL = beego.AppConfig.DefaultString("getYLYTokenURL", "") GetWeimobTokenURL = beego.AppConfig.DefaultString("getWeimobTokenURL", "") GetWeixinTokenKey = beego.AppConfig.DefaultString("getWeixinTokenKey", "") diff --git a/main.go b/main.go index a642bdbb0..15feef3f3 100644 --- a/main.go +++ b/main.go @@ -126,6 +126,10 @@ func main() { globals.SugarLogger.Errorf("RefreshWeixinToken failed with error:%s", err) return } + if err := tasks.RefreshWeixin2Token(); err != nil { + globals.SugarLogger.Errorf("RefreshWeixin2Token failed with error:%s", err) + return + } // if err := tasks.RefreshWeimobToken(); err != nil { // globals.SugarLogger.Errorf("RefreshWeimobToken failed with error:%s", err) // return diff --git a/routers/commentsRouter_controllers.go b/routers/commentsRouter_controllers.go index a735ecf86..43f8f4417 100644 --- a/routers/commentsRouter_controllers.go +++ b/routers/commentsRouter_controllers.go @@ -2133,6 +2133,15 @@ func init() { Filters: nil, Params: nil}) + beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:SysController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:SysController"], + beego.ControllerComments{ + Method: "GetWX2Token", + Router: `/GetWX2Token`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:SysController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:SysController"], beego.ControllerComments{ Method: "GetWXToken", From e46778eb9b7032d1b9d8bf1d6f64f4d87cdcf899 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 24 Feb 2020 15:35:23 +0800 Subject: [PATCH 017/286] =?UTF-8?q?getwx2token=E4=B8=80=E5=A5=97=E6=B5=8B?= =?UTF-8?q?=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxutils/tasks/configrefresh.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/business/jxutils/tasks/configrefresh.go b/business/jxutils/tasks/configrefresh.go index be687df7e..abbff08c0 100644 --- a/business/jxutils/tasks/configrefresh.go +++ b/business/jxutils/tasks/configrefresh.go @@ -307,8 +307,8 @@ func getWXTokenFromRemote(oldToken string) (tokenInfo *syseventhub.TokenInfo) { } func getWX2TokenFromRemote(oldToken string) (tokenInfo *syseventhub.TokenInfo) { - if !globals.IsMainProductEnv() && globals.GetWeixinTokenKey != "" && globals.GetWeixin2TokenURL != "" { - tokenInfo = PollingRemotEvent(globals.GetWeixin2TokenURL, 0, map[string]interface{}{ + if !globals.IsMainProductEnv() && globals.GetWeixinTokenKey != "" && globals.GetWeixinTokenURL != "" { + tokenInfo = PollingRemotEvent(globals.GetWeixinTokenURL, 0, map[string]interface{}{ "oldToken": oldToken, }) } From e9aeb8a5cdbf8a738e0a08dd5a9b617de93f1e49 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 24 Feb 2020 15:42:40 +0800 Subject: [PATCH 018/286] =?UTF-8?q?=E8=8E=B7=E5=8F=96=E5=BE=AE=E4=BF=A1?= =?UTF-8?q?=E5=B0=8F=E7=A8=8B=E5=BA=8F=E7=A0=81=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- controllers/event.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/controllers/event.go b/controllers/event.go index 2a70b7a52..4b7df673c 100644 --- a/controllers/event.go +++ b/controllers/event.go @@ -73,6 +73,9 @@ func (c *EventController) GetWeixinUnlimited() { c.callGetWeixinUnlimited(func(params *tEventGetWeixinUnlimitedParams) (retVal interface{}, errCode string, err error) { // api.WeixinMiniAPI2.CBRetrieveToken() result, err := api.WeixinMiniAPI2.GetUnlimited(params.Scene, params.Page) + if err != nil || result == nil { + return retVal, "", err + } fileName := "wxcode" + utils.Int64ToStr(time.Now().Unix()) + ".jpg" retVal, err = jxutils.UploadExportContent([]byte(result["fakeData"].(string)), fileName) // tasks.RefreshWeixinToken() From 65353aa0ca175af59d54f2fa99cf1abf01e37194 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 24 Feb 2020 16:25:36 +0800 Subject: [PATCH 019/286] =?UTF-8?q?=E8=8E=B7=E5=8F=96=E9=80=81=E8=BE=BE?= =?UTF-8?q?=E6=97=B6=E9=97=B4=EF=BC=8C=E5=A6=82=E6=9E=9C=E6=98=AF=E9=A2=84?= =?UTF-8?q?=E8=AE=A2=E5=8D=95=E9=97=A8=E5=BA=97=E5=8F=AA=E8=83=BD=E5=8F=96?= =?UTF-8?q?=E6=98=8E=E5=90=8E=E5=A4=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/model/dao/store.go | 3 ++- business/model/store.go | 2 ++ business/partner/purchase/jx/localjx/order.go | 7 +++++++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/business/model/dao/store.go b/business/model/dao/store.go index 6135869c3..61338a1ac 100644 --- a/business/model/dao/store.go +++ b/business/model/dao/store.go @@ -45,6 +45,7 @@ type StoreDetail struct { OperatorName3 string `json:"operatorName3"` JdStoreLevel string `json:"jdStoreLevel"` //京东门店等级 + IsOrder int `json:"isOrder"` //是否是下预订单门店 } // 带快递门店信息的 @@ -88,7 +89,7 @@ func getStoreDetail(db *DaoDB, storeID, vendorID int, vendorStoreID string) (sto sql := ` SELECT t1.*, t2.vendor_store_id, t2.status vendor_status, t2.delivery_fee_deduction_sill, t2.delivery_fee_deduction_fee, t2.sync_status, t2.vendor_org_code, - t2.price_percentage, t2.auto_pickup, t2.delivery_type, t2.delivery_competition, t2.is_sync, t2.vendor_store_name, + t2.price_percentage, t2.auto_pickup, t2.delivery_type, t2.delivery_competition, t2.is_sync, t2.vendor_store_name, t2.is_order, t3.value price_percentage_pack_str, t4.value freight_deduction_pack_str, district.name district_name, diff --git a/business/model/store.go b/business/model/store.go index 799714676..6ee1b9e7a 100644 --- a/business/model/store.go +++ b/business/model/store.go @@ -418,6 +418,8 @@ type StoreMap struct { FakeOpenStart int16 `orm:"default(0)" json:"fakeOpenStart"` // 假开店开始 FakeOpenStop int16 `orm:"default(0)" json:"fakeOpenStop"` // 假开店结束 JdStoreLevel string `orm:"size(32)" json:"jdStoreLevel"` //京东门店等级 + + IsOrder int `orm:"default(0)" json:"isOrder"` //是否是下预订单门店 } func (*StoreMap) TableUnique() [][]string { diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index f35c8d385..11ceba455 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -228,7 +228,14 @@ func GetAvailableDeliverTime(ctx *jxcontext.Context, storeID int) (deliverTimerL if storeID == specialStoreID { viewShippingFee = "免费配送" } + var isOrder = false + if storeDetail.IsOrder == model.YES { + isOrder = true + } for i, dayStr := range dayList { + if isOrder { + continue + } openTime1 := jxutils.JxOperationTime2TimeByDate(storeDetail.OpenTime1, beginDate) closeTime1 := jxutils.JxOperationTime2TimeByDate(storeDetail.CloseTime1, beginDate) openTime2 := jxutils.JxOperationTime2TimeByDate(storeDetail.OpenTime2, beginDate) From 4ee7cfd59565b1f5e38c8401b8f56449953df4c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 24 Feb 2020 16:43:31 +0800 Subject: [PATCH 020/286] =?UTF-8?q?=E8=8E=B7=E5=8F=96=E9=80=81=E8=BE=BE?= =?UTF-8?q?=E6=97=B6=E9=97=B4bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/order.go | 1 + 1 file changed, 1 insertion(+) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index 11ceba455..42ad6851f 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -234,6 +234,7 @@ func GetAvailableDeliverTime(ctx *jxcontext.Context, storeID int) (deliverTimerL } for i, dayStr := range dayList { if isOrder { + isOrder = false continue } openTime1 := jxutils.JxOperationTime2TimeByDate(storeDetail.OpenTime1, beginDate) From e1a233544c1e07c23682bc8fdc6645494df74c4a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 24 Feb 2020 16:47:19 +0800 Subject: [PATCH 021/286] =?UTF-8?q?=E8=8E=B7=E5=8F=96=E9=80=81=E8=BE=BE?= =?UTF-8?q?=E6=97=B6=E9=97=B4bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/order.go | 1 + 1 file changed, 1 insertion(+) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index 42ad6851f..cc7c08d0b 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -231,6 +231,7 @@ func GetAvailableDeliverTime(ctx *jxcontext.Context, storeID int) (deliverTimerL var isOrder = false if storeDetail.IsOrder == model.YES { isOrder = true + beginDate = beginDate.AddDate(0, 0, 1) } for i, dayStr := range dayList { if isOrder { From 603c32990e035bd8c1aa1c7386a6a204a2a2476a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 24 Feb 2020 17:06:51 +0800 Subject: [PATCH 022/286] =?UTF-8?q?=E6=B8=85=E7=A9=BA=E6=89=93=E5=8D=B0?= =?UTF-8?q?=E6=9C=BA=E9=98=9F=E5=88=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store.go | 20 ++++++++++++++++++++ controllers/cms_store.go | 17 +++++++++++++++++ routers/commentsRouter_controllers.go | 9 +++++++++ 3 files changed, 46 insertions(+) diff --git a/business/jxstore/cms/store.go b/business/jxstore/cms/store.go index a3b3f1fa4..6eeb5c828 100644 --- a/business/jxstore/cms/store.go +++ b/business/jxstore/cms/store.go @@ -2846,3 +2846,23 @@ func UpdateJdStoreNameAll(ctx *jxcontext.Context) (err error) { } return err } + +func DeletePrinterSeq(ctx *jxcontext.Context, storeIDs []int) (err error) { + db := dao.GetDB() + for _, v := range storeIDs { + stores, err := dao.GetStoreList(db, []int{v}, nil, nil, nil, "") + if err != nil || len(stores) == 0 { + return err + } + vendorID := stores[0].PrinterVendorID + if vendorID == model.NO { + return fmt.Errorf("该门店没有绑定打印机,ID:[%v],名字:[%v]", stores[0].ID, stores[0].Name) + } + if vendorID == model.VendorIDXiaoWM { + return fmt.Errorf("暂不支持该打印机品牌清空打印队列,[%v]", model.VendorChineseNames[model.VendorIDXiaoWM]) + } + handler := partner.GetPrinterPlatformFromVendorID(vendorID) + err = handler.EmptyPrintList(ctx, stores[0].PrinterSN, stores[0].PrinterKey) + } + return err +} diff --git a/controllers/cms_store.go b/controllers/cms_store.go index 2dfab7cc0..aef66e7a9 100644 --- a/controllers/cms_store.go +++ b/controllers/cms_store.go @@ -647,3 +647,20 @@ func (c *StoreController) SyncJdStore() { return retVal, "", err }) } + +// @Title 清空打印机打印队列 +// @Description 清空打印机打印队列 +// @Param token header string true "认证token" +// @Param storeIDs formData string true "门店列表" +// @Success 200 {object} controllers.CallResult +// @Failure 200 {object} controllers.CallResult +// @router /DeletePrinterSeq [post] +func (c *StoreController) DeletePrinterSeq() { + var storeIDList []int + c.callDeletePrinterSeq(func(params *tStoreDeletePrinterSeqParams) (retVal interface{}, errCode string, err error) { + if jxutils.Strings2Objs(params.StoreIDs, &storeIDList); err == nil { + err = cms.DeletePrinterSeq(params.Ctx, storeIDList) + } + return retVal, "", err + }) +} diff --git a/routers/commentsRouter_controllers.go b/routers/commentsRouter_controllers.go index 43f8f4417..30349e707 100644 --- a/routers/commentsRouter_controllers.go +++ b/routers/commentsRouter_controllers.go @@ -1494,6 +1494,15 @@ func init() { Filters: nil, Params: nil}) + beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreController"], + beego.ControllerComments{ + Method: "DeletePrinterSeq", + Router: `/DeletePrinterSeq`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreController"], beego.ControllerComments{ Method: "DeleteStore", From e50b1278167f05264159177fb8de3696b69df406 Mon Sep 17 00:00:00 2001 From: suyl <770236076@qq.com> Date: Mon, 24 Feb 2020 20:49:59 +0800 Subject: [PATCH 023/286] =?UTF-8?q?=E6=96=B0=E8=AE=A2=E5=8D=95=E7=9F=AD?= =?UTF-8?q?=E4=BF=A1=E6=8F=90=E9=86=92fakeprice=E4=B9=98=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxcallback/scheduler/defsch/defsch.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/jxcallback/scheduler/defsch/defsch.go b/business/jxcallback/scheduler/defsch/defsch.go index bacf1f200..5b3bbca22 100644 --- a/business/jxcallback/scheduler/defsch/defsch.go +++ b/business/jxcallback/scheduler/defsch/defsch.go @@ -1333,7 +1333,7 @@ func setFakeActualPayPrice(order *model.GoodsOrder) (newOrder *model.GoodsOrder) storeDetail, err := dao.GetStoreDetail(dao.GetDB(), order.JxStoreID, order.VendorID) if err == nil { if storeDetail.PayPercentage < 50 { - orderCopy.ActualPayPrice = order.TotalShopMoney * (100 - int64(storeDetail.PayPercentage/2)) * 100 + orderCopy.ActualPayPrice = order.TotalShopMoney * (100 - int64(storeDetail.PayPercentage/2)) / 100 } else { orderCopy.ActualPayPrice = order.EarningPrice } From f49609a0d5a9d7ddee00930c546cbd1fc7405990 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 25 Feb 2020 08:54:56 +0800 Subject: [PATCH 024/286] =?UTF-8?q?=E5=95=86=E5=9F=8E=E5=88=9B=E5=BB=BA?= =?UTF-8?q?=E8=AE=A2=E5=8D=95=E4=B8=8D=E5=88=A4=E6=96=AD=E5=BD=93=E5=89=8D?= =?UTF-8?q?=E6=97=B6=E9=97=B4=E6=98=AF=E5=90=A6=E5=9C=A8=E5=85=B6=E8=90=A5?= =?UTF-8?q?=E4=B8=9A=E6=97=B6=E9=97=B4=E5=86=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/order.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index cc7c08d0b..cf574b48e 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -389,9 +389,9 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64 return nil, nil, fmt.Errorf("预订单只能预定当天或第二天") } } - if !isTimeInOpTime(storeDetail.OpenTime1, storeDetail.CloseTime1, storeDetail.OpenTime2, storeDetail.CloseTime2, checkTime) { - return nil, nil, fmt.Errorf("门店:%s不在营业时间范围", storeDetail.Name) - } + // if !isTimeInOpTime(storeDetail.OpenTime1, storeDetail.CloseTime1, storeDetail.OpenTime2, storeDetail.CloseTime2, checkTime) { + // return nil, nil, fmt.Errorf("门店:%s不在营业时间范围", storeDetail.Name) + // } outJxOrder2 := *jxOrder outJxOrder2.Skus = nil From 76d552daac919d36ace0d9aab33d53d9026967c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 25 Feb 2020 09:03:07 +0800 Subject: [PATCH 025/286] =?UTF-8?q?=E8=8B=A5=E4=B8=8B=E5=8D=95=E6=97=B6?= =?UTF-8?q?=E9=97=B4=E4=B8=8D=E5=9C=A8=E9=97=A8=E5=BA=97=E8=90=A5=E4=B8=9A?= =?UTF-8?q?=E6=97=B6=E9=97=B4=E8=8C=83=E5=9B=B4=E5=86=85=EF=BC=8C=E5=88=99?= =?UTF-8?q?=E4=B8=8D=E6=98=BE=E7=A4=BA=E7=AB=8B=E5=8D=B3=E9=80=81=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/order.go | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index cf574b48e..50e6248cb 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -246,11 +246,13 @@ func GetAvailableDeliverTime(ctx *jxcontext.Context, storeID int) (deliverTimerL Date: fmt.Sprintf("%s(周%s)", dayStr, weekdayMap[int(beginDate.Weekday())]), } if i == 0 { - timeInfo.TimeList = append(timeInfo.TimeList, &DeliveryTimeItem{ - ViewTime: "立即送出", - UnixTime: 0, - ViewShippingFee: viewShippingFee, - }) + if isTimeInOpTime(storeDetail.OpenTime1, storeDetail.CloseTime1, storeDetail.OpenTime2, storeDetail.CloseTime2, now) { + timeInfo.TimeList = append(timeInfo.TimeList, &DeliveryTimeItem{ + ViewTime: "立即送出", + UnixTime: 0, + ViewShippingFee: viewShippingFee, + }) + } } deliverTimerList = append(deliverTimerList, timeInfo) for j := 0; j < 24*3; j++ { From 224131564594ab3b9bd712ec67d9fcf9c8669661 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 25 Feb 2020 09:27:32 +0800 Subject: [PATCH 026/286] =?UTF-8?q?=E5=95=86=E5=9F=8E=E9=80=89=E7=AB=8B?= =?UTF-8?q?=E5=8D=B3=E8=BE=BE=E6=8B=A3=E8=B4=A7=E6=97=B6=E9=97=B4=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/order.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index 50e6248cb..dd170c50d 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -524,7 +524,7 @@ func jxOrder2GoodsOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, deliveryAd order.ExpectedDeliveredTime = utils.Timestamp2Time(jxOrder.ExpectedDeliveredTimestamp) order.BusinessType = model.BusinessTypeDingshida } else { - order.ExpectedDeliveredTime = utils.DefaultTimeValue + order.ExpectedDeliveredTime = order.OrderCreatedAt.Add(time.Hour) order.BusinessType = model.BusinessTypeImmediate } for _, sku := range jxOrder.Skus { From e8af675481561856118846a2d7481ad529551881 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 25 Feb 2020 10:07:16 +0800 Subject: [PATCH 027/286] =?UTF-8?q?=E5=95=86=E5=9C=BA=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E8=BF=90=E8=B4=B9=E6=9C=80=E9=AB=9815=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/order.go | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index dd170c50d..4cad8b3ce 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -35,7 +35,8 @@ const ( PayWaitingTime = 10 * time.Minute // 等待支付的最长时间 DingShiDaMinTime = 1 * time.Hour - specialStoreID = 100274 + specialStoreID = 100274 + specialFreightPrice = 200 wxAppID = "wx4b5930c13f8b1170" ) @@ -471,12 +472,15 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64 outJxOrder.FreightPrice, _, err = delivery.CalculateDeliveryFee(dao.GetDB(), jxOrder.StoreID, "", jxutils.StandardCoordinate2Int(deliveryAddress.Lng), jxutils.StandardCoordinate2Int(deliveryAddress.Lat), model.CoordinateTypeMars, outJxOrder.Weight, checkTime) - if jxOrder.StoreID == specialStoreID { - outJxOrder.FreightPrice = 0 - } + // if jxOrder.StoreID == specialStoreID { + // outJxOrder.FreightPrice = 0 + // } } else { outJxOrder.FreightPrice = 0 } + if outJxOrder.FreightPrice > specialFreightPrice { + outJxOrder.FreightPrice = specialFreightPrice + } if outJxOrder.OrderPrice >= int64(storeDetail.DeliveryFeeDeductionSill) { outJxOrder.FreightPrice -= int64(storeDetail.DeliveryFeeDeductionFee) if outJxOrder.FreightPrice < 0 { From 53b3de92b34f7c6b9139b9e136c009e36ccd9710 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 25 Feb 2020 10:11:06 +0800 Subject: [PATCH 028/286] =?UTF-8?q?=E5=95=86=E5=9C=BA=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E8=BF=90=E8=B4=B9=E6=9C=80=E9=AB=9815=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/order.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index 4cad8b3ce..ec4078680 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -36,7 +36,7 @@ const ( DingShiDaMinTime = 1 * time.Hour specialStoreID = 100274 - specialFreightPrice = 200 + specialFreightPrice = 1500 wxAppID = "wx4b5930c13f8b1170" ) From acdada96e5265dfa3e33b35c28fb7bf44d1b1b67 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 25 Feb 2020 10:29:34 +0800 Subject: [PATCH 029/286] =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E9=AB=98=E4=BB=B7?= =?UTF-8?q?=E6=A0=BC=E5=95=86=E5=93=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 20 ++++++++++++++++++-- controllers/cms_store_sku.go | 1 + 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index 87d664b3c..71ddf27ee 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -231,7 +231,7 @@ func GetStoreSkus(ctx *jxcontext.Context, storeID int, skuIDs []int, isFocus boo return GetStoresSkus(ctx, []int{storeID}, skuIDs, isFocus, keyword, isBySku, isAct, params, offset, pageSize) } -func getGetStoresSkusBaseSQL(db *dao.DaoDB, storeIDs, skuIDs []int, isFocus bool, keyword string, isBySku, isAct bool, actVendorID int, params map[string]interface{}) (sql string, sqlParams []interface{}, err error) { +func getGetStoresSkusBaseSQL(db *dao.DaoDB, storeIDs, skuIDs []int, isFocus bool, keyword string, isBySku, isAct, isHighPrice bool, actVendorID int, params map[string]interface{}) (sql string, sqlParams []interface{}, err error) { sql = ` FROM sku_name t1 JOIN sku t2 FORCE INDEX(PRIMARY) ON t1.id = t2.name_id AND t2.deleted_at = ?/* AND t2.status = ?*/ @@ -292,16 +292,23 @@ func getGetStoresSkusBaseSQL(db *dao.DaoDB, storeIDs, skuIDs []int, isFocus bool sql += ` JOIN store_sku_bind t4 ON t4.store_id = t3.id AND t4.sku_id = t2.id AND t4.deleted_at = ? LEFT JOIN sku_name_place_bind t5 ON t1.id = t5.name_id AND t3.city_code = t5.place_code + LEFT JOIN (SELECT count(*) count,id,city_code FROM store WHERE status = ? GROUP BY 2)te ON te.id = t3.id AND te.city_code = t3.city_code + LEFT JOIN price_refer_snapshot tn ON IF(te.count < 3 ,tn.city_code = 0, tn.city_code = t3.city_code) AND tn.sku_id = t2.id AND tn.snapshot_at = ? LEFT JOIN price_refer_snapshot t6 ON t6.city_code = 0 AND t6.sku_id = t2.id AND t6.snapshot_at = ? WHERE t1.deleted_at = ? AND (t1.is_global = 1 OR t5.id IS NOT NULL OR 1 = ?)/* AND t1.status = ?*/ ` sqlParams = append(sqlParams, []interface{}{ utils.DefaultTimeValue, + model.StoreStatusOpened, + utils.Time2Date(time.Now().AddDate(0, 0, -1)), utils.Time2Date(time.Now().AddDate(0, 0, -1)), utils.DefaultTimeValue, utils.Bool2Int(isFocus), // model.SkuStatusNormal, }) + if isHighPrice { + sql += " AND t4.unit_price > tn.mid_unit_price / IF(t3.pay_percentage < 50 , 70, t3.pay_percentage) * 1.2" + } if isFocus { sql += " AND ((t2.status = ? AND t1.status = ?) OR t4.status = ?)" sqlParams = append(sqlParams, model.SkuStatusNormal, model.SkuStatusNormal, model.SkuStatusNormal) @@ -443,8 +450,12 @@ func GetStoresSkusNew(ctx *jxcontext.Context, storeIDs, skuIDs []int, isFocus bo if params["actVendorID"] != nil { actVendorID = int(utils.Interface2Int64WithDefault(params["actVendorID"], -1)) } + isHighPrice := false + if params["isHighPrice"] != nil { + isHighPrice = params["isHighPrice"].(bool) + } db := dao.GetDB() - sql, sqlParams, err := getGetStoresSkusBaseSQL(db, storeIDs, skuIDs, isFocus, keyword, isBySku, isAct, actVendorID, params) + sql, sqlParams, err := getGetStoresSkusBaseSQL(db, storeIDs, skuIDs, isFocus, keyword, isBySku, isAct, isHighPrice, actVendorID, params) if err != nil { return nil, err } @@ -479,6 +490,11 @@ func GetStoresSkusNew(ctx *jxcontext.Context, storeIDs, skuIDs []int, isFocus bo ` + sql + ` GROUP BY 1, 2 ORDER BY 1, 2 + ` + if isHighPrice { + sql2 += " , t4.unit_price DESC" + } + sql2 += ` LIMIT ? OFFSET ? ` sqlParams2 := append([]interface{}{}, sqlParams...) diff --git a/controllers/cms_store_sku.go b/controllers/cms_store_sku.go index 72632ae0c..c7ce39da0 100644 --- a/controllers/cms_store_sku.go +++ b/controllers/cms_store_sku.go @@ -85,6 +85,7 @@ func (c *StoreSkuController) GetStoreSkus() { // @Param ebaiSyncStatus query int false "饿百同步标识" // @Param mtwmSyncStatus query int false "美团外卖同步标识" // @Param lockTime query string false "价格锁定时间" +// @Param isHighPrice query bool false "是否查过高价格商品" // @Success 200 {object} controllers.CallResult // @Failure 200 {object} controllers.CallResult // @router /GetStoresSkus [get,post] From d8e7ae17738f886092245fdc9d5b105ed0290d88 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 25 Feb 2020 10:35:52 +0800 Subject: [PATCH 030/286] =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E9=AB=98=E4=BB=B7?= =?UTF-8?q?=E6=A0=BC=E5=95=86=E5=93=81=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index 71ddf27ee..474b290a9 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -292,22 +292,18 @@ func getGetStoresSkusBaseSQL(db *dao.DaoDB, storeIDs, skuIDs []int, isFocus bool sql += ` JOIN store_sku_bind t4 ON t4.store_id = t3.id AND t4.sku_id = t2.id AND t4.deleted_at = ? LEFT JOIN sku_name_place_bind t5 ON t1.id = t5.name_id AND t3.city_code = t5.place_code - LEFT JOIN (SELECT count(*) count,id,city_code FROM store WHERE status = ? GROUP BY 2)te ON te.id = t3.id AND te.city_code = t3.city_code - LEFT JOIN price_refer_snapshot tn ON IF(te.count < 3 ,tn.city_code = 0, tn.city_code = t3.city_code) AND tn.sku_id = t2.id AND tn.snapshot_at = ? LEFT JOIN price_refer_snapshot t6 ON t6.city_code = 0 AND t6.sku_id = t2.id AND t6.snapshot_at = ? WHERE t1.deleted_at = ? AND (t1.is_global = 1 OR t5.id IS NOT NULL OR 1 = ?)/* AND t1.status = ?*/ ` sqlParams = append(sqlParams, []interface{}{ utils.DefaultTimeValue, - model.StoreStatusOpened, - utils.Time2Date(time.Now().AddDate(0, 0, -1)), utils.Time2Date(time.Now().AddDate(0, 0, -1)), utils.DefaultTimeValue, utils.Bool2Int(isFocus), // model.SkuStatusNormal, }) if isHighPrice { - sql += " AND t4.unit_price > tn.mid_unit_price / IF(t3.pay_percentage < 50 , 70, t3.pay_percentage) * 1.2" + sql += " AND t4.unit_price > t6.mid_unit_price / IF(t3.pay_percentage < 50 , 70, t3.pay_percentage) * 1.2" } if isFocus { sql += " AND ((t2.status = ? AND t1.status = ?) OR t4.status = ?)" @@ -489,10 +485,11 @@ func GetStoresSkusNew(ctx *jxcontext.Context, storeIDs, skuIDs []int, isFocus bo t3.id store_id, t1.id name_id ` + sql + ` GROUP BY 1, 2 - ORDER BY 1, 2 ` if isHighPrice { - sql2 += " , t4.unit_price DESC" + sql2 += " ORDER BY t4.unit_price DESC" + } else { + sql2 += " ORDER BY 1, 2" } sql2 += ` LIMIT ? OFFSET ? From d492a2301c46c83ee45c30be101419ce7c53c9c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 25 Feb 2020 10:41:19 +0800 Subject: [PATCH 031/286] =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E9=AB=98=E4=BB=B7?= =?UTF-8?q?=E6=A0=BC=E5=95=86=E5=93=81=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index 474b290a9..c2c496bd8 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -485,13 +485,7 @@ func GetStoresSkusNew(ctx *jxcontext.Context, storeIDs, skuIDs []int, isFocus bo t3.id store_id, t1.id name_id ` + sql + ` GROUP BY 1, 2 - ` - if isHighPrice { - sql2 += " ORDER BY t4.unit_price DESC" - } else { - sql2 += " ORDER BY 1, 2" - } - sql2 += ` + ORDER BY 1, 2 LIMIT ? OFFSET ? ` sqlParams2 := append([]interface{}{}, sqlParams...) @@ -536,6 +530,9 @@ func GetStoresSkusNew(ctx *jxcontext.Context, storeIDs, skuIDs []int, isFocus bo t4.status_sale_begin, t4.status_sale_end, t6.mid_unit_price real_mid_unit_price ` + sql + if isHighPrice { + sql += " , t4.unit_price DESC" + } var tmpList []*tGetStoresSkusInfo beginTime := time.Now() if err = dao.GetRows(db, &tmpList, sql, sqlParams...); err != nil { From 5b071a14d37a2c95529faf0ebb4e3e76e9462dab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 25 Feb 2020 11:06:19 +0800 Subject: [PATCH 032/286] =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E9=AB=98=E4=BB=B7?= =?UTF-8?q?=E6=A0=BC=E5=95=86=E5=93=81=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 15 ++++----------- controllers/cms_store_sku.go | 2 +- 2 files changed, 5 insertions(+), 12 deletions(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index c2c496bd8..9c1e6f18e 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -228,7 +228,7 @@ var ( ) func GetStoreSkus(ctx *jxcontext.Context, storeID int, skuIDs []int, isFocus bool, keyword string, isBySku, isAct bool, params map[string]interface{}, offset, pageSize int) (skuNamesInfo *dao.StoreSkuNamesInfo, err error) { - return GetStoresSkus(ctx, []int{storeID}, skuIDs, isFocus, keyword, isBySku, isAct, params, offset, pageSize) + return GetStoresSkus(ctx, []int{storeID}, skuIDs, isFocus, false, keyword, isBySku, isAct, params, offset, pageSize) } func getGetStoresSkusBaseSQL(db *dao.DaoDB, storeIDs, skuIDs []int, isFocus bool, keyword string, isBySku, isAct, isHighPrice bool, actVendorID int, params map[string]interface{}) (sql string, sqlParams []interface{}, err error) { @@ -431,11 +431,11 @@ func getGetStoresSkusBaseSQL(db *dao.DaoDB, storeIDs, skuIDs []int, isFocus bool return sql, sqlParams, err } -func GetStoresSkus(ctx *jxcontext.Context, storeIDs, skuIDs []int, isFocus bool, keyword string, isBySku, isAct bool, params map[string]interface{}, offset, pageSize int) (skuNamesInfo *dao.StoreSkuNamesInfo, err error) { - return GetStoresSkusNew(ctx, storeIDs, skuIDs, isFocus, keyword, isBySku, isAct, params, offset, pageSize) +func GetStoresSkus(ctx *jxcontext.Context, storeIDs, skuIDs []int, isFocus, isHighPrice bool, keyword string, isBySku, isAct bool, params map[string]interface{}, offset, pageSize int) (skuNamesInfo *dao.StoreSkuNamesInfo, err error) { + return GetStoresSkusNew(ctx, storeIDs, skuIDs, isFocus, isHighPrice, keyword, isBySku, isAct, params, offset, pageSize) } -func GetStoresSkusNew(ctx *jxcontext.Context, storeIDs, skuIDs []int, isFocus bool, keyword string, isBySku, isAct bool, params map[string]interface{}, offset, pageSize int) (skuNamesInfo *dao.StoreSkuNamesInfo, err error) { +func GetStoresSkusNew(ctx *jxcontext.Context, storeIDs, skuIDs []int, isFocus, isHighPrice bool, keyword string, isBySku, isAct bool, params map[string]interface{}, offset, pageSize int) (skuNamesInfo *dao.StoreSkuNamesInfo, err error) { if !isFocus && !isBySku && (len(storeIDs) > 1 || len(storeIDs) == 0) { return nil, fmt.Errorf("未关注按SkuName只能查询单店") } @@ -446,10 +446,6 @@ func GetStoresSkusNew(ctx *jxcontext.Context, storeIDs, skuIDs []int, isFocus bo if params["actVendorID"] != nil { actVendorID = int(utils.Interface2Int64WithDefault(params["actVendorID"], -1)) } - isHighPrice := false - if params["isHighPrice"] != nil { - isHighPrice = params["isHighPrice"].(bool) - } db := dao.GetDB() sql, sqlParams, err := getGetStoresSkusBaseSQL(db, storeIDs, skuIDs, isFocus, keyword, isBySku, isAct, isHighPrice, actVendorID, params) if err != nil { @@ -530,9 +526,6 @@ func GetStoresSkusNew(ctx *jxcontext.Context, storeIDs, skuIDs []int, isFocus bo t4.status_sale_begin, t4.status_sale_end, t6.mid_unit_price real_mid_unit_price ` + sql - if isHighPrice { - sql += " , t4.unit_price DESC" - } var tmpList []*tGetStoresSkusInfo beginTime := time.Now() if err = dao.GetRows(db, &tmpList, sql, sqlParams...); err != nil { diff --git a/controllers/cms_store_sku.go b/controllers/cms_store_sku.go index c7ce39da0..8dafe2d3c 100644 --- a/controllers/cms_store_sku.go +++ b/controllers/cms_store_sku.go @@ -93,7 +93,7 @@ func (c *StoreSkuController) GetStoresSkus() { c.callGetStoresSkus(func(params *tStoreSkuGetStoresSkusParams) (retVal interface{}, errCode string, err error) { var storeIDs, skuIDs []int if err = jxutils.Strings2Objs(params.StoreIDs, &storeIDs, params.SkuIDs, &skuIDs); err == nil { - retVal, err = cms.GetStoresSkus(params.Ctx, storeIDs, skuIDs, params.IsFocus, params.Keyword, params.IsBySku, params.IsAct, params.MapData, params.Offset, params.PageSize) + retVal, err = cms.GetStoresSkus(params.Ctx, storeIDs, skuIDs, params.IsFocus, params.IsHighPrice, params.Keyword, params.IsBySku, params.IsAct, params.MapData, params.Offset, params.PageSize) } return retVal, "", err }) From 5f2ac354e432c0f6e78917f7a3ac2d34744581ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 25 Feb 2020 11:10:12 +0800 Subject: [PATCH 033/286] =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E9=AB=98=E4=BB=B7?= =?UTF-8?q?=E6=A0=BC=E5=95=86=E5=93=81=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index 9c1e6f18e..e01a3f718 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -528,6 +528,8 @@ func GetStoresSkusNew(ctx *jxcontext.Context, storeIDs, skuIDs []int, isFocus, i ` + sql var tmpList []*tGetStoresSkusInfo beginTime := time.Now() + fmt.Println(sql) + fmt.Println(sqlParams) if err = dao.GetRows(db, &tmpList, sql, sqlParams...); err != nil { dao.Rollback(db) return nil, err From bb7d754980ceb5fc7eca8e7714374072d8af8da4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 25 Feb 2020 11:29:34 +0800 Subject: [PATCH 034/286] =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E9=AB=98=E4=BB=B7?= =?UTF-8?q?=E6=A0=BC=E5=95=86=E5=93=81=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index e01a3f718..1fe5a4ccb 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -303,7 +303,7 @@ func getGetStoresSkusBaseSQL(db *dao.DaoDB, storeIDs, skuIDs []int, isFocus bool // model.SkuStatusNormal, }) if isHighPrice { - sql += " AND t4.unit_price > t6.mid_unit_price / IF(t3.pay_percentage < 50 , 70, t3.pay_percentage) * 1.2" + sql += " AND t4.unit_price > t6.mid_unit_price / IF(t3.pay_percentage < 50 , 70, t3.pay_percentage) * 1.2 * 100" } if isFocus { sql += " AND ((t2.status = ? AND t1.status = ?) OR t4.status = ?)" @@ -526,6 +526,9 @@ func GetStoresSkusNew(ctx *jxcontext.Context, storeIDs, skuIDs []int, isFocus, i t4.status_sale_begin, t4.status_sale_end, t6.mid_unit_price real_mid_unit_price ` + sql + if isHighPrice { + sql += " , t4.unit_price DESC LIMIT 99" + } var tmpList []*tGetStoresSkusInfo beginTime := time.Now() fmt.Println(sql) From f9e9088445e9347dafa7669fc7352e140274eb87 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 25 Feb 2020 11:31:47 +0800 Subject: [PATCH 035/286] =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E9=AB=98=E4=BB=B7?= =?UTF-8?q?=E6=A0=BC=E5=95=86=E5=93=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 2 -- 1 file changed, 2 deletions(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index 1fe5a4ccb..aa2f22cf0 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -531,8 +531,6 @@ func GetStoresSkusNew(ctx *jxcontext.Context, storeIDs, skuIDs []int, isFocus, i } var tmpList []*tGetStoresSkusInfo beginTime := time.Now() - fmt.Println(sql) - fmt.Println(sqlParams) if err = dao.GetRows(db, &tmpList, sql, sqlParams...); err != nil { dao.Rollback(db) return nil, err From 18c24e010dae3cad0ce155fd56ef7a3e03cea220 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 25 Feb 2020 15:54:03 +0800 Subject: [PATCH 036/286] =?UTF-8?q?=E5=BE=85=E6=94=AF=E4=BB=98=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E8=B6=85=E6=97=B6=E8=87=AA=E5=8A=A8=E5=8F=96=E6=B6=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/misc/misc.go | 5 +++ business/partner/purchase/jx/localjx/order.go | 41 +++++++++++++++++++ 2 files changed, 46 insertions(+) diff --git a/business/jxstore/misc/misc.go b/business/jxstore/misc/misc.go index 3e770eca6..f4dede278 100644 --- a/business/jxstore/misc/misc.go +++ b/business/jxstore/misc/misc.go @@ -104,6 +104,8 @@ var ( } importantTaskMap = &sync.Map{} + + cancelPayTimeOutOrderList = localjx.GetHalfHoursList() ) func GetImportantTaskID(taskName string) string { @@ -180,6 +182,9 @@ func Init() { ScheduleTimerFunc("AutoPayForPopluarMan", func() { localjx.AutoPayForPopluarMan(jxcontext.AdminCtx) }, autoPayForPopluarManList) + ScheduleTimerFunc("CancelPayTimeOutOrder", func() { + localjx.CancelPayTimeOutOrder(jxcontext.AdminCtx) + }, cancelPayTimeOutOrderList) } ScheduleTimerFunc("AutoSaleStoreSku", func() { cms.AutoSaleStoreSku(jxcontext.AdminCtx, nil, false) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index ec4078680..04e242f77 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -39,6 +39,8 @@ const ( specialFreightPrice = 1500 wxAppID = "wx4b5930c13f8b1170" + + autoCancelOrderReason = "支付超时,系统自动取消!" ) type JxSkuInfo struct { @@ -808,3 +810,42 @@ func updateUserAndTransfers(db *dao.DaoDB, param *wxpayapi.TransfersParam, user _, err = dao.UpdateEntity(db, user, "ProfitSum", "Profit", "Arrears") return err } + +func CancelPayTimeOutOrder(ctx *jxcontext.Context) (err error) { + db := dao.GetDB() + var orders []*model.GoodsOrder + sql := ` + SELECT * + FROM goods_order + WHERE order_created_at >= ? AND order_created_at <= NOW() + AND status = ? + AND vendor_id = ? + ` + sqlParams := []interface{}{ + time.Now().Add(-time.Minute * 30), + model.OrderStatusWait4Pay, + model.VendorIDJX, + } + err = dao.GetRows(db, &orders, sql, sqlParams) + for _, v := range orders { + if v.OrderCreatedAt.Add(2 * time.Minute).Before(time.Now()) { + err2 := CancelOrder(ctx, v, autoCancelOrderReason) + err = err2 + } + } + return err +} + +func GetHalfHoursList() (strs []string) { + for k := 0; k < 3; k++ { + for i := 0; i < 10; i++ { + for j := 0; j < 4; j += 3 { + if k == 2 && i > 3 { + break + } + strs = append(strs, utils.Int2Str(k)+utils.Int2Str(i)+":"+utils.Int2Str(j)+"0"+":00") + } + } + } + return strs +} From d328cb57bdaa29e3bbe93c569a0aab4610efb082 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 25 Feb 2020 15:54:36 +0800 Subject: [PATCH 037/286] =?UTF-8?q?beta=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/misc/misc.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/business/jxstore/misc/misc.go b/business/jxstore/misc/misc.go index f4dede278..54ded4119 100644 --- a/business/jxstore/misc/misc.go +++ b/business/jxstore/misc/misc.go @@ -191,6 +191,9 @@ func Init() { }, autoSaleStoreSkuTimeList) if beego.BConfig.RunMode == "beta" { + ScheduleTimerFunc("CancelPayTimeOutOrder", func() { + localjx.CancelPayTimeOutOrder(jxcontext.AdminCtx) + }, cancelPayTimeOutOrderList) ScheduleTimerFunc("GetAndStoreCitiesShops", func() { netspider.GetAndStoreCitiesShops(jxcontext.AdminCtx, nil, nil, 0, 0, false, false) }, []string{ From b79d2b446bc0af8e73f881d9e65ae6c4feae7703 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 25 Feb 2020 16:03:59 +0800 Subject: [PATCH 038/286] =?UTF-8?q?=E6=94=AF=E4=BB=98=E8=B6=85=E6=97=B6?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E5=8F=96=E6=B6=88=E9=92=89=E9=92=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/order.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index 04e242f77..eac2c1356 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -828,7 +828,7 @@ func CancelPayTimeOutOrder(ctx *jxcontext.Context) (err error) { } err = dao.GetRows(db, &orders, sql, sqlParams) for _, v := range orders { - if v.OrderCreatedAt.Add(2 * time.Minute).Before(time.Now()) { + if v.OrderCreatedAt.Add(PayWaitingTime).Before(time.Now()) { err2 := CancelOrder(ctx, v, autoCancelOrderReason) err = err2 } From 5a3e680fc98b8e781f69237a15350ca25a0a2e7d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 25 Feb 2020 16:37:41 +0800 Subject: [PATCH 039/286] =?UTF-8?q?GetStoreListByLocation=E6=8E=92?= =?UTF-8?q?=E9=99=A4=E5=8F=AA=E8=83=BD=E9=A2=84=E8=AE=A2=E5=8D=95=E5=BA=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store.go | 2 ++ business/jxstore/cms/store_sku_check.go | 2 +- business/jxstore/cms/user2.go | 28 +++++++++++++++++++++++++ controllers/cms_user2.go | 14 +++++++++++++ routers/commentsRouter_controllers.go | 9 ++++++++ 5 files changed, 54 insertions(+), 1 deletion(-) diff --git a/business/jxstore/cms/store.go b/business/jxstore/cms/store.go index 6eeb5c828..20d593071 100644 --- a/business/jxstore/cms/store.go +++ b/business/jxstore/cms/store.go @@ -2369,11 +2369,13 @@ func GetStoreListByLocation(ctx *jxcontext.Context, lng, lat float64, needWalkDi JOIN place city ON city.code = t1.city_code JOIN store_map sm ON sm.store_id = t1.id AND sm.vendor_id = ? AND sm.deleted_at = ? AND sm.status <> ? WHERE t1.deleted_at = ? AND t1.status <> ? AND t1.lng > ? AND t1.lng < ? AND t1.lat > ? AND t1.lat < ? + AND sm.is_order <> ? ORDER BY t1.id ` sqlParams := []interface{}{ model.VendorIDJX, utils.DefaultTimeValue, model.StoreStatusDisabled, utils.DefaultTimeValue, model.StoreStatusDisabled, jxutils.StandardCoordinate2Int(lng1), jxutils.StandardCoordinate2Int(lng2), jxutils.StandardCoordinate2Int(lat1), jxutils.StandardCoordinate2Int(lat2), + model.YES, } var storeList1 []*Store4User diff --git a/business/jxstore/cms/store_sku_check.go b/business/jxstore/cms/store_sku_check.go index 6268288ef..03347715a 100644 --- a/business/jxstore/cms/store_sku_check.go +++ b/business/jxstore/cms/store_sku_check.go @@ -571,7 +571,7 @@ func CheckSkuDiffBetweenJxAndVendor(ctx *jxcontext.Context, vendorIDList []int, } } else { if singleFlag == false { - jxSkuInfoDataSingle, _ = GetStoreSkus(ctx, storeID, []int{}, true, "", true, false, map[string]interface{}{}, 0, -1) + jxSkuInfoDataSingle, _ = GetStoreSkus(ctx, storeID, nil, true, "", true, false, map[string]interface{}{}, 0, -1) filterJxSkuInfoMapSingle = GetFilterJxSkuInfoMap(jxSkuInfoDataSingle.SkuNames) //map[京西商品ID:StoreSkuNameExt] singleFlag = true } diff --git a/business/jxstore/cms/user2.go b/business/jxstore/cms/user2.go index 7c94c70ac..a3d5bc7e6 100644 --- a/business/jxstore/cms/user2.go +++ b/business/jxstore/cms/user2.go @@ -1054,3 +1054,31 @@ func DeleteUserInfo(ctx *jxcontext.Context, userID string) (err error) { } return err } + +func GetMyJxStoreList(ctx *jxcontext.Context, mobile string) (storesInfo interface{}, err error) { + db := dao.GetDB() + user, err := dao.GetUserByID(db, "mobile", mobile) + if err != nil { + return nil, err + } + userID := user.UserID + var storeList []*dao.StoreWithCityName + if storeList, err = GetStoreList4User(ctx, mobile, userID); err == nil && len(storeList) > 0 { + // todo,应该用通用方法 + mapDataList := make([]map[string]interface{}, len(storeList)) + for k, v := range storeList { + mapDataList[k] = map[string]interface{}{ + "id": v.ID, + "address": v.Address, + "cityName": v.CityName, + "name": v.Name, + "tel1": v.Tel1, + "tel2": v.Tel2, + "payeeName": v.PayeeName, + "status": v.Status, + } + } + storesInfo = mapDataList + } + return storesInfo, err +} diff --git a/controllers/cms_user2.go b/controllers/cms_user2.go index ca2608ef5..a7a55f81c 100644 --- a/controllers/cms_user2.go +++ b/controllers/cms_user2.go @@ -485,3 +485,17 @@ func (c *User2Controller) DeleteUserInfo() { return retVal, "", err }) } + +// @Title 得到用户自己的门店列表(商城用) +// @Description 得到用户自己的门店列表(商城用) +// @Param token header string false "认证token" +// @Param mobile query string true "电话" +// @Success 200 {object} controllers.CallResult +// @Failure 200 {object} controllers.CallResult +// @router /GetMyJxStoreList [get] +func (c *User2Controller) GetMyJxStoreList() { + c.callGetMyJxStoreList(func(params *tUser2GetMyJxStoreListParams) (retVal interface{}, errCode string, err error) { + retVal, err = cms.GetMyJxStoreList(params.Ctx, params.Mobile) + return retVal, "", err + }) +} diff --git a/routers/commentsRouter_controllers.go b/routers/commentsRouter_controllers.go index 30349e707..bceb9d400 100644 --- a/routers/commentsRouter_controllers.go +++ b/routers/commentsRouter_controllers.go @@ -2385,6 +2385,15 @@ func init() { Filters: nil, Params: nil}) + beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:User2Controller"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:User2Controller"], + beego.ControllerComments{ + Method: "GetMyJxStoreList", + Router: `/GetMyJxStoreList`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:User2Controller"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:User2Controller"], beego.ControllerComments{ Method: "GetMyStoreList", From 8ff1c377742cfc6449dd383fa5f739050f748a43 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 25 Feb 2020 16:43:44 +0800 Subject: [PATCH 040/286] =?UTF-8?q?=E8=8E=B7=E5=8F=96=E5=BE=85=E6=8B=A3?= =?UTF-8?q?=E8=B4=A7=E5=95=86=E5=93=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxcallback/orderman/orderman_ext.go | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/business/jxcallback/orderman/orderman_ext.go b/business/jxcallback/orderman/orderman_ext.go index 65cffb128..16f400ee9 100644 --- a/business/jxcallback/orderman/orderman_ext.go +++ b/business/jxcallback/orderman/orderman_ext.go @@ -49,8 +49,9 @@ type StoresOrderSaleInfo struct { type OrderSkusAccept struct { model.SkuAndName - SumWeight int `json:"sumWeight"` - SumCount int `json:"sumCount"` + SumWeight int `json:"sumWeight"` + SumCount int `json:"sumCount"` + Img string `json:"img"` } func (c *OrderManager) GetStoreOrderCountInfo(ctx *jxcontext.Context, storeID, lastHours int, isIncludeFake bool) (countInfo []*model.GoodsOrderCountInfo, err error) { @@ -1148,7 +1149,7 @@ func (c *OrderManager) RefreshOrderFinancial(ctx *jxcontext.Context, fromTime, t func GetOrdersAccept(ctx *jxcontext.Context, storeID int) (result []*OrderSkusAccept, err error) { db := dao.GetDB() sql := ` - SELECT SUM(a.count) sum_count, SUM(a.weight*a.count) sum_weight, c.*, d.name, d.unit, d.prefix + SELECT SUM(a.count) sum_count, SUM(a.weight*a.count) sum_weight, c.*, d.name, d.unit, d.prefix, d.img FROM order_sku a JOIN goods_order b ON b.vendor_order_id = a.vendor_order_id AND b.vendor_id = a.vendor_id JOIN sku c ON c.id = a.sku_id @@ -1157,6 +1158,7 @@ func GetOrdersAccept(ctx *jxcontext.Context, storeID int) (result []*OrderSkusAc AND b.status = ? AND b.order_created_at <= NOW() AND b.order_created_at >= ? GROUP BY 3 + ORDER BY sum_weight DESC ` sqlParams := []interface{}{ storeID, From 3ffb6798f71a3029ff41a2cbf04580216b1a79c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 25 Feb 2020 17:29:59 +0800 Subject: [PATCH 041/286] =?UTF-8?q?=E6=B0=B8=E8=BE=89excel=E8=A7=84?= =?UTF-8?q?=E5=88=99=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/yonghui/yonghui.go | 164 ++++++++++++++-------------- 1 file changed, 83 insertions(+), 81 deletions(-) diff --git a/business/jxstore/yonghui/yonghui.go b/business/jxstore/yonghui/yonghui.go index ee8b945c6..53840ed22 100644 --- a/business/jxstore/yonghui/yonghui.go +++ b/business/jxstore/yonghui/yonghui.go @@ -105,55 +105,56 @@ type WeimobOrderSkusExcelResult struct { } var ( + //去掉毛菜. 2020-02-25 17:20 sheetMap = map[string]*SheetParam{ "蔬菜": &SheetParam{ - SkuIDCol: 0, - SkuPriceCol: 14, - SkuNameCol: 1, - OrgSkuIdCol: 5, - OrgSkuPriceCol: 8, - OrgSkuNameCol: 6, - SkuRow: 2, + SkuIDCol: 0, + SkuPriceCol: 10, + SkuNameCol: 1, + // OrgSkuIdCol: 5, + // OrgSkuPriceCol: 8, + // OrgSkuNameCol: 6, + SkuRow: 2, }, "水果": &SheetParam{ - SkuIDCol: 0, - SkuPriceCol: 14, - SkuNameCol: 1, - OrgSkuIdCol: 5, - OrgSkuPriceCol: 8, - OrgSkuNameCol: 6, - SkuRow: 2, + SkuIDCol: 0, + SkuPriceCol: 10, + SkuNameCol: 1, + // OrgSkuIdCol: 5, + // OrgSkuPriceCol: 8, + // OrgSkuNameCol: 6, + SkuRow: 2, }, "肉禽": &SheetParam{ - SkuIDCol: 0, - SkuPriceCol: 12, - SkuNameCol: 1, - OrgSkuIdCol: 4, - OrgSkuPriceCol: 7, - OrgSkuNameCol: 5, - SkuRow: 1, + SkuIDCol: 0, + SkuPriceCol: 5, + SkuNameCol: 1, + // OrgSkuIdCol: 4, + // OrgSkuPriceCol: 7, + // OrgSkuNameCol: 5, + SkuRow: 1, }, "净配": &SheetParam{ - SkuIDCol: 0, - SkuPriceCol: 14, - SkuNameCol: 1, - OrgSkuIdCol: 4, - OrgSkuPriceCol: 7, - OrgSkuNameCol: 5, - SkuRow: 1, + SkuIDCol: 0, + SkuPriceCol: 9, + SkuNameCol: 1, + // OrgSkuIdCol: 4, + // OrgSkuPriceCol: 7, + // OrgSkuNameCol: 5, + SkuRow: 1, }, "水产": &SheetParam{ - SkuIDCol: 1, - SkuPriceCol: 15, - SkuNameCol: 2, - OrgSkuIdCol: 6, - OrgSkuPriceCol: 9, - OrgSkuNameCol: 7, - SkuRow: 1, + SkuIDCol: 1, + SkuPriceCol: 11, + SkuNameCol: 2, + // OrgSkuIdCol: 6, + // OrgSkuPriceCol: 9, + // OrgSkuNameCol: 7, + SkuRow: 1, }, "干货": &SheetParam{ - SkuIDCol: 0, - SkuPriceCol: 13, - SkuNameCol: 1, - OrgSkuIdCol: 4, - OrgSkuPriceCol: 7, - OrgSkuNameCol: 5, - SkuRow: 2, + SkuIDCol: 0, + SkuPriceCol: 9, + SkuNameCol: 1, + // OrgSkuIdCol: 4, + // OrgSkuPriceCol: 7, + // OrgSkuNameCol: 5, + SkuRow: 2, }, "MINI肉禽价格": &SheetParam{ SkuIDCol: 1, SkuPriceCol: 5, @@ -556,18 +557,18 @@ func GetWeiMobGoodsList(param *weimobapi.QueryGoodsListParam) (goodsList []*weim func GetCellIntoMap(sheetParam *SheetParam, skuMap map[string]*ExcelParam, row []string, sheetName string, rowNum int) (errMsg string) { var ( - skuID string - orgSkuID string - skuPrice float64 - orgSkuPrice float64 - skuName string - orgSkuName string - skuIDCol = sheetParam.SkuIDCol - skuPriceCol = sheetParam.SkuPriceCol - skuNameCol = sheetParam.SkuNameCol - orgSkuIDCol = sheetParam.OrgSkuIdCol - orgSkuPriceCol = sheetParam.OrgSkuPriceCol - orgSkuNameCol = sheetParam.OrgSkuNameCol + skuID string + // orgSkuID string + skuPrice float64 + // orgSkuPrice float64 + skuName string + // orgSkuName string + skuIDCol = sheetParam.SkuIDCol + skuPriceCol = sheetParam.SkuPriceCol + skuNameCol = sheetParam.SkuNameCol + // orgSkuIDCol = sheetParam.OrgSkuIdCol + // orgSkuPriceCol = sheetParam.OrgSkuPriceCol + // orgSkuNameCol = sheetParam.OrgSkuNameCol ) for k, cell := range row { if cell != "" { @@ -576,29 +577,30 @@ func GetCellIntoMap(sheetParam *SheetParam, skuMap map[string]*ExcelParam, row [ } if k == skuPriceCol && skuPriceCol >= 0 { if rowNum == sheetParam.SkuRow-1 { - if !strings.Contains(cell, "今日供价") && !strings.Contains(cell, "单价") { + if !strings.Contains(cell, "今日供价") { + // && !strings.Contains(cell, "单价") { errMsg += fmt.Sprintf("sheet页:[%v],Excel排版发生变化!第[%v]列今日供价附近可能增加或减少了一列,请确认!", sheetName, k+1) } } skuPrice = Float64Round(utils.Str2Float64WithDefault(cell, 0)) } - if k == orgSkuIDCol && orgSkuIDCol >= 0 { - orgSkuID = "0" + cell - } - if k == orgSkuPriceCol && orgSkuPriceCol >= 0 { - if rowNum == sheetParam.SkuRow-1 { - if !strings.Contains(cell, "进价") { - errMsg += fmt.Sprintf("sheet页:[%v],Excel排版发生变化!第[%v]列进价附近可能增加或减少了一列,请确认!", sheetName, k+1) - } - } - orgSkuPrice = Float64Round(utils.Str2Float64WithDefault(cell, 0)) - } + // if k == orgSkuIDCol && orgSkuIDCol >= 0 { + // orgSkuID = "0" + cell + // } + // if k == orgSkuPriceCol && orgSkuPriceCol >= 0 { + // if rowNum == sheetParam.SkuRow-1 { + // if !strings.Contains(cell, "进价") { + // errMsg += fmt.Sprintf("sheet页:[%v],Excel排版发生变化!第[%v]列进价附近可能增加或减少了一列,请确认!", sheetName, k+1) + // } + // } + // orgSkuPrice = Float64Round(utils.Str2Float64WithDefault(cell, 0)) + // } if k == skuNameCol && skuNameCol >= 0 { skuName = cell } - if k == orgSkuNameCol && orgSkuNameCol >= 0 { - orgSkuName = cell - } + // if k == orgSkuNameCol && orgSkuNameCol >= 0 { + // orgSkuName = cell + // } } } if rowNum >= sheetParam.SkuRow { @@ -619,20 +621,20 @@ func GetCellIntoMap(sheetParam *SheetParam, skuMap map[string]*ExcelParam, row [ } else if skuPrice != 0 { BuildSkuMap(skuID, skuName, skuPrice, skuMap) } - if skuMap[orgSkuID] != nil { - if skuMap[orgSkuID].Price != 0 && skuMap[orgSkuID].Price != orgSkuPrice && orgSkuPrice != 0 { - if orgSkuPrice > skuMap[orgSkuID].Price { - BuildSkuMap(orgSkuID, orgSkuName, orgSkuPrice, skuMap) - } - } else if orgSkuPriceCol >= 0 && orgSkuIDCol >= 0 && orgSkuNameCol >= 0 { - BuildSkuMap(orgSkuID, orgSkuName, orgSkuPrice, skuMap) - } - } else if orgSkuPrice != 0 { - BuildSkuMap(orgSkuID, orgSkuName, orgSkuPrice, skuMap) - } + // if skuMap[orgSkuID] != nil { + // if skuMap[orgSkuID].Price != 0 && skuMap[orgSkuID].Price != orgSkuPrice && orgSkuPrice != 0 { + // if orgSkuPrice > skuMap[orgSkuID].Price { + // BuildSkuMap(orgSkuID, orgSkuName, orgSkuPrice, skuMap) + // } + // } else if orgSkuPriceCol >= 0 && orgSkuIDCol >= 0 && orgSkuNameCol >= 0 { + // BuildSkuMap(orgSkuID, orgSkuName, orgSkuPrice, skuMap) + // } + // } else if orgSkuPrice != 0 { + // BuildSkuMap(orgSkuID, orgSkuName, orgSkuPrice, skuMap) + // } } else { BuildSkuMap(skuID, skuName, skuPrice, skuMap) - BuildSkuMap(orgSkuID, orgSkuName, orgSkuPrice, skuMap) + // BuildSkuMap(orgSkuID, orgSkuName, orgSkuPrice, skuMap) } delete(skuMap, "") } else { From 77cb160f64a70f1173b10032649223d1cbb49d9d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 25 Feb 2020 17:49:25 +0800 Subject: [PATCH 042/286] =?UTF-8?q?=E9=80=80=E5=9B=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/yonghui/yonghui.go | 164 ++++++++++++++-------------- 1 file changed, 81 insertions(+), 83 deletions(-) diff --git a/business/jxstore/yonghui/yonghui.go b/business/jxstore/yonghui/yonghui.go index 53840ed22..ee8b945c6 100644 --- a/business/jxstore/yonghui/yonghui.go +++ b/business/jxstore/yonghui/yonghui.go @@ -105,56 +105,55 @@ type WeimobOrderSkusExcelResult struct { } var ( - //去掉毛菜. 2020-02-25 17:20 sheetMap = map[string]*SheetParam{ "蔬菜": &SheetParam{ - SkuIDCol: 0, - SkuPriceCol: 10, - SkuNameCol: 1, - // OrgSkuIdCol: 5, - // OrgSkuPriceCol: 8, - // OrgSkuNameCol: 6, - SkuRow: 2, + SkuIDCol: 0, + SkuPriceCol: 14, + SkuNameCol: 1, + OrgSkuIdCol: 5, + OrgSkuPriceCol: 8, + OrgSkuNameCol: 6, + SkuRow: 2, }, "水果": &SheetParam{ - SkuIDCol: 0, - SkuPriceCol: 10, - SkuNameCol: 1, - // OrgSkuIdCol: 5, - // OrgSkuPriceCol: 8, - // OrgSkuNameCol: 6, - SkuRow: 2, + SkuIDCol: 0, + SkuPriceCol: 14, + SkuNameCol: 1, + OrgSkuIdCol: 5, + OrgSkuPriceCol: 8, + OrgSkuNameCol: 6, + SkuRow: 2, }, "肉禽": &SheetParam{ - SkuIDCol: 0, - SkuPriceCol: 5, - SkuNameCol: 1, - // OrgSkuIdCol: 4, - // OrgSkuPriceCol: 7, - // OrgSkuNameCol: 5, - SkuRow: 1, + SkuIDCol: 0, + SkuPriceCol: 12, + SkuNameCol: 1, + OrgSkuIdCol: 4, + OrgSkuPriceCol: 7, + OrgSkuNameCol: 5, + SkuRow: 1, }, "净配": &SheetParam{ - SkuIDCol: 0, - SkuPriceCol: 9, - SkuNameCol: 1, - // OrgSkuIdCol: 4, - // OrgSkuPriceCol: 7, - // OrgSkuNameCol: 5, - SkuRow: 1, + SkuIDCol: 0, + SkuPriceCol: 14, + SkuNameCol: 1, + OrgSkuIdCol: 4, + OrgSkuPriceCol: 7, + OrgSkuNameCol: 5, + SkuRow: 1, }, "水产": &SheetParam{ - SkuIDCol: 1, - SkuPriceCol: 11, - SkuNameCol: 2, - // OrgSkuIdCol: 6, - // OrgSkuPriceCol: 9, - // OrgSkuNameCol: 7, - SkuRow: 1, + SkuIDCol: 1, + SkuPriceCol: 15, + SkuNameCol: 2, + OrgSkuIdCol: 6, + OrgSkuPriceCol: 9, + OrgSkuNameCol: 7, + SkuRow: 1, }, "干货": &SheetParam{ - SkuIDCol: 0, - SkuPriceCol: 9, - SkuNameCol: 1, - // OrgSkuIdCol: 4, - // OrgSkuPriceCol: 7, - // OrgSkuNameCol: 5, - SkuRow: 2, + SkuIDCol: 0, + SkuPriceCol: 13, + SkuNameCol: 1, + OrgSkuIdCol: 4, + OrgSkuPriceCol: 7, + OrgSkuNameCol: 5, + SkuRow: 2, }, "MINI肉禽价格": &SheetParam{ SkuIDCol: 1, SkuPriceCol: 5, @@ -557,18 +556,18 @@ func GetWeiMobGoodsList(param *weimobapi.QueryGoodsListParam) (goodsList []*weim func GetCellIntoMap(sheetParam *SheetParam, skuMap map[string]*ExcelParam, row []string, sheetName string, rowNum int) (errMsg string) { var ( - skuID string - // orgSkuID string - skuPrice float64 - // orgSkuPrice float64 - skuName string - // orgSkuName string - skuIDCol = sheetParam.SkuIDCol - skuPriceCol = sheetParam.SkuPriceCol - skuNameCol = sheetParam.SkuNameCol - // orgSkuIDCol = sheetParam.OrgSkuIdCol - // orgSkuPriceCol = sheetParam.OrgSkuPriceCol - // orgSkuNameCol = sheetParam.OrgSkuNameCol + skuID string + orgSkuID string + skuPrice float64 + orgSkuPrice float64 + skuName string + orgSkuName string + skuIDCol = sheetParam.SkuIDCol + skuPriceCol = sheetParam.SkuPriceCol + skuNameCol = sheetParam.SkuNameCol + orgSkuIDCol = sheetParam.OrgSkuIdCol + orgSkuPriceCol = sheetParam.OrgSkuPriceCol + orgSkuNameCol = sheetParam.OrgSkuNameCol ) for k, cell := range row { if cell != "" { @@ -577,30 +576,29 @@ func GetCellIntoMap(sheetParam *SheetParam, skuMap map[string]*ExcelParam, row [ } if k == skuPriceCol && skuPriceCol >= 0 { if rowNum == sheetParam.SkuRow-1 { - if !strings.Contains(cell, "今日供价") { - // && !strings.Contains(cell, "单价") { + if !strings.Contains(cell, "今日供价") && !strings.Contains(cell, "单价") { errMsg += fmt.Sprintf("sheet页:[%v],Excel排版发生变化!第[%v]列今日供价附近可能增加或减少了一列,请确认!", sheetName, k+1) } } skuPrice = Float64Round(utils.Str2Float64WithDefault(cell, 0)) } - // if k == orgSkuIDCol && orgSkuIDCol >= 0 { - // orgSkuID = "0" + cell - // } - // if k == orgSkuPriceCol && orgSkuPriceCol >= 0 { - // if rowNum == sheetParam.SkuRow-1 { - // if !strings.Contains(cell, "进价") { - // errMsg += fmt.Sprintf("sheet页:[%v],Excel排版发生变化!第[%v]列进价附近可能增加或减少了一列,请确认!", sheetName, k+1) - // } - // } - // orgSkuPrice = Float64Round(utils.Str2Float64WithDefault(cell, 0)) - // } + if k == orgSkuIDCol && orgSkuIDCol >= 0 { + orgSkuID = "0" + cell + } + if k == orgSkuPriceCol && orgSkuPriceCol >= 0 { + if rowNum == sheetParam.SkuRow-1 { + if !strings.Contains(cell, "进价") { + errMsg += fmt.Sprintf("sheet页:[%v],Excel排版发生变化!第[%v]列进价附近可能增加或减少了一列,请确认!", sheetName, k+1) + } + } + orgSkuPrice = Float64Round(utils.Str2Float64WithDefault(cell, 0)) + } if k == skuNameCol && skuNameCol >= 0 { skuName = cell } - // if k == orgSkuNameCol && orgSkuNameCol >= 0 { - // orgSkuName = cell - // } + if k == orgSkuNameCol && orgSkuNameCol >= 0 { + orgSkuName = cell + } } } if rowNum >= sheetParam.SkuRow { @@ -621,20 +619,20 @@ func GetCellIntoMap(sheetParam *SheetParam, skuMap map[string]*ExcelParam, row [ } else if skuPrice != 0 { BuildSkuMap(skuID, skuName, skuPrice, skuMap) } - // if skuMap[orgSkuID] != nil { - // if skuMap[orgSkuID].Price != 0 && skuMap[orgSkuID].Price != orgSkuPrice && orgSkuPrice != 0 { - // if orgSkuPrice > skuMap[orgSkuID].Price { - // BuildSkuMap(orgSkuID, orgSkuName, orgSkuPrice, skuMap) - // } - // } else if orgSkuPriceCol >= 0 && orgSkuIDCol >= 0 && orgSkuNameCol >= 0 { - // BuildSkuMap(orgSkuID, orgSkuName, orgSkuPrice, skuMap) - // } - // } else if orgSkuPrice != 0 { - // BuildSkuMap(orgSkuID, orgSkuName, orgSkuPrice, skuMap) - // } + if skuMap[orgSkuID] != nil { + if skuMap[orgSkuID].Price != 0 && skuMap[orgSkuID].Price != orgSkuPrice && orgSkuPrice != 0 { + if orgSkuPrice > skuMap[orgSkuID].Price { + BuildSkuMap(orgSkuID, orgSkuName, orgSkuPrice, skuMap) + } + } else if orgSkuPriceCol >= 0 && orgSkuIDCol >= 0 && orgSkuNameCol >= 0 { + BuildSkuMap(orgSkuID, orgSkuName, orgSkuPrice, skuMap) + } + } else if orgSkuPrice != 0 { + BuildSkuMap(orgSkuID, orgSkuName, orgSkuPrice, skuMap) + } } else { BuildSkuMap(skuID, skuName, skuPrice, skuMap) - // BuildSkuMap(orgSkuID, orgSkuName, orgSkuPrice, skuMap) + BuildSkuMap(orgSkuID, orgSkuName, orgSkuPrice, skuMap) } delete(skuMap, "") } else { From d50d796d313b64712988eed3967ee51027c35ea6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Wed, 26 Feb 2020 15:35:25 +0800 Subject: [PATCH 043/286] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=94=AF=E4=BB=98?= =?UTF-8?q?=E5=B9=B3=E5=8F=B0=E9=80=9A=E8=81=94=E5=AE=9D=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/user2.go | 2 +- business/model/order.go | 3 +- business/partner/purchase/jx/localjx/order.go | 5 ++ .../purchase/jx/localjx/tonglianpay.go | 57 +++++++++++++++++++ conf/app.conf | 9 +++ controllers/tonglian_callback.go | 41 +++++++++++++ globals/api/api.go | 9 ++- globals/globals.go | 2 + routers/router.go | 1 + 9 files changed, 126 insertions(+), 3 deletions(-) create mode 100644 business/partner/purchase/jx/localjx/tonglianpay.go create mode 100644 controllers/tonglian_callback.go diff --git a/business/jxstore/cms/user2.go b/business/jxstore/cms/user2.go index a3d5bc7e6..19f029bac 100644 --- a/business/jxstore/cms/user2.go +++ b/business/jxstore/cms/user2.go @@ -378,7 +378,7 @@ func CreateUser(user *model.User, creatorName string) (err error) { dao.WrapAddIDCULDEntity(user, creatorName) user.UserID = utils.GetUUID() user.Status = model.UserStatusNormal - user.DividePercentage = 5 + user.DividePercentage = 1 return dao.CreateEntity(nil, user) } diff --git a/business/model/order.go b/business/model/order.go index 71c300506..bf5d6153b 100644 --- a/business/model/order.go +++ b/business/model/order.go @@ -10,6 +10,7 @@ const ( const ( PayTypeWX = 1 // 微信支付 + PayTypeTL = 2 // 通联宝支付 PayStatusNo = 0 PayStatusYes = 1 @@ -317,7 +318,7 @@ type OrderPay struct { PrepayID string `orm:"column(prepay_id);index;size(48)" json:"prepayID"` // 下单后,支付前,支付方生成的事务ID TransactionID string `orm:"column(transaction_id);index;size(48)" json:"transactionID"` // 支付成功后,支付方生成的事务ID - CodeURL string `orm:"column(code_url);size(256)" json:"codeURL"` + CodeURL string `orm:"column(code_url);size(3200)" json:"codeURL"` OriginalData string `orm:"type(text)" json:"-"` } diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index eac2c1356..3828ef8ef 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -203,6 +203,11 @@ func Pay4Order(ctx *jxcontext.Context, orderID int64, payType int, vendorPayType dao.WrapAddIDCULDEntity(orderPay, ctx.GetUserName()) err = dao.CreateEntity(dao.GetDB(), orderPay) } + case model.PayTypeTL: + if orderPay, err = pay4OrderByTL(ctx, order, vendorPayType); err == nil { + dao.WrapAddIDCULDEntity(orderPay, ctx.GetUserName()) + err = dao.CreateEntity(dao.GetDB(), orderPay) + } default: err = fmt.Errorf("支付方式:%d当前不支持", payType) } diff --git a/business/partner/purchase/jx/localjx/tonglianpay.go b/business/partner/purchase/jx/localjx/tonglianpay.go new file mode 100644 index 000000000..6a76dcf0c --- /dev/null +++ b/business/partner/purchase/jx/localjx/tonglianpay.go @@ -0,0 +1,57 @@ +package localjx + +import ( + "time" + + "git.rosy.net.cn/jx-callback/globals" + + "git.rosy.net.cn/baseapi/platformapi/tonglianpayapi" + "git.rosy.net.cn/baseapi/utils" + + "git.rosy.net.cn/jx-callback/business/auth2/authprovider/weixin" + "git.rosy.net.cn/jx-callback/business/jxutils/jxcontext" + "git.rosy.net.cn/jx-callback/business/model" + "git.rosy.net.cn/jx-callback/globals/api" +) + +func pay4OrderByTL(ctx *jxcontext.Context, order *model.GoodsOrder, vendorPayType string) (orderPay *model.OrderPay, err error) { + payCreatedAt := time.Now() + // param := &wxpayapi.CreateOrderParam{ + // OutTradeNo: utils.Int64ToStr(GenPayOrderID(order)), + // Body: getOrderBrief(order), + // NotifyURL: globals.TLPayNotifyURL, + // SpbillCreateIP: ctx.GetRealRemoteIP(), + // TradeType: vendorPayType2WxpayType(vendorPayType), + // TotalFee: int(order.ActualPayPrice), + + // TimeStart: wxpayapi.Time2PayTime(payCreatedAt), + // // TimeExpire: wxpayapi.Time2PayTime(payCreatedAt.Add(PayWaitingTime)), + // ProfitSharing: wxpayapi.OptYes, + // } + param := &tonglianpayapi.CreateUnitorderOrderParam{ + Trxamt: int(order.ActualPayPrice), + NotifyUrl: globals.TLPayNotifyURL, + Reqsn: order.VendorOrderID, + } + + if authInfo, err := ctx.GetV2AuthInfo(); err == nil && authInfo.GetAuthType() == weixin.AuthTypeMini { + param.Acct = authInfo.GetAuthID() + } + result, err := api.TLpayAPI.CreateUnitorderOrder(param) + if err == nil { + orderPay = &model.OrderPay{ + PayOrderID: param.Reqsn, + PayType: model.PayTypeTL, + VendorPayType: vendorPayType, + + VendorOrderID: order.VendorOrderID, + VendorID: order.VendorID, + Status: 0, + PayCreatedAt: payCreatedAt, + PrepayID: result.TrxID, + CodeURL: utils.LimitUTF8StringLen(result.PayInfo, 3200), + TotalFee: int(order.ActualPayPrice), + } + } + return orderPay, err +} diff --git a/conf/app.conf b/conf/app.conf index 554a79ec2..e01194124 100644 --- a/conf/app.conf +++ b/conf/app.conf @@ -56,6 +56,11 @@ wxpayAppKey = "XKJPOIHJ233adf01KJIXlIeQDSDKFJAD" wxpayAppMchID = "1390686702" wxpayNotifyURL = "http://callback.test.jxc4.com/wxpay/msg/" +tonglianPayAppID = "00183083" +tonglianPayKey = "18048531223" +tonglianPayCusID = "56065105499TVAH" +tonglianPayNotifyURL = "http://callback.test.jxc4.com/tlpay/msg/" + backstageHost = "http://www.jxc4.com" wxBackstageHost = "http://wx.jxc4.com" @@ -187,6 +192,10 @@ weixinMiniSecret2 = "2a57228a716ce991a52739f0ff41111d" wxpayNotifyURL = "http://callback.jxc4.com/wxpay/msg/" +tonglianPayAppID = "00183083" +tonglianPayCusID = "56065105499TVAH" +tonglianPayNotifyURL = "http://callback.jxc4.com/tlpay/msg/" + dbConnectStr = "root:WebServer@1@tcp(db1.int.jxc4.com:3306)/jxd_dev_0?charset=utf8mb4&loc=Local&parseTime=true" enableStoreWrite = true diff --git a/controllers/tonglian_callback.go b/controllers/tonglian_callback.go new file mode 100644 index 000000000..3461f7532 --- /dev/null +++ b/controllers/tonglian_callback.go @@ -0,0 +1,41 @@ +package controllers + +import ( + "fmt" + "net/http" + + "git.rosy.net.cn/baseapi/platformapi/wxpayapi" + "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" +) + +type TongLianController struct { + beego.Controller +} + +func (c *TongLianController) Msg() { + if c.Ctx.Input.Method() == http.MethodPost { + msg, callbackResponse := api.WxpayAPI.GetCallbackMsg(c.Ctx.Request) + globals.SugarLogger.Debugf("tonglianapi callback msg:%s, callbackResponse:%s, %t", utils.Format4Output(msg, true), utils.Format4Output(callbackResponse, true), callbackResponse == nil) + var err error + if callbackResponse == nil { + if msg.MsgType == wxpayapi.MsgTypeUnkown { + err = fmt.Errorf("未知的通联宝支付回调类型:%d", msg.MsgType) + } else { + err = localjx.OnWxPayCallback(msg) + } + } + if callbackResponse == nil { + callbackResponse = wxpayapi.SuccessResponse + } else if err != nil { + callbackResponse = wxpayapi.Err2CallbackResponse(err, "") + } + c.Data["json"] = callbackResponse + c.ServeJSON() + } else { + c.Abort("404") + } +} diff --git a/globals/api/api.go b/globals/api/api.go index 83cd083c2..4122f0b8d 100644 --- a/globals/api/api.go +++ b/globals/api/api.go @@ -3,6 +3,8 @@ package api import ( "time" + "git.rosy.net.cn/baseapi/platformapi/tonglianpayapi" + aliyunsmsclient "github.com/KenmyZhang/aliyun-communicate" "git.rosy.net.cn/baseapi/platformapi" @@ -50,7 +52,8 @@ var ( WeixinMiniAPI *weixinapi.API // 小程序 WeixinMiniAPI2 *weixinapi.API // 小程序2 WeixinMiniAppID2 string - WxpayAPI *wxpayapi.API // 微信支付API + WxpayAPI *wxpayapi.API // 微信支付API + TLpayAPI *tonglianpayapi.API //通联收银宝api WeixinPageAPI *weixinapi.API // 用户微信扫码登录 @@ -181,6 +184,10 @@ func Init() { WxpayAPI = wxpayapi.NewWithCertificate(beego.AppConfig.String("wxpayAppID"), beego.AppConfig.String("wxpayAppKey"), beego.AppConfig.String("wxpayAppMchID"), "conf/apiclient_cert.pem", "conf/apiclient_key.pem") } + + if globals.TLPayNotifyURL != "" { + TLpayAPI = tonglianpayapi.New(beego.AppConfig.String("tonglianPayAppID"), beego.AppConfig.String("tonglianPayKey"), beego.AppConfig.String("tonglianPayCusID"), beego.AppConfig.String("wxpayAppID")) + } AutonaviAPI = autonavi.New(beego.AppConfig.String("autonaviKey")) BaiDuNaviAPI = baidunavi.New(beego.AppConfig.String("baidunaviAK"), beego.AppConfig.String("baidunaviSK")) QiniuAPI = qbox.NewMac(beego.AppConfig.String("qiniuAK"), beego.AppConfig.String("qiniuSK")) diff --git a/globals/globals.go b/globals/globals.go index 4a8ab712c..e12384f76 100644 --- a/globals/globals.go +++ b/globals/globals.go @@ -51,6 +51,7 @@ var ( DisableWXAuth1 bool WxpayNotifyURL string + TLPayNotifyURL string JdOrgCode string Jd2OrgCode string @@ -118,6 +119,7 @@ func Init() { DisableWXAuth1 = true WxpayNotifyURL = beego.AppConfig.DefaultString("wxpayNotifyURL", "") + TLPayNotifyURL = beego.AppConfig.DefaultString("tonglianPayNotifyURL", "") JdOrgCode = beego.AppConfig.DefaultString("jdOrgCode", "") Jd2OrgCode = beego.AppConfig.DefaultString("jd2OrgCode", "") diff --git a/routers/router.go b/routers/router.go index e12b6a539..20a064c30 100644 --- a/routers/router.go +++ b/routers/router.go @@ -155,6 +155,7 @@ func init() { beego.AutoRouter(&controllers.DingDingController{}) beego.AutoRouter(&controllers.WXPayController{}) beego.AutoRouter(&controllers.Djsw2Controller{}) + beego.AutoRouter(&controllers.TongLianController{}) // 如下都是用于检测存活的空接口 beego.Any("/", func(ctx *beecontext.Context) { From 92a244c3aabd924c0dcc635293705d7b1d92c40a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Wed, 26 Feb 2020 15:56:39 +0800 Subject: [PATCH 044/286] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=94=AF=E4=BB=98?= =?UTF-8?q?=E5=B9=B3=E5=8F=B0=E9=80=9A=E8=81=94=E5=AE=9D=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../partner/purchase/jx/localjx/tonglianpay.go | 17 ++++++++++++++++- controllers/tonglian_callback.go | 2 +- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/business/partner/purchase/jx/localjx/tonglianpay.go b/business/partner/purchase/jx/localjx/tonglianpay.go index 6a76dcf0c..0b416f733 100644 --- a/business/partner/purchase/jx/localjx/tonglianpay.go +++ b/business/partner/purchase/jx/localjx/tonglianpay.go @@ -1,11 +1,13 @@ package localjx import ( + "encoding/json" "time" "git.rosy.net.cn/jx-callback/globals" "git.rosy.net.cn/baseapi/platformapi/tonglianpayapi" + "git.rosy.net.cn/baseapi/platformapi/wxpayapi" "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-callback/business/auth2/authprovider/weixin" @@ -39,6 +41,8 @@ func pay4OrderByTL(ctx *jxcontext.Context, order *model.GoodsOrder, vendorPayTyp } result, err := api.TLpayAPI.CreateUnitorderOrder(param) if err == nil { + result2 := &wxpayapi.CreateOrderResult{} + json.Unmarshal([]byte(result.PayInfo), &result2) orderPay = &model.OrderPay{ PayOrderID: param.Reqsn, PayType: model.PayTypeTL, @@ -48,10 +52,21 @@ func pay4OrderByTL(ctx *jxcontext.Context, order *model.GoodsOrder, vendorPayTyp VendorID: order.VendorID, Status: 0, PayCreatedAt: payCreatedAt, - PrepayID: result.TrxID, + PrepayID: result2.PrepayID, CodeURL: utils.LimitUTF8StringLen(result.PayInfo, 3200), TotalFee: int(order.ActualPayPrice), } } return orderPay, err } + +func OnTLPayCallback(msg *wxpayapi.CallbackMsg) (err error) { + globals.SugarLogger.Debugf("OnTLPayCallback msg:%s", utils.Format4Output(msg, true)) + switch msg.MsgType { + case wxpayapi.MsgTypePay: + err = onWxpayFinished(msg.Data.(*wxpayapi.PayResultMsg)) + case wxpayapi.MsgTypeRefund: + err = onWxpayRefund(msg.Data.(*wxpayapi.RefundResultMsg)) + } + return err +} diff --git a/controllers/tonglian_callback.go b/controllers/tonglian_callback.go index 3461f7532..f35d23740 100644 --- a/controllers/tonglian_callback.go +++ b/controllers/tonglian_callback.go @@ -25,7 +25,7 @@ func (c *TongLianController) Msg() { if msg.MsgType == wxpayapi.MsgTypeUnkown { err = fmt.Errorf("未知的通联宝支付回调类型:%d", msg.MsgType) } else { - err = localjx.OnWxPayCallback(msg) + err = localjx.OnTLPayCallback(msg) } } if callbackResponse == nil { From 91fa24df7c44c27a3d66f30ba89f87d629304ad9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Thu, 27 Feb 2020 08:58:58 +0800 Subject: [PATCH 045/286] =?UTF-8?q?=E9=80=9A=E8=81=94=E5=AE=9D=E6=94=AF?= =?UTF-8?q?=E4=BB=98=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/tonglianpay.go | 13 +++++++++++++ conf/app.conf | 4 ++-- conf/rsa_key.pem | 4 ++++ controllers/tonglian_callback.go | 2 +- 4 files changed, 20 insertions(+), 3 deletions(-) create mode 100644 conf/rsa_key.pem diff --git a/business/partner/purchase/jx/localjx/tonglianpay.go b/business/partner/purchase/jx/localjx/tonglianpay.go index 0b416f733..6227dd50a 100644 --- a/business/partner/purchase/jx/localjx/tonglianpay.go +++ b/business/partner/purchase/jx/localjx/tonglianpay.go @@ -1,7 +1,12 @@ package localjx import ( + "crypto/md5" + "crypto/rand" + "crypto/rsa" + "crypto/x509" "encoding/json" + "io/ioutil" "time" "git.rosy.net.cn/jx-callback/globals" @@ -40,6 +45,14 @@ func pay4OrderByTL(ctx *jxcontext.Context, order *model.GoodsOrder, vendorPayTyp param.Acct = authInfo.GetAuthID() } result, err := api.TLpayAPI.CreateUnitorderOrder(param) + result2 := &tonglianpayapi.PayInfo{} + json.Unmarshal([]byte(result.PayInfo), &result2) + file, err := ioutil.ReadFile("conf/rsa_key.pem") + prk, err := x509.ParsePKCS1PrivateKey(file) + paySign, err := rsa.DecryptOAEP(md5.New(), rand.Reader, prk, []byte(result2.PaySign), nil) + result2.PaySign = string(paySign) + str, err := json.Marshal(result2) + result.PayInfo = string(str) if err == nil { result2 := &wxpayapi.CreateOrderResult{} json.Unmarshal([]byte(result.PayInfo), &result2) diff --git a/conf/app.conf b/conf/app.conf index e01194124..96ffb269f 100644 --- a/conf/app.conf +++ b/conf/app.conf @@ -59,7 +59,7 @@ wxpayNotifyURL = "http://callback.test.jxc4.com/wxpay/msg/" tonglianPayAppID = "00183083" tonglianPayKey = "18048531223" tonglianPayCusID = "56065105499TVAH" -tonglianPayNotifyURL = "http://callback.test.jxc4.com/tlpay/msg/" +tonglianPayNotifyURL = "http://callback.test.jxc4.com/tonglian/msg/" backstageHost = "http://www.jxc4.com" wxBackstageHost = "http://wx.jxc4.com" @@ -194,7 +194,7 @@ wxpayNotifyURL = "http://callback.jxc4.com/wxpay/msg/" tonglianPayAppID = "00183083" tonglianPayCusID = "56065105499TVAH" -tonglianPayNotifyURL = "http://callback.jxc4.com/tlpay/msg/" +tonglianPayNotifyURL = "http://callback.jxc4.com/tonglian/msg/" dbConnectStr = "root:WebServer@1@tcp(db1.int.jxc4.com:3306)/jxd_dev_0?charset=utf8mb4&loc=Local&parseTime=true" diff --git a/conf/rsa_key.pem b/conf/rsa_key.pem new file mode 100644 index 000000000..11d8f776a --- /dev/null +++ b/conf/rsa_key.pem @@ -0,0 +1,4 @@ +-----BEGIN PRIVATE KEY----- +MIICeAIBADANBgkqhkiG9w0BAQEFAASCAmIwggJeAgEAAoGBAKIw2F9MViiwGt3Sc8V2BCLeyW486K9klCRgprq57amgrbRy/dIcR2i7MCy01oNkf4S3XMKOlDK3cH5cXm4cV3Sa3WOkgumjczcd/sXOFRuvItJc39OCn1+WxUlIDu6nfmSpvOFqgQVbCD2Axo6Eq6t8wrhw6qx8m73KlkulCOx3AgMBAAECgYAxfQ/4fBVqEtoPxzBWFv2KGkqCHYmuQtVFCEy3exX+hS2bet7h5okPdtZrPb6alual+0ENiG3Fz90+YTbbCEDSsgrNxrh/5ZaJaPgosKlgPiJ418BVZW8YXdGEMaJDXr3xRsQH3VHmwGXLJ9WyFzzMof1WsRk8k9HY87Uy+ZMKmQJBANb8cpAhJ8oq6dPK8d5n+K+L1Ld/bmMIxtq+hTrz4/ZOJJOuvBFsR+JWiEe3+kO2bgE7galanFg42JeCRFD9eMMCQQDBIfcJ4Xlc+GEqLXT2Cbv2Rg6uuD1qMQqiX3UWR1ypq3SuIBYLkYG4mCk2iXCqTm7MWNl5OozlaIFmxTyjbeI9AkEAs3uLQZ0MlRICqRkTmLSAwD4jVxcCV5fqPJE2taMMPIO8sbb9uCYIVYQcvpNwUrupV0oQ1Ayb3mOHH+ZXlq4m9QJBAL2j/E9XdzQzMDWaLR7qsAZDBGfLwYJkZWzLDs2xhOuV0ByqpPr3Bcmcn9tNWbPhECrXk7PWKkOZOncPdVuEqoECQQCo/VmPU3rPqK4l1Gwi2vlf6CE09GZJGrKk94rPfechqkzhmziX8RLF1XpxZOWWgCM9ld2g2YwtBcgVmVc0M8bM + +-----END PRIVATE KEY----- diff --git a/controllers/tonglian_callback.go b/controllers/tonglian_callback.go index f35d23740..7f536e75e 100644 --- a/controllers/tonglian_callback.go +++ b/controllers/tonglian_callback.go @@ -18,7 +18,7 @@ type TongLianController struct { func (c *TongLianController) Msg() { if c.Ctx.Input.Method() == http.MethodPost { - msg, callbackResponse := api.WxpayAPI.GetCallbackMsg(c.Ctx.Request) + msg, callbackResponse := api.TLpayAPI.GetCallbackMsg(c.Ctx.Request) globals.SugarLogger.Debugf("tonglianapi callback msg:%s, callbackResponse:%s, %t", utils.Format4Output(msg, true), utils.Format4Output(callbackResponse, true), callbackResponse == nil) var err error if callbackResponse == nil { From a096ab17f9af6b06b549322463ba53d0e0c13f04 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Thu, 27 Feb 2020 09:01:57 +0800 Subject: [PATCH 046/286] =?UTF-8?q?=E6=9A=82=E6=97=B6=E5=B1=8F=E8=94=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- controllers/tonglian_callback.go | 40 ++++++++++++++------------------ 1 file changed, 17 insertions(+), 23 deletions(-) diff --git a/controllers/tonglian_callback.go b/controllers/tonglian_callback.go index 7f536e75e..82ea6519b 100644 --- a/controllers/tonglian_callback.go +++ b/controllers/tonglian_callback.go @@ -1,14 +1,8 @@ package controllers import ( - "fmt" "net/http" - "git.rosy.net.cn/baseapi/platformapi/wxpayapi" - "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" ) @@ -18,23 +12,23 @@ type TongLianController struct { func (c *TongLianController) Msg() { if c.Ctx.Input.Method() == http.MethodPost { - msg, callbackResponse := api.TLpayAPI.GetCallbackMsg(c.Ctx.Request) - globals.SugarLogger.Debugf("tonglianapi callback msg:%s, callbackResponse:%s, %t", utils.Format4Output(msg, true), utils.Format4Output(callbackResponse, true), callbackResponse == nil) - var err error - if callbackResponse == nil { - if msg.MsgType == wxpayapi.MsgTypeUnkown { - err = fmt.Errorf("未知的通联宝支付回调类型:%d", msg.MsgType) - } else { - err = localjx.OnTLPayCallback(msg) - } - } - if callbackResponse == nil { - callbackResponse = wxpayapi.SuccessResponse - } else if err != nil { - callbackResponse = wxpayapi.Err2CallbackResponse(err, "") - } - c.Data["json"] = callbackResponse - c.ServeJSON() + // msg, callbackResponse := api.TLpayAPI.GetCallbackMsg(c.Ctx.Request) + // globals.SugarLogger.Debugf("tonglianapi callback msg:%s, callbackResponse:%s, %t", utils.Format4Output(msg, true), utils.Format4Output(callbackResponse, true), callbackResponse == nil) + // var err error + // if callbackResponse == nil { + // if msg.MsgType == wxpayapi.MsgTypeUnkown { + // err = fmt.Errorf("未知的通联宝支付回调类型:%d", msg.MsgType) + // } else { + // err = localjx.OnTLPayCallback(msg) + // } + // } + // if callbackResponse == nil { + // callbackResponse = wxpayapi.SuccessResponse + // } else if err != nil { + // callbackResponse = wxpayapi.Err2CallbackResponse(err, "") + // } + // c.Data["json"] = callbackResponse + // c.ServeJSON() } else { c.Abort("404") } From fbbfbce622216c283551ec68e51852584392a0de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Thu, 27 Feb 2020 09:20:52 +0800 Subject: [PATCH 047/286] =?UTF-8?q?=E6=9A=82=E6=97=B6=E5=B1=8F=E8=94=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/tonglianpay.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/partner/purchase/jx/localjx/tonglianpay.go b/business/partner/purchase/jx/localjx/tonglianpay.go index 6227dd50a..51a86763d 100644 --- a/business/partner/purchase/jx/localjx/tonglianpay.go +++ b/business/partner/purchase/jx/localjx/tonglianpay.go @@ -48,7 +48,7 @@ func pay4OrderByTL(ctx *jxcontext.Context, order *model.GoodsOrder, vendorPayTyp result2 := &tonglianpayapi.PayInfo{} json.Unmarshal([]byte(result.PayInfo), &result2) file, err := ioutil.ReadFile("conf/rsa_key.pem") - prk, err := x509.ParsePKCS1PrivateKey(file) + prk, err := x509.ParsePKCS8PrivateKey(file) paySign, err := rsa.DecryptOAEP(md5.New(), rand.Reader, prk, []byte(result2.PaySign), nil) result2.PaySign = string(paySign) str, err := json.Marshal(result2) From 71bccc687be063af6737147a5c1ed859746e4c8c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Thu, 27 Feb 2020 09:23:22 +0800 Subject: [PATCH 048/286] =?UTF-8?q?=E9=80=9A=E8=81=94=E5=AE=9D=E6=94=AF?= =?UTF-8?q?=E4=BB=98=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/tonglianpay.go | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/business/partner/purchase/jx/localjx/tonglianpay.go b/business/partner/purchase/jx/localjx/tonglianpay.go index 51a86763d..af97a053e 100644 --- a/business/partner/purchase/jx/localjx/tonglianpay.go +++ b/business/partner/purchase/jx/localjx/tonglianpay.go @@ -48,8 +48,17 @@ func pay4OrderByTL(ctx *jxcontext.Context, order *model.GoodsOrder, vendorPayTyp result2 := &tonglianpayapi.PayInfo{} json.Unmarshal([]byte(result.PayInfo), &result2) file, err := ioutil.ReadFile("conf/rsa_key.pem") - prk, err := x509.ParsePKCS8PrivateKey(file) + if err != nil { + return nil, err + } + prk, err := x509.ParsePKCS1PrivateKey(file) + if err != nil { + return nil, err + } paySign, err := rsa.DecryptOAEP(md5.New(), rand.Reader, prk, []byte(result2.PaySign), nil) + if err != nil { + return nil, err + } result2.PaySign = string(paySign) str, err := json.Marshal(result2) result.PayInfo = string(str) From c21f84511249d05e78475953a91f9b699c253643 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Thu, 27 Feb 2020 09:31:12 +0800 Subject: [PATCH 049/286] =?UTF-8?q?=E9=80=9A=E8=81=94=E5=AE=9D=E6=94=AF?= =?UTF-8?q?=E4=BB=98=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../purchase/jx/localjx/tonglianpay.go | 54 +++++++++++++------ 1 file changed, 39 insertions(+), 15 deletions(-) diff --git a/business/partner/purchase/jx/localjx/tonglianpay.go b/business/partner/purchase/jx/localjx/tonglianpay.go index af97a053e..4ef385785 100644 --- a/business/partner/purchase/jx/localjx/tonglianpay.go +++ b/business/partner/purchase/jx/localjx/tonglianpay.go @@ -1,12 +1,12 @@ package localjx import ( - "crypto/md5" "crypto/rand" "crypto/rsa" "crypto/x509" "encoding/json" - "io/ioutil" + "encoding/pem" + "os" "time" "git.rosy.net.cn/jx-callback/globals" @@ -47,19 +47,20 @@ func pay4OrderByTL(ctx *jxcontext.Context, order *model.GoodsOrder, vendorPayTyp result, err := api.TLpayAPI.CreateUnitorderOrder(param) result2 := &tonglianpayapi.PayInfo{} json.Unmarshal([]byte(result.PayInfo), &result2) - file, err := ioutil.ReadFile("conf/rsa_key.pem") - if err != nil { - return nil, err - } - prk, err := x509.ParsePKCS1PrivateKey(file) - if err != nil { - return nil, err - } - paySign, err := rsa.DecryptOAEP(md5.New(), rand.Reader, prk, []byte(result2.PaySign), nil) - if err != nil { - return nil, err - } - result2.PaySign = string(paySign) + plainText, err := RSADecrypt([]byte(result2.PaySign)) + // file, err := ioutil.ReadFile("conf/rsa_key.pem") + // if err != nil { + // return nil, err + // } + // prk, err := x509.ParsePKCS1PrivateKey(file) + // if err != nil { + // return nil, err + // } + // paySign, err := rsa.DecryptOAEP(md5.New(), rand.Reader, prk, []byte(result2.PaySign), nil) + // if err != nil { + // return nil, err + // } + result2.PaySign = string(plainText) str, err := json.Marshal(result2) result.PayInfo = string(str) if err == nil { @@ -82,6 +83,29 @@ func pay4OrderByTL(ctx *jxcontext.Context, order *model.GoodsOrder, vendorPayTyp return orderPay, err } +func RSADecrypt(pub []byte) (plainText []byte, err error) { + //打开文件 + file, err := os.Open("conf/rsa_key.pem") + if err != nil { + panic(err) + } + defer file.Close() + //获取文件内容 + info, _ := file.Stat() + buf := make([]byte, info.Size()) + file.Read(buf) + //pem解码 + block, _ := pem.Decode(buf) + //X509解码 + privateKey, err := x509.ParsePKCS1PrivateKey(block.Bytes) + if err != nil { + panic(err) + } + //对密文进行解密 + plainText, err = rsa.DecryptPKCS1v15(rand.Reader, privateKey, pub) + return plainText, err +} + func OnTLPayCallback(msg *wxpayapi.CallbackMsg) (err error) { globals.SugarLogger.Debugf("OnTLPayCallback msg:%s", utils.Format4Output(msg, true)) switch msg.MsgType { From ed245203c91c9d976d8ec687ff2f8b2b2fbfb6a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Thu, 27 Feb 2020 09:38:24 +0800 Subject: [PATCH 050/286] =?UTF-8?q?beta=E5=A2=9E=E5=8A=A0callback=E5=9B=9E?= =?UTF-8?q?=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- conf/app.conf | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/conf/app.conf b/conf/app.conf index 96ffb269f..fce62d3ba 100644 --- a/conf/app.conf +++ b/conf/app.conf @@ -193,6 +193,7 @@ weixinMiniSecret2 = "2a57228a716ce991a52739f0ff41111d" wxpayNotifyURL = "http://callback.jxc4.com/wxpay/msg/" tonglianPayAppID = "00183083" +tonglianPayKey = "18048531223" tonglianPayCusID = "56065105499TVAH" tonglianPayNotifyURL = "http://callback.jxc4.com/tonglian/msg/" @@ -377,6 +378,11 @@ weixinSecret = "6bbbed1443cc062c20a015a64c07a531" weixinMiniAppID2 = "wx4b5930c13f8b1170" weixinMiniSecret2 = "2a57228a716ce991a52739f0ff41111d" +tonglianPayAppID = "00183083" +tonglianPayKey = "18048531223" +tonglianPayCusID = "56065105499TVAH" +tonglianPayNotifyURL = "http://callback.jxc4.com/tonglian/msg/" + disableWeimob = false getWeixinTokenURL = "http://www.jxc4.com/v2/sys/GetWXToken" getWeixin2TokenURL = "http://www.jxc4.com/v2/sys/GetWX2Token" From eb8a8b0381075946d408985c9123b6e00f51ec8e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Thu, 27 Feb 2020 09:56:54 +0800 Subject: [PATCH 051/286] =?UTF-8?q?=E9=80=9A=E8=81=94=E5=AE=9D=E6=94=AF?= =?UTF-8?q?=E4=BB=98=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/tonglianpay.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/business/partner/purchase/jx/localjx/tonglianpay.go b/business/partner/purchase/jx/localjx/tonglianpay.go index 4ef385785..78460c1fd 100644 --- a/business/partner/purchase/jx/localjx/tonglianpay.go +++ b/business/partner/purchase/jx/localjx/tonglianpay.go @@ -97,12 +97,12 @@ func RSADecrypt(pub []byte) (plainText []byte, err error) { //pem解码 block, _ := pem.Decode(buf) //X509解码 - privateKey, err := x509.ParsePKCS1PrivateKey(block.Bytes) + privateKey, err := x509.ParsePKCS8PrivateKey(block.Bytes) if err != nil { panic(err) } //对密文进行解密 - plainText, err = rsa.DecryptPKCS1v15(rand.Reader, privateKey, pub) + plainText, err = rsa.DecryptPKCS1v15(rand.Reader, privateKey.(*rsa.PrivateKey), pub) return plainText, err } From ab0625b21b3843f7174b5f664453ca23601a7a4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Thu, 27 Feb 2020 10:17:44 +0800 Subject: [PATCH 052/286] =?UTF-8?q?=E9=80=9A=E8=81=94=E5=AE=9D=E6=94=AF?= =?UTF-8?q?=E4=BB=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../purchase/jx/localjx/tonglianpay.go | 20 ++++--------------- 1 file changed, 4 insertions(+), 16 deletions(-) diff --git a/business/partner/purchase/jx/localjx/tonglianpay.go b/business/partner/purchase/jx/localjx/tonglianpay.go index 78460c1fd..a9bae3406 100644 --- a/business/partner/purchase/jx/localjx/tonglianpay.go +++ b/business/partner/purchase/jx/localjx/tonglianpay.go @@ -47,22 +47,6 @@ func pay4OrderByTL(ctx *jxcontext.Context, order *model.GoodsOrder, vendorPayTyp result, err := api.TLpayAPI.CreateUnitorderOrder(param) result2 := &tonglianpayapi.PayInfo{} json.Unmarshal([]byte(result.PayInfo), &result2) - plainText, err := RSADecrypt([]byte(result2.PaySign)) - // file, err := ioutil.ReadFile("conf/rsa_key.pem") - // if err != nil { - // return nil, err - // } - // prk, err := x509.ParsePKCS1PrivateKey(file) - // if err != nil { - // return nil, err - // } - // paySign, err := rsa.DecryptOAEP(md5.New(), rand.Reader, prk, []byte(result2.PaySign), nil) - // if err != nil { - // return nil, err - // } - result2.PaySign = string(plainText) - str, err := json.Marshal(result2) - result.PayInfo = string(str) if err == nil { result2 := &wxpayapi.CreateOrderResult{} json.Unmarshal([]byte(result.PayInfo), &result2) @@ -80,6 +64,10 @@ func pay4OrderByTL(ctx *jxcontext.Context, order *model.GoodsOrder, vendorPayTyp TotalFee: int(order.ActualPayPrice), } } + plainText, err := RSADecrypt([]byte(result2.PaySign)) + result2.PaySign = string(plainText) + str, err := json.Marshal(result2) + result.PayInfo = string(str) return orderPay, err } From b187122ba78ab064ffa364ce2b229eac8896b74b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Thu, 27 Feb 2020 10:38:18 +0800 Subject: [PATCH 053/286] =?UTF-8?q?=E9=80=9A=E8=81=94=E5=AE=9D=E6=94=AF?= =?UTF-8?q?=E4=BB=98=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/tonglianpay.go | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/business/partner/purchase/jx/localjx/tonglianpay.go b/business/partner/purchase/jx/localjx/tonglianpay.go index a9bae3406..9a308cf3a 100644 --- a/business/partner/purchase/jx/localjx/tonglianpay.go +++ b/business/partner/purchase/jx/localjx/tonglianpay.go @@ -45,10 +45,8 @@ func pay4OrderByTL(ctx *jxcontext.Context, order *model.GoodsOrder, vendorPayTyp param.Acct = authInfo.GetAuthID() } result, err := api.TLpayAPI.CreateUnitorderOrder(param) - result2 := &tonglianpayapi.PayInfo{} - json.Unmarshal([]byte(result.PayInfo), &result2) if err == nil { - result2 := &wxpayapi.CreateOrderResult{} + result2 := &tonglianpayapi.PayInfo{} json.Unmarshal([]byte(result.PayInfo), &result2) orderPay = &model.OrderPay{ PayOrderID: param.Reqsn, @@ -63,11 +61,11 @@ func pay4OrderByTL(ctx *jxcontext.Context, order *model.GoodsOrder, vendorPayTyp CodeURL: utils.LimitUTF8StringLen(result.PayInfo, 3200), TotalFee: int(order.ActualPayPrice), } + plainText, err := RSADecrypt([]byte(result2.PaySign)) + result2.PaySign = string(plainText) + str, err := json.Marshal(result2) + result.PayInfo = string(str) } - plainText, err := RSADecrypt([]byte(result2.PaySign)) - result2.PaySign = string(plainText) - str, err := json.Marshal(result2) - result.PayInfo = string(str) return orderPay, err } From 36f588178d30c74d80ae818b14991820610a3fd7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Thu, 27 Feb 2020 11:48:34 +0800 Subject: [PATCH 054/286] =?UTF-8?q?=E9=80=9A=E8=81=94=E5=AE=9D=E6=94=AF?= =?UTF-8?q?=E4=BB=98=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../purchase/jx/localjx/tonglianpay.go | 90 ++++++++++++++----- conf/app.conf | 2 +- controllers/tonglian_callback.go | 30 +++---- 3 files changed, 82 insertions(+), 40 deletions(-) diff --git a/business/partner/purchase/jx/localjx/tonglianpay.go b/business/partner/purchase/jx/localjx/tonglianpay.go index 9a308cf3a..462ddf57e 100644 --- a/business/partner/purchase/jx/localjx/tonglianpay.go +++ b/business/partner/purchase/jx/localjx/tonglianpay.go @@ -12,29 +12,17 @@ import ( "git.rosy.net.cn/jx-callback/globals" "git.rosy.net.cn/baseapi/platformapi/tonglianpayapi" - "git.rosy.net.cn/baseapi/platformapi/wxpayapi" "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-callback/business/auth2/authprovider/weixin" "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/api" ) func pay4OrderByTL(ctx *jxcontext.Context, order *model.GoodsOrder, vendorPayType string) (orderPay *model.OrderPay, err error) { payCreatedAt := time.Now() - // param := &wxpayapi.CreateOrderParam{ - // OutTradeNo: utils.Int64ToStr(GenPayOrderID(order)), - // Body: getOrderBrief(order), - // NotifyURL: globals.TLPayNotifyURL, - // SpbillCreateIP: ctx.GetRealRemoteIP(), - // TradeType: vendorPayType2WxpayType(vendorPayType), - // TotalFee: int(order.ActualPayPrice), - - // TimeStart: wxpayapi.Time2PayTime(payCreatedAt), - // // TimeExpire: wxpayapi.Time2PayTime(payCreatedAt.Add(PayWaitingTime)), - // ProfitSharing: wxpayapi.OptYes, - // } param := &tonglianpayapi.CreateUnitorderOrderParam{ Trxamt: int(order.ActualPayPrice), NotifyUrl: globals.TLPayNotifyURL, @@ -61,10 +49,11 @@ func pay4OrderByTL(ctx *jxcontext.Context, order *model.GoodsOrder, vendorPayTyp CodeURL: utils.LimitUTF8StringLen(result.PayInfo, 3200), TotalFee: int(order.ActualPayPrice), } - plainText, err := RSADecrypt([]byte(result2.PaySign)) + plainText, err2 := RSADecrypt([]byte(result2.PaySign)) result2.PaySign = string(plainText) - str, err := json.Marshal(result2) + str, err2 := json.Marshal(result2) result.PayInfo = string(str) + err = err2 } return orderPay, err } @@ -92,13 +81,70 @@ func RSADecrypt(pub []byte) (plainText []byte, err error) { return plainText, err } -func OnTLPayCallback(msg *wxpayapi.CallbackMsg) (err error) { - globals.SugarLogger.Debugf("OnTLPayCallback msg:%s", utils.Format4Output(msg, true)) - switch msg.MsgType { - case wxpayapi.MsgTypePay: - err = onWxpayFinished(msg.Data.(*wxpayapi.PayResultMsg)) - case wxpayapi.MsgTypeRefund: - err = onWxpayRefund(msg.Data.(*wxpayapi.RefundResultMsg)) +func OnTLPayCallback(call *tonglianpayapi.CallBackResult) (err error) { + globals.SugarLogger.Debugf("OnTLPayCallback msg:%s", utils.Format4Output(call, true)) + switch call.TrxCode { + case tonglianpayapi.MsgTypePay: + err = onTLpayFinished(call) + case tonglianpayapi.MsgTypeRefund: + err = onTLpayRefund(call) } return err } + +func onTLpayFinished(call *tonglianpayapi.CallBackResult) (err error) { + orderPay := &model.OrderPay{ + PayOrderID: call.CusorderID, + PayType: model.PayTypeTL, + } + orderPay.DeletedAt = utils.DefaultTimeValue + db := dao.GetDB() + if err = dao.GetEntity(db, orderPay, "PayOrderID", "PayType", "DeletedAt"); err == nil { + orderPay.PayFinishedAt = utils.Time2Pointer(utils.Str2Time(call.PayTime)) + orderPay.TransactionID = call.ChnlTrxID + orderPay.OriginalData = utils.Format4Output(call, true) + if call.TrxStatus == tonglianpayapi.TrxStatusSuccess { + orderPay.Status = model.PayStatusYes + } else { + orderPay.Status = model.PayStatusFailed + } + dao.UpdateEntity(db, orderPay) + if call.TrxStatus == tonglianpayapi.TrxStatusSuccess { + err = OnPayFinished(orderPay) + } + } else { + globals.SugarLogger.Debugf("onTLpayFinished msg:%s, err:%v", utils.Format4Output(call, true), err) + } + return err +} + +func onTLpayRefund(call *tonglianpayapi.CallBackResult) (err error) { + // orderPayRefund := &model.OrderPayRefund{ + // RefundID: call.CusorderID, + // } + // db := dao.GetDB() + // if err = dao.GetEntity(db, orderPayRefund, "RefundID"); err == nil { + // if msg.ResultCode == wxpayapi.ResponseCodeSuccess { + // orderPayRefund.Status = model.RefundStatusYes + // } else { + // orderPayRefund.Status = model.RefundStatusFailed + // } + // 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.PayTypeWX, + // 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 +} diff --git a/conf/app.conf b/conf/app.conf index fce62d3ba..6108f6c7d 100644 --- a/conf/app.conf +++ b/conf/app.conf @@ -59,7 +59,7 @@ wxpayNotifyURL = "http://callback.test.jxc4.com/wxpay/msg/" tonglianPayAppID = "00183083" tonglianPayKey = "18048531223" tonglianPayCusID = "56065105499TVAH" -tonglianPayNotifyURL = "http://callback.test.jxc4.com/tonglian/msg/" +tonglianPayNotifyURL = "http://callback.jxc4.com/tonglian/msg/" backstageHost = "http://www.jxc4.com" wxBackstageHost = "http://wx.jxc4.com" diff --git a/controllers/tonglian_callback.go b/controllers/tonglian_callback.go index 82ea6519b..95ad531ad 100644 --- a/controllers/tonglian_callback.go +++ b/controllers/tonglian_callback.go @@ -3,6 +3,12 @@ package controllers import ( "net/http" + "git.rosy.net.cn/jx-callback/globals/api" + + "git.rosy.net.cn/baseapi/utils" + "git.rosy.net.cn/jx-callback/business/partner/purchase/jx/localjx" + "git.rosy.net.cn/jx-callback/globals" + "github.com/astaxie/beego" ) @@ -12,23 +18,13 @@ type TongLianController struct { func (c *TongLianController) Msg() { if c.Ctx.Input.Method() == http.MethodPost { - // msg, callbackResponse := api.TLpayAPI.GetCallbackMsg(c.Ctx.Request) - // globals.SugarLogger.Debugf("tonglianapi callback msg:%s, callbackResponse:%s, %t", utils.Format4Output(msg, true), utils.Format4Output(callbackResponse, true), callbackResponse == nil) - // var err error - // if callbackResponse == nil { - // if msg.MsgType == wxpayapi.MsgTypeUnkown { - // err = fmt.Errorf("未知的通联宝支付回调类型:%d", msg.MsgType) - // } else { - // err = localjx.OnTLPayCallback(msg) - // } - // } - // if callbackResponse == nil { - // callbackResponse = wxpayapi.SuccessResponse - // } else if err != nil { - // callbackResponse = wxpayapi.Err2CallbackResponse(err, "") - // } - // c.Data["json"] = callbackResponse - // c.ServeJSON() + call, err := api.TLpayAPI.GetCallbackMsg(c.Ctx.Request) + globals.SugarLogger.Debugf("tonglianapi callback callbackResponse:%s", utils.Format4Output(call, true)) + if err == nil { + err = localjx.OnTLPayCallback(call) + } + c.Data["json"] = call + c.ServeJSON() } else { c.Abort("404") } From da1e4a7b09af8bb84cc8915336f7d812cc63e935 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Thu, 27 Feb 2020 12:42:25 +0800 Subject: [PATCH 055/286] =?UTF-8?q?=E9=80=9A=E8=81=94=E5=AE=9D=E6=94=AF?= =?UTF-8?q?=E4=BB=98=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../purchase/jx/localjx/tonglianpay.go | 26 ++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/business/partner/purchase/jx/localjx/tonglianpay.go b/business/partner/purchase/jx/localjx/tonglianpay.go index 462ddf57e..a4e9c81ee 100644 --- a/business/partner/purchase/jx/localjx/tonglianpay.go +++ b/business/partner/purchase/jx/localjx/tonglianpay.go @@ -34,8 +34,9 @@ func pay4OrderByTL(ctx *jxcontext.Context, order *model.GoodsOrder, vendorPayTyp } result, err := api.TLpayAPI.CreateUnitorderOrder(param) if err == nil { - result2 := &tonglianpayapi.PayInfo{} + var result2 tonglianpayapi.PayInfo json.Unmarshal([]byte(result.PayInfo), &result2) + globals.SugarLogger.Debugf("pay4OrderByTL, [%v]", result2) orderPay = &model.OrderPay{ PayOrderID: param.Reqsn, PayType: model.PayTypeTL, @@ -55,6 +56,7 @@ func pay4OrderByTL(ctx *jxcontext.Context, order *model.GoodsOrder, vendorPayTyp result.PayInfo = string(str) err = err2 } + globals.SugarLogger.Debugf("pay4OrderByTL2, [%v]", *result) return orderPay, err } @@ -148,3 +150,25 @@ func onTLpayRefund(call *tonglianpayapi.CallBackResult) (err error) { // } return err } + +func refundOrderByTL(ctx *jxcontext.Context, orderPay *model.OrderPay, refundID string, refundFee int, refundDesc string) (orderPayRefund *model.OrderPayRefund, err error) { + result, err := api.TLpayAPI.PayRefund(&tonglianpayapi.PayRefundParam{ + Trxamt: orderPay.TotalFee, + Reqsn: refundID, + OldReqsn: orderPay.VendorOrderID, + Remark: refundDesc, + }) + if err == nil { + orderPayRefund = &model.OrderPayRefund{ + RefundID: refundID, + VendorRefundID: result.TrxID, + VendorOrderID: orderPay.VendorOrderID, + VendorID: orderPay.VendorID, + Status: model.RefundStatusNo, + TransactionID: orderPay.TransactionID, + RefundFee: orderPay.TotalFee, + RefundCreatedAt: time.Now(), + } + } + return orderPayRefund, err +} From e35841e25f61d6feea67264be5f343ef937afc1a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Thu, 27 Feb 2020 13:37:25 +0800 Subject: [PATCH 056/286] =?UTF-8?q?=E9=80=9A=E8=81=94=E5=AE=9D=E6=94=AF?= =?UTF-8?q?=E4=BB=98=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/order.go | 7 ++- .../purchase/jx/localjx/tonglianpay.go | 53 ++++++++++--------- 2 files changed, 33 insertions(+), 27 deletions(-) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index 3828ef8ef..c5be696fc 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -591,7 +591,12 @@ func CancelOrder(ctx *jxcontext.Context, order *model.GoodsOrder, reason string) if orderPay.Status == model.PayStatusYes { // refundID := utils.Int64ToStr(GenRefundID(order)) refundID := order.VendorOrderID - orderPayRefund, err2 := refundOrderByWX(ctx, orderPay, refundID, orderPay.TotalFee, reason) + var orderPayRefund *model.OrderPayRefund + if orderPay.PayType == model.PayTypeWX { + orderPayRefund, err = refundOrderByWX(ctx, orderPay, refundID, orderPay.TotalFee, reason) + } else if orderPay.PayType == model.PayTypeTL { + orderPayRefund, err = refundOrderByTL(ctx, orderPay, refundID, orderPay.TotalFee, reason) + } if err2 == nil { dao.WrapAddIDCULDEntity(orderPayRefund, ctx.GetUserName()) errList.AddErr(dao.CreateEntity(dao.GetDB(), orderPayRefund)) diff --git a/business/partner/purchase/jx/localjx/tonglianpay.go b/business/partner/purchase/jx/localjx/tonglianpay.go index a4e9c81ee..d74dfdcde 100644 --- a/business/partner/purchase/jx/localjx/tonglianpay.go +++ b/business/partner/purchase/jx/localjx/tonglianpay.go @@ -15,6 +15,7 @@ import ( "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-callback/business/auth2/authprovider/weixin" + "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" @@ -121,33 +122,33 @@ func onTLpayFinished(call *tonglianpayapi.CallBackResult) (err error) { } func onTLpayRefund(call *tonglianpayapi.CallBackResult) (err error) { - // orderPayRefund := &model.OrderPayRefund{ - // RefundID: call.CusorderID, - // } - // db := dao.GetDB() - // if err = dao.GetEntity(db, orderPayRefund, "RefundID"); err == nil { - // if msg.ResultCode == wxpayapi.ResponseCodeSuccess { - // orderPayRefund.Status = model.RefundStatusYes - // } else { - // orderPayRefund.Status = model.RefundStatusFailed - // } - // orderPayRefund.OriginalData = utils.Format4Output(msg, true) - // dao.UpdateEntity(db, orderPayRefund) - // } else if dao.IsNoRowsError(err) { - // globals.SugarLogger.Warnf("收到异常的退款事件, msg:%s", utils.Format4Output(msg, true)) - // } + orderPayRefund := &model.OrderPayRefund{ + RefundID: call.CusorderID, + } + db := dao.GetDB() + if err = dao.GetEntity(db, orderPayRefund, "RefundID"); err == nil { + if call.TrxStatus == tonglianpayapi.TrxStatusSuccess { + orderPayRefund.Status = model.RefundStatusYes + } else { + orderPayRefund.Status = model.RefundStatusFailed + } + orderPayRefund.OriginalData = utils.Format4Output(call, true) + dao.UpdateEntity(db, orderPayRefund) + } else if dao.IsNoRowsError(err) { + globals.SugarLogger.Warnf("收到异常的退款事件, call:%s", utils.Format4Output(call, true)) + } - // orderPay := &model.OrderPay{ - // VendorOrderID: orderPayRefund.VendorOrderID, - // VendorID: jxutils.GetPossibleVendorIDFromVendorOrderID(orderPayRefund.VendorOrderID), - // PayType: model.PayTypeWX, - // 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) - // } + orderPay := &model.OrderPay{ + VendorOrderID: orderPayRefund.VendorOrderID, + VendorID: jxutils.GetPossibleVendorIDFromVendorOrderID(orderPayRefund.VendorOrderID), + PayType: model.PayTypeWX, + 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 } From fdc91c20e445933264b5e192f75811e7026f9842 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Thu, 27 Feb 2020 13:56:29 +0800 Subject: [PATCH 057/286] =?UTF-8?q?=E9=80=9A=E8=81=94=E5=AE=9D=E6=94=AF?= =?UTF-8?q?=E4=BB=98=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/order.go | 49 +++++++++++-------- .../purchase/jx/localjx/tonglianpay.go | 11 +++++ 2 files changed, 40 insertions(+), 20 deletions(-) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index c5be696fc..dd65d6a11 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -594,29 +594,20 @@ func CancelOrder(ctx *jxcontext.Context, order *model.GoodsOrder, reason string) var orderPayRefund *model.OrderPayRefund if orderPay.PayType == model.PayTypeWX { orderPayRefund, err = refundOrderByWX(ctx, orderPay, refundID, orderPay.TotalFee, reason) + if err == nil { + dao.WrapAddIDCULDEntity(orderPayRefund, ctx.GetUserName()) + errList.AddErr(dao.CreateEntity(dao.GetDB(), orderPayRefund)) + MarkArrears(db, order, orderPay) + } else { + errList.AddErr(err) + } } else if orderPay.PayType == model.PayTypeTL { orderPayRefund, err = refundOrderByTL(ctx, orderPay, refundID, orderPay.TotalFee, reason) - } - if err2 == nil { - dao.WrapAddIDCULDEntity(orderPayRefund, ctx.GetUserName()) - errList.AddErr(dao.CreateEntity(dao.GetDB(), orderPayRefund)) - //退款后,若此订单下单用户有推广人,则需要将分给推广人的金额记录到该推广人的欠款中 - orders, _ := dao.QueryOrders(db, order.VendorOrderID, 0, []int{model.VendorIDJX}, 0, utils.DefaultTimeValue, utils.DefaultTimeValue) - if len(orders) > 0 { - user, _ := dao.GetUserByID(db, "user_id", orders[0].UserID) - if user.ParentMobile != "" { - user2, _ := dao.GetUserByID(db, "mobile", user.ParentMobile) - user2.Arrears = user2.Arrears + (orderPay.TotalFee * user2.DividePercentage / 100) - dao.UpdateEntity(db, user2, "Arrears") - if user2.ParentMobile != "" { - user3, _ := dao.GetUserByID(db, "mobile", user2.ParentMobile) - user3.Arrears = user3.Arrears + ((orderPay.TotalFee - user2.Arrears) * user3.DividePercentage / 100) - dao.UpdateEntity(db, user3, "Arrears") - } - } + if err == nil { + MarkArrears(db, order, orderPay) + } else { + errList.AddErr(err) } - } else { - errList.AddErr(err2) } } else { orderPay.Status = model.PayStatusCanceled @@ -639,6 +630,24 @@ func CancelOrder(ctx *jxcontext.Context, order *model.GoodsOrder, reason string) return err } +func MarkArrears(db *dao.DaoDB, order *model.GoodsOrder, orderPay *model.OrderPay) { + //退款后,若此订单下单用户有推广人,则需要将分给推广人的金额记录到该推广人的欠款中 + orders, _ := dao.QueryOrders(db, order.VendorOrderID, 0, []int{model.VendorIDJX}, 0, utils.DefaultTimeValue, utils.DefaultTimeValue) + if len(orders) > 0 { + user, _ := dao.GetUserByID(db, "user_id", orders[0].UserID) + if user.ParentMobile != "" { + user2, _ := dao.GetUserByID(db, "mobile", user.ParentMobile) + user2.Arrears = user2.Arrears + (orderPay.TotalFee * user2.DividePercentage / 100) + dao.UpdateEntity(db, user2, "Arrears") + if user2.ParentMobile != "" { + user3, _ := dao.GetUserByID(db, "mobile", user2.ParentMobile) + user3.Arrears = user3.Arrears + ((orderPay.TotalFee - user2.Arrears) * user3.DividePercentage / 100) + dao.UpdateEntity(db, user3, "Arrears") + } + } + } +} + func AgreeOrRefuseCancel(ctx *jxcontext.Context, order *model.GoodsOrder, isAgree bool, reason string) (err error) { if isAgree { err = CancelOrder(ctx, order, reason) diff --git a/business/partner/purchase/jx/localjx/tonglianpay.go b/business/partner/purchase/jx/localjx/tonglianpay.go index d74dfdcde..d2eaa79be 100644 --- a/business/partner/purchase/jx/localjx/tonglianpay.go +++ b/business/partner/purchase/jx/localjx/tonglianpay.go @@ -171,5 +171,16 @@ func refundOrderByTL(ctx *jxcontext.Context, orderPay *model.OrderPay, refundID RefundCreatedAt: time.Now(), } } + db := dao.GetDB() + if result.TrxStatus == tonglianpayapi.TrxStatusSuccess { + 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 } From cc5e35caa683b6e5fc38b89148a66f7a0e2e75da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Thu, 27 Feb 2020 14:00:33 +0800 Subject: [PATCH 058/286] =?UTF-8?q?=E9=80=9A=E8=81=94=E5=AE=9D=E6=94=AF?= =?UTF-8?q?=E4=BB=98=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../purchase/jx/localjx/tonglianpay.go | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/business/partner/purchase/jx/localjx/tonglianpay.go b/business/partner/purchase/jx/localjx/tonglianpay.go index d2eaa79be..cec4abc83 100644 --- a/business/partner/purchase/jx/localjx/tonglianpay.go +++ b/business/partner/purchase/jx/localjx/tonglianpay.go @@ -170,17 +170,17 @@ func refundOrderByTL(ctx *jxcontext.Context, orderPay *model.OrderPay, refundID RefundFee: orderPay.TotalFee, RefundCreatedAt: time.Now(), } - } - db := dao.GetDB() - if result.TrxStatus == tonglianpayapi.TrxStatusSuccess { - orderPayRefund.Status = model.RefundStatusYes - } else { - orderPayRefund.Status = model.RefundStatusFailed - } - orderPayRefund.OriginalData = utils.Format4Output(result, true) - dao.CreateEntity(db, orderPayRefund) + db := dao.GetDB() + if result.TrxStatus == tonglianpayapi.TrxStatusSuccess { + 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) + orderPay.Status = model.PayStatusRefund + dao.UpdateEntity(db, orderPay) + } return orderPayRefund, err } From a782f2ad4901c4c4a0afe61dc1c6156023e1a0b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Thu, 27 Feb 2020 14:33:36 +0800 Subject: [PATCH 059/286] =?UTF-8?q?=E9=80=9A=E8=81=94=E5=AE=9D=E6=94=AF?= =?UTF-8?q?=E4=BB=98=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../purchase/jx/localjx/tonglianpay.go | 29 ++++++++++--------- conf/rsa_key.pem | 1 - 2 files changed, 16 insertions(+), 14 deletions(-) diff --git a/business/partner/purchase/jx/localjx/tonglianpay.go b/business/partner/purchase/jx/localjx/tonglianpay.go index cec4abc83..f42e762a1 100644 --- a/business/partner/purchase/jx/localjx/tonglianpay.go +++ b/business/partner/purchase/jx/localjx/tonglianpay.go @@ -6,7 +6,8 @@ import ( "crypto/x509" "encoding/json" "encoding/pem" - "os" + "io/ioutil" + "strings" "time" "git.rosy.net.cn/jx-callback/globals" @@ -37,7 +38,7 @@ func pay4OrderByTL(ctx *jxcontext.Context, order *model.GoodsOrder, vendorPayTyp if err == nil { var result2 tonglianpayapi.PayInfo json.Unmarshal([]byte(result.PayInfo), &result2) - globals.SugarLogger.Debugf("pay4OrderByTL, [%v]", result2) + prePayID := result2.Package[strings.LastIndex(result2.Package, "=")+1 : len(result2.Package)] orderPay = &model.OrderPay{ PayOrderID: param.Reqsn, PayType: model.PayTypeTL, @@ -47,31 +48,33 @@ func pay4OrderByTL(ctx *jxcontext.Context, order *model.GoodsOrder, vendorPayTyp VendorID: order.VendorID, Status: 0, PayCreatedAt: payCreatedAt, - PrepayID: result2.PrepayID, + PrepayID: prePayID, CodeURL: utils.LimitUTF8StringLen(result.PayInfo, 3200), TotalFee: int(order.ActualPayPrice), } plainText, err2 := RSADecrypt([]byte(result2.PaySign)) result2.PaySign = string(plainText) + globals.SugarLogger.Debugf("pay4OrderByTL2, [%v]", string(plainText)) str, err2 := json.Marshal(result2) result.PayInfo = string(str) err = err2 } - globals.SugarLogger.Debugf("pay4OrderByTL2, [%v]", *result) return orderPay, err } func RSADecrypt(pub []byte) (plainText []byte, err error) { //打开文件 - file, err := os.Open("conf/rsa_key.pem") - if err != nil { - panic(err) - } - defer file.Close() - //获取文件内容 - info, _ := file.Stat() - buf := make([]byte, info.Size()) - file.Read(buf) + // file, err := os.Open("conf/rsa_key.pem") + // if err != nil { + // panic(err) + // } + // defer file.Close() + // //获取文件内容 + // info, _ := file.Stat() + // buf := make([]byte, info.Size()) + // file.Read(buf) + buf, err := ioutil.ReadFile("conf/rsa_key.pem") + globals.SugarLogger.Debugf("pay4OrderByTL3, [%v]", string(buf)) //pem解码 block, _ := pem.Decode(buf) //X509解码 diff --git a/conf/rsa_key.pem b/conf/rsa_key.pem index 11d8f776a..5c626d949 100644 --- a/conf/rsa_key.pem +++ b/conf/rsa_key.pem @@ -1,4 +1,3 @@ -----BEGIN PRIVATE KEY----- MIICeAIBADANBgkqhkiG9w0BAQEFAASCAmIwggJeAgEAAoGBAKIw2F9MViiwGt3Sc8V2BCLeyW486K9klCRgprq57amgrbRy/dIcR2i7MCy01oNkf4S3XMKOlDK3cH5cXm4cV3Sa3WOkgumjczcd/sXOFRuvItJc39OCn1+WxUlIDu6nfmSpvOFqgQVbCD2Axo6Eq6t8wrhw6qx8m73KlkulCOx3AgMBAAECgYAxfQ/4fBVqEtoPxzBWFv2KGkqCHYmuQtVFCEy3exX+hS2bet7h5okPdtZrPb6alual+0ENiG3Fz90+YTbbCEDSsgrNxrh/5ZaJaPgosKlgPiJ418BVZW8YXdGEMaJDXr3xRsQH3VHmwGXLJ9WyFzzMof1WsRk8k9HY87Uy+ZMKmQJBANb8cpAhJ8oq6dPK8d5n+K+L1Ld/bmMIxtq+hTrz4/ZOJJOuvBFsR+JWiEe3+kO2bgE7galanFg42JeCRFD9eMMCQQDBIfcJ4Xlc+GEqLXT2Cbv2Rg6uuD1qMQqiX3UWR1ypq3SuIBYLkYG4mCk2iXCqTm7MWNl5OozlaIFmxTyjbeI9AkEAs3uLQZ0MlRICqRkTmLSAwD4jVxcCV5fqPJE2taMMPIO8sbb9uCYIVYQcvpNwUrupV0oQ1Ayb3mOHH+ZXlq4m9QJBAL2j/E9XdzQzMDWaLR7qsAZDBGfLwYJkZWzLDs2xhOuV0ByqpPr3Bcmcn9tNWbPhECrXk7PWKkOZOncPdVuEqoECQQCo/VmPU3rPqK4l1Gwi2vlf6CE09GZJGrKk94rPfechqkzhmziX8RLF1XpxZOWWgCM9ld2g2YwtBcgVmVc0M8bM - -----END PRIVATE KEY----- From 5f24d8f8c8e077ba11614dac1a56a98355098c1c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Thu, 27 Feb 2020 17:55:07 +0800 Subject: [PATCH 060/286] =?UTF-8?q?=E5=90=8C=E6=AD=A5=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E5=8F=91=E9=80=81=E6=B6=88=E6=81=AF=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/sync.go | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/business/jxstore/cms/sync.go b/business/jxstore/cms/sync.go index 4d4b3087f..19ec1fa75 100644 --- a/business/jxstore/cms/sync.go +++ b/business/jxstore/cms/sync.go @@ -660,17 +660,20 @@ func buildSetFinishHook(task tasksch.ITask, ctx *jxcontext.Context) { } if authInfo, err := ctx.GetV2AuthInfo(); err == nil { ddmsg.SendUserMessage(dingdingapi.MsgTyeText, authInfo.UserID, "同步错误返回", noticeMsg) - } - } else { - if time.Now().Hour() >= 20 || time.Now().Hour() < 7 { - downloadURL, _, _ := WirteToExcelBySyncFailed(task) - user, err := dao.GetUserByID(dao.GetDB(), "mobile", "18160030913") - noticeMsg += fmt.Sprintf("[详情点我]%s/billshow/?normal=true&path=%s \n", globals.BackstageHost, downloadURL) - if user != nil && err == nil { - ddmsg.SendUserMessage(dingdingapi.MsgTyeText, user.UserID, "同步错误返回", noticeMsg) - } + }else{ + globals.SugarLogger.Debugf("同步错误发送钉钉消息失败, [%v]", err) } } + // else { + // if time.Now().Hour() >= 20 || time.Now().Hour() < 7 { + // downloadURL, _, _ := WirteToExcelBySyncFailed(task) + // user, err := dao.GetUserByID(dao.GetDB(), "mobile", "") + // noticeMsg += fmt.Sprintf("[详情点我]%s/billshow/?normal=true&path=%s \n", globals.BackstageHost, downloadURL) + // if user != nil && err == nil { + // ddmsg.SendUserMessage(dingdingapi.MsgTyeText, user.UserID, "同步错误返回", noticeMsg) + // } + // } + // } }) } From 44e8c4ec83e724d4fce520ead86d6c70c82fec34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Thu, 27 Feb 2020 17:59:39 +0800 Subject: [PATCH 061/286] =?UTF-8?q?=E5=90=8C=E6=AD=A5=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E5=8F=91=E9=80=81=E6=B6=88=E6=81=AF=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/sync.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/business/jxstore/cms/sync.go b/business/jxstore/cms/sync.go index 19ec1fa75..581acf257 100644 --- a/business/jxstore/cms/sync.go +++ b/business/jxstore/cms/sync.go @@ -660,8 +660,8 @@ func buildSetFinishHook(task tasksch.ITask, ctx *jxcontext.Context) { } if authInfo, err := ctx.GetV2AuthInfo(); err == nil { ddmsg.SendUserMessage(dingdingapi.MsgTyeText, authInfo.UserID, "同步错误返回", noticeMsg) - }else{ - globals.SugarLogger.Debugf("同步错误发送钉钉消息失败, [%v]", err) + } else { + globals.SugarLogger.Debugf("同步错误发送钉钉消息失败, authinfo [%v] , [%v]", *authInfo, err) } } // else { From 34240ced490d007ae927f4af3491f5c97373df70 Mon Sep 17 00:00:00 2001 From: suyl <770236076@qq.com> Date: Thu, 27 Feb 2020 21:04:41 +0800 Subject: [PATCH 062/286] =?UTF-8?q?=E4=B8=B4=E6=97=B6=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index aa2f22cf0..01f49a261 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -3627,14 +3627,14 @@ func RefreshJxPriceByVendor(ctx *jxcontext.Context, jdStoreSkus []*JdStoreSkus, for kk, vv := range v { result, err := dao.GetStoreSkuBindByNameID(db, k, kk, model.SkuStatusNormal) if len(result) > 0 && err == nil { - if result[0].UnitPrice > vv { - storeSkuBindInfo := &StoreSkuBindInfo{ - StoreID: k, - NameID: kk, - UnitPrice: vv, - } - param = append(param, storeSkuBindInfo) + // if result[0].UnitPrice > vv { + storeSkuBindInfo := &StoreSkuBindInfo{ + StoreID: k, + NameID: kk, + UnitPrice: vv, } + param = append(param, storeSkuBindInfo) + // } } } } From 76e80f6d077914a2b45aa0b86e5bc7640c82a75c Mon Sep 17 00:00:00 2001 From: suyl <770236076@qq.com> Date: Thu, 27 Feb 2020 21:15:02 +0800 Subject: [PATCH 063/286] =?UTF-8?q?=E4=B8=B4=E6=97=B6=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index 01f49a261..7ccf820d9 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -3672,14 +3672,14 @@ func RefreshJxPriceByVendor(ctx *jxcontext.Context, jdStoreSkus []*JdStoreSkus, for kk, vv := range v { result, err := dao.GetStoreSkuBindByNameID(db, k, kk, model.SkuStatusNormal) if len(result) > 0 && err == nil { - if result[0].UnitPrice > vv { - storeSkuBindInfo := &StoreSkuBindInfo{ - StoreID: k, - NameID: kk, - UnitPrice: vv, - } - param = append(param, storeSkuBindInfo) + // if result[0].UnitPrice > vv { + storeSkuBindInfo := &StoreSkuBindInfo{ + StoreID: k, + NameID: kk, + UnitPrice: vv, } + param = append(param, storeSkuBindInfo) + // } } } } From 29434729d9cd7a10e59ade96818ef91f4bdf64dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Fri, 28 Feb 2020 09:50:14 +0800 Subject: [PATCH 064/286] =?UTF-8?q?=E9=80=9A=E8=81=94=E6=94=AF=E4=BB=98?= =?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/partner/purchase/jx/localjx/tonglianpay.go | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/business/partner/purchase/jx/localjx/tonglianpay.go b/business/partner/purchase/jx/localjx/tonglianpay.go index f42e762a1..6cc2a8087 100644 --- a/business/partner/purchase/jx/localjx/tonglianpay.go +++ b/business/partner/purchase/jx/localjx/tonglianpay.go @@ -52,12 +52,12 @@ func pay4OrderByTL(ctx *jxcontext.Context, order *model.GoodsOrder, vendorPayTyp CodeURL: utils.LimitUTF8StringLen(result.PayInfo, 3200), TotalFee: int(order.ActualPayPrice), } - plainText, err2 := RSADecrypt([]byte(result2.PaySign)) - result2.PaySign = string(plainText) - globals.SugarLogger.Debugf("pay4OrderByTL2, [%v]", string(plainText)) - str, err2 := json.Marshal(result2) - result.PayInfo = string(str) - err = err2 + // plainText, err2 := RSADecrypt([]byte(result2.PaySign)) + // result2.PaySign = string(plainText) + // globals.SugarLogger.Debugf("pay4OrderByTL2, [%v]", string(plainText)) + // str, err2 := json.Marshal(result2) + // result.PayInfo = string(str) + // err = err2 } return orderPay, err } @@ -74,7 +74,6 @@ func RSADecrypt(pub []byte) (plainText []byte, err error) { // buf := make([]byte, info.Size()) // file.Read(buf) buf, err := ioutil.ReadFile("conf/rsa_key.pem") - globals.SugarLogger.Debugf("pay4OrderByTL3, [%v]", string(buf)) //pem解码 block, _ := pem.Decode(buf) //X509解码 From 9821123c083eb084064338d9159f1f774a8283eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Fri, 28 Feb 2020 11:02:53 +0800 Subject: [PATCH 065/286] =?UTF-8?q?=E9=80=9A=E8=81=94=E5=AE=9D=E9=80=80?= =?UTF-8?q?=E6=AC=BE=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/order.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index dd65d6a11..44a9e2658 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -587,7 +587,9 @@ func CancelOrder(ctx *jxcontext.Context, order *model.GoodsOrder, reason string) db := dao.GetDB() payList, err2 := dao.GetOrderPayList(db, order.VendorOrderID, jxutils.GetPossibleVendorIDFromVendorOrderID(order.VendorOrderID)) if err = err2; err == nil { + globals.SugarLogger.Debugf("CancelOrderTL1, [%v]", payList) for _, orderPay := range payList { + globals.SugarLogger.Debugf("CancelOrderTL2, [%v]", *orderPay) if orderPay.Status == model.PayStatusYes { // refundID := utils.Int64ToStr(GenRefundID(order)) refundID := order.VendorOrderID From 0fd69d25e103062a23e7640a1140c9c28b177fb8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Fri, 28 Feb 2020 11:19:27 +0800 Subject: [PATCH 066/286] =?UTF-8?q?=E9=80=9A=E8=81=94=E5=AE=9D=E6=94=AF?= =?UTF-8?q?=E4=BB=98=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 28 +++++++++---------- business/partner/purchase/jx/localjx/order.go | 1 - 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index 7ccf820d9..aa2f22cf0 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -3627,14 +3627,14 @@ func RefreshJxPriceByVendor(ctx *jxcontext.Context, jdStoreSkus []*JdStoreSkus, for kk, vv := range v { result, err := dao.GetStoreSkuBindByNameID(db, k, kk, model.SkuStatusNormal) if len(result) > 0 && err == nil { - // if result[0].UnitPrice > vv { - storeSkuBindInfo := &StoreSkuBindInfo{ - StoreID: k, - NameID: kk, - UnitPrice: vv, + if result[0].UnitPrice > vv { + storeSkuBindInfo := &StoreSkuBindInfo{ + StoreID: k, + NameID: kk, + UnitPrice: vv, + } + param = append(param, storeSkuBindInfo) } - param = append(param, storeSkuBindInfo) - // } } } } @@ -3672,14 +3672,14 @@ func RefreshJxPriceByVendor(ctx *jxcontext.Context, jdStoreSkus []*JdStoreSkus, for kk, vv := range v { result, err := dao.GetStoreSkuBindByNameID(db, k, kk, model.SkuStatusNormal) if len(result) > 0 && err == nil { - // if result[0].UnitPrice > vv { - storeSkuBindInfo := &StoreSkuBindInfo{ - StoreID: k, - NameID: kk, - UnitPrice: vv, + if result[0].UnitPrice > vv { + storeSkuBindInfo := &StoreSkuBindInfo{ + StoreID: k, + NameID: kk, + UnitPrice: vv, + } + param = append(param, storeSkuBindInfo) } - param = append(param, storeSkuBindInfo) - // } } } } diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index 44a9e2658..3481d2303 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -587,7 +587,6 @@ func CancelOrder(ctx *jxcontext.Context, order *model.GoodsOrder, reason string) db := dao.GetDB() payList, err2 := dao.GetOrderPayList(db, order.VendorOrderID, jxutils.GetPossibleVendorIDFromVendorOrderID(order.VendorOrderID)) if err = err2; err == nil { - globals.SugarLogger.Debugf("CancelOrderTL1, [%v]", payList) for _, orderPay := range payList { globals.SugarLogger.Debugf("CancelOrderTL2, [%v]", *orderPay) if orderPay.Status == model.PayStatusYes { From 624a19ea4a783679499346a39df894b0dc7651f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Fri, 28 Feb 2020 11:20:41 +0800 Subject: [PATCH 067/286] =?UTF-8?q?RSA=E8=A7=A3=E5=AF=86=E5=85=A8=E5=88=A0?= =?UTF-8?q?=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../purchase/jx/localjx/tonglianpay.go | 35 ------------------- conf/rsa_key.pem | 3 -- 2 files changed, 38 deletions(-) delete mode 100644 conf/rsa_key.pem diff --git a/business/partner/purchase/jx/localjx/tonglianpay.go b/business/partner/purchase/jx/localjx/tonglianpay.go index 6cc2a8087..b766d8f66 100644 --- a/business/partner/purchase/jx/localjx/tonglianpay.go +++ b/business/partner/purchase/jx/localjx/tonglianpay.go @@ -1,12 +1,7 @@ package localjx import ( - "crypto/rand" - "crypto/rsa" - "crypto/x509" "encoding/json" - "encoding/pem" - "io/ioutil" "strings" "time" @@ -52,40 +47,10 @@ func pay4OrderByTL(ctx *jxcontext.Context, order *model.GoodsOrder, vendorPayTyp CodeURL: utils.LimitUTF8StringLen(result.PayInfo, 3200), TotalFee: int(order.ActualPayPrice), } - // plainText, err2 := RSADecrypt([]byte(result2.PaySign)) - // result2.PaySign = string(plainText) - // globals.SugarLogger.Debugf("pay4OrderByTL2, [%v]", string(plainText)) - // str, err2 := json.Marshal(result2) - // result.PayInfo = string(str) - // err = err2 } return orderPay, err } -func RSADecrypt(pub []byte) (plainText []byte, err error) { - //打开文件 - // file, err := os.Open("conf/rsa_key.pem") - // if err != nil { - // panic(err) - // } - // defer file.Close() - // //获取文件内容 - // info, _ := file.Stat() - // buf := make([]byte, info.Size()) - // file.Read(buf) - buf, err := ioutil.ReadFile("conf/rsa_key.pem") - //pem解码 - block, _ := pem.Decode(buf) - //X509解码 - privateKey, err := x509.ParsePKCS8PrivateKey(block.Bytes) - if err != nil { - panic(err) - } - //对密文进行解密 - plainText, err = rsa.DecryptPKCS1v15(rand.Reader, privateKey.(*rsa.PrivateKey), pub) - return plainText, err -} - func OnTLPayCallback(call *tonglianpayapi.CallBackResult) (err error) { globals.SugarLogger.Debugf("OnTLPayCallback msg:%s", utils.Format4Output(call, true)) switch call.TrxCode { diff --git a/conf/rsa_key.pem b/conf/rsa_key.pem deleted file mode 100644 index 5c626d949..000000000 --- a/conf/rsa_key.pem +++ /dev/null @@ -1,3 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIICeAIBADANBgkqhkiG9w0BAQEFAASCAmIwggJeAgEAAoGBAKIw2F9MViiwGt3Sc8V2BCLeyW486K9klCRgprq57amgrbRy/dIcR2i7MCy01oNkf4S3XMKOlDK3cH5cXm4cV3Sa3WOkgumjczcd/sXOFRuvItJc39OCn1+WxUlIDu6nfmSpvOFqgQVbCD2Axo6Eq6t8wrhw6qx8m73KlkulCOx3AgMBAAECgYAxfQ/4fBVqEtoPxzBWFv2KGkqCHYmuQtVFCEy3exX+hS2bet7h5okPdtZrPb6alual+0ENiG3Fz90+YTbbCEDSsgrNxrh/5ZaJaPgosKlgPiJ418BVZW8YXdGEMaJDXr3xRsQH3VHmwGXLJ9WyFzzMof1WsRk8k9HY87Uy+ZMKmQJBANb8cpAhJ8oq6dPK8d5n+K+L1Ld/bmMIxtq+hTrz4/ZOJJOuvBFsR+JWiEe3+kO2bgE7galanFg42JeCRFD9eMMCQQDBIfcJ4Xlc+GEqLXT2Cbv2Rg6uuD1qMQqiX3UWR1ypq3SuIBYLkYG4mCk2iXCqTm7MWNl5OozlaIFmxTyjbeI9AkEAs3uLQZ0MlRICqRkTmLSAwD4jVxcCV5fqPJE2taMMPIO8sbb9uCYIVYQcvpNwUrupV0oQ1Ayb3mOHH+ZXlq4m9QJBAL2j/E9XdzQzMDWaLR7qsAZDBGfLwYJkZWzLDs2xhOuV0ByqpPr3Bcmcn9tNWbPhECrXk7PWKkOZOncPdVuEqoECQQCo/VmPU3rPqK4l1Gwi2vlf6CE09GZJGrKk94rPfechqkzhmziX8RLF1XpxZOWWgCM9ld2g2YwtBcgVmVc0M8bM ------END PRIVATE KEY----- From 44457506ffd4ab57b3758e589b7879743e70a9e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Fri, 28 Feb 2020 12:05:28 +0800 Subject: [PATCH 068/286] =?UTF-8?q?=E9=A5=BF=E9=B2=9C=E8=BE=BEcookie?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- conf/app.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conf/app.conf b/conf/app.conf index 6108f6c7d..2d3b43a59 100644 --- a/conf/app.conf +++ b/conf/app.conf @@ -73,7 +73,7 @@ ebaiStorePageCookieWMUSS = "B0AAFQCAAAGbhkuMCsvcyYBDkkyAxBGIBlgXAQYVwc7VwYZFkx2H ebaiStorePageCookieWMSTOKEN = "gAALgNAAAGfBI5YEBHSQdZY1InIS8CVQU9aBU1f3VLWVQqKHAAAc5LnRLZ1QLLx0S5IuzCSX8ZQ7oUwAAUr-GEm9JpRc9AQAAsLkLHHXzuhh2lZkbyrcAAAWBESKg3ZA" ebaiStorePageCookieWMUSS2 = "A8AAIcCAAADJhpNHQoGGjZaLFRBdnE7Uwp9TBQXH1o9RTBgP30NQiQmEEAwFVplbwc6wAAMXwsa082aRxJfzskPX9THj9RKgJ0TxE1fyYPZRYVH0YSSjFgARt8Shs3bVc3QHV2Eh94B24KO20vSlJEXnELcDxTl9sJ35T2Dvg21A3wCT0NMXaNAcPzKhPamv" ebaiStorePageCookieWMSTOKEN2 = "A4AANwHAAARMA9ZWhh6BzcGYTQZJjVOHGIxPUdPVElXQz8iahGqiIS5gAAsLaD8yOwpYLCVMU2qqCEN8nAyiUQAAUr-GEu-F2xVbAQAAYcnZGrUx2Rf9qJkbRKQAAONp" -ebaiStorePageCookieExdTOKEN = "PBE_2.0_5cd1c6141c127d419e817e88920aa5ae01c164ed47b678e0b16c628ef65ffc0b93ddf4a7cd1f7172e644f4f5321c5f197dd406a5a0d219aae2fa169e59c5419db8f4d4ca44c01e112c6bb4f8d87cbae90e6eaefceba88f486f26bafa41f3ec181773c4b329a6c7c154333a8496509943c63a96c71c72edc82f6beb6ecd9acd5ad69b2f2bbcbe011d05536112cbe52be0b2176860870ce608a0d7f465a1e782f6584e4253aaaee30d9042f82f12b312b5a29151e2e0400f4a128ee365966025f9719278850f60e10ddda0e32554c6867091321cd552b41aa5e5e676f64af218a0e98e4030f499c31de664a0c0a23c5306075ffb061c7654d4646317c8e6a55c66361c96b9e8f11f55c2f666a0240a3f8fb8e221d58b907731a8720572a03febd20d146cad4b6a3821cfd3c5b3286bb3383c4eff8c8ff2d63b8773bbd88f2d6c4b1deb7634221b0e086b7b7d6201435dacdb09525dc59588beeffcd0232ef64aa73fd2325509fa7fc6" +ebaiStorePageCookieExdTOKEN = "PBE_2.0_5cd1c6141c127d41d12be02a04e58e0a2529c8ac5aad36be932f6e341f8be9a0e56b833c924cc95dd2ced76b31ea6fcbc7341cc9c03e3e2f470441192d51fc8bd81b6c5d24a867630a65400e688ff8f4453895ca9a18d7e91726941b28631cf2ab81797279967fcb03ae57e5bc33bf91e4495727569681c724597fb2c639a85c145723c12de262224e2536ad2c6f94bcae0c10c8f30728a6ea3ab6000940fffaa66271f17ecbae139f0b4fdfff791b7986a88b8f252827e799a2e1862ec522fd4c51c70ae9d17c69da93f1c12715bf9e0b35eccf39ae605d424c83319acaa7acbe191a8ee410afd1d02d1e02834ce6cbd2503b89f30efc1f7635a1e71e10e3370fc79b33e6352290e87f82b1cb8ac91195a09ff28e4418923e89993eb10d01e39fb621d517a14081611b25e83da9ec860fbacd2cb13562271585b53a0a7178e8f614bd62ffa442c78a10f008b3721675cad803024fad0c13aeecd64d1360bab4127883d2e7198201" mtpsStoreToken = "M0p9VatZSeSHfrosD5IViAVl73IcA8mlcuHIV5sG6Zpv83a7JE0wY3t26aEhrrs_MR5gtLSFF1UIkt8HAjaXow" weimobAppID = "319F5E7FB6784DFCA3684C9333EB7744" From 3827d1c1ebc5b6572eff93a8115d26ddb08ba5d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Fri, 28 Feb 2020 17:21:30 +0800 Subject: [PATCH 069/286] =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E5=B9=B3=E5=8F=B0?= =?UTF-8?q?=E4=BB=B7=E5=88=B7=E6=96=B0=E4=BA=AC=E8=A5=BF=E4=BB=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 104 ++++++++++++++++++++++++++ conf/app.conf | 2 +- controllers/cms_store_sku.go | 21 ++++++ routers/commentsRouter_controllers.go | 9 +++ 4 files changed, 135 insertions(+), 1 deletion(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index aa2f22cf0..e8a3f5568 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -3699,3 +3699,107 @@ func RefreshJxPriceByVendor(ctx *jxcontext.Context, jdStoreSkus []*JdStoreSkus, } return hint, err } + +func RefreshJxPriceByVendor2(ctx *jxcontext.Context, storeIDs []int, vendorID int, isAsync, isContinueWhenError bool) (hint string, err error) { + var ( + db = dao.GetDB() + param []*StoreSkuBindInfo + ) + taskSeqFunc := func(task *tasksch.SeqTask, step int, params ...interface{}) (result interface{}, err error) { + switch step { + case 0: + for _, storeID := range storeIDs { + var ( + pricePercentagePack []*model.PricePercentageItem + skuNameMap = make(map[int]int64) + ) + storeDetail, _ := dao.GetStoreDetail(db, storeID, vendorID) + err = jxutils.Strings2Objs(storeDetail.PricePercentagePackStr, &pricePercentagePack) + if partner.IsMultiStore(vendorID) { + mulitStoreSkuHandler := partner.GetPurchasePlatformFromVendorID(vendorID).(partner.IPurchasePlatformStoreSkuHandler) + skuList, err := dao.GetSkusWithVendor(db, []int{vendorID}, nil, nil, nil, false) + if err != nil { + return "", err + } + bareStoreSkuMap := make(map[string][]*partner.StoreSkuInfo) + for _, sku := range skuList { + bareStoreSkuMap[sku.VendorOrgCode] = append(bareStoreSkuMap[sku.VendorOrgCode], &partner.StoreSkuInfo{ + SkuID: sku.ID, + VendorSkuID: sku.VendorSkuID, + }) + } + for _, orgCode := range apimanager.CurAPIManager.GetAppOrgCodeList(vendorID) { + outStoreSkuList, _ := mulitStoreSkuHandler.GetStoreSkusBareInfo(ctx, orgCode, task, storeID, storeDetail.VendorStoreID, bareStoreSkuMap[orgCode]) + for _, sku := range outStoreSkuList { + price, nameID := getSkuNamePrice(db, sku.SkuID, sku.VendorPrice) + if skuNameMap[nameID] < price { + skuNameMap[nameID] = price + } + } + for k, v := range skuNameMap { + unitPrice := jxutils.CaculateJxPriceByPricePack(pricePercentagePack, 0, int(v)) + storeSkuBindInfo := &StoreSkuBindInfo{ + StoreID: storeID, + NameID: k, + UnitPrice: unitPrice, + } + param = append(param, storeSkuBindInfo) + } + } + } else { + singleStoreHandler := partner.GetPurchasePlatformFromVendorID(vendorID).(partner.ISingleStoreStoreSkuHandler) + outSkuNameList, _ := singleStoreHandler.GetStoreSkusFullInfo(ctx, task, storeID, storeDetail.VendorStoreID, nil) + for _, skuName := range outSkuNameList { + sku := skuName.SkuList[0] + price, nameID := getSkuNamePrice(db, sku.SkuID, sku.VendorPrice) + if skuNameMap[nameID] < price { + skuNameMap[nameID] = price + } + } + for k, v := range skuNameMap { + unitPrice := jxutils.CaculateJxPriceByPricePack(pricePercentagePack, 0, int(v)) + storeSkuBindInfo := &StoreSkuBindInfo{ + StoreID: storeID, + NameID: k, + UnitPrice: unitPrice, + } + param = append(param, storeSkuBindInfo) + } + } + } + case 1: + _, err = UpdateStoresSkusByBind(ctx, nil, param, isAsync, isContinueWhenError) + } + return result, err + } + taskSeq := tasksch.NewSeqTask2("根据平台价刷新京西平台价", ctx, isContinueWhenError, taskSeqFunc, 2) + tasksch.HandleTask(taskSeq, nil, true).Run() + if !isAsync { + _, err = taskSeq.GetResult(0) + hint = "1" + } else { + hint = taskSeq.GetID() + } + return hint, err +} + +func getSkuNamePrice(db *dao.DaoDB, skuID int, orgPrice int64) (price int64, nameID int) { + var ( + specQuality float64 + ) + skuList, _ := dao.GetSkus(db, []int{skuID}, nil, nil, nil) + for _, v := range skuList { + if v.Unit == model.SpecialUnit { + if v.SpecUnit == model.SpecUnitNames[1] || v.SpecUnit == model.SpecUnitNames[2] { + specQuality = float64(v.SpecQuality) * 1000 + } else { + specQuality = float64(v.SpecQuality) + } + price = utils.Float64TwoInt64(utils.Int2Float64(model.SpecialSpecQuality) / specQuality * utils.Int2Float64(int(orgPrice))) + } else { + price = orgPrice + } + nameID = v.NameID + } + return price, nameID +} diff --git a/conf/app.conf b/conf/app.conf index 2d3b43a59..849d71c99 100644 --- a/conf/app.conf +++ b/conf/app.conf @@ -381,7 +381,7 @@ weixinMiniSecret2 = "2a57228a716ce991a52739f0ff41111d" tonglianPayAppID = "00183083" tonglianPayKey = "18048531223" tonglianPayCusID = "56065105499TVAH" -tonglianPayNotifyURL = "http://callback.jxc4.com/tonglian/msg/" +tonglianPayNotifyURL = "http://callback.beta.jxc4.com/tonglian/msg/" disableWeimob = false getWeixinTokenURL = "http://www.jxc4.com/v2/sys/GetWXToken" diff --git a/controllers/cms_store_sku.go b/controllers/cms_store_sku.go index 8dafe2d3c..2878c5247 100644 --- a/controllers/cms_store_sku.go +++ b/controllers/cms_store_sku.go @@ -690,3 +690,24 @@ func (c *StoreSkuController) RefreshJxPriceByVendor() { return retVal, "", err }) } + +// @Title 根据平台价反算京西价2 +// @Description 根据平台价反算京西价2 +// @Param token header string true "认证token" +// @Param storeIDs formData string true "门店列表" +// @Param vendorID formData int true "厂商ID" +// @Param isAsync formData bool true "是否异步,缺省是同步" +// @Param isContinueWhenError formData bool true "单个同步失败是否继续,缺省false" +// @Success 200 {object} controllers.CallResult +// @Failure 200 {object} controllers.CallResult +// @router /RefreshJxPriceByVendor2 [put] +func (c *StoreSkuController) RefreshJxPriceByVendor2() { + var storeIDs []int + c.callRefreshJxPriceByVendor2(func(params *tStoreSkuRefreshJxPriceByVendor2Params) (retVal interface{}, errCode string, err error) { + if err = jxutils.Strings2Objs(params.StoreIDs, &storeIDs); err != nil { + return retVal, "", err + } + retVal, err = cms.RefreshJxPriceByVendor2(params.Ctx, storeIDs, params.VendorID, params.IsAsync, params.IsContinueWhenError) + return retVal, "", err + }) +} diff --git a/routers/commentsRouter_controllers.go b/routers/commentsRouter_controllers.go index bceb9d400..9f12bdaf7 100644 --- a/routers/commentsRouter_controllers.go +++ b/routers/commentsRouter_controllers.go @@ -1926,6 +1926,15 @@ func init() { Filters: nil, Params: nil}) + beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreSkuController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreSkuController"], + beego.ControllerComments{ + Method: "RefreshJxPriceByVendor2", + Router: `/RefreshJxPriceByVendor2`, + AllowHTTPMethods: []string{"put"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreSkuController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreSkuController"], beego.ControllerComments{ Method: "RefreshStoresSkuByVendor", From 4cb18c477c7f9087d1e08748e2bb93006e4f0bc2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Fri, 28 Feb 2020 17:40:53 +0800 Subject: [PATCH 070/286] =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E5=8F=82=E6=95=B0?= =?UTF-8?q?=E6=95=B4=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- controllers/cms_store_sku.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/controllers/cms_store_sku.go b/controllers/cms_store_sku.go index 2878c5247..1eadb54b3 100644 --- a/controllers/cms_store_sku.go +++ b/controllers/cms_store_sku.go @@ -696,8 +696,8 @@ func (c *StoreSkuController) RefreshJxPriceByVendor() { // @Param token header string true "认证token" // @Param storeIDs formData string true "门店列表" // @Param vendorID formData int true "厂商ID" -// @Param isAsync formData bool true "是否异步,缺省是同步" -// @Param isContinueWhenError formData bool true "单个同步失败是否继续,缺省false" +// @Param isAsync formData bool false "是否异步,缺省是同步" +// @Param isContinueWhenError formData bool false "单个同步失败是否继续,缺省false" // @Success 200 {object} controllers.CallResult // @Failure 200 {object} controllers.CallResult // @router /RefreshJxPriceByVendor2 [put] From 9c76a0659ff153d4aa3e1dcd9f06fc06942297e4 Mon Sep 17 00:00:00 2001 From: suyl <770236076@qq.com> Date: Sun, 1 Mar 2020 18:18:34 +0800 Subject: [PATCH 071/286] =?UTF-8?q?=E6=9A=82=E6=97=B6=E5=B1=8F=E8=94=BD?= =?UTF-8?q?=E5=90=8C=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 6 +++--- business/jxstore/misc/misc.go | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index e8a3f5568..2516b35d7 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -825,9 +825,9 @@ func UpdateStoresSkus(ctx *jxcontext.Context, causeFlag int, storeIDs []int, sku } isAsync = asyncStoreSkuOpFilter(ctx, isAsync) num = int64(len(skuIDs)) - if num > 0 { - hint, err = CurVendorSync.SyncStoresSkus(ctx, nil, causeFlag, db, nil, storeIDs, skuIDs, false, isAsync, isContinueWhenError) - } + // if num > 0 { + // hint, err = CurVendorSync.SyncStoresSkus(ctx, nil, causeFlag, db, nil, storeIDs, skuIDs, false, isAsync, isContinueWhenError) + // } if num == 0 || !isAsync || hint == "" { hint = utils.Int64ToStr(num) } diff --git a/business/jxstore/misc/misc.go b/business/jxstore/misc/misc.go index 54ded4119..f10b302fe 100644 --- a/business/jxstore/misc/misc.go +++ b/business/jxstore/misc/misc.go @@ -253,7 +253,7 @@ func doDailyWork() { dao.SetStoresMapSyncStatus(dao.GetDB(), nil, nil, model.SyncFlagStoreStatus) cms.CurVendorSync.SyncStore2(jxcontext.AdminCtx, dao.GetDB(), nil, nil, true, true) - syncStoreSku() + // syncStoreSku() InitEx() From b2a5ed4b36ab0b324e0081606aff44458826ae4e Mon Sep 17 00:00:00 2001 From: suyl <770236076@qq.com> Date: Sun, 1 Mar 2020 22:01:48 +0800 Subject: [PATCH 072/286] =?UTF-8?q?=E5=90=8C=E6=AD=A5=E6=81=A2=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 6 +++--- business/jxstore/misc/misc.go | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index 2516b35d7..e8a3f5568 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -825,9 +825,9 @@ func UpdateStoresSkus(ctx *jxcontext.Context, causeFlag int, storeIDs []int, sku } isAsync = asyncStoreSkuOpFilter(ctx, isAsync) num = int64(len(skuIDs)) - // if num > 0 { - // hint, err = CurVendorSync.SyncStoresSkus(ctx, nil, causeFlag, db, nil, storeIDs, skuIDs, false, isAsync, isContinueWhenError) - // } + if num > 0 { + hint, err = CurVendorSync.SyncStoresSkus(ctx, nil, causeFlag, db, nil, storeIDs, skuIDs, false, isAsync, isContinueWhenError) + } if num == 0 || !isAsync || hint == "" { hint = utils.Int64ToStr(num) } diff --git a/business/jxstore/misc/misc.go b/business/jxstore/misc/misc.go index f10b302fe..54ded4119 100644 --- a/business/jxstore/misc/misc.go +++ b/business/jxstore/misc/misc.go @@ -253,7 +253,7 @@ func doDailyWork() { dao.SetStoresMapSyncStatus(dao.GetDB(), nil, nil, model.SyncFlagStoreStatus) cms.CurVendorSync.SyncStore2(jxcontext.AdminCtx, dao.GetDB(), nil, nil, true, true) - // syncStoreSku() + syncStoreSku() InitEx() From 5fe6e3e0638879b661579160099fa7c64c30c5e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 2 Mar 2020 09:32:22 +0800 Subject: [PATCH 073/286] =?UTF-8?q?=E9=80=9A=E8=81=94=E5=AE=9D=E5=9B=9E?= =?UTF-8?q?=E8=B0=83=E5=9C=B0=E5=9D=80=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- conf/app.conf | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/conf/app.conf b/conf/app.conf index 849d71c99..04e48ba7f 100644 --- a/conf/app.conf +++ b/conf/app.conf @@ -59,7 +59,7 @@ wxpayNotifyURL = "http://callback.test.jxc4.com/wxpay/msg/" tonglianPayAppID = "00183083" tonglianPayKey = "18048531223" tonglianPayCusID = "56065105499TVAH" -tonglianPayNotifyURL = "http://callback.jxc4.com/tonglian/msg/" +tonglianPayNotifyURL = "http://callback.test.jxc4.com/tonglian/msg/" backstageHost = "http://www.jxc4.com" wxBackstageHost = "http://wx.jxc4.com" @@ -256,6 +256,11 @@ weixinMiniSecret = "11f3c380551c4683c149990b004d6df9" wxpayNotifyURL = "http://callback-jxgy.jxc4.com/wxpay/msg/" +tonglianPayAppID = "00183083" +tonglianPayKey = "18048531223" +tonglianPayCusID = "56065105499TVAH" +tonglianPayNotifyURL = "http://callback-jxgy.jxc4.com/tonglian/msg/" + backstageHost = "http://www-jxgy.jxc4.com" wxBackstageHost = "http://wx-jxgy.jxc4.com" @@ -378,11 +383,6 @@ weixinSecret = "6bbbed1443cc062c20a015a64c07a531" weixinMiniAppID2 = "wx4b5930c13f8b1170" weixinMiniSecret2 = "2a57228a716ce991a52739f0ff41111d" -tonglianPayAppID = "00183083" -tonglianPayKey = "18048531223" -tonglianPayCusID = "56065105499TVAH" -tonglianPayNotifyURL = "http://callback.beta.jxc4.com/tonglian/msg/" - disableWeimob = false getWeixinTokenURL = "http://www.jxc4.com/v2/sys/GetWXToken" getWeixin2TokenURL = "http://www.jxc4.com/v2/sys/GetWX2Token" From ad74b03c74cdf309db0c1b7299c07996b4335d11 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 2 Mar 2020 11:00:17 +0800 Subject: [PATCH 074/286] =?UTF-8?q?=E9=80=9A=E8=81=94=E5=AE=9D=E6=94=AF?= =?UTF-8?q?=E4=BB=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/tonglianpay.go | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/business/partner/purchase/jx/localjx/tonglianpay.go b/business/partner/purchase/jx/localjx/tonglianpay.go index b766d8f66..3e154de3a 100644 --- a/business/partner/purchase/jx/localjx/tonglianpay.go +++ b/business/partner/purchase/jx/localjx/tonglianpay.go @@ -38,7 +38,7 @@ func pay4OrderByTL(ctx *jxcontext.Context, order *model.GoodsOrder, vendorPayTyp PayOrderID: param.Reqsn, PayType: model.PayTypeTL, VendorPayType: vendorPayType, - + TransactionID: result.TrxID, VendorOrderID: order.VendorOrderID, VendorID: order.VendorID, Status: 0, @@ -71,7 +71,7 @@ func onTLpayFinished(call *tonglianpayapi.CallBackResult) (err error) { db := dao.GetDB() if err = dao.GetEntity(db, orderPay, "PayOrderID", "PayType", "DeletedAt"); err == nil { orderPay.PayFinishedAt = utils.Time2Pointer(utils.Str2Time(call.PayTime)) - orderPay.TransactionID = call.ChnlTrxID + // orderPay.TransactionID = call.ChnlTrxID orderPay.OriginalData = utils.Format4Output(call, true) if call.TrxStatus == tonglianpayapi.TrxStatusSuccess { orderPay.Status = model.PayStatusYes @@ -121,10 +121,11 @@ func onTLpayRefund(call *tonglianpayapi.CallBackResult) (err error) { func refundOrderByTL(ctx *jxcontext.Context, orderPay *model.OrderPay, refundID string, refundFee int, refundDesc string) (orderPayRefund *model.OrderPayRefund, err error) { result, err := api.TLpayAPI.PayRefund(&tonglianpayapi.PayRefundParam{ - Trxamt: orderPay.TotalFee, - Reqsn: refundID, - OldReqsn: orderPay.VendorOrderID, + Trxamt: orderPay.TotalFee, + Reqsn: utils.GetUUID(), + // OldReqsn: orderPay.VendorOrderID, Remark: refundDesc, + OldTrxID: orderPay.TransactionID, }) if err == nil { orderPayRefund = &model.OrderPayRefund{ From f20bc5b5b28f3f059aa381178256681c1e6e132b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 2 Mar 2020 11:51:55 +0800 Subject: [PATCH 075/286] =?UTF-8?q?=E9=80=9A=E8=81=94=E5=AE=9D=E6=94=AF?= =?UTF-8?q?=E4=BB=98=E5=9B=9E=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- controllers/tonglian_callback.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/controllers/tonglian_callback.go b/controllers/tonglian_callback.go index 95ad531ad..6d33cb8c2 100644 --- a/controllers/tonglian_callback.go +++ b/controllers/tonglian_callback.go @@ -1,6 +1,8 @@ package controllers import ( + "bytes" + "io/ioutil" "net/http" "git.rosy.net.cn/jx-callback/globals/api" @@ -10,6 +12,7 @@ import ( "git.rosy.net.cn/jx-callback/globals" "github.com/astaxie/beego" + "github.com/astaxie/beego/context" ) type TongLianController struct { @@ -18,7 +21,7 @@ type TongLianController struct { func (c *TongLianController) Msg() { if c.Ctx.Input.Method() == http.MethodPost { - call, err := api.TLpayAPI.GetCallbackMsg(c.Ctx.Request) + call, err := api.TLpayAPI.GetCallbackMsg(getUsefulRequest2(c.Ctx)) globals.SugarLogger.Debugf("tonglianapi callback callbackResponse:%s", utils.Format4Output(call, true)) if err == nil { err = localjx.OnTLPayCallback(call) @@ -29,3 +32,8 @@ func (c *TongLianController) Msg() { c.Abort("404") } } + +func getUsefulRequest2(ctx *context.Context) *http.Request { + ctx.Request.Body = ioutil.NopCloser(bytes.NewReader(ctx.Input.RequestBody)) + return ctx.Request +} From af24c63a1f4ac8df886c2a4b427799dabd8094de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 2 Mar 2020 12:34:10 +0800 Subject: [PATCH 076/286] =?UTF-8?q?=E9=80=9A=E8=81=94=E5=AE=9D=E5=9B=9E?= =?UTF-8?q?=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/tonglianpay.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/business/partner/purchase/jx/localjx/tonglianpay.go b/business/partner/purchase/jx/localjx/tonglianpay.go index 3e154de3a..4be8b9241 100644 --- a/business/partner/purchase/jx/localjx/tonglianpay.go +++ b/business/partner/purchase/jx/localjx/tonglianpay.go @@ -70,7 +70,9 @@ func onTLpayFinished(call *tonglianpayapi.CallBackResult) (err error) { orderPay.DeletedAt = utils.DefaultTimeValue db := dao.GetDB() if err = dao.GetEntity(db, orderPay, "PayOrderID", "PayType", "DeletedAt"); err == nil { - orderPay.PayFinishedAt = utils.Time2Pointer(utils.Str2Time(call.PayTime)) + loc, _ := time.LoadLocation("Local") + t1, _ := time.ParseInLocation("20060102150405", call.PayTime, loc) + orderPay.PayFinishedAt = utils.Time2Pointer(t1) // orderPay.TransactionID = call.ChnlTrxID orderPay.OriginalData = utils.Format4Output(call, true) if call.TrxStatus == tonglianpayapi.TrxStatusSuccess { From a8095f102d78cb102d19f00d4cb7f70ddc5796f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 2 Mar 2020 12:39:06 +0800 Subject: [PATCH 077/286] =?UTF-8?q?=E9=80=80=E6=AC=BE=E8=A1=A8=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0last=5Fopreater=E7=AD=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/tonglianpay.go | 1 + 1 file changed, 1 insertion(+) diff --git a/business/partner/purchase/jx/localjx/tonglianpay.go b/business/partner/purchase/jx/localjx/tonglianpay.go index 4be8b9241..077431536 100644 --- a/business/partner/purchase/jx/localjx/tonglianpay.go +++ b/business/partner/purchase/jx/localjx/tonglianpay.go @@ -140,6 +140,7 @@ func refundOrderByTL(ctx *jxcontext.Context, orderPay *model.OrderPay, refundID RefundFee: orderPay.TotalFee, RefundCreatedAt: time.Now(), } + dao.WrapAddIDCULDEntity(orderPayRefund, ctx.GetUserName()) db := dao.GetDB() if result.TrxStatus == tonglianpayapi.TrxStatusSuccess { orderPayRefund.Status = model.RefundStatusYes From e1cf673d87136a21ee504b5f5dd2c146748a932e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 2 Mar 2020 14:15:31 +0800 Subject: [PATCH 078/286] =?UTF-8?q?=E5=B0=9D=E8=AF=95=E4=BB=8E=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=BA=93=E4=B8=AD=E5=8F=96cookie?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/misc/misc.go | 8 ++++++++ conf/app.conf | 2 +- globals/api/api.go | 10 +++++----- 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/business/jxstore/misc/misc.go b/business/jxstore/misc/misc.go index 54ded4119..34748517b 100644 --- a/business/jxstore/misc/misc.go +++ b/business/jxstore/misc/misc.go @@ -7,6 +7,7 @@ import ( "time" "git.rosy.net.cn/jx-callback/business/partner/purchase/jx/localjx" + "git.rosy.net.cn/jx-callback/globals/api" "git.rosy.net.cn/jx-callback/business/jxstore/event" @@ -106,6 +107,8 @@ var ( importantTaskMap = &sync.Map{} cancelPayTimeOutOrderList = localjx.GetHalfHoursList() + + ebaiStorePageCookieExdTOKEN string ) func GetImportantTaskID(taskName string) string { @@ -200,6 +203,11 @@ func Init() { "04:05:06", }) } + if configs, err := dao.QueryConfigs(dao.GetDB(), "ebaiStorePageCookieExdTOKEN", model.ConfigTypeSys, ""); err == nil { + ebaiStorePageCookieExdTOKEN = configs[0].Value + } + api.Ebai2API.SetCookie("PASSPORT_DELIMONT_TOKEN", ebaiStorePageCookieExdTOKEN) + api.EbaiAPI.SetCookie("PASSPORT_DELIMONT_TOKEN", ebaiStorePageCookieExdTOKEN) } func syncStoreSku() { diff --git a/conf/app.conf b/conf/app.conf index 04e48ba7f..a61720e93 100644 --- a/conf/app.conf +++ b/conf/app.conf @@ -73,7 +73,7 @@ ebaiStorePageCookieWMUSS = "B0AAFQCAAAGbhkuMCsvcyYBDkkyAxBGIBlgXAQYVwc7VwYZFkx2H ebaiStorePageCookieWMSTOKEN = "gAALgNAAAGfBI5YEBHSQdZY1InIS8CVQU9aBU1f3VLWVQqKHAAAc5LnRLZ1QLLx0S5IuzCSX8ZQ7oUwAAUr-GEm9JpRc9AQAAsLkLHHXzuhh2lZkbyrcAAAWBESKg3ZA" ebaiStorePageCookieWMUSS2 = "A8AAIcCAAADJhpNHQoGGjZaLFRBdnE7Uwp9TBQXH1o9RTBgP30NQiQmEEAwFVplbwc6wAAMXwsa082aRxJfzskPX9THj9RKgJ0TxE1fyYPZRYVH0YSSjFgARt8Shs3bVc3QHV2Eh94B24KO20vSlJEXnELcDxTl9sJ35T2Dvg21A3wCT0NMXaNAcPzKhPamv" ebaiStorePageCookieWMSTOKEN2 = "A4AANwHAAARMA9ZWhh6BzcGYTQZJjVOHGIxPUdPVElXQz8iahGqiIS5gAAsLaD8yOwpYLCVMU2qqCEN8nAyiUQAAUr-GEu-F2xVbAQAAYcnZGrUx2Rf9qJkbRKQAAONp" -ebaiStorePageCookieExdTOKEN = "PBE_2.0_5cd1c6141c127d41d12be02a04e58e0a2529c8ac5aad36be932f6e341f8be9a0e56b833c924cc95dd2ced76b31ea6fcbc7341cc9c03e3e2f470441192d51fc8bd81b6c5d24a867630a65400e688ff8f4453895ca9a18d7e91726941b28631cf2ab81797279967fcb03ae57e5bc33bf91e4495727569681c724597fb2c639a85c145723c12de262224e2536ad2c6f94bcae0c10c8f30728a6ea3ab6000940fffaa66271f17ecbae139f0b4fdfff791b7986a88b8f252827e799a2e1862ec522fd4c51c70ae9d17c69da93f1c12715bf9e0b35eccf39ae605d424c83319acaa7acbe191a8ee410afd1d02d1e02834ce6cbd2503b89f30efc1f7635a1e71e10e3370fc79b33e6352290e87f82b1cb8ac91195a09ff28e4418923e89993eb10d01e39fb621d517a14081611b25e83da9ec860fbacd2cb13562271585b53a0a7178e8f614bd62ffa442c78a10f008b3721675cad803024fad0c13aeecd64d1360bab4127883d2e7198201" +# ebaiStorePageCookieExdTOKEN = "PBE_2.0_5cd1c6141c127d41d12be02a04e58e0a2529c8ac5aad36be932f6e341f8be9a0e56b833c924cc95dd2ced76b31ea6fcbc7341cc9c03e3e2f470441192d51fc8bd81b6c5d24a867630a65400e688ff8f4453895ca9a18d7e91726941b28631cf2ab81797279967fcb03ae57e5bc33bf91e4495727569681c724597fb2c639a85c145723c12de262224e2536ad2c6f94bcae0c10c8f30728a6ea3ab6000940fffaa66271f17ecbae139f0b4fdfff791b7986a88b8f252827e799a2e1862ec522fd4c51c70ae9d17c69da93f1c12715bf9e0b35eccf39ae605d424c83319acaa7acbe191a8ee410afd1d02d1e02834ce6cbd2503b89f30efc1f7635a1e71e10e3370fc79b33e6352290e87f82b1cb8ac91195a09ff28e4418923e89993eb10d01e39fb621d517a14081611b25e83da9ec860fbacd2cb13562271585b53a0a7178e8f614bd62ffa442c78a10f008b3721675cad803024fad0c13aeecd64d1360bab4127883d2e7198201" mtpsStoreToken = "M0p9VatZSeSHfrosD5IViAVl73IcA8mlcuHIV5sG6Zpv83a7JE0wY3t26aEhrrs_MR5gtLSFF1UIkt8HAjaXow" weimobAppID = "319F5E7FB6784DFCA3684C9333EB7744" diff --git a/globals/api/api.go b/globals/api/api.go index 4122f0b8d..25420c685 100644 --- a/globals/api/api.go +++ b/globals/api/api.go @@ -129,19 +129,19 @@ func Init() { EbaiAPI = ebaiapi.New(beego.AppConfig.String("ebaiSource"), beego.AppConfig.String("ebaiSecret")) ebaiStorePageCookieWMUSS := beego.AppConfig.DefaultString("ebaiStorePageCookieWMUSS", "") ebaiStorePageCookieWMSTOKEN := beego.AppConfig.DefaultString("ebaiStorePageCookieWMSTOKEN", "") - ebaiStorePageCookieExdTOKEN := beego.AppConfig.DefaultString("ebaiStorePageCookieExdTOKEN", "") - if ebaiStorePageCookieWMUSS != "" && ebaiStorePageCookieWMSTOKEN != "" && ebaiStorePageCookieExdTOKEN != "" { + // ebaiStorePageCookieExdTOKEN := beego.AppConfig.DefaultString("ebaiStorePageCookieExdTOKEN", "") + if ebaiStorePageCookieWMUSS != "" && ebaiStorePageCookieWMSTOKEN != "" { //&& ebaiStorePageCookieExdTOKEN != "" { EbaiAPI.SetCookie("WMUSS", ebaiStorePageCookieWMUSS) EbaiAPI.SetCookie("WMSTOKEN", ebaiStorePageCookieWMSTOKEN) - EbaiAPI.SetCookie("PASSPORT_DELIMONT_TOKEN", ebaiStorePageCookieExdTOKEN) + // EbaiAPI.SetCookie("PASSPORT_DELIMONT_TOKEN", ebaiStorePageCookieExdTOKEN) } Ebai2API = ebaiapi.New(beego.AppConfig.String("ebaiSource"), beego.AppConfig.String("ebaiSecret")) ebaiStorePageCookieWMUSS2 := beego.AppConfig.DefaultString("ebaiStorePageCookieWMUSS2", "") ebaiStorePageCookieWMSTOKEN2 := beego.AppConfig.DefaultString("ebaiStorePageCookieWMSTOKEN2", "") - if ebaiStorePageCookieWMUSS2 != "" && ebaiStorePageCookieWMSTOKEN2 != "" && ebaiStorePageCookieExdTOKEN != "" { + if ebaiStorePageCookieWMUSS2 != "" && ebaiStorePageCookieWMSTOKEN2 != "" { //&& ebaiStorePageCookieExdTOKEN != "" { Ebai2API.SetCookie("WMUSS", ebaiStorePageCookieWMUSS2) Ebai2API.SetCookie("WMSTOKEN", ebaiStorePageCookieWMSTOKEN2) - Ebai2API.SetCookie("PASSPORT_DELIMONT_TOKEN", ebaiStorePageCookieExdTOKEN) + // Ebai2API.SetCookie("PASSPORT_DELIMONT_TOKEN", ebaiStorePageCookieExdTOKEN) } } else { EbaiAPI = nil From a6f264d6b64a8a736c0673119d027977f630852d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 2 Mar 2020 14:21:43 +0800 Subject: [PATCH 079/286] =?UTF-8?q?=E9=80=9A=E8=81=94=E5=AE=9D=E6=94=AF?= =?UTF-8?q?=E4=BB=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- conf/app.conf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/conf/app.conf b/conf/app.conf index a61720e93..0789648e9 100644 --- a/conf/app.conf +++ b/conf/app.conf @@ -71,8 +71,8 @@ fakeJdBaseURL = "http://test.jxc4.com/qqqq" ebaiStorePageCookieWMUSS = "B0AAFQCAAAGbhkuMCsvcyYBDkkyAxBGIBlgXAQYVwc7VwYZFkx2HDoPSmo5eV1femopWgJRawhgAALG04cg1RUmhUakBbJRdgPS0tNEhnQhNRewwuWwYYBDEFPCQSDXV5YWA6PAVRHUJ9SnVGMThYAjNjLw9pRxIbS04-XFo05AQgBl%7ERLA33vWcR73gEAKZ" ebaiStorePageCookieWMSTOKEN = "gAALgNAAAGfBI5YEBHSQdZY1InIS8CVQU9aBU1f3VLWVQqKHAAAc5LnRLZ1QLLx0S5IuzCSX8ZQ7oUwAAUr-GEm9JpRc9AQAAsLkLHHXzuhh2lZkbyrcAAAWBESKg3ZA" -ebaiStorePageCookieWMUSS2 = "A8AAIcCAAADJhpNHQoGGjZaLFRBdnE7Uwp9TBQXH1o9RTBgP30NQiQmEEAwFVplbwc6wAAMXwsa082aRxJfzskPX9THj9RKgJ0TxE1fyYPZRYVH0YSSjFgARt8Shs3bVc3QHV2Eh94B24KO20vSlJEXnELcDxTl9sJ35T2Dvg21A3wCT0NMXaNAcPzKhPamv" -ebaiStorePageCookieWMSTOKEN2 = "A4AANwHAAARMA9ZWhh6BzcGYTQZJjVOHGIxPUdPVElXQz8iahGqiIS5gAAsLaD8yOwpYLCVMU2qqCEN8nAyiUQAAUr-GEu-F2xVbAQAAYcnZGrUx2Rf9qJkbRKQAAONp" +# ebaiStorePageCookieWMUSS2 = "A8AAIcCAAADJhpNHQoGGjZaLFRBdnE7Uwp9TBQXH1o9RTBgP30NQiQmEEAwFVplbwc6wAAMXwsa082aRxJfzskPX9THj9RKgJ0TxE1fyYPZRYVH0YSSjFgARt8Shs3bVc3QHV2Eh94B24KO20vSlJEXnELcDxTl9sJ35T2Dvg21A3wCT0NMXaNAcPzKhPamv" +# ebaiStorePageCookieWMSTOKEN2 = "A4AANwHAAARMA9ZWhh6BzcGYTQZJjVOHGIxPUdPVElXQz8iahGqiIS5gAAsLaD8yOwpYLCVMU2qqCEN8nAyiUQAAUr-GEu-F2xVbAQAAYcnZGrUx2Rf9qJkbRKQAAONp" # ebaiStorePageCookieExdTOKEN = "PBE_2.0_5cd1c6141c127d41d12be02a04e58e0a2529c8ac5aad36be932f6e341f8be9a0e56b833c924cc95dd2ced76b31ea6fcbc7341cc9c03e3e2f470441192d51fc8bd81b6c5d24a867630a65400e688ff8f4453895ca9a18d7e91726941b28631cf2ab81797279967fcb03ae57e5bc33bf91e4495727569681c724597fb2c639a85c145723c12de262224e2536ad2c6f94bcae0c10c8f30728a6ea3ab6000940fffaa66271f17ecbae139f0b4fdfff791b7986a88b8f252827e799a2e1862ec522fd4c51c70ae9d17c69da93f1c12715bf9e0b35eccf39ae605d424c83319acaa7acbe191a8ee410afd1d02d1e02834ce6cbd2503b89f30efc1f7635a1e71e10e3370fc79b33e6352290e87f82b1cb8ac91195a09ff28e4418923e89993eb10d01e39fb621d517a14081611b25e83da9ec860fbacd2cb13562271585b53a0a7178e8f614bd62ffa442c78a10f008b3721675cad803024fad0c13aeecd64d1360bab4127883d2e7198201" mtpsStoreToken = "M0p9VatZSeSHfrosD5IViAVl73IcA8mlcuHIV5sG6Zpv83a7JE0wY3t26aEhrrs_MR5gtLSFF1UIkt8HAjaXow" From 7b66a66f3e00f6192d899e1fe31e13d16398ed9e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 2 Mar 2020 14:44:35 +0800 Subject: [PATCH 080/286] =?UTF-8?q?Cookie=E5=8A=A0=E5=85=A5=E5=88=B0?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=BA=93=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/misc/misc.go | 14 ++++++++++++-- business/model/new_config.go | 2 ++ globals/api/api.go | 28 ++++++++++++++-------------- 3 files changed, 28 insertions(+), 16 deletions(-) diff --git a/business/jxstore/misc/misc.go b/business/jxstore/misc/misc.go index 34748517b..41efd68c8 100644 --- a/business/jxstore/misc/misc.go +++ b/business/jxstore/misc/misc.go @@ -108,7 +108,9 @@ var ( cancelPayTimeOutOrderList = localjx.GetHalfHoursList() - ebaiStorePageCookieExdTOKEN string + ebaiStorePageCookieExdTOKEN string + ebaiStorePageCookieWMUSS2 string + ebaiStorePageCookieWMSTOKEN2 string ) func GetImportantTaskID(taskName string) string { @@ -206,8 +208,16 @@ func Init() { if configs, err := dao.QueryConfigs(dao.GetDB(), "ebaiStorePageCookieExdTOKEN", model.ConfigTypeSys, ""); err == nil { ebaiStorePageCookieExdTOKEN = configs[0].Value } - api.Ebai2API.SetCookie("PASSPORT_DELIMONT_TOKEN", ebaiStorePageCookieExdTOKEN) + if configs, err := dao.QueryConfigs(dao.GetDB(), "ebaiStorePageCookieWMUSS2", model.ConfigTypeSys, ""); err == nil { + ebaiStorePageCookieWMUSS2 = configs[0].Value + } + if configs, err := dao.QueryConfigs(dao.GetDB(), "ebaiStorePageCookieWMSTOKEN2", model.ConfigTypeSys, ""); err == nil { + ebaiStorePageCookieWMSTOKEN2 = configs[0].Value + } api.EbaiAPI.SetCookie("PASSPORT_DELIMONT_TOKEN", ebaiStorePageCookieExdTOKEN) + api.Ebai2API.SetCookie("PASSPORT_DELIMONT_TOKEN", ebaiStorePageCookieExdTOKEN) + api.Ebai2API.SetCookie("WMUSS", ebaiStorePageCookieWMUSS2) + api.Ebai2API.SetCookie("WMSTOKEN", ebaiStorePageCookieWMSTOKEN2) } func syncStoreSku() { diff --git a/business/model/new_config.go b/business/model/new_config.go index 4dd3f2a43..a2f1bc131 100644 --- a/business/model/new_config.go +++ b/business/model/new_config.go @@ -7,6 +7,7 @@ const ( ConfigTypeBank = "Bank" ConfigTypeRole = "Role" ConfigTypeJxStore = "JxStore" + ConfigTypeCookie = "Cookie" ) const ( @@ -24,6 +25,7 @@ var ( ConfigTypeBank: "银行", ConfigTypeRole: "角色", ConfigTypeJxStore: "京西商城", + ConfigTypeCookie: "Cookie", } ) diff --git a/globals/api/api.go b/globals/api/api.go index 25420c685..6fcf9263f 100644 --- a/globals/api/api.go +++ b/globals/api/api.go @@ -127,22 +127,22 @@ func Init() { } if !beego.AppConfig.DefaultBool("disableEbai", false) { EbaiAPI = ebaiapi.New(beego.AppConfig.String("ebaiSource"), beego.AppConfig.String("ebaiSecret")) - ebaiStorePageCookieWMUSS := beego.AppConfig.DefaultString("ebaiStorePageCookieWMUSS", "") - ebaiStorePageCookieWMSTOKEN := beego.AppConfig.DefaultString("ebaiStorePageCookieWMSTOKEN", "") + // ebaiStorePageCookieWMUSS := beego.AppConfig.DefaultString("ebaiStorePageCookieWMUSS", "") + // ebaiStorePageCookieWMSTOKEN := beego.AppConfig.DefaultString("ebaiStorePageCookieWMSTOKEN", "") // ebaiStorePageCookieExdTOKEN := beego.AppConfig.DefaultString("ebaiStorePageCookieExdTOKEN", "") - if ebaiStorePageCookieWMUSS != "" && ebaiStorePageCookieWMSTOKEN != "" { //&& ebaiStorePageCookieExdTOKEN != "" { - EbaiAPI.SetCookie("WMUSS", ebaiStorePageCookieWMUSS) - EbaiAPI.SetCookie("WMSTOKEN", ebaiStorePageCookieWMSTOKEN) - // EbaiAPI.SetCookie("PASSPORT_DELIMONT_TOKEN", ebaiStorePageCookieExdTOKEN) - } + // if ebaiStorePageCookieWMUSS != "" && ebaiStorePageCookieWMSTOKEN != "" { //&& ebaiStorePageCookieExdTOKEN != "" { + // EbaiAPI.SetCookie("WMUSS", ebaiStorePageCookieWMUSS) + // EbaiAPI.SetCookie("WMSTOKEN", ebaiStorePageCookieWMSTOKEN) + // EbaiAPI.SetCookie("PASSPORT_DELIMONT_TOKEN", ebaiStorePageCookieExdTOKEN) + // } Ebai2API = ebaiapi.New(beego.AppConfig.String("ebaiSource"), beego.AppConfig.String("ebaiSecret")) - ebaiStorePageCookieWMUSS2 := beego.AppConfig.DefaultString("ebaiStorePageCookieWMUSS2", "") - ebaiStorePageCookieWMSTOKEN2 := beego.AppConfig.DefaultString("ebaiStorePageCookieWMSTOKEN2", "") - if ebaiStorePageCookieWMUSS2 != "" && ebaiStorePageCookieWMSTOKEN2 != "" { //&& ebaiStorePageCookieExdTOKEN != "" { - Ebai2API.SetCookie("WMUSS", ebaiStorePageCookieWMUSS2) - Ebai2API.SetCookie("WMSTOKEN", ebaiStorePageCookieWMSTOKEN2) - // Ebai2API.SetCookie("PASSPORT_DELIMONT_TOKEN", ebaiStorePageCookieExdTOKEN) - } + // ebaiStorePageCookieWMUSS2 := beego.AppConfig.DefaultString("ebaiStorePageCookieWMUSS2", "") + // ebaiStorePageCookieWMSTOKEN2 := beego.AppConfig.DefaultString("ebaiStorePageCookieWMSTOKEN2", "") + // if ebaiStorePageCookieWMUSS2 != "" && ebaiStorePageCookieWMSTOKEN2 != "" { //&& ebaiStorePageCookieExdTOKEN != "" { + // Ebai2API.SetCookie("WMUSS", ebaiStorePageCookieWMUSS2) + // Ebai2API.SetCookie("WMSTOKEN", ebaiStorePageCookieWMSTOKEN2) + // Ebai2API.SetCookie("PASSPORT_DELIMONT_TOKEN", ebaiStorePageCookieExdTOKEN) + // } } else { EbaiAPI = nil Ebai2API = nil From c228757932a596e2f3ac6f3f6bc4f17bd64f6b59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 2 Mar 2020 14:50:15 +0800 Subject: [PATCH 081/286] =?UTF-8?q?cookie=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- globals/api/api.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/globals/api/api.go b/globals/api/api.go index 6fcf9263f..c79da4934 100644 --- a/globals/api/api.go +++ b/globals/api/api.go @@ -111,9 +111,9 @@ func Init() { } if !beego.AppConfig.DefaultBool("disableMtwm", false) { MtwmAPI = mtwmapi.New(beego.AppConfig.String("mtwmAppID"), beego.AppConfig.String("mtwmSecret"), beego.AppConfig.String("mtwmCallbackURL")) - if mtwmCookieStr := beego.AppConfig.DefaultString("mtwmCookieStr", ""); mtwmCookieStr != "" { - MtwmAPI.SetCookieWithStr(mtwmCookieStr) - } + // if mtwmCookieStr := beego.AppConfig.DefaultString("mtwmCookieStr", ""); mtwmCookieStr != "" { + // MtwmAPI.SetCookieWithStr(mtwmCookieStr) + // } } else { MtwmAPI = nil } @@ -130,7 +130,7 @@ func Init() { // ebaiStorePageCookieWMUSS := beego.AppConfig.DefaultString("ebaiStorePageCookieWMUSS", "") // ebaiStorePageCookieWMSTOKEN := beego.AppConfig.DefaultString("ebaiStorePageCookieWMSTOKEN", "") // ebaiStorePageCookieExdTOKEN := beego.AppConfig.DefaultString("ebaiStorePageCookieExdTOKEN", "") - // if ebaiStorePageCookieWMUSS != "" && ebaiStorePageCookieWMSTOKEN != "" { //&& ebaiStorePageCookieExdTOKEN != "" { + // if ebaiStorePageCookieWMUSS != "" && ebaiStorePageCookieWMSTOKEN != "" && ebaiStorePageCookieExdTOKEN != "" { // EbaiAPI.SetCookie("WMUSS", ebaiStorePageCookieWMUSS) // EbaiAPI.SetCookie("WMSTOKEN", ebaiStorePageCookieWMSTOKEN) // EbaiAPI.SetCookie("PASSPORT_DELIMONT_TOKEN", ebaiStorePageCookieExdTOKEN) @@ -138,7 +138,7 @@ func Init() { Ebai2API = ebaiapi.New(beego.AppConfig.String("ebaiSource"), beego.AppConfig.String("ebaiSecret")) // ebaiStorePageCookieWMUSS2 := beego.AppConfig.DefaultString("ebaiStorePageCookieWMUSS2", "") // ebaiStorePageCookieWMSTOKEN2 := beego.AppConfig.DefaultString("ebaiStorePageCookieWMSTOKEN2", "") - // if ebaiStorePageCookieWMUSS2 != "" && ebaiStorePageCookieWMSTOKEN2 != "" { //&& ebaiStorePageCookieExdTOKEN != "" { + // if ebaiStorePageCookieWMUSS2 != "" && ebaiStorePageCookieWMSTOKEN2 != "" && ebaiStorePageCookieExdTOKEN != "" { // Ebai2API.SetCookie("WMUSS", ebaiStorePageCookieWMUSS2) // Ebai2API.SetCookie("WMSTOKEN", ebaiStorePageCookieWMSTOKEN2) // Ebai2API.SetCookie("PASSPORT_DELIMONT_TOKEN", ebaiStorePageCookieExdTOKEN) From 3e11fe85fd4193eeedbb9defa9cccb41e98c40c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 2 Mar 2020 14:55:00 +0800 Subject: [PATCH 082/286] =?UTF-8?q?=E5=B0=9D=E8=AF=95=E4=BB=8E=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=BA=93=E4=B8=AD=E5=8F=96cookie?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- conf/app.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conf/app.conf b/conf/app.conf index 0789648e9..d0b1aa10a 100644 --- a/conf/app.conf +++ b/conf/app.conf @@ -15,7 +15,7 @@ dadaAppSecret = "7f97d8f258b70b450f04e7ab274ed8f8" mtwmAppID = "589" mtwmSecret = "a81eb3df418d83d6a1a4b7c572156d2f" mtwmCallbackURL = "http://callback.jxc4.com" -mtwmCookieStr = "_lxsdk_cuid=16ddced5e9a95-0a65869c427a14-48714616-15f900-16ddced5e9b2b; _hc.v=cfebbfd1-79a7-9823-d8df-77e59646cb34.1571369610; _lxsdk=16ddced5e9a95-0a65869c427a14-48714616-15f900-16ddced5e9b2b; uuid_update=true; uuid=7b28e71504f5414e382b.1579155871.1.0.0; device_uuid=!64dedf83-b510-4910-8a31-b2b13d0bdd73; pushToken=00kRvxlerO15kB0dJFWDwYuctAoe04xGMNd0r3BqvLUA*; acctId=57396785; brandId=-1; wmPoiId=-1; isOfflineSelfOpen=0; city_id=0; isChain=1; existBrandPoi=true; ignore_set_router_proxy=true; region_id=; region_version=0; newCategory=false; bsid=OyqgRLyV54i9JKP0zRCI9jPyXc4UBU-6KReDAkPIwSlljhb97JPyFUIXfYQvhlJb6G1erzHQKbvtZ2pSWOYDxQ; cityId=510100; provinceId=510000; city_location_id=0; location_id=0; igateApp=shangouepc; wpush_server_url=wss://wpush.meituan.com; token=0MScAPaSa57iwRpgpCmGLf21tiA4yU4Uy-nDZlv8wNWs*; shopCategory=food; set_info=%7B%22wmPoiId%22%3A-1%2C%22ignoreSetRouterProxy%22%3Atrue%7D; JSESSIONID=105dgww27nsy6yfp68q7wmcni; LX_SC_CONSTANT=c_shangou_online_e_znrurnrc; _lxsdk_s=17041b590ac-3d-689-a8c%7C%7C15" +# mtwmCookieStr = "_lxsdk_cuid=16ddced5e9a95-0a65869c427a14-48714616-15f900-16ddced5e9b2b; _hc.v=cfebbfd1-79a7-9823-d8df-77e59646cb34.1571369610; _lxsdk=16ddced5e9a95-0a65869c427a14-48714616-15f900-16ddced5e9b2b; uuid_update=true; uuid=7b28e71504f5414e382b.1579155871.1.0.0; device_uuid=!64dedf83-b510-4910-8a31-b2b13d0bdd73; pushToken=00kRvxlerO15kB0dJFWDwYuctAoe04xGMNd0r3BqvLUA*; acctId=57396785; brandId=-1; wmPoiId=-1; isOfflineSelfOpen=0; city_id=0; isChain=1; existBrandPoi=true; ignore_set_router_proxy=true; region_id=; region_version=0; newCategory=false; bsid=OyqgRLyV54i9JKP0zRCI9jPyXc4UBU-6KReDAkPIwSlljhb97JPyFUIXfYQvhlJb6G1erzHQKbvtZ2pSWOYDxQ; cityId=510100; provinceId=510000; city_location_id=0; location_id=0; igateApp=shangouepc; wpush_server_url=wss://wpush.meituan.com; token=0MScAPaSa57iwRpgpCmGLf21tiA4yU4Uy-nDZlv8wNWs*; shopCategory=food; set_info=%7B%22wmPoiId%22%3A-1%2C%22ignoreSetRouterProxy%22%3Atrue%7D; JSESSIONID=105dgww27nsy6yfp68q7wmcni; LX_SC_CONSTANT=c_shangou_online_e_znrurnrc; _lxsdk_s=17041b590ac-3d-689-a8c%7C%7C15" autonaviKey = "ef64f638f31e05cb7bde28790f7309fe" From 6f257dbf757496040d781d37eb0b484f1cbf11fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 2 Mar 2020 15:02:09 +0800 Subject: [PATCH 083/286] =?UTF-8?q?=E6=9B=B4=E6=8D=A2configtype?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/misc/misc.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/business/jxstore/misc/misc.go b/business/jxstore/misc/misc.go index 41efd68c8..0ea33caeb 100644 --- a/business/jxstore/misc/misc.go +++ b/business/jxstore/misc/misc.go @@ -205,13 +205,13 @@ func Init() { "04:05:06", }) } - if configs, err := dao.QueryConfigs(dao.GetDB(), "ebaiStorePageCookieExdTOKEN", model.ConfigTypeSys, ""); err == nil { + if configs, err := dao.QueryConfigs(dao.GetDB(), "ebaiStorePageCookieExdTOKEN", model.ConfigTypeCookie, ""); err == nil { ebaiStorePageCookieExdTOKEN = configs[0].Value } - if configs, err := dao.QueryConfigs(dao.GetDB(), "ebaiStorePageCookieWMUSS2", model.ConfigTypeSys, ""); err == nil { + if configs, err := dao.QueryConfigs(dao.GetDB(), "ebaiStorePageCookieWMUSS2", model.ConfigTypeCookie, ""); err == nil { ebaiStorePageCookieWMUSS2 = configs[0].Value } - if configs, err := dao.QueryConfigs(dao.GetDB(), "ebaiStorePageCookieWMSTOKEN2", model.ConfigTypeSys, ""); err == nil { + if configs, err := dao.QueryConfigs(dao.GetDB(), "ebaiStorePageCookieWMSTOKEN2", model.ConfigTypeCookie, ""); err == nil { ebaiStorePageCookieWMSTOKEN2 = configs[0].Value } api.EbaiAPI.SetCookie("PASSPORT_DELIMONT_TOKEN", ebaiStorePageCookieExdTOKEN) From 96f60e2d06f34d3f3ee4b310573dcadb15e22e5e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 2 Mar 2020 15:18:49 +0800 Subject: [PATCH 084/286] =?UTF-8?q?cookie=E6=A3=80=E6=9F=A5=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/event/event.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/business/jxstore/event/event.go b/business/jxstore/event/event.go index c10782004..c23d49b7c 100644 --- a/business/jxstore/event/event.go +++ b/business/jxstore/event/event.go @@ -142,6 +142,7 @@ func GetCheckVendorCookie(ctx *jxcontext.Context, vendorIDs []int, isAuto bool) var ( ebaiOrderID = "1577329467196263592" ebaiErr = "return not json" + ebaiErr2 = "系统错误" mtStoreID = "7388603" mtErr = "返回结果格式不正常" jdUpcCode = "6952395700895" @@ -159,7 +160,7 @@ func GetCheckVendorCookie(ctx *jxcontext.Context, vendorIDs []int, isAuto bool) case model.VendorIDEBAI: resultMap, err := api.EbaiAPI.GetStoreOrderInfo(ebaiOrderID) if len(resultMap) < 1 && err != nil { - if strings.Contains(err.Error(), ebaiErr) { + if strings.Contains(err.Error(), ebaiErr) || strings.Contains(err.Error(), ebaiErr2) { errMsg += fmt.Sprintf(" 饿百账号:[%v]的Cookie无效了!", vv) flag = true } From b74f8bf0f912408f2a5f8f8f2cedf93580949bb6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 2 Mar 2020 15:33:22 +0800 Subject: [PATCH 085/286] =?UTF-8?q?=E6=B5=8B=E8=AF=95cookie=E6=A3=80?= =?UTF-8?q?=E6=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/event/event.go | 1 + 1 file changed, 1 insertion(+) diff --git a/business/jxstore/event/event.go b/business/jxstore/event/event.go index c23d49b7c..0ea5fe676 100644 --- a/business/jxstore/event/event.go +++ b/business/jxstore/event/event.go @@ -186,6 +186,7 @@ func GetCheckVendorCookie(ctx *jxcontext.Context, vendorIDs []int, isAuto bool) flag = true } case model.VendorIDMTWM: + fmt.Println("test1") _, err := api.MtwmAPI.PackagePriceGet(mtStoreID) if err != nil { if strings.Contains(err.Error(), mtErr) { From 2b4d90927a229905aac10f8b6fc57329cbecb436 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 2 Mar 2020 15:35:54 +0800 Subject: [PATCH 086/286] =?UTF-8?q?=E6=B5=8B=E8=AF=95cookie=E6=A3=80?= =?UTF-8?q?=E6=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/event/event.go | 1 - conf/app.conf | 2 +- globals/api/api.go | 6 +++--- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/business/jxstore/event/event.go b/business/jxstore/event/event.go index 0ea5fe676..c23d49b7c 100644 --- a/business/jxstore/event/event.go +++ b/business/jxstore/event/event.go @@ -186,7 +186,6 @@ func GetCheckVendorCookie(ctx *jxcontext.Context, vendorIDs []int, isAuto bool) flag = true } case model.VendorIDMTWM: - fmt.Println("test1") _, err := api.MtwmAPI.PackagePriceGet(mtStoreID) if err != nil { if strings.Contains(err.Error(), mtErr) { diff --git a/conf/app.conf b/conf/app.conf index d0b1aa10a..0789648e9 100644 --- a/conf/app.conf +++ b/conf/app.conf @@ -15,7 +15,7 @@ dadaAppSecret = "7f97d8f258b70b450f04e7ab274ed8f8" mtwmAppID = "589" mtwmSecret = "a81eb3df418d83d6a1a4b7c572156d2f" mtwmCallbackURL = "http://callback.jxc4.com" -# mtwmCookieStr = "_lxsdk_cuid=16ddced5e9a95-0a65869c427a14-48714616-15f900-16ddced5e9b2b; _hc.v=cfebbfd1-79a7-9823-d8df-77e59646cb34.1571369610; _lxsdk=16ddced5e9a95-0a65869c427a14-48714616-15f900-16ddced5e9b2b; uuid_update=true; uuid=7b28e71504f5414e382b.1579155871.1.0.0; device_uuid=!64dedf83-b510-4910-8a31-b2b13d0bdd73; pushToken=00kRvxlerO15kB0dJFWDwYuctAoe04xGMNd0r3BqvLUA*; acctId=57396785; brandId=-1; wmPoiId=-1; isOfflineSelfOpen=0; city_id=0; isChain=1; existBrandPoi=true; ignore_set_router_proxy=true; region_id=; region_version=0; newCategory=false; bsid=OyqgRLyV54i9JKP0zRCI9jPyXc4UBU-6KReDAkPIwSlljhb97JPyFUIXfYQvhlJb6G1erzHQKbvtZ2pSWOYDxQ; cityId=510100; provinceId=510000; city_location_id=0; location_id=0; igateApp=shangouepc; wpush_server_url=wss://wpush.meituan.com; token=0MScAPaSa57iwRpgpCmGLf21tiA4yU4Uy-nDZlv8wNWs*; shopCategory=food; set_info=%7B%22wmPoiId%22%3A-1%2C%22ignoreSetRouterProxy%22%3Atrue%7D; JSESSIONID=105dgww27nsy6yfp68q7wmcni; LX_SC_CONSTANT=c_shangou_online_e_znrurnrc; _lxsdk_s=17041b590ac-3d-689-a8c%7C%7C15" +mtwmCookieStr = "_lxsdk_cuid=16ddced5e9a95-0a65869c427a14-48714616-15f900-16ddced5e9b2b; _hc.v=cfebbfd1-79a7-9823-d8df-77e59646cb34.1571369610; _lxsdk=16ddced5e9a95-0a65869c427a14-48714616-15f900-16ddced5e9b2b; uuid_update=true; uuid=7b28e71504f5414e382b.1579155871.1.0.0; device_uuid=!64dedf83-b510-4910-8a31-b2b13d0bdd73; pushToken=00kRvxlerO15kB0dJFWDwYuctAoe04xGMNd0r3BqvLUA*; acctId=57396785; brandId=-1; wmPoiId=-1; isOfflineSelfOpen=0; city_id=0; isChain=1; existBrandPoi=true; ignore_set_router_proxy=true; region_id=; region_version=0; newCategory=false; bsid=OyqgRLyV54i9JKP0zRCI9jPyXc4UBU-6KReDAkPIwSlljhb97JPyFUIXfYQvhlJb6G1erzHQKbvtZ2pSWOYDxQ; cityId=510100; provinceId=510000; city_location_id=0; location_id=0; igateApp=shangouepc; wpush_server_url=wss://wpush.meituan.com; token=0MScAPaSa57iwRpgpCmGLf21tiA4yU4Uy-nDZlv8wNWs*; shopCategory=food; set_info=%7B%22wmPoiId%22%3A-1%2C%22ignoreSetRouterProxy%22%3Atrue%7D; JSESSIONID=105dgww27nsy6yfp68q7wmcni; LX_SC_CONSTANT=c_shangou_online_e_znrurnrc; _lxsdk_s=17041b590ac-3d-689-a8c%7C%7C15" autonaviKey = "ef64f638f31e05cb7bde28790f7309fe" diff --git a/globals/api/api.go b/globals/api/api.go index c79da4934..8491bf881 100644 --- a/globals/api/api.go +++ b/globals/api/api.go @@ -111,9 +111,9 @@ func Init() { } if !beego.AppConfig.DefaultBool("disableMtwm", false) { MtwmAPI = mtwmapi.New(beego.AppConfig.String("mtwmAppID"), beego.AppConfig.String("mtwmSecret"), beego.AppConfig.String("mtwmCallbackURL")) - // if mtwmCookieStr := beego.AppConfig.DefaultString("mtwmCookieStr", ""); mtwmCookieStr != "" { - // MtwmAPI.SetCookieWithStr(mtwmCookieStr) - // } + if mtwmCookieStr := beego.AppConfig.DefaultString("mtwmCookieStr", ""); mtwmCookieStr != "" { + MtwmAPI.SetCookieWithStr(mtwmCookieStr) + } } else { MtwmAPI = nil } From 0dca8a5d95831f1cd83a980f67e96bb34d660623 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 2 Mar 2020 15:41:45 +0800 Subject: [PATCH 087/286] =?UTF-8?q?cookie=E8=AE=BE=E7=BD=AE=E5=9C=A8newcon?= =?UTF-8?q?fig?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/cms.go | 1 + business/jxstore/misc/misc.go | 15 +++++++++++++++ conf/app.conf | 2 +- globals/api/api.go | 6 +++--- 4 files changed, 20 insertions(+), 4 deletions(-) diff --git a/business/jxstore/cms/cms.go b/business/jxstore/cms/cms.go index 03952ebe1..e6df5aa6c 100644 --- a/business/jxstore/cms/cms.go +++ b/business/jxstore/cms/cms.go @@ -297,6 +297,7 @@ func checkConfig(opFlag int, configType, key, value string) (err error) { err = checkSysConfig(key, value) } case model.ConfigTypeJxStore: + case model.ConfigTypeCookie: default: err = fmt.Errorf("当前只支持配置:%s, 传入的配置类型:%s", utils.Format4Output(model.ConfigTypeName, true), configType) } diff --git a/business/jxstore/misc/misc.go b/business/jxstore/misc/misc.go index 0ea33caeb..ac74fbe3a 100644 --- a/business/jxstore/misc/misc.go +++ b/business/jxstore/misc/misc.go @@ -111,6 +111,9 @@ var ( ebaiStorePageCookieExdTOKEN string ebaiStorePageCookieWMUSS2 string ebaiStorePageCookieWMSTOKEN2 string + ebaiStorePageCookieWMUSS string + ebaiStorePageCookieWMSTOKEN string + mtwmCookieStr string ) func GetImportantTaskID(taskName string) string { @@ -214,10 +217,22 @@ func Init() { if configs, err := dao.QueryConfigs(dao.GetDB(), "ebaiStorePageCookieWMSTOKEN2", model.ConfigTypeCookie, ""); err == nil { ebaiStorePageCookieWMSTOKEN2 = configs[0].Value } + if configs, err := dao.QueryConfigs(dao.GetDB(), "ebaiStorePageCookieWMUSS", model.ConfigTypeCookie, ""); err == nil { + ebaiStorePageCookieWMUSS = configs[0].Value + } + if configs, err := dao.QueryConfigs(dao.GetDB(), "ebaiStorePageCookieWMSTOKEN", model.ConfigTypeCookie, ""); err == nil { + ebaiStorePageCookieWMSTOKEN = configs[0].Value + } + if configs, err := dao.QueryConfigs(dao.GetDB(), "mtwmCookieStr", model.ConfigTypeCookie, ""); err == nil { + mtwmCookieStr = configs[0].Value + } api.EbaiAPI.SetCookie("PASSPORT_DELIMONT_TOKEN", ebaiStorePageCookieExdTOKEN) + api.EbaiAPI.SetCookie("WMUSS", ebaiStorePageCookieWMUSS) + api.EbaiAPI.SetCookie("WMSTOKEN", ebaiStorePageCookieWMSTOKEN) api.Ebai2API.SetCookie("PASSPORT_DELIMONT_TOKEN", ebaiStorePageCookieExdTOKEN) api.Ebai2API.SetCookie("WMUSS", ebaiStorePageCookieWMUSS2) api.Ebai2API.SetCookie("WMSTOKEN", ebaiStorePageCookieWMSTOKEN2) + api.MtwmAPI.SetCookieWithStr(mtwmCookieStr) } func syncStoreSku() { diff --git a/conf/app.conf b/conf/app.conf index 0789648e9..d0b1aa10a 100644 --- a/conf/app.conf +++ b/conf/app.conf @@ -15,7 +15,7 @@ dadaAppSecret = "7f97d8f258b70b450f04e7ab274ed8f8" mtwmAppID = "589" mtwmSecret = "a81eb3df418d83d6a1a4b7c572156d2f" mtwmCallbackURL = "http://callback.jxc4.com" -mtwmCookieStr = "_lxsdk_cuid=16ddced5e9a95-0a65869c427a14-48714616-15f900-16ddced5e9b2b; _hc.v=cfebbfd1-79a7-9823-d8df-77e59646cb34.1571369610; _lxsdk=16ddced5e9a95-0a65869c427a14-48714616-15f900-16ddced5e9b2b; uuid_update=true; uuid=7b28e71504f5414e382b.1579155871.1.0.0; device_uuid=!64dedf83-b510-4910-8a31-b2b13d0bdd73; pushToken=00kRvxlerO15kB0dJFWDwYuctAoe04xGMNd0r3BqvLUA*; acctId=57396785; brandId=-1; wmPoiId=-1; isOfflineSelfOpen=0; city_id=0; isChain=1; existBrandPoi=true; ignore_set_router_proxy=true; region_id=; region_version=0; newCategory=false; bsid=OyqgRLyV54i9JKP0zRCI9jPyXc4UBU-6KReDAkPIwSlljhb97JPyFUIXfYQvhlJb6G1erzHQKbvtZ2pSWOYDxQ; cityId=510100; provinceId=510000; city_location_id=0; location_id=0; igateApp=shangouepc; wpush_server_url=wss://wpush.meituan.com; token=0MScAPaSa57iwRpgpCmGLf21tiA4yU4Uy-nDZlv8wNWs*; shopCategory=food; set_info=%7B%22wmPoiId%22%3A-1%2C%22ignoreSetRouterProxy%22%3Atrue%7D; JSESSIONID=105dgww27nsy6yfp68q7wmcni; LX_SC_CONSTANT=c_shangou_online_e_znrurnrc; _lxsdk_s=17041b590ac-3d-689-a8c%7C%7C15" +# mtwmCookieStr = "_lxsdk_cuid=16ddced5e9a95-0a65869c427a14-48714616-15f900-16ddced5e9b2b; _hc.v=cfebbfd1-79a7-9823-d8df-77e59646cb34.1571369610; _lxsdk=16ddced5e9a95-0a65869c427a14-48714616-15f900-16ddced5e9b2b; uuid_update=true; uuid=7b28e71504f5414e382b.1579155871.1.0.0; device_uuid=!64dedf83-b510-4910-8a31-b2b13d0bdd73; pushToken=00kRvxlerO15kB0dJFWDwYuctAoe04xGMNd0r3BqvLUA*; acctId=57396785; brandId=-1; wmPoiId=-1; isOfflineSelfOpen=0; city_id=0; isChain=1; existBrandPoi=true; ignore_set_router_proxy=true; region_id=; region_version=0; newCategory=false; bsid=OyqgRLyV54i9JKP0zRCI9jPyXc4UBU-6KReDAkPIwSlljhb97JPyFUIXfYQvhlJb6G1erzHQKbvtZ2pSWOYDxQ; cityId=510100; provinceId=510000; city_location_id=0; location_id=0; igateApp=shangouepc; wpush_server_url=wss://wpush.meituan.com; token=0MScAPaSa57iwRpgpCmGLf21tiA4yU4Uy-nDZlv8wNWs*; shopCategory=food; set_info=%7B%22wmPoiId%22%3A-1%2C%22ignoreSetRouterProxy%22%3Atrue%7D; JSESSIONID=105dgww27nsy6yfp68q7wmcni; LX_SC_CONSTANT=c_shangou_online_e_znrurnrc; _lxsdk_s=17041b590ac-3d-689-a8c%7C%7C15" autonaviKey = "ef64f638f31e05cb7bde28790f7309fe" diff --git a/globals/api/api.go b/globals/api/api.go index 8491bf881..c79da4934 100644 --- a/globals/api/api.go +++ b/globals/api/api.go @@ -111,9 +111,9 @@ func Init() { } if !beego.AppConfig.DefaultBool("disableMtwm", false) { MtwmAPI = mtwmapi.New(beego.AppConfig.String("mtwmAppID"), beego.AppConfig.String("mtwmSecret"), beego.AppConfig.String("mtwmCallbackURL")) - if mtwmCookieStr := beego.AppConfig.DefaultString("mtwmCookieStr", ""); mtwmCookieStr != "" { - MtwmAPI.SetCookieWithStr(mtwmCookieStr) - } + // if mtwmCookieStr := beego.AppConfig.DefaultString("mtwmCookieStr", ""); mtwmCookieStr != "" { + // MtwmAPI.SetCookieWithStr(mtwmCookieStr) + // } } else { MtwmAPI = nil } From 8c65204007a14deb918c0440ebfb5843294817e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 2 Mar 2020 15:43:58 +0800 Subject: [PATCH 088/286] =?UTF-8?q?=E6=B5=8B=E8=AF=95cookie=E9=A5=BF?= =?UTF-8?q?=E7=99=BE=E7=BE=8E=E5=9B=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- conf/app.conf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/conf/app.conf b/conf/app.conf index d0b1aa10a..8272f4a01 100644 --- a/conf/app.conf +++ b/conf/app.conf @@ -69,8 +69,8 @@ jd2StorePageCookie = "CK5GE5MR2UIOBOZC7BBZLLSI7MVDWPEQ4BRJTJQ2OP3ZFKYDDYTFFV4XOX fakeJdToken = "ndslkv9asl@djf_n7askdjfk$" fakeJdBaseURL = "http://test.jxc4.com/qqqq" -ebaiStorePageCookieWMUSS = "B0AAFQCAAAGbhkuMCsvcyYBDkkyAxBGIBlgXAQYVwc7VwYZFkx2HDoPSmo5eV1femopWgJRawhgAALG04cg1RUmhUakBbJRdgPS0tNEhnQhNRewwuWwYYBDEFPCQSDXV5YWA6PAVRHUJ9SnVGMThYAjNjLw9pRxIbS04-XFo05AQgBl%7ERLA33vWcR73gEAKZ" -ebaiStorePageCookieWMSTOKEN = "gAALgNAAAGfBI5YEBHSQdZY1InIS8CVQU9aBU1f3VLWVQqKHAAAc5LnRLZ1QLLx0S5IuzCSX8ZQ7oUwAAUr-GEm9JpRc9AQAAsLkLHHXzuhh2lZkbyrcAAAWBESKg3ZA" +# ebaiStorePageCookieWMUSS = "B0AAFQCAAAGbhkuMCsvcyYBDkkyAxBGIBlgXAQYVwc7VwYZFkx2HDoPSmo5eV1femopWgJRawhgAALG04cg1RUmhUakBbJRdgPS0tNEhnQhNRewwuWwYYBDEFPCQSDXV5YWA6PAVRHUJ9SnVGMThYAjNjLw9pRxIbS04-XFo05AQgBl%7ERLA33vWcR73gEAKZ" +# ebaiStorePageCookieWMSTOKEN = "gAALgNAAAGfBI5YEBHSQdZY1InIS8CVQU9aBU1f3VLWVQqKHAAAc5LnRLZ1QLLx0S5IuzCSX8ZQ7oUwAAUr-GEm9JpRc9AQAAsLkLHHXzuhh2lZkbyrcAAAWBESKg3ZA" # ebaiStorePageCookieWMUSS2 = "A8AAIcCAAADJhpNHQoGGjZaLFRBdnE7Uwp9TBQXH1o9RTBgP30NQiQmEEAwFVplbwc6wAAMXwsa082aRxJfzskPX9THj9RKgJ0TxE1fyYPZRYVH0YSSjFgARt8Shs3bVc3QHV2Eh94B24KO20vSlJEXnELcDxTl9sJ35T2Dvg21A3wCT0NMXaNAcPzKhPamv" # ebaiStorePageCookieWMSTOKEN2 = "A4AANwHAAARMA9ZWhh6BzcGYTQZJjVOHGIxPUdPVElXQz8iahGqiIS5gAAsLaD8yOwpYLCVMU2qqCEN8nAyiUQAAUr-GEu-F2xVbAQAAYcnZGrUx2Rf9qJkbRKQAAONp" # ebaiStorePageCookieExdTOKEN = "PBE_2.0_5cd1c6141c127d41d12be02a04e58e0a2529c8ac5aad36be932f6e341f8be9a0e56b833c924cc95dd2ced76b31ea6fcbc7341cc9c03e3e2f470441192d51fc8bd81b6c5d24a867630a65400e688ff8f4453895ca9a18d7e91726941b28631cf2ab81797279967fcb03ae57e5bc33bf91e4495727569681c724597fb2c639a85c145723c12de262224e2536ad2c6f94bcae0c10c8f30728a6ea3ab6000940fffaa66271f17ecbae139f0b4fdfff791b7986a88b8f252827e799a2e1862ec522fd4c51c70ae9d17c69da93f1c12715bf9e0b35eccf39ae605d424c83319acaa7acbe191a8ee410afd1d02d1e02834ce6cbd2503b89f30efc1f7635a1e71e10e3370fc79b33e6352290e87f82b1cb8ac91195a09ff28e4418923e89993eb10d01e39fb621d517a14081611b25e83da9ec860fbacd2cb13562271585b53a0a7178e8f614bd62ffa442c78a10f008b3721675cad803024fad0c13aeecd64d1360bab4127883d2e7198201" From 0d8f586b0a8641bd7a845daf440da940f34caf59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 2 Mar 2020 16:34:24 +0800 Subject: [PATCH 089/286] =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E6=9C=89=E6=89=80coo?= =?UTF-8?q?kie=E5=88=B0=E6=95=B0=E6=8D=AE=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/misc/misc.go | 19 +++++++++++++++++++ conf/app.conf | 6 +++--- globals/api/api.go | 14 +++++++------- 3 files changed, 29 insertions(+), 10 deletions(-) diff --git a/business/jxstore/misc/misc.go b/business/jxstore/misc/misc.go index ac74fbe3a..ab709c6b5 100644 --- a/business/jxstore/misc/misc.go +++ b/business/jxstore/misc/misc.go @@ -6,6 +6,8 @@ import ( "sync" "time" + "git.rosy.net.cn/baseapi/platformapi/jdapi" + "git.rosy.net.cn/jx-callback/business/partner/purchase/jx/localjx" "git.rosy.net.cn/jx-callback/globals/api" @@ -114,6 +116,9 @@ var ( ebaiStorePageCookieWMUSS string ebaiStorePageCookieWMSTOKEN string mtwmCookieStr string + mtpsStoreToken string + jd2StorePageCookie string + JdStorePageCookie string ) func GetImportantTaskID(taskName string) string { @@ -226,6 +231,15 @@ func Init() { if configs, err := dao.QueryConfigs(dao.GetDB(), "mtwmCookieStr", model.ConfigTypeCookie, ""); err == nil { mtwmCookieStr = configs[0].Value } + if configs, err := dao.QueryConfigs(dao.GetDB(), "mtpsStoreToken", model.ConfigTypeCookie, ""); err == nil { + mtpsStoreToken = configs[0].Value + } + if configs, err := dao.QueryConfigs(dao.GetDB(), "jdStorePageCookie", model.ConfigTypeCookie, ""); err == nil { + JdStorePageCookie = configs[0].Value + } + if configs, err := dao.QueryConfigs(dao.GetDB(), "jd2StorePageCookie", model.ConfigTypeCookie, ""); err == nil { + jd2StorePageCookie = configs[0].Value + } api.EbaiAPI.SetCookie("PASSPORT_DELIMONT_TOKEN", ebaiStorePageCookieExdTOKEN) api.EbaiAPI.SetCookie("WMUSS", ebaiStorePageCookieWMUSS) api.EbaiAPI.SetCookie("WMSTOKEN", ebaiStorePageCookieWMSTOKEN) @@ -233,6 +247,11 @@ func Init() { api.Ebai2API.SetCookie("WMUSS", ebaiStorePageCookieWMUSS2) api.Ebai2API.SetCookie("WMSTOKEN", ebaiStorePageCookieWMSTOKEN2) api.MtwmAPI.SetCookieWithStr(mtwmCookieStr) + api.MtpsAPI.SetCookie("token", mtpsStoreToken) + api.Jd2API.SetJdCookie(jd2StorePageCookie) + api.JdAPI.SetJdCookie(JdStorePageCookie) + api.JdPageAPI.SetCookie(jdapi.AccessStorePageCookieName, JdStorePageCookie) + api.JdPageAPI.SetCookie(jdapi.AccessStorePageCookieName2, JdStorePageCookie) } func syncStoreSku() { diff --git a/conf/app.conf b/conf/app.conf index 8272f4a01..a75502f72 100644 --- a/conf/app.conf +++ b/conf/app.conf @@ -64,8 +64,8 @@ tonglianPayNotifyURL = "http://callback.test.jxc4.com/tonglian/msg/" backstageHost = "http://www.jxc4.com" wxBackstageHost = "http://wx.jxc4.com" -jdStorePageCookie = "YYJV3NHVBPHLD36FWP6F3EM5PTXJ2XZQS7U4HWRIDPP4IWGUKUIB4XG5N26CZRDLDF7PKOXBPD6BNTUAJLETLZOIWMCVFI3K6MYZIY4QBIXIMXYDJNUKFGJVQTN5356SAD6WPCIHWNQAG7DDMF7L7S3SHD6O37OTAHUCKU6ALXATYTGMHNFLM4XRLVSFUQAJR77M4URSZRKVO55243TDVXLO25PP4UYSPTTPMNRUFXDNP4WPE566Q6V4AH32F7HT" -jd2StorePageCookie = "CK5GE5MR2UIOBOZC7BBZLLSI7MVDWPEQ4BRJTJQ2OP3ZFKYDDYTFFV4XOXKLERC2UXFT44TMCUMRFP3C25HD6W3PYONTQCOML6YIZA5Z37P62UXFE655IRGYJ4ZLQIEBYQM32FABIN5RVJYZWPQWSRTZURNRLYV57XJEDWZT5UVZRYUBTN3AT6JJJJ22YHE6ZHCN6LCH27JHSRO55YA6TJH6G54IF72X3UAXCKW5P2G2MT3U6I3527NQFMAFLHXBZKQFFMYUKUHUU4GZWD4O7GO45Y" +# jdStorePageCookie = "YYJV3NHVBPHLD36FWP6F3EM5PTXJ2XZQS7U4HWRIDPP4IWGUKUIB4XG5N26CZRDLDF7PKOXBPD6BNTUAJLETLZOIWMCVFI3K6MYZIY4QBIXIMXYDJNUKFGJVQTN5356SAD6WPCIHWNQAG7DDMF7L7S3SHD6O37OTAHUCKU6ALXATYTGMHNFLM4XRLVSFUQAJR77M4URSZRKVO55243TDVXLO25PP4UYSPTTPMNRUFXDNP4WPE566Q6V4AH32F7HT" +# jd2StorePageCookie = "CK5GE5MR2UIOBOZC7BBZLLSI7MVDWPEQ4BRJTJQ2OP3ZFKYDDYTFFV4XOXKLERC2UXFT44TMCUMRFP3C25HD6W3PYONTQCOML6YIZA5Z37P62UXFE655IRGYJ4ZLQIEBYQM32FABIN5RVJYZWPQWSRTZURNRLYV57XJEDWZT5UVZRYUBTN3AT6JJJJ22YHE6ZHCN6LCH27JHSRO55YA6TJH6G54IF72X3UAXCKW5P2G2MT3U6I3527NQFMAFLHXBZKQFFMYUKUHUU4GZWD4O7GO45Y" fakeJdToken = "ndslkv9asl@djf_n7askdjfk$" fakeJdBaseURL = "http://test.jxc4.com/qqqq" @@ -74,7 +74,7 @@ fakeJdBaseURL = "http://test.jxc4.com/qqqq" # ebaiStorePageCookieWMUSS2 = "A8AAIcCAAADJhpNHQoGGjZaLFRBdnE7Uwp9TBQXH1o9RTBgP30NQiQmEEAwFVplbwc6wAAMXwsa082aRxJfzskPX9THj9RKgJ0TxE1fyYPZRYVH0YSSjFgARt8Shs3bVc3QHV2Eh94B24KO20vSlJEXnELcDxTl9sJ35T2Dvg21A3wCT0NMXaNAcPzKhPamv" # ebaiStorePageCookieWMSTOKEN2 = "A4AANwHAAARMA9ZWhh6BzcGYTQZJjVOHGIxPUdPVElXQz8iahGqiIS5gAAsLaD8yOwpYLCVMU2qqCEN8nAyiUQAAUr-GEu-F2xVbAQAAYcnZGrUx2Rf9qJkbRKQAAONp" # ebaiStorePageCookieExdTOKEN = "PBE_2.0_5cd1c6141c127d41d12be02a04e58e0a2529c8ac5aad36be932f6e341f8be9a0e56b833c924cc95dd2ced76b31ea6fcbc7341cc9c03e3e2f470441192d51fc8bd81b6c5d24a867630a65400e688ff8f4453895ca9a18d7e91726941b28631cf2ab81797279967fcb03ae57e5bc33bf91e4495727569681c724597fb2c639a85c145723c12de262224e2536ad2c6f94bcae0c10c8f30728a6ea3ab6000940fffaa66271f17ecbae139f0b4fdfff791b7986a88b8f252827e799a2e1862ec522fd4c51c70ae9d17c69da93f1c12715bf9e0b35eccf39ae605d424c83319acaa7acbe191a8ee410afd1d02d1e02834ce6cbd2503b89f30efc1f7635a1e71e10e3370fc79b33e6352290e87f82b1cb8ac91195a09ff28e4418923e89993eb10d01e39fb621d517a14081611b25e83da9ec860fbacd2cb13562271585b53a0a7178e8f614bd62ffa442c78a10f008b3721675cad803024fad0c13aeecd64d1360bab4127883d2e7198201" -mtpsStoreToken = "M0p9VatZSeSHfrosD5IViAVl73IcA8mlcuHIV5sG6Zpv83a7JE0wY3t26aEhrrs_MR5gtLSFF1UIkt8HAjaXow" +# mtpsStoreToken = "M0p9VatZSeSHfrosD5IViAVl73IcA8mlcuHIV5sG6Zpv83a7JE0wY3t26aEhrrs_MR5gtLSFF1UIkt8HAjaXow" weimobAppID = "319F5E7FB6784DFCA3684C9333EB7744" weimobAppSecret = "7267AA7F58261F6965599218F5A1D592" diff --git a/globals/api/api.go b/globals/api/api.go index c79da4934..c1a4c1bbe 100644 --- a/globals/api/api.go +++ b/globals/api/api.go @@ -85,16 +85,16 @@ func init() { func Init() { if !beego.AppConfig.DefaultBool("disableJd", false) { JdAPI = jdapi.New(beego.AppConfig.String("jdToken"), beego.AppConfig.String("jdAppKey"), beego.AppConfig.String("jdSecret")) - cookieValue := beego.AppConfig.DefaultString("jdStorePageCookie", "") - JdAPI.SetJdCookie(cookieValue) + // cookieValue := beego.AppConfig.DefaultString("jdStorePageCookie", "") + // JdAPI.SetJdCookie(cookieValue) conf := platformapi.NewDefAPIConfig() conf.MaxSleepSecondWhenExceedLimit = 60 * 30 // 最大重试间隙30分钟 - JdPageAPI = jdapi.NewPageOnly(cookieValue, conf) + JdPageAPI = jdapi.NewPageOnly("", conf) if globals.Jd2OrgCode != "" { Jd2API = jdapi.New(beego.AppConfig.String("jd2Token"), beego.AppConfig.String("jd2AppKey"), beego.AppConfig.String("jd2Secret")) - Jd2API.SetJdCookie(beego.AppConfig.DefaultString("jd2StorePageCookie", "")) + // Jd2API.SetJdCookie(beego.AppConfig.DefaultString("jd2StorePageCookie", "")) } fakeJdToken := beego.AppConfig.DefaultString("fakeJdToken", "") @@ -150,9 +150,9 @@ func Init() { if !beego.AppConfig.DefaultBool("disableMtps", false) { MtpsAPI = mtpsapi.New(beego.AppConfig.String("mtpsAppKey"), beego.AppConfig.String("mtpsSecret")) - if mtpsStoreToken := beego.AppConfig.DefaultString("mtpsStoreToken", ""); mtpsStoreToken != "" { - MtpsAPI.SetCookie("token", mtpsStoreToken) - } + // if mtpsStoreToken := beego.AppConfig.DefaultString("mtpsStoreToken", ""); mtpsStoreToken != "" { + // MtpsAPI.SetCookie("token", mtpsStoreToken) + // } } else { MtpsAPI = nil } From 7a92183a8fee32da2510f7129c3fd4a9ac95b0e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 3 Mar 2020 10:06:24 +0800 Subject: [PATCH 090/286] =?UTF-8?q?=E6=9E=9C=E5=9B=AD=E5=BA=94=E8=AF=A5?= =?UTF-8?q?=E4=B8=8D=E5=AD=98=E5=9C=A8jd2API=EF=BC=8C=E5=B0=9D=E8=AF=95?= =?UTF-8?q?=E8=A7=A3=E5=86=B3=E6=9E=9C=E5=9B=AD=E7=82=B8=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/misc/misc.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/business/jxstore/misc/misc.go b/business/jxstore/misc/misc.go index ab709c6b5..60e33467d 100644 --- a/business/jxstore/misc/misc.go +++ b/business/jxstore/misc/misc.go @@ -240,6 +240,9 @@ func Init() { if configs, err := dao.QueryConfigs(dao.GetDB(), "jd2StorePageCookie", model.ConfigTypeCookie, ""); err == nil { jd2StorePageCookie = configs[0].Value } + if globals.Jd2OrgCode != "" { + api.Jd2API.SetJdCookie(jd2StorePageCookie) + } api.EbaiAPI.SetCookie("PASSPORT_DELIMONT_TOKEN", ebaiStorePageCookieExdTOKEN) api.EbaiAPI.SetCookie("WMUSS", ebaiStorePageCookieWMUSS) api.EbaiAPI.SetCookie("WMSTOKEN", ebaiStorePageCookieWMSTOKEN) @@ -248,7 +251,6 @@ func Init() { api.Ebai2API.SetCookie("WMSTOKEN", ebaiStorePageCookieWMSTOKEN2) api.MtwmAPI.SetCookieWithStr(mtwmCookieStr) api.MtpsAPI.SetCookie("token", mtpsStoreToken) - api.Jd2API.SetJdCookie(jd2StorePageCookie) api.JdAPI.SetJdCookie(JdStorePageCookie) api.JdPageAPI.SetCookie(jdapi.AccessStorePageCookieName, JdStorePageCookie) api.JdPageAPI.SetCookie(jdapi.AccessStorePageCookieName2, JdStorePageCookie) From c148afd629ef3071eac5a8dfb490f3d745aa75ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 3 Mar 2020 10:27:26 +0800 Subject: [PATCH 091/286] =?UTF-8?q?=E5=95=86=E5=9F=8Etopskus=E9=87=8D?= =?UTF-8?q?=E5=A4=8D=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/model/dao/store_sku.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/model/dao/store_sku.go b/business/model/dao/store_sku.go index 91b8f953c..9265132ce 100644 --- a/business/model/dao/store_sku.go +++ b/business/model/dao/store_sku.go @@ -995,7 +995,7 @@ func GetTopSkusByStoreIDs(db *DaoDB, storeIDs []int) (storeSkuNameExt []*StoreSk GROUP BY 2,3,4)t1 JOIN sku t2 ON t2.id = t1.id JOIN sku_name t3 ON t3.id = t2.name_id - UNION ALL + UNION SELECT 2 s, 0 count, a.sku_id, g.*, a.store_id, e.name store_name FROM store_sku_bind a LEFT JOIN act_store_sku b ON a.store_id = b.store_id AND b.sku_id = a.sku_id From 87bdf023c14493a6a87a2094c12c4507b605ebec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 3 Mar 2020 10:35:57 +0800 Subject: [PATCH 092/286] =?UTF-8?q?=E5=B0=9D=E8=AF=95=E8=A7=A3=E5=86=B3?= =?UTF-8?q?=E5=95=86=E5=9F=8Etopskus=E9=87=8D=E5=A4=8D=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/model/dao/store_sku.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/business/model/dao/store_sku.go b/business/model/dao/store_sku.go index 9265132ce..91ac066c5 100644 --- a/business/model/dao/store_sku.go +++ b/business/model/dao/store_sku.go @@ -967,6 +967,7 @@ func GetStoreSkusByNameIDs(db *DaoDB, storeIDs []int, nameID int) (skuList []*St func GetTopSkusByStoreIDs(db *DaoDB, storeIDs []int) (storeSkuNameExt []*StoreSkuNameExt, err error) { sql := ` + SELECT DISTINCT t1.* FROM( SELECT 1 s, t1.count, t2.id sku_id, t3.*, t1.store_id, t1.store_name FROM( SELECT SUM(b.count) count,c.id,a.store_id,d.name store_name @@ -1017,7 +1018,7 @@ func GetTopSkusByStoreIDs(db *DaoDB, storeIDs []int) (storeSkuNameExt []*StoreSk AND a.status = ? AND a.deleted_at = ? AND (d.type = ? OR d.type = ?) - ORDER BY 1,2 DESC + ORDER BY 1,2 DESC) t1 LIMIT ? ` sqlParams = append(sqlParams, model.StoreSkuBindStatusNormal, utils.DefaultTimeValue, model.ActSkuDirectDown, model.ActSkuSecKill, 30) From 670c1d81bffef60ba59992ed4431f5c9d1677345 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 3 Mar 2020 10:45:28 +0800 Subject: [PATCH 093/286] =?UTF-8?q?=E5=B0=9D=E8=AF=95=E8=A7=A3=E5=86=B3?= =?UTF-8?q?=E5=95=86=E5=9F=8Etopskus=E9=87=8D=E5=A4=8D=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/model/dao/store_sku.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/business/model/dao/store_sku.go b/business/model/dao/store_sku.go index 91ac066c5..f5085ad80 100644 --- a/business/model/dao/store_sku.go +++ b/business/model/dao/store_sku.go @@ -968,7 +968,7 @@ func GetStoreSkusByNameIDs(db *DaoDB, storeIDs []int, nameID int) (skuList []*St func GetTopSkusByStoreIDs(db *DaoDB, storeIDs []int) (storeSkuNameExt []*StoreSkuNameExt, err error) { sql := ` SELECT DISTINCT t1.* FROM( - SELECT 1 s, t1.count, t2.id sku_id, t3.*, t1.store_id, t1.store_name + SELECT t1.count, t2.id sku_id, t3.*, t1.store_id, t1.store_name FROM( SELECT SUM(b.count) count,c.id,a.store_id,d.name store_name FROM goods_order a @@ -997,7 +997,7 @@ func GetTopSkusByStoreIDs(db *DaoDB, storeIDs []int) (storeSkuNameExt []*StoreSk JOIN sku t2 ON t2.id = t1.id JOIN sku_name t3 ON t3.id = t2.name_id UNION - SELECT 2 s, 0 count, a.sku_id, g.*, a.store_id, e.name store_name + SELECT 0 count, a.sku_id, g.*, a.store_id, e.name store_name FROM store_sku_bind a LEFT JOIN act_store_sku b ON a.store_id = b.store_id AND b.sku_id = a.sku_id LEFT JOIN act_map c ON c.act_id = b.act_id @@ -1018,7 +1018,7 @@ func GetTopSkusByStoreIDs(db *DaoDB, storeIDs []int) (storeSkuNameExt []*StoreSk AND a.status = ? AND a.deleted_at = ? AND (d.type = ? OR d.type = ?) - ORDER BY 1,2 DESC) t1 + ORDER BY 1 DESC) t1 LIMIT ? ` sqlParams = append(sqlParams, model.StoreSkuBindStatusNormal, utils.DefaultTimeValue, model.ActSkuDirectDown, model.ActSkuSecKill, 30) From e6e8bcfde67f6efc806b779fe613dfd2557e36db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 3 Mar 2020 11:09:06 +0800 Subject: [PATCH 094/286] =?UTF-8?q?=E5=B0=9D=E8=AF=95=E8=A7=A3=E5=86=B3?= =?UTF-8?q?=E5=95=86=E5=9F=8Etopskus=E9=87=8D=E5=A4=8D=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 24 +++++++++++++++++++----- business/model/dao/store_sku.go | 4 ++-- 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index e8a3f5568..6af502c40 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -2314,16 +2314,30 @@ func ReCalculateJxPriceLight(db *dao.DaoDB, ctx *jxcontext.Context, storeID int) return err } -func GetTopSkusByStoreIDs(ctx *jxcontext.Context, storeIDs []int) (storeSkuNameExt []*dao.StoreSkuNameExt, err error) { +func GetTopSkusByStoreIDs(ctx *jxcontext.Context, storeIDs []int) (storeSkuNameExt2 []*dao.StoreSkuNameExt, err error) { + var ( + db = dao.GetDB() + skuMap = make(map[int]*dao.StoreSkuNameExt) + ) if len(storeIDs) == 0 { - return storeSkuNameExt, err + return storeSkuNameExt2, err } - db := dao.GetDB() - storeSkuNameExt, err = dao.GetTopSkusByStoreIDs(db, storeIDs) + storeSkuNameExt, err := dao.GetTopSkusByStoreIDs(db, storeIDs) if err != nil { return nil, err } - return storeSkuNameExt, err + for _, v := range storeSkuNameExt { + if skuMap[v.SkuID] == nil { + skuMap[v.SkuID] = v + } + if skuMap[v.SkuID] != nil && v.Count != 0 { + skuMap[v.SkuID] = v + } + } + for _, v := range skuMap { + storeSkuNameExt2 = append(storeSkuNameExt2, v) + } + return storeSkuNameExt2, err } func GetTopSkusByCityCode(ctx *jxcontext.Context, cityCode, storeID int) (skuNameAndPlaceList []*dao.SkuNameAndPlace, err error) { diff --git a/business/model/dao/store_sku.go b/business/model/dao/store_sku.go index f5085ad80..4435ad029 100644 --- a/business/model/dao/store_sku.go +++ b/business/model/dao/store_sku.go @@ -148,6 +148,7 @@ type StoreSkuNameExt struct { PendingOpType int8 `json:"pendingOpType"` // 取值同 StoreOpRequest.Type PendingUnitPrice int `json:"pendingUnitPrice"` // 这个是待审核的价格申请 RealMidUnitPrice int `json:"realMidUnitPrice"` + Count int `json:"count"` } // GetStoreSkus用 @@ -967,7 +968,6 @@ func GetStoreSkusByNameIDs(db *DaoDB, storeIDs []int, nameID int) (skuList []*St func GetTopSkusByStoreIDs(db *DaoDB, storeIDs []int) (storeSkuNameExt []*StoreSkuNameExt, err error) { sql := ` - SELECT DISTINCT t1.* FROM( SELECT t1.count, t2.id sku_id, t3.*, t1.store_id, t1.store_name FROM( SELECT SUM(b.count) count,c.id,a.store_id,d.name store_name @@ -1018,7 +1018,7 @@ func GetTopSkusByStoreIDs(db *DaoDB, storeIDs []int) (storeSkuNameExt []*StoreSk AND a.status = ? AND a.deleted_at = ? AND (d.type = ? OR d.type = ?) - ORDER BY 1 DESC) t1 + ORDER BY 1 DESC LIMIT ? ` sqlParams = append(sqlParams, model.StoreSkuBindStatusNormal, utils.DefaultTimeValue, model.ActSkuDirectDown, model.ActSkuSecKill, 30) From 410517d623388cc5cab61df4fb93cc351f9c25b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 3 Mar 2020 11:16:04 +0800 Subject: [PATCH 095/286] =?UTF-8?q?=E5=B0=9D=E8=AF=95=E5=81=9Alist?= =?UTF-8?q?=E6=8E=92=E5=BA=8F=EF=BC=8CGetTopSkusByStoreIDs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index 6af502c40..8fb94671f 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -2337,6 +2337,15 @@ func GetTopSkusByStoreIDs(ctx *jxcontext.Context, storeIDs []int) (storeSkuNameE for _, v := range skuMap { storeSkuNameExt2 = append(storeSkuNameExt2, v) } + for i := 0; i < len(storeSkuNameExt2)-1; i++ { + for j := 0; j < len(storeSkuNameExt2)-i-1; j++ { + if storeSkuNameExt2[i].Count < storeSkuNameExt2[i+1].Count { + tmp := storeSkuNameExt2[i] + storeSkuNameExt2[i] = storeSkuNameExt2[i+1] + storeSkuNameExt2[i+1] = tmp + } + } + } return storeSkuNameExt2, err } From afb98e055c86554d70848c141e9513290635f1d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 3 Mar 2020 11:17:38 +0800 Subject: [PATCH 096/286] =?UTF-8?q?=E5=B0=9D=E8=AF=95=E5=81=9Alist?= =?UTF-8?q?=E6=8E=92=E5=BA=8F=EF=BC=8CGetTopSkusByStoreIDs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index 8fb94671f..1ad2c1e11 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -2339,10 +2339,10 @@ func GetTopSkusByStoreIDs(ctx *jxcontext.Context, storeIDs []int) (storeSkuNameE } for i := 0; i < len(storeSkuNameExt2)-1; i++ { for j := 0; j < len(storeSkuNameExt2)-i-1; j++ { - if storeSkuNameExt2[i].Count < storeSkuNameExt2[i+1].Count { - tmp := storeSkuNameExt2[i] - storeSkuNameExt2[i] = storeSkuNameExt2[i+1] - storeSkuNameExt2[i+1] = tmp + if storeSkuNameExt2[j].Count < storeSkuNameExt2[j+1].Count { + tmp := storeSkuNameExt2[j] + storeSkuNameExt2[j] = storeSkuNameExt2[j+1] + storeSkuNameExt2[j+1] = tmp } } } From 43e0708f0eb688a81641f3c13db90062ee0256bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 3 Mar 2020 11:26:03 +0800 Subject: [PATCH 097/286] =?UTF-8?q?=E6=B5=8B=E8=AF=95=E9=97=A8=E5=BA=97?= =?UTF-8?q?=E8=90=A5=E4=B8=9A=E6=97=B6=E9=97=B4=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/order.go | 6 +++--- controllers/jx_order2.go | 7 ++++--- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index 3481d2303..18d5b8440 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -219,7 +219,7 @@ func time2ShortTimeStr(t time.Time) string { return t.Format("15:04") } -func GetAvailableDeliverTime(ctx *jxcontext.Context, storeID int) (deliverTimerList []*DeliveryDayTimeInfo, err error) { +func GetAvailableDeliverTime(ctx *jxcontext.Context, storeID int, timeStr string) (deliverTimerList []*DeliveryDayTimeInfo, err error) { db := dao.GetDB() storeDetail, err := dao.GetStoreDetail(db, storeID, model.VendorIDJX) if err != nil { @@ -228,9 +228,9 @@ func GetAvailableDeliverTime(ctx *jxcontext.Context, storeID int) (deliverTimerL if storeDetail.Status != model.StoreStatusOpened { return nil, fmt.Errorf("门店:%s不是营业状态,状态是:%s", storeDetail.Name, model.StoreStatusName[storeDetail.Status]) } - now := time.Now() - beginDate := utils.Time2Date(now) + beginDate := utils.Time2Date(utils.Str2Time(timeStr)) + // beginDate := utils.Time2Date(now) minDingShiDaTime := now.Add(DingShiDaMinTime) viewShippingFee := "约6.6元配送费" if storeID == specialStoreID { diff --git a/controllers/jx_order2.go b/controllers/jx_order2.go index 6eab161ca..e66b97d55 100644 --- a/controllers/jx_order2.go +++ b/controllers/jx_order2.go @@ -61,16 +61,17 @@ func (c *JxOrderController) BuyerCancelOrder() { }) } -// @Title 查询网络打印机状态 -// @Description 查询网络打印机状态 +// @Title 得到门店营业时间配送列表 +// @Description 得到门店营业时间配送列表 // @Param token header string true "认证token" // @Param storeID query int true "门店ID" +// @Param timeStr query string true "时间点" // @Success 200 {object} controllers.CallResult // @Failure 200 {object} controllers.CallResult // @router /GetAvailableDeliverTime [get] func (c *JxOrderController) GetAvailableDeliverTime() { c.callGetAvailableDeliverTime(func(params *tJxorderGetAvailableDeliverTimeParams) (retVal interface{}, errCode string, err error) { - retVal, err = localjx.GetAvailableDeliverTime(params.Ctx, params.StoreID) + retVal, err = localjx.GetAvailableDeliverTime(params.Ctx, params.StoreID, params.TimeStr) return retVal, "", err }) } From fb22683aec1d8e9ef10af5a86ff590a46eed7718 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 3 Mar 2020 11:29:17 +0800 Subject: [PATCH 098/286] =?UTF-8?q?=E6=B5=8B=E8=AF=95=E9=97=A8=E5=BA=97?= =?UTF-8?q?=E8=90=A5=E4=B8=9A=E6=97=B6=E9=97=B4=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/order.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index 18d5b8440..3cc5211b0 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -228,7 +228,8 @@ func GetAvailableDeliverTime(ctx *jxcontext.Context, storeID int, timeStr string if storeDetail.Status != model.StoreStatusOpened { return nil, fmt.Errorf("门店:%s不是营业状态,状态是:%s", storeDetail.Name, model.StoreStatusName[storeDetail.Status]) } - now := time.Now() + now := utils.Str2Time(timeStr) + // now := time.Now() beginDate := utils.Time2Date(utils.Str2Time(timeStr)) // beginDate := utils.Time2Date(now) minDingShiDaTime := now.Add(DingShiDaMinTime) From 6a65d4cca11a1160c45b8a092d8b82e4cc32347e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 3 Mar 2020 11:44:05 +0800 Subject: [PATCH 099/286] =?UTF-8?q?=E5=9B=9E=E9=80=80=E9=97=A8=E5=BA=97?= =?UTF-8?q?=E9=85=8D=E9=80=81=E6=97=B6=E9=97=B4=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/order.go | 10 +++++----- controllers/jx_order2.go | 3 +-- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index 3cc5211b0..b6ceaf343 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -219,7 +219,7 @@ func time2ShortTimeStr(t time.Time) string { return t.Format("15:04") } -func GetAvailableDeliverTime(ctx *jxcontext.Context, storeID int, timeStr string) (deliverTimerList []*DeliveryDayTimeInfo, err error) { +func GetAvailableDeliverTime(ctx *jxcontext.Context, storeID int) (deliverTimerList []*DeliveryDayTimeInfo, err error) { db := dao.GetDB() storeDetail, err := dao.GetStoreDetail(db, storeID, model.VendorIDJX) if err != nil { @@ -228,10 +228,10 @@ func GetAvailableDeliverTime(ctx *jxcontext.Context, storeID int, timeStr string if storeDetail.Status != model.StoreStatusOpened { return nil, fmt.Errorf("门店:%s不是营业状态,状态是:%s", storeDetail.Name, model.StoreStatusName[storeDetail.Status]) } - now := utils.Str2Time(timeStr) - // now := time.Now() - beginDate := utils.Time2Date(utils.Str2Time(timeStr)) - // beginDate := utils.Time2Date(now) + // now := utils.Str2Time(timeStr) + now := time.Now() + // beginDate := utils.Time2Date(utils.Str2Time(timeStr)) + beginDate := utils.Time2Date(now) minDingShiDaTime := now.Add(DingShiDaMinTime) viewShippingFee := "约6.6元配送费" if storeID == specialStoreID { diff --git a/controllers/jx_order2.go b/controllers/jx_order2.go index e66b97d55..639ad78b8 100644 --- a/controllers/jx_order2.go +++ b/controllers/jx_order2.go @@ -65,13 +65,12 @@ func (c *JxOrderController) BuyerCancelOrder() { // @Description 得到门店营业时间配送列表 // @Param token header string true "认证token" // @Param storeID query int true "门店ID" -// @Param timeStr query string true "时间点" // @Success 200 {object} controllers.CallResult // @Failure 200 {object} controllers.CallResult // @router /GetAvailableDeliverTime [get] func (c *JxOrderController) GetAvailableDeliverTime() { c.callGetAvailableDeliverTime(func(params *tJxorderGetAvailableDeliverTimeParams) (retVal interface{}, errCode string, err error) { - retVal, err = localjx.GetAvailableDeliverTime(params.Ctx, params.StoreID, params.TimeStr) + retVal, err = localjx.GetAvailableDeliverTime(params.Ctx, params.StoreID) return retVal, "", err }) } From 0385f7b1c140283c1e4c9e05b575a129dc6b45a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 3 Mar 2020 14:12:35 +0800 Subject: [PATCH 100/286] =?UTF-8?q?=E8=AE=A1=E7=AE=97=E7=82=B9=E7=9A=84?= =?UTF-8?q?=E5=B7=A6=E8=BE=B9=EF=BC=8C=E8=8B=A5=E4=B8=A4=E8=BE=B9=E5=9D=90?= =?UTF-8?q?=E6=A0=87=E9=87=8D=E5=90=88=E4=B9=9F=E7=AE=97=E8=90=BD=E5=9C=A8?= =?UTF-8?q?=E9=87=8C=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/business/jxstore/cms/store.go b/business/jxstore/cms/store.go index 20d593071..7b15f1dcc 100644 --- a/business/jxstore/cms/store.go +++ b/business/jxstore/cms/store.go @@ -2382,7 +2382,8 @@ func GetStoreListByLocation(ctx *jxcontext.Context, lng, lat float64, needWalkDi if err = dao.GetRows(dao.GetDB(), &storeList1, sql, sqlParams...); err == nil { var storeList2 []*Store4User for _, v := range storeList1 { - if distance := jxutils.Point2StoreDistance(lng, lat, v.Lng, v.Lat, v.DeliveryRangeType, v.DeliveryRange); distance > 0 { + distance := jxutils.Point2StoreDistance(lng, lat, v.Lng, v.Lat, v.DeliveryRangeType, v.DeliveryRange) + if distance > 0 || (lng == jxutils.IntCoordinate2Standard(v.Lng) && lat == jxutils.IntCoordinate2Standard(v.Lat)) { v.Distance = distance storeList2 = append(storeList2, v) } From 0655a8fca1109c5324e3adeaeeee144b1ebc2669 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 3 Mar 2020 14:31:41 +0800 Subject: [PATCH 101/286] =?UTF-8?q?=E9=80=9A=E8=81=94=E5=AE=9D=E6=94=AF?= =?UTF-8?q?=E4=BB=98=E5=85=BC=E5=AE=B9=E6=94=AF=E4=BB=98=E5=AE=9D=E7=AD=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/tonglianpay.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/business/partner/purchase/jx/localjx/tonglianpay.go b/business/partner/purchase/jx/localjx/tonglianpay.go index 077431536..e6484ba4c 100644 --- a/business/partner/purchase/jx/localjx/tonglianpay.go +++ b/business/partner/purchase/jx/localjx/tonglianpay.go @@ -24,8 +24,12 @@ func pay4OrderByTL(ctx *jxcontext.Context, order *model.GoodsOrder, vendorPayTyp Trxamt: int(order.ActualPayPrice), NotifyUrl: globals.TLPayNotifyURL, Reqsn: order.VendorOrderID, + PayType: vendorPayType, + } + //暂时做兼容处理 + if vendorPayType == "JSAPI" { + param.PayType = tonglianpayapi.PayTypeWxXcx } - if authInfo, err := ctx.GetV2AuthInfo(); err == nil && authInfo.GetAuthType() == weixin.AuthTypeMini { param.Acct = authInfo.GetAuthID() } From 95b2009579783a402911429f41943acd2823e4fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Wed, 4 Mar 2020 09:51:18 +0800 Subject: [PATCH 102/286] =?UTF-8?q?=E5=90=8C=E6=AD=A5=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E8=BF=98=E6=98=AF=E8=BF=94=E5=9B=9E=EF=BC=8C=E9=80=9A=E8=81=94?= =?UTF-8?q?=E6=94=AF=E4=BB=98=E5=85=BC=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 2 +- business/jxstore/cms/sync.go | 19 ++++--- .../purchase/jx/localjx/tonglianpay.go | 50 ++++++++++++------- 3 files changed, 41 insertions(+), 30 deletions(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index 1ad2c1e11..3174db913 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -3398,10 +3398,10 @@ func UpdateStoreSkusSpecTagBin(ctx *jxcontext.Context, reader io.Reader, vendorI } for _, v := range results { store, err := dao.GetStoreDetail(db, v.StoreID, model.VendorIDMTWM) - food, err := api.MtwmAPI.RetailGet(store.VendorStoreID, utils.Int2Str(v.SkuID)) if err != nil || store == nil { continue } + food, err := api.MtwmAPI.RetailGet(store.VendorStoreID, utils.Int2Str(v.SkuID)) var foodData = make(map[string]interface{}) if v.IsSpec != 0 && v.IsSpec == -1 { v.IsSpec = 0 diff --git a/business/jxstore/cms/sync.go b/business/jxstore/cms/sync.go index 581acf257..76058a487 100644 --- a/business/jxstore/cms/sync.go +++ b/business/jxstore/cms/sync.go @@ -663,17 +663,16 @@ func buildSetFinishHook(task tasksch.ITask, ctx *jxcontext.Context) { } else { globals.SugarLogger.Debugf("同步错误发送钉钉消息失败, authinfo [%v] , [%v]", *authInfo, err) } + }else { + if time.Now().Hour() >= 20 || time.Now().Hour() < 7 { + downloadURL, _, _ := WirteToExcelBySyncFailed(task) + user, err := dao.GetUserByID(dao.GetDB(), "mobile", "") + noticeMsg += fmt.Sprintf("[详情点我]%s/billshow/?normal=true&path=%s \n", globals.BackstageHost, downloadURL) + if user != nil && err == nil { + ddmsg.SendUserMessage(dingdingapi.MsgTyeText, user.UserID, "同步错误返回", noticeMsg) + } + } } - // else { - // if time.Now().Hour() >= 20 || time.Now().Hour() < 7 { - // downloadURL, _, _ := WirteToExcelBySyncFailed(task) - // user, err := dao.GetUserByID(dao.GetDB(), "mobile", "") - // noticeMsg += fmt.Sprintf("[详情点我]%s/billshow/?normal=true&path=%s \n", globals.BackstageHost, downloadURL) - // if user != nil && err == nil { - // ddmsg.SendUserMessage(dingdingapi.MsgTyeText, user.UserID, "同步错误返回", noticeMsg) - // } - // } - // } }) } diff --git a/business/partner/purchase/jx/localjx/tonglianpay.go b/business/partner/purchase/jx/localjx/tonglianpay.go index e6484ba4c..f5a1ba9cf 100644 --- a/business/partner/purchase/jx/localjx/tonglianpay.go +++ b/business/partner/purchase/jx/localjx/tonglianpay.go @@ -30,26 +30,38 @@ func pay4OrderByTL(ctx *jxcontext.Context, order *model.GoodsOrder, vendorPayTyp if vendorPayType == "JSAPI" { param.PayType = tonglianpayapi.PayTypeWxXcx } - if authInfo, err := ctx.GetV2AuthInfo(); err == nil && authInfo.GetAuthType() == weixin.AuthTypeMini { - param.Acct = authInfo.GetAuthID() + if vendorPayType == tonglianpayapi.PayTypeWxXcx { + if authInfo, err := ctx.GetV2AuthInfo(); err == nil && authInfo.GetAuthType() == weixin.AuthTypeMini { + param.Acct = authInfo.GetAuthID() + } } - result, err := api.TLpayAPI.CreateUnitorderOrder(param) - if err == nil { - var result2 tonglianpayapi.PayInfo - json.Unmarshal([]byte(result.PayInfo), &result2) - prePayID := result2.Package[strings.LastIndex(result2.Package, "=")+1 : len(result2.Package)] - orderPay = &model.OrderPay{ - PayOrderID: param.Reqsn, - PayType: model.PayTypeTL, - VendorPayType: vendorPayType, - TransactionID: result.TrxID, - VendorOrderID: order.VendorOrderID, - VendorID: order.VendorID, - Status: 0, - PayCreatedAt: payCreatedAt, - PrepayID: prePayID, - CodeURL: utils.LimitUTF8StringLen(result.PayInfo, 3200), - TotalFee: int(order.ActualPayPrice), + if vendorPayType == tonglianpayapi.PayTypeH5 { + param2 := &tonglianpayapi.CreateH5UnitorderOrderParam{ + Trxamt: int(order.ActualPayPrice), + NotifyUrl: globals.TLPayNotifyURL, + Body: "京西菜市", + Charset: "UTF-8", + } + err = api.TLpayAPI.CreateH5UnitorderOrder(param2) + } else { + result, err := api.TLpayAPI.CreateUnitorderOrder(param) + if err == nil { + var result2 tonglianpayapi.PayInfo + json.Unmarshal([]byte(result.PayInfo), &result2) + prePayID := result2.Package[strings.LastIndex(result2.Package, "=")+1 : len(result2.Package)] + orderPay = &model.OrderPay{ + PayOrderID: param.Reqsn, + PayType: model.PayTypeTL, + VendorPayType: vendorPayType, + TransactionID: result.TrxID, + VendorOrderID: order.VendorOrderID, + VendorID: order.VendorID, + Status: 0, + PayCreatedAt: payCreatedAt, + PrepayID: prePayID, + CodeURL: utils.LimitUTF8StringLen(result.PayInfo, 3200), + TotalFee: int(order.ActualPayPrice), + } } } return orderPay, err From 26a2c92449b0b1c4d670fc476ef3550415bec1ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Wed, 4 Mar 2020 14:58:40 +0800 Subject: [PATCH 103/286] =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E9=97=A8=E5=BA=97=E4=B8=8A=E4=BC=A0=E8=90=A5?= =?UTF-8?q?=E4=B8=9A=E8=87=AA=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/model/const.go | 1 + 1 file changed, 1 insertion(+) diff --git a/business/model/const.go b/business/model/const.go index e9b550b36..03ac5307f 100644 --- a/business/model/const.go +++ b/business/model/const.go @@ -138,6 +138,7 @@ var ( "Login": "登录", "RegisterUser": "注册", "AutoPayForPopluarMan": "每日订单打款", + "SyncStoresQualify": "上传门店营业资质", } MultiStoresVendorMap = map[int]int{ From f1d795c623e487fb139f15a73e65aaed3250265d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Wed, 4 Mar 2020 15:29:04 +0800 Subject: [PATCH 104/286] =?UTF-8?q?=E6=97=A5=E5=BF=97=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E5=A2=9E=E5=8A=A0=E9=95=BF=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/event/event.go | 2 +- business/model/event.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/business/jxstore/event/event.go b/business/jxstore/event/event.go index c23d49b7c..30e89778e 100644 --- a/business/jxstore/event/event.go +++ b/business/jxstore/event/event.go @@ -59,7 +59,7 @@ func AddOperateEvent(ctx *jxcontext.Context, accessUUID, jsonData string, errCod } jsonData = strings.ReplaceAll(jsonData, regexpToken.FindString(jsonData), "") jsonData = utils.LimitUTF8StringLen(jsonData, 3200) - errMsg = utils.LimitUTF8StringLen(errMsg, 3200) + errMsg = utils.LimitUTF8StringLen(errMsg, 9999) event := &model.OperateEvent{ CreatedAt: time.Now(), LastOperator: ctx.GetUserName(), diff --git a/business/model/event.go b/business/model/event.go index c2c17cd8d..6269f7624 100644 --- a/business/model/event.go +++ b/business/model/event.go @@ -11,7 +11,7 @@ type OperateEvent struct { APIFunction string `orm:"column(api_function)" json:"apiFunction"` JsonData string `orm:"size(3200)" json:"jsonData"` ErrCode string `orm:"size(32)" json:"errCode"` - ErrMsg string `orm:"size(3200)" json:"errMsg"` + ErrMsg string `orm:"size(9999)" json:"errMsg"` UseTime int `json:"useTime"` } From 24a7ba97ec923a44c27930b544a8c0c7c5c05253 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Wed, 4 Mar 2020 17:00:27 +0800 Subject: [PATCH 105/286] =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E5=B9=B3=E5=8F=B0?= =?UTF-8?q?=E5=8F=8D=E9=85=B8=E4=BB=B7=E6=A0=BC=E5=A2=9E=E5=8A=A0=E5=8F=82?= =?UTF-8?q?=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 24 +++++++++++++++++++++--- controllers/cms_store_sku.go | 3 ++- 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index 3174db913..8461e9aaa 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -3585,7 +3585,7 @@ func SendSeckillSkusCountMsg(ctx *jxcontext.Context, vendorIDs []int, isAsync, i return hint, err } -func RefreshJxPriceByVendor(ctx *jxcontext.Context, jdStoreSkus []*JdStoreSkus, vendorID int, isAsync, isContinueWhenError bool) (hint string, err error) { +func RefreshJxPriceByVendor(ctx *jxcontext.Context, jdStoreSkus []*JdStoreSkus, vendorID int, ignoreLow, isAsync, isContinueWhenError bool) (hint string, err error) { var ( db = dao.GetDB() jdMap = make(map[int][]*JdStoreSkus) @@ -3650,7 +3650,16 @@ func RefreshJxPriceByVendor(ctx *jxcontext.Context, jdStoreSkus []*JdStoreSkus, for kk, vv := range v { result, err := dao.GetStoreSkuBindByNameID(db, k, kk, model.SkuStatusNormal) if len(result) > 0 && err == nil { - if result[0].UnitPrice > vv { + if ignoreLow { + if result[0].UnitPrice > vv { + storeSkuBindInfo := &StoreSkuBindInfo{ + StoreID: k, + NameID: kk, + UnitPrice: vv, + } + param = append(param, storeSkuBindInfo) + } + } else { storeSkuBindInfo := &StoreSkuBindInfo{ StoreID: k, NameID: kk, @@ -3695,7 +3704,16 @@ func RefreshJxPriceByVendor(ctx *jxcontext.Context, jdStoreSkus []*JdStoreSkus, for kk, vv := range v { result, err := dao.GetStoreSkuBindByNameID(db, k, kk, model.SkuStatusNormal) if len(result) > 0 && err == nil { - if result[0].UnitPrice > vv { + if ignoreLow { + if result[0].UnitPrice > vv { + storeSkuBindInfo := &StoreSkuBindInfo{ + StoreID: k, + NameID: kk, + UnitPrice: vv, + } + param = append(param, storeSkuBindInfo) + } + } else { storeSkuBindInfo := &StoreSkuBindInfo{ StoreID: k, NameID: kk, diff --git a/controllers/cms_store_sku.go b/controllers/cms_store_sku.go index 1eadb54b3..5bd2a7c54 100644 --- a/controllers/cms_store_sku.go +++ b/controllers/cms_store_sku.go @@ -675,6 +675,7 @@ func (c *StoreSkuController) SendSeckillSkusCountMsg() { // @Param token header string true "认证token" // @Param payload formData string true "json数据,JdStoreSkus对象" // @Param vendorID formData int true "厂商ID" +// @Param ignoreLow formData bool true "是否忽略低价商品" // @Param isAsync formData bool true "是否异步,缺省是同步" // @Param isContinueWhenError formData bool true "单个同步失败是否继续,缺省false" // @Success 200 {object} controllers.CallResult @@ -686,7 +687,7 @@ func (c *StoreSkuController) RefreshJxPriceByVendor() { if err = jxutils.Strings2Objs(params.Payload, &skuBindInfos); err != nil { return retVal, "", err } - retVal, err = cms.RefreshJxPriceByVendor(params.Ctx, skuBindInfos, params.VendorID, params.IsAsync, params.IsContinueWhenError) + retVal, err = cms.RefreshJxPriceByVendor(params.Ctx, skuBindInfos, params.VendorID, params.IgnoreLow, params.IsAsync, params.IsContinueWhenError) return retVal, "", err }) } From 68955376d85efa69bd29fce4af194c0581448277 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Thu, 5 Mar 2020 09:31:30 +0800 Subject: [PATCH 106/286] =?UTF-8?q?sku=E5=A2=9E=E5=8A=A0=E7=89=A9=E6=96=99?= =?UTF-8?q?id?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/sync.go | 2 +- business/model/sku.go | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/business/jxstore/cms/sync.go b/business/jxstore/cms/sync.go index 76058a487..de53fadab 100644 --- a/business/jxstore/cms/sync.go +++ b/business/jxstore/cms/sync.go @@ -666,7 +666,7 @@ func buildSetFinishHook(task tasksch.ITask, ctx *jxcontext.Context) { }else { if time.Now().Hour() >= 20 || time.Now().Hour() < 7 { downloadURL, _, _ := WirteToExcelBySyncFailed(task) - user, err := dao.GetUserByID(dao.GetDB(), "mobile", "") + user, err := dao.GetUserByID(dao.GetDB(), "mobile", "18160030913") noticeMsg += fmt.Sprintf("[详情点我]%s/billshow/?normal=true&path=%s \n", globals.BackstageHost, downloadURL) if user != nil && err == nil { ddmsg.SendUserMessage(dingdingapi.MsgTyeText, user.UserID, "同步错误返回", noticeMsg) diff --git a/business/model/sku.go b/business/model/sku.go index d323a9a38..3f47cf8f4 100644 --- a/business/model/sku.go +++ b/business/model/sku.go @@ -228,8 +228,9 @@ type Sku struct { Status int `json:"status"` Seq int `json:"seq"` - ExdSkuID string `orm:"column(exd_sku_id)" json:"exdSkuID"` + ExdSkuID string `orm:"column(exd_sku_id)" json:"exdSkuID"` //饿鲜达商品ID ExdCategoryThirdID int `orm:"column(exd_category_third_id)" json:"exdCategoryThirdID"` + EclpID int `orm:"column(eclp_id)" json:"eclpID"` //eclp物料商品ID // JdID int64 `orm:"column(jd_id);null;index" json:"jdID"` // JdSyncStatus int8 `orm:"default(2)" json:"jdSyncStatus"` From a8519bd7bb8179034ababefdf04d13c9e78823e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Thu, 5 Mar 2020 09:38:36 +0800 Subject: [PATCH 107/286] =?UTF-8?q?sku=E5=A2=9E=E5=8A=A0=E7=89=A9=E6=96=99?= =?UTF-8?q?=E5=95=86=E5=93=81ID=E4=B8=BAstring?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/sku.go | 8 +++++--- business/model/sku.go | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/business/jxstore/cms/sku.go b/business/jxstore/cms/sku.go index 42725dc59..31af68fb6 100644 --- a/business/jxstore/cms/sku.go +++ b/business/jxstore/cms/sku.go @@ -765,9 +765,11 @@ func AddSkuName(ctx *jxcontext.Context, skuNameExt *model.SkuNameExt, userName s dao.Rollback(db) return nil, err } - if err = OnCreateThing(ctx, db, nil, int64(sku.ID), model.ThingTypeSku); err != nil { - dao.Rollback(db) - return nil, err + if sku.EclpID == "" { + if err = OnCreateThing(ctx, db, nil, int64(sku.ID), model.ThingTypeSku); err != nil { + dao.Rollback(db) + return nil, err + } } } for _, placeCode := range skuNameExt.Places { diff --git a/business/model/sku.go b/business/model/sku.go index 3f47cf8f4..ee2f66405 100644 --- a/business/model/sku.go +++ b/business/model/sku.go @@ -230,7 +230,7 @@ type Sku struct { ExdSkuID string `orm:"column(exd_sku_id)" json:"exdSkuID"` //饿鲜达商品ID ExdCategoryThirdID int `orm:"column(exd_category_third_id)" json:"exdCategoryThirdID"` - EclpID int `orm:"column(eclp_id)" json:"eclpID"` //eclp物料商品ID + EclpID string `orm:"column(eclp_id)" json:"eclpID"` //eclp物料商品ID // JdID int64 `orm:"column(jd_id);null;index" json:"jdID"` // JdSyncStatus int8 `orm:"default(2)" json:"jdSyncStatus"` From 0812d243aa14260419340e85198fed1dfcff99b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Thu, 5 Mar 2020 09:43:53 +0800 Subject: [PATCH 108/286] =?UTF-8?q?=E6=9F=A5=E8=AF=A2sku=E5=B8=A6eclp?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 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 31af68fb6..43c2b7d04 100644 --- a/business/jxstore/cms/sku.go +++ b/business/jxstore/cms/sku.go @@ -592,6 +592,7 @@ func GetSkuNames(ctx *jxcontext.Context, keyword string, isBySku bool, params ma ',"createdAt":"', CONCAT(REPLACE(t2.created_at," ","T"),"+08:00"), '","updatedAt":"', CONCAT(REPLACE(t2.updated_at," ","T"),"+08:00"), '","lastOperator":"', t2.last_operator, '","specQuality":', t2.spec_quality, ',"specUnit":"', t2.spec_unit, '","exdSkuID":"', t2.exd_sku_id, + '","eclpID":"', t2.eclp_id, '","weight":', t2.weight, ',"categoryID":', t2.category_id, ',"nameID":', t2.name_id, ', "seq":', t2.seq, "}")), "]") skus_str, From 2cdaf741dbaf2465b3fa6f87ecc668cfed1670e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Thu, 5 Mar 2020 16:51:20 +0800 Subject: [PATCH 109/286] =?UTF-8?q?=E4=BA=AC=E4=B8=9Ceclp=E7=89=A9?= =?UTF-8?q?=E6=B5=81=E5=AF=B9=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/model/order.go | 1 + business/partner/purchase/jx/localjx/order.go | 77 ++++++++++++++++++- conf/app.conf | 4 + controllers/jx_order2.go | 3 +- globals/api/api.go | 8 ++ 5 files changed, 88 insertions(+), 5 deletions(-) diff --git a/business/model/order.go b/business/model/order.go index bf5d6153b..bbe63abbe 100644 --- a/business/model/order.go +++ b/business/model/order.go @@ -103,6 +103,7 @@ type GoodsOrder struct { 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"` //物料配送门店 // 以下只是用于传递数据 OriginalData string `orm:"-" json:"-"` diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index b6ceaf343..b70f8a3da 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -157,8 +157,8 @@ func GetMyOrderCountInfo(ctx *jxcontext.Context, fromDate, toDate time.Time, sta return countInfo, err } -func CreateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64, createType int) (outJxOrder *JxOrderInfo, err error) { - outJxOrder, deliveryAddress, err := generateOrder(ctx, jxOrder, addressID) +func CreateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64, createType int, fromStoreID int) (outJxOrder *JxOrderInfo, err error) { + outJxOrder, deliveryAddress, err := generateOrder(ctx, jxOrder, addressID, fromStoreID) if err != nil { return nil, err } @@ -360,7 +360,7 @@ func isTimeInOpTime(openTime1, closeTime1, openTime2, closeTime2 int16, time2Che return false } -func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64) (outJxOrder *JxOrderInfo, deliveryAddress *dao.UserDeliveryAddressEx, err error) { +func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64, fromStoreID int) (outJxOrder *JxOrderInfo, deliveryAddress *dao.UserDeliveryAddressEx, err error) { db := dao.GetDB() if jxOrder.StoreID == 0 { return nil, nil, fmt.Errorf("没有指定门店信息") @@ -381,6 +381,14 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64 if distance := jxutils.Point2StoreDistance(deliveryAddress.Lng, deliveryAddress.Lat, storeDetail.Lng, storeDetail.Lat, storeDetail.DeliveryRangeType, storeDetail.DeliveryRange); distance == 0 { return nil, nil, fmt.Errorf("当前送货地址不在门店%s的配送范围", storeDetail.Name) } + //表示此订单为物料配送订单 + if fromStoreID != 0 { + storeDetail2, err2 := dao.GetStoreDetail(db, fromStoreID, model.VendorIDJX) + if err = err2; err != nil { + return nil, nil, fmt.Errorf("fromStoreID有误,[%v]", fromStoreID) + } + deliveryAddress.ConsigneeName = storeDetail2.Name + } // 营业状态及时间检查 if storeDetail.Status != model.StoreStatusOpened { // model.StoreStatusDisabled { @@ -571,7 +579,68 @@ func AdjustOrder(ctx *jxcontext.Context, order *model.GoodsOrder, removedSkuList } func PickupGoods(order *model.GoodsOrder, isSelfDelivery bool, userName string) (err error) { - return changeOrderStatus(order.VendorOrderID, model.OrderStatusFinishedPickup, "") + err = changeOrderStatus(order.VendorOrderID, model.OrderStatusFinishedPickup, "") + err = orderSolutionForWuLiao(order) + return err +} + +func orderSolutionForWuLiao(order *model.GoodsOrder) (err error) { + if order.FromStoreID != 0 { + // var ( + // goodsNos []string + // prices []int + // quantities []int + // db = dao.GetDB() + // ) + err = changeOrderStatus(order.VendorOrderID, model.OrderStatusDelivering, "") + // goods, err := dao.QueryOrders(db, order.VendorOrderID, -1, []int{model.VendorIDJX}, -1, utils.ZeroTimeValue, utils.ZeroTimeValue) + // if err != nil || len(goods) == 0 { + // return err + // } + // for _, v := range goods[0].Skus { + // skus, err := dao.GetSkus(db, []int{v.SkuID}, nil, nil, nil) + // if err != nil || len(skus) == 0 { + // continue + // } + // goodsNos = append(goodsNos, skus[0].EclpID) + // prices = append(prices, 0) + // quantities = append(quantities, v.Count) + // } + // result, err := api.JdEclpAPI.AddOrder(&jdeclpapi.AddOrderParam{ + // IsvUUID: order.VendorOrderID, + // IsvSource: jdeclpapi.IsvSource, + // ShopNo: jdeclpapi.ShopNo, + // DepartmentNo: jdeclpapi.DepartmentNo, + // WarehouseNo: jdeclpapi.WarehouseNo, + // SalesPlatformOrderNo: order.VendorOrderID, + // SalePlatformSource: "", + // ConsigneeName: order.ConsigneeName, + // ConsigneeMobile: order.ConsigneeMobile, + // ConsigneeAddress: order.ConsigneeAddress, + // OrderMark: jdeclpapi.OrderMark, + // GoodsNo: goodsNos, + // Price: prices, + // Quantity: quantities, + // }) + // if err != nil { + // return err + // } + // wayBill := &model.Waybill{ + // VendorOrderID: order.VendorOrderID, + // OrderVendorID: model.VendorIDJX, + // VendorWaybillID: result.EclpSoNo, + // WaybillVendorID: model.VendorIDJD, + // CourierName: "京东物流", + // CourierMobile: "", + // Status: model.WaybillStatusNew, + // VendorStatus: utils.Int2Str(model.WaybillStatusDelivering), + // WaybillCreatedAt: utils.DefaultTimeValue, + // WaybillFinishedAt: utils.DefaultTimeValue, + // StatusTime: time.Now(), + // } + // dao.CreateEntity(db, wayBill) + } + return err } func SelfDeliverDelivering(order *model.GoodsOrder, userName string) (err error) { diff --git a/conf/app.conf b/conf/app.conf index a75502f72..73f03045f 100644 --- a/conf/app.conf +++ b/conf/app.conf @@ -170,6 +170,10 @@ jd2Token = "29e0e567-c475-433a-aff0-37176ee8d8a7" jd2AppKey = "7fb947624ff847ae94ff2f068cc99652" jd2Secret = "1097abd7ef09427099b4922784af123a" +jdEclpAccessToken = "" +jdEclpAppKey = "" +jdEclpAppSecret = "" + elmIsProd = true elmToken = "" elmAppKey = "KLRDcOZGrk" diff --git a/controllers/jx_order2.go b/controllers/jx_order2.go index 639ad78b8..a60e875dd 100644 --- a/controllers/jx_order2.go +++ b/controllers/jx_order2.go @@ -16,6 +16,7 @@ type JxOrderController struct { // @Param token header string true "认证token" // @Param jxOrder formData string true "订单信息" // @Param addressID formData int64 true "配送地址ID" +// @Param fromStoreID formData int fasle "物料配送门店" // @Param createType formData int false "创建类型, 0:预创建, 1:创建" // @Success 200 {object} controllers.CallResult // @Failure 200 {object} controllers.CallResult @@ -24,7 +25,7 @@ func (c *JxOrderController) CreateOrder() { c.callCreateOrder(func(params *tJxorderCreateOrderParams) (retVal interface{}, errCode string, err error) { var jxOrder *localjx.JxOrderInfo if err = utils.UnmarshalUseNumber([]byte(params.JxOrder), &jxOrder); err == nil { - retVal, err = localjx.CreateOrder(params.Ctx, jxOrder, int64(params.AddressID), params.CreateType) + retVal, err = localjx.CreateOrder(params.Ctx, jxOrder, int64(params.AddressID), params.CreateType, params.FromStoreID) } return retVal, "", err }) diff --git a/globals/api/api.go b/globals/api/api.go index c1a4c1bbe..1e1fa6cbd 100644 --- a/globals/api/api.go +++ b/globals/api/api.go @@ -3,6 +3,8 @@ package api import ( "time" + "git.rosy.net.cn/baseapi/platformapi/jdeclpapi" + "git.rosy.net.cn/baseapi/platformapi/tonglianpayapi" aliyunsmsclient "github.com/KenmyZhang/aliyun-communicate" @@ -40,6 +42,7 @@ var ( Jd2API *jdapi.API FakeJdAPI *jdapi.API + JdEclpAPI *jdeclpapi.API ElmAPI *elmapi.API EbaiAPI *ebaiapi.API @@ -104,6 +107,11 @@ func Init() { } else { JdAPI = nil } + if !beego.AppConfig.DefaultBool("disableJdEclp", false) { + JdEclpAPI = jdeclpapi.New(beego.AppConfig.String("jdEclpAccessToken"), beego.AppConfig.String("jdEclpAppKey"), beego.AppConfig.String("jdEclpAppSecret")) + } else { + JdEclpAPI = nil + } if !beego.AppConfig.DefaultBool("disableElm", false) { ElmAPI = elmapi.New(beego.AppConfig.DefaultString("elmToken", ""), beego.AppConfig.String("elmAppKey"), beego.AppConfig.String("elmSecret"), beego.AppConfig.DefaultBool("elmIsProd", false)) } else { From 8d5577e58a1651c17e0a6e0aa009b0b7a528e07e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Thu, 5 Mar 2020 17:18:19 +0800 Subject: [PATCH 110/286] =?UTF-8?q?=E7=89=A9=E6=96=99=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E5=8F=98=E5=8C=96=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/order.go | 11 +++++++++++ controllers/jx_order2.go | 14 ++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index b70f8a3da..96e314583 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -579,12 +579,15 @@ func AdjustOrder(ctx *jxcontext.Context, order *model.GoodsOrder, removedSkuList } func PickupGoods(order *model.GoodsOrder, isSelfDelivery bool, userName string) (err error) { + globals.SugarLogger.Debugf("orderSolutionForWuLiao1") err = changeOrderStatus(order.VendorOrderID, model.OrderStatusFinishedPickup, "") + globals.SugarLogger.Debugf("orderSolutionForWuLiao2") err = orderSolutionForWuLiao(order) return err } func orderSolutionForWuLiao(order *model.GoodsOrder) (err error) { + globals.SugarLogger.Debugf("orderSolutionForWuLiao3, [%v]", *order) if order.FromStoreID != 0 { // var ( // goodsNos []string @@ -939,3 +942,11 @@ func GetHalfHoursList() (strs []string) { } return strs } + +func GetMatterOrderStatus(ctx *jxcontext.Context, vendorOrderID string) (err error) { + // var ( + // db = dao.GetDB() + // ) + + return err +} diff --git a/controllers/jx_order2.go b/controllers/jx_order2.go index a60e875dd..c3703abf0 100644 --- a/controllers/jx_order2.go +++ b/controllers/jx_order2.go @@ -160,3 +160,17 @@ func (c *JxOrderController) PayForPopluarMan() { return retVal, "", err }) } + +// @Title 查询物料订单状态 +// @Description 查询物料订单状态 +// @Param token header string true "认证token" +// @Param vendorOrderID formData string true "订单ID" +// @Success 200 {object} controllers.CallResult +// @Failure 200 {object} controllers.CallResult +// @router /GetMatterOrderStatus [post] +func (c *JxOrderController) GetMatterOrderStatus() { + c.callGetMatterOrderStatus(func(params *tJxorderGetMatterOrderStatusParams) (retVal interface{}, errCode string, err error) { + err = localjx.GetMatterOrderStatus(params.Ctx, params.VendorOrderID) + return retVal, "", err + }) +} From 44eb85a4881debb85c9059979a4c75bf009ec13e Mon Sep 17 00:00:00 2001 From: suyl <770236076@qq.com> Date: Thu, 5 Mar 2020 19:53:28 +0800 Subject: [PATCH 111/286] =?UTF-8?q?=E6=9A=82=E6=97=B6=E5=85=B3=E6=8E=89?= =?UTF-8?q?=E7=BE=8E=E5=9B=A2=E8=87=AA=E5=8A=A8=E5=90=8C=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/misc/misc.go | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/business/jxstore/misc/misc.go b/business/jxstore/misc/misc.go index 60e33467d..7830ad3d9 100644 --- a/business/jxstore/misc/misc.go +++ b/business/jxstore/misc/misc.go @@ -283,13 +283,18 @@ func syncStoreSku() { // _, err = cms.CurVendorSync.FullSyncStoresSkus(jxcontext.AdminCtx, db, partner.GetMultiStoreVendorIDs(), nil, false, []int{27379}, true, true) errList.AddErr(err) case 1: - errList.AddErr(cms.SetSingleStoreSkuSyncModifyStatus(db, partner.GetSingleStoreVendorIDs())) + errList.AddErr(cms.SetSingleStoreSkuSyncModifyStatus(db, []int{3})) - _, err = cms.CurVendorSync.AmendAndPruneStoreStuff(jxcontext.AdminCtx, partner.GetSingleStoreVendorIDs(), nil, false, true, cms.AmendPruneAll, false) + // errList.AddErr(cms.SetSingleStoreSkuSyncModifyStatus(db, partner.GetSingleStoreVendorIDs())) + _, err = cms.CurVendorSync.AmendAndPruneStoreStuff(jxcontext.AdminCtx, []int{3}, nil, false, true, cms.AmendPruneAll, false) + + // _, err = cms.CurVendorSync.AmendAndPruneStoreStuff(jxcontext.AdminCtx, partner.GetSingleStoreVendorIDs(), nil, false, true, cms.AmendPruneAll, false) errList.AddErr(err) SaveImportantTaskID(TaskNameSyncStoreSku, SpecialTaskID) - taskID, err2 := cms.CurVendorSync.SyncStoresSkus2(jxcontext.AdminCtx, nil, 0, db, partner.GetSingleStoreVendorIDs(), nil, false, nil, nil, syncFlag, true, true) + taskID, err2 := cms.CurVendorSync.SyncStoresSkus2(jxcontext.AdminCtx, nil, 0, db, []int{3}, nil, false, nil, nil, syncFlag, true, true) + // taskID, err2 := cms.CurVendorSync.SyncStoresSkus2(jxcontext.AdminCtx, nil, 0, db, partner.GetSingleStoreVendorIDs(), nil, false, nil, nil, syncFlag, true, true) + errList.AddErr(err2) SaveImportantTaskID(TaskNameSyncStoreSku, taskID) } From 15f0be1b44bf96318228ea19e489224dffc186e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Fri, 6 Mar 2020 13:46:04 +0800 Subject: [PATCH 112/286] =?UTF-8?q?=E4=BA=AC=E4=B8=9Cpage=E7=9A=84cookie?= =?UTF-8?q?=E5=8F=AF=E8=83=BD=E6=9C=89=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store.go | 2 +- business/jxstore/event/event.go | 10 +++ business/jxstore/misc/misc.go | 6 +- business/model/order.go | 1 + business/partner/purchase/jx/localjx/order.go | 71 ++++++++++++------- conf/app.conf | 1 + globals/api/api.go | 6 +- 7 files changed, 62 insertions(+), 35 deletions(-) diff --git a/business/jxstore/cms/store.go b/business/jxstore/cms/store.go index 7b15f1dcc..2085b05e9 100644 --- a/business/jxstore/cms/store.go +++ b/business/jxstore/cms/store.go @@ -2322,7 +2322,7 @@ func SyncStoresCourierInfo(ctx *jxcontext.Context, storeIDs []int, isAsync, isCo func SyncStoresQualify(ctx *jxcontext.Context, storeIDs []int, isAsync, isContinueWhenError bool) (hint string, err error) { if len(storeIDs) > 0 { db := dao.GetDB() - task := tasksch.NewParallelTask(fmt.Sprintf("上传门店资质:%v", storeIDs), tasksch.NewParallelConfig().SetParallelCount(1).SetIsContinueWhenError(isContinueWhenError), ctx, + task := tasksch.NewParallelTask(fmt.Sprintf("上传门店资质:%v", storeIDs), tasksch.NewParallelConfig().SetIsContinueWhenError(isContinueWhenError), ctx, func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { vendorID := model.VendorIDJD if handler := partner.GetPurchasePlatformFromVendorID(vendorID).(partner.IStoreSyncQualifyHandler); handler != nil { diff --git a/business/jxstore/event/event.go b/business/jxstore/event/event.go index 30e89778e..5cfd08385 100644 --- a/business/jxstore/event/event.go +++ b/business/jxstore/event/event.go @@ -201,6 +201,16 @@ func GetCheckVendorCookie(ctx *jxcontext.Context, vendorIDs []int, isAuto bool) flag = true } } + result2, err2 := api.JdPageAPI.GetCorporationInfo("11926674", "92510108MA68KK3M8P") + if err2 != nil || result2 == nil { + cc := &CheckCookie{} + cc.VendorID = v + cc.VendorOrgCode = "京东page账号" + cc.Status = "无效" + ccList = append(ccList, cc) + errMsg += fmt.Sprintf(" 京东page账号:的Cookie无效了!", vv) + flag = true + } } cc.VendorID = v cc.VendorOrgCode = vv diff --git a/business/jxstore/misc/misc.go b/business/jxstore/misc/misc.go index 7830ad3d9..662e79660 100644 --- a/business/jxstore/misc/misc.go +++ b/business/jxstore/misc/misc.go @@ -6,8 +6,6 @@ import ( "sync" "time" - "git.rosy.net.cn/baseapi/platformapi/jdapi" - "git.rosy.net.cn/jx-callback/business/partner/purchase/jx/localjx" "git.rosy.net.cn/jx-callback/globals/api" @@ -252,8 +250,8 @@ func Init() { api.MtwmAPI.SetCookieWithStr(mtwmCookieStr) api.MtpsAPI.SetCookie("token", mtpsStoreToken) api.JdAPI.SetJdCookie(JdStorePageCookie) - api.JdPageAPI.SetCookie(jdapi.AccessStorePageCookieName, JdStorePageCookie) - api.JdPageAPI.SetCookie(jdapi.AccessStorePageCookieName2, JdStorePageCookie) + // api.JdPageAPI.SetCookie(jdapi.AccessStorePageCookieName, JdStorePageCookie) + // api.JdPageAPI.SetCookie(jdapi.AccessStorePageCookieName2, JdStorePageCookie) } func syncStoreSku() { diff --git a/business/model/order.go b/business/model/order.go index bbe63abbe..22a98f4c7 100644 --- a/business/model/order.go +++ b/business/model/order.go @@ -104,6 +104,7 @@ type GoodsOrder struct { 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"` //物料配送的出库单号 // 以下只是用于传递数据 OriginalData string `orm:"-" json:"-"` diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index 96e314583..c9fd16797 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -83,9 +83,10 @@ type JxOrderInfo struct { OrderPrice int64 `json:"orderPrice"` // 单位为分 订单商品价格 ActualPayPrice int64 `json:"actualPayPrice"` // 单位为分 顾客实际支付 - OrderID int64 `json:"orderID"` - StoreName string `json:"storeName"` - Weight int `json:"weight"` + OrderID int64 `json:"orderID"` + StoreName string `json:"storeName"` + Weight int `json:"weight"` + FromStoreID int `json:"fromStoreID"` } type DeliveryTimeItem struct { @@ -99,6 +100,12 @@ type DeliveryDayTimeInfo struct { TimeList []*DeliveryTimeItem `json:"timeList"` } +type MatterOrderStatus struct { + Time string `json:"time"` + Status string `json:"status"` + Name string `json:"name"` +} + var ( orderNoBeginTimestamp int64 @@ -388,6 +395,7 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64 return nil, nil, fmt.Errorf("fromStoreID有误,[%v]", fromStoreID) } deliveryAddress.ConsigneeName = storeDetail2.Name + outJxOrder.FromStoreID = fromStoreID } // 营业状态及时间检查 @@ -579,15 +587,12 @@ func AdjustOrder(ctx *jxcontext.Context, order *model.GoodsOrder, removedSkuList } func PickupGoods(order *model.GoodsOrder, isSelfDelivery bool, userName string) (err error) { - globals.SugarLogger.Debugf("orderSolutionForWuLiao1") err = changeOrderStatus(order.VendorOrderID, model.OrderStatusFinishedPickup, "") - globals.SugarLogger.Debugf("orderSolutionForWuLiao2") err = orderSolutionForWuLiao(order) return err } func orderSolutionForWuLiao(order *model.GoodsOrder) (err error) { - globals.SugarLogger.Debugf("orderSolutionForWuLiao3, [%v]", *order) if order.FromStoreID != 0 { // var ( // goodsNos []string @@ -628,20 +633,8 @@ func orderSolutionForWuLiao(order *model.GoodsOrder) (err error) { // if err != nil { // return err // } - // wayBill := &model.Waybill{ - // VendorOrderID: order.VendorOrderID, - // OrderVendorID: model.VendorIDJX, - // VendorWaybillID: result.EclpSoNo, - // WaybillVendorID: model.VendorIDJD, - // CourierName: "京东物流", - // CourierMobile: "", - // Status: model.WaybillStatusNew, - // VendorStatus: utils.Int2Str(model.WaybillStatusDelivering), - // WaybillCreatedAt: utils.DefaultTimeValue, - // WaybillFinishedAt: utils.DefaultTimeValue, - // StatusTime: time.Now(), - // } - // dao.CreateEntity(db, wayBill) + // order.EclpOutID = result.EclpSoNo + // dao.UpdateEntity(db, order, "EclpOutID") } return err } @@ -661,7 +654,6 @@ func CancelOrder(ctx *jxcontext.Context, order *model.GoodsOrder, reason string) payList, err2 := dao.GetOrderPayList(db, order.VendorOrderID, jxutils.GetPossibleVendorIDFromVendorOrderID(order.VendorOrderID)) if err = err2; err == nil { for _, orderPay := range payList { - globals.SugarLogger.Debugf("CancelOrderTL2, [%v]", *orderPay) if orderPay.Status == model.PayStatusYes { // refundID := utils.Int64ToStr(GenRefundID(order)) refundID := order.VendorOrderID @@ -672,6 +664,7 @@ func CancelOrder(ctx *jxcontext.Context, order *model.GoodsOrder, reason string) dao.WrapAddIDCULDEntity(orderPayRefund, ctx.GetUserName()) errList.AddErr(dao.CreateEntity(dao.GetDB(), orderPayRefund)) MarkArrears(db, order, orderPay) + CancelMatterOrder(db, order) } else { errList.AddErr(err) } @@ -679,6 +672,7 @@ func CancelOrder(ctx *jxcontext.Context, order *model.GoodsOrder, reason string) orderPayRefund, err = refundOrderByTL(ctx, orderPay, refundID, orderPay.TotalFee, reason) if err == nil { MarkArrears(db, order, orderPay) + CancelMatterOrder(db, order) } else { errList.AddErr(err) } @@ -704,6 +698,13 @@ func CancelOrder(ctx *jxcontext.Context, order *model.GoodsOrder, reason string) return err } +func CancelMatterOrder(db *dao.DaoDB, order *model.GoodsOrder) (err error) { + if order.FromStoreID != 0 { + _, err = api.JdEclpAPI.CancelOrder(order.EclpOutID) + } + return err +} + func MarkArrears(db *dao.DaoDB, order *model.GoodsOrder, orderPay *model.OrderPay) { //退款后,若此订单下单用户有推广人,则需要将分给推广人的金额记录到该推广人的欠款中 orders, _ := dao.QueryOrders(db, order.VendorOrderID, 0, []int{model.VendorIDJX}, 0, utils.DefaultTimeValue, utils.DefaultTimeValue) @@ -943,10 +944,26 @@ func GetHalfHoursList() (strs []string) { return strs } -func GetMatterOrderStatus(ctx *jxcontext.Context, vendorOrderID string) (err error) { - // var ( - // db = dao.GetDB() - // ) - - return err +func GetMatterOrderStatus(ctx *jxcontext.Context, vendorOrderID string) (result []*MatterOrderStatus, err error) { + var ( + db = dao.GetDB() + ) + waybills, err := dao.GetWayBillByOrderID(db, -1, model.VendorIDJX, -1, vendorOrderID) + order, err := partner.CurOrderManager.LoadOrder(vendorOrderID, model.VendorIDJX) + if len(waybills) > 0 { + // queryOrderStatus, err := api.JdEclpAPI.QueryOrderStatus(waybills[0].VendorWaybillID) + } + // getTrackMessagePlusByOrderResult, err := api.JdEclpAPI.GetTrackMessagePlusByOrder(vendorOrderID) + dao.Begin(db) + defer func() { + if r := recover(); r != nil { + dao.Rollback(db) + panic(r) + } + }() + dao.UpdateEntity(db, order, "Status") + waybills[0].StatusTime = time.Now() + dao.UpdateEntity(db, waybills[0], "Status", "StatusTime") + dao.Commit(db) + return result, err } diff --git a/conf/app.conf b/conf/app.conf index 73f03045f..1baf8c612 100644 --- a/conf/app.conf +++ b/conf/app.conf @@ -173,6 +173,7 @@ jd2Secret = "1097abd7ef09427099b4922784af123a" jdEclpAccessToken = "" jdEclpAppKey = "" jdEclpAppSecret = "" +jdEclpRedirectUri = "" elmIsProd = true elmToken = "" diff --git a/globals/api/api.go b/globals/api/api.go index 1e1fa6cbd..7eafb97ab 100644 --- a/globals/api/api.go +++ b/globals/api/api.go @@ -88,12 +88,12 @@ func init() { func Init() { if !beego.AppConfig.DefaultBool("disableJd", false) { JdAPI = jdapi.New(beego.AppConfig.String("jdToken"), beego.AppConfig.String("jdAppKey"), beego.AppConfig.String("jdSecret")) - // cookieValue := beego.AppConfig.DefaultString("jdStorePageCookie", "") + cookieValue := beego.AppConfig.DefaultString("jdStorePageCookie", "") // JdAPI.SetJdCookie(cookieValue) conf := platformapi.NewDefAPIConfig() conf.MaxSleepSecondWhenExceedLimit = 60 * 30 // 最大重试间隙30分钟 - JdPageAPI = jdapi.NewPageOnly("", conf) + JdPageAPI = jdapi.NewPageOnly(cookieValue, conf) if globals.Jd2OrgCode != "" { Jd2API = jdapi.New(beego.AppConfig.String("jd2Token"), beego.AppConfig.String("jd2AppKey"), beego.AppConfig.String("jd2Secret")) @@ -108,7 +108,7 @@ func Init() { JdAPI = nil } if !beego.AppConfig.DefaultBool("disableJdEclp", false) { - JdEclpAPI = jdeclpapi.New(beego.AppConfig.String("jdEclpAccessToken"), beego.AppConfig.String("jdEclpAppKey"), beego.AppConfig.String("jdEclpAppSecret")) + JdEclpAPI = jdeclpapi.New(beego.AppConfig.String("jdEclpAccessToken"), beego.AppConfig.String("jdEclpAppKey"), beego.AppConfig.String("jdEclpAppSecret"), beego.AppConfig.String("jdEclpRedirectUri")) } else { JdEclpAPI = nil } From bfc63f0411584afb3212a91bcc3dc5f9649f0a6d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Fri, 6 Mar 2020 14:08:46 +0800 Subject: [PATCH 113/286] bug --- controllers/jx_order2.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/controllers/jx_order2.go b/controllers/jx_order2.go index c3703abf0..1474ceab1 100644 --- a/controllers/jx_order2.go +++ b/controllers/jx_order2.go @@ -170,7 +170,7 @@ func (c *JxOrderController) PayForPopluarMan() { // @router /GetMatterOrderStatus [post] func (c *JxOrderController) GetMatterOrderStatus() { c.callGetMatterOrderStatus(func(params *tJxorderGetMatterOrderStatusParams) (retVal interface{}, errCode string, err error) { - err = localjx.GetMatterOrderStatus(params.Ctx, params.VendorOrderID) + retVal, err = localjx.GetMatterOrderStatus(params.Ctx, params.VendorOrderID) return retVal, "", err }) } From 12af4bce476323f907354639d9b51eaa3e3558c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Fri, 6 Mar 2020 14:11:41 +0800 Subject: [PATCH 114/286] =?UTF-8?q?=E6=9A=82=E6=97=B6=E6=89=93=E5=BC=80?= =?UTF-8?q?=E4=BA=AC=E4=B8=9Ccookie?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- conf/app.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conf/app.conf b/conf/app.conf index 1baf8c612..eed3206d9 100644 --- a/conf/app.conf +++ b/conf/app.conf @@ -64,7 +64,7 @@ tonglianPayNotifyURL = "http://callback.test.jxc4.com/tonglian/msg/" backstageHost = "http://www.jxc4.com" wxBackstageHost = "http://wx.jxc4.com" -# jdStorePageCookie = "YYJV3NHVBPHLD36FWP6F3EM5PTXJ2XZQS7U4HWRIDPP4IWGUKUIB4XG5N26CZRDLDF7PKOXBPD6BNTUAJLETLZOIWMCVFI3K6MYZIY4QBIXIMXYDJNUKFGJVQTN5356SAD6WPCIHWNQAG7DDMF7L7S3SHD6O37OTAHUCKU6ALXATYTGMHNFLM4XRLVSFUQAJR77M4URSZRKVO55243TDVXLO25PP4UYSPTTPMNRUFXDNP4WPE566Q6V4AH32F7HT" +jdStorePageCookie = "YYJV3NHVBPHLD36FWP6F3EM5PTXJ2XZQS7U4HWRIDPP4IWGUKUIB4XG5N26CZRDLDF7PKOXBPD6BNTUAJLETLZOIWMCVFI3K6MYZIY4QBIXIMXYDJNUKFGJVQTN5356SAD6WPCIHWNQAG7DDMF7L7S3SHD6O37OTAHUCKU6ALXATYTGMHNFLM4XRLVSFUQAJR77M4URSZRKVO55243TDVXLO25PP4UYSPTTPMNRUFXDNP4WPE566Q6V4AH32F7HT" # jd2StorePageCookie = "CK5GE5MR2UIOBOZC7BBZLLSI7MVDWPEQ4BRJTJQ2OP3ZFKYDDYTFFV4XOXKLERC2UXFT44TMCUMRFP3C25HD6W3PYONTQCOML6YIZA5Z37P62UXFE655IRGYJ4ZLQIEBYQM32FABIN5RVJYZWPQWSRTZURNRLYV57XJEDWZT5UVZRYUBTN3AT6JJJJ22YHE6ZHCN6LCH27JHSRO55YA6TJH6G54IF72X3UAXCKW5P2G2MT3U6I3527NQFMAFLHXBZKQFFMYUKUHUU4GZWD4O7GO45Y" fakeJdToken = "ndslkv9asl@djf_n7askdjfk$" fakeJdBaseURL = "http://test.jxc4.com/qqqq" From ee1a53673209aa7f8ed587ad4819423be30e6f15 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Fri, 6 Mar 2020 14:16:27 +0800 Subject: [PATCH 115/286] =?UTF-8?q?=E5=85=B3=E9=97=AD=E4=BA=AC=E4=B8=9Ccoo?= =?UTF-8?q?kie=E5=B0=9D=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/misc/misc.go | 4 ++-- conf/app.conf | 2 +- globals/api/api.go | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/business/jxstore/misc/misc.go b/business/jxstore/misc/misc.go index 662e79660..98b250b2c 100644 --- a/business/jxstore/misc/misc.go +++ b/business/jxstore/misc/misc.go @@ -250,8 +250,8 @@ func Init() { api.MtwmAPI.SetCookieWithStr(mtwmCookieStr) api.MtpsAPI.SetCookie("token", mtpsStoreToken) api.JdAPI.SetJdCookie(JdStorePageCookie) - // api.JdPageAPI.SetCookie(jdapi.AccessStorePageCookieName, JdStorePageCookie) - // api.JdPageAPI.SetCookie(jdapi.AccessStorePageCookieName2, JdStorePageCookie) + api.JdPageAPI.SetCookie(jdapi.AccessStorePageCookieName, JdStorePageCookie) + api.JdPageAPI.SetCookie(jdapi.AccessStorePageCookieName2, JdStorePageCookie) } func syncStoreSku() { diff --git a/conf/app.conf b/conf/app.conf index eed3206d9..1baf8c612 100644 --- a/conf/app.conf +++ b/conf/app.conf @@ -64,7 +64,7 @@ tonglianPayNotifyURL = "http://callback.test.jxc4.com/tonglian/msg/" backstageHost = "http://www.jxc4.com" wxBackstageHost = "http://wx.jxc4.com" -jdStorePageCookie = "YYJV3NHVBPHLD36FWP6F3EM5PTXJ2XZQS7U4HWRIDPP4IWGUKUIB4XG5N26CZRDLDF7PKOXBPD6BNTUAJLETLZOIWMCVFI3K6MYZIY4QBIXIMXYDJNUKFGJVQTN5356SAD6WPCIHWNQAG7DDMF7L7S3SHD6O37OTAHUCKU6ALXATYTGMHNFLM4XRLVSFUQAJR77M4URSZRKVO55243TDVXLO25PP4UYSPTTPMNRUFXDNP4WPE566Q6V4AH32F7HT" +# jdStorePageCookie = "YYJV3NHVBPHLD36FWP6F3EM5PTXJ2XZQS7U4HWRIDPP4IWGUKUIB4XG5N26CZRDLDF7PKOXBPD6BNTUAJLETLZOIWMCVFI3K6MYZIY4QBIXIMXYDJNUKFGJVQTN5356SAD6WPCIHWNQAG7DDMF7L7S3SHD6O37OTAHUCKU6ALXATYTGMHNFLM4XRLVSFUQAJR77M4URSZRKVO55243TDVXLO25PP4UYSPTTPMNRUFXDNP4WPE566Q6V4AH32F7HT" # jd2StorePageCookie = "CK5GE5MR2UIOBOZC7BBZLLSI7MVDWPEQ4BRJTJQ2OP3ZFKYDDYTFFV4XOXKLERC2UXFT44TMCUMRFP3C25HD6W3PYONTQCOML6YIZA5Z37P62UXFE655IRGYJ4ZLQIEBYQM32FABIN5RVJYZWPQWSRTZURNRLYV57XJEDWZT5UVZRYUBTN3AT6JJJJ22YHE6ZHCN6LCH27JHSRO55YA6TJH6G54IF72X3UAXCKW5P2G2MT3U6I3527NQFMAFLHXBZKQFFMYUKUHUU4GZWD4O7GO45Y" fakeJdToken = "ndslkv9asl@djf_n7askdjfk$" fakeJdBaseURL = "http://test.jxc4.com/qqqq" diff --git a/globals/api/api.go b/globals/api/api.go index 7eafb97ab..f506af452 100644 --- a/globals/api/api.go +++ b/globals/api/api.go @@ -88,12 +88,12 @@ func init() { func Init() { if !beego.AppConfig.DefaultBool("disableJd", false) { JdAPI = jdapi.New(beego.AppConfig.String("jdToken"), beego.AppConfig.String("jdAppKey"), beego.AppConfig.String("jdSecret")) - cookieValue := beego.AppConfig.DefaultString("jdStorePageCookie", "") + // cookieValue := beego.AppConfig.DefaultString("jdStorePageCookie", "") // JdAPI.SetJdCookie(cookieValue) conf := platformapi.NewDefAPIConfig() conf.MaxSleepSecondWhenExceedLimit = 60 * 30 // 最大重试间隙30分钟 - JdPageAPI = jdapi.NewPageOnly(cookieValue, conf) + JdPageAPI = jdapi.NewPageOnly("", conf) if globals.Jd2OrgCode != "" { Jd2API = jdapi.New(beego.AppConfig.String("jd2Token"), beego.AppConfig.String("jd2AppKey"), beego.AppConfig.String("jd2Secret")) From c782e8c21010381a55a276eaf3cd643f6836b5fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Fri, 6 Mar 2020 14:17:47 +0800 Subject: [PATCH 116/286] bug --- business/jxstore/misc/misc.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/business/jxstore/misc/misc.go b/business/jxstore/misc/misc.go index 98b250b2c..7830ad3d9 100644 --- a/business/jxstore/misc/misc.go +++ b/business/jxstore/misc/misc.go @@ -6,6 +6,8 @@ import ( "sync" "time" + "git.rosy.net.cn/baseapi/platformapi/jdapi" + "git.rosy.net.cn/jx-callback/business/partner/purchase/jx/localjx" "git.rosy.net.cn/jx-callback/globals/api" From 57298057f4ffc535f0a5070aae8fc5d58e002a46 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Fri, 6 Mar 2020 14:21:23 +0800 Subject: [PATCH 117/286] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E8=90=A5=E4=B8=9A?= =?UTF-8?q?=E8=B5=84=E8=B4=A8=E7=81=B5=E5=BC=82=E4=BA=8B=E4=BB=B6=E6=B5=8B?= =?UTF-8?q?=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jd/store.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/business/partner/purchase/jd/store.go b/business/partner/purchase/jd/store.go index af7459001..8050f24f1 100644 --- a/business/partner/purchase/jd/store.go +++ b/business/partner/purchase/jd/store.go @@ -408,10 +408,12 @@ func (c *PurchaseHandler) SyncQualify(ctx *jxcontext.Context, storeDetail *dao.S } var qualifyList []*jdapi.QualifyItem licenceDetail, err := api.JdPageAPI.GetCorporationInfo(storeDetail.VendorStoreID, storeDetail.LicenceCode) + globals.SugarLogger.Debugf("SaveQualifyTest", utils.Format4Output(licenceDetail, false)) if err != nil { return addStoreInfo2Err(err, storeDetail.ID) } licenceURL, err := c.storeUploadImgByURL(storeDetail.VendorOrgCode, storeDetail.Licence) + globals.SugarLogger.Debugf("SaveQualifyTest2", utils.Format4Output(licenceURL, false)) if err != nil { return addStoreInfo2Err(err, storeDetail.ID) } @@ -434,6 +436,7 @@ func (c *PurchaseHandler) SyncQualify(ctx *jxcontext.Context, storeDetail *dao.S }) idFrondURL, err := c.storeUploadImgByURL(storeDetail.VendorOrgCode, storeDetail.IDCardFront) + globals.SugarLogger.Debugf("SaveQualifyTest3", utils.Format4Output(idFrondURL, false)) if err != nil { return addStoreInfo2Err(err, storeDetail.ID) } @@ -480,6 +483,7 @@ func (c *PurchaseHandler) SyncQualify(ctx *jxcontext.Context, storeDetail *dao.S } globals.SugarLogger.Debug(utils.Format4Output(qualifyList, false)) if globals.EnableJdStoreWrite { + globals.SugarLogger.Debugf("SaveQualifyTest4", utils.Format4Output(qualifyList, false)) err = api.JdPageAPI.SaveQualify(storeDetail.VendorStoreID, jdapi.SaveQualifyActionTypeCommit, qualifyList) // err = api.JdPageAPI.SaveQualify(storeDetail.VendorStoreID, jdapi.SaveQualifyActionTypeSave, qualifyList) } From 0313b11e7e33b3ec8c4a9a10f2e895a4a72c9bc2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Fri, 6 Mar 2020 14:37:39 +0800 Subject: [PATCH 118/286] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E8=90=A5=E4=B8=9A?= =?UTF-8?q?=E8=B5=84=E8=B4=A8=E7=81=B5=E5=BC=82=E4=BA=8B=E4=BB=B6=E6=B5=8B?= =?UTF-8?q?=E8=AF=952?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jd/store.go | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/business/partner/purchase/jd/store.go b/business/partner/purchase/jd/store.go index 8050f24f1..a4fffb315 100644 --- a/business/partner/purchase/jd/store.go +++ b/business/partner/purchase/jd/store.go @@ -408,12 +408,10 @@ func (c *PurchaseHandler) SyncQualify(ctx *jxcontext.Context, storeDetail *dao.S } var qualifyList []*jdapi.QualifyItem licenceDetail, err := api.JdPageAPI.GetCorporationInfo(storeDetail.VendorStoreID, storeDetail.LicenceCode) - globals.SugarLogger.Debugf("SaveQualifyTest", utils.Format4Output(licenceDetail, false)) if err != nil { return addStoreInfo2Err(err, storeDetail.ID) } licenceURL, err := c.storeUploadImgByURL(storeDetail.VendorOrgCode, storeDetail.Licence) - globals.SugarLogger.Debugf("SaveQualifyTest2", utils.Format4Output(licenceURL, false)) if err != nil { return addStoreInfo2Err(err, storeDetail.ID) } @@ -436,7 +434,6 @@ func (c *PurchaseHandler) SyncQualify(ctx *jxcontext.Context, storeDetail *dao.S }) idFrondURL, err := c.storeUploadImgByURL(storeDetail.VendorOrgCode, storeDetail.IDCardFront) - globals.SugarLogger.Debugf("SaveQualifyTest3", utils.Format4Output(idFrondURL, false)) if err != nil { return addStoreInfo2Err(err, storeDetail.ID) } @@ -483,7 +480,7 @@ func (c *PurchaseHandler) SyncQualify(ctx *jxcontext.Context, storeDetail *dao.S } globals.SugarLogger.Debug(utils.Format4Output(qualifyList, false)) if globals.EnableJdStoreWrite { - globals.SugarLogger.Debugf("SaveQualifyTest4", utils.Format4Output(qualifyList, false)) + globals.SugarLogger.Debugf("SaveQualifyTest4,[%v]", utils.Format4Output(qualifyList, false)) err = api.JdPageAPI.SaveQualify(storeDetail.VendorStoreID, jdapi.SaveQualifyActionTypeCommit, qualifyList) // err = api.JdPageAPI.SaveQualify(storeDetail.VendorStoreID, jdapi.SaveQualifyActionTypeSave, qualifyList) } From fd9611c32a00f356215c5f5ce696fbca49fff1fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Fri, 6 Mar 2020 16:13:42 +0800 Subject: [PATCH 119/286] =?UTF-8?q?=E5=85=88=E7=94=9F=E6=88=90=E4=B8=80?= =?UTF-8?q?=E4=B8=AAstore=5Fsku=5Fbind=E5=8E=86=E5=8F=B2=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store.go | 2 +- business/model/store_sku.go | 52 +++++++++++++++++++++++++++++++++++ globals/beegodb/beegodb.go | 1 + 3 files changed, 54 insertions(+), 1 deletion(-) diff --git a/business/jxstore/cms/store.go b/business/jxstore/cms/store.go index 2085b05e9..7b15f1dcc 100644 --- a/business/jxstore/cms/store.go +++ b/business/jxstore/cms/store.go @@ -2322,7 +2322,7 @@ func SyncStoresCourierInfo(ctx *jxcontext.Context, storeIDs []int, isAsync, isCo func SyncStoresQualify(ctx *jxcontext.Context, storeIDs []int, isAsync, isContinueWhenError bool) (hint string, err error) { if len(storeIDs) > 0 { db := dao.GetDB() - task := tasksch.NewParallelTask(fmt.Sprintf("上传门店资质:%v", storeIDs), tasksch.NewParallelConfig().SetIsContinueWhenError(isContinueWhenError), ctx, + task := tasksch.NewParallelTask(fmt.Sprintf("上传门店资质:%v", storeIDs), tasksch.NewParallelConfig().SetParallelCount(1).SetIsContinueWhenError(isContinueWhenError), ctx, func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { vendorID := model.VendorIDJD if handler := partner.GetPurchasePlatformFromVendorID(vendorID).(partner.IStoreSyncQualifyHandler); handler != nil { diff --git a/business/model/store_sku.go b/business/model/store_sku.go index 25895a27a..30feeeb27 100644 --- a/business/model/store_sku.go +++ b/business/model/store_sku.go @@ -134,6 +134,58 @@ func (*StoreSkuBind) TableIndex() [][]string { } } +type StoreSkuBindHistory struct { + ModelIDCULD + StoreSkuBindID int `orm:"column(store_sku_bind_id)"` + StoreID int `orm:"column(store_id)"` + SkuID int `orm:"column(sku_id)"` + SubStoreID int `orm:"column(sub_store_id)"` + Price int // 单位为分,不用int64的原因是这里不需要累加 + UnitPrice int // 这个是一斤的门店商品价,放在这里的原因是避免额外增加一张store sku_name表,逻辑上要保证同一SKU NAME中的所有SKU这个字段的数据一致 + Status int + + // ElmID int64 `orm:"column(elm_id);index"` + MtwmID int64 `orm:"column(mtwm_id);index"` + EbaiID int64 `orm:"column(ebai_id);index"` + // WscID int64 `orm:"column(wsc_id);index"` // 表示微盟skuId + // WscID2 int64 `orm:"column(wsc_id2);index"` // 表示微盟goodsId + + // ElmSyncStatus int8 `orm:"default(2)"` + JdSyncStatus int8 `orm:"default(2)"` + MtwmSyncStatus int8 `orm:"default(2)"` + EbaiSyncStatus int8 `orm:"default(2)"` + // WscSyncStatus int8 `orm:"default(2)"` + + JdPrice int `json:"jdPrice"` + MtwmPrice int `json:"mtwmPrice"` + EbaiPrice int `json:"ebaiPrice"` + JxPrice int `json:"jxPrice"` + + JdLockTime *time.Time `orm:"null" json:"jdLockTime"` + MtwmLockTime *time.Time `orm:"null" json:"mtwmLockTime"` + EbaiLockTime *time.Time `orm:"null" json:"ebaiLockTime"` + JxLockTime *time.Time `orm:"null" json:"jxLockTime"` + + AutoSaleAt time.Time `orm:"type(datetime);null" json:"autoSaleAt"` + + StatusSaleBegin int16 //商品可售时间范围 + StatusSaleEnd int16 + + SnapshotAt time.Time `orm:"type(datetime);null;index" json:"snapshotAt"` +} + +func (*StoreSkuBindHistory) TableUnique() [][]string { + return [][]string{ + []string{"StoreID", "SkuID", "DeletedAt"}, + } +} + +func (*StoreSkuBindHistory) TableIndex() [][]string { + return [][]string{ + []string{"SkuID", "StoreID", "DeletedAt"}, + } +} + type StoreOpRequest struct { ModelIDCULD // DeletedAt用于表示请求操作结束,而并不一定是删除 diff --git a/globals/beegodb/beegodb.go b/globals/beegodb/beegodb.go index df1146097..2ddd46103 100644 --- a/globals/beegodb/beegodb.go +++ b/globals/beegodb/beegodb.go @@ -31,6 +31,7 @@ func Init() { orm.RegisterModel(&model.Place{}) orm.RegisterModel(&model.Store{}, &model.StoreSub{}, &model.StoreMap{}, &model.StoreCourierMap{}) orm.RegisterModel(&model.SkuVendorCategory{}, &model.StoreSkuCategoryMap{}, &model.SkuName{}, &model.Sku{}, &model.SkuNamePlaceBind{}, &model.StoreSkuBind{}) + orm.RegisterModel(&model.StoreSkuBindHistory{}) orm.RegisterModel(&model.SkuCategory{}) orm.RegisterModel(&model.ThingMap{}) From 2fa08582496b2a6a84a8dd96f5590d88e0f3acf1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Fri, 6 Mar 2020 16:49:44 +0800 Subject: [PATCH 120/286] =?UTF-8?q?=E7=94=9F=E6=88=90=E9=97=A8=E5=BA=97?= =?UTF-8?q?=E5=95=86=E5=93=81=E5=A4=87=E4=BB=BD=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 45 +++++++++++++++++++++++++++ business/model/store_sku.go | 40 ++---------------------- controllers/cms_store_sku.go | 15 +++++++++ routers/commentsRouter_controllers.go | 18 +++++++++++ 4 files changed, 81 insertions(+), 37 deletions(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index 8461e9aaa..0e8db150c 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -3844,3 +3844,48 @@ func getSkuNamePrice(db *dao.DaoDB, skuID int, orgPrice int64) (price int64, nam } return price, nameID } + +func BackUpStoreSkuBind(ctx *jxcontext.Context, isAsync, isContinueWhenError bool) (hint string, err error) { + var ( + db = dao.GetDB() + storeSkuBinds []*model.StoreSkuBind + snapshotAt = time.Now() + ) + storeSkuBindHis := &model.StoreSkuBindHistory{ + SnapshotAt: snapshotAt.AddDate(0, 0, -3), + } + storeSkuBindHis2 := &model.StoreSkuBindHistory{ + SnapshotAt: snapshotAt, + } + dao.DeleteEntity(db, storeSkuBindHis, "SnapShotAt") + dao.DeleteEntity(db, storeSkuBindHis2, "SnapShotAt") + sql := `SELECT * FROM store_sku_bind WHERE deleted_at = ?` + sqlParams := []interface{}{utils.DefaultTimeValue} + err = dao.GetRows(db, &storeSkuBinds, sql, sqlParams) + task := tasksch.NewParallelTask("RefreshOrdersPriceInfo", tasksch.NewParallelConfig().SetIsContinueWhenError(isContinueWhenError), ctx, + func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { + v := batchItemList[0].(*model.StoreSkuBind) + dao.Begin(db) + defer func() { + if r := recover(); r != nil { + dao.Rollback(db) + panic(r) + } + }() + storeSkuBindHis := &model.StoreSkuBindHistory{} + storeSkuBindHis.StoreSkuBind = *v + storeSkuBindHis.StoreSkuBindID = v.ID + storeSkuBindHis.SnapshotAt = snapshotAt + dao.CreateEntity(db, storeSkuBindHis) + dao.Commit(db) + return retVal, err + }, storeSkuBinds) + tasksch.HandleTask(task, nil, true).Run() + if isAsync { + hint = task.GetID() + } else { + _, err = task.GetResult(0) + hint = "1" + } + return hint, err +} diff --git a/business/model/store_sku.go b/business/model/store_sku.go index 30feeeb27..a655a96a2 100644 --- a/business/model/store_sku.go +++ b/business/model/store_sku.go @@ -135,43 +135,9 @@ func (*StoreSkuBind) TableIndex() [][]string { } type StoreSkuBindHistory struct { - ModelIDCULD - StoreSkuBindID int `orm:"column(store_sku_bind_id)"` - StoreID int `orm:"column(store_id)"` - SkuID int `orm:"column(sku_id)"` - SubStoreID int `orm:"column(sub_store_id)"` - Price int // 单位为分,不用int64的原因是这里不需要累加 - UnitPrice int // 这个是一斤的门店商品价,放在这里的原因是避免额外增加一张store sku_name表,逻辑上要保证同一SKU NAME中的所有SKU这个字段的数据一致 - Status int - - // ElmID int64 `orm:"column(elm_id);index"` - MtwmID int64 `orm:"column(mtwm_id);index"` - EbaiID int64 `orm:"column(ebai_id);index"` - // WscID int64 `orm:"column(wsc_id);index"` // 表示微盟skuId - // WscID2 int64 `orm:"column(wsc_id2);index"` // 表示微盟goodsId - - // ElmSyncStatus int8 `orm:"default(2)"` - JdSyncStatus int8 `orm:"default(2)"` - MtwmSyncStatus int8 `orm:"default(2)"` - EbaiSyncStatus int8 `orm:"default(2)"` - // WscSyncStatus int8 `orm:"default(2)"` - - JdPrice int `json:"jdPrice"` - MtwmPrice int `json:"mtwmPrice"` - EbaiPrice int `json:"ebaiPrice"` - JxPrice int `json:"jxPrice"` - - JdLockTime *time.Time `orm:"null" json:"jdLockTime"` - MtwmLockTime *time.Time `orm:"null" json:"mtwmLockTime"` - EbaiLockTime *time.Time `orm:"null" json:"ebaiLockTime"` - JxLockTime *time.Time `orm:"null" json:"jxLockTime"` - - AutoSaleAt time.Time `orm:"type(datetime);null" json:"autoSaleAt"` - - StatusSaleBegin int16 //商品可售时间范围 - StatusSaleEnd int16 - - SnapshotAt time.Time `orm:"type(datetime);null;index" json:"snapshotAt"` + StoreSkuBind + StoreSkuBindID int `orm:"column(store_sku_bind_id)"` + SnapshotAt time.Time `orm:"type(datetime);null;index" json:"snapshotAt"` } func (*StoreSkuBindHistory) TableUnique() [][]string { diff --git a/controllers/cms_store_sku.go b/controllers/cms_store_sku.go index 5bd2a7c54..70d11c782 100644 --- a/controllers/cms_store_sku.go +++ b/controllers/cms_store_sku.go @@ -712,3 +712,18 @@ func (c *StoreSkuController) RefreshJxPriceByVendor2() { return retVal, "", err }) } + +// @Title 生成门店商品备份表 +// @Description 生成门店商品备份表 +// @Param token header string true "认证token" +// @Param isAsync formData bool false "是否异步,缺省是同步" +// @Param isContinueWhenError formData bool false "单个同步失败是否继续,缺省false" +// @Success 200 {object} controllers.CallResult +// @Failure 200 {object} controllers.CallResult +// @router /BackUpStoreSkuBind [post] +func (c *StoreSkuController) BackUpStoreSkuBind() { + c.callBackUpStoreSkuBind(func(params *tStoreSkuBackUpStoreSkuBindParams) (retVal interface{}, errCode string, err error) { + retVal, err = cms.BackUpStoreSkuBind(params.Ctx, params.IsAsync, params.IsContinueWhenError) + return retVal, "", err + }) +} diff --git a/routers/commentsRouter_controllers.go b/routers/commentsRouter_controllers.go index 9f12bdaf7..a9b381ca7 100644 --- a/routers/commentsRouter_controllers.go +++ b/routers/commentsRouter_controllers.go @@ -655,6 +655,15 @@ func init() { Filters: nil, Params: nil}) + beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:JxOrderController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:JxOrderController"], + beego.ControllerComments{ + Method: "GetMatterOrderStatus", + Router: `/GetMatterOrderStatus`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:JxOrderController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:JxOrderController"], beego.ControllerComments{ Method: "GetMyOrderCountInfo", @@ -1773,6 +1782,15 @@ func init() { Filters: nil, Params: nil}) + beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreSkuController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreSkuController"], + beego.ControllerComments{ + Method: "BackUpStoreSkuBind", + Router: `/BackUpStoreSkuBind`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreSkuController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreSkuController"], beego.ControllerComments{ Method: "CopyStoreSkus", From 8f7a023d89230530fffb280dffb6df16c3b3ecdd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Fri, 6 Mar 2020 17:03:55 +0800 Subject: [PATCH 121/286] =?UTF-8?q?=E7=94=9F=E6=88=90=E9=97=A8=E5=BA=97?= =?UTF-8?q?=E5=95=86=E5=93=81=E5=A4=87=E4=BB=BD=E8=A1=A8=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index 0e8db150c..789a4705c 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -3859,12 +3859,14 @@ func BackUpStoreSkuBind(ctx *jxcontext.Context, isAsync, isContinueWhenError boo } dao.DeleteEntity(db, storeSkuBindHis, "SnapShotAt") dao.DeleteEntity(db, storeSkuBindHis2, "SnapShotAt") + storeList, err := dao.GetStoreList(db, nil, nil, nil, nil, "") sql := `SELECT * FROM store_sku_bind WHERE deleted_at = ?` sqlParams := []interface{}{utils.DefaultTimeValue} err = dao.GetRows(db, &storeSkuBinds, sql, sqlParams) task := tasksch.NewParallelTask("RefreshOrdersPriceInfo", tasksch.NewParallelConfig().SetIsContinueWhenError(isContinueWhenError), ctx, func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { - v := batchItemList[0].(*model.StoreSkuBind) + store := batchItemList[0].(*model.Store) + storeSku, err := dao.GetStoresSkusInfo(db, []int{store.ID}, nil) dao.Begin(db) defer func() { if r := recover(); r != nil { @@ -3872,14 +3874,16 @@ func BackUpStoreSkuBind(ctx *jxcontext.Context, isAsync, isContinueWhenError boo panic(r) } }() - storeSkuBindHis := &model.StoreSkuBindHistory{} - storeSkuBindHis.StoreSkuBind = *v - storeSkuBindHis.StoreSkuBindID = v.ID - storeSkuBindHis.SnapshotAt = snapshotAt - dao.CreateEntity(db, storeSkuBindHis) + for _, v := range storeSku { + storeSkuBindHis := &model.StoreSkuBindHistory{} + storeSkuBindHis.StoreSkuBind = *v + storeSkuBindHis.StoreSkuBindID = v.ID + storeSkuBindHis.SnapshotAt = snapshotAt + dao.CreateEntity(db, storeSkuBindHis) + } dao.Commit(db) return retVal, err - }, storeSkuBinds) + }, storeList) tasksch.HandleTask(task, nil, true).Run() if isAsync { hint = task.GetID() From d8696cb7bca7fc0765f41e825eb66dae71171300 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Fri, 6 Mar 2020 17:06:32 +0800 Subject: [PATCH 122/286] =?UTF-8?q?=E7=94=9F=E6=88=90=E9=97=A8=E5=BA=97?= =?UTF-8?q?=E5=95=86=E5=93=81=E5=A4=87=E4=BB=BD=E8=A1=A8=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index 789a4705c..8b1dc6770 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -3847,9 +3847,8 @@ func getSkuNamePrice(db *dao.DaoDB, skuID int, orgPrice int64) (price int64, nam func BackUpStoreSkuBind(ctx *jxcontext.Context, isAsync, isContinueWhenError bool) (hint string, err error) { var ( - db = dao.GetDB() - storeSkuBinds []*model.StoreSkuBind - snapshotAt = time.Now() + db = dao.GetDB() + snapshotAt = time.Now() ) storeSkuBindHis := &model.StoreSkuBindHistory{ SnapshotAt: snapshotAt.AddDate(0, 0, -3), @@ -3860,9 +3859,6 @@ func BackUpStoreSkuBind(ctx *jxcontext.Context, isAsync, isContinueWhenError boo dao.DeleteEntity(db, storeSkuBindHis, "SnapShotAt") dao.DeleteEntity(db, storeSkuBindHis2, "SnapShotAt") storeList, err := dao.GetStoreList(db, nil, nil, nil, nil, "") - sql := `SELECT * FROM store_sku_bind WHERE deleted_at = ?` - sqlParams := []interface{}{utils.DefaultTimeValue} - err = dao.GetRows(db, &storeSkuBinds, sql, sqlParams) task := tasksch.NewParallelTask("RefreshOrdersPriceInfo", tasksch.NewParallelConfig().SetIsContinueWhenError(isContinueWhenError), ctx, func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { store := batchItemList[0].(*model.Store) From 337ea5ce69490400afd92411ff088d9929d52ab9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Fri, 6 Mar 2020 17:10:39 +0800 Subject: [PATCH 123/286] =?UTF-8?q?=E7=94=9F=E6=88=90=E9=97=A8=E5=BA=97?= =?UTF-8?q?=E5=95=86=E5=93=81=E5=A4=87=E4=BB=BD=E8=A1=A8=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 8 -------- 1 file changed, 8 deletions(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index 8b1dc6770..838aac8b0 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -3863,13 +3863,6 @@ func BackUpStoreSkuBind(ctx *jxcontext.Context, isAsync, isContinueWhenError boo func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { store := batchItemList[0].(*model.Store) storeSku, err := dao.GetStoresSkusInfo(db, []int{store.ID}, nil) - dao.Begin(db) - defer func() { - if r := recover(); r != nil { - dao.Rollback(db) - panic(r) - } - }() for _, v := range storeSku { storeSkuBindHis := &model.StoreSkuBindHistory{} storeSkuBindHis.StoreSkuBind = *v @@ -3877,7 +3870,6 @@ func BackUpStoreSkuBind(ctx *jxcontext.Context, isAsync, isContinueWhenError boo storeSkuBindHis.SnapshotAt = snapshotAt dao.CreateEntity(db, storeSkuBindHis) } - dao.Commit(db) return retVal, err }, storeList) tasksch.HandleTask(task, nil, true).Run() From 9b42d683bd2102f0993004c83a0d9b9fbbcc48fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Fri, 6 Mar 2020 17:54:11 +0800 Subject: [PATCH 124/286] =?UTF-8?q?=E7=94=9F=E6=88=90=E9=97=A8=E5=BA=97?= =?UTF-8?q?=E5=95=86=E5=93=81=E5=A4=87=E4=BB=BD=E8=A1=A8=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 11 ++++++----- business/jxstore/misc/misc.go | 12 ++++++------ business/model/store_sku.go | 2 +- 3 files changed, 13 insertions(+), 12 deletions(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index 838aac8b0..3e22fd5aa 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -3848,7 +3848,7 @@ func getSkuNamePrice(db *dao.DaoDB, skuID int, orgPrice int64) (price int64, nam func BackUpStoreSkuBind(ctx *jxcontext.Context, isAsync, isContinueWhenError bool) (hint string, err error) { var ( db = dao.GetDB() - snapshotAt = time.Now() + snapshotAt = utils.Time2Date(time.Now()) ) storeSkuBindHis := &model.StoreSkuBindHistory{ SnapshotAt: snapshotAt.AddDate(0, 0, -3), @@ -3856,10 +3856,10 @@ func BackUpStoreSkuBind(ctx *jxcontext.Context, isAsync, isContinueWhenError boo storeSkuBindHis2 := &model.StoreSkuBindHistory{ SnapshotAt: snapshotAt, } - dao.DeleteEntity(db, storeSkuBindHis, "SnapShotAt") - dao.DeleteEntity(db, storeSkuBindHis2, "SnapShotAt") + dao.DeleteEntity(db, storeSkuBindHis, "SnapshotAt") + dao.DeleteEntity(db, storeSkuBindHis2, "SnapshotAt") storeList, err := dao.GetStoreList(db, nil, nil, nil, nil, "") - task := tasksch.NewParallelTask("RefreshOrdersPriceInfo", tasksch.NewParallelConfig().SetIsContinueWhenError(isContinueWhenError), ctx, + task := tasksch.NewParallelTask("BackUpStoreSkuBind", tasksch.NewParallelConfig().SetIsContinueWhenError(isContinueWhenError), ctx, func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { store := batchItemList[0].(*model.Store) storeSku, err := dao.GetStoresSkusInfo(db, []int{store.ID}, nil) @@ -3867,7 +3867,8 @@ func BackUpStoreSkuBind(ctx *jxcontext.Context, isAsync, isContinueWhenError boo storeSkuBindHis := &model.StoreSkuBindHistory{} storeSkuBindHis.StoreSkuBind = *v storeSkuBindHis.StoreSkuBindID = v.ID - storeSkuBindHis.SnapshotAt = snapshotAt + storeSkuBindHis.StoreSkuBind.ID = 0 + storeSkuBindHis.SnapshotAt = utils.Time2Date(snapshotAt) dao.CreateEntity(db, storeSkuBindHis) } return retVal, err diff --git a/business/jxstore/misc/misc.go b/business/jxstore/misc/misc.go index 7830ad3d9..14aa3023b 100644 --- a/business/jxstore/misc/misc.go +++ b/business/jxstore/misc/misc.go @@ -283,17 +283,17 @@ func syncStoreSku() { // _, err = cms.CurVendorSync.FullSyncStoresSkus(jxcontext.AdminCtx, db, partner.GetMultiStoreVendorIDs(), nil, false, []int{27379}, true, true) errList.AddErr(err) case 1: - errList.AddErr(cms.SetSingleStoreSkuSyncModifyStatus(db, []int{3})) + // errList.AddErr(cms.SetSingleStoreSkuSyncModifyStatus(db, []int{3})) - // errList.AddErr(cms.SetSingleStoreSkuSyncModifyStatus(db, partner.GetSingleStoreVendorIDs())) - _, err = cms.CurVendorSync.AmendAndPruneStoreStuff(jxcontext.AdminCtx, []int{3}, nil, false, true, cms.AmendPruneAll, false) + errList.AddErr(cms.SetSingleStoreSkuSyncModifyStatus(db, partner.GetSingleStoreVendorIDs())) + // _, err = cms.CurVendorSync.AmendAndPruneStoreStuff(jxcontext.AdminCtx, []int{3}, nil, false, true, cms.AmendPruneAll, false) - // _, err = cms.CurVendorSync.AmendAndPruneStoreStuff(jxcontext.AdminCtx, partner.GetSingleStoreVendorIDs(), nil, false, true, cms.AmendPruneAll, false) + _, err = cms.CurVendorSync.AmendAndPruneStoreStuff(jxcontext.AdminCtx, partner.GetSingleStoreVendorIDs(), nil, false, true, cms.AmendPruneAll, false) errList.AddErr(err) SaveImportantTaskID(TaskNameSyncStoreSku, SpecialTaskID) - taskID, err2 := cms.CurVendorSync.SyncStoresSkus2(jxcontext.AdminCtx, nil, 0, db, []int{3}, nil, false, nil, nil, syncFlag, true, true) - // taskID, err2 := cms.CurVendorSync.SyncStoresSkus2(jxcontext.AdminCtx, nil, 0, db, partner.GetSingleStoreVendorIDs(), nil, false, nil, nil, syncFlag, true, true) + // taskID, err2 := cms.CurVendorSync.SyncStoresSkus2(jxcontext.AdminCtx, nil, 0, db, []int{3}, nil, false, nil, nil, syncFlag, true, true) + taskID, err2 := cms.CurVendorSync.SyncStoresSkus2(jxcontext.AdminCtx, nil, 0, db, partner.GetSingleStoreVendorIDs(), nil, false, nil, nil, syncFlag, true, true) errList.AddErr(err2) SaveImportantTaskID(TaskNameSyncStoreSku, taskID) diff --git a/business/model/store_sku.go b/business/model/store_sku.go index a655a96a2..8911292cd 100644 --- a/business/model/store_sku.go +++ b/business/model/store_sku.go @@ -142,7 +142,7 @@ type StoreSkuBindHistory struct { func (*StoreSkuBindHistory) TableUnique() [][]string { return [][]string{ - []string{"StoreID", "SkuID", "DeletedAt"}, + []string{"StoreID", "SkuID", "DeletedAt", "SnapshotAt"}, } } From 0a400582cfd688b57127b11d30e6144fdb92f9bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Fri, 6 Mar 2020 18:16:30 +0800 Subject: [PATCH 125/286] =?UTF-8?q?=E7=94=9F=E6=88=90=E9=97=A8=E5=BA=97?= =?UTF-8?q?=E5=95=86=E5=93=81=E5=A4=87=E4=BB=BD=E8=A1=A8=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 9 ++++++++- business/jxstore/misc/misc.go | 7 +++++++ controllers/cms_store_sku.go | 20 ++++++++++++++++++++ 3 files changed, 35 insertions(+), 1 deletion(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index 3e22fd5aa..3289462ed 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -3863,14 +3863,16 @@ func BackUpStoreSkuBind(ctx *jxcontext.Context, isAsync, isContinueWhenError boo func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { store := batchItemList[0].(*model.Store) storeSku, err := dao.GetStoresSkusInfo(db, []int{store.ID}, nil) + var storeSkuBindHiss []*model.StoreSkuBindHistory for _, v := range storeSku { storeSkuBindHis := &model.StoreSkuBindHistory{} storeSkuBindHis.StoreSkuBind = *v storeSkuBindHis.StoreSkuBindID = v.ID storeSkuBindHis.StoreSkuBind.ID = 0 storeSkuBindHis.SnapshotAt = utils.Time2Date(snapshotAt) - dao.CreateEntity(db, storeSkuBindHis) + storeSkuBindHiss = append(storeSkuBindHiss, storeSkuBindHis) } + dao.CreateMultiEntities(db, storeSkuBindHiss) return retVal, err }, storeList) tasksch.HandleTask(task, nil, true).Run() @@ -3882,3 +3884,8 @@ func BackUpStoreSkuBind(ctx *jxcontext.Context, isAsync, isContinueWhenError boo } return hint, err } + +func ReturnStoreSkuBind(ctx *jxcontext.Context, snapshotAt string, storeIDs, skuIDs []int)(err error) { + + return err +} diff --git a/business/jxstore/misc/misc.go b/business/jxstore/misc/misc.go index 14aa3023b..5a9afac95 100644 --- a/business/jxstore/misc/misc.go +++ b/business/jxstore/misc/misc.go @@ -106,6 +106,10 @@ var ( cms.AutoSaleAtStr, } + backUpStoreSkuBindList = []string{ + "23:30:00", + } + importantTaskMap = &sync.Map{} cancelPayTimeOutOrderList = localjx.GetHalfHoursList() @@ -198,6 +202,9 @@ func Init() { ScheduleTimerFunc("CancelPayTimeOutOrder", func() { localjx.CancelPayTimeOutOrder(jxcontext.AdminCtx) }, cancelPayTimeOutOrderList) + ScheduleTimerFunc("BackUpStoreSkuBind", func() { + cms.BackUpStoreSkuBind(jxcontext.AdminCtx, true, true) + }, backUpStoreSkuBindList) } ScheduleTimerFunc("AutoSaleStoreSku", func() { cms.AutoSaleStoreSku(jxcontext.AdminCtx, nil, false) diff --git a/controllers/cms_store_sku.go b/controllers/cms_store_sku.go index 70d11c782..538b8543d 100644 --- a/controllers/cms_store_sku.go +++ b/controllers/cms_store_sku.go @@ -727,3 +727,23 @@ func (c *StoreSkuController) BackUpStoreSkuBind() { return retVal, "", err }) } + +// @Title 恢复门店商品表 +// @Description 恢复门店商品表 +// @Param token header string true "认证token" +// @Param snapshotAt formData string true "日期,格式2020-03-06 00:00:00" +// @Param storeIDs formData string true "门店列表" +// @Param skuIDs formData string true "商品列表" +// @Success 200 {object} controllers.CallResult +// @Failure 200 {object} controllers.CallResult +// @router /ReturnStoreSkuBind [post] +func (c *StoreSkuController) ReturnStoreSkuBind() { + c.callReturnStoreSkuBind(func(params *tStoreSkuReturnStoreSkuBindParams) (retVal interface{}, errCode string, err error) { + var storeIDs, skuIDs []int + if err = jxutils.Strings2Objs(params.StoreIDs, &storeIDs, params.SkuIDs, &skuIDs); err != nil { + return retVal, "", err + } + err = cms.ReturnStoreSkuBind(params.Ctx, params.SnapshotAt, storeIDs, skuIDs) + return retVal, "", err + }) +} From bbd4d649c3fcd463846c7585bc174eb6f888b63e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Fri, 6 Mar 2020 18:31:17 +0800 Subject: [PATCH 126/286] =?UTF-8?q?=E5=A4=87=E4=BB=BD=E6=81=A2=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 33 +++++++++++++++++++++++++-- routers/commentsRouter_controllers.go | 9 ++++++++ 2 files changed, 40 insertions(+), 2 deletions(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index 3289462ed..c37b04071 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -3885,7 +3885,36 @@ func BackUpStoreSkuBind(ctx *jxcontext.Context, isAsync, isContinueWhenError boo return hint, err } -func ReturnStoreSkuBind(ctx *jxcontext.Context, snapshotAt string, storeIDs, skuIDs []int)(err error) { - +func ReturnStoreSkuBind(ctx *jxcontext.Context, snapshotAt string, storeIDs, skuIDs []int) (err error) { + var ( + spAt = utils.Time2Date(utils.Str2Time(snapshotAt)) + db = dao.GetDB() + ) + if len(storeIDs) == 0 { + return fmt.Errorf("必须选择一个门店!") + } + if len(storeIDs) > 1 { + return fmt.Errorf("暂时只支持一次操作一个门店!") + } + //删除原门店商品 + sql := `DELETE FROM store_sku_bind WHERE store_id IN(` + dao.GenQuestionMarks(len(storeIDs)) + `)` + sqlParams := []interface{}{storeIDs} + _, err = dao.ExecuteSQL(db, sql, sqlParams) + + //查询备份的门店商品 + var storeHiss []*model.StoreSkuBindHistory + sql2 := `SELECT * FROM store_sku_bind WHERE snapshot_at = ? AND store_id IN(` + dao.GenQuestionMarks(len(storeIDs)) + `)` + sqlParams2 := []interface{}{spAt, storeIDs} + err = dao.GetRows(db, storeHiss, sql2, sqlParams2) + + //插入到现在 + var storeSkus []*model.StoreSkuBind + for _, v := range storeHiss { + storeSku := &model.StoreSkuBind{} + storeSku = &v.StoreSkuBind + storeSku.ID = v.StoreSkuBindID + storeSkus = append(storeSkus, storeSku) + } + dao.CreateMultiEntities(db, storeSkus) return err } diff --git a/routers/commentsRouter_controllers.go b/routers/commentsRouter_controllers.go index a9b381ca7..6e3ae6663 100644 --- a/routers/commentsRouter_controllers.go +++ b/routers/commentsRouter_controllers.go @@ -1962,6 +1962,15 @@ func init() { Filters: nil, Params: nil}) + beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreSkuController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreSkuController"], + beego.ControllerComments{ + Method: "ReturnStoreSkuBind", + Router: `/ReturnStoreSkuBind`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreSkuController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreSkuController"], beego.ControllerComments{ Method: "SendSeckillSkusCountMsg", From ebf5b664294d54ee29072997c36ee6db92ed65c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 9 Mar 2020 09:08:00 +0800 Subject: [PATCH 127/286] =?UTF-8?q?=E6=89=AB=E7=A0=81=E7=BB=91=E5=AE=9A?= =?UTF-8?q?=E6=89=93=E5=8D=B0=E6=9C=BA=E4=B9=9F=E8=A6=81=E6=B8=85=E7=A9=BA?= =?UTF-8?q?=E6=89=93=E5=8D=B0=E9=98=9F=E5=88=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 2 +- business/jxutils/netprinter/netprinter.go | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index c37b04071..9102ddddd 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -3851,7 +3851,7 @@ func BackUpStoreSkuBind(ctx *jxcontext.Context, isAsync, isContinueWhenError boo snapshotAt = utils.Time2Date(time.Now()) ) storeSkuBindHis := &model.StoreSkuBindHistory{ - SnapshotAt: snapshotAt.AddDate(0, 0, -3), + SnapshotAt: snapshotAt.AddDate(0, 0, -2), } storeSkuBindHis2 := &model.StoreSkuBindHistory{ SnapshotAt: snapshotAt, diff --git a/business/jxutils/netprinter/netprinter.go b/business/jxutils/netprinter/netprinter.go index b4c72f2f1..c1af8db20 100644 --- a/business/jxutils/netprinter/netprinter.go +++ b/business/jxutils/netprinter/netprinter.go @@ -144,6 +144,7 @@ func BindPrinter(ctx *jxcontext.Context, storeID int, data string) (printResult store.PrinterKey = bindResult.PrinterKey store.PrinterBindInfo = string(utils.MustMarshal(bindResult)) if _, err = dao.UpdateEntity(db, store); err == nil { + err = handler.EmptyPrintList(ctx, bindResult.PrinterSN, bindResult.PrinterKey) printResult, err = handler.GetPrinterStatus(ctx, bindResult.PrinterSN, bindResult.PrinterKey) } } From 3f7f56298a1973af2f676440794e8cc0df1d6f8c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 9 Mar 2020 09:30:45 +0800 Subject: [PATCH 128/286] =?UTF-8?q?=E6=81=A2=E5=A4=8D=E9=97=A8=E5=BA=97?= =?UTF-8?q?=E5=95=86=E5=93=81=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index 9102ddddd..d3367b7d3 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -3899,12 +3899,20 @@ func ReturnStoreSkuBind(ctx *jxcontext.Context, snapshotAt string, storeIDs, sku //删除原门店商品 sql := `DELETE FROM store_sku_bind WHERE store_id IN(` + dao.GenQuestionMarks(len(storeIDs)) + `)` sqlParams := []interface{}{storeIDs} + if len(skuIDs) > 0 { + sql += " AND sku_id IN(" + dao.GenQuestionMarks(len(skuIDs)) + ")" + sqlParams = append(sqlParams, skuIDs) + } _, err = dao.ExecuteSQL(db, sql, sqlParams) //查询备份的门店商品 var storeHiss []*model.StoreSkuBindHistory sql2 := `SELECT * FROM store_sku_bind WHERE snapshot_at = ? AND store_id IN(` + dao.GenQuestionMarks(len(storeIDs)) + `)` sqlParams2 := []interface{}{spAt, storeIDs} + if len(skuIDs) > 0 { + sql2 += " AND sku_id IN(" + dao.GenQuestionMarks(len(skuIDs)) + ")" + sqlParams2 = append(sqlParams2, skuIDs) + } err = dao.GetRows(db, storeHiss, sql2, sqlParams2) //插入到现在 From 4bae4e6688d1ddf41738e6ef20bd66d88a910fa8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 9 Mar 2020 09:35:57 +0800 Subject: [PATCH 129/286] =?UTF-8?q?=E6=81=A2=E5=A4=8D=E9=97=A8=E5=BA=97?= =?UTF-8?q?=E5=95=86=E5=93=81=E4=BC=98=E5=8C=96=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- controllers/cms_store_sku.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/controllers/cms_store_sku.go b/controllers/cms_store_sku.go index 538b8543d..8c9d75fc5 100644 --- a/controllers/cms_store_sku.go +++ b/controllers/cms_store_sku.go @@ -733,7 +733,7 @@ func (c *StoreSkuController) BackUpStoreSkuBind() { // @Param token header string true "认证token" // @Param snapshotAt formData string true "日期,格式2020-03-06 00:00:00" // @Param storeIDs formData string true "门店列表" -// @Param skuIDs formData string true "商品列表" +// @Param skuIDs formData string false "商品列表" // @Success 200 {object} controllers.CallResult // @Failure 200 {object} controllers.CallResult // @router /ReturnStoreSkuBind [post] From b874f46fbab211fe0c571999dbac8c7acc107729 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 9 Mar 2020 10:03:30 +0800 Subject: [PATCH 130/286] =?UTF-8?q?=E6=81=A2=E5=A4=8D=E9=97=A8=E5=BA=97?= =?UTF-8?q?=E5=95=86=E5=93=81bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index d3367b7d3..f1542b9ce 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -3913,7 +3913,7 @@ func ReturnStoreSkuBind(ctx *jxcontext.Context, snapshotAt string, storeIDs, sku sql2 += " AND sku_id IN(" + dao.GenQuestionMarks(len(skuIDs)) + ")" sqlParams2 = append(sqlParams2, skuIDs) } - err = dao.GetRows(db, storeHiss, sql2, sqlParams2) + err = dao.GetRows(db, &storeHiss, sql2, sqlParams2) //插入到现在 var storeSkus []*model.StoreSkuBind From 54f1ce4801322e2c82954997ccdf872cb46cd189 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 9 Mar 2020 10:06:15 +0800 Subject: [PATCH 131/286] =?UTF-8?q?=E6=81=A2=E5=A4=8D=E9=97=A8=E5=BA=97?= =?UTF-8?q?=E5=95=86=E5=93=81bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index f1542b9ce..f83f326a7 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -3907,7 +3907,7 @@ func ReturnStoreSkuBind(ctx *jxcontext.Context, snapshotAt string, storeIDs, sku //查询备份的门店商品 var storeHiss []*model.StoreSkuBindHistory - sql2 := `SELECT * FROM store_sku_bind WHERE snapshot_at = ? AND store_id IN(` + dao.GenQuestionMarks(len(storeIDs)) + `)` + sql2 := `SELECT * FROM store_sku_bind_history WHERE snapshot_at = ? AND store_id IN(` + dao.GenQuestionMarks(len(storeIDs)) + `)` sqlParams2 := []interface{}{spAt, storeIDs} if len(skuIDs) > 0 { sql2 += " AND sku_id IN(" + dao.GenQuestionMarks(len(skuIDs)) + ")" From 32d846effc57781399cfc38f8c067009b9ea72a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 9 Mar 2020 10:15:56 +0800 Subject: [PATCH 132/286] =?UTF-8?q?=E6=81=A2=E5=A4=8D=E9=97=A8=E5=BA=97?= =?UTF-8?q?=E5=95=86=E5=93=81=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index f83f326a7..cf4499af2 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -3903,8 +3903,8 @@ func ReturnStoreSkuBind(ctx *jxcontext.Context, snapshotAt string, storeIDs, sku sql += " AND sku_id IN(" + dao.GenQuestionMarks(len(skuIDs)) + ")" sqlParams = append(sqlParams, skuIDs) } - _, err = dao.ExecuteSQL(db, sql, sqlParams) - + num, err := dao.ExecuteSQL(db, sql, sqlParams) + fmt.Println("delete:", num) //查询备份的门店商品 var storeHiss []*model.StoreSkuBindHistory sql2 := `SELECT * FROM store_sku_bind_history WHERE snapshot_at = ? AND store_id IN(` + dao.GenQuestionMarks(len(storeIDs)) + `)` @@ -3914,7 +3914,7 @@ func ReturnStoreSkuBind(ctx *jxcontext.Context, snapshotAt string, storeIDs, sku sqlParams2 = append(sqlParams2, skuIDs) } err = dao.GetRows(db, &storeHiss, sql2, sqlParams2) - + fmt.Println("storeHiss:", storeHiss) //插入到现在 var storeSkus []*model.StoreSkuBind for _, v := range storeHiss { From 8f04360be652e1f2fc8ef88a722ec7bfbbe89be2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 9 Mar 2020 10:21:24 +0800 Subject: [PATCH 133/286] =?UTF-8?q?=E6=81=A2=E5=A4=8D=E9=97=A8=E5=BA=97?= =?UTF-8?q?=E5=95=86=E5=93=81=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index cf4499af2..2980be0ae 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -3914,7 +3914,9 @@ func ReturnStoreSkuBind(ctx *jxcontext.Context, snapshotAt string, storeIDs, sku sqlParams2 = append(sqlParams2, skuIDs) } err = dao.GetRows(db, &storeHiss, sql2, sqlParams2) - fmt.Println("storeHiss:", storeHiss) + for _, v := range storeHiss { + fmt.Println("storeHiss:", *v) + } //插入到现在 var storeSkus []*model.StoreSkuBind for _, v := range storeHiss { From 0ed8bfbd92935f4ed7efbdf804107b05e47b5322 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 9 Mar 2020 10:35:25 +0800 Subject: [PATCH 134/286] =?UTF-8?q?=E9=97=A8=E5=BA=97=E8=90=A5=E4=B8=9A?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=85=A8=E9=83=A8=E6=8C=89=E5=AE=8C=E6=88=90?= =?UTF-8?q?=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxcallback/orderman/orderman_ext.go | 14 +++++++------- business/jxstore/cms/store_sku.go | 6 +----- 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/business/jxcallback/orderman/orderman_ext.go b/business/jxcallback/orderman/orderman_ext.go index 16f400ee9..0fc85ad5d 100644 --- a/business/jxcallback/orderman/orderman_ext.go +++ b/business/jxcallback/orderman/orderman_ext.go @@ -622,19 +622,19 @@ func (c *OrderManager) GetStoresOrderSaleInfo(ctx *jxcontext.Context, storeIDLis func (c *OrderManager) GetStoresOrderSaleInfoNew(ctx *jxcontext.Context, storeIDList []int, fromTime time.Time, toTime time.Time, statusList []int) (saleInfoList []*dao.StoresOrderSaleInfo, err error) { db := dao.GetDB() - var isFinish = true - if toTime.Sub(fromTime).Hours() > 24 { - isFinish = false - } - orderSkuList, err := dao.GetStoreOrderSkuList(db, storeIDList, fromTime, toTime, statusList, isFinish) + // var isFinish = true + // if toTime.Sub(fromTime).Hours() > 24 { + // isFinish = false + // } + orderSkuList, err := dao.GetStoreOrderSkuList(db, storeIDList, fromTime, toTime, statusList, true) if err != nil { return nil, err } - afsSkuList, err := dao.GetStoreAfsOrderSkuList(db, storeIDList, fromTime, toTime, []int{model.AfsOrderStatusFinished}, isFinish) + afsSkuList, err := dao.GetStoreAfsOrderSkuList(db, storeIDList, fromTime, toTime, []int{model.AfsOrderStatusFinished}, true) if err != nil { return nil, err } - orderSkuList4Afs, err := dao.GetStoreOrderSkuList4Afs(db, storeIDList, fromTime, toTime, isFinish) + orderSkuList4Afs, err := dao.GetStoreOrderSkuList4Afs(db, storeIDList, fromTime, toTime, true) if err != nil { return nil, err } diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index 2980be0ae..8c3415e08 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -3903,8 +3903,7 @@ func ReturnStoreSkuBind(ctx *jxcontext.Context, snapshotAt string, storeIDs, sku sql += " AND sku_id IN(" + dao.GenQuestionMarks(len(skuIDs)) + ")" sqlParams = append(sqlParams, skuIDs) } - num, err := dao.ExecuteSQL(db, sql, sqlParams) - fmt.Println("delete:", num) + _, err = dao.ExecuteSQL(db, sql, sqlParams) //查询备份的门店商品 var storeHiss []*model.StoreSkuBindHistory sql2 := `SELECT * FROM store_sku_bind_history WHERE snapshot_at = ? AND store_id IN(` + dao.GenQuestionMarks(len(storeIDs)) + `)` @@ -3914,9 +3913,6 @@ func ReturnStoreSkuBind(ctx *jxcontext.Context, snapshotAt string, storeIDs, sku sqlParams2 = append(sqlParams2, skuIDs) } err = dao.GetRows(db, &storeHiss, sql2, sqlParams2) - for _, v := range storeHiss { - fmt.Println("storeHiss:", *v) - } //插入到现在 var storeSkus []*model.StoreSkuBind for _, v := range storeHiss { From bd66b3e3032f28a851e32935065da10c0156e563 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 9 Mar 2020 14:02:27 +0800 Subject: [PATCH 135/286] =?UTF-8?q?=E5=8A=9B=E8=8D=90=E5=95=86=E5=93=81?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index 8c3415e08..9b5642904 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -3402,6 +3402,9 @@ func UpdateStoreSkusSpecTagBin(ctx *jxcontext.Context, reader io.Reader, vendorI continue } food, err := api.MtwmAPI.RetailGet(store.VendorStoreID, utils.Int2Str(v.SkuID)) + if err != nil || food == nil { + continue + } var foodData = make(map[string]interface{}) if v.IsSpec != 0 && v.IsSpec == -1 { v.IsSpec = 0 From 88cae31e912ccd6ded60f766e78f6e53ddd9223b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 9 Mar 2020 14:30:16 +0800 Subject: [PATCH 136/286] =?UTF-8?q?=E4=BA=AC=E4=B8=9Ceclp=E5=9B=9E?= =?UTF-8?q?=E8=B0=83=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- conf/app.conf | 4 ++-- controllers/eclp_callback.go | 22 ++++++++++++++++++++++ routers/router.go | 1 + 3 files changed, 25 insertions(+), 2 deletions(-) create mode 100644 controllers/eclp_callback.go diff --git a/conf/app.conf b/conf/app.conf index 1baf8c612..64ba82034 100644 --- a/conf/app.conf +++ b/conf/app.conf @@ -171,8 +171,8 @@ jd2AppKey = "7fb947624ff847ae94ff2f068cc99652" jd2Secret = "1097abd7ef09427099b4922784af123a" jdEclpAccessToken = "" -jdEclpAppKey = "" -jdEclpAppSecret = "" +jdEclpAppKey = "0D397F05CF11C51BCDCC81744680EBC3" +jdEclpAppSecret = "f16a5e57ff4f4f428b702c40d2d4b933" jdEclpRedirectUri = "" elmIsProd = true diff --git a/controllers/eclp_callback.go b/controllers/eclp_callback.go new file mode 100644 index 000000000..40b0b8635 --- /dev/null +++ b/controllers/eclp_callback.go @@ -0,0 +1,22 @@ +package controllers + +import ( + "fmt" + "net/http" + + "github.com/astaxie/beego" +) + +type EclpController struct { + beego.Controller +} + +func (c *EclpController) Msg() { + if c.Ctx.Input.Method() == http.MethodPost { + fmt.Println("testElcp", c.Ctx.Request.Body) + c.Data["json"] = c.Ctx.Request.Body + c.ServeJSON() + } else { + c.Abort("404") + } +} diff --git a/routers/router.go b/routers/router.go index 20a064c30..5a12568a9 100644 --- a/routers/router.go +++ b/routers/router.go @@ -156,6 +156,7 @@ func init() { beego.AutoRouter(&controllers.WXPayController{}) beego.AutoRouter(&controllers.Djsw2Controller{}) beego.AutoRouter(&controllers.TongLianController{}) + beego.AutoRouter(&controllers.EclpController{}) // 如下都是用于检测存活的空接口 beego.Any("/", func(ctx *beecontext.Context) { From cef54e63427bd67a41a72e27fb6f18d7bd60e236 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 9 Mar 2020 14:55:33 +0800 Subject: [PATCH 137/286] =?UTF-8?q?=E7=89=A9=E6=96=99=E4=B8=8B=E5=8D=95?= =?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/partner/purchase/jx/localjx/order.go | 81 ++++++++++--------- conf/app.conf | 3 +- globals/api/api.go | 2 +- 3 files changed, 43 insertions(+), 43 deletions(-) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index c9fd16797..3c5d7d284 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -10,6 +10,7 @@ import ( "git.rosy.net.cn/jx-callback/business/jxstore/event" "git.rosy.net.cn/jx-callback/globals" + "git.rosy.net.cn/baseapi/platformapi/jdeclpapi" "git.rosy.net.cn/baseapi/platformapi/wxpayapi" "git.rosy.net.cn/jx-callback/globals/api" @@ -594,47 +595,47 @@ func PickupGoods(order *model.GoodsOrder, isSelfDelivery bool, userName string) func orderSolutionForWuLiao(order *model.GoodsOrder) (err error) { if order.FromStoreID != 0 { - // var ( - // goodsNos []string - // prices []int - // quantities []int - // db = dao.GetDB() - // ) + var ( + goodsNos []string + prices []int + quantities []int + db = dao.GetDB() + ) err = changeOrderStatus(order.VendorOrderID, model.OrderStatusDelivering, "") - // goods, err := dao.QueryOrders(db, order.VendorOrderID, -1, []int{model.VendorIDJX}, -1, utils.ZeroTimeValue, utils.ZeroTimeValue) - // if err != nil || len(goods) == 0 { - // return err - // } - // for _, v := range goods[0].Skus { - // skus, err := dao.GetSkus(db, []int{v.SkuID}, nil, nil, nil) - // if err != nil || len(skus) == 0 { - // continue - // } - // goodsNos = append(goodsNos, skus[0].EclpID) - // prices = append(prices, 0) - // quantities = append(quantities, v.Count) - // } - // result, err := api.JdEclpAPI.AddOrder(&jdeclpapi.AddOrderParam{ - // IsvUUID: order.VendorOrderID, - // IsvSource: jdeclpapi.IsvSource, - // ShopNo: jdeclpapi.ShopNo, - // DepartmentNo: jdeclpapi.DepartmentNo, - // WarehouseNo: jdeclpapi.WarehouseNo, - // SalesPlatformOrderNo: order.VendorOrderID, - // SalePlatformSource: "", - // ConsigneeName: order.ConsigneeName, - // ConsigneeMobile: order.ConsigneeMobile, - // ConsigneeAddress: order.ConsigneeAddress, - // OrderMark: jdeclpapi.OrderMark, - // GoodsNo: goodsNos, - // Price: prices, - // Quantity: quantities, - // }) - // if err != nil { - // return err - // } - // order.EclpOutID = result.EclpSoNo - // dao.UpdateEntity(db, order, "EclpOutID") + goods, err := dao.QueryOrders(db, order.VendorOrderID, -1, []int{model.VendorIDJX}, -1, utils.ZeroTimeValue, utils.ZeroTimeValue) + if err != nil || len(goods) == 0 { + return err + } + for _, v := range goods[0].Skus { + skus, err := dao.GetSkus(db, []int{v.SkuID}, nil, nil, nil) + if err != nil || len(skus) == 0 { + continue + } + goodsNos = append(goodsNos, skus[0].EclpID) + prices = append(prices, 0) + quantities = append(quantities, v.Count) + } + result, err := api.JdEclpAPI.AddOrder(&jdeclpapi.AddOrderParam{ + IsvUUID: order.VendorOrderID, + IsvSource: jdeclpapi.IsvSource, + ShopNo: jdeclpapi.ShopNo, + DepartmentNo: jdeclpapi.DepartmentNo, + WarehouseNo: jdeclpapi.WarehouseNo, + SalesPlatformOrderNo: order.VendorOrderID, + SalePlatformSource: jdeclpapi.SalePlatformSource, + ConsigneeName: order.ConsigneeName, + ConsigneeMobile: order.ConsigneeMobile, + ConsigneeAddress: order.ConsigneeAddress, + OrderMark: jdeclpapi.OrderMark, + GoodsNo: goodsNos, + Price: prices, + Quantity: quantities, + }) + if err != nil { + return err + } + order.EclpOutID = result + dao.UpdateEntity(db, order, "EclpOutID") } return err } diff --git a/conf/app.conf b/conf/app.conf index 64ba82034..04905bd68 100644 --- a/conf/app.conf +++ b/conf/app.conf @@ -170,10 +170,9 @@ jd2Token = "29e0e567-c475-433a-aff0-37176ee8d8a7" jd2AppKey = "7fb947624ff847ae94ff2f068cc99652" jd2Secret = "1097abd7ef09427099b4922784af123a" -jdEclpAccessToken = "" +jdEclpAccessToken = "7e9c1a5fe4ac4ea48c3c572d488e60b8hnwz" jdEclpAppKey = "0D397F05CF11C51BCDCC81744680EBC3" jdEclpAppSecret = "f16a5e57ff4f4f428b702c40d2d4b933" -jdEclpRedirectUri = "" elmIsProd = true elmToken = "" diff --git a/globals/api/api.go b/globals/api/api.go index f506af452..1e1fa6cbd 100644 --- a/globals/api/api.go +++ b/globals/api/api.go @@ -108,7 +108,7 @@ func Init() { JdAPI = nil } if !beego.AppConfig.DefaultBool("disableJdEclp", false) { - JdEclpAPI = jdeclpapi.New(beego.AppConfig.String("jdEclpAccessToken"), beego.AppConfig.String("jdEclpAppKey"), beego.AppConfig.String("jdEclpAppSecret"), beego.AppConfig.String("jdEclpRedirectUri")) + JdEclpAPI = jdeclpapi.New(beego.AppConfig.String("jdEclpAccessToken"), beego.AppConfig.String("jdEclpAppKey"), beego.AppConfig.String("jdEclpAppSecret")) } else { JdEclpAPI = nil } From c20c7b2489919f82e5b7e7f60f836c4eda2be9af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 9 Mar 2020 15:05:15 +0800 Subject: [PATCH 138/286] =?UTF-8?q?=E7=89=A9=E6=96=99=E5=88=9B=E5=BB=BA?= =?UTF-8?q?=E8=AE=A2=E5=8D=95500?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/order.go | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index 3c5d7d284..8bfbbeea0 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -389,15 +389,6 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64 if distance := jxutils.Point2StoreDistance(deliveryAddress.Lng, deliveryAddress.Lat, storeDetail.Lng, storeDetail.Lat, storeDetail.DeliveryRangeType, storeDetail.DeliveryRange); distance == 0 { return nil, nil, fmt.Errorf("当前送货地址不在门店%s的配送范围", storeDetail.Name) } - //表示此订单为物料配送订单 - if fromStoreID != 0 { - storeDetail2, err2 := dao.GetStoreDetail(db, fromStoreID, model.VendorIDJX) - if err = err2; err != nil { - return nil, nil, fmt.Errorf("fromStoreID有误,[%v]", fromStoreID) - } - deliveryAddress.ConsigneeName = storeDetail2.Name - outJxOrder.FromStoreID = fromStoreID - } // 营业状态及时间检查 if storeDetail.Status != model.StoreStatusOpened { // model.StoreStatusDisabled { @@ -428,6 +419,16 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64 outJxOrder = &outJxOrder2 outJxOrder.StoreName = storeDetail.Name + //表示此订单为物料配送订单 + if fromStoreID != 0 { + storeDetail2, err2 := dao.GetStoreDetail(db, fromStoreID, model.VendorIDJX) + if err = err2; err != nil { + return nil, nil, fmt.Errorf("fromStoreID有误,[%v]", fromStoreID) + } + deliveryAddress.ConsigneeName = storeDetail2.Name + outJxOrder.FromStoreID = fromStoreID + } + skus := formalizeSkus(jxOrder.Skus) // 允许空商品列表(一般用于测试配送地址,门店信息是否合适) if len(skus) > 0 { From 5d6dae4c1272e0bb39f66131b3bb35a2fcc9af53 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 9 Mar 2020 15:30:30 +0800 Subject: [PATCH 139/286] =?UTF-8?q?=E7=89=A9=E6=96=99=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E5=88=9B=E5=BB=BA=E5=BF=98=E4=BA=86=E5=8A=A0fromstoreid?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/misc/misc.go | 9 +++++---- business/partner/purchase/jx/localjx/order.go | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/business/jxstore/misc/misc.go b/business/jxstore/misc/misc.go index 5a9afac95..959eedd11 100644 --- a/business/jxstore/misc/misc.go +++ b/business/jxstore/misc/misc.go @@ -264,10 +264,11 @@ func Init() { } func syncStoreSku() { - syncFlag := model.SyncFlagPriceMask - if (time.Now().Unix()/24*3600)%10 == 0 { - syncFlag |= model.SyncFlagSaleMask - } + syncFlag := 0 + // syncFlag := model.SyncFlagPriceMask + // if (time.Now().Unix()/24*3600)%10 == 0 { + // syncFlag |= model.SyncFlagSaleMask + // } task := tasksch.NewParallelTask("同步京西与平台数据", nil, jxcontext.AdminCtx, func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { step := batchItemList[0].(int) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index 8bfbbeea0..a15b6e13c 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -570,7 +570,7 @@ func jxOrder2GoodsOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, deliveryAd } order.TotalShopMoney += jxOrder.FreightPrice order.ActualPayPrice = order.TotalShopMoney - + order.FromStoreID = jxOrder.FromStoreID return order, err } From 5623c9a14fbc5b193288cb7217aa3578aa6ec487 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 9 Mar 2020 15:36:39 +0800 Subject: [PATCH 140/286] =?UTF-8?q?beta=E5=A2=9E=E5=8A=A0=E7=89=A9?= =?UTF-8?q?=E6=96=99=E7=9B=B8=E5=85=B3=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- conf/app.conf | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/conf/app.conf b/conf/app.conf index 04905bd68..9a1d18337 100644 --- a/conf/app.conf +++ b/conf/app.conf @@ -367,6 +367,10 @@ jd2Token = "29e0e567-c475-433a-aff0-37176ee8d8a7" jd2AppKey = "7fb947624ff847ae94ff2f068cc99652" jd2Secret = "1097abd7ef09427099b4922784af123a" +jdEclpAccessToken = "7e9c1a5fe4ac4ea48c3c572d488e60b8hnwz" +jdEclpAppKey = "0D397F05CF11C51BCDCC81744680EBC3" +jdEclpAppSecret = "f16a5e57ff4f4f428b702c40d2d4b933" + elmIsProd = true elmToken = "" elmAppKey = "KLRDcOZGrk" From b8eda36d40ba88cdc7ea83b79d7991e5debadcc6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 9 Mar 2020 15:48:10 +0800 Subject: [PATCH 141/286] =?UTF-8?q?=E7=89=A9=E6=96=99=E4=B8=8B=E5=8D=95?= =?UTF-8?q?=E6=9B=B4=E6=94=B9=E6=95=B0=E6=8D=AE=E7=B1=BB=E5=9E=8Bfloa?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/order.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index a15b6e13c..4979ca0d3 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -598,7 +598,7 @@ func orderSolutionForWuLiao(order *model.GoodsOrder) (err error) { if order.FromStoreID != 0 { var ( goodsNos []string - prices []int + prices []float64 quantities []int db = dao.GetDB() ) @@ -613,7 +613,7 @@ func orderSolutionForWuLiao(order *model.GoodsOrder) (err error) { continue } goodsNos = append(goodsNos, skus[0].EclpID) - prices = append(prices, 0) + prices = append(prices, 0.00) quantities = append(quantities, v.Count) } result, err := api.JdEclpAPI.AddOrder(&jdeclpapi.AddOrderParam{ From fd45eae813955a5dee7709fda05ea47c856554e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 9 Mar 2020 16:27:27 +0800 Subject: [PATCH 142/286] =?UTF-8?q?=E7=89=A9=E6=96=99=E4=B8=8B=E5=8D=95?= =?UTF-8?q?=E7=BB=88=E6=9E=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/order.go | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index 4979ca0d3..e29042ccc 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -5,6 +5,7 @@ import ( "fmt" "math" "sort" + "strings" "time" "git.rosy.net.cn/jx-callback/business/jxstore/event" @@ -598,8 +599,8 @@ func orderSolutionForWuLiao(order *model.GoodsOrder) (err error) { if order.FromStoreID != 0 { var ( goodsNos []string - prices []float64 - quantities []int + prices []string + quantities []string db = dao.GetDB() ) err = changeOrderStatus(order.VendorOrderID, model.OrderStatusDelivering, "") @@ -613,8 +614,8 @@ func orderSolutionForWuLiao(order *model.GoodsOrder) (err error) { continue } goodsNos = append(goodsNos, skus[0].EclpID) - prices = append(prices, 0.00) - quantities = append(quantities, v.Count) + prices = append(prices, "0") + quantities = append(quantities, utils.Int2Str(v.Count)) } result, err := api.JdEclpAPI.AddOrder(&jdeclpapi.AddOrderParam{ IsvUUID: order.VendorOrderID, @@ -628,9 +629,9 @@ func orderSolutionForWuLiao(order *model.GoodsOrder) (err error) { ConsigneeMobile: order.ConsigneeMobile, ConsigneeAddress: order.ConsigneeAddress, OrderMark: jdeclpapi.OrderMark, - GoodsNo: goodsNos, - Price: prices, - Quantity: quantities, + IsvGoodsNo: strings.Join(goodsNos, ","), + Price: strings.Join(prices, ","), + Quantity: strings.Join(quantities, ","), }) if err != nil { return err From 026fb017120339e3e1b9457ae4eb2f2f716205fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 9 Mar 2020 18:30:11 +0800 Subject: [PATCH 143/286] =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E7=89=A9=E6=96=99?= =?UTF-8?q?=E8=AE=A2=E5=8D=95=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/order.go | 58 +++++++++++++------ 1 file changed, 41 insertions(+), 17 deletions(-) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index e29042ccc..2fe773a4b 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -103,9 +103,10 @@ type DeliveryDayTimeInfo struct { } type MatterOrderStatus struct { - Time string `json:"time"` - Status string `json:"status"` - Name string `json:"name"` + Time time.Time `json:"time"` + Status string `json:"status"` + Name string `json:"name"` + Sign int `sign` } var ( @@ -951,22 +952,45 @@ func GetMatterOrderStatus(ctx *jxcontext.Context, vendorOrderID string) (result var ( db = dao.GetDB() ) - waybills, err := dao.GetWayBillByOrderID(db, -1, model.VendorIDJX, -1, vendorOrderID) order, err := partner.CurOrderManager.LoadOrder(vendorOrderID, model.VendorIDJX) - if len(waybills) > 0 { - // queryOrderStatus, err := api.JdEclpAPI.QueryOrderStatus(waybills[0].VendorWaybillID) + if err != nil { + return nil, err } - // getTrackMessagePlusByOrderResult, err := api.JdEclpAPI.GetTrackMessagePlusByOrder(vendorOrderID) - dao.Begin(db) - defer func() { - if r := recover(); r != nil { - dao.Rollback(db) - panic(r) + queryOrderStatus, err := api.JdEclpAPI.QueryOrderStatus(order.EclpOutID) + getTrackMessagePlusByOrderResult, err := api.JdEclpAPI.GetTrackMessagePlusByOrder(vendorOrderID) + for _, v := range queryOrderStatus.OrderStatusList { + time1 := utils.Str2Time(v.OperateTime) + status1 := v.SoStatusName + name1 := v.SoStatusName + for _, vv := range getTrackMessagePlusByOrderResult.ResultData { + time2 := utils.Str2Time(strings.ReplaceAll(vv.OpeName, "/", "-")) + status2 := vv.OpeTitle + name2 := vv.OpeRemark + matter := &MatterOrderStatus{} + if time2.Unix() <= time1.Unix() { + matter.Time = time2 + matter.Status = status2 + matter.Name = name2 + } else { + matter.Time = time1 + matter.Status = status1 + matter.Name = name1 + break + } + result = append(result, matter) } - }() - dao.UpdateEntity(db, order, "Status") - waybills[0].StatusTime = time.Now() - dao.UpdateEntity(db, waybills[0], "Status", "StatusTime") - dao.Commit(db) + } + if getTrackMessagePlusByOrderResult.ResultData[len(getTrackMessagePlusByOrderResult.ResultData)-1].WaybillCode == jdeclpapi.SoStatusCode10034 { + dao.Begin(db) + defer func() { + if r := recover(); r != nil { + dao.Rollback(db) + panic(r) + } + }() + order.Status = model.OrderStatusFinished + dao.UpdateEntity(db, order, "Status") + dao.Commit(db) + } return result, err } From 567171733616dfc3aff0fea119773cf45e0698fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 10 Mar 2020 08:53:46 +0800 Subject: [PATCH 144/286] =?UTF-8?q?=E7=89=A9=E6=96=99=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/order.go | 24 ++++++++++--------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index 2fe773a4b..fd2854ae2 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -980,17 +980,19 @@ func GetMatterOrderStatus(ctx *jxcontext.Context, vendorOrderID string) (result result = append(result, matter) } } - if getTrackMessagePlusByOrderResult.ResultData[len(getTrackMessagePlusByOrderResult.ResultData)-1].WaybillCode == jdeclpapi.SoStatusCode10034 { - dao.Begin(db) - defer func() { - if r := recover(); r != nil { - dao.Rollback(db) - panic(r) - } - }() - order.Status = model.OrderStatusFinished - dao.UpdateEntity(db, order, "Status") - dao.Commit(db) + if len(queryOrderStatus.OrderStatusList) > 0{ + if queryOrderStatus.OrderStatusList[len(queryOrderStatus.OrderStatusList)-1].SoStatusCode == jdeclpapi.SoStatusCode10034 { + dao.Begin(db) + defer func() { + if r := recover(); r != nil { + dao.Rollback(db) + panic(r) + } + }() + order.Status = model.OrderStatusFinished + dao.UpdateEntity(db, order, "Status") + dao.Commit(db) + } } return result, err } From 4b6823f88c4676daa7a97e86161417ec1bd1752a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 10 Mar 2020 08:57:30 +0800 Subject: [PATCH 145/286] =?UTF-8?q?=E7=89=A9=E6=96=99=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/order.go | 39 ++++++++++++------- 1 file changed, 24 insertions(+), 15 deletions(-) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index fd2854ae2..8c83c1eb8 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -962,25 +962,34 @@ func GetMatterOrderStatus(ctx *jxcontext.Context, vendorOrderID string) (result time1 := utils.Str2Time(v.OperateTime) status1 := v.SoStatusName name1 := v.SoStatusName - for _, vv := range getTrackMessagePlusByOrderResult.ResultData { - time2 := utils.Str2Time(strings.ReplaceAll(vv.OpeName, "/", "-")) - status2 := vv.OpeTitle - name2 := vv.OpeRemark - matter := &MatterOrderStatus{} - if time2.Unix() <= time1.Unix() { - matter.Time = time2 - matter.Status = status2 - matter.Name = name2 - } else { - matter.Time = time1 - matter.Status = status1 - matter.Name = name1 - break + if len(getTrackMessagePlusByOrderResult.ResultData) > 0 { + for _, vv := range getTrackMessagePlusByOrderResult.ResultData { + time2 := utils.Str2Time(strings.ReplaceAll(vv.OpeName, "/", "-")) + status2 := vv.OpeTitle + name2 := vv.OpeRemark + matter := &MatterOrderStatus{} + if time2.Unix() <= time1.Unix() { + matter.Time = time2 + matter.Status = status2 + matter.Name = name2 + } else { + matter.Time = time1 + matter.Status = status1 + matter.Name = name1 + break + } + result = append(result, matter) } + } else { + matter := &MatterOrderStatus{} + matter.Time = time1 + matter.Status = status1 + matter.Name = name1 result = append(result, matter) } } - if len(queryOrderStatus.OrderStatusList) > 0{ + + if len(queryOrderStatus.OrderStatusList) > 0 { if queryOrderStatus.OrderStatusList[len(queryOrderStatus.OrderStatusList)-1].SoStatusCode == jdeclpapi.SoStatusCode10034 { dao.Begin(db) defer func() { From 6381a40501663639671a8c02a41d5bc0c7d3d98f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 10 Mar 2020 09:09:12 +0800 Subject: [PATCH 146/286] =?UTF-8?q?=E7=89=A9=E6=96=99=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/order.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index 8c83c1eb8..09a2bfa81 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -964,7 +964,7 @@ func GetMatterOrderStatus(ctx *jxcontext.Context, vendorOrderID string) (result name1 := v.SoStatusName if len(getTrackMessagePlusByOrderResult.ResultData) > 0 { for _, vv := range getTrackMessagePlusByOrderResult.ResultData { - time2 := utils.Str2Time(strings.ReplaceAll(vv.OpeName, "/", "-")) + time2 := utils.Str2Time(strings.ReplaceAll(vv.OpeTime, "/", "-")) status2 := vv.OpeTitle name2 := vv.OpeRemark matter := &MatterOrderStatus{} From c6887599ce4c012189cb32d33f604cecc2ab9c9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 10 Mar 2020 09:13:03 +0800 Subject: [PATCH 147/286] =?UTF-8?q?=E7=89=A9=E6=96=99=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/order.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index 09a2bfa81..d338f5d18 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -972,13 +972,14 @@ func GetMatterOrderStatus(ctx *jxcontext.Context, vendorOrderID string) (result matter.Time = time2 matter.Status = status2 matter.Name = name2 + result = append(result, matter) } else { matter.Time = time1 matter.Status = status1 matter.Name = name1 + result = append(result, matter) break } - result = append(result, matter) } } else { matter := &MatterOrderStatus{} From 6fe1659dce6190ed6da6779a8c2c04ed988f2060 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 10 Mar 2020 09:34:47 +0800 Subject: [PATCH 148/286] =?UTF-8?q?=E7=89=A9=E6=96=99=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/order.go | 49 +++++++++---------- 1 file changed, 22 insertions(+), 27 deletions(-) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index d338f5d18..de411194d 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -959,37 +959,32 @@ func GetMatterOrderStatus(ctx *jxcontext.Context, vendorOrderID string) (result queryOrderStatus, err := api.JdEclpAPI.QueryOrderStatus(order.EclpOutID) getTrackMessagePlusByOrderResult, err := api.JdEclpAPI.GetTrackMessagePlusByOrder(vendorOrderID) for _, v := range queryOrderStatus.OrderStatusList { - time1 := utils.Str2Time(v.OperateTime) - status1 := v.SoStatusName - name1 := v.SoStatusName - if len(getTrackMessagePlusByOrderResult.ResultData) > 0 { - for _, vv := range getTrackMessagePlusByOrderResult.ResultData { - time2 := utils.Str2Time(strings.ReplaceAll(vv.OpeTime, "/", "-")) - status2 := vv.OpeTitle - name2 := vv.OpeRemark - matter := &MatterOrderStatus{} - if time2.Unix() <= time1.Unix() { - matter.Time = time2 - matter.Status = status2 - matter.Name = name2 - result = append(result, matter) - } else { - matter.Time = time1 - matter.Status = status1 - matter.Name = name1 - result = append(result, matter) - break - } - } - } else { + matter := &MatterOrderStatus{} + matter.Time = utils.Str2Time(v.OperateTime) + matter.Status = v.SoStatusName + matter.Name = v.SoStatusName + matter.Sign = 1 + result = append(result, matter) + } + if len(getTrackMessagePlusByOrderResult.ResultData) > 0 { + for _, vv := range getTrackMessagePlusByOrderResult.ResultData { matter := &MatterOrderStatus{} - matter.Time = time1 - matter.Status = status1 - matter.Name = name1 + matter.Time = utils.Str2Time(strings.ReplaceAll(vv.OpeTime, "/", "-")) + matter.Status = vv.OpeTitle + matter.Name = vv.OpeRemark + matter.Sign = 2 result = append(result, matter) } } - + for i := 0; i < len(result)-1; i++ { + for j := 0; j < len(result)-i-1; j++ { + if result[j].Time.Unix() > result[j+1].Time.Unix() || (result[j].Time.Unix() == result[j+1].Time.Unix() && result[j].Sign > result[j+1].Sign) { + tmp := result[j] + result[j] = result[j+1] + result[j+1] = tmp + } + } + } if len(queryOrderStatus.OrderStatusList) > 0 { if queryOrderStatus.OrderStatusList[len(queryOrderStatus.OrderStatusList)-1].SoStatusCode == jdeclpapi.SoStatusCode10034 { dao.Begin(db) From 18e72079c538ecdf237bee73fac7d4360d8561f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 10 Mar 2020 09:53:45 +0800 Subject: [PATCH 149/286] =?UTF-8?q?=E9=85=8D=E9=80=81=E6=96=B9=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E4=BA=AC=E4=B8=9C=E7=89=A9=E6=B5=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/model/api_config.go | 3 +++ business/partner/purchase/jx/localjx/order.go | 5 ++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/business/model/api_config.go b/business/model/api_config.go index 1eb9f795c..585369c0f 100644 --- a/business/model/api_config.go +++ b/business/model/api_config.go @@ -45,6 +45,8 @@ const ( VendorIDAutonavi = 321 // 高德导航 VendorIDQiNiuCloud = 323 // 七牛云 VendorIDShowAPI = 325 // 万维易源 + + VendorIDJDWL = 401 //京东物流 ) type VendorInfo struct { @@ -95,6 +97,7 @@ var ( VendorIDDada: "达达众包", VendorIDMTPS: "美团配送", + VendorIDJDWL: "京东物流", VendorIDFeiE: "飞鹅", VendorIDXiaoWM: "外卖管家", diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index de411194d..c39c2f141 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -572,7 +572,10 @@ func jxOrder2GoodsOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, deliveryAd } order.TotalShopMoney += jxOrder.FreightPrice order.ActualPayPrice = order.TotalShopMoney - order.FromStoreID = jxOrder.FromStoreID + if jxOrder.FromStoreID != 0 { + order.FromStoreID = jxOrder.FromStoreID + order.WaybillVendorID = model.VendorIDJDWL + } return order, err } From 182b7dad311f355e768528cf7a6c8d9bea8cee32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 10 Mar 2020 11:07:24 +0800 Subject: [PATCH 150/286] =?UTF-8?q?=E5=90=88=E5=B9=B6=E9=A5=BF=E9=B2=9C?= =?UTF-8?q?=E8=BE=BE=E5=BA=93bug=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/sku.go | 20 +++---------------- business/jxstore/cms/store_sku.go | 11 ++++++++++ business/partner/purchase/jx/localjx/order.go | 2 +- controllers/cms_store_sku.go | 13 ++++++++++++ 4 files changed, 28 insertions(+), 18 deletions(-) diff --git a/business/jxstore/cms/sku.go b/business/jxstore/cms/sku.go index 43c2b7d04..e3b69c634 100644 --- a/business/jxstore/cms/sku.go +++ b/business/jxstore/cms/sku.go @@ -1487,7 +1487,7 @@ func SumExianDaDepot(ctx *jxcontext.Context, isAsync, isContinueWhenError bool) taskFunc := func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { v := batchItemList[0].(*ebaiapi.ExianDaSkus) skus, err := api.EbaiAPI.GetExianDaSku(utils.Str2Int64(v.ElemeGoodsID)) - if err != nil { + if err != nil || skus == nil { return result, err } skuNameExt := &model.SkuName{} @@ -1498,7 +1498,7 @@ func SumExianDaDepot(ctx *jxcontext.Context, isAsync, isContinueWhenError bool) WHERE a.upc = ? ` sqlParams2 := []interface{}{ - skus.UpcIds, + skus.UpcIds[0], } dao.GetRow(db, skuNameExt, sql2, sqlParams2) prefix, _, _, specUnit, unit, specQuality := jxutils.SplitSkuName(v.GoodsName) @@ -1524,16 +1524,6 @@ func SumExianDaDepot(ctx *jxcontext.Context, isAsync, isContinueWhenError bool) } } } else { - skuCat := &model.SkuCategory{} - sql := ` - SELECT * - FROM sku_category - WHERE ebai_category_id = ? - ` - sqlParams := []interface{}{ - skus.CategoryIDThird, - } - dao.GetRow(db, skuCat, sql, sqlParams) skuName := &model.SkuName{ Prefix: prefix, Name: v.GoodsName, @@ -1546,11 +1536,7 @@ func SumExianDaDepot(ctx *jxcontext.Context, isAsync, isContinueWhenError bool) Upc: &v.UpcID, Status: model.SkuStatusNormal, } - if skuCat.ID != 0 { - skuName.CategoryID = skuCat.ID - } else { - skuName.CategoryID = 35 //默认给了个分类 - } + skuName.CategoryID = 35 //默认给了个分类 dao.WrapAddIDCULDEntity(skuName, ctx.GetUserName()) err = dao.CreateEntity(db, skuName) if err != nil { diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index 9b5642904..110eb62c7 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -191,6 +191,12 @@ type tUpdateSkuSpecTag struct { IsSpec int `json:"isSpec"` } +type MatterStock struct { + SkuID int `json:"skuID"` + Name string `json:"name"` + Stock int `json:"stock"` +} + const ( maxStoreNameBind = 10000 // 最大门店SkuName bind个数 maxStoreNameBind2 = 10000 // 最大门店乘SkuName个数 @@ -3927,3 +3933,8 @@ func ReturnStoreSkuBind(ctx *jxcontext.Context, snapshotAt string, storeIDs, sku dao.CreateMultiEntities(db, storeSkus) return err } + +func RefreshMatterStock(ctx *jxcontext.Context, skuID int) (matterStock []*MatterStock, err error) { + // api.JdEclpAPI.SearchShopStock(searchShopStockParam) + return matterStock, err +} diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index c39c2f141..49373042c 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -633,7 +633,7 @@ func orderSolutionForWuLiao(order *model.GoodsOrder) (err error) { ConsigneeMobile: order.ConsigneeMobile, ConsigneeAddress: order.ConsigneeAddress, OrderMark: jdeclpapi.OrderMark, - IsvGoodsNo: strings.Join(goodsNos, ","), + GoodsNo: strings.Join(goodsNos, ","), Price: strings.Join(prices, ","), Quantity: strings.Join(quantities, ","), }) diff --git a/controllers/cms_store_sku.go b/controllers/cms_store_sku.go index 8c9d75fc5..ae7b5953a 100644 --- a/controllers/cms_store_sku.go +++ b/controllers/cms_store_sku.go @@ -747,3 +747,16 @@ func (c *StoreSkuController) ReturnStoreSkuBind() { return retVal, "", err }) } + +// @Title 物料库存刷新(物料店商品上下架) +// @Description 物料库存刷新(物料店商品上下架) +// @Param token header string true "认证token" +// @Success 200 {object} controllers.CallResult +// @Failure 200 {object} controllers.CallResult +// @router /RefreshMatterStock [post] +func (c *StoreSkuController) RefreshMatterStock() { + c.callRefreshMatterStock(func(params *tStoreSkuRefreshMatterStockParams) (retVal interface{}, errCode string, err error) { + retVal, err = cms.RefreshMatterStock(params.Ctx, 0) + return retVal, "", err + }) +} From 171ed76f87342f94e3abd39c5cb1a27b2002f511 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 10 Mar 2020 13:53:11 +0800 Subject: [PATCH 151/286] =?UTF-8?q?=E5=88=B7=E6=96=B0=E7=89=A9=E6=96=99?= =?UTF-8?q?=E5=BA=97=E5=BA=93=E5=AD=98=EF=BC=8C=E5=95=86=E5=93=81=E4=B8=8A?= =?UTF-8?q?=E4=B8=8B=E6=9E=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/sku.go | 8 +- business/jxstore/cms/store_sku.go | 94 ++++++++++++++++--- business/jxstore/cms/store_sku_check.go | 4 +- business/jxstore/misc/store_sku_sales.go | 6 +- business/jxstore/yonghui/yonghui.go | 2 +- business/model/dao/report.go | 2 +- business/model/dao/sku.go | 10 +- business/partner/purchase/jx/localjx/order.go | 4 +- business/userstore/food_recipe.go | 2 +- controllers/cms_store_sku.go | 2 +- routers/commentsRouter_controllers.go | 9 ++ 11 files changed, 112 insertions(+), 31 deletions(-) diff --git a/business/jxstore/cms/sku.go b/business/jxstore/cms/sku.go index e3b69c634..3a501bb1a 100644 --- a/business/jxstore/cms/sku.go +++ b/business/jxstore/cms/sku.go @@ -888,7 +888,7 @@ func UpdateSkuName(ctx *jxcontext.Context, nameID int, payload map[string]interf } } } - skuList, err2 := dao.GetSkus(db, nil, []int{nameID}, nil, nil) + skuList, err2 := dao.GetSkus(db, nil, []int{nameID}, nil, nil, nil) if err = err2; err == nil { for _, v := range skuList { sku := &v.Sku @@ -959,7 +959,7 @@ func DeleteSkuName(ctx *jxcontext.Context, nameID int, userName string) (num int return 0, err } - skuList, err2 := dao.GetSkus(db, nil, []int{nameID}, nil, nil) + skuList, err2 := dao.GetSkus(db, nil, []int{nameID}, nil, nil, nil) if err = err2; err == nil { for _, v := range skuList { sku := &v.Sku @@ -1407,7 +1407,7 @@ func UpdateSkuNamesExPrefix(ctx *jxcontext.Context, nameIDs []int, exPrefix, fro payload["exPrefixEnd"] = nil _, err = UpdateSkuName(ctx, nameID, payload, false) } else { - skuList, err := dao.GetSkus(db, nil, []int{nameID}, nil, nil) + skuList, err := dao.GetSkus(db, nil, []int{nameID}, nil, nil, nil) if err == nil && len(skuList) > 0 { if skuList[0].ExPrefixBegin != nil { _, err = UpdateSkuName(ctx, nameID, payload, false) @@ -1440,7 +1440,7 @@ func UpdateSkuNamesExPrefix(ctx *jxcontext.Context, nameIDs []int, exPrefix, fro case 1: if (now.Sub(toTimeP) <= 0 && now.Sub(fromTimeP) >= 0) || (now.Sub(fromTimeP) > 0 && now.Sub(toTimeP) > 0) { var skuIDs []int - skuList, err2 := dao.GetSkus(db, nil, nameIDs, nil, nil) + skuList, err2 := dao.GetSkus(db, nil, nameIDs, nil, nil, nil) if err = err2; err == nil { if len(skuList) > 0 { for _, v := range skuList { diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index 110eb62c7..555054714 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -192,9 +192,10 @@ type tUpdateSkuSpecTag struct { } type MatterStock struct { - SkuID int `json:"skuID"` - Name string `json:"name"` - Stock int `json:"stock"` + SkuID int `json:"skuID"` + SkuNameID int `json:"skuNameID"` + Name string `json:"name"` + Stock int `json:"stock"` } const ( @@ -2406,7 +2407,7 @@ func GetTopSkusByCityCode(ctx *jxcontext.Context, cityCode, storeID int) (skuNam var skuList []*model.SkuAndName storeSkuSyncInfo, _ := dao.GetStoreSkusAndSkuName(db, []int{storeID}, nil, []int{v.ID}) for _, storeSkuSync := range storeSkuSyncInfo { - sku, _ := dao.GetSkus(db, []int{storeSkuSync.ID}, nil, nil, nil) + sku, _ := dao.GetSkus(db, []int{storeSkuSync.ID}, nil, nil, nil, nil) sku[0].Price = int(storeSkuSync.Price) skuList = append(skuList, sku...) } @@ -3019,7 +3020,7 @@ func FocusStoreSkusByExcelBin(ctx *jxcontext.Context, reader io.Reader, isAsync, for k, _ := range skuMap { skuIDs = append(skuIDs, k) } - skuList, err := dao.GetSkus(db, skuIDs, nil, nil, nil) + skuList, err := dao.GetSkus(db, skuIDs, nil, nil, nil, nil) storeList, err := dao.GetStoreList(db, nil, nil, nil, nil, "") if err != nil && len(skuList) == 0 { return result, err @@ -3132,7 +3133,7 @@ func FocusStoreSkusBySku(ctx *jxcontext.Context, skuBindInfos []*StoreSkuBindInf if err != nil { return retVal, err } - skuList, err := dao.GetSkus(db, []int{skuID}, nil, nil, nil) + skuList, err := dao.GetSkus(db, []int{skuID}, nil, nil, nil, nil) if err != nil { return retVal, err } @@ -3318,7 +3319,7 @@ func AutoFocusStoreSkusWithoutFocus(ctx *jxcontext.Context, skuIDs []int, isSync } var skuBindSkuList []*StoreSkuBindSkuInfo skuMap := make(map[int]int) - skuList, _ := dao.GetSkus(db, nil, []int{v.NameID}, nil, nil) + skuList, _ := dao.GetSkus(db, nil, []int{v.NameID}, nil, nil, nil) if len(v.Skus) != len(skuList) { for _, skus := range v.Skus { skuMap[skus.SkuID] = 1 @@ -3624,7 +3625,7 @@ func RefreshJxPriceByVendor(ctx *jxcontext.Context, jdStoreSkus []*JdStoreSkus, } err = dao.GetRows(db, &cats, sql, sqlParams...) if len(cats) > 0 { - skus, err = dao.GetSkus(db, []int{int(cats[0].ThingID)}, nil, nil, nil) + skus, err = dao.GetSkus(db, []int{int(cats[0].ThingID)}, nil, nil, nil, nil) if err != nil || len(skus) == 0 { return result, fmt.Errorf("没有找到该京西skuID!,京西skuID :[%v]", cats[0].ThingID) } @@ -3684,7 +3685,7 @@ func RefreshJxPriceByVendor(ctx *jxcontext.Context, jdStoreSkus []*JdStoreSkus, var ( pricePercentagePack []*model.PricePercentageItem ) - skus, _ := dao.GetSkus(db, []int{v.JdSkuID}, nil, nil, nil) + skus, _ := dao.GetSkus(db, []int{v.JdSkuID}, nil, nil, nil, nil) if len(skus) == 0 { continue } @@ -3837,7 +3838,7 @@ func getSkuNamePrice(db *dao.DaoDB, skuID int, orgPrice int64) (price int64, nam var ( specQuality float64 ) - skuList, _ := dao.GetSkus(db, []int{skuID}, nil, nil, nil) + skuList, _ := dao.GetSkus(db, []int{skuID}, nil, nil, nil, nil) for _, v := range skuList { if v.Unit == model.SpecialUnit { if v.SpecUnit == model.SpecUnitNames[1] || v.SpecUnit == model.SpecUnitNames[2] { @@ -3934,7 +3935,74 @@ func ReturnStoreSkuBind(ctx *jxcontext.Context, snapshotAt string, storeIDs, sku return err } -func RefreshMatterStock(ctx *jxcontext.Context, skuID int) (matterStock []*MatterStock, err error) { - // api.JdEclpAPI.SearchShopStock(searchShopStockParam) - return matterStock, err +func RefreshMatterStock(ctx *jxcontext.Context, skuID int) (err error) { + var ( + db = dao.GetDB() + skuBindInfos []*StoreSkuBindInfo + ) + if skuID != 0 { + skus, err := dao.GetSkus(db, []int{skuID}, nil, nil, nil, nil) + if err != nil || len(skus) == 0 { + return err + } + result, err := api.JdEclpAPI.SearchShopStock(skus[0].EclpID) + if err != nil || result == nil { + return err + } + var isSale = 0 + if utils.Str2Int64(result.Data[0].StockNum) > 0 { + isSale = 1 + } else { + isSale = -1 + } + storeSkuList, _ := dao.GetStoresSkusInfo(db, nil, []int{skuID}) + for _, vv := range storeSkuList { + var storeSkuBindSkus []*StoreSkuBindSkuInfo + storeSkuBindSku := &StoreSkuBindSkuInfo{ + SkuID: vv.SkuID, + IsSale: isSale, + } + storeSkuBindSkus = append(storeSkuBindSkus, storeSkuBindSku) + storeSkuBind := &StoreSkuBindInfo{ + StoreID: vv.StoreID, + // NameID: v.SkuNameID, + Skus: storeSkuBindSkus, + } + skuBindInfos = append(skuBindInfos, storeSkuBind) + } + } else { + result, err := api.JdEclpAPI.SearchShopStock("") + if err != nil { + return err + } + for _, v := range result.Data { + skus, err := dao.GetSkus(db, nil, nil, nil, nil, []string{v.GoodsNo}) + if err != nil || len(skus) == 0 { + continue + } + var isSale = 0 + if utils.Str2Int64(result.Data[0].StockNum) > 0 { + isSale = 1 + } else { + isSale = -1 + } + storeSkuList, _ := dao.GetStoresSkusInfo(db, nil, []int{skus[0].ID}) + for _, vv := range storeSkuList { + var storeSkuBindSkus []*StoreSkuBindSkuInfo + storeSkuBindSku := &StoreSkuBindSkuInfo{ + SkuID: vv.SkuID, + IsSale: isSale, + } + storeSkuBindSkus = append(storeSkuBindSkus, storeSkuBindSku) + storeSkuBind := &StoreSkuBindInfo{ + StoreID: vv.StoreID, + // NameID: v.SkuNameID, + Skus: storeSkuBindSkus, + } + skuBindInfos = append(skuBindInfos, storeSkuBind) + } + } + } + UpdateStoresSkusByBind(ctx, nil, skuBindInfos, true, true) + return err } diff --git a/business/jxstore/cms/store_sku_check.go b/business/jxstore/cms/store_sku_check.go index 03347715a..af4fe0995 100644 --- a/business/jxstore/cms/store_sku_check.go +++ b/business/jxstore/cms/store_sku_check.go @@ -433,7 +433,7 @@ func CompareJxAndVendor(vendorID int, storeIDStr, vendorStoreID, storeName strin func FilterJxDepotUnSaleSkuID() { db := dao.GetDB() filterJxDepotUnSaleSkuIds = filterJxDepotUnSaleSkuIds[0:0] - skuList, _ := dao.GetSkus(db, filterVendorDepotUnSaleSkuIds, []int{}, []int{}, []int{}) + skuList, _ := dao.GetSkus(db, filterVendorDepotUnSaleSkuIds, []int{}, []int{}, []int{}, nil) filterJxSkuInfoMap2 := GetFilterJxSkuInfoMap2(skuList) for skuid, jxSkuInfo := range filterJxSkuInfoMap2 { //过滤掉平台库下架,且京西库下架的商品,为下面比较门店商品用 @@ -456,7 +456,7 @@ func CompareJxAndMultiVenderDepot(ctx *jxcontext.Context, vendorMap map[int]bool FilterJxDepotUnSaleSkuID() filterVendorSkuInfoMap := GetFilterVendorSkuInfoMap(skuNameInfoList) skuNameInfoList = skuNameInfoList[0:0] - skuList, _ := dao.GetSkus(db, []int{}, []int{}, []int{}, []int{}) + skuList, _ := dao.GetSkus(db, []int{}, []int{}, []int{}, []int{}, nil) filterJxSkuInfoMap2 := GetFilterJxSkuInfoMap2(skuList) for skuid, jxSkuInfo := range filterJxSkuInfoMap2 { var jxSkuDetailName string diff --git a/business/jxstore/misc/store_sku_sales.go b/business/jxstore/misc/store_sku_sales.go index 2f7e677fe..0e42e5eb1 100644 --- a/business/jxstore/misc/store_sku_sales.go +++ b/business/jxstore/misc/store_sku_sales.go @@ -133,7 +133,7 @@ func GetStoreSkuSalesInfo(ctx *jxcontext.Context, storeID int) (outStoreSkuSales //输出商品销量统计结果 skuAndNameMapData := make(map[int]*model.SkuAndName) if len(storeSkuMapData) < len(citySkuIDs) { - skuAndNameList, err := dao.GetSkus(db, citySkuIDs, nil, nil, nil) + skuAndNameList, err := dao.GetSkus(db, citySkuIDs, nil, nil, nil, nil) if err == nil { for _, value := range skuAndNameList { skuAndNameMapData[value.ID] = value @@ -149,7 +149,7 @@ func GetStoreSkuSalesInfo(ctx *jxcontext.Context, storeID int) (outStoreSkuSales if storeSkuInfo != nil { skuName := storeSkuInfo.SkuName skuInfo := storeSkuInfo.Skus[0] - storeSkuSales.SkuName = jxutils.ComposeSkuName(skuName.Prefix, skuName.Name, skuInfo.Comment, skuName.Unit, skuInfo.SkuSpecQuality, skuInfo.SkuSpecUnit, 0,skuName.ExPrefix,skuName.ExPrefixBegin,skuName.ExPrefixEnd) + storeSkuSales.SkuName = jxutils.ComposeSkuName(skuName.Prefix, skuName.Name, skuInfo.Comment, skuName.Unit, skuInfo.SkuSpecQuality, skuInfo.SkuSpecUnit, 0, skuName.ExPrefix, skuName.ExPrefixBegin, skuName.ExPrefixEnd) storeSkuSales.SkuImage = storeSkuInfo.Img storeSkuSales.SkuPrice = jxutils.IntPrice2StandardCurrencyString(int64(storeSkuInfo.Skus[0].BindPrice)) } else if skuAndNameInfo != nil { @@ -159,7 +159,7 @@ func GetStoreSkuSalesInfo(ctx *jxcontext.Context, storeID int) (outStoreSkuSales storeSkuSales.SkuImage = skuNameList[0].Img prefix = skuNameList[0].Prefix } - storeSkuSales.SkuName = jxutils.ComposeSkuName(prefix, skuAndNameInfo.Name, skuAndNameInfo.Comment, skuAndNameInfo.Unit, skuAndNameInfo.SpecQuality, skuAndNameInfo.SpecUnit, 0,skuAndNameInfo.ExPrefix,skuAndNameInfo.ExPrefixBegin,skuAndNameInfo.ExPrefixEnd) + storeSkuSales.SkuName = jxutils.ComposeSkuName(prefix, skuAndNameInfo.Name, skuAndNameInfo.Comment, skuAndNameInfo.Unit, skuAndNameInfo.SpecQuality, skuAndNameInfo.SpecUnit, 0, skuAndNameInfo.ExPrefix, skuAndNameInfo.ExPrefixBegin, skuAndNameInfo.ExPrefixEnd) storeSkuSales.SkuPrice = "N/A" } else { storeSkuSales.SkuName = "N/A" diff --git a/business/jxstore/yonghui/yonghui.go b/business/jxstore/yonghui/yonghui.go index ee8b945c6..a56207879 100644 --- a/business/jxstore/yonghui/yonghui.go +++ b/business/jxstore/yonghui/yonghui.go @@ -312,7 +312,7 @@ func LoadExcelBinByYongHui(ctx *jxcontext.Context, reader io.Reader, isAsync, is //如果微盟商品里找得到excel中的商品 if skuMap[spuCode] != nil { //获取京西库商品 - skuList, _ := dao.GetSkus(db, nil, []int{int(utils.Str2Int64(goodsDetail.SkuMap.SingleSku.OuterSkuCode))}, nil, nil) + skuList, _ := dao.GetSkus(db, nil, []int{int(utils.Str2Int64(goodsDetail.SkuMap.SingleSku.OuterSkuCode))}, nil, nil, nil) if len(skuList) == 0 { outPutData := DataFailed{ GoodsID: spuCode, diff --git a/business/model/dao/report.go b/business/model/dao/report.go index 5ef8d3c20..ca0e7542e 100644 --- a/business/model/dao/report.go +++ b/business/model/dao/report.go @@ -307,7 +307,7 @@ func GetPriceReferSnapshot(db *DaoDB, cityCodes, skuIDs []int, skuNameID int, sn totalCount = GetLastTotalRowCount(db) } for _, v := range priceReferSnapshot { - skuList, err2 := GetSkus(db, []int{v.SkuID}, nil, nil, nil) + skuList, err2 := GetSkus(db, []int{v.SkuID}, nil, nil, nil, nil) err = err2 if len(skuList) > 0 { skuAndName := skuList[0] diff --git a/business/model/dao/sku.go b/business/model/dao/sku.go index c9a970c72..c0814d63f 100644 --- a/business/model/dao/sku.go +++ b/business/model/dao/sku.go @@ -76,7 +76,7 @@ func GetCategories(db *DaoDB, parentID, level int, catIDs []int, isExd bool) (ca return cats, GetRows(db, &cats, sql, params) } -func GetSkus(db *DaoDB, skuIDs, nameIDs, statuss, catIDs []int) (skuList []*model.SkuAndName, err error) { +func GetSkus(db *DaoDB, skuIDs, nameIDs, statuss, catIDs []int, eclpIDs []string) (skuList []*model.SkuAndName, err error) { sql := ` SELECT t1.*, t2.name, t2.unit, t2.prefix, t2.is_spu, t2.ex_prefix, t2.ex_prefix_begin, t2.ex_prefix_end FROM sku t1 @@ -110,6 +110,10 @@ func GetSkus(db *DaoDB, skuIDs, nameIDs, statuss, catIDs []int) (skuList []*mode sqlWhere += " OR t3p.id IN (" + GenQuestionMarks(len(catIDs)) + ") )" sqlParams = append(sqlParams, catIDs, catIDs) } + if len(eclpIDs) > 0 { + sqlWhere += " AND t1.eclp_id IN (" + GenQuestionMarks(len(eclpIDs)) + ") AND t2.status IN (" + GenQuestionMarks(len(statuss)) + ")" + sqlParams = append(sqlParams, eclpIDs) + } sql += sqlWhere if err = GetRows(db, &skuList, sql, sqlParams...); err == nil { return skuList, nil @@ -137,7 +141,7 @@ func GetSkuNames(db *DaoDB, nameIDs []int) (skuNameList []*model.SkuName, err er } func GetSkuIDByNames(db *DaoDB, nameIDs []int) (skuIDs []int, err error) { - skuList, err := GetSkus(db, nil, nameIDs, nil, nil) + skuList, err := GetSkus(db, nil, nameIDs, nil, nil, nil) if err == nil { for _, sku := range skuList { skuIDs = append(skuIDs, sku.ID) @@ -147,7 +151,7 @@ func GetSkuIDByNames(db *DaoDB, nameIDs []int) (skuIDs []int, err error) { } func GetSkuByCats(db *DaoDB, catIDs []int) (skuList []*model.Sku, err error) { - skuExList, err := GetSkus(db, nil, nil, nil, catIDs) + skuExList, err := GetSkus(db, nil, nil, nil, catIDs, nil) if err == nil { for _, v := range skuExList { skuList = append(skuList, &v.Sku) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index 49373042c..ace7ddffc 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -451,7 +451,7 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64 } } - skuList, err := dao.GetSkus(db, skuIDs, nil, nil, nil) + skuList, err := dao.GetSkus(db, skuIDs, nil, nil, nil, nil) if err != nil { return nil, nil, err } @@ -613,7 +613,7 @@ func orderSolutionForWuLiao(order *model.GoodsOrder) (err error) { return err } for _, v := range goods[0].Skus { - skus, err := dao.GetSkus(db, []int{v.SkuID}, nil, nil, nil) + skus, err := dao.GetSkus(db, []int{v.SkuID}, nil, nil, nil, nil) if err != nil || len(skus) == 0 { continue } diff --git a/business/userstore/food_recipe.go b/business/userstore/food_recipe.go index e64ae900b..5359a94eb 100644 --- a/business/userstore/food_recipe.go +++ b/business/userstore/food_recipe.go @@ -40,7 +40,7 @@ func updateFoodRecipeItemAndStep(ctx *jxcontext.Context, db *dao.DaoDB, recipeID if len(v.SkuIDs) == 0 { return fmt.Errorf("SkuIDs必须要有值") } - skuIDs, err2 := dao.GetSkus(db, v.SkuIDs, nil, nil, nil) + skuIDs, err2 := dao.GetSkus(db, v.SkuIDs, nil, nil, nil, nil) if err = err2; err != nil { return err } diff --git a/controllers/cms_store_sku.go b/controllers/cms_store_sku.go index ae7b5953a..0a17595b8 100644 --- a/controllers/cms_store_sku.go +++ b/controllers/cms_store_sku.go @@ -756,7 +756,7 @@ func (c *StoreSkuController) ReturnStoreSkuBind() { // @router /RefreshMatterStock [post] func (c *StoreSkuController) RefreshMatterStock() { c.callRefreshMatterStock(func(params *tStoreSkuRefreshMatterStockParams) (retVal interface{}, errCode string, err error) { - retVal, err = cms.RefreshMatterStock(params.Ctx, 0) + err = cms.RefreshMatterStock(params.Ctx, 0) return retVal, "", err }) } diff --git a/routers/commentsRouter_controllers.go b/routers/commentsRouter_controllers.go index 6e3ae6663..1de6a474a 100644 --- a/routers/commentsRouter_controllers.go +++ b/routers/commentsRouter_controllers.go @@ -1953,6 +1953,15 @@ func init() { Filters: nil, Params: nil}) + beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreSkuController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreSkuController"], + beego.ControllerComments{ + Method: "RefreshMatterStock", + Router: `/RefreshMatterStock`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreSkuController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreSkuController"], beego.ControllerComments{ Method: "RefreshStoresSkuByVendor", From 5aee6a5535587034dcdcb9d697c9d0516d0322f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 10 Mar 2020 14:03:06 +0800 Subject: [PATCH 152/286] =?UTF-8?q?=E5=88=B7=E6=96=B0=E7=89=A9=E6=96=99?= =?UTF-8?q?=E5=BA=93=E5=AD=98=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index 555054714..1ba07ea87 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -3980,6 +3980,7 @@ func RefreshMatterStock(ctx *jxcontext.Context, skuID int) (err error) { if err != nil || len(skus) == 0 { continue } + fmt.Println("skus,", skus) var isSale = 0 if utils.Str2Int64(result.Data[0].StockNum) > 0 { isSale = 1 @@ -3987,6 +3988,7 @@ func RefreshMatterStock(ctx *jxcontext.Context, skuID int) (err error) { isSale = -1 } storeSkuList, _ := dao.GetStoresSkusInfo(db, nil, []int{skus[0].ID}) + fmt.Println("storeSkuList,", storeSkuList) for _, vv := range storeSkuList { var storeSkuBindSkus []*StoreSkuBindSkuInfo storeSkuBindSku := &StoreSkuBindSkuInfo{ @@ -4003,6 +4005,7 @@ func RefreshMatterStock(ctx *jxcontext.Context, skuID int) (err error) { } } } + fmt.Println("skuBindInfos,", skuBindInfos) UpdateStoresSkusByBind(ctx, nil, skuBindInfos, true, true) return err } From 95737ce6d490ef29ff2a761e29d414621734a8cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 10 Mar 2020 14:10:33 +0800 Subject: [PATCH 153/286] =?UTF-8?q?=E5=88=B7=E6=96=B0=E7=89=A9=E6=96=99?= =?UTF-8?q?=E5=BA=93=E5=AD=98=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 1 + 1 file changed, 1 insertion(+) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index 1ba07ea87..dd90fbec2 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -3976,6 +3976,7 @@ func RefreshMatterStock(ctx *jxcontext.Context, skuID int) (err error) { return err } for _, v := range result.Data { + fmt.Println(*v) skus, err := dao.GetSkus(db, nil, nil, nil, nil, []string{v.GoodsNo}) if err != nil || len(skus) == 0 { continue From 1314e49dfb4fb7b7f5144286dc112fab2ab738b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 10 Mar 2020 14:11:27 +0800 Subject: [PATCH 154/286] =?UTF-8?q?=E5=88=B7=E6=96=B0=E7=89=A9=E6=96=99?= =?UTF-8?q?=E5=BA=93=E5=AD=98=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index dd90fbec2..d7c0b1527 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -3976,7 +3976,7 @@ func RefreshMatterStock(ctx *jxcontext.Context, skuID int) (err error) { return err } for _, v := range result.Data { - fmt.Println(*v) + fmt.Println(v) skus, err := dao.GetSkus(db, nil, nil, nil, nil, []string{v.GoodsNo}) if err != nil || len(skus) == 0 { continue From 4af71ba7ab05b3dd538f8b17991aeb586f98c875 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 10 Mar 2020 14:16:36 +0800 Subject: [PATCH 155/286] =?UTF-8?q?=E5=88=B7=E6=96=B0=E7=89=A9=E6=96=99?= =?UTF-8?q?=E5=BA=93=E5=AD=98=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 1 - business/model/dao/sku.go | 3 +++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index d7c0b1527..1ba07ea87 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -3976,7 +3976,6 @@ func RefreshMatterStock(ctx *jxcontext.Context, skuID int) (err error) { return err } for _, v := range result.Data { - fmt.Println(v) skus, err := dao.GetSkus(db, nil, nil, nil, nil, []string{v.GoodsNo}) if err != nil || len(skus) == 0 { continue diff --git a/business/model/dao/sku.go b/business/model/dao/sku.go index c0814d63f..d566327d8 100644 --- a/business/model/dao/sku.go +++ b/business/model/dao/sku.go @@ -1,6 +1,7 @@ package dao import ( + "fmt" "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-callback/business/model" ) @@ -115,6 +116,8 @@ func GetSkus(db *DaoDB, skuIDs, nameIDs, statuss, catIDs []int, eclpIDs []string sqlParams = append(sqlParams, eclpIDs) } sql += sqlWhere + fmt.Println(sql) + fmt.Println(sqlParams) if err = GetRows(db, &skuList, sql, sqlParams...); err == nil { return skuList, nil } From 40835b9b5f64e88fc72f7f12f03d95d72395ab70 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 10 Mar 2020 14:21:11 +0800 Subject: [PATCH 156/286] =?UTF-8?q?=E5=88=B7=E6=96=B0=E7=89=A9=E6=96=99?= =?UTF-8?q?=E5=BA=93=E5=AD=98=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/model/dao/sku.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/business/model/dao/sku.go b/business/model/dao/sku.go index d566327d8..f33a499b2 100644 --- a/business/model/dao/sku.go +++ b/business/model/dao/sku.go @@ -2,6 +2,7 @@ package dao import ( "fmt" + "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-callback/business/model" ) @@ -112,7 +113,7 @@ func GetSkus(db *DaoDB, skuIDs, nameIDs, statuss, catIDs []int, eclpIDs []string sqlParams = append(sqlParams, catIDs, catIDs) } if len(eclpIDs) > 0 { - sqlWhere += " AND t1.eclp_id IN (" + GenQuestionMarks(len(eclpIDs)) + ") AND t2.status IN (" + GenQuestionMarks(len(statuss)) + ")" + sqlWhere += " AND t1.eclp_id IN (" + GenQuestionMarks(len(eclpIDs)) + ")" sqlParams = append(sqlParams, eclpIDs) } sql += sqlWhere From eb6837d38373505faabbd53e3fada9301a2eb778 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 10 Mar 2020 14:21:41 +0800 Subject: [PATCH 157/286] =?UTF-8?q?=E5=88=B7=E6=96=B0=E7=89=A9=E6=96=99?= =?UTF-8?q?=E5=BA=93=E5=AD=98=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 3 --- business/model/dao/sku.go | 4 ---- 2 files changed, 7 deletions(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index 1ba07ea87..555054714 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -3980,7 +3980,6 @@ func RefreshMatterStock(ctx *jxcontext.Context, skuID int) (err error) { if err != nil || len(skus) == 0 { continue } - fmt.Println("skus,", skus) var isSale = 0 if utils.Str2Int64(result.Data[0].StockNum) > 0 { isSale = 1 @@ -3988,7 +3987,6 @@ func RefreshMatterStock(ctx *jxcontext.Context, skuID int) (err error) { isSale = -1 } storeSkuList, _ := dao.GetStoresSkusInfo(db, nil, []int{skus[0].ID}) - fmt.Println("storeSkuList,", storeSkuList) for _, vv := range storeSkuList { var storeSkuBindSkus []*StoreSkuBindSkuInfo storeSkuBindSku := &StoreSkuBindSkuInfo{ @@ -4005,7 +4003,6 @@ func RefreshMatterStock(ctx *jxcontext.Context, skuID int) (err error) { } } } - fmt.Println("skuBindInfos,", skuBindInfos) UpdateStoresSkusByBind(ctx, nil, skuBindInfos, true, true) return err } diff --git a/business/model/dao/sku.go b/business/model/dao/sku.go index f33a499b2..96505e549 100644 --- a/business/model/dao/sku.go +++ b/business/model/dao/sku.go @@ -1,8 +1,6 @@ package dao import ( - "fmt" - "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-callback/business/model" ) @@ -117,8 +115,6 @@ func GetSkus(db *DaoDB, skuIDs, nameIDs, statuss, catIDs []int, eclpIDs []string sqlParams = append(sqlParams, eclpIDs) } sql += sqlWhere - fmt.Println(sql) - fmt.Println(sqlParams) if err = GetRows(db, &skuList, sql, sqlParams...); err == nil { return skuList, nil } From fda2bd7e533e0b4234825897a07770a9726bd5fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 10 Mar 2020 14:25:36 +0800 Subject: [PATCH 158/286] =?UTF-8?q?=E5=88=B7=E6=96=B0=E7=89=A9=E6=96=99?= =?UTF-8?q?=E5=BA=93=E5=AD=98=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index 555054714..8048b4f14 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -3981,7 +3981,7 @@ func RefreshMatterStock(ctx *jxcontext.Context, skuID int) (err error) { continue } var isSale = 0 - if utils.Str2Int64(result.Data[0].StockNum) > 0 { + if utils.Str2Int64(v.StockNum) > 0 { isSale = 1 } else { isSale = -1 From 80ddea743c7efe9d93b3011edeea9a9804373185 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 10 Mar 2020 14:29:11 +0800 Subject: [PATCH 159/286] =?UTF-8?q?=E5=88=B7=E6=96=B0=E7=89=A9=E6=96=99?= =?UTF-8?q?=E5=BA=93=E5=AD=98=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index 8048b4f14..1be7f3a2a 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -3980,13 +3980,15 @@ func RefreshMatterStock(ctx *jxcontext.Context, skuID int) (err error) { if err != nil || len(skus) == 0 { continue } + fmt.Println("skus,", skus) var isSale = 0 if utils.Str2Int64(v.StockNum) > 0 { isSale = 1 } else { isSale = -1 } - storeSkuList, _ := dao.GetStoresSkusInfo(db, nil, []int{skus[0].ID}) + storeSkuList, _ := dao.GetStoresSkusInfo(db, nil, []int{skus[0].ID})\ + fmt.Println("storeSkuList,", storeSkuList) for _, vv := range storeSkuList { var storeSkuBindSkus []*StoreSkuBindSkuInfo storeSkuBindSku := &StoreSkuBindSkuInfo{ @@ -4003,6 +4005,7 @@ func RefreshMatterStock(ctx *jxcontext.Context, skuID int) (err error) { } } } + fmt.Println("skuBindInfos,", skuBindInfos) UpdateStoresSkusByBind(ctx, nil, skuBindInfos, true, true) return err } From 85a0dfc2587316fc6e9e3d092fb41a5475ab77a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 10 Mar 2020 14:30:03 +0800 Subject: [PATCH 160/286] =?UTF-8?q?=E5=88=B7=E6=96=B0=E7=89=A9=E6=96=99?= =?UTF-8?q?=E5=BA=93=E5=AD=98=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index 1be7f3a2a..7e94119f6 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -3987,7 +3987,7 @@ func RefreshMatterStock(ctx *jxcontext.Context, skuID int) (err error) { } else { isSale = -1 } - storeSkuList, _ := dao.GetStoresSkusInfo(db, nil, []int{skus[0].ID})\ + storeSkuList, _ := dao.GetStoresSkusInfo(db, nil, []int{skus[0].ID}) fmt.Println("storeSkuList,", storeSkuList) for _, vv := range storeSkuList { var storeSkuBindSkus []*StoreSkuBindSkuInfo From 948d298f82699b86627e825d697fb3bc06b61f0c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 10 Mar 2020 14:33:00 +0800 Subject: [PATCH 161/286] =?UTF-8?q?=E5=88=B7=E6=96=B0=E7=89=A9=E6=96=99?= =?UTF-8?q?=E5=BA=93=E5=AD=98=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index 7e94119f6..e41b26b44 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -3980,7 +3980,6 @@ func RefreshMatterStock(ctx *jxcontext.Context, skuID int) (err error) { if err != nil || len(skus) == 0 { continue } - fmt.Println("skus,", skus) var isSale = 0 if utils.Str2Int64(v.StockNum) > 0 { isSale = 1 @@ -3988,7 +3987,6 @@ func RefreshMatterStock(ctx *jxcontext.Context, skuID int) (err error) { isSale = -1 } storeSkuList, _ := dao.GetStoresSkusInfo(db, nil, []int{skus[0].ID}) - fmt.Println("storeSkuList,", storeSkuList) for _, vv := range storeSkuList { var storeSkuBindSkus []*StoreSkuBindSkuInfo storeSkuBindSku := &StoreSkuBindSkuInfo{ @@ -3998,14 +3996,13 @@ func RefreshMatterStock(ctx *jxcontext.Context, skuID int) (err error) { storeSkuBindSkus = append(storeSkuBindSkus, storeSkuBindSku) storeSkuBind := &StoreSkuBindInfo{ StoreID: vv.StoreID, - // NameID: v.SkuNameID, - Skus: storeSkuBindSkus, + NameID: skus[0].NameID, + Skus: storeSkuBindSkus, } skuBindInfos = append(skuBindInfos, storeSkuBind) } } } - fmt.Println("skuBindInfos,", skuBindInfos) UpdateStoresSkusByBind(ctx, nil, skuBindInfos, true, true) return err } From e2db81dc2adbdbf350e050cdf7453630dbccd257 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 10 Mar 2020 14:38:35 +0800 Subject: [PATCH 162/286] =?UTF-8?q?=E5=88=B7=E6=96=B0=E7=89=A9=E6=96=99?= =?UTF-8?q?=E5=BA=93=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index e41b26b44..8f5cbcb4a 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -4003,6 +4003,7 @@ func RefreshMatterStock(ctx *jxcontext.Context, skuID int) (err error) { } } } - UpdateStoresSkusByBind(ctx, nil, skuBindInfos, true, true) + //物料店666666 + updateStoresSkusWithoutSync(ctx, db, []int{666666}, skuBindInfos, false) return err } From fddb9f9ffea5cd8984967c070165c134cc4a58b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 10 Mar 2020 14:43:03 +0800 Subject: [PATCH 163/286] =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E7=89=A9=E6=96=99?= =?UTF-8?q?=E8=AE=A2=E5=8D=95=E8=AF=B7=E6=B1=82=E6=94=B9=E4=B8=BAget?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- controllers/jx_order2.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/controllers/jx_order2.go b/controllers/jx_order2.go index 1474ceab1..c6daa66b4 100644 --- a/controllers/jx_order2.go +++ b/controllers/jx_order2.go @@ -164,10 +164,10 @@ func (c *JxOrderController) PayForPopluarMan() { // @Title 查询物料订单状态 // @Description 查询物料订单状态 // @Param token header string true "认证token" -// @Param vendorOrderID formData string true "订单ID" +// @Param vendorOrderID query string true "订单ID" // @Success 200 {object} controllers.CallResult // @Failure 200 {object} controllers.CallResult -// @router /GetMatterOrderStatus [post] +// @router /GetMatterOrderStatus [get] func (c *JxOrderController) GetMatterOrderStatus() { c.callGetMatterOrderStatus(func(params *tJxorderGetMatterOrderStatusParams) (retVal interface{}, errCode string, err error) { retVal, err = localjx.GetMatterOrderStatus(params.Ctx, params.VendorOrderID) From 10cf9f5d0cc1680919495b87a7f08cccfc491e41 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 10 Mar 2020 15:22:18 +0800 Subject: [PATCH 164/286] =?UTF-8?q?=E7=89=A9=E6=96=99=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E5=AE=B9=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/order.go | 3 +++ routers/commentsRouter_controllers.go | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index ace7ddffc..d720cd901 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -959,6 +959,9 @@ func GetMatterOrderStatus(ctx *jxcontext.Context, vendorOrderID string) (result if err != nil { return nil, err } + if order.EclpOutID == "" { + return nil, err + } queryOrderStatus, err := api.JdEclpAPI.QueryOrderStatus(order.EclpOutID) getTrackMessagePlusByOrderResult, err := api.JdEclpAPI.GetTrackMessagePlusByOrder(vendorOrderID) for _, v := range queryOrderStatus.OrderStatusList { diff --git a/routers/commentsRouter_controllers.go b/routers/commentsRouter_controllers.go index 1de6a474a..6e787d46c 100644 --- a/routers/commentsRouter_controllers.go +++ b/routers/commentsRouter_controllers.go @@ -659,7 +659,7 @@ func init() { beego.ControllerComments{ Method: "GetMatterOrderStatus", Router: `/GetMatterOrderStatus`, - AllowHTTPMethods: []string{"post"}, + AllowHTTPMethods: []string{"get"}, MethodParams: param.Make(), Filters: nil, Params: nil}) From 1842b7c7e97e9d0e969db447c3dcb723c42d5d1f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 10 Mar 2020 15:33:46 +0800 Subject: [PATCH 165/286] =?UTF-8?q?=E9=A5=BF=E9=B2=9C=E8=BE=BE=E5=BA=93?= =?UTF-8?q?=E5=90=88=E5=B9=B6=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 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 3a501bb1a..a63a09afa 100644 --- a/business/jxstore/cms/sku.go +++ b/business/jxstore/cms/sku.go @@ -1488,6 +1488,7 @@ func SumExianDaDepot(ctx *jxcontext.Context, isAsync, isContinueWhenError bool) v := batchItemList[0].(*ebaiapi.ExianDaSkus) skus, err := api.EbaiAPI.GetExianDaSku(utils.Str2Int64(v.ElemeGoodsID)) if err != nil || skus == nil { + globals.SugarLogger.Debugf("GetExianDaSku,[%v]", v.ElemeGoodsID) return result, err } skuNameExt := &model.SkuName{} From 315e7c7de6999297c58a7e5b0a951a5399583733 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 10 Mar 2020 15:44:56 +0800 Subject: [PATCH 166/286] =?UTF-8?q?=E7=89=A9=E6=96=99=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E6=94=AF=E4=BB=98=E5=AE=8C=E6=88=90=E7=9B=B4=E6=8E=A5=E5=88=B0?= =?UTF-8?q?=E9=85=8D=E9=80=81=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/tonglianpay.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/business/partner/purchase/jx/localjx/tonglianpay.go b/business/partner/purchase/jx/localjx/tonglianpay.go index f5a1ba9cf..7d14bc537 100644 --- a/business/partner/purchase/jx/localjx/tonglianpay.go +++ b/business/partner/purchase/jx/localjx/tonglianpay.go @@ -15,6 +15,7 @@ import ( "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/business/partner" "git.rosy.net.cn/jx-callback/globals/api" ) @@ -100,6 +101,10 @@ func onTLpayFinished(call *tonglianpayapi.CallBackResult) (err error) { if call.TrxStatus == tonglianpayapi.TrxStatusSuccess { err = OnPayFinished(orderPay) } + order, _ := partner.CurOrderManager.LoadOrder(call.CusorderID, model.VendorIDJX) + if order.FromStoreID != 0 { + PickupGoods(order, false, "") + } } else { globals.SugarLogger.Debugf("onTLpayFinished msg:%s, err:%v", utils.Format4Output(call, true), err) } From 3d82c7f153038844e3070e8c2b2303796bf52649 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 10 Mar 2020 16:04:12 +0800 Subject: [PATCH 167/286] =?UTF-8?q?=E5=90=88=E5=B9=B6=E9=A5=BF=E9=B2=9C?= =?UTF-8?q?=E8=BE=BE=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/sku.go | 65 +++++++++++++++++++------------------ 1 file changed, 34 insertions(+), 31 deletions(-) diff --git a/business/jxstore/cms/sku.go b/business/jxstore/cms/sku.go index a63a09afa..649d618e2 100644 --- a/business/jxstore/cms/sku.go +++ b/business/jxstore/cms/sku.go @@ -1491,39 +1491,42 @@ func SumExianDaDepot(ctx *jxcontext.Context, isAsync, isContinueWhenError bool) globals.SugarLogger.Debugf("GetExianDaSku,[%v]", v.ElemeGoodsID) return result, err } - skuNameExt := &model.SkuName{} - sql2 := ` - SELECT a.* - FROM sku_name a - JOIN sku b ON b.name_id = a.id - WHERE a.upc = ? - ` - sqlParams2 := []interface{}{ - skus.UpcIds[0], - } - dao.GetRow(db, skuNameExt, sql2, sqlParams2) + sku := &model.Sku{} + sku.ExdSkuID = v.ElemeGoodsID + dao.GetEntity(db, sku, "ExdSkuID") + // skuNameExt := &model.SkuName{} + // sql2 := ` + // SELECT a.* + // FROM sku_name a + // JOIN sku b ON b.name_id = a.id + // WHERE a.upc = ? + // ` + // sqlParams2 := []interface{}{ + // skus.UpcIds[0], + // } + // dao.GetRow(db, skuNameExt, sql2, sqlParams2) prefix, _, _, specUnit, unit, specQuality := jxutils.SplitSkuName(v.GoodsName) //京西库中存在此商品 - if skuNameExt.ID != 0 { - var flag = false - if skuNameExt.Name != v.GoodsName { - skuNameExt.Name = v.GoodsName - skuNameExt.Prefix = prefix - skuNameExt.SpecUnit = specUnit - skuNameExt.Unit = unit - skuNameExt.SpecQuality = specQuality - flag = true - } - if skuNameExt.Img != v.ImageURL { - skuNameExt.Img = v.ImageURL - flag = true - } - if flag { - _, err = dao.UpdateEntity(db, skuNameExt, "Name", "Prefix", "SpecUnit", "Unit", "SpecQuality", "Img") - if err != nil { - return result, err - } - } + if sku != nil { + // var flag = false + // if skuNameExt.Name != v.GoodsName { + // skuNameExt.Name = v.GoodsName + // skuNameExt.Prefix = prefix + // skuNameExt.SpecUnit = specUnit + // skuNameExt.Unit = unit + // skuNameExt.SpecQuality = specQuality + // flag = true + // } + // if skuNameExt.Img != v.ImageURL { + // skuNameExt.Img = v.ImageURL + // flag = true + // } + // if flag { + // _, err = dao.UpdateEntity(db, skuNameExt, "Name", "Prefix", "SpecUnit", "Unit", "SpecQuality", "Img") + // if err != nil { + // return result, err + // } + // } } else { skuName := &model.SkuName{ Prefix: prefix, From 5f70192b61126ae61d8861932a0c29f4e744fbf6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 10 Mar 2020 16:11:35 +0800 Subject: [PATCH 168/286] =?UTF-8?q?=E5=90=88=E5=B9=B6=E9=A5=BF=E9=B2=9C?= =?UTF-8?q?=E8=BE=BE=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 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 649d618e2..c54c951e6 100644 --- a/business/jxstore/cms/sku.go +++ b/business/jxstore/cms/sku.go @@ -1507,7 +1507,7 @@ func SumExianDaDepot(ctx *jxcontext.Context, isAsync, isContinueWhenError bool) // dao.GetRow(db, skuNameExt, sql2, sqlParams2) prefix, _, _, specUnit, unit, specQuality := jxutils.SplitSkuName(v.GoodsName) //京西库中存在此商品 - if sku != nil { + if sku.ID != 0 { // var flag = false // if skuNameExt.Name != v.GoodsName { // skuNameExt.Name = v.GoodsName From f09c51e0875dd7d5d217840a702762e84af4c58c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 10 Mar 2020 16:26:25 +0800 Subject: [PATCH 169/286] =?UTF-8?q?=E5=90=88=E5=B9=B6=E9=A5=BF=E9=B2=9C?= =?UTF-8?q?=E8=BE=BE=E5=95=86=E5=93=81=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/sku.go | 71 +++++++++++++++++++------------------ 1 file changed, 37 insertions(+), 34 deletions(-) diff --git a/business/jxstore/cms/sku.go b/business/jxstore/cms/sku.go index c54c951e6..3a2a1021e 100644 --- a/business/jxstore/cms/sku.go +++ b/business/jxstore/cms/sku.go @@ -1491,42 +1491,45 @@ func SumExianDaDepot(ctx *jxcontext.Context, isAsync, isContinueWhenError bool) globals.SugarLogger.Debugf("GetExianDaSku,[%v]", v.ElemeGoodsID) return result, err } - sku := &model.Sku{} - sku.ExdSkuID = v.ElemeGoodsID - dao.GetEntity(db, sku, "ExdSkuID") - // skuNameExt := &model.SkuName{} - // sql2 := ` - // SELECT a.* - // FROM sku_name a - // JOIN sku b ON b.name_id = a.id - // WHERE a.upc = ? - // ` - // sqlParams2 := []interface{}{ - // skus.UpcIds[0], - // } - // dao.GetRow(db, skuNameExt, sql2, sqlParams2) + // sku := &model.Sku{} + // sku.ExdSkuID = v.ElemeGoodsID + // sku.DeletedAt = utils.DefaultTimeValue + // dao.GetEntity(db, sku, "ExdSkuID","DeletedAt") + skuNameExt := &model.SkuName{} + sql2 := ` + SELECT a.* + FROM sku_name a + JOIN sku b ON b.name_id = a.id + WHERE a.upc = ? + AND a.deleted_at = ? AND b.deleted_at = ? + ` + sqlParams2 := []interface{}{ + skus.UpcIds[0], + utils.DefaultTimeValue, utils.DefaultTimeValue, + } + dao.GetRow(db, skuNameExt, sql2, sqlParams2) prefix, _, _, specUnit, unit, specQuality := jxutils.SplitSkuName(v.GoodsName) //京西库中存在此商品 - if sku.ID != 0 { - // var flag = false - // if skuNameExt.Name != v.GoodsName { - // skuNameExt.Name = v.GoodsName - // skuNameExt.Prefix = prefix - // skuNameExt.SpecUnit = specUnit - // skuNameExt.Unit = unit - // skuNameExt.SpecQuality = specQuality - // flag = true - // } - // if skuNameExt.Img != v.ImageURL { - // skuNameExt.Img = v.ImageURL - // flag = true - // } - // if flag { - // _, err = dao.UpdateEntity(db, skuNameExt, "Name", "Prefix", "SpecUnit", "Unit", "SpecQuality", "Img") - // if err != nil { - // return result, err - // } - // } + if skuNameExt.ID != 0 { + var flag = false + if skuNameExt.Name != v.GoodsName { + skuNameExt.Name = v.GoodsName + skuNameExt.Prefix = prefix + skuNameExt.SpecUnit = specUnit + skuNameExt.Unit = unit + skuNameExt.SpecQuality = specQuality + flag = true + } + if skuNameExt.Img != v.ImageURL { + skuNameExt.Img = v.ImageURL + flag = true + } + if flag { + _, err = dao.UpdateEntity(db, skuNameExt, "Name", "Prefix", "SpecUnit", "Unit", "SpecQuality", "Img") + if err != nil { + return result, err + } + } } else { skuName := &model.SkuName{ Prefix: prefix, From 73653b5d25768c6dcd198d837fe7173ed505376c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 10 Mar 2020 16:49:37 +0800 Subject: [PATCH 170/286] =?UTF-8?q?=E7=89=A9=E6=96=99=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E4=B8=8B=E5=8D=95=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/tonglianpay.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/business/partner/purchase/jx/localjx/tonglianpay.go b/business/partner/purchase/jx/localjx/tonglianpay.go index 7d14bc537..94ce5cea1 100644 --- a/business/partner/purchase/jx/localjx/tonglianpay.go +++ b/business/partner/purchase/jx/localjx/tonglianpay.go @@ -11,6 +11,7 @@ import ( "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-callback/business/auth2/authprovider/weixin" + "git.rosy.net.cn/jx-callback/business/jxcallback/scheduler/defsch" "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" @@ -103,7 +104,7 @@ func onTLpayFinished(call *tonglianpayapi.CallBackResult) (err error) { } order, _ := partner.CurOrderManager.LoadOrder(call.CusorderID, model.VendorIDJX) if order.FromStoreID != 0 { - PickupGoods(order, false, "") + defsch.FixedScheduler.PickupGoodsAndUpdateStatus(jxcontext.AdminCtx, call.CusorderID, model.VendorIDJX, "jxadmin") } } else { globals.SugarLogger.Debugf("onTLpayFinished msg:%s, err:%v", utils.Format4Output(call, true), err) From 631b7ee970012a685ed7ad9215d7e1c7536176c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 10 Mar 2020 17:34:21 +0800 Subject: [PATCH 171/286] =?UTF-8?q?=E7=89=A9=E6=96=99=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E5=95=86=E5=93=81=E7=89=A9=E6=96=99=E7=BC=96=E7=A0=81=E5=BF=85?= =?UTF-8?q?=E9=A1=BB=E6=9C=89=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/order.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index d720cd901..79933c368 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -457,6 +457,9 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64 } skuMap := make(map[int]*model.SkuAndName) for _, v := range skuList { + if v.EclpID == "" { + return nil, nil, fmt.Errorf("此商品物料编码为空,请联系管理员!skuID:[%v]", v.ID) + } skuMap[v.ID] = v } @@ -642,6 +645,10 @@ func orderSolutionForWuLiao(order *model.GoodsOrder) (err error) { } order.EclpOutID = result dao.UpdateEntity(db, order, "EclpOutID") + //刷新一下库存 + for _, v := range goods[0].Skus { + cms.RefreshMatterStock(jxcontext.AdminCtx, v.SkuID) + } } return err } From fb0814a688c5cba20cc696293032e3fb633e8fbf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 10 Mar 2020 17:36:18 +0800 Subject: [PATCH 172/286] =?UTF-8?q?=E7=89=A9=E6=96=99=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E5=95=86=E5=93=81=E7=89=A9=E6=96=99=E7=BC=96=E7=A0=81=E5=BF=85?= =?UTF-8?q?=E9=A1=BB=E6=9C=89=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/order.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index 79933c368..ce883db75 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -457,8 +457,10 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64 } skuMap := make(map[int]*model.SkuAndName) for _, v := range skuList { - if v.EclpID == "" { - return nil, nil, fmt.Errorf("此商品物料编码为空,请联系管理员!skuID:[%v]", v.ID) + if fromStoreID != 0 { + if v.EclpID == "" { + return nil, nil, fmt.Errorf("此商品物料编码为空,请联系管理员!skuID:[%v]", v.ID) + } } skuMap[v.ID] = v } From 6e63e6f7e8d2922650ca05a9c9fc455b26ecbcdc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 10 Mar 2020 18:11:21 +0800 Subject: [PATCH 173/286] =?UTF-8?q?=E7=89=A9=E6=96=99=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E9=85=8D=E9=80=81=E8=B4=B9=E8=AE=A1=E7=AE=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/order.go | 49 +++++++++++-------- 1 file changed, 28 insertions(+), 21 deletions(-) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index ce883db75..149845802 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -421,16 +421,6 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64 outJxOrder = &outJxOrder2 outJxOrder.StoreName = storeDetail.Name - //表示此订单为物料配送订单 - if fromStoreID != 0 { - storeDetail2, err2 := dao.GetStoreDetail(db, fromStoreID, model.VendorIDJX) - if err = err2; err != nil { - return nil, nil, fmt.Errorf("fromStoreID有误,[%v]", fromStoreID) - } - deliveryAddress.ConsigneeName = storeDetail2.Name - outJxOrder.FromStoreID = fromStoreID - } - skus := formalizeSkus(jxOrder.Skus) // 允许空商品列表(一般用于测试配送地址,门店信息是否合适) if len(skus) > 0 { @@ -501,23 +491,40 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64 } } } - sort.Sort(JxSkuInfoList(outJxOrder.Skus)) - outJxOrder.FreightPrice, _, err = delivery.CalculateDeliveryFee(dao.GetDB(), jxOrder.StoreID, "", - jxutils.StandardCoordinate2Int(deliveryAddress.Lng), jxutils.StandardCoordinate2Int(deliveryAddress.Lat), - model.CoordinateTypeMars, outJxOrder.Weight, checkTime) + if fromStoreID == 0 { + sort.Sort(JxSkuInfoList(outJxOrder.Skus)) + outJxOrder.FreightPrice, _, err = delivery.CalculateDeliveryFee(dao.GetDB(), jxOrder.StoreID, "", + jxutils.StandardCoordinate2Int(deliveryAddress.Lng), jxutils.StandardCoordinate2Int(deliveryAddress.Lat), + model.CoordinateTypeMars, outJxOrder.Weight, checkTime) + } // if jxOrder.StoreID == specialStoreID { // outJxOrder.FreightPrice = 0 // } } else { outJxOrder.FreightPrice = 0 } - if outJxOrder.FreightPrice > specialFreightPrice { - outJxOrder.FreightPrice = specialFreightPrice - } - if outJxOrder.OrderPrice >= int64(storeDetail.DeliveryFeeDeductionSill) { - outJxOrder.FreightPrice -= int64(storeDetail.DeliveryFeeDeductionFee) - if outJxOrder.FreightPrice < 0 { - outJxOrder.FreightPrice = 0 + //表示此订单为物料配送订单 + if fromStoreID != 0 { + storeDetail2, err2 := dao.GetStoreDetail(db, fromStoreID, model.VendorIDJX) + if err = err2; err != nil { + return nil, nil, fmt.Errorf("fromStoreID有误,[%v]", fromStoreID) + } + deliveryAddress.ConsigneeName = storeDetail2.Name + outJxOrder.FromStoreID = fromStoreID + if outJxOrder.Weight <= 2000 { + outJxOrder.FreightPrice = 500 + } else { + outJxOrder.FreightPrice = utils.Float64TwoInt64(500 + math.Ceil((utils.Int2Float64(outJxOrder.Weight)-2000)/1000)*200) + } + } else { + if outJxOrder.FreightPrice > specialFreightPrice { + outJxOrder.FreightPrice = specialFreightPrice + } + if outJxOrder.OrderPrice >= int64(storeDetail.DeliveryFeeDeductionSill) { + outJxOrder.FreightPrice -= int64(storeDetail.DeliveryFeeDeductionFee) + if outJxOrder.FreightPrice < 0 { + outJxOrder.FreightPrice = 0 + } } } if err == nil { From 842929b95fe6b17328e14440cc11992cedef7f31 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 10 Mar 2020 18:26:32 +0800 Subject: [PATCH 174/286] =?UTF-8?q?=E5=A4=87=E4=BB=BD=E9=97=A8=E5=BA=97?= =?UTF-8?q?=E5=95=86=E5=93=81=E8=A1=A8=E6=97=B6=E5=AE=B9=E9=94=99=E5=A4=84?= =?UTF-8?q?=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index 8f5cbcb4a..285219131 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -3882,7 +3882,9 @@ func BackUpStoreSkuBind(ctx *jxcontext.Context, isAsync, isContinueWhenError boo storeSkuBindHis.SnapshotAt = utils.Time2Date(snapshotAt) storeSkuBindHiss = append(storeSkuBindHiss, storeSkuBindHis) } - dao.CreateMultiEntities(db, storeSkuBindHiss) + if len(storeSkuBindHiss) > 0 { + dao.CreateMultiEntities(db, storeSkuBindHiss) + } return retVal, err }, storeList) tasksch.HandleTask(task, nil, true).Run() @@ -3931,7 +3933,9 @@ func ReturnStoreSkuBind(ctx *jxcontext.Context, snapshotAt string, storeIDs, sku storeSku.ID = v.StoreSkuBindID storeSkus = append(storeSkus, storeSku) } - dao.CreateMultiEntities(db, storeSkus) + if len(storeSkus) > 0 { + dao.CreateMultiEntities(db, storeSkus) + } return err } From 28e8dfd5522761dbd01e06ae9334e1cafa1defb2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Wed, 11 Mar 2020 10:13:31 +0800 Subject: [PATCH 175/286] =?UTF-8?q?=E7=89=A9=E6=96=99=E5=95=86=E5=93=81?= =?UTF-8?q?=E4=B8=8D=E6=93=8D=E4=BD=9Cthingmap?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/sku.go | 2 +- business/partner/purchase/jx/localjx/order.go | 78 ++++++++++--------- 2 files changed, 43 insertions(+), 37 deletions(-) diff --git a/business/jxstore/cms/sku.go b/business/jxstore/cms/sku.go index 3a2a1021e..1481ff1cc 100644 --- a/business/jxstore/cms/sku.go +++ b/business/jxstore/cms/sku.go @@ -1087,7 +1087,7 @@ func UpdateSku(ctx *jxcontext.Context, skuID int, payload map[string]interface{} } return 0, err } - if sku.ExdSkuID == "" { + if sku.ExdSkuID == "" || sku.EclpID == "" { if err = OnUpdateThing(ctx, db, nil, int64(skuID), model.ThingTypeSku); err != nil { dao.Rollback(db) return 0, err diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index 149845802..94da74c8a 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -614,46 +614,52 @@ func PickupGoods(order *model.GoodsOrder, isSelfDelivery bool, userName string) func orderSolutionForWuLiao(order *model.GoodsOrder) (err error) { if order.FromStoreID != 0 { var ( - goodsNos []string - prices []string - quantities []string - db = dao.GetDB() + db = dao.GetDB() ) - err = changeOrderStatus(order.VendorOrderID, model.OrderStatusDelivering, "") goods, err := dao.QueryOrders(db, order.VendorOrderID, -1, []int{model.VendorIDJX}, -1, utils.ZeroTimeValue, utils.ZeroTimeValue) - if err != nil || len(goods) == 0 { - return err - } - for _, v := range goods[0].Skus { - skus, err := dao.GetSkus(db, []int{v.SkuID}, nil, nil, nil, nil) - if err != nil || len(skus) == 0 { - continue + if order.Weight <= 5000 { //如果总重量小于5kg就直接发单 + var ( + goodsNos []string + prices []string + quantities []string + ) + err = changeOrderStatus(order.VendorOrderID, model.OrderStatusDelivering, "") + if err != nil || len(goods) == 0 { + return err } - goodsNos = append(goodsNos, skus[0].EclpID) - prices = append(prices, "0") - quantities = append(quantities, utils.Int2Str(v.Count)) + for _, v := range goods[0].Skus { + skus, err := dao.GetSkus(db, []int{v.SkuID}, nil, nil, nil, nil) + if err != nil || len(skus) == 0 { + continue + } + goodsNos = append(goodsNos, skus[0].EclpID) + prices = append(prices, "0") + quantities = append(quantities, utils.Int2Str(v.Count)) + } + result, err := api.JdEclpAPI.AddOrder(&jdeclpapi.AddOrderParam{ + IsvUUID: order.VendorOrderID, + IsvSource: jdeclpapi.IsvSource, + ShopNo: jdeclpapi.ShopNo, + DepartmentNo: jdeclpapi.DepartmentNo, + WarehouseNo: jdeclpapi.WarehouseNo, + SalesPlatformOrderNo: order.VendorOrderID, + SalePlatformSource: jdeclpapi.SalePlatformSource, + ConsigneeName: order.ConsigneeName, + ConsigneeMobile: order.ConsigneeMobile, + ConsigneeAddress: order.ConsigneeAddress, + OrderMark: jdeclpapi.OrderMark, + GoodsNo: strings.Join(goodsNos, ","), + Price: strings.Join(prices, ","), + Quantity: strings.Join(quantities, ","), + }) + if err != nil { + return err + } + order.EclpOutID = result + dao.UpdateEntity(db, order, "EclpOutID") + } else { //如果重量超过5kg则需要进行拆单分包,商品分包规则。最后一个包不超过5kg,其他包不超过3kg + } - result, err := api.JdEclpAPI.AddOrder(&jdeclpapi.AddOrderParam{ - IsvUUID: order.VendorOrderID, - IsvSource: jdeclpapi.IsvSource, - ShopNo: jdeclpapi.ShopNo, - DepartmentNo: jdeclpapi.DepartmentNo, - WarehouseNo: jdeclpapi.WarehouseNo, - SalesPlatformOrderNo: order.VendorOrderID, - SalePlatformSource: jdeclpapi.SalePlatformSource, - ConsigneeName: order.ConsigneeName, - ConsigneeMobile: order.ConsigneeMobile, - ConsigneeAddress: order.ConsigneeAddress, - OrderMark: jdeclpapi.OrderMark, - GoodsNo: strings.Join(goodsNos, ","), - Price: strings.Join(prices, ","), - Quantity: strings.Join(quantities, ","), - }) - if err != nil { - return err - } - order.EclpOutID = result - dao.UpdateEntity(db, order, "EclpOutID") //刷新一下库存 for _, v := range goods[0].Skus { cms.RefreshMatterStock(jxcontext.AdminCtx, v.SkuID) From e5e44e00d162454c3f821c478073c1614d98bcbf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Wed, 11 Mar 2020 10:19:05 +0800 Subject: [PATCH 176/286] =?UTF-8?q?=E7=89=A9=E6=96=99=E5=95=86=E5=93=81?= =?UTF-8?q?=E4=B8=8D=E6=93=8D=E4=BD=9Cthingmap?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 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 1481ff1cc..27d6e01b9 100644 --- a/business/jxstore/cms/sku.go +++ b/business/jxstore/cms/sku.go @@ -862,7 +862,7 @@ func UpdateSkuName(ctx *jxcontext.Context, nameID int, payload map[string]interf dao.Rollback(db) return 0, err } - if !isExd { + if !isExd || payload["eclpID"] == nil || payload["eclpID"].(string) == "" { if err = OnUpdateThing(ctx, db, nil, int64(nameID), model.ThingTypeSkuName); err != nil { dao.Rollback(db) return 0, err @@ -899,7 +899,7 @@ func UpdateSkuName(ctx *jxcontext.Context, nameID int, payload map[string]interf dao.Rollback(db) return 0, err } - if sku.ExdSkuID == "" { + if sku.ExdSkuID == "" || sku.EclpID == "" { if err = OnUpdateThing(ctx, db, nil, int64(v.ID), model.ThingTypeSku); err != nil { dao.Rollback(db) return 0, err From 3aff47ebd06626504237a7455c41ac157af2de99 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Wed, 11 Mar 2020 10:31:37 +0800 Subject: [PATCH 177/286] =?UTF-8?q?=E7=89=A9=E6=96=99=E5=95=86=E5=93=81?= =?UTF-8?q?=E4=B8=8D=E6=93=8D=E4=BD=9Cthingmap?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/sku.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/business/jxstore/cms/sku.go b/business/jxstore/cms/sku.go index 27d6e01b9..6aca48058 100644 --- a/business/jxstore/cms/sku.go +++ b/business/jxstore/cms/sku.go @@ -862,7 +862,7 @@ func UpdateSkuName(ctx *jxcontext.Context, nameID int, payload map[string]interf dao.Rollback(db) return 0, err } - if !isExd || payload["eclpID"] == nil || payload["eclpID"].(string) == "" { + if !isExd && payload["eclpID"].(string) == "" { if err = OnUpdateThing(ctx, db, nil, int64(nameID), model.ThingTypeSkuName); err != nil { dao.Rollback(db) return 0, err @@ -899,7 +899,7 @@ func UpdateSkuName(ctx *jxcontext.Context, nameID int, payload map[string]interf dao.Rollback(db) return 0, err } - if sku.ExdSkuID == "" || sku.EclpID == "" { + if sku.ExdSkuID == "" && sku.EclpID == "" { if err = OnUpdateThing(ctx, db, nil, int64(v.ID), model.ThingTypeSku); err != nil { dao.Rollback(db) return 0, err @@ -1087,7 +1087,7 @@ func UpdateSku(ctx *jxcontext.Context, skuID int, payload map[string]interface{} } return 0, err } - if sku.ExdSkuID == "" || sku.EclpID == "" { + if sku.ExdSkuID == "" && sku.EclpID == "" { if err = OnUpdateThing(ctx, db, nil, int64(skuID), model.ThingTypeSku); err != nil { dao.Rollback(db) return 0, err From 65f41defef0378df05cbfb98f64e1d66cd840813 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Wed, 11 Mar 2020 10:40:39 +0800 Subject: [PATCH 178/286] =?UTF-8?q?=E7=89=A9=E6=96=99=E5=95=86=E5=93=81upd?= =?UTF-8?q?ateskuname?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/sku.go | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/business/jxstore/cms/sku.go b/business/jxstore/cms/sku.go index 6aca48058..8e1c8bc6a 100644 --- a/business/jxstore/cms/sku.go +++ b/business/jxstore/cms/sku.go @@ -849,7 +849,10 @@ func UpdateSkuName(ctx *jxcontext.Context, nameID int, payload map[string]interf } } } - + var eclpID string + if payload["eclpID"] != nil { + eclpID = payload["eclpID"].(string) + } dao.Begin(db) defer func() { if r := recover(); r != nil { @@ -862,7 +865,7 @@ func UpdateSkuName(ctx *jxcontext.Context, nameID int, payload map[string]interf dao.Rollback(db) return 0, err } - if !isExd && payload["eclpID"].(string) == "" { + if !isExd && eclpID == "" { if err = OnUpdateThing(ctx, db, nil, int64(nameID), model.ThingTypeSkuName); err != nil { dao.Rollback(db) return 0, err From 6e019ca10ec41618df20e936100ef5f7a3c1485e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Wed, 11 Mar 2020 14:15:11 +0800 Subject: [PATCH 179/286] =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E7=89=A9=E6=96=99?= =?UTF-8?q?=E7=82=B9=E8=AE=A2=E5=8D=95=E9=94=80=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxcallback/orderman/orderman_ext.go | 43 ++++++++++++++++++++ business/partner/purchase/mtwm/store.go | 3 ++ controllers/jx_order.go | 14 +++++++ routers/commentsRouter_controllers.go | 9 ++++ 4 files changed, 69 insertions(+) diff --git a/business/jxcallback/orderman/orderman_ext.go b/business/jxcallback/orderman/orderman_ext.go index 0fc85ad5d..29f580072 100644 --- a/business/jxcallback/orderman/orderman_ext.go +++ b/business/jxcallback/orderman/orderman_ext.go @@ -54,6 +54,10 @@ type OrderSkusAccept struct { Img string `json:"img"` } +type OrderCount struct { + Count int `json:"count"` +} + func (c *OrderManager) GetStoreOrderCountInfo(ctx *jxcontext.Context, storeID, lastHours int, isIncludeFake bool) (countInfo []*model.GoodsOrderCountInfo, err error) { globals.SugarLogger.Debugf("GetStoreOrderCountInfo storeID:%d", storeID) if lastHours > maxLastHours { @@ -1168,3 +1172,42 @@ func GetOrdersAccept(ctx *jxcontext.Context, storeID int) (result []*OrderSkusAc err = dao.GetRows(db, &result, sql, sqlParams) return result, err } + +func GetMatterStoreOrderCount(ctx *jxcontext.Context, storeID int) (count int, err error) { + var ( + db = dao.GetDB() + goodsOrder *model.GoodsOrder + orderCount *OrderCount + orderTime time.Time + ) + sql := ` + SELECT * + FROM goods_order + WHERE IF(store_id = 0,jx_store_id,store_id) = 666666 + AND from_store_id = ? + ORDER BY order_created_at DESC + LIMIT 1 + ` + sqlParams := []interface{}{storeID} + err = dao.GetRow(db, &goodsOrder, sql, sqlParams) + if goodsOrder != nil { + orderTime = goodsOrder.OrderFinishedAt + } else { + orderTime = time.Now().AddDate(0, -1, 0) + } + sql2 := ` + SELECT COUNT(*) count + FROM goods_order + WHERE IF(store_id = 0,jx_store_id,store_id) = ? + AND order_created_at <= NOW() AND order_created_at >= ? + ` + sqlParams2 := []interface{}{ + storeID, + orderTime, + } + err = dao.GetRow(db, &orderCount, sql2, sqlParams2) + if err != nil { + return 0, err + } + return orderCount.Count, err +} diff --git a/business/partner/purchase/mtwm/store.go b/business/partner/purchase/mtwm/store.go index 760f83d75..3e5a7409b 100644 --- a/business/partner/purchase/mtwm/store.go +++ b/business/partner/purchase/mtwm/store.go @@ -117,6 +117,9 @@ func (p *PurchaseHandler) UpdateStore(db *dao.DaoDB, storeID int, userName strin if storeDetail.VendorStoreName != "" { name = storeDetail.VendorStoreName } + // else { + // name = jxutils.ComposeStoreName(storeDetail.Store.Name, model.VendorIDMTWM) + // } } // openLevel, isOnline := bizStatusJX2Mtwm(mergedStoreStatus) params := map[string]interface{}{ diff --git a/controllers/jx_order.go b/controllers/jx_order.go index 34d6ee3d1..900dd5775 100644 --- a/controllers/jx_order.go +++ b/controllers/jx_order.go @@ -1002,3 +1002,17 @@ func (c *OrderController) GetOrdersAccept() { return retVal, "", err }) } + +// @Title 获取某个门店上次申请物料到现在的销量 +// @Description 获取某个门店上次申请物料到现在的销量 +// @Param token header string true "认证token" +// @Param storeID query int true "门店ID" +// @Success 200 {object} controllers.CallResult +// @Failure 200 {object} controllers.CallResult +// @router /GetMatterStoreOrderCount [get] +func (c *OrderController) GetMatterStoreOrderCount() { + c.callGetMatterStoreOrderCount(func(params *tOrderGetMatterStoreOrderCountParams) (retVal interface{}, errCode string, err error) { + retVal, err = orderman.GetMatterStoreOrderCount(params.Ctx, params.StoreID) + return retVal, "", err + }) +} diff --git a/routers/commentsRouter_controllers.go b/routers/commentsRouter_controllers.go index 6e787d46c..1de2143f1 100644 --- a/routers/commentsRouter_controllers.go +++ b/routers/commentsRouter_controllers.go @@ -972,6 +972,15 @@ func init() { Filters: nil, Params: nil}) + beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:OrderController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:OrderController"], + beego.ControllerComments{ + Method: "GetMatterStoreOrderCount", + Router: `/GetMatterStoreOrderCount`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:OrderController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:OrderController"], beego.ControllerComments{ Method: "GetOrderInfo", From aa8e1f2d806283ef2f52367dbf2325e4946582a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Wed, 11 Mar 2020 16:14:42 +0800 Subject: [PATCH 180/286] =?UTF-8?q?=E7=89=A9=E6=96=99=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E4=B8=80=E5=91=A8=E5=86=85=E4=B8=8D=E8=83=BD=E9=87=8D=E5=A4=8D?= =?UTF-8?q?=E4=B8=8B=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxcallback/orderman/orderman_ext.go | 43 +++++++++++-------- business/partner/purchase/jx/localjx/order.go | 9 ++-- 2 files changed, 30 insertions(+), 22 deletions(-) diff --git a/business/jxcallback/orderman/orderman_ext.go b/business/jxcallback/orderman/orderman_ext.go index 29f580072..2c6def46e 100644 --- a/business/jxcallback/orderman/orderman_ext.go +++ b/business/jxcallback/orderman/orderman_ext.go @@ -55,7 +55,8 @@ type OrderSkusAccept struct { } type OrderCount struct { - Count int `json:"count"` + Count int `json:"count"` //销量 + Flag bool `json:"flag"` //true表示可以买 } func (c *OrderManager) GetStoreOrderCountInfo(ctx *jxcontext.Context, storeID, lastHours int, isIncludeFake bool) (countInfo []*model.GoodsOrderCountInfo, err error) { @@ -1173,41 +1174,47 @@ func GetOrdersAccept(ctx *jxcontext.Context, storeID int) (result []*OrderSkusAc return result, err } -func GetMatterStoreOrderCount(ctx *jxcontext.Context, storeID int) (count int, err error) { +func GetMatterStoreOrderCount(ctx *jxcontext.Context, storeID int) (result *OrderCount, err error) { var ( db = dao.GetDB() - goodsOrder *model.GoodsOrder - orderCount *OrderCount - orderTime time.Time + orderPay *model.OrderPay + orderCount = &OrderCount{} ) sql := ` - SELECT * - FROM goods_order - WHERE IF(store_id = 0,jx_store_id,store_id) = 666666 - AND from_store_id = ? - ORDER BY order_created_at DESC + SELECT b.* + FROM goods_order a + JOIN order_pay b ON a.vendor_order_id = b.vendor_order_id + WHERE IF(a.store_id = 0, a.jx_store_id, a.store_id) = 666666 + AND a.from_store_id = ? + ORDER BY b.pay_finished_at DESC LIMIT 1 ` - sqlParams := []interface{}{storeID} - err = dao.GetRow(db, &goodsOrder, sql, sqlParams) - if goodsOrder != nil { - orderTime = goodsOrder.OrderFinishedAt + sqlParams := []interface{}{storeID, model.OrderStatusFinished} + err = dao.GetRow(db, &orderPay, sql, sqlParams) + if orderPay != nil { + if time.Now().Sub(*orderPay.PayFinishedAt).Hours() < 24*7 { + orderCount.Flag = false + } else { + orderCount.Flag = true + } } else { - orderTime = time.Now().AddDate(0, -1, 0) + orderCount.Flag = true } sql2 := ` SELECT COUNT(*) count FROM goods_order WHERE IF(store_id = 0,jx_store_id,store_id) = ? AND order_created_at <= NOW() AND order_created_at >= ? + AND status = ? ` sqlParams2 := []interface{}{ storeID, - orderTime, + time.Now().AddDate(0, 0, -7), + model.OrderStatusFinished, } err = dao.GetRow(db, &orderCount, sql2, sqlParams2) if err != nil { - return 0, err + return nil, err } - return orderCount.Count, err + return orderCount, err } diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index 94da74c8a..7e8354333 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -617,6 +617,10 @@ func orderSolutionForWuLiao(order *model.GoodsOrder) (err error) { db = dao.GetDB() ) goods, err := dao.QueryOrders(db, order.VendorOrderID, -1, []int{model.VendorIDJX}, -1, utils.ZeroTimeValue, utils.ZeroTimeValue) + if err != nil || len(goods) == 0 { + return err + } + orderSkus := goods[0].Skus if order.Weight <= 5000 { //如果总重量小于5kg就直接发单 var ( goodsNos []string @@ -624,10 +628,7 @@ func orderSolutionForWuLiao(order *model.GoodsOrder) (err error) { quantities []string ) err = changeOrderStatus(order.VendorOrderID, model.OrderStatusDelivering, "") - if err != nil || len(goods) == 0 { - return err - } - for _, v := range goods[0].Skus { + for _, v := range orderSkus { skus, err := dao.GetSkus(db, []int{v.SkuID}, nil, nil, nil, nil) if err != nil || len(skus) == 0 { continue From c7944b5b9ac4b11dd7e26666edb891a04a5c0945 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Wed, 11 Mar 2020 16:20:39 +0800 Subject: [PATCH 181/286] =?UTF-8?q?=E7=89=A9=E6=96=99=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E4=B8=80=E5=91=A8=E5=86=85=E4=B8=8D=E8=83=BD=E9=87=8D=E5=A4=8D?= =?UTF-8?q?=E4=B8=8B=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 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 2c6def46e..15e945b82 100644 --- a/business/jxcallback/orderman/orderman_ext.go +++ b/business/jxcallback/orderman/orderman_ext.go @@ -1186,10 +1186,11 @@ func GetMatterStoreOrderCount(ctx *jxcontext.Context, storeID int) (result *Orde JOIN order_pay b ON a.vendor_order_id = b.vendor_order_id WHERE IF(a.store_id = 0, a.jx_store_id, a.store_id) = 666666 AND a.from_store_id = ? + AND a.status >= ? ORDER BY b.pay_finished_at DESC LIMIT 1 ` - sqlParams := []interface{}{storeID, model.OrderStatusFinished} + sqlParams := []interface{}{storeID, model.OrderStatusDelivering} err = dao.GetRow(db, &orderPay, sql, sqlParams) if orderPay != nil { if time.Now().Sub(*orderPay.PayFinishedAt).Hours() < 24*7 { From 2f1f096129eb32b05e55364b5a0a9609af5dbaed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Wed, 11 Mar 2020 16:21:35 +0800 Subject: [PATCH 182/286] =?UTF-8?q?=E7=89=A9=E6=96=99=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E4=B8=80=E5=91=A8=E5=86=85=E4=B8=8D=E8=83=BD=E9=87=8D=E5=A4=8D?= =?UTF-8?q?=E4=B8=8B=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxcallback/orderman/orderman_ext.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/business/jxcallback/orderman/orderman_ext.go b/business/jxcallback/orderman/orderman_ext.go index 15e945b82..3b5d135f6 100644 --- a/business/jxcallback/orderman/orderman_ext.go +++ b/business/jxcallback/orderman/orderman_ext.go @@ -1186,11 +1186,11 @@ func GetMatterStoreOrderCount(ctx *jxcontext.Context, storeID int) (result *Orde JOIN order_pay b ON a.vendor_order_id = b.vendor_order_id WHERE IF(a.store_id = 0, a.jx_store_id, a.store_id) = 666666 AND a.from_store_id = ? - AND a.status >= ? + AND a.status >= ? AND a.status != ? ORDER BY b.pay_finished_at DESC LIMIT 1 ` - sqlParams := []interface{}{storeID, model.OrderStatusDelivering} + sqlParams := []interface{}{storeID, model.OrderStatusDelivering, model.OrderStatusCanceled} err = dao.GetRow(db, &orderPay, sql, sqlParams) if orderPay != nil { if time.Now().Sub(*orderPay.PayFinishedAt).Hours() < 24*7 { From afead85556b3d3fa9686abbfa9145920750a382a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Wed, 11 Mar 2020 16:21:49 +0800 Subject: [PATCH 183/286] =?UTF-8?q?=E7=89=A9=E6=96=99=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E4=B8=80=E5=91=A8=E5=86=85=E4=B8=8D=E8=83=BD=E9=87=8D=E5=A4=8D?= =?UTF-8?q?=E4=B8=8B=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxcallback/orderman/orderman_ext.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/jxcallback/orderman/orderman_ext.go b/business/jxcallback/orderman/orderman_ext.go index 3b5d135f6..9b5023c1e 100644 --- a/business/jxcallback/orderman/orderman_ext.go +++ b/business/jxcallback/orderman/orderman_ext.go @@ -1186,7 +1186,7 @@ func GetMatterStoreOrderCount(ctx *jxcontext.Context, storeID int) (result *Orde JOIN order_pay b ON a.vendor_order_id = b.vendor_order_id WHERE IF(a.store_id = 0, a.jx_store_id, a.store_id) = 666666 AND a.from_store_id = ? - AND a.status >= ? AND a.status != ? + AND a.status >= ? AND a.status <> ? ORDER BY b.pay_finished_at DESC LIMIT 1 ` From 8dd3a52ce35cf81b068875d2b7b285a5f64bdfeb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Wed, 11 Mar 2020 16:23:09 +0800 Subject: [PATCH 184/286] =?UTF-8?q?=E7=89=A9=E6=96=99=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E4=B8=80=E5=91=A8=E5=86=85=E4=B8=8D=E8=83=BD=E9=87=8D=E5=A4=8D?= =?UTF-8?q?=E4=B8=8B=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxcallback/orderman/orderman_ext.go | 32 ++++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/business/jxcallback/orderman/orderman_ext.go b/business/jxcallback/orderman/orderman_ext.go index 9b5023c1e..c830e25ea 100644 --- a/business/jxcallback/orderman/orderman_ext.go +++ b/business/jxcallback/orderman/orderman_ext.go @@ -1180,6 +1180,22 @@ func GetMatterStoreOrderCount(ctx *jxcontext.Context, storeID int) (result *Orde orderPay *model.OrderPay orderCount = &OrderCount{} ) + sql2 := ` + SELECT COUNT(*) count + FROM goods_order + WHERE IF(store_id = 0,jx_store_id,store_id) = ? + AND order_created_at <= NOW() AND order_created_at >= ? + AND status = ? + ` + sqlParams2 := []interface{}{ + storeID, + time.Now().AddDate(0, 0, -7), + model.OrderStatusFinished, + } + err = dao.GetRow(db, &orderCount, sql2, sqlParams2) + if err != nil { + return nil, err + } sql := ` SELECT b.* FROM goods_order a @@ -1201,21 +1217,5 @@ func GetMatterStoreOrderCount(ctx *jxcontext.Context, storeID int) (result *Orde } else { orderCount.Flag = true } - sql2 := ` - SELECT COUNT(*) count - FROM goods_order - WHERE IF(store_id = 0,jx_store_id,store_id) = ? - AND order_created_at <= NOW() AND order_created_at >= ? - AND status = ? - ` - sqlParams2 := []interface{}{ - storeID, - time.Now().AddDate(0, 0, -7), - model.OrderStatusFinished, - } - err = dao.GetRow(db, &orderCount, sql2, sqlParams2) - if err != nil { - return nil, err - } return orderCount, err } From 22ffecf95fe345de2b415e7cc41d2a00c7f8c948 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Wed, 11 Mar 2020 16:27:34 +0800 Subject: [PATCH 185/286] =?UTF-8?q?=E7=89=A9=E6=96=99=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E4=B8=80=E5=91=A8=E5=86=85=E4=B8=8D=E8=83=BD=E9=87=8D=E5=A4=8D?= =?UTF-8?q?=E4=B8=8B=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxcallback/orderman/orderman_ext.go | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/business/jxcallback/orderman/orderman_ext.go b/business/jxcallback/orderman/orderman_ext.go index c830e25ea..eb13e0cad 100644 --- a/business/jxcallback/orderman/orderman_ext.go +++ b/business/jxcallback/orderman/orderman_ext.go @@ -1177,7 +1177,7 @@ func GetOrdersAccept(ctx *jxcontext.Context, storeID int) (result []*OrderSkusAc func GetMatterStoreOrderCount(ctx *jxcontext.Context, storeID int) (result *OrderCount, err error) { var ( db = dao.GetDB() - orderPay *model.OrderPay + orderPays []*model.OrderPay orderCount = &OrderCount{} ) sql2 := ` @@ -1207,8 +1207,9 @@ func GetMatterStoreOrderCount(ctx *jxcontext.Context, storeID int) (result *Orde LIMIT 1 ` sqlParams := []interface{}{storeID, model.OrderStatusDelivering, model.OrderStatusCanceled} - err = dao.GetRow(db, &orderPay, sql, sqlParams) - if orderPay != nil { + err = dao.GetRows(db, &orderPays, sql, sqlParams) + if len(orderPays) != 0 { + orderPay := orderPays[0] if time.Now().Sub(*orderPay.PayFinishedAt).Hours() < 24*7 { orderCount.Flag = false } else { From e5e5bda869ceec86719295b3efeb918f85cb0952 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Wed, 11 Mar 2020 18:23:38 +0800 Subject: [PATCH 186/286] =?UTF-8?q?=E7=89=A9=E6=96=99=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E8=AE=A1=E7=AE=97=E8=A2=8B=E5=AD=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/order.go | 48 ++++++++++++++++++- 1 file changed, 47 insertions(+), 1 deletion(-) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index 7e8354333..49aa680bd 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -8,6 +8,8 @@ import ( "strings" "time" + "git.rosy.net.cn/jx-callback/business/jxcallback/orderman" + "git.rosy.net.cn/jx-callback/business/jxstore/event" "git.rosy.net.cn/jx-callback/globals" @@ -122,6 +124,14 @@ var ( 7: "七", } dayList = []string{"今天", "明天", "后天"} + + bagMap = map[int]int{ + 6039382: 100, + 6039383: 200, + 6039384: 200, + 6039387: 200, + 6039390: 200, + } ) func init() { @@ -422,6 +432,10 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64 outJxOrder.StoreName = storeDetail.Name skus := formalizeSkus(jxOrder.Skus) + err = matterSkusLimited(skus, fromStoreID) + if err != nil { + return nil, nil, err + } // 允许空商品列表(一般用于测试配送地址,门店信息是否合适) if len(skus) > 0 { var skuIDs []int @@ -485,7 +499,23 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64 } if jxSku != nil { outJxOrder.Skus = append(outJxOrder.Skus, jxSku) - outJxOrder.OrderPrice += int64(jxSku.Count) * jxSku.SalePrice + if fromStoreID == 0 { + outJxOrder.OrderPrice += int64(jxSku.Count) * jxSku.SalePrice + } else { + if bagMap[jxSku.SkuID] != 0 { + if jxSku.Count > 1 { + for i := 0; i < jxSku.Count; i++ { + if i == 0 { + outJxOrder.OrderPrice += 1 + } else { + outJxOrder.OrderPrice += jxSku.SalePrice + } + } + } + } else { + outJxOrder.OrderPrice += int64(jxSku.Count) * jxSku.SalePrice + } + } outJxOrder.Weight += jxSku.Count * jxSku.Weight } } @@ -537,6 +567,22 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64 return outJxOrder, deliveryAddress, err } +func matterSkusLimited(skus []*JxSkuInfo, storeID int) (err error) { + result, err := orderman.GetMatterStoreOrderCount(nil, storeID) + sum := 0 + if result.Count != 0 { + for _, sku := range skus { + if bagMap[sku.SkuID] != 0 { + sum += bagMap[sku.SkuID] * sku.Count + } + } + if sum-200 < result.Count { + return fmt.Errorf("订单背心袋订购数量过多,请按照实际销量购买!,大概销量:[%v],购买数量:[%v]", result.Count, sum) + } + } + return err +} + func jxOrder2GoodsOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, deliveryAddress *dao.UserDeliveryAddressEx) (order *model.GoodsOrder, err error) { order = &model.GoodsOrder{ VendorOrderID: utils.Int64ToStr(jxOrder.OrderID), From 2256a7966e42bea72b19ca524f99564122ccdabb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Thu, 12 Mar 2020 09:15:30 +0800 Subject: [PATCH 187/286] =?UTF-8?q?=E7=89=A9=E6=96=99=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E8=83=8C=E5=BF=83=E8=A2=8B=E6=95=B0=E9=87=8F=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/order.go | 31 +++++++++++++++---- 1 file changed, 25 insertions(+), 6 deletions(-) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index 49aa680bd..7dcd9b7ad 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -432,9 +432,11 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64 outJxOrder.StoreName = storeDetail.Name skus := formalizeSkus(jxOrder.Skus) - err = matterSkusLimited(skus, fromStoreID) - if err != nil { - return nil, nil, err + if fromStoreID != 0 { + err = matterSkusLimited(skus, fromStoreID) + if err != nil { + return nil, nil, err + } } // 允许空商品列表(一般用于测试配送地址,门店信息是否合适) if len(skus) > 0 { @@ -572,11 +574,28 @@ func matterSkusLimited(skus []*JxSkuInfo, storeID int) (err error) { sum := 0 if result.Count != 0 { for _, sku := range skus { - if bagMap[sku.SkuID] != 0 { - sum += bagMap[sku.SkuID] * sku.Count + if sku.SkuID == 6039382 { + sum1 := 0 + if bagMap[sku.SkuID] != 0 { + sum1 += bagMap[sku.SkuID] * sku.Count + sum += sum1 + } + if utils.Int2Float64(sum1/100) >= math.Ceil(utils.Int2Float64(result.Count)/100) { + return fmt.Errorf("订单100个一份背心袋订购数量过多,请按照实际销量购买!,大概销量:[%v],购买数量:[%v]", result.Count, sum1) + } + } + if sku.SkuID == 6039383 || sku.SkuID == 6039384 || sku.SkuID == 6039387 || sku.SkuID == 6039390 { + sum2 := 0 + if bagMap[sku.SkuID] != 0 { + sum2 += bagMap[sku.SkuID] * sku.Count + sum += sum2 + } + if utils.Int2Float64(sum2/200) >= math.Ceil(utils.Int2Float64(result.Count)/200) { + return fmt.Errorf("订单200个一份背心袋订购数量过多,请按照实际销量购买!,大概销量:[%v],购买数量:[%v]", result.Count, sum2) + } } } - if sum-200 < result.Count { + if sum-result.Count > 100 { return fmt.Errorf("订单背心袋订购数量过多,请按照实际销量购买!,大概销量:[%v],购买数量:[%v]", result.Count, sum) } } From 953406a7dc6a4ea8a72636ff92e7661252af0a5a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Thu, 12 Mar 2020 10:06:41 +0800 Subject: [PATCH 188/286] =?UTF-8?q?=E7=89=A9=E6=96=99=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E8=A2=8B=E5=AD=90=E6=95=B0=E9=87=8F=E8=B6=85=E6=A0=87=E9=87=91?= =?UTF-8?q?=E9=A2=9D=E8=AE=A1=E7=AE=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/order.go | 45 ++++++++++++------- 1 file changed, 30 insertions(+), 15 deletions(-) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index 7dcd9b7ad..d9f9aac13 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -432,12 +432,6 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64 outJxOrder.StoreName = storeDetail.Name skus := formalizeSkus(jxOrder.Skus) - if fromStoreID != 0 { - err = matterSkusLimited(skus, fromStoreID) - if err != nil { - return nil, nil, err - } - } // 允许空商品列表(一般用于测试配送地址,门店信息是否合适) if len(skus) > 0 { var skuIDs []int @@ -470,7 +464,11 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64 } skuMap[v.ID] = v } - + var result *orderman.OrderCount + if fromStoreID != 0 { + result, _ = orderman.GetMatterStoreOrderCount(nil, fromStoreID) + } + sum := result.Count for _, v := range skus { if storeSkuBind := storeSkuMap[v.SkuID]; storeSkuBind != nil { if sku := skuMap[v.SkuID]; sku != nil { @@ -504,18 +502,35 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64 if fromStoreID == 0 { outJxOrder.OrderPrice += int64(jxSku.Count) * jxSku.SalePrice } else { - if bagMap[jxSku.SkuID] != 0 { - if jxSku.Count > 1 { - for i := 0; i < jxSku.Count; i++ { - if i == 0 { - outJxOrder.OrderPrice += 1 + if jxSku.SkuID == 6039382 { + if bagMap[jxSku.SkuID] != 0 { + if sum > 0 { + if bagMap[jxSku.SkuID]*jxSku.Count <= sum+100 { + outJxOrder.OrderPrice += int64(1 * jxSku.Count) } else { - outJxOrder.OrderPrice += jxSku.SalePrice + outJxOrder.OrderPrice += int64(1 * math.Ceil(utils.Int2Float64(sum/100))) + outJxOrder.OrderPrice += (int64(jxSku.Count) - utils.Float64TwoInt64(math.Ceil(utils.Int2Float64(sum/100)))) * jxSku.SalePrice } + } else { + outJxOrder.OrderPrice += int64(jxSku.Count) * jxSku.SalePrice } + sum = sum - bagMap[jxSku.SkuID]*jxSku.Count + } + } + if jxSku.SkuID == 6039383 || jxSku.SkuID == 6039384 || jxSku.SkuID == 6039387 || jxSku.SkuID == 6039390 { + if bagMap[jxSku.SkuID] != 0 { + if sum > 0 { + if bagMap[jxSku.SkuID]*jxSku.Count <= sum+200 { + outJxOrder.OrderPrice += int64(1 * jxSku.Count) + } else { + outJxOrder.OrderPrice += int64(1 * math.Ceil(utils.Int2Float64(sum/200))) + outJxOrder.OrderPrice += (int64(jxSku.Count) - utils.Float64TwoInt64(math.Ceil(utils.Int2Float64(sum/200)))) * jxSku.SalePrice + } + } else { + outJxOrder.OrderPrice += int64(jxSku.Count) * jxSku.SalePrice + } + sum = sum - bagMap[jxSku.SkuID]*jxSku.Count } - } else { - outJxOrder.OrderPrice += int64(jxSku.Count) * jxSku.SalePrice } } outJxOrder.Weight += jxSku.Count * jxSku.Weight From e0a8a617dcebd44a46173be49d4d49d459e7a9ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Thu, 12 Mar 2020 10:15:00 +0800 Subject: [PATCH 189/286] =?UTF-8?q?=E7=89=A9=E6=96=99=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E8=A2=8B=E5=AD=90=E6=95=B0=E9=87=8F=E8=B6=85=E6=A0=87=E9=87=91?= =?UTF-8?q?=E9=A2=9D=E8=AE=A1=E7=AE=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/order.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index d9f9aac13..2e689f96f 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -519,16 +519,19 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64 } if jxSku.SkuID == 6039383 || jxSku.SkuID == 6039384 || jxSku.SkuID == 6039387 || jxSku.SkuID == 6039390 { if bagMap[jxSku.SkuID] != 0 { + globals.SugarLogger.Debugf("daizi1,[%v]", sum) if sum > 0 { if bagMap[jxSku.SkuID]*jxSku.Count <= sum+200 { outJxOrder.OrderPrice += int64(1 * jxSku.Count) } else { outJxOrder.OrderPrice += int64(1 * math.Ceil(utils.Int2Float64(sum/200))) outJxOrder.OrderPrice += (int64(jxSku.Count) - utils.Float64TwoInt64(math.Ceil(utils.Int2Float64(sum/200)))) * jxSku.SalePrice + globals.SugarLogger.Debugf("daizi2,[%v]", outJxOrder.OrderPrice) } } else { outJxOrder.OrderPrice += int64(jxSku.Count) * jxSku.SalePrice } + globals.SugarLogger.Debugf("daizi3,[%v]", outJxOrder.OrderPrice) sum = sum - bagMap[jxSku.SkuID]*jxSku.Count } } From 744317a18caa50b548641a048f79c2d2709666ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Thu, 12 Mar 2020 10:29:20 +0800 Subject: [PATCH 190/286] =?UTF-8?q?=E7=89=A9=E6=96=99=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E8=A2=8B=E5=AD=90=E6=95=B0=E9=87=8F=E8=B6=85=E6=A0=87=E9=87=91?= =?UTF-8?q?=E9=A2=9D=E8=AE=A1=E7=AE=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/order.go | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index 2e689f96f..952445542 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -508,8 +508,8 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64 if bagMap[jxSku.SkuID]*jxSku.Count <= sum+100 { outJxOrder.OrderPrice += int64(1 * jxSku.Count) } else { - outJxOrder.OrderPrice += int64(1 * math.Ceil(utils.Int2Float64(sum/100))) - outJxOrder.OrderPrice += (int64(jxSku.Count) - utils.Float64TwoInt64(math.Ceil(utils.Int2Float64(sum/100)))) * jxSku.SalePrice + outJxOrder.OrderPrice += int64(1 * math.Ceil(utils.Int2Float64(sum)/100)) + outJxOrder.OrderPrice += (int64(jxSku.Count) - utils.Float64TwoInt64(math.Ceil(utils.Int2Float64(sum)/100))) * jxSku.SalePrice } } else { outJxOrder.OrderPrice += int64(jxSku.Count) * jxSku.SalePrice @@ -524,14 +524,13 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64 if bagMap[jxSku.SkuID]*jxSku.Count <= sum+200 { outJxOrder.OrderPrice += int64(1 * jxSku.Count) } else { - outJxOrder.OrderPrice += int64(1 * math.Ceil(utils.Int2Float64(sum/200))) - outJxOrder.OrderPrice += (int64(jxSku.Count) - utils.Float64TwoInt64(math.Ceil(utils.Int2Float64(sum/200)))) * jxSku.SalePrice + outJxOrder.OrderPrice += int64(1 * math.Ceil(utils.Int2Float64(sum)/200)) + outJxOrder.OrderPrice += (int64(jxSku.Count) - utils.Float64TwoInt64(math.Ceil(utils.Int2Float64(sum)/200))) * jxSku.SalePrice globals.SugarLogger.Debugf("daizi2,[%v]", outJxOrder.OrderPrice) } } else { outJxOrder.OrderPrice += int64(jxSku.Count) * jxSku.SalePrice } - globals.SugarLogger.Debugf("daizi3,[%v]", outJxOrder.OrderPrice) sum = sum - bagMap[jxSku.SkuID]*jxSku.Count } } From 08332b9f72d041a64d0919cdd10d88b5442e6bfb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Thu, 12 Mar 2020 10:52:07 +0800 Subject: [PATCH 191/286] =?UTF-8?q?=E7=89=A9=E6=96=99=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E8=A2=8B=E5=AD=90=E6=95=B0=E9=87=8F=E8=B6=85=E6=A0=87=E7=89=A9?= =?UTF-8?q?=E5=93=81=E6=8B=86=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/order.go | 23 ++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index 952445542..c6bf46ab6 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -498,16 +498,25 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64 } } if jxSku != nil { - outJxOrder.Skus = append(outJxOrder.Skus, jxSku) if fromStoreID == 0 { + outJxOrder.Skus = append(outJxOrder.Skus, jxSku) outJxOrder.OrderPrice += int64(jxSku.Count) * jxSku.SalePrice } else { if jxSku.SkuID == 6039382 { if bagMap[jxSku.SkuID] != 0 { if sum > 0 { if bagMap[jxSku.SkuID]*jxSku.Count <= sum+100 { + jxSku.SalePrice = 1 + outJxOrder.Skus = append(outJxOrder.Skus, jxSku) outJxOrder.OrderPrice += int64(1 * jxSku.Count) } else { + jxSku2 := *jxSku + jxSku2.SalePrice = jxSku.SalePrice + jxSku2.Count = int(int64(jxSku.Count) - utils.Float64TwoInt64(math.Ceil(utils.Int2Float64(sum)/100))) + jxSku.SalePrice = 1 + jxSku.Count = int(utils.Float64TwoInt64(math.Ceil(utils.Int2Float64(sum) / 100))) + outJxOrder.Skus = append(outJxOrder.Skus, jxSku) + outJxOrder.Skus = append(outJxOrder.Skus, &jxSku2) outJxOrder.OrderPrice += int64(1 * math.Ceil(utils.Int2Float64(sum)/100)) outJxOrder.OrderPrice += (int64(jxSku.Count) - utils.Float64TwoInt64(math.Ceil(utils.Int2Float64(sum)/100))) * jxSku.SalePrice } @@ -519,14 +528,21 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64 } if jxSku.SkuID == 6039383 || jxSku.SkuID == 6039384 || jxSku.SkuID == 6039387 || jxSku.SkuID == 6039390 { if bagMap[jxSku.SkuID] != 0 { - globals.SugarLogger.Debugf("daizi1,[%v]", sum) if sum > 0 { if bagMap[jxSku.SkuID]*jxSku.Count <= sum+200 { + jxSku.SalePrice = 1 + outJxOrder.Skus = append(outJxOrder.Skus, jxSku) outJxOrder.OrderPrice += int64(1 * jxSku.Count) } else { + jxSku2 := *jxSku + jxSku2.SalePrice = jxSku.SalePrice + jxSku2.Count = int(int64(jxSku.Count) - utils.Float64TwoInt64(math.Ceil(utils.Int2Float64(sum)/200))) + jxSku.SalePrice = 1 + jxSku.Count = int(utils.Float64TwoInt64(math.Ceil(utils.Int2Float64(sum) / 200))) + outJxOrder.Skus = append(outJxOrder.Skus, jxSku) + outJxOrder.Skus = append(outJxOrder.Skus, &jxSku2) outJxOrder.OrderPrice += int64(1 * math.Ceil(utils.Int2Float64(sum)/200)) outJxOrder.OrderPrice += (int64(jxSku.Count) - utils.Float64TwoInt64(math.Ceil(utils.Int2Float64(sum)/200))) * jxSku.SalePrice - globals.SugarLogger.Debugf("daizi2,[%v]", outJxOrder.OrderPrice) } } else { outJxOrder.OrderPrice += int64(jxSku.Count) * jxSku.SalePrice @@ -534,6 +550,7 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64 sum = sum - bagMap[jxSku.SkuID]*jxSku.Count } } + outJxOrder.OrderPrice += int64(jxSku.Count) * jxSku.SalePrice } outJxOrder.Weight += jxSku.Count * jxSku.Weight } From 4cc18d9ffb640e74fa498c068da1b0a2baa51b15 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Thu, 12 Mar 2020 10:57:53 +0800 Subject: [PATCH 192/286] =?UTF-8?q?=E7=89=A9=E6=96=99=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E8=A2=8B=E5=AD=90=E6=95=B0=E9=87=8F=E8=B6=85=E6=A0=87=E7=89=A9?= =?UTF-8?q?=E5=93=81=E6=8B=86=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/order.go | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index c6bf46ab6..35eab05d6 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -501,7 +501,7 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64 if fromStoreID == 0 { outJxOrder.Skus = append(outJxOrder.Skus, jxSku) outJxOrder.OrderPrice += int64(jxSku.Count) * jxSku.SalePrice - } else { + } else { //以下else为物料订单袋子金额和数量处理 if jxSku.SkuID == 6039382 { if bagMap[jxSku.SkuID] != 0 { if sum > 0 { @@ -521,12 +521,12 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64 outJxOrder.OrderPrice += (int64(jxSku.Count) - utils.Float64TwoInt64(math.Ceil(utils.Int2Float64(sum)/100))) * jxSku.SalePrice } } else { + outJxOrder.Skus = append(outJxOrder.Skus, jxSku) outJxOrder.OrderPrice += int64(jxSku.Count) * jxSku.SalePrice } sum = sum - bagMap[jxSku.SkuID]*jxSku.Count } - } - if jxSku.SkuID == 6039383 || jxSku.SkuID == 6039384 || jxSku.SkuID == 6039387 || jxSku.SkuID == 6039390 { + } else if jxSku.SkuID == 6039383 || jxSku.SkuID == 6039384 || jxSku.SkuID == 6039387 || jxSku.SkuID == 6039390 { if bagMap[jxSku.SkuID] != 0 { if sum > 0 { if bagMap[jxSku.SkuID]*jxSku.Count <= sum+200 { @@ -545,12 +545,15 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64 outJxOrder.OrderPrice += (int64(jxSku.Count) - utils.Float64TwoInt64(math.Ceil(utils.Int2Float64(sum)/200))) * jxSku.SalePrice } } else { + outJxOrder.Skus = append(outJxOrder.Skus, jxSku) outJxOrder.OrderPrice += int64(jxSku.Count) * jxSku.SalePrice } sum = sum - bagMap[jxSku.SkuID]*jxSku.Count } + } else { + outJxOrder.Skus = append(outJxOrder.Skus, jxSku) + outJxOrder.OrderPrice += int64(jxSku.Count) * jxSku.SalePrice } - outJxOrder.OrderPrice += int64(jxSku.Count) * jxSku.SalePrice } outJxOrder.Weight += jxSku.Count * jxSku.Weight } From 8c32e9c378e5ed2113d00afc1cfbb319468f7ec0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Thu, 12 Mar 2020 11:09:01 +0800 Subject: [PATCH 193/286] =?UTF-8?q?=E7=89=A9=E6=96=99=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E8=A2=8B=E5=AD=90=E6=95=B0=E9=87=8F=E8=B6=85=E6=A0=87=E7=89=A9?= =?UTF-8?q?=E5=93=81=E6=8B=86=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/order.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index 35eab05d6..4a20dd53e 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -517,8 +517,8 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64 jxSku.Count = int(utils.Float64TwoInt64(math.Ceil(utils.Int2Float64(sum) / 100))) outJxOrder.Skus = append(outJxOrder.Skus, jxSku) outJxOrder.Skus = append(outJxOrder.Skus, &jxSku2) - outJxOrder.OrderPrice += int64(1 * math.Ceil(utils.Int2Float64(sum)/100)) - outJxOrder.OrderPrice += (int64(jxSku.Count) - utils.Float64TwoInt64(math.Ceil(utils.Int2Float64(sum)/100))) * jxSku.SalePrice + outJxOrder.OrderPrice += jxSku.SalePrice * int64(jxSku.Count) + outJxOrder.OrderPrice += jxSku2.SalePrice * int64(jxSku2.Count) } } else { outJxOrder.Skus = append(outJxOrder.Skus, jxSku) @@ -541,8 +541,8 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64 jxSku.Count = int(utils.Float64TwoInt64(math.Ceil(utils.Int2Float64(sum) / 200))) outJxOrder.Skus = append(outJxOrder.Skus, jxSku) outJxOrder.Skus = append(outJxOrder.Skus, &jxSku2) - outJxOrder.OrderPrice += int64(1 * math.Ceil(utils.Int2Float64(sum)/200)) - outJxOrder.OrderPrice += (int64(jxSku.Count) - utils.Float64TwoInt64(math.Ceil(utils.Int2Float64(sum)/200))) * jxSku.SalePrice + outJxOrder.OrderPrice += jxSku.SalePrice * int64(jxSku.Count) + outJxOrder.OrderPrice += jxSku2.SalePrice * int64(jxSku2.Count) } } else { outJxOrder.Skus = append(outJxOrder.Skus, jxSku) From 06be8995451d2cfa10f5381d6480235f4966cb63 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Thu, 12 Mar 2020 11:35:37 +0800 Subject: [PATCH 194/286] =?UTF-8?q?=E6=AD=A3=E5=B8=B8=E4=B8=8B=E5=8D=95?= =?UTF-8?q?=E5=BD=B1=E5=93=8D=E5=88=B0=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/order.go | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index 4a20dd53e..02fa21070 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -464,11 +464,14 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64 } skuMap[v.ID] = v } - var result *orderman.OrderCount + var ( + result *orderman.OrderCount + sum int + ) if fromStoreID != 0 { result, _ = orderman.GetMatterStoreOrderCount(nil, fromStoreID) + sum = result.Count } - sum := result.Count for _, v := range skus { if storeSkuBind := storeSkuMap[v.SkuID]; storeSkuBind != nil { if sku := skuMap[v.SkuID]; sku != nil { From 6a48c92aa4535ef24f18f0b51edc78c8b8868a5a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Thu, 12 Mar 2020 11:57:34 +0800 Subject: [PATCH 195/286] =?UTF-8?q?=E7=89=A9=E6=96=99=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E5=A6=82=E6=9E=9C=E6=98=AF=E6=96=B0=E5=BA=97=EF=BC=8C=E8=A2=8B?= =?UTF-8?q?=E5=AD=90=E7=9A=84=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/order.go | 104 +++++++++++------- 1 file changed, 64 insertions(+), 40 deletions(-) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index 02fa21070..1c12d92e2 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -467,6 +467,7 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64 var ( result *orderman.OrderCount sum int + flag = false //新店袋子拆分当个参数 ) if fromStoreID != 0 { result, _ = orderman.GetMatterStoreOrderCount(nil, fromStoreID) @@ -505,57 +506,80 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64 outJxOrder.Skus = append(outJxOrder.Skus, jxSku) outJxOrder.OrderPrice += int64(jxSku.Count) * jxSku.SalePrice } else { //以下else为物料订单袋子金额和数量处理 - if jxSku.SkuID == 6039382 { + if result.Count == 0 && result.Flag { //这个条件被认为是新店,袋子限量 if bagMap[jxSku.SkuID] != 0 { - if sum > 0 { - if bagMap[jxSku.SkuID]*jxSku.Count <= sum+100 { - jxSku.SalePrice = 1 - outJxOrder.Skus = append(outJxOrder.Skus, jxSku) - outJxOrder.OrderPrice += int64(1 * jxSku.Count) - } else { + if !flag { + jxSku.SalePrice = 1 + jxSku.Count = 1 + outJxOrder.Skus = append(outJxOrder.Skus, jxSku) + if jxSku.Count > 1 { jxSku2 := *jxSku jxSku2.SalePrice = jxSku.SalePrice - jxSku2.Count = int(int64(jxSku.Count) - utils.Float64TwoInt64(math.Ceil(utils.Int2Float64(sum)/100))) - jxSku.SalePrice = 1 - jxSku.Count = int(utils.Float64TwoInt64(math.Ceil(utils.Int2Float64(sum) / 100))) - outJxOrder.Skus = append(outJxOrder.Skus, jxSku) + jxSku2.Count = jxSku2.Count - 1 outJxOrder.Skus = append(outJxOrder.Skus, &jxSku2) - outJxOrder.OrderPrice += jxSku.SalePrice * int64(jxSku.Count) - outJxOrder.OrderPrice += jxSku2.SalePrice * int64(jxSku2.Count) } + flag = true } else { outJxOrder.Skus = append(outJxOrder.Skus, jxSku) outJxOrder.OrderPrice += int64(jxSku.Count) * jxSku.SalePrice } - sum = sum - bagMap[jxSku.SkuID]*jxSku.Count - } - } else if jxSku.SkuID == 6039383 || jxSku.SkuID == 6039384 || jxSku.SkuID == 6039387 || jxSku.SkuID == 6039390 { - if bagMap[jxSku.SkuID] != 0 { - if sum > 0 { - if bagMap[jxSku.SkuID]*jxSku.Count <= sum+200 { - jxSku.SalePrice = 1 - outJxOrder.Skus = append(outJxOrder.Skus, jxSku) - outJxOrder.OrderPrice += int64(1 * jxSku.Count) - } else { - jxSku2 := *jxSku - jxSku2.SalePrice = jxSku.SalePrice - jxSku2.Count = int(int64(jxSku.Count) - utils.Float64TwoInt64(math.Ceil(utils.Int2Float64(sum)/200))) - jxSku.SalePrice = 1 - jxSku.Count = int(utils.Float64TwoInt64(math.Ceil(utils.Int2Float64(sum) / 200))) - outJxOrder.Skus = append(outJxOrder.Skus, jxSku) - outJxOrder.Skus = append(outJxOrder.Skus, &jxSku2) - outJxOrder.OrderPrice += jxSku.SalePrice * int64(jxSku.Count) - outJxOrder.OrderPrice += jxSku2.SalePrice * int64(jxSku2.Count) - } - } else { - outJxOrder.Skus = append(outJxOrder.Skus, jxSku) - outJxOrder.OrderPrice += int64(jxSku.Count) * jxSku.SalePrice - } - sum = sum - bagMap[jxSku.SkuID]*jxSku.Count + } else { + outJxOrder.Skus = append(outJxOrder.Skus, jxSku) + outJxOrder.OrderPrice += int64(jxSku.Count) * jxSku.SalePrice } } else { - outJxOrder.Skus = append(outJxOrder.Skus, jxSku) - outJxOrder.OrderPrice += int64(jxSku.Count) * jxSku.SalePrice + if jxSku.SkuID == 6039382 { + if bagMap[jxSku.SkuID] != 0 { + if sum > 0 { + if bagMap[jxSku.SkuID]*jxSku.Count <= sum+100 { + jxSku.SalePrice = 1 + outJxOrder.Skus = append(outJxOrder.Skus, jxSku) + outJxOrder.OrderPrice += int64(1 * jxSku.Count) + } else { + jxSku2 := *jxSku + jxSku2.SalePrice = jxSku.SalePrice + jxSku2.Count = int(int64(jxSku.Count) - utils.Float64TwoInt64(math.Ceil(utils.Int2Float64(sum)/100))) + jxSku.SalePrice = 1 + jxSku.Count = int(utils.Float64TwoInt64(math.Ceil(utils.Int2Float64(sum) / 100))) + outJxOrder.Skus = append(outJxOrder.Skus, jxSku) + outJxOrder.Skus = append(outJxOrder.Skus, &jxSku2) + outJxOrder.OrderPrice += jxSku.SalePrice * int64(jxSku.Count) + outJxOrder.OrderPrice += jxSku2.SalePrice * int64(jxSku2.Count) + } + } else { + outJxOrder.Skus = append(outJxOrder.Skus, jxSku) + outJxOrder.OrderPrice += int64(jxSku.Count) * jxSku.SalePrice + } + sum = sum - bagMap[jxSku.SkuID]*jxSku.Count + } + } else if jxSku.SkuID == 6039383 || jxSku.SkuID == 6039384 || jxSku.SkuID == 6039387 || jxSku.SkuID == 6039390 { + if bagMap[jxSku.SkuID] != 0 { + if sum > 0 { + if bagMap[jxSku.SkuID]*jxSku.Count <= sum+200 { + jxSku.SalePrice = 1 + outJxOrder.Skus = append(outJxOrder.Skus, jxSku) + outJxOrder.OrderPrice += int64(1 * jxSku.Count) + } else { + jxSku2 := *jxSku + jxSku2.SalePrice = jxSku.SalePrice + jxSku2.Count = int(int64(jxSku.Count) - utils.Float64TwoInt64(math.Ceil(utils.Int2Float64(sum)/200))) + jxSku.SalePrice = 1 + jxSku.Count = int(utils.Float64TwoInt64(math.Ceil(utils.Int2Float64(sum) / 200))) + outJxOrder.Skus = append(outJxOrder.Skus, jxSku) + outJxOrder.Skus = append(outJxOrder.Skus, &jxSku2) + outJxOrder.OrderPrice += jxSku.SalePrice * int64(jxSku.Count) + outJxOrder.OrderPrice += jxSku2.SalePrice * int64(jxSku2.Count) + } + } else { + outJxOrder.Skus = append(outJxOrder.Skus, jxSku) + outJxOrder.OrderPrice += int64(jxSku.Count) * jxSku.SalePrice + } + sum = sum - bagMap[jxSku.SkuID]*jxSku.Count + } + } else { + outJxOrder.Skus = append(outJxOrder.Skus, jxSku) + outJxOrder.OrderPrice += int64(jxSku.Count) * jxSku.SalePrice + } } } outJxOrder.Weight += jxSku.Count * jxSku.Weight From 9fbfa04def5949de6279756761460f840e0d9200 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Thu, 12 Mar 2020 14:02:28 +0800 Subject: [PATCH 196/286] =?UTF-8?q?=E5=88=B7=E6=96=B0=E5=BA=93=E5=AD=98?= =?UTF-8?q?=E5=92=8C=E6=9F=A5=E8=AF=A2=E9=94=80=E9=87=8F=E5=8F=96=E6=B6=88?= =?UTF-8?q?token?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- controllers/cms_store_sku.go | 2 +- controllers/jx_order.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/controllers/cms_store_sku.go b/controllers/cms_store_sku.go index 0a17595b8..73025aa3d 100644 --- a/controllers/cms_store_sku.go +++ b/controllers/cms_store_sku.go @@ -750,7 +750,7 @@ func (c *StoreSkuController) ReturnStoreSkuBind() { // @Title 物料库存刷新(物料店商品上下架) // @Description 物料库存刷新(物料店商品上下架) -// @Param token header string true "认证token" +// @Param token header string false "认证token" // @Success 200 {object} controllers.CallResult // @Failure 200 {object} controllers.CallResult // @router /RefreshMatterStock [post] diff --git a/controllers/jx_order.go b/controllers/jx_order.go index 900dd5775..ddb0eed3a 100644 --- a/controllers/jx_order.go +++ b/controllers/jx_order.go @@ -1005,7 +1005,7 @@ func (c *OrderController) GetOrdersAccept() { // @Title 获取某个门店上次申请物料到现在的销量 // @Description 获取某个门店上次申请物料到现在的销量 -// @Param token header string true "认证token" +// @Param token header string false "认证token" // @Param storeID query int true "门店ID" // @Success 200 {object} controllers.CallResult // @Failure 200 {object} controllers.CallResult From bd0480d2b32276cddc6877dd4483104f386e28e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Thu, 12 Mar 2020 16:12:00 +0800 Subject: [PATCH 197/286] =?UTF-8?q?=E7=89=A9=E6=96=99=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E9=85=8D=E9=80=81=E5=91=98=E7=AD=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxcallback/orderman/orderman_ext.go | 36 +++-- business/partner/purchase/jx/localjx/order.go | 142 +++++++++++++----- business/partner/purchase/mtwm/store_sku2.go | 2 +- 3 files changed, 124 insertions(+), 56 deletions(-) diff --git a/business/jxcallback/orderman/orderman_ext.go b/business/jxcallback/orderman/orderman_ext.go index eb13e0cad..1dc47a3eb 100644 --- a/business/jxcallback/orderman/orderman_ext.go +++ b/business/jxcallback/orderman/orderman_ext.go @@ -1179,23 +1179,8 @@ func GetMatterStoreOrderCount(ctx *jxcontext.Context, storeID int) (result *Orde db = dao.GetDB() orderPays []*model.OrderPay orderCount = &OrderCount{} + orderTime time.Time ) - sql2 := ` - SELECT COUNT(*) count - FROM goods_order - WHERE IF(store_id = 0,jx_store_id,store_id) = ? - AND order_created_at <= NOW() AND order_created_at >= ? - AND status = ? - ` - sqlParams2 := []interface{}{ - storeID, - time.Now().AddDate(0, 0, -7), - model.OrderStatusFinished, - } - err = dao.GetRow(db, &orderCount, sql2, sqlParams2) - if err != nil { - return nil, err - } sql := ` SELECT b.* FROM goods_order a @@ -1215,8 +1200,27 @@ func GetMatterStoreOrderCount(ctx *jxcontext.Context, storeID int) (result *Orde } else { orderCount.Flag = true } + orderTime = *orderPay.PayFinishedAt } else { + orderTime = time.Now().AddDate(0, 0, -7) orderCount.Flag = true } + sql2 := ` + SELECT COUNT(*) count + FROM goods_order + WHERE IF(store_id = 0,jx_store_id,store_id) = ? + AND order_created_at <= NOW() AND order_created_at >= ? + AND status = ? + ` + sqlParams2 := []interface{}{ + storeID, + orderTime, + model.OrderStatusFinished, + } + err = dao.GetRow(db, &orderCount, sql2, sqlParams2) + if err != nil { + return nil, err + } + return orderCount, err } diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index 1c12d92e2..c67a9eede 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -4,6 +4,7 @@ import ( "crypto/md5" "fmt" "math" + "regexp" "sort" "strings" "time" @@ -132,6 +133,8 @@ var ( 6039387: 200, 6039390: 200, } + + regexpCnameAndCmobile = regexp.MustCompile(`配送员,(.*),手机号,(.*)`) ) func init() { @@ -224,7 +227,7 @@ func Pay4Order(ctx *jxcontext.Context, orderID int64, payType int, vendorPayType err = dao.CreateEntity(dao.GetDB(), orderPay) } case model.PayTypeTL: - if orderPay, err = pay4OrderByTL(ctx, order, vendorPayType); err == nil { + if orderPay, err = pay4OrderByTL(ctx, order, vendorPayType); err == nil && orderPay != nil { dao.WrapAddIDCULDEntity(orderPay, ctx.GetUserName()) err = dao.CreateEntity(dao.GetDB(), orderPay) } @@ -607,11 +610,19 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64 } deliveryAddress.ConsigneeName = storeDetail2.Name outJxOrder.FromStoreID = fromStoreID + // if outJxOrder.Weight > 5000 { + // _, freightPrice, err := tryToSplitMatterOrder(outJxOrder) + // if err != nil { + // return nil, nil, err + // } + // outJxOrder.FreightPrice = int64(freightPrice) + // } else { if outJxOrder.Weight <= 2000 { outJxOrder.FreightPrice = 500 } else { outJxOrder.FreightPrice = utils.Float64TwoInt64(500 + math.Ceil((utils.Int2Float64(outJxOrder.Weight)-2000)/1000)*200) } + // } } else { if outJxOrder.FreightPrice > specialFreightPrice { outJxOrder.FreightPrice = specialFreightPrice @@ -633,6 +644,27 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64 return outJxOrder, deliveryAddress, err } +func tryToSplitMatterOrder(jxOrder *JxOrderInfo) (outOrder []*JxOrderInfo, freightPrice int, err error) { + var ( + skus = jxOrder.Skus + weightList []int + weightMap = make(map[int]*JxSkuInfo) + ) + for _, v := range skus { + for i := 0; i < v.Count; i++ { + weightList = append(weightList, v.Weight) + } + weightMap[v.Weight] = v + } + sort.Sort(sort.Reverse(sort.IntSlice(weightList))) + for _, v := range weightList { + if weightMap[v] != nil { + + } + } + return outOrder, freightPrice, err +} + func matterSkusLimited(skus []*JxSkuInfo, storeID int) (err error) { result, err := orderman.GetMatterStoreOrderCount(nil, storeID) sum := 0 @@ -750,46 +782,56 @@ func orderSolutionForWuLiao(order *model.GoodsOrder) (err error) { return err } orderSkus := goods[0].Skus - if order.Weight <= 5000 { //如果总重量小于5kg就直接发单 - var ( - goodsNos []string - prices []string - quantities []string - ) - err = changeOrderStatus(order.VendorOrderID, model.OrderStatusDelivering, "") - for _, v := range orderSkus { - skus, err := dao.GetSkus(db, []int{v.SkuID}, nil, nil, nil, nil) - if err != nil || len(skus) == 0 { - continue - } - goodsNos = append(goodsNos, skus[0].EclpID) - prices = append(prices, "0") - quantities = append(quantities, utils.Int2Str(v.Count)) + // if order.Weight <= 5000 { //如果总重量小于5kg就直接发单 + var ( + goodsNos []string + prices []string + quantities []string + ) + err = changeOrderStatus(order.VendorOrderID, model.OrderStatusDelivering, "") + for _, v := range orderSkus { + skus, err := dao.GetSkus(db, []int{v.SkuID}, nil, nil, nil, nil) + if err != nil || len(skus) == 0 { + continue } - result, err := api.JdEclpAPI.AddOrder(&jdeclpapi.AddOrderParam{ - IsvUUID: order.VendorOrderID, - IsvSource: jdeclpapi.IsvSource, - ShopNo: jdeclpapi.ShopNo, - DepartmentNo: jdeclpapi.DepartmentNo, - WarehouseNo: jdeclpapi.WarehouseNo, - SalesPlatformOrderNo: order.VendorOrderID, - SalePlatformSource: jdeclpapi.SalePlatformSource, - ConsigneeName: order.ConsigneeName, - ConsigneeMobile: order.ConsigneeMobile, - ConsigneeAddress: order.ConsigneeAddress, - OrderMark: jdeclpapi.OrderMark, - GoodsNo: strings.Join(goodsNos, ","), - Price: strings.Join(prices, ","), - Quantity: strings.Join(quantities, ","), - }) - if err != nil { - return err - } - order.EclpOutID = result - dao.UpdateEntity(db, order, "EclpOutID") - } else { //如果重量超过5kg则需要进行拆单分包,商品分包规则。最后一个包不超过5kg,其他包不超过3kg - + goodsNos = append(goodsNos, skus[0].EclpID) + prices = append(prices, "0") + quantities = append(quantities, utils.Int2Str(v.Count)) } + result, err := api.JdEclpAPI.AddOrder(&jdeclpapi.AddOrderParam{ + IsvUUID: order.VendorOrderID, + IsvSource: jdeclpapi.IsvSource, + ShopNo: jdeclpapi.ShopNo, + DepartmentNo: jdeclpapi.DepartmentNo, + WarehouseNo: jdeclpapi.WarehouseNo, + SalesPlatformOrderNo: order.VendorOrderID, + SalePlatformSource: jdeclpapi.SalePlatformSource, + ConsigneeName: order.ConsigneeName, + ConsigneeMobile: order.ConsigneeMobile, + ConsigneeAddress: order.ConsigneeAddress, + OrderMark: jdeclpapi.OrderMark, + GoodsNo: strings.Join(goodsNos, ","), + Price: strings.Join(prices, ","), + Quantity: strings.Join(quantities, ","), + }) + if err != nil { + return err + } + order.EclpOutID = result + dao.UpdateEntity(db, order, "EclpOutID") + waybill := &model.Waybill{ + VendorOrderID: order.VendorOrderID, + OrderVendorID: model.VendorIDJX, + VendorWaybillID: order.EclpOutID, + WaybillVendorID: model.VendorIDJDWL, + Status: model.WaybillStatusDelivering, + WaybillCreatedAt: time.Now(), + StatusTime: time.Now(), + } + dao.CreateEntity(db, waybill) + // } else { //如果重量超过5kg则需要进行拆单分包,商品分包规则。最后一个包不超过5kg,其他包不超过3kg + + // } //刷新一下库存 for _, v := range goods[0].Skus { cms.RefreshMatterStock(jxcontext.AdminCtx, v.SkuID) @@ -1157,5 +1199,27 @@ func GetMatterOrderStatus(ctx *jxcontext.Context, vendorOrderID string) (result dao.Commit(db) } } + if len(getTrackMessagePlusByOrderResult.ResultData) > 0 { + var ( + waybillCode = getTrackMessagePlusByOrderResult.ResultData[0].WaybillCode + cName string + cMobile string + ) + for _, vv := range getTrackMessagePlusByOrderResult.ResultData { + if vv.OpeTitle == "配送员收货" { + result := regexpCnameAndCmobile.FindAllStringSubmatch(vv.OpeName, -1) + cName = result[0][1] + cMobile = result[0][2] + break + } + } + waybills, _ := dao.GetWayBillByOrderID(db, -1, model.VendorIDJX, -1, vendorOrderID) + if len(waybills) > 0 { + waybills[0].VendorWaybillID = waybillCode + waybills[0].CourierName = cName + waybills[0].CourierMobile = cMobile + dao.UpdateEntity(db, waybills[0], "VendorWaybillID", "CourierName", "CourierMobile") + } + } return result, err } diff --git a/business/partner/purchase/mtwm/store_sku2.go b/business/partner/purchase/mtwm/store_sku2.go index 4cc9ea279..b3ae0ab93 100644 --- a/business/partner/purchase/mtwm/store_sku2.go +++ b/business/partner/purchase/mtwm/store_sku2.go @@ -264,7 +264,7 @@ func (p *PurchaseHandler) createOrUpdateStoreSkus(ctx *jxcontext.Context, storeI foodData["min_order_count"] = 1 foodData["unit"] = storeSku.Unit foodData["box_num"] = 1 - foodData["box_price"] = jxutils.IntPrice2Standard(storeSku.BoxFee) + // foodData["box_price"] = jxutils.IntPrice2Standard(storeSku.BoxFee) catCode := tryCatName2Code(storeSku.VendorCatID) if catCode != "" { foodData["category_code"] = catCode From 5e6e64ade36a4483aedda3806deb1ac36baea594 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Thu, 12 Mar 2020 16:18:23 +0800 Subject: [PATCH 198/286] =?UTF-8?q?pay4order=E5=88=A4=E6=96=AD=E7=89=A9?= =?UTF-8?q?=E6=96=99=E8=AE=A2=E5=8D=95=E8=A1=A5=E5=85=81=E8=AE=B8=E4=B8=80?= =?UTF-8?q?=E5=91=A8=E5=86=85=E9=87=8D=E5=A4=8D=E7=94=B3=E8=AF=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/tonglianpay.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/business/partner/purchase/jx/localjx/tonglianpay.go b/business/partner/purchase/jx/localjx/tonglianpay.go index 94ce5cea1..58b340215 100644 --- a/business/partner/purchase/jx/localjx/tonglianpay.go +++ b/business/partner/purchase/jx/localjx/tonglianpay.go @@ -2,6 +2,7 @@ package localjx import ( "encoding/json" + "fmt" "strings" "time" @@ -11,6 +12,7 @@ import ( "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-callback/business/auth2/authprovider/weixin" + "git.rosy.net.cn/jx-callback/business/jxcallback/orderman" "git.rosy.net.cn/jx-callback/business/jxcallback/scheduler/defsch" "git.rosy.net.cn/jx-callback/business/jxutils" "git.rosy.net.cn/jx-callback/business/jxutils/jxcontext" @@ -21,6 +23,12 @@ import ( ) func pay4OrderByTL(ctx *jxcontext.Context, order *model.GoodsOrder, vendorPayType string) (orderPay *model.OrderPay, err error) { + if order.FromStoreID != 0 { + result, _ := orderman.GetMatterStoreOrderCount(nil, order.FromStoreID) + if !result.Flag { + return nil, fmt.Errorf("该门店[%v]已在一周内申请过物料,请勿重复申请!", order.FromStoreID) + } + } payCreatedAt := time.Now() param := &tonglianpayapi.CreateUnitorderOrderParam{ Trxamt: int(order.ActualPayPrice), From f1a49337fb59f00ed2a851f6842aee1db7e0b832 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Thu, 12 Mar 2020 16:28:04 +0800 Subject: [PATCH 199/286] =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E7=89=A9=E6=96=99?= =?UTF-8?q?=E7=94=B3=E8=AF=B7=E8=B5=84=E6=A0=BC=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 | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/business/jxcallback/orderman/orderman_ext.go b/business/jxcallback/orderman/orderman_ext.go index 1dc47a3eb..16c70808a 100644 --- a/business/jxcallback/orderman/orderman_ext.go +++ b/business/jxcallback/orderman/orderman_ext.go @@ -1180,6 +1180,7 @@ func GetMatterStoreOrderCount(ctx *jxcontext.Context, storeID int) (result *Orde orderPays []*model.OrderPay orderCount = &OrderCount{} orderTime time.Time + flag = false ) sql := ` SELECT b.* @@ -1196,14 +1197,14 @@ func GetMatterStoreOrderCount(ctx *jxcontext.Context, storeID int) (result *Orde if len(orderPays) != 0 { orderPay := orderPays[0] if time.Now().Sub(*orderPay.PayFinishedAt).Hours() < 24*7 { - orderCount.Flag = false + flag = false } else { - orderCount.Flag = true + flag = true } orderTime = *orderPay.PayFinishedAt } else { orderTime = time.Now().AddDate(0, 0, -7) - orderCount.Flag = true + flag = true } sql2 := ` SELECT COUNT(*) count @@ -1221,6 +1222,6 @@ func GetMatterStoreOrderCount(ctx *jxcontext.Context, storeID int) (result *Orde if err != nil { return nil, err } - + result.Flag = flag return orderCount, err } From 515f56f28da7793305f5eda4ace6897deaf07932 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Thu, 12 Mar 2020 16:29:48 +0800 Subject: [PATCH 200/286] =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E7=89=A9=E6=96=99?= =?UTF-8?q?=E7=94=B3=E8=AF=B7=E8=B5=84=E6=A0=BC=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 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/jxcallback/orderman/orderman_ext.go b/business/jxcallback/orderman/orderman_ext.go index 16c70808a..2e14a7f2b 100644 --- a/business/jxcallback/orderman/orderman_ext.go +++ b/business/jxcallback/orderman/orderman_ext.go @@ -1222,6 +1222,6 @@ func GetMatterStoreOrderCount(ctx *jxcontext.Context, storeID int) (result *Orde if err != nil { return nil, err } - result.Flag = flag + orderCount.Flag = flag return orderCount, err } From 550ae94c74dd7829703cfe1884494bfd849cf759 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Fri, 13 Mar 2020 10:27:35 +0800 Subject: [PATCH 201/286] =?UTF-8?q?=E5=85=88=E4=B8=8A=E6=9E=9C=E5=9B=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxcallback/orderman/order.go | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/business/jxcallback/orderman/order.go b/business/jxcallback/orderman/order.go index 1a2c2991e..1cd990211 100644 --- a/business/jxcallback/orderman/order.go +++ b/business/jxcallback/orderman/order.go @@ -271,7 +271,8 @@ func (c *OrderManager) SaveOrder(order *model.GoodsOrder, isAdjust bool, db *dao } } - order.ConsigneeName = utils.LimitUTF8StringLen(order.ConsigneeName, 32) + order.ConsigneeName = utils.LimitUTF8StringLen2(order.ConsigneeName, 32) + order.ConsigneeAddress = utils.LimitUTF8StringLen2(order.ConsigneeAddress, 255) created, _, err2 := db.Db.ReadOrCreate(order, "VendorOrderID", "VendorID") if err = err2; err == nil { originalOrder := &model.GoodsOrderOriginal{ @@ -872,5 +873,3 @@ func RefreshOrdersPriceInfo(ctx *jxcontext.Context, fromTime, toTime time.Time, } return hint, err } - - From d4b730bb8403ed7d04077068a2dd76cdc5066712 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Fri, 13 Mar 2020 10:39:24 +0800 Subject: [PATCH 202/286] bug --- business/jxcallback/orderman/order.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/business/jxcallback/orderman/order.go b/business/jxcallback/orderman/order.go index 1cd990211..7da00f23c 100644 --- a/business/jxcallback/orderman/order.go +++ b/business/jxcallback/orderman/order.go @@ -271,8 +271,8 @@ func (c *OrderManager) SaveOrder(order *model.GoodsOrder, isAdjust bool, db *dao } } - order.ConsigneeName = utils.LimitUTF8StringLen2(order.ConsigneeName, 32) - order.ConsigneeAddress = utils.LimitUTF8StringLen2(order.ConsigneeAddress, 255) + order.ConsigneeName = utils.LimitUTF8StringLen(order.ConsigneeName, 32) + // order.ConsigneeAddress = utils.LimitUTF8StringLen2(order.ConsigneeAddress, 255) created, _, err2 := db.Db.ReadOrCreate(order, "VendorOrderID", "VendorID") if err = err2; err == nil { originalOrder := &model.GoodsOrderOriginal{ From af30a4e8d62df1b1d0bd8a4de74f178bde83432d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Fri, 13 Mar 2020 11:22:41 +0800 Subject: [PATCH 203/286] =?UTF-8?q?=E4=B9=B1=E7=A0=81=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxcallback/orderman/order.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/business/jxcallback/orderman/order.go b/business/jxcallback/orderman/order.go index 7da00f23c..1cd990211 100644 --- a/business/jxcallback/orderman/order.go +++ b/business/jxcallback/orderman/order.go @@ -271,8 +271,8 @@ func (c *OrderManager) SaveOrder(order *model.GoodsOrder, isAdjust bool, db *dao } } - order.ConsigneeName = utils.LimitUTF8StringLen(order.ConsigneeName, 32) - // order.ConsigneeAddress = utils.LimitUTF8StringLen2(order.ConsigneeAddress, 255) + order.ConsigneeName = utils.LimitUTF8StringLen2(order.ConsigneeName, 32) + order.ConsigneeAddress = utils.LimitUTF8StringLen2(order.ConsigneeAddress, 255) created, _, err2 := db.Db.ReadOrCreate(order, "VendorOrderID", "VendorID") if err = err2; err == nil { originalOrder := &model.GoodsOrderOriginal{ From dd1bf466aa2af389c4e94cb8338163da5a9a8b25 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Fri, 13 Mar 2020 15:33:13 +0800 Subject: [PATCH 204/286] =?UTF-8?q?=E8=87=AA=E5=8A=A8=E6=8B=A3=E8=B4=A7?= =?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/partner/purchase/jx/localjx/tonglianpay.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/business/partner/purchase/jx/localjx/tonglianpay.go b/business/partner/purchase/jx/localjx/tonglianpay.go index 58b340215..631a3bdc4 100644 --- a/business/partner/purchase/jx/localjx/tonglianpay.go +++ b/business/partner/purchase/jx/localjx/tonglianpay.go @@ -13,7 +13,6 @@ import ( "git.rosy.net.cn/jx-callback/business/auth2/authprovider/weixin" "git.rosy.net.cn/jx-callback/business/jxcallback/orderman" - "git.rosy.net.cn/jx-callback/business/jxcallback/scheduler/defsch" "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" @@ -112,7 +111,7 @@ func onTLpayFinished(call *tonglianpayapi.CallBackResult) (err error) { } order, _ := partner.CurOrderManager.LoadOrder(call.CusorderID, model.VendorIDJX) if order.FromStoreID != 0 { - defsch.FixedScheduler.PickupGoodsAndUpdateStatus(jxcontext.AdminCtx, call.CusorderID, model.VendorIDJX, "jxadmin") + PickupGoods(order, false, "jxadmin") } } else { globals.SugarLogger.Debugf("onTLpayFinished msg:%s, err:%v", utils.Format4Output(call, true), err) From d12bd8b358fc20f669f3cd0bae77a37507341234 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Fri, 13 Mar 2020 15:57:03 +0800 Subject: [PATCH 205/286] =?UTF-8?q?=E7=89=A9=E6=96=99=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E6=8F=92=E5=85=A5=E8=BF=90=E5=8D=95finiedtime?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/order.go | 80 +++++++++++++++---- 1 file changed, 63 insertions(+), 17 deletions(-) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index c67a9eede..465cd3f0c 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -55,8 +55,9 @@ type JxSkuInfo struct { Price int64 `json:"price,omitempty"` // 原价 SalePrice int64 `json:"salePrice,omitempty"` // 售卖价 - Name string `json:"name"` - Weight int `json:"weight"` + Name string `json:"name"` + Weight int `json:"weight"` + GroupSign bool `json:"groupSign"` } type JxSkuInfoList []*JxSkuInfo @@ -644,25 +645,69 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64 return outJxOrder, deliveryAddress, err } -func tryToSplitMatterOrder(jxOrder *JxOrderInfo) (outOrder []*JxOrderInfo, freightPrice int, err error) { +func tryToSplitMatterOrder(jxOrder *JxOrderInfo) (outOrders []*JxOrderInfo, freightPrice int, err error) { var ( skus = jxOrder.Skus - weightList []int + weightList []*JxSkuInfo weightMap = make(map[int]*JxSkuInfo) + flag = true ) for _, v := range skus { for i := 0; i < v.Count; i++ { - weightList = append(weightList, v.Weight) + weightList = append(weightList, v) } - weightMap[v.Weight] = v } - sort.Sort(sort.Reverse(sort.IntSlice(weightList))) - for _, v := range weightList { - if weightMap[v] != nil { + for i := 0; i < len(weightList)-1; i++ { + for j := 0; j < len(weightList)-i-1; j++ { + if weightList[j].Weight < weightList[j+1].Weight { + tmp := weightList[j] + weightList[j] = weightList[j+1] + weightList[j+1] = tmp + } + } + } + for k, v := range weightList { + weightMap[k+1] = v + } + outOrders = loop(weightMap, flag, jxOrder) + return outOrders, freightPrice, err +} +func loop(weightMap map[int]*JxSkuInfo, flag bool, jxOrder *JxOrderInfo) (outOrders []*JxOrderInfo) { + sum5 := 0 + sum3 := 0 + for i := 1; i <= len(weightMap); i++ { + outOrder := &JxOrderInfo{} + outOrder = jxOrder + for j := 1; j <= len(weightMap); { + if flag { + if !weightMap[j].GroupSign { + sum5 += weightMap[j].Weight + if weightMap[j].Weight+sum5 <= 5 { + outOrder.Skus = append(outOrder.Skus, weightMap[j]) + weightMap[j].GroupSign = true + } else { + j++ + continue + } + } + } else { + if !weightMap[j].GroupSign { + sum3 += weightMap[j].Weight + if weightMap[j].Weight+sum3 <= 3 { + outOrder.Skus = append(outOrder.Skus, weightMap[j]) + weightMap[j].GroupSign = true + } else { + j++ + continue + } + } + } } + flag = false + outOrders = append(outOrders, outOrder) } - return outOrder, freightPrice, err + return outOrders } func matterSkusLimited(skus []*JxSkuInfo, storeID int) (err error) { @@ -820,13 +865,14 @@ func orderSolutionForWuLiao(order *model.GoodsOrder) (err error) { order.EclpOutID = result dao.UpdateEntity(db, order, "EclpOutID") waybill := &model.Waybill{ - VendorOrderID: order.VendorOrderID, - OrderVendorID: model.VendorIDJX, - VendorWaybillID: order.EclpOutID, - WaybillVendorID: model.VendorIDJDWL, - Status: model.WaybillStatusDelivering, - WaybillCreatedAt: time.Now(), - StatusTime: time.Now(), + VendorOrderID: order.VendorOrderID, + OrderVendorID: model.VendorIDJX, + VendorWaybillID: order.EclpOutID, + WaybillVendorID: model.VendorIDJDWL, + Status: model.WaybillStatusDelivering, + WaybillCreatedAt: time.Now(), + StatusTime: time.Now(), + WaybillFinishedAt: utils.DefaultTimeValue, } dao.CreateEntity(db, waybill) // } else { //如果重量超过5kg则需要进行拆单分包,商品分包规则。最后一个包不超过5kg,其他包不超过3kg From 678d2f4d0a8659cd98757e9fb1917ffdcdd3bc64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Fri, 13 Mar 2020 17:30:46 +0800 Subject: [PATCH 206/286] =?UTF-8?q?=E7=BE=8E=E5=9B=A2=E5=8C=85=E8=A3=85?= =?UTF-8?q?=E8=B4=B9=E5=90=8C=E6=AD=A5=E6=94=BE=E5=BC=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/mtwm/store_sku2.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/partner/purchase/mtwm/store_sku2.go b/business/partner/purchase/mtwm/store_sku2.go index b3ae0ab93..4cc9ea279 100644 --- a/business/partner/purchase/mtwm/store_sku2.go +++ b/business/partner/purchase/mtwm/store_sku2.go @@ -264,7 +264,7 @@ func (p *PurchaseHandler) createOrUpdateStoreSkus(ctx *jxcontext.Context, storeI foodData["min_order_count"] = 1 foodData["unit"] = storeSku.Unit foodData["box_num"] = 1 - // foodData["box_price"] = jxutils.IntPrice2Standard(storeSku.BoxFee) + foodData["box_price"] = jxutils.IntPrice2Standard(storeSku.BoxFee) catCode := tryCatName2Code(storeSku.VendorCatID) if catCode != "" { foodData["category_code"] = catCode From 2a43dc023879dcde0e40c972e5019554e035bc48 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 16 Mar 2020 09:15:39 +0800 Subject: [PATCH 207/286] =?UTF-8?q?=E8=AE=A2=E5=8D=95=E6=8B=86=E5=88=86?= =?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/model/order.go | 1 + business/partner/purchase/jx/localjx/order.go | 334 +++++++++++------- 2 files changed, 206 insertions(+), 129 deletions(-) diff --git a/business/model/order.go b/business/model/order.go index 22a98f4c7..7ed0fce5d 100644 --- a/business/model/order.go +++ b/business/model/order.go @@ -105,6 +105,7 @@ type GoodsOrder struct { 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 // 以下只是用于传递数据 OriginalData string `orm:"-" json:"-"` diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index 465cd3f0c..05ee55748 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -60,6 +60,18 @@ type JxSkuInfo struct { GroupSign bool `json:"groupSign"` } +type JxSkuInfo2 struct { + SkuID int `json:"skuID"` + Count int `json:"count"` + + Price int64 `json:"price,omitempty"` // 原价 + SalePrice int64 `json:"salePrice,omitempty"` // 售卖价 + + Name string `json:"name"` + Weight int `json:"weight"` + GroupSign bool `json:"groupSign"` +} + type JxSkuInfoList []*JxSkuInfo func (l JxSkuInfoList) Len() int { @@ -193,6 +205,7 @@ func CreateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64, outJxOrder.OrderID = GenOrderNo(ctx) order, err2 := jxOrder2GoodsOrder(ctx, outJxOrder, deliveryAddress) if err = err2; err == nil { + order.AddressID = addressID order.Status = model.OrderStatusWait4Pay callNewOrder(order) } @@ -611,19 +624,19 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64 } deliveryAddress.ConsigneeName = storeDetail2.Name outJxOrder.FromStoreID = fromStoreID - // if outJxOrder.Weight > 5000 { - // _, freightPrice, err := tryToSplitMatterOrder(outJxOrder) - // if err != nil { - // return nil, nil, err - // } - // outJxOrder.FreightPrice = int64(freightPrice) - // } else { - if outJxOrder.Weight <= 2000 { - outJxOrder.FreightPrice = 500 + if outJxOrder.Weight > 5000 { + _, freightPrice, err := tryToSplitMatterOrder(outJxOrder) + if err != nil { + return nil, nil, err + } + outJxOrder.FreightPrice = int64(freightPrice) } else { - outJxOrder.FreightPrice = utils.Float64TwoInt64(500 + math.Ceil((utils.Int2Float64(outJxOrder.Weight)-2000)/1000)*200) + if outJxOrder.Weight <= 2000 { + outJxOrder.FreightPrice = 500 + } else { + outJxOrder.FreightPrice = utils.Float64TwoInt64(500 + math.Ceil((utils.Int2Float64(outJxOrder.Weight)-2000)/1000)*200) + } } - // } } else { if outJxOrder.FreightPrice > specialFreightPrice { outJxOrder.FreightPrice = specialFreightPrice @@ -645,71 +658,6 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64 return outJxOrder, deliveryAddress, err } -func tryToSplitMatterOrder(jxOrder *JxOrderInfo) (outOrders []*JxOrderInfo, freightPrice int, err error) { - var ( - skus = jxOrder.Skus - weightList []*JxSkuInfo - weightMap = make(map[int]*JxSkuInfo) - flag = true - ) - for _, v := range skus { - for i := 0; i < v.Count; i++ { - weightList = append(weightList, v) - } - } - for i := 0; i < len(weightList)-1; i++ { - for j := 0; j < len(weightList)-i-1; j++ { - if weightList[j].Weight < weightList[j+1].Weight { - tmp := weightList[j] - weightList[j] = weightList[j+1] - weightList[j+1] = tmp - } - } - } - for k, v := range weightList { - weightMap[k+1] = v - } - outOrders = loop(weightMap, flag, jxOrder) - return outOrders, freightPrice, err -} - -func loop(weightMap map[int]*JxSkuInfo, flag bool, jxOrder *JxOrderInfo) (outOrders []*JxOrderInfo) { - sum5 := 0 - sum3 := 0 - for i := 1; i <= len(weightMap); i++ { - outOrder := &JxOrderInfo{} - outOrder = jxOrder - for j := 1; j <= len(weightMap); { - if flag { - if !weightMap[j].GroupSign { - sum5 += weightMap[j].Weight - if weightMap[j].Weight+sum5 <= 5 { - outOrder.Skus = append(outOrder.Skus, weightMap[j]) - weightMap[j].GroupSign = true - } else { - j++ - continue - } - } - } else { - if !weightMap[j].GroupSign { - sum3 += weightMap[j].Weight - if weightMap[j].Weight+sum3 <= 3 { - outOrder.Skus = append(outOrder.Skus, weightMap[j]) - weightMap[j].GroupSign = true - } else { - j++ - continue - } - } - } - } - flag = false - outOrders = append(outOrders, outOrder) - } - return outOrders -} - func matterSkusLimited(skus []*JxSkuInfo, storeID int) (err error) { result, err := orderman.GetMatterStoreOrderCount(nil, storeID) sum := 0 @@ -827,60 +775,89 @@ func orderSolutionForWuLiao(order *model.GoodsOrder) (err error) { return err } orderSkus := goods[0].Skus - // if order.Weight <= 5000 { //如果总重量小于5kg就直接发单 - var ( - goodsNos []string - prices []string - quantities []string - ) - err = changeOrderStatus(order.VendorOrderID, model.OrderStatusDelivering, "") - for _, v := range orderSkus { - skus, err := dao.GetSkus(db, []int{v.SkuID}, nil, nil, nil, nil) - if err != nil || len(skus) == 0 { - continue + if order.Weight <= 5000 { //如果总重量小于5kg就直接发单 + var ( + goodsNos []string + prices []string + quantities []string + ) + err = changeOrderStatus(order.VendorOrderID, model.OrderStatusDelivering, "") + for _, v := range orderSkus { + skus, err := dao.GetSkus(db, []int{v.SkuID}, nil, nil, nil, nil) + if err != nil || len(skus) == 0 { + continue + } + goodsNos = append(goodsNos, skus[0].EclpID) + prices = append(prices, "0") + quantities = append(quantities, utils.Int2Str(v.Count)) + } + result, err := api.JdEclpAPI.AddOrder(&jdeclpapi.AddOrderParam{ + IsvUUID: order.VendorOrderID, + IsvSource: jdeclpapi.IsvSource, + ShopNo: jdeclpapi.ShopNo, + DepartmentNo: jdeclpapi.DepartmentNo, + WarehouseNo: jdeclpapi.WarehouseNo, + SalesPlatformOrderNo: order.VendorOrderID, + SalePlatformSource: jdeclpapi.SalePlatformSource, + ConsigneeName: order.ConsigneeName, + ConsigneeMobile: order.ConsigneeMobile, + ConsigneeAddress: order.ConsigneeAddress, + OrderMark: jdeclpapi.OrderMark, + GoodsNo: strings.Join(goodsNos, ","), + Price: strings.Join(prices, ","), + Quantity: strings.Join(quantities, ","), + }) + if err != nil { + return err + } + order.EclpOutID = result + dao.UpdateEntity(db, order, "EclpOutID") + waybill := &model.Waybill{ + VendorOrderID: order.VendorOrderID, + OrderVendorID: model.VendorIDJX, + VendorWaybillID: order.EclpOutID, + WaybillVendorID: model.VendorIDJDWL, + Status: model.WaybillStatusDelivering, + WaybillCreatedAt: time.Now(), + StatusTime: time.Now(), + WaybillFinishedAt: utils.DefaultTimeValue, + } + dao.CreateEntity(db, waybill) + } else { //如果重量超过5kg则需要进行拆单分包,商品分包规则。最后一个包不超过5kg,其他包不超过3kg + jxOrder := &JxOrderInfo{} + jxOrder.StoreID = order.StoreID + var skus []*JxSkuInfo + for _, v := range orderSkus { + sku := &JxSkuInfo{} + sku.SkuID = v.SkuID + sku.SalePrice = v.SalePrice + sku.Name = v.SkuName + sku.Weight = v.Weight + sku.Count = v.Count + skus = append(skus, sku) + } + jxOrder.Skus = skus + outOrders, _, _ := tryToSplitMatterOrder(jxOrder) + for _, v := range outOrders { + outJxOrder, deliveryAddress, err := generateOrder(jxcontext.AdminCtx, v, order.AddressID, order.FromStoreID) + if err != nil { + return err + } + if outJxOrder.TotalPrice != v.TotalPrice { + return fmt.Errorf("商品或配送信息发生改变,请重新下单") + } + outJxOrder.OrderID = GenOrderNo(jxcontext.AdminCtx) + order2, err2 := jxOrder2GoodsOrder(jxcontext.AdminCtx, outJxOrder, deliveryAddress) + if err = err2; err == nil { + order2.AddressID = order.AddressID + order2.Status = model.OrderStatusDelivering + callNewOrder(order2) + } + } + //刷新一下库存 + for _, v := range goods[0].Skus { + cms.RefreshMatterStock(jxcontext.AdminCtx, v.SkuID) } - goodsNos = append(goodsNos, skus[0].EclpID) - prices = append(prices, "0") - quantities = append(quantities, utils.Int2Str(v.Count)) - } - result, err := api.JdEclpAPI.AddOrder(&jdeclpapi.AddOrderParam{ - IsvUUID: order.VendorOrderID, - IsvSource: jdeclpapi.IsvSource, - ShopNo: jdeclpapi.ShopNo, - DepartmentNo: jdeclpapi.DepartmentNo, - WarehouseNo: jdeclpapi.WarehouseNo, - SalesPlatformOrderNo: order.VendorOrderID, - SalePlatformSource: jdeclpapi.SalePlatformSource, - ConsigneeName: order.ConsigneeName, - ConsigneeMobile: order.ConsigneeMobile, - ConsigneeAddress: order.ConsigneeAddress, - OrderMark: jdeclpapi.OrderMark, - GoodsNo: strings.Join(goodsNos, ","), - Price: strings.Join(prices, ","), - Quantity: strings.Join(quantities, ","), - }) - if err != nil { - return err - } - order.EclpOutID = result - dao.UpdateEntity(db, order, "EclpOutID") - waybill := &model.Waybill{ - VendorOrderID: order.VendorOrderID, - OrderVendorID: model.VendorIDJX, - VendorWaybillID: order.EclpOutID, - WaybillVendorID: model.VendorIDJDWL, - Status: model.WaybillStatusDelivering, - WaybillCreatedAt: time.Now(), - StatusTime: time.Now(), - WaybillFinishedAt: utils.DefaultTimeValue, - } - dao.CreateEntity(db, waybill) - // } else { //如果重量超过5kg则需要进行拆单分包,商品分包规则。最后一个包不超过5kg,其他包不超过3kg - - // } - //刷新一下库存 - for _, v := range goods[0].Skus { - cms.RefreshMatterStock(jxcontext.AdminCtx, v.SkuID) } } return err @@ -1269,3 +1246,102 @@ func GetMatterOrderStatus(ctx *jxcontext.Context, vendorOrderID string) (result } return result, err } + +func tryToSplitMatterOrder(jxOrder *JxOrderInfo) (outOrders []*JxOrderInfo, freightPrice int, err error) { + var ( + skus = jxOrder.Skus + weightList []*JxSkuInfo2 + flag = true + ) + for _, v := range skus { + for i := 0; i < v.Count; i++ { + var sku2 = &JxSkuInfo2{} + sku2.Count = v.Count + sku2.Name = v.Name + sku2.Price = v.Price + sku2.SalePrice = v.SalePrice + sku2.Weight = v.Weight + sku2.SkuID = v.SkuID + weightList = append(weightList, sku2) + } + } + for i := 0; i < len(weightList)-1; i++ { + for j := 0; j < len(weightList)-i-1; j++ { + if weightList[j].Weight < weightList[j+1].Weight { + tmp := weightList[j] + weightList[j] = weightList[j+1] + weightList[j+1] = tmp + } + } + } + for { + outOrders = append(outOrders, loop(weightList, jxOrder, flag)) + for i := 0; i < len(weightList); { + if weightList[i].GroupSign { + var weightList3 []*JxSkuInfo2 + weightList3 = append(weightList[:i], weightList[i+1:]...) + weightList = weightList3 + } else { + i++ + } + } + flag = false + if len(weightList) == 0 { + break + } + } + for _, v := range outOrders { + if v.Weight <= 2000 { + freightPrice += 500 + } else { + freightPrice += int(utils.Float64TwoInt64(500 + math.Ceil((utils.Int2Float64(v.Weight)-2000)/1000)*200)) + } + } + return outOrders, freightPrice, err +} + +func loop(weightList []*JxSkuInfo2, jxOrder *JxOrderInfo, flag bool) (outOrder *JxOrderInfo) { + outOrder = &JxOrderInfo{} + outOrder.StoreID = jxOrder.StoreID + sum5 := 0 + sum3 := 0 + for i := 0; i < len(weightList); i++ { + if flag { + if weightList[i].Weight+sum5 <= 5 { + sum5 += weightList[i].Weight + weightList[i].GroupSign = true + outOrder.Weight += weightList[i].Weight + outOrder.Skus = append(outOrder.Skus, jxOrderChange(weightList[i])) + } else { + if sum5 >= 5 { + break + } + continue + } + } else { + if weightList[i].Weight+sum3 <= 3 { + sum3 += weightList[i].Weight + weightList[i].GroupSign = true + outOrder.Weight += weightList[i].Weight + outOrder.Skus = append(outOrder.Skus, jxOrderChange(weightList[i])) + } else { + if sum3 >= 3 { + break + } + continue + } + } + } + return outOrder +} + +func jxOrderChange(sku2 *JxSkuInfo2) *JxSkuInfo { + sku := &JxSkuInfo{} + sku.Count = sku2.Count + sku.Name = sku2.Name + sku.Price = sku2.Price + sku.SalePrice = sku2.SalePrice + sku.SkuID = sku2.SkuID + sku.Weight = sku2.Weight + return sku +} From 6d8773c48f0d97f7f2517960155ddfacb27fae28 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 16 Mar 2020 09:24:47 +0800 Subject: [PATCH 208/286] =?UTF-8?q?=E8=AE=A2=E5=8D=95=E9=94=80=E9=87=8F?= =?UTF-8?q?=E6=9A=82=E6=97=B6=E8=BF=94=E5=9B=9E=E5=AE=9A=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 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 2e14a7f2b..8190d0861 100644 --- a/business/jxcallback/orderman/orderman_ext.go +++ b/business/jxcallback/orderman/orderman_ext.go @@ -1223,5 +1223,6 @@ func GetMatterStoreOrderCount(ctx *jxcontext.Context, storeID int) (result *Orde return nil, err } orderCount.Flag = flag + orderCount.Count = 1000 return orderCount, err } From 4741416e450438dce0e32c4738a6b5d3667eee43 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 16 Mar 2020 09:58:39 +0800 Subject: [PATCH 209/286] =?UTF-8?q?=E7=89=A9=E6=96=99=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E9=87=8D=E9=87=8F*1000?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/order.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index 05ee55748..e7431d446 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -1307,25 +1307,25 @@ func loop(weightList []*JxSkuInfo2, jxOrder *JxOrderInfo, flag bool) (outOrder * sum3 := 0 for i := 0; i < len(weightList); i++ { if flag { - if weightList[i].Weight+sum5 <= 5 { + if weightList[i].Weight+sum5 <= 5000 { sum5 += weightList[i].Weight weightList[i].GroupSign = true outOrder.Weight += weightList[i].Weight outOrder.Skus = append(outOrder.Skus, jxOrderChange(weightList[i])) } else { - if sum5 >= 5 { + if sum5 >= 5000 { break } continue } } else { - if weightList[i].Weight+sum3 <= 3 { + if weightList[i].Weight+sum3 <= 3000 { sum3 += weightList[i].Weight weightList[i].GroupSign = true outOrder.Weight += weightList[i].Weight outOrder.Skus = append(outOrder.Skus, jxOrderChange(weightList[i])) } else { - if sum3 >= 3 { + if sum3 >= 3000 { break } continue From ae7250970b1030f7ab6c394678034f01562c8cc5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 16 Mar 2020 10:56:25 +0800 Subject: [PATCH 210/286] =?UTF-8?q?=E7=89=A9=E6=96=99=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E9=85=8D=E9=80=81=E8=B4=B9=E9=87=8D=E7=AE=97=EF=BC=8C=E8=B7=B3?= =?UTF-8?q?=E8=BF=87=E6=8B=A3=E8=B4=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/order.go | 36 +++++++++---------- .../purchase/jx/localjx/tonglianpay.go | 2 +- 2 files changed, 17 insertions(+), 21 deletions(-) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index e7431d446..286908e54 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -624,19 +624,19 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64 } deliveryAddress.ConsigneeName = storeDetail2.Name outJxOrder.FromStoreID = fromStoreID - if outJxOrder.Weight > 5000 { - _, freightPrice, err := tryToSplitMatterOrder(outJxOrder) - if err != nil { - return nil, nil, err - } - outJxOrder.FreightPrice = int64(freightPrice) - } else { + // if outJxOrder.Weight > 5000 { + // _, freightPrice, err := tryToSplitMatterOrder(outJxOrder) + // if err != nil { + // return nil, nil, err + // } + // outJxOrder.FreightPrice = int64(freightPrice) + // } else { if outJxOrder.Weight <= 2000 { outJxOrder.FreightPrice = 500 } else { outJxOrder.FreightPrice = utils.Float64TwoInt64(500 + math.Ceil((utils.Int2Float64(outJxOrder.Weight)-2000)/1000)*200) } - } + // } } else { if outJxOrder.FreightPrice > specialFreightPrice { outJxOrder.FreightPrice = specialFreightPrice @@ -761,7 +761,6 @@ func AdjustOrder(ctx *jxcontext.Context, order *model.GoodsOrder, removedSkuList func PickupGoods(order *model.GoodsOrder, isSelfDelivery bool, userName string) (err error) { err = changeOrderStatus(order.VendorOrderID, model.OrderStatusFinishedPickup, "") - err = orderSolutionForWuLiao(order) return err } @@ -770,6 +769,7 @@ func orderSolutionForWuLiao(order *model.GoodsOrder) (err error) { var ( db = dao.GetDB() ) + err = changeOrderStatus(order.VendorOrderID, model.OrderStatusDelivering, "") goods, err := dao.QueryOrders(db, order.VendorOrderID, -1, []int{model.VendorIDJX}, -1, utils.ZeroTimeValue, utils.ZeroTimeValue) if err != nil || len(goods) == 0 { return err @@ -781,7 +781,6 @@ func orderSolutionForWuLiao(order *model.GoodsOrder) (err error) { prices []string quantities []string ) - err = changeOrderStatus(order.VendorOrderID, model.OrderStatusDelivering, "") for _, v := range orderSkus { skus, err := dao.GetSkus(db, []int{v.SkuID}, nil, nil, nil, nil) if err != nil || len(skus) == 0 { @@ -843,9 +842,6 @@ func orderSolutionForWuLiao(order *model.GoodsOrder) (err error) { if err != nil { return err } - if outJxOrder.TotalPrice != v.TotalPrice { - return fmt.Errorf("商品或配送信息发生改变,请重新下单") - } outJxOrder.OrderID = GenOrderNo(jxcontext.AdminCtx) order2, err2 := jxOrder2GoodsOrder(jxcontext.AdminCtx, outJxOrder, deliveryAddress) if err = err2; err == nil { @@ -1290,13 +1286,13 @@ func tryToSplitMatterOrder(jxOrder *JxOrderInfo) (outOrders []*JxOrderInfo, frei break } } - for _, v := range outOrders { - if v.Weight <= 2000 { - freightPrice += 500 - } else { - freightPrice += int(utils.Float64TwoInt64(500 + math.Ceil((utils.Int2Float64(v.Weight)-2000)/1000)*200)) - } - } + // for _, v := range outOrders { + // if v.Weight <= 2000 { + // freightPrice += 500 + // } else { + // freightPrice += int(utils.Float64TwoInt64(500 + math.Ceil((utils.Int2Float64(v.Weight)-2000)/1000)*200)) + // } + // } return outOrders, freightPrice, err } diff --git a/business/partner/purchase/jx/localjx/tonglianpay.go b/business/partner/purchase/jx/localjx/tonglianpay.go index 631a3bdc4..ae9bc3206 100644 --- a/business/partner/purchase/jx/localjx/tonglianpay.go +++ b/business/partner/purchase/jx/localjx/tonglianpay.go @@ -111,7 +111,7 @@ func onTLpayFinished(call *tonglianpayapi.CallBackResult) (err error) { } order, _ := partner.CurOrderManager.LoadOrder(call.CusorderID, model.VendorIDJX) if order.FromStoreID != 0 { - PickupGoods(order, false, "jxadmin") + err = orderSolutionForWuLiao(order) } } else { globals.SugarLogger.Debugf("onTLpayFinished msg:%s, err:%v", utils.Format4Output(call, true), err) From 220780b2ba8d9e08753df27253c069f218dc7f24 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 16 Mar 2020 11:25:12 +0800 Subject: [PATCH 211/286] =?UTF-8?q?=E7=89=A9=E6=96=99=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E7=9B=B4=E6=8E=A5orderNew=E8=AF=95=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/order.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index 286908e54..350deab37 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -837,6 +837,7 @@ func orderSolutionForWuLiao(order *model.GoodsOrder) (err error) { } jxOrder.Skus = skus outOrders, _, _ := tryToSplitMatterOrder(jxOrder) + globals.SugarLogger.Debugf("tryToSplitMatterOrder,[%v]", utils.Format4Output(outOrders, false)) for _, v := range outOrders { outJxOrder, deliveryAddress, err := generateOrder(jxcontext.AdminCtx, v, order.AddressID, order.FromStoreID) if err != nil { @@ -847,7 +848,7 @@ func orderSolutionForWuLiao(order *model.GoodsOrder) (err error) { if err = err2; err == nil { order2.AddressID = order.AddressID order2.Status = model.OrderStatusDelivering - callNewOrder(order2) + partner.CurOrderManager.OnOrderNew(order2, model.Order2Status(order2)) } } //刷新一下库存 From a576358b43abe6319bc501ea32246d6612506b0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 16 Mar 2020 12:41:42 +0800 Subject: [PATCH 212/286] =?UTF-8?q?=E7=89=A9=E6=96=99=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E5=88=86=E5=8C=85=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/order.go | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index 350deab37..1cba1e673 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -631,11 +631,11 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64 // } // outJxOrder.FreightPrice = int64(freightPrice) // } else { - if outJxOrder.Weight <= 2000 { - outJxOrder.FreightPrice = 500 - } else { - outJxOrder.FreightPrice = utils.Float64TwoInt64(500 + math.Ceil((utils.Int2Float64(outJxOrder.Weight)-2000)/1000)*200) - } + if outJxOrder.Weight <= 2000 { + outJxOrder.FreightPrice = 500 + } else { + outJxOrder.FreightPrice = utils.Float64TwoInt64(500 + math.Ceil((utils.Int2Float64(outJxOrder.Weight)-2000)/1000)*200) + } // } } else { if outJxOrder.FreightPrice > specialFreightPrice { @@ -836,9 +836,11 @@ func orderSolutionForWuLiao(order *model.GoodsOrder) (err error) { skus = append(skus, sku) } jxOrder.Skus = skus + globals.SugarLogger.Debugf("tryToSplitMatterOrder3,[%v]", utils.Format4Output(jxOrder, false)) outOrders, _, _ := tryToSplitMatterOrder(jxOrder) - globals.SugarLogger.Debugf("tryToSplitMatterOrder,[%v]", utils.Format4Output(outOrders, false)) + globals.SugarLogger.Debugf("tryToSplitMatterOrder2,[%v]", utils.Format4Output(outOrders, false)) for _, v := range outOrders { + globals.SugarLogger.Debugf("tryToSplitMatterOrder4,[%v]", *v) outJxOrder, deliveryAddress, err := generateOrder(jxcontext.AdminCtx, v, order.AddressID, order.FromStoreID) if err != nil { return err From 902f5fc8711f9b9b9a6d57aa6d2b4498d215d7ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 16 Mar 2020 13:53:01 +0800 Subject: [PATCH 213/286] =?UTF-8?q?=E7=89=A9=E6=96=99=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E6=8B=86=E5=88=86=E6=B5=8B=E8=AF=95=E8=BE=93=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/order.go | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index 1cba1e673..fdb517802 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -836,21 +836,24 @@ func orderSolutionForWuLiao(order *model.GoodsOrder) (err error) { skus = append(skus, sku) } jxOrder.Skus = skus - globals.SugarLogger.Debugf("tryToSplitMatterOrder3,[%v]", utils.Format4Output(jxOrder, false)) outOrders, _, _ := tryToSplitMatterOrder(jxOrder) - globals.SugarLogger.Debugf("tryToSplitMatterOrder2,[%v]", utils.Format4Output(outOrders, false)) for _, v := range outOrders { - globals.SugarLogger.Debugf("tryToSplitMatterOrder4,[%v]", *v) - outJxOrder, deliveryAddress, err := generateOrder(jxcontext.AdminCtx, v, order.AddressID, order.FromStoreID) + globals.SugarLogger.Debugf("tryToSplitMatterOrder6,[%v]", utils.Format4Output(v, false)) + outJxOrder, deliveryAddress, err := generateOrder(jxcontext.AdminCtx, v, order.AddressID, 0) if err != nil { return err } outJxOrder.OrderID = GenOrderNo(jxcontext.AdminCtx) + outJxOrder.FromStoreID = order.FromStoreID + globals.SugarLogger.Debugf("tryToSplitMatterOrder7,[%v]", utils.Format4Output(outJxOrder, false)) order2, err2 := jxOrder2GoodsOrder(jxcontext.AdminCtx, outJxOrder, deliveryAddress) if err = err2; err == nil { order2.AddressID = order.AddressID order2.Status = model.OrderStatusDelivering + globals.SugarLogger.Debugf("tryToSplitMatterOrder8,[%v]", utils.Format4Output(order2, false)) partner.CurOrderManager.OnOrderNew(order2, model.Order2Status(order2)) + } else { + globals.SugarLogger.Debugf("tryToSplitMatterOrder5,[%v]", err) } } //刷新一下库存 From 59a484e6ef83a09408e8a3c5c0e98eb5db1f02f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 16 Mar 2020 14:17:48 +0800 Subject: [PATCH 214/286] =?UTF-8?q?=E6=B5=8B=E8=AF=95=E6=8B=86=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/order.go | 11 ++++++++--- business/partner/purchase/jx/localjx/tonglianpay.go | 5 ----- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index fdb517802..e19663531 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -332,6 +332,9 @@ func OnPayFinished(orderPay *model.OrderPay) (err error) { order.VendorStatus = utils.Int2Str(model.OrderStatusNew) order.StatusTime = *orderPay.PayFinishedAt err = callNewOrder(order) + if order.FromStoreID != 0 { + PickupGoods(order, false, "jxadmin") + } } return err } @@ -761,6 +764,7 @@ func AdjustOrder(ctx *jxcontext.Context, order *model.GoodsOrder, removedSkuList func PickupGoods(order *model.GoodsOrder, isSelfDelivery bool, userName string) (err error) { err = changeOrderStatus(order.VendorOrderID, model.OrderStatusFinishedPickup, "") + err = orderSolutionForWuLiao(order) return err } @@ -839,10 +843,12 @@ func orderSolutionForWuLiao(order *model.GoodsOrder) (err error) { outOrders, _, _ := tryToSplitMatterOrder(jxOrder) for _, v := range outOrders { globals.SugarLogger.Debugf("tryToSplitMatterOrder6,[%v]", utils.Format4Output(v, false)) + globals.SugarLogger.Debugf("tryToSplitMatterOrder9,[%v]", utils.Format4Output(order, false)) outJxOrder, deliveryAddress, err := generateOrder(jxcontext.AdminCtx, v, order.AddressID, 0) if err != nil { return err } + globals.SugarLogger.Debugf("tryToSplitMatterOrder10") outJxOrder.OrderID = GenOrderNo(jxcontext.AdminCtx) outJxOrder.FromStoreID = order.FromStoreID globals.SugarLogger.Debugf("tryToSplitMatterOrder7,[%v]", utils.Format4Output(outJxOrder, false)) @@ -851,9 +857,8 @@ func orderSolutionForWuLiao(order *model.GoodsOrder) (err error) { order2.AddressID = order.AddressID order2.Status = model.OrderStatusDelivering globals.SugarLogger.Debugf("tryToSplitMatterOrder8,[%v]", utils.Format4Output(order2, false)) - partner.CurOrderManager.OnOrderNew(order2, model.Order2Status(order2)) - } else { - globals.SugarLogger.Debugf("tryToSplitMatterOrder5,[%v]", err) + partner.CurOrderManager.SaveOrder(order2, false, db) + orderSolutionForWuLiao(order2) } } //刷新一下库存 diff --git a/business/partner/purchase/jx/localjx/tonglianpay.go b/business/partner/purchase/jx/localjx/tonglianpay.go index ae9bc3206..71446f67f 100644 --- a/business/partner/purchase/jx/localjx/tonglianpay.go +++ b/business/partner/purchase/jx/localjx/tonglianpay.go @@ -17,7 +17,6 @@ import ( "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/business/partner" "git.rosy.net.cn/jx-callback/globals/api" ) @@ -109,10 +108,6 @@ func onTLpayFinished(call *tonglianpayapi.CallBackResult) (err error) { if call.TrxStatus == tonglianpayapi.TrxStatusSuccess { err = OnPayFinished(orderPay) } - order, _ := partner.CurOrderManager.LoadOrder(call.CusorderID, model.VendorIDJX) - if order.FromStoreID != 0 { - err = orderSolutionForWuLiao(order) - } } else { globals.SugarLogger.Debugf("onTLpayFinished msg:%s, err:%v", utils.Format4Output(call, true), err) } From 129308cf6c3ffc5e0450c432b0981b56f535c39a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 16 Mar 2020 15:03:55 +0800 Subject: [PATCH 215/286] =?UTF-8?q?=E7=89=A9=E6=96=99=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E5=88=86=E5=8C=85=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/order.go | 46 +++++++++++++++---- 1 file changed, 36 insertions(+), 10 deletions(-) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index e19663531..de9f70e99 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -841,23 +841,21 @@ func orderSolutionForWuLiao(order *model.GoodsOrder) (err error) { } jxOrder.Skus = skus outOrders, _, _ := tryToSplitMatterOrder(jxOrder) - for _, v := range outOrders { + for k, v := range outOrders { globals.SugarLogger.Debugf("tryToSplitMatterOrder6,[%v]", utils.Format4Output(v, false)) - globals.SugarLogger.Debugf("tryToSplitMatterOrder9,[%v]", utils.Format4Output(order, false)) - outJxOrder, deliveryAddress, err := generateOrder(jxcontext.AdminCtx, v, order.AddressID, 0) + outJxOrder, deliveryAddress, err := generateOrder(jxcontext.AdminCtx, v, order.AddressID, order.FromStoreID) if err != nil { + globals.SugarLogger.Debugf("tryToSplitMatterOrder10,[%v]", err) return err } - globals.SugarLogger.Debugf("tryToSplitMatterOrder10") - outJxOrder.OrderID = GenOrderNo(jxcontext.AdminCtx) - outJxOrder.FromStoreID = order.FromStoreID + outJxOrder.OrderID = utils.Str2Int64(order.VendorOrderID)*100 + int64(k+1) globals.SugarLogger.Debugf("tryToSplitMatterOrder7,[%v]", utils.Format4Output(outJxOrder, false)) order2, err2 := jxOrder2GoodsOrder(jxcontext.AdminCtx, outJxOrder, deliveryAddress) if err = err2; err == nil { order2.AddressID = order.AddressID order2.Status = model.OrderStatusDelivering globals.SugarLogger.Debugf("tryToSplitMatterOrder8,[%v]", utils.Format4Output(order2, false)) - partner.CurOrderManager.SaveOrder(order2, false, db) + err = partner.CurOrderManager.OnOrderNew(order, model.Order2Status(order)) orderSolutionForWuLiao(order2) } } @@ -1307,6 +1305,14 @@ func tryToSplitMatterOrder(jxOrder *JxOrderInfo) (outOrders []*JxOrderInfo, frei return outOrders, freightPrice, err } +//商品分包规则。最后一个包不超过5kg,其他包不超过3kg +// 举例1:5.1kg,分为 2.5kg,2.6kg,确保每个包不超过3kg,最后一个包不超过5kg +// 举例2:4kg,分为4kg +// 举例3:10kg,分为 3kg,3kg,4kg +// 举例4:8.1kg,分为 3kg,3kg,2.1kg ; 不能分为3kg,5.1kg +//sum5表示5kg的计算 +//sum3表示3kg的计算 +//处理过程都是一样的,没单独拿一个函数出来了 func loop(weightList []*JxSkuInfo2, jxOrder *JxOrderInfo, flag bool) (outOrder *JxOrderInfo) { outOrder = &JxOrderInfo{} outOrder.StoreID = jxOrder.StoreID @@ -1318,7 +1324,17 @@ func loop(weightList []*JxSkuInfo2, jxOrder *JxOrderInfo, flag bool) (outOrder * sum5 += weightList[i].Weight weightList[i].GroupSign = true outOrder.Weight += weightList[i].Weight - outOrder.Skus = append(outOrder.Skus, jxOrderChange(weightList[i])) + if len(outOrder.Skus) > 0 { + for _, v := range outOrder.Skus { + if v.SkuID == weightList[i].SkuID { + v.Count++ + } else { + outOrder.Skus = append(outOrder.Skus, jxOrderChange(weightList[i])) + } + } + } else { + outOrder.Skus = append(outOrder.Skus, jxOrderChange(weightList[i])) + } } else { if sum5 >= 5000 { break @@ -1330,7 +1346,17 @@ func loop(weightList []*JxSkuInfo2, jxOrder *JxOrderInfo, flag bool) (outOrder * sum3 += weightList[i].Weight weightList[i].GroupSign = true outOrder.Weight += weightList[i].Weight - outOrder.Skus = append(outOrder.Skus, jxOrderChange(weightList[i])) + if len(outOrder.Skus) > 0 { + for _, v := range outOrder.Skus { + if v.SkuID == weightList[i].SkuID { + v.Count++ + } else { + outOrder.Skus = append(outOrder.Skus, jxOrderChange(weightList[i])) + } + } + } else { + outOrder.Skus = append(outOrder.Skus, jxOrderChange(weightList[i])) + } } else { if sum3 >= 3000 { break @@ -1344,7 +1370,7 @@ func loop(weightList []*JxSkuInfo2, jxOrder *JxOrderInfo, flag bool) (outOrder * func jxOrderChange(sku2 *JxSkuInfo2) *JxSkuInfo { sku := &JxSkuInfo{} - sku.Count = sku2.Count + sku.Count = 1 sku.Name = sku2.Name sku.Price = sku2.Price sku.SalePrice = sku2.SalePrice From 7f9a6a6484f0c3af700f302869d873fc4cbaa03b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 16 Mar 2020 15:22:41 +0800 Subject: [PATCH 216/286] =?UTF-8?q?=E7=89=A9=E6=96=99=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E5=88=86=E5=8C=85=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/order.go | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index de9f70e99..48b483724 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -194,7 +194,7 @@ func GetMyOrderCountInfo(ctx *jxcontext.Context, fromDate, toDate time.Time, sta } func CreateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64, createType int, fromStoreID int) (outJxOrder *JxOrderInfo, err error) { - outJxOrder, deliveryAddress, err := generateOrder(ctx, jxOrder, addressID, fromStoreID) + outJxOrder, deliveryAddress, err := generateOrder(ctx, jxOrder, addressID, fromStoreID, "") if err != nil { return nil, err } @@ -400,7 +400,7 @@ func isTimeInOpTime(openTime1, closeTime1, openTime2, closeTime2 int16, time2Che return false } -func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64, fromStoreID int) (outJxOrder *JxOrderInfo, deliveryAddress *dao.UserDeliveryAddressEx, err error) { +func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64, fromStoreID int, userID string) (outJxOrder *JxOrderInfo, deliveryAddress *dao.UserDeliveryAddressEx, err error) { db := dao.GetDB() if jxOrder.StoreID == 0 { return nil, nil, fmt.Errorf("没有指定门店信息") @@ -410,7 +410,12 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64 if err != nil { return nil, nil, err } - addressList, _, err := dao.QueryUserDeliveryAddress(db, addressID, []string{ctx.GetUserID()}, 0, 0) + var addressList []*dao.UserDeliveryAddressEx + if userID == "" { + addressList, _, err = dao.QueryUserDeliveryAddress(db, addressID, []string{ctx.GetUserID()}, 0, 0) + } else { + addressList, _, err = dao.QueryUserDeliveryAddress(db, addressID, []string{userID}, 0, 0) + } if err != nil { return nil, nil, err } @@ -843,7 +848,7 @@ func orderSolutionForWuLiao(order *model.GoodsOrder) (err error) { outOrders, _, _ := tryToSplitMatterOrder(jxOrder) for k, v := range outOrders { globals.SugarLogger.Debugf("tryToSplitMatterOrder6,[%v]", utils.Format4Output(v, false)) - outJxOrder, deliveryAddress, err := generateOrder(jxcontext.AdminCtx, v, order.AddressID, order.FromStoreID) + outJxOrder, deliveryAddress, err := generateOrder(jxcontext.AdminCtx, v, order.AddressID, order.FromStoreID, order.UserID) if err != nil { globals.SugarLogger.Debugf("tryToSplitMatterOrder10,[%v]", err) return err From f0a50976559cd7d50ad7a81f8902bb4c8b20b008 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 16 Mar 2020 15:31:03 +0800 Subject: [PATCH 217/286] =?UTF-8?q?=E7=89=A9=E6=96=99=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E5=88=86=E5=8C=85=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/order.go | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index 48b483724..b01d7cbe8 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -820,6 +820,7 @@ func orderSolutionForWuLiao(order *model.GoodsOrder) (err error) { } order.EclpOutID = result dao.UpdateEntity(db, order, "EclpOutID") + globals.SugarLogger.Debugf("tryToSplitMatterOrderaaa,[%v]", utils.Format4Output(order, false)) waybill := &model.Waybill{ VendorOrderID: order.VendorOrderID, OrderVendorID: model.VendorIDJX, @@ -847,20 +848,16 @@ func orderSolutionForWuLiao(order *model.GoodsOrder) (err error) { jxOrder.Skus = skus outOrders, _, _ := tryToSplitMatterOrder(jxOrder) for k, v := range outOrders { - globals.SugarLogger.Debugf("tryToSplitMatterOrder6,[%v]", utils.Format4Output(v, false)) outJxOrder, deliveryAddress, err := generateOrder(jxcontext.AdminCtx, v, order.AddressID, order.FromStoreID, order.UserID) if err != nil { - globals.SugarLogger.Debugf("tryToSplitMatterOrder10,[%v]", err) return err } outJxOrder.OrderID = utils.Str2Int64(order.VendorOrderID)*100 + int64(k+1) - globals.SugarLogger.Debugf("tryToSplitMatterOrder7,[%v]", utils.Format4Output(outJxOrder, false)) order2, err2 := jxOrder2GoodsOrder(jxcontext.AdminCtx, outJxOrder, deliveryAddress) if err = err2; err == nil { order2.AddressID = order.AddressID order2.Status = model.OrderStatusDelivering - globals.SugarLogger.Debugf("tryToSplitMatterOrder8,[%v]", utils.Format4Output(order2, false)) - err = partner.CurOrderManager.OnOrderNew(order, model.Order2Status(order)) + err = partner.CurOrderManager.OnOrderNew(order2, model.Order2Status(order2)) orderSolutionForWuLiao(order2) } } From 942fac44e8908652f77b1724e5fa94251f5a31f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 16 Mar 2020 15:42:05 +0800 Subject: [PATCH 218/286] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E9=80=80=E5=9B=9E?= =?UTF-8?q?=E5=85=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/order.go | 56 +++++++++---------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index b01d7cbe8..af9cc49da 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -833,34 +833,34 @@ func orderSolutionForWuLiao(order *model.GoodsOrder) (err error) { } dao.CreateEntity(db, waybill) } else { //如果重量超过5kg则需要进行拆单分包,商品分包规则。最后一个包不超过5kg,其他包不超过3kg - jxOrder := &JxOrderInfo{} - jxOrder.StoreID = order.StoreID - var skus []*JxSkuInfo - for _, v := range orderSkus { - sku := &JxSkuInfo{} - sku.SkuID = v.SkuID - sku.SalePrice = v.SalePrice - sku.Name = v.SkuName - sku.Weight = v.Weight - sku.Count = v.Count - skus = append(skus, sku) - } - jxOrder.Skus = skus - outOrders, _, _ := tryToSplitMatterOrder(jxOrder) - for k, v := range outOrders { - outJxOrder, deliveryAddress, err := generateOrder(jxcontext.AdminCtx, v, order.AddressID, order.FromStoreID, order.UserID) - if err != nil { - return err - } - outJxOrder.OrderID = utils.Str2Int64(order.VendorOrderID)*100 + int64(k+1) - order2, err2 := jxOrder2GoodsOrder(jxcontext.AdminCtx, outJxOrder, deliveryAddress) - if err = err2; err == nil { - order2.AddressID = order.AddressID - order2.Status = model.OrderStatusDelivering - err = partner.CurOrderManager.OnOrderNew(order2, model.Order2Status(order2)) - orderSolutionForWuLiao(order2) - } - } + // jxOrder := &JxOrderInfo{} + // jxOrder.StoreID = order.StoreID + // var skus []*JxSkuInfo + // for _, v := range orderSkus { + // sku := &JxSkuInfo{} + // sku.SkuID = v.SkuID + // sku.SalePrice = v.SalePrice + // sku.Name = v.SkuName + // sku.Weight = v.Weight + // sku.Count = v.Count + // skus = append(skus, sku) + // } + // jxOrder.Skus = skus + // outOrders, _, _ := tryToSplitMatterOrder(jxOrder) + // for k, v := range outOrders { + // outJxOrder, deliveryAddress, err := generateOrder(jxcontext.AdminCtx, v, order.AddressID, order.FromStoreID, order.UserID) + // if err != nil { + // return err + // } + // outJxOrder.OrderID = utils.Str2Int64(order.VendorOrderID)*100 + int64(k+1) + // order2, err2 := jxOrder2GoodsOrder(jxcontext.AdminCtx, outJxOrder, deliveryAddress) + // if err = err2; err == nil { + // order2.AddressID = order.AddressID + // order2.Status = model.OrderStatusDelivering + // err = partner.CurOrderManager.OnOrderNew(order2, model.Order2Status(order2)) + // orderSolutionForWuLiao(order2) + // } + // } //刷新一下库存 for _, v := range goods[0].Skus { cms.RefreshMatterStock(jxcontext.AdminCtx, v.SkuID) From cd371f6bad866d1432ae8f44f0afc1215be40e83 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 16 Mar 2020 16:20:49 +0800 Subject: [PATCH 219/286] =?UTF-8?q?=E7=89=A9=E6=96=99=E5=8F=96=E6=B6=88?= =?UTF-8?q?=E8=AE=A2=E5=8D=95=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/order.go | 94 +++++++++++-------- 1 file changed, 56 insertions(+), 38 deletions(-) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index af9cc49da..1dc99d816 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -203,7 +203,7 @@ func CreateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64, return nil, fmt.Errorf("商品或配送信息发生改变,请重新下单") } outJxOrder.OrderID = GenOrderNo(ctx) - order, err2 := jxOrder2GoodsOrder(ctx, outJxOrder, deliveryAddress) + order, err2 := jxOrder2GoodsOrder(ctx, outJxOrder, deliveryAddress, "") if err = err2; err == nil { order.AddressID = addressID order.Status = model.OrderStatusWait4Pay @@ -699,14 +699,14 @@ func matterSkusLimited(skus []*JxSkuInfo, storeID int) (err error) { return err } -func jxOrder2GoodsOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, deliveryAddress *dao.UserDeliveryAddressEx) (order *model.GoodsOrder, err error) { +func jxOrder2GoodsOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, deliveryAddress *dao.UserDeliveryAddressEx, userID string) (order *model.GoodsOrder, err error) { order = &model.GoodsOrder{ VendorOrderID: utils.Int64ToStr(jxOrder.OrderID), VendorID: model.VendorIDJX, VendorStoreID: utils.Int2Str(jxOrder.StoreID), StoreID: jxOrder.StoreID, StoreName: jxOrder.StoreName, - UserID: ctx.GetUserID(), + // UserID: ctx.GetUserID(), ConsigneeName: deliveryAddress.ConsigneeName, ConsigneeMobile: deliveryAddress.ConsigneeMobile, @@ -724,6 +724,11 @@ func jxOrder2GoodsOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, deliveryAd DeliveryType: model.OrderDeliveryTypeStoreSelf, StatusTime: time.Now(), } + if userID == "" { + order.UserID = ctx.GetUserID() + } else { + order.UserID = userID + } order.OrderCreatedAt = order.StatusTime order.VendorUserID = order.UserID if jxOrder.ExpectedDeliveredTimestamp != 0 { @@ -749,6 +754,7 @@ func jxOrder2GoodsOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, deliveryAd if jxOrder.FromStoreID != 0 { order.FromStoreID = jxOrder.FromStoreID order.WaybillVendorID = model.VendorIDJDWL + order.DeliveryFlag = model.OrderDeliveryFlagMaskScheduleDisabled } return order, err } @@ -833,34 +839,34 @@ func orderSolutionForWuLiao(order *model.GoodsOrder) (err error) { } dao.CreateEntity(db, waybill) } else { //如果重量超过5kg则需要进行拆单分包,商品分包规则。最后一个包不超过5kg,其他包不超过3kg - // jxOrder := &JxOrderInfo{} - // jxOrder.StoreID = order.StoreID - // var skus []*JxSkuInfo - // for _, v := range orderSkus { - // sku := &JxSkuInfo{} - // sku.SkuID = v.SkuID - // sku.SalePrice = v.SalePrice - // sku.Name = v.SkuName - // sku.Weight = v.Weight - // sku.Count = v.Count - // skus = append(skus, sku) - // } - // jxOrder.Skus = skus - // outOrders, _, _ := tryToSplitMatterOrder(jxOrder) - // for k, v := range outOrders { - // outJxOrder, deliveryAddress, err := generateOrder(jxcontext.AdminCtx, v, order.AddressID, order.FromStoreID, order.UserID) - // if err != nil { - // return err - // } - // outJxOrder.OrderID = utils.Str2Int64(order.VendorOrderID)*100 + int64(k+1) - // order2, err2 := jxOrder2GoodsOrder(jxcontext.AdminCtx, outJxOrder, deliveryAddress) - // if err = err2; err == nil { - // order2.AddressID = order.AddressID - // order2.Status = model.OrderStatusDelivering - // err = partner.CurOrderManager.OnOrderNew(order2, model.Order2Status(order2)) - // orderSolutionForWuLiao(order2) - // } - // } + jxOrder := &JxOrderInfo{} + jxOrder.StoreID = order.StoreID + var skus []*JxSkuInfo + for _, v := range orderSkus { + sku := &JxSkuInfo{} + sku.SkuID = v.SkuID + sku.SalePrice = v.SalePrice + sku.Name = v.SkuName + sku.Weight = v.Weight + sku.Count = v.Count + skus = append(skus, sku) + } + jxOrder.Skus = skus + outOrders, _, _ := tryToSplitMatterOrder(jxOrder) + for k, v := range outOrders { + outJxOrder, deliveryAddress, err := generateOrder(jxcontext.AdminCtx, v, order.AddressID, order.FromStoreID, order.UserID) + if err != nil { + return err + } + outJxOrder.OrderID = utils.Str2Int64(order.VendorOrderID)*100 + int64(k+1) + order2, err2 := jxOrder2GoodsOrder(jxcontext.AdminCtx, outJxOrder, deliveryAddress, order.UserID) + if err = err2; err == nil { + order2.AddressID = order.AddressID + order2.Status = model.OrderStatusDelivering + err = partner.CurOrderManager.OnOrderNew(order2, model.Order2Status(order2)) + orderSolutionForWuLiao(order2) + } + } //刷新一下库存 for _, v := range goods[0].Skus { cms.RefreshMatterStock(jxcontext.AdminCtx, v.SkuID) @@ -894,20 +900,17 @@ func CancelOrder(ctx *jxcontext.Context, order *model.GoodsOrder, reason string) if err == nil { dao.WrapAddIDCULDEntity(orderPayRefund, ctx.GetUserName()) errList.AddErr(dao.CreateEntity(dao.GetDB(), orderPayRefund)) - MarkArrears(db, order, orderPay) - CancelMatterOrder(db, order) } else { errList.AddErr(err) } } else if orderPay.PayType == model.PayTypeTL { orderPayRefund, err = refundOrderByTL(ctx, orderPay, refundID, orderPay.TotalFee, reason) - if err == nil { - MarkArrears(db, order, orderPay) - CancelMatterOrder(db, order) - } else { + if err != nil { errList.AddErr(err) } } + MarkArrears(db, order, orderPay) + CancelMatterOrder(db, order) } else { orderPay.Status = model.PayStatusCanceled _, err2 := dao.UpdateEntity(db, orderPay) @@ -923,6 +926,9 @@ func CancelOrder(ctx *jxcontext.Context, order *model.GoodsOrder, reason string) errList.AddErr(changeOrderStatus(order.VendorOrderID, model.OrderStatusCanceled, reason)) } err = errList.GetErrListAsOne() + if len(payList) == 0 { + CancelMatterOrder(db, order) + } } else { err = fmt.Errorf("当前订单状态:%s不允许取消", model.OrderStatusName[order.Status]) } @@ -931,7 +937,19 @@ func CancelOrder(ctx *jxcontext.Context, order *model.GoodsOrder, reason string) func CancelMatterOrder(db *dao.DaoDB, order *model.GoodsOrder) (err error) { if order.FromStoreID != 0 { - _, err = api.JdEclpAPI.CancelOrder(order.EclpOutID) + if order.EclpOutID != "" { + _, err = api.JdEclpAPI.CancelOrder(order.EclpOutID) + } else { + var goodsList []*model.GoodsOrder + sql := "SELECT * FROM goods_order WHERE vendor_order_id LIKE ? OR vendor_order_id LIKE ? AND vendor_id = ?" + sqlParams := []interface{}{order.VendorOrderID + "0%", order.VendorOrderID + "1%", model.VendorIDJX} + err = dao.GetRows(db, &goodsList, sql, sqlParams) + if err == nil && len(goodsList) > 0 { + for _, v := range goodsList { + _, err = api.JdEclpAPI.CancelOrder(v.EclpOutID) + } + } + } } return err } From 6ebc151a315b19a607a4462508a38f9185efb337 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 16 Mar 2020 16:40:14 +0800 Subject: [PATCH 220/286] =?UTF-8?q?=E7=89=A9=E6=96=99=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E8=A1=A5=E5=85=81=E8=AE=B8=E5=8F=96=E6=B6=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/order.go | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index 1dc99d816..60801797c 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -910,7 +910,7 @@ func CancelOrder(ctx *jxcontext.Context, order *model.GoodsOrder, reason string) } } MarkArrears(db, order, orderPay) - CancelMatterOrder(db, order) + CancelMatterOrder(db, order, reason) } else { orderPay.Status = model.PayStatusCanceled _, err2 := dao.UpdateEntity(db, orderPay) @@ -927,7 +927,7 @@ func CancelOrder(ctx *jxcontext.Context, order *model.GoodsOrder, reason string) } err = errList.GetErrListAsOne() if len(payList) == 0 { - CancelMatterOrder(db, order) + CancelMatterOrder(db, order, "") } } else { err = fmt.Errorf("当前订单状态:%s不允许取消", model.OrderStatusName[order.Status]) @@ -935,9 +935,13 @@ func CancelOrder(ctx *jxcontext.Context, order *model.GoodsOrder, reason string) return err } -func CancelMatterOrder(db *dao.DaoDB, order *model.GoodsOrder) (err error) { +func CancelMatterOrder(db *dao.DaoDB, order *model.GoodsOrder, reason string) (err error) { if order.FromStoreID != 0 { if order.EclpOutID != "" { + //表示是京西的物料订单的子订单(拆分后的订单) + if len(order.VendorOrderID) == 16 && order.VendorID == model.VendorIDJX { + return fmt.Errorf("不允许取消该子订单,请取消主订单进行退货退款!主订单ID :[%v]", order.VendorOrderID[:len(order.VendorOrderID)-2]) + } _, err = api.JdEclpAPI.CancelOrder(order.EclpOutID) } else { var goodsList []*model.GoodsOrder @@ -947,6 +951,7 @@ func CancelMatterOrder(db *dao.DaoDB, order *model.GoodsOrder) (err error) { if err == nil && len(goodsList) > 0 { for _, v := range goodsList { _, err = api.JdEclpAPI.CancelOrder(v.EclpOutID) + changeOrderStatus(v.VendorOrderID, model.OrderStatusCanceled, reason) } } } From 69f4bfcc10a1dad602c62f3fcd657c706b06fc3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 16 Mar 2020 17:21:52 +0800 Subject: [PATCH 221/286] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=B8=80=E4=B8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/order.go | 97 +++++++++---------- 1 file changed, 47 insertions(+), 50 deletions(-) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index 60801797c..34e81703d 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -332,6 +332,7 @@ func OnPayFinished(orderPay *model.OrderPay) (err error) { order.VendorStatus = utils.Int2Str(model.OrderStatusNew) order.StatusTime = *orderPay.PayFinishedAt err = callNewOrder(order) + //如果是物料的订单,直接到拣货完成,配送中的状态 if order.FromStoreID != 0 { PickupGoods(order, false, "jxadmin") } @@ -491,12 +492,12 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64 } var ( result *orderman.OrderCount - sum int + sum *int //申请物料的店的最近销量,以下会根据销量计算具体袋子的价格 flag = false //新店袋子拆分当个参数 ) if fromStoreID != 0 { result, _ = orderman.GetMatterStoreOrderCount(nil, fromStoreID) - sum = result.Count + sum = &result.Count } for _, v := range skus { if storeSkuBind := storeSkuMap[v.SkuID]; storeSkuBind != nil { @@ -509,6 +510,7 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64 Weight: sku.Weight, Name: jxutils.ComposeSkuName(sku.Prefix, sku.Name, sku.Comment, sku.Unit, sku.SpecQuality, sku.SpecUnit, 0, sku.ExPrefix, sku.ExPrefixBegin, sku.ExPrefixEnd), } + //活动商品要拆分,一分钱的单独列一个(count为1),正常价格的列在一起(count叠加) if storeSkuBind.ActPrice != 0 && storeSkuBind.ActPrice < storeSkuBind.JxPrice { jxSku.SalePrice = int64(storeSkuBind.ActPrice) jxSku.Count = 1 @@ -532,7 +534,7 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64 outJxOrder.OrderPrice += int64(jxSku.Count) * jxSku.SalePrice } else { //以下else为物料订单袋子金额和数量处理 if result.Count == 0 && result.Flag { //这个条件被认为是新店,袋子限量 - if bagMap[jxSku.SkuID] != 0 { + if bagMap[jxSku.SkuID] != 0 { //如果他买了袋子,第一个袋子算1分钱,其余按原价(包括所有袋子) if !flag { jxSku.SalePrice = 1 jxSku.Count = 1 @@ -553,54 +555,37 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64 outJxOrder.OrderPrice += int64(jxSku.Count) * jxSku.SalePrice } } else { + //袋子总数小于等于销量就是1分钱,只要大于销量其他就按原价 + var bagPriceCount = func(jxSku *JxSkuInfo, outJxOrder *JxOrderInfo, sum *int, count float64) { + if bagMap[jxSku.SkuID] != 0 { + if *sum > 0 { + if bagMap[jxSku.SkuID]*jxSku.Count <= *sum+int(utils.Float64TwoInt64(count)) { + jxSku.SalePrice = 1 + outJxOrder.Skus = append(outJxOrder.Skus, jxSku) + outJxOrder.OrderPrice += int64(1 * jxSku.Count) + } else { + jxSku2 := *jxSku + jxSku2.SalePrice = jxSku.SalePrice + jxSku2.Count = int(int64(jxSku.Count) - utils.Float64TwoInt64(math.Ceil(utils.Int2Float64(*sum)/count))) + jxSku.SalePrice = 1 + jxSku.Count = int(utils.Float64TwoInt64(math.Ceil(utils.Int2Float64(*sum) / count))) + outJxOrder.Skus = append(outJxOrder.Skus, jxSku) + outJxOrder.Skus = append(outJxOrder.Skus, &jxSku2) + outJxOrder.OrderPrice += jxSku.SalePrice * int64(jxSku.Count) + outJxOrder.OrderPrice += jxSku2.SalePrice * int64(jxSku2.Count) + } + } else { + outJxOrder.Skus = append(outJxOrder.Skus, jxSku) + outJxOrder.OrderPrice += int64(jxSku.Count) * jxSku.SalePrice + } + *sum = *sum - bagMap[jxSku.SkuID]*jxSku.Count + } + } + //这个袋子规格是一份100个 if jxSku.SkuID == 6039382 { - if bagMap[jxSku.SkuID] != 0 { - if sum > 0 { - if bagMap[jxSku.SkuID]*jxSku.Count <= sum+100 { - jxSku.SalePrice = 1 - outJxOrder.Skus = append(outJxOrder.Skus, jxSku) - outJxOrder.OrderPrice += int64(1 * jxSku.Count) - } else { - jxSku2 := *jxSku - jxSku2.SalePrice = jxSku.SalePrice - jxSku2.Count = int(int64(jxSku.Count) - utils.Float64TwoInt64(math.Ceil(utils.Int2Float64(sum)/100))) - jxSku.SalePrice = 1 - jxSku.Count = int(utils.Float64TwoInt64(math.Ceil(utils.Int2Float64(sum) / 100))) - outJxOrder.Skus = append(outJxOrder.Skus, jxSku) - outJxOrder.Skus = append(outJxOrder.Skus, &jxSku2) - outJxOrder.OrderPrice += jxSku.SalePrice * int64(jxSku.Count) - outJxOrder.OrderPrice += jxSku2.SalePrice * int64(jxSku2.Count) - } - } else { - outJxOrder.Skus = append(outJxOrder.Skus, jxSku) - outJxOrder.OrderPrice += int64(jxSku.Count) * jxSku.SalePrice - } - sum = sum - bagMap[jxSku.SkuID]*jxSku.Count - } - } else if jxSku.SkuID == 6039383 || jxSku.SkuID == 6039384 || jxSku.SkuID == 6039387 || jxSku.SkuID == 6039390 { - if bagMap[jxSku.SkuID] != 0 { - if sum > 0 { - if bagMap[jxSku.SkuID]*jxSku.Count <= sum+200 { - jxSku.SalePrice = 1 - outJxOrder.Skus = append(outJxOrder.Skus, jxSku) - outJxOrder.OrderPrice += int64(1 * jxSku.Count) - } else { - jxSku2 := *jxSku - jxSku2.SalePrice = jxSku.SalePrice - jxSku2.Count = int(int64(jxSku.Count) - utils.Float64TwoInt64(math.Ceil(utils.Int2Float64(sum)/200))) - jxSku.SalePrice = 1 - jxSku.Count = int(utils.Float64TwoInt64(math.Ceil(utils.Int2Float64(sum) / 200))) - outJxOrder.Skus = append(outJxOrder.Skus, jxSku) - outJxOrder.Skus = append(outJxOrder.Skus, &jxSku2) - outJxOrder.OrderPrice += jxSku.SalePrice * int64(jxSku.Count) - outJxOrder.OrderPrice += jxSku2.SalePrice * int64(jxSku2.Count) - } - } else { - outJxOrder.Skus = append(outJxOrder.Skus, jxSku) - outJxOrder.OrderPrice += int64(jxSku.Count) * jxSku.SalePrice - } - sum = sum - bagMap[jxSku.SkuID]*jxSku.Count - } + bagPriceCount(jxSku, outJxOrder, sum, 100) + } else if jxSku.SkuID == 6039383 || jxSku.SkuID == 6039384 || jxSku.SkuID == 6039387 || jxSku.SkuID == 6039390 { //这些袋子是一份200个 + bagPriceCount(jxSku, outJxOrder, sum, 200) } else { outJxOrder.Skus = append(outJxOrder.Skus, jxSku) outJxOrder.OrderPrice += int64(jxSku.Count) * jxSku.SalePrice @@ -612,6 +597,7 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64 } } } + //物料订单的配送费另算,所以排除了免得多算一次 if fromStoreID == 0 { sort.Sort(JxSkuInfoList(outJxOrder.Skus)) outJxOrder.FreightPrice, _, err = delivery.CalculateDeliveryFee(dao.GetDB(), jxOrder.StoreID, "", @@ -630,8 +616,11 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64 if err = err2; err != nil { return nil, nil, fmt.Errorf("fromStoreID有误,[%v]", fromStoreID) } + //要求配送人姓名填门店名 deliveryAddress.ConsigneeName = storeDetail2.Name outJxOrder.FromStoreID = fromStoreID + ///物料订单的配送费计算,注释的是分包之后计算配送费,但后来还是直接算不分包之前的总配送费 + ///规则为: 配送费用规则。起价5元(含2kg),之后每kg+2元,不足1kg按1kg计算。 // if outJxOrder.Weight > 5000 { // _, freightPrice, err := tryToSplitMatterOrder(outJxOrder) // if err != nil { @@ -666,6 +655,7 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64 return outJxOrder, deliveryAddress, err } +//根据销量限制门店申请袋子数,现暂不使用该判断,万一以后要用就先没删 func matterSkusLimited(skus []*JxSkuInfo, storeID int) (err error) { result, err := orderman.GetMatterStoreOrderCount(nil, storeID) sum := 0 @@ -775,6 +765,7 @@ func AdjustOrder(ctx *jxcontext.Context, order *model.GoodsOrder, removedSkuList func PickupGoods(order *model.GoodsOrder, isSelfDelivery bool, userName string) (err error) { err = changeOrderStatus(order.VendorOrderID, model.OrderStatusFinishedPickup, "") + //如果是物料订单则直接进行京东物流的发单,并且状态直接变为配送中 err = orderSolutionForWuLiao(order) return err } @@ -853,11 +844,13 @@ func orderSolutionForWuLiao(order *model.GoodsOrder) (err error) { } jxOrder.Skus = skus outOrders, _, _ := tryToSplitMatterOrder(jxOrder) + //以下为仿照CreateOrder,改了一些参数 for k, v := range outOrders { outJxOrder, deliveryAddress, err := generateOrder(jxcontext.AdminCtx, v, order.AddressID, order.FromStoreID, order.UserID) if err != nil { return err } + //分包后的子订单ID默认是后面加两位(目前的规则),要改的话要注意取消订单那的判断 outJxOrder.OrderID = utils.Str2Int64(order.VendorOrderID)*100 + int64(k+1) order2, err2 := jxOrder2GoodsOrder(jxcontext.AdminCtx, outJxOrder, deliveryAddress, order.UserID) if err = err2; err == nil { @@ -1283,6 +1276,10 @@ func tryToSplitMatterOrder(jxOrder *JxOrderInfo) (outOrders []*JxOrderInfo, frei weightList []*JxSkuInfo2 flag = true ) + //我的思路为把所有商品依次按重量销量从大到小排列,然后第一个包尽量分出5kg,后面分出3kg + //但是我把JxSkuInfo放进list的时候,想根据一个参数GroupSign判断是否这个商品已经分出去了 + //但是在list中同一个商品似乎放进去的地址是一样的,我改了一个商品的GroupSign,所有的都变了,所以只有分出一个JxSkuInfo2去弄。。 + //要做优化的话更好 for _, v := range skus { for i := 0; i < v.Count; i++ { var sku2 = &JxSkuInfo2{} From 6e9c986325f3f67181c46fe8966a4ecf1d0e5d9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 16 Mar 2020 18:06:50 +0800 Subject: [PATCH 222/286] =?UTF-8?q?=E5=88=86=E7=B1=BB=E9=87=8D=E6=8E=92?= =?UTF-8?q?=E5=BA=8F=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/sku.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/business/jxstore/cms/sku.go b/business/jxstore/cms/sku.go index 8e1c8bc6a..ff16e54e8 100644 --- a/business/jxstore/cms/sku.go +++ b/business/jxstore/cms/sku.go @@ -265,6 +265,13 @@ func ReorderCategories(ctx *jxcontext.Context, parentID int, categoryIDs []int, db := dao.GetDB() if err = dao.GetEntitiesByKV(db, &cats, utils.Params2Map(model.FieldParentID, parentID), false); err == nil { catsLen := len(cats) + if !isExd { + for _, v := range cats { + if v.IsExdSpec == 1 { + catsLen-- + } + } + } if catsLen != len(categoryIDs) { return ErrInputCatsDoesntMatch } From 48f90130b680810190940388046c09c28e68fcd6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 16 Mar 2020 18:08:16 +0800 Subject: [PATCH 223/286] =?UTF-8?q?=E5=88=86=E7=B1=BB=E9=87=8D=E6=8E=92?= =?UTF-8?q?=E5=BA=8F=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 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 ff16e54e8..e3d20394e 100644 --- a/business/jxstore/cms/sku.go +++ b/business/jxstore/cms/sku.go @@ -268,7 +268,7 @@ func ReorderCategories(ctx *jxcontext.Context, parentID int, categoryIDs []int, if !isExd { for _, v := range cats { if v.IsExdSpec == 1 { - catsLen-- + catsLen-- // } } } From 3426ba5969cedd856615dc192288f5731f65ddd8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 16 Mar 2020 18:10:32 +0800 Subject: [PATCH 224/286] =?UTF-8?q?=E5=88=86=E7=B1=BB=E9=87=8D=E6=8E=92?= =?UTF-8?q?=E5=BA=8F=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 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 e3d20394e..ff16e54e8 100644 --- a/business/jxstore/cms/sku.go +++ b/business/jxstore/cms/sku.go @@ -268,7 +268,7 @@ func ReorderCategories(ctx *jxcontext.Context, parentID int, categoryIDs []int, if !isExd { for _, v := range cats { if v.IsExdSpec == 1 { - catsLen-- // + catsLen-- } } } From 57e96e0da5280c60f886a57922adf4ec5a95c848 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 17 Mar 2020 09:15:32 +0800 Subject: [PATCH 225/286] =?UTF-8?q?=E7=89=A9=E6=96=99=E8=AE=A2=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/order.go | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index 34e81703d..83245975d 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -903,7 +903,7 @@ func CancelOrder(ctx *jxcontext.Context, order *model.GoodsOrder, reason string) } } MarkArrears(db, order, orderPay) - CancelMatterOrder(db, order, reason) + err = CancelMatterOrder(db, order, reason) } else { orderPay.Status = model.PayStatusCanceled _, err2 := dao.UpdateEntity(db, orderPay) @@ -920,7 +920,7 @@ func CancelOrder(ctx *jxcontext.Context, order *model.GoodsOrder, reason string) } err = errList.GetErrListAsOne() if len(payList) == 0 { - CancelMatterOrder(db, order, "") + err = CancelMatterOrder(db, order, "") } } else { err = fmt.Errorf("当前订单状态:%s不允许取消", model.OrderStatusName[order.Status]) @@ -1278,7 +1278,7 @@ func tryToSplitMatterOrder(jxOrder *JxOrderInfo) (outOrders []*JxOrderInfo, frei ) //我的思路为把所有商品依次按重量销量从大到小排列,然后第一个包尽量分出5kg,后面分出3kg //但是我把JxSkuInfo放进list的时候,想根据一个参数GroupSign判断是否这个商品已经分出去了 - //但是在list中同一个商品似乎放进去的地址是一样的,我改了一个商品的GroupSign,所有的都变了,所以只有分出一个JxSkuInfo2去弄。。 + //但是在list中同一个商品通过以下方式放进去的地址是一样的,我改了一个商品的GroupSign,所有的都变了,所以只有分出一个JxSkuInfo2去弄。。 //要做优化的话更好 for _, v := range skus { for i := 0; i < v.Count; i++ { @@ -1302,6 +1302,7 @@ func tryToSplitMatterOrder(jxOrder *JxOrderInfo) (outOrders []*JxOrderInfo, frei } } for { + //每拿出一组就删掉list里的值 outOrders = append(outOrders, loop(weightList, jxOrder, flag)) for i := 0; i < len(weightList); { if weightList[i].GroupSign { From bd11ccb6f6aa9175ceefc70dc3535db85410fb09 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 17 Mar 2020 09:31:58 +0800 Subject: [PATCH 226/286] =?UTF-8?q?=E7=89=A9=E6=96=99=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/order.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index 83245975d..18f256732 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -1253,7 +1253,7 @@ func GetMatterOrderStatus(ctx *jxcontext.Context, vendorOrderID string) (result ) for _, vv := range getTrackMessagePlusByOrderResult.ResultData { if vv.OpeTitle == "配送员收货" { - result := regexpCnameAndCmobile.FindAllStringSubmatch(vv.OpeName, -1) + result := regexpCnameAndCmobile.FindAllStringSubmatch(vv.OpeRemark, -1) cName = result[0][1] cMobile = result[0][2] break From ac8ff5cc6cf51f392108d96f5870c352973b7655 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 17 Mar 2020 09:42:26 +0800 Subject: [PATCH 227/286] =?UTF-8?q?1000=E5=8E=BB=E6=8E=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxcallback/orderman/orderman_ext.go | 1 - 1 file changed, 1 deletion(-) diff --git a/business/jxcallback/orderman/orderman_ext.go b/business/jxcallback/orderman/orderman_ext.go index 8190d0861..2e14a7f2b 100644 --- a/business/jxcallback/orderman/orderman_ext.go +++ b/business/jxcallback/orderman/orderman_ext.go @@ -1223,6 +1223,5 @@ func GetMatterStoreOrderCount(ctx *jxcontext.Context, storeID int) (result *Orde return nil, err } orderCount.Flag = flag - orderCount.Count = 1000 return orderCount, err } From a1de7357de0e157cb1bfacbb101f68de7a27daee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 17 Mar 2020 10:01:21 +0800 Subject: [PATCH 228/286] =?UTF-8?q?=E5=BA=93=E5=AD=98=E6=9F=A5=E4=B8=8D?= =?UTF-8?q?=E5=88=B0=E7=AD=89=E4=BA=8E=E6=B2=A1=E6=9C=89=E5=BA=93=E5=AD=98?= =?UTF-8?q?=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index 285219131..2aff565fc 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -3954,10 +3954,14 @@ func RefreshMatterStock(ctx *jxcontext.Context, skuID int) (err error) { return err } var isSale = 0 - if utils.Str2Int64(result.Data[0].StockNum) > 0 { - isSale = 1 - } else { + if len(result.Data) == 0 { isSale = -1 + } else { + if utils.Str2Int64(result.Data[0].StockNum) > 0 { + isSale = 1 + } else { + isSale = -1 + } } storeSkuList, _ := dao.GetStoresSkusInfo(db, nil, []int{skuID}) for _, vv := range storeSkuList { From f1381141c55d98459dabc9615d544fd2f440855d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 17 Mar 2020 10:15:23 +0800 Subject: [PATCH 229/286] =?UTF-8?q?=E9=80=80=E5=9B=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/order.go | 45 +++++++++++++------ 1 file changed, 32 insertions(+), 13 deletions(-) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index 18f256732..0a88d5cbd 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -492,12 +492,12 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64 } var ( result *orderman.OrderCount - sum *int //申请物料的店的最近销量,以下会根据销量计算具体袋子的价格 + sum int //申请物料的店的最近销量,以下会根据销量计算具体袋子的价格 flag = false //新店袋子拆分当个参数 ) if fromStoreID != 0 { result, _ = orderman.GetMatterStoreOrderCount(nil, fromStoreID) - sum = &result.Count + sum = result.Count } for _, v := range skus { if storeSkuBind := storeSkuMap[v.SkuID]; storeSkuBind != nil { @@ -556,19 +556,20 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64 } } else { //袋子总数小于等于销量就是1分钱,只要大于销量其他就按原价 - var bagPriceCount = func(jxSku *JxSkuInfo, outJxOrder *JxOrderInfo, sum *int, count float64) { + //这个袋子规格是一份100个 + if jxSku.SkuID == 6039382 { if bagMap[jxSku.SkuID] != 0 { - if *sum > 0 { - if bagMap[jxSku.SkuID]*jxSku.Count <= *sum+int(utils.Float64TwoInt64(count)) { + if sum > 0 { + if bagMap[jxSku.SkuID]*jxSku.Count <= sum+100 { jxSku.SalePrice = 1 outJxOrder.Skus = append(outJxOrder.Skus, jxSku) outJxOrder.OrderPrice += int64(1 * jxSku.Count) } else { jxSku2 := *jxSku jxSku2.SalePrice = jxSku.SalePrice - jxSku2.Count = int(int64(jxSku.Count) - utils.Float64TwoInt64(math.Ceil(utils.Int2Float64(*sum)/count))) + jxSku2.Count = int(int64(jxSku.Count) - utils.Float64TwoInt64(math.Ceil(utils.Int2Float64(sum)/100))) jxSku.SalePrice = 1 - jxSku.Count = int(utils.Float64TwoInt64(math.Ceil(utils.Int2Float64(*sum) / count))) + jxSku.Count = int(utils.Float64TwoInt64(math.Ceil(utils.Int2Float64(sum) / 100))) outJxOrder.Skus = append(outJxOrder.Skus, jxSku) outJxOrder.Skus = append(outJxOrder.Skus, &jxSku2) outJxOrder.OrderPrice += jxSku.SalePrice * int64(jxSku.Count) @@ -578,14 +579,32 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64 outJxOrder.Skus = append(outJxOrder.Skus, jxSku) outJxOrder.OrderPrice += int64(jxSku.Count) * jxSku.SalePrice } - *sum = *sum - bagMap[jxSku.SkuID]*jxSku.Count + sum = sum - bagMap[jxSku.SkuID]*jxSku.Count } - } - //这个袋子规格是一份100个 - if jxSku.SkuID == 6039382 { - bagPriceCount(jxSku, outJxOrder, sum, 100) } else if jxSku.SkuID == 6039383 || jxSku.SkuID == 6039384 || jxSku.SkuID == 6039387 || jxSku.SkuID == 6039390 { //这些袋子是一份200个 - bagPriceCount(jxSku, outJxOrder, sum, 200) + if bagMap[jxSku.SkuID] != 0 { + if sum > 0 { + if bagMap[jxSku.SkuID]*jxSku.Count <= sum+200 { + jxSku.SalePrice = 1 + outJxOrder.Skus = append(outJxOrder.Skus, jxSku) + outJxOrder.OrderPrice += int64(1 * jxSku.Count) + } else { + jxSku2 := *jxSku + jxSku2.SalePrice = jxSku.SalePrice + jxSku2.Count = int(int64(jxSku.Count) - utils.Float64TwoInt64(math.Ceil(utils.Int2Float64(sum)/200))) + jxSku.SalePrice = 1 + jxSku.Count = int(utils.Float64TwoInt64(math.Ceil(utils.Int2Float64(sum) / 200))) + outJxOrder.Skus = append(outJxOrder.Skus, jxSku) + outJxOrder.Skus = append(outJxOrder.Skus, &jxSku2) + outJxOrder.OrderPrice += jxSku.SalePrice * int64(jxSku.Count) + outJxOrder.OrderPrice += jxSku2.SalePrice * int64(jxSku2.Count) + } + } else { + outJxOrder.Skus = append(outJxOrder.Skus, jxSku) + outJxOrder.OrderPrice += int64(jxSku.Count) * jxSku.SalePrice + } + sum = sum - bagMap[jxSku.SkuID]*jxSku.Count + } } else { outJxOrder.Skus = append(outJxOrder.Skus, jxSku) outJxOrder.OrderPrice += int64(jxSku.Count) * jxSku.SalePrice From ecd60485dbf89345fe183e7054c2906d58320a79 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 17 Mar 2020 10:21:53 +0800 Subject: [PATCH 230/286] =?UTF-8?q?=E5=B0=9D=E8=AF=95=E7=A6=81=E6=AD=A2?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E8=B0=83=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/order.go | 1 + 1 file changed, 1 insertion(+) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index 0a88d5cbd..f392d4bbd 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -846,6 +846,7 @@ func orderSolutionForWuLiao(order *model.GoodsOrder) (err error) { WaybillCreatedAt: time.Now(), StatusTime: time.Now(), WaybillFinishedAt: utils.DefaultTimeValue, + DeliveryFlag: model.OrderDeliveryFlagMaskScheduleDisabled, } dao.CreateEntity(db, waybill) } else { //如果重量超过5kg则需要进行拆单分包,商品分包规则。最后一个包不超过5kg,其他包不超过3kg From 7fb473dfc195087a9097d4cba095d7a18f6737d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 17 Mar 2020 10:55:03 +0800 Subject: [PATCH 231/286] =?UTF-8?q?=E7=89=A9=E6=96=99=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E6=96=B0=E5=BA=97=E5=A4=84=E7=90=86=E5=95=86=E5=93=81=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/order.go | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index f392d4bbd..ed5d1f253 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -536,13 +536,15 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64 if result.Count == 0 && result.Flag { //这个条件被认为是新店,袋子限量 if bagMap[jxSku.SkuID] != 0 { //如果他买了袋子,第一个袋子算1分钱,其余按原价(包括所有袋子) if !flag { + salePirce := jxSku.SalePrice + count := jxSku.Count jxSku.SalePrice = 1 jxSku.Count = 1 outJxOrder.Skus = append(outJxOrder.Skus, jxSku) - if jxSku.Count > 1 { + if count > 1 { jxSku2 := *jxSku - jxSku2.SalePrice = jxSku.SalePrice - jxSku2.Count = jxSku2.Count - 1 + jxSku2.SalePrice = salePirce + jxSku2.Count = count - 1 outJxOrder.Skus = append(outJxOrder.Skus, &jxSku2) } flag = true From de1d30cd72a1997e469fce56d9b5e6aefba58976 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 17 Mar 2020 11:14:07 +0800 Subject: [PATCH 232/286] =?UTF-8?q?=E7=89=A9=E6=96=99=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E6=96=B0=E5=BA=97=E5=95=86=E5=93=81=E6=80=BB=E4=BB=B7=E5=92=8C?= =?UTF-8?q?=E9=87=8D=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/order.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index ed5d1f253..2bdb90de2 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -541,11 +541,14 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64 jxSku.SalePrice = 1 jxSku.Count = 1 outJxOrder.Skus = append(outJxOrder.Skus, jxSku) + outJxOrder.OrderPrice += int64(jxSku.Count) * jxSku.SalePrice if count > 1 { jxSku2 := *jxSku jxSku2.SalePrice = salePirce jxSku2.Count = count - 1 outJxOrder.Skus = append(outJxOrder.Skus, &jxSku2) + outJxOrder.OrderPrice += int64(jxSku2.Count) * jxSku2.SalePrice + outJxOrder.Weight += jxSku2.Count * jxSku2.Weight } flag = true } else { From f84d9bbae2b50a7c3248160cd43d26f010f0895b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 17 Mar 2020 11:50:07 +0800 Subject: [PATCH 233/286] =?UTF-8?q?=E6=9E=9C=E5=9B=ADeclpapi=E5=8F=82?= =?UTF-8?q?=E6=95=B0=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- conf/app.conf | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/conf/app.conf b/conf/app.conf index 9a1d18337..7320f8cd4 100644 --- a/conf/app.conf +++ b/conf/app.conf @@ -280,6 +280,10 @@ dingdingCallbackURL = "http://callback-jxgy.jxc4.com/dingding/msg" getWeixinTokenURL = "http://www.jxc4.com/v2/sys/GetWXToken" getYLYTokenURL = "http://www.jxc4.com/v2/sys/GetYLYToken" +jdEclpAccessToken = "7e9c1a5fe4ac4ea48c3c572d488e60b8hnwz" +jdEclpAppKey = "0D397F05CF11C51BCDCC81744680EBC3" +jdEclpAppSecret = "f16a5e57ff4f4f428b702c40d2d4b933" + storeName = "京西果园" [test] From d96c8152c9fcd53ed50e053a48544ed52f68d276 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 17 Mar 2020 14:13:30 +0800 Subject: [PATCH 234/286] =?UTF-8?q?=E6=9E=9C=E5=9B=AD=E4=B9=9F=E9=9C=80?= =?UTF-8?q?=E8=A6=81weixinminiappid2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- conf/app.conf | 3 +++ 1 file changed, 3 insertions(+) diff --git a/conf/app.conf b/conf/app.conf index 7320f8cd4..36f29f073 100644 --- a/conf/app.conf +++ b/conf/app.conf @@ -258,6 +258,9 @@ weixinSecret = "6bbbed1443cc062c20a015a64c07a531" weixinMiniAppID = "wx2d6949f724b2541d" weixinMiniSecret = "11f3c380551c4683c149990b004d6df9" +weixinMiniAppID2 = "wx4b5930c13f8b1170" +weixinMiniSecret2 = "2a57228a716ce991a52739f0ff41111d" + wxpayNotifyURL = "http://callback-jxgy.jxc4.com/wxpay/msg/" tonglianPayAppID = "00183083" From a8125a568ff9d7552f3ab55267fdaa14c3e04f28 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 17 Mar 2020 16:45:29 +0800 Subject: [PATCH 235/286] =?UTF-8?q?=E7=89=A9=E6=96=99=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E6=8B=86=E5=8D=95=E7=BB=88=E6=9E=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/order.go | 141 +++++++----------- 1 file changed, 58 insertions(+), 83 deletions(-) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index 2bdb90de2..a51dbdb26 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -573,6 +573,7 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64 jxSku2 := *jxSku jxSku2.SalePrice = jxSku.SalePrice jxSku2.Count = int(int64(jxSku.Count) - utils.Float64TwoInt64(math.Ceil(utils.Int2Float64(sum)/100))) + outJxOrder.Weight += jxSku2.Count * jxSku2.Weight jxSku.SalePrice = 1 jxSku.Count = int(utils.Float64TwoInt64(math.Ceil(utils.Int2Float64(sum) / 100))) outJxOrder.Skus = append(outJxOrder.Skus, jxSku) @@ -597,6 +598,7 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64 jxSku2 := *jxSku jxSku2.SalePrice = jxSku.SalePrice jxSku2.Count = int(int64(jxSku.Count) - utils.Float64TwoInt64(math.Ceil(utils.Int2Float64(sum)/200))) + outJxOrder.Weight += jxSku2.Count * jxSku2.Weight jxSku.SalePrice = 1 jxSku.Count = int(utils.Float64TwoInt64(math.Ceil(utils.Int2Float64(sum) / 200))) outJxOrder.Skus = append(outJxOrder.Skus, jxSku) @@ -643,21 +645,12 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64 //要求配送人姓名填门店名 deliveryAddress.ConsigneeName = storeDetail2.Name outJxOrder.FromStoreID = fromStoreID - ///物料订单的配送费计算,注释的是分包之后计算配送费,但后来还是直接算不分包之前的总配送费 ///规则为: 配送费用规则。起价5元(含2kg),之后每kg+2元,不足1kg按1kg计算。 - // if outJxOrder.Weight > 5000 { - // _, freightPrice, err := tryToSplitMatterOrder(outJxOrder) - // if err != nil { - // return nil, nil, err - // } - // outJxOrder.FreightPrice = int64(freightPrice) - // } else { if outJxOrder.Weight <= 2000 { outJxOrder.FreightPrice = 500 } else { outJxOrder.FreightPrice = utils.Float64TwoInt64(500 + math.Ceil((utils.Int2Float64(outJxOrder.Weight)-2000)/1000)*200) } - // } } else { if outJxOrder.FreightPrice > specialFreightPrice { outJxOrder.FreightPrice = specialFreightPrice @@ -857,8 +850,10 @@ func orderSolutionForWuLiao(order *model.GoodsOrder) (err error) { } else { //如果重量超过5kg则需要进行拆单分包,商品分包规则。最后一个包不超过5kg,其他包不超过3kg jxOrder := &JxOrderInfo{} jxOrder.StoreID = order.StoreID + weight := 0 var skus []*JxSkuInfo for _, v := range orderSkus { + weight += v.Weight * v.Count sku := &JxSkuInfo{} sku.SkuID = v.SkuID sku.SalePrice = v.SalePrice @@ -868,6 +863,7 @@ func orderSolutionForWuLiao(order *model.GoodsOrder) (err error) { skus = append(skus, sku) } jxOrder.Skus = skus + jxOrder.Weight = weight outOrders, _, _ := tryToSplitMatterOrder(jxOrder) //以下为仿照CreateOrder,改了一些参数 for k, v := range outOrders { @@ -1299,9 +1295,8 @@ func tryToSplitMatterOrder(jxOrder *JxOrderInfo) (outOrders []*JxOrderInfo, frei var ( skus = jxOrder.Skus weightList []*JxSkuInfo2 - flag = true ) - //我的思路为把所有商品依次按重量销量从大到小排列,然后第一个包尽量分出5kg,后面分出3kg + //我的思路为把所有商品依次按重量销量从大到小排列,然后第一个包尽量分出3kg,后面分出5kg //但是我把JxSkuInfo放进list的时候,想根据一个参数GroupSign判断是否这个商品已经分出去了 //但是在list中同一个商品通过以下方式放进去的地址是一样的,我改了一个商品的GroupSign,所有的都变了,所以只有分出一个JxSkuInfo2去弄。。 //要做优化的话更好 @@ -1326,9 +1321,10 @@ func tryToSplitMatterOrder(jxOrder *JxOrderInfo) (outOrders []*JxOrderInfo, frei } } } + weight := jxOrder.Weight for { //每拿出一组就删掉list里的值 - outOrders = append(outOrders, loop(weightList, jxOrder, flag)) + outOrders = append(outOrders, loop2(weightList, jxOrder.StoreID, &weight)) for i := 0; i < len(weightList); { if weightList[i].GroupSign { var weightList3 []*JxSkuInfo2 @@ -1338,84 +1334,13 @@ func tryToSplitMatterOrder(jxOrder *JxOrderInfo) (outOrders []*JxOrderInfo, frei i++ } } - flag = false if len(weightList) == 0 { break } } - // for _, v := range outOrders { - // if v.Weight <= 2000 { - // freightPrice += 500 - // } else { - // freightPrice += int(utils.Float64TwoInt64(500 + math.Ceil((utils.Int2Float64(v.Weight)-2000)/1000)*200)) - // } - // } return outOrders, freightPrice, err } -//商品分包规则。最后一个包不超过5kg,其他包不超过3kg -// 举例1:5.1kg,分为 2.5kg,2.6kg,确保每个包不超过3kg,最后一个包不超过5kg -// 举例2:4kg,分为4kg -// 举例3:10kg,分为 3kg,3kg,4kg -// 举例4:8.1kg,分为 3kg,3kg,2.1kg ; 不能分为3kg,5.1kg -//sum5表示5kg的计算 -//sum3表示3kg的计算 -//处理过程都是一样的,没单独拿一个函数出来了 -func loop(weightList []*JxSkuInfo2, jxOrder *JxOrderInfo, flag bool) (outOrder *JxOrderInfo) { - outOrder = &JxOrderInfo{} - outOrder.StoreID = jxOrder.StoreID - sum5 := 0 - sum3 := 0 - for i := 0; i < len(weightList); i++ { - if flag { - if weightList[i].Weight+sum5 <= 5000 { - sum5 += weightList[i].Weight - weightList[i].GroupSign = true - outOrder.Weight += weightList[i].Weight - if len(outOrder.Skus) > 0 { - for _, v := range outOrder.Skus { - if v.SkuID == weightList[i].SkuID { - v.Count++ - } else { - outOrder.Skus = append(outOrder.Skus, jxOrderChange(weightList[i])) - } - } - } else { - outOrder.Skus = append(outOrder.Skus, jxOrderChange(weightList[i])) - } - } else { - if sum5 >= 5000 { - break - } - continue - } - } else { - if weightList[i].Weight+sum3 <= 3000 { - sum3 += weightList[i].Weight - weightList[i].GroupSign = true - outOrder.Weight += weightList[i].Weight - if len(outOrder.Skus) > 0 { - for _, v := range outOrder.Skus { - if v.SkuID == weightList[i].SkuID { - v.Count++ - } else { - outOrder.Skus = append(outOrder.Skus, jxOrderChange(weightList[i])) - } - } - } else { - outOrder.Skus = append(outOrder.Skus, jxOrderChange(weightList[i])) - } - } else { - if sum3 >= 3000 { - break - } - continue - } - } - } - return outOrder -} - func jxOrderChange(sku2 *JxSkuInfo2) *JxSkuInfo { sku := &JxSkuInfo{} sku.Count = 1 @@ -1426,3 +1351,53 @@ func jxOrderChange(sku2 *JxSkuInfo2) *JxSkuInfo { sku.Weight = sku2.Weight return sku } + +//商品分包规则2。最后一个包不超过5kg,其他包不超过3kg +// 举例1:5.1kg,分为 2.5kg,2.6kg,确保每个包不超过3kg,最后一个包不超过5kg +// 举例2:4kg,分为4kg +// 举例3:10kg,分为 3kg,3kg,4kg +// 举例4:8.1kg,分为 3kg,3kg,2.1kg ; 不能分为3kg,5.1kg +//sum3表示3kg的计算 +func loop2(weightList []*JxSkuInfo2, storeID int, weight *int) (outOrder *JxOrderInfo) { + outOrder = &JxOrderInfo{} + outOrder.StoreID = storeID + sum3 := 0 + if *weight <= 5000 { + for i := 0; i < len(weightList); i++ { + buildOutOrderSkus(weightList[i], outOrder) + } + } else { + for i := 0; i < len(weightList); i++ { + if weightList[i].Weight+sum3 <= 3000 { + sum3 += weightList[i].Weight + *weight -= weightList[i].Weight + buildOutOrderSkus(weightList[i], outOrder) + } else { + if sum3 >= 3000 { + break + } + continue + } + } + } + return outOrder +} + +func buildOutOrderSkus(weightp *JxSkuInfo2, outOrder *JxOrderInfo) { + weightp.GroupSign = true + outOrder.Weight += weightp.Weight + if len(outOrder.Skus) > 0 { + var flag = false + for _, v := range outOrder.Skus { + if v.SkuID == weightp.SkuID { + v.Count++ + flag = true + } + } + if !flag { + outOrder.Skus = append(outOrder.Skus, jxOrderChange(weightp)) + } + } else { + outOrder.Skus = append(outOrder.Skus, jxOrderChange(weightp)) + } +} From 679a9919fa4b791ec1cf92754dee5a5c4d5748eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 17 Mar 2020 16:55:07 +0800 Subject: [PATCH 236/286] =?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/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 2e14a7f2b..8190d0861 100644 --- a/business/jxcallback/orderman/orderman_ext.go +++ b/business/jxcallback/orderman/orderman_ext.go @@ -1223,5 +1223,6 @@ func GetMatterStoreOrderCount(ctx *jxcontext.Context, storeID int) (result *Orde return nil, err } orderCount.Flag = flag + orderCount.Count = 1000 return orderCount, err } From 3f5fd127e3da7693aa57d0d7e656dc3b4010786b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Wed, 18 Mar 2020 09:42:47 +0800 Subject: [PATCH 237/286] =?UTF-8?q?=E7=89=A9=E6=96=99=E4=B8=BB=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E5=8F=96=E6=B6=88=E6=8A=A5=E9=94=99=E5=AD=90=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E4=B8=8D=E5=8F=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/order.go | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index a51dbdb26..ac8ee993f 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -923,8 +923,11 @@ func CancelOrder(ctx *jxcontext.Context, order *model.GoodsOrder, reason string) errList.AddErr(err) } } - MarkArrears(db, order, orderPay) - err = CancelMatterOrder(db, order, reason) + if err == nil{ + MarkArrears(db, order, orderPay) + err2 := CancelMatterOrder(db, order, reason) + errList.AddErr(err2) + } } else { orderPay.Status = model.PayStatusCanceled _, err2 := dao.UpdateEntity(db, orderPay) From fd4455ea956c89b9a3ff30508d7d7fd3f5df5ff7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Wed, 18 Mar 2020 09:52:28 +0800 Subject: [PATCH 238/286] =?UTF-8?q?=E6=B5=8B=E8=AF=95=E9=94=80=E9=87=8F?= =?UTF-8?q?=E6=9A=82=E6=97=B6=E5=85=B3=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxcallback/orderman/orderman_ext.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/jxcallback/orderman/orderman_ext.go b/business/jxcallback/orderman/orderman_ext.go index 8190d0861..a9ca5ffb1 100644 --- a/business/jxcallback/orderman/orderman_ext.go +++ b/business/jxcallback/orderman/orderman_ext.go @@ -1223,6 +1223,6 @@ func GetMatterStoreOrderCount(ctx *jxcontext.Context, storeID int) (result *Orde return nil, err } orderCount.Flag = flag - orderCount.Count = 1000 + // orderCount.Count = 1000 return orderCount, err } From fbb059b0718cc70d09443dd3cbb6fa1f6ccc78c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Wed, 18 Mar 2020 14:05:22 +0800 Subject: [PATCH 239/286] =?UTF-8?q?=E7=89=A9=E6=96=99=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E8=B0=83=E5=BA=A6=E9=97=AE=E9=A2=98=EF=BC=8C=E5=88=B7=E6=96=B0?= =?UTF-8?q?=E5=BA=93=E5=AD=98=E6=9B=B4=E6=94=B9api?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 12 ++++++------ business/partner/purchase/jx/localjx/order.go | 6 ++++-- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index 2aff565fc..68516ef72 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -3949,15 +3949,15 @@ func RefreshMatterStock(ctx *jxcontext.Context, skuID int) (err error) { if err != nil || len(skus) == 0 { return err } - result, err := api.JdEclpAPI.SearchShopStock(skus[0].EclpID) + result, err := api.JdEclpAPI.QueryStock(skus[0].EclpID) if err != nil || result == nil { return err } var isSale = 0 - if len(result.Data) == 0 { + if len(result) == 0 { isSale = -1 } else { - if utils.Str2Int64(result.Data[0].StockNum) > 0 { + if result[0].UsableNum > 0 { isSale = 1 } else { isSale = -1 @@ -3979,17 +3979,17 @@ func RefreshMatterStock(ctx *jxcontext.Context, skuID int) (err error) { skuBindInfos = append(skuBindInfos, storeSkuBind) } } else { - result, err := api.JdEclpAPI.SearchShopStock("") + result, err := api.JdEclpAPI.QueryStock("") if err != nil { return err } - for _, v := range result.Data { + for _, v := range result { skus, err := dao.GetSkus(db, nil, nil, nil, nil, []string{v.GoodsNo}) if err != nil || len(skus) == 0 { continue } var isSale = 0 - if utils.Str2Int64(v.StockNum) > 0 { + if v.UsableNum > 0 { isSale = 1 } else { isSale = -1 diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index ac8ee993f..5c41baeaf 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -762,6 +762,8 @@ func jxOrder2GoodsOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, deliveryAd order.FromStoreID = jxOrder.FromStoreID order.WaybillVendorID = model.VendorIDJDWL order.DeliveryFlag = model.OrderDeliveryFlagMaskScheduleDisabled + order.DeliveryType = model.OrderDeliveryTypeSelfTake + order.Flag = 1 } return order, err } @@ -923,11 +925,11 @@ func CancelOrder(ctx *jxcontext.Context, order *model.GoodsOrder, reason string) errList.AddErr(err) } } - if err == nil{ + if err == nil { MarkArrears(db, order, orderPay) err2 := CancelMatterOrder(db, order, reason) errList.AddErr(err2) - } + } } else { orderPay.Status = model.PayStatusCanceled _, err2 := dao.UpdateEntity(db, orderPay) From 2750a1085585f74f9c44f1e8602af96afd74894e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Wed, 18 Mar 2020 14:14:17 +0800 Subject: [PATCH 240/286] =?UTF-8?q?=E7=89=A9=E6=96=99=E5=BA=93=E5=AD=98?= =?UTF-8?q?=E4=B8=8D=E8=B6=B3=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/order.go | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index 5c41baeaf..e3d669d26 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -486,6 +486,16 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64 if fromStoreID != 0 { if v.EclpID == "" { return nil, nil, fmt.Errorf("此商品物料编码为空,请联系管理员!skuID:[%v]", v.ID) + } else { + result, err := api.JdEclpAPI.QueryStock(v.EclpID) + if err != nil { + return nil, nil, err + } + if len(result) > 0 { + if result[0].UsableNum == 0 { + return nil, nil, fmt.Errorf("此商品库存不足无法购买,请联系管理员!skuID:[%v]", v.ID) + } + } } } skuMap[v.ID] = v From 480d5b82682c7fe0ebdcb643b2aaa0c090859f36 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Wed, 18 Mar 2020 14:28:54 +0800 Subject: [PATCH 241/286] =?UTF-8?q?=E5=A4=84=E7=90=86=E4=B8=8B=E5=8D=95?= =?UTF-8?q?=E6=97=B6=E5=95=86=E5=93=81=E7=8A=B6=E6=80=81=E5=8F=98=E5=8C=96?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/order.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index e3d669d26..167d4aeef 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -473,6 +473,9 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64 storeSkuMap := make(map[int]*dao.StoreSkuExt) for _, v1 := range storeSkuInfo.SkuNames { for _, v2 := range v1.Skus { + if v2.StoreSkuStatus != model.SkuStatusNormal { + return nil, nil, fmt.Errorf("此商品已下架,请联系管理员!skuID:[%v]", v2.SkuID) + } storeSkuMap[v2.SkuID] = v2 } } From 239a44afdcd79d0a967ee6eacdc01a47d730c42a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Wed, 18 Mar 2020 14:58:25 +0800 Subject: [PATCH 242/286] =?UTF-8?q?=E7=89=A9=E6=96=99=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E5=BA=93=E5=AD=98=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 2 +- business/model/dao/store_sku.go | 2 ++ business/partner/purchase/jx/localjx/order.go | 16 ++++++---------- 3 files changed, 9 insertions(+), 11 deletions(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index 68516ef72..38030778b 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -523,7 +523,7 @@ func GetStoresSkusNew(ctx *jxcontext.Context, storeIDs, skuIDs []int, isFocus, i t3.id store_id, t3.name store_name, t3.pay_percentage, t1.*, t2.name_id, t2.id sku_id, t2.spec_quality sku_spec_quality, t2.spec_unit sku_spec_unit, t2.weight, t2m.vendor_thing_id sku_jd_id, - t2.comment, t2.category_id sku_category_id, t2.status sku_status, + t2.comment, t2.category_id sku_category_id, t2.status sku_status, t2.eclp_id, t4.created_at bind_created_at, t4.updated_at bind_updated_at, t4.last_operator bind_last_operator, t4.deleted_at bind_deleted_at, t4.sub_store_id, t4.price bind_price, IF(t4.unit_price IS NOT NULL, t4.unit_price, t1.price) unit_price, t4.status store_sku_status, t4.auto_sale_at, t4.ebai_id, t4.mtwm_id, diff --git a/business/model/dao/store_sku.go b/business/model/dao/store_sku.go index 4435ad029..2f1bf76e9 100644 --- a/business/model/dao/store_sku.go +++ b/business/model/dao/store_sku.go @@ -233,6 +233,8 @@ type StoreSkuExt struct { EarningPrice int `json:"earningPrice"` EarningActID int `orm:"column(earning_act_id)" json:"earningActID"` + + EclpID string `orm:"column(eclp_id)" json:"eclpID"` } type SkuNameAndPlace struct { diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index 167d4aeef..4b2a87724 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -489,16 +489,6 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64 if fromStoreID != 0 { if v.EclpID == "" { return nil, nil, fmt.Errorf("此商品物料编码为空,请联系管理员!skuID:[%v]", v.ID) - } else { - result, err := api.JdEclpAPI.QueryStock(v.EclpID) - if err != nil { - return nil, nil, err - } - if len(result) > 0 { - if result[0].UsableNum == 0 { - return nil, nil, fmt.Errorf("此商品库存不足无法购买,请联系管理员!skuID:[%v]", v.ID) - } - } } } skuMap[v.ID] = v @@ -514,6 +504,12 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64 } for _, v := range skus { if storeSkuBind := storeSkuMap[v.SkuID]; storeSkuBind != nil { + result2, _ := api.JdEclpAPI.QueryStock(storeSkuBind.EclpID) + if len(result2) > 0 { + if result2[0].UsableNum < v.Count { + return nil, nil, fmt.Errorf("此商品库存不足无法购买,请联系管理员!skuID:[%v]", v.SkuID) + } + } if sku := skuMap[v.SkuID]; sku != nil { jxSku := &JxSkuInfo{ SkuID: v.SkuID, From 818cf48d5dbfe3be702f8f1a6da0eb6b008b3a0f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Wed, 18 Mar 2020 17:21:21 +0800 Subject: [PATCH 243/286] =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E5=B9=B3=E5=8F=B0?= =?UTF-8?q?=E5=8F=8D=E7=AE=97=E9=87=8D=E9=87=8F=E9=97=AE=E9=A2=98=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 34 +++++++++++++++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index 38030778b..83a26b283 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -3611,6 +3611,8 @@ func RefreshJxPriceByVendor(ctx *jxcontext.Context, jdStoreSkus []*JdStoreSkus, pricePercentagePack []*model.PricePercentageItem cats []*model.ThingMap skus []*model.SkuAndName + vendorPrice int + specQuality float64 ) sql := ` SELECT t1.* @@ -3637,7 +3639,20 @@ func RefreshJxPriceByVendor(ctx *jxcontext.Context, jdStoreSkus []*JdStoreSkus, return result, fmt.Errorf("没有找到该京东门店对应的京西门店!,京东门店ID :[%v]", v.JdStoreID) } err = jxutils.Strings2Objs(store.PricePercentagePackStr, &pricePercentagePack) - jxPrice := jxutils.CaculateJxPriceByPricePack(pricePercentagePack, 0, v.Price) + if skus[0].Unit == model.SpecialUnit { + if skus[0].SpecUnit == model.SpecUnitNames[1] || skus[0].SpecUnit == model.SpecUnitNames[2] { + specQuality = float64(skus[0].SpecQuality) * 1000 + } else { + specQuality = float64(skus[0].SpecQuality) + } + vendorPrice = int(utils.Float64TwoInt64(specQuality / utils.Int2Float64(model.SpecialSpecQuality) * utils.Int2Float64(v.Price))) + } else { + vendorPrice = v.Price + } + jxPrice := jxutils.CaculateJxPriceByPricePack(pricePercentagePack, 0, vendorPrice) + if skus[0].Unit == model.SpecialUnit { + jxPrice = jxPrice * int(utils.Float64TwoInt64(utils.Int2Float64(model.SpecialSpecQuality)/specQuality)) + } jdMap[store.ID] = append(jdMap[store.ID], &JdStoreSkus{ JdSkuID: skus[0].NameID, Price: jxPrice, @@ -3684,6 +3699,8 @@ func RefreshJxPriceByVendor(ctx *jxcontext.Context, jdStoreSkus []*JdStoreSkus, for _, v := range jdStoreSkus { var ( pricePercentagePack []*model.PricePercentageItem + vendorPrice int + specQuality float64 ) skus, _ := dao.GetSkus(db, []int{v.JdSkuID}, nil, nil, nil, nil) if len(skus) == 0 { @@ -3691,7 +3708,20 @@ func RefreshJxPriceByVendor(ctx *jxcontext.Context, jdStoreSkus []*JdStoreSkus, } store, _ := dao.GetStoreDetail(db, v.JdStoreID, vendorID) err = jxutils.Strings2Objs(store.PricePercentagePackStr, &pricePercentagePack) - jxPrice := jxutils.CaculateJxPriceByPricePack(pricePercentagePack, 0, v.Price) + if skus[0].Unit == model.SpecialUnit { + if skus[0].SpecUnit == model.SpecUnitNames[1] || skus[0].SpecUnit == model.SpecUnitNames[2] { + specQuality = float64(skus[0].SpecQuality) * 1000 + } else { + specQuality = float64(skus[0].SpecQuality) + } + vendorPrice = int(utils.Float64TwoInt64(specQuality / utils.Int2Float64(model.SpecialSpecQuality) * utils.Int2Float64(v.Price))) + } else { + vendorPrice = v.Price + } + jxPrice := jxutils.CaculateJxPriceByPricePack(pricePercentagePack, 0, vendorPrice) + if skus[0].Unit == model.SpecialUnit { + jxPrice = jxPrice * int(utils.Float64TwoInt64(utils.Int2Float64(model.SpecialSpecQuality)/specQuality)) + } jdMap[v.JdStoreID] = append(jdMap[v.JdStoreID], &JdStoreSkus{ JdSkuID: skus[0].NameID, Price: jxPrice, From b4020318604394c840aadbd4279e7f646490d6c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Thu, 19 Mar 2020 09:55:59 +0800 Subject: [PATCH 244/286] =?UTF-8?q?=E5=8F=8D=E7=AE=97=E4=BA=AC=E8=A5=BF?= =?UTF-8?q?=E4=BB=B7bug=EF=BC=8C=E9=93=B6=E8=B1=B9=E5=B9=B3=E5=8F=B0?= =?UTF-8?q?=EF=BC=8C=E6=B2=A1=E7=8E=A9=E5=88=B7=E6=96=B0=E7=89=A9=E6=96=99?= =?UTF-8?q?=E8=AE=A2=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 2 + business/model/api_config.go | 3 + business/partner/purchase/jx/localjx/order.go | 58 +++++++++++++++++++ conf/app.conf | 9 +++ globals/api/api.go | 10 ++++ 5 files changed, 82 insertions(+) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index 83a26b283..5f23772b6 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -3649,10 +3649,12 @@ func RefreshJxPriceByVendor(ctx *jxcontext.Context, jdStoreSkus []*JdStoreSkus, } else { vendorPrice = v.Price } + fmt.Println("RefreshJxPriceByVendor1", vendorPrice) jxPrice := jxutils.CaculateJxPriceByPricePack(pricePercentagePack, 0, vendorPrice) if skus[0].Unit == model.SpecialUnit { jxPrice = jxPrice * int(utils.Float64TwoInt64(utils.Int2Float64(model.SpecialSpecQuality)/specQuality)) } + fmt.Println("RefreshJxPriceByVendor2", jxPrice) jdMap[store.ID] = append(jdMap[store.ID], &JdStoreSkus{ JdSkuID: skus[0].NameID, Price: jxPrice, diff --git a/business/model/api_config.go b/business/model/api_config.go index 585369c0f..7eaca8751 100644 --- a/business/model/api_config.go +++ b/business/model/api_config.go @@ -14,6 +14,7 @@ const ( VendorIDMTWM = 1 VendorIDELM = 2 VendorIDEBAI = 3 + VendorIDYB = 4 //银豹 VendorIDWSC = 11 // 微盟微商城 VendorIDPurchaseEnd = 11 VendorIDJX = 9 // 这是一个假的京西VendorID @@ -67,6 +68,7 @@ var ( VendorIDELM: "Elm", VendorIDEBAI: "Ebai", VendorIDWSC: "Wsc", + VendorIDYB: "YinBao", VendorIDJX: "Jx", VendorIDDada: "Dada", @@ -92,6 +94,7 @@ var ( VendorIDMTWM: "美团外卖", VendorIDELM: "饿了么", VendorIDEBAI: "饿百新零售", + VendorIDYB: "银豹", VendorIDWSC: "微盟微商城", VendorIDJX: "京西商城", diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index 4b2a87724..3f9e0976d 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -1226,6 +1226,64 @@ func GetHalfHoursList() (strs []string) { return strs } +func RefreshAllMatterOrderStatus() (err error) { + var ( + db = dao.GetDB() + goodsList []*model.GoodsOrder + realTime time.Time + ) + realTime = time.Now().AddDate(0, 0, -3) + sql := ` + SELECT * FROM goods_order WHERE store_id = 666666 AND order_created_at >= ? AND status <> ? AND vendor_id = ? AND eclp_out_id = '' AND LENGTH(vendor_order_id) = 14 + ` + sqlParams := []interface{}{realTime, model.OrderStatusFinished, model.VendorIDJX} + err = dao.GetRows(db, &goodsList, sql, sqlParams) + for _, v := range goodsList { + var ( + goodsList2 []*model.GoodsOrder + finishedCount int + ) + sql2 := "SELECT * FROM goods_order WHERE vendor_order_id LIKE ? OR vendor_order_id LIKE ? AND vendor_id = ? AND eclp_out_id <> '' AND LENGTH(vendor_order_id) = 16" + sqlParams2 := []interface{}{v.VendorOrderID + "0%", v.VendorOrderID + "1%", model.VendorIDJX} + err = dao.GetRows(db, &goodsList2, sql2, sqlParams2) + for _, vv := range goodsList2 { + if vv.Status != model.OrderStatusFinished { + queryOrderStatus, _ := api.JdEclpAPI.QueryOrderStatus(vv.EclpOutID) + if len(queryOrderStatus.OrderStatusList) > 0 { + if queryOrderStatus.OrderStatusList[len(queryOrderStatus.OrderStatusList)-1].SoStatusCode == jdeclpapi.SoStatusCode10034 { + dao.Begin(db) + defer func() { + if r := recover(); r != nil { + dao.Rollback(db) + panic(r) + } + }() + vv.Status = model.OrderStatusFinished + dao.UpdateEntity(db, vv, "Status") + finishedCount++ + dao.Commit(db) + } + } + } else { + finishedCount++ + } + } + if finishedCount == len(goodsList2) { + dao.Begin(db) + defer func() { + if r := recover(); r != nil { + dao.Rollback(db) + panic(r) + } + }() + v.Status = model.OrderStatusFinished + dao.UpdateEntity(db, v, "Status") + dao.Commit(db) + } + } + return err +} + func GetMatterOrderStatus(ctx *jxcontext.Context, vendorOrderID string) (result []*MatterOrderStatus, err error) { var ( db = dao.GetDB() diff --git a/conf/app.conf b/conf/app.conf index 36f29f073..711141e95 100644 --- a/conf/app.conf +++ b/conf/app.conf @@ -218,6 +218,9 @@ dingdingSecret = "LWrZAFeqUfuVv7n_tc8vPpCAx6PT4CwManx2XCVhJOqGsx2L5XCDuX1sAN_Jtv dingdingCallbackURL = "http://callback.jxc4.com/dingding/msg" +yinbaoAppID = "18C0E0867E467DBC26EFF5E957B02EC4" +yinbaoAppKey = "682628966212343269" + [jxgy] httpport = 8088 EnableDocs = false @@ -287,6 +290,9 @@ jdEclpAccessToken = "7e9c1a5fe4ac4ea48c3c572d488e60b8hnwz" jdEclpAppKey = "0D397F05CF11C51BCDCC81744680EBC3" jdEclpAppSecret = "f16a5e57ff4f4f428b702c40d2d4b933" +yinbaoAppID = "18C0E0867E467DBC26EFF5E957B02EC4" +yinbaoAppKey = "682628966212343269" + storeName = "京西果园" [test] @@ -404,3 +410,6 @@ getWeixin2TokenURL = "http://www.jxc4.com/v2/sys/GetWX2Token" getWeimobTokenURL = "http://www.jxc4.com/v2/sys/GetWeimobToken" dbConnectStr = "root:WebServer@1@tcp(127.0.0.1:3306)/jxd_dev_0?charset=utf8mb4&loc=Local&parseTime=true" + +yinbaoAppID = "18C0E0867E467DBC26EFF5E957B02EC4" +yinbaoAppKey = "682628966212343269" \ No newline at end of file diff --git a/globals/api/api.go b/globals/api/api.go index 1e1fa6cbd..7652e29e3 100644 --- a/globals/api/api.go +++ b/globals/api/api.go @@ -3,6 +3,8 @@ package api import ( "time" + "git.rosy.net.cn/baseapi/platformapi/yinbaoapi" + "git.rosy.net.cn/baseapi/platformapi/jdeclpapi" "git.rosy.net.cn/baseapi/platformapi/tonglianpayapi" @@ -58,6 +60,8 @@ var ( WxpayAPI *wxpayapi.API // 微信支付API TLpayAPI *tonglianpayapi.API //通联收银宝api + YinBaoAPI *yinbaoapi.API //银豹平台api + WeixinPageAPI *weixinapi.API // 用户微信扫码登录 AliPayAPI *alipayapi.API @@ -156,6 +160,12 @@ func Init() { Ebai2API = nil } + if !beego.AppConfig.DefaultBool("disableYb", false) { + YinBaoAPI = yinbaoapi.New(beego.AppConfig.String("yinbaoAppKey"), beego.AppConfig.String("yinbaoAppID")) + } else { + YinBaoAPI = nil + } + if !beego.AppConfig.DefaultBool("disableMtps", false) { MtpsAPI = mtpsapi.New(beego.AppConfig.String("mtpsAppKey"), beego.AppConfig.String("mtpsSecret")) // if mtpsStoreToken := beego.AppConfig.DefaultString("mtpsStoreToken", ""); mtpsStoreToken != "" { From cc5eb1f8aa3df3457dd5b953ac930f6a89c1cdeb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Thu, 19 Mar 2020 10:00:30 +0800 Subject: [PATCH 245/286] =?UTF-8?q?=E5=8F=8D=E7=AE=97=E4=BA=AC=E8=A5=BF?= =?UTF-8?q?=E4=BB=B7=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 3 ++- business/jxutils/jxutils_cms.go | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index 5f23772b6..d34ef507d 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -3651,10 +3651,11 @@ func RefreshJxPriceByVendor(ctx *jxcontext.Context, jdStoreSkus []*JdStoreSkus, } fmt.Println("RefreshJxPriceByVendor1", vendorPrice) jxPrice := jxutils.CaculateJxPriceByPricePack(pricePercentagePack, 0, vendorPrice) + fmt.Println("RefreshJxPriceByVendor2", jxPrice) if skus[0].Unit == model.SpecialUnit { jxPrice = jxPrice * int(utils.Float64TwoInt64(utils.Int2Float64(model.SpecialSpecQuality)/specQuality)) } - fmt.Println("RefreshJxPriceByVendor2", jxPrice) + fmt.Println("RefreshJxPriceByVendor3", jxPrice) jdMap[store.ID] = append(jdMap[store.ID], &JdStoreSkus{ JdSkuID: skus[0].NameID, Price: jxPrice, diff --git a/business/jxutils/jxutils_cms.go b/business/jxutils/jxutils_cms.go index ebf749df0..fc4b1b14e 100644 --- a/business/jxutils/jxutils_cms.go +++ b/business/jxutils/jxutils_cms.go @@ -342,6 +342,7 @@ func CaculatePriceByPricePack(l model.PricePercentagePack, defPricePercentage, p func CaculateJxPriceByPricePack(l model.PricePercentagePack, defPricePercentage, vendorPrice int) (jxPrice int) { pricePercentage, priceAdd := GetPricePercentageByVendorPrice(l, vendorPrice, defPricePercentage) + fmt.Println("RefreshJxPriceByVendor4", pricePercentage, priceAdd) jxPrice = CaculateSkuPriceFromVendor(vendorPrice, pricePercentage, priceAdd) return jxPrice } From 4452a76e30a78dd32b940f16791e728b6ae36eb1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Thu, 19 Mar 2020 10:10:06 +0800 Subject: [PATCH 246/286] =?UTF-8?q?=E5=8F=8D=E7=AE=97=E4=BA=AC=E8=A5=BF?= =?UTF-8?q?=E4=BB=B7=E7=BB=88=E6=9E=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 5 +---- business/jxutils/jxutils_cms.go | 1 - 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index d34ef507d..e9fddb699 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -3649,13 +3649,10 @@ func RefreshJxPriceByVendor(ctx *jxcontext.Context, jdStoreSkus []*JdStoreSkus, } else { vendorPrice = v.Price } - fmt.Println("RefreshJxPriceByVendor1", vendorPrice) jxPrice := jxutils.CaculateJxPriceByPricePack(pricePercentagePack, 0, vendorPrice) - fmt.Println("RefreshJxPriceByVendor2", jxPrice) if skus[0].Unit == model.SpecialUnit { - jxPrice = jxPrice * int(utils.Float64TwoInt64(utils.Int2Float64(model.SpecialSpecQuality)/specQuality)) + jxPrice = int(utils.Float64TwoInt64(utils.Int2Float64(jxPrice) * utils.Int2Float64(model.SpecialSpecQuality) / specQuality)) } - fmt.Println("RefreshJxPriceByVendor3", jxPrice) jdMap[store.ID] = append(jdMap[store.ID], &JdStoreSkus{ JdSkuID: skus[0].NameID, Price: jxPrice, diff --git a/business/jxutils/jxutils_cms.go b/business/jxutils/jxutils_cms.go index fc4b1b14e..ebf749df0 100644 --- a/business/jxutils/jxutils_cms.go +++ b/business/jxutils/jxutils_cms.go @@ -342,7 +342,6 @@ func CaculatePriceByPricePack(l model.PricePercentagePack, defPricePercentage, p func CaculateJxPriceByPricePack(l model.PricePercentagePack, defPricePercentage, vendorPrice int) (jxPrice int) { pricePercentage, priceAdd := GetPricePercentageByVendorPrice(l, vendorPrice, defPricePercentage) - fmt.Println("RefreshJxPriceByVendor4", pricePercentage, priceAdd) jxPrice = CaculateSkuPriceFromVendor(vendorPrice, pricePercentage, priceAdd) return jxPrice } From 43a45df6febabdf51a5ac976519d90e89612043c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Thu, 19 Mar 2020 10:11:49 +0800 Subject: [PATCH 247/286] =?UTF-8?q?=E5=8F=8D=E7=AE=97=E4=BA=AC=E8=A5=BF?= =?UTF-8?q?=E4=BB=B7=E7=BB=88=E6=9E=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index e9fddb699..91f84e4aa 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -3720,7 +3720,7 @@ func RefreshJxPriceByVendor(ctx *jxcontext.Context, jdStoreSkus []*JdStoreSkus, } jxPrice := jxutils.CaculateJxPriceByPricePack(pricePercentagePack, 0, vendorPrice) if skus[0].Unit == model.SpecialUnit { - jxPrice = jxPrice * int(utils.Float64TwoInt64(utils.Int2Float64(model.SpecialSpecQuality)/specQuality)) + jxPrice = int(utils.Float64TwoInt64(utils.Int2Float64(jxPrice) * utils.Int2Float64(model.SpecialSpecQuality) / specQuality)) } jdMap[v.JdStoreID] = append(jdMap[v.JdStoreID], &JdStoreSkus{ JdSkuID: skus[0].NameID, From bdef8c5bb251d2e5ffc0538415e307faa2abfcde Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Thu, 19 Mar 2020 11:29:49 +0800 Subject: [PATCH 248/286] =?UTF-8?q?=E7=89=A9=E6=96=99=E8=BF=90=E5=8D=95?= =?UTF-8?q?=E9=85=8D=E9=80=81=E5=91=98=E6=9B=B4=E6=96=B0=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/misc/misc.go | 2 +- business/partner/purchase/jx/localjx/order.go | 9 ++++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/business/jxstore/misc/misc.go b/business/jxstore/misc/misc.go index 959eedd11..14e2ad460 100644 --- a/business/jxstore/misc/misc.go +++ b/business/jxstore/misc/misc.go @@ -321,7 +321,7 @@ func doDailyWork() { cms.CurVendorSync.SyncStore2(jxcontext.AdminCtx, dao.GetDB(), nil, nil, true, true) syncStoreSku() - + localjx.RefreshAllMatterOrderStatus() InitEx() // 每天补全前一天与当天的订单 diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index 3f9e0976d..efc8f3347 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -771,7 +771,6 @@ func jxOrder2GoodsOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, deliveryAd order.FromStoreID = jxOrder.FromStoreID order.WaybillVendorID = model.VendorIDJDWL order.DeliveryFlag = model.OrderDeliveryFlagMaskScheduleDisabled - order.DeliveryType = model.OrderDeliveryTypeSelfTake order.Flag = 1 } return order, err @@ -808,6 +807,8 @@ func orderSolutionForWuLiao(order *model.GoodsOrder) (err error) { if err != nil || len(goods) == 0 { return err } + order.WaybillVendorID = model.VendorIDJDWL + dao.UpdateEntity(db, order, "WaybillVendorID") orderSkus := goods[0].Skus if order.Weight <= 5000 { //如果总重量小于5kg就直接发单 var ( @@ -845,7 +846,6 @@ func orderSolutionForWuLiao(order *model.GoodsOrder) (err error) { } order.EclpOutID = result dao.UpdateEntity(db, order, "EclpOutID") - globals.SugarLogger.Debugf("tryToSplitMatterOrderaaa,[%v]", utils.Format4Output(order, false)) waybill := &model.Waybill{ VendorOrderID: order.VendorOrderID, OrderVendorID: model.VendorIDJX, @@ -1343,6 +1343,7 @@ func GetMatterOrderStatus(ctx *jxcontext.Context, vendorOrderID string) (result waybillCode = getTrackMessagePlusByOrderResult.ResultData[0].WaybillCode cName string cMobile string + waybills []*model.Waybill ) for _, vv := range getTrackMessagePlusByOrderResult.ResultData { if vv.OpeTitle == "配送员收货" { @@ -1352,7 +1353,9 @@ func GetMatterOrderStatus(ctx *jxcontext.Context, vendorOrderID string) (result break } } - waybills, _ := dao.GetWayBillByOrderID(db, -1, model.VendorIDJX, -1, vendorOrderID) + sql := "SELECT * FROM waybill WHERE vendor_order_id = ?" + sqlParams := []interface{}{vendorOrderID} + err = dao.GetRows(db, &waybills, sql, sqlParams) if len(waybills) > 0 { waybills[0].VendorWaybillID = waybillCode waybills[0].CourierName = cName From a87b5ee89fae3afa819e70a60b66cacc1e00c90b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Thu, 19 Mar 2020 11:36:21 +0800 Subject: [PATCH 249/286] =?UTF-8?q?=E7=89=A9=E6=96=99=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E9=85=8D=E9=80=81=E5=91=98=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/order.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index efc8f3347..f31d2f14c 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -1360,6 +1360,9 @@ func GetMatterOrderStatus(ctx *jxcontext.Context, vendorOrderID string) (result waybills[0].VendorWaybillID = waybillCode waybills[0].CourierName = cName waybills[0].CourierMobile = cMobile + order.VendorWaybillID = waybillCode + order.WaybillVendorID = model.VendorIDJDWL + dao.UpdateEntity(db, order, "VendorWaybillID") dao.UpdateEntity(db, waybills[0], "VendorWaybillID", "CourierName", "CourierMobile") } } From 81da3097fd78ae2fd9a44eefee495a472c829f94 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Thu, 19 Mar 2020 11:40:04 +0800 Subject: [PATCH 250/286] =?UTF-8?q?=E7=89=A9=E6=96=99=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E9=85=8D=E9=80=81=E5=91=98=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/order.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index f31d2f14c..e7e80c0da 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -1362,7 +1362,7 @@ func GetMatterOrderStatus(ctx *jxcontext.Context, vendorOrderID string) (result waybills[0].CourierMobile = cMobile order.VendorWaybillID = waybillCode order.WaybillVendorID = model.VendorIDJDWL - dao.UpdateEntity(db, order, "VendorWaybillID") + dao.UpdateEntity(db, order, "VendorWaybillID", "WaybillVendorID") dao.UpdateEntity(db, waybills[0], "VendorWaybillID", "CourierName", "CourierMobile") } } From ac430e3359e7215feb504d73b9426a42fc6e287f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Thu, 19 Mar 2020 14:12:40 +0800 Subject: [PATCH 251/286] =?UTF-8?q?=E9=80=9A=E8=81=94=E5=AE=9D=E4=B8=80?= =?UTF-8?q?=E7=9B=B4=E5=9B=9E=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/tonglianpay.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/business/partner/purchase/jx/localjx/tonglianpay.go b/business/partner/purchase/jx/localjx/tonglianpay.go index 71446f67f..9faeb1aeb 100644 --- a/business/partner/purchase/jx/localjx/tonglianpay.go +++ b/business/partner/purchase/jx/localjx/tonglianpay.go @@ -94,6 +94,10 @@ func onTLpayFinished(call *tonglianpayapi.CallBackResult) (err error) { orderPay.DeletedAt = utils.DefaultTimeValue db := dao.GetDB() if err = dao.GetEntity(db, orderPay, "PayOrderID", "PayType", "DeletedAt"); err == nil { + if orderPay.Status != 0 { + globals.SugarLogger.Debugf("already pay msg:%s, err:%v", utils.Format4Output(call, true), err) + return err + } loc, _ := time.LoadLocation("Local") t1, _ := time.ParseInLocation("20060102150405", call.PayTime, loc) orderPay.PayFinishedAt = utils.Time2Pointer(t1) From cb9c465e1076f41ead9fe8dc9152a2e404aae477 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Thu, 19 Mar 2020 14:42:39 +0800 Subject: [PATCH 252/286] =?UTF-8?q?=E5=90=8C=E6=AD=A5=E5=B9=B3=E5=8F=B0?= =?UTF-8?q?=E4=BB=B7=E4=BB=8E=E5=90=91=E4=B8=8A=E5=8F=98=E6=88=90=E5=9B=9B?= =?UTF-8?q?=E8=88=8D=E4=BA=94=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxutils/jxutils_cms.go | 2 +- globals/api/api.go | 13 ++++++------- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/business/jxutils/jxutils_cms.go b/business/jxutils/jxutils_cms.go index ebf749df0..1f4b50e60 100644 --- a/business/jxutils/jxutils_cms.go +++ b/business/jxutils/jxutils_cms.go @@ -271,7 +271,7 @@ func CaculateSkuActVendorPrice(price, percentage, priceAdd int) (vendorPrice int func CaculateSkuVendorPrice(price, percentage, priceAdd int) (vendorPrice int) { percentage = ConstrainPricePercentage(percentage) vendorPrice = int(math.Round(float64(price*percentage)/100)) + priceAdd - vendorPrice = int(math.Ceil(float64(vendorPrice)/10) * 10) + vendorPrice = int(math.Round(float64(vendorPrice)/10) * 10) if vendorPrice < 1 { vendorPrice = 1 } diff --git a/globals/api/api.go b/globals/api/api.go index 7652e29e3..e47c0c46d 100644 --- a/globals/api/api.go +++ b/globals/api/api.go @@ -3,9 +3,8 @@ package api import ( "time" - "git.rosy.net.cn/baseapi/platformapi/yinbaoapi" - "git.rosy.net.cn/baseapi/platformapi/jdeclpapi" + "git.rosy.net.cn/baseapi/platformapi/yinbaoapi" "git.rosy.net.cn/baseapi/platformapi/tonglianpayapi" @@ -160,11 +159,11 @@ func Init() { Ebai2API = nil } - if !beego.AppConfig.DefaultBool("disableYb", false) { - YinBaoAPI = yinbaoapi.New(beego.AppConfig.String("yinbaoAppKey"), beego.AppConfig.String("yinbaoAppID")) - } else { - YinBaoAPI = nil - } + // if !beego.AppConfig.DefaultBool("disableYb", false) { + // YinBaoAPI = yinbaoapi.New(beego.AppConfig.String("yinbaoAppKey"), beego.AppConfig.String("yinbaoAppID")) + // } else { + // YinBaoAPI = nil + // } if !beego.AppConfig.DefaultBool("disableMtps", false) { MtpsAPI = mtpsapi.New(beego.AppConfig.String("mtpsAppKey"), beego.AppConfig.String("mtpsSecret")) From b6126857ccf41fb7aeea9585f016de3ef237d700 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Thu, 19 Mar 2020 16:34:30 +0800 Subject: [PATCH 253/286] =?UTF-8?q?=E8=AE=A2=E5=8D=95=E6=96=B0=E5=A2=9Eear?= =?UTF-8?q?ningprice2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxcallback/orderman/order.go | 1 + business/jxcallback/orderman/orderman_ext.go | 2 ++ business/jxcallback/scheduler/basesch/basesch_ext.go | 7 +++++++ business/jxcallback/scheduler/defsch/defsch.go | 2 +- business/jxutils/jxutils.go | 9 +++++++++ business/model/dao/dao_order.go | 9 ++++++--- business/model/order.go | 1 + 7 files changed, 27 insertions(+), 4 deletions(-) diff --git a/business/jxcallback/orderman/order.go b/business/jxcallback/orderman/order.go index 1cd990211..3754ebb98 100644 --- a/business/jxcallback/orderman/order.go +++ b/business/jxcallback/orderman/order.go @@ -425,6 +425,7 @@ func (c *OrderManager) updateOrderOtherInfo(order *model.GoodsOrder, db *dao.Dao } if err = c.updateOrderSkuOtherInfo(order, db, payPercentage, changePriceType); err == nil { jxutils.RefreshOrderSkuRelated(order) + jxutils.RefreshOrderEarningPrice2(order, payPercentage) // caculateOrderEarningPrice(order, payPercentage) } return err diff --git a/business/jxcallback/orderman/orderman_ext.go b/business/jxcallback/orderman/orderman_ext.go index a9ca5ffb1..1b15815af 100644 --- a/business/jxcallback/orderman/orderman_ext.go +++ b/business/jxcallback/orderman/orderman_ext.go @@ -670,6 +670,7 @@ func (c *OrderManager) GetStoresOrderSaleInfoNew(ctx *jxcontext.Context, storeID saleInfo.VendorPrice += v.VendorPrice * int64(v.Count) saleInfo.SalePrice += v.SalePrice * int64(v.Count) saleInfo.EarningPrice += v.EarningPrice * int64(v.Count) + saleInfo.EarningPrice2 = v.EarningPrice2 universalOrderID := jxutils.ComposeUniversalOrderID(v.VendorOrderID, v.VendorID) if orderMap[universalOrderID] == nil { @@ -746,6 +747,7 @@ func (c *OrderManager) GetStoresOrderSaleInfoNew(ctx *jxcontext.Context, storeID saleInfo.SalePrice += v.SalePrice saleInfo.EarningPrice += v.EarningPrice saleInfo.Count++ + saleInfo.EarningPrice2 = v.EarningPrice2 } for _, v := range saleInfoMap { saleInfoList = append(saleInfoList, v) diff --git a/business/jxcallback/scheduler/basesch/basesch_ext.go b/business/jxcallback/scheduler/basesch/basesch_ext.go index ed6afc1d4..0801a3f0a 100644 --- a/business/jxcallback/scheduler/basesch/basesch_ext.go +++ b/business/jxcallback/scheduler/basesch/basesch_ext.go @@ -37,6 +37,13 @@ func (c *BaseScheduler) CreateWaybillOnProviders(ctx *jxcontext.Context, order * courierVendorID := storeCourier.VendorID bill, err2 := c.CreateWaybill(courierVendorID, order, maxDeliveryFee) if err = err2; err == nil { + stores, _ := dao.GetStoreList(dao.GetDB(), []int{order.StoreID}, nil, nil, nil, "") + if len(stores) > 0 { + if stores[0].PayPercentage <= 50 { + order.EarningPrice2 = (order.TotalShopMoney - bill.DesiredFee) * int64((100 - stores[0].PayPercentage/2)) / 10000 + dao.UpdateEntity(dao.GetDB(), order, "EarningPrice2") + } + } globals.SugarLogger.Debugf("CreateWaybillOnProviders orderID:%s userName:%s vendorID:%d bill:%v", order.VendorOrderID, userName, courierVendorID, bill) bills = append(bills, bill) if createOnlyOne { diff --git a/business/jxcallback/scheduler/defsch/defsch.go b/business/jxcallback/scheduler/defsch/defsch.go index 5b3bbca22..01a515b14 100644 --- a/business/jxcallback/scheduler/defsch/defsch.go +++ b/business/jxcallback/scheduler/defsch/defsch.go @@ -655,7 +655,7 @@ func (s *DefScheduler) isWaybillCourierSame(savedOrderInfo *WatchOrderInfo, bill func (s *DefScheduler) addWaybill2Map(savedOrderInfo *WatchOrderInfo, bill *model.Waybill) { if _, ok := savedOrderInfo.waybills[bill.WaybillVendorID]; ok { - if !model.IsWaybillPlatformOwn(bill) { // 购买平台重复发相同号的新运单是正常的,京东就是 + if !model.IsWaybillPlatformOwn(bill) && savedOrderInfo.order.StoreID != 666666 { // 购买平台重复发相同号的新运单是正常的,京东就是 globals.SugarLogger.Warnf("addWaybill2Map bill:%v already exists", bill) } } diff --git a/business/jxutils/jxutils.go b/business/jxutils/jxutils.go index 160073540..7b2a749b1 100644 --- a/business/jxutils/jxutils.go +++ b/business/jxutils/jxutils.go @@ -540,6 +540,15 @@ func RefreshOrderSkuRelated(order *model.GoodsOrder) *model.GoodsOrder { return order } +func RefreshOrderEarningPrice2(order *model.GoodsOrder, payPercentage int) *model.GoodsOrder { + if payPercentage <= 50 { + order.EarningPrice2 = order.TotalShopMoney * int64((100 - payPercentage/2)) / 10000 + } else { + order.EarningPrice2 = order.EarningPrice + } + return order +} + func RefreshAfsOrderSkuRelated(afsOrder *model.AfsOrder) *model.AfsOrder { afsOrder.SkuUserMoney = 0 afsOrder.PmSkuSubsidyMoney = 0 diff --git a/business/model/dao/dao_order.go b/business/model/dao/dao_order.go index 7691bcbf8..8ab89944b 100644 --- a/business/model/dao/dao_order.go +++ b/business/model/dao/dao_order.go @@ -26,7 +26,9 @@ type StoresOrderSaleInfo struct { SalePrice int64 `json:"salePrice"` ActualPayPrice int64 `json:"actualPayPrice"` - EarningPrice int64 `json:"earningPrice"` // 预估结算给门店老板的钱 + EarningPrice int64 `json:"earningPrice"` // 预估结算给门店老板的钱 + EarningPrice2 int64 `json:"earningPrice2"` // 预估结算给门店老板的钱(新规则) + DistanceFreightMoney int64 `json:"distanceFreightMoney"` // 商户承担的远距离配送费(当前只有京东到家有值) WaybillTipMoney int64 `json:"waybillTipMoney"` // 京西加的平台配送小费 } @@ -41,7 +43,8 @@ type OrderSkuWithActualPayPrice struct { StoreID int `orm:"column(store_id)" json:"storeID"` // 外部系统里记录的 jxstoreid Status int `json:"status"` // 参见OrderStatus*相关的常量定义 - PayPercentage int `json:"payPercentage"` + PayPercentage int `json:"payPercentage"` + EarningPrice2 int64 `json:"earningPrice2"` } type tGoodsAndOrder struct { @@ -356,7 +359,7 @@ func GetStoreOrderSkuList(db *DaoDB, storeIDs []int, finishedAtBegin, finishedAt // order_finished_at sql := ` SELECT t1.*, - IF(t2.jx_store_id > 0, t2.jx_store_id, t2.store_id) store_id, t2.status, t2.actual_pay_price, t2.distance_freight_money, t2.waybill_tip_money, + IF(t2.jx_store_id > 0, t2.jx_store_id, t2.store_id) store_id, t2.status, t2.actual_pay_price, t2.distance_freight_money, t2.waybill_tip_money, t2.earning_price2, t3.pay_percentage FROM order_sku t1 JOIN goods_order t2 ON t2.vendor_order_id = t1.vendor_order_id AND t2.vendor_id = t1.vendor_id diff --git a/business/model/order.go b/business/model/order.go index 7ed0fce5d..a5d66b33d 100644 --- a/business/model/order.go +++ b/business/model/order.go @@ -64,6 +64,7 @@ type GoodsOrder struct { DistanceFreightMoney int64 `json:"distanceFreightMoney"` // 商户承担的远距离配送费(当前只有京东到家有值) WaybillTipMoney int64 `json:"waybillTipMoney"` // 京西加的平台配送小费 EarningPrice int64 `json:"earningPrice"` // 结算给门店老板的钱(未扣除可能的三方配送费) + EarningPrice2 int64 `json:"earningPrice2"` // 结算给门店老板的钱(未扣除可能的三方配送费)(新规则) Weight int `json:"weight"` // 单位为克 VendorUserID string `orm:"column(vendor_user_id);size(48)" json:"vendorUserID"` UserID string `orm:"column(user_id);size(48);index" json:"userID"` From 7ee1bedb8fb4fcfd47cc23fb43b894cf1cbe80a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Thu, 19 Mar 2020 16:37:39 +0800 Subject: [PATCH 254/286] eee --- business/jxcallback/orderman/orderman_ext.go | 8 ++++---- business/model/dao/dao_order.go | 3 +-- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/business/jxcallback/orderman/orderman_ext.go b/business/jxcallback/orderman/orderman_ext.go index 1b15815af..1e52774a4 100644 --- a/business/jxcallback/orderman/orderman_ext.go +++ b/business/jxcallback/orderman/orderman_ext.go @@ -669,8 +669,8 @@ func (c *OrderManager) GetStoresOrderSaleInfoNew(ctx *jxcontext.Context, storeID saleInfo.ShopPrice += v.ShopPrice * int64(v.Count) saleInfo.VendorPrice += v.VendorPrice * int64(v.Count) saleInfo.SalePrice += v.SalePrice * int64(v.Count) - saleInfo.EarningPrice += v.EarningPrice * int64(v.Count) - saleInfo.EarningPrice2 = v.EarningPrice2 + // saleInfo.EarningPrice += v.EarningPrice * int64(v.Count) + saleInfo.EarningPrice = v.EarningPrice2 universalOrderID := jxutils.ComposeUniversalOrderID(v.VendorOrderID, v.VendorID) if orderMap[universalOrderID] == nil { @@ -745,9 +745,9 @@ func (c *OrderManager) GetStoresOrderSaleInfoNew(ctx *jxcontext.Context, storeID saleInfo.ShopPrice += v.ShopPrice saleInfo.VendorPrice += v.VendorPrice saleInfo.SalePrice += v.SalePrice - saleInfo.EarningPrice += v.EarningPrice + // saleInfo.EarningPrice += v.EarningPrice saleInfo.Count++ - saleInfo.EarningPrice2 = v.EarningPrice2 + saleInfo.EarningPrice = v.EarningPrice2 } for _, v := range saleInfoMap { saleInfoList = append(saleInfoList, v) diff --git a/business/model/dao/dao_order.go b/business/model/dao/dao_order.go index 8ab89944b..4c2e93703 100644 --- a/business/model/dao/dao_order.go +++ b/business/model/dao/dao_order.go @@ -43,8 +43,7 @@ type OrderSkuWithActualPayPrice struct { StoreID int `orm:"column(store_id)" json:"storeID"` // 外部系统里记录的 jxstoreid Status int `json:"status"` // 参见OrderStatus*相关的常量定义 - PayPercentage int `json:"payPercentage"` - EarningPrice2 int64 `json:"earningPrice2"` + PayPercentage int `json:"payPercentage"` } type tGoodsAndOrder struct { From 7176b40159670acb39f136b5d107ff5ca61d3ef2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Thu, 19 Mar 2020 16:38:37 +0800 Subject: [PATCH 255/286] eee --- business/model/dao/dao_order.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/business/model/dao/dao_order.go b/business/model/dao/dao_order.go index 4c2e93703..8ab89944b 100644 --- a/business/model/dao/dao_order.go +++ b/business/model/dao/dao_order.go @@ -43,7 +43,8 @@ type OrderSkuWithActualPayPrice struct { StoreID int `orm:"column(store_id)" json:"storeID"` // 外部系统里记录的 jxstoreid Status int `json:"status"` // 参见OrderStatus*相关的常量定义 - PayPercentage int `json:"payPercentage"` + PayPercentage int `json:"payPercentage"` + EarningPrice2 int64 `json:"earningPrice2"` } type tGoodsAndOrder struct { From b293d43e3eadca0bb052533c07aa2c3d7b02ea57 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Thu, 19 Mar 2020 16:43:14 +0800 Subject: [PATCH 256/286] =?UTF-8?q?=E9=A2=84=E5=88=9B=E5=BB=BA=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E5=BA=93=E5=AD=98=E6=8E=92=E9=99=A4=E9=9D=9E=E7=89=A9?= =?UTF-8?q?=E6=96=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/order.go | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index e7e80c0da..cb730f969 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -504,10 +504,12 @@ func generateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64 } for _, v := range skus { if storeSkuBind := storeSkuMap[v.SkuID]; storeSkuBind != nil { - result2, _ := api.JdEclpAPI.QueryStock(storeSkuBind.EclpID) - if len(result2) > 0 { - if result2[0].UsableNum < v.Count { - return nil, nil, fmt.Errorf("此商品库存不足无法购买,请联系管理员!skuID:[%v]", v.SkuID) + if fromStoreID != 0 { + result2, _ := api.JdEclpAPI.QueryStock(storeSkuBind.EclpID) + if len(result2) > 0 { + if result2[0].UsableNum < v.Count { + return nil, nil, fmt.Errorf("此商品库存不足无法购买,请联系管理员!skuID:[%v]", v.SkuID) + } } } if sku := skuMap[v.SkuID]; sku != nil { From e93805f643d4f75c0c6fb312206046cb9ce4a82f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Thu, 19 Mar 2020 17:03:50 +0800 Subject: [PATCH 257/286] =?UTF-8?q?=E8=90=A5=E4=B8=9A=E6=97=B6=E9=97=B4?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/order.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index cb730f969..f444a0ae1 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -298,9 +298,9 @@ func GetAvailableDeliverTime(ctx *jxcontext.Context, storeID int) (deliverTimerL UnixTime: 0, ViewShippingFee: viewShippingFee, }) + deliverTimerList = append(deliverTimerList, timeInfo) } } - deliverTimerList = append(deliverTimerList, timeInfo) for j := 0; j < 24*3; j++ { deliveryTime := beginDate.Add(time.Duration(j) * 20 * time.Minute) if deliveryTime.Sub(minDingShiDaTime) >= 0 { From f84e17f002b9e0e02921d20c0b5c190974d6de45 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Thu, 19 Mar 2020 17:06:13 +0800 Subject: [PATCH 258/286] =?UTF-8?q?=E8=90=A5=E4=B8=9A=E6=97=B6=E9=97=B4?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/order.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index f444a0ae1..0d0726794 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -298,7 +298,6 @@ func GetAvailableDeliverTime(ctx *jxcontext.Context, storeID int) (deliverTimerL UnixTime: 0, ViewShippingFee: viewShippingFee, }) - deliverTimerList = append(deliverTimerList, timeInfo) } } for j := 0; j < 24*3; j++ { @@ -314,6 +313,9 @@ func GetAvailableDeliverTime(ctx *jxcontext.Context, storeID int) (deliverTimerL } } } + if len(timeInfo.TimeList) > 0 { + deliverTimerList = append(deliverTimerList, timeInfo) + } beginDate = beginDate.Add(24 * time.Hour) } return deliverTimerList, err From c53102acd72794fd5e4a74a55517a33cfffeed86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Thu, 19 Mar 2020 17:20:00 +0800 Subject: [PATCH 259/286] =?UTF-8?q?earningprice=E6=94=B9=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxcallback/orderman/orderman_ext.go | 4 ++-- business/jxcallback/scheduler/basesch/basesch_ext.go | 4 ++-- business/jxutils/jxutils.go | 4 ++-- business/model/dao/dao_order.go | 6 +++--- business/model/order.go | 2 +- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/business/jxcallback/orderman/orderman_ext.go b/business/jxcallback/orderman/orderman_ext.go index 1e52774a4..b7a496dbb 100644 --- a/business/jxcallback/orderman/orderman_ext.go +++ b/business/jxcallback/orderman/orderman_ext.go @@ -670,7 +670,7 @@ func (c *OrderManager) GetStoresOrderSaleInfoNew(ctx *jxcontext.Context, storeID saleInfo.VendorPrice += v.VendorPrice * int64(v.Count) saleInfo.SalePrice += v.SalePrice * int64(v.Count) // saleInfo.EarningPrice += v.EarningPrice * int64(v.Count) - saleInfo.EarningPrice = v.EarningPrice2 + saleInfo.EarningPrice = v.NewEarningPrice universalOrderID := jxutils.ComposeUniversalOrderID(v.VendorOrderID, v.VendorID) if orderMap[universalOrderID] == nil { @@ -747,7 +747,7 @@ func (c *OrderManager) GetStoresOrderSaleInfoNew(ctx *jxcontext.Context, storeID saleInfo.SalePrice += v.SalePrice // saleInfo.EarningPrice += v.EarningPrice saleInfo.Count++ - saleInfo.EarningPrice = v.EarningPrice2 + saleInfo.EarningPrice = v.NewEarningPrice } for _, v := range saleInfoMap { saleInfoList = append(saleInfoList, v) diff --git a/business/jxcallback/scheduler/basesch/basesch_ext.go b/business/jxcallback/scheduler/basesch/basesch_ext.go index 0801a3f0a..4cc88ca45 100644 --- a/business/jxcallback/scheduler/basesch/basesch_ext.go +++ b/business/jxcallback/scheduler/basesch/basesch_ext.go @@ -40,8 +40,8 @@ func (c *BaseScheduler) CreateWaybillOnProviders(ctx *jxcontext.Context, order * stores, _ := dao.GetStoreList(dao.GetDB(), []int{order.StoreID}, nil, nil, nil, "") if len(stores) > 0 { if stores[0].PayPercentage <= 50 { - order.EarningPrice2 = (order.TotalShopMoney - bill.DesiredFee) * int64((100 - stores[0].PayPercentage/2)) / 10000 - dao.UpdateEntity(dao.GetDB(), order, "EarningPrice2") + order.NewEarningPrice = (order.TotalShopMoney - bill.DesiredFee) * int64((100 - stores[0].PayPercentage/2)) / 10000 + dao.UpdateEntity(dao.GetDB(), order, "NewEarningPrice") } } globals.SugarLogger.Debugf("CreateWaybillOnProviders orderID:%s userName:%s vendorID:%d bill:%v", order.VendorOrderID, userName, courierVendorID, bill) diff --git a/business/jxutils/jxutils.go b/business/jxutils/jxutils.go index 7b2a749b1..37c03ff91 100644 --- a/business/jxutils/jxutils.go +++ b/business/jxutils/jxutils.go @@ -542,9 +542,9 @@ func RefreshOrderSkuRelated(order *model.GoodsOrder) *model.GoodsOrder { func RefreshOrderEarningPrice2(order *model.GoodsOrder, payPercentage int) *model.GoodsOrder { if payPercentage <= 50 { - order.EarningPrice2 = order.TotalShopMoney * int64((100 - payPercentage/2)) / 10000 + order.NewEarningPrice = order.TotalShopMoney * int64((100 - payPercentage/2)) / 10000 } else { - order.EarningPrice2 = order.EarningPrice + order.NewEarningPrice = order.EarningPrice } return order } diff --git a/business/model/dao/dao_order.go b/business/model/dao/dao_order.go index 8ab89944b..8b3ab2dae 100644 --- a/business/model/dao/dao_order.go +++ b/business/model/dao/dao_order.go @@ -43,8 +43,8 @@ type OrderSkuWithActualPayPrice struct { StoreID int `orm:"column(store_id)" json:"storeID"` // 外部系统里记录的 jxstoreid Status int `json:"status"` // 参见OrderStatus*相关的常量定义 - PayPercentage int `json:"payPercentage"` - EarningPrice2 int64 `json:"earningPrice2"` + PayPercentage int `json:"payPercentage"` + NewEarningPrice int64 `json:"newEarningPrice"` } type tGoodsAndOrder struct { @@ -359,7 +359,7 @@ func GetStoreOrderSkuList(db *DaoDB, storeIDs []int, finishedAtBegin, finishedAt // order_finished_at sql := ` SELECT t1.*, - IF(t2.jx_store_id > 0, t2.jx_store_id, t2.store_id) store_id, t2.status, t2.actual_pay_price, t2.distance_freight_money, t2.waybill_tip_money, t2.earning_price2, + IF(t2.jx_store_id > 0, t2.jx_store_id, t2.store_id) store_id, t2.status, t2.actual_pay_price, t2.distance_freight_money, t2.waybill_tip_money, t2.new_earning_price, t3.pay_percentage FROM order_sku t1 JOIN goods_order t2 ON t2.vendor_order_id = t1.vendor_order_id AND t2.vendor_id = t1.vendor_id diff --git a/business/model/order.go b/business/model/order.go index a5d66b33d..175171a9f 100644 --- a/business/model/order.go +++ b/business/model/order.go @@ -64,7 +64,7 @@ type GoodsOrder struct { DistanceFreightMoney int64 `json:"distanceFreightMoney"` // 商户承担的远距离配送费(当前只有京东到家有值) WaybillTipMoney int64 `json:"waybillTipMoney"` // 京西加的平台配送小费 EarningPrice int64 `json:"earningPrice"` // 结算给门店老板的钱(未扣除可能的三方配送费) - EarningPrice2 int64 `json:"earningPrice2"` // 结算给门店老板的钱(未扣除可能的三方配送费)(新规则) + NewEarningPrice int64 `json:"newEarningPrice"` // 结算给门店老板的钱(未扣除可能的三方配送费)(新规则) Weight int `json:"weight"` // 单位为克 VendorUserID string `orm:"column(vendor_user_id);size(48)" json:"vendorUserID"` UserID string `orm:"column(user_id);size(48);index" json:"userID"` From 95f0853752dd2423fac9a4443ed4b98cfdcc592c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Thu, 19 Mar 2020 17:45:48 +0800 Subject: [PATCH 260/286] neweraningprice/100 --- business/jxcallback/orderman/orderman_ext.go | 2 +- business/jxutils/jxutils.go | 2 +- business/model/dao/dao_order.go | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/business/jxcallback/orderman/orderman_ext.go b/business/jxcallback/orderman/orderman_ext.go index b7a496dbb..312f9cf6a 100644 --- a/business/jxcallback/orderman/orderman_ext.go +++ b/business/jxcallback/orderman/orderman_ext.go @@ -1205,7 +1205,7 @@ func GetMatterStoreOrderCount(ctx *jxcontext.Context, storeID int) (result *Orde } orderTime = *orderPay.PayFinishedAt } else { - orderTime = time.Now().AddDate(0, 0, -7) + orderTime = time.Now().AddDate(0, -1, 0) flag = true } sql2 := ` diff --git a/business/jxutils/jxutils.go b/business/jxutils/jxutils.go index 37c03ff91..97a011585 100644 --- a/business/jxutils/jxutils.go +++ b/business/jxutils/jxutils.go @@ -542,7 +542,7 @@ func RefreshOrderSkuRelated(order *model.GoodsOrder) *model.GoodsOrder { func RefreshOrderEarningPrice2(order *model.GoodsOrder, payPercentage int) *model.GoodsOrder { if payPercentage <= 50 { - order.NewEarningPrice = order.TotalShopMoney * int64((100 - payPercentage/2)) / 10000 + order.NewEarningPrice = order.TotalShopMoney * int64((100 - payPercentage/2)) / 100 } else { order.NewEarningPrice = order.EarningPrice } diff --git a/business/model/dao/dao_order.go b/business/model/dao/dao_order.go index 8b3ab2dae..4bd813a3f 100644 --- a/business/model/dao/dao_order.go +++ b/business/model/dao/dao_order.go @@ -26,8 +26,8 @@ type StoresOrderSaleInfo struct { SalePrice int64 `json:"salePrice"` ActualPayPrice int64 `json:"actualPayPrice"` - EarningPrice int64 `json:"earningPrice"` // 预估结算给门店老板的钱 - EarningPrice2 int64 `json:"earningPrice2"` // 预估结算给门店老板的钱(新规则) + EarningPrice int64 `json:"earningPrice"` // 预估结算给门店老板的钱 + NewEarningPrice int64 `json:"newEarningPrice"` // 预估结算给门店老板的钱(新规则) DistanceFreightMoney int64 `json:"distanceFreightMoney"` // 商户承担的远距离配送费(当前只有京东到家有值) WaybillTipMoney int64 `json:"waybillTipMoney"` // 京西加的平台配送小费 From 20f4cac2c14c2c24951ba839be5d5b0237507048 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Thu, 19 Mar 2020 18:09:04 +0800 Subject: [PATCH 261/286] =?UTF-8?q?=E4=BA=AC=E4=B8=9C=E7=89=A9=E6=B5=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/order.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index 0d0726794..c11be43e6 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -1301,6 +1301,9 @@ func GetMatterOrderStatus(ctx *jxcontext.Context, vendorOrderID string) (result } queryOrderStatus, err := api.JdEclpAPI.QueryOrderStatus(order.EclpOutID) getTrackMessagePlusByOrderResult, err := api.JdEclpAPI.GetTrackMessagePlusByOrder(vendorOrderID) + if err != nil { + return nil, err + } for _, v := range queryOrderStatus.OrderStatusList { matter := &MatterOrderStatus{} matter.Time = utils.Str2Time(v.OperateTime) From 7a6ee4e396ab220d5e6671357a66999a5bafd3dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Fri, 20 Mar 2020 09:01:07 +0800 Subject: [PATCH 262/286] =?UTF-8?q?=E8=8E=B7=E5=8F=96=E8=90=A5=E4=B8=9A?= =?UTF-8?q?=E9=A2=9D=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxcallback/orderman/orderman_ext.go | 2 +- business/model/dao/dao_order.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/business/jxcallback/orderman/orderman_ext.go b/business/jxcallback/orderman/orderman_ext.go index 312f9cf6a..c2c6048db 100644 --- a/business/jxcallback/orderman/orderman_ext.go +++ b/business/jxcallback/orderman/orderman_ext.go @@ -670,6 +670,7 @@ func (c *OrderManager) GetStoresOrderSaleInfoNew(ctx *jxcontext.Context, storeID saleInfo.VendorPrice += v.VendorPrice * int64(v.Count) saleInfo.SalePrice += v.SalePrice * int64(v.Count) // saleInfo.EarningPrice += v.EarningPrice * int64(v.Count) + globals.SugarLogger.Debugf("GetStoresOrderSaleInfoNew", utils.Format4Output(v, false)) saleInfo.EarningPrice = v.NewEarningPrice universalOrderID := jxutils.ComposeUniversalOrderID(v.VendorOrderID, v.VendorID) @@ -747,7 +748,6 @@ func (c *OrderManager) GetStoresOrderSaleInfoNew(ctx *jxcontext.Context, storeID saleInfo.SalePrice += v.SalePrice // saleInfo.EarningPrice += v.EarningPrice saleInfo.Count++ - saleInfo.EarningPrice = v.NewEarningPrice } for _, v := range saleInfoMap { saleInfoList = append(saleInfoList, v) diff --git a/business/model/dao/dao_order.go b/business/model/dao/dao_order.go index 4bd813a3f..4aab40394 100644 --- a/business/model/dao/dao_order.go +++ b/business/model/dao/dao_order.go @@ -389,7 +389,7 @@ func GetStoreOrderSkuList(db *DaoDB, storeIDs []int, finishedAtBegin, finishedAt func GetStoreOrderSkuList4Afs(db *DaoDB, storeIDs []int, finishedAtBegin, finishedAtEnd time.Time, isFinish bool) (skuList []*OrderSkuWithActualPayPrice, err error) { sql := ` SELECT t1.*, - t2.actual_pay_price, t2.status, IF(t2.jx_store_id > 0, t2.jx_store_id, t2.store_id) store_id, + t2.actual_pay_price, t2.status, IF(t2.jx_store_id > 0, t2.jx_store_id, t2.store_id) store_id, t2.new_earning_price, t3.pay_percentage FROM order_sku t1 JOIN goods_order t2 ON t2.vendor_order_id = t1.vendor_order_id AND t2.vendor_id = t1.vendor_id From 54ffb6d377fab7e92ae5e68d7f95ec8d6d428dba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Fri, 20 Mar 2020 09:18:23 +0800 Subject: [PATCH 263/286] =?UTF-8?q?=E8=8E=B7=E5=8F=96=E8=90=A5=E4=B8=9A?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxcallback/orderman/orderman_ext.go | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/business/jxcallback/orderman/orderman_ext.go b/business/jxcallback/orderman/orderman_ext.go index c2c6048db..85e2ec9f1 100644 --- a/business/jxcallback/orderman/orderman_ext.go +++ b/business/jxcallback/orderman/orderman_ext.go @@ -647,6 +647,10 @@ func (c *OrderManager) GetStoresOrderSaleInfoNew(ctx *jxcontext.Context, storeID orderMap = make(map[string]*model.GoodsOrder) orderSkuMap = make(map[string]*dao.OrderSkuWithActualPayPrice) saleInfoMap = make(map[int64]*dao.StoresOrderSaleInfo) + var flagVendorOrderID string + if len(skuList) > 0 { + flagVendorOrderID = skuList[0].VendorOrderID + } for _, v := range skuList { if v.EarningPrice == 0 { v.EarningPrice = jxutils.CaculateSkuEarningPrice(v.ShopPrice, v.SalePrice, v.PayPercentage) @@ -670,8 +674,14 @@ func (c *OrderManager) GetStoresOrderSaleInfoNew(ctx *jxcontext.Context, storeID saleInfo.VendorPrice += v.VendorPrice * int64(v.Count) saleInfo.SalePrice += v.SalePrice * int64(v.Count) // saleInfo.EarningPrice += v.EarningPrice * int64(v.Count) - globals.SugarLogger.Debugf("GetStoresOrderSaleInfoNew", utils.Format4Output(v, false)) - saleInfo.EarningPrice = v.NewEarningPrice + if v.VendorOrderID == flagVendorOrderID { + if len(skuList) == 1 { + saleInfo.EarningPrice = v.NewEarningPrice + } + } else { + flagVendorOrderID = v.VendorOrderID + saleInfo.EarningPrice += v.NewEarningPrice + } universalOrderID := jxutils.ComposeUniversalOrderID(v.VendorOrderID, v.VendorID) if orderMap[universalOrderID] == nil { @@ -723,6 +733,7 @@ func (c *OrderManager) GetStoresOrderSaleInfoNew(ctx *jxcontext.Context, storeID order.VendorPrice += orderSku.VendorPrice * int64(v.Count) order.SalePrice += orderSku.SalePrice * int64(v.Count) order.EarningPrice += orderSku.EarningPrice * int64(v.Count) + globals.SugarLogger.Debugf("GetStoresOrderSaleInfoNew", utils.Format4Output(order, false)) } else { // globals.SugarLogger.Debug(utils.Format4Output(v, true)) } From 1e527a601bdf169ac4af17801daf3b6f83981db2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Fri, 20 Mar 2020 09:35:19 +0800 Subject: [PATCH 264/286] =?UTF-8?q?=E8=8E=B7=E5=8F=96=E8=90=A5=E4=B8=9A?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxcallback/orderman/orderman_ext.go | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/business/jxcallback/orderman/orderman_ext.go b/business/jxcallback/orderman/orderman_ext.go index 85e2ec9f1..e64b02eb3 100644 --- a/business/jxcallback/orderman/orderman_ext.go +++ b/business/jxcallback/orderman/orderman_ext.go @@ -651,7 +651,7 @@ func (c *OrderManager) GetStoresOrderSaleInfoNew(ctx *jxcontext.Context, storeID if len(skuList) > 0 { flagVendorOrderID = skuList[0].VendorOrderID } - for _, v := range skuList { + for k, v := range skuList { if v.EarningPrice == 0 { v.EarningPrice = jxutils.CaculateSkuEarningPrice(v.ShopPrice, v.SalePrice, v.PayPercentage) } @@ -675,7 +675,7 @@ func (c *OrderManager) GetStoresOrderSaleInfoNew(ctx *jxcontext.Context, storeID saleInfo.SalePrice += v.SalePrice * int64(v.Count) // saleInfo.EarningPrice += v.EarningPrice * int64(v.Count) if v.VendorOrderID == flagVendorOrderID { - if len(skuList) == 1 { + if k == 0 { saleInfo.EarningPrice = v.NewEarningPrice } } else { @@ -733,7 +733,6 @@ func (c *OrderManager) GetStoresOrderSaleInfoNew(ctx *jxcontext.Context, storeID order.VendorPrice += orderSku.VendorPrice * int64(v.Count) order.SalePrice += orderSku.SalePrice * int64(v.Count) order.EarningPrice += orderSku.EarningPrice * int64(v.Count) - globals.SugarLogger.Debugf("GetStoresOrderSaleInfoNew", utils.Format4Output(order, false)) } else { // globals.SugarLogger.Debug(utils.Format4Output(v, true)) } @@ -757,7 +756,7 @@ func (c *OrderManager) GetStoresOrderSaleInfoNew(ctx *jxcontext.Context, storeID saleInfo.ShopPrice += v.ShopPrice saleInfo.VendorPrice += v.VendorPrice saleInfo.SalePrice += v.SalePrice - // saleInfo.EarningPrice += v.EarningPrice + saleInfo.EarningPrice += v.EarningPrice saleInfo.Count++ } for _, v := range saleInfoMap { From 6c3e3ce0bca723120d4f439466c53d3c435dc3a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Fri, 20 Mar 2020 14:16:57 +0800 Subject: [PATCH 265/286] =?UTF-8?q?=E5=88=B7=E6=96=B0=E7=89=A9=E6=96=99?= =?UTF-8?q?=E8=AE=A2=E5=8D=95=E7=8A=B6=E6=80=81=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/order.go | 38 +++++++++++-------- 1 file changed, 22 insertions(+), 16 deletions(-) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index c11be43e6..f6f905365 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -1244,14 +1244,15 @@ func RefreshAllMatterOrderStatus() (err error) { err = dao.GetRows(db, &goodsList, sql, sqlParams) for _, v := range goodsList { var ( - goodsList2 []*model.GoodsOrder - finishedCount int + goodsList2 []*model.GoodsOrder + cancelCount int + deliveringCount int ) sql2 := "SELECT * FROM goods_order WHERE vendor_order_id LIKE ? OR vendor_order_id LIKE ? AND vendor_id = ? AND eclp_out_id <> '' AND LENGTH(vendor_order_id) = 16" sqlParams2 := []interface{}{v.VendorOrderID + "0%", v.VendorOrderID + "1%", model.VendorIDJX} err = dao.GetRows(db, &goodsList2, sql2, sqlParams2) for _, vv := range goodsList2 { - if vv.Status != model.OrderStatusFinished { + if vv.Status < model.OrderStatusFinished { queryOrderStatus, _ := api.JdEclpAPI.QueryOrderStatus(vv.EclpOutID) if len(queryOrderStatus.OrderStatusList) > 0 { if queryOrderStatus.OrderStatusList[len(queryOrderStatus.OrderStatusList)-1].SoStatusCode == jdeclpapi.SoStatusCode10034 { @@ -1264,26 +1265,31 @@ func RefreshAllMatterOrderStatus() (err error) { }() vv.Status = model.OrderStatusFinished dao.UpdateEntity(db, vv, "Status") - finishedCount++ dao.Commit(db) + } else { + deliveringCount++ } } - } else { - finishedCount++ + } else if vv.Status == model.OrderStatusCanceled { + cancelCount++ } } - if finishedCount == len(goodsList2) { - dao.Begin(db) - defer func() { - if r := recover(); r != nil { - dao.Rollback(db) - panic(r) - } - }() + dao.Begin(db) + defer func() { + if r := recover(); r != nil { + dao.Rollback(db) + panic(r) + } + }() + if deliveringCount == 0 { v.Status = model.OrderStatusFinished - dao.UpdateEntity(db, v, "Status") - dao.Commit(db) + } else { + if cancelCount == len(goodsList2) { + v.Status = model.OrderStatusCanceled + } } + dao.UpdateEntity(db, v, "Status") + dao.Commit(db) } return err } From 83ded833b54524dfded78bc14be84dac93574efe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Fri, 20 Mar 2020 14:28:58 +0800 Subject: [PATCH 266/286] =?UTF-8?q?=E8=87=AA=E5=8A=A8=E5=85=B3=E6=B3=A8?= =?UTF-8?q?=E7=95=85=E9=94=80=E5=93=81=E6=8E=92=E9=99=A4=E7=89=A9=E6=96=99?= =?UTF-8?q?=E5=BA=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 3 +++ business/model/store.go | 3 ++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index 91f84e4aa..abcd89f1d 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -3209,6 +3209,9 @@ func AutoFocusStoreSkusForTopSkus(ctx *jxcontext.Context, isAsync, isContinueWhe skuName []*model.SkuName skuNameMap = make(map[int]int) ) + if v.ID == model.MatterStoreID { + return retVal, err + } sql := ` SELECT DISTINCT a.name_id id FROM sku a diff --git a/business/model/store.go b/business/model/store.go index 6ee1b9e7a..a36984956 100644 --- a/business/model/store.go +++ b/business/model/store.go @@ -56,7 +56,8 @@ const ( ) const ( - ExdStoreName = "饿鲜达" + ExdStoreName = "饿鲜达" + MatterStoreID = 666666 ) var ( From 5c5c88e3bff0e5ccb0460cb2026e139454a17ffb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Fri, 20 Mar 2020 15:39:38 +0800 Subject: [PATCH 267/286] =?UTF-8?q?=E7=89=A9=E6=96=99=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E9=94=80=E9=87=8F=E5=8A=A0=E4=B8=8Aorderpay=E7=8A=B6=E6=80=81?= =?UTF-8?q?=E4=B8=BA1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 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 e64b02eb3..b4b7ab06f 100644 --- a/business/jxcallback/orderman/orderman_ext.go +++ b/business/jxcallback/orderman/orderman_ext.go @@ -1201,10 +1201,11 @@ func GetMatterStoreOrderCount(ctx *jxcontext.Context, storeID int) (result *Orde WHERE IF(a.store_id = 0, a.jx_store_id, a.store_id) = 666666 AND a.from_store_id = ? AND a.status >= ? AND a.status <> ? + AND b.status = ? ORDER BY b.pay_finished_at DESC LIMIT 1 ` - sqlParams := []interface{}{storeID, model.OrderStatusDelivering, model.OrderStatusCanceled} + sqlParams := []interface{}{storeID, model.OrderStatusDelivering, model.OrderStatusCanceled, model.PayStatusYes} err = dao.GetRows(db, &orderPays, sql, sqlParams) if len(orderPays) != 0 { orderPay := orderPays[0] From a8bdd937276611e4baba9930845d43456eb2cb38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 23 Mar 2020 09:48:51 +0800 Subject: [PATCH 268/286] =?UTF-8?q?=E6=96=B0=E8=AE=A2=E5=8D=95=E6=B6=88?= =?UTF-8?q?=E6=81=AF=E6=AF=8F=E5=A4=A9=E5=8F=AA=E6=8E=A8=E9=80=81=E4=B8=80?= =?UTF-8?q?=E6=AC=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxutils/smsmsg/smsmsg.go | 41 +++++++++++++++++++++++++------ business/model/store.go | 3 ++- 2 files changed, 36 insertions(+), 8 deletions(-) diff --git a/business/jxutils/smsmsg/smsmsg.go b/business/jxutils/smsmsg/smsmsg.go index 3dd900baa..819fbe44a 100644 --- a/business/jxutils/smsmsg/smsmsg.go +++ b/business/jxutils/smsmsg/smsmsg.go @@ -23,7 +23,7 @@ var ( } ) -func SendSMSMsg(mobileList []string, signName, templateCode string, templateParam map[string]interface{}) (err error) { +func SendSMSMsg(mobileList []string, signName, templateCode string, templateParam map[string]interface{}, order *model.GoodsOrder) (err error) { if len(mobileList) > 0 { errList := errlist.New() mobileList = jxutils.StringMap2List(jxutils.StringList2Map(mobileList)) @@ -42,6 +42,8 @@ func SendSMSMsg(mobileList []string, signName, templateCode string, templatePara } else { globals.SugarLogger.Infof(errMsg) } + } else { + err = updateStoreSMSNotifyMark(order) } } } @@ -56,11 +58,13 @@ func getOrderNotifyPhone(order *model.GoodsOrder) (phoneList []string) { } func NotifyNewOrder(order *model.GoodsOrder) (err error) { - err = SendSMSMsg(getOrderNotifyPhone(order), globals.SMSSignName, globals.SMSNewOrderTemplate, map[string]interface{}{ - "daySeq": order.OrderSeq, - "consigneeName": order.ConsigneeName, - "payMoney": jxutils.IntPrice2StandardString(order.ActualPayPrice), - }) + if isPushSMS(order) { + err = SendSMSMsg(getOrderNotifyPhone(order), globals.SMSSignName, globals.SMSNewOrderTemplate, map[string]interface{}{ + "daySeq": order.OrderSeq, + "consigneeName": order.ConsigneeName, + "payMoney": jxutils.IntPrice2StandardString(order.ActualPayPrice), + }, order) + } return err } @@ -69,6 +73,29 @@ func NotifyOrderCanceled(order *model.GoodsOrder) (err error) { "vendorName": model.VendorChineseNames[order.VendorID], "seq": order.OrderSeq, "orderID": order.VendorOrderID, - }) + }, order) + return err +} + +func isPushSMS(order *model.GoodsOrder) bool { + stores, _ := dao.GetStoreList(dao.GetDB(), []int{order.StoreID}, nil, nil, nil, "") + if len(stores) > 0 { + if stores[0].SMSNotifyMark == model.NO { + return true + } else { + return false + } + } else { + return false + } +} + +func updateStoreSMSNotifyMark(order *model.GoodsOrder) (err error) { + var db = dao.GetDB() + stores, _ := dao.GetStoreList(db, []int{order.StoreID}, nil, nil, nil, "") + if len(stores) > 0 { + stores[0].SMSNotifyMark = model.YES + _, err = dao.UpdateEntity(db, stores[0], "SMSNotifyMark") + } return err } diff --git a/business/model/store.go b/business/model/store.go index a36984956..a97385159 100644 --- a/business/model/store.go +++ b/business/model/store.go @@ -279,7 +279,8 @@ type Store struct { Status int `json:"status"` AutoEnableAt *time.Time `orm:"type(datetime);null" json:"autoEnableAt"` // 自动营业时间(临时休息用) ChangePriceType int8 `json:"changePriceType"` // 修改价格类型,即是否需要审核 - SMSNotify int8 `orm:"column(sms_notify);" json:"smsNotify"` // 是否通过短信接收订单消息 + SMSNotify int8 `orm:"column(sms_notify);" json:"smsNotify"` // 是否通过短信接收订单消息(每天只推一条) + 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 From 3a7a4ccce00fd1b18bcec48103fb6820c05e687d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 23 Mar 2020 10:26:24 +0800 Subject: [PATCH 269/286] =?UTF-8?q?=E7=89=A9=E6=96=99=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E5=9C=B0=E5=9D=80=E4=BC=98=E5=8C=96=EF=BC=8C=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E7=9C=81=E5=B8=82=E7=AD=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/order.go | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index f6f905365..b739e88c0 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -775,6 +775,7 @@ func jxOrder2GoodsOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, deliveryAd order.FromStoreID = jxOrder.FromStoreID order.WaybillVendorID = model.VendorIDJDWL order.DeliveryFlag = model.OrderDeliveryFlagMaskScheduleDisabled + order.ConsigneeAddress = deliveryAddress.Address order.Flag = 1 } return order, err @@ -888,6 +889,7 @@ func orderSolutionForWuLiao(order *model.GoodsOrder) (err error) { } //分包后的子订单ID默认是后面加两位(目前的规则),要改的话要注意取消订单那的判断 outJxOrder.OrderID = utils.Str2Int64(order.VendorOrderID)*100 + int64(k+1) + checkMatterDeliveryAddress(deliveryAddress) order2, err2 := jxOrder2GoodsOrder(jxcontext.AdminCtx, outJxOrder, deliveryAddress, order.UserID) if err = err2; err == nil { order2.AddressID = order.AddressID @@ -1492,3 +1494,22 @@ func buildOutOrderSkus(weightp *JxSkuInfo2, outOrder *JxOrderInfo) { outOrder.Skus = append(outOrder.Skus, jxOrderChange(weightp)) } } + +func checkMatterDeliveryAddress(deliveryAddress *dao.UserDeliveryAddressEx) { + var ( + db = dao.GetDB() + ) + if !strings.Contains(deliveryAddress.Address, "区") { + deliveryAddress.Address = deliveryAddress.DistrictName + deliveryAddress.Address + } + if !strings.Contains(deliveryAddress.Address, "市") { + deliveryAddress.Address = deliveryAddress.CityName + deliveryAddress.Address + } + if !strings.Contains(deliveryAddress.Address, "省") { + if place1, err := dao.GetPlaceByCode(db, deliveryAddress.CityCode); err == nil { + if place2, err2 := dao.GetPlaceByCode(db, place1.ParentCode); err2 == nil { + deliveryAddress.Address = place2.Name + deliveryAddress.Address + } + } + } +} From 4143d2acfdb4a4605703acc5cfdd9ce9c8364f99 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 23 Mar 2020 11:01:44 +0800 Subject: [PATCH 270/286] =?UTF-8?q?=E7=89=A9=E6=96=99=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E5=88=B7=E6=96=B0=E7=8A=B6=E6=80=81=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/model/dao/dao_order.go | 10 ++ business/partner/purchase/jx/localjx/order.go | 124 +++++++++++------- 2 files changed, 90 insertions(+), 44 deletions(-) diff --git a/business/model/dao/dao_order.go b/business/model/dao/dao_order.go index 4aab40394..a9583766d 100644 --- a/business/model/dao/dao_order.go +++ b/business/model/dao/dao_order.go @@ -1234,3 +1234,13 @@ func GetOrdersForJxPay(db *DaoDB, finishTimeBegin, finishTimeEnd time.Time) (goo err = GetRows(db, &goods, sql, sqlParams...) return goods, err } + +func GetWaybills(db *DaoDB, vendorOrderID string) (waybills []*model.Waybill, err error) { + sql := `SELECT * + FROM waybill + WHERE vendor_order_id = ? + ` + sqlParams := []interface{}{vendorOrderID} + err = GetRows(db, &waybills, sql, sqlParams) + return waybills, err +} diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index b739e88c0..df3aeff44 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -1238,60 +1238,92 @@ func RefreshAllMatterOrderStatus() (err error) { goodsList []*model.GoodsOrder realTime time.Time ) - realTime = time.Now().AddDate(0, 0, -3) + realTime = time.Now().AddDate(0, 0, -7) + //有分包的主订单 sql := ` - SELECT * FROM goods_order WHERE store_id = 666666 AND order_created_at >= ? AND status <> ? AND vendor_id = ? AND eclp_out_id = '' AND LENGTH(vendor_order_id) = 14 + SELECT * FROM goods_order WHERE store_id = 666666 AND order_created_at >= ? AND status <> ? AND vendor_id = ? AND LENGTH(vendor_order_id) = 14 ` sqlParams := []interface{}{realTime, model.OrderStatusFinished, model.VendorIDJX} err = dao.GetRows(db, &goodsList, sql, sqlParams) for _, v := range goodsList { - var ( - goodsList2 []*model.GoodsOrder - cancelCount int - deliveringCount int - ) - sql2 := "SELECT * FROM goods_order WHERE vendor_order_id LIKE ? OR vendor_order_id LIKE ? AND vendor_id = ? AND eclp_out_id <> '' AND LENGTH(vendor_order_id) = 16" - sqlParams2 := []interface{}{v.VendorOrderID + "0%", v.VendorOrderID + "1%", model.VendorIDJX} - err = dao.GetRows(db, &goodsList2, sql2, sqlParams2) - for _, vv := range goodsList2 { - if vv.Status < model.OrderStatusFinished { - queryOrderStatus, _ := api.JdEclpAPI.QueryOrderStatus(vv.EclpOutID) - if len(queryOrderStatus.OrderStatusList) > 0 { - if queryOrderStatus.OrderStatusList[len(queryOrderStatus.OrderStatusList)-1].SoStatusCode == jdeclpapi.SoStatusCode10034 { - dao.Begin(db) - defer func() { - if r := recover(); r != nil { - dao.Rollback(db) - panic(r) + if v.EclpOutID == "" { + var ( + goodsList2 []*model.GoodsOrder + cancelCount int + deliveringCount int + ) + sql2 := "SELECT * FROM goods_order WHERE vendor_order_id LIKE ? OR vendor_order_id LIKE ? AND vendor_id = ? AND eclp_out_id <> '' AND LENGTH(vendor_order_id) = 16" + sqlParams2 := []interface{}{v.VendorOrderID + "0%", v.VendorOrderID + "1%", model.VendorIDJX} + err = dao.GetRows(db, &goodsList2, sql2, sqlParams2) + for _, vv := range goodsList2 { + if vv.Status < model.OrderStatusFinished { + queryOrderStatus, _ := api.JdEclpAPI.QueryOrderStatus(vv.EclpOutID) + if len(queryOrderStatus.OrderStatusList) > 0 { + if queryOrderStatus.OrderStatusList[len(queryOrderStatus.OrderStatusList)-1].SoStatusCode == jdeclpapi.SoStatusCode10034 { + dao.Begin(db) + defer func() { + if r := recover(); r != nil { + dao.Rollback(db) + panic(r) + } + }() + vv.Status = model.OrderStatusFinished + dao.UpdateEntity(db, vv, "Status") + waybills, err := dao.GetWaybills(db, vv.VendorOrderID) + if err == nil && len(waybills) > 0 { + waybills[0].Status = model.WaybillStatusDelivered + dao.UpdateEntity(db, waybills[0], "Status") } - }() - vv.Status = model.OrderStatusFinished - dao.UpdateEntity(db, vv, "Status") - dao.Commit(db) - } else { - deliveringCount++ + dao.Commit(db) + changeOrderStatus(vv.VendorOrderID, model.OrderStatusFinished, "") + } else { + deliveringCount++ + } } + } else if vv.Status == model.OrderStatusCanceled { + cancelCount++ } - } else if vv.Status == model.OrderStatusCanceled { - cancelCount++ } - } - dao.Begin(db) - defer func() { - if r := recover(); r != nil { - dao.Rollback(db) - panic(r) + dao.Begin(db) + defer func() { + if r := recover(); r != nil { + dao.Rollback(db) + panic(r) + } + }() + if deliveringCount == 0 { + v.Status = model.OrderStatusFinished + } else { + if cancelCount == len(goodsList2) { + v.Status = model.OrderStatusCanceled + } } - }() - if deliveringCount == 0 { - v.Status = model.OrderStatusFinished + dao.UpdateEntity(db, v, "Status") + dao.Commit(db) + changeOrderStatus(v.VendorOrderID, v.Status, "") } else { - if cancelCount == len(goodsList2) { - v.Status = model.OrderStatusCanceled + queryOrderStatus, _ := api.JdEclpAPI.QueryOrderStatus(v.EclpOutID) + if len(queryOrderStatus.OrderStatusList) > 0 { + if queryOrderStatus.OrderStatusList[len(queryOrderStatus.OrderStatusList)-1].SoStatusCode == jdeclpapi.SoStatusCode10034 { + dao.Begin(db) + defer func() { + if r := recover(); r != nil { + dao.Rollback(db) + panic(r) + } + }() + v.Status = model.OrderStatusFinished + dao.UpdateEntity(db, v, "Status") + waybills, err := dao.GetWaybills(db, v.VendorOrderID) + if err == nil && len(waybills) > 0 { + waybills[0].Status = model.WaybillStatusDelivered + dao.UpdateEntity(db, waybills[0], "Status") + } + dao.Commit(db) + changeOrderStatus(v.VendorOrderID, model.OrderStatusFinished, "") + } } } - dao.UpdateEntity(db, v, "Status") - dao.Commit(db) } return err } @@ -1350,7 +1382,13 @@ func GetMatterOrderStatus(ctx *jxcontext.Context, vendorOrderID string) (result }() order.Status = model.OrderStatusFinished dao.UpdateEntity(db, order, "Status") + waybills, err := dao.GetWaybills(db, vendorOrderID) + if err == nil && len(waybills) > 0 { + waybills[0].Status = model.WaybillStatusDelivered + dao.UpdateEntity(db, waybills[0], "Status") + } dao.Commit(db) + changeOrderStatus(vendorOrderID, model.OrderStatusFinished, "") } } if len(getTrackMessagePlusByOrderResult.ResultData) > 0 { @@ -1368,9 +1406,7 @@ func GetMatterOrderStatus(ctx *jxcontext.Context, vendorOrderID string) (result break } } - sql := "SELECT * FROM waybill WHERE vendor_order_id = ?" - sqlParams := []interface{}{vendorOrderID} - err = dao.GetRows(db, &waybills, sql, sqlParams) + waybills, err = dao.GetWaybills(db, vendorOrderID) if len(waybills) > 0 { waybills[0].VendorWaybillID = waybillCode waybills[0].CourierName = cName From d35063bed20e6b2b88d6486c7a92202185dbb5de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 23 Mar 2020 11:07:54 +0800 Subject: [PATCH 271/286] =?UTF-8?q?=E5=88=B7=E6=96=B0=E7=89=A9=E6=96=99?= =?UTF-8?q?=E8=AE=A2=E5=8D=95=E7=8A=B6=E6=80=81=E7=9A=84=E6=95=B4=E4=BA=86?= =?UTF-8?q?=E4=B8=AA=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- controllers/jx_order2.go | 13 +++++++++++++ routers/commentsRouter_controllers.go | 9 +++++++++ 2 files changed, 22 insertions(+) diff --git a/controllers/jx_order2.go b/controllers/jx_order2.go index c6daa66b4..39b093650 100644 --- a/controllers/jx_order2.go +++ b/controllers/jx_order2.go @@ -174,3 +174,16 @@ func (c *JxOrderController) GetMatterOrderStatus() { return retVal, "", err }) } + +// @Title 刷新所有物料订单状态 +// @Description 刷新所有物料订单状态 +// @Param token header string true "认证token" +// @Success 200 {object} controllers.CallResult +// @Failure 200 {object} controllers.CallResult +// @router /RefreshAllMatterOrderStatus [put] +func (c *JxOrderController) RefreshAllMatterOrderStatus() { + c.callRefreshAllMatterOrderStatus(func(params *tJxorderRefreshAllMatterOrderStatusParams) (retVal interface{}, errCode string, err error) { + err = localjx.RefreshAllMatterOrderStatus() + return retVal, "", err + }) +} diff --git a/routers/commentsRouter_controllers.go b/routers/commentsRouter_controllers.go index 1de2143f1..420e08a3a 100644 --- a/routers/commentsRouter_controllers.go +++ b/routers/commentsRouter_controllers.go @@ -709,6 +709,15 @@ func init() { Filters: nil, Params: nil}) + beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:JxOrderController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:JxOrderController"], + beego.ControllerComments{ + Method: "RefreshAllMatterOrderStatus", + Router: `/RefreshAllMatterOrderStatus`, + AllowHTTPMethods: []string{"put"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:JxShopController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:JxShopController"], beego.ControllerComments{ Method: "JxMsg", From a1d2a6b9d2076423044bd98cedb1e33662f647fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 23 Mar 2020 11:30:50 +0800 Subject: [PATCH 272/286] =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E5=A2=9E=E5=8A=A0ctx?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/order.go | 2 +- controllers/jx_order2.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index df3aeff44..f2ffbf040 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -1232,7 +1232,7 @@ func GetHalfHoursList() (strs []string) { return strs } -func RefreshAllMatterOrderStatus() (err error) { +func RefreshAllMatterOrderStatus(ctx *jxcontext.Context) (err error) { var ( db = dao.GetDB() goodsList []*model.GoodsOrder diff --git a/controllers/jx_order2.go b/controllers/jx_order2.go index 39b093650..eb63049fd 100644 --- a/controllers/jx_order2.go +++ b/controllers/jx_order2.go @@ -183,7 +183,7 @@ func (c *JxOrderController) GetMatterOrderStatus() { // @router /RefreshAllMatterOrderStatus [put] func (c *JxOrderController) RefreshAllMatterOrderStatus() { c.callRefreshAllMatterOrderStatus(func(params *tJxorderRefreshAllMatterOrderStatusParams) (retVal interface{}, errCode string, err error) { - err = localjx.RefreshAllMatterOrderStatus() + err = localjx.RefreshAllMatterOrderStatus(params.Ctx) return retVal, "", err }) } From 3e5ced401c400b8ca86eacb659fe1662ca7bb643 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 23 Mar 2020 11:37:26 +0800 Subject: [PATCH 273/286] =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E5=A2=9E=E5=8A=A0ctx?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 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 14e2ad460..430f6884f 100644 --- a/business/jxstore/misc/misc.go +++ b/business/jxstore/misc/misc.go @@ -321,7 +321,7 @@ func doDailyWork() { cms.CurVendorSync.SyncStore2(jxcontext.AdminCtx, dao.GetDB(), nil, nil, true, true) syncStoreSku() - localjx.RefreshAllMatterOrderStatus() + localjx.RefreshAllMatterOrderStatus(jxcontext.AdminCtx) InitEx() // 每天补全前一天与当天的订单 From 0ae380e94b97797471f493975ae161b7d1011753 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 23 Mar 2020 18:22:21 +0800 Subject: [PATCH 274/286] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=A7=84=E6=A0=BC?= =?UTF-8?q?=E5=88=B7=E4=BA=AC=E8=A5=BF=E4=BB=B7=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 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 ff16e54e8..84f27eb88 100644 --- a/business/jxstore/cms/sku.go +++ b/business/jxstore/cms/sku.go @@ -1135,7 +1135,7 @@ func refreshStoreSkuPrice(ctx *jxcontext.Context, db *dao.DaoDB, skuID int) (err storeID := v.StoreID storeDetail, err := dao.GetStoreDetail(db, storeID, model.VendorIDJX) if err != nil { - return err + return nil } storeSku := &model.StoreSkuBind{} storeSku.ID = v.BindID From b0e33ac9aa53e0cd2c670adf6fbf5af557d96e83 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 23 Mar 2020 18:28:14 +0800 Subject: [PATCH 275/286] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=A7=84=E6=A0=BC?= =?UTF-8?q?=E5=88=B7=E4=BA=AC=E8=A5=BF=E4=BB=B7=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/sku.go | 59 ++++++++++++++++++++----------------- 1 file changed, 32 insertions(+), 27 deletions(-) diff --git a/business/jxstore/cms/sku.go b/business/jxstore/cms/sku.go index 84f27eb88..c121a91b9 100644 --- a/business/jxstore/cms/sku.go +++ b/business/jxstore/cms/sku.go @@ -1121,34 +1121,39 @@ func UpdateSku(ctx *jxcontext.Context, skuID int, payload map[string]interface{} } func refreshStoreSkuPrice(ctx *jxcontext.Context, db *dao.DaoDB, skuID int) (err error) { - dao.Begin(db) - defer func() { - if r := recover(); r != nil || err != nil { - dao.Rollback(db) - if r != nil { - panic(r) - } - } - }() list, err := dao.GetStoreSkusAndSkuName(db, nil, []int{skuID}, nil) - for _, v := range list { - storeID := v.StoreID - storeDetail, err := dao.GetStoreDetail(db, storeID, model.VendorIDJX) - if err != nil { - return nil - } - storeSku := &model.StoreSkuBind{} - storeSku.ID = v.BindID - storeSku.JdSyncStatus = v.JdSyncStatus | model.SyncFlagPriceMask - storeSku.MtwmSyncStatus = v.MtwmSyncStatus | model.SyncFlagPriceMask - storeSku.EbaiSyncStatus = v.EbaiSyncStatus | model.SyncFlagPriceMask - storeSku.Price = jxutils.CaculateSkuPrice(int(v.UnitPrice), v.SpecQuality, v.SpecUnit, v.Unit) - storeSku.JxPrice = jxutils.CaculatePriceByPricePack(storeDetail.PricePercentagePackObj, int(storeDetail.PricePercentage), int(storeSku.Price)) - storeSku.LastOperator = ctx.GetUserName() - storeSku.UpdatedAt = time.Now() - dao.UpdateEntity(db, storeSku, "Price", "JdSyncStatus", "MtwmSyncStatus", "EbaiSyncStatus", "JxPrice") - } - dao.Commit(db) + task := tasksch.NewParallelTask("refreshStoreSkuPrice", tasksch.NewParallelConfig().SetParallelCount(1).SetIsContinueWhenError(true), ctx, + func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { + v := batchItemList[0].(*dao.StoreSkuAndName) + storeID := v.StoreID + storeDetail, _ := dao.GetStoreDetail(db, storeID, model.VendorIDJX) + if storeDetail == nil { + return retVal, err + } + storeSku := &model.StoreSkuBind{} + storeSku.ID = v.BindID + storeSku.JdSyncStatus = v.JdSyncStatus | model.SyncFlagPriceMask + storeSku.MtwmSyncStatus = v.MtwmSyncStatus | model.SyncFlagPriceMask + storeSku.EbaiSyncStatus = v.EbaiSyncStatus | model.SyncFlagPriceMask + storeSku.Price = jxutils.CaculateSkuPrice(int(v.UnitPrice), v.SpecQuality, v.SpecUnit, v.Unit) + storeSku.JxPrice = jxutils.CaculatePriceByPricePack(storeDetail.PricePercentagePackObj, int(storeDetail.PricePercentage), int(storeSku.Price)) + storeSku.LastOperator = ctx.GetUserName() + storeSku.UpdatedAt = time.Now() + dao.Begin(db) + defer func() { + if r := recover(); r != nil || err != nil { + dao.Rollback(db) + if r != nil { + panic(r) + } + } + }() + dao.UpdateEntity(db, storeSku, "Price", "JdSyncStatus", "MtwmSyncStatus", "EbaiSyncStatus", "JxPrice") + dao.Commit(db) + return retVal, err + }, list) + tasksch.HandleTask(task, nil, true).Run() + _, err = task.GetResult(0) return err } From afb20a6616f9f5283f2b271a8a0c98dc14fa560b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 24 Mar 2020 08:54:30 +0800 Subject: [PATCH 276/286] =?UTF-8?q?=E7=89=A9=E6=96=99=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E4=B8=8D=E5=88=86=E5=8C=85=E5=9C=B0=E5=9D=80=E8=A1=A5=E5=85=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/order.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index f2ffbf040..2e0cc0538 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -198,6 +198,9 @@ func CreateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64, if err != nil { return nil, err } + if fromStoreID != 0 { + checkMatterDeliveryAddress(deliveryAddress) + } if createType != OrderCreateTypePre { if outJxOrder.TotalPrice != jxOrder.TotalPrice { return nil, fmt.Errorf("商品或配送信息发生改变,请重新下单") From c1811a33dc0fa1bc6a04c6d2b22761dad047d67d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 24 Mar 2020 10:33:11 +0800 Subject: [PATCH 277/286] =?UTF-8?q?=E7=89=A9=E6=96=99=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E9=87=8D=E5=8F=91=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/model/dao/dao_order.go | 15 +++ business/partner/purchase/jx/localjx/order.go | 112 ++++++++++++++---- controllers/jx_order2.go | 14 +++ routers/commentsRouter_controllers.go | 9 ++ 4 files changed, 128 insertions(+), 22 deletions(-) diff --git a/business/model/dao/dao_order.go b/business/model/dao/dao_order.go index a9583766d..c91a89b55 100644 --- a/business/model/dao/dao_order.go +++ b/business/model/dao/dao_order.go @@ -1244,3 +1244,18 @@ func GetWaybills(db *DaoDB, vendorOrderID string) (waybills []*model.Waybill, er err = GetRows(db, &waybills, sql, sqlParams) return waybills, err } + +func GetMatterChildOrders(db *DaoDB, vendorOrderID string) (goods []*model.GoodsOrder, err error) { + sql := `SELECT * + FROM goods_order + WHERE vendor_order_id LIKE ? OR vendor_order_id LIKE ? + AND vendor_id = ? + ORDER BY vendor_order_id DESC + ` + sqlParams := []interface{}{ + vendorOrderID + "0%", vendorOrderID + "1%", + model.VendorIDJX, + } + err = GetRows(db, &goods, sql, sqlParams) + return goods, err +} diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index 2e0cc0538..1d0c5bfcd 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -45,7 +45,8 @@ const ( wxAppID = "wx4b5930c13f8b1170" - autoCancelOrderReason = "支付超时,系统自动取消!" + autoCancelOrderReason = "支付超时,系统自动取消!" + cancelMatterOrderReason = "失败重发!" ) type JxSkuInfo struct { @@ -867,23 +868,7 @@ func orderSolutionForWuLiao(order *model.GoodsOrder) (err error) { } dao.CreateEntity(db, waybill) } else { //如果重量超过5kg则需要进行拆单分包,商品分包规则。最后一个包不超过5kg,其他包不超过3kg - jxOrder := &JxOrderInfo{} - jxOrder.StoreID = order.StoreID - weight := 0 - var skus []*JxSkuInfo - for _, v := range orderSkus { - weight += v.Weight * v.Count - sku := &JxSkuInfo{} - sku.SkuID = v.SkuID - sku.SalePrice = v.SalePrice - sku.Name = v.SkuName - sku.Weight = v.Weight - sku.Count = v.Count - skus = append(skus, sku) - } - jxOrder.Skus = skus - jxOrder.Weight = weight - outOrders, _, _ := tryToSplitMatterOrder(jxOrder) + outOrders, _, _ := tryToSplitMatterOrder(buildJxOrderInfo(order, orderSkus)) //以下为仿照CreateOrder,改了一些参数 for k, v := range outOrders { outJxOrder, deliveryAddress, err := generateOrder(jxcontext.AdminCtx, v, order.AddressID, order.FromStoreID, order.UserID) @@ -981,10 +966,7 @@ func CancelMatterOrder(db *dao.DaoDB, order *model.GoodsOrder, reason string) (e } _, err = api.JdEclpAPI.CancelOrder(order.EclpOutID) } else { - var goodsList []*model.GoodsOrder - sql := "SELECT * FROM goods_order WHERE vendor_order_id LIKE ? OR vendor_order_id LIKE ? AND vendor_id = ?" - sqlParams := []interface{}{order.VendorOrderID + "0%", order.VendorOrderID + "1%", model.VendorIDJX} - err = dao.GetRows(db, &goodsList, sql, sqlParams) + goodsList, err := dao.GetMatterChildOrders(db, order.VendorOrderID) if err == nil && len(goodsList) > 0 { for _, v := range goodsList { _, err = api.JdEclpAPI.CancelOrder(v.EclpOutID) @@ -1552,3 +1534,89 @@ func checkMatterDeliveryAddress(deliveryAddress *dao.UserDeliveryAddressEx) { } } } + +func SendFailedMatterOrder(ctx *jxcontext.Context, vendorOrderID string) (err error) { + var ( + db = dao.GetDB() + ) + order, err := partner.CurOrderManager.LoadOrder(vendorOrderID, model.VendorIDJX) + if err != nil { + return err + } + if order == nil || order.StoreID != model.MatterStoreID || order.FromStoreID == 0 { + return fmt.Errorf("只允许物料店重发物料订单调用此接口!") + } + queryOrderStatus, err := api.JdEclpAPI.QueryOrderStatus(order.EclpOutID) + if len(queryOrderStatus.OrderStatusList) > 0 { + if queryOrderStatus.OrderStatusList[len(queryOrderStatus.OrderStatusList)-1].SoStatusCode == jdeclpapi.SoStatusCode10022 { //表示该订单在京东物流为暂停 + if len(order.VendorOrderID) == 14 && order.EclpOutID != "" { //这是不分包的订单 + _, err = createMatterOrder(buildJxOrderInfo(order, order.Skus), order, int64(00)) + err = CancelMatterOrder(db, order, cancelMatterOrderReason) + for _, v := range order.Skus { + cms.RefreshMatterStock(jxcontext.AdminCtx, v.SkuID) + } + } else if len(order.VendorOrderID) == 14 && order.EclpOutID == "" { //这是分包的主订单 + goodsList, err := dao.GetMatterChildOrders(db, order.VendorOrderID) + if err != nil { + return err + } + if len(goodsList) > 0 { + for _, v := range goodsList { + cOrder, err := partner.CurOrderManager.LoadOrder(v.VendorOrderID, model.VendorIDJX) + if err != nil { + return err + } + suffix := utils.Str2Int64(cOrder.VendorOrderID[len(cOrder.VendorOrderID)-2:]) + int64(len(goodsList)) + _, err = createMatterOrder(buildJxOrderInfo(cOrder, cOrder.Skus), cOrder, suffix) + for _, v := range cOrder.Skus { + cms.RefreshMatterStock(jxcontext.AdminCtx, v.SkuID) + } + } + } + err = CancelMatterOrder(db, order, cancelMatterOrderReason) + } else if len(order.VendorOrderID) == 16 && order.EclpOutID != "" { // 这是分包的子订单 + return fmt.Errorf("请重发主订单!主订单号:[%v]", order.VendorOrderID[len(order.VendorOrderID)-2:]) + } + } else { + return fmt.Errorf("只允许物流订单为暂停才能调用此接口!") + } + } + return err +} + +func createMatterOrder(jxOrder *JxOrderInfo, order *model.GoodsOrder, newOrderIDSuffix int64) (order2 *model.GoodsOrder, err error) { + outJxOrder, deliveryAddress, err := generateOrder(jxcontext.AdminCtx, jxOrder, order.AddressID, order.FromStoreID, order.UserID) + if err != nil { + return nil, err + } + outJxOrder.OrderID = utils.Str2Int64(order.VendorOrderID)*100 + newOrderIDSuffix + checkMatterDeliveryAddress(deliveryAddress) + order2, err2 := jxOrder2GoodsOrder(jxcontext.AdminCtx, outJxOrder, deliveryAddress, order.UserID) + if err = err2; err == nil { + order2.AddressID = order.AddressID + order2.Status = model.OrderStatusDelivering + err = partner.CurOrderManager.OnOrderNew(order2, model.Order2Status(order2)) + err = orderSolutionForWuLiao(order2) + } + return order2, err +} + +func buildJxOrderInfo(order *model.GoodsOrder, orderSkus []*model.OrderSku) (jxOrder *JxOrderInfo) { + jxOrder = &JxOrderInfo{} + jxOrder.StoreID = order.StoreID + weight := 0 + var skus []*JxSkuInfo + for _, v := range orderSkus { + weight += v.Weight * v.Count + sku := &JxSkuInfo{} + sku.SkuID = v.SkuID + sku.SalePrice = v.SalePrice + sku.Name = v.SkuName + sku.Weight = v.Weight + sku.Count = v.Count + skus = append(skus, sku) + } + jxOrder.Skus = skus + jxOrder.Weight = weight + return jxOrder +} diff --git a/controllers/jx_order2.go b/controllers/jx_order2.go index eb63049fd..62b9fe70b 100644 --- a/controllers/jx_order2.go +++ b/controllers/jx_order2.go @@ -187,3 +187,17 @@ func (c *JxOrderController) RefreshAllMatterOrderStatus() { return retVal, "", err }) } + +// @Title 重发物料订单 +// @Description 重发物料订单 +// @Param token header string true "认证token" +// @Param vendorOrderID formData string true "订单ID" +// @Success 200 {object} controllers.CallResult +// @Failure 200 {object} controllers.CallResult +// @router /SendFailedMatterOrder [post] +func (c *JxOrderController) SendFailedMatterOrder() { + c.callSendFailedMatterOrder(func(params *tJxorderSendFailedMatterOrderParams) (retVal interface{}, errCode string, err error) { + err = localjx.SendFailedMatterOrder(params.Ctx, params.VendorOrderID) + return retVal, "", err + }) +} diff --git a/routers/commentsRouter_controllers.go b/routers/commentsRouter_controllers.go index 420e08a3a..061cf5d33 100644 --- a/routers/commentsRouter_controllers.go +++ b/routers/commentsRouter_controllers.go @@ -718,6 +718,15 @@ func init() { Filters: nil, Params: nil}) + beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:JxOrderController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:JxOrderController"], + beego.ControllerComments{ + Method: "SendFailedMatterOrder", + Router: `/SendFailedMatterOrder`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:JxShopController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:JxShopController"], beego.ControllerComments{ Method: "JxMsg", From b3659d260d6755c240d596d6817c9bdc24ab04e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 24 Mar 2020 10:57:07 +0800 Subject: [PATCH 278/286] =?UTF-8?q?=E7=89=A9=E6=96=99=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E9=87=8D=E5=8F=91=E5=8F=96=E6=B6=88=E5=A2=9E=E5=8A=A0=E4=BA=8B?= =?UTF-8?q?=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/order.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index 1d0c5bfcd..4e1f43fd9 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -1552,6 +1552,7 @@ func SendFailedMatterOrder(ctx *jxcontext.Context, vendorOrderID string) (err er if len(order.VendorOrderID) == 14 && order.EclpOutID != "" { //这是不分包的订单 _, err = createMatterOrder(buildJxOrderInfo(order, order.Skus), order, int64(00)) err = CancelMatterOrder(db, order, cancelMatterOrderReason) + changeOrderStatus(order.VendorOrderID, model.OrderStatusCanceled, cancelMatterOrderReason) for _, v := range order.Skus { cms.RefreshMatterStock(jxcontext.AdminCtx, v.SkuID) } @@ -1574,6 +1575,7 @@ func SendFailedMatterOrder(ctx *jxcontext.Context, vendorOrderID string) (err er } } err = CancelMatterOrder(db, order, cancelMatterOrderReason) + changeOrderStatus(order.VendorOrderID, model.OrderStatusCanceled, cancelMatterOrderReason) } else if len(order.VendorOrderID) == 16 && order.EclpOutID != "" { // 这是分包的子订单 return fmt.Errorf("请重发主订单!主订单号:[%v]", order.VendorOrderID[len(order.VendorOrderID)-2:]) } From 32e20e59e7238c65700cdbd1ca0062178b83db04 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 24 Mar 2020 15:34:30 +0800 Subject: [PATCH 279/286] =?UTF-8?q?=E8=B6=85=E6=97=B6=E4=BB=A3=E4=BB=98?= =?UTF-8?q?=E6=AC=BE=E4=BA=AC=E8=A5=BF=E8=AE=A2=E5=8D=95=E5=8F=96=E6=B6=88?= =?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/partner/purchase/jx/localjx/order.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index 4e1f43fd9..9c1eb3da3 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -1196,7 +1196,7 @@ func CancelPayTimeOutOrder(ctx *jxcontext.Context) (err error) { err = dao.GetRows(db, &orders, sql, sqlParams) for _, v := range orders { if v.OrderCreatedAt.Add(PayWaitingTime).Before(time.Now()) { - err2 := CancelOrder(ctx, v, autoCancelOrderReason) + err2 := changeOrderStatus(v.VendorOrderID, model.OrderStatusCanceled, autoCancelOrderReason) err = err2 } } From 3e50b2fdf75313a36ebe30504ed718fd7b7f845d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Wed, 25 Mar 2020 12:00:21 +0800 Subject: [PATCH 280/286] =?UTF-8?q?=E4=BA=AC=E4=B8=9C=E7=89=A9=E6=B5=81tok?= =?UTF-8?q?en=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- conf/app.conf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/conf/app.conf b/conf/app.conf index 711141e95..81beb4852 100644 --- a/conf/app.conf +++ b/conf/app.conf @@ -170,7 +170,7 @@ jd2Token = "29e0e567-c475-433a-aff0-37176ee8d8a7" jd2AppKey = "7fb947624ff847ae94ff2f068cc99652" jd2Secret = "1097abd7ef09427099b4922784af123a" -jdEclpAccessToken = "7e9c1a5fe4ac4ea48c3c572d488e60b8hnwz" +jdEclpAccessToken = "bcb6201b5b3c45a0976dcda5e2dea8aejiwm" jdEclpAppKey = "0D397F05CF11C51BCDCC81744680EBC3" jdEclpAppSecret = "f16a5e57ff4f4f428b702c40d2d4b933" @@ -286,7 +286,7 @@ dingdingCallbackURL = "http://callback-jxgy.jxc4.com/dingding/msg" getWeixinTokenURL = "http://www.jxc4.com/v2/sys/GetWXToken" getYLYTokenURL = "http://www.jxc4.com/v2/sys/GetYLYToken" -jdEclpAccessToken = "7e9c1a5fe4ac4ea48c3c572d488e60b8hnwz" +jdEclpAccessToken = "bcb6201b5b3c45a0976dcda5e2dea8aejiwm" jdEclpAppKey = "0D397F05CF11C51BCDCC81744680EBC3" jdEclpAppSecret = "f16a5e57ff4f4f428b702c40d2d4b933" @@ -380,7 +380,7 @@ jd2Token = "29e0e567-c475-433a-aff0-37176ee8d8a7" jd2AppKey = "7fb947624ff847ae94ff2f068cc99652" jd2Secret = "1097abd7ef09427099b4922784af123a" -jdEclpAccessToken = "7e9c1a5fe4ac4ea48c3c572d488e60b8hnwz" +jdEclpAccessToken = "bcb6201b5b3c45a0976dcda5e2dea8aejiwm" jdEclpAppKey = "0D397F05CF11C51BCDCC81744680EBC3" jdEclpAppSecret = "f16a5e57ff4f4f428b702c40d2d4b933" From 64e2898769a2b86d04096dadd1616ffd1635f113 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Thu, 26 Mar 2020 10:23:37 +0800 Subject: [PATCH 281/286] =?UTF-8?q?=E9=A5=BF=E9=B2=9C=E8=BE=BEcookie?= =?UTF-8?q?=E6=9A=82=E6=97=B6=E5=B1=8F=E8=94=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/event/event.go | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/business/jxstore/event/event.go b/business/jxstore/event/event.go index 5cfd08385..a4d135f37 100644 --- a/business/jxstore/event/event.go +++ b/business/jxstore/event/event.go @@ -175,16 +175,16 @@ func GetCheckVendorCookie(ctx *jxcontext.Context, vendorIDs []int, isAuto bool) errMsg += fmt.Sprintf(" 饿百账号:[饿百后台饿鲜达全国账号]的Cookie无效了!", vv) flag = true } - result2, err2 := api.EbaiAPI.GetExianDaSkuDepot("190600741") - if err2 != nil || result2 == nil { - cc := &CheckCookie{} - cc.VendorID = v - cc.VendorOrgCode = "饿鲜达供应链系统" - cc.Status = "无效" - ccList = append(ccList, cc) - errMsg += fmt.Sprintf(" 饿百账号:[饿鲜达供应链系统]的Cookie无效了!", vv) - flag = true - } + // result2, err2 := api.EbaiAPI.GetExianDaSkuDepot("190600741") + // if err2 != nil || result2 == nil { + // cc := &CheckCookie{} + // cc.VendorID = v + // cc.VendorOrgCode = "饿鲜达供应链系统" + // cc.Status = "无效" + // ccList = append(ccList, cc) + // errMsg += fmt.Sprintf(" 饿百账号:[饿鲜达供应链系统]的Cookie无效了!", vv) + // flag = true + // } case model.VendorIDMTWM: _, err := api.MtwmAPI.PackagePriceGet(mtStoreID) if err != nil { From 3b0d5549858cd128805ca72334ed08261232cbea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Thu, 26 Mar 2020 14:12:38 +0800 Subject: [PATCH 282/286] =?UTF-8?q?=E5=95=86=E5=93=81=E5=BA=93=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E5=85=A8=E5=9B=BD=E4=B8=AD=E4=BD=8D=E4=BB=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/sku.go | 6 +++++- business/model/sku.go | 11 ++++++----- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/business/jxstore/cms/sku.go b/business/jxstore/cms/sku.go index c121a91b9..505d61c5a 100644 --- a/business/jxstore/cms/sku.go +++ b/business/jxstore/cms/sku.go @@ -392,9 +392,11 @@ func GetSkuNames(ctx *jxcontext.Context, keyword string, isBySku bool, params ma FROM sku_name t1 LEFT JOIN sku t2 ON t1.id = t2.name_id AND t2.deleted_at = ? LEFT JOIN sku_name_place_bind t3 ON t1.id = t3.name_id + LEFT JOIN price_refer_snapshot t4 ON t4.city_code = ? AND t4.snapshot_at = ? AND t4.sku_id = t2.id WHERE t1.deleted_at = ?` sqlParams := []interface{}{ utils.DefaultTimeValue, + 0, utils.Time2Date(time.Now().AddDate(0, 0, -1)), utils.DefaultTimeValue, } if keyword != "" { @@ -561,7 +563,8 @@ func GetSkuNames(ctx *jxcontext.Context, keyword string, isBySku bool, params ma t1.upc, t1.ex_prefix, t1.ex_prefix_begin, - t1.ex_prefix_end` + t1.ex_prefix_end, + t4.mid_unit_price` if isBySku { sql += `, t2.id` @@ -595,6 +598,7 @@ func GetSkuNames(ctx *jxcontext.Context, keyword string, isBySku bool, params ma t1.ex_prefix, t1.ex_prefix_begin, t1.ex_prefix_end, + t4.mid_unit_price, CONCAT("[", GROUP_CONCAT(DISTINCT CONCAT('{"id":', t2.id, ',"comment":"', t2.comment, '","status":', t2.status, ',"createdAt":"', CONCAT(REPLACE(t2.created_at," ","T"),"+08:00"), '","updatedAt":"', CONCAT(REPLACE(t2.updated_at," ","T"),"+08:00"), '","lastOperator":"', t2.last_operator, '","specQuality":', t2.spec_quality, ',"specUnit":"', t2.spec_unit, diff --git a/business/model/sku.go b/business/model/sku.go index ee2f66405..c2e224049 100644 --- a/business/model/sku.go +++ b/business/model/sku.go @@ -282,9 +282,10 @@ type SkuWithVendor struct { type SkuNameExt struct { SkuName - Skus []*SkuWithVendor `orm:"-" json:"skus"` - SkusStr string `json:"-"` - FullName string `json:"fullName"` - Places []int `orm:"-" json:"places"` - PlacesStr string `json:"-"` + Skus []*SkuWithVendor `orm:"-" json:"skus"` + SkusStr string `json:"-"` + FullName string `json:"fullName"` + Places []int `orm:"-" json:"places"` + PlacesStr string `json:"-"` + MidUnitPrice int `json:"midUnitPrice"` } From b0fdf7af1db6e31e97453bdf37f662ea97e0dd36 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 30 Mar 2020 09:02:52 +0800 Subject: [PATCH 283/286] =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E7=BB=8F=E7=BA=AC?= =?UTF-8?q?=E5=BA=A6=E6=9F=A5=E8=AF=A2=E9=97=A8=E5=BA=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store.go | 1 + 1 file changed, 1 insertion(+) diff --git a/business/jxstore/cms/store.go b/business/jxstore/cms/store.go index 7b15f1dcc..4eceff2d4 100644 --- a/business/jxstore/cms/store.go +++ b/business/jxstore/cms/store.go @@ -2399,6 +2399,7 @@ func GetStoreListByLocation(ctx *jxcontext.Context, lng, lat float64, needWalkDi jxutils.StandardCoordinate2Int(10000), jxutils.StandardCoordinate2Int(0), jxutils.StandardCoordinate2Int(10000), + model.YES, } dao.GetRows(dao.GetDB(), &storeList2, sql, sqlParams2...) if len(storeList2) > 1 { From e931278bc1d2868d243928300abdb53d4c47f34d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 30 Mar 2020 10:04:46 +0800 Subject: [PATCH 284/286] =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E7=BB=8F=E7=BA=AC?= =?UTF-8?q?=E5=BA=A6=E6=9F=A5=E8=AF=A2=E9=97=A8=E5=BA=97=E6=94=B9=E4=B8=BA?= =?UTF-8?q?=E9=BB=98=E8=AE=A4=E6=A8=A1=E6=9D=BF=E5=BA=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store.go | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/business/jxstore/cms/store.go b/business/jxstore/cms/store.go index 4eceff2d4..a0fe97b87 100644 --- a/business/jxstore/cms/store.go +++ b/business/jxstore/cms/store.go @@ -2391,15 +2391,24 @@ func GetStoreListByLocation(ctx *jxcontext.Context, lng, lat float64, needWalkDi // 为了审核用 if len(storeList2) == 0 { + sql2 := ` + SELECT t1.*, + city.name city_name + FROM store t1 + JOIN place city ON city.code = t1.city_code + WHERE t1.deleted_at = ? AND t1.status <> ? AND id = ? + ORDER BY t1.id + ` sqlParams2 := []interface{}{ - model.VendorIDJX, utils.DefaultTimeValue, model.StoreStatusDisabled, + // model.VendorIDJX, utils.DefaultTimeValue, model.StoreStatusDisabled, utils.DefaultTimeValue, model.StoreStatusDisabled, - jxutils.StandardCoordinate2Int(0), - jxutils.StandardCoordinate2Int(10000), - jxutils.StandardCoordinate2Int(0), - jxutils.StandardCoordinate2Int(10000), - model.YES, + // jxutils.StandardCoordinate2Int(0), + // jxutils.StandardCoordinate2Int(10000), + // jxutils.StandardCoordinate2Int(0), + // jxutils.StandardCoordinate2Int(10000), + // model.YES, + 102919, //商城模板店 } dao.GetRows(dao.GetDB(), &storeList2, sql, sqlParams2...) if len(storeList2) > 1 { From 58a044b60a932aaa553e54b122ae427c499600f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 30 Mar 2020 10:06:57 +0800 Subject: [PATCH 285/286] =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E7=BB=8F=E7=BA=AC?= =?UTF-8?q?=E5=BA=A6=E6=9F=A5=E8=AF=A2=E9=97=A8=E5=BA=97=E6=94=B9=E4=B8=BA?= =?UTF-8?q?=E9=BB=98=E8=AE=A4=E6=A8=A1=E6=9D=BF=E5=BA=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/jxstore/cms/store.go b/business/jxstore/cms/store.go index a0fe97b87..e5b2963f2 100644 --- a/business/jxstore/cms/store.go +++ b/business/jxstore/cms/store.go @@ -2410,7 +2410,7 @@ func GetStoreListByLocation(ctx *jxcontext.Context, lng, lat float64, needWalkDi // model.YES, 102919, //商城模板店 } - dao.GetRows(dao.GetDB(), &storeList2, sql, sqlParams2...) + dao.GetRows(dao.GetDB(), &storeList2, sql2, sqlParams2...) if len(storeList2) > 1 { storeList2 = storeList2[:1] } From 5d13017af2fa688d764ca466ae5212abfda47517 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 30 Mar 2020 10:11:33 +0800 Subject: [PATCH 286/286] =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E7=BB=8F=E7=BA=AC?= =?UTF-8?q?=E5=BA=A6=E6=9F=A5=E8=AF=A2=E9=97=A8=E5=BA=97=E6=94=B9=E4=B8=BA?= =?UTF-8?q?=E9=BB=98=E8=AE=A4=E6=A8=A1=E6=9D=BF=E5=BA=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store.go | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/business/jxstore/cms/store.go b/business/jxstore/cms/store.go index e5b2963f2..343f5bb8f 100644 --- a/business/jxstore/cms/store.go +++ b/business/jxstore/cms/store.go @@ -2396,8 +2396,7 @@ func GetStoreListByLocation(ctx *jxcontext.Context, lng, lat float64, needWalkDi city.name city_name FROM store t1 JOIN place city ON city.code = t1.city_code - WHERE t1.deleted_at = ? AND t1.status <> ? AND id = ? - ORDER BY t1.id + WHERE t1.deleted_at = ? AND t1.status <> ? AND t1.id = ? ` sqlParams2 := []interface{}{ // model.VendorIDJX, utils.DefaultTimeValue, model.StoreStatusDisabled, @@ -2411,9 +2410,9 @@ func GetStoreListByLocation(ctx *jxcontext.Context, lng, lat float64, needWalkDi 102919, //商城模板店 } dao.GetRows(dao.GetDB(), &storeList2, sql2, sqlParams2...) - if len(storeList2) > 1 { - storeList2 = storeList2[:1] - } + // if len(storeList2) > 1 { + // storeList2 = storeList2[:1] + // } } // 如果要求以步行距离来算