Browse Source

对接拼团数据1

master
wangfukang 5 days ago
parent
commit
77d00b3450
  1. 34
      hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/MallDeliveryOrderController.java
  2. 17
      hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/service/mybatis/MallDeliveryOrderService.java
  3. 56
      hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/MallDeliveryOrderServiceImpl.java

34
hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/MallDeliveryOrderController.java

@ -247,4 +247,38 @@ public class MallDeliveryOrderController {
return ResultUtil.error(e.getMessage()); return ResultUtil.error(e.getMessage());
} }
} }
/**
* 用户增加配送费在现有配送费基础上追加
*/
@PostMapping("/addFee")
@ApiOperation(value = "增加配送费", notes = "抢单大厅的订单,用户可以在现有配送费基础上追加配送费")
public Result addDeliveryFee(@RequestParam String orderId,@RequestParam String deliveryId,
@RequestParam BigDecimal additionalFee,@RequestParam BigDecimal olditionalFee) {
try {
mallDeliveryOrderService.addDeliveryFee(orderId,deliveryId, additionalFee,olditionalFee);
return ResultUtil.success("配送费增加成功");
} catch (Exception e) {
log.error("增加配送费失败: {}", e.getMessage(), e);
return ResultUtil.error(e.getMessage());
}
}
/**
* 重新指定配送员
*/
@PostMapping("/reassignWorker")
@ApiOperation(value = "重新指定配送员", notes = "待接单状态的订单,用户可以重新指定配送员")
public Result reassignWorker(@RequestParam String deliveryId,
@RequestParam String newWorkerId,
@RequestParam String newWorkerName,
@RequestParam String newWorkerPhone) {
try {
mallDeliveryOrderService.reassignWorker(deliveryId, newWorkerId, newWorkerName, newWorkerPhone);
return ResultUtil.success("重新指定配送员成功");
} catch (Exception e) {
log.error("重新指定配送员失败: {}", e.getMessage(), e);
return ResultUtil.error(e.getMessage());
}
}
} }

17
hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/service/mybatis/MallDeliveryOrderService.java

@ -5,6 +5,7 @@ import cc.hiver.mall.pojo.query.MallDeliveryOrderPageQuery;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import java.math.BigDecimal;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -63,5 +64,21 @@ public interface MallDeliveryOrderService extends IService<MallDeliveryOrder> {
List<Map<String, Object>> countOrdersByStatus(String workerId); List<Map<String, Object>> countOrdersByStatus(String workerId);
/**
* 用户增加配送费在现有 deliveryFee 基础上追加
* @param deliveryId 配送单ID
* @param additionalFee 追加的配送费金额
*/
void addDeliveryFee(String orderId,String deliveryId, BigDecimal additionalFee,BigDecimal olditionalFee);
/**
* 重新指定配送员仅待接单状态可操作
* @param deliveryId 配送单ID
* @param newWorkerId 新配送员ID
* @param newWorkerName 新配送员名称
* @param newWorkerPhone 新配送员电话
*/
void reassignWorker(String deliveryId, String newWorkerId, String newWorkerName, String newWorkerPhone);
MallDeliveryOrder selectByGroupId(String orderId); MallDeliveryOrder selectByGroupId(String orderId);
} }

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

@ -396,6 +396,62 @@ public class MallDeliveryOrderServiceImpl extends ServiceImpl<MallDeliveryOrderM
return returnList; return returnList;
} }
/**
* 用户增加配送费在现有 deliveryFee 基础上追加
*/
@Override
@Transactional(rollbackFor = Exception.class)
public void addDeliveryFee(String orderId,String deliveryId, java.math.BigDecimal additionalFee, java.math.BigDecimal olditionalFee) {
MallDeliveryOrder delivery = this.getById(deliveryId);
if (delivery == null) {
throw new RuntimeException("配送单不存在");
}
if (delivery.getStatus() != STATUS_WAIT_ACCEPT) {
throw new RuntimeException("只有待接单状态的配送单才能增加配送费");
}
if (additionalFee == null || additionalFee.compareTo(java.math.BigDecimal.ZERO) <= 0) {
throw new RuntimeException("追加配送费金额必须大于0");
}
java.math.BigDecimal currentFee = delivery.getDeliveryFee() != null ? delivery.getDeliveryFee() : java.math.BigDecimal.ZERO;
java.math.BigDecimal newFee = currentFee.add(additionalFee);
java.math.BigDecimal newOrderFee = olditionalFee.add(additionalFee);
LambdaUpdateWrapper<MallOrder> uwOrder = new LambdaUpdateWrapper<>();
uwOrder.eq(MallOrder::getId, orderId)
.set(MallOrder::getDeliveryFee, newOrderFee);
mallOrderService.update(uwOrder);
LambdaUpdateWrapper<MallDeliveryOrder> uw = new LambdaUpdateWrapper<>();
uw.eq(MallDeliveryOrder::getId, deliveryId)
.set(MallDeliveryOrder::getDeliveryFee, newFee);
this.update(uw);
log.info("配送单 {} 配送费增加 {},更新后为 {}", deliveryId, additionalFee, newFee);
}
/**
* 重新指定配送员仅待接单状态可操作
*/
@Override
@Transactional(rollbackFor = Exception.class)
public void reassignWorker(String deliveryId, String newWorkerId, String newWorkerName, String newWorkerPhone) {
MallDeliveryOrder delivery = this.getById(deliveryId);
if (delivery == null) {
throw new RuntimeException("配送单不存在");
}
if (delivery.getStatus() != STATUS_WAIT_ACCEPT) {
throw new RuntimeException("只有待接单状态的配送单才能重新指定配送员");
}
LambdaUpdateWrapper<MallDeliveryOrder> uw = new LambdaUpdateWrapper<>();
uw.eq(MallDeliveryOrder::getId, deliveryId)
.set(MallDeliveryOrder::getWorkerId, newWorkerId)
.set(MallDeliveryOrder::getWorkerName, newWorkerName)
.set(MallDeliveryOrder::getWorkerPhone, newWorkerPhone);
this.update(uw);
log.info("配送单 {} 重新指定配送员: workerId={}, workerName={}", deliveryId, newWorkerId, newWorkerName);
}
@Override @Override
public MallDeliveryOrder selectByGroupId(String orderId) { public MallDeliveryOrder selectByGroupId(String orderId) {
return this.baseMapper.selectByGroupId(orderId); return this.baseMapper.selectByGroupId(orderId);

Loading…
Cancel
Save