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

案例098:基于微信小程序的电子购物系统的设计与实现

文末获取源码

开发语言:Java

框架:SSM

JDK版本:JDK1.8

数据库:mysql 5.7

开发软件:eclipse/myeclipse/idea

Maven包:Maven3.5.4

小程序框架:uniapp

小程序开发软件:HBuilder X

小程序运行软件:微信开发者

目录

前言

系统展示

管理员功能实现

订单评价管理

商品信息管理

已完成订单

用户管理

用户功能实现

商品信息

购物车

下单支付

我的订单

在线客服

我的收藏管理

代码实现

登录功能实现代码

注册功能实现代码

密码重置功能实现代码

修改信息功能实现代码

删除信息功能实现代码

保存信息功能实现代码


前言

由于APP软件在开发以及运营上面所需成本较高,而用户手机需要安装各种APP软件,因此占用用户过多的手机存储空间,导致用户手机运行缓慢,体验度比较差,进而导致用户会卸载非必要的APP,倒逼管理者必须改变运营策略。随着微信小程序的出现,解决了用户非独立APP不可访问内容的痛点,所以很多APP软件都转向微信小程序。本次课题就运用了微信小程序技术开发一个基于微信小程序的电子购物系统。

基于微信小程序的电子购物系统是在MySQL中建立数据表保存信息,运用微信开发者工具开发。并按照软件设计开发流程进行设计实现。系统具备友好性且功能完善。管理员管理不同状态的订单,管理商品和用户,审核订单评价。用户收藏商品,订购商品,管理个人订单,联系客服,在线充值。

总之,基于微信小程序的电子购物系统可以更加方便用户在线查看商品,购买所需商品,管理个人购买订单。


系统展示

管理员功能实现

订单评价管理

管理员权限中的订单评价管理,其运行效果见下图。管理员需要审核订单评价,提交订单编号获取相应的订单评价。

 

商品信息管理

管理员权限中的商品信息管理,其运行效果见下图。管理员发布商品,修改商品价格,图片以及规格等信息,删除数据异常的商品。

 

已完成订单

管理员权限中的已完成订单,其运行效果见下图。管理员查看已完成订单,查询已完成订单。

 

用户管理

管理员权限中的用户管理,其运行效果见下图。管理员可以在本页面修改,删除用户资料。

 

用户功能实现

商品信息

用户权限中的商品信息,其运行效果见下图。用户在本页面可以收藏商品,可以订购商品,或把本页面的商品加入购物车。

 

购物车

用户权限中的购物车,其运行效果见下图。购物车保存了用户需要购买的商品,用户通过本功能可以对多种商品一起下单。

 

下单支付

用户权限中的下单支付,其运行效果见下图。用户在当前页面确认收货地址,确认购买的商品信息,最后进行支付。

 

我的订单

用户权限中的我的订单,其运行效果见下图。用户管理不同状态的订单,可以取消已支付的订单。

 

在线客服

用户权限中的在线客服,其运行效果见下图。用户有疑问可以咨询客服。

 

我的收藏管理

用户权限中的我的收藏管理,其运行效果见下图。用户查询收藏的商品,删除已经收藏的商品。

 


代码实现

登录功能实现代码

@IgnoreAuth@PostMapping(value = "/login")public R login(String username, String password, String captcha, HttpServletRequest request) {UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));if(user==null || !user.getPassword().equals(password)) {return R.error("账号或密码不正确");}String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());return R.ok().put("token", token);}

注册功能实现代码

@IgnoreAuth@PostMapping(value = "/register")public R register(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {return R.error("用户已存在");}userService.insert(user);return R.ok();}

密码重置功能实现代码

@IgnoreAuth@RequestMapping(value = "/resetPass")public R resetPass(String username, HttpServletRequest request){UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));if(user==null) {return R.error("账号不存在");}user.setPassword("123456");userService.update(user,null);return R.ok("密码已重置为:123456");}

