package com.ylx.massage.service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.ylx.massage.domain.dto.EditMomentDTO; import com.ylx.massage.domain.dto.MomentAuditDTO; import com.ylx.massage.domain.dto.MomentManageQueryDTO; import com.ylx.massage.domain.dto.PublishMomentDTO; import com.ylx.massage.domain.vo.MomentDetailVO; import com.ylx.massage.domain.vo.MomentListVO; import com.ylx.massage.domain.vo.MomentManageVO; import com.ylx.massage.domain.vo.MomentSimpleDetailVO; import java.math.BigDecimal; import java.util.List; /** * 技师动态服务接口 */ public interface ITechnicianMomentService extends IService { /** * 查询推荐动态列表(不分地区,按日期倒序,同一天按浏览量倒序) * * @param pageNum 页码 * @param pageSize 每页数量 * @return 动态列表 */ List getRecommendedMoments(Integer pageNum, Integer pageSize); /** * 查询同城动态列表(按城市和发布时间倒序) * * @param cityCode 城市编码 * @param pageNum 页码 * @param pageSize 每页数量 * @return 动态列表 */ List getSameCityMoments(String cityCode, Integer pageNum, Integer pageSize); /** * 查询附近动态列表(10km内,按日期倒序,同一天按距离排序) * * @param longitude 用户经度 * @param latitude 用户纬度 * @param pageNum 页码 * @param pageSize 每页数量 * @return 动态列表 */ List getNearbyMoments(BigDecimal longitude, BigDecimal latitude, Integer pageNum, Integer pageSize); /** * 查询动态详情(浏览量+1) * * @param momentId 动态ID * @return 动态详情 */ MomentDetailVO getMomentDetail(Long momentId, BigDecimal longitude, BigDecimal latitude); /** * 发布动态或保存草稿 * * @param dto 发布动态请求对象 * @param openId 技师OpenID * @return 动态ID */ Long publishMoment(PublishMomentDTO dto, String openId); /** * 编辑动态或保存为草稿 * * @param dto 编辑动态请求对象 * @param openId 技师OpenID * @return 动态ID */ Long editMoment(EditMomentDTO dto, String openId); /** * 查询草稿箱列表 * * @param openId 技师OpenID * @param pageNum 页码 * @param pageSize 每页数量 * @return 草稿列表 */ Page getDraftMoments(String openId, Integer pageNum, Integer pageSize); /** * 查询我的动态列表(已发布的动态:审核中+审核通过) * * @param openId 技师OpenID * @param pageNum 页码 * @param pageSize 每页数量 * @return 我的动态列表 */ Page getMyMoments(String openId, Integer pageNum, Integer pageSize); /** * 根据技师ID查询动态列表(已发布的动态:审核中+审核通过) * * @param technicianId 技师ID * @return List 技师的动态列表 */ List getMomentsByTechnicianId(String technicianId); /** * 查询待审核动态列表(管理后台) * * @param queryDTO 查询参数 * @return Page 分页结果 */ Page getMomentManageList(MomentManageQueryDTO queryDTO); /** * 审核动态(通过/拒绝) * * @param momentId 动态ID * @param auditStatus 审核状态:2-通过,3-拒绝 * @param rejectReason 拒绝原因(拒绝时必填) * @return 是否成功 */ Boolean auditMoment(MomentAuditDTO dto); /** * 根据动态ID查询动态简要详情(包含媒体URL列表) * * @param momentId 动态ID * @return 动态简要详情 */ MomentSimpleDetailVO getMomentSimpleDetail(Long momentId); }