- check store_map
This commit is contained in:
@@ -86,53 +86,56 @@ func (p *PurchaseHandler) ReadStore(vendorStoreID string) (*model.Store, error)
|
||||
|
||||
// stoerIDs为nil表示所有
|
||||
func (p *PurchaseHandler) UpdateStore(db *dao.DaoDB, storeID int, userName string) (err error) {
|
||||
var store tJdStoreInfo
|
||||
var stores []*tJdStoreInfo
|
||||
sql := `
|
||||
SELECT t1.*, city.jd_code jd_city_code, district.jd_code jd_district_code, t2.status jd_store_status, t2.vendor_store_id,
|
||||
IF(t1.updated_at > t2.updated_at, t1.last_operator, t2.last_operator) real_last_operator, t2.sync_status
|
||||
FROM store t1
|
||||
JOIN store_map t2 ON t1.id = t2.store_id AND t2.vendor_id = ?
|
||||
JOIN store_map t2 ON t1.id = t2.store_id AND t2.vendor_id = ? AND (t2.deleted_at = ? OR t2.sync_status <> 0)
|
||||
LEFT JOIN place city ON t1.city_code = city.code
|
||||
LEFT JOIN place district ON t1.district_code = district.code
|
||||
WHERE t1.id = ?
|
||||
ORDER BY t2.updated_at DESC
|
||||
LIMIT 1;
|
||||
ORDER BY t2.updated_at
|
||||
`
|
||||
if err = dao.GetRow(db, &store, sql, model.VendorIDJD, storeID); err == nil {
|
||||
outSystemID := ""
|
||||
if store.SyncStatus&model.SyncFlagDeletedMask == 0 {
|
||||
outSystemID = utils.Int2Str(int(store.ID))
|
||||
}
|
||||
params := map[string]interface{}{
|
||||
"outSystemId": outSystemID, // todo 直接修改这个字段可能会有问题
|
||||
"stationName": jxutils.ComposeStoreName(store.Name, partner.StoreNameSeparator, VendorStorePrefix),
|
||||
"stationAddress": store.Address,
|
||||
"serviceTimeStart1": JxOperationTime2JdOperationTime(store.OpenTime1),
|
||||
"serviceTimeEnd1": JxOperationTime2JdOperationTime(store.CloseTime1),
|
||||
"deliveryRangeType": store.DeliveryRangeType,
|
||||
"coordinateType": 3, // 一直用高德
|
||||
"lng": jxutils.IntCoordinate2Standard(store.Lng),
|
||||
"lat": jxutils.IntCoordinate2Standard(store.Lat),
|
||||
"city": store.JdCityCode,
|
||||
"county": store.JdDistrictCode,
|
||||
"phone": store.Tel1,
|
||||
"mobile": store.Tel2,
|
||||
}
|
||||
if store.DeliveryRangeType == model.DeliveryRangeTypePolygon {
|
||||
params["coordinatePoints"] = store.DeliveryRange
|
||||
} else {
|
||||
params["deliveryRangeRadius"] = utils.Str2Int64(store.DeliveryRange)
|
||||
}
|
||||
if err = dao.GetRows(db, &stores, sql, model.VendorIDJD, utils.DefaultTimeValue, storeID); err == nil {
|
||||
for _, store := range stores {
|
||||
outSystemID := ""
|
||||
if store.SyncStatus&model.SyncFlagDeletedMask == 0 {
|
||||
outSystemID = utils.Int2Str(int(store.ID))
|
||||
}
|
||||
params := map[string]interface{}{
|
||||
"outSystemId": outSystemID, // todo 直接修改这个字段可能会有问题
|
||||
"stationName": jxutils.ComposeStoreName(store.Name, partner.StoreNameSeparator, VendorStorePrefix),
|
||||
"stationAddress": store.Address,
|
||||
"serviceTimeStart1": JxOperationTime2JdOperationTime(store.OpenTime1),
|
||||
"serviceTimeEnd1": JxOperationTime2JdOperationTime(store.CloseTime1),
|
||||
"deliveryRangeType": store.DeliveryRangeType,
|
||||
"coordinateType": 3, // 一直用高德
|
||||
"lng": jxutils.IntCoordinate2Standard(store.Lng),
|
||||
"lat": jxutils.IntCoordinate2Standard(store.Lat),
|
||||
"city": store.JdCityCode,
|
||||
"county": store.JdDistrictCode,
|
||||
"phone": store.Tel1,
|
||||
"mobile": store.Tel2,
|
||||
}
|
||||
if store.DeliveryRangeType == model.DeliveryRangeTypePolygon {
|
||||
params["coordinatePoints"] = store.DeliveryRange
|
||||
} else {
|
||||
params["deliveryRangeRadius"] = utils.Str2Int64(store.DeliveryRange)
|
||||
}
|
||||
|
||||
openTime2 := JxOperationTime2JdOperationTime(store.OpenTime2)
|
||||
if openTime2 != 0 {
|
||||
params["serviceTimeStart2"] = openTime2
|
||||
params["serviceTimeEnd2"] = JxOperationTime2JdOperationTime(store.CloseTime2)
|
||||
}
|
||||
_, params["closeStatus"] = JxStoreStatus2JdStatus(jxutils.MergeStoreStatus(store.Status, store.JdStoreStatus))
|
||||
// globals.SugarLogger.Debug(utils.Format4Output(params, false))
|
||||
if globals.EnableStoreWrite {
|
||||
err = api.JdAPI.UpdateStoreInfo4Open(store.VendorStoreID, store.RealLastOperator, params)
|
||||
openTime2 := JxOperationTime2JdOperationTime(store.OpenTime2)
|
||||
if openTime2 != 0 {
|
||||
params["serviceTimeStart2"] = openTime2
|
||||
params["serviceTimeEnd2"] = JxOperationTime2JdOperationTime(store.CloseTime2)
|
||||
}
|
||||
_, params["closeStatus"] = JxStoreStatus2JdStatus(jxutils.MergeStoreStatus(store.Status, store.JdStoreStatus))
|
||||
// globals.SugarLogger.Debug(utils.Format4Output(params, false))
|
||||
if globals.EnableStoreWrite {
|
||||
if err = api.JdAPI.UpdateStoreInfo4Open(store.VendorStoreID, store.RealLastOperator, params); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return err
|
||||
|
||||
Reference in New Issue
Block a user