基于SpringBoot vue的茶叶商城平台源码和论文含支付宝沙箱支付

news2024/12/26 11:56:43

此项目是前后端分离的
后台项目:shop
前端项目:Vue-shop

后端项目启动步骤:
1.先把sql导入数据库
2.把后台项目导入编辑器
3.修改数据库配置
4.启动项目
 
前端项目启动步骤:

1.打开Vue-shop目录,在这个文件夹里面加入cmd目录窗口
2.运行启动vue项目目录(需先安装nodejs软件)

先后执行下面命令
npm install
npm run dev 
执行成功之后,命令窗口会显示前端网站信息,复制链接到浏览器打开即可

进入管理员界面网站
http://localhost:9528/login
账号密码:
admin
111111

演示视频:

【java毕业设计】基于SpringBoot vue的茶叶商城平台源码和论文含支付宝沙箱支付

从古至今,人类社会的进步离不开科学技术的发展,从现在的角度回望历史,每一次科技上的进步所引起的技术变革对人类社会都会造成巨大的影响,人们的生活也会发生翻天覆地的变化,社会的经济发展、生产力的提高都和科学技术的发展有着密切的联系。随着社会经济的不断发展,科学技术也在快速发展,科学技术的创新被越来越多的国家重视,从十八世纪的第一次技术革命开始一直到现在,人类越来越意识到科技改变世界,科技颠覆了人们很久以来的传统生活方式,人类的生活水平得到了很大程度的提高,社会的文明发展也在飞速的进行着。在现代社会中,随着计算机技术的飞速发展,各行各业都尝试用将计算机技术和各自的专业技术相结合,更好地提高工作效率。我国的计算机行业发展迅速,新时代的经济结构相对于以往也有所调整,计算机行业也改变了传统的行业模式,逐渐引进人工智能和机器学习等计算机技术。21世纪互联网时代的全面到来以及新时代社会的不断发展变革,传统网站以及不能满足用户的多元化需求。网站的内容日益丰富而多姿多彩,各大电商、浏览器商也在竞相的开发新的功能,供开发者使用并使用户拥有更好的使用体验,以此来满足各种各样不同需求的使用者。

淘宝、京东等购物网站的大获全胜使越来越多人把目光放在广而全的购物平台上,而忽略了传统单一而精的购物平台。人们开始越来越多的网上购物。目前,计算机普及率越来越高,计算机市场正处于蓬勃发展的大好阶段。众所周知,茶叶产品更新换代的速度很快,而实体店必要的店铺运营成本和员工人力成本也是不低的,对于茶叶产品而言,不需要面面俱到展示所有品牌,所有型号。设计类似与当当网这种只卖书籍的网站或许在未来会更具有竞争力。因为对于售后服务售前服务而言,茶叶产品和其它众多茶叶是无法相提并论的。因此将茶叶产品等茶叶设备放在购物网站上不失为一个明智的选择。

 

 

 pom.xml :

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.java</groupId>
    <artifactId>shop</artifactId>
    <version>1.0-SNAPSHOT</version>
    <description>shop</description>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.0.RELEASE</version>
    </parent>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
        <com.alibaba.fastjson>1.2.70</com.alibaba.fastjson>
        <org.projectlombok.lombok>1.16.6</org.projectlombok.lombok>
        <mysql.mysql-connector-java>8.0.29</mysql.mysql-connector-java>
        <com.baomidou.mybatis-plus>3.1.1</com.baomidou.mybatis-plus>
        <org.freemarker.freemarker>2.3.28</org.freemarker.freemarker>
        <com.alibaba.druid>1.1.22</com.alibaba.druid>
        <org.apache.tomcat.embed.tomcat>9.0.12</org.apache.tomcat.embed.tomcat>
    </properties>


    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-log4j2</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-logging</artifactId>
                </exclusion>
            </exclusions>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>${org.projectlombok.lombok}</version>
        </dependency>

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>${com.alibaba.fastjson}</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>${com.alibaba.druid}</version>
        </dependency>


        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>${mysql.mysql-connector-java}</version>
        </dependency>

        <!-- mybatis plus -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>${com.baomidou.mybatis-plus}</version>
        </dependency>

        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-generator</artifactId>
            <version>${com.baomidou.mybatis-plus}</version>
        </dependency>
