Skip to content

Commit fc23c75

Browse files
committed
购买
1 parent fa0ee35 commit fc23c75

18 files changed

+722
-313
lines changed

src/main/java/com/ordersystem/OrderSystemApplication.java

+7
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
package com.ordersystem;
22

3+
import com.ordersystem.util.SnowFlake;
34
import org.mybatis.spring.annotation.MapperScan;
45
import org.springframework.boot.SpringApplication;
56
import org.springframework.boot.autoconfigure.SpringBootApplication;
7+
import org.springframework.context.annotation.Bean;
68

79
@MapperScan("com.orderSystem.mapper")
810
@SpringBootApplication
@@ -12,4 +14,9 @@ public static void main(String[] args) {
1214
SpringApplication.run(OrderSystemApplication.class, args);
1315
}
1416

17+
@Bean
18+
public SnowFlake SnowFlake() {
19+
return new SnowFlake(1, 1);
20+
}
21+
1522
}

src/main/java/com/ordersystem/controller/BuyMoreController.java

+13-7
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,7 @@
44
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
55
import com.ordersystem.data.ReturnData;
66
import com.ordersystem.entity.*;
7-
import com.ordersystem.entity.dto.ActivityDto;
8-
import com.ordersystem.entity.dto.CommentDto;
9-
import com.ordersystem.entity.dto.ProductDto;
10-
import com.ordersystem.entity.dto.productBuyDto;
7+
import com.ordersystem.entity.dto.*;
118
import com.ordersystem.service.impl.*;
129
import com.ordersystem.util.MConstant.MConstant;
1310
import org.slf4j.Logger;
@@ -72,6 +69,9 @@ public class BuyMoreController {
7269
@Autowired
7370
SubCategoryService subCategoryService;
7471

72+
@Autowired
73+
OrderService orderService;
74+
7575
@RequestMapping(value = "index", method = RequestMethod.GET)
7676
public String clogin(Model model, HttpServletRequest request) {
7777
return USER_INDEX;
@@ -236,10 +236,16 @@ public ProductDto innitProductDetail(@RequestParam("productId") Integer productI
236236
return productService.innitProductDetail(productId);
237237
}
238238

239+
// 直接购买
239240
@ResponseBody
240-
@RequestMapping(value = "buy_product", method = RequestMethod.POST)
241-
public ReturnData buyProduct(productBuyDto product) {
242-
return ReturnData.returnData(null);
241+
@RequestMapping(value = "buy_now", method = RequestMethod.POST)
242+
public ReturnData buyNow(OrderBuyNowDto orderBuyNowDto) {
243+
try {
244+
return orderService.buyNow(orderBuyNowDto);
245+
} catch (Exception e) {
246+
logger.info("购买错误{}", e.getMessage());
247+
return ReturnData.returnError(1001, "购买错误");
248+
}
243249
}
244250

245251
}

src/main/java/com/ordersystem/controller/DevController.java

+46-1
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,10 @@ public class DevController {
6262
@Autowired
6363
OrderService orderService;
6464

65+
@Autowired
66+
SpecService specService;
67+
68+
6569
private final String DEV_INDEX = "dev/index";
6670
private final String DEV_CATEGORY = "dev/category";
6771
private final String DEV_PRODUCT = "dev/product";
@@ -223,6 +227,46 @@ public Product getProductDetail(@RequestParam("productId") Integer productId) {
223227
return productService.selectOneByWrapper(Product.builder().productId(productId).build());
224228
}
225229

230+
// 规格列表
231+
@ResponseBody
232+
@RequestMapping(value = "get_product_spec", method = RequestMethod.POST)
233+
public List<Spec> getProductSpecList(@RequestParam("productId") Integer productId) {
234+
return specService.selectListByWrapper(Spec.builder().productId(productId).build());
235+
}
236+
237+
// 规格详情
238+
@ResponseBody
239+
@RequestMapping(value = "get_spec_detail", method = RequestMethod.POST)
240+
public Spec getProductSpecDetail(@RequestParam("specId") Integer specId) {
241+
return specService.selectOneByWrapper(Spec.builder().specId(specId).build());
242+
}
243+
244+
// 规格列表
245+
@ResponseBody
246+
@RequestMapping(value = "del_spec", method = RequestMethod.POST)
247+
public ReturnData delSpec(@RequestParam("specId") Integer specId) {
248+
try {
249+
specService.deleteById(specId);
250+
return ReturnData.returnData(null);
251+
} catch (Exception e) {
252+
logger.info("删除规格出错{}", e.getMessage());
253+
return ReturnData.returnError(1001, "保存出错");
254+
}
255+
}
256+
257+
// 保存规格
258+
@ResponseBody
259+
@RequestMapping(value = "save_spec", method = RequestMethod.POST)
260+
public ReturnData getProductSpec(Spec spec) {
261+
try {
262+
specService.save(spec);
263+
return ReturnData.returnData(null);
264+
} catch (Exception e) {
265+
logger.info("保存规格出错{}", e.getMessage());
266+
return ReturnData.returnError(1001, "保存出错");
267+
}
268+
}
269+
226270
// 获取标签列表
227271
@ResponseBody
228272
@RequestMapping(value = "innitTagList", method = RequestMethod.POST)
@@ -248,7 +292,7 @@ public IPage<Slide> innitSlide(Page<Slide> page, Slide slide) {
248292
@ResponseBody
249293
@RequestMapping(value = "innitOrder", method = RequestMethod.POST)
250294
public IPage<Order> innitOrder(Page<Order> page, Order order) {
251-
return orderService.innitSlide(page, order);
295+
return orderService.innitOrder(page, order);
252296
}
253297

254298
// 轮播图列表
@@ -364,6 +408,7 @@ public ReturnData delDoubleSlide(@RequestParam("doubleSlideId") Integer doubleSl
364408
}
365409

366410

411+
367412
@PostMapping("/upload")
368413
@ResponseBody
369414
public ReturnData upload(@RequestParam("file") MultipartFile file) {

src/main/java/com/ordersystem/entity/Account.java

+6
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,20 @@
44
import com.baomidou.mybatisplus.annotation.TableField;
55
import com.baomidou.mybatisplus.annotation.TableId;
66
import com.baomidou.mybatisplus.annotation.TableName;
7+
import lombok.AllArgsConstructor;
8+
import lombok.Builder;
79
import lombok.Data;
10+
import lombok.NoArgsConstructor;
811

912
import javax.validation.constraints.NotEmpty;
1013

1114
/**
1215
* @author ahxiaoqi
1316
* @date 2019/12/28 10:33
1417
*/
18+
@NoArgsConstructor
19+
@AllArgsConstructor
20+
@Builder
1521
@Data
1622
@TableName("t_account")
1723
public class Account {

src/main/java/com/ordersystem/entity/Order.java

+6
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,18 @@
44
import com.baomidou.mybatisplus.annotation.TableField;
55
import com.baomidou.mybatisplus.annotation.TableId;
66
import com.baomidou.mybatisplus.annotation.TableName;
7+
import lombok.AllArgsConstructor;
8+
import lombok.Builder;
79
import lombok.Data;
10+
import lombok.NoArgsConstructor;
811

912
/**
1013
* @author ahxiaoqi
1114
* @date 2020/1/26 13:57
1215
*/
16+
@Builder
17+
@NoArgsConstructor
18+
@AllArgsConstructor
1319
@Data
1420
@TableName("t_order")
1521
public class Order {

src/main/java/com/ordersystem/entity/OrderSub.java

+9
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,18 @@
44
import com.baomidou.mybatisplus.annotation.TableField;
55
import com.baomidou.mybatisplus.annotation.TableId;
66
import com.baomidou.mybatisplus.annotation.TableName;
7+
import lombok.AllArgsConstructor;
8+
import lombok.Builder;
79
import lombok.Data;
10+
import lombok.NoArgsConstructor;
811

912
/**
1013
* @author ahxiaoqi
1114
* @date 2020/3/29 23:27
1215
*/
16+
@Builder
17+
@NoArgsConstructor
18+
@AllArgsConstructor
1319
@Data
1420
@TableName("t_order_sub")
1521
public class OrderSub {
@@ -38,6 +44,9 @@ public class OrderSub {
3844
@TableField(value = "price")
3945
private Integer price;
4046

47+
@TableField(value = "specType")
48+
private Integer specType;
49+
4150
@TableField(value = "createTime")
4251
private String createTime;
4352

src/main/java/com/ordersystem/entity/Spec.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ public class Spec{
2727
private Integer specId;
2828

2929
//逗号,分隔价格,暂时按大中小三个分量存储
30-
@TableField(value = "subCategoryName")
30+
@TableField(value = "price")
3131
private String price;
3232

3333
@TableField(value = "specTitle")
@@ -46,7 +46,7 @@ public class Spec{
4646
private Integer productId;
4747

4848
@TableField(value = "createTime")
49-
private Date createTime;
49+
private String createTime;
5050

5151

5252
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
package com.ordersystem.entity.dto;
2+
3+
import lombok.AllArgsConstructor;
4+
import lombok.Builder;
5+
import lombok.Data;
6+
import lombok.NoArgsConstructor;
7+
8+
/**
9+
* @author ahxiaoqi
10+
* @date 2020/4/6 2:22
11+
*/
12+
@Builder
13+
@NoArgsConstructor
14+
@AllArgsConstructor
15+
@Data
16+
public class OrderBuyNowDto {
17+
private Integer orderId;
18+
19+
private String orderCode;
20+
21+
private Integer accountId;
22+
23+
private Integer price;
24+
25+
private Integer status;
26+
27+
private Integer count;
28+
29+
private Integer specId;
30+
31+
private Integer specType;
32+
33+
private String createTime;
34+
35+
private String userName;
36+
}

src/main/java/com/ordersystem/service/impl/OrderService.java

+47-1
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,16 @@
33
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
44
import com.baomidou.mybatisplus.core.metadata.IPage;
55
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
6+
import com.ordersystem.data.ReturnData;
7+
import com.ordersystem.entity.Account;
68
import com.ordersystem.entity.Order;
9+
import com.ordersystem.entity.OrderSub;
10+
import com.ordersystem.entity.dto.OrderBuyNowDto;
711
import com.ordersystem.entity.dto.OrderDto;
812
import com.ordersystem.mapper.OrderMapper;
13+
import com.ordersystem.mapper.OrderSubMapper;
914
import com.ordersystem.service.GeneralService;
15+
import com.ordersystem.util.SnowFlake;
1016
import org.springframework.beans.factory.annotation.Autowired;
1117
import org.springframework.stereotype.Service;
1218

@@ -24,6 +30,14 @@ public class OrderService implements GeneralService<Order> {
2430
@SuppressWarnings("all")
2531
OrderMapper orderMapper;
2632

33+
@Autowired
34+
OrderSubService orderSubService;
35+
36+
@Autowired
37+
AccountService accountService;
38+
39+
@Autowired
40+
SnowFlake snowFlake;
2741

2842
@Override
2943
public Order selectOneByWrapper(Order order) {
@@ -57,9 +71,41 @@ public OrderDto getOrderDetail(Integer orderId) {
5771
return orderMapper.getOrderDetail(orderId);
5872
}
5973

60-
public IPage<Order> innitSlide(Page<Order> page, Order order) {
74+
public IPage<Order> innitOrder(Page<Order> page, Order order) {
6175
QueryWrapper<Order> queryWrapper = new QueryWrapper<>();
6276
queryWrapper.setEntity(order);
77+
queryWrapper.orderByDesc("createTime");
6378
return orderMapper.selectPage(page, queryWrapper);
6479
}
80+
81+
/**
82+
* 直接购买
83+
*
84+
* @param orderBuyNowDto
85+
*/
86+
public ReturnData buyNow(OrderBuyNowDto orderBuyNowDto) {
87+
// 后续登录处理用户id,不适用查询
88+
if("".equals(orderBuyNowDto.getUserName())||!Optional.ofNullable(orderBuyNowDto.getUserName()).isPresent()){
89+
return ReturnData.returnError(1001,"请先登录");
90+
}
91+
Account account = accountService.selectOneByWrapper(Account.builder().userName(orderBuyNowDto.getUserName()).build());
92+
if(!Optional.ofNullable(account).isPresent()){
93+
return ReturnData.returnError(1002,"用户不存在");
94+
}
95+
Order order = Order.builder()
96+
.orderCode("N" + snowFlake.nextId())
97+
.accountId(account.getAccountId())
98+
.price(orderBuyNowDto.getPrice())
99+
.build();
100+
save(order);
101+
OrderSub orderSub = OrderSub.builder()
102+
.orderSubCode("S" + snowFlake.nextId())
103+
.orderCode(order.getOrderCode())
104+
.orderId(order.getOrderId())
105+
.price(orderBuyNowDto.getPrice())
106+
.count(orderBuyNowDto.getCount())
107+
.build();
108+
orderSubService.save(orderSub);
109+
return ReturnData.returnData(null);
110+
}
65111
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
package com.ordersystem.service.impl;
2+
3+
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
4+
import com.ordersystem.entity.Slide;
5+
import com.ordersystem.entity.Spec;
6+
import com.ordersystem.mapper.SpecMapper;
7+
import com.ordersystem.service.GeneralService;
8+
import org.springframework.beans.factory.annotation.Autowired;
9+
import org.springframework.stereotype.Service;
10+
11+
import java.util.List;
12+
import java.util.Optional;
13+
14+
/**
15+
* @author ahxiaoqi
16+
* @date 2020/4/5 18:48
17+
*/
18+
@Service
19+
public class SpecService implements GeneralService<Spec> {
20+
21+
@Autowired
22+
@SuppressWarnings("all")
23+
SpecMapper specMapper;
24+
25+
@Override
26+
public Spec selectOneByWrapper(Spec spec) {
27+
QueryWrapper<Spec> queryWrapper = new QueryWrapper<>();
28+
queryWrapper.setEntity(spec);
29+
return specMapper.selectOne(queryWrapper);
30+
}
31+
32+
@Override
33+
public List<Spec> selectListByWrapper(Spec spec) {
34+
QueryWrapper<Spec> queryWrapper = new QueryWrapper<>();
35+
queryWrapper.setEntity(spec);
36+
return specMapper.selectList(queryWrapper);
37+
}
38+
39+
@Override
40+
public void save(Spec spec) {
41+
if (Optional.ofNullable(spec.getSpecId()).isPresent()) {
42+
specMapper.updateById(spec);
43+
} else {
44+
specMapper.insert(spec);
45+
}
46+
}
47+
48+
@Override
49+
public void deleteById(Integer id) {
50+
specMapper.deleteById(id);
51+
}
52+
}

0 commit comments

Comments
 (0)