提交 590c8d8c authored 作者: luojie's avatar luojie

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	src/main/java/com/diaoyun/zion/chinafrica/service/impl/TbCfOrderServiceImpl.java
......@@ -109,6 +109,7 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
@Autowired
private TbCfIssueCouponService tbCfIssueCouponService; //发放表
@Override
public TbCfOrderEntity queryObject(String orderId) {
return tbCfOrderDao.queryObject(orderId);
......@@ -147,6 +148,7 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
/**
* 用户计算1
*
* @return
* @throws IOException
* @throws URISyntaxException
......@@ -154,7 +156,7 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
* @throws InterruptedException
* @throws TimeoutException
*/
@Override
@Override
public Result settleAccount(String toitableId) throws IOException, URISyntaxException, ExecutionException, InterruptedException, TimeoutException {
Result<TbCfOrderVo> result = new Result<>();
//获取用户
......@@ -166,16 +168,16 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
result.setCode(ResultCodeEnum.VALIDATE_ERROR.getCode()).setMessage("There are no items in the shopping cart");
} else {
//获取订单数据
TbCfOrderVo tbCfOrder = getOrderData(tbCfUserInfoVo, tbCfCartItemDetailList,toitableId);
TbCfOrderVo tbCfOrder = getOrderData(tbCfUserInfoVo, tbCfCartItemDetailList, toitableId);
result.setData(tbCfOrder).setMessage("Order pending settlement");
}
return result;
}
@Override
public Result placeOrder(TbCfOrderVo pageOrder,String toitableId) throws IOException, URISyntaxException, ExecutionException, InterruptedException, TimeoutException {
System.out.println(toitableId+"发放ID");
Result<TbCfOrderVo> result = new Result<>();
public Result placeOrder(TbCfOrderVo pageOrder, String toitableId) throws IOException, URISyntaxException, ExecutionException, InterruptedException, TimeoutException {
System.out.println(toitableId + "发放ID");
Result<TbCfOrderVo> result = new Result<>();
//获取用户
String token = jwtTokenProvider.resolveToken(request);
TbCfUserInfoVo tbCfUserInfoVo = tokenManager.validate(token);
......@@ -186,7 +188,7 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
result.setCode(ResultCodeEnum.VALIDATE_ERROR.getCode()).setMessage("There are no items in the shopping cart");
} else {
//获取下单的订单数据
TbCfOrderVo definiteOrder = ensureOrder(tbCfUserInfoVo, pageOrder, tbCfCartItemDetailList,toitableId);
TbCfOrderVo definiteOrder = ensureOrder(tbCfUserInfoVo, pageOrder, tbCfCartItemDetailList, toitableId);
//持久化订单数据
TbCfOrderEntity tbCfOrderEntity = new TbCfOrderEntity();
BeanUtils.copyProperties(definiteOrder, tbCfOrderEntity);
......@@ -202,48 +204,45 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
@Override
public synchronized Result getUserOrderList(Integer pageNum, Integer pageSize, Integer orderStatus) {
public Result getUserOrderList(Integer pageNum, Integer pageSize, Integer orderStatus) throws InterruptedException {
Result<PageInfo<TbCfOrderVo>> result = new Result<>();
//获取用户
String token = jwtTokenProvider.resolveToken(request);
TbCfUserInfoVo tbCfUserInfoVo = tokenManager.validate(token);
PageInfo<TbCfOrderVo> pageInfos = (PageInfo<TbCfOrderVo>) orderRedisCache.get(KeyConstant.ORDER_DET + tbCfUserInfoVo.getUserId() + orderStatus);
if (pageInfos != null) {
result.setData(pageInfos);
return result;
}
//订单数据
List<TbCfOrderEntity> orderList = tbCfOrderDao.getUserOrderList(tbCfUserInfoVo.getUserId(), orderStatus);
startPage(pageNum, pageSize);
PageInfo<TbCfOrderEntity> pageInfo = new PageInfo<>(orderList);
//获取订单后,再获取订单内商品
List<TbCfOrderEntity> pagingOrderList = pageInfo.getList();
List<TbCfOrderVo> tbCfOrderVoList = new ArrayList<>();
if (!pagingOrderList.isEmpty()) {
for (TbCfOrderEntity order : pagingOrderList) {
TbCfOrderVo orderVo = new TbCfOrderVo();
BeanUtils.copyProperties(order, orderVo);
//获取订单内商品
List<TbCfItemDetailEntity> tbCfItemDetailList = tbCfOrderDao.getOrderItemList(orderVo.getOrderId());
//返回的订单商品详情
List<TbCfCartItemDetailVo> itemDetailVoList = new ArrayList<>();
for (TbCfItemDetailEntity tbCfItemDetail : tbCfItemDetailList) {
TbCfCartItemDetailVo tbCfCartItemDetailVo = new TbCfCartItemDetailVo();
BeanUtils.copyProperties(tbCfItemDetail, tbCfCartItemDetailVo);
itemDetailVoList.add(tbCfCartItemDetailVo);
synchronized (this) {
String token = jwtTokenProvider.resolveToken(request);
TbCfUserInfoVo tbCfUserInfoVo = tokenManager.validate(token);
//订单数据
List<TbCfOrderEntity> orderList = tbCfOrderDao.getUserOrderList(tbCfUserInfoVo.getUserId(), orderStatus);
startPage(pageNum, pageSize);
PageInfo<TbCfOrderEntity> pageInfo = new PageInfo<>(orderList);
//获取订单后,再获取订单内商品
List<TbCfOrderEntity> pagingOrderList = pageInfo.getList();
List<TbCfOrderVo> tbCfOrderVoList = new ArrayList<>();
if (!pagingOrderList.isEmpty()) {
for (TbCfOrderEntity order : pagingOrderList) {
TbCfOrderVo orderVo = new TbCfOrderVo();
BeanUtils.copyProperties(order, orderVo);
//获取订单内商品
List<TbCfItemDetailEntity> tbCfItemDetailList = tbCfOrderDao.getOrderItemList(orderVo.getOrderId());
//返回的订单商品详情
List<TbCfCartItemDetailVo> itemDetailVoList = new ArrayList<>();
for (TbCfItemDetailEntity tbCfItemDetail : tbCfItemDetailList) {
TbCfCartItemDetailVo tbCfCartItemDetailVo = new TbCfCartItemDetailVo();
BeanUtils.copyProperties(tbCfItemDetail, tbCfCartItemDetailVo);
itemDetailVoList.add(tbCfCartItemDetailVo);
}
orderVo.setItemDetailList(itemDetailVoList);
tbCfOrderVoList.add(orderVo);
}
orderVo.setItemDetailList(itemDetailVoList);
tbCfOrderVoList.add(orderVo);
}
PageInfo<TbCfOrderVo> returnPageInfo = new PageInfo<>();
BeanUtils.copyProperties(pageInfo, returnPageInfo);
returnPageInfo.setList(tbCfOrderVoList);
result.setData(returnPageInfo);
}
PageInfo<TbCfOrderVo> returnPageInfo = new PageInfo<>();
BeanUtils.copyProperties(pageInfo, returnPageInfo);
returnPageInfo.setList(tbCfOrderVoList);
orderRedisCache.set(KeyConstant.ORDER_DET + tbCfUserInfoVo.getUserId() + orderStatus, returnPageInfo);
result.setData(returnPageInfo);
return result;
}
@Override
public void cancelOrder(String orderId, String userId, String couponId) {
//更改订单状态
......@@ -285,8 +284,8 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
//更改订单状态
changeOrderState(charge.getId(), tbCfOrderVo);
//修改使用的优惠券的状态
if("20".equals(tbCfOrderVo.getOrderStatus())){
tbCfToiCouponDao.changeCoupnStatus(tbCfOrderVo.getUserId(),tbCfOrderVo.getCouponId());
if (tbCfOrderVo.getOrderStatus() == 20) {
tbCfToiCouponDao.changeCoupnStatus(tbCfOrderVo.getUserId(), tbCfOrderVo.getCouponId());
}
//生成流水记录
TbCfFinanceEntity tbCfFinance = createFinance(charge, tbCfOrderVo);
......@@ -320,6 +319,7 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
/**
* 查询物流信息
*
* @param orderId
* @return
* @throws IOException
......@@ -378,7 +378,7 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
public Result getOrderDetailThird(String orderId) {
Result<OrderEntity> result = new Result<>();
OrderEntity order = tbCfOrderDao.getOrder(orderId);
OrderEntity orderEntity=new OrderEntity();
OrderEntity orderEntity = new OrderEntity();
orderEntity.setOrderId(order.getOrderId());
orderEntity.setDeliveryPhone(order.getDeliveryPhone());
orderEntity.setDeliveryName(order.getDeliveryName());
......@@ -390,7 +390,7 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
//返回的订单商品详情
List<ItemEntity> itemList = new ArrayList<>();
for (ItemEntity item : items) {
ItemEntity entity=new ItemEntity();
ItemEntity entity = new ItemEntity();
entity.setItemNum(item.getItemNum());
entity.setItemCategory(item.getItemCategory());
entity.setItemPrice(item.getItemPrice());
......@@ -425,14 +425,14 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
Result<TbCfOrderVo> result = new Result<>();
TbCfOrderEntity tbCfOrderEntity = tbCfOrderDao.queryObject(orderId);
TbCfOrderVo tbCfOrderVo = new TbCfOrderVo();
BeanUtils.copyProperties(tbCfOrderEntity,tbCfOrderVo);
BeanUtils.copyProperties(tbCfOrderEntity, tbCfOrderVo);
//获取订单内商品
List<TbCfItemDetailEntity> tbCfItemDetailList = tbCfOrderDao.getOrderItemList(orderId);
//返回的订单商品详情
List<TbCfCartItemDetailVo> itemDetailVoList = new ArrayList<>();
for (TbCfItemDetailEntity tbCfItemDetail : tbCfItemDetailList) {
TbCfCartItemDetailVo tbCfCartItemDetailVo = new TbCfCartItemDetailVo();
BeanUtils.copyProperties(tbCfItemDetail,tbCfCartItemDetailVo);
BeanUtils.copyProperties(tbCfItemDetail, tbCfCartItemDetailVo);
itemDetailVoList.add(tbCfCartItemDetailVo);
}
tbCfOrderVo.setItemDetailList(itemDetailVoList);
......@@ -515,7 +515,9 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
//使用优惠券
if (StringUtils.isNotBlank(definiteOrder.getCouponId())) {
couponUse(definiteOrder.getUserId(), definiteOrder.getCouponId());
}
//把订单放redis中,过期则取消订单 RedisKeyExpirationListener接收
long timeout = 1800;
String timeoutStr = domainProperties.getProperty("redis.order.expiredTime");
......@@ -540,14 +542,14 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
* @param couponId
*/
private void couponUse(String userId, String couponId) {
// 更新领取记录已领取
int res = tbCfToiCouponDao.updateEnableFlag(userId, couponId, StateConstant.INVALID);
// 更新领取记录已领取
int res = tbCfTakeCouponDao.updateEnableFlag(userId, couponId, StateConstant.INVALID);
if (res < 1) {
logger.error("消费了优惠券,但是在数据表里没有记录!userId:" + userId + ";couponId:" + couponId);
}
/**
* 增加已使用记录
// */
// */
// TbCfCouponUseEntity tbCfCouponUse = new TbCfCouponUseEntity();
// tbCfCouponUse.setUseId(IdUtil.createIdbyUUID());
// tbCfCouponUse.setCouponId(couponId);
......@@ -601,7 +603,7 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
* @throws IOException
* @throws URISyntaxException
*/
private TbCfOrderVo ensureOrder(TbCfUserInfoVo tbCfUserInfoVo, TbCfOrderVo pageOrder, List<TbCfCartItemDetailVo> tbCfCartItemDetailList,String toitableId) {
private TbCfOrderVo ensureOrder(TbCfUserInfoVo tbCfUserInfoVo, TbCfOrderVo pageOrder, List<TbCfCartItemDetailVo> tbCfCartItemDetailList, String toitableId) {
TbCfOrderVo definiteOrder = getGenericOrder(tbCfCartItemDetailList);
/*//获取可以使用的优惠券,后续还有判断此订单是否可以使用
......@@ -623,7 +625,7 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
}*/
//计算实际需要付款
countRealityPay(definiteOrder,toitableId);
countRealityPay(definiteOrder, toitableId);
//获取订单地址
String deliveryAddressId = pageOrder.getDeliveryAddressId();
Validator.NOT_BLANK.validate("address", deliveryAddressId);
......@@ -655,7 +657,7 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
*
* @return
*/
private TbCfOrderVo getGenericOrder(List<TbCfCartItemDetailVo> tbCfCartItemDetailList) {
private TbCfOrderVo getGenericOrder(List<TbCfCartItemDetailVo> tbCfCartItemDetailList) {
TbCfOrderVo genericOrder = new TbCfOrderVo();
genericOrder.setItemDetailList(tbCfCartItemDetailList);
......@@ -664,7 +666,7 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
BigDecimal totalExpressCost = BigDecimal.ZERO;
for (TbCfCartItemDetailVo tbCfCartItemDetailVo : tbCfCartItemDetailList) {
BigDecimal itemNum = BigDecimal.valueOf(tbCfCartItemDetailVo.getItemNum());
BigDecimal itemSourcePrice=tbCfCartItemDetailVo.getItemPrice();
BigDecimal itemSourcePrice = tbCfCartItemDetailVo.getItemPrice();
itemsPrice = itemsPrice.add(itemSourcePrice.multiply(itemNum));
//计算运费
BigDecimal expressCost = getExpressTemplate(tbCfCartItemDetailVo.getItemCategory());
......@@ -719,6 +721,7 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
/**
* 用户计算价格2
*
* @param tbCfUserInfoVo
* @param tbCfCartItemDetailList
* @return
......@@ -728,7 +731,7 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
* @throws InterruptedException
* @throws TimeoutException
*/
private TbCfOrderVo getOrderData(TbCfUserInfoVo tbCfUserInfoVo, List<TbCfCartItemDetailVo> tbCfCartItemDetailList,String toitableId) throws IOException, URISyntaxException, ExecutionException, InterruptedException, TimeoutException {
private TbCfOrderVo getOrderData(TbCfUserInfoVo tbCfUserInfoVo, List<TbCfCartItemDetailVo> tbCfCartItemDetailList, String toitableId) throws IOException, URISyntaxException, ExecutionException, InterruptedException, TimeoutException {
TbCfOrderVo tbCfOrder = getGenericOrder(tbCfCartItemDetailList);
/* //获取可以使用的优惠券,后续还有判断此订单是否可以使用
List<TbCfCouponEntity> tbCfCouponList = tbCfCouponDao.queryUserAvailableCoupon(tbCfUserInfoVo.getUserId(), new Date());
......@@ -743,7 +746,7 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
}*/
//计算实际需要付款
countRealityPay(tbCfOrder,toitableId);
countRealityPay(tbCfOrder, toitableId);
tbCfOrder.setUserId(tbCfUserInfoVo.getUserId());
tbCfOrder.setUserName(tbCfUserInfoVo.getNick());
......@@ -756,10 +759,10 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
*
* @param tbCfOrder
*/
private void countRealityPay(TbCfOrderVo tbCfOrder,String toitableId) {
if(toitableId!=null){
private void countRealityPay(TbCfOrderVo tbCfOrder, String toitableId) {
if (toitableId != null) {
TbCfCouponEntity couponEntity = tbCfOrderDao.queryCouponPrice(toitableId);
if(couponEntity!=null){
if (couponEntity != null) {
tbCfOrder.setCouponPrice(couponEntity.getDeductAmount());
tbCfOrder.setCouponId(couponEntity.getCouponId());
}
......@@ -777,7 +780,7 @@ public class TbCfOrderServiceImpl implements TbCfOrderService {
tbCfOrder.setRealityPay(tbCfOrder.getTotalPrice());
}
removeRedisCache(tbCfOrder);
orderRedisCache.set(KeyConstant.ORDER_DET + tbCfOrder.getOrderId(),tbCfOrder);
orderRedisCache.set(KeyConstant.ORDER_DET + tbCfOrder.getOrderId(), tbCfOrder);
}
/**
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论