<!--        <dependency>-->
<!--            <groupId>org.freemarker</groupId>-->
<!--            <artifactId>freemarker</artifactId>-->
<!--            <version>${freemarker.version}</version>-->
<!--        </dependency>-->


        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-jasper</artifactId>
<!--            <scope>provided</scope>-->
            <version>${org.apache.tomcat.embed.tomcat}</version>
        </dependency>
        <!-- 添加jstl标签库依赖模块 -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>
        <dependency>
            <groupId>com.alipay.sdk</groupId>
            <artifactId>alipay-sdk-java</artifactId>
            <version>3.7.4.ALL</version>
        </dependency>

    </dependencies>



    <build>
        <finalName>runok</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <mainClass>com.java.shopApplication</mainClass>
                </configuration>

                <version>1.4.2.RELEASE</version>
            </plugin>
        </plugins>
        <resources>
            <resource>
                <directory>${basedir}/src/main/webapp</directory>
                <targetPath>META-INF/resources</targetPath>
                <includes>
                    <include>**/**</include>
                </includes>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>false</filtering>
                <includes>
                    <include>**/**</include>
                </includes>
            </resource>

            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
                <excludes>
                    <exclude>**/*.woff</exclude>
                    <exclude>**/*.woff2</exclude>
                    <exclude>**/*.ttf</exclude>
                </excludes>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>false</filtering>
                <includes>
                    <include>**/*.woff</include>
                    <include>**/*.woff2</include>
                    <include>**/*.ttf</include>
                </includes>
            </resource>
        </resources>
    </build>


    <repositories>
        <repository>
            <id>aliyun</id>
            <name>aliyun</name>
            <url>http://maven.aliyun.com/nexus/content/groups/public</url>
        </repository>
    </repositories>
</project>

 

 

沙箱支付代码:

package com.java.controller;

import java.util.*;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.alibaba.fastjson.JSONObject;
import com.alipay.api.AlipayClient;
import com.alipay.api.DefaultAlipayClient;
import com.alipay.api.request.AlipayTradePagePayRequest;
import com.java.utils.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

import com.java.model.*;
import com.java.service.*;
;

@RestController
@RequestMapping("/buy")
public class BuyController {
	private BuyService buyService;

	public BuyService getBuyService() {
		return buyService;
	}
	@Autowired
	private ThingTypeService thingtypeService;
	@Autowired
	private BuyListService buylistService;
	@Autowired
	private ClientService clientService;
	@Autowired
	private ThingType2Service thingtype2Service;
	@Autowired
	public void setBuyService(BuyService buyService) {
		this.buyService = buyService;
	}
	@Autowired
	private ThingService thingService;
	@Autowired
	private BuyingService buyingService;
	@Autowired
	private HttpServletRequest request;
	@Autowired
	private HttpServletResponse response;



