看点资讯系统(前后端分离)简述及源码(一些心得)

1.项目提出背景:

随着互联网的发展,大数据时代的来临,大量的数据踊跃而出,它们被包装成各种各样的形式,比如文章,视频,新闻等,它们也被分为不同的类别,像军事,娱乐,财经等,它们分布在各种媒体网站和APP中。百度新闻,一点资讯和今日头条都已经将这些功能非常的完善了。但是随着数据越来越多,需要呈现的内容要更加的简洁方便,于是创建一个看点资讯系统。 看点资讯系统是以新闻发布,资讯展示,信息管理为主要功能的网站,提供了图文、音乐、视频等一体的资讯展示功能。主要包括前台显示和后台管理两大部分,我们采用的是前后台分离的技术,这样的话,后台不需要多大的改动,而前台可根据不同客户的需求去修改定制。

2相关技术:

springboot:

 简化新Spring应⽤的初始搭建以及开发过程.

 有几个特点是:能创建独⽴的Spring应⽤程序           简化Maven配置                 ⾃动配置Spring                            ★约定优于配置(按照约定)

 spring:                

   高性能,易于测试,可复用性强,简单轻量.                         

 模块化比较好内置单元测试,支持MVC,能很好地支持相关协议。

SpringMVC:  

SpringMVC框架是基于MVC模式,使用Java语言开发实现的一个轻量级 Web 框架。通过简单的配置,就能够让SpringMVC框架和Spring容器一起使用,SpringMVC提供了一整套完善的组件,可以直接使用。      

它的优点: 框架的配置简单又不失灵活性           代码的可重用性很高                 可扩展性好

springdata-jpa:

 Spring Data JPA 是 Spring 基于 ORM 框架、JPA 规范的基础上封装的⼀套JPA应⽤框架,可使开发者⽤极简的代码即可实现对数据的访问和操作。它提供了包括增删改查等在内的常⽤功能,使⽤ Spring Data JPA 可以极⼤提⾼开发效率!因为项目中使用了JPA,可以在实体类中配置完关系映射后,让JPA根据配置自动创建表.

数据库:

mysql是一个免费开源的关系型数据库管理系统 特点:       MySQL 是一个真正的多用户、多线程 SQL 数据库服务器。它能够快速、有效 和安全的处理大量的数据。       MySQL 的使用是非常简单的,主要目标是快速、健壮和易用       在任何平台上都能使用,占用的空间相对较小

文档管理:

Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务,配置生成的在线API文档。方便前台查看!

3具备功能:  

      用户模块                                        角色模块                                        资讯模块                                        类别模块                                        评论模块

 

 

 

 

 

 部分源码:

资讯功能:

public class ArticleController {
	@Autowired
	private ArticleService service;
	
	//发布资讯或者编辑资讯
	@ApiOperation(value = "发布资讯",notes = "传递一个json格式的资讯对象的字符串")
	@PostMapping("/saveArticle")
	public Result saveArticle(@RequestBody Article article) {
		service.saveOrUpdateArticle(article);
		return Result.success(article);
	}
	
	//分页查询所有资讯
	@ApiOperation(value = "分页查询所有资讯",notes = "不需要参数")
	@GetMapping("/findAllArticle")
	public Result findAllArticle() {
		Page<Article> page = service.findAll(0, 10);
		return Result.success(page);
	}
	
	//根据ID删除多个资讯信息
	@ApiOperation(value = "删除多个资讯",notes = "输入被删除的资讯ID(集合或者数组类型的字符串)")
	@DeleteMapping("/deleteArticle")
	public Result deleteArticle(@RequestBody List<Long> ids) {
		service.deleteArticleInBatch(ids);
		return Result.success("删除成功");
	}
	
	//更新资讯状态(未审核0,审核通过1,审核失败2)
	@ApiOperation(value = "更新资讯状态",notes = "输入要更新状态的资讯ID")
	@PutMapping("/updateArticleStatus")
	public Result updateArticleStatus(Long id,String status) {
		service.updateArticleStatus(id, status);
		return Result.success("更新状态成功");
	}
	
	//根据资讯id查找资讯的所有评论,并分页显示评论
	
}

分类功能: 

@Api(tags = "分类模块")
@RestController
public class CategoryController {
	
