package kr.wisestone.owl.service; import kr.wisestone.owl.domain.Project; import kr.wisestone.owl.domain.User; import kr.wisestone.owl.domain.Workspace; import kr.wisestone.owl.domain.enumType.SocialType; import kr.wisestone.owl.vo.UserVo; import kr.wisestone.owl.web.condition.UserCondition; import kr.wisestone.owl.web.form.UserForm; import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.ui.Model; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import java.util.List; import java.util.Map; public interface UserService extends AbstractService> { User findByAccount(String account); User addUser(UserForm userForm, MultipartFile profile); List findUser(Map resJsonData, UserCondition condition, Pageable pageable); List findAdmin(); User getUser(Long userId); void detailUser(Map resJsonData, UserCondition userCondition); void modifyUser(UserForm userForm, MultipartFile profile); void modifyPassword(UserForm userForm); void returnEmailPassword(UserForm userForm); ModelAndView getOAuthToken(String code, String state, SocialType socialType, HttpServletRequest request); List findByIdIn(List userIds); void updateLastDefaultWorkspace(Workspace workspace, User user); User findByWorkspaceIdAndManagerYn(Workspace workspace); void updateLastWorkspace(Map resJsonData, UserForm userForm); void updateLastProject(Map resJsonData, UserForm userForm); void updateLastMyWorkspace(User user); void findProjectMember(Map resJsonData, UserCondition userCondition); void withDrawUser(); void autoLogin(String email, HttpServletRequest request); void updateUserSession(); User getUserSession(Map resJsonData, HttpServletRequest httpServletRequest); List findByReservationNotifyTime(); List findByRealTimeNotifyTime(); List> findProjectMember(Project project); void updateLanguage(String language); void sendUserJoinStatisticsEmail(); void sendTotalStatisticsEmail(); List findByAllWorkspace(Map resJsonData, UserCondition condition, Pageable pageable); ModelAndView downloadExcel(Model model); UserVo removeSensitiveUser(Long userId); void updateLastLogin(); boolean useUserLevel(Long id); //ModelAndView downloadExcelEvent(Model model); }