diff --git a/ruoyi-admin/src/main/java/com/ruoyi/member/mapper/MemberPointsMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/member/mapper/MemberPointsMapper.java index 7acec56..1111e95 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/member/mapper/MemberPointsMapper.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/member/mapper/MemberPointsMapper.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.member.domain.MemberPoints; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; /** * 博主积分变动明细Mapper接口 @@ -24,5 +25,5 @@ public interface MemberPointsMapper extends BaseMapper { * @author PQZ * @date 15:25 2025/3/29 **/ - IPage queryListPage(Long userId, Page page); + IPage queryListPage(@Param("userId") Long userId, Page page); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/member/service/IMemberCardService.java b/ruoyi-admin/src/main/java/com/ruoyi/member/service/IMemberCardService.java index 799e607..a33ecac 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/member/service/IMemberCardService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/member/service/IMemberCardService.java @@ -62,4 +62,16 @@ public interface IMemberCardService extends IService { **/ Integer getCardReport(Long userId, String userType); + + /** + * + * @author PQZ + * @date 14:23 2025/4/17 + * @param userId 用户id + * @param rightsCode 权益编码 + * @param deplete 扣的值 + * @return void + **/ + void dealMemberRights(Long userId,String rightsCode,Integer deplete) throws Exception; + } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/member/service/IMemberRightsService.java b/ruoyi-admin/src/main/java/com/ruoyi/member/service/IMemberRightsService.java index 6c7eadc..2c6c4ed 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/member/service/IMemberRightsService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/member/service/IMemberRightsService.java @@ -33,4 +33,16 @@ public interface IMemberRightsService extends IService { * @date 17:15 2025/3/31 **/ Integer getReport(Long userId, String carId); + + /** + * 根据用户id,卡id,权益编码,更新剩余值 + * + * @param userId 用户id + * @param cardId 卡id + * @param rightsCode 权益编码 + * @param deplete 消耗值 + * @author PQZ + * @date 14:32 2025/4/17 + **/ + void dealMemberRights(Long userId, String cardId, String rightsCode, Integer deplete) throws Exception; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/member/service/impl/MemberCardServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/member/service/impl/MemberCardServiceImpl.java index 1d02f3f..7b040aa 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/member/service/impl/MemberCardServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/member/service/impl/MemberCardServiceImpl.java @@ -23,6 +23,7 @@ import com.ruoyi.member.vo.ViewRightsVO; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.Calendar; @@ -221,6 +222,25 @@ public class MemberCardServiceImpl extends ServiceImpl memberCards = getMemberCards(userId, userType); + if (memberCards.isEmpty()) { + return 0; + } else { + return rightsService.getReport(memberCards.get(0).getUserId(), memberCards.get(0).getCardId()); + } + } + + /** + * 查询当前登录用户有无正在服役的会员卡 + * + * @param userId 用户id + * @param userType 用户类型 + * @return java.util.List + * @author PQZ + * @date 14:28 2025/4/17 + **/ + private List getMemberCards(Long userId, String userType) { //查询当前用户在当前时间有无正在服役的会员卡 Date time = new Date(); LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); @@ -231,12 +251,25 @@ public class MemberCardServiceImpl extends ServiceImpl memberCards = list(lambdaQueryWrapper); - if (memberCards.isEmpty()) { - return 0; - } else { - return rightsService.getReport(memberCards.get(0).getUserId(), memberCards.get(0).getCardId()); + return list(lambdaQueryWrapper); + } + + /** + * @param userId 用户id + * @param rightsCode 权益编码 + * @param deplete 扣的值 + * @author PQZ + * @date 14:23 2025/4/17 + **/ + @Override + @Transactional(rollbackFor = Exception.class) + public void dealMemberRights(Long userId, String rightsCode, Integer deplete) throws Exception { + //查询当前用户有无正在服役的通告主卡 + List memberCards = getMemberCards(userId, "01"); + if (memberCards.isEmpty()){ + throw new Exception("无正在服役的会员卡"); } + rightsService.dealMemberRights(userId,memberCards.get(0).getCardId(),rightsCode,deplete); } /** diff --git a/ruoyi-admin/src/main/java/com/ruoyi/member/service/impl/MemberRightsServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/member/service/impl/MemberRightsServiceImpl.java index cf9c0ff..d78395d 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/member/service/impl/MemberRightsServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/member/service/impl/MemberRightsServiceImpl.java @@ -1,6 +1,7 @@ package com.ruoyi.member.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.base.vo.CardRightsVO; import com.ruoyi.common.config.DlRightsConfig; @@ -80,4 +81,30 @@ public class MemberRightsServiceImpl extends ServiceImpl lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(MemberRights::getUserId,userId) + .eq(MemberRights::getCardId,cardId) + .eq(MemberRights::getRightsCode,rightsCode); + try{ + MemberRights rights = getOne(lambdaQueryWrapper); + rights.setRemaining(rights.getRemaining()-deplete); + updateById(rights); + }catch (Exception e){ + throw new Exception("根据用户id,卡id,权益编码,查询权益出现错误"); + } + + } } diff --git a/ruoyi-admin/src/main/resources/mapper/member/MemberPointsMapper.xml b/ruoyi-admin/src/main/resources/mapper/member/MemberPointsMapper.xml index 02b2dcd..d078bcc 100644 --- a/ruoyi-admin/src/main/resources/mapper/member/MemberPointsMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/member/MemberPointsMapper.xml @@ -27,7 +27,8 @@ \ No newline at end of file