——————————DescriptionStart——————————
运行环境 Java≥8、MySQL≥5.7、Node.js≥14
开发工具 后端:eclipse/idea/myeclipse/sts等均可配置运行 前端:WebStorm/VSCode/HBuilderX等均可
❗没学过node.js的不要搞前后端分离项目
适用 课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb的SpringBoot扶农助农平台管理系统(java+springboot+maven+elementui+vue+mysql)
项目介绍
本项目分为前后台,前台为普通用户角色,后台为管理员角色;
管理员角色包含以下功能:
管理员登录,类目管理,用户管理,农产品管理,订单管理,公告管理,留言管理,查看日志等功能。
用户角色包含以下功能:
查看首页,用户登录,查看商品详情,查看我的收藏,查看我的购物车,查看我的订单,提交留言,修改个人信息,修改密码,自然风光,扶贫申请,爱心捐赠,捐赠记录,留言反馈,资源管理,商城管理,公告信息管理,轮播图等功能。
环境需要
1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。
2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;
3.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;
4.数据库:MySql 5.7/8.0等版本均可;
技术栈
java+Springboot+ElementUI+Vue+Mysql
——————————CodeStart——————————
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 Integer userId = tokenGetUserId(token); log.info("[返回userId] {}" ,userId); if (userId == null || userId == 0 ){ return error(10000 ,"用户未登录!" ); } Map<String,String> query = new HashMap<>(); query.put("user_id" ,String.valueOf(userId)); Query select = service.select(query,service.readConfig(request)); List resultList = select.getResultList(); if (resultList.size() > 0 ) { JSONObject user = JSONObject.parseObject(JSONObject.toJSONString(resultList.get(0 ))); user.put("token" ,token); ret.put("obj" ,user); return success(ret); } else { return error(10000 ,"用户未登录!" ); } } @GetMapping("quit") public Map<String, Object> quit (HttpServletRequest request) { String token = request.getHeader("x-auth-token" ); JSONObject ret = new JSONObject(); Map<String, String> query = new HashMap<>(16 ); query.put("token" , token); try { tokenService.delete(query,service.readConfig(request)); }catch (Exception e){ e.printStackTrace(); } return success("退出登录成功!" ); } public Integer tokenGetUserId (String token) {
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 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; } public static String humpToLine (String str) { if (str == null ) { return null ; } char [] charArray = str.toCharArray(); StringBuilder buffer = new StringBuilder(); for (int i = 0 , l = charArray.length; i < l; i++) { if (charArray[i] >= 65 && charArray[i] <= 90 ) { buffer.append("_" ).append(charArray[i] += 32 );
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 (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)) { AccessToken accessToken = new AccessToken(); accessToken.setToken(UUID.randomUUID().toString().replaceAll("-" , "" )); accessToken.setUser_id(byUsername.getUserId()); tokenService.save(accessToken); JSONObject user = JSONObject.parseObject(JSONObject.toJSONString(byUsername)); user.put("token" , accessToken.getToken()); JSONObject ret = new JSONObject(); ret.put("obj" ,user); return success(ret); } else { return error(30000 , "账号或密码不正确" ); } }
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 } public Query barGroup (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(config.get(FindConfig.GROUP_BY)); if (config.get(FindConfig.FIELD) != null && !"" .equals(config.get(FindConfig.FIELD))){ String[] fieldList = config.get(FindConfig.FIELD).split("," ); for (int i=0 ;i<fieldList.length;i++) sql.append(" ,SUM(" ).append(fieldList[i]).append(")" ); } sql.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.GROUP_BY)).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 runCountSql(sql.toString()); } public Query selectGroupCount (Map<String,String> query,Map<String,String> config) { StringBuffer sql = new StringBuffer("select COUNT(*) AS count_value, " ); sql.append(config.get(FindConfig.GROUP_BY)).append(" " ); sql.append("from " ).append("`" ).append(table).append("` " ); sql.append(toWhereSql(query, "0" .equals(config.get(FindConfig.LIKE)),config.get(FindConfig.SQLHWERE))); if (config.get(FindConfig.GROUP_BY) != null && !"" .equals(config.get(FindConfig.GROUP_BY))){ sql.append("group by " ).append(config.get(FindConfig.GROUP_BY)).append(" " ); } log.info("[{}] - 查询操作,sql: {}" ,table,sql); return runCountSql(sql.toString()); } public Query select (Map<String,String> query,Map<String,String> config) { StringBuffer sql = new StringBuffer("select " ); sql.append(config.get(FindConfig.FIELD) == null || "" .equals(config.get(FindConfig.FIELD)) ? "*" : config.get(FindConfig.FIELD)).append(" " ); sql.append("from " ).append("`" ).append(table).append("`" ).append(toWhereSql(query, "0" .equals(config.get(FindConfig.LIKE)),config.get(FindConfig.SQLHWERE))); if (config.get(FindConfig.GROUP_BY) != null && !"" .equals(config.get(FindConfig.GROUP_BY))){ sql.append("group by " ).append(config.get(FindConfig.GROUP_BY)).append(" " ); } if (config.get(FindConfig.ORDER_BY) != null && !"" .equals(config.get(FindConfig.ORDER_BY))){
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 } public static String humpToLine (String str) { if (str == null ) { return null ; } char [] charArray = str.toCharArray(); StringBuilder buffer = new StringBuilder(); for (int i = 0 , l = charArray.length; i < l; i++) { if (charArray[i] >= 65 && charArray[i] <= 90 ) { buffer.append("_" ).append(charArray[i] += 32 ); } else { buffer.append(charArray[i]); } } String s = buffer.toString(); if (s.startsWith("_" )){ return s.substring(1 ); }else { return s; } } public JSONObject covertObject (JSONObject object) { if (object == null ) {
——————————PayStart——————————
项目链接: https://javayms.github.io?id=301524180701201ik https://javayms.pages.dev?id=301524180701201ik