This commit is contained in:
gazebo
2018-09-15 09:15:40 +08:00
parent da6c411c74
commit b2d365e36f
8 changed files with 72 additions and 48 deletions

View File

@@ -14,6 +14,15 @@ import (
"git.rosy.net.cn/jx-callback/globals/api"
)
type tJdStoreInfo struct {
model.Store
JdCityCode int
JdDistrictCode int
JdStoreStatus int
VendorStoreID string `orm:"vendor_store_id"`
RealLastOperator string
}
func (p *PurchaseHandler) ReadStore(vendorStoreID string) (*model.Store, error) {
result, err := api.JdAPI.GetStoreInfoByStationNo(vendorStoreID)
if err == nil {
@@ -62,31 +71,46 @@ func (p *PurchaseHandler) ReadStore(vendorStoreID string) (*model.Store, error)
return nil, err
}
func (p *PurchaseHandler) UpdateStore(vendorStoreID string, store *model.Store, userName string) (err error) {
params := map[string]interface{}{
"outSystemId": utils.Int2Str(int(store.ID)),
"stationName": store.Name,
"stationAddress": store.Address,
"serviceTimeStart1": JxOperationTime2JdOperationTime(store.OpenTime1),
"serviceTimeEnd1": JxOperationTime2JdOperationTime(store.CloseTime1),
"deliveryRangeType": store.DeliveryRangeType,
"coordinateType": 3, // 一直用高德
}
if store.DeliveryRangeType == model.DeliveryRangeTypePolygon {
params["coordinatePoints"] = JxRange2JdRange(store.DeliveryRange)
} else {
params["deliveryRangeRadius"] = utils.Str2Int64(store.DeliveryRange)
}
// stoerIDs为nil表示所有
func (p *PurchaseHandler) UpdateStore(storeID int) (err error) {
db := dao.GetDB()
var store 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
FROM store t1
JOIN store_map t2 ON t1.id = t2.store_id AND t2.vendor_id = ?
LEFT JOIN place city ON t1.city_code = city.code
LEFT JOIN place district ON t1.district_code = district.code
WHERE t1.id = ?`
if err = dao.GetRow(db, &store, sql, model.VendorIDJD, storeID); err == nil {
params := map[string]interface{}{
"outSystemId": utils.Int2Str(int(store.ID)), // todo 直接修改这个字段可能会有问题
"stationName": store.Name,
"stationAddress": store.Address,
"serviceTimeStart1": JxOperationTime2JdOperationTime(store.OpenTime1),
"serviceTimeEnd1": JxOperationTime2JdOperationTime(store.CloseTime1),
"deliveryRangeType": store.DeliveryRangeType,
"coordinateType": 3, // 一直用高德
"city": store.JdCityCode,
"county": store.JdDistrictCode,
}
if store.DeliveryRangeType == model.DeliveryRangeTypePolygon {
params["coordinatePoints"] = JxRange2JdRange(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(store.Status)
// globals.SugarLogger.Debug(utils.Format4Output(params, false))
if globals.EnableStoreWrite {
err = api.JdAPI.UpdateStoreInfo4Open(vendorStoreID, userName, 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 {
err = api.JdAPI.UpdateStoreInfo4Open(store.VendorStoreID, store.RealLastOperator, params)
}
}
return err
}