|
@@ -4,12 +4,15 @@ import cn.binarywang.wx.miniapp.api.WxMaService;
|
|
|
import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
|
|
import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
|
|
|
import cn.binarywang.wx.miniapp.bean.WxMaUserInfo;
|
|
import cn.binarywang.wx.miniapp.bean.WxMaUserInfo;
|
|
|
import com.izouma.nineth.config.Constants;
|
|
import com.izouma.nineth.config.Constants;
|
|
|
|
|
+import com.izouma.nineth.domain.Follow;
|
|
|
import com.izouma.nineth.domain.User;
|
|
import com.izouma.nineth.domain.User;
|
|
|
import com.izouma.nineth.dto.PageQuery;
|
|
import com.izouma.nineth.dto.PageQuery;
|
|
|
|
|
+import com.izouma.nineth.dto.UserDTO;
|
|
|
import com.izouma.nineth.dto.UserRegister;
|
|
import com.izouma.nineth.dto.UserRegister;
|
|
|
import com.izouma.nineth.enums.AuthStatus;
|
|
import com.izouma.nineth.enums.AuthStatus;
|
|
|
import com.izouma.nineth.enums.AuthorityName;
|
|
import com.izouma.nineth.enums.AuthorityName;
|
|
|
import com.izouma.nineth.exception.BusinessException;
|
|
import com.izouma.nineth.exception.BusinessException;
|
|
|
|
|
+import com.izouma.nineth.repo.FollowRepo;
|
|
|
import com.izouma.nineth.repo.UserRepo;
|
|
import com.izouma.nineth.repo.UserRepo;
|
|
|
import com.izouma.nineth.security.Authority;
|
|
import com.izouma.nineth.security.Authority;
|
|
|
import com.izouma.nineth.security.JwtTokenUtil;
|
|
import com.izouma.nineth.security.JwtTokenUtil;
|
|
@@ -17,6 +20,7 @@ import com.izouma.nineth.security.JwtUserFactory;
|
|
|
import com.izouma.nineth.service.sms.SmsService;
|
|
import com.izouma.nineth.service.sms.SmsService;
|
|
|
import com.izouma.nineth.service.storage.StorageService;
|
|
import com.izouma.nineth.service.storage.StorageService;
|
|
|
import com.izouma.nineth.utils.JpaUtils;
|
|
import com.izouma.nineth.utils.JpaUtils;
|
|
|
|
|
+import com.izouma.nineth.utils.SecurityUtils;
|
|
|
import lombok.AllArgsConstructor;
|
|
import lombok.AllArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import me.chanjar.weixin.common.error.WxErrorException;
|
|
import me.chanjar.weixin.common.error.WxErrorException;
|
|
@@ -27,14 +31,14 @@ import org.apache.commons.lang3.RandomStringUtils;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.data.domain.Page;
|
|
import org.springframework.data.domain.Page;
|
|
|
|
|
+import org.springframework.data.domain.PageImpl;
|
|
|
import org.springframework.data.jpa.domain.Specification;
|
|
import org.springframework.data.jpa.domain.Specification;
|
|
|
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
|
|
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
|
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
|
import java.text.SimpleDateFormat;
|
|
import java.text.SimpleDateFormat;
|
|
|
-import java.util.Collections;
|
|
|
|
|
-import java.util.Date;
|
|
|
|
|
-import java.util.UUID;
|
|
|
|
|
|
|
+import java.util.*;
|
|
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
@Service
|
|
@Service
|
|
|
@Slf4j
|
|
@Slf4j
|
|
@@ -47,6 +51,8 @@ public class UserService {
|
|
|
private StorageService storageService;
|
|
private StorageService storageService;
|
|
|
private JwtTokenUtil jwtTokenUtil;
|
|
private JwtTokenUtil jwtTokenUtil;
|
|
|
private CaptchaService captchaService;
|
|
private CaptchaService captchaService;
|
|
|
|
|
+ private FollowService followService;
|
|
|
|
|
+ private FollowRepo followRepo;
|
|
|
|
|
|
|
|
public Page<User> all(PageQuery pageQuery) {
|
|
public Page<User> all(PageQuery pageQuery) {
|
|
|
Specification<User> specification = JpaUtils.toSpecification(pageQuery, User.class);
|
|
Specification<User> specification = JpaUtils.toSpecification(pageQuery, User.class);
|
|
@@ -253,4 +259,34 @@ public class UserService {
|
|
|
userRepo.save(user);
|
|
userRepo.save(user);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ public UserDTO toDTO(User user) {
|
|
|
|
|
+ return toDTO(user, true);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public UserDTO toDTO(User user, boolean join) {
|
|
|
|
|
+ UserDTO userDTO = new UserDTO();
|
|
|
|
|
+ BeanUtils.copyProperties(user, userDTO);
|
|
|
|
|
+ if (join) {
|
|
|
|
|
+ if (SecurityUtils.getAuthenticatedUser() != null) {
|
|
|
|
|
+ userDTO.setFollow(followService.isFollow(SecurityUtils.getAuthenticatedUser().getId(), user.getId()));
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ return userDTO;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public List<UserDTO> toDTO(List<User> users) {
|
|
|
|
|
+ return users.stream().parallel().map(user -> {
|
|
|
|
|
+ UserDTO dto = toDTO(user, false);
|
|
|
|
|
+ if (SecurityUtils.getAuthenticatedUser() != null) {
|
|
|
|
|
+ List<Follow> follows = followRepo.findByUserId(SecurityUtils.getAuthenticatedUser().getId());
|
|
|
|
|
+ dto.setFollow(follows.stream().anyMatch(f -> f.getFollowUserId().equals(user.getId())));
|
|
|
|
|
+ }
|
|
|
|
|
+ return dto;
|
|
|
|
|
+ }).collect(Collectors.toList());
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public Page<UserDTO> toDTO(Page<User> users) {
|
|
|
|
|
+ List<UserDTO> userDTOS = toDTO(users.getContent());
|
|
|
|
|
+ return new PageImpl<>(userDTOS, users.getPageable(), users.getTotalElements());
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|