gen_table.go 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191
  1. // ============================================================================
  2. // This is auto-generated by gf cli tool only once. Fill this file as you wish.
  3. // ============================================================================
  4. package gen_table
  5. import (
  6. "gfast/app/model/admin/gen_table_column"
  7. "gfast/library/service"
  8. "github.com/gogf/gf/database/gdb"
  9. "github.com/gogf/gf/errors/gerror"
  10. "github.com/gogf/gf/frame/g"
  11. "github.com/gogf/gf/os/gtime"
  12. "github.com/gogf/gf/text/gstr"
  13. "github.com/gogf/gf/util/gconv"
  14. )
  15. //分页请求参数
  16. type SelectPageReq struct {
  17. TableName string `p:"tableName"` //表名称
  18. TableComment string `p:"tableComment"` //表描述
  19. BeginTime string `p:"beginTime"` //开始时间
  20. EndTime string `p:"endTime"` //结束时间
  21. PageNum int `p:"pageNum"` //当前页码
  22. PageSize int `p:"pageSize"` //每页数
  23. }
  24. //实体扩展
  25. type EntityExtend struct {
  26. TableId int64 `orm:"table_id,primary" json:"table_id"` // 编号
  27. TableName string `orm:"table_name" json:"table_name"` // 表名称
  28. TableComment string `orm:"table_comment" json:"table_comment"` // 表描述
  29. ClassName string `orm:"class_name" json:"class_name"` // 实体类名称
  30. TplCategory string `orm:"tpl_category" json:"tpl_category"` // 使用的模板(crud单表操作 tree树表操作)
  31. PackageName string `orm:"package_name" json:"package_name"` // 生成包路径
  32. ModuleName string `orm:"module_name" json:"module_name"` // 生成模块名
  33. BusinessName string `orm:"business_name" json:"business_name"` // 生成业务名
  34. FunctionName string `orm:"function_name" json:"function_name"` // 生成功能名
  35. FunctionAuthor string `orm:"function_author" json:"function_author"` // 生成功能作者
  36. Options string `orm:"options" json:"options"` // 其它生成选项
  37. CreateBy string `orm:"create_by" json:"create_by"` // 创建者
  38. CreateTime *gtime.Time `orm:"create_time" json:"create_time"` // 创建时间
  39. UpdateBy string `orm:"update_by" json:"update_by"` // 更新者
  40. UpdateTime *gtime.Time `orm:"update_time" json:"update_time"` // 更新时间
  41. Remark string `orm:"remark" json:"remark"` // 备注
  42. TreeCode string `json:"tree_code"` // 树编码字段
  43. TreeParentCode string `json:"tree_parent_code"` // 树父编码字段
  44. TreeName string `json:"tree_name"` // 树名称字段
  45. Columns []*gen_table_column.Entity `json:"columns"` // 表列信息
  46. PkColumn *gen_table_column.Entity `json:"pkColumn"` // 表列信息
  47. }
  48. //查询据库列表
  49. func SelectDbTableList(param *SelectPageReq) (total int, list []*Entity, err error) {
  50. db := g.DB()
  51. sql := " from information_schema.tables where table_schema = (select database())" +
  52. " and table_name NOT LIKE 'qrtz_%' AND table_name NOT LIKE 'gen_%' and table_name NOT IN (select table_name from gen_table) "
  53. if param != nil {
  54. if param.TableName != "" {
  55. sql += gdb.FormatSqlWithArgs(" and lower(table_name) like lower(?)", []interface{}{"%" + param.TableName + "%"})
  56. }
  57. if param.TableComment != "" {
  58. sql += gdb.FormatSqlWithArgs(" and lower(table_comment) like lower(?)", []interface{}{"%" + param.TableComment + "%"})
  59. }
  60. if param.BeginTime != "" {
  61. sql += gdb.FormatSqlWithArgs(" and date_format(create_time,'%y%m%d') >= date_format(?,'%y%m%d') ", []interface{}{param.BeginTime})
  62. }
  63. if param.EndTime != "" {
  64. sql += gdb.FormatSqlWithArgs(" and date_format(create_time,'%y%m%d') <= date_format(?,'%y%m%d') ", []interface{}{param.EndTime})
  65. }
  66. }
  67. countSql := "select count(1) " + sql
  68. total, err = db.GetCount(countSql)
  69. if err != nil {
  70. g.Log().Error(err)
  71. err = gerror.New("读取总表数失败")
  72. return
  73. }
  74. sql = "table_name, table_comment, create_time, update_time " + sql
  75. if param.PageNum == 0 {
  76. param.PageNum = 1
  77. }
  78. if param.PageSize == 0 {
  79. param.PageSize = service.AdminPageNum
  80. }
  81. page := (param.PageNum - 1) * param.PageSize
  82. sql += " order by create_time desc,table_name asc limit " + gconv.String(page) + "," + gconv.String(param.PageSize)
  83. var res gdb.Result
  84. res, err = db.GetAll("select " + sql)
  85. res.Structs(&list)
  86. if err != nil {
  87. g.Log().Error(err)
  88. err = gerror.New("读取数据失败")
  89. }
  90. return
  91. }
  92. //根据条件分页查询数据
  93. func SelectListByPage(param *SelectPageReq) (total int, list []*Entity, err error) {
  94. model := Model
  95. if param != nil {
  96. if param.TableName != "" {
  97. model = model.Where(Columns.TableName+" like ?", "%"+param.TableName+"%")
  98. }
  99. if param.TableComment != "" {
  100. model = model.Where(Columns.TableComment+"like ?", "%"+param.TableComment+"%")
  101. }
  102. if param.BeginTime != "" {
  103. model = model.Where(Columns.CreateTime+" >= ", param.BeginTime)
  104. }
  105. if param.EndTime != "" {
  106. model = model.Where(Columns.CreateTime+" <= ", param.EndTime)
  107. }
  108. total, err = model.Count()
  109. if err != nil {
  110. g.Log().Error(err)
  111. err = gerror.New("获取总行数失败")
  112. return
  113. }
  114. if param.PageNum == 0 {
  115. param.PageNum = 1
  116. }
  117. if param.PageSize == 0 {
  118. param.PageSize = service.AdminPageNum
  119. }
  120. list, err = model.Page(param.PageNum, param.PageSize).Order(Columns.TableId + " asc").All()
  121. if err != nil {
  122. g.Log().Error(err)
  123. err = gerror.New("获取数据失败")
  124. return
  125. }
  126. }
  127. return
  128. }
  129. //查询据库列表
  130. func SelectDbTableListByNames(tableNames []string) ([]*Entity, error) {
  131. db := g.DB()
  132. sql := "select * from information_schema.tables where table_name NOT LIKE 'qrtz_%' and table_name NOT LIKE 'gen_%' " +
  133. " and table_schema = (select database()) "
  134. if len(tableNames) > 0 {
  135. in := gstr.TrimRight(gstr.Repeat("?,", len(tableNames)), ",")
  136. sql += " and " + gdb.FormatSqlWithArgs("table_name in ("+in+")", gconv.SliceAny(tableNames))
  137. }
  138. var result []*Entity
  139. res, err := db.GetAll(sql)
  140. if err != nil {
  141. g.Log().Error(err)
  142. return nil, gerror.New("获取表格信息失败")
  143. }
  144. err = res.Structs(&result)
  145. if err != nil {
  146. g.Log().Error(err)
  147. return nil, gerror.New("表格信息转换失败")
  148. }
  149. return result, err
  150. }
  151. //通过表格ID获取表格信息
  152. func GetInfoById(tableId int64) (entity *Entity, err error) {
  153. entity, err = Model.FindOne(tableId)
  154. if err != nil {
  155. g.Log().Error(err)
  156. err = gerror.New("获取表格信息出错")
  157. }
  158. return
  159. }
  160. func SelectRecordById(tableId int64) (entityExtend *EntityExtend, err error) {
  161. var entity *Entity
  162. entity, err = GetInfoById(tableId)
  163. if err != nil {
  164. return
  165. }
  166. m := gconv.Map(entity)
  167. gconv.Struct(m, &entityExtend)
  168. //表字段数据
  169. var columns []*gen_table_column.Entity
  170. columns, err = gen_table_column.SelectGenTableColumnListByTableId(tableId)
  171. if err != nil {
  172. return
  173. }
  174. entityExtend.Columns = columns
  175. return
  176. }