feat:完成更改结算单状态接口;补充相关的swagger文档

This commit is contained in:
chenxiky 2025-07-26 18:16:15 +08:00
parent 46517c7c28
commit e63d51c064
7 changed files with 76 additions and 7 deletions

View File

@ -804,10 +804,46 @@ public class OrderBiz {
*
* @param settlementOrderId 结算订单ID
* @param settlementOrderStatus {@link SettlementStatusEnum} 更新的状态枚举值
* @return Boolean
*/
public Boolean updateSettlementOrderStatus(Long settlementOrderId, Integer settlementOrderStatus) {
return true;
@Transactional(rollbackFor = Exception.class)
public void updateSettlementOrderStatus(Long settlementOrderId, Integer settlementOrderStatus) {
SettlementMain settlementMain = settlementMainService.obtainSettlementMainById(settlementOrderId);
if (ObjectUtil.isNull(settlementMain)) {
throw new BadRequestException("结算订单不存在");
}
// 结算单状态相同或者结算完成则不处理
if (settlementOrderStatus.equals(settlementMain.getSettlementStatus())
|| SettlementStatusEnum.CONFIRMED.getCode().equals(settlementMain.getSettlementStatus())) {
return;
}
// 如果结算单状态本身为取消则不许再处理
if (SettlementStatusEnum.CANCELED.getCode().equals(settlementMain.getSettlementStatus())) {
throw new BadRequestException("结算单已取消,无法变更状态");
}
// 查询出所有明细
List<SettlementDetail> settlementDetailList = settlementDetailService.obtainDetailBySettlementOrderId(settlementOrderId);
// 获取所有订单ID
List<Long> orderIds = settlementDetailList.stream().map(SettlementDetail::getOrderId).toList();
// 获取id
List<Long> ids = settlementDetailList.stream().map(SettlementDetail::getId).toList();
// 更新结算单的状态
settlementMainService.updateSettlementStatus(settlementOrderId, settlementOrderStatus);
// 订单等于完成或取消才去更新结算单的状态
if (SettlementStatusEnum.SETTLING.getCode().equals(settlementOrderStatus) ||
SettlementStatusEnum.SETTLED.getCode().equals(settlementOrderStatus)) {
return;
}
Integer updateStatus = null;
if (SettlementStatusEnum.CANCELED.getCode().equals(settlementOrderStatus)) {
updateStatus = OrderSettlementStatusEnum.NOT_SETTLED.getCode();
} else {
updateStatus = OrderSettlementStatusEnum.SETTLED.getCode();
}
// 更新订单表的状态
orderMainService.updateSettlementStatus(orderIds, updateStatus);
// 更新结算订单状态
settlementDetailService.updateSettlementOrderStatus(ids, updateStatus);
}
/**

View File

@ -72,12 +72,13 @@ public class SettlementMainController {
@ApiOperation("更新结算单状态")
@PutMapping("/updateSettlementOrderStatus/{settlementOrderId}/{settlementOrderStatus}")
public ResponseEntity<Boolean> updateSettlementOrderStatus(
public ResponseEntity<Object> updateSettlementOrderStatus(
@ApiParam(value = "结算订单ID", required = true, example = "1946509536383438850")
@PathVariable("settlementOrderId") Long settlementOrderId,
@ApiParam(value = "结算单状态: 0=结算中, 1=已确认, 2=已完成, 3=结算完成, 4=已取消", required = true, example = "1")
@PathVariable("settlementOrderStatus") Integer settlementOrderStatus) {
return new ResponseEntity<>(orderBiz.updateSettlementOrderStatus(settlementOrderId, settlementOrderStatus),HttpStatus.OK);
orderBiz.updateSettlementOrderStatus(settlementOrderId, settlementOrderStatus);
return new ResponseEntity<>(HttpStatus.OK);
}
@ApiOperation(value = "获取生成结算单确认列表")

View File

@ -32,7 +32,7 @@ public class OrderMainPageQueryVO {
/**
* 订单状态
*/
@ApiModelProperty(value = "订单状态")
@ApiModelProperty(value = "订单状态(0=未进行1=进行中2=已完成3=已取消)")
private Integer mainOrderStatus;
/**
@ -93,7 +93,7 @@ public class OrderMainPageQueryVO {
/**
* 结算状态
*/
@ApiModelProperty(value = "结算状态: 0=未结算, 1=结算")
@ApiModelProperty(value = "结算状态: 0=未结算, 1=结算中, 2=结算完成")
private Integer settlementStatus;
/**

View File

@ -29,4 +29,12 @@ public interface ISettlementDetailService extends IService<SettlementDetail> {
* @return List<SettlementDetail>
*/
List<SettlementDetail> obtainDetailBySettlementOrderId(Long settlementOrderId);
/**
* 更新结算单状态
*
* @param ids id集合
* @param updateStatus 状态
*/
void updateSettlementOrderStatus(List<Long> ids, Integer updateStatus);
}

View File

@ -41,4 +41,13 @@ public interface ISettlementMainService extends IService<SettlementMain> {
* @return {@link SettlementMain}
*/
SettlementMain obtainSettlementMainById(Long settlementOrderId);
/**
*
* 更新结算单状态
*
* @param settlementOrderId 结算单ID
* @param settlementOrderStatus 结算单状态: 0=结算中, 1=已确认, 2=已完成, 3=结算完成, 4=已取消
*/
void updateSettlementStatus(Long settlementOrderId, Integer settlementOrderStatus);
}

View File

@ -31,4 +31,11 @@ public class SettlementDetailServiceImpl extends ServiceImpl<SettlementDetailMap
.eq(SettlementDetail::getSettlementMainId, settlementOrderId)
.orderByDesc(SettlementDetail::getId));
}
@Override
public void updateSettlementOrderStatus(List<Long> ids, Integer updateStatus) {
this.update(Wrappers.lambdaUpdate(SettlementDetail.class)
.set(SettlementDetail::getSettlementStatus, updateStatus)
.in(SettlementDetail::getId, ids));
}
}

View File

@ -5,6 +5,7 @@ import com.aircraft.modules.order.domain.SettlementMain;
import com.aircraft.modules.order.mapper.SettlementMainMapper;
import com.aircraft.modules.order.service.ISettlementMainService;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
@ -38,4 +39,11 @@ public class SettlementMainServiceImpl extends ServiceImpl<SettlementMainMapper,
public SettlementMain obtainSettlementMainById(Long settlementOrderId) {
return this.getById(settlementOrderId);
}
@Override
public void updateSettlementStatus(Long settlementOrderId, Integer settlementOrderStatus) {
this.update(Wrappers.<SettlementMain>lambdaUpdate()
.eq(SettlementMain::getId, settlementOrderId)
.set(SettlementMain::getSettlementStatus, settlementOrderStatus));
}
}