base_product.go 3.3 KB

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