|
|
@@ -1,6 +1,8 @@
|
|
|
package com.ylx.massage.service.impl;
|
|
|
|
|
|
+import cn.hutool.core.bean.BeanUtil;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
+import cn.hutool.core.util.StrUtil;
|
|
|
import cn.hutool.json.JSONUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
@@ -178,7 +180,7 @@ public class ProductOrderInfoServiceImpl extends ServiceImpl<ProductOrderInfoMap
|
|
|
/**
|
|
|
* 构建订单商品明细
|
|
|
*
|
|
|
- * @param request 订单创建请求
|
|
|
+ * @param request 订单创建请求
|
|
|
* @param orderInfo 订单主表信息
|
|
|
* @return ProductOrderItem 订单商品明细
|
|
|
*/
|
|
|
@@ -206,6 +208,7 @@ public class ProductOrderInfoServiceImpl extends ServiceImpl<ProductOrderInfoMap
|
|
|
|
|
|
/**
|
|
|
* 支付订单
|
|
|
+ *
|
|
|
* @param productOrderPayRequest 订单支付请求
|
|
|
* @return R 订单支付结果
|
|
|
* @throws Exception
|
|
|
@@ -235,7 +238,7 @@ public class ProductOrderInfoServiceImpl extends ServiceImpl<ProductOrderInfoMap
|
|
|
//微信支付
|
|
|
R resp = rechargeService.getPay(orderInfo.getOrderNo(), orderInfo.getTotalAmount(), orderInfo.getOpenId(), BillTypeEnum.WX_PAY.getInfo(), BillTypeEnum.WX_PAY.getCode().toString());
|
|
|
return resp;
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
//余额支付
|
|
|
TWxUser user = wxUserService.getByOpenId(orderInfo.getOpenId());
|
|
|
if (null == user) {
|
|
|
@@ -278,7 +281,7 @@ public class ProductOrderInfoServiceImpl extends ServiceImpl<ProductOrderInfoMap
|
|
|
if (orderInfo.getPayType().equals(MassageConstants.INTEGER_TWO)) {
|
|
|
tConsumptionLog.setBillType(BillTypeEnum.BALANCE_PAYMENT.getCode());
|
|
|
tConsumptionLog.setNote("余额支付");
|
|
|
- } else if(orderInfo.getPayType().equals(MassageConstants.INTEGER_ONE)){
|
|
|
+ } else if (orderInfo.getPayType().equals(MassageConstants.INTEGER_ONE)) {
|
|
|
tConsumptionLog.setBillType(BillTypeEnum.WX_PAY.getCode());
|
|
|
tConsumptionLog.setNote("微信支付");
|
|
|
}
|
|
|
@@ -297,7 +300,7 @@ public class ProductOrderInfoServiceImpl extends ServiceImpl<ProductOrderInfoMap
|
|
|
/**
|
|
|
* 分页查询用户商品订单列表
|
|
|
*
|
|
|
- * @param page 分页参数
|
|
|
+ * @param page 分页参数
|
|
|
* @param openId 用户openId
|
|
|
* @return Page<ProductOrderListVo> 订单分页列表
|
|
|
*/
|
|
|
@@ -322,7 +325,7 @@ public class ProductOrderInfoServiceImpl extends ServiceImpl<ProductOrderInfoMap
|
|
|
* 查询订单详情
|
|
|
*
|
|
|
* @param orderNo 订单编号
|
|
|
- * @param openId 用户openId
|
|
|
+ * @param openId 用户openId
|
|
|
* @return ProductOrderDetailVo 订单详情
|
|
|
*/
|
|
|
@Override
|
|
|
@@ -406,8 +409,8 @@ public class ProductOrderInfoServiceImpl extends ServiceImpl<ProductOrderInfoMap
|
|
|
/**
|
|
|
* 释放库存并更新订单状态(事务内执行)
|
|
|
*
|
|
|
- * @param order 订单信息
|
|
|
- * @param orderItem 订单商品明细
|
|
|
+ * @param order 订单信息
|
|
|
+ * @param orderItem 订单商品明细
|
|
|
* @param cancelReason 取消原因
|
|
|
*/
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
@@ -491,13 +494,13 @@ public class ProductOrderInfoServiceImpl extends ServiceImpl<ProductOrderInfoMap
|
|
|
|
|
|
// 1. 订单基础信息
|
|
|
OrderBaseInfoVo orderBaseInfo = this.productOrderInfoMapper.getOrderBaseInfoById(orderId);
|
|
|
- if(ObjectUtil.isNull(orderBaseInfo)){
|
|
|
+ if (ObjectUtil.isNull(orderBaseInfo)) {
|
|
|
throw new ServiceException("订单不存在");
|
|
|
}
|
|
|
vo.setOrderBaseInfo(orderBaseInfo);
|
|
|
|
|
|
// 2. 收货人信息
|
|
|
- ReceiverInfoVo receiverInfo = getReceiverInfo(orderBaseInfo.getAddressId());
|
|
|
+ ReceiverInfoVo receiverInfo = getReceiverInfo(orderBaseInfo);
|
|
|
vo.setReceiverInfo(receiverInfo);
|
|
|
|
|
|
// 3. 商品列表
|
|
|
@@ -520,10 +523,8 @@ public class ProductOrderInfoServiceImpl extends ServiceImpl<ProductOrderInfoMap
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public void editLogisticsNo(ProductOrderEditLogisticsNo dto) {
|
|
|
|
|
|
- ProductOrderInfo productOrderInfo = this.productOrderInfoMapper.selectById(dto.getOrderId());
|
|
|
- if(ObjectUtil.isNull(productOrderInfo)){
|
|
|
- throw new ServiceException("订单不存在");
|
|
|
- }
|
|
|
+ // 查询并校验订单(公共方法提取)
|
|
|
+ ProductOrderInfo productOrderInfo = getAndCheckOrder(dto.getOrderId(), null);
|
|
|
|
|
|
productOrderInfo.setLogisticsNo(dto.getLogisticsNo());
|
|
|
productOrderInfo.setUpdateTime(LocalDateTime.now());
|
|
|
@@ -532,6 +533,19 @@ public class ProductOrderInfoServiceImpl extends ServiceImpl<ProductOrderInfoMap
|
|
|
this.productOrderInfoMapper.updateById(productOrderInfo);
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public void editConsigneesInfo(ProductOrderOperateDTO dto) {
|
|
|
+
|
|
|
+ // 查询并校验订单(公共方法提取)
|
|
|
+ ProductOrderInfo productOrderInfo = getAndCheckOrder(dto.getOrderId(), null);
|
|
|
+
|
|
|
+ BeanUtil.copyProperties(dto, productOrderInfo);
|
|
|
+ productOrderInfo.setUpdateTime(LocalDateTime.now());
|
|
|
+
|
|
|
+ this.productOrderInfoMapper.updateById(productOrderInfo);
|
|
|
+ }
|
|
|
+
|
|
|
private WxLoginUser getCurrentWxLoginUser() {
|
|
|
WxLoginUser loginUser = SecurityUtils.getWxLoginUser();
|
|
|
if (ObjectUtil.isNull(loginUser)) {
|
|
|
@@ -542,8 +556,11 @@ public class ProductOrderInfoServiceImpl extends ServiceImpl<ProductOrderInfoMap
|
|
|
|
|
|
private ProductOrderInfo getAndCheckOrder(Long orderId, String openId) {
|
|
|
LambdaQueryWrapper<ProductOrderInfo> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
- queryWrapper.eq(ProductOrderInfo::getId, orderId)
|
|
|
- .eq(ProductOrderInfo::getOpenId, openId);
|
|
|
+ queryWrapper.eq(ProductOrderInfo::getId, orderId);
|
|
|
+
|
|
|
+ if (StrUtil.isNotBlank(openId)) {
|
|
|
+ queryWrapper.eq(ProductOrderInfo::getOpenId, openId);
|
|
|
+ }
|
|
|
|
|
|
// 订单是单条,直接用 selectOne 更合理
|
|
|
ProductOrderInfo orderInfo = this.productOrderInfoMapper.selectOne(queryWrapper);
|
|
|
@@ -553,16 +570,11 @@ public class ProductOrderInfoServiceImpl extends ServiceImpl<ProductOrderInfoMap
|
|
|
return orderInfo;
|
|
|
}
|
|
|
|
|
|
- private ReceiverInfoVo getReceiverInfo(Long addressId) {
|
|
|
+ private ReceiverInfoVo getReceiverInfo(OrderBaseInfoVo vo) {
|
|
|
ReceiverInfoVo receiverInfo = new ReceiverInfoVo();
|
|
|
- if (ObjectUtil.isNotNull(addressId)) {
|
|
|
- TAddress address = this.addressService.getById(addressId);
|
|
|
- if (ObjectUtil.isNotNull(address)) {
|
|
|
- receiverInfo.setReceiverName(address.getUserName());
|
|
|
- receiverInfo.setReceiverPhone(address.getPhone());
|
|
|
- receiverInfo.setFullAddress(address.getAddress());
|
|
|
- }
|
|
|
- }
|
|
|
+ receiverInfo.setReceiverName(vo.getUserName());
|
|
|
+ receiverInfo.setReceiverPhone(vo.getUserPhone());
|
|
|
+ receiverInfo.setFullAddress(vo.getUserAddress());
|
|
|
return receiverInfo;
|
|
|
}
|
|
|
|