当前位置: 首页 > news >正文

基于SSM vue uniapp 的个性化商铺系统(小程序)设计与实现

博主介绍:专注于Java(springboot ssm 等开发框架) vue  .net  php phython node.js    uniapp 微信小程序 等诸多技术领域和毕业项目实战、企业信息化系统建设,从业十五余年开发设计教学工作
☆☆☆ 精彩专栏推荐订阅☆☆☆☆☆不然下次找不到哟
我的博客空间发布了1500+毕设题目 方便大家学习使用
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人
更多项目地址 介绍 翰文编程-CSDN博客
文末下方有源码获取地址

系统实现预览

需求分析

利用ssm、Java、MyEclipse和mysql数据库等知识点,结合相关设计模式、以及软件工程的相关知识,设计一个个性化商铺系统,来进行记录用户的信息,以及系统信息的增删改查的功能,根据实现需求,系统需完成这些基本功能:

(1)系统合理显示个性化商铺系统界面、店铺界面、购物车界面等界面。

(2)用户和管理员所有的信息都保存与数据库中。

(3)对商铺信息能够进行查询、修改、删除、添加等操作。

3.3  总体设计

根据个性化商铺系统的功能需求,进行系统设计。

前台app功能:用户进入app可以实现首页,购物车,我的等,在我的页面可以对店铺信息,商品信息,我的收藏管理,用户充值,购物车,我的订单等进行操作;

后台主要是管理员和商家,管理员功能包括首页、个人中心、用户管理、商家管理、店铺类别管理、商品类别管理、店铺信息管理、商品信息管理、系统管理、订单管理等;商家功能包括首页、个人中心、店铺信息管理、商品信息管理、订单管理等。

系统对这些功能进行整合,产生的功能结构图如下:

图3-1系统总体结构图

3.4  数据库设计与实现

在每一个系统中数据库有着非常重要的作用,数据库的设计得好将会增加系统的效率以及系统各逻辑功能的实现。所以数据库的设计我们要从系统的实际需要出发,才能使其更为完美的符合系统功能的实现。

3.4.1 数据库概念结构设计

数据库的E-R图反映了实体、实体的属性和实体之间的联系。下面是各个实体以及实体的属性。

用户注册实体属性图如下所示:

图3-2用户注册实体属性图

商品信息实体属性图如下所示:

图3-3商品信息实体属性图

店铺信息实体属性图如下所示:

图3-4店铺信息实体属性图

3.4.2数据库具体设计

根据E-R图,设计每张表的变量名,变量的类型及主键等如下。

表名3-1:公告信息

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

title

varchar

200

标题

introduction

longtext

4294967295

简介

picture

varchar

200

图片

content

longtext

4294967295

内容

表名3-2:商品信息评论表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

refid

bigint

关联表id

userid

bigint

用户id

nickname

varchar

200

用户名

content

longtext

4294967295

评论内容

reply

longtext

4294967295

回复内容

表名3-3:店铺信息

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

dianpubianhao

varchar

200

店铺编号

dianpumingcheng

varchar

200

店铺名称

dianpuleibie

varchar

200

店铺类别

dianpuzhaopian

varchar

200

店铺照片

dianpuquyu

varchar

200

店铺区域

shangjiazhanghao

varchar

200

商家账号

shangjiamingcheng

varchar

200

商家名称

kaifangshijian

varchar

200

开放时间

jingyingfanwei

varchar

200

经营范围

dianpujianjie

longtext

4294967295

店铺简介

表名3-4:店铺类别

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

dianpuleibie

varchar

200

店铺类别

表名3-5:用户表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

username

varchar

100

用户名

password

varchar

100

密码

role

varchar

100

角色

管理员

addtime

timestamp

新增时间

CURRENT_TIMESTAMP

表名3-6:配置文件

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

name

varchar

100

配置参数名称

value

varchar

100

配置参数值

表名3-7:token表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

userid

bigint

用户id

