From fae8c9b6798c15bd6a1febb9cf5736e1f5916a38 Mon Sep 17 00:00:00 2001 From: dute7liang <383200134@qq.com> Date: Sun, 14 Jan 2024 17:15:15 +0800 Subject: [PATCH] init --- .../cai/controller/app/UserAppController.java | 17 +++++ .../com/ruoyi/cai/domain/MemberPrice.java | 7 ++ .../main/java/com/ruoyi/cai/domain/User.java | 4 +- .../java/com/ruoyi/cai/domain/UserMember.java | 8 --- .../cai/dto/app/vo/user/MemberInfoVo.java | 32 +++++++++ .../ruoyi/cai/service/MemberPriceService.java | 3 + .../ruoyi/cai/service/MemberSkillService.java | 3 + .../ruoyi/cai/service/UserMemberService.java | 5 ++ .../service/impl/MemberPriceServiceImpl.java | 10 +++ .../service/impl/MemberSkillServiceImpl.java | 9 +++ .../service/impl/UserMemberServiceImpl.java | 66 +++++++++++++++++++ 11 files changed, 154 insertions(+), 10 deletions(-) create mode 100644 ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/vo/user/MemberInfoVo.java diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/app/UserAppController.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/app/UserAppController.java index 8f82a90a..0dc2ab90 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/app/UserAppController.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/app/UserAppController.java @@ -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.UserUpdateReq; 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.service.UserAlbumService; +import com.ruoyi.cai.service.UserMemberService; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.helper.LoginHelper; import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; @@ -25,6 +28,8 @@ public class UserAppController { private CurrentUserManager currentUserManager; @Autowired private UserAlbumService userAlbumService; + @Autowired + private UserMemberService userMemberService; @GetMapping("/info") @Operation(summary = "当前用户信息") @@ -32,6 +37,18 @@ public class UserAppController { return R.ok(currentUserManager.currentInfo()); } + @GetMapping("/member") + @Operation(summary = "当前用户信息") + public R 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") @Operation(summary = "修改当前用户信息") diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/domain/MemberPrice.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/domain/MemberPrice.java index 7ee46e46..d37f3943 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/domain/MemberPrice.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/domain/MemberPrice.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.io.Serializable; @@ -17,6 +18,7 @@ import java.math.BigDecimal; */ @Data @TableName("cai_member_price") +@Schema(description = "会员价格信息") public class MemberPrice implements Serializable { private static final long serialVersionUID=1L; @@ -25,6 +27,7 @@ public class MemberPrice implements Serializable { * */ @TableId(value = "id",type = IdType.AUTO) + @Schema(description = "会员价格ID") private Long id; /** * 类型 0 普通 1 超级 @@ -33,19 +36,23 @@ public class MemberPrice implements Serializable { /** * 名称 */ + @Schema(description = "会员价格ID") private String name; /** * 价格 */ + @Schema(description = "会员价格") private BigDecimal price; /** * 图片地址 */ + @Schema(description = "会员价格图片") private String img; /** * 描述 */ @TableField(value = "`desc`") + @Schema(description = "会员描述") private String desc; /** * 有效期(天) diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/domain/User.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/domain/User.java index 11c2a159..73d6379e 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/domain/User.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/domain/User.java @@ -127,11 +127,11 @@ public class User implements Serializable { */ private Integer isAnchor; /** - * 类型 0 关闭 1 打开 + * 隐藏排行榜模式 0-关闭 1-打开 */ private Integer rankHide; /** - * 类型 0 关闭 1 打开 + * 隐身模式 0-关闭 1-打开 */ private Integer noGreet; /** diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/domain/UserMember.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/domain/UserMember.java index 4ca2ea46..02f0abda 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/domain/UserMember.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/domain/UserMember.java @@ -41,14 +41,6 @@ public class UserMember implements Serializable { * 过期时间(天) */ private Integer expire; - /** - * 隐藏排行榜模式 0-关闭 1-打开 - */ - private Integer rankHide; - /** - * 隐身模式 0-关闭 1-打开 - */ - private Integer noGreet; /** * 状态 0-可用,1-过期,2-不可用 */ diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/vo/user/MemberInfoVo.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/vo/user/MemberInfoVo.java new file mode 100644 index 00000000..e0b9079c --- /dev/null +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/vo/user/MemberInfoVo.java @@ -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 memberPriceList; + private List 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; + + + + +} diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/MemberPriceService.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/MemberPriceService.java index 8d101741..b4ee2031 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/MemberPriceService.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/MemberPriceService.java @@ -3,6 +3,8 @@ package com.ruoyi.cai.service; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.cai.domain.MemberPrice; +import java.util.List; + /** * 会员价格Service接口 * @@ -11,4 +13,5 @@ import com.ruoyi.cai.domain.MemberPrice; */ public interface MemberPriceService extends IService { + List listByType(Integer type); } diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/MemberSkillService.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/MemberSkillService.java index 1218f162..2ada53f1 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/MemberSkillService.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/MemberSkillService.java @@ -3,6 +3,8 @@ package com.ruoyi.cai.service; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.cai.domain.MemberSkill; +import java.util.List; + /** * 会员技能Service接口 * @@ -11,4 +13,5 @@ import com.ruoyi.cai.domain.MemberSkill; */ public interface MemberSkillService extends IService { + List listByType(Integer type); } diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/UserMemberService.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/UserMemberService.java index b9abdd82..d4889ee3 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/UserMemberService.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/UserMemberService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.cai.domain.UserMember; import com.ruoyi.cai.dto.admin.vo.UserMemberAdminVo; +import com.ruoyi.cai.dto.app.vo.user.MemberInfoVo; import com.ruoyi.common.core.domain.PageQuery; /** @@ -18,7 +19,11 @@ public interface UserMemberService extends IService { UserMember getByUserId(Long userId); + UserMember getByUserIdAndType(Long userId, Integer type); + UserMember getNormalMember(Long userId); void relieveMember(Long id); + + MemberInfoVo memberApp(Long userId, Integer type); } diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/MemberPriceServiceImpl.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/MemberPriceServiceImpl.java index f3efbc61..095330b1 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/MemberPriceServiceImpl.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/MemberPriceServiceImpl.java @@ -1,11 +1,14 @@ package com.ruoyi.cai.service.impl; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.cai.domain.MemberPrice; import com.ruoyi.cai.mapper.MemberPriceMapper; import com.ruoyi.cai.service.MemberPriceService; import org.springframework.stereotype.Service; +import java.util.List; + /** * 会员价格Service业务层处理 * @@ -14,4 +17,11 @@ import org.springframework.stereotype.Service; */ @Service public class MemberPriceServiceImpl extends ServiceImpl implements MemberPriceService { + @Override + public List listByType(Integer type) { + return this.list(Wrappers.lambdaQuery(MemberPrice.class) + .eq(MemberPrice::getStatus,0) + .eq(MemberPrice::getMemberType,type) + .orderByAsc(MemberPrice::getPrice)); + } } diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/MemberSkillServiceImpl.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/MemberSkillServiceImpl.java index 09619e3d..a427e3d0 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/MemberSkillServiceImpl.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/MemberSkillServiceImpl.java @@ -1,11 +1,14 @@ package com.ruoyi.cai.service.impl; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.cai.domain.MemberSkill; import com.ruoyi.cai.mapper.MemberSkillMapper; import com.ruoyi.cai.service.MemberSkillService; import org.springframework.stereotype.Service; +import java.util.List; + /** * 会员技能Service业务层处理 * @@ -14,4 +17,10 @@ import org.springframework.stereotype.Service; */ @Service public class MemberSkillServiceImpl extends ServiceImpl implements MemberSkillService { + @Override + public List listByType(Integer type) { + return this.list(Wrappers.lambdaQuery(MemberSkill.class) + .eq(MemberSkill::getStatus,0) + .eq(MemberSkill::getMemberType,type)); + } } diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/UserMemberServiceImpl.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/UserMemberServiceImpl.java index 730230b6..d2662d6b 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/UserMemberServiceImpl.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/UserMemberServiceImpl.java @@ -3,14 +3,27 @@ package com.ruoyi.cai.service.impl; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 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.dto.admin.vo.UserMemberAdminVo; +import com.ruoyi.cai.dto.app.vo.user.MemberInfoVo; import com.ruoyi.cai.mapper.UserMemberMapper; 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.UserService; 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 java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.List; + /** * 会员管理Service业务层处理 * @@ -20,6 +33,13 @@ import org.springframework.stereotype.Service; @Service public class UserMemberServiceImpl extends ServiceImpl implements UserMemberService { + @Autowired + private UserService userService; + @Autowired + private MemberSkillService memberSkillService; + @Autowired + private MemberPriceService memberPriceService; + @Override public Page pageAdmin(PageQuery pageQuery, UserMemberAdminVo bo) { return baseMapper.pageAdmin(pageQuery.build(),bo); @@ -30,6 +50,14 @@ public class UserMemberServiceImpl extends ServiceImpl memberPriceList = memberPriceService.listByType(type); + memberInfoVo.setMemberPriceList(memberPriceList); + List 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; + } }