diff --git a/src/main/java/com/rymcu/forest/dto/ArticleSearchDTO.java b/src/main/java/com/rymcu/forest/dto/ArticleSearchDTO.java index 1e3bb6f..9702853 100644 --- a/src/main/java/com/rymcu/forest/dto/ArticleSearchDTO.java +++ b/src/main/java/com/rymcu/forest/dto/ArticleSearchDTO.java @@ -1,4 +1,4 @@ -package com.rymcu.vertical.dto; +package com.rymcu.forest.dto; import lombok.Data; diff --git a/src/main/java/com/rymcu/forest/dto/NotificationDTO.java b/src/main/java/com/rymcu/forest/dto/NotificationDTO.java index 4384763..d661521 100644 --- a/src/main/java/com/rymcu/forest/dto/NotificationDTO.java +++ b/src/main/java/com/rymcu/forest/dto/NotificationDTO.java @@ -1,6 +1,6 @@ -package com.rymcu.vertical.dto; +package com.rymcu.forest.dto; -import com.rymcu.vertical.entity.Notification; +import com.rymcu.forest.entity.Notification; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/src/main/java/com/rymcu/vertical/service/PermissionService.java b/src/main/java/com/rymcu/vertical/service/PermissionService.java deleted file mode 100644 index bf577d1..0000000 --- a/src/main/java/com/rymcu/vertical/service/PermissionService.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.rymcu.vertical.service; - -import com.rymcu.vertical.core.service.Service; -import com.rymcu.vertical.entity.Permission; -import com.rymcu.vertical.entity.User; - -import java.util.List; - - -/** - * - * @author CodeGenerator - * @date 2018/05/29 - */ -public interface PermissionService extends Service { - - /** - * 获取用户权限 - * @param sysUser - * @return - */ - List selectPermissionByUser(User sysUser); -} diff --git a/src/main/java/com/rymcu/vertical/service/impl/NotificationServiceImpl.java b/src/main/java/com/rymcu/vertical/service/impl/NotificationServiceImpl.java deleted file mode 100644 index 5fc016e..0000000 --- a/src/main/java/com/rymcu/vertical/service/impl/NotificationServiceImpl.java +++ /dev/null @@ -1,135 +0,0 @@ -package com.rymcu.vertical.service.impl; - -import com.rymcu.vertical.core.service.AbstractService; -import com.rymcu.vertical.dto.ArticleDTO; -import com.rymcu.vertical.dto.Author; -import com.rymcu.vertical.dto.NotificationDTO; -import com.rymcu.vertical.entity.Comment; -import com.rymcu.vertical.entity.Follow; -import com.rymcu.vertical.entity.Notification; -import com.rymcu.vertical.entity.User; -import com.rymcu.vertical.mapper.NotificationMapper; -import com.rymcu.vertical.service.*; -import com.rymcu.vertical.util.BeanCopierUtil; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import javax.annotation.Resource; -import java.util.ArrayList; -import java.util.List; -import java.util.Objects; - -/** - * @author ronger - */ -@Service -public class NotificationServiceImpl extends AbstractService implements NotificationService { - - @Resource - private NotificationMapper notificationMapper; - @Resource - private ArticleService articleService; - @Resource - private CommentService commentService; - @Resource - private UserService userService; - @Resource - private FollowService followService; - @Value("${resource.domain}") - private String domain; - - @Override - public List findUnreadNotifications(Integer idUser) { - List list = notificationMapper.selectUnreadNotifications(idUser); - return list; - } - - @Override - public List findNotifications(Integer idUser) { - List list = notificationMapper.selectNotifications(idUser); - List notifications = new ArrayList<>(); - list.forEach(notification -> { - NotificationDTO notificationDTO = genNotification(notification); - notifications.add(notificationDTO); - }); - return notifications; - } - - private NotificationDTO genNotification(Notification notification) { - NotificationDTO notificationDTO = new NotificationDTO(); - BeanCopierUtil.copy(notification, notificationDTO); - ArticleDTO article; - Comment comment; - User user; - Follow follow; - switch (notification.getDataType()) { - case "0": - // 系统公告/帖子 - article = articleService.findArticleDTOById(notification.getDataId(), 0); - notificationDTO.setDataTitle("系统公告"); - notificationDTO.setDataUrl(article.getArticlePermalink()); - user = userService.findById(article.getArticleAuthorId().toString()); - notificationDTO.setAuthor(genAuthor(user)); - break; - case "1": - // 关注 - follow = followService.findById(notification.getDataId().toString()); - notificationDTO.setDataTitle("关注提醒"); - user = userService.findById(follow.getFollowerId().toString()); - notificationDTO.setDataUrl(getFollowLink(follow.getFollowingType(), user.getNickname())); - notificationDTO.setAuthor(genAuthor(user)); - break; - case "2": - // 回帖 - comment = commentService.findById(notification.getDataId().toString()); - article = articleService.findArticleDTOById(comment.getCommentArticleId(), 0); - notificationDTO.setDataTitle(article.getArticleTitle()); - notificationDTO.setDataUrl(comment.getCommentSharpUrl()); - user = userService.findById(comment.getCommentAuthorId().toString()); - notificationDTO.setAuthor(genAuthor(user)); - break; - default: - break; - } - return notificationDTO; - } - - private String getFollowLink(String followingType, String id) { - StringBuilder url = new StringBuilder(); - url.append(domain); - switch (followingType) { - case "0": - url = url.append("/user/").append(id); - break; - default: - url.append("/notification"); - } - return url.toString(); - } - - private Author genAuthor(User user) { - Author author = new Author(); - author.setUserNickname(user.getNickname()); - author.setUserAvatarURL(user.getAvatarUrl()); - author.setIdUser(user.getIdUser()); - return author; - } - - @Override - public Notification findNotification(Integer idUser, Integer dataId, String dataType) { - return notificationMapper.selectNotification(idUser, dataId, dataType); - } - - @Override - @Transactional(rollbackFor = Exception.class) - public Integer save(Integer idUser, Integer dataId, String dataType, String dataSummary) { - return notificationMapper.insertNotification(idUser, dataId, dataType, dataSummary); - } - - @Override - @Transactional(rollbackFor = Exception.class) - public Integer readNotification(Integer id) { - return notificationMapper.readNotification(id); - } -} diff --git a/src/main/java/com/rymcu/vertical/web/api/common/UploadController.java b/src/main/java/com/rymcu/vertical/web/api/common/UploadController.java deleted file mode 100644 index 7c8348e..0000000 --- a/src/main/java/com/rymcu/vertical/web/api/common/UploadController.java +++ /dev/null @@ -1,174 +0,0 @@ -package com.rymcu.vertical.web.api.common; - -import com.rymcu.vertical.core.result.GlobalResult; -import com.rymcu.vertical.core.result.GlobalResultGenerator; -import com.rymcu.vertical.dto.TokenUser; -import com.rymcu.vertical.jwt.def.JwtConstants; -import com.rymcu.vertical.util.FileUtils; -import com.rymcu.vertical.util.UserUtils; -import com.rymcu.vertical.util.Utils; -import com.rymcu.vertical.web.api.exception.ErrorCode; -import com.rymcu.vertical.web.api.exception.BaseApiException; -import org.apache.commons.codec.binary.Base64; -import org.apache.commons.lang.StringUtils; -import org.springframework.util.FileCopyUtils; -import org.springframework.web.bind.annotation.*; -import org.springframework.web.multipart.MultipartFile; - -import javax.servlet.http.HttpServletRequest; -import java.io.File; -import java.io.IOException; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Map; -import java.util.Set; - -/** - * 文件上传控制器 - * - * @author ronger - */ -@RestController -@RequestMapping("/api/v1/upload") -public class UploadController { - - private final static String UPLOAD_SIMPLE_URL = "/api/upload/file"; - private final static String UPLOAD_URL = "/api/upload/file/batch"; - public static final String ctxHeadPicPath = "/usr/local/src/nebula/static"; - - @PostMapping("/file") - public GlobalResult uploadPicture(@RequestParam(value = "file", required = false) MultipartFile multipartFile, @RequestParam(defaultValue = "1") Integer type, HttpServletRequest request) { - if (multipartFile == null) { - return GlobalResultGenerator.genErrorResult("请选择要上传的文件"); - } - String typePath = getTypePath(type); - //图片存储路径 - String dir = ctxHeadPicPath + "/" + typePath; - File file = new File(dir); - if (!file.exists()) { - file.mkdirs();// 创建文件根目录 - } - - String localPath = Utils.getProperty("resource.file-path") + "/" + typePath + "/"; - - String orgName = multipartFile.getOriginalFilename(); - String fileName = System.currentTimeMillis() + "." + FileUtils.getExtend(orgName).toLowerCase(); - - String savePath = file.getPath() + File.separator + fileName; - - Map data = new HashMap(2); - File saveFile = new File(savePath); - try { - FileCopyUtils.copy(multipartFile.getBytes(), saveFile); - data.put("url", localPath + fileName); - } catch (IOException e) { - data.put("message", "上传失败!"); - } - return GlobalResultGenerator.genSuccessResult(data); - - } - - @PostMapping("/file/batch") - public GlobalResult batchFileUpload(@RequestParam(value = "file[]", required = false) MultipartFile[] multipartFiles, @RequestParam(defaultValue = "1") Integer type, HttpServletRequest request) { - String typePath = getTypePath(type); - //图片存储路径 - String dir = ctxHeadPicPath + "/" + typePath; - File file = new File(dir); - if (!file.exists()) { - file.mkdirs();// 创建文件根目录 - } - - String localPath = Utils.getProperty("resource.file-path") + "/" + typePath + "/"; - Map succMap = new HashMap(10); - Set errFiles = new HashSet(); - - for (int i = 0, len = multipartFiles.length; i < len; i++) { - MultipartFile multipartFile = multipartFiles[i]; - String orgName = multipartFile.getOriginalFilename(); - String fileName = System.currentTimeMillis() + "." + FileUtils.getExtend(orgName).toLowerCase(); - - String savePath = file.getPath() + File.separator + fileName; - - File saveFile = new File(savePath); - try { - FileCopyUtils.copy(multipartFile.getBytes(), saveFile); - succMap.put(orgName, localPath + fileName); - } catch (IOException e) { - errFiles.add(orgName); - } - } - Map data = new HashMap(2); - data.put("errFiles", errFiles); - data.put("succMap", succMap); - return GlobalResultGenerator.genSuccessResult(data); - } - - private static String getTypePath(Integer type) { - String typePath; - switch (type) { - case 0: - typePath = "avatar"; - break; - case 1: - typePath = "article"; - break; - case 2: - typePath = "tags"; - break; - default: - typePath = "images"; - } - return typePath; - } - - @GetMapping("/simple/token") - public GlobalResult uploadSimpleToken(HttpServletRequest request) throws BaseApiException { - String authHeader = request.getHeader(JwtConstants.AUTHORIZATION); - if (StringUtils.isBlank(authHeader)) { - throw new BaseApiException(ErrorCode.UNAUTHORIZED); - } - TokenUser tokenUser = UserUtils.getTokenUser(authHeader); - Map map = new HashMap(2); - map.put("uploadToken", tokenUser.getToken()); - map.put("uploadURL", UPLOAD_SIMPLE_URL); - return GlobalResultGenerator.genSuccessResult(map); - } - - @GetMapping("/token") - public GlobalResult uploadToken(HttpServletRequest request) throws BaseApiException { - String authHeader = request.getHeader(JwtConstants.AUTHORIZATION); - if (StringUtils.isBlank(authHeader)) { - throw new BaseApiException(ErrorCode.UNAUTHORIZED); - } - TokenUser tokenUser = UserUtils.getTokenUser(authHeader); - Map map = new HashMap(2); - map.put("uploadToken", tokenUser.getToken()); - map.put("uploadURL", UPLOAD_URL); - return GlobalResultGenerator.genSuccessResult(map); - } - - public static String uploadBase64File(String fileStr, Integer type) { - if (StringUtils.isBlank(fileStr)) { - return ""; - } - String typePath = getTypePath(type); - //图片存储路径 - String dir = ctxHeadPicPath + "/" + typePath; - File file = new File(dir); - if (!file.exists()) { - file.mkdirs();// 创建文件根目录 - } - - String localPath = Utils.getProperty("resource.file-path") + "/" + typePath + "/"; - String fileName = System.currentTimeMillis() + ".png"; - String savePath = file.getPath() + File.separator + fileName; - File saveFile = new File(savePath); - try { - FileCopyUtils.copy(Base64.decodeBase64(fileStr.substring(fileStr.indexOf(",") + 1)), saveFile); - fileStr = localPath + fileName; - } catch (IOException e) { - fileStr = "上传失败!"; - } - return fileStr; - } -} diff --git a/src/main/java/com/rymcu/vertical/web/api/user/UserController.java b/src/main/java/com/rymcu/vertical/web/api/user/UserController.java deleted file mode 100644 index ba2f040..0000000 --- a/src/main/java/com/rymcu/vertical/web/api/user/UserController.java +++ /dev/null @@ -1,72 +0,0 @@ -package com.rymcu.vertical.web.api.user; - -import com.github.pagehelper.PageHelper; -import com.github.pagehelper.PageInfo; -import com.rymcu.vertical.core.result.GlobalResult; -import com.rymcu.vertical.core.result.GlobalResultGenerator; -import com.rymcu.vertical.core.service.log.annotation.VisitLogger; -import com.rymcu.vertical.dto.ArticleDTO; -import com.rymcu.vertical.dto.PortfolioDTO; -import com.rymcu.vertical.dto.UserDTO; -import com.rymcu.vertical.service.ArticleService; -import com.rymcu.vertical.service.PortfolioService; -import com.rymcu.vertical.service.UserService; -import com.rymcu.vertical.util.Utils; -import org.springframework.web.bind.annotation.*; - -import javax.annotation.Resource; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -/** - * @author ronger - */ -@RestController -@RequestMapping("/api/v1/user") -public class UserController { - - @Resource - private UserService userService; - @Resource - private ArticleService articleService; - @Resource - private PortfolioService portfolioService; - - @GetMapping("/{nickname}") - @VisitLogger - public GlobalResult detail(@PathVariable String nickname){ - UserDTO userDTO = userService.findUserDTOByNickname(nickname); - return GlobalResultGenerator.genSuccessResult(userDTO); - } - - @GetMapping("/{nickname}/articles") - public GlobalResult userArticles(@RequestParam(defaultValue = "0") Integer page, @RequestParam(defaultValue = "12") Integer rows, @PathVariable String nickname){ - UserDTO userDTO = userService.findUserDTOByNickname(nickname); - if (userDTO == null){ - return GlobalResultGenerator.genErrorResult("用户不存在!"); - } - PageHelper.startPage(page, rows); - List list = articleService.findUserArticlesByIdUser(userDTO.getIdUser()); - PageInfo pageInfo = new PageInfo(list); - Map map = Utils.getArticlesGlobalResult(pageInfo); - return GlobalResultGenerator.genSuccessResult(map); - } - - @GetMapping("/{nickname}/portfolios") - public GlobalResult userPortfolios(@RequestParam(defaultValue = "0") Integer page, @RequestParam(defaultValue = "12") Integer rows, @PathVariable String nickname){ - UserDTO userDTO = userService.findUserDTOByNickname(nickname); - if (userDTO == null){ - return GlobalResultGenerator.genErrorResult("用户不存在!"); - } - PageHelper.startPage(page, rows); - List list = portfolioService.findUserPortfoliosByUser(userDTO); - PageInfo pageInfo = new PageInfo(list); - Map map = new HashMap(2); - map.put("portfolios", list); - Map pagination = Utils.getPagination(pageInfo); - map.put("pagination", pagination); - return GlobalResultGenerator.genSuccessResult(map); - } - -}