package com.example.service;
import cn.hutool.core.util.ObjectUtil;
import com.example.common.Constants;
import com.example.common.enums.ResultCodeEnum;
import com.example.common.enums.RoleEnum;
import com.example.entity.Account;
import com.example.entity.Admin;
import com.example.exception.CustomException;
import com.example.mapper.AdminMapper;
import com.example.utils.TokenUtils;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
/**
* 管理员业务处理
**/
@Service
public class AdminService {
@Resource
private AdminMapper adminMapper;
/**
* 新增
*/
public void add(Admin admin) {
Admin dbAdmin = adminMapper.selectByUsername(admin.getUsername());
if (ObjectUtil.isNotNull(dbAdmin)) {
throw new CustomException(ResultCodeEnum.USER_EXIST_ERROR);
}
if (ObjectUtil.isEmpty(admin.getPassword())) {
admin.setPassword(Constants.USER_DEFAULT_PASSWORD);
}
if (ObjectUtil.isEmpty(admin.getName())) {
admin.setName(admin.getUsername());
}
admin.setRole(RoleEnum.ADMIN.name());
adminMapper.insert(admin);
}
/**
* 删除
*/
public void deleteById(Integer id) {
adminMapper.deleteById(id);
}
/**
* 批量删除
*/
public void deleteBatch(List<Integer> ids) {
for (Integer id : ids) {
adminMapper.deleteById(id);
}
}
/**
* 修改
*/
public void updateById(Admin admin) {
adminMapper.updateById(admin);
}
/**
* 根据ID查询
*/
public Admin selectById(Integer id) {
return adminMapper.selectById(id);
}
/**
* 查询所有
*/
public List<Admin> selectAll(Admin admin) {
return adminMapper.selectAll(admin);
}
/**
* 分页查询
*/
public PageInfo<Admin> selectPage(Admin admin, Integer pageNum, Integer pageSize) {
PageHelper.startPage(pageNum, pageSize);
List<Admin> list = adminMapper.selectAll(admin);
return PageInfo.of(list);
}
/**
* 登录
*/
public Account login(Account account) {
Account dbAdmin = adminMapper.selectByUsername(account.getUsername());
if (ObjectUtil.isNull(dbAdmin)) {
throw new CustomException(ResultCodeEnum.USER_NOT_EXIST_ERROR);
}
if (!account.getPassword().equals(dbAdmin.getPassword())) {
throw new CustomException(ResultCodeEnum.USER_ACCOUNT_ERROR);
}
// 生成token
String tokenData = dbAdmin.getId() + "-" + RoleEnum.ADMIN.name();
String token = TokenUtils.createToken(tokenData, dbAdmin.getPassword());
dbAdmin.setToken(token);
return dbAdmin;
}
/**
* 注册
*/
public void register(Account account) {
Admin admin = new Admin();
BeanUtils.copyProperties(account, admin);
add(admin);
}
/**
* 修改密码
*/
public void updatePassword(Account account) {
Admin dbAdmin = adminMapper.selectByUsername(account.getUsername());
if (ObjectUtil.isNull(dbAdmin)) {
throw new CustomException(ResultCodeEnum.USER_NOT_EXIST_ERROR);
}
if (!account.getPassword().equals(dbAdmin.getPassword())) {
throw new CustomException(ResultCodeEnum.PARAM_PASSWORD_ERROR);
}
dbAdmin.setPassword(account.getNewPassword());
adminMapper.updateById(dbAdmin);
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
本专栏的后续所有项目开发都将基于这个脚手架进行 一个为 Java Web 开发者精心设计的高效工具集。这个脚手架旨在加速您的项目启动和开发流程,提供了一系列常用功能和最佳实践的集成方案,帮助您快速构建、部署和维护高质量的 Web 应用程序。 主要特点: 预配置环境:内置了常用的开发工具和框架,包括 Spring Boot、Hibernate、MyBatis 等,简化了环境配置步骤。 模板项目:提供了一些典型的项目模板和示例代码,帮助您快速理解和应用最佳开发实践。 代码生成器:自动生成基础代码和配置文件,减少了重复劳动,提高了开发效率。 集成测试支持:包含了用于单元测试和集成测试的工具和示例,确保应用程序的质量和稳定性。 自动化构建:配置了 Maven 或 Gradle 构建工具,支持自动化构建和持续集成,简化了构建和部署流程。 无论您是刚入门 Java Web 开发的新人,还是经验丰富的开发者,这个脚手架都将为您提供强大的支持,助力您高效开发和维护Web 应用程序。通过利用【JavaWeb技术】专栏专用脚手架,您可以专注于业务逻辑的实现,而不是繁琐的配置和重复性工作。
资源推荐
资源详情
资源评论



















收起资源包目录





































































































共 119 条
- 1
- 2
资源评论


十二月的猫
- 粉丝: 2w+
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 高清网络摄像机工作原理及与模拟摄像机对比.ppt
- 光纤网络系统集成-技术部分标书.doc
- 项目管理的应用完整版.doc
- yin0713-yin0713githubio-52732-1753627400441.zip
- 任务3.3网络营销方法.ppt
- 软件销售下半年工作计划.docx
- 互联网世界观读后感.doc
- 基于WEB的机房管理系统的设计与实现毕业论文.doc
- 网络广告推广方案.doc
- 技术攻关项目管理规定.pdf
- 商务网站设计实用教程PPT课件.ppt
- 物联网低功耗关键技术研发和应用东南大学.doc
- 网络营销策划方案范例.doc
- 康佳集团网络营销方案策划.doc
- 科建网络多媒体教学系统PowerPointPrese.pptx
- 电子商务系统分析与设计LJ.doc
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制