	@CrossOrigin(origins = "*")
	@RequestMapping("/add")
	@ResponseBody
	public JsonBody add(@RequestBody Buying b) {
		if(buyingService.GetCount(b)==0)
			return Util.SetMap("您的购物车中无任何商品",false);
		Buy bl=new Buy();

		List<Buying> buying=buyingService.Get(b);
		Buy buy=new Buy();
		buy.setClientId(b.getClientId());

		int id = buyService.Add(buy);
		id=buy.getId();

		if(id<1)
			return Util.SetMap("提交失败",false);
		try {

             int total  = 0;
			int count=0;
			for(Buying bi:buying)
			{
				BuyList buylist=new BuyList();
				buylist.setBuyId(id);
				buylist.setThingId(bi.getThingId());
				buylist.setNum(bi.getNum());
				int success=buylistService.Add(buylist);
				count+=success;
				if(success>0)
					buyingService.Del(bi.getId());


                Thing thing = thingService.GetByID(bi.getThingId());
                total+=thing.getPrice();
			}


            //商户订单号,商户网站订单系统中唯一订单号,必填
            String out_trade_no = UUID.randomUUID().toString();

            //获得初始化的AlipayClient
            AlipayClient alipayClient = new DefaultAlipayClient(AlipayConfig.gatewayUrl, AlipayConfig.app_id, AlipayConfig.merchant_private_key, "json", AlipayConfig.charset, AlipayConfig.alipay_public_key, AlipayConfig.sign_type);
            //设置请求参数
            AlipayTradePagePayRequest alipayRequest = new AlipayTradePagePayRequest();
            //这里设置支付后跳转的地址
            alipayRequest.setReturnUrl(AlipayConfig.return_url);
            //alipayRequest.setNotifyUrl(AlipayConfig.notify_url);

            //付款金额,必填
            String total_amount = String.valueOf(total);
            //订单名称,必填
            String subject ="用户订单";
            //商品描述,可空
            String body = "";

            // 该笔订单允许的最晚付款时间,逾期将关闭交易。取值范围:1m~15d。m-分钟,h-小时,d-天,1c-当天(1c-当天的情况下,无论交易何时创建,都在0点关闭)。 该参数数值不接受小数点, 如 1.5h,可转换为 90m。
            String timeout_express = "5m";

            alipayRequest.setBizContent("{\"out_trade_no\":\""+ out_trade_no +"\","
                    + "\"total_amount\":\""+ total_amount +"\","
                    + "\"subject\":\""+ subject +"\","
                    + "\"body\":\""+ body +"\","
                    + "\"timeout_express\":\""+ timeout_express +"\","
                    + "\"product_code\":\"FAST_INSTANT_TRADE_PAY\"}");

            //请求
            String result = alipayClient.pageExecute(alipayRequest).getBody();



			return Util.SetData(result);


//			if(count==buying.size())
//				return Util.SetMap("下单成功", true);
//			else
//				return Util.SetMap("提交失败", false);
		} catch (Exception e) {
			return Util.SetMap(e.getMessage(), false);
		}
	}

	@CrossOrigin(origins = "*")
	@RequestMapping("/list")
	@ResponseBody
	public JsonBody list(@RequestBody Buy b) {
		List<Buy> bs= buyService.Get(b);
		for(Buy buy:bs)
		{
			buy.setClient(clientService.GetByID(buy.getClientId()));
		}
		return Util.SetData(bs);
	}

	@CrossOrigin(origins = "*")
	@RequestMapping("/del")
	@ResponseBody
	public JsonBody Del(int id) {
		Buy b=new Buy();
		b.setId(id);
		Buy bl=buyService.GetByID(b);
		if(bl.getState()>0)
			return Util.SetError("该订单已发出,不能取消");
		int r = buyService.Del(id);

		if(r>0)
			return Util.SetMap("退单成功!", false);
		else
			return Util.SetMap("退单失败!", false);
	}

	@CrossOrigin(origins = "*")
	@RequestMapping("/state")
	@ResponseBody
	public JsonBody state(@RequestBody Buy bl) {
		int r = buyService.EditState(bl);

		if(r>0)
			return Util.SetMap("操作成功!", true);
		else
			return Util.SetMap("操作失败!", false);
	}


}

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/55815.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

四、伊森商城 前端基础-Vue 双向绑定事件处理安装插件 p22

1、双向绑定 双向绑定&#xff1a; 效果&#xff1a;我们修改表单项&#xff0c;num 会发生变化。我们修改 num&#xff0c;表单项也会发生变化。为了实 时观察到这个变化&#xff0c;我们将 num 输出到页面。 我们不需要关注他们为什么会建立起来关联&#xff0c;以及页面如何…

