当前位置: 首页 > 编程日记 > 正文

Java项目:花店商城系统(java+Springboot+Maven+mybatis+Vue+Mysql)

源码获取:博客首页 "资源" 里下载!

一、项目简述

本系统功能包括:
商品的分类展示,用户的注册登录,购物车,订单结算,购物车加减,后台商品管理,分类管理,订单管理等等功能。

二、项目运行

环境配置:

Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。

项目技术:

Springboot + Maven + mybatis+ Vue 等等组成,B/S模式 + Maven管理等等。

订单管理控制层:

/*** 用户**/
@RestController
@RequestMapping("order")
public class OrderController {@AutowiredOrderService orderService;@AutowiredUserDao userDao;@AutowiredOrderDao orderDao;@AutowiredFlowersDao flowersDao;@RequestMapping("/test")R test() {R r = new R();return r.setCode(4000).setMsg(Constant.IMG_PATH).setData(orderDao.findAll(null));}@RequestMapping("/queryByAccount")R queryByAccount(@RequestParam("account") String account) {R r = new R();if (StringUtil.isEmpty(account)) {return r.setCode(4000).setMsg(HttpMsg.INVALID_PARAM);}List<Order> orders = orderService.queryByAccount(account);return r.setCode(2000).setData(orders);}@RequestMapping("/find")R find(@RequestParam("page") int page, @RequestParam("searchKey") String searchKey, @RequestParam("account") String account) {R r = new R();Map<String, Object> map = new HashMap<>();List<Order> orders = orderService.find(searchKey, account);if (orders == null) {return r.setCode(2000);}map.put("items", orders);map.put("len", orders.size());return r.setCode(2000).setData(map);}@RequestMapping("/findAll")R findAll(@RequestParam("page") int page, @RequestParam("searchKey") String searchKey) {R r = new R();Map<String, Object> map = new HashMap<>();List<Order> orders = orderService.findAll(searchKey);if (orders == null) {return r.setCode(2000);}List<Order> items = orders.size() >= page * Constant.PAGE_SIZE ?orders.subList((page - 1) * Constant.PAGE_SIZE, page * Constant.PAGE_SIZE): orders.subList((page - 1) * Constant.PAGE_SIZE, orders.size());int len = orders.size() % Constant.PAGE_SIZE == 0 ? orders.size() / Constant.PAGE_SIZE: (orders.size() / Constant.PAGE_SIZE + 1);List<OrderVo> vos = new ArrayList<>();for (Order item : items) {User user = userDao.queryById(item.getUid());OrderVo vo = new OrderVo();vo.setAddress(user.getAddress()).setPhone(user.getPhone()).setUsername(user.getName()).setAmount(item.getAmount()).setFlower(item.getFlower()).setId(item.getId()).setUid(item.getUid()).setOrder_guid(item.getOrder_guid()).setPrice(item.getPrice()).setState(item.getState());vos.add(vo);}map.put("items", vos);map.put("len", len);return r.setCode(2000).setData(map);}@RequestMapping("/update")R update(@RequestBody Order order) {R r = new R();int ans = orderService.update(order);if (ans >= 0) {return r.setCode(2000).setMsg(HttpMsg.UPDATE_USER_OK);}return r.setCode(4000).setMsg(HttpMsg.UPDATE_USER_FAILED);}@RequestMapping("/changeState")R changeState(@RequestBody Order order) {orderDao.changeState(order);return new R().setCode(2000).setMsg(HttpMsg.UPDATE_ORDER_OK);}@DeleteMapping("/delete")R delete(@RequestParam("id") int id) {R r = new R();int ans = orderService.delete(id);if (ans == 1) {return r.setCode(2000).setMsg(HttpMsg.DELETE_USER_OK);}return r.setCode(4000).setMsg(HttpMsg.DELETE_USER_FAILED);}
}

用户管理控制层:

