- cms store management.

This commit is contained in:
gazebo
2018-09-03 18:28:37 +08:00
parent 426fe7c570
commit 70d5ae5dd1
17 changed files with 1522 additions and 628 deletions

View File

@@ -1,5 +1,9 @@
package model
const (
DefPageSize = 50
)
type GoodsOrderExt struct {
GoodsOrder
WaybillStatus int `json:"waybillStatus"`

View File

@@ -1,7 +1,6 @@
package dao
import (
"fmt"
"reflect"
"git.rosy.net.cn/baseapi/utils"
@@ -20,7 +19,6 @@ func GetRows(db *gorm.DB, inPtr interface{}, sql string, values ...interface{})
}
typeInfo := topTypeInfo.Elem()
if typeInfo.Kind() != reflect.Slice {
fmt.Printf("type:%s", typeInfo.String())
panic("SelectEntities inPtr should be slice ptr (*[]Type)")
}
elmType := typeInfo.Elem()
@@ -47,7 +45,7 @@ func GetRows(db *gorm.DB, inPtr interface{}, sql string, values ...interface{})
return err
}
func GetEntity(item interface{}, db *gorm.DB) error {
func GetEntity(db *gorm.DB, item interface{}) error {
if db == nil {
db = gormdb.GetDB()
}
@@ -57,6 +55,26 @@ func GetEntity(item interface{}, db *gorm.DB) error {
return err
}
func UpdateEntity(db *gorm.DB, item interface{}, values map[string]interface{}) error {
if db == nil {
db = gormdb.GetDB()
}
err := utils.CallFuncLogError(func() error {
return db.Model(item).Updates(values).Error
}, reflect.TypeOf(item).Name())
return err
}
func CreateEntity(db *gorm.DB, item interface{}) error {
if db == nil {
db = gormdb.GetDB()
}
err := utils.CallFuncLogError(func() error {
return db.Create(item).Error
}, reflect.TypeOf(item).Name())
return err
}
func GetSellCities(skuNameID int, vendorID int, db *gorm.DB) (cities []*model.Place, err error) {
cities = []*model.Place{}
sql := `
@@ -71,3 +89,32 @@ func GetSellCities(skuNameID int, vendorID int, db *gorm.DB) (cities []*model.Pl
}
return cities, GetRows(nil, &cities, sql, skuNameID)
}
func GetPlaceByCode(db *gorm.DB, code int) (place *model.Place, err error) {
if db == nil {
db = gormdb.GetDB()
}
place = new(model.Place)
err = db.Where("code = ?", code).First(place).Error
return place, err
}
func GetPlaceByName(db *gorm.DB, name string, level int, parentCode int) (place *model.Place, err error) {
if db == nil {
db = gormdb.GetDB()
}
place = new(model.Place)
if err = db.Where("parent_code = ? AND level = ? AND name = ?", parentCode, level, name).First(place).Error; err == gorm.ErrRecordNotFound {
err = db.Where("parent_code = ? AND level = ? AND name LIKE ?", parentCode, level, "%"+name+"%").First(place).Error
}
return place, err
}
func GetPlaceByJdCode(db *gorm.DB, jdCode int) (place *model.Place, err error) {
if db == nil {
db = gormdb.GetDB()
}
place = new(model.Place)
err = db.Where("jd_code = ?", jdCode).First(place).Error
return place, err
}

View File

@@ -34,3 +34,11 @@ func TestSelectEntities(t *testing.T) {
globals.SugarLogger.Debug(utils.Format4Output(places, false))
}
func TestGetPlaceByName(t *testing.T) {
result, err := GetPlaceByName(nil, "青羊", 3, 510100)
if err != nil {
t.Fatal(err)
}
t.Log(result)
}

View File

@@ -19,21 +19,21 @@ const (
type Store struct {
ModelIDCUO
Name string `gorm:"type:varchar(255);unique_index"`
CityCode int // todo ?
DistrictCode int // todo ?
Address string `gorm:"type:varchar(255)"`
Tel1 string `gorm:"type:varchar(32)"`
Tel2 string `gorm:"type:varchar(32)"`
OpenTime1 int16 // 930就表示9点半用两个的原因是为了支持中午休息1与2的时间段不能交叉为0表示没有
CloseTime1 int16 // 格式同上
OpenTime2 int16 // 格式同上
CloseTime2 int16 // 格式同上
Lng int // 乘了10的6次方
Lat int // 乘了10的6次方
DeliveryRangeType int8 // 参见相关常量定义
DeliveryRange string `gorm:"type:varchar(2048)"` // 如果DeliveryRangeType为DeliveryRangeTypePolygon则为逗号分隔坐标分号分隔的坐标点坐标与Lng和Lat一样都是整数比如 121361504,31189308;121420555,31150238。否则为半径单位为米
Status int
Name string `gorm:"type:varchar(255);unique_index" json:"name"`
CityCode int `json:"cityCode"` // todo ?
DistrictCode int `json:"districtCode"` // todo ?
Address string `gorm:"type:varchar(255)" json:"address"`
Tel1 string `gorm:"type:varchar(32)" json:"tel1"`
Tel2 string `gorm:"type:varchar(32)" 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:"lng"` // 乘了10的6次方
Lat int `json:"lat"` // 乘了10的6次方
DeliveryRangeType int8 `json:"deliveryRangeType"` // 参见相关常量定义
DeliveryRange string `gorm:"type:varchar(2048)" json:"deliveryRange"` // 如果DeliveryRangeType为DeliveryRangeTypePolygon则为逗号分隔坐标分号分隔的坐标点坐标与Lng和Lat一样都是整数比如 121361504,31189308;121420555,31150238。否则为半径单位为米
Status int `json:"status"`
}
type StoreSub struct {