- dao.FormalizeStoreStatus
This commit is contained in:
@@ -178,3 +178,49 @@ func GetStoreCourierList(db *DaoDB, storeID, status int) (courierStoreList []*mo
|
||||
}
|
||||
return nil, err
|
||||
}
|
||||
|
||||
// 此函数在检测到一个门店的所有平台状态一样,且不为StoreStatusOpened时,
|
||||
// 将平台门店状态全部改为StoreStatusOpened,则把京西门店状态改为之前那个统一的平台门店状态
|
||||
func FormalizeStoreStatus(db *DaoDB, storeID, storeStatus int) (err error) {
|
||||
sql := `
|
||||
SELECT DISTINCT t1.status
|
||||
FROM store_map t1
|
||||
WHERE t1.deleted_at = ? AND t1.store_id = ?
|
||||
`
|
||||
sqlParams := []interface{}{
|
||||
utils.DefaultTimeValue,
|
||||
storeID,
|
||||
}
|
||||
var statusList []int
|
||||
Begin(db)
|
||||
defer func() {
|
||||
if err != nil {
|
||||
Rollback(db)
|
||||
}
|
||||
}()
|
||||
if err = GetRows(db, &statusList, sql, sqlParams...); err == nil {
|
||||
if len(statusList) == 1 {
|
||||
if statusList[0] != model.StoreStatusOpened {
|
||||
if storeStatus != statusList[0] {
|
||||
store := &model.Store{}
|
||||
store.ID = storeID
|
||||
if _, err = UpdateEntityLogically(db, store, map[string]interface{}{
|
||||
model.FieldStatus: statusList[0],
|
||||
}, model.AdminName, nil); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
if _, err = UpdateEntityLogically(db, &model.StoreMap{}, map[string]interface{}{
|
||||
model.FieldStatus: model.StoreStatusOpened,
|
||||
}, model.AdminName, map[string]interface{}{
|
||||
model.FieldStoreID: storeID,
|
||||
model.FieldDeletedAt: utils.DefaultTimeValue,
|
||||
}); err != nil {
|
||||
return err
|
||||
}
|
||||
Commit(db)
|
||||
}
|
||||
}
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user