- store courier map

This commit is contained in:
gazebo
2018-10-18 09:49:04 +08:00
parent e56eb69b09
commit 6dbadf0569
5 changed files with 186 additions and 6 deletions

View File

@@ -6,6 +6,7 @@ import (
"strings"
"git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/business/jxcallback/scheduler/basesch"
"git.rosy.net.cn/jx-callback/business/jxutils"
"git.rosy.net.cn/jx-callback/business/model"
"git.rosy.net.cn/jx-callback/business/model/dao"
@@ -368,3 +369,73 @@ func TmpGetJxBadCommentsByStoreId(storeID, page, size, commentType int) (retVal
}
return retVal, err
}
func GetStoreCourierMaps(db *dao.DaoDB, storeID int, vendorID int) (storeCourierMaps []*model.StoreCourierMap, err error) {
cond := map[string]interface{}{
model.FieldStoreID: storeID,
}
if vendorID != -1 {
cond[model.FieldVendorID] = vendorID
}
return storeCourierMaps, dao.GetEntitiesByKV(db, &storeCourierMaps, cond, false)
}
func AddStoreCourierMap(db *dao.DaoDB, storeID, vendorID int, storeCourierMap *model.StoreCourierMap, userName string) (outStoreCourierMap *model.StoreCourierMap, err error) {
if handler := basesch.FixedBaseScheduler.GetDeliveryPlatformFromVendorID(vendorID); handler != nil {
dao.WrapAddIDCULDEntity(storeCourierMap, userName)
storeCourierMap.StoreID = storeID
storeCourierMap.VendorID = vendorID
if db == nil {
db = dao.GetDB()
}
dao.Begin(db)
defer func() {
if r := recover(); r != nil {
dao.Rollback(db)
panic(r)
}
}()
if err = dao.CreateEntity(db, storeCourierMap); err == nil {
dao.Commit(db)
outStoreCourierMap = storeCourierMap
err = CurVendorSync.SyncStore(db, storeCourierMap.VendorID, storeID, true, userName)
}
if err != nil {
dao.Rollback(db)
}
} else {
err = ErrCanNotFindVendor
}
return outStoreCourierMap, err
}
func DeleteStoreCourierMap(db *dao.DaoDB, storeID, vendorID int, userName string) (num int64, err error) {
if db == nil {
db = dao.GetDB()
}
storeCourierMap := &model.StoreCourierMap{}
if num, err = dao.DeleteEntityLogically(db, storeCourierMap, map[string]interface{}{
model.FieldStatus: model.StoreStatusDisabled,
}, userName, map[string]interface{}{
model.FieldStoreID: storeID,
model.FieldVendorID: vendorID,
}); err == nil && num > 0 {
err = CurVendorSync.SyncStore(db, vendorID, storeID, true, userName)
}
return num, err
}
func UpdateStoreCourierMap(db *dao.DaoDB, storeID, vendorID int, payload map[string]interface{}, userName string) (num int64, err error) {
if db == nil {
db = dao.GetDB()
}
dummyStoreCourierMap := &model.StoreCourierMap{}
valid := dao.NormalMakeMapByStructObject(payload, dummyStoreCourierMap, userName)
if len(valid) > 0 {
num, err = dao.UpdateEntityLogically(db, dummyStoreCourierMap, valid, userName, map[string]interface{}{
model.FieldStoreID: storeID,
model.FieldVendorID: vendorID,
})
}
return num, err
}

View File

