——————————DescriptionStart——————————
运行环境 Java≥8、MySQL≥5.7、Tomcat≥8、Node.js≥14
开发工具 后端:eclipse/idea/myeclipse/sts等均可配置运行 前端:WebStorm/VSCode/HBuilderX等均可
❗没学过node.js的不要搞前后端分离项目
适用 课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb的SSM+Maven农产品商城系统(java+ssm+vue+layui+jquery+mysql)
1 2 3 4 5 6 管理员: 管理员 123456 用户: zhangsan 123456 wangwu 123456
项目介绍
基于SSM的农产品销售系统
角色:管理员、用户 管理员功能:登录、站点管理、用户管理、内容管理、商城管理、退出 用户功能:注册登录、首页、在线留言、公告消息、网站资讯、购物车、用户中心
环境需要
1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 5.是否Maven项目: 否;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven项目 6.数据库:MySql 5.7/8.0等版本均可;
技术栈
后端:SSM(Spring+SpringMVC+Mybatis) 前端:JSP+CSS+JS+JQUERY+Layui
使用说明
使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,修改配置,运行项目; 3. 将项目中db.xml配置文件中的数据库配置改为自己的配置,然后运行;
——————————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 if (config.get(FindConfig.ORDER_BY) != null && !"" .equals(config.get(FindConfig.ORDER_BY))){ sql.append("order by " ).append(config.get(FindConfig.ORDER_BY)).append(" " ); } if (config.get(FindConfig.PAGE) != null && !"" .equals(config.get(FindConfig.PAGE))){ int page = config.get(FindConfig.PAGE) != null && !"" .equals(config.get(FindConfig.PAGE)) ? Integer.parseInt(config.get(FindConfig.PAGE)) : 1 ; int limit = config.get(FindConfig.SIZE) != null && !"" .equals(config.get(FindConfig.SIZE)) ? Integer.parseInt(config.get(FindConfig.SIZE)) : 10 ; sql.append(" limit " ).append( (page-1 )*limit ).append(" , " ).append(limit); } log.info("[{}] - 查询操作,sql: {}" ,table,sql); return sql.toString(); } @Transactional public void delete (Map<String,String> query,Map<String,String> config) { QueryWrapper wrapper = new QueryWrapper<E>(); toWhereWrapper(query, "0" .equals(config.get(FindConfig.GROUP_BY)),wrapper); baseMapper.delete(wrapper); log.info("[{}] - 删除操作:{}" ,wrapper.getSqlSelect()); } public String count (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("COUNT(" ).append(config.get(FindConfig.GROUP_BY)).append(") FROM " ).append("`" ).append(table).append("`" ); sql.append(toWhereSql(query, "0" .equals(config.get(FindConfig.LIKE)))); }else { sql.append("COUNT(*) FROM " ).append("`" ).append(table).append("`" ); sql.append(toWhereSql(query, "0" .equals(config.get(FindConfig.LIKE)))); } log.info("[{}] - 统计操作,sql: {}" ,table,sql); return sql.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 User byUsername = (User) resultList.get(0 ); Map<String, String> groupMap = new HashMap<>(); groupMap.put("name" ,byUsername.getUserGroup()); List groupList = userGroupService.selectBaseList(userGroupService.select(groupMap, new HashMap<>())); if (groupList.size()<1 ){ return error(30000 ,"用户组不存在" ); } UserGroup userGroup = (UserGroup) groupList.get(0 ); if (!StringUtils.isEmpty(userGroup.getSourceTable())){ String res = service.selectExamineState(userGroup.getSourceTable(),byUsername.getUserId()); 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 public String groupCount (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("COUNT(" ).append(config.get(FindConfig.GROUP_BY)).append(") FROM " ).append("`" ).append(table).append("`" ); sql.append(toWhereSql(query, "0" .equals(config.get(FindConfig.LIKE)))); }else { sql.append("COUNT(*) FROM " ).append("`" ).append(table).append("`" ); sql.append(toWhereSql(query, "0" .equals(config.get(FindConfig.LIKE)))); } log.info("[{}] - 统计操作,sql: {}" ,table,sql); return sql.toString(); } public String sum (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("SUM(" ).append(config.get(FindConfig.FIELD)).append(") FROM " ).append("`" ).append(table).append("`" ); sql.append(toWhereSql(query, "0" .equals(config.get(FindConfig.LIKE)))); 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)))); } 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))));
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 @RestController @RequestMapping("comment") public class CommentController extends BaseController <Comment , CommentService > { @Autowired public CommentController (CommentService service) { setService(service); } } @RestController @RequestMapping("slides") public class SlidesController extends BaseController <Slides , SlidesService > { @Autowired public SlidesController (SlidesService 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 @Autowired private UserGroupService userGroupService;@Autowired private AccessTokenMapper accessTokenMapper;@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 ); } @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 , "用户名不能为空" );
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 } 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 ) { return null ; } JSONObject newObject = new JSONObject(); Set<String> set = object.keySet(); for (String key : set) { Object value = object.get(key); if (value instanceof JSONArray) { value = covertArray(object.getJSONArray(key)); } else if (value instanceof JSONObject) {
——————————PayStart——————————
项目链接: https://javayms.github.io?id=301023292204201ad https://javayms.pages.dev?id=301023292204201ad