package io.hmit.service;

import io.hmit.common.page.PageData;
import io.hmit.common.service.BaseService;
import io.hmit.dto.*;
import io.hmit.entity.UserEntity;
import io.hmit.modules.serviceOrder.dto.PensionOrderDTO;
import io.hmit.modules.serviceOrder.dto.UserAddressDTO;

import java.util.List;
import java.util.Map;

/**
 * 用户
 *
 * @author zsh 408538940@qq.com
 */
public interface UserService extends BaseService<UserEntity> {

    UserEntity getByMobile(String mobile);

    UserEntity getByOpenId(String mobile);

    UserEntity getUserByUserId(Long userId);

    UserInfoDTO getUserDetails(Long userId);

    /**
     * 用户登录
     *
     * @param dto 登录表单
     * @return 返回登录信息
     */
    Map<String, Object> login(LoginDTO dto);

    /**
     * 用户登录
     *
     * @param openid 免登
     * @return 返回登录信息
     */
    Map<String, Object> login(String openid);

    PageData<UserEntity> getOrganizationAllUsers(Map<String, Object> params, Long userId);

    PageData<UserInfoDTO> getOrganizationStaff(Map<String, Object> params, Long userId);

    OrgUserInfoDTO getOrgUserByUserId(Long userId);

    ServiceUserInfoDTO getServiceUserByUserId(Long userId);

    UserRegisterDTO getUserInfoByIdCardNo(Long idCardNo);

    void registerUser(UserRegisterDTO dto);

    List<UserAddressDTO> findUserAddressByUsernameOrMobile(String str);

}
