基于javaweb的SpringBoot仿小米商城系统(前后端分离+java+vue+springboot+ssm+mysql+maven+redis)

运行环境

Java≥8、MySQL≥5.7、Node.js≥14

开发工具

后端:eclipse/idea/myeclipse/sts等均可配置运行
前端:WebStorm/VSCode/HBuilderX等均可

❗没学过node.js的不要搞前后端分离项目

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

310123032402

320123032402

330123032402

340123032402

350123032402

基于javaweb的SpringBoot仿小米商城系统(前后端分离+java+vue+springboot+ssm+mysql+maven+redis)

一、项目简述

本系统功能包括: 基于vue + Springboot前后端分离项目精简版仿小米商城 系统,注册登录,首页展示,商品展示,商品购买,下单支 付(支付有点小问题仅支持单个商品支付)后台维护等 等。

二、项目运行 

环境配置: Jdk1.8 + Mysql + HBuilderX ( Webstorm也 行)+ Eclispe ( IntelliJ IDEA,Eclispe,MyEclispe,Sts都支 持)。

项目技术: Springboot + Maven + Mybatis + Vue + Redis, B/S 模式+ Maven等等。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33

@PostMapping("/login")
public LoginResult Login(@RequestBody User adminUser) throws IOException, InvalidKeySpecException, NoSuchAlgorithmException {
User user = loginServiceImp.getUserByUserName(adminUser.getUsername());
LoginResult result = new LoginResult();
LoginData loginData = new LoginData();

if (user == null) {
result.setMsg("无此用户,请重新输入正确用户名");
result.setStatus(2008);
} else {
//if (RSAUtils.privateDecrypt(user.getPwd(), RSAUtils.getPrivateKey(privateKey)).equals(adminUser.getPwd())){
if (user.getPwd().equals(adminUser.getPwd())){
result.setStatus(0);
String token = TokenUtil.token(user.getId().trim());
loginData.setToken(token);
result.setMsg("登录成功");
result.setStatus(1010);
result.setData(loginData);
}else{
result.setStatus(2007);
result.setMsg("密码错误");
}
}
return result;
}
}
package com.zty.xiaomi.server.Controller;



@CrossOrigin
@RestController
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42

@CrossOrigin
@RestController
@RequestMapping("login")
public class LogRegController {
@Autowired
private 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("注册成功!");
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
        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;
}
}
package com.zty.xiaomiadmin.server.Controller;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40

@CrossOrigin
@RestController
@RequestMapping("category")
public class CategoryController {

@Autowired
private CategServiceImp categServiceImp;
@GetMapping("/getCategory")
private CateResult getCategory(@RequestParam("pageIndex") int pageIndex,
@RequestParam("pageSize") int pageSize) throws IOException {
CateResult cateResult = categServiceImp.getCategory(pageIndex, pageSize);
return cateResult;
}

@PostMapping("/updateCategory")
private void updateCategory(@RequestBody Category category) throws IOException {
categServiceImp.updCategory(category.getName(),category.getCategoryId());
}
}
package com.zty.xiaomi.server.Controller;


@CrossOrigin
@RestController
@RequestMapping("product")
public class ProductController {

@Autowired
private ProdServiceImp prodServiceImp;
@RequestMapping("getinfo")
public ProductResult getProductInfo(@RequestParam("id") int id) throws IOException {
ProductResult productResult = new ProductResult();
productResult.setStatus(0);
productResult.setData(prodServiceImp.getProductInfo(id));
return productResult;
}

}
package com.zty.xiaomiadmin.server.Controller;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
                              @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();
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
        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();
}


项目链接:
https://javayms.github.io?id=451222052008200vn
https://javayms.pages.dev?id=451222052008200vn