Files
jx-callback/controllers/cms_store.go
2019-07-11 10:44:07 +08:00

411 lines
20 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package controllers
import (
"git.rosy.net.cn/baseapi/utils"
"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/netprinter"
"git.rosy.net.cn/jx-callback/business/model"
"github.com/astaxie/beego"
)
type StoreController struct {
beego.Controller
}
// @Title 得到京西门店信息
// @Description 得到京西门店信息,如下条件之间是与的关系
// @Param token header string true "认证token"
// @Param keyword query string false "查询关键字(可以为空,为空表示不限制)"
// @Param storeID 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 statuss query string false "门店状态列表[-1,0,1]-1禁用0休息关店1正常开店,缺省不限制"
// @Param vendorStoreCond query string false "查询关联门店的条件如果此字段没有设置vendorStoreConds无效andor指的是vendorStoreConds里的条件间的关系这组条件与其它条件都是与的关系"
// @Param vendorStoreConds query string false "为厂商条件对象{vendorID: cond}注意vendorID是字符串形式cond-1没有关联0不限定1有关联缺省为0"
// @Param courierStoreCond query string false "查询关联门店的条件如果此字段没有设置courierStoreConds无效andor指的是courierStoreConds里的条件间的关系这组条件与其它条件都是与的关系"
// @Param courierStoreConds query string false "为厂商条件对象{vendorID: cond}注意vendorID是字符串形式cond-1没有关联0不限定1有关联缺省为0"
// @Param mapLongitude query string false "地图中心经度"
// @Param mapLatitude query string false "地图中心纬度"
// @Param mapRadius query int false "地图半径(单位为米)"
// @Param orderTimeFrom query string false "订单创建起始时间"
// @Param orderTimeTo query string false "订单创建结束时间"
// @Param orderCountFrom query int false "订单量起始"
// @Param orderCountTo query int false "订单量结束"
// @Param offset query int false "门店列表起始序号以0开始缺省为0"
// @Param pageSize query int false "门店列表页大小缺省为50-1表示全部"
// @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) {
timeList, err := jxutils.BatchStr2Time(params.OrderTimeFrom, params.OrderTimeTo)
if err == nil {
retVal, err = cms.GetStores(params.Ctx, params.Keyword, params.MapData, params.Offset, params.PageSize, timeList[0], timeList[1], params.OrderCountFrom, params.OrderCountTo)
}
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.Ctx, params.VendorStoreID, params.VendorID)
return retVal, "", err
})
}
// @Title 修改门店信息
// @Description 修改门店信息
// @Param token header string true "认证token"
// @Param storeID formData int true "京西门店编号payload中的京西门店编号会被忽略"
// @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) {
payload := make(map[string]interface{})
if err = utils.UnmarshalUseNumber([]byte(params.Payload), &payload); err == nil {
retVal, err = cms.UpdateStore(params.Ctx, params.StoreID, payload, params.Ctx.GetUserName())
}
return retVal, "", err
})
}
// @Title 删除京西门店
// @Description 删除京西门店
// @Param token header string true "认证token"
// @Param storeID query int true "门店ID"
// @Success 200 {object} controllers.CallResult
// @Failure 200 {object} controllers.CallResult
// @router /DeleteStore [delete]
func (c *StoreController) DeleteStore() {
c.callDeleteStore(func(params *tStoreDeleteStoreParams) (retVal interface{}, errCode string, err error) {
retVal, err = cms.DeleteStore(params.Ctx, params.StoreID)
return retVal, "", err
})
}
// @Title 启用所有临时休息门店
// @Description 启用所有临时休息门店
// @Param token header string true "认证token"
// @Param isAsync formData bool true "是否异步操作"
// @Param isContinueWhenError formData bool false "单个同步失败是否继续缺省false"
// @Success 200 {object} controllers.CallResult
// @Failure 200 {object} controllers.CallResult
// @router /EnableHaveRestStores [put]
func (c *StoreController) EnableHaveRestStores() {
c.callEnableHaveRestStores(func(params *tStoreEnableHaveRestStoresParams) (retVal interface{}, errCode string, err error) {
retVal, err = cms.EnableHaveRestStores(params.Ctx, params.IsAsync, params.IsContinueWhenError)
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 /CreateStore [post]
func (c *StoreController) CreateStore() {
c.callCreateStore(func(params *tStoreCreateStoreParams) (retVal interface{}, errCode string, err error) {
store := &cms.StoreExt{}
if err = utils.UnmarshalUseNumber([]byte(params.Payload), store); err == nil {
retVal, err = cms.CreateStore(params.Ctx, store, params.Ctx.GetUserName())
}
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 /ZZZZZ [put]
func (c *StoreController) ZZZZZ() {
}
// @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 /GetStoreVendorMaps [get]
func (c *StoreController) GetStoreVendorMaps() {
c.callGetStoreVendorMaps(func(params *tStoreGetStoreVendorMapsParams) (retVal interface{}, errCode string, err error) {
if c.GetString("vendorID") == "" {
params.VendorID = -1
}
retVal, err = cms.GetStoreVendorMaps(params.Ctx, nil, params.StoreID, params.VendorID)
return retVal, "", err
})
}
// @Title 修改门店映射信息
// @Description 修改门店映射信息
// @Param token header string true "认证token"
// @Param storeID query int true "门店ID"
// @Param vendorID query int true "厂商ID"
// @Param payload formData string true "json数据storeMap对象"
// @Success 200 {object} controllers.CallResult
// @Failure 200 {object} controllers.CallResult
// @router /UpdateStoreVendorMap [put]
func (c *StoreController) UpdateStoreVendorMap() {
c.callUpdateStoreVendorMap(func(params *tStoreUpdateStoreVendorMapParams) (retVal interface{}, errCode string, err error) {
payload := make(map[string]interface{})
if err = utils.UnmarshalUseNumber([]byte(params.Payload), &payload); err == nil {
retVal, err = cms.UpdateStoreVendorMap(params.Ctx, nil, params.StoreID, params.VendorID, payload, params.Ctx.GetUserName())
}
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数据storeMap对象({'vendorStoreID':'11732425','autoPickup':1,'deliveryCompetition':1, 'pricePercentage':100})"
// @Success 200 {object} controllers.CallResult
// @Failure 200 {object} controllers.CallResult
// @router /AddStoreVendorMap [post]
func (c *StoreController) AddStoreVendorMap() {
c.callAddStoreVendorMap(func(params *tStoreAddStoreVendorMapParams) (retVal interface{}, errCode string, err error) {
storeMap := &model.StoreMap{}
if err = utils.UnmarshalUseNumber([]byte(params.Payload), storeMap); err == nil {
retVal, err = cms.AddStoreVendorMap(params.Ctx, nil, params.StoreID, params.VendorID, storeMap)
}
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 /DeleteStoreVendorMap [delete]
func (c *StoreController) DeleteStoreVendorMap() {
c.callDeleteStoreVendorMap(func(params *tStoreDeleteStoreVendorMapParams) (retVal interface{}, errCode string, err error) {
retVal, err = cms.DeleteStoreVendorMap(params.Ctx, nil, params.StoreID, params.VendorID, params.Ctx.GetUserName())
return retVal, "", err
})
}
// @Title 得到门店差评总数
// @Description 得到门店差评总数,此函数为兼容老系统,之后会被替换
// @Param token header string true "认证token"
// @Param jxStoreId query int true "门店ID"
// @Success 200 {object} controllers.CallResult
// @Failure 200 {object} controllers.CallResult
// @router /TmpGetJxBadCommentsNo [get]
func (c *StoreController) TmpGetJxBadCommentsNo() {
c.callTmpGetJxBadCommentsNo(func(params *tStoreTmpGetJxBadCommentsNoParams) (retVal interface{}, errCode string, err error) {
retVal, err = cms.TmpGetJxBadCommentsNo(params.Ctx, params.JxStoreId)
return retVal, "", err
})
}
// @Title 得到门店差评总数
// @Description 得到门店差评总数使用TmpGetJxBadComments替代
// @Param token header string true "认证token"
// @Param jxStoreId query int true "门店ID"
// @Param type query int true "评论类型0差评1所有"
// @Param page query int true "起始页从1开始"
// @Param size query int true "页大小(-1表示无限大"
// @Param fromTime query string false "创建起始时间"
// @Param toTime query string false "创建结束时间"
// @Success 200 {object} controllers.CallResult
// @Failure 200 {object} controllers.CallResult
// @router /TmpGetJxBadCommentsByStoreId [get]
func (c *StoreController) TmpGetJxBadCommentsByStoreId() {
c.callTmpGetJxBadCommentsByStoreId(func(params *tStoreTmpGetJxBadCommentsByStoreIdParams) (retVal interface{}, errCode string, err error) {
timeList, err2 := jxutils.BatchStr2Time(params.FromTime, params.ToTime)
if err = err2; err == nil {
pageSize := jxutils.FormalizePageSize(params.Size)
offset := (params.Page - 1) * pageSize
retVal, err = cms.TmpGetJxBadCommentsByStoreId(params.Ctx, []int{params.JxStoreId}, offset, pageSize, params.Type, timeList[0], timeList[1])
}
return retVal, "", err
})
}
// @Title 得到门店差评总数
// @Description 得到门店差评总数
// @Param token header string true "认证token"
// @Param type query int true "评论类型0差评1所有2已解决"
// @Param storeIDs query string false "门店I列表"
// @Param offset query int false "起始页从1开始"
// @Param pageSize query int false "页大小(-1表示无限大"
// @Param fromTime query string false "创建起始时间"
// @Param toTime query string false "创建结束时间"
// @Success 200 {object} controllers.CallResult
// @Failure 200 {object} controllers.CallResult
// @router /TmpGetJxBadComments [get]
func (c *StoreController) TmpGetJxBadComments() {
c.callTmpGetJxBadComments(func(params *tStoreTmpGetJxBadCommentsParams) (retVal interface{}, errCode string, err error) {
var storeIDs []int
if err = jxutils.Strings2Objs(params.StoreIDs, &storeIDs); err == nil {
timeList, err2 := jxutils.BatchStr2Time(params.FromTime, params.ToTime)
if err = err2; err == nil {
retVal, err = cms.TmpGetJxBadCommentsByStoreId(params.Ctx, storeIDs, params.Offset, params.PageSize, params.Type, timeList[0], timeList[1])
}
}
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(params.Ctx, 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(params.Ctx, nil, params.StoreID, params.VendorID, storeCourierMap, params.Ctx.GetUserName())
}
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(params.Ctx, nil, params.StoreID, params.VendorID, storeCourierMap)
}
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(params.Ctx, nil, params.StoreID, params.VendorID, params.Ctx.GetUserName())
return retVal, "", err
})
}
// @Title 根据绑定的京东定,自动创建达达店
// @Description 根据绑定的京东定,自动创建达达店
// @Param token header string true "认证token"
// @Param storeID formData int false "门店ID"
// @Param isAsync formData bool false "是否异步操作"
// @Param isContinueWhenError formData bool false "单个同步失败是否继续缺省false"
// @Success 200 {object} controllers.CallResult
// @Failure 200 {object} controllers.CallResult
// @router /RefreshMissingDadaStores [put]
func (c *StoreController) RefreshMissingDadaStores() {
c.callRefreshMissingDadaStores(func(params *tStoreRefreshMissingDadaStoresParams) (retVal interface{}, errCode string, err error) {
retVal, err = cms.RefreshMissingDadaStores(params.Ctx, params.StoreID, params.IsAsync, params.IsContinueWhenError)
return retVal, "", err
})
}
// @Title 导出门店健康度信息
// @Description 导出门店健康度信息
// @Param token header string true "认证token"
// @Param vendorIDs query string false "平台ID列表"
// @Param storeIDs query string false "门店ID列表"
// @Param isAsync query bool false "是否异步操作"
// @Param isContinueWhenError query bool false "单个同步失败是否继续缺省false"
// @Success 200 {object} controllers.CallResult
// @Failure 200 {object} controllers.CallResult
// @router /ExportShopsHealthInfo [get]
func (c *StoreController) ExportShopsHealthInfo() {
c.callExportShopsHealthInfo(func(params *tStoreExportShopsHealthInfoParams) (retVal interface{}, errCode string, err error) {
var vendorIDList, storeIDList []int
if err = jxutils.Strings2Objs(params.VendorIDs, &vendorIDList, params.StoreIDs, &storeIDList); err == nil {
retVal, err = cms.ExportShopsHealthInfo(params.Ctx, vendorIDList, storeIDList, params.IsAsync, params.IsContinueWhenError)
}
return retVal, "", err
})
}
// @Title 得到工商执照企业信息
// @Description 得到工商执照企业信息
// @Param token header string true "认证token"
// @Param licenceCode query string true "营业执照号"
// @Success 200 {object} controllers.CallResult
// @Failure 200 {object} controllers.CallResult
// @router /GetCorporationInfo [get]
func (c *StoreController) GetCorporationInfo() {
c.callGetCorporationInfo(func(params *tStoreGetCorporationInfoParams) (retVal interface{}, errCode string, err error) {
retVal, err = cms.GetCorporationInfo(params.Ctx, params.LicenceCode)
return retVal, "", err
})
}
// @Title 门店绑定打印
// @Description 门店绑定打印
// @Param token header string true "认证token"
// @Param storeID formData int true "京西门店ID"
// @Param data formData string true "原始数据"
// @Success 200 {object} controllers.CallResult
// @Failure 200 {object} controllers.CallResult
// @router /BindPrinter [post]
func (c *StoreController) BindPrinter() {
c.callBindPrinter(func(params *tStoreBindPrinterParams) (retVal interface{}, errCode string, err error) {
retVal, err = netprinter.BindPrinter(params.Ctx, params.StoreID, params.Data)
return retVal, "", err
})
}