teambuying_service.go 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186
  1. package service
  2. import (
  3. "time"
  4. "youngee_b_api/app/dao"
  5. "youngee_b_api/app/entity"
  6. "youngee_b_api/app/vo"
  7. )
  8. type TeamBuyingService struct{}
  9. func (p TeamBuyingService) GetTeamBuyingsByStoreId(param vo.GetAllTeamBuyingParam) (vo.ResultVO, error) {
  10. if param.Page == 0 {
  11. param.Page = 1
  12. }
  13. if param.PageSize == 0 {
  14. param.PageSize = 10
  15. }
  16. var result vo.ResultVO
  17. var teamBuyings []entity.TeamBuying
  18. var err error
  19. var total int64
  20. storeId := param.StoreId
  21. teamBuyings, total, err = (&dao.TeamBuyingDao{}).GetTeamBuyingsByStoreIdAndTeamBuyingTitle(storeId, param.TeamBuyingTitle, param.Page, param.PageSize)
  22. if err != nil {
  23. // 数据库查询error
  24. return result, err
  25. }
  26. var reTeamBuyings []vo.ReTeamBuyingPreview
  27. for _, teamBuying := range teamBuyings {
  28. photoUrl, e := dao.ProductPhotoDAO{}.GetMainPhotoByTeamBuyingID(teamBuying.TeamBuyingID)
  29. if e != nil {
  30. photoUrl = ""
  31. }
  32. reTeamBuying := vo.ReTeamBuyingPreview{
  33. TeamBuyingID: teamBuying.TeamBuyingID,
  34. TeamBuyingName: teamBuying.TeamBuyingName,
  35. TeamBuyingPrice: teamBuying.TeamBuyingPrice,
  36. TeamBuyingCategory: teamBuying.TeamBuyingCategory,
  37. TeamBuyingDetail: teamBuying.TeamBuyingDetail,
  38. CreatedAt: teamBuying.CreatedAt.Format("2006-01-02 15:04:05"),
  39. PhotoUrl: photoUrl,
  40. }
  41. reTeamBuyings = append(reTeamBuyings, reTeamBuying)
  42. }
  43. result = vo.ResultVO{
  44. Page: param.Page,
  45. PageSize: param.PageSize,
  46. Total: total,
  47. Data: reTeamBuyings,
  48. }
  49. return result, nil
  50. }
  51. // 新建团购
  52. func (p TeamBuyingService) CreateTeamBuying(param *vo.TeamBuyingCreateParam) (int64, error) {
  53. newTeamBuying := entity.TeamBuying{
  54. TeamBuyingName: param.TeamBuyingName,
  55. TeamBuyingCategory: param.TeamBuyingCategory,
  56. TeamBuyingPrice: param.TeamBuyingPrice,
  57. PublicCommission: param.PublicCommission,
  58. TeamBuyingDetail: param.TeamBuyingDetail,
  59. TeamBuyingLink: param.TeamBuyingLink,
  60. StoreID: param.StoreId,
  61. CreatedAt: time.Now(),
  62. EnterpriseID: param.EnterpriseId,
  63. SubAccountID: param.SubAccountId,
  64. OperateType: 1,
  65. }
  66. teamBuyingId, err := dao.TeamBuyingDao{}.CreateTeamBuying(newTeamBuying)
  67. if err != nil {
  68. return 0, err
  69. }
  70. err = dao.StoreDao{}.IncrementTeamNum(param.StoreId)
  71. if err != nil {
  72. return 0, err
  73. }
  74. if param.TeamBuyingPhotos != nil {
  75. teamBuyingPhotos := []entity.ProductPhoto{}
  76. for _, photo := range param.TeamBuyingPhotos {
  77. teamBuyingPhoto := entity.ProductPhoto{
  78. PhotoUrl: photo.PhotoUrl,
  79. PhotoUid: photo.PhotoUid,
  80. Symbol: photo.Symbol,
  81. TeamBuyingID: teamBuyingId,
  82. ProductPhotoType: 3,
  83. CreatedAt: time.Now(),
  84. }
  85. teamBuyingPhotos = append(teamBuyingPhotos, teamBuyingPhoto)
  86. }
  87. err = dao.ProductPhotoDAO{}.CreateProductPhoto(teamBuyingPhotos)
  88. if err != nil {
  89. return 0, err
  90. }
  91. }
  92. return teamBuyingId, nil
  93. }
  94. // 团购详情
  95. func (s TeamBuyingService) GetTeamBuyingDetail(param *vo.TeamBuyingSearchParam) (*vo.ReTeamBuyingInfo, error) {
  96. var reTeamBuyingInfo *vo.ReTeamBuyingInfo
  97. teamBuying, err := dao.TeamBuyingDao{}.GetTeamBuyingByID(param.TeamBuyingId)
  98. if err != nil {
  99. return nil, err
  100. }
  101. photoMain, _ := dao.ProductPhotoDAO{}.GetMainPhotoByTeamBuyingID(param.TeamBuyingId)
  102. photosAll, _ := dao.ProductPhotoDAO{}.GetProductPhotoByTeamBuyingID(param.TeamBuyingId)
  103. var photoRotates []vo.Photo
  104. var photoDetails []vo.Photo
  105. for _, photosOne := range photosAll {
  106. if photosOne.Symbol == 2 || photosOne.Symbol == 3 {
  107. photo := vo.Photo{
  108. PhotoUrl: photosOne.PhotoUrl,
  109. Symbol: photosOne.Symbol,
  110. }
  111. photoRotates = append(photoRotates, photo)
  112. } else if photosOne.Symbol == 4 || photosOne.Symbol == 5 {
  113. photo := vo.Photo{
  114. PhotoUrl: photosOne.PhotoUrl,
  115. Symbol: photosOne.Symbol,
  116. }
  117. photoDetails = append(photoDetails, photo)
  118. }
  119. }
  120. reTeamBuyingInfo = &vo.ReTeamBuyingInfo{
  121. TeamBuyingID: teamBuying.StoreID,
  122. TeamBuyingName: teamBuying.TeamBuyingName,
  123. TeamBuyingPrice: teamBuying.TeamBuyingPrice,
  124. PublicCommission: teamBuying.PublicCommission,
  125. TeamBuyingCategory: teamBuying.TeamBuyingCategory,
  126. TeamBuyingDetail: teamBuying.TeamBuyingDetail,
  127. TeamBuyingLink: teamBuying.TeamBuyingLink,
  128. PhotoMain: photoMain,
  129. PhotoRotates: photoRotates,
  130. PhotoDetails: photoDetails,
  131. CreatedAt: teamBuying.CreatedAt.Format("2006-01-02 15:04:05"),
  132. }
  133. return reTeamBuyingInfo, nil
  134. }
  135. // 更新团购
  136. func (p TeamBuyingService) UpdateTeamBuying(param *vo.TeamBuyingUpdateParam) (int64, error) {
  137. newTeamBuying := entity.TeamBuying{
  138. TeamBuyingID: param.TeamBuyingId,
  139. TeamBuyingName: param.TeamBuyingName,
  140. TeamBuyingCategory: param.TeamBuyingCategory,
  141. TeamBuyingPrice: param.TeamBuyingPrice,
  142. PublicCommission: param.PublicCommission,
  143. TeamBuyingDetail: param.TeamBuyingDetail,
  144. TeamBuyingLink: param.TeamBuyingLink,
  145. UpdatedAt: time.Now(),
  146. }
  147. teamBuyingId, err := dao.TeamBuyingDao{}.UpdateTeamBuying(newTeamBuying)
  148. if err != nil {
  149. return 0, err
  150. }
  151. if param.TeamBuyingPhotos != nil {
  152. teamBuyingPhotos := []entity.ProductPhoto{}
  153. for _, photo := range param.TeamBuyingPhotos {
  154. teamBuyingPhoto := entity.ProductPhoto{
  155. PhotoUrl: photo.PhotoUrl,
  156. PhotoUid: photo.PhotoUid,
  157. Symbol: photo.Symbol,
  158. StoreID: teamBuyingId,
  159. ProductPhotoType: 3,
  160. CreatedAt: time.Now(),
  161. }
  162. teamBuyingPhotos = append(teamBuyingPhotos, teamBuyingPhoto)
  163. }
  164. err = dao.ProductPhotoDAO{}.CreateProductPhoto(teamBuyingPhotos)
  165. if err != nil {
  166. return 0, err
  167. }
  168. }
  169. return teamBuyingId, nil
  170. }
  171. // 删除团购
  172. func (p TeamBuyingService) DeleteTeamBuying(param *vo.TeamBuyingUpdateParam) (int64, error) {
  173. err := dao.TeamBuyingDao{}.DeleteTeamBuying(param.TeamBuyingId)
  174. if err != nil {
  175. return 0, err
  176. }
  177. return param.TeamBuyingId, nil
  178. }