package controllers import ( "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-callback/business/jxcallback/orderman" "git.rosy.net.cn/jx-callback/business/jxstore/cms" "git.rosy.net.cn/jx-callback/business/jxutils" "git.rosy.net.cn/jx-callback/business/jxutils/configindb" "git.rosy.net.cn/jx-callback/business/msghub" "git.rosy.net.cn/jx-callback/globals/api" "github.com/astaxie/beego" ) type CmsController struct { beego.Controller } // @Title 得到地点(省,城市,区)信息 // @Description 得到地点(省,城市,区)信息。 // @Param token header string true "认证token"// @Param keyword query string false "查询关键字(可以为空,为空表示不限制)" // @Param keyword query string false "查询关键字(可以为空,为空表示不限制)" // @Param parentCode query int false "上级地点code,这个指的是国家标准CODE(中国为:100000,北京为:110000,北京市为:110100),不是数据库中的ID" // @Param level query int false "地点级别:省为1,市为2,区为3,注意直辖市也要分省与市级" // @Param includeDisabled query bool false "是否包括禁用的城市(缺省不包括)" // @Success 200 {object} controllers.CallResult // @Failure 200 {object} controllers.CallResult // @router /GetPlaces [get] func (c *CmsController) GetPlaces() { c.callGetPlaces(func(params *tCmsGetPlacesParams) (retVal interface{}, errCode string, err error) { retVal, err = cms.GetPlaces(params.Ctx, params.Keyword, params.IncludeDisabled, params.MapData) 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 *CmsController) UpdatePlaces() { c.callUpdatePlaces(func(params *tCmsUpdatePlacesParams) (retVal interface{}, errCode string, err error) { placeList := make([]map[string]interface{}, 0) if err = utils.UnmarshalUseNumber([]byte(params.Payload), &placeList); err == nil { retVal, err = cms.UpdatePlaces(params.Ctx, placeList, params.Ctx.GetUserName()) } return retVal, "", err }) } // @Title 修改地点信息 // @Description 只支持修改enabled, jd_code和mtps_price这三个属性 // @Param token header string true "认证token" // @Param code formData int true "地点编号,注意是code不是ID,payload中的code会被忽略" // @Param payload formData string true "json数据,place对象" // @Success 200 {object} controllers.CallResult // @Failure 200 {object} controllers.CallResult // @router /UpdatePlace [put] func (c *CmsController) UpdatePlace() { c.callUpdatePlace(func(params *tCmsUpdatePlaceParams) (retVal interface{}, errCode string, err error) { place := make(map[string]interface{}, 0) if err = utils.UnmarshalUseNumber([]byte(params.Payload), &place); err == nil { retVal, err = cms.UpdatePlace(params.Ctx, params.Code, place, params.Ctx.GetUserName()) } return retVal, "", err }) } // @Title 得到服务相关的一些基础信息 // @Description 得到服务相关的一些基础信息,包括版本,及一些元数据信息 // @Param token header string true "认证token" // @Success 200 {object} controllers.CallResult // @Failure 200 {object} controllers.CallResult // @router /GetServiceInfo [get] func (c *CmsController) GetServiceInfo() { c.callGetServiceInfo(func(params *tCmsGetServiceInfoParams) (retVal interface{}, errCode string, err error) { retVal = cms.GetServiceInfo(params.Ctx) return retVal, "", err }) } // @Title 得到七牛上传服务临时token // @Description 得到七牛上传服务临时token,当前设置为5分钟内有效。正常使用场景为每次上传资源前实时获取,而不是保存下来一直使用,如果hashCode有值,且本地有,可能直接返回URL // @Param token header string true "认证token" // @Param suffix query string true "前缀" // @Param hashCode query string false "图片hash" // @Success 200 {object} controllers.CallResult // @Failure 200 {object} controllers.CallResult // @router /GetQiniuUploadToken [get] func (c *CmsController) GetQiniuUploadToken() { c.callGetQiniuUploadToken(func(params *tCmsGetQiniuUploadTokenParams) (retVal interface{}, errCode string, err error) { retVal, err = cms.GetQiniuUploadToken(params.Ctx, params.Suffix, params.HashCode) return retVal, "", err }) } // @Title 根据坐标得到区码 // @Description 根据坐标得到区码,坐标都为火星坐标(有些市是没有区的,比如东莞,这种情况下返回的区码是一个假的区域,即市的编码加上9000000) // @Param token header string true "认证token" // @Param lng query number true "经度" // @Param lat query number true "纬度" // @Success 200 {object} controllers.CallResult // @Failure 200 {object} controllers.CallResult // @router /GetCoordinateDistrictCode [get] func (c *CmsController) GetCoordinateDistrictCode() { c.callGetCoordinateDistrictCode(func(params *tCmsGetCoordinateDistrictCodeParams) (retVal interface{}, errCode string, err error) { retVal, err = cms.GetCoordinateDistrictCode(params.Ctx, params.Lng, params.Lat) return retVal, "", err }) } // @Title 得到配置参数 // @Description 得到配置参数 // @Param token header string true "认证token" // @Param key query string true "参数名" // @Success 200 {object} controllers.CallResult // @Failure 200 {object} controllers.CallResult // @router /GetConfig [get] func (c *CmsController) GetConfig() { c.callGetConfig(func(params *tCmsGetConfigParams) (retVal interface{}, errCode string, err error) { retVal, err = configindb.GetConfig(params.Key, "") return retVal, "", err }) } // @Title 设置配置参数 // @Description 设置配置参数 // @Param token header string true "认证token" // @Param key query string true "参数名" // @Param value query string true "参数值" // @Success 200 {object} controllers.CallResult // @Failure 200 {object} controllers.CallResult // @router /SetConfig [put] func (c *CmsController) SetConfig() { c.callSetConfig(func(params *tCmsSetConfigParams) (retVal interface{}, errCode string, err error) { retVal, err = configindb.SetConfig(params.Ctx, params.Key, params.Value) return retVal, "", err }) } // @Title 从条形码得到商品信息 // @Description 从条形码得到商品信息 // @Param token header string true "认证token" // @Param barCode query string true "条形码" // @Success 200 {object} controllers.CallResult // @Failure 200 {object} controllers.CallResult // @router /GetProductInfoByBarCode [get] func (c *CmsController) GetProductInfoByBarCode() { c.callGetProductInfoByBarCode(func(params *tCmsGetProductInfoByBarCodeParams) (retVal interface{}, errCode string, err error) { retVal, err = api.ShowAPI.GetProductInfoByBarCode(params.BarCode) return retVal, "", err }) } // @Title 得到服务器消息通知 // @Description 得到服务器消息通知 // @Param token header string true "认证token" // @Param storeID query int true "京西门店ID" // @Param lastOrderTime query string false "最后订单时间(缺省为24小时内)" // @Param lastOrderSeqID query string false "最后订单流水ID(缺省为0)" // @Param waitingSecond query int false "等待时间" // @Success 200 {object} controllers.CallResult // @Failure 200 {object} controllers.CallResult // @router /GetNewOrderMsg [get] func (c *CmsController) GetNewOrderMsg() { c.callGetNewOrderMsg(func(params *tCmsGetNewOrderMsgParams) (retVal interface{}, errCode string, err error) { timeList, err := jxutils.BatchStr2Time(params.LastOrderTime) if err == nil { lastOrderSeqID := utils.Str2Int64WithDefault(params.LastOrderSeqID, 0) retVal, err = msghub.GetMsg(params.Ctx, params.StoreID, timeList[0], lastOrderSeqID, nil, params.WaitingSecond) } return retVal, "", err }) } // @Title 发送新订单消息(测试用) // @Description 发送新订单消息(测试用) // @Param token header string true "认证token" // @Param vendorOrderID formData string true "订单ID" // @Param vendorID formData int true "订单厂商ID" // @Success 200 {object} controllers.CallResult // @Failure 200 {object} controllers.CallResult // @router /FakeNewOrder [post] func (c *CmsController) FakeNewOrder() { c.callFakeNewOrder(func(params *tCmsFakeNewOrderParams) (retVal interface{}, errCode string, err error) { order, err := orderman.FixedOrderManager.LoadOrder(params.VendorOrderID, params.VendorID) if err == nil { msghub.OnNewOrder(order) } return retVal, "", err }) }