@@ -98,11 +98,17 @@ func (v *VendorSync) GetStoreHandler(vendorID int) partner.IPurchasePlatformHand
}
func (v *VendorSync) GetMultiStoreHandler(vendorID int) partner.IMultipleStoresHandler {
return v.PurchaseHandlers[vendorID].(partner.IMultipleStoresHandler)
if v.PurchaseHandlers[vendorID] != nil {
return v.PurchaseHandlers[vendorID].(partner.IMultipleStoresHandler)
}
return nil
}
func (v *VendorSync) GetSingleStoreHandler(vendorID int) partner.ISingleStoreHandler {
return v.PurchaseHandlers[vendorID].(partner.ISingleStoreHandler)
if v.PurchaseHandlers[vendorID] != nil {
return v.PurchaseHandlers[vendorID].(partner.ISingleStoreHandler)
}
return nil
}
func (v *VendorSync) SyncCategory(db *dao.DaoDB, categoryID int, isForce bool, userName string) (err error) {

View File

@@ -184,10 +184,10 @@ func (*StoreMap) TableUnique() [][]string {
type StoreCourierMap struct {
ModelIDCULD
StoreID int `orm:"column(store_id)"`
VendorID int `orm:"column(vendor_id)"`
VendorStoreID string `orm:"column(vendor_store_id);size(48)"`
Status int
StoreID int `orm:"column(store_id)" json:"storeID"`
VendorID int `orm:"column(vendor_id)" json:"vendorID"`
VendorStoreID string `orm:"column(vendor_store_id);size(48)" json:"vendorStoreID"`
Status int `json:"status"`
}
func (*StoreCourierMap) TableUnique() [][]string {

View File

@@ -200,3 +200,74 @@ func (c *StoreController) TmpGetJxBadCommentsByStoreId() {
return retVal, "", err
})
}
// @Title 得到门店快递映射信息
// @Description 得到门店快递映射信息
// @Param token header string true "认证token"
// @Param storeID query int true "门店ID"
// @Param vendorID query int false "厂商ID缺省为全部"
// @Success 200 {object} controllers.CallResult
// @Failure 200 {object} controllers.CallResult
// @router /GetStoreCourierMaps [get]
func (c *StoreController) GetStoreCourierMaps() {
c.callGetStoreCourierMaps(func(params *tStoreGetStoreCourierMapsParams) (retVal interface{}, errCode string, err error) {
if c.GetString("vendorID") == "" {
params.VendorID = -1
}
retVal, err = cms.GetStoreCourierMaps(nil, params.StoreID, params.VendorID)
return retVal, "", err
})
}
// @Title 修改门店快递映射信息
// @Description 修改门店快递映射信息
// @Param token header string true "认证token"
// @Param storeID query int true "门店IDpayload中的相应字段会被忽略"
// @Param vendorID query int true "快递厂商IDpayload中的相应字段会被忽略"
// @Param payload formData string true "json数据StoreCourierMap对象当前只有status, vendorStoreId两项"
// @Success 200 {object} controllers.CallResult
// @Failure 200 {object} controllers.CallResult
// @router /UpdateStoreCourierMap [put]
func (c *StoreController) UpdateStoreCourierMap() {
c.callUpdateStoreCourierMap(func(params *tStoreUpdateStoreCourierMapParams) (retVal interface{}, errCode string, err error) {
storeCourierMap := make(map[string]interface{})
if err = utils.UnmarshalUseNumber([]byte(params.Payload), &storeCourierMap); err == nil {
retVal, err = cms.UpdateStoreCourierMap(nil, params.StoreID, params.VendorID, storeCourierMap, GetUserNameFromToken(params.Token))
}
return retVal, "", err
})
}
// @Title 新增门店快递映射信息
// @Description 新增门店快递映射信息
// @Param token header string true "认证token"
// @Param storeID formData int true "门店IDpayload中的相应字段会被忽略"
// @Param vendorID formData int true "快递厂商IDpayload中的相应字段会被忽略"
// @Param payload formData string true "json数据StoreCourierMap对象当前只有status, vendorStoreId两项"
// @Success 200 {object} controllers.CallResult
// @Failure 200 {object} controllers.CallResult
// @router /AddStoreCourierMap [post]
func (c *StoreController) AddStoreCourierMap() {
c.callAddStoreCourierMap(func(params *tStoreAddStoreCourierMapParams) (retVal interface{}, errCode string, err error) {
storeCourierMap := &model.StoreCourierMap{}
if err = utils.UnmarshalUseNumber([]byte(params.Payload), storeCourierMap); err == nil {
retVal, err = cms.AddStoreCourierMap(nil, params.StoreID, params.VendorID, storeCourierMap, GetUserNameFromToken(params.Token))
}
return retVal, "", err
})
}
// @Title 删除门店快递映射信息
// @Description 删除门店快递映射信息
// @Param token header string true "认证token"
// @Param storeID query int true "门店ID"
// @Param vendorID query int true "快递厂商ID"
// @Success 200 {object} controllers.CallResult
// @Failure 200 {object} controllers.CallResult
// @router /DeleteStoreCourierMap [delete]
func (c *StoreController) DeleteStoreCourierMap() {
c.callDeleteStoreCourierMap(func(params *tStoreDeleteStoreCourierMapParams) (retVal interface{}, errCode string, err error) {
retVal, err = cms.DeleteStoreCourierMap(nil, params.StoreID, params.VendorID, GetUserNameFromToken(params.Token))
return retVal, "", err
})
}

View File

@@ -359,6 +359,14 @@ func init() {
MethodParams: param.Make(),
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: "AddStoreCourierMap",
Router: `/AddStoreCourierMap`,
AllowHTTPMethods: []string{"post"},
MethodParams: param.Make(),
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: "AddStoreVendorMap",
@@ -375,6 +383,14 @@ func init() {
MethodParams: param.Make(),
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: "DeleteStoreCourierMap",
Router: `/DeleteStoreCourierMap`,
AllowHTTPMethods: []string{"delete"},
MethodParams: param.Make(),
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: "DeleteStoreVendorMap",
@@ -383,6 +399,14 @@ func init() {
MethodParams: param.Make(),
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: "GetStoreCourierMaps",
Router: `/GetStoreCourierMaps`,
AllowHTTPMethods: []string{"get"},
MethodParams: param.Make(),
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: "GetStoreVendorMaps",
@@ -431,6 +455,14 @@ func init() {
MethodParams: param.Make(),
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: "UpdateStoreCourierMap",
Router: `/UpdateStoreCourierMap`,
AllowHTTPMethods: []string{"put"},
MethodParams: param.Make(),
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: "UpdateStoreVendorMap",