|
@@ -39,8 +39,6 @@ import com.yc.ship.module.trade.dal.mysql.audituser.AuditUserMapper;
|
|
|
import com.yc.ship.module.trade.dal.mysql.order.TradeDetailMapper;
|
|
import com.yc.ship.module.trade.dal.mysql.order.TradeDetailMapper;
|
|
|
import com.yc.ship.module.trade.dal.mysql.order.TradeOrderBindMapper;
|
|
import com.yc.ship.module.trade.dal.mysql.order.TradeOrderBindMapper;
|
|
|
import com.yc.ship.module.trade.dal.mysql.order.TradeOrderMapper;
|
|
import com.yc.ship.module.trade.dal.mysql.order.TradeOrderMapper;
|
|
|
-import com.yc.ship.module.trade.dal.mysql.refund.CancelAuditMapper;
|
|
|
|
|
-import com.yc.ship.module.trade.dal.mysql.tradeOrderaudit.TradeOrderAuditMapper;
|
|
|
|
|
import com.yc.ship.module.trade.enums.RefundChannelEnum;
|
|
import com.yc.ship.module.trade.enums.RefundChannelEnum;
|
|
|
import com.yc.ship.module.trade.enums.TradeOrderOperateTypeEnum;
|
|
import com.yc.ship.module.trade.enums.TradeOrderOperateTypeEnum;
|
|
|
import com.yc.ship.module.trade.enums.TradeOrderStatusEnum;
|
|
import com.yc.ship.module.trade.enums.TradeOrderStatusEnum;
|
|
@@ -206,49 +204,18 @@ public class AdminTradeOrderServiceImpl implements AdminTradeOrderService {
|
|
|
|
|
|
|
|
TradeRefundCalculateRespVO respVO = new TradeRefundCalculateRespVO();
|
|
TradeRefundCalculateRespVO respVO = new TradeRefundCalculateRespVO();
|
|
|
List<TradeRefundCalculateRespDTO> list = new ArrayList<>();
|
|
List<TradeRefundCalculateRespDTO> list = new ArrayList<>();
|
|
|
- if (refundCreateReqVO.getRefundType() == REFUND_TYPE_ORDER) {
|
|
|
|
|
- Asserts.isTrue(CollUtil.isNotEmpty(refundCreateReqVO.getOrderInfoList()), "退款订单列表不能为空");
|
|
|
|
|
- boolean isMultiOrder = refundCreateReqVO.getOrderInfoList().size() > 1;
|
|
|
|
|
- refundCreateReqVO.getOrderInfoList().forEach(orderInfo -> {
|
|
|
|
|
-
|
|
|
|
|
- tradeRefundCreateReqDTO.setOrderId(orderInfo.getOrderId());
|
|
|
|
|
- if (isMultiOrder) {
|
|
|
|
|
- tradeRefundCreateReqDTO.setRefundAmount(orderInfo.getRefundAmount());
|
|
|
|
|
- tradeRefundCreateReqDTO.setOriginRefundAmount(orderInfo.getOriginRefundAmount());
|
|
|
|
|
- tradeRefundCreateReqDTO.setFee(orderInfo.getFee());
|
|
|
|
|
- }
|
|
|
|
|
- CommonResult<TradeRefundCalculateRespDTO> resp = tradeRefundService.calculateRefundAmount(tradeRefundCreateReqDTO);
|
|
|
|
|
- list.add(resp.getData());
|
|
|
|
|
- });
|
|
|
|
|
-
|
|
|
|
|
- } else if (refundCreateReqVO.getRefundType() == REFUND_TYPE_ITEM) {
|
|
|
|
|
- Asserts.isTrue(CollUtil.isNotEmpty(refundCreateReqVO.getRefundItemList()), "退款项列表不能为空");
|
|
|
|
|
- Map<Long, List<TradeRefundCreateReqDTO.RefundItem>> refundByOrderMap = refundCreateReqVO.getRefundItemList().stream().collect(Collectors.groupingBy(TradeRefundCreateReqDTO.RefundItem::getOrderId));
|
|
|
|
|
- boolean isMultiOrder = refundByOrderMap.size() > 1;
|
|
|
|
|
- refundByOrderMap.forEach((key, value) -> {
|
|
|
|
|
- if (isMultiOrder) {
|
|
|
|
|
- //后面系统会计算
|
|
|
|
|
- tradeRefundCreateReqDTO.setRefundAmount(null);
|
|
|
|
|
- tradeRefundCreateReqDTO.setOriginRefundAmount(null);
|
|
|
|
|
- tradeRefundCreateReqDTO.setFee(null);
|
|
|
|
|
- }
|
|
|
|
|
- tradeRefundCreateReqDTO.setOrderId(key);
|
|
|
|
|
- tradeRefundCreateReqDTO.setItemlList(value);
|
|
|
|
|
-
|
|
|
|
|
- CommonResult<TradeRefundCalculateRespDTO> resp = tradeRefundService.calculateRefundAmount(tradeRefundCreateReqDTO);
|
|
|
|
|
- list.add(resp.getData());
|
|
|
|
|
- });
|
|
|
|
|
- } else if (refundCreateReqVO.getRefundType() == REFUND_TYPE_ITEM_BASE) {
|
|
|
|
|
- Asserts.isTrue(CollUtil.isNotEmpty(refundCreateReqVO.getRefundItemList()), "退款项列表不能为空");
|
|
|
|
|
- Asserts.isTrue(refundCreateReqVO.getRefundItemList().size() == 1, "退款项数据格式不正确");
|
|
|
|
|
- Asserts.isTrue(CollUtil.isNotEmpty(refundCreateReqVO.getRefundItemList().get(0).getDetailList()), "退款项明细列表不能为空");
|
|
|
|
|
- tradeRefundCreateReqDTO.setItemlList(refundCreateReqVO.getRefundItemList());
|
|
|
|
|
|
|
+ Asserts.isTrue(CollUtil.isNotEmpty(refundCreateReqVO.getOrderInfoList()), "退款订单列表不能为空");
|
|
|
|
|
+ boolean isMultiOrder = refundCreateReqVO.getOrderInfoList().size() > 1;
|
|
|
|
|
+ refundCreateReqVO.getOrderInfoList().forEach(orderInfo -> {
|
|
|
|
|
+ tradeRefundCreateReqDTO.setOrderId(orderInfo.getOrderId());
|
|
|
|
|
+ if (isMultiOrder) {
|
|
|
|
|
+ tradeRefundCreateReqDTO.setRefundAmount(orderInfo.getRefundAmount());
|
|
|
|
|
+ tradeRefundCreateReqDTO.setOriginRefundAmount(orderInfo.getOriginRefundAmount());
|
|
|
|
|
+ tradeRefundCreateReqDTO.setFee(orderInfo.getFee());
|
|
|
|
|
+ }
|
|
|
CommonResult<TradeRefundCalculateRespDTO> resp = tradeRefundService.calculateRefundAmount(tradeRefundCreateReqDTO);
|
|
CommonResult<TradeRefundCalculateRespDTO> resp = tradeRefundService.calculateRefundAmount(tradeRefundCreateReqDTO);
|
|
|
list.add(resp.getData());
|
|
list.add(resp.getData());
|
|
|
- } else {
|
|
|
|
|
- throw exception(REFUND_TYPE_ERROR);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
|
|
+ });
|
|
|
respVO.setList(list);
|
|
respVO.setList(list);
|
|
|
return CommonResult.success(respVO);
|
|
return CommonResult.success(respVO);
|
|
|
}
|
|
}
|
|
@@ -361,16 +328,16 @@ public class AdminTradeOrderServiceImpl implements AdminTradeOrderService {
|
|
|
|
|
|
|
|
long between = DateUtil.between(tradeOrderDO.getTravelDate(), new Date(), DateUnit.DAY);
|
|
long between = DateUtil.between(tradeOrderDO.getTravelDate(), new Date(), DateUnit.DAY);
|
|
|
BigDecimal damaged;
|
|
BigDecimal damaged;
|
|
|
- if(between>21){
|
|
|
|
|
|
|
+ if (between > 21) {
|
|
|
damaged = new BigDecimal(500);
|
|
damaged = new BigDecimal(500);
|
|
|
- }else if(between>15){
|
|
|
|
|
- damaged = tradeOrderDO.getPayAmount().multiply(new BigDecimal("0.2"));
|
|
|
|
|
- }else{
|
|
|
|
|
- damaged = tradeOrderDO.getPayAmount();
|
|
|
|
|
|
|
+ } else if (between > 15) {
|
|
|
|
|
+ damaged = tradeOrderDO.getPayAmount().multiply(new BigDecimal("0.2"));
|
|
|
|
|
+ } else {
|
|
|
|
|
+ damaged = tradeOrderDO.getPayAmount();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
AuditUserDO auditUserDO = auditUserMapper.selectOne(new LambdaQueryWrapperX<AuditUserDO>().eq(AuditUserDO::getType, 4).eq(AuditUserDO::getAuditStatus, 1).eq(AuditUserDO::getDeleted, 0).orderByDesc(AuditUserDO::getCreateTime).last("limit 1"));
|
|
AuditUserDO auditUserDO = auditUserMapper.selectOne(new LambdaQueryWrapperX<AuditUserDO>().eq(AuditUserDO::getType, 4).eq(AuditUserDO::getAuditStatus, 1).eq(AuditUserDO::getDeleted, 0).orderByDesc(AuditUserDO::getCreateTime).last("limit 1"));
|
|
|
- tradeOrderMapper.update(new UpdateWrapper<TradeOrderDO>().set("audit_type", 4).set("audit_user", auditUserDO == null ? "" : auditUserDO.getAuditUser()).set("order_status", TradeOrderStatusEnum.CANCEL_AUDIT.getStatus()).set("audit_status", 1).set("damaged",damaged).set("damaged_status", 1).set("damaged_time", LocalDateTime.now()).eq("id", tradeOrderDO.getId()));
|
|
|
|
|
|
|
+ tradeOrderMapper.update(new UpdateWrapper<TradeOrderDO>().set("audit_type", 4).set("audit_user", auditUserDO == null ? "" : auditUserDO.getAuditUser()).set("order_status", TradeOrderStatusEnum.CANCEL_AUDIT.getStatus()).set("audit_status", 1).set("damaged", damaged).set("damaged_status", 1).set("damaged_time", LocalDateTime.now()).eq("id", tradeOrderDO.getId()));
|
|
|
TradeOrderLogUtils.setOrderInfo(orderId, tradeOrderDO.getOrderStatus(), TradeOrderStatusEnum.CANCEL_AUDIT.getStatus());
|
|
TradeOrderLogUtils.setOrderInfo(orderId, tradeOrderDO.getOrderStatus(), TradeOrderStatusEnum.CANCEL_AUDIT.getStatus());
|
|
|
return CommonResult.success("订单取消审核中");
|
|
return CommonResult.success("订单取消审核中");
|
|
|
}
|
|
}
|
|
@@ -395,10 +362,10 @@ public class AdminTradeOrderServiceImpl implements AdminTradeOrderService {
|
|
|
List<String> orderNoList = Arrays.asList(reqObj.getStr("orderNos").split(","));
|
|
List<String> orderNoList = Arrays.asList(reqObj.getStr("orderNos").split(","));
|
|
|
String otaId = reqObj.getStr("otaId");
|
|
String otaId = reqObj.getStr("otaId");
|
|
|
String remark = reqObj.getStr("remark");
|
|
String remark = reqObj.getStr("remark");
|
|
|
- if(StringUtils.isNotBlank(otaId)){
|
|
|
|
|
|
|
+ if (StringUtils.isNotBlank(otaId)) {
|
|
|
//平台开旅行社发票
|
|
//平台开旅行社发票
|
|
|
DistributorRespDTO distributorRespDTO = distributorApi.getDistributorById(Long.parseLong(otaId));
|
|
DistributorRespDTO distributorRespDTO = distributorApi.getDistributorById(Long.parseLong(otaId));
|
|
|
- if (distributorRespDTO==null){
|
|
|
|
|
|
|
+ if (distributorRespDTO == null) {
|
|
|
throw exception(INVOICING_FAIL);
|
|
throw exception(INVOICING_FAIL);
|
|
|
}
|
|
}
|
|
|
InvoicingReqDTO reqDTO = InvoiceConvert.INSTANCE.convertOtc(distributorRespDTO);
|
|
InvoicingReqDTO reqDTO = InvoiceConvert.INSTANCE.convertOtc(distributorRespDTO);
|
|
@@ -411,7 +378,7 @@ public class AdminTradeOrderServiceImpl implements AdminTradeOrderService {
|
|
|
}
|
|
}
|
|
|
LoginUser loginUser = getLoginUser();
|
|
LoginUser loginUser = getLoginUser();
|
|
|
CommonResult<DistributorRespDTO> distributorResult = distributorApi.getDistributorByAccountTenantId(loginUser.getTenantId());
|
|
CommonResult<DistributorRespDTO> distributorResult = distributorApi.getDistributorByAccountTenantId(loginUser.getTenantId());
|
|
|
- if (distributorResult.isError()){
|
|
|
|
|
|
|
+ if (distributorResult.isError()) {
|
|
|
throw exception(INVOICING_FAIL);
|
|
throw exception(INVOICING_FAIL);
|
|
|
}
|
|
}
|
|
|
DistributorRespDTO distributorRespDTO = distributorResult.getCheckedData();
|
|
DistributorRespDTO distributorRespDTO = distributorResult.getCheckedData();
|
|
@@ -430,12 +397,12 @@ public class AdminTradeOrderServiceImpl implements AdminTradeOrderService {
|
|
|
List<String> orderNoList = Arrays.asList(reqObj.getStr("orderNos").split(","));
|
|
List<String> orderNoList = Arrays.asList(reqObj.getStr("orderNos").split(","));
|
|
|
String otaId = reqObj.getStr("otaId");
|
|
String otaId = reqObj.getStr("otaId");
|
|
|
String remark = reqObj.getStr("remark");
|
|
String remark = reqObj.getStr("remark");
|
|
|
- if(StringUtils.isBlank(otaId)){
|
|
|
|
|
|
|
+ if (StringUtils.isBlank(otaId)) {
|
|
|
throw exception(INVOICING_FAIL_OTA);
|
|
throw exception(INVOICING_FAIL_OTA);
|
|
|
}
|
|
}
|
|
|
//平台开旅行社发票
|
|
//平台开旅行社发票
|
|
|
DistributorRespDTO distributorRespDTO = distributorApi.getDistributorById(Long.parseLong(otaId));
|
|
DistributorRespDTO distributorRespDTO = distributorApi.getDistributorById(Long.parseLong(otaId));
|
|
|
- if (distributorRespDTO == null){
|
|
|
|
|
|
|
+ if (distributorRespDTO == null) {
|
|
|
throw exception(INVOICING_FAIL);
|
|
throw exception(INVOICING_FAIL);
|
|
|
}
|
|
}
|
|
|
InvoicingReqDTO reqDTO = InvoiceConvert.INSTANCE.convertOtc(distributorRespDTO);
|
|
InvoicingReqDTO reqDTO = InvoiceConvert.INSTANCE.convertOtc(distributorRespDTO);
|