From de09aeaedd17f0505f03177f534cc2bfd12d8f75 Mon Sep 17 00:00:00 2001 From: gazebo Date: Thu, 10 Oct 2019 09:20:57 +0800 Subject: [PATCH 1/2] =?UTF-8?q?Store=E6=B7=BB=E5=8A=A0=E5=AD=97=E6=AE=B5Au?= =?UTF-8?q?toEnableAt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store.go | 16 +++++++++++- business/model/store.go | 49 ++++++++++++++++++----------------- 2 files changed, 40 insertions(+), 25 deletions(-) diff --git a/business/jxstore/cms/store.go b/business/jxstore/cms/store.go index 987404971..1bf99307e 100644 --- a/business/jxstore/cms/store.go +++ b/business/jxstore/cms/store.go @@ -649,8 +649,22 @@ func UpdateStore(ctx *jxcontext.Context, storeID int, payload map[string]interfa break } } + status := 0 if valid["status"] != nil { syncStatus |= model.SyncFlagStoreStatus + + status = int(utils.Interface2Int64WithDefault(valid["status"], 0)) + if status != model.StoreStatusClosed && status != model.StoreStatusHaveRest { + valid["autoEnableAt"] = nil + } else { + if valid["autoEnableAt"] != nil { + status = model.StoreStatusHaveRest + valid["autoEnableAt"] = utils.Time2Date(utils.Str2Time(utils.Interface2String(valid["autoEnableAt"]))) + } else { + status = model.StoreStatusClosed + } + valid["status"] = status + } } if valid["deliveryRange"] != nil { @@ -678,7 +692,7 @@ func UpdateStore(ctx *jxcontext.Context, storeID int, payload map[string]interfa dummy := &model.StoreMap{} kv := make(map[string]interface{}) if valid["status"] != nil { - if status := int(utils.Interface2Int64WithDefault(valid["status"], 0)); status == model.StoreStatusOpened { + if syncStatus&model.SyncFlagStoreStatus != 0 && status == model.StoreStatusOpened { kv[model.FieldStatus] = status } } diff --git a/business/model/store.go b/business/model/store.go index d6dfce14b..f57d03bb9 100644 --- a/business/model/store.go +++ b/business/model/store.go @@ -237,30 +237,31 @@ var ( type Store struct { ModelIDCULD - OriginalName string `orm:"-" json:"originalName"` - Name string `orm:"size(255)" json:"name"` - CityCode int `orm:"default(0);null" json:"cityCode"` // todo ? - DistrictCode int `orm:"default(0);null" json:"districtCode"` // todo ? - Address string `orm:"size(255)" json:"address"` - Tel1 string `orm:"size(32);index" json:"tel1"` - Tel2 string `orm:"size(32);index" json:"tel2"` - OpenTime1 int16 `json:"openTime1"` // 930就表示9点半,用两个的原因是为了支持中午休息,1与2的时间段不能交叉,为0表示没有 - CloseTime1 int16 `json:"closeTime1"` // 格式同上 - OpenTime2 int16 `json:"openTime2"` // 格式同上 - CloseTime2 int16 `json:"closeTime2"` // 格式同上 - Lng int `json:"-"` // 乘了10的6次方 - Lat int `json:"-"` // 乘了10的6次方 - DeliveryRangeType int8 `json:"deliveryRangeType"` // 参见相关常量定义 - DeliveryRange string `orm:"type(text)" json:"deliveryRange"` // 如果DeliveryRangeType为DeliveryRangeTypePolygon,则为逗号分隔坐标,分号分隔的坐标点(坐标与Lng和Lat一样,都是整数),比如 121361504,31189308;121420555,31150238。否则为半径,单位为米 - Status int `json:"status"` - ChangePriceType int8 `json:"changePriceType"` // 修改价格类型,即是否需要审核 - SMSNotify int8 `orm:"column(sms_notify);" json:"smsNotify"` // 是否通过短信接收订单消息 - PrinterDisabled int8 `orm:"default(0)" json:"printerDisabled"` // 是否禁用网络打印机 - PrinterFontSize int8 `orm:"default(0)" json:"printerFontSize"` // 打印字体-1:小,0:正常,1:大 - PrinterVendorID int `orm:"column(printer_vendor_id);" json:"printerVendorID"` - PrinterSN string `orm:"size(32);column(printer_sn);index" json:"printerSN"` - PrinterKey string `orm:"size(64)" json:"printerKey"` - PrinterBindInfo string `orm:"size(1024)" json:"-"` + OriginalName string `orm:"-" json:"originalName"` + Name string `orm:"size(255)" json:"name"` + CityCode int `orm:"default(0);null" json:"cityCode"` // todo ? + DistrictCode int `orm:"default(0);null" json:"districtCode"` // todo ? + Address string `orm:"size(255)" json:"address"` + Tel1 string `orm:"size(32);index" json:"tel1"` + Tel2 string `orm:"size(32);index" json:"tel2"` + OpenTime1 int16 `json:"openTime1"` // 930就表示9点半,用两个的原因是为了支持中午休息,1与2的时间段不能交叉,为0表示没有 + CloseTime1 int16 `json:"closeTime1"` // 格式同上 + OpenTime2 int16 `json:"openTime2"` // 格式同上 + CloseTime2 int16 `json:"closeTime2"` // 格式同上 + Lng int `json:"-"` // 乘了10的6次方 + Lat int `json:"-"` // 乘了10的6次方 + DeliveryRangeType int8 `json:"deliveryRangeType"` // 参见相关常量定义 + DeliveryRange string `orm:"type(text)" json:"deliveryRange"` // 如果DeliveryRangeType为DeliveryRangeTypePolygon,则为逗号分隔坐标,分号分隔的坐标点(坐标与Lng和Lat一样,都是整数),比如 121361504,31189308;121420555,31150238。否则为半径,单位为米 + Status int `json:"status"` + AutoEnableAt *time.Time `orm:"type(datetime);null" json:"autoEnableAt"` // 自动营业时间(临时休息用) + ChangePriceType int8 `json:"changePriceType"` // 修改价格类型,即是否需要审核 + SMSNotify int8 `orm:"column(sms_notify);" json:"smsNotify"` // 是否通过短信接收订单消息 + PrinterDisabled int8 `orm:"default(0)" json:"printerDisabled"` // 是否禁用网络打印机 + PrinterFontSize int8 `orm:"default(0)" json:"printerFontSize"` // 打印字体-1:小,0:正常,1:大 + PrinterVendorID int `orm:"column(printer_vendor_id);" json:"printerVendorID"` + PrinterSN string `orm:"size(32);column(printer_sn);index" json:"printerSN"` + PrinterKey string `orm:"size(64)" json:"printerKey"` + PrinterBindInfo string `orm:"size(1024)" json:"-"` IDCardFront string `orm:"size(255);column(id_card_front)" json:"idCardFront"` IDCardBack string `orm:"size(255);column(id_card_back)" json:"idCardBack"` From c237c4957cffd5276ae7823fb28da7e382ea1567 Mon Sep 17 00:00:00 2001 From: gazebo Date: Thu, 10 Oct 2019 09:40:48 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=B8=B4=E6=97=B6?= =?UTF-8?q?=E4=BC=91=E6=81=AF=E8=87=AA=E5=8A=A8=E6=81=A2=E5=A4=8D=E9=80=BB?= =?UTF-8?q?=E8=BE=91=EF=BC=8C=E5=85=BC=E5=AE=B9=E4=B9=8B=E5=89=8D=E6=B2=A1?= =?UTF-8?q?=E6=9C=89=E8=AE=BE=E7=BD=AE=E6=81=A2=E5=A4=8D=E8=90=A5=E4=B8=9A?= =?UTF-8?q?=E6=97=B6=E9=97=B4=E7=9A=84=E6=83=85=E5=86=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/business/jxstore/cms/store.go b/business/jxstore/cms/store.go index 1bf99307e..695d8d49f 100644 --- a/business/jxstore/cms/store.go +++ b/business/jxstore/cms/store.go @@ -742,7 +742,15 @@ func EnableHaveRestStores(ctx *jxcontext.Context, isAsync, isContinueWhenError b task := tasksch.NewParallelTask("EnableHaveRestStores", tasksch.NewParallelConfig().SetIsContinueWhenError(isContinueWhenError), ctx, func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { store := batchItemList[0].(*StoreExt) - err = SetStoreStatus(ctx, store.ID, model.StoreStatusOpened) + var autoEnableAt time.Time + if store.AutoEnableAt != nil { + autoEnableAt = *store.AutoEnableAt + } else { + autoEnableAt = utils.Time2Date(time.Now().Add(24 * time.Hour)) // 临时休息,但没有设置恢复营业时间,缺省是第二天 + } + if time.Now().Sub(autoEnableAt) >= -2*time.Hour { + err = SetStoreStatus(ctx, store.ID, model.StoreStatusOpened) + } return nil, err }, storeInfo.Stores) tasksch.ManageTask(task).Run()