修改信息功能实现代码

 @RequestMapping("/update")public R update(@RequestBody UserEntity user){
//        ValidatorUtils.validateEntity(user);UserEntity u = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername()));if(u!=null && u.getId()!=user.getId() && u.getUsername().equals(user.getUsername())) {return R.error("用户名已存在。");}userService.updateById(user);//全部更新return R.ok();}

删除信息功能实现代码

@RequestMapping("/delete")public R delete(@RequestBody Long[] ids){userService.deleteBatchIds(Arrays.asList(ids));return R.ok();}

保存信息功能实现代码

@PostMapping("/save")public R save(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {return R.error("用户已存在");}userService.insert(user);return R.ok();}

相关文章:

案例098:基于微信小程序的电子购物系统的设计与实现

文末获取源码 开发语言&#xff1a;Java 框架&#xff1a;SSM JDK版本&#xff1a;JDK1.8 数据库&#xff1a;mysql 5.7 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.5.4 小程序框架&#xff1a;uniapp 小程序开发软件&#xff1a;HBuilder X 小程序…...

亚信安慧AntDB数据库:数字化时代的数据库创新引领者

AntDB数据库以其卓越的创新能力&#xff0c;集中体现在融合统一与实时处理两大关键领域。作为一款服务全国超过10亿用户的分布式数据库&#xff0c;其独特之处在于长期积累的经验、多样性的支持能力、快速响应的数据处理速度以及卓越的系统稳定性。AntDB不仅仅是一个数据库系统…...

【MySQL】关于日期转换的方法

力扣题 1、题目地址 1853. 转换日期格式 2、模拟表 表: Days Column NameTypedaydate day 是这个表的主键。 3、要求 给定一个Days表&#xff0c;请你编写SQL查询语句&#xff0c;将Days表中的每一个日期转化为"day_name, month_name day, year"格式的字符串…...

Ubuntu 虚拟机挂接 Windows 目录

Windows 共享目录 首先 Windows 下共享目录 我这里偷懒直接直接 Everyone &#xff0c;也可以指定用户啥的 Ubuntu 挂接 挂接命令&#xff0c;类似如下&#xff1a; sudo mount -o usernamefananchong,passwordxxxx,uid1000,gid1000,file_mode0644,dir_mode0755,dynperm //…...

机器学习模型可解释性的结果分析

模型的可解释性是机器学习领域的一个重要分支&#xff0c;随着 AI 应用范围的不断扩大&#xff0c;人们越来越不满足于模型的黑盒特性&#xff0c;与此同时&#xff0c;金融、自动驾驶等领域的法律法规也对模型的可解释性提出了更高的要求&#xff0c;在可解释 AI 一文中我们已…...

静态网页设计——环保网(HTML+CSS+JavaScript)(dw、sublime Text、webstorm、HBuilder X)

前言 声明&#xff1a;该文章只是做技术分享&#xff0c;若侵权请联系我删除。&#xff01;&#xff01; 感谢大佬的视频&#xff1a; https://www.bilibili.com/video/BV1BC4y1v7ZY/?vd_source5f425e0074a7f92921f53ab87712357b 使用技术&#xff1a;HTMLCSSJS&#xff08;…...

【HarmonyOS】装饰器下的状态管理与页面路由跳转实现

从今天开始&#xff0c;博主将开设一门新的专栏用来讲解市面上比较热门的技术 “鸿蒙开发”&#xff0c;对于刚接触这项技术的小伙伴在学习鸿蒙开发之前&#xff0c;有必要先了解一下鸿蒙&#xff0c;从你的角度来讲&#xff0c;你认为什么是鸿蒙呢&#xff1f;它出现的意义又是…...

学习笔记——C++中数据的输入 cin

作用&#xff1a;用于从键盘中获取数据 关键字&#xff1a;cin 语法&#xff1a;cin>>变量 类型&#xff1a;C中数据的输入主要包含&#xff1a;整形&#xff08;int&#xff09;浮点型&#xff08;float&#xff0c;double float&#xff09;&#xff0c;字符型&…...

Filter Options in Select Field

Filter Options in Select Field 假设有两个下拉字段State和City。邦有两个值卡纳塔克邦和马哈拉施特拉邦&#xff0c;城市有四个值&#xff0c;班加罗尔&#xff0c;迈索尔&#xff0c;孟买和浦那。如果希望根据State中选择的值过滤City中的选项&#xff0c;可以编写如下所示的…...

【React系列】Hook(二)高级使用

本文来自#React系列教程&#xff1a;https://mp.weixin.qq.com/mp/appmsgalbum?__bizMzg5MDAzNzkwNA&actiongetalbum&album_id1566025152667107329) 一. Hook高级使用 1.1. useReducer 很多人看到useReducer的第一反应应该是redux的某个替代品&#xff0c;其实并不是…...

编程笔记 html5cssjs 018 HTML颜色

编程笔记 html5&css&js 018 HTML颜色 一、HTML 颜色二、HTML中设置颜色值三、颜色名称和颜色值 颜色是视觉中重要因素&#xff0c;尤其是处理人机界面中&#xff0c;更是要处理颜色设置和搭配。在网页中&#xff0c;提供了设置颜色的一些方案&#xff0c;需要我们认真学…...

C++_继承

介绍 继承的基本概念 1.共性和个性 (PS:有相同的属性 但是 又有自己的特点) 基类和子类 1. 基类(父类) 共性 2. 子类(派生类) 个性(特点) 继承语法 1.class 子类名:继承方式1 基类1,继承方式2 基类2{ 行为 };继承方式(PS:默认继承方式为:私有继承) 1.公有继承: public 2.保护…...

Java-IO流-15

文件操作 文件创建 package com.edu.file;import org.junit.jupiter.api.Test;import java.io.File; import java.io.IOException;public class Demo01 {public static void main(String[] args) {}Test//方式1public void create01(){String filePath "D:\\new1.txt&q…...

java中使用redis

1、redis数据类型 1.1、5种数据类型 redis存储的是key-value结构的数据&#xff0c;其中key是字符串类型&#xff0c;value有5种常用的数据类型&#xff1a;字符串 string、哈希 hash、列表 list、集合 set、有序集合 sorted set / zset。 字符串(string)&#xff1a;普通字符…...

Mongodb的可重试读操作

目录 重试读操作 需要条件 启用重读 支持可重试读的操作 不支持可重试读的操作 行为 重试读操作 连接mongodb进行读操作时&#xff0c;遇到网络或数据库集群的主节点切换导致的数据读问题。mongodb驱动自动尝试重新执行读操作。 需要条件 数据库连接驱动支持mongodb4.2…...

2024年1月2日-1月7日(ue5底层渲染+ue arpg+项目需求)

按照月计划&#xff0c;按照每小时分四段进行&#xff0c;arpg一例ue5底层渲染0.1小时arpg一例项目需求的相关视频教程一段 周二&#xff1a; 18&#xff1a;30- 19:30&#xff08;1小时&#xff09;ue arpg (88-89) ue5底层渲染03A14&#xff08;6&#xff1a;08&#xff09;…...

MySQL中的视图和触发器

SQL 视图 1 ) 概述 在mysql中&#xff0c;视图是一个非真实存在的虚拟表其本质是&#xff0c;根据sql语句获取动态的数据集&#xff0c;并为其命名用户使用时只需使用名称&#xff0c;即可获取结果集&#xff0c;并可以将其当做表来使用 2 &#xff09;用法示例 2.1 比较麻烦…...

uView-UI v2.x常见问题整理

为了更好的给大家提供 uView UI 的技术支持&#xff0c;uView UI 团队整理常见问题文档&#xff0c;大家可以阅读查找常见的问题解决办法。 uView 2.x 文档 https://www.uviewui.com uView 1.x 文档 https://v1.uviewui.com uView UI uni-app 主页 DCloud 插件市场 uVie…...

MBTI职业性格测试 28题(免费版)

MBTI职业性格测试概述 MBTI是现在国际上最为流行的测试工具&#xff0c;利用MBTI职业性格测试&#xff0c;可以清楚地找到自己的性格特点以及兴趣爱好&#xff0c;方便于对职业进行规划、以及改善人际关系。其主要应用心理学常识对个性做出判断&#xff0c;提炼出动力、信息收…...

Springcloud 微服务实战笔记 Ribbon

使用 Configurationpublic class CustomConfiguration {BeanLoadBalanced // 开启负载均衡能力public RestTemplate restTemplate() {return new RestTemplate();}}可看到使用Ribbon&#xff0c;非常简单&#xff0c;只需将LoadBalanced注解加在RestTemplate的Bean上&#xff0…...

CSS基础笔记-04cascade-specificity-inheritance

CSS基础笔记系列 《CSS基础笔记-01CSS概述》《CSS基础笔记-02动画》CSS基础笔记-03选择器 前言 Cascading Style Sheets&#xff0c;关键就在于这个cascading&#xff0c;对于这个术语理解&#xff0c;感觉对于我这种CSS新手有点儿不太friendly。本文记录下我对这个术语的理…...

Spring应用的部署与管理

一、前言 部署是将开发好的应用发布到服务器上&#xff0c;使其能够被用户访问的关键步骤。Spring框架提供了灵活的部署选项&#xff0c;本文将介绍Spring应用的常见部署方式和一些建议&#xff0c;帮助开发者顺利将应用投放到生产环境。 二、传统部署方式&#xff1a;WAR包 传…...

B端产品经理学习-需求挖掘

B端产品需求挖掘 目录 识别和管理干系人 决策人和负责人需求挖掘 针对用户进行需求挖掘 用户访谈结果整理 B端产品的需求来源是非常复杂的&#xff0c;要考虑多个方面&#xff1b;如果你是一个通用性的产品&#xff0c;要考虑市场、自身优劣势、干系人。而定制型B端产品会…...

整数规划基本原理

1.1 定义 规划中的变量&#xff08;部分或全部&#xff09;限制为整数时&#xff0c;称为整数规划。若在线性规划模型中&#xff0c;变量限制为整数&#xff0c;则称为整数线性规划。目前所流行的求解整数规划的方法&#xff0c;往往只适用于整数线性规划。目前还没有一种方法…...

秋招复习之堆

目录 前言 堆 堆的常用操作 堆的实现&#xff08;大根堆&#xff09; 1. 堆的存储与表示 2. 访问堆顶元素 3. 元素入堆 4. 堆顶元素出堆 Top-k 问题 方法一&#xff1a;遍历选择 方法二&#xff1a;排序 方法三&#xff1a;堆 总结 前言 秋招复习之堆。 堆 「堆 heap…...

算法训练营Day36(贪心-重叠区间)

都算是 重叠区间 问题&#xff0c;大家可以好好感受一下。 都属于那种看起来好复杂&#xff0c;但一看贪心解法&#xff0c;惊呼&#xff1a;这么巧妙&#xff01; 还是属于那种&#xff0c;做过了也就会了&#xff0c;没做过就很难想出来。 不过大家把如下三题做了之后&#…...

如何利用Oracle官方网站不登录账号下载和安装非最新版本的JDK(版本自由选择)

一、JDK概述 JDK&#xff08;Java Development Kit&#xff09;是Java开发工具集&#xff0c;是针对Java编程语言的软件开发环境。它包含了Java编译器、JRE&#xff08;Java运行时环境&#xff09;以及其他一些用于开发、调试和测试Java应用程序的工具&#xff0c;是Java开发人…...

税法相关的基础知识

文章目录 税法原则1.税法基本原则2.税法适用原则 来和大家聊聊税法相关的基础知识 税法原则 1.税法基本原则 2.税法适用原则...

ListNode 2487. 从链表中移除节点,单调栈的应用

一、题目 1、题目描述 给你一个链表的头节点 head 。 移除每个右侧有一个更大数值的节点。 返回修改后链表的头节点 head 。 2、接口描述 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nu…...

vue3中pdf打印问题处理

1 get请求参数问题 之前的请求是post得不到参数&#xff0c;今天发现的问题很奇怪&#xff0c;从前端进入网关&#xff0c;网关居然得不到参数。 前端代码 const print () > {let linkUrlStr proxy.$tool.getUrlStr(proxy.$api.invOrder.psiInvOrder.printSalOutstock,{a…...

黄江镇网站建设公司/成人用品哪里进货好

今天在知乎浏览时忽然发现了一个有趣的东西&#xff0c;php竟然可以实现协程的实现&#xff0c;而且还是通过go关键字实现&#xff0c;顿时感觉php现在发展的好迅速&#xff0c;竟然把go里的东西都借鉴去。只不过这是在一个叫Swoole的框架中实现的。Swoole4为PHP语言提供了强大…...

漳州 网站设计/网上的推广

场景&#xff1a;当使用MySQL客户端执行SQL 可以正常执行&#xff0c;但是当使用Mysql Java JDBC 执行SQL报错 Data truncation: Truncated incorrect DOUBLE value: 张三 参考文献&#xff1a;史上最全的mysql jDBC参数 - 王小明的个人页面 - OSCHINA - 中文开源技术交流社区 …...

网站建设运营费计入什么科目/品牌营销策略

请浏览后下载&#xff0c;资料供参考&#xff0c;期待您的好评与关注!请浏览后下载&#xff0c;资料供参考&#xff0c;期待您的好评与关注!实验报告三(四学时)课 程C语言程序设计实验项目函数程序设计成 绩专业班级学 号批阅日期姓 名实验日期指导教师2.1实验目的(1)掌握函数的…...

网站改版说明/广告联盟平台自动赚钱

左神算法基础class6—题目1图的存储与表达1.题目&#xff1a;图的存储与表达2.分析&#xff08;1&#xff09;邻接表法&#xff08;2&#xff09;邻接矩阵&#xff08;3&#xff09;矩阵表达&#xff08;题目常出现&#xff09;3.图在内存中的存储&#xff08;1&#xff09;cla…...

wordpress 嵌入网址/重庆网站优化

模板介绍 一份高质量的PPT模板&#xff0c;可以让你在日常的工作中展示自我、脱颖而出、去赢得更多机会&#xff0c;今天小编分享一份精美的商务清新会议报告PPT模板 PPT模板名称&#xff1a;商务清新会议报告PPT模板&#xff0c;模板编号&#xff1a;P44113&#xff0c;大小1…...

gif网站banner怎么做/青岛做网站的公司哪家好

Linux系统应用逐步区域广泛&#xff0c;吸引力不少青年朋友想要踏足Linux运维的征途&#xff0c;确定了自己的发展路线以后&#xff0c;接着就要选择一个合适的Linux系统版本。事实上&#xff0c;这个问题也是大多数初学者最为头疼的一个问题了。按我们一起来聊聊吧。 如果你是…...