Commit 05d16729 authored by 周健威's avatar 周健威

修改订单项bug

parent 53c23df8
...@@ -29,6 +29,7 @@ import org.springframework.stereotype.Service; ...@@ -29,6 +29,7 @@ import org.springframework.stereotype.Service;
import javax.annotation.PostConstruct; import javax.annotation.PostConstruct;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet; import java.util.HashSet;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -140,10 +141,13 @@ public class OrderMemberService extends AbstractOrderHandle<OrderMemberDetailBiz ...@@ -140,10 +141,13 @@ public class OrderMemberService extends AbstractOrderHandle<OrderMemberDetailBiz
BigDecimal couponAmount = BigDecimal.ZERO; BigDecimal couponAmount = BigDecimal.ZERO;
//设置Item //设置Item
OrderItem vehicleOrderItem = orderItemBiz.initOrderItem(detail.getBaseUserMemberLevel().getPrice(), 1, detail.getBaseUserMemberLevel().getName(), detail.getBaseUserMemberLevel().getId(), ItemTypeEnum.MEMBER); OrderItem memberOrderItem = orderItemBiz.initOrderItem(detail.getBaseUserMemberLevel().getPrice(), 1, detail.getBaseUserMemberLevel().getName(), detail.getBaseUserMemberLevel().getId(), ItemTypeEnum.MEMBER);
detail.setItems(new ArrayList<OrderItem>());
detail.getItems().add(memberOrderItem);
//商品价格 //商品价格
goodsAmount = goodsAmount.add(vehicleOrderItem.getCalculateAmount(Boolean.TRUE)); goodsAmount = goodsAmount.add(memberOrderItem.getCalculateAmount(Boolean.TRUE));
//vehicleAmount 优惠券处理 //vehicleAmount 优惠券处理
if(null != detail.getTickerNo() && detail.getTickerNo().size() > 0) { if(null != detail.getTickerNo() && detail.getTickerNo().size() > 0) {
...@@ -151,7 +155,7 @@ public class OrderMemberService extends AbstractOrderHandle<OrderMemberDetailBiz ...@@ -151,7 +155,7 @@ public class OrderMemberService extends AbstractOrderHandle<OrderMemberDetailBiz
if(couponAmount.compareTo(BigDecimal.ZERO) > 0) { if(couponAmount.compareTo(BigDecimal.ZERO) > 0) {
detail.getOrder().setCouponTickerNos(detail.getTickerNo().stream().collect(Collectors.joining(","))); detail.getOrder().setCouponTickerNos(detail.getTickerNo().stream().collect(Collectors.joining(",")));
detail.getOrder().setHasDiscount(SYS_TRUE); detail.getOrder().setHasDiscount(SYS_TRUE);
vehicleOrderItem.handleCouponAmount(couponAmount); memberOrderItem.handleCouponAmount(couponAmount);
} }
} }
......
...@@ -143,7 +143,7 @@ public class OrderTourService extends AbstractOrderHandle<OrderTourDetailBiz, To ...@@ -143,7 +143,7 @@ public class OrderTourService extends AbstractOrderHandle<OrderTourDetailBiz, To
OrderItem tourAdultItem = bo.getItemByTypeEnum(ItemTypeEnum.TOUR_ADULT); OrderItem tourAdultItem = bo.getItemByTypeEnum(ItemTypeEnum.TOUR_ADULT);
OrderItem tourChildItem = bo.getItemByTypeEnum(ItemTypeEnum.TOUR_CHILD); OrderItem tourChildItem = bo.getItemByTypeEnum(ItemTypeEnum.TOUR_CHILD);
BigDecimal amount = tourAdultItem.getTotalAmount().add(tourChildItem.getTotalAmount()); BigDecimal amount = tourAdultItem.getTotalAmount().add(null == tourChildItem? BigDecimal.ZERO: tourChildItem.getTotalAmount());
//如果有使用优惠券,则扣减 //如果有使用优惠券,则扣减
if(BigDecimal.ZERO.compareTo(bo.getOrder().getCouponAmount()) < 0) { if(BigDecimal.ZERO.compareTo(bo.getOrder().getCouponAmount()) < 0) {
...@@ -215,14 +215,22 @@ public class OrderTourService extends AbstractOrderHandle<OrderTourDetailBiz, To ...@@ -215,14 +215,22 @@ public class OrderTourService extends AbstractOrderHandle<OrderTourDetailBiz, To
tourAdultItem.setUnitPrice(tourSpePriceVo.getPrice()); tourAdultItem.setUnitPrice(tourSpePriceVo.getPrice());
OrderItem tourChildItem = orderItemBiz.initOrderItem(tourSpePriceVo.getChildOriginalPrice(), detail.getChildNum(), "儿童", detail.getSpePriceId(), ItemTypeEnum.TOUR_CHILD); OrderItem tourChildItem = orderItemBiz.initOrderItem(tourSpePriceVo.getChildOriginalPrice(), detail.getChildNum(), "儿童", detail.getSpePriceId(), ItemTypeEnum.TOUR_CHILD);
tourChildItem.setUnitPrice(tourSpePriceVo.getChildPrice()); tourChildItem.setUnitPrice(tourSpePriceVo.getChildPrice());
//人数 * 天数 //人数 * 天数
OrderItem insureItem = orderItemBiz.initOrderItem(INSURE_PRICE, detail.getTotalNumber() * detail.getTourGood().getNumber(), "旅游保险", null, ItemTypeEnum.TOUR_INSURE); OrderItem insureItem = orderItemBiz.initOrderItem(INSURE_PRICE, detail.getTotalNumber() * detail.getTourGood().getNumber(), "旅游保险", null, ItemTypeEnum.TOUR_INSURE);
detail.setItems(new ArrayList<OrderItem>());
detail.getItems().add(tourAdultItem);
if(tourChildItem.getBuyNum() > 0) {
detail.getItems().add(tourChildItem);
}
//需要保险 //需要保险
if(SYS_TRUE.equals(detail.getHasInsure())) { if(SYS_TRUE.equals(detail.getHasInsure())) {
//人数 * 天数 * 价格 //人数 * 天数 * 价格
insureAmount = insureAmount.add(insureItem.getCalculateAmount(Boolean.TRUE)); insureAmount = insureAmount.add(insureItem.getCalculateAmount(Boolean.TRUE));
detail.getItems().add(insureItem);
} }
//总价 //总价
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment