Merge branch 'master-jdk17' of https://gitee.com/zhijiantianya/ruoyi-vue-pro into develop

# Conflicts:
#	yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/framework/sms/core/client/impl/SmsClientTests.java
This commit is contained in:
YunaiV
2024-08-31 08:53:45 +08:00
27 changed files with 102 additions and 50 deletions

View File

@@ -43,7 +43,8 @@ public interface AfterSaleConvert {
@Mapping(source = "afterSale.orderId", target = "merchantOrderId"),
@Mapping(source = "afterSale.id", target = "merchantRefundId"),
@Mapping(source = "afterSale.applyReason", target = "reason"),
@Mapping(source = "afterSale.refundPrice", target = "price")
@Mapping(source = "afterSale.refundPrice", target = "price"),
@Mapping(source = "orderProperties.payAppKey", target = "appKey")
})
PayRefundCreateReqDTO convert(String userIp, AfterSaleDO afterSale,
TradeOrderProperties orderProperties);

View File

@@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.trade.dal.mysql.aftersale;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.module.trade.dal.dataobject.aftersale.AfterSaleLogDO;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@@ -10,7 +11,9 @@ import java.util.List;
public interface AfterSaleLogMapper extends BaseMapperX<AfterSaleLogDO> {
default List<AfterSaleLogDO> selectListByAfterSaleId(Long afterSaleId) {
return selectList(AfterSaleLogDO::getAfterSaleId, afterSaleId);
return selectList(new LambdaQueryWrapper<AfterSaleLogDO>()
.eq(AfterSaleLogDO::getAfterSaleId, afterSaleId)
.orderByDesc(AfterSaleLogDO::getCreateTime));
}
}

View File

@@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.trade.dal.mysql.order;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderLogDO;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@@ -10,7 +11,9 @@ import java.util.List;
public interface TradeOrderLogMapper extends BaseMapperX<TradeOrderLogDO> {
default List<TradeOrderLogDO> selectListByOrderId(Long orderId) {
return selectList(TradeOrderLogDO::getOrderId, orderId);
return selectList(new LambdaQueryWrapper<TradeOrderLogDO>()
.eq(TradeOrderLogDO::getOrderId, orderId)
.orderByDesc(TradeOrderLogDO::getCreateTime));
}
}

View File

@@ -13,7 +13,7 @@ public class ExpressTrackQueryReqDTO {
/**
* 快递公司编码
*
* <p>
* 对应 {@link DeliveryExpressDO#getCode()}
*/
private String expressCode;
@@ -28,4 +28,9 @@ public class ExpressTrackQueryReqDTO {
*/
private String phone;
/**
* 自定义名称(顺丰专用)
*/
private String customerName;
}

View File

@@ -29,4 +29,10 @@ public class KdNiaoExpressQueryReqDTO {
@JsonProperty("OrderCode")
private String orderNo;
/**
* 自定义名称(顺丰专用)
*/
@JsonProperty("CustomerName")
private String customerName;
}

View File

@@ -3,6 +3,8 @@ package cn.iocoder.yudao.module.trade.framework.delivery.core.client.impl.kdniao
import cn.hutool.core.codec.Base64;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.net.URLEncodeUtil;
import cn.hutool.core.util.ObjUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.digest.DigestUtil;
import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
import cn.iocoder.yudao.module.trade.framework.delivery.config.TradeExpressProperties;
@@ -60,6 +62,11 @@ public class KdNiaoExpressClient implements ExpressClient {
// 发起请求
KdNiaoExpressQueryReqDTO requestDTO = INSTANCE.convert(reqDTO)
.setExpressCode(reqDTO.getExpressCode().toUpperCase());
if (ObjUtil.equal(requestDTO.getExpressCode(), "SF")
&& StrUtil.isBlank(reqDTO.getCustomerName())
&& StrUtil.length(reqDTO.getPhone()) >= 4) {
requestDTO.setCustomerName(StrUtil.subSufByLength(reqDTO.getPhone(), 4));
}
KdNiaoExpressQueryRespDTO respDTO = httpRequest(REAL_TIME_QUERY_URL, REAL_TIME_FREE_REQ_TYPE,
requestDTO, KdNiaoExpressQueryRespDTO.class);

View File

@@ -206,7 +206,7 @@ public class TradeOrderQueryServiceImpl implements TradeOrderQueryService {
/**
* 查询物流轨迹
*
* <p>
* 缓存的目的:考虑及时性要求不高,但是每次调用需要钱
*
* @param code 快递公司编码
@@ -217,9 +217,8 @@ public class TradeOrderQueryServiceImpl implements TradeOrderQueryService {
@Cacheable(cacheNames = RedisKeyConstants.EXPRESS_TRACK, key = "#code + '-' + #logisticsNo + '-' + #receiverMobile",
condition = "#result != null && #result.length() > 0")
public List<ExpressTrackRespDTO> getExpressTrackList(String code, String logisticsNo, String receiverMobile) {
return expressClientFactory.getDefaultExpressClient().getExpressTrackList(
new ExpressTrackQueryReqDTO().setExpressCode(code).setLogisticsNo(logisticsNo)
.setPhone(receiverMobile));
return expressClientFactory.getDefaultExpressClient().getExpressTrackList(new ExpressTrackQueryReqDTO()
.setExpressCode(code).setLogisticsNo(logisticsNo).setPhone(receiverMobile));
}
// =================== Order Item ===================

View File

@@ -78,12 +78,10 @@ public class TradeMemberPointOrderHandler implements TradeOrderHandler {
@Override
public void afterCancelOrderItem(TradeOrderDO order, TradeOrderItemDO orderItem) {
// 扣减(回滚)积分(订单赠送)
reducePoint(order.getUserId(), orderItem.getGivePoint(), MemberPointBizTypeEnum.ORDER_GIVE_CANCEL_ITEM,
orderItem.getId());
// 增加(回滚)积分(订单抵扣)
addPoint(order.getUserId(), orderItem.getUsePoint(), MemberPointBizTypeEnum.ORDER_USE_CANCEL_ITEM,
orderItem.getId());
addPoint(order.getUserId(), orderItem.getUsePoint(), MemberPointBizTypeEnum.ORDER_USE_CANCEL_ITEM, orderItem.getId());
// 扣减(回滚)积分(订单赠送)
reducePoint(order.getUserId(), orderItem.getGivePoint(), MemberPointBizTypeEnum.ORDER_GIVE_CANCEL_ITEM, orderItem.getId());
// 扣减(回滚)用户经验
AfterSaleDO afterSale = afterSaleService.getAfterSale(orderItem.getAfterSaleId());