package com.ylx.massage.service; import java.util.List; import java.util.Map; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.ylx.common.core.domain.AjaxResult; import com.ylx.common.core.domain.model.LoginUser; import com.ylx.massage.domain.MaProject; import com.ylx.massage.domain.MaTechnician; import com.ylx.massage.domain.dto.*; import com.ylx.massage.domain.vo.*; import com.ylx.massage.domain.dto.MaProjectSaveDto; import com.ylx.massage.domain.dto.MaTechnicianAuditQueryDTO; import com.ylx.massage.domain.dto.MaTechnicianAuditSubmitDTO; import com.ylx.massage.domain.dto.MassageMerchantRecommendDto; import com.ylx.massage.domain.dto.MaTechnicianMerchantAddDTO; import com.ylx.massage.domain.dto.MaTechnicianMerchantQueryDTO; import com.ylx.massage.domain.dto.MaTechnicianPendingAuditSubmitDTO; import com.ylx.massage.domain.vo.MaTechnicianAppAddVo; import com.ylx.massage.domain.vo.MaTechnicianAuditListVO; import com.ylx.massage.domain.vo.MaTechnicianCertificateVO; import com.ylx.massage.domain.vo.MaTechnicianMerchantDetailVO; import com.ylx.massage.domain.vo.MaTechnicianMerchantListVO; import com.ylx.massage.domain.vo.MerchantVo; import com.ylx.project.domain.Project; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; /** * 技师Service接口 * * @author ylx * @date 2024-03-22 */ public interface IMaTechnicianService extends IService { /** * 查询技师 * * @param id 技师主键 * @return 技师 */ public MaTechnician selectMaTechnicianById(Long id); /** * 查询技师列表 * * @param maTechnician 技师 * @return 技师集合 */ public List selectMaTechnicianList(MaTechnician maTechnician); /** * 新增技师 * * @param * @return 结果 */ public int insertMaTechnician(MaTechnicianAppAddVo maTechnicianAppAddVo); /** * 后台新增商户 * * @param dto 新增商户参数 * @param loginUser 当前登录用户 * @return 结果 */ public int insertMerchant(MaTechnicianMerchantAddDTO dto, LoginUser loginUser); /** * 后台编辑商户 * * @param id 商户ID * @param dto 编辑商户参数 * @param loginUser 当前登录用户 * @return 结果 */ public int updateMerchant(Integer id, MaTechnicianMerchantAddDTO dto, LoginUser loginUser); /** * 后台上传商户合同文件 * * @param id 商户ID * @param file 合同文件 * @param loginUser 当前登录用户 * @return 上传结果 */ Integer uploadMerchantContract(Integer id, Map file, LoginUser loginUser); /** * 后台查询商户入驻审核列表 * * @param page 分页参数 * @param dto 查询条件 * @return 商户入驻审核分页列表 */ Page selectMerchantAuditList(Page page, MaTechnicianAuditQueryDTO dto); /** * 商户待入驻提交审核。 * * @param id 商户ID * @param loginUser 当前登录用户 * @return 结果 */ int submitMerchantAudit(Integer id, MaTechnicianAuditSubmitDTO dto, LoginUser loginUser); /** * 后台待审核页面审核通过商户。 * * @param id 商户ID * @param dto 待审核通过参数 * @param loginUser 当前登录用户 * @return 结果 */ int approvePendingMerchantAudit(Integer id, MaTechnicianPendingAuditSubmitDTO dto, LoginUser loginUser); /** * 后台查询商户列表 * * @param page 分页参数 * @param dto 查询条件 * @return 商户分页列表 */ public Page selectMerchantList(Page page, MaTechnicianMerchantQueryDTO dto); /** * 后台查询商户详情 * * @param id 商户ID * @return 商户详情 */ public MaTechnicianMerchantDetailVO selectMerchantDetail(Long id); /** * 后台查询商户证照 * * @param id 商户ID * @return 商户证照 */ MaTechnicianCertificateVO selectMerchantCertificate(Integer id); /** * 修改技师 * * @param * @return 结果 */ public int updateMaTechnician(MaTechnicianAppAddVo maTechnicianAppAddVo); /** * 批量删除技师 * * @param ids 需要删除的技师主键集合 * @return 结果 */ public int deleteMaTechnicianByIds(Long[] ids); /** * 删除技师信息 * * @param id 技师主键 * @return 结果 */ public int deleteMaTechnicianById(Long id); /** * 首页选中的城市是否有开通服务 * * @param areaCode * @return */ Boolean isHasMerchantCity(String areaCode); List getMerchantRecommend(MassageMerchantRecommendDto dto); /** * 申请技师 * * @param req */ void apply(MaTechnicianAppAddVo req); /** * 申请技师文件 * @param req */ void applyFile(MerchantApplyFileDto req); /** * 技师状态切换 * * @param */ Result switchToOffline(Long userId, Boolean forceConfirm); /** * 技师列表 * * @param userId * @param auditStatus * @return */ List selectMaTechnicianListBy(String userId, String auditStatus); /** * 服务项目列表 * * @param typeId * @return */ List selectTechnicianListBy(String typeId); /** * 技师未申请项目列表 * * @param userId * @param typeId * @return */ List getNotApplyList(String userId, String typeId); /** * 申请开通新服务 * @param dto * @return */ int applyForService(MaProjectSaveDto dto); /** * 商户入住信息 * @param userId * @return */ MerchantAuditFile getTechnicianList(Long userId); }