Java面向对象三大特性:继承、封装、多态

java封装、继承、多态笔记 1.包 1.包的命名规则 &#xff08;1&#xff09;只能包含数字、字母、下划线、小圆点. &#xff08;2&#xff09;不能用数字开头&#xff0c; &#xff08;3&#xff09;不能是关键字或保留字 例如&#xff1a; demo.class.exec1 //错误class…

Redis学习笔记(三)

Jedis java语言连接redis工具准备工作 下载地址&#xff1a;https://mvnrepository.com/artifact/redis.clients/jedis基于maven <dependency> <groupId> redis.clients</groupId><artifactId>jedis</artifactId><version>2.9.0</versi…

【面试题】面试官:你能自己实现一个async await吗?

开启掘金成长之旅&#xff01;这是我参与「掘金日新计划 12 月更文挑战」的第3天(点击查看活动详情) 相信大家对于Promise都不再陌生了&#xff0c;简易版的Promise对象源码我们也手撕过一次了&#xff0c;那接下来我们聊聊Promise的语法糖async-await&#xff0c;那让我们从…

【JavaWeb】第六章 xml

文章目录1、XML简介2、xml语法3、xml解析4、Dom4j类库的使用5、dom4j解析xml1、XML简介 xml是可扩展的标记性语言&#xff0c;xml的主要作用有&#xff1a; 用来保存数据&#xff0c;而且这些数据具有自我描述性 做为项目或者模块的配置文件做为网络传输数据的格式&#xff0…

QML 如何显示文本?Text可以有多少功能?

目录1.如何显示文本&#xff1f;2. Text有哪些主要功能&#xff1f;2.1 基本属性示例2.2 字重属性2.3 字体样式2.4 字体上标下标支持2.5 富文本2.6 文字换行 缩略1.如何显示文本&#xff1f; Text {font.pixelSize: 20; text: "这是20普通文字"} //一行即可以上代码…

12.2排序

目录 0.做题的失误 1.引用传值和传址 1.斐波那契数列 一.快速排序 1.挖坑法 2.优化 2.1 随机取数法 2.2 三数取中法 2.3把基准值相同的值移到基准旁边 2.4引用直接插入排序 3.Hoare 法: 4.非递归法 5.总结 二,归并排序 1.原理 2.代码实现 3.分析 4.非递归 5…

Git(第一篇)——Git的下载与安装(史上最全最详细)

Git&#xff08;第一篇&#xff09;——Git的下载与安装&#xff08;史上最全最详细&#xff09; 目录Git&#xff08;第一篇&#xff09;——Git的下载与安装&#xff08;史上最全最详细&#xff09;git的下载git的安装git的下载 如果你还没有下载Git&#xff0c;可直接到git…

什么是数据管理能力成熟度评估(DCMM)

GB/T 36073-2018 《数据管理能力成熟度评估模型》&#xff08;Data Management Capability Maturity Assessment Model&#xff0c;简称&#xff1a;DCMM&#xff09;是我国数据管理领域首个国家标准。该标准将组织对象的数据管理划分为八大能力域&#xff08;数据战略、数据治…

【Hbase】第一章——从原理剖析

文章目录1. HBase的实现原理1.1 HBase功能组件1.2 表和Region1.3 Region的定位2. HBase运行机制2.1 HBase系统架构2.2 Region服务器工作原理2.3 Store工作原理2.4 HLog工作原理3. HBase应用方案3.1 HBase实际应用中的性能优化方法3.2 HBase性能监视3.3 在HBase之上构建SQL引擎3…

【图像压缩】DCT图像无损压缩【含GUI Matlab源码 726期】

⛄一、DCT图像无损压缩简介 1 图像压缩 图像压缩按照压缩过程中是否有信息的损失以及解压后与原始图像是否有误差可以分为无损压缩和有损压缩两大类。无损压缩是指不损失图像质量的压缩&#xff0c;它是对文件的存储方式进行优化&#xff0c;采用某种算法表示重复的数据信息&a…