/*** 用户**/
@RestController
@RequestMapping("user")
public class UserController {@AutowiredUserService userService;@AutowiredUserDao dao;@RequestMapping("/test")R test() {R r = new R();return r.setCode(4000).setMsg(Constant.IMG_PATH).setData(dao.findAll());}@RequestMapping("/queryInfoByAccount")R queryInfoByAccount(@RequestParam("account") String account) {R r = new R();if (StringUtil.isEmpty(account)){return r.setCode(4000).setMsg(HttpMsg.INVALID_PARAM);}User loginUser = userService.queryInfo(account);if (loginUser == null){return r.setCode(4000).setMsg(HttpMsg.INVALID_USER);}return r.setCode(2000).setData(loginUser);}@RequestMapping("/find")R find(@RequestParam("page") int page, @RequestParam("searchKey") String searchKey) {R r = new R();Map<String, Object> map = new HashMap<>();List<User> users = userService.find(searchKey);if (users == null) {return r.setCode(2000);}List<User> items = users.size() >= page * Constant.PAGE_SIZE ?users.subList((page - 1) * Constant.PAGE_SIZE, page * Constant.PAGE_SIZE): users.subList((page - 1) * Constant.PAGE_SIZE, users.size());int len = users.size() % Constant.PAGE_SIZE == 0 ? users.size() / Constant.PAGE_SIZE: (users.size() / Constant.PAGE_SIZE + 1);map.put("items", items);map.put("len", len);return r.setCode(2000).setData(map);}@RequestMapping("/create")R create(@RequestBody User user) {R r = new R();int ans = userService.add(user);if (ans == 1) {return r.setCode(2000).setMsg(HttpMsg.ADD_USER_OK);}return r.setCode(4000).setMsg(HttpMsg.ADD_USER_FAILED);}@RequestMapping("/update")R update(@RequestBody User user) {R r = new R();int ans = userService.update(user);if (ans >= 0) {return r.setCode(2000).setMsg(HttpMsg.UPDATE_USER_OK);}return r.setCode(4000).setMsg(HttpMsg.UPDATE_USER_FAILED);}@DeleteMapping("/delete")R delete(@RequestParam("id") int id) {R r = new R();int ans = userService.delete(id);if (ans == 1) {return r.setCode(2000).setMsg(HttpMsg.DELETE_USER_OK);}return r.setCode(4000).setMsg(HttpMsg.DELETE_USER_FAILED);}
}

登录控制层:

/*** 登录**/
@RestController
@RequestMapping("login")
public class LoginController {@AutowiredLoginDao loginDao;@RequestMapping("/doLogin")R doLogin(@RequestBody LoginForm form) {R r = new R();if (!VerifyUtil.verifyLoginForm(form)) {return r.setCode(4000).setMsg(HttpMsg.ERROR_INPUT);}User loginUser = loginDao.login(form);if (loginUser != null) {return r.setCode(2000).setMsg("欢迎您:" + loginUser.getName()).setData(loginUser);}return r.setCode(4000).setMsg(HttpMsg.ERROR_VERIFY);}@RequestMapping("/test")R test() {R r = new R();return r.setCode(4000).setMsg(Constant.IMG_PATH);}}

源码获取:博客首页 "资源" 里下载!

相关文章:

简单又好看的按钮,扁平化按钮。

原文 http://blog.csdn.net/peijiangping1989/article/details/19333779主题 安卓开发今天分享一下流行的扁平化按钮。完全不需要用到图片哦。效果图如下&#xff1a; 里面有2个按钮都是一样的模式。只要修改的色值就可以。下面跟我来更新你的UI吧。 首先编写 button.xml 代码…

MahApps.Metro

ModernUI for WPF Mahapps.metro home Mahapps.metro Quick start Mahapps.metro controls转载于:https://www.cnblogs.com/xakml/p/3682173.html

用herl工具解决微信内链接或二维码可直接用外部浏览器打开

很多朋友问我怎么解决微信内点击链接或扫描二维码可以直接跳出微信在外部浏览器打开网页链接&#xff0c;其实这并不难&#xff0c;只要我们实现微信跳转功能即可。 下面给大家推荐 herl工具&#xff08;http://www.nicejump.cn/&#xff09; 使用步骤 1. 用浏览器打开我们的工…

shell之“/dev/null 21”

shell中可能经常能看到&#xff1a;>/dev/null 2>&1 命令的结果可以通过%>的形式来定义输出 分解这个组合&#xff1a;“>/dev/null 2>&1” 为五部分。 1&#xff1a;> 代表重定向到哪里&#xff0c;例如&#xff1a;echo "123" &g…

Java项目:角色权限后台脚手架系统(java+Springboot+Maven+myBaits-Plus+Vue+Element-UI+Mysql)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; Springboot框架myBaits-PlusMySQL实现的角色权限后台管理脚手架系统实战项目&#xff0c;实现的是所有系统最基础的后台管理功能&#xff0c;有了这个脚手架&#xff0c;以后开发别的项目就在这上面快速增加…

30+程序员,平时都忙些什么事情?平时都想些什么?以后有啥计划?

很多人都说&#xff0c;30岁以后了&#xff0c;写程序还有前途嘛&#xff1f;我有时候也迷茫&#xff0c;但是迷茫过后&#xff0c;总会给自己寻找方向&#xff0c;每个人都需要有个信念、没有信念&#xff0c;活着就没意思&#xff0c;无聊&#xff0c;觉得没奔头了。 废话少说…

