|
|
@@ -13,14 +13,15 @@ import com.zhongzheng.modules.course.service.ICourseService;
|
|
|
import com.zhongzheng.modules.course.vo.CourseVo;
|
|
|
import com.zhongzheng.modules.exam.service.IExamNoteService;
|
|
|
import com.zhongzheng.modules.exam.vo.ExamNoteVo;
|
|
|
-import com.zhongzheng.modules.order.bo.OrderAddBo;
|
|
|
-import com.zhongzheng.modules.order.bo.OrderEditBo;
|
|
|
-import com.zhongzheng.modules.order.bo.OrderGoodsAddBo;
|
|
|
-import com.zhongzheng.modules.order.bo.OrderQueryBo;
|
|
|
+import com.zhongzheng.modules.order.bo.*;
|
|
|
+import com.zhongzheng.modules.order.domain.Coupon;
|
|
|
import com.zhongzheng.modules.order.domain.Order;
|
|
|
import com.zhongzheng.modules.order.mapper.OrderMapper;
|
|
|
+import com.zhongzheng.modules.order.service.ICouponService;
|
|
|
+import com.zhongzheng.modules.order.service.IOrderCouponService;
|
|
|
import com.zhongzheng.modules.order.service.IOrderGoodsService;
|
|
|
import com.zhongzheng.modules.order.service.IOrderService;
|
|
|
+import com.zhongzheng.modules.order.vo.CouponVo;
|
|
|
import com.zhongzheng.modules.order.vo.OrderVo;
|
|
|
import com.zhongzheng.modules.user.domain.OrderPossessUser;
|
|
|
import com.zhongzheng.modules.user.domain.User;
|
|
|
@@ -73,7 +74,11 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
@Autowired
|
|
|
private IOrderPossessUserService iOrderPossessUserService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private ICouponService iCouponService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private IOrderCouponService iOrderCouponService;
|
|
|
|
|
|
@Override
|
|
|
public OrderVo queryById(Long orderId){
|
|
|
@@ -144,7 +149,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
validEntityBeforeSave(add);
|
|
|
add.setCreateTime(DateUtils.getNowTime());
|
|
|
add.setUpdateTime(DateUtils.getNowTime());
|
|
|
- Map<String, String> result = dealOrder(add,goodsList);
|
|
|
+ Map<String, String> result = dealOrder(add,goodsList,bo.getCouponId());
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
@@ -173,7 +178,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
return this.removeByIds(ids);
|
|
|
}
|
|
|
|
|
|
- private Map<String, String> dealOrder(Order add,List<OrderGoodsAddBo> goodsList){
|
|
|
+ private Map<String, String> dealOrder(Order add,List<OrderGoodsAddBo> goodsList,Long couponId){
|
|
|
UserVo userVo = iUserService.queryById(add.getUserId());
|
|
|
String body = "中正云课堂消费";
|
|
|
String price = "1";
|
|
|
@@ -211,7 +216,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
}
|
|
|
g.setGoodsPrice(examNoteVo.getPrice());
|
|
|
}
|
|
|
- OrderPossessUser orderPossess =iOrderPossessUserService.queryByTypeAndId(g.getGoodsId(),g.getGoodsType());
|
|
|
+ OrderPossessUser orderPossess =iOrderPossessUserService.queryByTypeAndId(g.getGoodsId(),g.getGoodsType(),add.getUserId());
|
|
|
if(Validator.isNotNull(orderPossess)){
|
|
|
throw new CustomException("你已购买该商品");
|
|
|
}
|
|
|
@@ -219,6 +224,38 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
throw new CustomException("商品错误");
|
|
|
}
|
|
|
totalPrice = totalPrice.add(g.getGoodsPrice());
|
|
|
+
|
|
|
+ }
|
|
|
+ if(couponId>0){
|
|
|
+ //使用优惠券
|
|
|
+ Coupon coupon= iCouponService.queryByIdAndUserId(couponId,add.getUserId());
|
|
|
+ if(!Validator.isNotNull(coupon)){
|
|
|
+ throw new CustomException("该优惠券不存在");
|
|
|
+ }
|
|
|
+ if(coupon.getUserStatus()!=0||coupon.getEndTime()<DateUtils.getNowTime()){
|
|
|
+ throw new CustomException("该优惠券无法使用");
|
|
|
+ }
|
|
|
+ if(coupon.getCouponType()==0){
|
|
|
+ //优惠券
|
|
|
+ totalPrice = totalPrice.subtract(coupon.getPrice());
|
|
|
+
|
|
|
+ }
|
|
|
+ if(coupon.getCouponType()==1){
|
|
|
+ //折扣券
|
|
|
+ totalPrice = totalPrice.divide((new BigDecimal(10))).multiply(coupon.getPrice());
|
|
|
+ }
|
|
|
+ OrderCouponAddBo orderCouponAddBo = new OrderCouponAddBo();
|
|
|
+ orderCouponAddBo.setCouponId(couponId);
|
|
|
+ orderCouponAddBo.setOrderSn(out_trade_no);
|
|
|
+ if(!iOrderCouponService.insertByAddBo(orderCouponAddBo)){
|
|
|
+ throw new CustomException("优惠券数据错误");
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ BigDecimal zero = new BigDecimal(0.01);
|
|
|
+ if(totalPrice.compareTo(zero) == -1){
|
|
|
+ //价格不能小于0.01
|
|
|
+ totalPrice = zero;
|
|
|
}
|
|
|
add.setOrderPrice(totalPrice);
|
|
|
if(!this.save(add)){
|
|
|
@@ -228,4 +265,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+
|
|
|
}
|