关于Jetpack Compose的初步使用、学习和总结

初步使用和学习ComposeJetpack Compose简要介绍创建一个Jetpack Compose项目自定义组合函数MessageCard通过修饰符&#xff0c;进一步改善布局为什么使用ComposeCompose 与 XML总结与期望Jetpack Compose 简要介绍 根据developers上的介绍&#xff0c;Jetpack Compose 是推荐…

【3D目标检测】Rethinking Pseudo-LiDAR Representation

目录概述细节证明基于伪点云的3D目标检测算法效果好的原因并不是伪点云这种数据表示基于深度图的图像表示的算法PatchNet证明基于伪点云的3D目标检测算法效果好的原因是从图像到点云坐标系转换的过程概述 本文是基于图像的3D目标检测算法。 贡献&#xff1a; 作者认为基于伪点…

开放式运动耳机排行榜,排行靠前的五款高性能耳机分享

智能产品的发展迅猛&#xff0c;作为生活必需品的耳机&#xff0c;更是在不断的更新&#xff0c;尤其是对于运动爱好者而言&#xff0c;以往的入耳式蓝牙耳机存在汗渍入耳等问题。而为了有效解决这一些列问题&#xff0c;新型的骨传导耳机随之诞生了&#xff0c;相比入耳式的蓝…

一定要用Photoshop?no!动手用Python做一个颜色提取器! ⛵

&#x1f4a1; 作者&#xff1a;韩信子ShowMeAI &#x1f4d8; Python3◉技能提升系列&#xff1a;https://www.showmeai.tech/tutorials/56 &#x1f4d8; 计算机视觉实战系列&#xff1a;https://www.showmeai.tech/tutorials/46 &#x1f4d8; 本文地址&#xff1a;https://…

直播 | 数据仓库?数据湖?停止纠结,流批融合的极速 Lakehouse来了!

万物皆数据的时代&#xff0c;各行各业对数据分析架构的要求日益拔高&#xff0c;打破传统的数据湖应需而生。企业得以用更低廉的成本、更完善的 ACID 支持、更实时的方式&#xff0c;导入并存储所有结构化、半结构化和非结构化数据。得益于数据湖良好的伸缩性和灵活性&#xf…

jQuery 安装

网页中添加 jQuery 可以通过多种方法在网页中添加 jQuery。 您可以使用以下方法&#xff1a; 从 jquery.com 下载 jQuery 库从 CDN 中载入 jQuery, 如从 Google 中加载 jQuery下载 jQuery 有两个版本的 jQuery 可供下载&#xff1a; Production version - 用于实际的网站中…

渲染时间过长?这些参数设置学起来

渲染时间 为了契合创作者的需求&#xff0c;V-Ray渲染器近年来迭代迅速&#xff0c;新版本的上线&#xff0c;便利了更多用户。但也有小伙伴在使用后反馈&#xff1a; 我的渲染器明明已经升级到最高版本了&#xff0c;为什么渲染时间还这么慢&#xff1f; 实际上&#xff0c;出…

如何通过一个项目征服Java

Java早已经不是高大山的稀世珍品了&#xff0c;程序员也不再是高科技工作者&#xff0c;而被称为码农 &#xff0c;为什么呢&#xff1f;因为Java后台的很多基础技术都已经固定了&#xff0c;也就是说主要你从头到尾学一遍就能会 &#xff0c;淘宝双十一搞不定&#xff0c;但是…

2022年12月深圳/珠海/佛山/东莞数据分析CPDA认证报名

2022年12月深圳/珠海/佛山/东莞数据分析CPDA认证报名 CPDA数据分析师认证是中国大数据领域有一定权威度的中高端人才认证&#xff0c;它不仅是中国较早大数据专业技术人才认证、更是中国大数据时代先行者&#xff0c;具有广泛的社会认知度和权威性。 无论是地方政府引进人才、…