大家好!我是岛上程序猿,感谢您阅读本文,欢迎一键三连哦。
当前专栏:Java毕业设计
精彩专栏推荐
安卓app毕业设计
微信小程序毕业设计
随着移动互联网的快速发展,人们线上消费习惯的养成,电商朝着垂直领域细分市场如生鲜、母婴等。随着人民收入水平提高以及消费升级的浪潮来临,人们对于品质生活的追求不断提高,从而使得鲜花需求从节假日、礼品逐渐延伸至日常生活中来,整个鲜花电商市场需求增加;同时,鲜花市场供给能力提升,鲜花生产数量和生产面积逐渐提升,品种也日益丰富。
然而鲜花绿植市场是一个非常传统的市场,一直以来这个市场就以集中在线下的方式进行,供需双方信息不通畅。中间的流转层级多,不仅造成花材的高耗损,且批发商的加价既压缩了上游花农的利润空间,并最终转移到消费者手中,由消费者承担。本系统采用B/S架构,基于Java进行搭建,采用互联网思维和技术,实现鲜花的线上销售新模式。
1、鲜花展示模块:对鲜花进行分类管理,包括增删改查等功能。
2、鲜花文化模块:比如鲜花的使用文化、什么情况下使用什么花等。
3、销售管理模块:查看订单状态,可以进行交易或取消交易等功能;
4、库存管理模块:管理每种分类的总数量和每类中每一种鲜花的数量;
5、顾客管理模块:主要包括用户个人信息的管理,即登录注册、购买情况等;
6、查询与统计模块:对本系统的重要的数据进行数据统计并可视化(如:鲜花最受欢迎的鲜花等等)。
结合业务需求和功能模块设计,需要对数据库进行规划设计。以减少数据冗余、避免数据维护异常、节约存储空间、高效访问为目的,按照一般的设计步骤,首先结合需求和功能模块,设计数据库的页表。
用户通过系统提供的注册、登陆功能,实现使用其它核心功能的目的。应用逻辑为用户点击进入系统,选择登陆类型是学生、老师或者管理员,管理员使用默认Admin账户而无需注册。
选择类型后,已注册用户输入账户和密码进行用户登陆;新用户点击“注册”按钮进行用户注册,注册后通过用户名、密码实现登陆。
注册时用户编写账户、密码等信息,并编辑密码并进行二次确认,如果用户名合法且两次密码一致,则注册成功,用户注册信息写入数据库进行保存。
登录模块,用户输入用户名和密码后,由系统调用数据库相关信息,与用户输入的信息进行比较,如果结果一致,则认定为合法用户,登录成功。该模块实现方式及实现效果如下:
商家可以通过该功能编辑鲜花信息,发布鲜花照片、分类、名称、花语、价格等,用户可以通过该功能进行浏览,根据需要购买心仪的花束。具体实现效果如下图所示:
系统管理员拥有系统的最高权限,主要用于系统维护、管理,通过admin账户进行登陆。登陆后,系统在页面上有系统后台入口,进入后可以跳转至后台管理页面。
后台管理系统可以实现对个人中心、用户管理、花分类管理、鲜花信息管理、系统管理和订单管理等,可以对上述信息进行查看、修改、管理和删除。从而便于管理员全面掌握系统运行状态,并结合需要对系统进行维护。
该模块实现方式及实现效果如下:
1.概述 6
1.1鲜花的历史 6
1.2国内外研究现状 7
1.3题背景及研究意义 9
1.4论文结构 11
2.需求和可行性分析 13
2.1需求分析 13
2.2系统可行性分析 13
3.项目技术简介 15
3.1 Java和JavaScript 15
3.1.1 Java程序语言 15
3.1.2 JavaScript 16
3.2 B/S架构 17
3.3 Vue.js 和node.js 20
3.3.1 Vue.js 21
3.3.1 node.js 21
3.4 Mysql数据库 22
3.5 JSP 24
4.系统设计实现 27
4.1 设计原则 27
4.2 开发工具及环境 28
4.2.1IntelliJ IDEA安装 28
4.2.2配置JAVA运行环境 33
4.2.3 node.js 安装 37
4.2.4 vue.js安装 42
4.3 主要功能模块功能设计 43
4.4数据库设计 44
4.5系统实现及实现效果 46
4.5.1注册登陆功能 46
4.5.2鲜花信息展示 47
4.5.3系统公告展示 48
4.5.4购买及支付功能 48
4.5.5个人中心 49
4.5.6系统管理员功能 50
5.软件测试 51
5.1 基本概念 51
5.2 软件测试的基本方法 52
5.3软件测试的原则 52
5.4测试用例 53
5.5测试结果 55
6.总结与展望 55
6.1 研究总结 55
6.2 展望 55
参考文献 57
致 谢 58
package com.example.controller; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.io.IoUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.poi.excel.ExcelUtil; import cn.hutool.poi.excel.ExcelWriter; import com.example.common.Result; import com.example.common.ResultCode; import com.example.entity.UserInfo; import com.example.service.UserInfoService; import com.example.exception.CustomException; import com.example.common.ResultCode; import com.example.vo.UserInfoVo; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.example.service.*; import org.springframework.web.bind.annotation.*; import org.springframework.beans.factory.annotation.Value; import cn.hutool.core.util.StrUtil; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @RestController @RequestMapping(value = "/userInfo") public class UserInfoController { @Resource private UserInfoService userInfoService; @PostMapping public Result<UserInfo> add(@RequestBody UserInfoVo userInfo) { userInfoService.add(userInfo); return Result.success(userInfo); } @DeleteMapping("/{id}") public Result delete(@PathVariable Long id) { userInfoService.delete(id); return Result.success(); } @PutMapping public Result update(@RequestBody UserInfoVo userInfo) { userInfoService.update(userInfo); return Result.success(); } @GetMapping("/{id}") public Result<UserInfo> detail(@PathVariable Long id) { UserInfo userInfo = userInfoService.findById(id); return Result.success(userInfo); } @GetMapping public Result<List<UserInfoVo>> all() { return Result.success(userInfoService.findAll()); } @GetMapping("/page/{name}") public Result<PageInfo<UserInfoVo>> page(@PathVariable String name, @RequestParam(defaultValue = "1") Integer pageNum, @RequestParam(defaultValue = "5") Integer pageSize, HttpServletRequest request) { return Result.success(userInfoService.findPage(name, pageNum, pageSize, request)); } @PostMapping("/register") public Result<UserInfo> register(@RequestBody UserInfo userInfo) { if (StrUtil.isBlank(userInfo.getName()) || StrUtil.isBlank(userInfo.getPassword())) { throw new CustomException(ResultCode.PARAM_ERROR); } return Result.success(userInfoService.add(userInfo)); } /** * 批量通过excel添加信息 * @param file excel文件 * @throws IOException */ @PostMapping("/upload") public Result upload(MultipartFile file) throws IOException { List<UserInfo> infoList = ExcelUtil.getReader(file.getInputStream()).readAll(UserInfo.class); if (!CollectionUtil.isEmpty(infoList)) { // 处理一下空数据 List<UserInfo> resultList = infoList.stream().filter(x -> ObjectUtil.isNotEmpty(x.getName())).collect(Collectors.toList()); for (UserInfo info : resultList) { userInfoService.add(info); } } return Result.success(); } @GetMapping("/getExcelModel") public void getExcelModel(HttpServletResponse response) throws IOException { // 1. 生成excel Map<String, Object> row = new LinkedHashMap<>();row.put("name", "张天志");row.put("password", "123456");row.put("nickName", "老张");row.put("sex", "男");row.put("age", 22);row.put("birthday", "TIME");row.put("phone", "18843232356");row.put("address", "上海市");row.put("email", "aa@163.com");row.put("cardId", "342425199001116372");row.put("level", 3); List<Map<String, Object>> list = CollUtil.newArrayList(row); // 2. 写excel ExcelWriter writer = ExcelUtil.getWriter(true); writer.write(list, true); response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8"); response.setHeader("Content-Disposition","attachment;filename=userInfoModel.xlsx"); ServletOutputStream out = response.getOutputStream(); writer.flush(out, true); writer.close(); IoUtil.close(System.out); } }
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138package com.example.controller; import cn.hutool.json.JSONArray; import cn.hutool.json.JSONObject; import com.example.common.Result; import com.example.entity.Account; import com.example.service.*; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.util.HashMap; import java.util.Map; @RestController public class MenuController {@Resourceprivate AdminInfoService adminInfoService;@Resourceprivate BusinessInfoService businessInfoService;@Resourceprivate UserInfoService userInfoService;@Resourceprivate AdvertiserInfoService advertiserInfoService; @GetMapping(value = "/getMenu", produces="application/json;charset=UTF-8") public String getMenu(HttpServletRequest request) { Account account = (Account) request.getSession().getAttribute("user"); Integer level; if (account == null) { level = 1; } else { level = account.getLevel(); } JSONObject obj = new JSONObject(); obj.putOpt("code", 0); obj.putOpt("msg", ""); JSONArray dataArray = new JSONArray(); dataArray.add(getJsonObject("/", "系统首页", "layui-icon-home", "/")); JSONObject tableObj = new JSONObject(); tableObj.putOpt("title", "信息管理"); tableObj.putOpt("icon", "layui-icon-table");if (1 == level) {JSONArray array = new JSONArray();array.add(getJsonObject("adminInfo", "管理员信息", "layui-icon-table", "adminInfo"));array.add(getJsonObject("businessInfo", "卖家信息", "layui-icon-table", "businessInfo"));array.add(getJsonObject("userInfo", "用户信息", "layui-icon-table", "userInfo"));array.add(getJsonObject("messageInfo", "在线交流", "layui-icon-table", "messageInfo"));array.add(getJsonObject("advertiserInfo", "鲜花文化", "layui-icon-table", "advertiserInfo"));array.add(getJsonObject("typeInfo", "鲜花类别", "layui-icon-table", "typeInfo"));array.add(getJsonObject("goodsInfo", "鲜花详情", "layui-icon-table", "goodsInfo"));array.add(getJsonObject("orderInfo", "订单信息", "layui-icon-table", "orderInfo"));array.add(getJsonObject("commentInfo", "评价信息", "layui-icon-table", "commentInfo"));array.add(getJsonObject("accountAdminInfo", "个人信息", "layui-icon-user", "accountAdminInfo"));tableObj.putOpt("list", array);}if (2 == level) {JSONArray array = new JSONArray();array.add(getJsonObject("userInfo", "用户信息", "layui-icon-table", "userInfo"));array.add(getJsonObject("messageInfo", "在线交流", "layui-icon-table", "messageInfo"));array.add(getJsonObject("advertiserInfo", "鲜花文化", "layui-icon-table", "advertiserInfo"));array.add(getJsonObject("typeInfo", "鲜花类别", "layui-icon-table", "typeInfo"));array.add(getJsonObject("goodsInfo", "鲜花详情", "layui-icon-table", "goodsInfo"));array.add(getJsonObject("orderInfo", "订单信息", "layui-icon-table", "orderInfo"));array.add(getJsonObject("commentInfo", "评价信息", "layui-icon-table", "commentInfo"));array.add(getJsonObject("accountBusinessInfo", "个人信息", "layui-icon-user", "accountBusinessInfo"));tableObj.putOpt("list", array);}if (3 == level) {JSONArray array = new JSONArray();array.add(getJsonObject("messageInfo", "在线交流", "layui-icon-table", "messageInfo"));array.add(getJsonObject("advertiserInfo", "鲜花文化", "layui-icon-table", "advertiserInfo"));array.add(getJsonObject("typeInfo", "鲜花类别", "layui-icon-table", "typeInfo"));array.add(getJsonObject("goodsInfo", "鲜花详情", "layui-icon-table", "goodsInfo"));array.add(getJsonObject("orderInfo", "订单信息", "layui-icon-table", "orderInfo"));array.add(getJsonObject("commentInfo", "评价信息", "layui-icon-table", "commentInfo"));array.add(getJsonObject("accountUserInfo", "个人信息", "layui-icon-user", "accountUserInfo"));tableObj.putOpt("list", array);} dataArray.add(tableObj); dataArray.add(getJsonObject("updatePassword", "修改密码", "layui-icon-password", "updatePassword")); dataArray.add(getJsonObject("login", "退出登录", "layui-icon-logout", "login")); obj.putOpt("data", dataArray); return obj.toString(); } private JSONObject getJsonObject(String name, String title, String icon, String jump) { JSONObject object = new JSONObject(); object.putOpt("name", name); object.putOpt("title", title); object.putOpt("icon", icon); object.putOpt("jump", jump); return object; } @GetMapping(value = "/getTotal", produces="application/json;charset=UTF-8") public Result<Map<String, Integer>> getTotle() { Map<String, Integer> resultMap = new HashMap<>();resultMap.put("adminInfo", adminInfoService.findAll().size());resultMap.put("businessInfo", businessInfoService.findAll().size());resultMap.put("userInfo", userInfoService.findAll().size());resultMap.put("advertiserInfo", advertiserInfoService.findAll().size()); return Result.success(resultMap); } }
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119如需对应的源码,可以评论或者私信都可以。
相关知识
计算机毕业设计之 [含实训报告+源码等]javaweb花店管理系统[包运行成功]
基于JAVA馥郁花艺网站mp4计算机毕业设计源码+数据库+lw文档+系统+部署
大学生学业预警系统设计与实现(源码+开题)
Java计算机毕业设计鲜花售卖网站(开题报告+源码+论文)
鲜花售卖网站的设计与实现(源码+开题报告)
基于ssm+vue鲜花售卖网站的设计与实现【开题+程序+论文】
Java项目源码javaweb花店销售管理系统
java计算机毕业设计花品管理系统(附源码+springboot+开题+论文+部署)
java毕业设计——基于JSP+sqlserver的环境美容服务公司网站设计与实现(毕业论文+程序源码)——公司网站
java计算机毕业设计花店管理系统(附源码+springboot+开题+论文+部署)
网址: (java毕业设计+b/s架构)小太阳鲜花网站的设计与实现(附源码+论文) https://m.huajiangbk.com/newsview553457.html
上一篇: 花卉园林种植展示网站模板 |
下一篇: 鲜花网站制作,打造专业花卉销售平 |