基于javaweb的SpringBoot推荐算法短视频平台(java+springboot+maven+vue+element-ui+mysql)

运行环境

Java≥8、MySQL≥5.7、Node.js≥14

开发工具

后端:eclipse/idea/myeclipse/sts等均可配置运行
前端:WebStorm/VSCode/HBuilderX等均可

❗没学过node.js的不要搞前后端分离项目

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

481424130701

491424130701

501424130701

511424130701

521424130701

531424130701

541424130701

551424130701

561424130701

基于javaweb的SpringBoot推荐算法短视频平台(java+springboot+maven+vue+element-ui+mysql)

项目介绍 基于Springboot的推荐算法短视频平台系统设计与实现.系统分为管理员与普通用户两种角色。

1)登录模块 在进入系统首页后,首先看到的是登录界面,该界面会提供注册用户的功能,公告、平台咨询、视频中心、登录、注册、关键字搜索、忘记密码。 2)客户端模块 本模块分为密钥管理,角色管理,权限管理,个人信息,视频中心推荐、视频标题、视频类型、发布日期、时长、视频、发布数量、发布用户、等组成。 3)后台管理模块 本模块包括用户管理,模块管理、视频中心、在线留言、留言回复、普通用户统计、轮播图、公告管理、资源管理、系统用户、模块管理、视频中心、视频类型、在线留言等等。

环境需要

1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。

2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;

3.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;

4.是否Maven项目: 否;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven项目

5.数据库:MySql 5.7版本;

技术栈 1. 后端:Springboot+SSM(Spring SpringMVC MyBatis)

首页展示:

 平台咨询和公告:

用户登录页展示:

视频中心推荐: 

视频详情展示:

后台首页展示:

 后台统计展示:

 轮播图页面展示:

后台用户统计展示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
 */
@Autowired
private AccessTokenService tokenService;

@Autowired
private UserGroupService userGroupService;

/**
* 注册
* @param user
* @return
*/
@PostMapping("register")
public Map<String, Object> signUp(@RequestBody User user) {
// 查询用户
Map<String, String> query = new HashMap<>();
query.put("username",user.getUsername());
List list = service.select(query, new HashMap<>()).getResultList();
if (list.size()>0){
return error(30000, "用户已存在");
}
user.setUserId(null);
user.setPassword(service.encryption(user.getPassword()));
service.save(user);
return success(1);
}

