From e5db4f27b18bdbd0be8cc252f02081bbca1cae2d 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, 8 Jan 2020 14:26:31 +0800 Subject: [PATCH 1/6] =?UTF-8?q?=E6=93=8D=E4=BD=9C=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/cms.go | 2 ++ business/jxstore/event/event.go | 51 ++++++++++++++++++++++++++++++--- business/model/const.go | 19 ++++++++++++ business/model/sync_map.go | 1 + 4 files changed, 69 insertions(+), 4 deletions(-) diff --git a/business/jxstore/cms/cms.go b/business/jxstore/cms/cms.go index b73f2649d..63a173773 100644 --- a/business/jxstore/cms/cms.go +++ b/business/jxstore/cms/cms.go @@ -141,6 +141,8 @@ func InitServiceInfo(version string, buildTime time.Time, gitCommit string) { "autoReplyTypeName": model.AutoReplyTypeName, "complaintReasons": model.ComplaintReasons, "supplementType": model.SupplementTypeName, + "operateType": model.OperateTypeName, + "thingType": model.ThingTypeName, }, } } diff --git a/business/jxstore/event/event.go b/business/jxstore/event/event.go index 429c57de3..7a356cfe4 100644 --- a/business/jxstore/event/event.go +++ b/business/jxstore/event/event.go @@ -1,11 +1,54 @@ package event -import "git.rosy.net.cn/jx-callback/business/jxutils/jxcontext" +import ( + "strings" + "time" -func AddOperateEvent(ctx *jxcontext.Context) { + "git.rosy.net.cn/jx-callback/business/model/dao" + "git.rosy.net.cn/jx-callback/business/model" + + "git.rosy.net.cn/jx-callback/business/jxutils/jxcontext" +) + +func AddOperateEvent(ctx *jxcontext.Context, accessUUID string) (err error) { + var ( + apiFunction string + db = dao.GetDB() + ) + url := ctx.GetRequest().URL.Path + if url != "" { + apiFunction = url[strings.LastIndex(url, "/")+1 : len(url)] + } + event := &model.OperateEvent{ + CreatedAt: time.Now(), + LastOperator: ctx.GetUserName(), + APIFunction: apiFunction, + UserID: ctx.GetUserID(), + AccessUUID: accessUUID, + } + dao.Begin(db) + defer func() { + if r := recover(); r != nil { + dao.Rollback(db) + panic(r) + } + }() + err = dao.CreateEntity(db, event) + dao.Commit(db) + return err } -func AddOperateEventDetail(ctx *jxcontext.Context) { - +func AddOperateEventDetail(operateEventDetail *model.OperateEventDetail) (err error) { + db := dao.GetDB() + dao.Begin(db) + defer func() { + if r := recover(); r != nil { + dao.Rollback(db) + panic(r) + } + }() + err = dao.CreateEntity(db, operateEventDetail) + dao.Commit(db) + return err } diff --git a/business/model/const.go b/business/model/const.go index 1e60f5772..00b9bf488 100644 --- a/business/model/const.go +++ b/business/model/const.go @@ -105,6 +105,19 @@ var ( Coupon: "优惠券", } + OperateTypeName = map[int]string{ + OperateAdd: "新增", + OperateUpdate: "修改", + OperateDelete: "删除", + } + + ThingTypeName = map[int]string{ + ThingTypeCategory: "分类", + ThingTypeSku: "门店商品", + ThingTypeSkuName: "商品库", + ThingTypeStore: "门店", + } + MultiStoresVendorMap = map[int]int{ VendorIDJD: 1, VendorIDMTWM: 0, @@ -241,6 +254,12 @@ const ( Coupon = 2 //优惠券 ) +const ( + OperateAdd = 1 //新增操作 + OperateUpdate = 2 //修改操作 + OperateDelete = 4 //删除操作 +) + const ( WaybillStatusRefuseFailedGetGoods = -70 WaybillStatusUnknown = 0 diff --git a/business/model/sync_map.go b/business/model/sync_map.go index 5ca1dcbae..1a91751bf 100644 --- a/business/model/sync_map.go +++ b/business/model/sync_map.go @@ -4,6 +4,7 @@ const ( ThingTypeCategory = 1 ThingTypeSkuName = 2 ThingTypeSku = 3 + ThingTypeStore = 4 ) type ThingMap struct { From c196e7aab95f5c3a706319351e34b30c6c3ea057 Mon Sep 17 00:00:00 2001 From: gazebo Date: Wed, 8 Jan 2020 18:06:53 +0800 Subject: [PATCH 2/6] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=94=AF=E4=BB=98?= =?UTF-8?q?=E5=AE=9D=E7=99=BB=E5=BD=95=E6=96=B9=E5=BC=8F=EF=BC=9Aalipaycod?= =?UTF-8?q?e?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/auth2/authprovider/alipay/alipay.go | 43 ++++++++++++++++++++ conf/app.conf | 3 ++ globals/api/api.go | 7 ++++ main.go | 8 +++- 4 files changed, 60 insertions(+), 1 deletion(-) create mode 100644 business/auth2/authprovider/alipay/alipay.go diff --git a/business/auth2/authprovider/alipay/alipay.go b/business/auth2/authprovider/alipay/alipay.go new file mode 100644 index 000000000..8c137ed68 --- /dev/null +++ b/business/auth2/authprovider/alipay/alipay.go @@ -0,0 +1,43 @@ +package alipay + +import ( + "git.rosy.net.cn/baseapi/platformapi/alipayapi" + "git.rosy.net.cn/jx-callback/business/auth2" + "git.rosy.net.cn/jx-callback/business/auth2/authprovider" + "git.rosy.net.cn/jx-callback/globals" + "git.rosy.net.cn/jx-callback/globals/api" +) + +const ( + AuthType = "alipaycode" +) + +type Auther struct { + authprovider.DefAuther +} + +var ( + AutherObj *Auther +) + +func init() { + AutherObj = new(Auther) + auth2.RegisterAuther(AuthType, AutherObj) +} + +func (a *Auther) VerifySecret(dummy, code string) (authBindEx *auth2.AuthBindEx, err error) { + globals.SugarLogger.Debugf("VerifySecret dummy:%s, code:%s", dummy, code) + tokenInfo, err := api.AliPayAPI.SystemAuthToken(alipayapi.GrantTypeCode, code, "") + if err == nil { + userInfo, err2 := api.AliPayAPI.UserInfoShare(tokenInfo.AccessToken) + if err = err2; err == nil { + if authBindEx, err = a.UnionFindAuthBind(AuthType, nil, userInfo.UserID, "", userInfo); err == nil { + authBindEx.UserHint = &auth2.UserBasic{ + Name: userInfo.NickName, + Avatar: userInfo.Avatar, + } + } + } + } + return authBindEx, err +} diff --git a/conf/app.conf b/conf/app.conf index bf065214d..280d9d507 100644 --- a/conf/app.conf +++ b/conf/app.conf @@ -83,6 +83,9 @@ dingdingCallbackToken = "j9JMGyaZs&vxqt&S" dingdingCallbackURL = "http://callback.test.jxc4.com/dingding/msg" dingdingCorpID = "ding7ab5687f3784a8db" +alipayAppID = "2019110769024042" +alipayPrivateKey = "MIIEpAIBAAKCAQEAnsbBe0lrK5c4/xhb7ZLDWjGRWmIaj7HyV4LQ9X4EcTV5I5IKLezH1YaNLXytD/VXc5NsJp9IDTFLyOYdXee8lJxAeSQbuBBy1+xLd6qK2JQdVUGP3RZ0pAwVZSc9m0JKj5pYEeA2lvgh4NhSfGEw4BdZacpiDjFWkrQYl+RZkl/eIH2w7sA4wXs/hLSnPiG0VRtLtyYzfGCQdEJNjP5PA6V6CJTd68qTytLnpuaTuVxIYHGGSNd08694b1wOuGpFv6YK+mZkfaGkFoEpp3gUhEQ05duKjNBY71f0ez/Fym7GQYdHNXlsIvCmGQzklkfvQkHj7+MvPpsME4PkqQjRgwIDAQABAoIBAHLzwzDXPtgYbBOEN0oRb43lRS8Cx+gxFRt2goK58c1kwYeXO/dz7loRSDUehs1++wmaOjrcJvYmMpAIykoqdMXDOop6MfdZMUxSr3C78DpNQc9v4BBZKal7diH9/wRhQkolnI2UnvE+RIjdFRsn4pLbVMja1ZMg9WTRLt0JXjAyQZus9pADWADK12OSEIHBvz7/+kiFpq0aM+KPMElQG/mSDg1ESmzfYEbXYmPoiMwU+9frtnprrNdG9h143pb7mdzbXTt/8DbmpFgCfKL7ItpsC3VcZFDsj1Sd3gewrU+FLifH6oPGHTiwEoHNIn5m0RdPVEFoQnQxZnqxzDVBVYECgYEA5zCnBZBLotumxVdIRwncAXKEV5nMHJV2NKVmAc20vHJTsmI4/kA9B2Bjx9jzwwctBzFp1pIadccSbFO48Z5Hn0NdwYOnqba9W50n6R7wO3SnqQuCaoyTAvfkcjrZjZqq88Opa9tKGjD69MFFa+mnK7O7s8B7X6hCa/h80s0zDmkCgYEAr9C5yACb0haAp1WkuYf0B2TyPIofhYOXsjHcJqref+mDHgXSqPntYsXl/RVpJJSAGXJ/CnPd+jHQ0Fis2LuNpZ6ntYzcGoTQtnXx8BdQsnyEjyAvzxWv2JJV12zoSTEW7HL078qqEgbzmort6A8edRiv0kIoNf054QAtv/C9OwsCgYBPATVSlWkDkoR/U8CDZj8kz3miZhB2hC0M+KjPXPiynW80upQ3bsRsTOhMVzuWHlGo7533kZ4xOYJ2OnYtO6XGK0NS6ibVvHkhYadN5yC5cLgK8L/0oW1rykLrNmk6FuzsuKShEyNTqAFauuF6azKRoK44U0LWAa4RL62YbD9SYQKBgQCD0Qp5WXt6WES9MQj/0V607IpxuV1IzRC/GYLlutZ3MKyNpe/7oObKV3XH+nWKZ4xjh+SYAac8Hn1guBtfo77fncQ/6gxcFZgmNOfgCpsGNzVr2cX+jVP6HD0f9xdxSMzXGplp75jzSyL5i5AznKJJSOkJy3A6ilEK0Qd8ERLPYQKBgQC/QSV0c71x3nYz3koOQv7s36i5R0jeHnadSMyGUlrYmn/TaXj0KaUaEYRcgJyWB/dxy3cde8EKlqg0q80Zc6ExkZKhpO6k1lj9Bta+l+KAyVFroYDIy/b0Wukr2qV1mkMK0FQ0X2hVbv6TJBq5RMNeYAy1shOeWIwaS5muSYm4Ig==" + feieUser = "jianhua.xu@rosy.net.cn" feieKey = "2JfKh8TyheQ9mwss" diff --git a/globals/api/api.go b/globals/api/api.go index b22fbca19..d568fb762 100644 --- a/globals/api/api.go +++ b/globals/api/api.go @@ -6,6 +6,7 @@ import ( aliyunsmsclient "github.com/KenmyZhang/aliyun-communicate" "git.rosy.net.cn/baseapi/platformapi" + "git.rosy.net.cn/baseapi/platformapi/alipayapi" "git.rosy.net.cn/baseapi/platformapi/autonavi" "git.rosy.net.cn/baseapi/platformapi/baidunavi" "git.rosy.net.cn/baseapi/platformapi/dadaapi" @@ -50,6 +51,8 @@ var ( WeixinPageAPI *weixinapi.API // 用户微信扫码登录 + AliPayAPI *alipayapi.API + AutonaviAPI *autonavi.API BaiDuNaviAPI *baidunavi.API QiniuAPI *qbox.Mac @@ -168,6 +171,10 @@ func Init() { DingDingAPI = dingdingapi.NewWithAgentID(beego.AppConfig.DefaultInt64("dingdingAgentID", 0), beego.AppConfig.DefaultString("dingdingCorpID", ""), beego.AppConfig.DefaultString("dingdingAppKey", ""), beego.AppConfig.DefaultString("dingdingSecret", "")) DingDingQRCodeAPI = dingdingapi.New(beego.AppConfig.DefaultString("dingdingCorpID", ""), beego.AppConfig.DefaultString("dingdingQRCodeAppKey", ""), beego.AppConfig.DefaultString("dingdingQRCodeSecret", "")) + if aplipayAppID := beego.AppConfig.DefaultString("aplipayAppID", ""); aplipayAppID != "" { + AliPayAPI = alipayapi.New(aplipayAppID, beego.AppConfig.String("alipayPrivateKey")) + } + FeieAPI = feieapi.New(beego.AppConfig.DefaultString("feieUser", ""), beego.AppConfig.DefaultString("feieKey", "")) XiaoWMAPI = xiaowmapi.New(beego.AppConfig.DefaultInt("xiaoWMAppID", 0), beego.AppConfig.DefaultString("xiaoWMAppKey", "")) YilianyunAPI = yilianyunapi.New(beego.AppConfig.DefaultString("yilianyunClientID", ""), beego.AppConfig.DefaultString("yilianyunClientSecret", "")) diff --git a/main.go b/main.go index 9b0d8d912..00908e8c2 100644 --- a/main.go +++ b/main.go @@ -33,11 +33,17 @@ import ( _ "git.rosy.net.cn/jx-callback/business/partner/printer/zhongwu" _ "git.rosy.net.cn/jx-callback/business/partner/purchase/ebai" - _ "git.rosy.net.cn/jx-callback/business/partner/purchase/jx" _ "git.rosy.net.cn/jx-callback/business/partner/purchase/jd" + _ "git.rosy.net.cn/jx-callback/business/partner/purchase/jx" _ "git.rosy.net.cn/jx-callback/business/partner/purchase/mtwm" _ "git.rosy.net.cn/jx-callback/business/partner/purchase/weimob/wsc" + _ "git.rosy.net.cn/jx-callback/business/auth2/authprovider/alipay" + _ "git.rosy.net.cn/jx-callback/business/auth2/authprovider/dingding" + _ "git.rosy.net.cn/jx-callback/business/auth2/authprovider/mobile" + _ "git.rosy.net.cn/jx-callback/business/auth2/authprovider/password" + _ "git.rosy.net.cn/jx-callback/business/auth2/authprovider/weixin" + _ "git.rosy.net.cn/jx-callback/business/jxstore/act" _ "git.rosy.net.cn/jx-callback/routers" From 710158252223edaadda4677a181d952f31b6a381 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, 8 Jan 2020 18:09:04 +0800 Subject: [PATCH 3/6] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=90=8C=E6=AD=A5?= =?UTF-8?q?=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/model/error_code.go | 1 + 1 file changed, 1 insertion(+) diff --git a/business/model/error_code.go b/business/model/error_code.go index 70a49bcea..72446031b 100644 --- a/business/model/error_code.go +++ b/business/model/error_code.go @@ -16,6 +16,7 @@ const ( ErrCodeJsonActPriceTooLarger = "-102" // 这个错误号表示description中的是一个json对象,不是错误文本 ErrCodeJsonActEarningPriceIsZero = "-103" ErrCodeJsonUserAlreadyExist = "-104" // 用户已经存在错,且能成功登录 + ErrCodeJsonSyncErr = "-105" ) var ( From 3ea689951b9ddca121726ca70dd34ffebb6b0018 Mon Sep 17 00:00:00 2001 From: gazebo Date: Wed, 8 Jan 2020 18:32:29 +0800 Subject: [PATCH 4/6] =?UTF-8?q?updateStoresSkusWithoutSync=E4=B8=AD?= =?UTF-8?q?=E6=94=B9=E4=BB=B7=E6=98=AF=E5=88=A4=E6=96=AD=E4=BB=B7=E6=A0=BC?= =?UTF-8?q?=E6=98=AF=E5=90=A6=E4=B8=80=E8=87=B4?= 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 f8bf90569..fdd9b2ac3 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -1089,7 +1089,7 @@ func updateStoresSkusWithoutSync(ctx *jxcontext.Context, db *dao.DaoDB, storeIDs setStoreSkuBindStatus(skuBind, model.SyncFlagSaleMask) updateFieldMap[model.FieldStatus] = 1 } - if skuBindInfo.UnitPrice != 0 && isCanChangePrice { // 这里是否需要加此条件限制 + if skuBindInfo.UnitPrice != 0 && skuBind.UnitPrice != unitPrice && isCanChangePrice { // 这里是否需要加此条件限制 skuBind.UnitPrice = unitPrice skuBind.Price = jxutils.CaculateSkuPrice(unitPrice, v.SpecQuality, v.SpecUnit, v.SkuNameUnit) skuBind.JxPrice = jxutils.CaculatePriceByPricePack(storeDetail.PricePercentagePackObj, int(storeDetail.PricePercentage), skuBind.Price) From ce41890da71e151b6e9c0551d592969803ce402e Mon Sep 17 00:00:00 2001 From: gazebo Date: Wed, 8 Jan 2020 18:36:55 +0800 Subject: [PATCH 5/6] alipayAppID --- globals/api/api.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/globals/api/api.go b/globals/api/api.go index d568fb762..9dfffe50c 100644 --- a/globals/api/api.go +++ b/globals/api/api.go @@ -171,8 +171,8 @@ func Init() { DingDingAPI = dingdingapi.NewWithAgentID(beego.AppConfig.DefaultInt64("dingdingAgentID", 0), beego.AppConfig.DefaultString("dingdingCorpID", ""), beego.AppConfig.DefaultString("dingdingAppKey", ""), beego.AppConfig.DefaultString("dingdingSecret", "")) DingDingQRCodeAPI = dingdingapi.New(beego.AppConfig.DefaultString("dingdingCorpID", ""), beego.AppConfig.DefaultString("dingdingQRCodeAppKey", ""), beego.AppConfig.DefaultString("dingdingQRCodeSecret", "")) - if aplipayAppID := beego.AppConfig.DefaultString("aplipayAppID", ""); aplipayAppID != "" { - AliPayAPI = alipayapi.New(aplipayAppID, beego.AppConfig.String("alipayPrivateKey")) + if alipayAppID := beego.AppConfig.DefaultString("alipayAppID", ""); alipayAppID != "" { + AliPayAPI = alipayapi.New(alipayAppID, beego.AppConfig.String("alipayPrivateKey")) } FeieAPI = feieapi.New(beego.AppConfig.DefaultString("feieUser", ""), beego.AppConfig.DefaultString("feieKey", "")) From 27e13ecb990e9eef7829b4d505f81fd96fdcb755 Mon Sep 17 00:00:00 2001 From: gazebo Date: Wed, 8 Jan 2020 18:40:39 +0800 Subject: [PATCH 6/6] fk --- globals/api/api.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/globals/api/api.go b/globals/api/api.go index 9dfffe50c..fedcb38d7 100644 --- a/globals/api/api.go +++ b/globals/api/api.go @@ -172,7 +172,7 @@ func Init() { DingDingQRCodeAPI = dingdingapi.New(beego.AppConfig.DefaultString("dingdingCorpID", ""), beego.AppConfig.DefaultString("dingdingQRCodeAppKey", ""), beego.AppConfig.DefaultString("dingdingQRCodeSecret", "")) if alipayAppID := beego.AppConfig.DefaultString("alipayAppID", ""); alipayAppID != "" { - AliPayAPI = alipayapi.New(alipayAppID, beego.AppConfig.String("alipayPrivateKey")) + AliPayAPI = alipayapi.New(alipayAppID, []byte(beego.AppConfig.String("alipayPrivateKey"))) } FeieAPI = feieapi.New(beego.AppConfig.DefaultString("feieUser", ""), beego.AppConfig.DefaultString("feieKey", ""))