- Store and StoreMap add DeletedAt.
This commit is contained in:
@@ -38,12 +38,12 @@ func GetStores(keyword string, params map[string]interface{}, offset, pageSize i
|
||||
FROM store t1
|
||||
LEFT JOIN place city ON t1.city_code = city.code AND city.level = 2
|
||||
LEFT JOIN place district ON t1.district_code = district.code AND district.level = 3
|
||||
LEFT JOIN store_map jdm ON t1.id = jdm.store_id AND jdm.vendor_id = 0
|
||||
LEFT JOIN store_map elmm ON t1.id = elmm.store_id AND elmm.vendor_id = 2
|
||||
LEFT JOIN store_map ebaim ON t1.id = ebaim.store_id AND ebaim.vendor_id = 3
|
||||
LEFT JOIN store_map jdm ON t1.id = jdm.store_id AND jdm.vendor_id = 0 AND jdm.deleted_at = '1970-01-01 00:00:00'
|
||||
LEFT JOIN store_map elmm ON t1.id = elmm.store_id AND elmm.vendor_id = 2 AND elmm.deleted_at = '1970-01-01 00:00:00'
|
||||
LEFT JOIN store_map ebaim ON t1.id = ebaim.store_id AND ebaim.vendor_id = 3 AND ebaim.deleted_at = '1970-01-01 00:00:00'
|
||||
`
|
||||
sqlWhere := `
|
||||
WHERE
|
||||
WHERE t1.deleted_at = '1970-01-01 00:00:00'
|
||||
`
|
||||
sqlParams := make([]interface{}, 0)
|
||||
if keyword != "" {
|
||||
@@ -89,17 +89,7 @@ func GetStores(keyword string, params map[string]interface{}, offset, pageSize i
|
||||
sqlParams = append(sqlParams, "%"+params["tel"].(string)+"%")
|
||||
sqlParams = append(sqlParams, "%"+params["tel"].(string)+"%")
|
||||
}
|
||||
// if params["cardCond"] != nil {
|
||||
// cardCond := params["cardCond"].(int)
|
||||
// if cardCond == -1 || cardCond == 1 {
|
||||
// sqlFrom += "\nLEFT JOIN bill_info ON t1.store_id = bill_info.jx_store_id\n"
|
||||
// if cardCond == -1 {
|
||||
// sqlWhere += " AND bill_info.id IS NULL"
|
||||
// } else {
|
||||
// sqlWhere += " AND bill_info.id IS NOT NULL"
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
if params["fromStatus"] != nil {
|
||||
fromStatus := params["fromStatus"].(int)
|
||||
toStatus := fromStatus
|
||||
@@ -196,21 +186,34 @@ func UpdateStore(storeID int, payload map[string]interface{}, userName string) (
|
||||
}
|
||||
if len(valid) > 0 {
|
||||
db := dao.GetDB()
|
||||
if num, err = dao.UpdateEntityByKV(db, store, valid, nil); err == nil && num == 1 {
|
||||
dummy := &model.StoreMap{}
|
||||
_, err2 := dao.UpdateEntityByKV(db, dummy, utils.Params2Map(model.FieldSyncStatus, model.SyncFlagModifiedMask), utils.Params2Map(model.FieldStoreID, store.ID))
|
||||
if err = err2; err == nil {
|
||||
if err = dao.GetEntity(db, store); err == nil {
|
||||
err = CurVendorSync.SyncStore(db, -1, store, false, userName)
|
||||
}
|
||||
dao.Begin(db)
|
||||
defer func() {
|
||||
if r := recover(); r != nil {
|
||||
dao.Rollback(db)
|
||||
panic(r)
|
||||
}
|
||||
}()
|
||||
if num, err = dao.UpdateEntityLogically(db, store, valid, userName, nil); err == nil && num == 1 {
|
||||
dummy := &model.StoreMap{}
|
||||
_, err2 := dao.UpdateEntityLogically(db, dummy, map[string]interface{}{
|
||||
model.FieldSyncStatus: model.SyncFlagModifiedMask,
|
||||
}, userName, map[string]interface{}{
|
||||
model.FieldStoreID: store.ID,
|
||||
})
|
||||
if err = err2; err == nil {
|
||||
dao.Commit(db)
|
||||
err = CurVendorSync.SyncStore(db, -1, store.ID, false, userName)
|
||||
}
|
||||
}
|
||||
if err != nil {
|
||||
dao.Rollback(db)
|
||||
}
|
||||
}
|
||||
return num, err
|
||||
}
|
||||
|
||||
func CreateStore(store *model.Store, userName string) (id int, err error) {
|
||||
dao.WrapAddIDCULEntity(store, userName)
|
||||
dao.WrapAddIDCULDEntity(store, userName)
|
||||
if err = dao.CreateEntity(nil, store); err == nil {
|
||||
return store.ID, err
|
||||
}
|
||||
@@ -224,14 +227,14 @@ func GetStoreVendorMaps(db *dao.DaoDB, storeID int, vendorID int) (storeMaps []*
|
||||
if vendorID != -1 {
|
||||
cond[model.FieldVendorID] = vendorID
|
||||
}
|
||||
return storeMaps, dao.GetEntities(db, &storeMaps, cond, false)
|
||||
return storeMaps, dao.GetEntitiesByKV(db, &storeMaps, cond, false)
|
||||
}
|
||||
|
||||
func AddStoreVendorMap(db *dao.DaoDB, storeID, vendorID int, storeMap *model.StoreMap, userName string) (outStoreMap *model.StoreMap, err error) {
|
||||
if handler := GetPurchaseHandler(storeMap.VendorID); handler != nil {
|
||||
store, err := handler.ReadStore(storeMap.VendorStoreID)
|
||||
if err == nil {
|
||||
dao.WrapAddIDCULEntity(storeMap, userName)
|
||||
dao.WrapAddIDCULDEntity(storeMap, userName)
|
||||
storeMap.StoreID = storeID
|
||||
storeMap.VendorID = vendorID
|
||||
storeMap.DeliveryType = store.DeliveryType
|
||||
@@ -248,12 +251,9 @@ func AddStoreVendorMap(db *dao.DaoDB, storeID, vendorID int, storeMap *model.Sto
|
||||
}
|
||||
}()
|
||||
if err = dao.CreateEntity(db, storeMap); err == nil {
|
||||
store.ID = storeID
|
||||
if err = dao.GetEntity(db, store); err == nil {
|
||||
dao.Commit(db)
|
||||
outStoreMap = storeMap
|
||||
err = CurVendorSync.SyncStore(db, storeMap.VendorID, store, true, userName)
|
||||
}
|
||||
dao.Commit(db)
|
||||
outStoreMap = storeMap
|
||||
err = CurVendorSync.SyncStore(db, storeMap.VendorID, storeID, true, userName)
|
||||
}
|
||||
if err != nil {
|
||||
dao.Rollback(db)
|
||||
@@ -266,11 +266,17 @@ func AddStoreVendorMap(db *dao.DaoDB, storeID, vendorID int, storeMap *model.Sto
|
||||
}
|
||||
|
||||
func DeleteStoreVendorMap(db *dao.DaoDB, storeID, vendorID int, userName string) (num int64, err error) {
|
||||
storeMap := &model.StoreMap{
|
||||
StoreID: storeID,
|
||||
VendorID: vendorID,
|
||||
storeMap := &model.StoreMap{}
|
||||
if num, err = dao.DeleteEntityLogically(db, storeMap, map[string]interface{}{
|
||||
model.FieldSyncStatus: model.SyncFlagDeletedMask,
|
||||
model.FieldStatus: model.StoreStatusDisabled,
|
||||
}, userName, map[string]interface{}{
|
||||
model.FieldStoreID: storeID,
|
||||
model.FieldVendorID: vendorID,
|
||||
}); err == nil && num > 0 {
|
||||
err = CurVendorSync.SyncStore(db, vendorID, storeID, true, userName)
|
||||
}
|
||||
return dao.DeleteEntity(db, storeMap, model.FieldStoreID, model.FieldVendorID)
|
||||
return num, err
|
||||
}
|
||||
|
||||
func UpdateStoreVendorMap(db *dao.DaoDB, storeID, vendorID int, payload map[string]interface{}, userName string) (num int64, err error) {
|
||||
@@ -294,16 +300,19 @@ func UpdateStoreVendorMap(db *dao.DaoDB, storeID, vendorID int, payload map[stri
|
||||
if valid["status"] != nil { // 对于store vendor map,只有Status改变才需要同步到厂商
|
||||
valid[model.FieldSyncStatus] = model.SyncFlagModifiedMask
|
||||
}
|
||||
if num, err = dao.UpdateEntityByKV(db, dummyStoreMap, valid, utils.Params2Map(model.FieldStoreID, storeID, model.FieldVendorID, vendorID)); err == nil {
|
||||
if num, err = dao.UpdateEntityLogically(db, dummyStoreMap, valid, userName, map[string]interface{}{
|
||||
model.FieldStoreID: storeID,
|
||||
model.FieldVendorID: vendorID,
|
||||
}); err == nil && num > 0 {
|
||||
if valid["status"] != nil {
|
||||
store := &model.Store{}
|
||||
store.ID = storeID
|
||||
if err = dao.GetEntity(db, store); err == nil {
|
||||
err = CurVendorSync.SyncStore(db, vendorID, store, false, userName)
|
||||
}
|
||||
err = CurVendorSync.SyncStore(db, vendorID, storeID, false, userName)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return num, err
|
||||
}
|
||||
|
||||
func DeleteStore(db *dao.DaoDB, storeID int, userName string) (num int64, err error) {
|
||||
return 0, err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user