基于javaweb的SSM+Maven旅游景点管理系统(java+ssm+vue+javascript+ajax+mysql)

运行环境

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

开发工具

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

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

适用

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

功能说明

301324560701

311324560701

321324560701

331324560701

341324560701

351324560701

基于javaweb的SSM+Maven旅游景点管理系统(java+ssm+vue+javascript+ajax+mysql)

项目介绍

本项目分为前台与后台,前台为游客浏览,后台为管理员管理;

1
2
3
4
5
管理员:
admin 123465

用户(可自行注册):
user1 123456

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
        else if (request.getRequestURL().toString().contains("/api/user/state")){
return true;
}
else if (request.getRequestURL().toString().contains("/api/user/register")){
return true;
}
// if (token == null || "".equals(token)){
// if ("POST".equals(request.getMethod())){
// return false;
// }else {
// return true;
// }
// }else {
return true;
// }
}

@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) {
//更新token
}

@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
}

private void failure(HttpServletRequest request, HttpServletResponse response) throws IOException {
response.setHeader("Content-type", "application/json;charset=UTF-8");
response.setStatus(401);
// response.getWriter().write("");
response.sendRedirect("https://www.baidu.com");
}

private void setHeader(HttpServletRequest request, HttpServletResponse response) {
//跨域的header设置
response.setHeader("Access-control-Allow-Origin", request.getHeader("Origin"));
response.setHeader("Access-Control-Allow-Methods", "GET, HEAD, POST, PUT, DELETE, TRACE, OPTIONS, PATCH");
response.setHeader("Access-Control-Allow-Credentials", "true");
response.setHeader("Access-Control-Allow-Headers", request.getHeader("Access-Control-Request-Headers"));
response.setHeader("Access-Control-Max-Age", "1800");
//防止乱码,适用于传输JSON数据
response.setHeader("Content-Type", "application/json;charset=UTF-8");
response.setStatus(HttpStatus.OK.value());
}

}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23


/**
* 用户账户:用于保存用户登录信息(User)表控制层
*
*/
@Slf4j
@RestController
@RequestMapping("user")
public class UserController extends BaseController<User, UserService> {
/**
* 服务对象
*/
@Autowired
public UserController(UserService service) {
setService(service);
}

/**
* Token服务
*/
@Autowired
private AccessTokenService tokenService;
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
50
51
52
53
54
    if (config.get(FindConfig.GROUP_BY) != null && !"".equals(config.get(FindConfig.GROUP_BY))){
sql.append("SUM(").append(config.get(FindConfig.FIELD)).append(") FROM ").append("`").append(table).append("`");
sql.append(toWhereSql(query, "0".equals(config.get(FindConfig.LIKE)),config.get(FindConfig.SQLHWERE)));
sql.append(" ").append("GROUP BY ").append(config.get(FindConfig.GROUP_BY));
}else {
sql.append(" SUM(").append(config.get(FindConfig.FIELD)).append(") FROM ").append("`").append(table).append("`");
sql.append(toWhereSql(query, "0".equals(config.get(FindConfig.LIKE)),config.get(FindConfig.SQLHWERE)));
}
log.info("[{}] - 查询操作,sql: {}",table,sql);
return sql.toString();
}

public String avg(Map<String,String> query,Map<String,String> config){
StringBuffer sql = new StringBuffer(" SELECT ");
if (config.get(FindConfig.GROUP_BY) != null && !"".equals(config.get(FindConfig.GROUP_BY))){
sql.append("AVG(").append(config.get(FindConfig.FIELD)).append(") FROM ").append("`").append(table).append("`");
sql.append(toWhereSql(query, "0".equals(config.get(FindConfig.LIKE)),config.get(FindConfig.SQLHWERE)));
sql.append(" ").append("GROUP BY ").append(config.get(FindConfig.GROUP_BY));
}else {
sql.append(" AVG(").append(config.get(FindConfig.FIELD)).append(") FROM ").append("`").append(table).append("`");
sql.append(toWhereSql(query, "0".equals(config.get(FindConfig.LIKE)),config.get(FindConfig.SQLHWERE)));
}
log.info("[{}] - 查询操作,sql: {}",table,sql);
return sql.toString();
}

public void toWhereWrapper(Map<String,String> query, Boolean like, QueryWrapper wrapper) {
if (query.size() > 0) {
try {
for (Map.Entry<String, String> entry : query.entrySet()) {
if (entry.getKey().contains(FindConfig.MIN_)) {
String min = humpToLine(entry.getKey()).replace("_min", "");
wrapper.ge(min,URLDecoder.decode(entry.getValue(), "UTF-8"));
continue;
}
if (entry.getKey().contains(FindConfig.MAX_)) {
String max = humpToLine(entry.getKey()).replace("_max", "");
wrapper.le(max,URLDecoder.decode(entry.getValue(), "UTF-8"));
continue;
}
if (like == true) {
if (entry.getValue()!=null)
wrapper.like(humpToLine(entry.getKey()),"%"+URLDecoder.decode(entry.getValue(), "UTF-8")+"%");
} else {
if (entry.getValue()!=null)
wrapper.eq(humpToLine(entry.getKey()),URLDecoder.decode(entry.getValue(), "UTF-8"));
}
}
} catch (UnsupportedEncodingException e) {
log.info("拼接sql 失败:{}", e.getMessage());
}
}
}

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
//    }

@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 {
return (E)baseMapper.selectBaseOne(select(map, new HashMap<>()));
}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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
 */
@Slf4j
@RestController
@RequestMapping("user")
public class UserController extends BaseController<User, UserService> {
/**
* 服务对象
*/
@Autowired
public UserController(UserService service) {
setService(service);
}

/**
* Token服务
*/
@Autowired
private AccessTokenService tokenService;

@Autowired
private UserGroupService userGroupService;

@Autowired
private AccessTokenMapper accessTokenMapper;

/**
* 注册
* @return
*/
@PostMapping("register")
public Map<String, Object> signUp(HttpServletRequest request) throws IOException {
// 查询用户
Map<String, String> query = new HashMap<>();
Map<String,Object> map = service.readBody(request.getReader());
query.put("username",String.valueOf(map.get("username")));
List list = service.selectBaseList(service.select(query, new HashMap<>()));
if (list.size()>0){
return error(30000, "用户已存在");
}
map.put("password",service.encryption(String.valueOf(map.get("password"))));
service.insert(map);
return success(1);
}

/**
* 找回密码
* @param form
* @return
*/
@PostMapping("forget_password")
public Map<String, Object> forgetPassword(@RequestBody User form, HttpServletRequest request) {


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