This commit is contained in:
张良(004796)
2024-03-29 14:45:29 +08:00
parent e3bf8cd433
commit fbec1e6a56
15 changed files with 316 additions and 42 deletions

View File

@@ -2,6 +2,7 @@ package com.ruoyi.xq.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.xq.domain.UserStatus;
import com.ruoyi.xq.dto.app.userstatus.UserStatusUpdateAppReq;
/**
* 用户状态Service接口
@@ -11,4 +12,7 @@ import com.ruoyi.xq.domain.UserStatus;
*/
public interface UserStatusService extends IService<UserStatus> {
UserStatus getByUserId(Long userId);
void updateStatus(UserStatusUpdateAppReq req);
}

View File

@@ -11,10 +11,7 @@ import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.exception.base.BaseException;
import com.ruoyi.common.helper.LoginHelper;
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.domain.*;
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;
@@ -26,11 +23,9 @@ import com.ruoyi.xq.enums.common.SystemConfigEnum;
import com.ruoyi.xq.enums.userinfo.UserGenderEnum;
import com.ruoyi.xq.manager.SystemConfigManager;
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.service.*;
import com.ruoyi.xq.util.BirthdayUtil;
import com.ruoyi.xq.util.ShowAvatarUtil;
import com.ruoyi.yunxin.client.ImUserRefClient;
import com.ruoyi.yunxin.req.UpdateUinfoReq;
import com.ruoyi.yunxin.resp.YxCommonR;
@@ -41,6 +36,7 @@ import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
@@ -65,6 +61,10 @@ public class UserServiceImpl extends ServiceImpl<UserMapper,User> implements Use
private UserPicturesService userPicturesService;
@Autowired
private UserVipService userVipService;
@Autowired
private UserAuthService userAuthService;
@Autowired
private UserStatusService userStatusService;
@Override
public MinUser getMinUserById(Long userId){
@@ -107,6 +107,13 @@ public class UserServiceImpl extends ServiceImpl<UserMapper,User> implements Use
result.setOpenVip(true);
result.setVipType(userVip.getVipType());
}
UserStatus userStatus = userStatusService.getByUserId(userId);
boolean showAvatar = this.showAvatar(LoginHelper.getUserId(), userStatus.getShowAvatar());
if(!showAvatar){
result.setAvatar(null);
result.setShowAvatarBool(false);
result.setUserPictureList(Collections.emptyList());
}
return result;
}
@@ -183,19 +190,36 @@ public class UserServiceImpl extends ServiceImpl<UserMapper,User> implements Use
return baseMapper.pageAdmin(pageQuery.build(), bo);
}
public boolean showAvatar(Long userId, Integer avatar){
if(userId == null){
return ShowAvatarUtil.showAvatar(false,false,avatar);
}
UserAuth userAuth = userAuthService.getByUserId(userId);
UserVip userVip = userVipService.getByUserVipMaster(userId);
return ShowAvatarUtil.showAvatar(userAuth.getCarAuth()==1,userVip!=null, avatar);
}
@Override
public Page<HomeUserListVo> homePage(HomePageReq params) {
HomePageReq.VipQuery vipQuery = params.getVipQuery();
boolean vip = false; // 是否为VIP
boolean card = false; // 是否实名认证
Long userId = LoginHelper.getUserId();
UserVip userVip = null;
if(userId != null){
UserAuth userAuth = userAuthService.getByUserId(userId);
card = userAuth != null && userAuth.getCarAuth() == 1;
userVip = userVipService.getByUserVipMaster(userId);
vip = userVip != null;
}
if(vipQuery != null){
if(StringUtils.isNotEmpty(vipQuery.getProfession()) ||
vipQuery.getAnnualIncome() != null || vipQuery.getZodiac() != null ||
vipQuery.getSign() != null || vipQuery.getChildStatus() != null || vipQuery.getHousingStatus() != null ||
vipQuery.getCarStatus() != null || StringUtils.isNotEmpty(vipQuery.getAddressCode())){
Long userId = LoginHelper.getUserId();
if(userId == null){
throw new ServiceException(ErrorEnum.VIP_AUTH);
}
UserVip userVip = userVipService.getByUserVipMaster(userId);
if(userVip == null){
throw new ServiceException(ErrorEnum.VIP_AUTH);
}
@@ -208,14 +232,19 @@ public class UserServiceImpl extends ServiceImpl<UserMapper,User> implements Use
userIdArray.add(record.getUserId());
record.setBirthdayStr(BirthdayUtil.getMinBirthday(record.getBirthday()));
record.setAge(BirthdayUtil.getAge(record.getBirthday()));
boolean showAvatarBool = ShowAvatarUtil.showAvatar(vip, card, record.getShowAvatar());
record.setShowAvatarBool(showAvatarBool);
if(!record.getShowAvatarBool()){
record.setAvatar(null);
}
}
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());
UserVip userVipNode = userVipMap.get(record.getUserId());
if(userVip != null){
record.setOpenVip(true);
record.setVipType(userVip.getVipType());
record.setVipType(userVipNode.getVipType());
}
}
return page;

View File

@@ -1,11 +1,22 @@
package com.ruoyi.xq.service.impl;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.xq.domain.UserStatus;
import com.ruoyi.xq.domain.UserVip;
import com.ruoyi.xq.dto.app.userstatus.UserStatusUpdateAppReq;
import com.ruoyi.xq.enums.ErrorEnum;
import com.ruoyi.xq.enums.userstatus.PersonalsStatusEnum;
import com.ruoyi.xq.enums.userstatus.ShowAvatarEnum;
import com.ruoyi.xq.mapper.UserStatusMapper;
import com.ruoyi.xq.service.UserStatusService;
import com.ruoyi.xq.service.UserVipService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
/**
* 用户状态Service业务层处理
*
@@ -14,8 +25,35 @@ import org.springframework.stereotype.Service;
*/
@Service
public class UserStatusServiceImpl extends ServiceImpl<UserStatusMapper,UserStatus> implements UserStatusService {
@Autowired
private UserVipService userVipService;
@Override
public UserStatus getByUserId(Long userId) {
return this.getOne(Wrappers.lambdaQuery(UserStatus.class).eq(UserStatus::getUserId,userId).last("limit 1"));
}
@Override
public void updateStatus(UserStatusUpdateAppReq req) {
UserStatus userStatus = this.getByUserId(req.getUserId());
if(req.getShowAvatar() != null && !req.getShowAvatar().equals(ShowAvatarEnum.ALL.getCode())){
UserVip userVip = userVipService.getByUserVipMaster(req.getUserId());
if(userVip == null){
throw new ServiceException(ErrorEnum.VIP_AUTH.getText());
}
}
UserStatus update = new UserStatus();
update.setId(userStatus.getId());
update.setUpdateTime(LocalDateTime.now());
update.setPersonalsStatus(req.getPersonalsStatus());
update.setAllowTransMobile(req.getAllowTransMobile());
update.setAllowTransWx(req.getAllowTransWx());
if(req.getPersonalsStatus() != null && (PersonalsStatusEnum.CAO.getCode().equals(req.getPersonalsStatus())
|| PersonalsStatusEnum.HIDING.getCode().equals(req.getPersonalsStatus()))){
update.setShowAvatar(ShowAvatarEnum.NO.getCode());
}else{
update.setShowAvatar(req.getShowAvatar());
}
this.updateById(update);
}
}