Commit bdf3617c authored by shiyu's avatar shiyu

换藏订单详情

parent ef7f85a9
......@@ -229,6 +229,7 @@ public class SysExchangeApplyOrderServiceImpl implements SysExchangeApplyOrderSe
for (ExchangeApplyOrderDetail exchangeApplyOrderDetail : detailList) {
SupplierItem supplierItem = supplierItemDao.findById(exchangeApplyOrderDetail.getItemId());
SupplierItemVo supplierItemVo = new SupplierItemVo();
EntityMapper.copyAttribute(supplierItem, supplierItemVo);
supplierItemVo.setItemId(exchangeApplyOrderDetail.getItemId());
supplierItemVo.setName(supplierItem.getName());
supplierItemVo.setItemNum(exchangeApplyOrderDetail.getItemNum());
......
......@@ -146,7 +146,7 @@ public class ExchangeApplyOrderServiceImpl implements ExchangeApplyOrderService
commitExchangeDto.setUserOpenId(user.getWeixinOpenid());
Result commitExchangeOrderResult = exchangeService.exchange(commitExchangeDto);
if (!commitExchangeOrderResult.getSuccess()) {
logger.error(">>>>>>> 创建申请方交换订单失败 <<<<<<<");
logger.error(">>>>>>> 创建申请方交换订单失败:{} <<<<<<<", commitExchangeOrderResult.getErrmsg());
throw new Exception("创建申请方交换订单失败");
}
......@@ -179,7 +179,7 @@ public class ExchangeApplyOrderServiceImpl implements ExchangeApplyOrderService
receiveExchangeDto.setUserOpenId(receiveUser.getWeixinOpenid());
Result receiveExchangeOrderResult = exchangeService.exchange(receiveExchangeDto);
if (!receiveExchangeOrderResult.getSuccess()) {
logger.error(">>>>>>>> 创建接收方方交换订单失败 <<<<<<<<");
logger.error(">>>>>>>> 创建接收方方交换订单失败:{} <<<<<<<<", receiveExchangeOrderResult.getErrmsg());
throw new Exception("创建接收方方交换订单失败");
}
ExchangeApplyOrder updateExchangeApplyOrder = new ExchangeApplyOrder();
......
......@@ -98,6 +98,7 @@ public class ExchangeOrderServiceImpl implements ExchangeOrderService {
List<SupplierItemVo> userItemList = new ArrayList<>();
ExchangeOrderVo exchangeOrderVo = new ExchangeOrderVo();
EntityMapper.copyAttribute(distributionOrder, exchangeOrderVo);
exchangeOrderVo.setStateName(DistributionEnum.DistributionOrderStateEnum.getNameByCode(distributionOrder.getState()));
//查询订单中交换得到的商品
List<DistributionOrderDetail> distributionOrderDetailList = distributionOrderDetailDao.findByOrderId(distributionOrder.getDistributionOrderId());
for (DistributionOrderDetail distributionOrderDetail : distributionOrderDetailList) {
......@@ -146,7 +147,7 @@ public class ExchangeOrderServiceImpl implements ExchangeOrderService {
}
}
Date date = distributionOrder.getCreateTime();
Instant instant = date.toInstant().plus(Duration.ofMinutes(48));
Instant instant = date.toInstant().plus(Duration.ofHours(48));
Date time = Date.from(instant);
exchangeOrderVo.setExpireTime(time);
exchangeOrderVoList.add(exchangeOrderVo);
......@@ -167,9 +168,10 @@ public class ExchangeOrderServiceImpl implements ExchangeOrderService {
DistributionOrder distributionOrder = distributionOrderDao.findById(dto.getDistributionOrderId());
//用户交换得到的商品信息
List<SupplierItemVo> targetItemList = new ArrayList<>();
//用户交换出去的商品信息
List<SupplierItemVo> userItemList = new ArrayList<>();
ExchangeOrderDetailVo exchangeOrderDetailVo = new ExchangeOrderDetailVo();
EntityMapper.copyAttribute(distributionOrder, exchangeOrderDetailVo);
exchangeOrderDetailVo.setStateName(DistributionEnum.DistributionOrderStateEnum.getNameByCode(distributionOrder.getState()));
//查询订单中交换得到的商品
List<DistributionOrderDetail> distributionOrderDetailList = distributionOrderDetailDao.findByOrderId(distributionOrder.getDistributionOrderId());
for (DistributionOrderDetail distributionOrderDetail : distributionOrderDetailList) {
......@@ -229,7 +231,7 @@ public class ExchangeOrderServiceImpl implements ExchangeOrderService {
}
}
Date date = distributionOrder.getCreateTime();
Instant instant = date.toInstant().plus(Duration.ofMinutes(48));
Instant instant = date.toInstant().plus(Duration.ofHours(48));
Date time = Date.from(instant);
exchangeOrderDetailVo.setExpireTime(time);
return Result.success(exchangeOrderDetailVo);
......@@ -246,34 +248,40 @@ public class ExchangeOrderServiceImpl implements ExchangeOrderService {
* @param distributorId
*/
private void checkPrePayTimeOut(Long userId, Long distributorId){
/* DistributionOrderRequestDto dto = new DistributionOrderRequestDto();
DistributionOrderRequestDto dto = new DistributionOrderRequestDto();
dto.setBuyerId(userId);
dto.setSellerId(distributorId);
dto.setType(DistributionEnum.DistributionTypeEnum.EXCHANGE.getCode());
dto.setState(DistributionEnum.DistributionOrderStateEnum.PRE_EXCHANGE.getCode());
List<DistributionOrder> prePayList = distributionOrderDao.findByPage(dto);
prePayList.forEach(distributionOrder -> {
String orderId = distributionOrder.getDistributionOrderId();
long diffInMillies = Math.abs(new Date().getTime() - distributionOrder.getCreateTime().getTime());
//超出48小时未寄出,订单取消
long diffInHours = diffInMillies / (60 * 1000 * 60);
if (diffInHours >= 48) {
distributionOrderDao.updateState(distributionOrder.getDistributionOrderId(), DistributionEnum.DistributionOrderStateEnum.CANCEL.getCode());
//换藏的品取消订单后恢复库存
if (!distributionOrder.getIsMultiple()) {
exchangeApplyOrderDetailDao.updateInValid(orderId);
distributionOrderDao.updateState(targetUserOrderId, DistributionEnum.DistributionOrderStateEnum.CANCEL.getCode());
SupplierItem supplierItem = supplierItemDao.findById(distributionOrder.getItemId());
supplierItemDao.updateStock(distributionOrder.getItemId(), supplierItem.getStock() + distributionOrder.getItemNum());
//订单快照设置为无效
ExchangeOrderSnapshot exchangeOrderSnapshot = new ExchangeOrderSnapshot();
exchangeOrderSnapshot.setDistributionOrderId(distributionOrder.getDistributionOrderId());
exchangeOrderSnapshot.setIsValid(false);
exchangeOrderSnapshotDao.update(exchangeOrderSnapshot);
//超出48小时未寄出,订单取消
long diffInHours = diffInMillies / (60 * 1000 * 60);
if (diffInHours >= 48) {
distributionOrderDao.updateState(distributionOrder.getDistributionOrderId(), DistributionEnum.DistributionOrderStateEnum.CANCEL.getCode());
//换藏的品取消订单后恢复库存
if (!distributionOrder.getIsMultiple()) {
exchangeApplyOrderDetailDao.updateInValid(orderId);
distributionOrderDao.updateState(orderId, DistributionEnum.DistributionOrderStateEnum.CANCEL.getCode());
//查询交换订单商品快照
List<ExchangeOrderSnapshot> list = exchangeOrderSnapshotDao.findByOrderId(orderId);
for (ExchangeOrderSnapshot exchangeOrderSnapshot : list) {
//恢复用户交换商品的库存
SupplierItem supplierItem = supplierItemDao.findById(exchangeOrderSnapshot.getItemId());
//当前库存
int currentStock = supplierItem.getStock();
int updateStock = currentStock + exchangeOrderSnapshot.getItemNum();
supplierItemDao.updateStock(exchangeOrderSnapshot.getItemId(), updateStock);
}
//订单快照设置为无效
ExchangeOrderSnapshot exchangeOrderSnapshot = new ExchangeOrderSnapshot();
exchangeOrderSnapshot.setDistributionOrderId(orderId);
exchangeOrderSnapshot.setIsValid(false);
exchangeOrderSnapshotDao.update(exchangeOrderSnapshot);
}
}
});*/
});
}
}
......@@ -243,13 +243,13 @@ public class ExchangeServiceImpl implements ExchangeService {
}
} else {
exchangeItemId = dto.getExchangeItemId();
//查询交换的商品价值
//查询交换的商品
SupplierItem supplierItem = supplierItemDao.findById(exchangeItemId);
if (supplierItem.getStock() < dto.getExchangeItemNum()) {
logger.info("商品id:{}, 库存不足", exchangeItemId);
return Result.failed("库存不足");
}
exchangeItemPrice = supplierItem.getOfficialEstimatedPrice() * dto.getExchangeItemNum();
}
List<ItemSimpleDto> itemSimpleDtoList = dto.getItemList();
//查询用户藏品的价值
......@@ -259,6 +259,12 @@ public class ExchangeServiceImpl implements ExchangeService {
SupplierItem userItem = supplierItemDao.findById(itemSimpleDto.getItemId());
userItemPrice = userItemPrice + userItem.getOfficialEstimatedPrice() * itemSimpleDto.getItemNum();
}
//查询交换的商品价值
SupplierItem supplierItem = supplierItemDao.findById(exchangeItemId);
if (supplierItem.getOfficialEstimatedPrice() == null) {
return Result.failed("交换平台商品需要先估价");
}
exchangeItemPrice = supplierItem.getOfficialEstimatedPrice() * dto.getExchangeItemNum();
if (exchangeItemPrice > userItemPrice) {
return Result.failed("您的藏品价格低于交换的商品价值,不支持换藏");
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment