大家好!我是岛上程序猿,感谢您阅读本文,欢迎一键三连哦。

当前专栏:Java毕业设计

精彩专栏推荐

 安卓app毕业设计 微信小程序毕业设计

目录

一、项目简介二、系统设计2.1主要功能模块功能设计2.2数据库设计

三、系统项目部分截图3.1注册登陆功能3.2鲜花信息展示3.3系统管理员功能

四、论文目录五、部分核心代码4.1 用户部分4.2菜单部分

获取源码或论文

一、项目简介

随着移动互联网的快速发展,人们线上消费习惯的养成,电商朝着垂直领域细分市场如生鲜、母婴等。随着人民收入水平提高以及消费升级的浪潮来临,人们对于品质生活的追求不断提高,从而使得鲜花需求从节假日、礼品逐渐延伸至日常生活中来,整个鲜花电商市场需求增加;同时,鲜花市场供给能力提升,鲜花生产数量和生产面积逐渐提升,品种也日益丰富。 然而鲜花绿植市场是一个非常传统的市场,一直以来这个市场就以集中在线下的方式进行,供需双方信息不通畅。中间的流转层级多,不仅造成花材的高耗损,且批发商的加价既压缩了上游花农的利润空间,并最终转移到消费者手中,由消费者承担。本系统采用B/S架构,基于Java进行搭建,采用互联网思维和技术,实现鲜花的线上销售新模式。

二、系统设计

2.1主要功能模块功能设计

1、鲜花展示模块:对鲜花进行分类管理,包括增删改查等功能。 2、鲜花文化模块:比如鲜花的使用文化、什么情况下使用什么花等。 3、销售管理模块:查看订单状态,可以进行交易或取消交易等功能; 4、库存管理模块:管理每种分类的总数量和每类中每一种鲜花的数量; 5、顾客管理模块:主要包括用户个人信息的管理,即登录注册、购买情况等; 6、查询与统计模块:对本系统的重要的数据进行数据统计并可视化(如:鲜花最受欢迎的鲜花等等)。

2.2数据库设计

结合业务需求和功能模块设计,需要对数据库进行规划设计。以减少数据冗余、避免数据维护异常、节约存储空间、高效访问为目的,按照一般的设计步骤,首先结合需求和功能模块,设计数据库的页表。

三、系统项目部分截图

3.1注册登陆功能

用户通过系统提供的注册、登陆功能,实现使用其它核心功能的目的。应用逻辑为用户点击进入系统,选择登陆类型是学生、老师或者管理员,管理员使用默认Admin账户而无需注册。 选择类型后,已注册用户输入账户和密码进行用户登陆;新用户点击“注册”按钮进行用户注册,注册后通过用户名、密码实现登陆。 注册时用户编写账户、密码等信息,并编辑密码并进行二次确认,如果用户名合法且两次密码一致,则注册成功,用户注册信息写入数据库进行保存。 登录模块,用户输入用户名和密码后,由系统调用数据库相关信息,与用户输入的信息进行比较,如果结果一致,则认定为合法用户,登录成功。该模块实现方式及实现效果如下:

3.2鲜花信息展示

商家可以通过该功能编辑鲜花信息,发布鲜花照片、分类、名称、花语、价格等,用户可以通过该功能进行浏览,根据需要购买心仪的花束。具体实现效果如下图所示:

3.3系统管理员功能

系统管理员拥有系统的最高权限,主要用于系统维护、管理,通过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

五、部分核心代码

4.1 用户部分

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 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 detail(@PathVariable Long id) {

UserInfo userInfo = userInfoService.findById(id);

return Result.success(userInfo);

}

@GetMapping

public Result> all() {

return Result.success(userInfoService.findAll());

}

@GetMapping("/page/{name}")

public Result> 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 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 infoList = ExcelUtil.getReader(file.getInputStream()).readAll(UserInfo.class);

if (!CollectionUtil.isEmpty(infoList)) {

// 处理一下空数据

List 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 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> 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);

}

}

4.2菜单部分

package 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 {

@Resource

private AdminInfoService adminInfoService;

@Resource

private BusinessInfoService businessInfoService;

@Resource

private UserInfoService userInfoService;

@Resource

private 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> getTotle() {

Map 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);

}

}

获取源码或论文

如需对应的源码,可以评论或者私信都可以。

参考文章

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: