diff --git a/ruoyi-xq/src/main/java/com/ruoyi/xq/dto/app/user/vo/HomeUserListVo.java b/ruoyi-xq/src/main/java/com/ruoyi/xq/dto/app/user/vo/HomeUserListVo.java index 95d3830..0da2759 100644 --- a/ruoyi-xq/src/main/java/com/ruoyi/xq/dto/app/user/vo/HomeUserListVo.java +++ b/ruoyi-xq/src/main/java/com/ruoyi/xq/dto/app/user/vo/HomeUserListVo.java @@ -7,6 +7,10 @@ import java.time.LocalDate; @Data public class HomeUserListVo { + @Schema(description = "是否开通VIP") + private Boolean openVip = false; + @Schema(description = "已开通的VIP类型") + private Integer vipType; @Schema(description = "用户ID") private Long userId; @Schema(description = "用户头像") diff --git a/ruoyi-xq/src/main/java/com/ruoyi/xq/mapper/UserVipMapper.java b/ruoyi-xq/src/main/java/com/ruoyi/xq/mapper/UserVipMapper.java index 8a8fe76..0e03762 100644 --- a/ruoyi-xq/src/main/java/com/ruoyi/xq/mapper/UserVipMapper.java +++ b/ruoyi-xq/src/main/java/com/ruoyi/xq/mapper/UserVipMapper.java @@ -6,6 +6,8 @@ import com.ruoyi.xq.domain.UserVip; import com.ruoyi.xq.dto.admin.user.UserVipAdminVo; import org.apache.ibatis.annotations.Param; +import java.util.List; + /** * VIP用户Mapper接口 * @@ -15,4 +17,6 @@ import org.apache.ibatis.annotations.Param; public interface UserVipMapper extends BaseMapper { Page pageAdmin(@Param("build") Page build, @Param("bo") UserVipAdminVo bo); + + List listUserVipMaster(@Param("userIdList") List userIdList); } diff --git a/ruoyi-xq/src/main/java/com/ruoyi/xq/service/UserVipService.java b/ruoyi-xq/src/main/java/com/ruoyi/xq/service/UserVipService.java index da57a17..d460a49 100644 --- a/ruoyi-xq/src/main/java/com/ruoyi/xq/service/UserVipService.java +++ b/ruoyi-xq/src/main/java/com/ruoyi/xq/service/UserVipService.java @@ -8,6 +8,8 @@ import com.ruoyi.xq.domain.UserVip; import com.ruoyi.xq.dto.admin.user.UserVipAdminVo; import com.ruoyi.xq.dto.admin.user.req.AddVipReq; +import java.util.List; + /** * VIP用户Service接口 * @@ -22,6 +24,8 @@ public interface UserVipService extends IService { UserVip getByUserVipMaster(Long userId); + List listUserVipMaster(List userIdArray); + void updateVipOrderAdmin(AddVipReq bo, User user); void incsVip(User user, Integer vipType, Integer vipMonth); diff --git a/ruoyi-xq/src/main/java/com/ruoyi/xq/service/impl/UserServiceImpl.java b/ruoyi-xq/src/main/java/com/ruoyi/xq/service/impl/UserServiceImpl.java index a2ea838..696d538 100644 --- a/ruoyi-xq/src/main/java/com/ruoyi/xq/service/impl/UserServiceImpl.java +++ b/ruoyi-xq/src/main/java/com/ruoyi/xq/service/impl/UserServiceImpl.java @@ -13,6 +13,7 @@ import com.ruoyi.common.utils.BeanConvertUtil; import com.ruoyi.xq.domain.User; import com.ruoyi.xq.domain.UserInfo; import com.ruoyi.xq.domain.UserPictures; +import com.ruoyi.xq.domain.UserVip; import com.ruoyi.xq.dto.admin.user.UserAdminVo; import com.ruoyi.xq.dto.admin.user.req.UpdateMobileAdminReq; import com.ruoyi.xq.dto.app.user.HomePageReq; @@ -25,6 +26,7 @@ import com.ruoyi.xq.mapper.UserMapper; import com.ruoyi.xq.service.UserInfoService; import com.ruoyi.xq.service.UserPicturesService; import com.ruoyi.xq.service.UserService; +import com.ruoyi.xq.service.UserVipService; import com.ruoyi.xq.util.BirthdayUtil; import com.ruoyi.yunxin.client.ImUserRefClient; import com.ruoyi.yunxin.req.UpdateUinfoReq; @@ -35,7 +37,10 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.ArrayList; import java.util.List; +import java.util.Map; +import java.util.function.Function; import java.util.stream.Collectors; /** @@ -55,6 +60,8 @@ public class UserServiceImpl extends ServiceImpl implements Use private SystemConfigManager systemConfigManager; @Autowired private UserPicturesService userPicturesService; + @Autowired + private UserVipService userVipService; @Override public User getByUsername(String username) { @@ -167,9 +174,20 @@ public class UserServiceImpl extends ServiceImpl implements Use public Page homePage(HomePageReq params) { Page page = baseMapper.homePageApp(params.build(), params); List records = page.getRecords(); + List userIdArray = new ArrayList<>(); for (HomeUserListVo record : records) { + userIdArray.add(record.getUserId()); record.setBirthdayStr(BirthdayUtil.getMinBirthday(record.getBirthday())); } + List vips = userVipService.listUserVipMaster(userIdArray); + Map userVipMap = vips.stream().collect(Collectors.toMap(UserVip::getUserId, Function.identity())); + for (HomeUserListVo record : records) { + UserVip userVip = userVipMap.get(record.getUserId()); + if(userVip != null){ + record.setOpenVip(true); + record.setVipType(userVip.getVipType()); + } + } return page; } } diff --git a/ruoyi-xq/src/main/java/com/ruoyi/xq/service/impl/UserVipServiceImpl.java b/ruoyi-xq/src/main/java/com/ruoyi/xq/service/impl/UserVipServiceImpl.java index c3f5f4a..879417e 100644 --- a/ruoyi-xq/src/main/java/com/ruoyi/xq/service/impl/UserVipServiceImpl.java +++ b/ruoyi-xq/src/main/java/com/ruoyi/xq/service/impl/UserVipServiceImpl.java @@ -1,6 +1,7 @@ package com.ruoyi.xq.service.impl; import cn.hutool.extra.spring.SpringUtil; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -27,6 +28,7 @@ import org.springframework.transaction.annotation.Transactional; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.LocalTime; +import java.util.ArrayList; import java.util.Comparator; import java.util.List; @@ -69,6 +71,14 @@ public class UserVipServiceImpl extends ServiceImpl imple return userVipList.stream().max(Comparator.comparing(UserVip::getVipType)).orElse(null); } + @Override + public List listUserVipMaster(List userIdArray){ + if(CollectionUtils.isEmpty(userIdArray)){ + return new ArrayList<>(); + } + return baseMapper.listUserVipMaster(userIdArray); + } + /** * 后台管理强制覆盖VIP * @param bo diff --git a/ruoyi-xq/src/main/resources/mapper/xq/UserVipMapper.xml b/ruoyi-xq/src/main/resources/mapper/xq/UserVipMapper.xml index 979c692..0d3afe2 100644 --- a/ruoyi-xq/src/main/resources/mapper/xq/UserVipMapper.xml +++ b/ruoyi-xq/src/main/resources/mapper/xq/UserVipMapper.xml @@ -21,6 +21,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" order by id desc +