username

varchar

100

用户名

tablename

varchar

100

表名

role

varchar

100

角色

token

varchar

200

密码

addtime

timestamp

新增时间

CURRENT_TIMESTAMP

expiratedtime

timestamp

过期时间

CURRENT_TIMESTAMP

表名3-8:用户

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

yonghuzhanghao

varchar

200

用户账号

mima

varchar

200

密码

yonghuxingming

varchar

200

用户姓名

xingbie

varchar

200

性别

lianxifangshi

varchar

200

联系方式

touxiang

varchar

200

头像

money

float

余额

0

表名3-9:购物车表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

tablename

varchar

200

商品表名

shangpinxinxi

userid

bigint

用户id

goodid

bigint

商品id

goodname

varchar

200

商品名称

picture

varchar

200

图片

buynumber

int

购买数量

price

float

单价

discountprice

float

会员价

shangjiazhanghao

varchar

200

商户名称

表名3-10:收藏表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

userid

bigint

用户id

refid

bigint

收藏id

tablename

varchar

200

表名

name

varchar

200

收藏名称

picture

varchar

200

收藏图片

type

varchar

200

类型(1:收藏,21:赞,22:踩)

1

inteltype

varchar

200

推荐类型

表名3-11:商品信息

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

shangpinbianhao

varchar

200

商品编号

dianpumingcheng

varchar

200

店铺名称

shangpinmingcheng

varchar

200

商品名称

shangpinleibie

varchar

200

商品类别

shangpintupian

varchar

200

商品图片

pinpai

varchar

200

品牌

guige

varchar

200

规格

baozhiqi

varchar

200

保质期

shengchanriqi

date

生产日期

fabushijian

date

发布时间

shangpinxiangqing

longtext

4294967295

商品详情

shangjiazhanghao

varchar

200

商家账号

shangjiamingcheng

varchar

200

商家名称

price

float

价格

onelimittimes

int

单限

-1

alllimittimes

int

库存

-1

表名3-12:商品类别

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

shangpinleibie

varchar

200

商品类别

表名3-13:商家

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

shangjiazhanghao

varchar

200

商家账号

mima

varchar

200

密码

shangjiamingcheng

varchar

200

商家名称

xingbie

varchar

200

性别

lianxidianhua

varchar

200

联系电话

touxiang

varchar

200

头像

money

float

余额

0

表名3-14:订单

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

orderid

varchar

200

订单编号

tablename

varchar

200

商品表名

shangpinxinxi

userid

bigint

用户id

goodid

bigint

商品id

goodname

varchar

200

商品名称

picture

varchar

200

商品图片

buynumber

int

购买数量

price

float

价格/积分

0

discountprice

float

折扣价格

0

total

float

总价格/总积分

0

discounttotal

float

折扣总价格

0

type

int

支付类型

1

status

varchar

200

状态

address

varchar

200

地址

tel

varchar

200

电话

consignee

varchar

200

收货人

logistics

longtext

4294967295

物流

shangjiazhanghao

varchar

200

商户名称


表名3-14:订单

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

userid

bigint

用户id

address

varchar

200

地址

name

varchar

200

收货人

phone

varchar

200

电话

isdefault

varchar

200

是否默认地址[是/否]

第四章  系统功能的具体实现

功能模块

个性化商铺系统,用户登录app时,输入自己的账号和密码,进行系统登录操作,如图4-1所示。

图4-1用户登录界面图

用户注册,在用户注册页面通过填写用户账号、密码、确认密码、用户姓名、性别、联系方式等内容进行用户注册操作,如图4-2所示。

图4-2用户注册界面图

用户登录app后,可以对首页、购物车、店铺信息、商品信息、我的等内容进行详细操作,如图4-3所示。

图4-3app首页界面图

商品信息;在商品信息页面中可以查看商品图片、价格、商品名称、商品编号、店铺名称、商品类别、品牌、规格、保质期、生产日期、发布时间、商家账号、库存、商家名称、商品详情等内容;并进行加入购物车、立即订购和收藏管理。如图4-4所示。

