init
This commit is contained in:
9
repository/enter.go
Normal file
9
repository/enter.go
Normal file
@@ -0,0 +1,9 @@
|
||||
package repository
|
||||
|
||||
import "energy-management-system/repository/peak-valley"
|
||||
|
||||
type groupRepository struct {
|
||||
peak_valley.PeakValley
|
||||
}
|
||||
|
||||
var GroupRepositorys = new(groupRepository)
|
||||
53
repository/peak-valley/peak_valley_rule.go
Normal file
53
repository/peak-valley/peak_valley_rule.go
Normal file
@@ -0,0 +1,53 @@
|
||||
package peak_valley
|
||||
|
||||
import (
|
||||
"energy-management-system/form"
|
||||
"energy-management-system/global"
|
||||
peak_valley_model "energy-management-system/model/peak-valley"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
type PeakValley struct {
|
||||
}
|
||||
|
||||
// 一天的完整谷峰规则
|
||||
// 发电 (光伏)
|
||||
// 用电 (电机、生产)
|
||||
|
||||
//新建规则
|
||||
//
|
||||
//选择时间段 设置电价
|
||||
//(将时间段 转化为十分钟区块 查找到对应十分钟区块 创建该规则的电价)
|
||||
|
||||
func (r *PeakValley) CreatePeakValleyRule(tx *gorm.DB, d *peak_valley_model.PeakValleyRule) error {
|
||||
return tx.Create(d).Error
|
||||
}
|
||||
|
||||
func (r *PeakValley) UpdatePeakValleyRule(tx *gorm.DB, d *peak_valley_model.PeakValleyRule) error {
|
||||
return tx.Save(d).Error
|
||||
}
|
||||
|
||||
func (r *PeakValley) GetOnePeakValleyRule(qr map[string]interface{}) (d *peak_valley_model.PeakValleyRule, err error) {
|
||||
db := global.Db
|
||||
for key, value := range qr {
|
||||
db = db.Where(key, value)
|
||||
}
|
||||
err = db.First(&d).Error
|
||||
//if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
// d = nil
|
||||
//}
|
||||
return
|
||||
}
|
||||
|
||||
func (r *PeakValley) GetPeakValleyRulePage(req *form.PeakValleyRuleListReq) (count int64, list []*peak_valley_model.PeakValleyRule, err error) {
|
||||
db := global.Db.Model(&peak_valley_model.PeakValleyRule{})
|
||||
//for key, value := range qr {
|
||||
// db = db.Where(key, value)
|
||||
//}
|
||||
err = db.Count(&count).Error
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
err = db.Offset((req.Page.GetPageIndex() - 1) * req.Page.GetPageSize()).Limit(req.Page.GetPageSize()).Order("rule_id desc").Find(&list).Error
|
||||
return
|
||||
}
|
||||
34
repository/peak-valley/peak_valley_time_block.go
Normal file
34
repository/peak-valley/peak_valley_time_block.go
Normal file
@@ -0,0 +1,34 @@
|
||||
package peak_valley
|
||||
|
||||
import (
|
||||
"energy-management-system/global"
|
||||
peak_valley_model "energy-management-system/model/peak-valley"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
func (r *PeakValley) GetTimeBlockIdsByTimeBlock(tx *gorm.DB, startTime, endTime uint) (ids []uint, err error) {
|
||||
err = tx.Model(&peak_valley_model.PeakValleyTimeBlock{}).
|
||||
Where("start_time < ? AND end_time > ?", endTime, startTime).
|
||||
Pluck("block_index", &ids).Error
|
||||
return ids, err
|
||||
}
|
||||
|
||||
// GetBlockStartTime 获取最小开始时间
|
||||
func (r *PeakValley) GetBlockStartTime(blockId int) (startTime uint, err error) {
|
||||
var peakValleyTimeBlockModel peak_valley_model.PeakValleyTimeBlock
|
||||
err = global.Db.First(&peakValleyTimeBlockModel, blockId).Error
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
return peakValleyTimeBlockModel.StartTime, nil
|
||||
}
|
||||
|
||||
// GetBlockEndTime 获取最大结束时间
|
||||
func (r *PeakValley) GetBlockEndTime(blockId int) (endTime uint, err error) {
|
||||
var peakValleyTimeBlockModel peak_valley_model.PeakValleyTimeBlock
|
||||
err = global.Db.First(&peakValleyTimeBlockModel, blockId).Error
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
return peakValleyTimeBlockModel.EndTime, nil
|
||||
}
|
||||
87
repository/peak-valley/peak_valley_time_block_price.go
Normal file
87
repository/peak-valley/peak_valley_time_block_price.go
Normal file
@@ -0,0 +1,87 @@
|
||||
package peak_valley
|
||||
|
||||
import (
|
||||
"energy-management-system/global"
|
||||
peak_valley_model "energy-management-system/model/peak-valley"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
func (r *PeakValley) CreatePeakValleyTimeBlockPrices(tx *gorm.DB, ds []*peak_valley_model.PeakValleyTimeBlockPrice) error {
|
||||
return tx.Create(ds).Error
|
||||
}
|
||||
|
||||
func (r *PeakValley) DeletePeakValleyTimeBlockPricesByRuleId(tx *gorm.DB, ruleId uint, unscoped bool) error {
|
||||
db := tx.Where("peak_valley_rule_id", ruleId)
|
||||
if unscoped {
|
||||
db = db.Unscoped()
|
||||
}
|
||||
return db.Delete(&peak_valley_model.PeakValleyTimeBlockPrice{}).Error
|
||||
}
|
||||
|
||||
func (r *PeakValley) GetPeakValleyTypes() map[int]string {
|
||||
return peak_valley_model.PeakValleyTypes
|
||||
}
|
||||
|
||||
// 获取指定规则的某个类型的时间段
|
||||
func (r *PeakValley) GetPeakValleyRulePriceByTypeAndRuleID(ruleId uint, pvType uint) (blockIds []int, err error) {
|
||||
db := global.Db.Model(&peak_valley_model.PeakValleyTimeBlockPrice{})
|
||||
//for key, value := range qr {
|
||||
db = db.Where("peak_valley_rule_id = ?", ruleId)
|
||||
db = db.Where("peak_valley_type = ?", pvType)
|
||||
err = db.Order("block_id ASC").Pluck("block_id", &blockIds).Error
|
||||
return
|
||||
}
|
||||
|
||||
// 获取指定规则的某个类型的时间段
|
||||
func (r *PeakValley) GetPeakValleyRulePriceByCustomNameAndRuleID(ruleId uint, customName string) (blockIds []int, err error) {
|
||||
db := global.Db.Model(&peak_valley_model.PeakValleyTimeBlockPrice{})
|
||||
//for key, value := range qr {
|
||||
db = db.Where("peak_valley_rule_id = ?", ruleId)
|
||||
db = db.Where("custom_name = ?", customName)
|
||||
err = db.Order("block_id ASC").Pluck("block_id", &blockIds).Error
|
||||
return
|
||||
}
|
||||
|
||||
func (r *PeakValley) GetPeakValleyRulePriceCustomName(blockId int, ruleId uint) (customName string, err error) {
|
||||
var peakValleyTimeBlockPriceModel peak_valley_model.PeakValleyTimeBlockPrice
|
||||
err = global.Db.Model(&peak_valley_model.PeakValleyTimeBlockPrice{}).
|
||||
Where("block_id = ?", blockId).
|
||||
Where("peak_valley_rule_id = ?", ruleId).
|
||||
First(&peakValleyTimeBlockPriceModel).Error
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
return peakValleyTimeBlockPriceModel.CustomName, nil
|
||||
}
|
||||
|
||||
// GetPeakValleyRuleTypes 获取规则下 五种类型
|
||||
func (r *PeakValley) GetPeakValleyRuleTypes(ruleId int) (list []*peak_valley_model.PeakValleyRuleType, err error) {
|
||||
// 查询指定规则下的所有不同的 peak_valley_type
|
||||
err = global.Db.Model(&peak_valley_model.PeakValleyTimeBlockPrice{}).
|
||||
//Select("DISTINCT peak_valley_type,custom_name").
|
||||
Select("DISTINCT peak_valley_type,price").
|
||||
Where("peak_valley_rule_id = ?", ruleId).
|
||||
Find(&list).Error
|
||||
return
|
||||
}
|
||||
|
||||
// GetPeakValleyRuleCustomName 规则下 五种类型 + 自定义名称 + 价格
|
||||
func (r *PeakValley) GetPeakValleyRuleCustomName(ruleId int) (list []*peak_valley_model.PeakValleyRuleCustomName, err error) {
|
||||
// 查询指定规则下的所有不同的 peak_valley_type
|
||||
err = global.Db.Model(&peak_valley_model.PeakValleyTimeBlockPrice{}).
|
||||
//Select("DISTINCT peak_valley_type,custom_name").
|
||||
Select("DISTINCT custom_name,peak_valley_type,price").
|
||||
Where("peak_valley_rule_id = ?", ruleId).
|
||||
Find(&list).Error
|
||||
return
|
||||
}
|
||||
|
||||
//type ByCustomNameNumber []*peak_valley_model.PeakValleyRuleCustomName
|
||||
//
|
||||
//func (a ByCustomNameNumber) Len() int { return len(a) }
|
||||
//func (a ByCustomNameNumber) Swap(i, j int) { a[i], a[j] = a[j], a[i] }
|
||||
//func (a ByCustomNameNumber) Less(i, j int) bool {
|
||||
// numI, _ := utils.ExtractNumber(a[i].CustomName)
|
||||
// numJ, _ := utils.ExtractNumber(a[j].CustomName)
|
||||
// return numI < numJ // 升序排序
|
||||
//}
|
||||
Reference in New Issue
Block a user