aa
This commit is contained in:
@@ -435,77 +435,88 @@ func GetStoreManageState(ctx *jxcontext.Context, storeIDs []int, vendorID int, f
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
fmt.Println("storeIDs111111111111111111111111111", storeIDs)
|
fmt.Println("storeIDs111111111111111111111111111", storeIDs)
|
||||||
for _, v := range storeIDs {
|
task := tasksch.NewParallelTask("GetStoreManageState", tasksch.NewParallelConfig().SetIsContinueWhenError(true), ctx,
|
||||||
storeDetail, _ := dao.GetStoreDetail(db, v, vendorID, "")
|
func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
|
||||||
if storeDetail == nil || storeDetail.VendorStoreID == "" || storeDetail.VendorOrgCode == "" {
|
v := batchItemList[0].(int)
|
||||||
continue
|
storeDetail, _ := dao.GetStoreDetail(db, v, vendorID, "")
|
||||||
}
|
if storeDetail == nil || storeDetail.VendorStoreID == "" || storeDetail.VendorOrgCode == "" {
|
||||||
result := &GetStoreManageStateResult{
|
return retVal, err
|
||||||
StoreID: v,
|
}
|
||||||
StoreName: storeDetail.Name,
|
result := &GetStoreManageStateResult{
|
||||||
MarketScale: storeDetail.MarketScale,
|
StoreID: v,
|
||||||
CoverArea: storeDetail.CoverArea,
|
StoreName: storeDetail.Name,
|
||||||
}
|
MarketScale: storeDetail.MarketScale,
|
||||||
//覆盖范围
|
CoverArea: storeDetail.CoverArea,
|
||||||
if result.CoverArea == 0 {
|
}
|
||||||
|
//覆盖范围
|
||||||
|
if result.CoverArea == 0 {
|
||||||
|
handler := partner.GetPurchasePlatformFromVendorID(vendorID)
|
||||||
|
if store, err := handler.ReadStore(ctx, storeDetail.VendorOrgCode, storeDetail.VendorStoreID); err == nil {
|
||||||
|
if storeMaps, err := dao.GetStoresMapList(db, []int{vendorID}, []int{v}, nil, model.StoreStatusAll, model.StoreIsSyncAll, "", "", ""); len(storeMaps) > 0 && err == nil {
|
||||||
|
if vendorID == model.VendorIDJD && store.DeliveryRangeType != model.DeliveryRangeTypePolygon {
|
||||||
|
storeMaps[0].CoverArea = math.Pi * utils.Str2Float64WithDefault(store.DeliveryRange, 0) * utils.Str2Float64WithDefault(store.DeliveryRange, 0) / float64(10000)
|
||||||
|
} else {
|
||||||
|
storeMaps[0].CoverArea = CalculateCoverArea(strings.Split(store.DeliveryRange, ";"), vendorID)
|
||||||
|
}
|
||||||
|
dao.UpdateEntity(db, storeMaps[0], "CoverArea")
|
||||||
|
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, result.HighSkuCount = skuCount, highSkuCount
|
||||||
|
//活动丰富度
|
||||||
handler := partner.GetPurchasePlatformFromVendorID(vendorID)
|
handler := partner.GetPurchasePlatformFromVendorID(vendorID)
|
||||||
if store, err := handler.ReadStore(ctx, storeDetail.VendorOrgCode, storeDetail.VendorStoreID); err == nil {
|
ample, _ := handler.GetActAmple(ctx, storeDetail.VendorStoreID, storeDetail.VendorStoreID)
|
||||||
if storeMaps, err := dao.GetStoresMapList(db, []int{vendorID}, []int{v}, nil, model.StoreStatusAll, model.StoreIsSyncAll, "", "", ""); len(storeMaps) > 0 && err == nil {
|
result.ActAmple = ample
|
||||||
if vendorID == model.VendorIDJD && store.DeliveryRangeType != model.DeliveryRangeTypePolygon {
|
//订单
|
||||||
storeMaps[0].CoverArea = math.Pi * utils.Str2Float64WithDefault(store.DeliveryRange, 0) * utils.Str2Float64WithDefault(store.DeliveryRange, 0) / float64(10000)
|
nullOrderCount, refuseOrderCount := 0, 0
|
||||||
} else {
|
if orderList, err := dao.QueryOrders(db, "", 0, []int{vendorID}, v, fromTimeT, toTimeT); err == nil {
|
||||||
storeMaps[0].CoverArea = CalculateCoverArea(strings.Split(store.DeliveryRange, ";"), vendorID)
|
for _, v := range orderList {
|
||||||
|
if v.Status == model.OrderStatusCanceled {
|
||||||
|
nullOrderCount++
|
||||||
}
|
}
|
||||||
dao.UpdateEntity(db, storeMaps[0], "CoverArea")
|
if waybills, err2 := dao.GetWayBillByOrderID(db, 0, vendorID, 0, v.VendorOrderID); err2 == nil {
|
||||||
result.CoverArea = storeMaps[0].CoverArea
|
if len(waybills) > 0 {
|
||||||
}
|
refuseOrderCount++
|
||||||
}
|
}
|
||||||
}
|
|
||||||
//营业时长
|
|
||||||
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, result.HighSkuCount = skuCount, highSkuCount
|
|
||||||
//活动丰富度
|
|
||||||
handler := partner.GetPurchasePlatformFromVendorID(vendorID)
|
|
||||||
ample, _ := handler.GetActAmple(ctx, storeDetail.VendorStoreID, storeDetail.VendorStoreID)
|
|
||||||
result.ActAmple = ample
|
|
||||||
//订单
|
|
||||||
nullOrderCount, refuseOrderCount := 0, 0
|
|
||||||
if orderList, err := dao.QueryOrders(db, "", 0, []int{vendorID}, v, fromTimeT, toTimeT); err == nil {
|
|
||||||
for _, v := range orderList {
|
|
||||||
if v.Status == model.OrderStatusCanceled {
|
|
||||||
nullOrderCount++
|
|
||||||
}
|
|
||||||
if waybills, err2 := dao.GetWayBillByOrderID(db, 0, vendorID, 0, v.VendorOrderID); err2 == nil {
|
|
||||||
if len(waybills) > 0 {
|
|
||||||
refuseOrderCount++
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
result.NullOrderCount, result.RefuseOrderCount = nullOrderCount, refuseOrderCount
|
||||||
result.NullOrderCount, result.RefuseOrderCount = nullOrderCount, refuseOrderCount
|
//评分(美团)
|
||||||
//评分(美团)
|
if vendorID == model.VendorIDMTWM {
|
||||||
mtapi := partner.CurAPIManager.GetAPI(model.VendorIDMTWM, storeDetail.VendorOrgCode).(*mtwmapi.API)
|
mtapi := partner.CurAPIManager.GetAPI(model.VendorIDMTWM, storeDetail.VendorOrgCode).(*mtwmapi.API)
|
||||||
if scoreResult, err := mtapi.CommentScore(storeDetail.VendorStoreID); err == nil {
|
if scoreResult, err := mtapi.CommentScore(storeDetail.VendorStoreID); err == nil {
|
||||||
result.StoreScore = scoreResult.AvgPoiScore
|
result.StoreScore = scoreResult.AvgPoiScore
|
||||||
}
|
}
|
||||||
getStoreManageStateResult = append(getStoreManageStateResult, result)
|
}
|
||||||
|
retVal = []*GetStoreManageStateResult{result}
|
||||||
|
// getStoreManageStateResult = append(getStoreManageStateResult, result)
|
||||||
|
return retVal, err
|
||||||
|
}, storeIDs)
|
||||||
|
tasksch.HandleTask(task, nil, true).Run()
|
||||||
|
result, err := task.GetResult(0)
|
||||||
|
for _, v := range result {
|
||||||
|
getStoreManageStateResult = append(getStoreManageStateResult, v.(*GetStoreManageStateResult))
|
||||||
}
|
}
|
||||||
return getStoreManageStateResult, err
|
return getStoreManageStateResult, err
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user