ITechnicianMomentService.java 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  1. package com.ylx.moment.service;
  2. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  3. import com.baomidou.mybatisplus.extension.service.IService;
  4. import com.ylx.moment.domain.TechnicianMoment;
  5. import com.ylx.massage.domain.dto.EditMomentDTO;
  6. import com.ylx.massage.domain.dto.MomentAuditDTO;
  7. import com.ylx.massage.domain.dto.MomentManageQueryDTO;
  8. import com.ylx.massage.domain.dto.PublishMomentDTO;
  9. import com.ylx.massage.domain.vo.MomentAuditStatusCountVO;
  10. import com.ylx.massage.domain.vo.MomentDetailVO;
  11. import com.ylx.massage.domain.vo.MomentListVO;
  12. import com.ylx.massage.domain.vo.MomentManageVO;
  13. import com.ylx.massage.domain.vo.MomentSimpleDetailVO;
  14. import com.ylx.merchant.domain.dto.MerchantMomentDTO;
  15. import com.ylx.merchant.domain.vo.MomentVO;
  16. import java.math.BigDecimal;
  17. import java.util.List;
  18. /**
  19. * 技师动态服务接口
  20. */
  21. public interface ITechnicianMomentService extends IService<TechnicianMoment> {
  22. /**
  23. * 查询推荐动态列表(不分地区,按日期倒序,同一天按浏览量倒序)
  24. *
  25. * @param pageNum 页码
  26. * @param pageSize 每页数量
  27. * @return 动态列表
  28. */
  29. List<MomentListVO> getRecommendedMoments(Integer pageNum, Integer pageSize);
  30. /**
  31. * 查询同城动态列表(按城市和发布时间倒序)
  32. *
  33. * @param cityCode 城市编码
  34. * @param pageNum 页码
  35. * @param pageSize 每页数量
  36. * @return 动态列表
  37. */
  38. List<MomentListVO> getSameCityMoments(String cityCode, Integer pageNum, Integer pageSize);
  39. /**
  40. * 查询附近动态列表(10km内,按日期倒序,同一天按距离排序)
  41. *
  42. * @param longitude 用户经度
  43. * @param latitude 用户纬度
  44. * @param pageNum 页码
  45. * @param pageSize 每页数量
  46. * @return 动态列表
  47. */
  48. List<MomentListVO> getNearbyMoments(BigDecimal longitude, BigDecimal latitude, Integer pageNum, Integer pageSize);
  49. /**
  50. * 查询动态详情(浏览量+1)
  51. *
  52. * @param momentId 动态ID
  53. * @return 动态详情
  54. */
  55. MomentDetailVO getMomentDetail(Long momentId, BigDecimal longitude, BigDecimal latitude);
  56. /**
  57. * 发布动态或保存草稿
  58. *
  59. * @param dto 发布动态请求对象
  60. * @param openId 技师OpenID
  61. * @return 动态ID
  62. */
  63. Long publishMoment(PublishMomentDTO dto, String openId);
  64. /**
  65. * 编辑动态或保存为草稿
  66. *
  67. * @param dto 编辑动态请求对象
  68. * @param openId 技师OpenID
  69. * @return 动态ID
  70. */
  71. Long editMoment(EditMomentDTO dto, String openId);
  72. /**
  73. * 查询草稿箱列表
  74. *
  75. * @param openId 技师OpenID
  76. * @param pageNum 页码
  77. * @param pageSize 每页数量
  78. * @return 草稿列表
  79. */
  80. Page<MomentListVO> getDraftMoments(String openId, Integer pageNum, Integer pageSize);
  81. /**
  82. * 查询我的动态列表(已发布的动态:审核中+审核通过)
  83. *
  84. * @param openId 技师OpenID
  85. * @param pageNum 页码
  86. * @param pageSize 每页数量
  87. * @return 我的动态列表
  88. */
  89. Page<com.ylx.massage.domain.vo.MyMomentVO> getMyMoments(String openId, Integer pageNum, Integer pageSize);
  90. /**
  91. * 删除我的动态。
  92. *
  93. * @param momentId 动态ID
  94. * @param openId 当前登录商户OpenID
  95. * @return 是否成功
  96. */
  97. Boolean deleteMyMoment(Long momentId, String openId);
  98. /**
  99. * 根据技师ID查询动态列表(已发布的动态:审核中+审核通过)
  100. *
  101. * @param technicianId 技师ID
  102. * @return List<MomentListVO> 技师的动态列表
  103. */
  104. List<MomentListVO> getMomentsByTechnicianId(String technicianId);
  105. /**
  106. * 查询待审核动态列表(管理后台)
  107. *
  108. * @param queryDTO 查询参数
  109. * @return Page<MomentManageVO> 分页结果
  110. */
  111. Page<MomentManageVO> getMomentManageList(MomentManageQueryDTO queryDTO);
  112. /**
  113. * 查询后台动态管理审核状态统计。
  114. *
  115. * @return MomentAuditStatusCountVO 审核状态统计
  116. */
  117. MomentAuditStatusCountVO getManageAuditStatusCount();
  118. /**
  119. * 审核动态(通过/拒绝)
  120. *
  121. * @param momentId 动态ID
  122. * @param auditStatus 审核状态:2-通过,3-拒绝
  123. * @param rejectReason 拒绝原因(拒绝时必填)
  124. * @return 是否成功
  125. */
  126. Boolean auditMoment(MomentAuditDTO dto);
  127. /**
  128. * 更新动态推荐状态
  129. *
  130. * @param momentId 动态ID
  131. * @param isRecommend 是否推荐:0-否,1-是
  132. * @return 是否成功
  133. */
  134. Boolean updateRecommendStatus(Long momentId, Integer isRecommend);
  135. /**
  136. * 更新动态上架状态
  137. *
  138. * @param momentId 动态ID
  139. * @param isList 是否上架:0-否,1-是
  140. * @return 是否成功
  141. */
  142. Boolean updateListStatus(Long momentId, Integer isList);
  143. /**
  144. * 根据动态ID查询动态简要详情(包含媒体URL列表)
  145. *
  146. * @param momentId 动态ID
  147. * @return 动态简要详情
  148. */
  149. MomentSimpleDetailVO getMomentSimpleDetail(Long momentId);
  150. Page<MomentVO> getByMerchantMoment(MerchantMomentDTO dto);
  151. }