用于制图、写电子邮件、创建条形码控件Aspose.Total

2019独角兽企业重金招聘Python工程师标准>>> Aspose.Total 提供了 Aspose 可以使用的任何组件&#xff0c;以及你每年订阅中发布的所有新组件。通过它&#xff0c;你能够有计划地操纵一些商业中最流行的文件格式&#xff1a;Word, Excel, PowerPoint, Project, PDF …

循环for语句 if语句

if语句&#xff1a; if(表达式){ 代码 }else if(表达式){ 代码 } for循环&#xff1a; for(var i0; i<10; i){ alert(1); (弹窗&#xff09; } if语句&#xff1a; if(表达式){ 代码 }else if(表达式){ 代码 } for循环&#xff1a; for(var i0; i<10; i){ alert(1); (弹窗…

Linux中的粘滞位

Linux中的粘滞位 Sticky 位是一个访问权限标志位&#xff0c;可以用来标示文件和路径。 历史&#xff1a; 粘滞位是在1974年Unix的第5版中引入的&#xff0c;用来设置可执行文件。当可执行文件设置粘滞位之后&#xff0c;它能够指示操作系统在程序退出后&#xff0c;保留程序…

Java项目:实现权限管理系统(java+SpringBoot+MyBatis+AOP+LayUI+Mysql)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; springbootmybatis使用面向切面编程&#xff08;AOP&#xff09;实现的权限管理系统。 共五个模块&#xff0c;角色管理&#xff0c;菜单管理&#xff0c;实验室管理&#xff0c;学生管理&#xff0c;管理员…

阅读10、11、12章

第10章 假设用户交付给我们一个 任务&#xff0c;然后我们通过调研的出来的结果进行设计&#xff0c;最后的结果跟用户想象的不一样&#xff0c;这应该怎么做&#xff1f; 第11章 团队合作真的需要有那么繁琐的步骤&#xff08;例如每日例会&#xff09;吗&#xff1f; 第12章 …

SQL删除重复数据方法

原文:SQL删除重复数据方法例如&#xff1a; id name value 1 a pp 2 a pp 3 b iii 4 b pp 5 b …

#pragma once与#ifndef

在C/C中&#xff0c;在使用预编译指令#include的时候&#xff0c;为了防止重复引用造成二义性的两种方法。 #ifndef 它不光可以保证同一份文件不会被包含两次&#xff0c;也能够保证不同文件完全相同的内容不会被包含两次。但&#xff0c;同样的&#xff0c;如果自定义的宏名不…

grep 在HP-UX下的递归查找

grep 在HP-UX下的递归查找Linux: man grep 可以看到 -r 选项-R, -r, --recursiveRead all files under each directory, recursively; this is equivalent to the -d recurse option.即&#xff1a;-r 选项可以查找指定目录下每个子目录下的所有文件eg:grep -r "28281&quo…

Java项目:实现个人博客系统(java+springboot+mybatis+redis+vue+elementui+Mysql)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; springbootmybatis前端vue&#xff0c;使用前后端分离架构实现的个人博客系统&#xff0c;共7个模块&#xff0c;首页&#xff0c;写博客&#xff0c;博客详情页&#xff0c;评论管理&#xff0c;文章分类&a…

软件工程--总作业(已经完成)

用户调研&#xff1a;http://www.cnblogs.com/OuZeBo/p/4580146.htmlalpha阶段总结&#xff1a;http://www.cnblogs.com/OuZeBo/p/4580146.html对其他组评价的反馈&#xff1a;已评论其他组&#xff0c;暂时没有其他组对我们组进行评论描述项目的典型用户与场景&#xff1a;已完…

linux各文件夹的作用域

目錄應放置檔案內容/bin系統有很多放置執行檔的目錄&#xff0c;但/bin比較特殊。因為/bin放置的是在單人維護模式下還能夠被操作的指令。在/bin底下的指令可以被root與一般帳號所使用&#xff0c;主要有&#xff1a;cat, chmod, chown, date, mv, mkdir, cp, bash等等常用的指…

LOJ 2721 「NOI2018」屠龙勇士——扩展中国剩余定理

题目&#xff1a;https://loj.ac/problem/2721 1.注意别一输入 p[ i ] 就 a[ i ] % p[ i ] &#xff0c;因为在 multiset 里找的时候还需要真实值。 2.注意用 multiset 。并且&#xff0c;因为要 upper_bound( a[ i ] ) &#xff0c;而 a[ i ] 是一个 long long 类型的&#xf…

