Java项目:前后端分离网上手机商城平台系统设计和实现(java+vue+redis+springboot+mysql+ssm)
源码获取:博客首页 "资源" 里下载!
主要模块设计如下:
前后端主要技术:Java springboot springMVC mybatis mysql vue jquery node.js redis
1) 用户注册和登录功能:。
2) 用户信息的管理以及角色的管理、不同用户角色具有不同的功能权限操作。
3) 商品的操作、包括商品列表信息、商品的分离、商品的详情、品牌和规格等操作。
4) 购物车的管理操作:
5) 订单管理操作:
6)用户退货管理
7)手机商品类型的管理
8)手机商品信息的预览、查看、搜索
9)修改密码、退出登录等功能
给大家截一部分效果图吧
系统首页:
加入购物车:
后台主要功能:
商品信息操作:
@CrossOrigin
@RestController
@RequestMapping("Good")
public class GoodController {@Autowiredprivate GoodServiceImp goodServiceImp;@GetMapping("/getGood")private GoodResult getGood(@RequestParam("pageIndex") int pageIndex,@RequestParam("pageSize") int pageSize,@RequestParam("name") String goodname) throws IOException {GoodResult goodResult = goodServiceImp.getGood(pageIndex,pageSize,goodname);return goodResult;}@GetMapping("/getGoodById")private GoodResult getGoodById(@RequestParam("category") int pageIndex,@RequestParam("pageSize") int pageSize) throws IOException {GoodResult goodResult = goodServiceImp.getGoodById(pageIndex,pageSize);return goodResult;}@RequestMapping("/getGoodByName")private GoodResult getGoodByName(@RequestParam("name") String goodname) throws IOException {GoodResult goodResult = goodServiceImp.getGoodByName(goodname);return goodResult;}@RequestMapping("/updGood")private GoodResult getGoodByName(@RequestParam("good_id") int goodid,@RequestParam("name") String goodname,@RequestParam("newhot") int newhot) throws IOException {GoodResult goodResult = goodServiceImp.updGood(goodid,goodname,newhot);return goodResult;}@GetMapping("/getGoodPicById")private GoodPicResult getGoodPicById(@RequestParam("category") int pageIndex,@RequestParam("pageSize") int pageSize) throws IOException {GoodPicResult goodpicResult = goodServiceImp.getGoodPic(pageIndex,pageSize);return goodpicResult;}@RequestMapping("/getGoodPicByName")private GoodPicResult getGoodPicByName(@RequestParam("name") String goodname) throws IOException {
// int categor = Integer.parseInt(category);GoodPicResult goodResult = goodServiceImp.getGoodPicByName(goodname);return goodResult;}@PostMapping("/pushGood")private GoodPushResult pushGood(@RequestBody good good) throws IOException {GoodPushResult goodPushResult = goodServiceImp.getGoodPush(good);return goodPushResult;}@PostMapping("/delGood")private void delGood(@RequestBody good good) throws IOException {goodServiceImp.delGood(good);}@PostMapping("/delMulGood")private void delMulGood(@RequestBody List<good> goods) throws IOException {goodServiceImp.delMulGood(goods);}@GetMapping("/getGoodPic")private GoodPicResult getGoodPic(@RequestParam("pageIndex") int pageIndex,@RequestParam("pageSize") int pageSize) throws IOException {GoodPicResult goodPicResult = goodServiceImp.getGoodPic(pageIndex,pageSize);return goodPicResult;}@PostMapping("/updGoodPic")private void upGoodPic(@RequestBody GoodPic goodPic) throws IOException {int goodid= goodPic.getGood_id();String icon= goodPic.getIcon();String imageHead = goodPic.getImageHead();String imageFoot = goodPic.getImageFoot();goodServiceImp.updGoodPic(goodid,icon,1);goodServiceImp.updGoodPic(goodid,imageHead,2);goodServiceImp.updGoodPic(goodid,imageFoot,3);}
}
订单业务管理:
@CrossOrigin
@RestController
@RequestMapping("orders")
public class OrderController {@Autowiredprivate OrderServiceImp orderServiceImp;@Autowiredprivate RegLogServiceImp regLogServiceImp;@PostMapping("/createorder")public OrderResult createOrder(@RequestBody OrdCreaParm ordCreaParm) throws IOException {OrderResult orderResult = new OrderResult();orderResult.setStatus(0);OrderList orderList = orderServiceImp.creatOrder(ordCreaParm);orderResult.setData(orderList);return orderResult;}@RequestMapping("/getorderlist")public UserOrdListResult getUserOrdList(String username) throws IOException {UserOrdListResult userOrdListResult = new UserOrdListResult();User user = regLogServiceImp.getUserByUserName(username);String userid = user.getUserid();List<UserOrdList> orderList = orderServiceImp.getOrderList(userid);for(UserOrdList userOrdList:orderList){int orderNo = userOrdList.getOrderNo();List<UserOrdItemList> orderListItems = orderServiceImp.getOrderListItems(orderNo);userOrdList.setItems(orderListItems);}userOrdListResult.setStatus(0);userOrdListResult.setTotal(orderList.size());userOrdListResult.setList(orderList);return userOrdListResult;}//下单成功后调用下面两个方法@RequestMapping("/getorder")public OrdFinaResult getOrder(@RequestParam("id") int id) throws IOException{OrdFinaResult orderResult = new OrdFinaResult();orderResult.setStatus(0);OrdFina orderList = orderServiceImp.getOrderById(id);orderResult.setOrdFina(orderList);return orderResult;}@RequestMapping("/getorderdetail")public OrdFinaResult getOrderDetail(@RequestParam("username") String username) throws IOException{User user = regLogServiceImp.getUserByUserName(username);String userid = user.getUserid();List<orderItemVoList> orderItems = orderServiceImp.getOrderItems(userid);OrdFinaResult orderResult = new OrdFinaResult();orderResult.setStatus(0);orderResult.setLists(orderItems);return orderResult;}
}
注册登录验证:
@CrossOrigin
@RestController
@RequestMapping("login")
public class LogRegController {@Autowiredprivate RegLogServiceImp regLogServiceImp;//注册功能@RequestMapping("/getRegister")public RegResult Register(@RequestParam("username") String username,@RequestParam("email") String email,@RequestParam("password") String password,@RequestParam("phone") String phone) throws IOException, InvalidKeySpecException, NoSuchAlgorithmException {RegResult result = new RegResult();System.out.println(username.length());if(username.equals("") || email.equals("") || password.equals("") || phone.equals("")){result.setStatus(404);result.setMsg("填写信息不全");return result;}User user = regLogServiceImp.getUserByName(username);if (user != null) {result.setStatus(2002);result.setMsg("账号已存在,注册失败!");}else {String userid = UUID.randomUUID().toString();Map<String, String> keyMap = RSAUtils.createKeys(512);String publicKey = keyMap.get("publicKey");String privateKey = keyMap.get("privateKey");//公钥加密String encodedData = RSAUtils.publicEncrypt(password,RSAUtils.getPublicKey(publicKey));String date = DateUtil.ptfDate();regLogServiceImp.insertUser(userid,username,email,encodedData,phone,"可用",date,privateKey);result.setStatus(200);result.setMsg("注册成功!");}return result;}//登录验证@RequestMapping("/UserLogin")public LoginResult Login(@RequestParam("username") String username,@RequestParam("password") String password) throws IOException, InvalidKeySpecException, NoSuchAlgorithmException {User user = regLogServiceImp.getUserByUserName(username);LoginResult result = new LoginResult();LoginData loginData = new LoginData();if(user==null){result.setMsg("无此用户,请重新输入正确用户名");result.setStatus(2008);}else {if(RSAUtils.privateDecrypt(user.getPwd(), RSAUtils.getPrivateKey(user.getPrivatekey().trim())).equals(password)){result.setStatus(0);String token = TokenUtil.token(user.getUserid().trim());loginData.setToken(token);result.setMsg("登录成功");result.setData(loginData);}else {result.setStatus(2007);result.setMsg("密码错误");}}return result;}}
购物车业务操作:
@CrossOrigin
@RestController
@RequestMapping("carts")
public class CartController {@Autowiredprivate RegLogServiceImp regLogServiceImp;@Autowiredprivate GoodServiceImp goodServiceImp;@Autowiredprivate CartServiceImp cartServiceImp;@PostMapping("/push")public CartResult putShop(@RequestBody pushCart pushcart) throws IOException {CartResult cartResult = new CartResult();boolean success = TokenUtil.verify(pushcart.getToken());if (success) {cartResult.setStatus(0);User user = regLogServiceImp.getUserByUserName(pushcart.getUsername().trim());String userid = user.getUserid();CartGood cartGood = goodServiceImp.getGoodByid(userid, pushcart.getProductId());if (cartGood == null) {int goodcount = 1;CartGoodInsert goodByidinsert = goodServiceImp.getGoodByidinsert(pushcart.getProductId());goodServiceImp.insCartGood(userid, pushcart.getProductId(), goodByidinsert.getName(),goodByidinsert.getPrice(), goodcount, goodByidinsert.getSubtitle(), goodByidinsert.getProductStock(),goodByidinsert.getStatus(), true);} else {goodServiceImp.updateCartGood(userid, cartGood.getCount() + 1, pushcart.getProductId(), (cartGood.getCount() + 1) * cartGood.getPrice());}cartProductVoList cartProductVoList = cartServiceImp.getCartProduct(userid);int cartTotalPrice = 0;boolean selectedAll = true;int cartTotalQuantity = 0;for (cartProduct cartProduct : cartProductVoList.getList()) {cartTotalPrice += cartProduct.getProductTotalPrice();if (!cartProduct.isProductSelected()) {selectedAll = false;}cartTotalQuantity += cartProduct.getCount();}cartResult.setStatus(0);cartResult.setCartTotalPrice(cartTotalPrice);cartResult.setCartTotalQuantity(cartTotalQuantity);cartResult.setData(cartProductVoList);cartResult.setImageHost("www.mi.com");cartResult.setSelectedAll(selectedAll);} else {cartResult.setStatus(10);}return cartResult;}@GetMapping("/sum")public CartResult getCartSum(@RequestParam("username") String username) throws IOException {CartResult cartResult = new CartResult();User user = regLogServiceImp.getUserByUserName(username);String userid = user.getUserid();cartProductVoList cartProductVoList = cartServiceImp.getCartProduct(userid);if(cartProductVoList==null){cartResult.setStatus(0);cartResult.setCartTotalQuantity(0);}else {int cartTotalQuantity=0;for(cartProduct cartProduct:cartProductVoList.getList()){cartTotalQuantity+=cartProduct.getCount();}cartResult.setStatus(0);cartResult.setCartTotalQuantity(cartTotalQuantity);}return cartResult;}@RequestMapping("/del")public CartResult delCarts(@RequestParam("id") int goodid,@RequestParam("username") String username) throws IOException {User user = regLogServiceImp.getUserByUserName(username);String userid = user.getUserid();goodServiceImp.delGoodByid(userid,goodid);CartResult cartResult = getCarts(username);return cartResult;}@RequestMapping("/getcarts")public CartResult getCarts (@RequestParam("username") String username) throws IOException {CartResult cartResult = new CartResult();User user = regLogServiceImp.getUserByUserName(username);String userid = user.getUserid();cartProductVoList cartProductVoList = cartServiceImp.getCartProduct(userid);if(cartProductVoList==null){cartResult.setStatus(0);cartResult.setCartTotalQuantity(0);cartResult.setSelectedAll(false);cartResult.setImageHost("www.mi.com");cartResult.setCartTotalQuantity(0);}else {int carttotalPrice=0;boolean selectedall=true;int carttotalQuantity=0;for(cartProduct cartProduct:cartProductVoList.getList()){if(cartProduct.isProductSelected())carttotalPrice+=cartProduct.getProductTotalPrice();if(!cartProduct.isProductSelected()){selectedall=false;}carttotalQuantity+=cartProduct.getCount();}cartResult.setStatus(0);cartResult.setCartTotalPrice(carttotalPrice);cartResult.setCartTotalQuantity(carttotalQuantity);cartResult.setData(cartProductVoList);cartResult.setImageHost("www.mi.com");cartResult.setSelectedAll(selectedall);}return cartResult;}@GetMapping("/updatecart")public CartResult getCarts (@RequestParam("goodid") int goodid,@RequestParam("username") String username,@RequestParam("quantity") int count,@RequestParam("selected") boolean selected) throws IOException {User user = regLogServiceImp.getUserByUserName(username);String userid = user.getUserid();CartGood goodByid = goodServiceImp.getGoodByid(userid, goodid);goodServiceImp.updaCartNumSel(userid,goodid,count,selected,goodByid.getPrice()*count);CartResult carts = getCarts(username);return carts;}@GetMapping("/selectAll")public CartResult SelectAllCart(@RequestParam("username") String username) throws IOException {User user = regLogServiceImp.getUserByUserName(username);String userid = user.getUserid();goodServiceImp.updaCartSelect(userid);CartResult cartResult = getCarts(username);return cartResult;}@GetMapping("/unSelectAll")public CartResult unSelectAllCart(@RequestParam("username") String username) throws IOException {User user = regLogServiceImp.getUserByUserName(username);String userid = user.getUserid();goodServiceImp.updaCartunSelect(userid);CartResult cartResult = getCarts(username);cartResult.setCartTotalQuantity(0);cartResult.setCartTotalPrice(0);return cartResult;}
}
源码获取:博客首页 "资源" 里下载!
相关文章:

利用AutoSPSourceBuilder和Autospinstaller自动安装SharePoint Server 2013图解教程——Part 1...
这是一篇对之前 《利用AutoSPSourceBuilder和Autospinstaller自动安装SharePoint Server 2013图解教程——Part 2》的补充。本篇博客将对AutoSPSourceBuilder的使用进行说明。 AutoSPSourceBuilder介绍 下载AutoSPSourceBuilder点击进入AutoSPSourceBuilder的官网,找…

Git 版本还原命令
转载:https://blog.csdn.net/yxlshk/article/details/79944535 1.需求场景: 在利用github实现多人协作开发项目的过程中,有时会出现错误提交的情况,此时我们希望能撤销提交操作,让当前版本回到提交前的样子或者某一个版…

NVME CLI -- nvme 命令查看NVME设备内部状态
文章目录NVME 和 AHCI 性能比较NVME-CLI nvme工具使用1. 安装2. 命令综述3. 基本命令演示4. NVME 固件设备升级近期在做一些rocksdb on 新硬件的性能测试(flash ssd, nvme ssd , nvme optane ssd, optane persistent memory),由于底层一些设备…

Java项目:网上水果蔬菜项目系统设计和实现(java+springboot+mysql+ssm)
源码获取:博客首页 "资源" 里下载! 主主要技术:java springmvc springboot mybatis mysql jquery layui 等技术要模块设计如下: 用户角色的功能: 登录、注册、浏览商品、修改个人信息(上传…

POJ 1189 记忆化搜索
钉子和小球Time Limit: 1000MS Memory Limit: 10000KTotal Submissions: 7218 Accepted: 2164Description 有一个三角形木板,竖直立放,上面钉着n(n1)/2颗钉子,还有(n1)个格子(当n5时如图1)。每颗钉子和周围的钉子的距离都等于d&am…

Android短信管家视频播放器代码备份
自己保留备份,增强记忆 这是video的类 public class VideoActivity extends Activity {/*** 解析网络页面*/private WebView wv;/*** 进度条类*/private ProgressDialog pd;/*** 异步处理消息*/private Handler handler;private static final int SHOW 0;private s…

Python常用函数--文档字符串DocStrings
Python 有一个甚是优美的功能称作python文档字符串(Documentation Strings),在称呼它时通常会使用另一个短一些的名字docstrings。DocStrings 是一款你应当使用的重要工具,它能够帮助你更好地记录程序并让其更加易于理解。令人惊叹…

Go 分布式学习利器(17)-- Go并发编程之协程机制:Grountine 原理及使用
文章目录1. Thread VS Groutine2. Groutine 调度原理3. Groutine 示例代码关于Go的底层实现还需要后续持续研究,文中如有一些原理描述有误,欢迎指证。 1. Thread VS Groutine 这里主要介绍一下Go的并发协程相比于传统的线程 的不同点: 创建…

Java项目:美食菜谱分享平台系统设计和实现(java+springboot+mysql+ssm)
源码获取:博客首页 "资源" 里下载! 主要技术实现:spring、 springmvc、 springboot、mybatis 、session、 jquery 、 md5 、bootstarp.js tomcat、拦截器等。 具体主要功能模块如下: 1.用户模块管理:用户…

【leetcode】Roman to Integer
题目描述: Given a roman numeral, convert it to an integer. Input is guaranteed to be within the range from 1 to 3999. 解题思路: 首先我们要了解罗马数字怎么写的 个位数举例 I, 1 】II, 2】 III, 3】 IV, 4 】V, 5 】VI, 6】 VII, 7】 VIII,8 】…

Apache Traffic Server管理工具
Traffic Line是命令行程序,可以用来快速监视 Traffic Server 的性能和网络流量,也能配置 TS。Traffic Shell也是命令行工具,进入该 shell 后有自己一套语法,可代替 Traffic Line 完成监控、配置任务。通过 Traffic Line 和 Traffi…

npm使用记录
npm是一个 包管理工具。安装node之后就可以使用npm命令了,为了方便使用,通常我们还要装下 淘宝NPM镜像,之后就可以用cnpm命令了。 注意:以下提到的如-g --save等标签都可以放在 包名前面。 首先一个前端项目下载下来,需…

Go 分布式学习利器(18)-- Go并发编程之lock+WaitGroup实现线程安全
Go语言中通过Groutine 启动一个Go协程,不同协程之间是并发执行的,就像C/Java中线程之间线程安全是一个常见的问题。 如下Go 语言代码: func TestConcurrent(t *testing.T) {var counter int 0for i : 0;i < 5000; i {go func() { // 启动groutine 进…

Java项目:网上家具商城平台设计和实现(java+springboot+mysql+ssm)
源码获取:博客首页 "资源" 里下载! 主要技术:springmvc springboot mybatis mysql jquery layui 等技术 具体功能模块: (1) 用户注册和登录登录功能: ①用户的注册功能 : 访问网站的人根据网站的提示注册…

Linux socket TIME_WAIT 优化
如发现系统存在大量TIME_WAIT状态的连接,通过调整内核参数解决,vim /etc/sysctl.conf编辑文件,加入以下内容:net.ipv4.tcp_syncookies 1net.ipv4.tcp_tw_reuse 1net.ipv4.tcp_tw_recycle 1net.ipv4.tcp_fin_timeout 30然后执行…

Android Handler的使用!!!
大家好我们这一节讲的是Android Handler的使用,在讲Handler之前,我们先提个小问题,就是如何让程序5秒钟更新一下Title.首先我们看一下习惯了Java编程的人,在不知道Handler的用法之前是怎么样写的程序,代码如下所示:view plaincopy to clipboa…

git之reset图解
https://blog.csdn.net/longintchar/article/details/81843048 1、三棵树。 此时如果我们运行 git status,会发现没有任何改动,因为现在三棵树完全相同。 修改文件 现在我们想要对文件进行修改然后提交它。我们将会经历同样的过程;首先在工作…

Go 分布式学习利器(19)-- Go并发编程 之 CSP(communicating sequential processes) 机制
文章目录前言CSP 特点CSP代码 演示1. 正常流程的代码2. CSP 未设置buffer 代码3. 设置指定大小的channel buffer总结前言 CSP 这个名词大家会比较陌生,但是说到future 熟悉C / JAVA 线程模型的伙伴可能就会很熟悉了, 通过future机制能够实现两个线程之间…

Java项目:学生学科竞赛管理管理系统设计和实现(java+springboot+ssm+maven)
源码获取:博客首页 "资源" 里下载! 主要技术、spring、 springmvc、 springboot、 mybatis 、 jquery 、 layUI、md5 、bootstarp.js tomcat、、拦截器等项目 主要功能:登录、用户、菜单管理、角色管理、权限管理、立项申请、报名、结、经费…

update 改写 merge into
update语句改写成merge into有时会提高运行速度 看两个案例 1.根据业务将两个嵌套子查询改写成max,速度有3min提升到3s UPDATE OPER_792.LL_SCB_YDKB_20120730 A SET A.DCP (SELECT B.PROD_OFFER_NAME FROM OPER_792.YD_TC B WHERE A.SERV_ID B.SERV_ID AND B.TC_…

CCControlSwitch 、CCControlSlider、CCControlButton
/**bool hasMoved(); 这里获取的不是开关是否正在被用户拨动,而是开关最终的状态是由用户手动拨动开关进行的,*还是用户点击开关进行的状态更改*/CCControlSwitch* pSwitch CCControlSwitch::create(CCSprite::create("switch-mask.png"),CCS…

bzoj2961 共点圆 (CDQ分治, 凸包)
/* 可以发现可行的圆心相对于我们要查询的点是在一个半平面上, 然后我们要做的就是动态维护凸壳然后用这个半平面去切它 看看是否是在合法的那一面然后cdq分治就可以了代码基本是抄的,*/#include<cstdio> #include<algorithm> #include<c…

Rocksdb Iterator实现:从DBIter 到 TwoLevelIter 的漫长链路
文章目录1. 迭代器简单介绍2. 迭代器用户态相关接口3. 迭代器内部架构4. 迭代器的入口实现4.1 DBIter4.2 MergingIterator4.3 Memtable系列Iterator4.4 LevelIterator 和 TwoLevelIteratorps:本文的基础迭代器设计 以及 相关代码 是基于rocksdb 6.4.6版本进行描述的…

Java项目:OA办公自动化系统设计和实现(java+springboot+freemarker+mysql+maven+mybatis+jpa)
源码获取:博客首页 "资源" 里下载! java springbootOA办公自动化系统: 主要功能模块:系统、用户、角色、考勤、流程、公告、邮件、任务、日程、计划、文件、笔记、通讯录、讨论区等多个模块管理 使用Maven进行项目管理…

UIScrollView上面放一个UIScrollView或者UITableView拖动时候 View出现一闪一闪解决办法...
在项目中发现一个问题: 创建一个UIScrollView 上面放一个scrollView或者TableView,拖动scrollview或TableView 画面出现一闪一闪的情况。 解决办法设置一下UIScrollView的contentSize 如果你是上下滑动scrollView.contentSize CGSizeMake(0, self.view.…

理解koa-router 路由一般使用
阅读目录 一:理解koa-router一般的路由二:理解koa-router命名路由三:理解koa-router多个中间件使用四:理解koa-router嵌套路由五:分割路由文件回到顶部一:理解koa-router一般的路由 koa-router是koa的路由库…

Go 分布式学习利器(20)-- Go并发编程之多路选择和超时控制,channel的关闭和广播
Select 多路选择 基本使用语法如下: select { case ret : <-retCh1: //阻塞事件,等待channel1的消息t.Logf("result %s \n",ret) case ret : <-retCh2:t.Logf("result %s \n", rest) default :t.Error("return empty&q…

Java项目:网盘系统设计和实现(java+ssm+jpa)
源码获取:博客首页 "资源" 里下载! 很多同学都有自己的网盘,方便存储一些java学习教程。该毕业设计实现了一个简易的网盘,包含文件上传和文件分享等功能。 后端技术采用了spring,spring mvc,JPA&…

快速学习的方法论
大多数人认为学习的快慢取决于学习者的天赋,实际上研究表明学习方法起着至关重要的作用。更深层次的知识加工,与时而反复的温故知新,在某些情况下会加倍你的学习效率。最近学习了如何快速学习的方法论,分享给大家。 是否能加速理解…

C#拉姆达(=)表达式
前言: 之前小猪曾经分享过自己对C#委托的一点理解 其实在使用委托的过程中我们会大量的使用拉姆达(>)表达式 介绍: "Lambda表达式"是一个匿名函数,是一种高效的类似于函数式编程的表达式,Lambda简化了开发中需要编写…