Browse Source

对接拼团数据

master
wangfukang 3 weeks ago
parent
commit
ff37ed8dff
  1. 14
      hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/MallDeliveryOrderServiceImpl.java
  2. 4
      hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/MallOrderGroupServiceImpl.java
  3. 24
      hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/MallOrderServiceImpl.java
  4. 1
      hiver-modules/hiver-mall/src/main/resources/mapper/MallOrderGroupMapper.xml

14
hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/MallDeliveryOrderServiceImpl.java

@ -21,8 +21,6 @@ import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
@ -148,16 +146,8 @@ public class MallDeliveryOrderServiceImpl extends ServiceImpl<MallDeliveryOrderM
}
}
}
// 若为指派单(直接购买),计算平台额外佣金 = 商品总价 * 2%
if (StringUtils.isNotBlank(delivery.getOrderId())) {
if (order != null && order.getOrderType() == 1) {
BigDecimal bonus = order.getGoodsAmount()
.multiply(new BigDecimal("0.02"))
.setScale(2, RoundingMode.HALF_UP);
uw.set(MallDeliveryOrder::getNumberCode, numberCode);
}
}
//更新订单编号
uw.set(MallDeliveryOrder::getNumberCode, numberCode);
this.update(uw);
log.info("配送员 {} 接单成功,deliveryId={}", workerId, deliveryId);
return 3;

4
hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/MallOrderGroupServiceImpl.java

@ -72,11 +72,11 @@ public class MallOrderGroupServiceImpl extends ServiceImpl<MallOrderGroupMapper,
if (group == null) return;
// 已成团或已失败不重复处理
if (group.getStatus() == GROUP_STATUS_SUCCESS) return;
//if (group.getStatus() == GROUP_STATUS_SUCCESS) return;
if (group.getCurrentMembers() < group.getTargetMembers()) return;
// 达到成团人数 -> 激活
// 达到成团人数 -> 激活 (超出拼团人数也可以参与)
LambdaUpdateWrapper<MallOrderGroup> guw = new LambdaUpdateWrapper<>();
guw.eq(MallOrderGroup::getId, groupId)
.set(MallOrderGroup::getStatus, GROUP_STATUS_SUCCESS);

24
hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/MallOrderServiceImpl.java

@ -249,7 +249,7 @@ public class MallOrderServiceImpl extends ServiceImpl<MallOrderMapper, MallOrder
group.setShopId(dto.getShopId());
group.setHeadUserId(dto.getUserId());
group.setTargetMembers(gp.getTargetMembers());
group.setCurrentMembers(1);
//group.setCurrentMembers(1);
if(dto.getItems() != null && dto.getItems().size() > 0){
dto.getItems().forEach(item -> {
if(item.getIsMain() != null){
@ -317,9 +317,10 @@ public class MallOrderServiceImpl extends ServiceImpl<MallOrderMapper, MallOrder
if (group.getStatus() != GROUP_STATUS_FORMING && group.getStatus() != GROUP_STATUS_FACE2FACE) {
throw new RuntimeException("当前拼团状态不可参团");
}
if (group.getCurrentMembers() >= group.getTargetMembers()) {
//超出拼团人数 也可以参与
/*if (group.getCurrentMembers() >= group.getTargetMembers()) {
throw new RuntimeException("拼团已满员");
}
}*/
boolean isFace2Face = (group.getStatus() == GROUP_STATUS_FACE2FACE);
@ -349,7 +350,8 @@ public class MallOrderServiceImpl extends ServiceImpl<MallOrderMapper, MallOrder
// 更新拼团人数和成员列表
int newMembers = group.getCurrentMembers() + 1;
String newOrderIds = group.getGroupOrderIds() + "," + order.getId();
group.setCurrentMembers(newMembers);
//支付成功才更新参团人数
// group.setCurrentMembers(newMembers);
group.setGroupOrderIds(newOrderIds);
mallOrderGroupMapper.updateById(group);
@ -419,12 +421,24 @@ public class MallOrderServiceImpl extends ServiceImpl<MallOrderMapper, MallOrder
.like(MallOrderGroup::getGroupOrderIds, order.getId())
.last("LIMIT 1");
group = mallOrderGroupMapper.selectOne(gq2);
//更新参团人数+1
int newMembers = group.getCurrentMembers() + 1;
LambdaUpdateWrapper<MallOrderGroup> guw = new LambdaUpdateWrapper<>();
guw.eq(MallOrderGroup::getId, group.getId())
.set(MallOrderGroup::getCurrentMembers, newMembers);
mallOrderGroupMapper.update(group,guw);
}else{
// 团长支付 且不是面对面团 状态改为待成团
int newMembers = 1;
if(group.getIsFace() != 1){
LambdaUpdateWrapper<MallOrderGroup> guw = new LambdaUpdateWrapper<>();
guw.eq(MallOrderGroup::getId, group.getId())
.set(MallOrderGroup::getStatus, GROUP_STATUS_FORMING);
.set(MallOrderGroup::getStatus, GROUP_STATUS_FORMING).set(MallOrderGroup::getCurrentMembers, newMembers);
mallOrderGroupMapper.update(group,guw);
}else{
LambdaUpdateWrapper<MallOrderGroup> guw = new LambdaUpdateWrapper<>();
guw.eq(MallOrderGroup::getId, group.getId())
.set(MallOrderGroup::getCurrentMembers, newMembers);
mallOrderGroupMapper.update(group,guw);
}
}

1
hiver-modules/hiver-mall/src/main/resources/mapper/MallOrderGroupMapper.xml

@ -41,6 +41,7 @@
AND status = #{group.status}
</if>
</where>
order by create_time asc
</select>

Loading…
Cancel
Save