基于springboot在线玩具商城交易平台的设计与实现
创始人
2024-01-31 06:36:20

 

随着科技创新不断突破玩具界限,特别是随着智能时代到来,电子游戏的兴起对传统玩具行业带来了冲击,智能玩具应运而生,成为新产品方向。智能玩具受消费者青睐,

随着电子商务的发展,其在我国的经济地位越来越重要[3],一大批电子商务 应用逐渐被开发出来,例如,阿里巴巴旗下的淘宝,天猫,亚马逊,京东等,这 些都已成为流行的电子商务系统。互联网已经逐渐引发新的产业革命,在当今经 济领域中依靠互联网的电子商务已经越来越重要。本文主要在了解这些背景的情 况下,设计出一款电子商务系统用于在线交易玩具商品,给企业以及消费者提供一个 可信赖的购物平台。

本商城网站采用B/S结构,web开发,用户自己在浏览器中输入网址来浏览网页中的信息。 采用mysql数据库来存储所有动态数据,本网站从技术方向来说,分为前端页面和后台逻辑开发,页面设计使用html+js+jquery技术,后台使用springboot+JPA。将IDEA作为编译环境,Java作为本网站的开发语言来设计开发。网上玩具商城系统开发环境如表1-1所示。

表1-1 系统开发环境表

操作平台:

Windows 10

硬件平台:

  CPU:i7

内存: 8G

 硬件平台:

硬盘:500GB

数据库:

MySql

 开发工具:

  IDEA

开发浏览器:

Google,火狐

网站站的设计与实现采用IDEA+jdk1.8作为开发环境,页面设计使用html技术和前端框架bootstrap,后台采用springboot+JPA+MySql来实现。开发过程应用了MVC模式。

开发环境

本网站以IDEA作为集成开发环境,后台服务器采用springboot内置的tomcat,软件开发工具包选用JDK1.8。

JDK作为java开发必备的环境,IDEA才能正常工作。IDEA是一个优秀成熟的java开发工具,已经用了几十年了,不管是学生还是公司的开发人员的不二之选,

页面设计

 本系统采用html作为前端显示。html学习简单易懂,大部分学生和老师都在用,html在配合前端框架bootstrap或者其他前端框架的时候开发非常简易,而且快速,是作为开发前端显示的良好选择。

后台设计

   后台采用springboot+JPA作为后台框架。springboot的目的是为了简化Spring应用的搭建以及开发过程,它默认配置了很多框架的使用方式,就像maven整合了所有的jar包,springboot整合了所有的框架。

 

 

本系统采用支付宝沙箱支付,关键代码如下:

