From f298706e069b061a932097edc15ba924bd49119c 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, 9 Mar 2021 17:19:56 +0800 Subject: [PATCH] aa --- business/jxstore/report/report.go | 32 +++++++++++++++++++++++-- business/partner/partner_act.go | 3 +++ business/partner/purchase/ebai/act.go | 4 ++++ business/partner/purchase/jd/act.go | 4 ++++ business/partner/purchase/jdshop/act.go | 4 ++++ business/partner/purchase/mtwm/act.go | 12 ++++++++++ business/partner/purchase/yb/act.go | 4 ++++ globals/api/apimanager/apimanager.go | 5 +++- 8 files changed, 65 insertions(+), 3 deletions(-) diff --git a/business/jxstore/report/report.go b/business/jxstore/report/report.go index 34c09f10a..2df4b33e6 100644 --- a/business/jxstore/report/report.go +++ b/business/jxstore/report/report.go @@ -397,7 +397,7 @@ type GetStoreManageStateResult struct { StoreName string `json:"storeName"` CoverArea float64 `json:"coverArea"` MarketScale int `json:"marketScale"` //市场规模 - OpenTime int `json:"openTime"` //营业时长 + OpenTime float64 `json:"openTime"` //营业时长 SkuCount int `json:"skuCount"` //商品数 HighSkuCount int `json:"highSkuCount"` //虚高商品数 ActAmple int `json:"actAmple"` //活动丰富的 @@ -408,7 +408,9 @@ type GetStoreManageStateResult struct { func GetStoreManageState(ctx *jxcontext.Context, storeIDs []int, vendorID int, fromTime, toTime string) (getStoreManageStateResult []*GetStoreManageStateResult, err error) { var ( - db = dao.GetDB() + db = dao.GetDB() + fromTimeT, toTimeT = utils.Str2Time(fromTime), utils.Str2Time(toTime) + dayCount = int(fromTimeT.Sub(toTimeT).Hours())/24 + 1 //查的几天 ) //权限 if permission.IsRoled(ctx) { @@ -437,6 +439,7 @@ func GetStoreManageState(ctx *jxcontext.Context, storeIDs []int, vendorID int, f MarketScale: storeDetail.MarketScale, CoverArea: storeDetail.CoverArea, } + //覆盖范围 if result.CoverArea == 0 { handler := partner.GetPurchasePlatformFromVendorID(vendorID) store, _ := handler.ReadStore(ctx, storeDetail.VendorOrgCode, storeDetail.VendorStoreID) @@ -446,12 +449,37 @@ func GetStoreManageState(ctx *jxcontext.Context, storeIDs []int, vendorID int, f result.CoverArea = storeMaps[0].CoverArea } } + //营业时长 + optime := jxutils.JxOperationTime2TimeByDate(storeDetail.CloseTime1, time.Now()).Sub(jxutils.JxOperationTime2TimeByDate(storeDetail.OpenTime1, time.Now())).Hours() + if storeDetail.CloseTime2 != 0 && storeDetail.OpenTime2 != 0 { + optime += jxutils.JxOperationTime2TimeByDate(storeDetail.CloseTime2, time.Now()).Sub(jxutils.JxOperationTime2TimeByDate(storeDetail.OpenTime2, time.Now())).Hours() + } + result.OpenTime = optime * float64(dayCount) + //商品数 + skuCount, highSkuCount := 0, 0 + storeSkus, _ := dao.GetStoresSkusInfo(db, []int{v}, nil) + for _, v := range storeSkus { + if v.Status == model.StoreSkuBindStatusNormal && v.Stock > 0 { + skuCount++ + } + if priceRefer, err := dao.GetPriceReferPrice(db, 0, v.SkuID, utils.Time2Date(time.Now().AddDate(0, 0, -1))); err == nil && priceRefer != nil { + if v.UnitPrice > priceRefer.MidUnitPrice { + highSkuCount++ + } + } + } + result.SkuCount = skuCount + result.HighSkuCount = highSkuCount + //活动丰富度 + getStoreManageStateResult = append(getStoreManageStateResult, result) } return getStoreManageStateResult, err } func CalculateCoverArea(coordinate []string, vendorID int) (area float64) { + //我先把地理坐标转成了平面坐标(百度的方法) + //然后按多个坐标求面积公式求的面积(百度的方法) if len(coordinate) == 0 { return 0 } diff --git a/business/partner/partner_act.go b/business/partner/partner_act.go index e4db7ec86..34b2f06f3 100644 --- a/business/partner/partner_act.go +++ b/business/partner/partner_act.go @@ -23,6 +23,9 @@ type IPurchasePlatformActHandler interface { // CancelAct(ctx *jxcontext.Context, parentTask tasksch.ITask, act *model.Act2, actStoreSku []*model.ActStoreSku2) (err error) SyncAct(ctx *jxcontext.Context, parentTask tasksch.ITask, act *model.Act2, actOrderRules []*model.ActOrderRule, actStoreSkuList []*model.ActStoreSku2) (err error) + + //活动丰富度 + GetActAmple(ctx *jxcontext.Context, vendorStoreID, vendorOrgCode string) (ample int, err error) } type IPurchasePlatformPageActHandler interface { diff --git a/business/partner/purchase/ebai/act.go b/business/partner/purchase/ebai/act.go index b7838419a..5a7498ecb 100644 --- a/business/partner/purchase/ebai/act.go +++ b/business/partner/purchase/ebai/act.go @@ -338,3 +338,7 @@ func (c *PurchaseHandler) SyncAct(ctx *jxcontext.Context, parentTask tasksch.ITa } return err } + +func (c *PurchaseHandler) GetActAmple(ctx *jxcontext.Context, vendorStoreID, vendorOrgCode string) (ample int, err error) { + return ample, err +} diff --git a/business/partner/purchase/jd/act.go b/business/partner/purchase/jd/act.go index 03b82487e..a3a6d4397 100644 --- a/business/partner/purchase/jd/act.go +++ b/business/partner/purchase/jd/act.go @@ -420,3 +420,7 @@ func getActFromJD(vendorOrgCode, promotionID string) (act *model.Act2, actStoreS } return act, actStoreSkuList, err } + +func (c *PurchaseHandler) GetActAmple(ctx *jxcontext.Context, vendorStoreID, vendorOrgCode string) (ample int, err error) { + return ample, err +} diff --git a/business/partner/purchase/jdshop/act.go b/business/partner/purchase/jdshop/act.go index d155fefd8..1addcc836 100644 --- a/business/partner/purchase/jdshop/act.go +++ b/business/partner/purchase/jdshop/act.go @@ -9,3 +9,7 @@ import ( func (c *PurchaseHandler) SyncAct(ctx *jxcontext.Context, parentTask tasksch.ITask, act *model.Act2, actOrderRules []*model.ActOrderRule, actStoreSkuList []*model.ActStoreSku2) (err error) { return err } + +func (c *PurchaseHandler) GetActAmple(ctx *jxcontext.Context, vendorStoreID, vendorOrgCode string) (ample int, err error) { + return ample, err +} diff --git a/business/partner/purchase/mtwm/act.go b/business/partner/purchase/mtwm/act.go index 939b854cc..e8776fe26 100644 --- a/business/partner/purchase/mtwm/act.go +++ b/business/partner/purchase/mtwm/act.go @@ -258,3 +258,15 @@ func (c *PurchaseHandler) SyncAct(ctx *jxcontext.Context, parentTask tasksch.ITa } return err } + +func (c *PurchaseHandler) GetActAmple(ctx *jxcontext.Context, vendorStoreID, vendorOrgCode string) (ample int, err error) { + // for _, v := range mtwmapi.ActTypeList { + // //1表示进行中 + // if actList, err := getAPI(vendorOrgCode, 0, vendorStoreID).GetByAppPoiCodeAndType(vendorOrgCode, 1, v); err == nil { + // for _, vv := range actList { + + // } + // } + // } + return ample, err +} diff --git a/business/partner/purchase/yb/act.go b/business/partner/purchase/yb/act.go index 4434fa15a..3f95fc17e 100644 --- a/business/partner/purchase/yb/act.go +++ b/business/partner/purchase/yb/act.go @@ -9,3 +9,7 @@ import ( func (c *PurchaseHandler) SyncAct(ctx *jxcontext.Context, parentTask tasksch.ITask, act *model.Act2, actOrderRules []*model.ActOrderRule, actStoreSkuList []*model.ActStoreSku2) (err error) { return err } + +func (c *PurchaseHandler) GetActAmple(ctx *jxcontext.Context, vendorStoreID, vendorOrgCode string) (ample int, err error) { + return ample, err +} diff --git a/globals/api/apimanager/apimanager.go b/globals/api/apimanager/apimanager.go index b93228b71..ec86495f2 100644 --- a/globals/api/apimanager/apimanager.go +++ b/globals/api/apimanager/apimanager.go @@ -72,7 +72,10 @@ func (a *APIManager) GetAPI(vendorID int, appOrgCode string) (pfAPI interface{}) func (a *APIManager) GetAppOrgCodeList(vendorID int) (appOrgCodeList []string) { switch vendorID { case model.VendorIDJD: - appOrgCodeList = jxutils.BatchString2Slice(globals.JdOrgCode, globals.Jd2OrgCode, globals.Jd3OrgCode, globals.JdcsOrgCode, globals.JdydOrgCode) + vendorOrgCodes, _ := dao.GetVendorOrgCode(dao.GetDB(), model.VendorIDJD, "", model.VendorOrgTypePlatform) + for _, v := range vendorOrgCodes { + appOrgCodeList = append(appOrgCodeList, v.VendorOrgCode) + } case model.VendorIDMTWM: appOrgCodeList = []string{api.MtwmAPI.GetAppID(), api.Mtwm2API.GetAppID()} case model.VendorIDEBAI: