Merge remote-tracking branch 'origin/mark' into yonghui
This commit is contained in:
@@ -394,7 +394,7 @@ func updateSingleOrderEarningPrice(order *model.GoodsOrder, db *dao.DaoDB) {
|
|||||||
skuIDMap[v.SkuID] = 1
|
skuIDMap[v.SkuID] = 1
|
||||||
}
|
}
|
||||||
if len(skuIDMap) > 0 {
|
if len(skuIDMap) > 0 {
|
||||||
actStoreSkuList, err := dao.GetEffectiveActStoreSkuInfo(db, 0, []int{order.VendorID}, []int{jxStoreID}, jxutils.IntMap2List(skuIDMap), order.OrderCreatedAt, order.OrderCreatedAt)
|
actStoreSkuList, err := dao.GetEffectiveActStoreSkuInfo(db, 0, []int{order.VendorID}, model.ActTypeAll, []int{jxStoreID}, jxutils.IntMap2List(skuIDMap), order.OrderCreatedAt, order.OrderCreatedAt)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
globals.SugarLogger.Errorf("updateOrderSkuOtherInfo can not get sku promotion info for error:%v", err)
|
globals.SugarLogger.Errorf("updateOrderSkuOtherInfo can not get sku promotion info for error:%v", err)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -273,7 +273,7 @@ func (c *OrderManager) updateAfsOrderSkuOtherInfo(db *dao.DaoDB, order *model.Af
|
|||||||
var actStoreSkuMap *jxutils.ActStoreSkuMap
|
var actStoreSkuMap *jxutils.ActStoreSkuMap
|
||||||
if len(skuIDMap) > 0 {
|
if len(skuIDMap) > 0 {
|
||||||
if order2, err2 := c.LoadOrder(order.VendorOrderID, order.VendorID); err2 == nil {
|
if order2, err2 := c.LoadOrder(order.VendorOrderID, order.VendorID); err2 == nil {
|
||||||
actStoreSkuList, err := dao.GetEffectiveActStoreSkuInfo(db, 0, []int{order.VendorID}, []int{jxStoreID}, jxutils.IntMap2List(skuIDMap), order2.OrderCreatedAt, order2.OrderCreatedAt)
|
actStoreSkuList, err := dao.GetEffectiveActStoreSkuInfo(db, 0, []int{order.VendorID}, model.ActTypeAll, []int{jxStoreID}, jxutils.IntMap2List(skuIDMap), order2.OrderCreatedAt, order2.OrderCreatedAt)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
globals.SugarLogger.Errorf("updateAfsOrderSkuOtherInfo can not get sku promotion info for error:%v", err)
|
globals.SugarLogger.Errorf("updateAfsOrderSkuOtherInfo can not get sku promotion info for error:%v", err)
|
||||||
return err
|
return err
|
||||||
|
|||||||
@@ -85,7 +85,10 @@ func (c *OrderManager) OnOrderComments(orderCommentList []*model.OrderComment) (
|
|||||||
isNewComment = true
|
isNewComment = true
|
||||||
if orderComment.IsReplied == 0 && time.Now().Sub(orderComment.CommentCreatedAt) < time.Duration(orderComment.ModifyDuration)*time.Hour {
|
if orderComment.IsReplied == 0 && time.Now().Sub(orderComment.CommentCreatedAt) < time.Duration(orderComment.ModifyDuration)*time.Hour {
|
||||||
if storeDetail, err2 := dao.GetStoreDetail(db, orderComment.StoreID, orderComment.VendorID); err2 == nil {
|
if storeDetail, err2 := dao.GetStoreDetail(db, orderComment.StoreID, orderComment.VendorID); err2 == nil {
|
||||||
c.replyOrderComment(storeDetail.VendorOrgCode, orderComment)
|
if storeDetail.AutoReplyType == model.AutoReplyAll ||
|
||||||
|
orderComment.Score > JX_BAD_COMMENTS_MAX_LEVEL && storeDetail.AutoReplyType == model.AutoReplyGoodComment {
|
||||||
|
c.replyOrderComment(storeDetail.VendorOrgCode, orderComment)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -113,7 +113,7 @@ func ActStoreSkuParam2Model(ctx *jxcontext.Context, db *dao.DaoDB, act *model.Ac
|
|||||||
skuIDs := jxutils.IntMap2List(skuIDMap)
|
skuIDs := jxutils.IntMap2List(skuIDMap)
|
||||||
// 判断活动是否重叠的检查,当前忽略京东平台及所有结算信息
|
// 判断活动是否重叠的检查,当前忽略京东平台及所有结算信息
|
||||||
if !(len(vendorIDs) == 1 && vendorIDs[0] == model.VendorIDJD || act.Type == model.ActSkuFake) {
|
if !(len(vendorIDs) == 1 && vendorIDs[0] == model.VendorIDJD || act.Type == model.ActSkuFake) {
|
||||||
effectActStoreSkuList, err := dao.GetEffectiveActStoreSkuInfo(db, 0, vendorIDs, storeIDs, skuIDs, act.BeginAt, act.EndAt)
|
effectActStoreSkuList, err := dao.GetEffectiveActStoreSkuInfo(db, 0, vendorIDs, act.Type, storeIDs, skuIDs, act.BeginAt, act.EndAt)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
globals.SugarLogger.Errorf("GetEffectiveActStoreSkuInfo can not get sku promotion info for error:%v", err)
|
globals.SugarLogger.Errorf("GetEffectiveActStoreSkuInfo can not get sku promotion info for error:%v", err)
|
||||||
return nil, nil, nil, err
|
return nil, nil, nil, err
|
||||||
|
|||||||
@@ -100,6 +100,7 @@ func InitServiceInfo(version string, buildTime time.Time, gitCommit string) {
|
|||||||
"storePriceTypeName": model.StorePriceTypeName,
|
"storePriceTypeName": model.StorePriceTypeName,
|
||||||
"payStatusName": model.PayStatusName,
|
"payStatusName": model.PayStatusName,
|
||||||
"refundStatusName": model.RefundStatusName,
|
"refundStatusName": model.RefundStatusName,
|
||||||
|
"autoReplyTypeName": model.AutoReplyTypeName,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -396,7 +396,7 @@ func ScorePromotionSku(storeInfo *cms.StoreExt) {
|
|||||||
db := dao.GetDB()
|
db := dao.GetDB()
|
||||||
beginTime := time.Now()
|
beginTime := time.Now()
|
||||||
endTime := time.Now()
|
endTime := time.Now()
|
||||||
actStoreSkuList, err := dao.GetEffectiveActStoreSkuInfo(db, -1, nil, []int{storeID}, nil, beginTime, endTime)
|
actStoreSkuList, err := dao.GetEffectiveActStoreSkuInfo(db, -1, nil, model.ActTypeAll, []int{storeID}, nil, beginTime, endTime)
|
||||||
finalScore := 0
|
finalScore := 0
|
||||||
if err == nil && len(actStoreSkuList) > 0 {
|
if err == nil && len(actStoreSkuList) > 0 {
|
||||||
actStoreSkuMap := make(map[int]int)
|
actStoreSkuMap := make(map[int]int)
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ type ActStoreSkuMap struct {
|
|||||||
actStoreSkuMap map[int64]map[int]*model.ActStoreSku2
|
actStoreSkuMap map[int64]map[int]*model.ActStoreSku2
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// isActPrice为true表示是活动,false表示是结算
|
||||||
func NewActStoreSkuMap(actStoreSkuList []*model.ActStoreSku2, isActPrice bool) (actMap *ActStoreSkuMap) {
|
func NewActStoreSkuMap(actStoreSkuList []*model.ActStoreSku2, isActPrice bool) (actMap *ActStoreSkuMap) {
|
||||||
actMap = &ActStoreSkuMap{}
|
actMap = &ActStoreSkuMap{}
|
||||||
actStoreSkuMap := make(map[int64]map[int]*model.ActStoreSku2)
|
actStoreSkuMap := make(map[int64]map[int]*model.ActStoreSku2)
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
ActTypeAll = -1
|
||||||
ActSkuFake = 0 // 假活动,只用于存储活动结算信息
|
ActSkuFake = 0 // 假活动,只用于存储活动结算信息
|
||||||
ActSkuDirectDown = 3 // 兼容之前的
|
ActSkuDirectDown = 3 // 兼容之前的
|
||||||
ActSkuSecKill = 4 // 兼容之前的
|
ActSkuSecKill = 4 // 兼容之前的
|
||||||
|
|||||||
@@ -369,7 +369,7 @@ func GetExistVendorActIDs(db *DaoDB, vendorID int) (vendorActIDs []string, err e
|
|||||||
return vendorActIDs, err
|
return vendorActIDs, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetEffectiveActStoreSkuInfo(db *DaoDB, actID int, vendorIDs []int, storeIDs, skuIDs []int, beginAt, endAt time.Time) (actStoreSkuList []*model.ActStoreSku2, err error) {
|
func GetEffectiveActStoreSkuInfo(db *DaoDB, actID int, vendorIDs []int, actType int, storeIDs, skuIDs []int, beginAt, endAt time.Time) (actStoreSkuList []*model.ActStoreSku2, err error) {
|
||||||
if utils.IsTimeZero(beginAt) {
|
if utils.IsTimeZero(beginAt) {
|
||||||
return nil, fmt.Errorf("GeActStoreSkuInfo必须指定活动开始时间")
|
return nil, fmt.Errorf("GeActStoreSkuInfo必须指定活动开始时间")
|
||||||
}
|
}
|
||||||
@@ -406,9 +406,13 @@ func GetEffectiveActStoreSkuInfo(db *DaoDB, actID int, vendorIDs []int, storeIDs
|
|||||||
sqlParams = append(sqlParams, model.GetVendorMask(vendorIDs...), vendorIDs)
|
sqlParams = append(sqlParams, model.GetVendorMask(vendorIDs...), vendorIDs)
|
||||||
}
|
}
|
||||||
if actID > 0 {
|
if actID > 0 {
|
||||||
sql = " AND t1.id = ?"
|
sql = " AND t1.act_type = ?"
|
||||||
sqlParams = append(sqlParams, actID)
|
sqlParams = append(sqlParams, actID)
|
||||||
}
|
}
|
||||||
|
if actType != model.ActTypeAll {
|
||||||
|
sql = " AND t1.type = ?"
|
||||||
|
sqlParams = append(sqlParams, actType)
|
||||||
|
}
|
||||||
if len(storeIDs) > 0 {
|
if len(storeIDs) > 0 {
|
||||||
sql += " AND t2.store_id IN (" + GenQuestionMarks(len(storeIDs)) + ")"
|
sql += " AND t2.store_id IN (" + GenQuestionMarks(len(storeIDs)) + ")"
|
||||||
sqlParams = append(sqlParams, storeIDs)
|
sqlParams = append(sqlParams, storeIDs)
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
|
|
||||||
"git.rosy.net.cn/baseapi/utils"
|
"git.rosy.net.cn/baseapi/utils"
|
||||||
|
"git.rosy.net.cn/jx-callback/business/model"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestGetEffectiveActStoreSkuInfo(t *testing.T) {
|
func TestGetEffectiveActStoreSkuInfo(t *testing.T) {
|
||||||
@@ -27,7 +28,7 @@ func TestGetEffectiveActStoreSkuInfo(t *testing.T) {
|
|||||||
ToTime: utils.Str2Time("2019-08-06 12:34:56"),
|
ToTime: utils.Str2Time("2019-08-06 12:34:56"),
|
||||||
},
|
},
|
||||||
} {
|
} {
|
||||||
result, err := GetEffectiveActStoreSkuInfo(GetDB(), v.ActID, v.VendorIDs, v.StoreIDs, v.SkuIDs, v.FromTime, v.ToTime)
|
result, err := GetEffectiveActStoreSkuInfo(GetDB(), v.ActID, v.VendorIDs, model.ActTypeAll, v.StoreIDs, v.SkuIDs, v.FromTime, v.ToTime)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1136,7 +1136,7 @@ func UpdateActPrice4StoreSkuNameNew(db *DaoDB, storeIDs, skuIDs []int, skuNamesI
|
|||||||
if actVendorID >= 0 {
|
if actVendorID >= 0 {
|
||||||
vendorIDs = []int{actVendorID}
|
vendorIDs = []int{actVendorID}
|
||||||
}
|
}
|
||||||
actStoreSkuList, err := GetEffectiveActStoreSkuInfo(db, 0, vendorIDs, storeIDs, skuIDs, time.Now(), time.Now())
|
actStoreSkuList, err := GetEffectiveActStoreSkuInfo(db, 0, vendorIDs, model.ActTypeAll, storeIDs, skuIDs, time.Now(), time.Now())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
globals.SugarLogger.Errorf("updateActPrice4StoreSkuNameNew can not get sku promotion info for error:%v", err)
|
globals.SugarLogger.Errorf("updateActPrice4StoreSkuNameNew can not get sku promotion info for error:%v", err)
|
||||||
return err
|
return err
|
||||||
|
|||||||
@@ -49,6 +49,12 @@ const (
|
|||||||
StoreChangePriceTypeManagedStore = 3 // 直营门店,禁止改价
|
StoreChangePriceTypeManagedStore = 3 // 直营门店,禁止改价
|
||||||
)
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
AutoReplyAll = 0 // 全部自动回复
|
||||||
|
AutoReplyGoodComment = 1 // 禁止差评自动回复
|
||||||
|
AutoReplyDisabled = 2 // 禁止自动回复
|
||||||
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
StoreStatusName = map[int]string{
|
StoreStatusName = map[int]string{
|
||||||
StoreStatusDisabled: "禁用",
|
StoreStatusDisabled: "禁用",
|
||||||
@@ -240,6 +246,11 @@ var (
|
|||||||
StoreChangePriceTypeBossDisabled: "普通门店禁止改价",
|
StoreChangePriceTypeBossDisabled: "普通门店禁止改价",
|
||||||
StoreChangePriceTypeManagedStore: "直营门店禁止改价",
|
StoreChangePriceTypeManagedStore: "直营门店禁止改价",
|
||||||
}
|
}
|
||||||
|
AutoReplyTypeName = map[int]string{
|
||||||
|
AutoReplyAll: "全部自动回复",
|
||||||
|
AutoReplyGoodComment: "禁止差评自动回复",
|
||||||
|
AutoReplyDisabled: "禁止自动回复",
|
||||||
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
type Store struct {
|
type Store struct {
|
||||||
@@ -264,6 +275,7 @@ type Store struct {
|
|||||||
AutoEnableAt *time.Time `orm:"type(datetime);null" json:"autoEnableAt"` // 自动营业时间(临时休息用)
|
AutoEnableAt *time.Time `orm:"type(datetime);null" json:"autoEnableAt"` // 自动营业时间(临时休息用)
|
||||||
ChangePriceType int8 `json:"changePriceType"` // 修改价格类型,即是否需要审核
|
ChangePriceType int8 `json:"changePriceType"` // 修改价格类型,即是否需要审核
|
||||||
SMSNotify int8 `orm:"column(sms_notify);" json:"smsNotify"` // 是否通过短信接收订单消息
|
SMSNotify int8 `orm:"column(sms_notify);" json:"smsNotify"` // 是否通过短信接收订单消息
|
||||||
|
AutoReplyType int8 `json:"autoReplyType"` // 订单评价自动回复类型
|
||||||
|
|
||||||
PrinterDisabled int8 `orm:"default(0)" json:"printerDisabled"` // 是否禁用网络打印机
|
PrinterDisabled int8 `orm:"default(0)" json:"printerDisabled"` // 是否禁用网络打印机
|
||||||
PrinterFontSize int8 `orm:"default(0)" json:"printerFontSize"` // 打印字体-1:小,0:正常,1:大
|
PrinterFontSize int8 `orm:"default(0)" json:"printerFontSize"` // 打印字体-1:小,0:正常,1:大
|
||||||
|
|||||||
Reference in New Issue
Block a user