操作日志记录优化

This commit is contained in:
苏尹岚
2020-01-15 10:11:22 +08:00
parent 59ffb8838f
commit 1f99d9223c
3 changed files with 19 additions and 22 deletions

View File

@@ -1040,7 +1040,7 @@ func updateStoresSkusWithoutSync(ctx *jxcontext.Context, db *dao.DaoDB, storeIDs
skuBind.Status = tmpStatus skuBind.Status = tmpStatus
} }
if globals.IsAddEvent { if globals.IsAddEvent {
err = AddEventDetail(model.OperateAdd, v.RealSkuID, model.ThingTypeSku, storeID, ctx.GetTrackInfo(), "", "") err = AddEventDetail(db, model.OperateAdd, v.RealSkuID, model.ThingTypeSku, storeID, ctx.GetTrackInfo(), "", "")
} }
setStoreSkuBindStatus(skuBind, model.SyncFlagNewMask) setStoreSkuBindStatus(skuBind, model.SyncFlagNewMask)
dao.WrapAddIDCULDEntity(skuBind, userName) dao.WrapAddIDCULDEntity(skuBind, userName)
@@ -1069,7 +1069,7 @@ func updateStoresSkusWithoutSync(ctx *jxcontext.Context, db *dao.DaoDB, storeIDs
skuBind = &v.StoreSkuBind skuBind = &v.StoreSkuBind
if skuBindInfo.IsFocus == -1 && isCanChangePrice { if skuBindInfo.IsFocus == -1 && isCanChangePrice {
if globals.IsAddEvent { if globals.IsAddEvent {
err = AddEventDetail(model.OperateDelete, skuBind.SkuID, model.ThingTypeSku, storeID, ctx.GetTrackInfo(), "", "") err = AddEventDetail(db, model.OperateDelete, skuBind.SkuID, model.ThingTypeSku, storeID, ctx.GetTrackInfo(), "", "")
} }
if num, err = dao.DeleteEntityLogically(db, skuBind, map[string]interface{}{ if num, err = dao.DeleteEntityLogically(db, skuBind, map[string]interface{}{
model.FieldStatus: model.StoreSkuBindStatusDeleted, model.FieldStatus: model.StoreSkuBindStatusDeleted,
@@ -1127,10 +1127,8 @@ func updateStoresSkusWithoutSync(ctx *jxcontext.Context, db *dao.DaoDB, storeIDs
if globals.IsAddEvent { if globals.IsAddEvent {
if len(updateFieldMap) > 0 { if len(updateFieldMap) > 0 {
mapAfter := refutil.FindMapAndStructMixed(updateFieldMap, skuBind) mapAfter := refutil.FindMapAndStructMixed(updateFieldMap, skuBind)
afterData := utils.MustMarshal(mapAfter)
mapBefore := refutil.FindMapAndStructMixed(updateFieldMap, beforeMsg) mapBefore := refutil.FindMapAndStructMixed(updateFieldMap, beforeMsg)
beforeData := utils.MustMarshal(mapBefore) err = AddEventDetail(db, model.OperateUpdate, v.RealSkuID, model.ThingTypeSku, storeID, ctx.GetTrackInfo(), BuildDiffData(mapBefore), BuildDiffData(mapAfter))
err = AddEventDetail(model.OperateUpdate, v.RealSkuID, model.ThingTypeSku, storeID, ctx.GetTrackInfo(), string(beforeData), string(afterData))
} }
} }
if len(updateFieldMap) > 0 { if len(updateFieldMap) > 0 {
@@ -1184,7 +1182,7 @@ func getSkuSaleStatus(inSkuBind *StoreSkuBindSkuInfo, skuNameBindInfo *StoreSkuB
return model.StoreSkuBindStatusNA return model.StoreSkuBindStatusNA
} }
func AddEventDetail(operateType, thingID, thingType, storeID int, accessUUID, beforeData, afterData string) (err error) { func AddEventDetail(db *dao.DaoDB, operateType, thingID, thingType, storeID int, accessUUID, beforeData, afterData string) (err error) {
operateEventDetail := &model.OperateEventDetail{ operateEventDetail := &model.OperateEventDetail{
OperateType: operateType, OperateType: operateType,
ThingID: thingID, ThingID: thingID,
@@ -1194,7 +1192,7 @@ func AddEventDetail(operateType, thingID, thingType, storeID int, accessUUID, be
BeforeData: beforeData, BeforeData: beforeData,
AfterData: afterData, AfterData: afterData,
} }
err = event.AddOperateEventDetail(operateEventDetail) err = event.AddOperateEventDetail(db, operateEventDetail)
return err return err
} }
@@ -1254,21 +1252,19 @@ func updateStoreSkusSaleWithoutSync(ctx *jxcontext.Context, storeID int, skuBind
} else { } else {
kvs["AutoSaleAt"] = autoSaleTime kvs["AutoSaleAt"] = autoSaleTime
} }
var status int
if v.IsSale == -1 {
status = model.StoreSkuBindStatusDontSale
} else {
status = model.StoreSkuBindStatusNormal
}
if globals.IsAddEvent { if globals.IsAddEvent {
var status int
if v.IsSale == -1 {
status = model.StoreSkuBindStatusDontSale
} else {
status = model.StoreSkuBindStatusNormal
}
if status != statusResult { if status != statusResult {
mapAfter := make(map[string]interface{}) mapAfter := make(map[string]interface{})
mapAfter["Status"] = status mapAfter["Status"] = status
afterData := utils.MustMarshal(mapAfter)
mapBefore := make(map[string]interface{}) mapBefore := make(map[string]interface{})
mapBefore["Status"] = statusResult mapBefore["Status"] = statusResult
beforeData := utils.MustMarshal(mapBefore) err = AddEventDetail(db, model.OperateUpdate, v.SkuID, model.ThingTypeSku, storeID, ctx.GetTrackInfo(), BuildDiffData(mapBefore), BuildDiffData(mapAfter))
err = AddEventDetail(model.OperateUpdate, v.SkuID, model.ThingTypeSku, storeID, ctx.GetTrackInfo(), string(beforeData), string(afterData))
} }
} }
if num, err = dao.UpdateEntityLogically(db, skuBind, kvs, userName, nil); err != nil { if num, err = dao.UpdateEntityLogically(db, skuBind, kvs, userName, nil); err != nil {
@@ -1286,6 +1282,11 @@ func updateStoreSkusSaleWithoutSync(ctx *jxcontext.Context, storeID int, skuBind
return needSyncSkus, err return needSyncSkus, err
} }
func BuildDiffData(mapData map[string]interface{}) string {
dd := utils.MustMarshal(mapData)
return string(dd)
}
func uniqueStoreSkuBind(skuBindSkuInfos []*StoreSkuBindSkuInfo) (outSkuBindSkuInfos []*StoreSkuBindSkuInfo) { func uniqueStoreSkuBind(skuBindSkuInfos []*StoreSkuBindSkuInfo) (outSkuBindSkuInfos []*StoreSkuBindSkuInfo) {
skuIDMap := make(map[int]int) skuIDMap := make(map[int]int)
for _, v := range skuBindSkuInfos { for _, v := range skuBindSkuInfos {
@@ -1591,11 +1592,9 @@ func CopyStoreSkus(ctx *jxcontext.Context, fromStoreID int, toStoreIDs []int, co
mapAfter["ToStoreIDs"] = toStoreIDs mapAfter["ToStoreIDs"] = toStoreIDs
mapAfter["CopyMode"] = copyMode mapAfter["CopyMode"] = copyMode
mapAfter["IsScale"] = isScale mapAfter["IsScale"] = isScale
afterData := utils.MustMarshal(mapAfter)
mapBefore := make(map[string]interface{}) mapBefore := make(map[string]interface{})
mapBefore["FromStoreID"] = fromStoreID mapBefore["FromStoreID"] = fromStoreID
beforeData := utils.MustMarshal(mapBefore) err = AddEventDetail(db, model.OperateCopyStoreSkus, 0, model.ThingTypeSku, fromStoreID, ctx.GetTrackInfo(), BuildDiffData(mapBefore), BuildDiffData(mapAfter))
err = AddEventDetail(model.OperateCopyStoreSkus, 0, model.ThingTypeSku, fromStoreID, ctx.GetTrackInfo(), string(beforeData), string(afterData))
} }
return num, errList.GetErrListAsOne() return num, errList.GetErrListAsOne()
} }

View File

@@ -42,8 +42,7 @@ func AddOperateEvent(ctx *jxcontext.Context, accessUUID string) (err error) {
return err return err
} }
func AddOperateEventDetail(operateEventDetail *model.OperateEventDetail) (err error) { func AddOperateEventDetail(db *dao.DaoDB, operateEventDetail *model.OperateEventDetail) (err error) {
db := dao.GetDB()
dao.Begin(db) dao.Begin(db)
defer func() { defer func() {
if r := recover(); r != nil { if r := recover(); r != nil {

View File

@@ -154,7 +154,6 @@ func init() {
beego.AutoRouter(&controllers.WeixinController{}) beego.AutoRouter(&controllers.WeixinController{})
beego.AutoRouter(&controllers.DingDingController{}) beego.AutoRouter(&controllers.DingDingController{})
beego.AutoRouter(&controllers.WXPayController{}) beego.AutoRouter(&controllers.WXPayController{})
beego.AutoRouter(&controllers.EventController{})
// 如下都是用于检测存活的空接口 // 如下都是用于检测存活的空接口
beego.Any("/", func(ctx *beecontext.Context) { beego.Any("/", func(ctx *beecontext.Context) {