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) Create(req *model.AddBaseProductReq) (err error) {
  44. productData := new(model.BaseProduct)
  45. if err = gconv.Struct(req, productData); err != nil {
  46. return
  47. }
  48. service.SetCreatedInfo(productData, p.GetCxtUserId(), p.GetCxtUserName())
  49. Model := p.Dao.M
  50. res, err := Model.Insert(productData)
  51. if err != nil {
  52. return
  53. }
  54. InsertId, _ := res.LastInsertId()
  55. fmt.Println(InsertId)
  56. return
  57. }
  58. //删掉数据
  59. func (p *productService) DeleteByIds(dicIds []int64) (err error) {
  60. _, err = base.BaseProduct.Fields(base.BaseProduct.Columns.CreatedTime).
  61. Where(base.BaseProduct.Columns.Id+" in (?) ", dicIds).All()
  62. if err != nil {
  63. g.Log().Error(err)
  64. err = gerror.New("没有要删除的数据")
  65. return
  66. }
  67. _, err = p.Dao.Delete(base.BaseProduct.Columns.Id+" in (?) ", dicIds)
  68. if err != nil {
  69. g.Log().Error(err)
  70. err = gerror.New("删除数据失败")
  71. return err
  72. }
  73. return
  74. }
  75. //修改数据
  76. func (p *productService) UpdateById(req *model.UpdateBaseProductReq) (err error) {
  77. //uptime := gtime.New(time.Now())
  78. db := p.Dao.M
  79. record, err := db.FindOne("Id", req.Id)
  80. if err != nil || record.IsEmpty() {
  81. err = gerror.New("该数据不存在")
  82. return err
  83. }
  84. proInfo := record.Map()
  85. fmt.Println(proInfo["created_time"])
  86. productData := new(model.BaseProduct)
  87. if err = gconv.Struct(req, productData); err != nil {
  88. return
  89. }
  90. service.SetUpdatedInfo(productData, p.GetCxtUserId(), p.GetCxtUserName())
  91. _, err = db.FieldsEx(base.BaseProduct.Columns.CreatedTime, base.BaseProduct.Columns.CreatedBy, base.BaseProduct.Columns.CreatedName).
  92. WherePri(base.BaseProduct.Columns.Id, req.Id).Update(productData)
  93. if err != nil {
  94. g.Log().Error(err)
  95. err = gerror.New("修改用户信息失败")
  96. return
  97. }
  98. return
  99. }
  100. //编辑查询单条查询
  101. func (p *productService) GetEntityById(id int64) (product *model.BaseProduct, err error) {
  102. err = p.Dao.Where(base.BaseProduct.Columns.Id, id).Scan(&product)
  103. if err != nil {
  104. g.Log().Error(err)
  105. return nil, gerror.New("获取用户数据失败")
  106. }
  107. return
  108. }