新接口获取京东门店手划范围
This commit is contained in:
@@ -3455,3 +3455,82 @@ func UpdateStorePricePack(ctx *jxcontext.Context, storeID, vendorID int, pricePa
|
|||||||
}
|
}
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func GetJdDeliveryArea(ctx *jxcontext.Context, storeIDs []int) (err error) {
|
||||||
|
type tmp struct {
|
||||||
|
JdID string `json:"jdID"`
|
||||||
|
S int `json:"s"`
|
||||||
|
}
|
||||||
|
type SpecialtyStoreSkus struct {
|
||||||
|
StoreID int `json:"门店ID"`
|
||||||
|
StoreName string `json:"门店名"`
|
||||||
|
City string `json:"城市"`
|
||||||
|
Area int `json:"面积"`
|
||||||
|
}
|
||||||
|
var (
|
||||||
|
ss []*tmp
|
||||||
|
excelTitle = []string{
|
||||||
|
"门店ID",
|
||||||
|
"门店名",
|
||||||
|
"城市",
|
||||||
|
"面积",
|
||||||
|
}
|
||||||
|
sheetList []*excel.Obj2ExcelSheetConfig
|
||||||
|
specialtyStoreSkus []*SpecialtyStoreSkus
|
||||||
|
downloadURL, fileName string
|
||||||
|
)
|
||||||
|
storeMaps, _ := dao.GetStoresMapList(dao.GetDB(), []int{model.VendorIDJD}, storeIDs, nil, model.StoreStatusAll, model.StoreIsSyncAll, "", "")
|
||||||
|
for _, v := range storeMaps {
|
||||||
|
time.Sleep(time.Second / 3)
|
||||||
|
station, err := jd.GetAPI("320406").GetDeliveryRangeByStationNo2(v.VendorStoreID)
|
||||||
|
if err != nil {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if station.DeliveryRangeType == 2 {
|
||||||
|
strs := strings.Split(station.DeliveryRange, ";")
|
||||||
|
ss = append(ss, &tmp{
|
||||||
|
JdID: v.VendorStoreID,
|
||||||
|
S: utils.Float64TwoInt(math.Ceil((jxutils.ComputeSignedArea(strs[:len(strs)-1])))),
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for i := 0; i < len(ss)-1; i++ {
|
||||||
|
for j := 0; j < len(ss)-1-i; j++ {
|
||||||
|
if ss[j].S > ss[j+1].S {
|
||||||
|
temp := ss[j]
|
||||||
|
ss[j] = ss[j+1]
|
||||||
|
ss[j+1] = temp
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for _, v := range ss {
|
||||||
|
storeDetail, _ := dao.GetStoreDetailByVendorStoreID(dao.GetDB(), v.JdID, model.VendorIDJD)
|
||||||
|
place, _ := dao.GetPlaceByCode(dao.GetDB(), storeDetail.CityCode)
|
||||||
|
specialtyStoreSku := &SpecialtyStoreSkus{
|
||||||
|
StoreID: storeDetail.ID,
|
||||||
|
StoreName: storeDetail.Name,
|
||||||
|
City: place.Name,
|
||||||
|
Area: v.S,
|
||||||
|
}
|
||||||
|
specialtyStoreSkus = append(specialtyStoreSkus, specialtyStoreSku)
|
||||||
|
}
|
||||||
|
excelConf := &excel.Obj2ExcelSheetConfig{
|
||||||
|
Title: "sheet1",
|
||||||
|
Data: specialtyStoreSkus,
|
||||||
|
CaptionList: excelTitle,
|
||||||
|
}
|
||||||
|
sheetList = append(sheetList, excelConf)
|
||||||
|
if excelConf != nil {
|
||||||
|
downloadURL, fileName, err = jxutils.UploadExeclAndPushMsg(sheetList, "面积")
|
||||||
|
} else {
|
||||||
|
baseapi.SugarLogger.Debug("WriteToExcel: dataSuccess is nil!")
|
||||||
|
}
|
||||||
|
if err != nil {
|
||||||
|
baseapi.SugarLogger.Errorf("WriteToExcel:upload %s , %s failed error:%v", fileName, err)
|
||||||
|
} else {
|
||||||
|
noticeMsg := fmt.Sprintf("[详情点我]%s/billshow/?normal=true&path=%s \n", globals.BackstageHost, downloadURL)
|
||||||
|
ddmsg.SendUserMessage(dingdingapi.MsgTyeText, ctx.GetUserID(), "异步任务完成", noticeMsg)
|
||||||
|
baseapi.SugarLogger.Debug("WriteToExcel: dataSuccess downloadURL: [%v]", downloadURL)
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|||||||
@@ -9,7 +9,6 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
|
|
||||||
"git.rosy.net.cn/jx-callback/business/auth2/authprovider/weixin"
|
"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/partner/delivery"
|
"git.rosy.net.cn/jx-callback/business/partner/delivery"
|
||||||
"github.com/360EntSecGroup-Skylar/excelize"
|
"github.com/360EntSecGroup-Skylar/excelize"
|
||||||
"github.com/qiniu/api.v7/storage"
|
"github.com/qiniu/api.v7/storage"
|
||||||
@@ -1585,82 +1584,7 @@ func UploadJdsImage(ctx *jxcontext.Context) (err error) {
|
|||||||
// fmt.Println("updateList2", utils.Format4Output(updateList, false))
|
// fmt.Println("updateList2", utils.Format4Output(updateList, false))
|
||||||
// fmt.Println("deleteList2", deleteList)
|
// fmt.Println("deleteList2", deleteList)
|
||||||
// cms.DeletedDuplicateWaitAuditData(ctx, dao.GetDB())
|
// cms.DeletedDuplicateWaitAuditData(ctx, dao.GetDB())
|
||||||
// type tmp struct {
|
// orderman.RefreshJdShopOrdersEarningPrice(jxcontext.AdminCtx, time.Now().AddDate(0, 0, -2).Format("20060102"), time.Now().Format("20060102"))
|
||||||
// JdID string `json:"jdID"`
|
|
||||||
// S int `json:"s"`
|
|
||||||
// }
|
|
||||||
// type SpecialtyStoreSkus struct {
|
|
||||||
// StoreID int `json:"门店ID"`
|
|
||||||
// StoreName string `json:"门店名"`
|
|
||||||
// City string `json:"城市"`
|
|
||||||
// Area int `json:"面积"`
|
|
||||||
// }
|
|
||||||
// var (
|
|
||||||
// ss []*tmp
|
|
||||||
// excelTitle = []string{
|
|
||||||
// "门店ID",
|
|
||||||
// "门店名",
|
|
||||||
// "城市",
|
|
||||||
// "面积",
|
|
||||||
// }
|
|
||||||
// sheetList []*excel.Obj2ExcelSheetConfig
|
|
||||||
// specialtyStoreSkus []*SpecialtyStoreSkus
|
|
||||||
// downloadURL, fileName string
|
|
||||||
// )
|
|
||||||
// storeMaps, _ := dao.GetStoresMapList(dao.GetDB(), []int{model.VendorIDJD}, nil, nil, model.StoreStatusAll, model.StoreIsSyncAll, "", "")
|
|
||||||
// for _, v := range storeMaps {
|
|
||||||
// time.Sleep(time.Second / 3)
|
|
||||||
// station, err := jd.GetAPI("320406").GetDeliveryRangeByStationNo2(v.VendorStoreID)
|
|
||||||
// if err != nil {
|
|
||||||
// continue
|
|
||||||
// }
|
|
||||||
// if station.DeliveryRangeType == 2 {
|
|
||||||
// strs := strings.Split(station.DeliveryRange, ";")
|
|
||||||
// ss = append(ss, &tmp{
|
|
||||||
// JdID: v.VendorStoreID,
|
|
||||||
// S: utils.Float64TwoInt(math.Ceil((jxutils.ComputeSignedArea(strs[:len(strs)-1])))),
|
|
||||||
// })
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// for i := 0; i < len(ss)-1; i++ {
|
|
||||||
// for j := 0; j < len(ss)-1-i; j++ {
|
|
||||||
// if ss[j].S > ss[j+1].S {
|
|
||||||
// temp := ss[j]
|
|
||||||
// ss[j] = ss[j+1]
|
|
||||||
// ss[j+1] = temp
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// for _, v := range ss {
|
|
||||||
// storeDetail, _ := dao.GetStoreDetailByVendorStoreID(dao.GetDB(), v.JdID, model.VendorIDJD)
|
|
||||||
// place, _ := dao.GetPlaceByCode(dao.GetDB(), storeDetail.CityCode)
|
|
||||||
// specialtyStoreSku := &SpecialtyStoreSkus{
|
|
||||||
// StoreID: storeDetail.ID,
|
|
||||||
// StoreName: storeDetail.Name,
|
|
||||||
// City: place.Name,
|
|
||||||
// Area: v.S,
|
|
||||||
// }
|
|
||||||
// specialtyStoreSkus = append(specialtyStoreSkus, specialtyStoreSku)
|
|
||||||
// }
|
|
||||||
// excelConf := &excel.Obj2ExcelSheetConfig{
|
|
||||||
// Title: "sheet1",
|
|
||||||
// Data: specialtyStoreSkus,
|
|
||||||
// CaptionList: excelTitle,
|
|
||||||
// }
|
|
||||||
// sheetList = append(sheetList, excelConf)
|
|
||||||
// if excelConf != nil {
|
|
||||||
// downloadURL, fileName, err = jxutils.UploadExeclAndPushMsg(sheetList, "面积")
|
|
||||||
// } else {
|
|
||||||
// baseapi.SugarLogger.Debug("WriteToExcel: dataSuccess is nil!")
|
|
||||||
// }
|
|
||||||
// if err != nil {
|
|
||||||
// baseapi.SugarLogger.Errorf("WriteToExcel:upload %s , %s failed error:%v", fileName, err)
|
|
||||||
// } else {
|
|
||||||
// noticeMsg := fmt.Sprintf("[详情点我]%s/billshow/?normal=true&path=%s \n", globals.BackstageHost, downloadURL)
|
|
||||||
// ddmsg.SendUserMessage(dingdingapi.MsgTyeText, ctx.GetUserID(), "异步任务完成", noticeMsg)
|
|
||||||
// baseapi.SugarLogger.Debug("WriteToExcel: dataSuccess downloadURL: [%v]", downloadURL)
|
|
||||||
// }
|
|
||||||
orderman.RefreshJdShopOrdersEarningPrice(jxcontext.AdminCtx, time.Now().AddDate(0, 0, -2).Format("20060102"), time.Now().Format("20060102"))
|
|
||||||
|
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -808,3 +808,20 @@ func (c *StoreController) GetNearSupplyGoodsStoreByStoreID() {
|
|||||||
return retVal, "", err
|
return retVal, "", err
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// @Title 获取京东门店手动划的配送范围面积
|
||||||
|
// @Description 获取京东门店手动划的配送范围面积
|
||||||
|
// @Param token header string true "认证token"
|
||||||
|
// @Param storeIDs query int true "门店IDs"
|
||||||
|
// @Success 200 {object} controllers.CallResult
|
||||||
|
// @Failure 200 {object} controllers.CallResult
|
||||||
|
// @router /GetJdDeliveryArea [get]
|
||||||
|
func (c *StoreController) GetJdDeliveryArea() {
|
||||||
|
var storeIDs []int
|
||||||
|
c.callGetJdDeliveryArea(func(params *tStoreGetJdDeliveryAreaParams) (retVal interface{}, errCode string, err error) {
|
||||||
|
if jxutils.Strings2Objs(params.StoreIDs, &storeIDs); err == nil {
|
||||||
|
err = cms.GetJdDeliveryArea(params.Ctx, storeIDs)
|
||||||
|
}
|
||||||
|
return retVal, "", err
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|||||||
@@ -1836,6 +1836,15 @@ func init() {
|
|||||||
Filters: nil,
|
Filters: nil,
|
||||||
Params: 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: "GetJdDeliveryArea",
|
||||||
|
Router: `/GetJdDeliveryArea`,
|
||||||
|
AllowHTTPMethods: []string{"get"},
|
||||||
|
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.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreController"],
|
||||||
beego.ControllerComments{
|
beego.ControllerComments{
|
||||||
Method: "GetNearSupplyGoodsStoreByStoreID",
|
Method: "GetNearSupplyGoodsStoreByStoreID",
|
||||||
|
|||||||
Reference in New Issue
Block a user