This commit is contained in:
苏尹岚
2021-03-30 17:39:07 +08:00
parent b9f7d7f53a
commit 0dd7235485
49 changed files with 579 additions and 582 deletions

View File

@@ -50,7 +50,7 @@ import (
"git.rosy.net.cn/jx-callback/business/model/dao"
"git.rosy.net.cn/jx-callback/globals"
"github.com/360EntSecGroup-Skylar/excelize"
"github.com/astaxie/beego/adapter/orm"
"github.com/astaxie/beego/client/orm"
)
const (
@@ -369,8 +369,8 @@ func GetStoresSkusForStore(ctx *jxcontext.Context, storeID int, isFocus, isAct b
pageSize = jxutils.FormalizePageSize(pageSize)
offset = jxutils.FormalizePageOffset(offset)
sqlParams = append(sqlParams, pageSize, offset)
dao.Begin(db)
defer dao.Commit(db)
txDB , _ := dao.Begin(db)
defer dao.Commit(db, txDB)
if err = dao.GetRows(db, &SkuNames, sql, sqlParams...); err == nil {
skuNamesInfo = &dao.StoreSkuNamesInfo{
TotalCount: dao.GetLastTotalRowCount(db),
@@ -715,10 +715,10 @@ func GetStoresSkusNew(ctx *jxcontext.Context, storeIDs, skuIDs []int, upcs []str
}
sqlParamsPage := []interface{}{sqlPageSize, sqlOffset}
dao.Begin(db)
txDB , _ := dao.Begin(db)
defer func() {
if r := recover(); r != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
panic(r)
}
}()
@@ -742,7 +742,7 @@ func GetStoresSkusNew(ctx *jxcontext.Context, storeIDs, skuIDs []int, upcs []str
var storeNameList []*tStoreNameBind
beginTime := time.Now()
if err = dao.GetRows(db, &storeNameList, sql2, sqlParams2...); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return nil, err
}
globals.SugarLogger.Debugf("GetStoresSkusNew get result1:%v", time.Now().Sub(beginTime))
@@ -785,13 +785,13 @@ func GetStoresSkusNew(ctx *jxcontext.Context, storeIDs, skuIDs []int, upcs []str
var tmpList []*tGetStoresSkusInfo
beginTime := time.Now()
if err = dao.GetRows(db, &tmpList, sql, sqlParams...); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return nil, err
}
if isBySku {
skuNamesInfo.TotalCount = dao.GetLastTotalRowCount(db)
}
dao.Commit(db)
dao.Commit(db, txDB)
globals.SugarLogger.Debugf("GetStoresSkusNew get result2:%v", time.Now().Sub(beginTime))
storeNameMap := make(map[int64]*dao.StoreSkuNameExt)
for _, v := range tmpList {
@@ -1138,17 +1138,17 @@ func UpdateStoresSkusByBind(ctx *jxcontext.Context, parentTask tasksch.ITask, sk
var num int64
skuIDMap := make(map[int]int)
db := dao.GetDB()
// dao.Begin(db)
// txDB , _ := dao.Begin(db)
// defer func() {
// if r := recover(); r != nil {
// dao.Rollback(db)
// dao.Rollback(db, txDB)
// panic(r)
// }
// }()
for _, storeID := range storeIDs {
skuIDs, err2 := updateStoresSkusWithoutSync(ctx, db, []int{storeID}, skuBindInfosMap[storeID], false, false)
if err = err2; err != nil {
// dao.Rollback(db)
// dao.Rollback(db, txDB)
return "", err
}
for _, v := range skuIDs {
@@ -1156,7 +1156,7 @@ func UpdateStoresSkusByBind(ctx *jxcontext.Context, parentTask tasksch.ITask, sk
}
num += int64(len(skuIDs))
}
// dao.Commit(db)
// dao.Commit(db, txDB)
isAsync = asyncStoreSkuOpFilter(ctx, isAsync)
if num > 0 {
skuIDs := jxutils.IntMap2List(skuIDMap)
@@ -1258,10 +1258,10 @@ func updateStoresSkusWithoutSync(ctx *jxcontext.Context, db *dao.DaoDB, storeIDs
needSyncIDMap := make(map[int]int)
isSyncSkus := false
var appCodeList []string
dao.Begin(db)
txDB , _ := dao.Begin(db)
defer func() {
if r := recover(); r != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
panic(r)
}
}()
@@ -1349,7 +1349,7 @@ func updateStoresSkusWithoutSync(ctx *jxcontext.Context, db *dao.DaoDB, storeIDs
unitPrice := 0
if skuBindInfo.UnitPrice != 0 {
if skuBindInfo.UnitPrice > MaxSkuUnitPrice {
dao.Rollback(db)
dao.Rollback(db, txDB)
return nil, fmt.Errorf("商品:%s价格:%s太夸张", allBinds[0].Name, jxutils.IntPrice2StandardCurrencyString(int64(skuBindInfo.UnitPrice)))
}
unitPrice = skuBindInfo.UnitPrice
@@ -1410,7 +1410,7 @@ func updateStoresSkusWithoutSync(ctx *jxcontext.Context, db *dao.DaoDB, storeIDs
dao.WrapAddIDCULDEntity(skuBind, userName)
if deletedSku := dao.GetDeletedStoreSkuBind(db, skuBind.StoreID, skuBind.SkuID); deletedSku == nil {
if err = dao.CreateEntity(db, skuBind); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return nil, err
}
num = 1
@@ -1422,7 +1422,7 @@ func updateStoresSkusWithoutSync(ctx *jxcontext.Context, db *dao.DaoDB, storeIDs
skuBind.MtwmID = deletedSku.MtwmID
skuBind.EbaiID = deletedSku.EbaiID
if num, err = dao.UpdateEntity(db, skuBind); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return nil, err
}
}
@@ -1479,7 +1479,7 @@ func updateStoresSkusWithoutSync(ctx *jxcontext.Context, db *dao.DaoDB, storeIDs
model.FieldYbSyncStatus: model.SyncFlagDeletedMask,
model.FieldJdsSyncStatus: model.SyncFlagDeletedMask,
}, userName, nil); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return nil, err
}
//删除待审核商品信息
@@ -1487,7 +1487,7 @@ func updateStoresSkusWithoutSync(ctx *jxcontext.Context, db *dao.DaoDB, storeIDs
if len(storeAudits) > 0 {
storeAudits[0].DeletedAt = time.Now()
if _, err = dao.UpdateEntity(db, storeAudits[0], "DeletedAt"); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return nil, err
}
}
@@ -1611,7 +1611,7 @@ func updateStoresSkusWithoutSync(ctx *jxcontext.Context, db *dao.DaoDB, storeIDs
skuBind.AutoSaleAt = utils.DefaultTimeValue
}
if num, err = dao.UpdateEntity(db, skuBind /*, utils.Map2KeySlice(updateFieldMap)...*/); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return nil, err
}
}
@@ -1623,12 +1623,12 @@ func updateStoresSkusWithoutSync(ctx *jxcontext.Context, db *dao.DaoDB, storeIDs
}
}
} else {
dao.Rollback(db)
dao.Rollback(db, txDB)
return nil, err
}
}
}
dao.Commit(db)
dao.Commit(db, txDB)
skuIDs := jxutils.IntMap2List(needSyncIDMap)
if isSyncSkus {
_, err = SyncSkus(ctx, nil, []int{model.VendorIDJD}, appCodeList, nil, skuIDs, true)
@@ -1731,16 +1731,16 @@ func updateStoreSkusSaleWithoutSync(ctx *jxcontext.Context, storeID int, skuBind
skuBindSkuInfosMap[v.SkuID] = v
}
dao.Begin(db)
txDB , _ := dao.Begin(db)
defer func() {
if r := recover(); r != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
panic(r)
}
}()
storeSkuList, err := dao.GetStoresSkusInfo(db, []int{storeID}, jxutils.IntMap2List(skuIDMap))
if err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return nil, err
}
autoSaleTime = formatAutoSaleTime(autoSaleTime)
@@ -1782,7 +1782,7 @@ func updateStoreSkusSaleWithoutSync(ctx *jxcontext.Context, storeID int, skuBind
}
}
if num, err = dao.UpdateEntityLogically(db, skuBind, kvs, userName, nil); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return nil, err
}
if num == 1 {
@@ -1791,7 +1791,7 @@ func updateStoreSkusSaleWithoutSync(ctx *jxcontext.Context, storeID int, skuBind
}
}
}
dao.Commit(db)
dao.Commit(db, txDB)
needSyncSkus = jxutils.IntMap2List(needSyncIDMap)
return needSyncSkus, err
}
@@ -1937,10 +1937,10 @@ func CopyStoreSkus(ctx *jxcontext.Context, fromStoreID int, toStoreIDs []int, co
}
break
}
dao.Begin(db)
txDB , _ := dao.Begin(db)
defer func() {
if r := recover(); r != nil {
dao.Rollback(db)
dao.Rollback(db,txDB)
panic(r)
}
}()
@@ -1987,7 +1987,7 @@ func CopyStoreSkus(ctx *jxcontext.Context, fromStoreID int, toStoreIDs []int, co
num2, err2 := dao.ExecuteSQL(db, sqlDelete, sqlDeleteParams)
if err = err2; err != nil {
errList.AddErr(err)
dao.Rollback(db)
dao.Rollback(db, txDB)
break
}
num += num2
@@ -2059,7 +2059,7 @@ func CopyStoreSkus(ctx *jxcontext.Context, fromStoreID int, toStoreIDs []int, co
globals.SugarLogger.Debugf("CopyStoreSkus fromStoreID:%d, toStoreID:%d, trackInfo:%s num2:%d", fromStoreID, toStoreID, ctx.GetTrackInfo(), num2)
if err = err2; err != nil {
errList.AddErr(err)
dao.Rollback(db)
dao.Rollback(db, txDB)
break
}
num += num2
@@ -2109,7 +2109,7 @@ func CopyStoreSkus(ctx *jxcontext.Context, fromStoreID int, toStoreIDs []int, co
num2, err = dao.ExecuteSQL(db, sql, sqlParams)
if err != nil {
errList.AddErr(err)
dao.Rollback(db)
dao.Rollback(db, txDB)
break
}
num += num2
@@ -2132,11 +2132,11 @@ func CopyStoreSkus(ctx *jxcontext.Context, fromStoreID int, toStoreIDs []int, co
_, err = dao.ExecuteSQL(db, sql2, sqlParams2)
if err != nil {
errList.AddErr(err)
dao.Rollback(db)
dao.Rollback(db, txDB)
break
}
globals.SugarLogger.Debugf("CopyStoreSkus fromStoreID:%d, toStoreID:%d, trackInfo:%s num3:%d", fromStoreID, toStoreID, ctx.GetTrackInfo(), num2)
dao.Commit(db)
dao.Commit(db, txDB)
//同一商品若源门店的规格少于要复制到的门店则在复制的门店里的其他规格的unitprice不会变
//导致复制的门店的商品unitprice不尽相同这里先处理一下
@@ -2205,8 +2205,8 @@ func filterStorePriceChange(ctx *jxcontext.Context, storeIDs []int, skuBindInfos
globals.SugarLogger.Debug("filterStorePriceChange")
if globals.EnablePendingChange {
db := dao.GetDB()
dao.Begin(db)
defer dao.Rollback(db)
txDB , _ := dao.Begin(db)
defer dao.Rollback(db, txDB)
for _, storeID := range storeIDs {
for _, skuBindInfo := range skuBindInfos {
shouldPending, err2 := shouldPendingStorePriceChange(ctx, storeID, skuBindInfo)
@@ -2310,7 +2310,7 @@ func filterStorePriceChange(ctx *jxcontext.Context, storeIDs []int, skuBindInfos
}
}
}
dao.Commit(db)
dao.Commit(db, txDB)
}
return storeIDs, skuBindInfos, nil
}
@@ -2448,8 +2448,8 @@ func GetStoreOpRequests(ctx *jxcontext.Context, fromTime, toTime time.Time, keyw
// globals.SugarLogger.Debug(sql)
// globals.SugarLogger.Debug(utils.Format4Output(sqlParams, false))
var requestList []*StoreOpRequestInfo
dao.Begin(db)
defer dao.Commit(db)
txDB , _ := dao.Begin(db)
defer dao.Commit(db, txDB)
if err = dao.GetRows(db, &requestList, sql, sqlParams...); err == nil {
return &model.PagedInfo{
TotalCount: dao.GetLastTotalRowCount(db),
@@ -2507,8 +2507,8 @@ func changeStoreOpStatus(ctx *jxcontext.Context, reqIDs []int, status int8, reje
return err
}
db := dao.GetDB()
dao.Begin(db)
defer dao.Rollback(db)
txDB , _ := dao.Begin(db)
defer dao.Rollback(db, txDB)
for _, reqID := range reqIDs {
op := &model.StoreOpRequest{}
op.Remark = rejectReason
@@ -2524,7 +2524,7 @@ func changeStoreOpStatus(ctx *jxcontext.Context, reqIDs []int, status int8, reje
return err
}
}
dao.Commit(db)
dao.Commit(db, txDB)
}
}
return err
@@ -2648,10 +2648,10 @@ func RefreshStoresSkuByVendor(ctx *jxcontext.Context, storeIDs []int, vendorID i
}
case 2:
if len(storeSkuList) > 0 {
dao.Begin(db)
txDB , _ := dao.Begin(db)
defer func() {
if r := recover(); r != nil || err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
if r != nil {
panic(r)
}
@@ -2664,7 +2664,7 @@ func RefreshStoresSkuByVendor(ctx *jxcontext.Context, storeIDs []int, vendorID i
`+dao.GenQuestionMarks(len(storeIDs))+")", storeIDs); err == nil {
if err = dao.CreateMultiEntities(db, storeSkuList); err == nil {
hint = utils.Int2Str(len(storeSkuList))
dao.Commit(db)
dao.Commit(db, txDB)
}
}
}
@@ -3262,10 +3262,10 @@ func WriteToExcelJx(task *tasksch.SeqTask, dataSuccess []DataSuccess, dataFailed
func CreateOrUpdateStoreSkuNamePriceByExcel(db *dao.DaoDB, ctx *jxcontext.Context, storeSkuNamePriceList []*model.StoreSkuNamePrice, storeSkuNamePriceListOrg []*model.StoreSkuNamePrice) (err error) {
storeSkuNamePriceMap := StoreSkuNamePriceList2Map(ctx, storeSkuNamePriceListOrg)
dao.Begin(db)
txDB , _ := dao.Begin(db)
defer func() {
if r := recover(); r != nil || err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
if r != nil {
panic(r)
}
@@ -3281,7 +3281,7 @@ func CreateOrUpdateStoreSkuNamePriceByExcel(db *dao.DaoDB, ctx *jxcontext.Contex
dao.CreateEntity(db, v)
}
}
dao.Commit(db)
dao.Commit(db, txDB)
return err
}
@@ -4821,15 +4821,15 @@ func SyncMatterC4ToGy(ctx *jxcontext.Context, isContinueWhenError, isAsync bool)
skuNameExt.DeletedAt = utils.DefaultTimeValue
skuNameExt.CreatedAt = time.Now()
skuNameExt.LastOperator = ctx.GetUserName()
dao.Begin(db)
txDB , _ := dao.Begin(db)
defer func() {
if r := recover(); r != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
panic(r)
}
}()
if err = dao.CreateEntity(db, &skuNameExt.SkuName); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return retVal, err
}
// skuNameExt.Skus[0].ID = v.ID
@@ -4842,10 +4842,10 @@ func SyncMatterC4ToGy(ctx *jxcontext.Context, isContinueWhenError, isAsync bool)
skuNameExt.Skus[0].CreatedAt = time.Now()
skuNameExt.Skus[0].LastOperator = ctx.GetUserName()
if err = dao.CreateEntity(db, skuNameExt.Skus[0].Sku); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return retVal, err
}
dao.Commit(db)
dao.Commit(db, txDB)
focusC4Matters(ctx, db, v)
}
}
@@ -4867,10 +4867,10 @@ func SyncMatterC4ToGy(ctx *jxcontext.Context, isContinueWhenError, isAsync bool)
if len(skuNames) > 0 {
skuName = skuNames[0]
}
dao.Begin(db)
txDB , _ := dao.Begin(db)
defer func() {
if r := recover(); r != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
panic(r)
}
}()
@@ -4882,7 +4882,7 @@ func SyncMatterC4ToGy(ctx *jxcontext.Context, isContinueWhenError, isAsync bool)
`
sqlParams := []interface{}{v.SpecQuality, v.SpecUnit, v.EclpID, ctx.GetUserName(), v.EclpID, utils.DefaultTimeValue}
if _, err = dao.ExecuteSQL(db, sql, sqlParams); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return retVal, err
}
}
@@ -4898,11 +4898,11 @@ func SyncMatterC4ToGy(ctx *jxcontext.Context, isContinueWhenError, isAsync bool)
sqlParams := []interface{}{skuName.Name, skuName.Img, skuName.Img2, skuName.DescImg, skuName.Unit, skuName.Price,
ctx.GetUserName(), v.EclpID, utils.DefaultTimeValue}
if _, err = dao.ExecuteSQL(db, sql, sqlParams); err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
return retVal, err
}
}
dao.Commit(db)
dao.Commit(db, txDB)
focusC4Matters(ctx, db, v)
}
}
@@ -5433,10 +5433,10 @@ func DeleteActStoreSkuBind(ctx *jxcontext.Context, db *dao.DaoDB, actID int, act
return 0, fmt.Errorf("当前活动状态:%s不能进行此操作或已过期", model.ActStatusName[act.Status])
}
dao.Begin(db)
txDB , _ := dao.Begin(db)
defer func() {
if r := recover(); r != nil || err != nil {
dao.Rollback(db)
dao.Rollback(db, txDB)
if r != nil {
panic(r)
}
@@ -5522,7 +5522,7 @@ func DeleteActStoreSkuBind(ctx *jxcontext.Context, db *dao.DaoDB, actID int, act
return 0, err
}
}
dao.Commit(db)
dao.Commit(db, txDB)
return originSyncStatus, err
}