This commit is contained in:
dute7liang
2024-01-14 17:15:15 +08:00
parent 986bee0b0f
commit fae8c9b679
11 changed files with 154 additions and 10 deletions

View File

@@ -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 = "修改当前用户信息")

View File

@@ -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;
/** /**
* 有效期(天) * 有效期(天)

View File

@@ -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;
/** /**

View File

@@ -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-不可用
*/ */

View File

@@ -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;
}

View File

@@ -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);
} }

View File

@@ -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);
} }

View File

@@ -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);
} }

View File

@@ -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));
}
} }

View File

@@ -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));
}
} }

View File

@@ -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;
}
} }