图4-4商品信息界面图

店铺信息;在店铺信息页面中可以查看店铺照片、店铺名称、店铺编号、店铺类别、店铺区域、商家账号、商家名称、开放时间、经营范围、店铺简介等内容;并进行收藏管理。如图4-5所示。

图4-5店铺信息界面图

用户进入我的页面可以对店铺信息、商品信息、我的收藏管理、用户充值、购物车、我的订单等功能进行相应操作,如图4-6所示。

图4-6用户功能界面图

我的订单;在我的订单页面中可以查看未支付、已支付、已发货、已完成、已取消、已退款订单等内容;并对不同类型的订单进行处理。如图4-7所示。

图4-7我的订单界面图

主要代码

package com.controller;import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Map;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;import com.utils.ValidatorUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.annotation.IgnoreAuth;import com.entity.OrdersEntity;
import com.entity.view.OrdersView;import com.service.OrdersService;
import com.service.TokenService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.CommonUtil;/*** 订单* 后端接口* @author * @email * @date 2022-04-10 13:32:24*/
@RestController
@RequestMapping("/orders")
public class OrdersController {@Autowiredprivate OrdersService ordersService;/*** 后端列表*/@RequestMapping("/page")public R page(@RequestParam Map<String, Object> params,OrdersEntity orders, HttpServletRequest request){if(!request.getSession().getAttribute("role").toString().equals("管理员")) {orders.setUserid((Long)request.getSession().getAttribute("userId"));}String tableName = request.getSession().getAttribute("tableName").toString();if(tableName.equals("shangjia")) {orders.setShangjiazhanghao((String)request.getSession().getAttribute("username"));if(orders.getUserid()!=null) {orders.setUserid(null);}}EntityWrapper<OrdersEntity> ew = new EntityWrapper<OrdersEntity>();PageUtils page = ordersService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, orders), params), params));return R.ok().put("data", page);}/*** 前端列表*/@IgnoreAuth@RequestMapping("/list")public R list(@RequestParam Map<String, Object> params,OrdersEntity orders, HttpServletRequest request){EntityWrapper<OrdersEntity> ew = new EntityWrapper<OrdersEntity>();PageUtils page = ordersService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, orders), params), params));return R.ok().put("data", page);}/*** 列表*/@RequestMapping("/lists")public R list( OrdersEntity orders){EntityWrapper<OrdersEntity> ew = new EntityWrapper<OrdersEntity>();ew.allEq(MPUtil.allEQMapPre( orders, "orders")); return R.ok().put("data", ordersService.selectListView(ew));}/*** 查询*/@RequestMapping("/query")public R query(OrdersEntity orders){EntityWrapper< OrdersEntity> ew = new EntityWrapper< OrdersEntity>();ew.allEq(MPUtil.allEQMapPre( orders, "orders")); OrdersView ordersView =  ordersService.selectView(ew);return R.ok("查询订单成功").put("data", ordersView);}/*** 后端详情*/@RequestMapping("/info/{id}")public R info(@PathVariable("id") Long id){OrdersEntity orders = ordersService.selectById(id);return R.ok().put("data", orders);}/*** 前端详情*/@IgnoreAuth@RequestMapping("/detail/{id}")public R detail(@PathVariable("id") Long id){OrdersEntity orders = ordersService.selectById(id);return R.ok().put("data", orders);}/*** 后端保存*/@RequestMapping("/save")public R save(@RequestBody OrdersEntity orders, HttpServletRequest request){orders.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(orders);orders.setUserid((Long)request.getSession().getAttribute("userId"));ordersService.insert(orders);return R.ok();}/*** 前端保存*/@RequestMapping("/add")public R add(@RequestBody OrdersEntity orders, HttpServletRequest request){orders.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(orders);ordersService.insert(orders);return R.ok();}/*** 修改*/@RequestMapping("/update")public R update(@RequestBody OrdersEntity orders, HttpServletRequest request){//ValidatorUtils.validateEntity(orders);ordersService.updateById(orders);//全部更新return R.ok();}/*** 删除*/@RequestMapping("/delete")public R delete(@RequestBody Long[] ids){ordersService.deleteBatchIds(Arrays.asList(ids));return R.ok();}/*** 提醒接口*/@RequestMapping("/remind/{columnName}/{type}")public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request, @PathVariable("type") String type,@RequestParam Map<String, Object> map) {map.put("column", columnName);map.put("type", type);if(type.equals("2")) {SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");Calendar c = Calendar.getInstance();Date remindStartDate = null;Date remindEndDate = null;if(map.get("remindstart")!=null) {Integer remindStart = Integer.parseInt(map.get("remindstart").toString());c.setTime(new Date()); c.add(Calendar.DAY_OF_MONTH,remindStart);remindStartDate = c.getTime();map.put("remindstart", sdf.format(remindStartDate));}if(map.get("remindend")!=null) {Integer remindEnd = Integer.parseInt(map.get("remindend").toString());c.setTime(new Date());c.add(Calendar.DAY_OF_MONTH,remindEnd);remindEndDate = c.getTime();map.put("remindend", sdf.format(remindEndDate));}}Wrapper<OrdersEntity> wrapper = new EntityWrapper<OrdersEntity>();if(map.get("remindstart")!=null) {wrapper.ge(columnName, map.get("remindstart"));}if(map.get("remindend")!=null) {wrapper.le(columnName, map.get("remindend"));}if(!request.getSession().getAttribute("role").toString().equals("管理员")) {wrapper.eq("userid", (Long)request.getSession().getAttribute("userId"));}String tableName = request.getSession().getAttribute("tableName").toString();if(tableName.equals("shangjia")) {wrapper.eq("shangjiazhanghao", (String)request.getSession().getAttribute("username"));}int count = ordersService.selectCount(wrapper);return R.ok().put("count", count);}/*** (按值统计)*/@RequestMapping("/value/{xColumnName}/{yColumnName}")public R value(@PathVariable("yColumnName") String yColumnName, @PathVariable("xColumnName") String xColumnName,HttpServletRequest request) {Map<String, Object> params = new HashMap<String, Object>();params.put("xColumn", xColumnName);params.put("yColumn", yColumnName);EntityWrapper<OrdersEntity> ew = new EntityWrapper<OrdersEntity>();String tableName = request.getSession().getAttribute("tableName").toString();if(tableName.equals("shangjia")) {ew.eq("shangjiazhanghao", (String)request.getSession().getAttribute("username"));}ew.in("status", new String[]{"已支付","已发货","已完成"});List<Map<String, Object>> result = ordersService.selectValue(params, ew);SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");for(Map<String, Object> m : result) {for(String k : m.keySet()) {if(m.get(k) instanceof Date) {m.put(k, sdf.format((Date)m.get(k)));}}}return R.ok().put("data", result);}/*** (按值统计)时间统计类型*/@RequestMapping("/value/{xColumnName}/{yColumnName}/{timeStatType}")public R valueDay(@PathVariable("yColumnName") String yColumnName, @PathVariable("xColumnName") String xColumnName, @PathVariable("timeStatType") String timeStatType,HttpServletRequest request) {Map<String, Object> params = new HashMap<String, Object>();params.put("xColumn", xColumnName);params.put("yColumn", yColumnName);params.put("timeStatType", timeStatType);EntityWrapper<OrdersEntity> ew = new EntityWrapper<OrdersEntity>();String tableName = request.getSession().getAttribute("tableName").toString();if(tableName.equals("shangjia")) {ew.eq("shangjiazhanghao", (String)request.getSession().getAttribute("username"));}ew.in("status", new String[]{"已支付","已发货","已完成"});List<Map<String, Object>> result = ordersService.selectTimeStatValue(params, ew);SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");for(Map<String, Object> m : result) {for(String k : m.keySet()) {if(m.get(k) instanceof Date) {m.put(k, sdf.format((Date)m.get(k)));}}}return R.ok().put("data", result);}/*** 分组统计*/@RequestMapping("/group/{columnName}")public R group(@PathVariable("columnName") String columnName,HttpServletRequest request) {Map<String, Object> params = new HashMap<String, Object>();params.put("column", columnName);EntityWrapper<OrdersEntity> ew = new EntityWrapper<OrdersEntity>();String tableName = request.getSession().getAttribute("tableName").toString();if(tableName.equals("shangjia")) {ew.eq("shangjiazhanghao", (String)request.getSession().getAttribute("username"));}ew.in("status", new String[]{"已支付","已发货","已完成"});List<Map<String, Object>> result = ordersService.selectGroup(params, ew);SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");for(Map<String, Object> m : result) {for(String k : m.keySet()) {if(m.get(k) instanceof Date) {m.put(k, sdf.format((Date)m.get(k)));}}}return R.ok().put("data", result);}
}

