base_distributor.go 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  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 distributorService struct {
  16. *service.ContextService
  17. Dao *base.BaseDistributorDao
  18. }
  19. func NewDistributorService(ctx context.Context) (svc *distributorService, err error) {
  20. svc = new(distributorService)
  21. if svc.ContextService, err = svc.Init(ctx); err != nil {
  22. return nil, err
  23. }
  24. svc.Dao = base.NewBaseDistributorDao(svc.Tenant)
  25. return svc, nil
  26. }
  27. //经销商信息列表
  28. func (d *distributorService) GetList(req *model.BaseDistributorSearchReq) (total int, distributorList []*model.DistributorRonp, err error) {
  29. distributorModel := d.Dao.M
  30. distributorModel = distributorModel.Where(d.Dao.Columns.DeletedTime + " is null")
  31. if req.DistCode != "" {
  32. distributorModel = distributorModel.Where(d.Dao.Columns.DistCode+"like ?", "%"+req.DistCode+"%")
  33. }
  34. if req.DistName != "" {
  35. distributorModel = distributorModel.Where(d.Dao.Columns.DistName+"like ?", "%"+req.DistName+"%")
  36. }
  37. if req.BelongSale != "" {
  38. distributorModel = distributorModel.Where(d.Dao.Columns.BelongSale+"like ?", "%"+req.BelongSale+"%")
  39. }
  40. if req.ProvinceId > 0 {
  41. distributorModel = distributorModel.Where(d.Dao.Columns.ProvinceId+" in (?)", req.ProvinceId)
  42. }
  43. g.Log().Info("搜索条件", req.ProvinceId)
  44. total, err = distributorModel.Count()
  45. if err != nil {
  46. g.Log().Error(err)
  47. err = gerror.New("获取总行数失败")
  48. return
  49. }
  50. if req.PageNum == 0 {
  51. req.PageNum = 1
  52. }
  53. err = distributorModel.Page(req.PageNum, req.PageSize).Order("id desc").Scan(&distributorList)
  54. g.Log().Info("返回列表", distributorList)
  55. return
  56. }
  57. //经销商创建
  58. func (d *distributorService) Create(req *model.AddDistributor) (err error) {
  59. DistributorData := new(model.BaseDistributor)
  60. if err = gconv.Struct(req, DistributorData); err != nil {
  61. return
  62. }
  63. service.SetCreatedInfo(DistributorData, d.GetCxtUserId(), d.GetCxtUserName())
  64. Model := d.Dao.M
  65. DistributorData.DistCode = gstr.SubStr(strconv.Itoa(int(gtime.Now().UnixNano()/1e6))+"Code", 0, -5)
  66. res, err := Model.Insert(DistributorData)
  67. if err != nil {
  68. return
  69. }
  70. InsertId, _ := res.LastInsertId()
  71. fmt.Println(InsertId)
  72. return
  73. }
  74. //修改
  75. //修改数据
  76. func (p *distributorService) UpdateById(req *model.UpdateDistributorReq) (err error) {
  77. //uptime := gtime.New(time.Now())
  78. Model := p.Dao.M
  79. record, err := Model.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. distData := new(model.BaseDistributor)
  87. if err = gconv.Struct(req, distData); err != nil {
  88. return
  89. }
  90. service.SetUpdatedInfo(distData, p.GetCxtUserId(), p.GetCxtUserName())
  91. _, err = Model.FieldsEx(p.Dao.Columns.DistCode, p.Dao.Columns.Id, p.Dao.Columns.CreatedName, p.Dao.Columns.CreatedBy, p.Dao.Columns.CreatedTime).WherePri(p.Dao.Columns.Id, req.Id).Update(distData)
  92. if err != nil {
  93. g.Log().Error(err)
  94. err = gerror.New("修改信息失败")
  95. return
  96. }
  97. return
  98. }
  99. //删除
  100. func (p *distributorService) DeleteByIds(req int) (err error) {
  101. Model := p.Dao.M
  102. distributor := new(model.BaseDistributor)
  103. err = Model.Where(base.BaseProduct.Columns.Id, req).Scan(&distributor)
  104. g.Log().Info("DeleteByIds", distributor)
  105. if err != nil || distributor.Id == 0 {
  106. g.Log().Error(err)
  107. err = gerror.New("没有要删除的数据")
  108. return
  109. }
  110. distributor.DeletedTime = gtime.Now()
  111. _, err = Model.FieldsEx(EgionDetailFieldEx).
  112. WherePri(p.Dao.Columns.Id, req).Update(distributor)
  113. if err != nil {
  114. g.Log().Error(err)
  115. err = gerror.New("删除数据失败")
  116. return err
  117. }
  118. return
  119. }