base_product.go 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. package base
  2. import (
  3. "context"
  4. "fmt"
  5. "github.com/gogf/gf/errors/gerror"
  6. "github.com/gogf/gf/frame/g"
  7. "github.com/gogf/gf/util/gconv"
  8. "github.com/gogf/gf/util/gvalid"
  9. "dashoo.cn/micro/app/dao/base"
  10. model "dashoo.cn/micro/app/model/base"
  11. "dashoo.cn/micro/app/service"
  12. )
  13. type productService struct {
  14. *contextService
  15. Dao *base.BaseProductDao
  16. }
  17. func NewProductService(ctx context.Context) (svc *productService, err error) {
  18. svc = new(productService)
  19. if svc.contextService, err = svc.Init(ctx); err != nil {
  20. return nil, err
  21. }
  22. svc.Dao = base.NewBaseProductDao(svc.Tenant)
  23. return svc, nil
  24. }
  25. //产品信息列表
  26. func (p *productService) GetList(req *model.BaseProductSearchReq) (total int, productList []*model.BaseProduct, err error) {
  27. productModel := p.Dao.M
  28. if req.KeyWords != "" {
  29. productModel = productModel.Where("prod_code", req.KeyWords)
  30. }
  31. total, err = productModel.Count()
  32. if err != nil {
  33. g.Log().Error(err)
  34. err = gerror.New("获取总行数失败")
  35. return
  36. }
  37. if req.PageNum == 0 {
  38. req.PageNum = 1
  39. }
  40. err = productModel.Page(req.PageNum, req.PageSize).Order("id asc").Scan(&productList)
  41. return
  42. }
  43. //添加信息
  44. func (p *productService) Create(req *model.AddBaseProductReq) (err error) {
  45. productData := new(model.BaseProduct)
  46. if err = gconv.Struct(req, productData); err != nil {
  47. return
  48. }
  49. service.SetCreatedInfo(productData, p.GetCxtUserId(), p.GetCxtUserName())
  50. Model := p.Dao.M
  51. res, err := Model.Insert(productData)
  52. if err != nil {
  53. return
  54. }
  55. InsertId, _ := res.LastInsertId()
  56. fmt.Println(InsertId)
  57. return
  58. }
  59. //删掉数据
  60. func (p *productService) DeleteByIds(dicIds []int64) (err error) {
  61. _, err = base.BaseProduct.Fields(base.BaseProduct.Columns.CreatedTime).
  62. Where(base.BaseProduct.Columns.Id+" in (?) ", dicIds).All()
  63. if err != nil {
  64. g.Log().Error(err)
  65. err = gerror.New("没有要删除的数据")
  66. return
  67. }
  68. _, err = p.Dao.Delete(base.BaseProduct.Columns.Id+" in (?) ", dicIds)
  69. if err != nil {
  70. g.Log().Error(err)
  71. err = gerror.New("删除数据失败")
  72. return err
  73. }
  74. return
  75. }
  76. //修改数据
  77. func (p *productService) UpdateById(req *model.UpdateBaseProductReq) (err error) {
  78. //uptime := gtime.New(time.Now())
  79. db := p.Dao.M
  80. record, err := db.FindOne("Id", req.Id)
  81. if err != nil || record.IsEmpty() {
  82. err = gerror.New("该数据不存在")
  83. return err
  84. }
  85. gvalid.CheckValue()
  86. g.Validator().CheckValue()
  87. proInfo := record.Map()
  88. fmt.Println(proInfo["created_time"])
  89. productData := new(model.BaseProduct)
  90. if err = gconv.Struct(req, productData); err != nil {
  91. return
  92. }
  93. service.SetUpdatedInfo(productData, p.GetCxtUserId(), p.GetCxtUserName())
  94. _, err = db.FieldsEx(base.BaseProduct.Columns.CreatedTime, base.BaseProduct.Columns.CreatedBy, base.BaseProduct.Columns.CreatedName).
  95. WherePri(base.BaseProduct.Columns.Id, req.Id).Update(productData)
  96. if err != nil {
  97. g.Log().Error(err)
  98. err = gerror.New("修改用户信息失败")
  99. return
  100. }
  101. return
  102. }
  103. //编辑查询单条查询
  104. func (p *productService) GetEntityById(id int64) (product *model.BaseProduct, err error) {
  105. err = p.Dao.Where(base.BaseProduct.Columns.Id, id).Scan(&product)
  106. if err != nil {
  107. g.Log().Error(err)
  108. return nil, gerror.New("获取用户数据失败")
  109. }
  110. return
  111. }