business_contact.go 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. package proj
  2. import (
  3. "context"
  4. custDao "dashoo.cn/micro/app/dao/cust"
  5. projDao "dashoo.cn/micro/app/dao/proj"
  6. projModel "dashoo.cn/micro/app/model/proj"
  7. "dashoo.cn/micro/app/service"
  8. "github.com/gogf/gf/frame/g"
  9. )
  10. type businessContactService struct {
  11. *service.ContextService
  12. Dao *projDao.ProjBusinessContactDao
  13. }
  14. func NewBusinessContactService(ctx context.Context) (svc *businessContactService, err error) {
  15. svc = new(businessContactService)
  16. if svc.ContextService, err = svc.Init(ctx); err != nil {
  17. return nil, err
  18. }
  19. svc.Dao = projDao.NewProjBusinessContactDao(svc.Tenant)
  20. return svc, nil
  21. }
  22. func (p *businessContactService) GetList(req *projModel.BusinessReq) (total int, contactList []*projModel.BusinessContact, err error) {
  23. db := p.Dao.As("bus").LeftJoin(custDao.CustCustomerContact.Table, "contact", "bus.contact_id=contact.id").
  24. Where("bus."+p.Dao.Columns.BusId, req.BusId)
  25. if req.CuctId != 0 {
  26. db = db.Where("contact.cuct_id", req.CuctId)
  27. }
  28. if req.CuctName != "" {
  29. db = db.Where("contact.cuct_name", req.BusId)
  30. }
  31. total, err = db.Count()
  32. if err != nil {
  33. g.Log().Error(err)
  34. return
  35. }
  36. err = db.Fields("bus.id AS id, bus.*, contact.*").Page(req.GetPage()).Order("bus.id desc").Scan(&contactList)
  37. return
  38. }
  39. func (p *businessContactService) Create(req *projModel.BusinessContactReq) (err error) {
  40. contactList := make([]*projModel.ProjBusinessContact, 0)
  41. for _, v := range req.ContactIds {
  42. data := new(projModel.ProjBusinessContact)
  43. data.BusId = req.BusId
  44. data.ContactId = v
  45. data.Remark = req.Remark
  46. service.SetCreatedInfo(data, p.GetCxtUserId(), p.GetCxtUserName())
  47. contactList = append(contactList, data)
  48. }
  49. _, err = p.Dao.Insert(&contactList)
  50. return
  51. }
  52. func (p *businessContactService) DeleteByIds(ids []int64) (err error) {
  53. _, err = p.Dao.WhereIn(projDao.ProjBusinessContact.Columns.Id, ids).Delete()
  54. return
  55. }