	@Autowired
	private CategoryService service;
	
	//查询所有分类
	@ApiOperation(value = "查询所有分类",notes = "不需要输入参数")
	@GetMapping("/findAllCategory")
	public Result findAllCategory() {
		Page<Category> ct = service.findAll(0, 3);
		return Result.success(ct);
	}
	
	//添加分类
	@ApiOperation(value = "添加分类",notes = "传递一个json格式的分类对象的字符串")
	@PostMapping("/saveCategory")
	public Result saveCategory(@RequestBody Category category) {
		service.saveOrUpdateCategory(category);
		return Result.success("添加成功");
	}
	
	//根据ID删除多个分类信息
	@ApiOperation(value = "删除多个分类信息",notes = "输入被删除的分类ID(集合或数组类型的字符串)")
	@DeleteMapping("/deleteAllCategory")
	public Result deleteCategory(@RequestBody List<Long> ids) {
		service.deleteCategoryInBatch(ids);
		return Result.success("删除成功");
	}
	
	//按序号升序查询所有分类,并进行分页
	@ApiOperation(value = "按序号升序查询所有分类",notes = "不需要输入参数")
	@GetMapping("/findAllCategorySortByNo")
	public Result findAllCategorySortByNo() {
		Page<Category> page = service.findAllSortbyno(0, 5);
		return Result.success(page);
	}
	
	//更新分类的序号
	@ApiOperation(value = "更新分类序号",notes = "需要更新序号的分类ID")
	@PutMapping("/updateNo")
	public Result updateCategoryNo(Long id,int no) {
		service.updateCategoryNo(id, no);
		return Result.success("更新成功");
	}
}

评论功能 

@Api(tags = "评论模块")
@RestController
public class CommentController {
	
	@Autowired
	private CommentService service;
	
	//分页获取所有评论
	@ApiOperation(value = "查询所有评论",notes = "不需要输入参数")
	@GetMapping("/findAllComment")
	public Result findAllComment() {
		Page<Comment> cm = service.findAll(0, 5);
		return Result.success(cm);
	}
	
	//新增评论或者更新评论
	@ApiOperation(value = "添加评论",notes = "传递一个json格式的评论对象的字符串")
	@PostMapping("/saveComment")
	public Result saveComment(@RequestBody Comment comment) {
		service.saveOrUpdateComment(comment);
		return Result.success("添加成功");
	}
	
	//批量删除评论
	@ApiOperation(value = "删除多个评论",notes = "输入被删除的评论ID(集合或数组类型的字符串)")
	@DeleteMapping("/deleteAllComment")
	public Result deleteComment(@RequestBody List<Long> ids) {
		service.deleteCommentInBatch(ids);
		return Result.success("删除成功");
	}
	
	//根据资讯id分页获取所有评论
	
}

角色模块 

@Api(tags = "角色模块")
@RestController
public class RoleController {
	@Autowired
	private RoleService service;
	
	//注册一个角色
	@ApiOperation(value = "注册角色",notes = "传递一个json格式的角色对象的字符串")
	@PostMapping("/saveRole")
	public Result saveRole(@RequestBody Role role) {
		//调用service层方法完成注册的业务逻辑
		service.saveOrUpdateRole(role);
		return Result.success(role);
	}
	
	//根据角色名称查找具体的角色信息
	@ApiOperation(value = "查询角色",notes = "传递一个字符串型的角色名称")
	@ApiImplicitParams(
        @ApiImplicitParam(name = "name",value = "角色名称"))
	@GetMapping("/findRole")
	public Result findRoleByName(String name) {
		//调用service层方法完成注册的业务逻辑
		Role role = service.findRoleByName(name);
		if(role==null) {
			throw new ServiceException(ResultCode.USER_NOT_EXIST);
		}
		return Result.success(role);
	}
	
	   //   查找全部的用户信息
	   @ApiOperation(value = "分页查询全部角色",notes = "一个整数类型的页码数")
	   @ApiImplicitParams(
			   {
				   @ApiImplicitParam(value = "需要查看第几页的内容",name = "pageIndex")
			})
	   @GetMapping("/findAllRole")
	   public Result findAllRole(int pageIndex) {
		    Page<Role> page =service.findAll(pageIndex, 1);
		    return Result.success(page);
	   }
	
