package controllers import ( "errors" "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-callback/business/jxstore/cms" "git.rosy.net.cn/jx-callback/business/model" "github.com/astaxie/beego" ) type StoreController struct { beego.Controller } // @Title 得到地点(省,城市,区)信息 // @Description parentCode与vendorID必传入一个,vendorID的意思是得到所有与这个厂商相关的城市列表 // @Param token header string true "认证token" // @Param parentCode query int false "上级地点code。地点级别:省为1,市为2,区为3,缺省为市" // @Param vendorID query int false "得到所有与这个厂商相关的省与城市列表" // @Param includeDisabled query bool false "是否包括禁用的城市" // @Success 200 {object} controllers.CallResult // @Failure 200 {object} controllers.CallResult // @router /GetPlaces [get] func (c *StoreController) GetPlaces() { c.callGetPlaces(func(params *tStoreGetPlacesParams) (retVal interface{}, errCode string, err error) { if c.GetString("vendorID") == "" { params.VendorID = -1 // -1表示没有指定,因为0表示京东到家 } if params.VendorID == -1 && params.ParentCode == 0 { return nil, "", errors.New("parentCode与vendorID至少要指定一个") } retVal, err = cms.GetPlaces(params.ParentCode, params.VendorID, params.IncludeDisabled) return retVal, "", err }) } // @Title 修改地点信息 // @Description 只支持修改enabled, jd_code和mtps_price这三个属性 // @Param token header string true "认证token" // @Param payload formData string true "json数据,place对象数组" // @Success 200 {object} controllers.CallResult // @Failure 200 {object} controllers.CallResult // @router /UpdatePlaces [put] func (c *StoreController) UpdatePlaces() { c.callUpdatePlaces(func(params *tStoreUpdatePlacesParams) (retVal interface{}, errCode string, err error) { placeList := []*model.Place{} utils.UnmarshalUseNumber([]byte(params.Payload), &placeList) err = cms.UpdatePlaces(placeList, GetUserNameFromToken(params.Token)) return nil, "", err }) } // @Title 得到京西门店信息 // @Description 得到京西门店信息,如下条件之间是与的关系 // @Param token header string true "认证token" // @Param keyword query string false "查询关键字(可以为空,为空表示不限制)" // @Param id query int false "门店ID" // @Param name query string false "门店名称(不要求完全一致)" // @Param placeID query int false "所属地点ID" // @Param placeLevel query int false "所属地点级别" // @Param address query string false "门店地址" // @Param tel query string false "电话" // @Param fromStatus query int false "起始状态" // @Param toStatus query int false "结束状态" // @Param offset query int false "门店列表起始序号(以0开始,缺省为0)" // @Param pageSize query int false "门店列表页大小(缺省为50)" // @Success 200 {object} controllers.CallResult // @Failure 200 {object} controllers.CallResult // @router /GetStores [get] func (c *StoreController) GetStores() { c.callGetStores(func(params *tStoreGetStoresParams) (retVal interface{}, errCode string, err error) { retVal, err = cms.GetStores(params.Keyword, params.MapData, params.Offset, params.PageSize) return retVal, "", err }) } // @Title 远程查询厂商门店信息 // @Description 远程查询厂商门店信息,这个是实时调用API远程查询 // @Param token header string true "认证token" // @Param vendorStoreID query string true "门店ID" // @Param vendorID query int true "门店所属的厂商ID" // @Success 200 {object} controllers.CallResult // @Failure 200 {object} controllers.CallResult // @router /GetVendorStore [get] func (c *StoreController) GetVendorStore() { c.callGetVendorStore(func(params *tStoreGetVendorStoreParams) (retVal interface{}, errCode string, err error) { retVal, err = cms.GetVendorStore(params.VendorStoreID, params.VendorID) return retVal, "", err }) } // @Title 修改门店信息 // @Description 修改门店信息 // @Param token header string true "认证token" // @Param payload formData string true "json数据,store对象" // @Success 200 {object} controllers.CallResult // @Failure 200 {object} controllers.CallResult // @router /UpdateStore [put] func (c *StoreController) UpdateStore() { c.callUpdateStore(func(params *tStoreUpdateStoreParams) (retVal interface{}, errCode string, err error) { store := make(map[string]interface{}) utils.UnmarshalUseNumber([]byte(params.Payload), &store) err = cms.UpdateStore(store, GetUserNameFromToken(params.Token)) return nil, "", err }) } // @Title 创建京西门店 // @Description 创建京西门店 // @Param token header string true "认证token" // @Param payload formData string true "json数据,store对象" // @Success 200 {object} controllers.CallResult // @Failure 200 {object} controllers.CallResult // @router /CreateStore [post] func (c *StoreController) CreateStore() { c.callCreateStore(func(params *tStoreCreateStoreParams) (retVal interface{}, errCode string, err error) { store := &model.Store{} utils.UnmarshalUseNumber([]byte(params.Payload), store) retVal, err = cms.CreateStore(store, GetUserNameFromToken(params.Token)) return retVal, "", err }) }