init
This commit is contained in:
@@ -7,6 +7,10 @@ import java.time.LocalDate;
|
|||||||
|
|
||||||
@Data
|
@Data
|
||||||
public class HomeUserListVo {
|
public class HomeUserListVo {
|
||||||
|
@Schema(description = "是否开通VIP")
|
||||||
|
private Boolean openVip = false;
|
||||||
|
@Schema(description = "已开通的VIP类型")
|
||||||
|
private Integer vipType;
|
||||||
@Schema(description = "用户ID")
|
@Schema(description = "用户ID")
|
||||||
private Long userId;
|
private Long userId;
|
||||||
@Schema(description = "用户头像")
|
@Schema(description = "用户头像")
|
||||||
|
|||||||
@@ -6,6 +6,8 @@ import com.ruoyi.xq.domain.UserVip;
|
|||||||
import com.ruoyi.xq.dto.admin.user.UserVipAdminVo;
|
import com.ruoyi.xq.dto.admin.user.UserVipAdminVo;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* VIP用户Mapper接口
|
* VIP用户Mapper接口
|
||||||
*
|
*
|
||||||
@@ -15,4 +17,6 @@ import org.apache.ibatis.annotations.Param;
|
|||||||
public interface UserVipMapper extends BaseMapper<UserVip> {
|
public interface UserVipMapper extends BaseMapper<UserVip> {
|
||||||
|
|
||||||
Page<UserVipAdminVo> pageAdmin(@Param("build") Page<Object> build, @Param("bo") UserVipAdminVo bo);
|
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.UserVipAdminVo;
|
||||||
import com.ruoyi.xq.dto.admin.user.req.AddVipReq;
|
import com.ruoyi.xq.dto.admin.user.req.AddVipReq;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* VIP用户Service接口
|
* VIP用户Service接口
|
||||||
*
|
*
|
||||||
@@ -22,6 +24,8 @@ public interface UserVipService extends IService<UserVip> {
|
|||||||
|
|
||||||
UserVip getByUserVipMaster(Long userId);
|
UserVip getByUserVipMaster(Long userId);
|
||||||
|
|
||||||
|
List<UserVip> listUserVipMaster(List<Long> userIdArray);
|
||||||
|
|
||||||
void updateVipOrderAdmin(AddVipReq bo, User user);
|
void updateVipOrderAdmin(AddVipReq bo, User user);
|
||||||
|
|
||||||
void incsVip(User user, Integer vipType, Integer vipMonth);
|
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.User;
|
||||||
import com.ruoyi.xq.domain.UserInfo;
|
import com.ruoyi.xq.domain.UserInfo;
|
||||||
import com.ruoyi.xq.domain.UserPictures;
|
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.UserAdminVo;
|
||||||
import com.ruoyi.xq.dto.admin.user.req.UpdateMobileAdminReq;
|
import com.ruoyi.xq.dto.admin.user.req.UpdateMobileAdminReq;
|
||||||
import com.ruoyi.xq.dto.app.user.HomePageReq;
|
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.UserInfoService;
|
||||||
import com.ruoyi.xq.service.UserPicturesService;
|
import com.ruoyi.xq.service.UserPicturesService;
|
||||||
import com.ruoyi.xq.service.UserService;
|
import com.ruoyi.xq.service.UserService;
|
||||||
|
import com.ruoyi.xq.service.UserVipService;
|
||||||
import com.ruoyi.xq.util.BirthdayUtil;
|
import com.ruoyi.xq.util.BirthdayUtil;
|
||||||
import com.ruoyi.yunxin.client.ImUserRefClient;
|
import com.ruoyi.yunxin.client.ImUserRefClient;
|
||||||
import com.ruoyi.yunxin.req.UpdateUinfoReq;
|
import com.ruoyi.yunxin.req.UpdateUinfoReq;
|
||||||
@@ -35,7 +37,10 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.function.Function;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -55,6 +60,8 @@ public class UserServiceImpl extends ServiceImpl<UserMapper,User> implements Use
|
|||||||
private SystemConfigManager systemConfigManager;
|
private SystemConfigManager systemConfigManager;
|
||||||
@Autowired
|
@Autowired
|
||||||
private UserPicturesService userPicturesService;
|
private UserPicturesService userPicturesService;
|
||||||
|
@Autowired
|
||||||
|
private UserVipService userVipService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public User getByUsername(String username) {
|
public User getByUsername(String username) {
|
||||||
@@ -167,9 +174,20 @@ public class UserServiceImpl extends ServiceImpl<UserMapper,User> implements Use
|
|||||||
public Page<HomeUserListVo> homePage(HomePageReq params) {
|
public Page<HomeUserListVo> homePage(HomePageReq params) {
|
||||||
Page<HomeUserListVo> page = baseMapper.homePageApp(params.build(), params);
|
Page<HomeUserListVo> page = baseMapper.homePageApp(params.build(), params);
|
||||||
List<HomeUserListVo> records = page.getRecords();
|
List<HomeUserListVo> records = page.getRecords();
|
||||||
|
List<Long> userIdArray = new ArrayList<>();
|
||||||
for (HomeUserListVo record : records) {
|
for (HomeUserListVo record : records) {
|
||||||
|
userIdArray.add(record.getUserId());
|
||||||
record.setBirthdayStr(BirthdayUtil.getMinBirthday(record.getBirthday()));
|
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;
|
return page;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.ruoyi.xq.service.impl;
|
package com.ruoyi.xq.service.impl;
|
||||||
|
|
||||||
import cn.hutool.extra.spring.SpringUtil;
|
import cn.hutool.extra.spring.SpringUtil;
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
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.LocalDate;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.time.LocalTime;
|
import java.time.LocalTime;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.Comparator;
|
import java.util.Comparator;
|
||||||
import java.util.List;
|
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);
|
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
|
* 后台管理强制覆盖VIP
|
||||||
* @param bo
|
* @param bo
|
||||||
|
|||||||
@@ -21,6 +21,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
</where>
|
</where>
|
||||||
order by id desc
|
order by id desc
|
||||||
</select>
|
</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>
|
</mapper>
|
||||||
|
|||||||
Reference in New Issue
Block a user