plat_tablecols_config.go 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. package plat
  2. import (
  3. "context"
  4. "database/sql"
  5. "github.com/gogf/gf/util/gconv"
  6. "dashoo.cn/micro/app/dao/plat"
  7. model "dashoo.cn/micro/app/model/plat"
  8. "dashoo.cn/micro/app/service"
  9. )
  10. type TableColsConfigService struct {
  11. *service.ContextService
  12. Dao *plat.PlatTablecolsConfigDao
  13. }
  14. func NewTableColsConfigService(ctx context.Context) (svc *TableColsConfigService, err error) {
  15. svc = new(TableColsConfigService)
  16. if svc.ContextService, err = svc.Init(ctx); err != nil {
  17. return nil, err
  18. }
  19. svc.Dao = plat.NewPlatTablecolsConfigDao(svc.Tenant)
  20. return svc, nil
  21. }
  22. func (s *TableColsConfigService) GetEntityByTable(req *model.SearchPlatTablecolsConfigReq) (config *model.PlatTablecolsConfig, err error) {
  23. config, err = s.Dao.Where(s.Dao.C.UserId, s.GetCxtUserId()).Where(s.Dao.C.Table, req.Table).OrderDesc(s.Dao.C.Id).One()
  24. return
  25. }
  26. func (s *TableColsConfigService) Save(req *model.PlatTablecolsConfigReq) (lastId int64, err error) {
  27. config := new(model.PlatTablecolsConfig)
  28. if err = gconv.Struct(req, config); err != nil {
  29. return
  30. }
  31. config.UserId = s.GetCxtUserId()
  32. // 填充创建信息
  33. service.SetCreatedInfo(config, s.GetCxtUserId(), s.GetCxtUserName())
  34. // 填充更新信息
  35. service.SetUpdatedInfo(config, s.GetCxtUserId(), s.GetCxtUserName())
  36. if config.Id == 0 {
  37. updateId, err := s.Dao.Where(s.Dao.C.UserId, s.GetCxtUserId()).Where(s.Dao.C.Table, req.Table).OrderDesc(s.Dao.C.Id).Value(s.Dao.C.Id)
  38. if err != nil {
  39. return 0, err
  40. }
  41. config.Id = updateId.Int()
  42. }
  43. var result sql.Result
  44. if config.Id != 0 {
  45. updateFieldEx := append(service.UpdateFieldEx, s.Dao.C.UserId)
  46. result, err = s.Dao.FieldsEx(updateFieldEx...).WherePri(config.Id).Data(config).Update()
  47. } else {
  48. result, err = s.Dao.Data(config).Insert()
  49. }
  50. if err != nil {
  51. return
  52. }
  53. lastId, _ = result.LastInsertId()
  54. return
  55. }