- dao.FormalizeStoreStatus

This commit is contained in:
gazebo
2019-04-12 17:10:35 +08:00
parent c968cfe109
commit 47ec846c36
5 changed files with 64 additions and 5 deletions

View File

@@ -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
}