package com.scut.mall.controller.user;import com.alipay.api.AlipayClient;
import com.alipay.api.DefaultAlipayClient;
import com.alipay.api.request.AlipayTradePagePayRequest;
import com.google.gson.Gson;
import com.scut.mall.entity.Order;
import com.scut.mall.entity.OrderItem;
import com.scut.mall.entity.User;
import com.scut.mall.entity.pojo.ResultBean;
import com.scut.mall.service.OrderService;
import com.scut.mall.utils.AlipayConfig;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.stereotype.Controller;
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 javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
import java.util.UUID;/*** @ Author     :java* @ Date       :2022/4/22 23:47* @ Description:订单控制层类* @ Modified By:*/
@Controller
@RequestMapping("/order")
public class OrderController {@Autowiredprivate OrderService orderService;/*** 打开订单列表页面** @return*/@RequestMapping("/toList.html")public String toOrderList() {return "mall/order/list";}/*** 查询用户订单列表** @param pageindex,request* @return*/@RequestMapping("/list.do")@ResponseBodypublic ResultBean> listData(int pageindex , HttpServletRequest request,@RequestParam(value = "pageSize", defaultValue = "10") int pageSize) {Pageable pageable = PageRequest.of(pageindex, pageSize, Sort.by(Sort.Direction.ASC,"id"));List orders = orderService.findUserOrder(request, pageable).getContent();return new ResultBean<>(orders);}/*** 查询订单详情** @param orderId* @return*/@RequestMapping("/getDetail.do")@ResponseBodypublic ResultBean> getDetail(int orderId) {List orderItems = orderService.findItems(orderId);return new ResultBean<>(orderItems);}//    /**
//     * 提交订单
//     *
//     * @param addressId
//     * @param request
//     * @param response
//     */
//    @RequestMapping("/submit.do")
//    public void submit(Integer addressId,
//                       HttpServletRequest request,
//                       HttpServletResponse response) throws Exception {
//        orderService.submit(addressId, request, response);
//    }@ResponseBody@RequestMapping(method = RequestMethod.POST, value = "/submit.do")public ResultBean submit(int address, HttpServletRequest request, HttpServletResponse response) throws Exception{orderService.submit( address, request, response );return new ResultBean<>(true);}/*** 支付方法** @param orderId*/@RequestMapping("pay1.do")@ResponseBodypublic ResultBean pay1(int orderId,HttpServletRequest request, HttpServletResponse response) throws Exception,IOException {orderService.pay(orderId,request,response);return new ResultBean<>(true);}@RequestMapping("pay.do")@ResponseBodypublic String pay(int orderId,HttpServletRequest request, HttpServletResponse response) throws Exception,IOException {Order order = orderService.findById(orderId);User user = (User) request.getSession().getAttribute("user");request.getSession().setAttribute("orderId", orderId);String username="";if(user!=null){username=user.getUserName();}Gson gson = new Gson();//商户订单号,商户网站订单系统中唯一订单号,必填String out_trade_no =UUID.randomUUID().toString();  //获得初始化的AlipayClientAlipayClient 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(order.getTotal());//订单名称,必填String subject ="用户"+username+"订单";//商品描述,可空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 result;}@RequestMapping("payreturn")public String alipayNotifyNotice( HttpServletRequest request, HttpServletResponse response) throws Exception {System.out.println("支付成功。。。。");int orderId = (int) request.getSession().getAttribute("orderId");orderService.pay(orderId, request, response);return "mall/order/list";}/*** 确认收货* @param orderId* @param response* @return* @throws IOException*/@RequestMapping("receive.do")@ResponseBodypublic ResultBean receive(int orderId, HttpServletResponse response) throws IOException {orderService.receive(orderId);return new ResultBean<>(true);}/*** create by: Cillivian* description:分页显示* create time: 22:26 2022/4/13 0013** @Param: null* @return*/@ResponseBody@RequestMapping("/getTotal.do")public ResultBean getTotal() {Pageable pageable =  PageRequest.of(1, 15, Sort.by(Sort.Direction.ASC,"id"));int total = (int) orderService.findAll(pageable).getTotalElements();return new ResultBean<>(total);}
}

 

 

 

pom.xml代码文件:


4.0.0com.scutmall0.0.1-SNAPSHOTjarmallQQ211811 9173 java程序猿 好乐思玩具org.springframework.bootspring-boot-starter-parent2.1.0.RELEASE UTF-8UTF-81.8org.springframework.bootspring-boot-starterorg.springframework.bootspring-boot-starter-log4j2mysqlmysql-connector-java8.0.12 org.mybatismybatis3.2.0

org.mybatis.generatormybatis-generator-core1.3.2
org.springframework.bootspring-boot-starter-data-jpacom.alibabadruid1.1.12org.springframework.bootspring-boot-starter-aoporg.springframework.bootspring-boot-starter-weborg.springframework.bootspring-boot-starter-thymeleafcommons-langcommons-lang2.6nz.net.ultraq.thymeleafthymeleaf-layout-dialectorg.springframework.bootspring-boot-devtoolsruntimetrueorg.springframework.bootspring-boot-starter-testtestorg.springframework.bootspring-boot-test2.1.0.RELEASEtestcom.fasterxml.jackson.jaxrsjackson-jaxrs-json-provider2.9.6com.alipay.sdkalipay-sdk-java3.1.0com.google.code.gsongson2.8.0org.springframework.bootspring-boot-maven-pluginmaven-alihttp://maven.aliyun.com/nexus/content/groups/public//truetruealwaysfail

 

相关内容

热门资讯

excel表格怎么求积 exc... Hello大家好,我是帮帮。今天跟大家分享一下Excel合并单元格求和乘积计算技巧,特殊表格公式计算...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
死人为什么要盖上脸 家里死人三... 众所周知,人的一生是非常短暂的,所以人们会在有限的时间里,将自己想做的事情都做完,为的就是不留遗憾。...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...