financial_analyst_service.go 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. package financial_analyst
  2. import (
  3. logger "eta/eta_mini_ht_api/common/component/log"
  4. "eta/eta_mini_ht_api/common/utils/page"
  5. financialAnalystDao "eta/eta_mini_ht_api/models/financial_analyst"
  6. )
  7. type FinancialAnalystDTO struct {
  8. Id int
  9. ETAId int
  10. Name string
  11. Position string
  12. InvestmentCertificate string
  13. ProfessionalCertificate string
  14. HeadImgUrl string
  15. Introduction string
  16. Status bool
  17. Deleted bool
  18. }
  19. func GetAnalystList(pageInfo page.PageInfo) (analystsDTO []FinancialAnalystDTO, err error) {
  20. offset := page.StartIndex(pageInfo.Current, pageInfo.PageSize)
  21. analystList, err := financialAnalystDao.GetAnalystList(pageInfo.LatestId, offset, pageInfo.PageSize)
  22. for _, analyst := range analystList {
  23. analystsDTO = append(analystsDTO, convertToBaseDTO(analyst))
  24. }
  25. return
  26. }
  27. func GetAnalystById(id int) (financialAnalyst FinancialAnalystDTO, err error) {
  28. analyst, err := financialAnalystDao.GetAnalystById(id)
  29. if err != nil {
  30. logger.Error("获取研究员失败: %v", err)
  31. return
  32. }
  33. financialAnalyst = convertToBaseDTO(analyst)
  34. return
  35. }
  36. func GetCount() (total int64, latestId int64) {
  37. return financialAnalystDao.GetCount()
  38. }
  39. func GetAnalystByName(name string) (financialAnalyst FinancialAnalystDTO, err error) {
  40. analyst, err := financialAnalystDao.GetAnalystByName(name)
  41. if err != nil {
  42. logger.Error("获取研究员失败: %v", err)
  43. return
  44. }
  45. financialAnalyst = convertToBaseDTO(analyst)
  46. return
  47. }
  48. func SyncAnalyst(list []FinancialAnalystDTO) (err error) {
  49. var financialAnalystList []financialAnalystDao.CrmFinancialAnalyst
  50. for _, dto := range list {
  51. financialAnalyst := convert(dto)
  52. financialAnalystList = append(financialAnalystList, financialAnalyst)
  53. }
  54. return financialAnalystDao.BatchInsertOrUpdate(financialAnalystList)
  55. }
  56. func convert(dto FinancialAnalystDTO) (financialAnalyst financialAnalystDao.CrmFinancialAnalyst) {
  57. var status financialAnalystDao.AnalystStatus
  58. if dto.Status {
  59. status = financialAnalystDao.AnalystStatusEnabled
  60. } else {
  61. status = financialAnalystDao.AnalystStatusDisabled
  62. }
  63. return financialAnalystDao.CrmFinancialAnalyst{
  64. ETAId: dto.ETAId,
  65. Name: dto.Name,
  66. Status: status,
  67. Deleted: dto.Deleted,
  68. }
  69. }
  70. func convertToBaseDTO(financialAnalyst financialAnalystDao.CrmFinancialAnalyst) (dto FinancialAnalystDTO) {
  71. return FinancialAnalystDTO{
  72. Id: financialAnalyst.Id,
  73. ETAId: financialAnalyst.ETAId,
  74. HeadImgUrl: financialAnalyst.HeadImgURL,
  75. Name: financialAnalyst.Name,
  76. Introduction: financialAnalyst.Introduction,
  77. ProfessionalCertificate: financialAnalyst.ProfessionalCertificate,
  78. InvestmentCertificate: financialAnalyst.InvestmentCertificate,
  79. Position: financialAnalyst.Position,
  80. }
  81. }