diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/user/MemberUserMapper.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/user/MemberUserMapper.java index 22f81756..a882e1fd 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/user/MemberUserMapper.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/user/MemberUserMapper.java @@ -120,4 +120,9 @@ public interface MemberUserMapper extends BaseMapperX { @Update("update user_face set phone = #{phone} ,name = #{name} where sys_user_id = #{userId}") void updateFace(@Param("userId") Long userId, @Param("phone")String phone,@Param("name")String name); + + @Select("select * from member_user where id = #{userId} for update") + MemberUserDO selectByIdForUpdate(@Param("userId") Long userId); + + } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/amount/CashRechargeServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/amount/CashRechargeServiceImpl.java index aa5a6669..09f186aa 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/amount/CashRechargeServiceImpl.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/amount/CashRechargeServiceImpl.java @@ -2,13 +2,11 @@ package cn.iocoder.yudao.module.member.service.amount; import cn.hutool.core.collection.CollectionUtil; -import cn.hutool.core.math.Money; import cn.hutool.core.util.ObjectUtil; import cn.hutool.json.JSONUtil; import cn.iocoder.yudao.module.member.controller.app.user.vo.AppUserInfoCardVO; import cn.iocoder.yudao.module.member.dal.dataobject.card.CardDO; import cn.iocoder.yudao.module.member.dal.dataobject.group.MemberGroupDO; -import cn.iocoder.yudao.module.member.dal.dataobject.money.MoneyDO; import cn.iocoder.yudao.module.member.dal.dataobject.order.DishOrderDO; import cn.iocoder.yudao.module.member.dal.dataobject.refund.RefundDO; import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO; @@ -78,7 +76,7 @@ public class CashRechargeServiceImpl implements CashRechargeService { String name; synchronized (getUserLock(userId)) { - MemberUserDO memberUserDO = userMapper.selectById(userId); + MemberUserDO memberUserDO = userMapper.selectByIdForUpdate(userId); //金额变动 BigDecimal oldMoney = memberUserDO.getMoney(); newMoney = oldMoney.add(money);