1
0
Code Issues Pull Requests Packages Projects Releases Wiki Activity GitHub Gitee

我的订单点击跳转订单详情页;订单详情页展示订单总金额;立即下单可以选择商品数量

This commit is contained in:
2023-03-21 16:36:13 +08:00
parent 87eaf03b9d
commit 0e83116550
12 changed files with 290 additions and 141 deletions

View File

@@ -4,6 +4,7 @@ import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@Data
@@ -14,4 +15,6 @@ public class Order {
private Integer userId;
private LocalDateTime orderDate;
private String orderStatus;
private BigDecimal orderPrice;
private LocalDateTime payDate;
}

View File

@@ -8,6 +8,7 @@ import lombok.experimental.Accessors;
import org.springframework.beans.BeanUtils;
import java.io.Serializable;
import java.math.RoundingMode;
import java.time.LocalDateTime;
import java.util.List;
import java.util.stream.Collectors;
@@ -23,6 +24,9 @@ public class OrderVO implements Serializable {
private Integer userId;
private LocalDateTime orderDate;
private String orderStatus;
private String orderStatusCode;
private String orderPrice;
private LocalDateTime payDate;
public static OrderVO convertFrom(Order order) {
if (order == null) {
@@ -34,6 +38,9 @@ public class OrderVO implements Serializable {
orderVO.setId(String.valueOf(order.getId())); // 转成字符串 避免前端丢失精度
OrderStatus orderStatus = OrderStatus.get(order.getOrderStatus());
orderVO.setOrderStatus(orderStatus.toString());
orderVO.setOrderStatusCode(order.getOrderStatus());
String price = order.getOrderPrice().setScale(2, RoundingMode.FLOOR).toPlainString();
orderVO.setOrderPrice(price);
return orderVO;
}

View File

@@ -14,6 +14,7 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
@@ -40,13 +41,16 @@ public class OrderService {
SnowflakeManager snowflakeManager = new SnowflakeManager(1L, 1L);
long orderId = snowflakeManager.nextValue();
// 订单总金额
BigDecimal totalPrice = new BigDecimal(0);
// 创建订单
Order order = new Order();
order.setId(orderId);
order.setUserId(userId);
order.setOrderDate(LocalDateTime.now());
order.setOrderStatus(OrderStatus.PENDING.getValue());
orderDao.insertOrder(order);
// 创建订单详情
for (OrderDetail orderItem : orderItemList) {
@@ -66,7 +70,16 @@ public class OrderService {
orderItem.setId(null);
orderItem.setOrderId(orderId);
orderItem.setUnitPrice(retailPrice);
// 计入订单总价
BigDecimal goodPrice = BigDecimal.valueOf(retailPrice * orderItem.getGoodCount());
totalPrice = totalPrice.add(goodPrice);
}
// 订单总价
order.setOrderPrice(totalPrice);
orderDao.insertOrder(order);
orderDao.batchInsertOrderDetail(orderItemList);
return orderId;
}

View File

@@ -46,8 +46,8 @@
<!-- 创建订单 -->
<insert id="insertOrder" parameterType="com.cxyxiaomo.epp.common.pojo.Order" useGeneratedKeys="true"
keyProperty="orderId">
INSERT INTO `order` (id, user_id, order_date, order_status)
VALUES (#{id}, #{userId}, #{orderDate,javaType=java.time.LocalDateTime,jdbcType=TIMESTAMP}, #{orderStatus})
INSERT INTO `order` (id, user_id, order_date, order_status, order_price)
VALUES (#{id}, #{userId}, #{orderDate,javaType=java.time.LocalDateTime,jdbcType=TIMESTAMP}, #{orderStatus}, #{orderPrice})
</insert>
<!-- 批量插入订单详情 -->