|
@@ -1,5 +1,6 @@
|
|
|
package com.caimei.service.impl;
|
|
|
|
|
|
+import com.caimei.mapper.CollageMapper;
|
|
|
import com.caimei.mapper.CouponMapper;
|
|
|
import com.caimei.mapper.OrderSubmitMapper;
|
|
|
import com.caimei.mapper.ProductMapper;
|
|
@@ -42,11 +43,13 @@ public class OrderSubmitServiceImpl implements OrderSubmitService {
|
|
|
private ProductMapper productMapper;
|
|
|
@Resource
|
|
|
private CouponMapper couponMapper;
|
|
|
+ @Resource
|
|
|
+ private CollageMapper collageMapper;
|
|
|
@Value("${caimei.oldapi}")
|
|
|
private String domain;
|
|
|
|
|
|
@Override
|
|
|
- public ResponseJson<Map<String, Object>> orderConfirm(Integer userId, String cartIds, Integer productId, Integer productCount, Integer heUserId) {
|
|
|
+ public ResponseJson<Map<String, Object>> orderConfirm(Integer userId, String cartIds, Integer productId, Integer productCount, Integer heUserId, Integer collageFlag) {
|
|
|
Map<String, Object> confirmData = new HashMap<>(5);
|
|
|
log.info("<<<<< 结算订单 >>>>>");
|
|
|
//商品总金额
|
|
@@ -74,7 +77,7 @@ public class OrderSubmitServiceImpl implements OrderSubmitService {
|
|
|
}
|
|
|
BigDecimal shopTotalPrice = BigDecimal.ZERO;
|
|
|
for (CartProductVo product : shopProducts) {
|
|
|
- shoppingCartService.setPrice(product, userId);
|
|
|
+ shoppingCartService.setPrice(product, userId, collageFlag);
|
|
|
shopTotalPrice = MathUtil.add(shopTotalPrice, MathUtil.mul(product.getProductCount(), product.getPrice()));
|
|
|
}
|
|
|
shop.setShopTotalPrice(shopTotalPrice);
|
|
@@ -125,10 +128,12 @@ public class OrderSubmitServiceImpl implements OrderSubmitService {
|
|
|
});
|
|
|
// 可参与的分享减免活动
|
|
|
ReductionVo currentReduction = orderSubmitMapper.findCurrentReduction();
|
|
|
+ confirmData.put("reduction", null);
|
|
|
if (null != currentReduction) {
|
|
|
- // 查询分享次数
|
|
|
+ // 查询已分享次数
|
|
|
Integer shareNum = orderSubmitMapper.findShareNum(userId, currentReduction.getReductionId());
|
|
|
- if (shareNum < currentReduction.getShareNum()) {
|
|
|
+ if ((null == collageFlag || 0 == collageFlag) && shareNum < currentReduction.getShareNum() && MathUtil.compare(totalPrice.get(), currentReduction.getTouchPrice()) > 0) {
|
|
|
+ // 有剩余分享次数且订单金额大于分享条件金额
|
|
|
confirmData.put("reduction", currentReduction);
|
|
|
}
|
|
|
}
|
|
@@ -335,7 +340,7 @@ public class OrderSubmitServiceImpl implements OrderSubmitService {
|
|
|
// 处理分享减免
|
|
|
BigDecimal reductionAmount = BigDecimal.ZERO;
|
|
|
Integer reductionUserId = (Integer) discountInfo.get("reductionUserId");
|
|
|
- if (null != reductionUserId) {
|
|
|
+ if (null != reductionUserId && 0 != reductionUserId) {
|
|
|
// 分享减免活动
|
|
|
ReductionVo reductionVo = orderSubmitMapper.findReduction(reductionUserId);
|
|
|
if (null != reductionVo) {
|
|
@@ -534,29 +539,23 @@ public class OrderSubmitServiceImpl implements OrderSubmitService {
|
|
|
CmHeheCollageMemberPo collageMember = new CmHeheCollageMemberPo();
|
|
|
collageMember.setUserId(userId);
|
|
|
collageMember.setOrderId(order.getOrderID());
|
|
|
- if (collageId == null) {
|
|
|
+ if (collageId == null || collageId == 0) {
|
|
|
// 拼团发起者,构建拼团记录
|
|
|
CmHeheCollagePo collage = new CmHeheCollagePo();
|
|
|
CmOrderProductPo orderProductPo = orderProductList.get(0);
|
|
|
- CmHeheCollageProductPo collageProduct = orderSubmitMapper.findCollageProduct(orderProductPo.getProductID());
|
|
|
+ CmHeheCollageProductPo collageProduct = collageMapper.findCollageProduct(orderProductPo.getProductID());
|
|
|
collage.setProductId(collageProduct.getProductId());
|
|
|
collage.setMemberNum(collageProduct.getMemberNum());
|
|
|
collage.setPrice(collageProduct.getPrice());
|
|
|
- collage.setStatus(1);
|
|
|
- Date startTime = new Date();
|
|
|
- collage.setStartTime(startTime);
|
|
|
- Calendar calendar = Calendar.getInstance();
|
|
|
- calendar.setTime(startTime);
|
|
|
- calendar.add(Calendar.DAY_OF_MONTH, 1);
|
|
|
- collage.setEndTime(calendar.getTime());
|
|
|
- orderSubmitMapper.insertCollage(collage);
|
|
|
+ collage.setStatus(0);
|
|
|
+ collageMapper.insertCollage(collage);
|
|
|
collageId = collage.getId();
|
|
|
collageMember.setLaunchFlag(1);
|
|
|
} else {
|
|
|
- // 已拼人数
|
|
|
- Integer memberNum = orderSubmitMapper.findCollageMemberNum(collageId);
|
|
|
- CmHeheCollagePo collage = orderSubmitMapper.findCollage(collageId);
|
|
|
- if (collage != null && 2 != collage.getStatus() && memberNum < collage.getMemberNum()) {
|
|
|
+ // 已拼且已支付人数
|
|
|
+ Integer memberNum = collageMapper.findCollageMemberNum(collageId);
|
|
|
+ CmHeheCollagePo collage = collageMapper.findCollage(collageId);
|
|
|
+ if (collage != null && memberNum < collage.getMemberNum()) {
|
|
|
// 参加拼团
|
|
|
collageMember.setLaunchFlag(0);
|
|
|
} else {
|
|
@@ -566,7 +565,7 @@ public class OrderSubmitServiceImpl implements OrderSubmitService {
|
|
|
}
|
|
|
}
|
|
|
collageMember.setCollageId(collageId);
|
|
|
- orderSubmitMapper.insertCollageMember(collageMember);
|
|
|
+ collageMapper.insertCollageMember(collageMember);
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -593,17 +592,18 @@ public class OrderSubmitServiceImpl implements OrderSubmitService {
|
|
|
|
|
|
@Override
|
|
|
public ResponseJson<Integer> shareReduction(Integer userId, Integer reductionId, Integer shareType) {
|
|
|
- if (null == userId || null == reductionId || null == shareType) {
|
|
|
- return ResponseJson.error("参数异常", null);
|
|
|
- }
|
|
|
// 可参与的分享减免活动
|
|
|
ReductionVo currentReduction = orderSubmitMapper.findCurrentReduction();
|
|
|
if (null != currentReduction) {
|
|
|
// 查询分享次数
|
|
|
Integer shareNum = orderSubmitMapper.findShareNum(userId, currentReduction.getReductionId());
|
|
|
if (shareNum <= currentReduction.getShareNum()) {
|
|
|
- Integer reductionUserId = orderSubmitMapper.insertReductionUser(userId, reductionId, shareType);
|
|
|
- return ResponseJson.success("分享成功", reductionUserId);
|
|
|
+ ReductionUserPo reductionUserPo = new ReductionUserPo();
|
|
|
+ reductionUserPo.setUserId(userId);
|
|
|
+ reductionUserPo.setReductionId(reductionId);
|
|
|
+ reductionUserPo.setShareType(shareType);
|
|
|
+ orderSubmitMapper.insertReductionUser(reductionUserPo);
|
|
|
+ return ResponseJson.success("分享成功", reductionUserPo.getReductionUserId());
|
|
|
} else {
|
|
|
return ResponseJson.error("分享次数超限", null);
|
|
|
}
|