/**
* 找回密码
* @param form
* @return
*/
@PostMapping("forget_password")
public Map<String, Object> forgetPassword(@RequestBody User form,HttpServletRequest request) {
JSONObject ret = new JSONObject();
String username = form.getUsername();
String code = form.getCode();
String password = form.getPassword();
// 判断条件
if(code == null || code.length() == 0){
return error(30000, "验证码不能为空");
}
if(username == null || username.length() == 0){
return error(30000, "用户名不能为空");
}
if(password == null || password.length() == 0){
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
 * @param request
* @return
*/
@PostMapping("change_password")
public Map<String, Object> change_password(@RequestBody Map<String, String> data, HttpServletRequest request){
// 根据Token获取UserId
String token = request.getHeader("x-auth-token");
Integer userId = tokenGetUserId(token);
// 根据UserId和旧密码获取用户
Map<String, String> query = new HashMap<>();
String o_password = data.get("o_password");
query.put("user_id" ,String.valueOf(userId));
query.put("password" ,service.encryption(o_password));
Query ret = service.count(query, service.readConfig(request));
List list = ret.getResultList();
Object s = list.get(0);
int count = Integer.parseInt(list.get(0).toString());
if(count > 0){
// 修改密码
Map<String,Object> form = new HashMap<>();
form.put("password",service.encryption(data.get("password")));
service.update(query,service.readConfig(request),form);
return success(1);
}
return error(10000,"密码修改失败!");
}

/**
* 登录态
* @param request
* @return
*/
@GetMapping("state")
public Map<String, Object> state(HttpServletRequest request) {
JSONObject ret = new JSONObject();
// 获取状态
String token = request.getHeader("x-auth-token");

// 根据登录态获取用户ID
Integer userId = tokenGetUserId(token);

log.info("[返回userId] {}",userId);
if(userId == null || userId == 0){
return error(10000,"用户未登录!");
}

// 根据用户ID获取用户
Map<String,String> query = new HashMap<>();
query.put("user_id" ,String.valueOf(userId));
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
 */
@RestController
@RequestMapping("article")
public class ArticleController extends BaseController<Article, ArticleService> {
/**
* 服务对象
*/
@Autowired
public ArticleController(ArticleService service) {
setService(service);
}

}






/**
* (NavAdmin)表控制层
*
*/
@RestController
@RequestMapping("nav_admin")
public class NavAdminController extends BaseController<NavAdmin, NavAdminService> {
/**
* 服务对象
*/
@Autowired
public NavAdminController(NavAdminService service) {
setService(service);
}

}






1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
        return workbook;
}

@Transactional
public void save(E e) {
String s = JSONObject.toJSONString(e);
Map map = JSONObject.parseObject(s, Map.class);
insert(map);
}

public E findOne(Map<String, String> map) {
try {
Query select = select(map, new HashMap<>());
return (E) select.getSingleResult();
} catch (Exception e) {
return null;
}
}


public String encryption(String plainText) {
return plainText;
// String re_md5 = new String();
// try {
// MessageDigest md = MessageDigest.getInstance("MD5");
// md.update(plainText.getBytes());
// byte b[] = md.digest();
//
// int i;
//
// StringBuffer buf = new StringBuffer("");
// for (int offset = 0; offset < b.length; offset++) {
// i = b[offset];
// if (i < 0)
// i += 256;
// if (i < 16)
// buf.append("0");
// buf.append(Integer.toHexString(i));
// }
//
// re_md5 = buf.toString();
//
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
        this.addMap(paramMap);
return success(1);
}

}




/**
* 普通用户:(OrdinaryUsers)表控制层
*
*/
@RestController
@RequestMapping("/ordinary_users")
public class OrdinaryUsersController extends BaseController<OrdinaryUsers, OrdinaryUsersService> {

/**
* 普通用户对象
*/
@Autowired
public OrdinaryUsersController(OrdinaryUsersService service) {
setService(service);
}


@PostMapping("/add")
@Transactional
public Map<String, Object> add(HttpServletRequest request) throws IOException {
Map<String,Object> paramMap = service.readBody(request.getReader());
Map<String, String> mapordinary_users = new HashMap<>();
mapordinary_users.put("ordinary_users",String.valueOf(paramMap.get("ordinary_users")));
List listordinary_users = service.select(mapordinary_users, new HashMap<>()).getResultList();
if (listordinary_users.size()>0){
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
else if(phone != null && "".equals(phone) == false){
map.put("phone", phone);
resultList = service.select(map, new HashMap<>()).getResultList();
}else{
return error(30000, "账号或密码不能为空");
}
if (resultList == null || password == null) {
return error(30000, "账号或密码不能为空");
}
//判断是否有这个用户
if (resultList.size()<=0){
return error(30000,"用户不存在");
}

User byUsername = (User) resultList.get(0);


Map<String, String> groupMap = new HashMap<>();
groupMap.put("name",byUsername.getUserGroup());
List groupList = userGroupService.select(groupMap, new HashMap<>()).getResultList();
if (groupList.size()<1){
return error(30000,"用户组不存在");
}

UserGroup userGroup = (UserGroup) groupList.get(0);

//查询用户审核状态
if (!StringUtils.isEmpty(userGroup.getSourceTable())){
String sql = "select examine_state from "+ userGroup.getSourceTable() +" WHERE user_id = " + byUsername.getUserId();
String res = String.valueOf(service.runCountSql(sql).getSingleResult());
if (res==null){
return error(30000,"用户不存在");
}
if (!res.equals("已通过")){
return error(30000,"该用户审核未通过");
}
}

//查询用户状态
if (byUsername.getState()!=1){
return error(30000,"用户非可用状态,不能登录");
}

String md5password = service.encryption(password);
if (byUsername.getPassword().equals(md5password)) {
// 存储Token到数据库


项目链接:
https://javayms.github.io?id=351524180701201ip
https://javayms.pages.dev?id=351524180701201ip