model_info.go 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264
  1. // ============================================================================
  2. // This is auto-generated by gf cli tool only once. Fill this file as you wish.
  3. // ============================================================================
  4. package model_info
  5. import (
  6. "fmt"
  7. "gfast/app/model/admin/model_category"
  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/util/gconv"
  13. )
  14. // AddReq 用于存储新增请求的请求参数
  15. type AddReq struct {
  16. ModelCategoryId uint `p:"modelCategoryId" v:"required|min:1#模型分类id不能为空|模型分类id不能为空"`
  17. ModelName string `p:"modelName" v:"required#模型标识不能为空"`
  18. ModelTitle string `p:"modelTitle" v:"required#模型名称不能为空"`
  19. ModelStatus uint `p:"modelStatus" v:"required#状态不能为空"`
  20. ModelEngine string `p:"modelEngine" `
  21. CreateBy uint64 //添加人
  22. }
  23. // EditReq 用于存储修改请求参数
  24. type EditReq struct {
  25. ModelId int `p:"modelId" v:"required#主键ID不能为空"`
  26. ModelCategoryId int `p:"modelCategoryId" `
  27. ModelName string `p:"modelName" v:"required#模型标识不能为空"`
  28. ModelTitle string `p:"modelTitle" `
  29. ModelStatus int `p:"modelStatus" v:"required#状态不能为空"`
  30. ModelEngine string `p:"modelEngine" `
  31. UpdateBy uint64
  32. }
  33. //模型字段属性修改请求参数
  34. type FieldsAttrReq struct {
  35. ModelId int `p:"modelId" v:"required#主键ID不能为空"`
  36. ModelPk string `p:"modelPk" `
  37. ModelOrder string `p:"modelOrder" `
  38. ModelSort string `p:"modelSort" `
  39. ModelList string `p:"modelList" `
  40. ModelEdit string `p:"modelEdit" `
  41. ModelIndexes string `p:"modelIndexes" `
  42. SearchList string `p:"searchList" `
  43. }
  44. type ListEntity struct {
  45. Entity
  46. CName string `orm:"c_name" json:"c_name" `
  47. }
  48. type StatusSetReq struct {
  49. ModelId uint `p:"modelId" v:"required#模型ID不能为空"`
  50. ModelStatus int `p:"modelStatus" v:"required#状态不能为空"`
  51. }
  52. // SelectPageReq 用于存储分页查询的请求参数
  53. type SelectPageReq struct {
  54. ModelName string `p:"modelName"` //模型标识
  55. ModelTitle string `p:"modelTitle"` //模型名称
  56. ModelStatus string `p"modelStatus"` //模型状态
  57. ModelCategoryId string `p"modelCategoryId"` //模型分类
  58. BeginTime string `p:"beginTime"` //开始时间
  59. EndTime string `p:"endTime"` //结束时间
  60. PageNum int `p:"pageNum"` //当前页码
  61. PageSize int `p:"pageSize"` //每页数
  62. }
  63. type RemoveReq struct {
  64. Ids []int `p:"ids"` //删除id
  65. }
  66. // GetPlugAdByID 根据ID查询记录
  67. func GetByID(id int64) (*Entity, error) {
  68. entity, err := Model.FindOne(id)
  69. if err != nil {
  70. g.Log().Error(err)
  71. err = gerror.New("根据ID查询记录出错")
  72. }
  73. if entity == nil {
  74. err = gerror.New("根据ID未能查询到记录")
  75. }
  76. return entity, nil
  77. }
  78. // AddSave 添加
  79. func AddSave(req *AddReq) error {
  80. if err := ModelExists(req.ModelName, 0); err != nil {
  81. return err
  82. }
  83. entity := new(Entity)
  84. entity.ModelCategoryId = req.ModelCategoryId
  85. entity.ModelName = req.ModelName
  86. entity.ModelTitle = req.ModelTitle
  87. entity.ModelStatus = req.ModelStatus
  88. entity.ModelEngine = req.ModelEngine
  89. entity.CreateBy = gconv.Uint64(req.CreateBy)
  90. time := gconv.Uint64(gtime.Timestamp())
  91. entity.CreateTime = time
  92. entity.UpdateTime = time
  93. result, err := entity.Insert()
  94. if err != nil {
  95. return err
  96. }
  97. _, err = result.LastInsertId()
  98. if err != nil {
  99. return err
  100. }
  101. return nil
  102. }
  103. //判断模型是否存在
  104. func ModelExists(name string, id int) error {
  105. var res *Entity
  106. if id != 0 {
  107. res, _ = Model.Where(Columns.ModelName, name).And(Columns.ModelId+" != ", id).One()
  108. } else {
  109. res, _ = Model.Where(Columns.ModelName, name).One()
  110. }
  111. if res != nil {
  112. return gerror.New("模型标识已经存在")
  113. }
  114. return nil
  115. }
  116. // 删除模型
  117. func DeleteByIds(Ids []int, tx *gdb.TX) error {
  118. _, err := Model.TX(tx).Delete("model_id in(?)", Ids)
  119. if err != nil {
  120. g.Log().Error(err)
  121. return gerror.New("删除失败")
  122. }
  123. return nil
  124. }
  125. // 根据ID来修改信息
  126. func EditSave(req *EditReq) error {
  127. if err := ModelExists(req.ModelName, req.ModelId); err != nil {
  128. return err
  129. }
  130. // 先根据ID来查询要修改的记录
  131. entity, err := GetByID(gconv.Int64(req.ModelId))
  132. if err != nil {
  133. return err
  134. }
  135. // 修改实体
  136. entity.ModelCategoryId = gconv.Uint(req.ModelCategoryId)
  137. entity.ModelName = req.ModelName
  138. entity.ModelTitle = req.ModelTitle
  139. entity.ModelStatus = gconv.Uint(req.ModelStatus)
  140. entity.ModelEngine = req.ModelEngine
  141. entity.UpdateBy = gconv.Uint64(req.UpdateBy)
  142. entity.UpdateTime = gconv.Uint64(gtime.Timestamp())
  143. _, err = entity.Update()
  144. if err != nil {
  145. g.Log().Error(err)
  146. return gerror.New("修改失败")
  147. }
  148. return nil
  149. }
  150. // 分页查询,返回值total总记录数,page当前页
  151. func SelectListByPage(req *SelectPageReq) (total int, page int, list []*ListEntity, err error) {
  152. model := g.DB().Table(Table + " info")
  153. if req != nil {
  154. if req.ModelName != "" {
  155. model.Where("info.model_name like ?", "%"+req.ModelName+"%")
  156. }
  157. if req.ModelTitle != "" {
  158. model.Where("info.model_title like ?", "%"+req.ModelTitle+"%")
  159. }
  160. if req.ModelStatus != "" {
  161. model.Where("info.model_status", gconv.Uint(req.ModelStatus))
  162. }
  163. if req.ModelCategoryId != "" {
  164. model.Where("info.model_category_id", gconv.Uint(req.ModelCategoryId))
  165. }
  166. }
  167. model = model.LeftJoin(model_category.Table+" cate", "cate.c_id=info.model_category_id")
  168. // 查询总记录数(总行数)
  169. total, err = model.Count()
  170. if err != nil {
  171. g.Log().Error(err)
  172. err = gerror.New("获取总记录数失败")
  173. return
  174. }
  175. if req.PageNum == 0 {
  176. req.PageNum = 1
  177. }
  178. page = req.PageNum
  179. if req.PageSize == 0 {
  180. req.PageSize = 10
  181. }
  182. // 分页排序查询
  183. var res gdb.Result
  184. res, err = model.Fields("info.*,cate.c_name").Page(page, req.PageSize).Order("info.model_id asc").All()
  185. if err != nil {
  186. g.Log().Error(err)
  187. err = gerror.New("查询失败")
  188. return
  189. }
  190. err = res.Structs(&list)
  191. if err != nil {
  192. g.Log().Error(err)
  193. err = gerror.New("查询失败")
  194. return
  195. }
  196. return
  197. }
  198. // 获取所有数据
  199. func SelectListAll(req *SelectPageReq) (list []*Entity, err error) {
  200. model := Model
  201. if req != nil {
  202. if req.ModelName != "" {
  203. model.Where("model_name like ?", "%"+req.ModelName+"%")
  204. }
  205. if req.ModelTitle != "" {
  206. model.Where("model_title = ?", req.ModelTitle)
  207. }
  208. }
  209. // 查询
  210. list, err = model.Order("model_id asc").All()
  211. if err != nil {
  212. g.Log().Error(err)
  213. err = gerror.New("查询失败")
  214. return
  215. }
  216. return
  217. }
  218. //设置模型状态
  219. func SetStatus(req *StatusSetReq) error {
  220. if req != nil {
  221. entity, err := Model.Where(Columns.ModelId, req.ModelId).One()
  222. if err != nil {
  223. g.Log().Error(err)
  224. return gerror.New("获取模型信息失败")
  225. }
  226. entity.ModelStatus = gconv.Uint(req.ModelStatus)
  227. _, err = entity.Update()
  228. if err != nil {
  229. g.Log().Error(err)
  230. return gerror.New("设置状态失败")
  231. }
  232. }
  233. return nil
  234. }
  235. //通过模型分类ID获取模型
  236. func GetModelsByCateIds(cateIds []int) (models []*Entity, err error) {
  237. models, err = Model.Fields(fmt.Sprintf("%s,%s,%s", Columns.ModelId, Columns.ModelName, Columns.ModelTitle)).
  238. Where(Columns.ModelCategoryId+" in(?)", cateIds).
  239. Order(Columns.ModelId + " ASC ").FindAll()
  240. if err != nil {
  241. g.Log().Error(err)
  242. err = gerror.New("获取模型信息失败")
  243. }
  244. return
  245. }