4.2后台功能模块

用户进行进入系统后台,在登录页面根据要求填写用户名和密码,选择角色等信息,点击登录进行登录操作,如图4-8所示。

图4-8后台登录界面图

4.2.1管理员功能模块

管理员登录进入个性化商铺系统可以查看首页、个人中心、用户管理、商家管理、店铺类别管理、商品类别管理、店铺信息管理、商品信息管理、系统管理、订单管理等信息进行详细操作,如图4-9所示。

图4-9管理员功能界面图

用户管理;在用户管理页面中可以查看索引、用户账号、用户姓名、性别、联系方式、头像等内容,并进行详情,修改和删除等操作;如图4-10所示。

图4-10用户管理界面图

商家管理:在商家管理页面中可以查看索引、商家账号、商家名称、性别、联系电话、头像等内容,并进行详情,修改和删除等操作,如图4-11所示。

图4-11商家管理界面图

店铺信息管理;在店铺信息管理页面中可以查看索引、店铺编号、店铺名称、店铺类别、店铺照片、商家账号、商家名称、开放时间、经营范围等内容,并进行详情,修改和删除等操作;如图4-12所示。

图4-12店铺信息管理界面图

代码论文下载地址

基于SSMvueuniapp的个性化商铺系统源码论文ppt资源-CSDN文库

