增加定时任务 处理异常

This commit is contained in:
2024-08-30 11:55:19 +08:00
parent aa3f9e8711
commit bfb284c4cc
30 changed files with 945 additions and 336 deletions

View File

@@ -20,7 +20,7 @@ type PeakValley struct{}
func (r *PeakValley) PeakValleyQuarterPage(req *form.PeakValleyQuarterListReq) map[string]interface{} {
count, list, err := repository.GroupRepositorys.PeakValley.GetPeakValleyQuarterPage(req)
if err != nil {
exception.PanicMsgErr(err, "获取列表失败")
exception.PEM(err, "获取列表失败")
//return
}
ListRsp := make(map[string]interface{})
@@ -32,7 +32,7 @@ func (r *PeakValley) PeakValleyQuarterPage(req *form.PeakValleyQuarterListReq) m
// PeakValleyQuarterEditDetail 获取季度详情-编辑使用
func (r *PeakValley) PeakValleyQuarterEditDetail(req *form.PeakValleyQuarterEditDetailReq) *peak_valley_model.PeakValleyQuarter {
pvq, err := repository.GroupRepositorys.PeakValley.GetOnePeakValleyQuarter(map[string]interface{}{"id": req.Id})
exception.PanicMsgBool(err != nil, "获取季度详情失败")
exception.PBM(err != nil, "获取季度详情失败")
return pvq
}
@@ -44,11 +44,11 @@ func (r *PeakValley) CreatePeakValleyQuarter(req *form.CreatePeakValleyQuarterRe
pvq.Rid = req.RuleId
startTime, err := time.Parse("2006-01-02", req.StartTime)
endTime, err := time.Parse("2006-01-02", req.EndTime)
exception.PanicMsgBool(err != nil, "时间解析失败")
exception.PBM(err != nil, "时间解析失败")
pvq.StartTime = startTime
pvq.EndTime = endTime
err = repository.GroupRepositorys.PeakValley.CreatePeakValleyQuarter(pvq)
exception.PanicMsgBool(err != nil, "创建季度失败")
exception.PBM(err != nil, "创建季度失败")
return
}
@@ -56,16 +56,16 @@ func (r *PeakValley) CreatePeakValleyQuarter(req *form.CreatePeakValleyQuarterRe
func (r *PeakValley) UpdatePeakValleyQuarter(req *form.UpdatePeakValleyQuarterReq) {
var err error
pvq, err := repository.GroupRepositorys.PeakValley.GetOnePeakValleyQuarter(map[string]interface{}{"id": req.Id})
exception.PanicMsgBool(err != nil, "修改季度失败")
exception.PBM(err != nil, "修改季度失败")
startTime, err := time.Parse("2006-01-02", req.StartTime)
endTime, err := time.Parse("2006-01-02", req.EndTime)
exception.PanicMsgBool(err != nil, "时间解析失败")
exception.PBM(err != nil, "时间解析失败")
pvq.QuarterName = req.QuarterName
pvq.Rid = req.RuleId
pvq.StartTime = startTime
pvq.EndTime = endTime
err = repository.GroupRepositorys.PeakValley.UpdatePeakValleyQuarter(pvq)
exception.PanicMsgBool(err != nil, "修改季度失败")
exception.PBM(err != nil, "修改季度失败")
return
}
@@ -90,15 +90,15 @@ func (r *PeakValley) CreatePeakValleyRule(req *form.CreatePeakValleyRuleReq) {
if rec := recover(); rec != nil {
tx.Rollback() // 如果发生错误,回滚事务
fmt.Println("事务回滚")
exception.PanicMsg(rec)
exception.PM(rec)
} else if err != nil {
tx.Rollback() // 错误时回滚事务
fmt.Println("事务回滚")
exception.PanicMsgErr(err, err.Error())
exception.PEM(err, err.Error())
} else {
err = tx.Commit().Error // 提交事务
if err != nil {
exception.PanicMsgErr(err, "事务提交失败")
exception.PEM(err, "事务提交失败")
}
}
}()
@@ -180,15 +180,15 @@ func (r *PeakValley) UpdatePeakValleyRule(req *form.UpdatePeakValleyRuleReq) {
if rec := recover(); rec != nil {
tx.Rollback() // 如果发生错误,回滚事务
fmt.Println("事务回滚1", rec)
exception.PanicMsg(rec)
exception.PM(rec)
} else if err != nil {
tx.Rollback() // 错误时回滚事务
fmt.Println("事务回滚2", err)
exception.PanicMsgErr(err, err.Error())
exception.PEM(err, err.Error())
} else {
err = tx.Commit().Error // 提交事务
if err != nil {
exception.PanicMsgErr(err, "事务提交失败")
exception.PEM(err, "事务提交失败")
}
}
}()
@@ -235,7 +235,7 @@ func (r *PeakValley) UpdatePeakValleyRule(req *form.UpdatePeakValleyRuleReq) {
return
}
timeBlockIds, err = repository.GroupRepositorys.PeakValley.GetTimeBlockIdsByTimeBlock(tx, uint(start), uint(end))
exception.PanicMsgBool(err != nil, "获取时间区块ID列表失败")
exception.PBM(err != nil, "获取时间区块ID列表失败")
timeBlockIdsMap[item.StartTime+item.EndTime] = timeBlockIds
}
if total < peak_valley_model.MinutesInADay {
@@ -273,7 +273,7 @@ func (r *PeakValley) UpdatePeakValleyRule(req *form.UpdatePeakValleyRuleReq) {
func (r *PeakValley) GetPeakValleyRulePage(req *form.PeakValleyRuleListReq) map[string]interface{} {
count, list, err := repository.GroupRepositorys.PeakValley.GetPeakValleyRulePage(req)
if err != nil {
exception.PanicMsgErr(err, "获取列表失败")
exception.PEM(err, "获取列表失败")
//return
}
ListRsp := make(map[string]interface{})
@@ -287,23 +287,23 @@ func (r *PeakValley) PeakValleyRuleDetail(req *form.PeakValleyRuleDetailReq) map
// 获取分了多少个时间段 以及每个时间段的自定义名称 峰谷类型
ruleTypes, err := repository.GroupRepositorys.PeakValley.GetPeakValleyRuleTypes(req.RuleId)
fmt.Println(ruleTypes)
exception.PanicMsgBool(err != nil, "获取规则区块类型失败1")
exception.PBM(err != nil, "获取规则区块类型失败1")
// 查询指定规则 指定峰谷类型的区块
for idx, ruleType := range ruleTypes {
// 查询当前类型的时间区块
typeBlockList, err := repository.GroupRepositorys.PeakValley.GetPeakValleyRulePriceByTypeAndRuleID(uint(req.RuleId), ruleType.PeakValleyType)
exception.PanicMsgBool(err != nil, "获取规则区块类型失败2")
exception.PBM(err != nil, "获取规则区块类型失败2")
// 根据连贯性 小区块 组合成大区块 (一个区块 或者多个区块)
blocks := utils.SplitIntoGroups(typeBlockList)
for _, block := range blocks {
maxBlockId, minBlockId, err := utils.GetSplitIntMaxMin(block)
exception.PanicMsgBool(err != nil, "获取规则区块类型失败3")
exception.PBM(err != nil, "获取规则区块类型失败3")
customName, err := repository.GroupRepositorys.PeakValley.GetPeakValleyRulePriceCustomName(minBlockId, uint(req.RuleId))
exception.PanicMsgBool(err != nil, "获取规则区块类型失败4")
exception.PBM(err != nil, "获取规则区块类型失败4")
startTime, err := repository.GroupRepositorys.PeakValley.GetBlockStartTime(minBlockId)
exception.PanicMsgBool(err != nil, "获取规则区块类型失败5")
exception.PBM(err != nil, "获取规则区块类型失败5")
endTime, err := repository.GroupRepositorys.PeakValley.GetBlockEndTime(maxBlockId)
exception.PanicMsgBool(err != nil, "获取规则区块类型失败6")
exception.PBM(err != nil, "获取规则区块类型失败6")
startTimeStr := fmt.Sprintf("%02d:%02d", startTime/60, startTime%60)
endTimeStr := fmt.Sprintf("%02d:%02d", endTime/60, endTime%60)
ruleTimeBlock := peak_valley_model.RuleTimeBlock{
@@ -326,21 +326,21 @@ func (r *PeakValley) PeakValleyRuleDetail(req *form.PeakValleyRuleDetailReq) map
// PeakValleyRuleEditDetail 获取规则详情-编辑使用
func (r *PeakValley) PeakValleyRuleEditDetail(req *form.PeakValleyRuleEditDetailReq) map[string]interface{} {
pvr, err := repository.GroupRepositorys.PeakValley.GetOnePeakValleyRule(map[string]interface{}{"rule_id": req.RuleId})
exception.PanicMsgBool(err != nil, "获取规则详情失败")
exception.PBM(err != nil, "获取规则详情失败")
// 获取分了多少个时间段 以及每个时间段的自定义名称 峰谷类型
customNames, err := repository.GroupRepositorys.PeakValley.GetPeakValleyRuleCustomName(req.RuleId)
exception.PanicMsgBool(err != nil, "获取规则区块类型失败1")
exception.PBM(err != nil, "获取规则区块类型失败1")
// 查询指定规则 指定峰谷类型的区块
for idx, customName := range customNames {
// 查询当前类型的时间区块
customNameBlockList, err := repository.GroupRepositorys.PeakValley.GetPeakValleyRulePriceByCustomNameAndRuleID(uint(req.RuleId), customName.CustomName)
exception.PanicMsgBool(err != nil, "获取规则区块类型失败2")
exception.PBM(err != nil, "获取规则区块类型失败2")
maxBlockId, minBlockId, err := utils.GetSplitIntMaxMin(customNameBlockList)
exception.PanicMsgBool(err != nil, "获取规则区块类型失败3")
exception.PBM(err != nil, "获取规则区块类型失败3")
startTime, err := repository.GroupRepositorys.PeakValley.GetBlockStartTime(minBlockId)
exception.PanicMsgBool(err != nil, "获取规则区块类型失败4")
exception.PBM(err != nil, "获取规则区块类型失败4")
endTime, err := repository.GroupRepositorys.PeakValley.GetBlockEndTime(maxBlockId)
exception.PanicMsgBool(err != nil, "获取规则区块类型失败5")
exception.PBM(err != nil, "获取规则区块类型失败5")
startTimeStr := fmt.Sprintf("%02d:%02d", startTime/60, startTime%60)
endTimeStr := fmt.Sprintf("%02d:%02d", endTime/60, endTime%60)
//dump.P(customNameBlockList)