init
This commit is contained in:
@@ -5,11 +5,14 @@ import com.ruoyi.cai.dto.app.query.AlbumResetReq;
|
|||||||
import com.ruoyi.cai.dto.app.query.IdRes;
|
import com.ruoyi.cai.dto.app.query.IdRes;
|
||||||
import com.ruoyi.cai.dto.app.query.UserUpdateReq;
|
import com.ruoyi.cai.dto.app.query.UserUpdateReq;
|
||||||
import com.ruoyi.cai.dto.app.vo.CurrentUserInfoVo;
|
import com.ruoyi.cai.dto.app.vo.CurrentUserInfoVo;
|
||||||
|
import com.ruoyi.cai.dto.app.vo.user.MemberInfoVo;
|
||||||
import com.ruoyi.cai.manager.CurrentUserManager;
|
import com.ruoyi.cai.manager.CurrentUserManager;
|
||||||
import com.ruoyi.cai.service.UserAlbumService;
|
import com.ruoyi.cai.service.UserAlbumService;
|
||||||
|
import com.ruoyi.cai.service.UserMemberService;
|
||||||
import com.ruoyi.common.core.domain.R;
|
import com.ruoyi.common.core.domain.R;
|
||||||
import com.ruoyi.common.helper.LoginHelper;
|
import com.ruoyi.common.helper.LoginHelper;
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
|
import io.swagger.v3.oas.annotations.Parameter;
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
@@ -25,6 +28,8 @@ public class UserAppController {
|
|||||||
private CurrentUserManager currentUserManager;
|
private CurrentUserManager currentUserManager;
|
||||||
@Autowired
|
@Autowired
|
||||||
private UserAlbumService userAlbumService;
|
private UserAlbumService userAlbumService;
|
||||||
|
@Autowired
|
||||||
|
private UserMemberService userMemberService;
|
||||||
|
|
||||||
@GetMapping("/info")
|
@GetMapping("/info")
|
||||||
@Operation(summary = "当前用户信息")
|
@Operation(summary = "当前用户信息")
|
||||||
@@ -32,6 +37,18 @@ public class UserAppController {
|
|||||||
return R.ok(currentUserManager.currentInfo());
|
return R.ok(currentUserManager.currentInfo());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GetMapping("/member")
|
||||||
|
@Operation(summary = "当前用户信息")
|
||||||
|
public R<MemberInfoVo> member(@Parameter(description = "类型 0-普通会员 1-超级会员") Integer type){
|
||||||
|
Long userId = LoginHelper.getUserId();
|
||||||
|
if(type == null){
|
||||||
|
type = 0;
|
||||||
|
}else if(type != 0 && type != 1){
|
||||||
|
type = 0;
|
||||||
|
}
|
||||||
|
return R.ok(userMemberService.memberApp(userId,type));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@PostMapping("/update")
|
@PostMapping("/update")
|
||||||
@Operation(summary = "修改当前用户信息")
|
@Operation(summary = "修改当前用户信息")
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.IdType;
|
|||||||
import com.baomidou.mybatisplus.annotation.TableField;
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
@@ -17,6 +18,7 @@ import java.math.BigDecimal;
|
|||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@TableName("cai_member_price")
|
@TableName("cai_member_price")
|
||||||
|
@Schema(description = "会员价格信息")
|
||||||
public class MemberPrice implements Serializable {
|
public class MemberPrice implements Serializable {
|
||||||
|
|
||||||
private static final long serialVersionUID=1L;
|
private static final long serialVersionUID=1L;
|
||||||
@@ -25,6 +27,7 @@ public class MemberPrice implements Serializable {
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
@TableId(value = "id",type = IdType.AUTO)
|
@TableId(value = "id",type = IdType.AUTO)
|
||||||
|
@Schema(description = "会员价格ID")
|
||||||
private Long id;
|
private Long id;
|
||||||
/**
|
/**
|
||||||
* 类型 0 普通 1 超级
|
* 类型 0 普通 1 超级
|
||||||
@@ -33,19 +36,23 @@ public class MemberPrice implements Serializable {
|
|||||||
/**
|
/**
|
||||||
* 名称
|
* 名称
|
||||||
*/
|
*/
|
||||||
|
@Schema(description = "会员价格ID")
|
||||||
private String name;
|
private String name;
|
||||||
/**
|
/**
|
||||||
* 价格
|
* 价格
|
||||||
*/
|
*/
|
||||||
|
@Schema(description = "会员价格")
|
||||||
private BigDecimal price;
|
private BigDecimal price;
|
||||||
/**
|
/**
|
||||||
* 图片地址
|
* 图片地址
|
||||||
*/
|
*/
|
||||||
|
@Schema(description = "会员价格图片")
|
||||||
private String img;
|
private String img;
|
||||||
/**
|
/**
|
||||||
* 描述
|
* 描述
|
||||||
*/
|
*/
|
||||||
@TableField(value = "`desc`")
|
@TableField(value = "`desc`")
|
||||||
|
@Schema(description = "会员描述")
|
||||||
private String desc;
|
private String desc;
|
||||||
/**
|
/**
|
||||||
* 有效期(天)
|
* 有效期(天)
|
||||||
|
|||||||
@@ -127,11 +127,11 @@ public class User implements Serializable {
|
|||||||
*/
|
*/
|
||||||
private Integer isAnchor;
|
private Integer isAnchor;
|
||||||
/**
|
/**
|
||||||
* 类型 0 关闭 1 打开
|
* 隐藏排行榜模式 0-关闭 1-打开
|
||||||
*/
|
*/
|
||||||
private Integer rankHide;
|
private Integer rankHide;
|
||||||
/**
|
/**
|
||||||
* 类型 0 关闭 1 打开
|
* 隐身模式 0-关闭 1-打开
|
||||||
*/
|
*/
|
||||||
private Integer noGreet;
|
private Integer noGreet;
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -41,14 +41,6 @@ public class UserMember implements Serializable {
|
|||||||
* 过期时间(天)
|
* 过期时间(天)
|
||||||
*/
|
*/
|
||||||
private Integer expire;
|
private Integer expire;
|
||||||
/**
|
|
||||||
* 隐藏排行榜模式 0-关闭 1-打开
|
|
||||||
*/
|
|
||||||
private Integer rankHide;
|
|
||||||
/**
|
|
||||||
* 隐身模式 0-关闭 1-打开
|
|
||||||
*/
|
|
||||||
private Integer noGreet;
|
|
||||||
/**
|
/**
|
||||||
* 状态 0-可用,1-过期,2-不可用
|
* 状态 0-可用,1-过期,2-不可用
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -0,0 +1,32 @@
|
|||||||
|
package com.ruoyi.cai.dto.app.vo.user;
|
||||||
|
|
||||||
|
import com.ruoyi.cai.domain.MemberPrice;
|
||||||
|
import com.ruoyi.cai.domain.MemberSkill;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class MemberInfoVo {
|
||||||
|
private Long userId;
|
||||||
|
private String usercode;
|
||||||
|
private String nickname;
|
||||||
|
private Integer gender;
|
||||||
|
private String avatar;
|
||||||
|
private List<MemberPrice> memberPriceList;
|
||||||
|
private List<MemberSkill> memberSkillList;
|
||||||
|
private Integer longs;
|
||||||
|
private LocalDateTime expireTime;
|
||||||
|
private String expireTimeStr;
|
||||||
|
private Integer on;
|
||||||
|
|
||||||
|
private String bannerPic = "images/member/vip_banner.gif";
|
||||||
|
|
||||||
|
private Integer rankHide;
|
||||||
|
private Integer noGreet;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -3,6 +3,8 @@ package com.ruoyi.cai.service;
|
|||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import com.ruoyi.cai.domain.MemberPrice;
|
import com.ruoyi.cai.domain.MemberPrice;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 会员价格Service接口
|
* 会员价格Service接口
|
||||||
*
|
*
|
||||||
@@ -11,4 +13,5 @@ import com.ruoyi.cai.domain.MemberPrice;
|
|||||||
*/
|
*/
|
||||||
public interface MemberPriceService extends IService<MemberPrice> {
|
public interface MemberPriceService extends IService<MemberPrice> {
|
||||||
|
|
||||||
|
List<MemberPrice> listByType(Integer type);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,8 @@ package com.ruoyi.cai.service;
|
|||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import com.ruoyi.cai.domain.MemberSkill;
|
import com.ruoyi.cai.domain.MemberSkill;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 会员技能Service接口
|
* 会员技能Service接口
|
||||||
*
|
*
|
||||||
@@ -11,4 +13,5 @@ import com.ruoyi.cai.domain.MemberSkill;
|
|||||||
*/
|
*/
|
||||||
public interface MemberSkillService extends IService<MemberSkill> {
|
public interface MemberSkillService extends IService<MemberSkill> {
|
||||||
|
|
||||||
|
List<MemberSkill> listByType(Integer type);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import com.ruoyi.cai.domain.UserMember;
|
import com.ruoyi.cai.domain.UserMember;
|
||||||
import com.ruoyi.cai.dto.admin.vo.UserMemberAdminVo;
|
import com.ruoyi.cai.dto.admin.vo.UserMemberAdminVo;
|
||||||
|
import com.ruoyi.cai.dto.app.vo.user.MemberInfoVo;
|
||||||
import com.ruoyi.common.core.domain.PageQuery;
|
import com.ruoyi.common.core.domain.PageQuery;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -18,7 +19,11 @@ public interface UserMemberService extends IService<UserMember> {
|
|||||||
|
|
||||||
UserMember getByUserId(Long userId);
|
UserMember getByUserId(Long userId);
|
||||||
|
|
||||||
|
UserMember getByUserIdAndType(Long userId, Integer type);
|
||||||
|
|
||||||
UserMember getNormalMember(Long userId);
|
UserMember getNormalMember(Long userId);
|
||||||
|
|
||||||
void relieveMember(Long id);
|
void relieveMember(Long id);
|
||||||
|
|
||||||
|
MemberInfoVo memberApp(Long userId, Integer type);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,11 +1,14 @@
|
|||||||
package com.ruoyi.cai.service.impl;
|
package com.ruoyi.cai.service.impl;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.ruoyi.cai.domain.MemberPrice;
|
import com.ruoyi.cai.domain.MemberPrice;
|
||||||
import com.ruoyi.cai.mapper.MemberPriceMapper;
|
import com.ruoyi.cai.mapper.MemberPriceMapper;
|
||||||
import com.ruoyi.cai.service.MemberPriceService;
|
import com.ruoyi.cai.service.MemberPriceService;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 会员价格Service业务层处理
|
* 会员价格Service业务层处理
|
||||||
*
|
*
|
||||||
@@ -14,4 +17,11 @@ import org.springframework.stereotype.Service;
|
|||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
public class MemberPriceServiceImpl extends ServiceImpl<MemberPriceMapper,MemberPrice> implements MemberPriceService {
|
public class MemberPriceServiceImpl extends ServiceImpl<MemberPriceMapper,MemberPrice> implements MemberPriceService {
|
||||||
|
@Override
|
||||||
|
public List<MemberPrice> listByType(Integer type) {
|
||||||
|
return this.list(Wrappers.lambdaQuery(MemberPrice.class)
|
||||||
|
.eq(MemberPrice::getStatus,0)
|
||||||
|
.eq(MemberPrice::getMemberType,type)
|
||||||
|
.orderByAsc(MemberPrice::getPrice));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,11 +1,14 @@
|
|||||||
package com.ruoyi.cai.service.impl;
|
package com.ruoyi.cai.service.impl;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.ruoyi.cai.domain.MemberSkill;
|
import com.ruoyi.cai.domain.MemberSkill;
|
||||||
import com.ruoyi.cai.mapper.MemberSkillMapper;
|
import com.ruoyi.cai.mapper.MemberSkillMapper;
|
||||||
import com.ruoyi.cai.service.MemberSkillService;
|
import com.ruoyi.cai.service.MemberSkillService;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 会员技能Service业务层处理
|
* 会员技能Service业务层处理
|
||||||
*
|
*
|
||||||
@@ -14,4 +17,10 @@ import org.springframework.stereotype.Service;
|
|||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
public class MemberSkillServiceImpl extends ServiceImpl<MemberSkillMapper, MemberSkill> implements MemberSkillService {
|
public class MemberSkillServiceImpl extends ServiceImpl<MemberSkillMapper, MemberSkill> implements MemberSkillService {
|
||||||
|
@Override
|
||||||
|
public List<MemberSkill> listByType(Integer type) {
|
||||||
|
return this.list(Wrappers.lambdaQuery(MemberSkill.class)
|
||||||
|
.eq(MemberSkill::getStatus,0)
|
||||||
|
.eq(MemberSkill::getMemberType,type));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,14 +3,27 @@ package com.ruoyi.cai.service.impl;
|
|||||||
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;
|
||||||
|
import com.ruoyi.cai.domain.MemberPrice;
|
||||||
|
import com.ruoyi.cai.domain.MemberSkill;
|
||||||
|
import com.ruoyi.cai.domain.User;
|
||||||
import com.ruoyi.cai.domain.UserMember;
|
import com.ruoyi.cai.domain.UserMember;
|
||||||
import com.ruoyi.cai.dto.admin.vo.UserMemberAdminVo;
|
import com.ruoyi.cai.dto.admin.vo.UserMemberAdminVo;
|
||||||
|
import com.ruoyi.cai.dto.app.vo.user.MemberInfoVo;
|
||||||
import com.ruoyi.cai.mapper.UserMemberMapper;
|
import com.ruoyi.cai.mapper.UserMemberMapper;
|
||||||
import com.ruoyi.cai.pay.MemberStatusEnum;
|
import com.ruoyi.cai.pay.MemberStatusEnum;
|
||||||
|
import com.ruoyi.cai.service.MemberPriceService;
|
||||||
|
import com.ruoyi.cai.service.MemberSkillService;
|
||||||
import com.ruoyi.cai.service.UserMemberService;
|
import com.ruoyi.cai.service.UserMemberService;
|
||||||
|
import com.ruoyi.cai.service.UserService;
|
||||||
import com.ruoyi.common.core.domain.PageQuery;
|
import com.ruoyi.common.core.domain.PageQuery;
|
||||||
|
import com.ruoyi.common.exception.ServiceException;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.format.DateTimeFormatter;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 会员管理Service业务层处理
|
* 会员管理Service业务层处理
|
||||||
*
|
*
|
||||||
@@ -20,6 +33,13 @@ import org.springframework.stereotype.Service;
|
|||||||
@Service
|
@Service
|
||||||
public class UserMemberServiceImpl extends ServiceImpl<UserMemberMapper, UserMember> implements UserMemberService {
|
public class UserMemberServiceImpl extends ServiceImpl<UserMemberMapper, UserMember> implements UserMemberService {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private UserService userService;
|
||||||
|
@Autowired
|
||||||
|
private MemberSkillService memberSkillService;
|
||||||
|
@Autowired
|
||||||
|
private MemberPriceService memberPriceService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Page<UserMemberAdminVo> pageAdmin(PageQuery pageQuery, UserMemberAdminVo bo) {
|
public Page<UserMemberAdminVo> pageAdmin(PageQuery pageQuery, UserMemberAdminVo bo) {
|
||||||
return baseMapper.pageAdmin(pageQuery.build(),bo);
|
return baseMapper.pageAdmin(pageQuery.build(),bo);
|
||||||
@@ -30,6 +50,14 @@ public class UserMemberServiceImpl extends ServiceImpl<UserMemberMapper, UserMem
|
|||||||
return this.getOne(Wrappers.lambdaQuery(UserMember.class).eq(UserMember::getUserId,userId).last("limit 1"));
|
return this.getOne(Wrappers.lambdaQuery(UserMember.class).eq(UserMember::getUserId,userId).last("limit 1"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public UserMember getByUserIdAndType(Long userId, Integer type){
|
||||||
|
return this.getOne(Wrappers.lambdaQuery(UserMember.class)
|
||||||
|
.eq(UserMember::getUserId,userId)
|
||||||
|
.eq(UserMember::getMemberType,type)
|
||||||
|
.last("limit 1"));
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public UserMember getNormalMember(Long userId){
|
public UserMember getNormalMember(Long userId){
|
||||||
return this.getOne(Wrappers.lambdaQuery(UserMember.class).eq(UserMember::getUserId,userId)
|
return this.getOne(Wrappers.lambdaQuery(UserMember.class).eq(UserMember::getUserId,userId)
|
||||||
@@ -43,4 +71,42 @@ public class UserMemberServiceImpl extends ServiceImpl<UserMemberMapper, UserMem
|
|||||||
.eq(UserMember::getId,id)
|
.eq(UserMember::getId,id)
|
||||||
.set(UserMember::getMemberStatus, MemberStatusEnum.FAIL.getCode()));
|
.set(UserMember::getMemberStatus, MemberStatusEnum.FAIL.getCode()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public MemberInfoVo memberApp(Long userId, Integer type) {
|
||||||
|
User user = userService.getById(userId);
|
||||||
|
if(user == null){
|
||||||
|
throw new ServiceException("用户不存在");
|
||||||
|
}
|
||||||
|
MemberInfoVo memberInfoVo = new MemberInfoVo();
|
||||||
|
memberInfoVo.setUserId(user.getId());
|
||||||
|
memberInfoVo.setUsercode(user.getUsercode());
|
||||||
|
memberInfoVo.setNickname(user.getNickname());
|
||||||
|
memberInfoVo.setGender(user.getGender());
|
||||||
|
memberInfoVo.setAvatar(user.getAvatar());
|
||||||
|
memberInfoVo.setRankHide(user.getRankHide());
|
||||||
|
memberInfoVo.setNoGreet(user.getNoGreet());
|
||||||
|
List<MemberPrice> memberPriceList = memberPriceService.listByType(type);
|
||||||
|
memberInfoVo.setMemberPriceList(memberPriceList);
|
||||||
|
List<MemberSkill> memberSkillList = memberSkillService.listByType(type);
|
||||||
|
memberInfoVo.setMemberSkillList(memberSkillList);
|
||||||
|
UserMember userMember = this.getByUserIdAndType(userId, type);
|
||||||
|
if(userMember == null || !MemberStatusEnum.NORMAL.getCode().equals(userMember.getMemberStatus())
|
||||||
|
|| userMember.getExpireDate().isBefore(LocalDateTime.now())){
|
||||||
|
memberInfoVo.setLongs(0);
|
||||||
|
if(userMember != null){
|
||||||
|
memberInfoVo.setExpireTime(userMember.getExpireDate());
|
||||||
|
memberInfoVo.setExpireTimeStr("已过期");
|
||||||
|
}else{
|
||||||
|
memberInfoVo.setExpireTimeStr("未开通");
|
||||||
|
}
|
||||||
|
memberInfoVo.setOn(0);
|
||||||
|
}else {
|
||||||
|
memberInfoVo.setLongs(0);
|
||||||
|
memberInfoVo.setExpireTime(userMember.getExpireDate());
|
||||||
|
memberInfoVo.setExpireTimeStr(userMember.getExpireDate().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
|
||||||
|
memberInfoVo.setOn(1);
|
||||||
|
}
|
||||||
|
return memberInfoVo;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user