init
This commit is contained in:
89
utils/utils.go
Normal file
89
utils/utils.go
Normal file
@ -0,0 +1,89 @@
|
||||
package utils
|
||||
|
||||
import (
|
||||
"code-review/services/types"
|
||||
"fmt"
|
||||
"strings"
|
||||
)
|
||||
|
||||
// GetString 从 map 中安全获取字符串值
|
||||
func GetString(m map[string]interface{}, key string) string {
|
||||
if v, ok := m[key].(string); ok {
|
||||
return v
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
// GetFloat64 从 map 中安全获取 float64 值
|
||||
func GetFloat64(m map[string]interface{}, key string) float64 {
|
||||
if v, ok := m[key].(float64); ok {
|
||||
return v
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
// GetBool 从 map 中安全获取布尔值
|
||||
func GetBool(m map[string]interface{}, key string) bool {
|
||||
if v, ok := m[key].(bool); ok {
|
||||
return v
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
// GetInt 从 map 中安全获取整数值
|
||||
func GetInt(m map[string]interface{}, key string) int {
|
||||
if v, ok := m[key].(float64); ok {
|
||||
return int(v)
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
// GetIntPtr 从 map 中安全获取整数指针值
|
||||
func GetIntPtr(m map[string]interface{}, key string) *int {
|
||||
if v, ok := m[key].(float64); ok {
|
||||
intVal := int(v)
|
||||
return &intVal
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// GetIntOk 从 map 中获取 int 值,并返回是否存在
|
||||
func GetIntOk(m map[string]interface{}, key string) (int, bool) {
|
||||
if val, ok := m[key]; ok {
|
||||
switch v := val.(type) {
|
||||
case float64:
|
||||
return int(v), true
|
||||
case int:
|
||||
return v, true
|
||||
case int64:
|
||||
return int(v), true
|
||||
}
|
||||
}
|
||||
return 0, false
|
||||
}
|
||||
|
||||
// FormatReviewResult 将审查结果格式化为 Markdown 格式
|
||||
func FormatReviewResult(result *types.ReviewResult) string {
|
||||
var body strings.Builder
|
||||
|
||||
// 添加摘要
|
||||
if result.Summary != "" {
|
||||
body.WriteString("## 审查摘要\n\n")
|
||||
body.WriteString(result.Summary)
|
||||
body.WriteString("\n\n")
|
||||
}
|
||||
|
||||
// 添加详细评论
|
||||
if len(result.Comments) > 0 {
|
||||
body.WriteString("## 详细评论\n\n")
|
||||
for _, comment := range result.Comments {
|
||||
if comment.Path != "全局" {
|
||||
body.WriteString(fmt.Sprintf("### %s\n\n", comment.Path))
|
||||
}
|
||||
body.WriteString(comment.Content)
|
||||
body.WriteString("\n\n")
|
||||
}
|
||||
}
|
||||
|
||||
return body.String()
|
||||
}
|
Reference in New Issue
Block a user