大家点赞、收藏、关注、评论啦  其他的定制服务  下方联系卡片↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ 或者私信作者
 


http://www.mrgr.cn/news/46150.html

相关文章:

  • Langchain4j如何实现智能问答的跨越式进化?
  • 【C++篇】继承之巅:超越法则束缚,领略面向对象的至臻智慧
  • 用策略性文本序列影响大模型的输出
  • 【无人机设计与控制】基于控制避障函数(CBF)的四旋翼安全控制
  • Rocket MQ消费消息的两种写法
  • 【JDK17 | 7】Java 17 深入剖析:基础概述与新特性实战
  • 这个 JavaScript API 比你想象中更强大!
  • 国产长芯微LPA1311高性能隔离放大器P2P替代AMC1311替代ACPL-C87A-000E
  • 74.【C语言】文件操作(1)
  • Unity3D Compute Shader同步详解
  • 一文彻底搞懂大模型 - Hugging Face Transformers
  • Fetch获取内容乱码问题
  • 中医文献学:概念、历史、现状与展望
  • 力扣10.9
  • 2024年新能源汽车Q3季报:传统车企车机表现逆袭,问界M7暴露最大短板
  • sql-lab打不开网页了(没解决)
  • linux安装Go ImageMagick插件
  • 基于Kafka2.1解读Producer原理
  • 【Pydantic】如何在 Pydantic 中实现严格模式校验
  • Gpt4.0最新保姆级教程开通升级