	//通过ID删除单个角色信息
	@ApiOperation(value = "删除单个角色信息",notes = "传递被删除角色的ID")
	@DeleteMapping("/delete/{roleId}")
	public Result deleteRoleById(@PathVariable("roleId") Long roleId) {
		service.deleteRoleById(roleId);
		return Result.success("删除成功");
	}
	
	//通过ID删除多个角色信息
		@ApiOperation(value = "删除多个角色信息",notes = "传递被删除角色的ID(集合或者数组格式的字符串)")
		@DeleteMapping("/deleteAll")
		public Result deleteRole(@RequestBody List<Long> ids) {
			System.out.println(ids);
			service.deleteRoleInBatch(ids);
			return Result.success("删除成功");
		}
}

用户功能 

@Api(tags = "用户模块")
@RestController
public class UserController {
	@Autowired
	private UserService service;
	
	//添加用户
	@ApiOperation(value="注册用户",notes="传递一个json格式的用户对象的字符串")
	@PostMapping("/saveUser")
	public Result addUser(@RequestBody User user) {
		service.saveOrUpdateUser(user);
		return Result.success(user);
	}
	
	//根据ID查询用户信息
	@ApiOperation(value = "根据ID查询用户",notes = "要查询的用户ID")
	@ApiImplicitParams(
	      @ApiImplicitParam(name = "ID",value = "用户ID"))
	@GetMapping("/findUserById/{userId}")
	public Result findUserById(@PathVariable("userId") Long userId) {
		//调用service层方法完成注册的业务逻辑
		User user = service.findUserById(userId);
		if(user==null) {
			throw new ServiceException(ResultCode.USER_NOT_EXIST);
		}
		return Result.success(user);
	}
	
	//根据用户名查询用户
	@ApiOperation(value = "根据Name查询用户",notes = "要查询的用户名")
	@ApiImplicitParams(
	      @ApiImplicitParam(name = "name",value = "用户名"))
	@GetMapping("/findUserByName")
	public Result findUserByName(String name) {
		//调用service层方法完成注册的业务逻辑
		User user = service.findUserByUsername(name);
		if(user==null) {
			throw new ServiceException(ResultCode.USER_NOT_EXIST);
		}
		return Result.success(user);
	}
		
	//查询所有的用户信息
	@ApiOperation(value="查询所有用户",notes = "不需要传入参数")
	@GetMapping("/findAllUser")
	public Result findAllUser(){
		Page<User> page = service.getAll(0, 3);
		return Result.success(page);
	}
	
	//根据ID删除单个用户信息
	@ApiOperation(value = "删除单个用户",notes = "被删除用户的ID")
	@DeleteMapping("/deleteUser/{userId}")
	public Result deleteUserById(@PathVariable("userId") Long userId) {
		service.deleteUserById(userId);
		return Result.success("删除成功");
	}
	
	//根据ID删除多个用户信息
	@ApiOperation(value = "删除多个用户",notes = "被删除用户的ID(集合或数组格式的字符串)")
	@DeleteMapping("/deleteAllUser")
	public Result deleteUser(@RequestBody List<Long> ids) {
		service.deleteUserInBatch(ids);
		return Result.success("删除成功");
	}
	
	//根据ID修改用户的状态
	@ApiOperation(value = "修改用户状态",notes = "要修改的用户ID")
	@PutMapping("/updateUser/{userId}/{status}")
	public Result updateUserById(@PathVariable("userId") Long userId,@PathVariable("status") String status) {
		service.updateUserStatus(userId,status);
		return Result.success("更新成功");
	}
	
	//用户登录
	@ApiOperation(value = "用户登录",notes = "输入用户名和密码")
	@PostMapping("/loginUser")
	public Result loginUser(String username,String password) {
		User user = service.login(username, password);
		if(user==null||!user.getPassword().equals(password)) {
			throw new ServiceException(ResultCode.USER_LOGIN_ERROR);
		}
		//判断用户状态(正常/禁用)
		if(user.getStatus().equals("1")) {
			throw new ServiceException(ResultCode.USER_STATUS_ERROR);
		}
		return Result.success(user);
	}
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

登登登__

期待每一份真诚

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值