Files
jx-callback/business/partner/purchase/doudian/store.go
邹宗楠 654bdb7811 1
2022-10-06 11:36:19 +08:00

429 lines
17 KiB
Go

package doudian
//
//import (
// "errors"
// "fmt"
// address_create_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/address_create/request"
// address_list_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/address_list/request"
// address_list_response "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/address_list/response"
// freightTemplate_create_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/freightTemplate_create/request"
// shop_batchCreateStore_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/shop_batchCreateStore/request"
// shop_bindStoreFreight_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/shop_bindStoreFreight/request"
// shop_bindStoreSaleLimit_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/shop_bindStoreSaleLimit/request"
// shop_editStore_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/shop_editStore/request"
// shop_getStoreDetail_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/shop_getStoreDetail/request"
// shop_getStoreList_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/shop_getStoreList/request"
// shop_storeSuspend_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/shop_storeSuspend/request"
// shop_unsuspendStore_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/shop_unsuspendStore/request"
// trade_createTradeLimitTemplate_request "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/sdk-golang/api/trade_createTradeLimitTemplate/request"
// "git.rosy.net.cn/baseapi/platformapi/tiktok_shop/tiktok_api"
// "git.rosy.net.cn/baseapi/utils"
// "git.rosy.net.cn/baseapi/utils/errlist"
// "git.rosy.net.cn/jx-callback/business/jxstore/event"
// "git.rosy.net.cn/jx-callback/business/jxutils"
// "git.rosy.net.cn/jx-callback/business/jxutils/jxcontext"
// "git.rosy.net.cn/jx-callback/business/jxutils/tasksch"
// "git.rosy.net.cn/jx-callback/business/model"
// "git.rosy.net.cn/jx-callback/business/model/dao"
// "git.rosy.net.cn/jx-callback/globals"
// "git.rosy.net.cn/jx-callback/globals/api"
//)
//
//func splicingTimeToDoudian(openTime1, closeTime1, openTime2, closeTime2 int16) (timeList string) {
// //700 1200 -> 7:00-12:00
// timeStr := ""
// if openTime1 != 0 && closeTime1 != 0 {
// tOpenTime1 := utils.Int64ToStr(int64(openTime1))
// len1 := len(tOpenTime1) - 2
// s1 := tOpenTime1[:len1] + ":" + tOpenTime1[len1+1:]
// tCloseTime1 := utils.Int64ToStr(int64(closeTime1))
// len2 := len(tCloseTime1) - 2
// s2 := tCloseTime1[:len2] + ":" + tCloseTime1[len2+1:]
// timeStr += s1 + "-" + s2
// if openTime2 != 0 && closeTime2 != 0 {
// tOpenTime2 := utils.Int64ToStr(int64(openTime2))
// len3 := len(tOpenTime2) - 2
// s3 := tOpenTime2[:len3] + ":" + tOpenTime2[len3+1:]
// tCloseTime2 := utils.Int64ToStr(int64(closeTime2))
// len4 := len(tCloseTime2) - 2
// s4 := tCloseTime2[:len4] + ":" + tCloseTime2[len4+1:]
// timeStr += " " + s3 + "-" + s4
// }
// }
// return timeStr
//}
//
//// shop/batchCreateStore 批量创建门店
//func (P *PurchaseHandler) CreateStore2(db *dao.DaoDB, storeID int, userName string, params map[string]interface{}, storeDetail *dao.StoreDetail) (vendorStoreID string, err error) {
// var (
// storeIDs string
// lists []shop_batchCreateStore_request.StoreListItem
// ShopBatchCreateStoreParam *shop_batchCreateStore_request.ShopBatchCreateStoreParam
// )
// timeStr := ""
// if storeDetail.OpenTime1 == 0 || storeDetail.CloseTime1 == 0 {
// return "", fmt.Errorf("营业时间必填")
// } else {
// timeStr = splicingTimeToDoudian(storeDetail.OpenTime1, storeDetail.CloseTime1, storeDetail.OpenTime2, storeDetail.CloseTime2)
// }
// m := make(map[int64]string)
// for j := 1; j <= 7; j++ {
// m[int64(j)] = timeStr
// }
// list := shop_batchCreateStore_request.StoreListItem{
// RowId: 1,
// Name: storeDetail.Name,
// StoreCode: storeDetail.VendorStoreID,
// Longitude: utils.Float64ToStr(jxutils.IntCoordinate2Standard(storeDetail.Lng)),
// Latitude: utils.Float64ToStr(jxutils.IntCoordinate2Standard(storeDetail.Lat)),
// Province: storeDetail.ProvinceName,
// City: storeDetail.CityName,
// District: storeDetail.DistrictName,
// Address: storeDetail.Address,
// Contact: storeDetail.Tel1,
// OpenTime: &shop_batchCreateStore_request.OpenTime{
// DayMap: m,
// },
// }
// lists = append(lists, list)
// ShopBatchCreateStoreParam = &shop_batchCreateStore_request.ShopBatchCreateStoreParam{
// StoreList: lists,
// }
// if resp, err := api.DouDianApi.BatchCreateStore(ShopBatchCreateStoreParam); err != nil {
// return "", err
// } else {
// for k, v := range resp.ResultList {
// if k != len(resp.ResultList) {
// storeIDs += utils.Int64ToStr(v.Store.StoreId) + ","
// }
// storeIDs += utils.Int64ToStr(v.Store.StoreId)
// }
// return storeIDs, nil
// }
//}
//
//// shop/editStore 编辑门店信息 正向推送平台
//func (P *PurchaseHandler) UpdateStore(db *dao.DaoDB, storeID int, userName string) (err error) {
// globals.SugarLogger.Debugf("doudian Update storeID:%d, userName:%s", storeID, userName)
// var (
// storeInfo *dao.StoreDetail
// name string
// )
// if db == nil {
// db = dao.GetDB()
// }
// sqlStr := ` SELECT
// t1.*,
// t2.status, t2.vendor_store_id, t2.vendor_org_code,
// IF(t1.updated_at > t2.updated_at, t1.last_operator, t2.last_operator) real_last_operator, t2.sync_status, t2.vendor_store_name
// FROM store t1
// LEFT JOIN store_map t2 ON t1.id = t2.store_id AND t2.vendor_id = ? AND (t2.deleted_at = ?)
// WHERE t1.id = ?
// ORDER BY t2.updated_at`
// err = dao.GetRow(db, &storeInfo, sqlStr, model.VendorIDDouDian, utils.DefaultTimeValue, utils.Int2Str(storeID))
// if err != nil {
// return err
// }
// errList := errlist.New()
// timeStr := ""
// m := make(map[int64]string)
// if storeInfo.OpenTime1 != 0 && storeInfo.CloseTime1 != 0 {
// timeStr = splicingTimeToDoudian(storeInfo.OpenTime1, storeInfo.CloseTime1, storeInfo.OpenTime2, storeInfo.CloseTime2)
// for j := 1; j <= 7; j++ {
// m[int64(j)] = timeStr
// }
// }
// vendorStoreID := &shop_getStoreDetail_request.ShopGetStoreDetailParam{
// StoreId: utils.Str2Int64(storeInfo.VendorStoreID),
// }
// if globals.EnableDdStoreWrite {
// remoteStoreInfo, err2 := api.DouDianApi.GetStoreDetail(vendorStoreID)
// if err2 != nil {
// return err2
// }
// if remoteStoreInfo.StoreDetail.Store.StoreId == 0 {
// return fmt.Errorf("ID:%d 的门店不存在,请先创建", utils.Str2Int64(storeInfo.VendorStoreID))
// }
// mergedStoreStatus := jxutils.MergeStoreStatus(storeInfo.Status, storeInfo.VendorStatus)
// name = remoteStoreInfo.StoreDetail.Store.Name
// if storeInfo.SyncStatus&(model.SyncFlagNewMask|model.SyncFlagStoreName) != 0 {
// if storeInfo.VendorStoreName != "" {
// name = storeInfo.VendorStoreName
// }
// }
// store := fmt.Sprintf("门店id:%d,门店名称:%s,第三方门店状态:%d,本地修改前门店状态%d,本地门店修改后状态:%d,第三方平台Id(抖店):%s", storeID, remoteStoreInfo.StoreDetail.Store.Name, remoteStoreInfo.StoreDetail.Store.State, storeInfo.Status, mergedStoreStatus, storeInfo.VendorOrgCode)
// event.AddOperateEvent(jxcontext.AdminCtx, jxcontext.AdminCtx.GetTrackInfo(), store, "", "", 10, "UpdateStore")
// params := &shop_editStore_request.ShopEditStoreParam{
// StoreId: remoteStoreInfo.StoreDetail.Store.StoreId, //平台id不可修改
// Name: name,
// StoreCode: utils.Int2Str(storeInfo.ID), //自用编码即很本地storeID
// Latitude: utils.Int2Str(storeInfo.Lat),
// Longitude: utils.Int2Str(storeInfo.Lng),
// Province: storeInfo.ProvinceName,
// City: storeInfo.CityName,
// District: storeInfo.DistrictName,
// Address: storeInfo.Address,
// Contact: storeInfo.Tel1,
// OpenTime: &shop_editStore_request.OpenTime{
// DayMap: m,
// },
// }
// //修改店铺状态
// if storeInfo.SyncStatus&(model.SyncFlagNewMask|model.SyncFlagStoreStatus) != 0 {
// errList.AddErr(P.UpdateStoreStatus(jxcontext.AdminCtx, storeInfo.VendorOrgCode, storeID, storeInfo.VendorStoreID, mergedStoreStatus))
// }
// _, err3 := api.DouDianApi.EditStore(params)
// if err3 != nil {
// errList.AddErr(err3)
// }
// }
// return err
//}
//
//// shop/storeSuspend 门店暂停营业
//// shop/unsuspendStore 门店恢复营业
//func (p *PurchaseHandler) UpdateStoreStatus(ctx *jxcontext.Context, vendorOrgCode string, storeID int, vendorStoreID string, status int) (err error) {
// isOnline := bizStatusJX2DouDian(status)
// if globals.EnableDdStoreWrite {
// if isOnline != tiktok_api.StoreStatusOnline { //暂停营业状态
// unsuspendStoreID := &shop_unsuspendStore_request.ShopUnsuspendStoreParam{
// StoreId: utils.Str2Int64(vendorStoreID),
// }
// _, err = api.DouDianApi.UnsuspendStore(unsuspendStoreID)
// } else { //恢复营业
// suspendStoreID := &shop_storeSuspend_request.ShopStoreSuspendParam{
// StoreId: utils.Str2Int64(vendorStoreID),
// }
// getStoreID := &shop_getStoreDetail_request.ShopGetStoreDetailParam{
// StoreId: utils.Str2Int64(vendorStoreID),
// }
// //平台上店铺状态
// remoteStoreInfo, err2 := api.DouDianApi.GetStoreDetail(getStoreID)
// if err2 != nil {
// return err2
// }
// if remoteStoreInfo.StoreDetail.Store.SuspendType == tiktok_api.SuspendTypePlatformPenalty {
// err = errors.New("门店因平台处罚暂停营业,不可主动修改营业状态")
// } else {
// _, err = api.DouDianApi.StoreSuspend(suspendStoreID)
// }
// }
// }
// return err
//}
//
//// /freightTemplate/create 创建运费模板
//func (P *PurchaseHandler) CreateFreightTemplate(templateInfo freightTemplate_create_request.FreightTemplateCreateParam, storeID, vendorStoreID int64) error {
// var (
// db *dao.DaoDB
// )
// if templateInfo.Template.RuleType > 0 {
// templateInfo.Template.CalculateType = tiktok_api.CalculateTypeNum
// }
// info := &freightTemplate_create_request.FreightTemplateCreateParam{
// Template: templateInfo.Template,
// Columns: templateInfo.Columns,
// }
// resp, err := api.DouDianApi.FreightTemplateCreate(info)
// if err != nil {
// return err
// }
// //创建成功后进行绑定
// bindInfo := &shop_bindStoreFreight_request.ShopBindStoreFreightParam{
// StoreId: vendorStoreID,
// FreightId: resp.TemplateId,
// }
// _, err1 := api.DouDianApi.BindFreightTemplate(bindInfo)
// if err != nil {
// return err1
// }
// //并写入数据库
// freightInfo := model.FreightTemplate{
// StoreID: storeID,
// VendorStoreID: vendorStoreID,
// TemplateID: resp.TemplateId,
// }
// if err = dao.CreateEntity(db, freightInfo); err != nil {
// return err
// }
// return nil
//}
//
//// /shop/bindStoreFreight 门店绑定运费模版
////门店绑定运费模版,运费模版必须属于门店关联的抖店,且门店与运费模版是一对一关系
//func (P *PurchaseHandler) ShopBindStoreFreight(storeID, freightID int64) error {
// param := &shop_bindStoreFreight_request.ShopBindStoreFreightParam{
// StoreId: storeID,
// FreightId: freightID,
// }
// _, err := api.DouDianApi.BindFreightTemplate(param)
// if err != nil {
// return err
// }
// return nil
//}
//
//// /address/create 创建店铺地址库(新建即绑定)
//func (P *PurchaseHandler) CreateAddress(addressInfo address_create_request.AddressCreateParam) (addressID int64, err error) {
// info := &address_create_request.AddressCreateParam{
// Address: addressInfo.Address,
// StoreId: addressInfo.StoreId,
// }
// resp, err := api.DouDianApi.AddressCreate(info)
// if err != nil {
// return 0, err
// }
// //添加进数据库page_shop
// //获取门店信息
// //storeID := &shop_getStoreDetail_request.ShopGetStoreDetailParam{
// // StoreId: addressInfo.StoreId,
// //}
// //storeInfo, err1 := api.DouDianApi.GetStoreDetail(storeID)
// //if err1 != nil {
// // return 0, err1
// //}
// //createAddress := &model.PageShop{ //此表暂存门店售后地址库
// // Name: storeInfo.StoreDetail.Store.Name,
// // VendorID: model.VendorIDDouDian,
// // VendorStoreID: utils.Int64ToStr(storeInfo.StoreDetail.Store.StoreId), //抖店平台ID
// // OrgCode: storeInfo.StoreDetail.Store.StoreCode, //暂时用来存放京西平台门店ID
// // VendorStatus: utils.Int64ToStr(storeInfo.StoreDetail.Store.State),
// // Status: 0,
// // CityCode: utils.Str2Int(storeInfo.StoreDetail.Store.CityCode),
// // DistrictCode: utils.Str2Int(storeInfo.StoreDetail.Store.DistrictCode),
// // Address: storeInfo.StoreDetail.Store.Address,
// // Lng: utils.Str2Float64(storeInfo.StoreDetail.Store.Longitude),
// // Lat: utils.Str2Float64(storeInfo.StoreDetail.Store.Latitude),
// // Tel1: storeInfo.StoreDetail.Store.Contact,
// //}
// //if err = dao.CreateEntity(dao.GetDB(), createAddress); err != nil {
// // return 0, err
// //}
// return resp.AddressId, nil
//}
//
//// /address/list 获取售后地址列表接口
////分页获取商家地址列表
//func (P *PurchaseHandler) GetAddressList(param *address_list_request.AddressListParam) (*address_list_response.AddressListData, error) {
// //不传入ID则是获取所有门店售后地址列表
// info := &address_list_request.AddressListParam{
// PageSize: 10,
// PageNo: 1,
// OrderBy: param.OrderBy,
// OrderField: param.OrderField,
// }
// if param.StoreId != 0 {
// info.StoreId = param.StoreId
// }
// listInfo, err := api.DouDianApi.GetAddressList(info)
// if err != nil {
// return nil, err
// }
// return listInfo, nil
//}
//
//// /trade/createTradeLimitTemplate 创建限售模板
//func (P *PurchaseHandler) CreateTradeLimitTemplate(template trade_createTradeLimitTemplate_request.TradeCreateTradeLimitTemplateParam) (tradeLimitID int64, err error) {
// info := &trade_createTradeLimitTemplate_request.TradeCreateTradeLimitTemplateParam{
// StoreId: template.StoreId,
// TradeLimitRuleRequestList: template.TradeLimitRuleRequestList,
// }
// resp, err := api.DouDianApi.CreateTradeLimitTemplate(info)
// if err != nil {
// return 0, err
// }
// return resp.TradeLimitId, nil
//}
//
//// /shop/bindStoreSaleLimit 门店绑定限售模板
//func (P *PurchaseHandler) BindStoreSaleLimit(storeID, saleLimitTemplateID int64) error {
// info := &shop_bindStoreSaleLimit_request.ShopBindStoreSaleLimitParam{
// StoreId: storeID,
// SaleLimitId: saleLimitTemplateID,
// }
// if _, err := api.DouDianApi.BindStoreSaleLimit(info); err != nil {
// return err
// }
// return nil
//}
//
//func (P *PurchaseHandler) UpdateStoreOpTime(ctx *jxcontext.Context, vendorOrgCode string, storeID int, vendorStoreID string, opTimeList []int16) (err error) {
// t1 := opTimeList[0]
// t2 := opTimeList[1]
// t3 := opTimeList[2]
// t4 := opTimeList[4]
// timeStr := splicingTimeToDoudian(t1, t2, t3, t4)
// m := make(map[int64]string)
// for j := 1; j <= 7; j++ {
// m[int64(j)] = timeStr
// }
// params := &shop_editStore_request.ShopEditStoreParam{
// StoreId: utils.Str2Int64(vendorStoreID),
// OpenTime: &shop_editStore_request.OpenTime{
// DayMap: m,
// },
// }
// if globals.EnableDdStoreWrite {
// api.DouDianApi.EditStore(params)
// }
// return err
//}
//
//func (P *PurchaseHandler) GetStoreStatus(ctx *jxcontext.Context, vendorOrgCode string, storeID int, vendorStoreID string) (storeStatus int, err error) {
// params := &shop_getStoreDetail_request.ShopGetStoreDetailParam{
// StoreId: utils.Str2Int64(vendorStoreID),
// }
// result, err := api.DouDianApi.GetStoreDetail(params)
// if err != nil {
// return 0, err
// }
// status := bizStatusJX2DouDian(int(result.StoreDetail.Store.State))
// return status, nil
//}
//
//func (P *PurchaseHandler) EnableAutoAcceptOrder(ctx *jxcontext.Context, vendorOrgCode string, storeID int, vendorStoreID string, isSetEnable bool) (err error) {
// return err
//}
//
//// 获取店铺所有平台ID
//func (P *PurchaseHandler) GetAllStoresVendorID(ctx *jxcontext.Context, vendorOrgCode string) (vendorStoreIDs []string, err error) {
// param := &shop_getStoreList_request.ShopGetStoreListParam{
// Page: 0,
// PageSize: 10,
// }
// storeList, err := api.DouDianApi.GetStoreList(param)
// if err != nil {
// return nil, err
// }
// if len(storeList.StoreDetailList) > 0 {
// vendorStoreIDs = make([]string, len(storeList.StoreDetailList))
// for k, v := range storeList.StoreDetailList {
// vendorStoreIDs[k] = utils.Int64ToStr(v.Store.StoreId)
// }
// }
// return vendorStoreIDs, err
//}
//
//func (P *PurchaseHandler) UpdateStoreLineStatus(ctx *jxcontext.Context, vendorOrgCode string, storeID int, vendorStoreID string, lineStatus int) (err error) {
// if lineStatus == model.StoreStatusOpened {
// param := &shop_storeSuspend_request.ShopStoreSuspendParam{
// StoreId: utils.Str2Int64(vendorStoreID),
// }
// _, err = api.DouDianApi.StoreSuspend(param)
// } else {
// param := &shop_unsuspendStore_request.ShopUnsuspendStoreParam{
// StoreId: utils.Str2Int64(vendorStoreID),
// }
// _, err = api.DouDianApi.UnsuspendStore(param)
// }
// return err
//}
//func (P *PurchaseHandler) ReadStore(ctx *jxcontext.Context, vendorOrgCode, vendorStoreID, vendorStoreName string) (store *dao.StoreDetail, err error) {
// return nil, err
//}
//
//func (P *PurchaseHandler) RefreshAllStoresID(ctx *jxcontext.Context, parentTask tasksch.ITask, isAsync bool) (hint string, err error) {
// return "", errors.New("抖店暂不支持此操作")
//}