feat:完成更改结算单状态接口;补充相关的swagger文档
This commit is contained in:
parent
46517c7c28
commit
e63d51c064
@ -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);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -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 = "获取生成结算单确认列表")
|
||||
|
@ -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;
|
||||
|
||||
/**
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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));
|
||||
}
|
||||
}
|
||||
|
@ -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));
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user