init
This commit is contained in:
@@ -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 = "用户头像")
|
||||
|
||||
@@ -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<UserVip> {
|
||||
|
||||
Page<UserVipAdminVo> pageAdmin(@Param("build") Page<Object> build, @Param("bo") UserVipAdminVo bo);
|
||||
|
||||
List<UserVip> listUserVipMaster(@Param("userIdList") List<Long> userIdList);
|
||||
}
|
||||
|
||||
@@ -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> {
|
||||
|
||||
UserVip getByUserVipMaster(Long userId);
|
||||
|
||||
List<UserVip> listUserVipMaster(List<Long> userIdArray);
|
||||
|
||||
void updateVipOrderAdmin(AddVipReq bo, User user);
|
||||
|
||||
void incsVip(User user, Integer vipType, Integer vipMonth);
|
||||
|
||||
@@ -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<UserMapper,User> 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<UserMapper,User> implements Use
|
||||
public Page<HomeUserListVo> homePage(HomePageReq params) {
|
||||
Page<HomeUserListVo> page = baseMapper.homePageApp(params.build(), params);
|
||||
List<HomeUserListVo> records = page.getRecords();
|
||||
List<Long> userIdArray = new ArrayList<>();
|
||||
for (HomeUserListVo record : records) {
|
||||
userIdArray.add(record.getUserId());
|
||||
record.setBirthdayStr(BirthdayUtil.getMinBirthday(record.getBirthday()));
|
||||
}
|
||||
List<UserVip> vips = userVipService.listUserVipMaster(userIdArray);
|
||||
Map<Long, UserVip> 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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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<UserVipMapper,UserVip> imple
|
||||
return userVipList.stream().max(Comparator.comparing(UserVip::getVipType)).orElse(null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<UserVip> listUserVipMaster(List<Long> userIdArray){
|
||||
if(CollectionUtils.isEmpty(userIdArray)){
|
||||
return new ArrayList<>();
|
||||
}
|
||||
return baseMapper.listUserVipMaster(userIdArray);
|
||||
}
|
||||
|
||||
/**
|
||||
* 后台管理强制覆盖VIP
|
||||
* @param bo
|
||||
|
||||
@@ -21,6 +21,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
</where>
|
||||
order by id desc
|
||||
</select>
|
||||
<select id="listUserVipMaster" resultType="com.ruoyi.xq.domain.UserVip">
|
||||
select t1.user_id, max(t1.vip_type) as vip_type
|
||||
from xq_user_vip t1
|
||||
where
|
||||
and t1.vip_status = 1
|
||||
and t1.vip_timeout <= now()
|
||||
and t1.user_id in
|
||||
<foreach collection="userIdList" item="value" open="(" close=")" separator="," >
|
||||
#{value}
|
||||
</foreach>
|
||||
group by t1.user_id
|
||||
</select>
|
||||
|
||||
|
||||
</mapper>
|
||||
|
||||
Reference in New Issue
Block a user