From 772c8f9cbe491872555e91dc1051324a34b61514 Mon Sep 17 00:00:00 2001 From: gazebo Date: Mon, 6 Jan 2020 18:00:14 +0800 Subject: [PATCH 01/13] StoreSkuAct --- business/model/dao/store_sku.go | 54 +++++++++++++++++++++++++++++ business/model/store_sku.go | 29 ++++++++++++++++ business/partner/purchase/jd/act.go | 26 +++++++++++--- globals/beegodb/beegodb.go | 2 ++ 4 files changed, 107 insertions(+), 4 deletions(-) diff --git a/business/model/dao/store_sku.go b/business/model/dao/store_sku.go index 55d7956ee..a65324e24 100644 --- a/business/model/dao/store_sku.go +++ b/business/model/dao/store_sku.go @@ -13,6 +13,11 @@ import ( "git.rosy.net.cn/jx-callback/globals" ) +type StoreSkuAndAct struct { + *model.StoreSkuBind + ActMap map[int]*model.StoreSkuAct +} + var ( dataResFieldMap = map[int]string{ model.VendorIDMTWM: "mtwm_url", @@ -796,6 +801,55 @@ func GetStoresSkusInfo(db *DaoDB, storeIDs, skuIDs []int) (storeSkuList []*model return storeSkuList, err } +func GetStoresSkusAndActInfo(db *DaoDB, storeIDs, skuIDs, vendorIDs []int) (storeSkuAndActList []*StoreSkuAndAct, err error) { + storeSkuList, err := GetStoresSkusInfo(db, storeIDs, skuIDs) + if err == nil && len(storeSkuList) > 0 { + storeSkuActList, err2 := GetStoresSkusAct(db, storeIDs, skuIDs, vendorIDs) + if err = err2; err == nil { + actMap := make(map[int64][]*model.StoreSkuAct) + for _, v := range storeSkuActList { + actMap[jxutils.Combine2Int(v.StoreID, v.SkuID)] = append(actMap[jxutils.Combine2Int(v.StoreID, v.SkuID)], v) + } + for _, v := range storeSkuList { + storeSkuAct := &StoreSkuAndAct{ + StoreSkuBind: v, + ActMap: make(map[int]*model.StoreSkuAct), + } + for _, vv := range actMap[jxutils.Combine2Int(v.StoreID, v.SkuID)] { + storeSkuAct.ActMap[vv.VendorID] = vv + } + storeSkuAndActList = append(storeSkuAndActList, storeSkuAct) + } + } + } + return storeSkuAndActList, err +} + +func GetStoresSkusAct(db *DaoDB, storeIDs, skuIDs, vendorIDs []int) (storeSkuActList []*model.StoreSkuAct, err error) { + sql := ` + SELECT * + FROM store_sku_act t1 + WHERE t1.deleted_at = ? + ` + sqlParams := []interface{}{ + utils.DefaultTimeValue, + } + if len(storeIDs) > 0 { + sql += " AND t1.store_id IN (" + GenQuestionMarks(len(storeIDs)) + ")" + sqlParams = append(sqlParams, storeIDs) + } + if len(skuIDs) > 0 { + sql += " AND t1.sku_id IN (" + GenQuestionMarks(len(skuIDs)) + ")" + sqlParams = append(sqlParams, skuIDs) + } + if len(vendorIDs) > 0 { + sql += " AND t1.vendor_id IN (" + GenQuestionMarks(len(vendorIDs)) + ")" + sqlParams = append(sqlParams, vendorIDs) + } + err = GetRows(db, &storeSkuActList, sql, sqlParams...) + return storeSkuActList, err +} + // vendorID, vendorStoreIDs和vendorSkuIDs都是必须参数 func GetStoresSkusInfoByVendorInfo(db *DaoDB, vendorID int, vendorStoreIDs, vendorSkuIDs []string) (storeSkuList []*StoreSkuBindWithVendorInfo, err error) { if len(vendorStoreIDs) == 0 || len(vendorSkuIDs) == 0 { diff --git a/business/model/store_sku.go b/business/model/store_sku.go index 49aebbbc6..91fc4fa5a 100644 --- a/business/model/store_sku.go +++ b/business/model/store_sku.go @@ -161,3 +161,32 @@ func (*StoreOpRequest) TableIndex() [][]string { []string{"StoreID", "Status", "Type"}, } } + +type StoreSkuAct struct { + ModelIDCULD // DeletedAt用于表示请求操作结束,而并不一定是删除 + + StoreID int `orm:"column(store_id)"` + SkuID int `orm:"column(sku_id)"` + VendorID int + + ActID int `orm:"column(act_id);index" json:"actID"` + VendorActID string `orm:"column(vendor_act_id);size(48);index" json:"vendorActID"` + SyncStatus int8 `orm:"default(2)" json:"syncStatus"` + VendorPrice int64 `json:"vendorPrice"` // 创建活动时的平台价格 + ActualActPrice int64 `json:"actualActPrice"` // 单品级活动用,创建活动时商品的活动价格 + + EarningActID int `orm:"column(earning_act_id);index" json:"earningActID"` + EarningPrice int `json:"earningPrice"` +} + +func (*StoreSkuAct) TableUnique() [][]string { + return [][]string{ + []string{"StoreID", "SkuID", "VendorID", "DeletedAt"}, + } +} + +func (*StoreSkuAct) TableIndex() [][]string { + return [][]string{ + []string{"SkuID", "DeletedAt"}, + } +} diff --git a/business/partner/purchase/jd/act.go b/business/partner/purchase/jd/act.go index 28ec7333e..ccda21745 100644 --- a/business/partner/purchase/jd/act.go +++ b/business/partner/purchase/jd/act.go @@ -41,8 +41,9 @@ var ( ) // 是否按单一门店商品维度创建活动 -func isCreateTypeSingle() bool { - return !globals.IsProductEnv() +func isCreateTypeSingleStoreSku() bool { + return false + // return !globals.IsProductEnv() } func splitPromotionSku(skus []*jdapi.PromotionSku, maxCount int) (skusList [][]*jdapi.PromotionSku) { @@ -219,6 +220,23 @@ func createSkuAct(ctx *jxcontext.Context, act *model.Act2, actStoreSku []*model. return vendorActID, err } +func proxyCreateSkuAct(ctx *jxcontext.Context, act *model.Act2, actStoreSku []*model.ActStoreSku2) (vendorActID string, err error) { + if isCreateTypeSingleStoreSku() && len(actStoreSku) > 1 { + errList := errlist.New() + vendorActID := act.VendorActID + act.VendorActID = "placeholder" + for _, v := range actStoreSku { + _, err := createSkuAct(ctx, act, []*model.ActStoreSku2{v}) + errList.AddErr(err) + } + act.VendorActID = vendorActID + err = errList.GetErrListAsOne() + } else { + vendorActID, err = createSkuAct(ctx, act, actStoreSku) + } + return vendorActID, err +} + func cancelSkuActSkus(ctx *jxcontext.Context, act *model.Act2, vendorActID string, actStoreSku []*model.ActStoreSku2) (err error) { if vendorActID != "" { if skuList := storeSku2Jd(actStoreSku, model.IsSyncStatusNeedDelete); len(skuList) > 0 { @@ -282,7 +300,7 @@ func (c *PurchaseHandler) SyncAct(ctx *jxcontext.Context, parentTask tasksch.ITa updateItems = append(updateItems, partner.Act2Update(ctx, act, model.SyncFlagModifiedMask)) } } else if model.IsSyncStatusNew(act.SyncStatus) { - if act.VendorActID, err = createSkuAct(ctx, act, actStoreSkuList4Create); err == nil { + if act.VendorActID, err = proxyCreateSkuAct(ctx, act, actStoreSkuList4Create); err == nil { updateItems = append(updateItems, partner.ActStoreSku2Update(ctx, actStoreSkuList4Create, model.SyncFlagNewMask)...) updateItems = append(updateItems, partner.Act2Update(ctx, act, model.SyncFlagNewMask)) } else { @@ -294,7 +312,7 @@ func (c *PurchaseHandler) SyncAct(ctx *jxcontext.Context, parentTask tasksch.ITa } else if model.IsSyncStatusUpdate(act.SyncStatus) { errList := errlist.New() if len(actStoreSkuList4Create) > 0 { - if _, err = createSkuAct(ctx, act, actStoreSkuList4Create); err == nil { + if _, err = proxyCreateSkuAct(ctx, act, actStoreSkuList4Create); err == nil { updateItems = append(updateItems, partner.ActStoreSku2Update(ctx, actStoreSkuList4Create, model.SyncFlagNewMask)...) } else { errList.AddErr(err) diff --git a/globals/beegodb/beegodb.go b/globals/beegodb/beegodb.go index 5f039f248..7cf4d35ef 100644 --- a/globals/beegodb/beegodb.go +++ b/globals/beegodb/beegodb.go @@ -56,6 +56,8 @@ func Init() { orm.RegisterModel(&model.OrderFinancial{}, &model.AfsOrder{}, &model.OrderDiscountFinancial{}, &model.OrderSkuFinancial{}) orm.RegisterModel(&model.Act{}, &model.ActOrderRule{}, &model.ActStoreSku{}) orm.RegisterModel(&model.ActMap{}, &model.ActStoreSkuMap{}) + // orm.RegisterModel(&model.StoreSkuAct{}) + orm.RegisterModel(&model.NewConfig{}) orm.RegisterModel(&model.CasbinRule{}) From c47a49cebdd498a1adbe6a489bf25a43e7e1d99d Mon Sep 17 00:00:00 2001 From: gazebo Date: Tue, 7 Jan 2020 09:42:55 +0800 Subject: [PATCH 02/13] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=A5=BF=E7=99=BE?= =?UTF-8?q?=E5=9C=A8=E8=AE=BE=E7=BD=AE=E9=97=A8=E5=BA=97=E7=8A=B6=E6=80=81?= =?UTF-8?q?=E5=90=8E=E4=BB=A5=E4=B8=8A=E5=8F=96=E7=8A=B6=E6=80=81=E7=8A=B6?= =?UTF-8?q?=E6=80=81=E6=B2=A1=E6=9C=89=E5=8F=98=E5=8C=96=E5=AF=BC=E8=87=B4?= =?UTF-8?q?=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/ebai/store.go | 40 ++++++++++--------------- 1 file changed, 16 insertions(+), 24 deletions(-) diff --git a/business/partner/purchase/ebai/store.go b/business/partner/purchase/ebai/store.go index 170816be7..6e525a83a 100644 --- a/business/partner/purchase/ebai/store.go +++ b/business/partner/purchase/ebai/store.go @@ -100,9 +100,7 @@ func (p *PurchaseHandler) ReadStore(ctx *jxcontext.Context, vendorOrgCode, vendo retVal.DeliveryType = EbaiDeliveryType2Jx(utils.Interface2String(result["delivery_type"])) retVal.SetOpTime(ebaiOpTime2Jx(result["business_time"])) - if ebaiStatus, err2 := api.EbaiAPI.ShopBusStatusGet("", baiduShopID, ebaiapi.PlatformFlagElm); err2 == nil { - retVal.Status = EbaiBusStatus2JxStatus(ebaiStatus) - } + retVal.Status, _ = p.GetStoreStatus(ctx, vendorOrgCode, 0, vendorStoreID) tel2 := utils.Interface2String(result["ivr_phone"]) if tel2 != "" && tel2 != retVal.Tel1 { @@ -188,7 +186,7 @@ func (p *PurchaseHandler) UpdateStore(db *dao.DaoDB, storeID int, userName strin if err == nil { if store.SyncStatus&(model.SyncFlagNewMask|model.SyncFlagStoreStatus) != 0 { mergeStatus := jxutils.MergeStoreStatus(store.Status, store.EbaiStoreStatus) - if err = p.updateStoreStatus(userName, storeID, store.VendorStoreID, mergeStatus, store2.Status); err != nil { + if err = p.UpdateStoreStatus(jxcontext.AdminCtx, store.VendorOrgCode, storeID, store.VendorStoreID, mergeStatus); err != nil { return err } } @@ -468,27 +466,21 @@ func (p *PurchaseHandler) EnableAutoAcceptOrder(ctx *jxcontext.Context, vendorOr } func (c *PurchaseHandler) UpdateStoreStatus(ctx *jxcontext.Context, vendorOrgCode string, storeID int, vendorStoreID string, status int) (err error) { - store, err := c.ReadStore(ctx, vendorOrgCode, vendorStoreID) - if err != nil { - return err - } - return c.updateStoreStatus(ctx.GetUserName(), storeID, vendorStoreID, status, store.Status) -} - -func (c *PurchaseHandler) updateStoreStatus(userName string, storeID int, vendorStoreID string, status, currentStatus int) (err error) { - if !isStoreStatusSame(currentStatus, status) { - if globals.EnableEbaiStoreWrite { - if status == model.StoreStatusOpened { - err = api.EbaiAPI.ShopOpen("", utils.Str2Int64(vendorStoreID)) - } else if status == model.StoreStatusHaveRest || status == model.StoreStatusClosed { - err = api.EbaiAPI.ShopClose("", utils.Str2Int64(vendorStoreID)) - } else if status == model.StoreStatusDisabled { - err = api.EbaiAPI.ShopClose("", utils.Str2Int64(vendorStoreID)) - // err = api.EbaiAPI.ShopOffline("", utils.Str2Int64(vendorStoreID)) - } + if globals.EnableEbaiStoreWrite { + if status == model.StoreStatusOpened { + err = api.EbaiAPI.ShopOpen("", utils.Str2Int64(vendorStoreID)) + } else if status == model.StoreStatusHaveRest || status == model.StoreStatusClosed { + err = api.EbaiAPI.ShopClose("", utils.Str2Int64(vendorStoreID)) + } else if status == model.StoreStatusDisabled { + err = api.EbaiAPI.ShopClose("", utils.Str2Int64(vendorStoreID)) + // err = api.EbaiAPI.ShopOffline("", utils.Str2Int64(vendorStoreID)) } - if intErr, ok := err.(*utils.ErrorWithCode); ok && intErr.IntCode() == 201100 { - err = nil + if err != nil { + if remoteStatus, err2 := c.GetStoreStatus(ctx, vendorOrgCode, storeID, vendorStoreID); err2 == nil && remoteStatus == status { + err = nil + } else if intErr, ok := err.(*utils.ErrorWithCode); ok && intErr.IntCode() == 201100 { + err = nil + } } } return err From 4a394a60eb6351454f1ba372af83ff249ce5c0bf Mon Sep 17 00:00:00 2001 From: gazebo Date: Tue, 7 Jan 2020 09:47:29 +0800 Subject: [PATCH 03/13] =?UTF-8?q?=E7=BE=8E=E5=9B=A2UpdateStoreBoxFee?= =?UTF-8?q?=E4=B8=AD=EF=BC=8C=E5=BF=BD=E7=95=A5=E6=B2=A1=E6=9C=89=E6=89=93?= =?UTF-8?q?=E5=8C=85=E8=B4=B9=E9=85=8D=E7=BD=AE=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/mtwm/store.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/business/partner/purchase/mtwm/store.go b/business/partner/purchase/mtwm/store.go index f12429f30..539d1dda5 100644 --- a/business/partner/purchase/mtwm/store.go +++ b/business/partner/purchase/mtwm/store.go @@ -298,6 +298,8 @@ func (c *PurchaseHandler) UpdateStoreBoxFee(ctx *jxcontext.Context, vendorOrgCod if globals.EnableMtwmStoreWrite { err = api.MtwmAPI.PackagePriceUpdate(vendorStoreID, 1, int(boxFee)) } + } else if dao.IsNoRowsError(err) { + err = nil } return err } From 901b45690dc87aa34ffb6b2e4b7fb24d69229d64 Mon Sep 17 00:00:00 2001 From: gazebo Date: Tue, 7 Jan 2020 09:50:47 +0800 Subject: [PATCH 04/13] fk --- business/model/dao/new_config.go | 2 +- business/partner/purchase/mtwm/store.go | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/business/model/dao/new_config.go b/business/model/dao/new_config.go index 60261137f..aaeaa8a2d 100644 --- a/business/model/dao/new_config.go +++ b/business/model/dao/new_config.go @@ -54,7 +54,7 @@ func GetSysConfigAsInt64(db *DaoDB, key string) (value int64, err error) { configList, err := QueryConfigs(db, key, model.ConfigTypeSys, "") if err == nil && len(configList) > 0 { value = utils.Str2Int64WithDefault(configList[0].Value, 0) - } else if IsNoRowsError(err) { + } else if true { //IsNoRowsError(err) { // todo 暂时忽略所有错误 err = nil } return value, err diff --git a/business/partner/purchase/mtwm/store.go b/business/partner/purchase/mtwm/store.go index 539d1dda5..f12429f30 100644 --- a/business/partner/purchase/mtwm/store.go +++ b/business/partner/purchase/mtwm/store.go @@ -298,8 +298,6 @@ func (c *PurchaseHandler) UpdateStoreBoxFee(ctx *jxcontext.Context, vendorOrgCod if globals.EnableMtwmStoreWrite { err = api.MtwmAPI.PackagePriceUpdate(vendorStoreID, 1, int(boxFee)) } - } else if dao.IsNoRowsError(err) { - err = nil } return err } From d913a8d68b082b80e82e26baf1bbb5bf460beeaf Mon Sep 17 00:00:00 2001 From: gazebo Date: Tue, 7 Jan 2020 09:56:03 +0800 Subject: [PATCH 05/13] up --- controllers/cms_store_sku.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/controllers/cms_store_sku.go b/controllers/cms_store_sku.go index 9ad689e1c..dc1c5ae62 100644 --- a/controllers/cms_store_sku.go +++ b/controllers/cms_store_sku.go @@ -571,7 +571,7 @@ func (c *StoreSkuController) FocusStoreSkusByExcel() { // @Title 得到门店的分类列表 // @Description 得到门店的分类列表(按商品销量) -// @Param token header string true "认证token" +// @Param token header string false "认证token" // @Param storeID query int true "门店ID" // @Param parentID query int false "父分类id" // @Success 200 {object} controllers.CallResult From 586644d0ec2f75bcb794eeca889cad7c7e88452c Mon Sep 17 00:00:00 2001 From: gazebo Date: Tue, 7 Jan 2020 10:01:24 +0800 Subject: [PATCH 06/13] up --- business/partner/purchase/mtwm/store.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/partner/purchase/mtwm/store.go b/business/partner/purchase/mtwm/store.go index f12429f30..34ed86045 100644 --- a/business/partner/purchase/mtwm/store.go +++ b/business/partner/purchase/mtwm/store.go @@ -295,7 +295,7 @@ func (c *PurchaseHandler) UpdateStoreCustomID(ctx *jxcontext.Context, vendorOrgC func (c *PurchaseHandler) UpdateStoreBoxFee(ctx *jxcontext.Context, vendorOrgCode string, storeID int, vendorStoreID string) (err error) { boxFee, err := dao.GetSysConfigAsInt64(dao.GetDB(), model.ConfigSysMtwmBoxFee) if err == nil { - if globals.EnableMtwmStoreWrite { + if globals.EnableMtwmStoreWrite && globals.IsProductEnv() { err = api.MtwmAPI.PackagePriceUpdate(vendorStoreID, 1, int(boxFee)) } } From 47094be68187d23e3626586cca97b89ca8d03371 Mon Sep 17 00:00:00 2001 From: gazebo Date: Tue, 7 Jan 2020 10:10:50 +0800 Subject: [PATCH 07/13] =?UTF-8?q?RegisterUser=E4=B8=AD=EF=BC=8C=E5=A6=82?= =?UTF-8?q?=E6=9E=9C=E6=9C=89AuthToken=EF=BC=8C=E5=BF=BD=E7=95=A5Token?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- controllers/cms_user2.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/controllers/cms_user2.go b/controllers/cms_user2.go index c99d7e137..cfbb04f7d 100644 --- a/controllers/cms_user2.go +++ b/controllers/cms_user2.go @@ -35,8 +35,7 @@ func (c *User2Controller) RegisterUser() { ) if params.AuthToken != "" { inAuthInfo, err = auth2.GetTokenInfo(params.AuthToken) - } - if params.Token != "" { + } else if params.Token != "" { manTokenInfo, err = auth2.GetTokenInfo(params.Token) } if err == nil { From 11dd5545617b941cbb36fa44c7a82ca458a4e85e Mon Sep 17 00:00:00 2001 From: gazebo Date: Tue, 7 Jan 2020 10:29:51 +0800 Subject: [PATCH 08/13] BuyerCancelOrder --- business/partner/purchase/jx/localjx/order.go | 2 +- controllers/jx_order2.go | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index 7d254f68d..1f3d219a7 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -160,7 +160,7 @@ func CreateOrder(ctx *jxcontext.Context, jxOrder *JxOrderInfo, addressID int64, } // 买家取消(或申请取消)订单 -func BuyerCancelOrder(ctx *jxcontext.Context, orderID int64) (canceled bool, err error) { +func BuyerCancelOrder(ctx *jxcontext.Context, orderID int64, reason string) (canceled bool, err error) { order, err := partner.CurOrderManager.LoadOrder(utils.Int64ToStr(orderID), model.VendorIDJX) if err == nil { if order.Status < model.OrderStatusNew { diff --git a/controllers/jx_order2.go b/controllers/jx_order2.go index f42fd25e4..e76f72c98 100644 --- a/controllers/jx_order2.go +++ b/controllers/jx_order2.go @@ -46,6 +46,21 @@ func (c *JxOrderController) Pay4Order() { }) } +// @Title 买家取消(或申请取消)订单 +// @Description 买家取消(或申请取消)订单 +// @Param token header string true "认证token" +// @Param vendorOrderID formData string true "订单ID" +// @Param reason formData string true "原因" +// @Success 200 {object} controllers.CallResult +// @Failure 200 {object} controllers.CallResult +// @router /BuyerCancelOrder [post] +func (c *JxOrderController) BuyerCancelOrder() { + c.callBuyerCancelOrder(func(params *tJxorderBuyerCancelOrderParams) (retVal interface{}, errCode string, err error) { + retVal, err = localjx.BuyerCancelOrder(params.Ctx, utils.Str2Int64(params.VendorOrderID), params.Reason) + return retVal, "", err + }) +} + // @Title 查询网络打印机状态 // @Description 查询网络打印机状态 // @Param token header string true "认证token" From 8f8a8d304f98dc0260c2c993a9f0adbde8b73214 Mon Sep 17 00:00:00 2001 From: gazebo Date: Tue, 7 Jan 2020 13:36:08 +0800 Subject: [PATCH 09/13] BuyerCancelOrder --- routers/commentsRouter_controllers.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/routers/commentsRouter_controllers.go b/routers/commentsRouter_controllers.go index 579cfa30e..86bfd00cc 100644 --- a/routers/commentsRouter_controllers.go +++ b/routers/commentsRouter_controllers.go @@ -583,6 +583,15 @@ func init() { Filters: nil, Params: nil}) + beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:JxOrderController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:JxOrderController"], + beego.ControllerComments{ + Method: "BuyerCancelOrder", + Router: `/BuyerCancelOrder`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:JxOrderController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:JxOrderController"], beego.ControllerComments{ Method: "CreateOrder", From 26ca0bc01d175874ff659db786200f217e4652e0 Mon Sep 17 00:00:00 2001 From: gazebo Date: Tue, 7 Jan 2020 14:29:29 +0800 Subject: [PATCH 10/13] =?UTF-8?q?=E4=BA=AC=E8=A5=BF=E5=95=86=E5=9F=8E?= =?UTF-8?q?=E8=AE=A2=E5=8D=95=E6=9A=82=E6=97=B6=E4=B8=8D=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E4=BB=98=E6=AC=BE=E5=90=8E=E5=8F=96=E6=B6=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jx/localjx/order.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/business/partner/purchase/jx/localjx/order.go b/business/partner/purchase/jx/localjx/order.go index 1f3d219a7..334a5a492 100644 --- a/business/partner/purchase/jx/localjx/order.go +++ b/business/partner/purchase/jx/localjx/order.go @@ -170,7 +170,8 @@ func BuyerCancelOrder(ctx *jxcontext.Context, orderID int64, reason string) (can canceled = true } } else { - err = changeOrderStatus(utils.Int64ToStr(orderID), model.OrderStatusApplyCancel, fmt.Sprintf("用户%s主动取消", ctx.GetUserName())) + err = fmt.Errorf("暂不支持自行取消订单,请联系商家取消") + // err = changeOrderStatus(utils.Int64ToStr(orderID), model.OrderStatusApplyCancel, fmt.Sprintf("用户%s主动取消", ctx.GetUserName())) } } return canceled, err From a69b5b3772fce98187ea1a8d6ceeac65f98d02c6 Mon Sep 17 00:00:00 2001 From: gazebo Date: Tue, 7 Jan 2020 15:17:08 +0800 Subject: [PATCH 11/13] +Act.OverlapRule --- business/jxstore/act/act.go | 2 +- business/model/act.go | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/business/jxstore/act/act.go b/business/jxstore/act/act.go index f80ada794..70a24c64c 100644 --- a/business/jxstore/act/act.go +++ b/business/jxstore/act/act.go @@ -167,7 +167,7 @@ func ActStoreSkuParam2Model(ctx *jxcontext.Context, db *dao.DaoDB, act *model.Ac storeIDs := jxutils.IntMap2List(storeIDMap) skuIDs := jxutils.IntMap2List(skuIDMap) // 判断活动是否重叠的检查,当前忽略京东平台及所有结算信息 - if !(len(vendorIDs) == 1 && vendorIDs[0] == model.VendorIDJD || act.Type == model.ActSkuFake) { + if act.OverlapRule == model.OverlapRuleNormal { effectActStoreSkuList, err := dao.GetEffectiveActStoreSkuInfo(db, 0, vendorIDs, act.Type, storeIDs, skuIDs, act.BeginAt, act.EndAt) if err != nil { globals.SugarLogger.Errorf("GetEffectiveActStoreSkuInfo can not get sku promotion info for error:%v", err) diff --git a/business/model/act.go b/business/model/act.go index 5ea7c0125..5094dd643 100644 --- a/business/model/act.go +++ b/business/model/act.go @@ -28,6 +28,9 @@ const ( ActCreateTypeAPI = 1 ActCreateTypeCallback = 2 ActCreateTypeSpider = 3 + + OverlapRuleNormal = 0 // 不允许重叠(重叠会报错) + OverlapRuleReplace = 1 // 相同活动类型,或秒杀替换直降 ) var ( @@ -63,6 +66,7 @@ type Act struct { LimitCount int `json:"limitCount"` // 每单限购数量 Source string `orm:"size(255)" json:"source"` CreateType int `json:"createType"` + OverlapRule int `json:"overlapRule"` PricePercentage int `json:"pricePercentage"` // 单品级活动才有效 BeginAt time.Time `orm:"type(datetime);index" json:"beginAt"` EndAt time.Time `orm:"type(datetime);index" json:"endAt"` From 7183d58554fe4f120fb7469a6b313fc5cf039966 Mon Sep 17 00:00:00 2001 From: gazebo Date: Tue, 7 Jan 2020 15:21:52 +0800 Subject: [PATCH 12/13] up --- controllers/act.go | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/controllers/act.go b/controllers/act.go index 8d05ff4de..249714de6 100644 --- a/controllers/act.go +++ b/controllers/act.go @@ -25,6 +25,7 @@ type ActController struct { // @Param pricePercentage formData int true "活动价格比例" // @Param advertising formData string true "广告语" // @Param actStoreSkuList formData string true "活动门店商品信息" +// @Param overlapRule formData int false "活动重叠规则" // @Param limitDaily formData int false "是否按日0-不限,>0限购单数(秒杀需填)" // @Param limitUser formData int false "是否用户限购0-不限,1-限购" // @Param limitCount formData int false "限购件数 0-不限,如账号限购、设备限购有一个为1,则限购件数必须大于0的整数" @@ -42,11 +43,12 @@ func (c *ActController) PreCreateAct() { if err == nil { if err = jxutils.Strings2Objs(params.VendorIDs, &vendorIDs, params.ActStoreSkuList, &actStoreSkuList); err == nil { actObj := &model.Act{ - Name: params.Name, - Type: params.Type, - LimitUser: params.LimitUser, - LimitDaily: params.LimitDaily, - LimitCount: params.LimitCount, + Name: params.Name, + Type: params.Type, + LimitUser: params.LimitUser, + LimitDaily: params.LimitDaily, + LimitCount: params.LimitCount, + OverlapRule: params.OverlapRule, // Source:, CreateType: model.ActCreateTypeAPI, PricePercentage: params.PricePercentage, From a47f7cd8454423880e75f170d11cdee282b2ab64 Mon Sep 17 00:00:00 2001 From: gazebo Date: Tue, 7 Jan 2020 18:30:22 +0800 Subject: [PATCH 13/13] CreateAct.OverlapRulep --- controllers/act.go | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/controllers/act.go b/controllers/act.go index 249714de6..d3626bfc2 100644 --- a/controllers/act.go +++ b/controllers/act.go @@ -76,6 +76,7 @@ func (c *ActController) PreCreateAct() { // @Param pricePercentage formData int true "活动价格比例" // @Param advertising formData string true "广告语" // @Param actStoreSkuList formData string true "活动门店商品信息" +// @Param overlapRule formData int false "活动重叠规则" // @Param limitDaily formData int false "是否按日0-不限,>0限购单数(秒杀需填)" // @Param limitUser formData int false "是否用户限购0-不限,1-限购" // @Param limitCount formData int false "限购件数 0-不限,如账号限购、设备限购有一个为1,则限购件数必须大于0的整数" @@ -94,11 +95,12 @@ func (c *ActController) CreateAct() { if err == nil { if err = jxutils.Strings2Objs(params.VendorIDs, &vendorIDs, params.ActStoreSkuList, &actStoreSkuList); err == nil { actObj := &model.Act{ - Name: params.Name, - Type: params.Type, - LimitUser: params.LimitUser, - LimitDaily: params.LimitDaily, - LimitCount: params.LimitCount, + Name: params.Name, + Type: params.Type, + LimitUser: params.LimitUser, + LimitDaily: params.LimitDaily, + LimitCount: params.LimitCount, + OverlapRule: params.OverlapRule, // Source:, CreateType: model.ActCreateTypeAPI, PricePercentage: params.PricePercentage,