package com.system.communication.services.impl;
import com.system.communication.common.AppResult;
import com.system.communication.common.ResultCode;
import com.system.communication.dao.UserMapper;
import com.system.communication.exception.ApplicationException;
import com.system.communication.model.User;
import com.system.communication.services.IUserService;
import com.system.communication.utils.MD5Util;
import com.system.communication.utils.StringUtil;
import com.system.communication.utils.UUIDUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Date;
@Slf4j
@Service
public class UserServiceImpl implements IUserService {
@Resource
private UserMapper userMapper;
@Override
public void createNormalUser(User user) {
//1.非空校验
if (user == null || StringUtil.isEmpty(user.getUsername())
|| StringUtil.isEmpty(user.getNickname()) || StringUtil.isEmpty(user.getPassword())){
//打印日志
log.warn(ResultCode.FAILED_PARAMS_VALIDATE.toString());
//抛出异常,统一抛出applicationException
throw new ApplicationException(AppResult.failed(ResultCode.FAILED_PARAMS_VALIDATE));
}
//2.按用户名查询用户信息
User existsUser = userMapper.selectByUserName(user.getUsername());
//2.1判断用户是否存在
if(existsUser != null){
//打印日志(用户已存在)
log.info(ResultCode.FAILED_USER_EXISTS.toString());
//抛出异常
throw new ApplicationException(AppResult.failed(ResultCode.FAILED_USER_EXISTS));
}
//3.新增用户,设置默认值
user.setGender((byte)2);
user.setArticleCount(0);
user.setIsAdmin((byte)0);
user.setState((byte) 0);
user.setDeleteState((byte) 0);
//当前日期
Date date = new Date();
user.setCreateTime(date);
user.setUpdateTime(date);
//写入数据库
int row = userMapper.insertSelective(user); //受影响行数
if(row != 1){
//打印日志
log.info(ResultCode.FAILED_CREATE.toString());
//抛出异常
throw new ApplicationException(AppResult.failed(ResultCode.FAILED_CREATE));
}
//打印日志
log.info("新增用户成功.username = " + user.getUsername());
}
@Override
public User selectByUserName(String username) {
//非空校验
if (StringUtil.isEmpty(username)){
//打印日志
log.warn(ResultCode.FAILED_PARAMS_VALIDATE.toString());
//抛出异常
throw new ApplicationException(AppResult.failed(ResultCode.FAILED_PARAMS_VALIDATE));
}
return userMapper.selectByUserName(username);
}
@Override
public User login(String username, String password) {
//1.非空校验
if (StringUtil.isEmpty(username) || StringUtil.isEmpty(password)) {
//打印日志
log.warn(ResultCode.FAILED_PARAMS_VALIDATE.toString());
//抛出异常
throw new ApplicationException(AppResult.failed(ResultCode.FAILED_PARAMS_VALIDATE));
}
//2.按用户名查询用户信息
User user = selectByUserName(username);
//3.对查询结果做非空校验
if (user == null){
//打印日志
log.warn(ResultCode.FAILED_LOGIN.toString() + ", username :" + username);
//抛出异常
throw new ApplicationException(AppResult.failed(ResultCode.FAILED_LOGIN));
}
//4.做密码校验
String encryptPassword = MD5Util.md5Salt(password, user.getSalt());
if (!encryptPassword.equalsIgnoreCase(user.getPassword())){
//打印日志
log.warn(ResultCode.FAILED_LOGIN.toString()+ ", 密码错误 , username :" + username);
//抛出异常
throw new ApplicationException(AppResult.failed(ResultCode.FAILED_LOGIN));
}
//登录成功,返回用户信息
return user;
}
@Override
public User selectById(Long id) {
//1.非空校验
if (id == null){
//打印日志
log.warn(ResultCode.FAILED_PARAMS_VALIDATE.toString());
//抛出异常
throw new ApplicationException(AppResult.failed(ResultCode.FAILED_LOGIN));
}
//2.调用DAO查询数据库并获取对象
User user = userMapper.selectByPrimaryKey(id);
//3.返回结果
return user;
}
@Override
public void addOneArticleCountById(Long id) {
if (id == null || id <= 0){
//打印日志
log.warn(ResultCode.FAILED_BOARD_ARTICLE_COUNT.toString());
//抛出异常
throw new ApplicationException(AppResult.failed(ResultCode.FAILED_BOARD_ARTICLE_COUNT));
}
//查询用户信息
User user = userMapper.selectByPrimaryKey(id);
if (user == null){
//打印日志
log.warn(ResultCode.ERROR_IS_NULL.toString() + "user id =" + id);
//抛出异常
throw new ApplicationException(AppResult.failed(ResultCode.ERROR_IS_NULL));
}
//更新用户发帖数量,重新创建一个要更新的对象
User updateUser = new User();
updateUser.setId(user.getId());
updateUser.setArticleCount(user.getArticleCount() + 1);
//更新数据库
int row = userMapper.updateByPrimaryKeySelective(updateUser);
if (row != 1){
log.warn(ResultCode.FAILED.toString() + "受影响的行数不等于1");
throw new ApplicationException(AppResult.failed(ResultCode.FAILED));
}
}
@Override
public void subOneArticleCountById(Long id) {
if (id == null || id <= 0){
//打印日志
log.warn(ResultCode.FAILED_BOARD_ARTICLE_COUNT.toString());
//抛出异常
throw new ApplicationException(AppResult.failed(ResultCode.FAILED_BOARD_ARTICLE_COUNT));
}
//查询用户信息
User user = userMapper.selectByPrimaryKey(id);
if (user == null){
//打印日志
log.warn(ResultCode.ERROR_IS_NULL.toString() + "user id =" + id);
//抛出异常
throw new ApplicationException(AppResult.failed(ResultCode.ERROR_IS_NULL));
}
//更新用户发帖数量,重新创建一个要更新的对象
User updateUser = new User();
updateUser.setId(user.getId());
updateUser.setArticleCount(user.getArticleCount() - 1);
//判断-1后用户发帖数是否小于0
if (updateUser.getArticleCount() < 0){
//小于0,置零
updateUser.setArticleCount(0);
}
//更新数据库
int row = userMapper.updateByPrimaryKeySelective(updateUser);
if (row != 1){
log.warn(ResultCode.FAILED.toString() + "受影响的行数不等于1");
throw new ApplicationException(AppResult.failed(ResultCode.FAILED));
}
}
@Override
public void modifyInfo(User user) {
//非空校验
if (user == null || user.getId() == null || user.getId() <= 0){
//打印日志
log.warn(ResultCode.FAILED_PARAMS_VALIDATE.toString());
//抛出异常
throw new ApplicationException(AppResult.failed(ResultCode.FAILED_PARAMS_VALIDATE));
}
//校验用户是否存在
User existsUser = userMapper.selectByPrimaryKey(user.getId());
if (existsUser == null){
log.warn(ResultCode.FAI
没有合适的资源?快使用搜索试试~ 我知道了~
communication_system-master.zip
共1231个文件
svg:389个
js:375个
css:124个
需积分: 5 0 下载量 46 浏览量
2024-05-06
10:22:47
上传
评论
收藏 9.23MB ZIP 举报
温馨提示
communication_system-master.zip
资源推荐
资源详情
资源评论
收起资源包目录
communication_system-master.zip (1231个子文件)
AUTHORS 6KB
mvnw.cmd 7KB
tabler.css 577KB
tabler.rtl.css 577KB
tabler.rtl.min.css 487KB
tabler.min.css 487KB
editormd.css 81KB
skin.css 78KB
skin.css 78KB
skin.css 75KB
skin.css 75KB
skin.min.css 66KB
skin.min.css 66KB
skin.min.css 63KB
skin.min.css 63KB
editormd.min.css 60KB
editormd.preview.css 59KB
editormd.preview.min.css 44KB
plyr.css 34KB
tabler-vendors.rtl.css 32KB
tabler-vendors.css 32KB
tabler-vendors.rtl.min.css 27KB
tabler-vendors.min.css 27KB
ambiance.css 26KB
content.css 25KB
content.css 25KB
content.inline.css 25KB
content.inline.css 25KB
content.inline.css 25KB
content.inline.css 25KB
content.css 25KB
content.css 25KB
content.min.css 23KB
content.min.css 23KB
content.inline.min.css 23KB
content.inline.min.css 23KB
content.inline.min.css 23KB
content.inline.min.css 23KB
content.min.css 22KB
content.min.css 22KB
tabler-flags.css 18KB
tabler-flags.rtl.css 18KB
tabler-flags.min.css 16KB
tabler-flags.rtl.min.css 16KB
apexcharts.css 12KB
tabler-payments.rtl.css 12KB
tabler-payments.css 12KB
litepicker.css 11KB
tabler-payments.rtl.min.css 10KB
tabler-payments.min.css 10KB
codemirror.css 8KB
nouislider.css 6KB
codemirror.min.css 5KB
jquery.toast.css 5KB
mdn-like.css 5KB
solarized.css 5KB
dropzone.css 5KB
nouislider.min.css 4KB
mobilefriendly.js.css 4KB
ranges.js.css 3KB
merge.css 3KB
lint.css 3KB
xq-dark.css 3KB
lesser-dark.css 2KB
pastel-on-dark.css 2KB
xq-light.css 2KB
editormd.logo.css 2KB
tomorrow-night-eighties.css 2KB
erlang-dark.css 2KB
zenburn.css 2KB
twilight.css 2KB
midnight.css 2KB
vibrant-ink.css 2KB
mbo.css 2KB
base16-dark.css 2KB
base16-light.css 2KB
tern.css 2KB
content.css 2KB
3024-night.css 2KB
paraiso-dark.css 2KB
paraiso-light.css 2KB
content.css 2KB
content.css 2KB
tomorrow-night-bright.css 2KB
3024-day.css 2KB
content.css 2KB
blackboard.css 2KB
content.css 2KB
content.css 2KB
colorforth.css 2KB
editormd.logo.min.css 2KB
the-matrix.css 2KB
multiselect.js.css 2KB
night.css 2KB
rubyblue.css 2KB
monokai.css 1KB
cobalt.css 1KB
simplescrollbars.css 1KB
content.min.css 1KB
content.min.css 1KB
共 1231 条
- 1
- 2
- 3
- 4
- 5
- 6
- 13
资源评论
Java&Develop
- 粉丝: 1w+
- 资源: 32
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功