You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

168 lines
5.3 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

package ProtoDao
import (
"dsAutoCode/Utils/DbUtil"
"fmt"
)
var db = DbUtil.Engine
//根据接口ID获取结构体ID
func GetStructIdByInterfaceId(interfaceId string) (string, string) {
sql := "select struct_id,file_id from t_proto_interface where interface_id=?"
list, _ := db.SQL(sql, interfaceId).Query().List()
if len(list) > 0 {
structId := list[0]["struct_id"].(string)
fileId := list[0]["file_id"].(string)
return structId, fileId
} else {
return "", ""
}
}
//根据名称获取web接口的相关信息
func GetControllerInfoByName(controllerName string) (string, string, string) {
sql := "select controller_id,http_type,description from t_swagger_controller where controller_name=?"
list, _ := db.SQL(sql, controllerName).Query().List()
if len(list) > 0 {
HttpType := list[0]["http_type"].(string)
controllerId := list[0]["controller_id"].(string)
description := list[0]["description"].(string)
return HttpType, controllerId, description
} else {
return "暂无", "暂无", "暂无描述"
}
}
//根据ID获取结构体信息
func GetStructParameterInfoById(structId string) []map[string]interface{} {
sql := "select struct_parameter_name,struct_parameter_type from t_proto_struct_parameter where struct_id=?"
list, _ := db.SQL(sql, structId).Query().List()
return list
}
//获取指定Controller的信息
func GetControllerInfoById(controllerId string) []map[string]interface{} {
sql := `select controller_parameter_id,controller_id,controller_parameter_name,is_required,controller_parameter_type,controller_parameter_get_type,controller_parameter_description from t_swagger_controller_parameter where controller_id=?`
list, _ := db.SQL(sql, controllerId).Query().List()
return list
}
//根据人员ID获取人员信息
func GetPersonInfoById(personId string) map[string]interface{} {
sql := "select * from t_base_person where person_id=?"
list, _ := db.SQL(sql, personId).Query().List()
if len(list) > 0 {
return list[0]
} else {
return nil
}
}
//根据接口ID获取对应的真实表名称
func GetTrueTableNameFromInterfaceId(interfaceId string) string {
sql := "select file_name from t_proto_files where file_id=(select file_id from t_proto_interface where interface_id=?)"
list, _ := db.SQL(sql, interfaceId).Query().List()
if len(list) > 0 {
return list[0]["file_name"].(string)
} else {
return ""
}
}
//根据文件ID获取ModelArg的结构体ID
func GetStructIdByFileId(fileId string) (bool, string, string) {
sql := "select struct_id from t_proto_struct where file_id=? and struct_name='ModelArg'"
list, _ := db.SQL(sql, fileId).Query().List()
if len(list) > 0 {
return true, "获取成功", list[0]["struct_id"].(string)
} else {
return false, "没有找到此接口对应的ModelArg结构体", ""
}
}
/**
功能根据struct_id获取struct信息
作者:黄海
时间2020-05-14
*/
func GetStructInfoById(structId string) (bool, string, map[string]interface{}) {
sql := "select * from t_proto_struct where struct_id=?"
list, _ := db.SQL(sql, structId).Query().List()
if len(list) > 0 {
return true, "获取成功", list[0]
} else {
return false, "没有找到此接口对应的结构体!", nil
}
}
/**
功能:获取开发者名单
作者:黄海
时间2020-04-23
*/
func ListPerson() []map[string]interface{} {
var db = DbUtil.Engine
sql := "select * from t_base_person"
list, _ := db.SQL(sql).Query().List()
return list
}
/**
功用:绑定接口下拉框
作者:黄海
时间2020-04-23
*/
func BindInterfaceList() []map[string]interface{} {
sql := "select interface_id,interface_name from t_proto_interface"
var db = DbUtil.Engine
list, _ := db.SQL(sql).Query().List()
return list
}
/**
功能列举出proto的文件有哪些
作者:黄海
时间2020-04-22
*/
func ListProto(interfaceId string, page int, limit int) ([]map[string]interface{}, int64) {
var db = DbUtil.Engine
//这里写的很不优雅,还有注入式攻击的问题,但考虑是自己使用的工具,就不再强调了~
var condition = " 1=1 and t1.interface_id=" + interfaceId
if len(interfaceId) == 1 {
condition = " 1=1 "
}
sql := `select t1.file_id,t2.file_name,t1.interface_id,t1.struct_id,t3.struct_name,tsc.controller_id
,(select count(1) from t_swagger_controller as tsc where t1.interface_name=tsc.interface_name) as count
,t1.interface_name,tsc.controller_name from t_proto_interface as t1
left join t_swagger_controller as tsc on tsc.interface_name=t1.interface_name inner join t_proto_files as t2 on t1.file_id=t2.file_id inner join t_proto_struct as t3 on t1.struct_id=t3.struct_id
where ` + condition + ` order by t1.file_id,tsc.interface_name, t1.interface_id`
//个数
sqlCount := "select count(1) as c from (" + sql + ") as t1"
list, _ := db.SQL(sqlCount).Query().List()
count := list[0]["c"].(int64)
//返回数据
limitStr := " limit ?,?"
sql += limitStr
list, _ = db.SQL(sql, (page-1)*limit, limit).Query().List()
return list, count
}
/**
功能:获取指定参数结构体下的参数属性
作者:黄海
时间2020-04-22
*/
func GetParameterStructInfo(structId string) []map[string]interface{} {
sql := `select struct_parameter_id,struct_parameter_name,struct_parameter_type,struct_id,is_repeate from t_proto_struct_parameter where struct_id=?`
var db = DbUtil.Engine
list, err := db.SQL(sql, structId).Query().List()
if err != nil {
fmt.Println(err.Error())
}
return list
}