base_product.go 3.1 KB

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