From e9c0475e50edfcb5d4df252fc9c16f7c0fd01c58 Mon Sep 17 00:00:00 2001 From: ronger Date: Sat, 27 Aug 2022 12:15:04 +0800 Subject: [PATCH] =?UTF-8?q?:art:=20=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../exception/AccountExistsException.java | 28 ++++++++ .../exception/NicknameOccupyException.java | 32 +++++++++ .../core/exception/TransactionException.java | 2 +- .../service/ArticleThumbsUpService.java | 3 +- .../forest/service/PortfolioService.java | 24 +++---- .../com/rymcu/forest/service/RoleService.java | 9 +-- .../rymcu/forest/service/TopicService.java | 23 ++++--- .../service/TransactionRecordService.java | 12 ++-- .../com/rymcu/forest/service/UserService.java | 44 ++++++++---- .../impl/ArticleThumbsUpServiceImpl.java | 41 +++++------- .../service/impl/PortfolioServiceImpl.java | 59 ++++++---------- .../forest/service/impl/RoleServiceImpl.java | 9 ++- .../service/impl/SponsorServiceImpl.java | 35 +++++----- .../forest/service/impl/TagServiceImpl.java | 6 +- .../forest/service/impl/TopicServiceImpl.java | 21 +++--- .../impl/TransactionRecordServiceImpl.java | 8 +-- .../forest/service/impl/UserServiceImpl.java | 67 ++++++++++--------- .../forest/web/api/admin/AdminController.java | 42 ++++++------ .../web/api/article/ArticleController.java | 16 ++++- .../api/bank/TransactionRecordController.java | 4 +- .../web/api/common/CommonApiController.java | 36 +++++----- .../api/portfolio/PortfolioController.java | 63 ++++++++++++----- .../web/api/user/UserInfoController.java | 44 ++++++------ 23 files changed, 361 insertions(+), 267 deletions(-) create mode 100644 src/main/java/com/rymcu/forest/core/exception/AccountExistsException.java create mode 100644 src/main/java/com/rymcu/forest/core/exception/NicknameOccupyException.java diff --git a/src/main/java/com/rymcu/forest/core/exception/AccountExistsException.java b/src/main/java/com/rymcu/forest/core/exception/AccountExistsException.java new file mode 100644 index 0000000..fe97f41 --- /dev/null +++ b/src/main/java/com/rymcu/forest/core/exception/AccountExistsException.java @@ -0,0 +1,28 @@ +package com.rymcu.forest.core.exception; + +import org.apache.shiro.authc.AccountException; + +/** + * Created on 2022/8/25 19:27. + * + * @author ronger + * @email ronger-x@outlook.com + */ +public class AccountExistsException extends AccountException { + private static final long serialVersionUID = 3206734387536223284L; + + public AccountExistsException() { + } + + public AccountExistsException(String message) { + super(message); + } + + public AccountExistsException(String message, Throwable cause) { + super(message, cause); + } + + public AccountExistsException(Throwable cause) { + super(cause); + } +} diff --git a/src/main/java/com/rymcu/forest/core/exception/NicknameOccupyException.java b/src/main/java/com/rymcu/forest/core/exception/NicknameOccupyException.java new file mode 100644 index 0000000..90b281f --- /dev/null +++ b/src/main/java/com/rymcu/forest/core/exception/NicknameOccupyException.java @@ -0,0 +1,32 @@ +package com.rymcu.forest.core.exception; + +/** + * Created on 2022/8/25 19:11. + * + * @author ronger + * @email ronger-x@outlook.com + */ +public class NicknameOccupyException extends BusinessException { + + private static final long serialVersionUID = 3206744387536223284L; + + public NicknameOccupyException() { + } + + public NicknameOccupyException(String message) { + super(message); + } + + public NicknameOccupyException(String message, Throwable cause) { + super(message, cause); + } + + public NicknameOccupyException(Throwable cause) { + super(cause); + } + + public NicknameOccupyException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { + super(message, cause, enableSuppression, writableStackTrace); + } + +} diff --git a/src/main/java/com/rymcu/forest/core/exception/TransactionException.java b/src/main/java/com/rymcu/forest/core/exception/TransactionException.java index 5ecb5dd..ddbb8ee 100644 --- a/src/main/java/com/rymcu/forest/core/exception/TransactionException.java +++ b/src/main/java/com/rymcu/forest/core/exception/TransactionException.java @@ -5,7 +5,7 @@ import com.rymcu.forest.enumerate.TransactionCode; /** * @author ronger */ -public class TransactionException extends Exception { +public class TransactionException extends BusinessException { private int code; diff --git a/src/main/java/com/rymcu/forest/service/ArticleThumbsUpService.java b/src/main/java/com/rymcu/forest/service/ArticleThumbsUpService.java index bfe17d8..8c71913 100644 --- a/src/main/java/com/rymcu/forest/service/ArticleThumbsUpService.java +++ b/src/main/java/com/rymcu/forest/service/ArticleThumbsUpService.java @@ -13,7 +13,6 @@ public interface ArticleThumbsUpService extends Service { * * @param articleThumbsUp * @return - * @throws BaseApiException */ - String thumbsUp(ArticleThumbsUp articleThumbsUp) throws Exception; + int thumbsUp(ArticleThumbsUp articleThumbsUp); } diff --git a/src/main/java/com/rymcu/forest/service/PortfolioService.java b/src/main/java/com/rymcu/forest/service/PortfolioService.java index 120d0ed..ccf7a10 100644 --- a/src/main/java/com/rymcu/forest/service/PortfolioService.java +++ b/src/main/java/com/rymcu/forest/service/PortfolioService.java @@ -1,7 +1,9 @@ package com.rymcu.forest.service; import com.github.pagehelper.PageInfo; +import com.rymcu.forest.core.exception.ServiceException; import com.rymcu.forest.core.service.Service; +import com.rymcu.forest.dto.ArticleDTO; import com.rymcu.forest.dto.PortfolioArticleDTO; import com.rymcu.forest.dto.PortfolioDTO; import com.rymcu.forest.dto.UserDTO; @@ -35,35 +37,34 @@ public interface PortfolioService extends Service { * @throws BaseApiException * @return */ - Portfolio postPortfolio(Portfolio portfolio) throws BaseApiException; + Portfolio postPortfolio(Portfolio portfolio); /** * 查询作品集下未绑定文章 - * * @param page * @param rows * @param searchText * @param idPortfolio + * @param idUser * @return - * @throws BaseApiException */ - PageInfo findUnbindArticles(Integer page, Integer rows, String searchText, Long idPortfolio) throws Exception; + PageInfo findUnbindArticles(Integer page, Integer rows, String searchText, Long idPortfolio, Long idUser); /** * 绑定文章 - * * @param portfolioArticle * @return + * @throws ServiceException */ - boolean bindArticle(PortfolioArticleDTO portfolioArticle) throws Exception; + boolean bindArticle(PortfolioArticleDTO portfolioArticle) throws ServiceException; /** * 更新文章排序号 - * * @param portfolioArticle * @return + * @throws ServiceException */ - boolean updateArticleSortNo(PortfolioArticleDTO portfolioArticle) throws Exception; + boolean updateArticleSortNo(PortfolioArticleDTO portfolioArticle) throws ServiceException; /** * 取消绑定文章 @@ -71,8 +72,9 @@ public interface PortfolioService extends Service { * @param idPortfolio * @param idArticle * @return + * @throws ServiceException */ - boolean unbindArticle(Long idPortfolio, Long idArticle) throws Exception; + boolean unbindArticle(Long idPortfolio, Long idArticle) throws ServiceException; /** @@ -82,10 +84,8 @@ public interface PortfolioService extends Service { * @param idUser * @param roleWeights * @return - * @throws BaseApiException - * @throws IllegalAccessException */ - boolean deletePortfolio(Long idPortfolio, Long idUser, Integer roleWeights) throws BaseApiException, IllegalAccessException; + boolean deletePortfolio(Long idPortfolio, Long idUser, Integer roleWeights); /** diff --git a/src/main/java/com/rymcu/forest/service/RoleService.java b/src/main/java/com/rymcu/forest/service/RoleService.java index 3103fba..e8fca74 100644 --- a/src/main/java/com/rymcu/forest/service/RoleService.java +++ b/src/main/java/com/rymcu/forest/service/RoleService.java @@ -1,5 +1,6 @@ package com.rymcu.forest.service; +import com.rymcu.forest.core.exception.ServiceException; import com.rymcu.forest.core.service.Service; import com.rymcu.forest.entity.Role; import com.rymcu.forest.entity.User; @@ -30,18 +31,18 @@ public interface RoleService extends Service { /** * 更新用户状态 - * * @param idRole * @param status * @return + * @throws ServiceException */ - boolean updateStatus(Long idRole, String status) throws Exception; + boolean updateStatus(Long idRole, String status) throws ServiceException; /** * 添加/更新角色 - * * @param role * @return + * @throws ServiceException */ - boolean saveRole(Role role) throws Exception; + boolean saveRole(Role role) throws ServiceException; } diff --git a/src/main/java/com/rymcu/forest/service/TopicService.java b/src/main/java/com/rymcu/forest/service/TopicService.java index 7bb5641..6cbe3dc 100644 --- a/src/main/java/com/rymcu/forest/service/TopicService.java +++ b/src/main/java/com/rymcu/forest/service/TopicService.java @@ -1,7 +1,8 @@ package com.rymcu.forest.service; -import com.github.pagehelper.PageInfo; +import com.rymcu.forest.core.exception.ServiceException; import com.rymcu.forest.core.service.Service; +import com.rymcu.forest.dto.admin.TagDTO; import com.rymcu.forest.dto.admin.TopicTagDTO; import com.rymcu.forest.entity.Tag; import com.rymcu.forest.entity.Topic; @@ -15,15 +16,17 @@ public interface TopicService extends Service { /** * 获取导航主题数据 + * * @return - * */ + */ List findTopicNav(); /** * 根据 topicUri 获取主题信息及旗下标签数据 + * * @param topicUri 主题 URI * @return - * */ + */ Topic findTopicByTopicUri(String topicUri); /** @@ -31,11 +34,13 @@ public interface TopicService extends Service { * * @param topic 主题信息 * @return + * @throws ServiceException */ - Topic saveTopic(Topic topic) throws Exception; + Topic saveTopic(Topic topic) throws ServiceException; /** * 查询未绑定标签 + * * @param idTopic * @param tagTitle * @return @@ -47,24 +52,24 @@ public interface TopicService extends Service { * * @param topicTag * @return + * @throws ServiceException */ - TopicTagDTO bindTopicTag(TopicTagDTO topicTag) throws Exception; + TopicTagDTO bindTopicTag(TopicTagDTO topicTag) throws ServiceException; /** * 取消绑定标签 * * @param topicTag * @return + * @throws ServiceException */ - TopicTagDTO unbindTopicTag(TopicTagDTO topicTag) throws Exception; + TopicTagDTO unbindTopicTag(TopicTagDTO topicTag) throws ServiceException; /** * 获取主题下标签列表 * * @param topicUri - * @param page - * @param rows * @return */ - PageInfo findTagsByTopicUri(String topicUri, Integer page, Integer rows); + List findTagsByTopicUri(String topicUri); } diff --git a/src/main/java/com/rymcu/forest/service/TransactionRecordService.java b/src/main/java/com/rymcu/forest/service/TransactionRecordService.java index 6d8f7e0..33ef0ea 100644 --- a/src/main/java/com/rymcu/forest/service/TransactionRecordService.java +++ b/src/main/java/com/rymcu/forest/service/TransactionRecordService.java @@ -15,9 +15,8 @@ public interface TransactionRecordService extends Service { * 交易 * @param transactionRecord * @return - * @throws Exception */ - TransactionRecord transfer(TransactionRecord transactionRecord) throws Exception; + TransactionRecord transfer(TransactionRecord transactionRecord); /** * 查询指定账户的交易记录 @@ -34,24 +33,21 @@ public interface TransactionRecordService extends Service { * @param formUserId * @param transactionType * @return - * @throws Exception */ - TransactionRecord userTransfer(Long toUserId, Long formUserId, TransactionEnum transactionType) throws Exception; + TransactionRecord userTransfer(Long toUserId, Long formUserId, TransactionEnum transactionType); /** * 社区银行转账/奖励发放 * @param idUser * @param transactionType * @return - * @throws Exception */ - TransactionRecord bankTransfer(Long idUser, TransactionEnum transactionType) throws Exception; + TransactionRecord bankTransfer(Long idUser, TransactionEnum transactionType); /** * 发放新手奖励 * @param transactionRecord * @return - * @throws Exception */ - TransactionRecord newbieRewards(TransactionRecord transactionRecord) throws Exception; + TransactionRecord newbieRewards(TransactionRecord transactionRecord); } diff --git a/src/main/java/com/rymcu/forest/service/UserService.java b/src/main/java/com/rymcu/forest/service/UserService.java index 0dc6fd3..9c74efb 100644 --- a/src/main/java/com/rymcu/forest/service/UserService.java +++ b/src/main/java/com/rymcu/forest/service/UserService.java @@ -12,7 +12,6 @@ import java.util.Map; /** - * * @author CodeGenerator * @date 2018/05/29 */ @@ -20,10 +19,11 @@ public interface UserService extends Service { /** * 通过账号查询用户信息 + * * @param account - * @throws TooManyResultsException * @return User - * */ + * @throws TooManyResultsException + */ User findByAccount(String account) throws TooManyResultsException; /** @@ -34,7 +34,7 @@ public interface UserService extends Service { * @param code 验证码 * @return Map */ - void register(String email, String password, String code) throws ServiceException; + boolean register(String email, String password, String code); /** * 登录接口 @@ -47,9 +47,10 @@ public interface UserService extends Service { /** * 通过 account 获取用户信息接口 + * * @param account 昵称 - * @return UserDTO - * */ + * @return UserDTO + */ UserDTO findUserDTOByAccount(String account); /** @@ -58,8 +59,9 @@ public interface UserService extends Service { * @param code 验证码 * @param password 密码 * @return Map + * @throws ServiceException */ - String forgetPassword(String code, String password) throws ServiceException; + boolean forgetPassword(String code, String password) throws ServiceException; /** * 更新用户角色接口 @@ -67,6 +69,7 @@ public interface UserService extends Service { * @param idUser 用户 id * @param idRole 角色 id * @return Map + * @throws ServiceException */ boolean updateUserRole(Long idUser, Long idRole) throws ServiceException; @@ -76,23 +79,26 @@ public interface UserService extends Service { * @param idUser 用户 id * @param status 状态 * @return Map + * @throws ServiceException */ boolean updateStatus(Long idUser, String status) throws ServiceException; /** * 获取用户信息 + * * @param idUser * @return */ - Map findUserInfo(Long idUser); + UserInfoDTO findUserInfo(Long idUser); /** * 更新用户信息 * * @param user * @return + * @throws ServiceException */ - UserInfoDTO updateUserInfo(UserInfoDTO user) throws Exception; + UserInfoDTO updateUserInfo(UserInfoDTO user) throws ServiceException; /** * 验证昵称是否重复 @@ -101,10 +107,11 @@ public interface UserService extends Service { * @param nickname * @return */ - boolean checkNickname(Long idUser, String nickname) throws ServiceException; + boolean checkNicknameByIdUser(Long idUser, String nickname); /** * 获取用户权限 + * * @param idUser * @return */ @@ -112,6 +119,7 @@ public interface UserService extends Service { /** * 查询作者信息 + * * @param idUser * @return */ @@ -127,6 +135,7 @@ public interface UserService extends Service { /** * 获取用户扩展信息 + * * @param account * @return */ @@ -137,8 +146,9 @@ public interface UserService extends Service { * * @param changeEmailDTO * @return + * @throws ServiceException */ - String updateEmail(ChangeEmailDTO changeEmailDTO) throws ServiceException; + boolean updateEmail(ChangeEmailDTO changeEmailDTO) throws ServiceException; /** * 更新密码 @@ -150,15 +160,25 @@ public interface UserService extends Service { /** * 查询用户列表 + * * @param searchDTO * @return */ List findUsers(UserSearchDTO searchDTO); /** - * 通过邮箱查询用户信息 + * 通过邮箱更新用户最后登录时间 + * * @param email * @return */ Integer updateLastOnlineTimeByEmail(String email); + + /** + * 查询用户扩展信息 + * + * @param idUser + * @return + */ + UserExtend findUserExtendInfo(Long idUser); } diff --git a/src/main/java/com/rymcu/forest/service/impl/ArticleThumbsUpServiceImpl.java b/src/main/java/com/rymcu/forest/service/impl/ArticleThumbsUpServiceImpl.java index 7bfd346..feb2ee1 100644 --- a/src/main/java/com/rymcu/forest/service/impl/ArticleThumbsUpServiceImpl.java +++ b/src/main/java/com/rymcu/forest/service/impl/ArticleThumbsUpServiceImpl.java @@ -4,11 +4,9 @@ import com.rymcu.forest.core.exception.BusinessException; import com.rymcu.forest.core.service.AbstractService; import com.rymcu.forest.entity.Article; import com.rymcu.forest.entity.ArticleThumbsUp; -import com.rymcu.forest.entity.User; import com.rymcu.forest.mapper.ArticleThumbsUpMapper; import com.rymcu.forest.service.ArticleService; import com.rymcu.forest.service.ArticleThumbsUpService; -import com.rymcu.forest.util.UserUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -29,34 +27,25 @@ public class ArticleThumbsUpServiceImpl extends AbstractService @Override @Transactional(rollbackFor = Exception.class) - public String thumbsUp(ArticleThumbsUp articleThumbsUp) throws Exception { - if (Objects.isNull(articleThumbsUp) || Objects.isNull(articleThumbsUp.getIdArticle())) { + public int thumbsUp(ArticleThumbsUp articleThumbsUp) { + int thumbsUpNumber = 1; + Article article = articleService.findById(String.valueOf(articleThumbsUp.getIdArticle())); + if (Objects.isNull(article)) { throw new BusinessException("数据异常,文章不存在!"); } else { - Integer thumbsUpNumber = 1; - Article article = articleService.findById(String.valueOf(articleThumbsUp.getIdArticle())); - if (Objects.isNull(article)) { - throw new BusinessException("数据异常,文章不存在!"); + ArticleThumbsUp thumbsUp = articleThumbsUpMapper.selectOne(articleThumbsUp); + if (Objects.isNull(thumbsUp)) { + // 点赞 + articleThumbsUp.setThumbsUpTime(new Date()); + articleThumbsUpMapper.insertSelective(articleThumbsUp); } else { - User user = UserUtils.getCurrentUserByToken(); - articleThumbsUp.setIdUser(user.getIdUser()); - ArticleThumbsUp thumbsUp = articleThumbsUpMapper.selectOne(articleThumbsUp); - if (Objects.isNull(thumbsUp)) { - articleThumbsUp.setThumbsUpTime(new Date()); - articleThumbsUpMapper.insertSelective(articleThumbsUp); - // 更新文章点赞数 - } else { - articleThumbsUpMapper.deleteByPrimaryKey(thumbsUp.getIdArticleThumbsUp()); - // 更新文章点赞数 - thumbsUpNumber = -1; - } - articleThumbsUpMapper.updateArticleThumbsUpNumber(articleThumbsUp.getIdArticle(), thumbsUpNumber); - if (thumbsUpNumber > 0) { - return "点赞成功"; - } else { - return "已取消点赞"; - } + // 取消点赞 + articleThumbsUpMapper.deleteByPrimaryKey(thumbsUp.getIdArticleThumbsUp()); + thumbsUpNumber = -1; } + // 更新文章点赞数 + articleThumbsUpMapper.updateArticleThumbsUpNumber(articleThumbsUp.getIdArticle(), thumbsUpNumber); + return thumbsUpNumber; } } } diff --git a/src/main/java/com/rymcu/forest/service/impl/PortfolioServiceImpl.java b/src/main/java/com/rymcu/forest/service/impl/PortfolioServiceImpl.java index c1b622c..7d417fb 100644 --- a/src/main/java/com/rymcu/forest/service/impl/PortfolioServiceImpl.java +++ b/src/main/java/com/rymcu/forest/service/impl/PortfolioServiceImpl.java @@ -4,20 +4,18 @@ import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.rymcu.forest.core.exception.BusinessException; import com.rymcu.forest.core.exception.ServiceException; +import com.rymcu.forest.core.exception.UltraViresException; import com.rymcu.forest.core.service.AbstractService; import com.rymcu.forest.dto.*; import com.rymcu.forest.entity.Portfolio; -import com.rymcu.forest.entity.User; import com.rymcu.forest.lucene.model.PortfolioLucene; import com.rymcu.forest.lucene.util.PortfolioIndexUtil; import com.rymcu.forest.mapper.PortfolioMapper; import com.rymcu.forest.service.ArticleService; import com.rymcu.forest.service.PortfolioService; import com.rymcu.forest.service.UserService; -import com.rymcu.forest.util.UserUtils; import com.rymcu.forest.util.XssUtils; import com.rymcu.forest.web.api.common.UploadController; -import com.rymcu.forest.web.api.exception.BaseApiException; import org.apache.commons.lang.StringUtils; import org.springframework.stereotype.Service; @@ -64,15 +62,12 @@ public class PortfolioServiceImpl extends AbstractService implements } @Override - public Portfolio postPortfolio(Portfolio portfolio) throws BaseApiException { - User user = UserUtils.getCurrentUserByToken(); - assert user != null; + public Portfolio postPortfolio(Portfolio portfolio) { if (StringUtils.isNotBlank(portfolio.getHeadImgType())) { String headImgUrl = UploadController.uploadBase64File(portfolio.getHeadImgUrl(), 0); portfolio.setHeadImgUrl(headImgUrl); } if (portfolio.getIdPortfolio() == null || portfolio.getIdPortfolio() == 0) { - portfolio.setPortfolioAuthorId(user.getIdUser()); portfolio.setCreatedTime(new Date()); portfolio.setUpdatedTime(portfolio.getCreatedTime()); portfolio.setPortfolioDescriptionHtml(XssUtils.filterHtmlCode(portfolio.getPortfolioDescription())); @@ -97,61 +92,47 @@ public class PortfolioServiceImpl extends AbstractService implements } @Override - public PageInfo findUnbindArticles(Integer page, Integer rows, String searchText, Long idPortfolio) throws Exception { - User user = UserUtils.getCurrentUserByToken(); + public PageInfo findUnbindArticles(Integer page, Integer rows, String searchText, Long idPortfolio, Long idUser) { Portfolio portfolio = portfolioMapper.selectByPrimaryKey(idPortfolio); if (portfolio == null) { - throw new ServiceException("该作品集不存在或已被删除!"); + throw new BusinessException("该作品集不存在或已被删除!"); } else { - if (!user.getIdUser().equals(portfolio.getPortfolioAuthorId())) { - throw new ServiceException("非法操作!"); + if (!idUser.equals(portfolio.getPortfolioAuthorId())) { + throw new UltraViresException("非法操作!"); } else { PageHelper.startPage(page, rows); - List articles = articleService.selectUnbindArticles(idPortfolio, searchText, user.getIdUser()); - PageInfo pageInfo = new PageInfo(articles); - return pageInfo; + List articles = articleService.selectUnbindArticles(idPortfolio, searchText, idUser); + return new PageInfo<>(articles); } } } @Override - public boolean bindArticle(PortfolioArticleDTO portfolioArticle) throws Exception { + public boolean bindArticle(PortfolioArticleDTO portfolioArticle) throws ServiceException { Integer count = portfolioMapper.selectCountPortfolioArticle(portfolioArticle.getIdArticle(), portfolioArticle.getIdPortfolio()); if (count.equals(0)) { Integer maxSortNo = portfolioMapper.selectMaxSortNo(portfolioArticle.getIdPortfolio()); - portfolioMapper.insertPortfolioArticle(portfolioArticle.getIdArticle(), portfolioArticle.getIdPortfolio(), maxSortNo); - return true; + Integer result = portfolioMapper.insertPortfolioArticle(portfolioArticle.getIdArticle(), portfolioArticle.getIdPortfolio(), maxSortNo); + if (result == 0) { + throw new ServiceException("更新失败!"); + } } else { - throw new ServiceException("该文章已经在作品集下!!"); + throw new BusinessException("该文章已经在作品集下!!"); } + return true; } @Override - public boolean updateArticleSortNo(PortfolioArticleDTO portfolioArticle) throws Exception { - if (portfolioArticle.getIdPortfolio() == null || portfolioArticle.getIdPortfolio().equals(0)) { - throw new ServiceException("作品集数据异常!"); - } - if (portfolioArticle.getIdArticle() == null || portfolioArticle.getIdArticle().equals(0)) { - throw new ServiceException("文章数据异常!"); - } - if (portfolioArticle.getSortNo() == null) { - throw new ServiceException("排序号不能为空!"); - } + public boolean updateArticleSortNo(PortfolioArticleDTO portfolioArticle) throws ServiceException { Integer result = portfolioMapper.updateArticleSortNo(portfolioArticle.getIdPortfolio(), portfolioArticle.getIdArticle(), portfolioArticle.getSortNo()); - if (result > 0) { + if (result == 0) { throw new ServiceException("更新失败!"); } return true; } @Override - public boolean unbindArticle(Long idPortfolio, Long idArticle) throws Exception { - if (idPortfolio == null || idPortfolio.equals(0)) { - throw new ServiceException("作品集数据异常"); - } - if (idArticle == null || idArticle.equals(0)) { - throw new ServiceException("文章数据异常"); - } + public boolean unbindArticle(Long idPortfolio, Long idArticle) throws ServiceException { Integer result = portfolioMapper.unbindArticle(idPortfolio, idArticle); if (result == 0) { throw new ServiceException("操作失败!"); @@ -160,7 +141,7 @@ public class PortfolioServiceImpl extends AbstractService implements } @Override - public boolean deletePortfolio(Long idPortfolio, Long idUser, Integer roleWeights) throws BaseApiException, IllegalAccessException { + public boolean deletePortfolio(Long idPortfolio, Long idUser, Integer roleWeights) { if (idPortfolio == null || idPortfolio == 0) { throw new IllegalArgumentException("作品集数据异常!"); } @@ -168,7 +149,7 @@ public class PortfolioServiceImpl extends AbstractService implements if (roleWeights > 2) { Portfolio portfolio = portfolioMapper.selectByPrimaryKey(idPortfolio); if (!idUser.equals(portfolio.getPortfolioAuthorId())) { - throw new IllegalAccessException("非法访问!"); + throw new UltraViresException("非法访问!"); } } diff --git a/src/main/java/com/rymcu/forest/service/impl/RoleServiceImpl.java b/src/main/java/com/rymcu/forest/service/impl/RoleServiceImpl.java index c1f8ffd..78860fb 100644 --- a/src/main/java/com/rymcu/forest/service/impl/RoleServiceImpl.java +++ b/src/main/java/com/rymcu/forest/service/impl/RoleServiceImpl.java @@ -26,8 +26,7 @@ public class RoleServiceImpl extends AbstractService implements RoleServic @Override public List selectRoleByUser(User sysUser) { - List roles = roleMapper.selectRoleByIdUser(sysUser.getIdUser()); - return roles; + return roleMapper.selectRoleByIdUser(sysUser.getIdUser()); } @Override @@ -36,8 +35,8 @@ public class RoleServiceImpl extends AbstractService implements RoleServic } @Override - @Transactional - public boolean updateStatus(Long idRole, String status) throws Exception { + @Transactional(rollbackFor = Exception.class) + public boolean updateStatus(Long idRole, String status) throws ServiceException { Integer result = roleMapper.updateStatus(idRole, status); if (result == 0) { throw new ServiceException("更新失败"); @@ -46,7 +45,7 @@ public class RoleServiceImpl extends AbstractService implements RoleServic } @Override - public boolean saveRole(Role role) throws Exception { + public boolean saveRole(Role role) throws ServiceException { Integer result; if (role.getIdRole() == null) { role.setCreatedTime(new Date()); diff --git a/src/main/java/com/rymcu/forest/service/impl/SponsorServiceImpl.java b/src/main/java/com/rymcu/forest/service/impl/SponsorServiceImpl.java index 8418188..c9f2216 100644 --- a/src/main/java/com/rymcu/forest/service/impl/SponsorServiceImpl.java +++ b/src/main/java/com/rymcu/forest/service/impl/SponsorServiceImpl.java @@ -39,25 +39,22 @@ public class SponsorServiceImpl extends AbstractService implements Spon @Override @Transactional(rollbackFor = Exception.class) public boolean sponsorship(Sponsor sponsor) throws Exception { - if (Objects.isNull(sponsor) || Objects.isNull(sponsor.getDataId()) || Objects.isNull(sponsor.getDataType())) { - throw new ServiceException("数据异常"); - } else { - TransactionEnum result = TransactionEnum.findTransactionEnum(sponsor.getDataType()); - BigDecimal money = BigDecimal.valueOf(result.getMoney()); - sponsor.setSponsorshipMoney(money); - User user = UserUtils.getCurrentUserByToken(); - sponsor.setSponsor(user.getIdUser()); - sponsor.setSponsorshipTime(new Date()); - sponsorMapper.insertSelective(sponsor); - // 赞赏金额划转 - if (result.isArticleSponsor()) { - ArticleDTO articleDTO = articleService.findArticleDTOById(sponsor.getDataId(), 1); - TransactionRecord transactionRecord = transactionRecordService.userTransfer(articleDTO.getArticleAuthorId(), user.getIdUser(), result); - if (Objects.isNull(transactionRecord.getIdTransactionRecord())) { - throw new TransactionException(TransactionCode.InsufficientBalance); - } - // 更新文章赞赏数 - sponsorMapper.updateArticleSponsorCount(articleDTO.getIdArticle()); + TransactionEnum transactionEnum = TransactionEnum.findTransactionEnum(sponsor.getDataType()); + BigDecimal money = BigDecimal.valueOf(transactionEnum.getMoney()); + sponsor.setSponsorshipMoney(money); + sponsor.setSponsorshipTime(new Date()); + sponsorMapper.insertSelective(sponsor); + // 赞赏金额划转 + if (transactionEnum.isArticleSponsor()) { + ArticleDTO articleDTO = articleService.findArticleDTOById(sponsor.getDataId(), 1); + TransactionRecord transactionRecord = transactionRecordService.userTransfer(articleDTO.getArticleAuthorId(), sponsor.getSponsor(), transactionEnum); + if (Objects.isNull(transactionRecord.getIdTransactionRecord())) { + throw new TransactionException(TransactionCode.InsufficientBalance); + } + // 更新文章赞赏数 + int result = sponsorMapper.updateArticleSponsorCount(articleDTO.getIdArticle()); + if (result == 0) { + throw new ServiceException("操作失败!"); } } return true; diff --git a/src/main/java/com/rymcu/forest/service/impl/TagServiceImpl.java b/src/main/java/com/rymcu/forest/service/impl/TagServiceImpl.java index 2382e6f..6c24ce7 100644 --- a/src/main/java/com/rymcu/forest/service/impl/TagServiceImpl.java +++ b/src/main/java/com/rymcu/forest/service/impl/TagServiceImpl.java @@ -1,5 +1,6 @@ package com.rymcu.forest.service.impl; +import com.rymcu.forest.core.exception.BusinessException; import com.rymcu.forest.core.exception.ServiceException; import com.rymcu.forest.core.service.AbstractService; import com.rymcu.forest.dto.ArticleTagDTO; @@ -120,17 +121,16 @@ public class TagServiceImpl extends AbstractService implements TagService { @Transactional(rollbackFor = Exception.class) public Tag saveTag(Tag tag) throws Exception { Integer result; - tag.setTagDescription(XssUtils.filterHtmlCode(tag.getTagDescription())); if (tag.getIdTag() == null) { if (StringUtils.isBlank(tag.getTagTitle())) { - throw new ServiceException("标签名不能为空!"); + throw new IllegalArgumentException("标签名不能为空!"); } else { Condition tagCondition = new Condition(Tag.class); tagCondition.createCriteria().andCondition("tag_title =", tag.getTagTitle()); List tags = tagMapper.selectByCondition(tagCondition); if (!tags.isEmpty()) { - throw new ServiceException("标签 '" + tag.getTagTitle() + "' 已存在!"); + throw new BusinessException("标签 '" + tag.getTagTitle() + "' 已存在!"); } } tag = new Tag(); diff --git a/src/main/java/com/rymcu/forest/service/impl/TopicServiceImpl.java b/src/main/java/com/rymcu/forest/service/impl/TopicServiceImpl.java index 4a3cb39..d8e0746 100644 --- a/src/main/java/com/rymcu/forest/service/impl/TopicServiceImpl.java +++ b/src/main/java/com/rymcu/forest/service/impl/TopicServiceImpl.java @@ -2,6 +2,7 @@ package com.rymcu.forest.service.impl; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; +import com.rymcu.forest.core.exception.BusinessException; import com.rymcu.forest.core.exception.ServiceException; import com.rymcu.forest.core.service.AbstractService; import com.rymcu.forest.dto.admin.TagDTO; @@ -33,8 +34,7 @@ public class TopicServiceImpl extends AbstractService implements TopicSer @Override public List findTopicNav() { - List topics = topicMapper.selectTopicNav(); - return topics; + return topicMapper.selectTopicNav(); } @Override @@ -46,18 +46,18 @@ public class TopicServiceImpl extends AbstractService implements TopicSer @Override @Transactional(rollbackFor = Exception.class) - public Topic saveTopic(Topic topic) throws Exception { + public Topic saveTopic(Topic topic) throws ServiceException { Integer result; topic.setTopicDescriptionHtml(XssUtils.filterHtmlCode(topic.getTopicDescriptionHtml())); if (topic.getIdTopic() == null) { if (StringUtils.isBlank(topic.getTopicTitle())) { - throw new ServiceException("标签名不能为空!"); + throw new IllegalArgumentException("标签名不能为空!"); } else { Condition topicCondition = new Condition(Topic.class); topicCondition.createCriteria().andCondition("topic_title =", topic.getTopicTitle()); List topics = topicMapper.selectByCondition(topicCondition); if (!topics.isEmpty()) { - throw new ServiceException("专题 '" + topic.getTopicTitle() + "' 已存在!"); + throw new BusinessException("专题 '" + topic.getTopicTitle() + "' 已存在!"); } } topic = new Topic(); @@ -103,7 +103,7 @@ public class TopicServiceImpl extends AbstractService implements TopicSer @Override @Transactional(rollbackFor = Exception.class) - public TopicTagDTO bindTopicTag(TopicTagDTO topicTag) throws Exception { + public TopicTagDTO bindTopicTag(TopicTagDTO topicTag) throws ServiceException { Integer result = topicMapper.insertTopicTag(topicTag.getIdTopic(), topicTag.getIdTag()); if (result == 0) { throw new ServiceException("操作失败!"); @@ -113,7 +113,7 @@ public class TopicServiceImpl extends AbstractService implements TopicSer @Override @Transactional(rollbackFor = Exception.class) - public TopicTagDTO unbindTopicTag(TopicTagDTO topicTag) throws Exception { + public TopicTagDTO unbindTopicTag(TopicTagDTO topicTag) throws ServiceException { Integer result = topicMapper.deleteTopicTag(topicTag.getIdTopic(), topicTag.getIdTag()); if (result == 0) { throw new ServiceException("操作失败!"); @@ -122,14 +122,11 @@ public class TopicServiceImpl extends AbstractService implements TopicSer } @Override - public PageInfo findTagsByTopicUri(String topicUri, Integer page, Integer rows) { + public List findTagsByTopicUri(String topicUri) { TopicDTO topic = topicMapper.selectTopicByTopicUri(topicUri); if (topic == null) { return null; } - PageHelper.startPage(page, rows); - List list = topicMapper.selectTopicTag(topic.getIdTopic()); - PageInfo pageInfo = new PageInfo(list); - return pageInfo; + return topicMapper.selectTopicTag(topic.getIdTopic()); } } diff --git a/src/main/java/com/rymcu/forest/service/impl/TransactionRecordServiceImpl.java b/src/main/java/com/rymcu/forest/service/impl/TransactionRecordServiceImpl.java index c1f3837..6c7dced 100644 --- a/src/main/java/com/rymcu/forest/service/impl/TransactionRecordServiceImpl.java +++ b/src/main/java/com/rymcu/forest/service/impl/TransactionRecordServiceImpl.java @@ -38,7 +38,7 @@ public class TransactionRecordServiceImpl extends AbstractService implements UserServic @Override @Transactional(rollbackFor = Exception.class) - public void register(String email, String password, String code) throws ServiceException { + public boolean register(String email, String password, String code) { String vCode = redisService.get(email); if (StringUtils.isNotBlank(vCode)) { if (vCode.equals(code)) { User user = userMapper.findByAccount(email); if (user != null) { - throw new ServiceException("该邮箱已被注册!"); + throw new AccountExistsException("该邮箱已被注册!"); } else { user = new User(); String nickname = email.split("@")[0]; @@ -88,11 +86,11 @@ public class UserServiceImpl extends AbstractService implements UserServic .signature(user.getSignature()) .build()); redisService.delete(email); - return; + return true; } } } - throw new ServiceException("验证码无效!"); + throw new CaptchaException(); } private String checkNickname(String nickname) { @@ -143,13 +141,16 @@ public class UserServiceImpl extends AbstractService implements UserServic } @Override - public String forgetPassword(String code, String password) throws ServiceException { + public boolean forgetPassword(String code, String password) throws ServiceException { String email = redisService.get(code); if (StringUtils.isBlank(email)) { throw new ServiceException("链接已失效"); } else { - userMapper.updatePasswordByEmail(email, Utils.entryptPassword(password)); - return "修改成功,正在跳转登录登陆界面!"; + int result = userMapper.updatePasswordByEmail(email, Utils.entryptPassword(password)); + if (result == 0) { + throw new ServiceException("密码修改失败!"); + } + return true; } } @@ -174,31 +175,21 @@ public class UserServiceImpl extends AbstractService implements UserServic } @Override - public Map findUserInfo(Long idUser) { - Map map = new HashMap(2); + public UserInfoDTO findUserInfo(Long idUser) { UserInfoDTO user = userMapper.selectUserInfo(idUser); if (user == null) { throw new ContentNotExistException("用户不存在!"); - } else { - UserExtend userExtend = userExtendMapper.selectByPrimaryKey(user.getIdUser()); - if (Objects.isNull(userExtend)) { - userExtend = new UserExtend(); - userExtend.setIdUser(user.getIdUser()); - userExtendMapper.insertSelective(userExtend); - } - map.put("user", user); - map.put("userExtend", userExtend); } - return map; + return user; } @Override @Transactional(rollbackFor = Exception.class) - public UserInfoDTO updateUserInfo(UserInfoDTO user) throws Exception { + public UserInfoDTO updateUserInfo(UserInfoDTO user) throws ServiceException { user.setNickname(formatNickname(user.getNickname())); Integer number = userMapper.checkNicknameByIdUser(user.getIdUser(), user.getNickname()); if (number > 0) { - throw new ServiceException("该昵称已使用!"); + throw new NicknameOccupyException("该昵称已使用!"); } if (StringUtils.isNotBlank(user.getAvatarType()) && AVATAR_SVG_TYPE.equals(user.getAvatarType())) { String avatarUrl = UploadController.uploadBase64File(user.getAvatarUrl(), 0); @@ -222,12 +213,10 @@ public class UserServiceImpl extends AbstractService implements UserServic return nickname.replaceAll("\\.", ""); } - @Override - public boolean checkNickname(Long idUser, String nickname) throws ServiceException { - Map map = new HashMap(2); + public boolean checkNicknameByIdUser(Long idUser, String nickname) { Integer number = userMapper.checkNicknameByIdUser(idUser, nickname); if (number > 0) { - throw new ServiceException("该昵称已使用!"); + return false; } return true; } @@ -244,7 +233,7 @@ public class UserServiceImpl extends AbstractService implements UserServic @Override public UserExtend updateUserExtend(UserExtend userExtend) throws ServiceException { - int result = userExtendMapper.updateByPrimaryKeySelective(userExtend); + int result = userExtendMapper.updateByPrimaryKey(userExtend); if (result == 0) { throw new ServiceException("操作失败!"); } @@ -257,14 +246,17 @@ public class UserServiceImpl extends AbstractService implements UserServic } @Override - public String updateEmail(ChangeEmailDTO changeEmailDTO) throws ServiceException { + public boolean updateEmail(ChangeEmailDTO changeEmailDTO) throws ServiceException { Long idUser = changeEmailDTO.getIdUser(); String email = changeEmailDTO.getEmail(); String code = changeEmailDTO.getCode(); String vCode = redisService.get(email); if (StringUtils.isNotBlank(vCode) && StringUtils.isNotBlank(code) && vCode.equals(code)) { - userMapper.updateEmail(idUser, email); - return email; + int result = userMapper.updateEmail(idUser, email); + if (result == 0) { + throw new ServiceException("修改邮箱失败!"); + } + return true; } throw new CaptchaException(); } @@ -297,4 +289,15 @@ public class UserServiceImpl extends AbstractService implements UserServic public Integer updateLastOnlineTimeByEmail(String email) { return userMapper.updateLastOnlineTimeByEmail(email); } + + @Override + public UserExtend findUserExtendInfo(Long idUser) { + UserExtend userExtend = userExtendMapper.selectByPrimaryKey(idUser); + if (Objects.isNull(userExtend)) { + userExtend = new UserExtend(); + userExtend.setIdUser(idUser); + userExtendMapper.insertSelective(userExtend); + } + return userExtend; + } } diff --git a/src/main/java/com/rymcu/forest/web/api/admin/AdminController.java b/src/main/java/com/rymcu/forest/web/api/admin/AdminController.java index dba0cea..e96c55d 100644 --- a/src/main/java/com/rymcu/forest/web/api/admin/AdminController.java +++ b/src/main/java/com/rymcu/forest/web/api/admin/AdminController.java @@ -6,6 +6,7 @@ import com.rymcu.forest.core.exception.ServiceException; import com.rymcu.forest.core.result.GlobalResult; import com.rymcu.forest.core.result.GlobalResultGenerator; import com.rymcu.forest.dto.*; +import com.rymcu.forest.dto.admin.TagDTO; import com.rymcu.forest.dto.admin.TopicTagDTO; import com.rymcu.forest.dto.admin.UserRoleDTO; import com.rymcu.forest.entity.*; @@ -19,7 +20,7 @@ import java.util.List; /** * @author ronger - * */ + */ @RestController @RequestMapping("/api/v1/admin") public class AdminController { @@ -42,7 +43,7 @@ public class AdminController { private ProductService productService; @GetMapping("/users") - public GlobalResult> users(@RequestParam(defaultValue = "0") Integer page, @RequestParam(defaultValue = "10") Integer rows, UserSearchDTO searchDTO){ + public GlobalResult> users(@RequestParam(defaultValue = "0") Integer page, @RequestParam(defaultValue = "10") Integer rows, UserSearchDTO searchDTO) { PageHelper.startPage(page, rows); List list = userService.findUsers(searchDTO); PageInfo pageInfo = new PageInfo<>(list); @@ -50,13 +51,13 @@ public class AdminController { } @GetMapping("/user/{idUser}/role") - public GlobalResult> userRole(@PathVariable Long idUser){ + public GlobalResult> userRole(@PathVariable Long idUser) { List roles = roleService.findByIdUser(idUser); return GlobalResultGenerator.genSuccessResult(roles); } @GetMapping("/roles") - public GlobalResult> roles(@RequestParam(defaultValue = "0") Integer page, @RequestParam(defaultValue = "10") Integer rows){ + public GlobalResult> roles(@RequestParam(defaultValue = "0") Integer page, @RequestParam(defaultValue = "10") Integer rows) { PageHelper.startPage(page, rows); List list = roleService.findAll(); PageInfo pageInfo = new PageInfo<>(list); @@ -76,25 +77,25 @@ public class AdminController { } @PatchMapping("/role/update-status") - public GlobalResult updateRoleStatus(@RequestBody Role role) throws Exception { + public GlobalResult updateRoleStatus(@RequestBody Role role) throws ServiceException { boolean flag = roleService.updateStatus(role.getIdRole(), role.getStatus()); return GlobalResultGenerator.genSuccessResult(flag); } @PostMapping("/role/post") - public GlobalResult addRole(@RequestBody Role role) throws Exception { + public GlobalResult addRole(@RequestBody Role role) throws ServiceException { boolean flag = roleService.saveRole(role); - return GlobalResultGenerator.genSuccessResult(role); + return GlobalResultGenerator.genSuccessResult(flag); } @PutMapping("/role/post") - public GlobalResult updateRole(@RequestBody Role role) throws Exception { + public GlobalResult updateRole(@RequestBody Role role) throws Exception { boolean flag = roleService.saveRole(role); - return GlobalResultGenerator.genSuccessResult(role); + return GlobalResultGenerator.genSuccessResult(flag); } @GetMapping("/topics") - public GlobalResult> topics(@RequestParam(defaultValue = "0") Integer page, @RequestParam(defaultValue = "10") Integer rows){ + public GlobalResult> topics(@RequestParam(defaultValue = "0") Integer page, @RequestParam(defaultValue = "10") Integer rows) { PageHelper.startPage(page, rows); List list = topicService.findAll(); PageInfo pageInfo = new PageInfo<>(list); @@ -102,31 +103,33 @@ public class AdminController { } @GetMapping("/topic/{topicUri}") - public GlobalResult topic(@PathVariable String topicUri){ + public GlobalResult topic(@PathVariable String topicUri) { if (StringUtils.isBlank(topicUri)) { - return GlobalResultGenerator.genErrorResult("数据异常!"); + throw new IllegalArgumentException("参数异常!"); } Topic topic = topicService.findTopicByTopicUri(topicUri); return GlobalResultGenerator.genSuccessResult(topic); } @GetMapping("/topic/{topicUri}/tags") - public GlobalResult topicTags(@RequestParam(defaultValue = "0") Integer page, @RequestParam(defaultValue = "10") Integer rows,@PathVariable String topicUri) { + public GlobalResult> topicTags(@RequestParam(defaultValue = "0") Integer page, @RequestParam(defaultValue = "10") Integer rows, @PathVariable String topicUri) { if (StringUtils.isBlank(topicUri)) { - return GlobalResultGenerator.genErrorResult("数据异常!"); + throw new IllegalArgumentException("参数异常!"); } - PageInfo pageInfo = topicService.findTagsByTopicUri(topicUri, page, rows); + PageHelper.startPage(page, rows); + List list = topicService.findTagsByTopicUri(topicUri); + PageInfo pageInfo = new PageInfo<>(list); return GlobalResultGenerator.genSuccessResult(pageInfo); } @GetMapping("/topic/detail/{idTopic}") - public GlobalResult topicDetail(@PathVariable Integer idTopic){ + public GlobalResult topicDetail(@PathVariable Integer idTopic) { Topic topic = topicService.findById(idTopic.toString()); return GlobalResultGenerator.genSuccessResult(topic); } @GetMapping("/topic/unbind-topic-tags") - public GlobalResult> unbindTopicTags(@RequestParam(defaultValue = "0") Integer page, @RequestParam(defaultValue = "10") Integer rows, HttpServletRequest request){ + public GlobalResult> unbindTopicTags(@RequestParam(defaultValue = "0") Integer page, @RequestParam(defaultValue = "10") Integer rows, HttpServletRequest request) { Long idTopic = Long.valueOf(request.getParameter("idTopic")); String tagTitle = request.getParameter("tagTitle"); PageHelper.startPage(page, rows); @@ -160,7 +163,7 @@ public class AdminController { } @GetMapping("/tags") - public GlobalResult> tags(@RequestParam(defaultValue = "0") Integer page, @RequestParam(defaultValue = "10") Integer rows){ + public GlobalResult> tags(@RequestParam(defaultValue = "0") Integer page, @RequestParam(defaultValue = "10") Integer rows) { PageHelper.startPage(page, rows); List list = tagService.findAll(); PageInfo pageInfo = new PageInfo<>(list); @@ -174,7 +177,7 @@ public class AdminController { } @GetMapping("/tag/detail/{idTag}") - public GlobalResult tagDetail(@PathVariable Integer idTag){ + public GlobalResult tagDetail(@PathVariable Integer idTag) { Tag tag = tagService.findById(idTag.toString()); return GlobalResultGenerator.genSuccessResult(tag); } @@ -224,5 +227,4 @@ public class AdminController { } - } diff --git a/src/main/java/com/rymcu/forest/web/api/article/ArticleController.java b/src/main/java/com/rymcu/forest/web/api/article/ArticleController.java index a2e1170..64fa34c 100644 --- a/src/main/java/com/rymcu/forest/web/api/article/ArticleController.java +++ b/src/main/java/com/rymcu/forest/web/api/article/ArticleController.java @@ -2,6 +2,7 @@ package com.rymcu.forest.web.api.article; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; +import com.rymcu.forest.core.exception.BusinessException; import com.rymcu.forest.core.result.GlobalResult; import com.rymcu.forest.core.result.GlobalResultGenerator; import com.rymcu.forest.core.service.security.annotation.AuthorshipInterceptor; @@ -105,13 +106,22 @@ public class ArticleController { } @PostMapping("/thumbs-up") - public GlobalResult thumbsUp(@RequestBody ArticleThumbsUp articleThumbsUp) throws Exception { - String str = articleThumbsUpService.thumbsUp(articleThumbsUp); - return GlobalResultGenerator.genSuccessResult(str); + public GlobalResult thumbsUp(@RequestBody ArticleThumbsUp articleThumbsUp) throws Exception { + if (Objects.isNull(articleThumbsUp) || Objects.isNull(articleThumbsUp.getIdArticle())) { + throw new BusinessException("数据异常,文章不存在!"); + } + User user = UserUtils.getCurrentUserByToken(); + articleThumbsUp.setIdUser(user.getIdUser()); + return GlobalResultGenerator.genSuccessResult(articleThumbsUpService.thumbsUp(articleThumbsUp)); } @PostMapping("/sponsor") public GlobalResult sponsor(@RequestBody Sponsor sponsor) throws Exception { + if (Objects.isNull(sponsor) || Objects.isNull(sponsor.getDataId()) || Objects.isNull(sponsor.getDataType())) { + throw new IllegalArgumentException("数据异常"); + } + User user = UserUtils.getCurrentUserByToken(); + sponsor.setSponsor(user.getIdUser()); boolean flag = sponsorService.sponsorship(sponsor); return GlobalResultGenerator.genSuccessResult(flag); } diff --git a/src/main/java/com/rymcu/forest/web/api/bank/TransactionRecordController.java b/src/main/java/com/rymcu/forest/web/api/bank/TransactionRecordController.java index c3a230a..123162c 100644 --- a/src/main/java/com/rymcu/forest/web/api/bank/TransactionRecordController.java +++ b/src/main/java/com/rymcu/forest/web/api/bank/TransactionRecordController.java @@ -22,13 +22,13 @@ public class TransactionRecordController { private TransactionRecordService transactionRecordService; @PostMapping("/transfer") - public GlobalResult transfer(@RequestBody TransactionRecord transactionRecord) throws Exception { + public GlobalResult transfer(@RequestBody TransactionRecord transactionRecord) { transactionRecord = transactionRecordService.transfer(transactionRecord); return GlobalResultGenerator.genSuccessResult(transactionRecord); } @PostMapping("/newbie-rewards") - public GlobalResult newbieRewards(@RequestBody TransactionRecord transactionRecord) throws Exception { + public GlobalResult newbieRewards(@RequestBody TransactionRecord transactionRecord) { transactionRecord = transactionRecordService.newbieRewards(transactionRecord); return GlobalResultGenerator.genSuccessResult(transactionRecord); } diff --git a/src/main/java/com/rymcu/forest/web/api/common/CommonApiController.java b/src/main/java/com/rymcu/forest/web/api/common/CommonApiController.java index 1c2058f..9252362 100644 --- a/src/main/java/com/rymcu/forest/web/api/common/CommonApiController.java +++ b/src/main/java/com/rymcu/forest/web/api/common/CommonApiController.java @@ -2,6 +2,7 @@ package com.rymcu.forest.web.api.common; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; +import com.rymcu.forest.core.exception.AccountExistsException; import com.rymcu.forest.core.exception.ServiceException; import com.rymcu.forest.core.result.GlobalResult; import com.rymcu.forest.core.result.GlobalResultGenerator; @@ -10,6 +11,7 @@ import com.rymcu.forest.core.service.log.annotation.VisitLogger; import com.rymcu.forest.dto.*; import com.rymcu.forest.entity.User; import com.rymcu.forest.service.*; +import org.apache.shiro.authc.UnknownAccountException; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; @@ -42,7 +44,7 @@ public class CommonApiController { map.put("message", GlobalResultMessage.SEND_SUCCESS.getMessage()); User user = userService.findByAccount(email); if (user != null) { - map.put("message", "该邮箱已被注册!"); + throw new AccountExistsException("该邮箱已被注册!"); } else { Integer result = javaMailService.sendEmailCode(email); if (result == 0) { @@ -53,25 +55,23 @@ public class CommonApiController { } @GetMapping("/get-forget-password-email") - public GlobalResult> getForgetPasswordEmail(@RequestParam("email") String email) throws MessagingException { - Map map = new HashMap<>(1); - map.put("message", GlobalResultMessage.SEND_SUCCESS.getMessage()); + public GlobalResult getForgetPasswordEmail(@RequestParam("email") String email) throws MessagingException, ServiceException { User user = userService.findByAccount(email); if (user != null) { Integer result = javaMailService.sendForgetPasswordEmail(email); if (result == 0) { - map.put("message", GlobalResultMessage.SEND_FAIL.getMessage()); + throw new ServiceException(GlobalResultMessage.SEND_FAIL.getMessage()); } } else { - map.put("message", "该邮箱未注册!"); + throw new UnknownAccountException("该邮箱未注册!"); } - return GlobalResultGenerator.genSuccessResult(map); + return GlobalResultGenerator.genSuccessResult(GlobalResultMessage.SEND_SUCCESS.getMessage()); } @PostMapping("/register") - public GlobalResult register(@RequestBody UserRegisterInfoDTO registerInfo) throws ServiceException { - userService.register(registerInfo.getEmail(), registerInfo.getPassword(), registerInfo.getCode()); - return GlobalResultGenerator.genSuccessResult(); + public GlobalResult register(@RequestBody UserRegisterInfoDTO registerInfo) { + boolean flag = userService.register(registerInfo.getEmail(), registerInfo.getPassword(), registerInfo.getCode()); + return GlobalResultGenerator.genSuccessResult(flag); } @PostMapping("/login") @@ -90,7 +90,7 @@ public class CommonApiController { public GlobalResult> articles(@RequestParam(defaultValue = "0") Integer page, @RequestParam(defaultValue = "10") Integer rows, ArticleSearchDTO searchDTO) { PageHelper.startPage(page, rows); List list = articleService.findArticles(searchDTO); - PageInfo pageInfo = new PageInfo(list); + PageInfo pageInfo = new PageInfo<>(list); return GlobalResultGenerator.genSuccessResult(pageInfo); } @@ -98,7 +98,7 @@ public class CommonApiController { public GlobalResult> announcements(@RequestParam(defaultValue = "0") Integer page, @RequestParam(defaultValue = "5") Integer rows) { PageHelper.startPage(page, rows); List list = articleService.findAnnouncements(); - PageInfo pageInfo = new PageInfo(list); + PageInfo pageInfo = new PageInfo<>(list); return GlobalResultGenerator.genSuccessResult(pageInfo); } @@ -110,9 +110,9 @@ public class CommonApiController { } @PatchMapping("/forget-password") - public GlobalResult forgetPassword(@RequestBody ForgetPasswordDTO forgetPassword) throws ServiceException { - String str = userService.forgetPassword(forgetPassword.getCode(), forgetPassword.getPassword()); - return GlobalResultGenerator.genSuccessResult(str); + public GlobalResult forgetPassword(@RequestBody ForgetPasswordDTO forgetPassword) throws ServiceException { + boolean flag = userService.forgetPassword(forgetPassword.getCode(), forgetPassword.getPassword()); + return GlobalResultGenerator.genSuccessResult(flag); } @GetMapping("/portfolio/{id}") @@ -126,7 +126,7 @@ public class CommonApiController { public GlobalResult> articles(@RequestParam(defaultValue = "0") Integer page, @RequestParam(defaultValue = "10") Integer rows, @PathVariable Long id) { PageHelper.startPage(page, rows); List list = articleService.findArticlesByIdPortfolio(id); - PageInfo pageInfo = new PageInfo(list); + PageInfo pageInfo = new PageInfo<>(list); return GlobalResultGenerator.genSuccessResult(pageInfo); } @@ -134,7 +134,7 @@ public class CommonApiController { public GlobalResult> portfolios(@RequestParam(defaultValue = "0") Integer page, @RequestParam(defaultValue = "12") Integer rows) { PageHelper.startPage(page, rows); List list = portfolioService.findPortfolios(); - PageInfo pageInfo = new PageInfo(list); + PageInfo pageInfo = new PageInfo<>(list); return GlobalResultGenerator.genSuccessResult(pageInfo); } @@ -142,7 +142,7 @@ public class CommonApiController { public GlobalResult> products(@RequestParam(defaultValue = "0") Integer page, @RequestParam(defaultValue = "12") Integer rows) { PageHelper.startPage(page, rows); List list = productService.findProducts(); - PageInfo pageInfo = new PageInfo(list); + PageInfo pageInfo = new PageInfo<>(list); return GlobalResultGenerator.genSuccessResult(pageInfo); } diff --git a/src/main/java/com/rymcu/forest/web/api/portfolio/PortfolioController.java b/src/main/java/com/rymcu/forest/web/api/portfolio/PortfolioController.java index 5f69fec..81a8e99 100644 --- a/src/main/java/com/rymcu/forest/web/api/portfolio/PortfolioController.java +++ b/src/main/java/com/rymcu/forest/web/api/portfolio/PortfolioController.java @@ -1,6 +1,7 @@ package com.rymcu.forest.web.api.portfolio; import com.github.pagehelper.PageInfo; +import com.rymcu.forest.core.exception.ServiceException; import com.rymcu.forest.core.result.GlobalResult; import com.rymcu.forest.core.result.GlobalResultGenerator; import com.rymcu.forest.core.service.security.annotation.AuthorshipInterceptor; @@ -32,62 +33,94 @@ public class PortfolioController { private UserService userService; @GetMapping("/detail/{idPortfolio}") - public GlobalResult detail(@PathVariable Long idPortfolio,@RequestParam(defaultValue = "0") Integer type) { - PortfolioDTO portfolio = portfolioService.findPortfolioDTOById(idPortfolio, type); - Map map = new HashMap<>(1); - map.put("portfolio", portfolio); - return GlobalResultGenerator.genSuccessResult(map); + public GlobalResult detail(@PathVariable Long idPortfolio, @RequestParam(defaultValue = "0") Integer type) { + if (idPortfolio == null || idPortfolio == 0) { + throw new IllegalArgumentException("作品集主键参数异常!"); + } + return GlobalResultGenerator.genSuccessResult(portfolioService.findPortfolioDTOById(idPortfolio, type)); } @PostMapping("/post") - public GlobalResult add(@RequestBody Portfolio portfolio) throws BaseApiException { + public GlobalResult add(@RequestBody Portfolio portfolio) throws BaseApiException { + User user = UserUtils.getCurrentUserByToken(); + portfolio.setPortfolioAuthorId(user.getIdUser()); portfolio = portfolioService.postPortfolio(portfolio); return GlobalResultGenerator.genSuccessResult(portfolio); } @PutMapping("/post") @AuthorshipInterceptor(moduleName = Module.PORTFOLIO) - public GlobalResult update(@RequestBody Portfolio portfolio) throws BaseApiException { + public GlobalResult update(@RequestBody Portfolio portfolio) throws BaseApiException { + if (portfolio.getIdPortfolio() == null || portfolio.getIdPortfolio() == 0) { + throw new IllegalArgumentException("作品集主键参数异常!"); + } + User user = UserUtils.getCurrentUserByToken(); + portfolio.setPortfolioAuthorId(user.getIdUser()); portfolio = portfolioService.postPortfolio(portfolio); return GlobalResultGenerator.genSuccessResult(portfolio); } @GetMapping("/{idPortfolio}/unbind-articles") @AuthorshipInterceptor(moduleName = Module.PORTFOLIO) - public GlobalResult unbindArticles(@RequestParam(defaultValue = "0") Integer page, @RequestParam(defaultValue = "10") Integer rows, @RequestParam(defaultValue = "") String searchText, @PathVariable Long idPortfolio) throws Exception { - PageInfo pageInfo = portfolioService.findUnbindArticles(page, rows, searchText, idPortfolio); + public GlobalResult unbindArticles(@RequestParam(defaultValue = "0") Integer page, @RequestParam(defaultValue = "10") Integer rows, @RequestParam(defaultValue = "") String searchText, @PathVariable Long idPortfolio) throws BaseApiException { + if (idPortfolio == null || idPortfolio == 0) { + throw new IllegalArgumentException("作品集主键参数异常!"); + } + User user = UserUtils.getCurrentUserByToken(); + PageInfo pageInfo = portfolioService.findUnbindArticles(page, rows, searchText, idPortfolio, user.getIdUser()); return GlobalResultGenerator.genSuccessResult(pageInfo); } @PostMapping("/bind-article") @AuthorshipInterceptor(moduleName = Module.PORTFOLIO) - public GlobalResult bindArticle(@RequestBody PortfolioArticleDTO portfolioArticle) throws Exception { + public GlobalResult bindArticle(@RequestBody PortfolioArticleDTO portfolioArticle) throws ServiceException { + if (portfolioArticle.getIdPortfolio() == null || portfolioArticle.getIdPortfolio() == 0) { + throw new IllegalArgumentException("作品集主键参数异常!"); + } boolean flag = portfolioService.bindArticle(portfolioArticle); return GlobalResultGenerator.genSuccessResult(flag); } @PutMapping("/update-article-sort-no") @AuthorshipInterceptor(moduleName = Module.PORTFOLIO) - public GlobalResult updateArticleSortNo(@RequestBody PortfolioArticleDTO portfolioArticle) throws Exception { + public GlobalResult updateArticleSortNo(@RequestBody PortfolioArticleDTO portfolioArticle) throws ServiceException { + if (portfolioArticle.getIdPortfolio() == null || portfolioArticle.getIdPortfolio() == 0) { + throw new IllegalArgumentException("作品集主键参数异常!"); + } + if (portfolioArticle.getIdArticle() == null || portfolioArticle.getIdArticle() == 0) { + throw new IllegalArgumentException("文章主键参数异常!"); + } + if (portfolioArticle.getSortNo() == null) { + throw new IllegalArgumentException("排序号不能为空!"); + } boolean flag = portfolioService.updateArticleSortNo(portfolioArticle); return GlobalResultGenerator.genSuccessResult(flag); } @DeleteMapping("/unbind-article") @AuthorshipInterceptor(moduleName = Module.PORTFOLIO) - public GlobalResult unbindArticle(Long idArticle, Long idPortfolio) throws Exception { + public GlobalResult unbindArticle(Long idArticle, Long idPortfolio) throws ServiceException { + if (idPortfolio == null || idPortfolio == 0) { + throw new IllegalArgumentException("作品集主键参数异常"); + } + if (idArticle == null || idArticle == 0) { + throw new IllegalArgumentException("文章主键参数异常"); + } boolean flag = portfolioService.unbindArticle(idPortfolio, idArticle); return GlobalResultGenerator.genSuccessResult(flag); } @DeleteMapping("/delete") @AuthorshipInterceptor(moduleName = Module.PORTFOLIO) - public GlobalResult delete(Long idPortfolio) throws BaseApiException, IllegalAccessException { + public GlobalResult delete(Long idPortfolio) throws BaseApiException { + if (idPortfolio == null || idPortfolio == 0) { + throw new IllegalArgumentException("参数异常!"); + } User user = UserUtils.getCurrentUserByToken(); Long idUser = user.getIdUser(); Integer roleWeights = userService.findRoleWeightsByUser(idUser); - boolean map = portfolioService.deletePortfolio(idPortfolio, idUser, roleWeights); - return GlobalResultGenerator.genSuccessResult(map); + boolean flag = portfolioService.deletePortfolio(idPortfolio, idUser, roleWeights); + return GlobalResultGenerator.genSuccessResult(flag); } } diff --git a/src/main/java/com/rymcu/forest/web/api/user/UserInfoController.java b/src/main/java/com/rymcu/forest/web/api/user/UserInfoController.java index 0abfa84..46db78f 100644 --- a/src/main/java/com/rymcu/forest/web/api/user/UserInfoController.java +++ b/src/main/java/com/rymcu/forest/web/api/user/UserInfoController.java @@ -35,57 +35,59 @@ public class UserInfoController { @GetMapping("/detail/{idUser}") @SecurityInterceptor - public GlobalResult detail(@PathVariable Long idUser) { - Map map = userService.findUserInfo(idUser); - return GlobalResultGenerator.genSuccessResult(map); + public GlobalResult detail(@PathVariable Long idUser) { + UserInfoDTO userInfo = userService.findUserInfo(idUser); + return GlobalResultGenerator.genSuccessResult(userInfo); + } + @GetMapping("/detail/{idUser}/extend-info") + @SecurityInterceptor + public GlobalResult extendInfo(@PathVariable Long idUser) { + UserExtend userExtend = userService.findUserExtendInfo(idUser); + return GlobalResultGenerator.genSuccessResult(userExtend); } @GetMapping("/check-nickname") @SecurityInterceptor - public GlobalResult checkNickname(@RequestParam Long idUser, @RequestParam String nickname) throws ServiceException { - boolean flag = userService.checkNickname(idUser, nickname); + public GlobalResult checkNickname(@RequestParam Long idUser, @RequestParam String nickname) { + boolean flag = userService.checkNicknameByIdUser(idUser, nickname); return GlobalResultGenerator.genSuccessResult(flag); } @PatchMapping("/update") @SecurityInterceptor - public GlobalResult updateUserInfo(@RequestBody UserInfoDTO user) throws Exception { - UserInfoDTO newUsers = userService.updateUserInfo(user); - return GlobalResultGenerator.genSuccessResult(newUsers); + public GlobalResult updateUserInfo(@RequestBody UserInfoDTO user) throws ServiceException { + user = userService.updateUserInfo(user); + return GlobalResultGenerator.genSuccessResult(user); } @PatchMapping("/update-extend") @SecurityInterceptor - public GlobalResult updateUserExtend(@RequestBody UserExtend userExtend) throws ServiceException { - UserExtend map = userService.updateUserExtend(userExtend); - return GlobalResultGenerator.genSuccessResult(map); + public GlobalResult updateUserExtend(@RequestBody UserExtend userExtend) throws ServiceException { + userExtend = userService.updateUserExtend(userExtend); + return GlobalResultGenerator.genSuccessResult(userExtend); } @PatchMapping("/update-email") @SecurityInterceptor - public GlobalResult updateEmail(@RequestBody ChangeEmailDTO changeEmailDTO) throws ServiceException { - String email = userService.updateEmail(changeEmailDTO); - return GlobalResultGenerator.genSuccessResult(email); + public GlobalResult updateEmail(@RequestBody ChangeEmailDTO changeEmailDTO) throws ServiceException { + boolean flag = userService.updateEmail(changeEmailDTO); + return GlobalResultGenerator.genSuccessResult(flag); } @PatchMapping("/update-password") @SecurityInterceptor - public GlobalResult updatePassword(@RequestBody UpdatePasswordDTO updatePasswordDTO) { + public GlobalResult updatePassword(@RequestBody UpdatePasswordDTO updatePasswordDTO) { boolean flag = userService.updatePassword(updatePasswordDTO); return GlobalResultGenerator.genSuccessResult(flag); } @GetMapping("/login-records") @SecurityInterceptor - public GlobalResult loginRecords(@RequestParam(defaultValue = "0") Integer page, @RequestParam(defaultValue = "10") Integer rows, @RequestParam Integer idUser) { + public GlobalResult> loginRecords(@RequestParam(defaultValue = "0") Integer page, @RequestParam(defaultValue = "10") Integer rows, @RequestParam Integer idUser) { PageHelper.startPage(page, rows); List list = loginRecordService.findLoginRecordByIdUser(idUser); PageInfo pageInfo = new PageInfo<>(list); - Map map = new HashMap(2); - map.put("records", pageInfo.getList()); - Map pagination = Utils.getPagination(pageInfo); - map.put("pagination", pagination); - return GlobalResultGenerator.genSuccessResult(map); + return GlobalResultGenerator.genSuccessResult(pageInfo); } }