business_contact.go 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  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. )
  9. type businessContactService struct {
  10. *service.ContextService
  11. Dao *projDao.ProjBusinessContactDao
  12. }
  13. func NewBusinessContactService(ctx context.Context) (svc *businessContactService, err error) {
  14. svc = new(businessContactService)
  15. if svc.ContextService, err = svc.Init(ctx); err != nil {
  16. return nil, err
  17. }
  18. svc.Dao = projDao.NewProjBusinessContactDao(svc.Tenant)
  19. return svc, nil
  20. }
  21. func (p *businessContactService) GetList(req *projModel.BusinessReq) (contactList []*projModel.BusinessContact, err error) {
  22. db := p.Dao.As("bus").LeftJoin(custDao.CustCustomerContact.Table, "contact", "bus.contact_id=contact.id").
  23. Where("bus."+p.Dao.Columns.BusId, req.BusId).Fields("bus.id AS id, bus.*, contact.*")
  24. if req.CuctName != "" {
  25. db = db.Where("contact.cuct_name", req.BusId)
  26. }
  27. err = db.Scan(&contactList)
  28. return
  29. }
  30. func (p *businessContactService) Create(req *projModel.BusinessContactReq) (err error) {
  31. contactList := make([]*projModel.ProjBusinessContact, 0)
  32. for _, v := range req.ContactIds {
  33. data := new(projModel.ProjBusinessContact)
  34. data.BusId = req.BusId
  35. data.ContactId = v
  36. data.Remark = req.Remark
  37. service.SetCreatedInfo(data, p.GetCxtUserId(), p.GetCxtUserName())
  38. contactList = append(contactList, data)
  39. }
  40. _, err = p.Dao.Insert(&contactList)
  41. return
  42. }
  43. func (p *businessContactService) DeleteByIds(ids []int64) (err error) {
  44. _, err = p.Dao.WhereIn(projDao.ProjBusinessContact.Columns.Id, ids).Delete()
  45. return
  46. }