Commit bdf3617c authored by shiyu's avatar shiyu

换藏订单详情

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