setuid和setgid

setuid 和 setgid (全称分别是&#xff1a;set user ID upon execution 和 set group ID upon execution)是Unix的访问权限标志位&#xff0c;它允许 用户以可执行文件owner或group的权限来运行这个可执行文件。它们经常适用于&#xff1a;为了运行特定的任务&#xff0c;可以允…

Java项目:宠物医院预约挂号系统(java+JSP+Spring+SpringBoot+MyBatis+html+layui+maven+Mysql)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 一、项目简述功能包括&#xff1a; 用户分为宠物&#xff0c;医生&#xff0c;管理员&#xff0c;宠物主人可进行注册选择医生挂号&#xff0c;选择日期&#xff0c;选择号源&#xff0c;医生可进行宠物接诊…

大智慧面试经验

15-06-18下午1点&#xff0c;大智慧面试&#xff1b; 面试题全英文&#xff0c;第一部分基础的&#xff0c;诸如echo print printf的区别&#xff0c;include与require的区别等&#xff1b; 第二部分细节方面的&#xff0c;如在string中\n的意义&#xff0c;ucwords函数&#x…

Android 获取apk签名的fingerprint

为什么80%的码农都做不了架构师&#xff1f;>>> 假定安装了JDK&#xff0c;如果想查HelloWorld.apk所使用的签名的fingerprint&#xff0c;可以这样做&#xff1a;1. 查找apk里的rsa文件 &#xff08;Windows&#xff09; > jar tf HelloWorld.apk |findstr RSA…

Dinic二分图匹配 || Luogu P3386

题面&#xff1a;【模板】二分图匹配 思路&#xff1a;Dinic实现二分图匹配&#xff0c;要建一个超级源点&#xff08;S&#xff09;和超级汇点&#xff08;T&#xff09;&#xff0c;分别定为NM1和NM2 然后S去和N中的数建正边和反边&#xff0c;正边权值为1&#xff0c;反边权…

shell中引号的使用方法

1. shell使用引号(单引号/双引号)和反斜线("\")用于向shell解释器屏蔽一些特殊字符. 反引号[h2] 对shell则有特殊意义. 1.1 单引号和反斜线 [h1] 可以阻止shell代入变量的值&#xff1b; 1.2 双引号不能阻止代入 例如&#xff1a; sles10i32-1:han$ personha…

Java学习笔记(二)不定时更新

Java语言画图 package cn.witksy.dev;import javax.imageio.ImageIO; import java.awt.*; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException;/*** Author: Alfred* Created: 2015/5/7*/ public class Main {public void run() {Buffered…

Java项目:前台后台玩具商城系统(java+JSP+SSM+Springboot+Jsp+maven+Mysql)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 一、项目简述本系统主要实现的功能有&#xff1a; 网上商城系统&#xff0c;前台后台管理&#xff0c;用户注册&#xff0c;登录&#xff0c;商品展示&#xff0c;分组展示&#xff0c;搜索&#xff0c;收货…

Tempdb数据库详细介绍

Tempdb数据库详细介绍一、Tempdb简介tempdb是SQLServer的系统数据库一直都是SQLServer的重要组成部分&#xff0c;用来存储临时对象。可以简单理解tempdb是SQLServer的速写板。应用程序与数据库都可以使用tempdb作为临时的数据存储区。一个实例的所有用户都共享一个Tempdb。很明…

java——逻辑运算符与(和)或(|和||)

区别&#xff1a; 1意思不同&#xff1a; &&是“与”的意思&#xff0c;||是“或者”的意思。 2 使用上不同&#xff1a;a && b&#xff1a;a和b同时为true 才返回 true&#xff0c; 否则返回false&#xff1b;a || b&#xff1a;a或b任意一个为true 就返回tru…

UTRAN 的用户面和控制面

UTRAN接口的通用协议模型如下图&#xff1a; 通俗地讲&#xff0c;通讯网络由终端(terminal)、连接(links)、网络节点(nodes)组成, links将nodes 关联起来。源终端(MO)发送的消息是怎样才能到目的终端(MT)呢? 消息经过links 和nodes,直至到达MT&#xff0c;其中关键是nodes怎么…

Java项目:疫情人员流动管理系统(java+JSP+SSM+Springboot+maven+Mysql)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 一、项目简述 本系统主要实现的功能有&#xff1a; 社区疫情流动人员管理系统&#xff0c;住户管理&#xff0c;出入管理&#xff0c;访客管理&#xff0c;体温录入&#xff0c;高风险警示等等。 二、项目运…