bugfix 余额支付退款时空指针异常

This commit is contained in:
Lemon
2026-04-21 10:36:55 +08:00
parent b2ec3fb29c
commit f87f2f5176
3 changed files with 22 additions and 1 deletions

View File

@@ -38,6 +38,8 @@ public interface MemberWalletInfoMapper {
*/
MemberWalletInfo selectByMemberId(@Param("memberId") String memberId, @Param("merchantId") String merchantId);
List<MemberWalletInfo> selectByMemberIdList(@Param("memberId") String memberId, @Param("merchantId") String merchantId);
List<MemberWalletInfo> selectByMemberWalletList(@Param("memberId") String memberId);
MemberWalletInfo selectByWalletCode(@Param("walletCode") String walletCode);

View File

@@ -46,7 +46,15 @@ public class MemberWalletInfoServiceImpl implements MemberWalletInfoService {
@Override
public MemberWalletInfo selectByMemberId(String memberId, String merchantId) {
return memberWalletInfoMapper.selectByMemberId(memberId, merchantId);
List<MemberWalletInfo> list = memberWalletInfoMapper.selectByMemberIdList(memberId, merchantId);
if (CollectionUtils.isEmpty(list)) {
return null;
}
// 优先返回 merchantId 不为空的记录,避免脏数据干扰
return list.stream()
.filter(w -> w.getMerchantId() != null)
.findFirst()
.orElse(list.get(0));
}
@Override

View File

@@ -528,6 +528,17 @@
</select>
<select id="selectByMemberIdList" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from member_wallet_info
where del_flag = '0'
and member_id = #{memberId,jdbcType=INTEGER}
<if test="merchantId != null">
and merchant_id = #{merchantId,jdbcType=VARCHAR}
</if>
</select>
<select id="selectByMemberWalletList" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />