This commit is contained in:
张良(004796)
2024-01-29 10:42:57 +08:00
parent eff64dee50
commit 528a4332f2
10 changed files with 125 additions and 1 deletions

View File

@@ -4,6 +4,8 @@ import com.ruoyi.cai.dto.app.query.AlbumAddReq;
import com.ruoyi.cai.dto.app.query.AlbumResetReq; 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.query.member.UpdateNoGreet;
import com.ruoyi.cai.dto.app.query.member.UpdateRankHideReq;
import com.ruoyi.cai.dto.app.vo.CurrentUserInfoVo; import com.ruoyi.cai.dto.app.vo.CurrentUserInfoVo;
import com.ruoyi.cai.dto.app.vo.user.CurrentUserUpdateInfoVo; import com.ruoyi.cai.dto.app.vo.user.CurrentUserUpdateInfoVo;
import com.ruoyi.cai.dto.app.vo.user.MemberInfoVo; import com.ruoyi.cai.dto.app.vo.user.MemberInfoVo;
@@ -77,6 +79,25 @@ public class UserAppController {
return R.ok(userMemberService.memberApp(userId,type)); return R.ok(userMemberService.memberApp(userId,type));
} }
@PostMapping("/updateRankHide")
@Operation(summary = "修改排行榜隐藏状态")
@Log(title = "修改排行榜隐藏状态", businessType = BusinessType.OTHER, isSaveDb = false)
public R<Void> updateRankHide(@RequestBody UpdateRankHideReq updateRankHideReq){
updateRankHideReq.setUserId(LoginHelper.getUserId());
userMemberService.updateRankHide(updateRankHideReq);
return R.ok();
}
@PostMapping("/updateNoGreet")
@Operation(summary = "修改隐藏模式状态")
@Log(title = "修改排行榜隐藏状态", businessType = BusinessType.OTHER, isSaveDb = false)
public R<Void> updateNoGreet(@RequestBody UpdateNoGreet updateNoGreet){
updateNoGreet.setUserId(LoginHelper.getUserId());
userMemberService.updateNoGreet(updateNoGreet);
return R.ok();
}
/*@PostMapping("/update/one") /*@PostMapping("/update/one")
@Operation(summary = "完善用户必填信息") @Operation(summary = "完善用户必填信息")
@Log(title = "完善用户必填信息", businessType = BusinessType.OTHER, isSaveDb = false) @Log(title = "完善用户必填信息", businessType = BusinessType.OTHER, isSaveDb = false)

View File

@@ -43,6 +43,10 @@ public class MemberPrice implements Serializable {
*/ */
@Schema(description = "会员价格") @Schema(description = "会员价格")
private BigDecimal price; private BigDecimal price;
@Schema(description = "会员价格/天")
@TableField(exist = false)
private BigDecimal dayPrice;
/** /**
* 图片地址 * 图片地址
*/ */

View File

@@ -1,8 +1,10 @@
package com.ruoyi.cai.domain; package com.ruoyi.cai.domain;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
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;
@@ -31,14 +33,20 @@ public class MemberSkill implements Serializable {
/** /**
* 名称 * 名称
*/ */
@TableField(value = "`name`")
@Schema(description = "名称")
private String name; private String name;
/** /**
* 描述 * 描述
*/ */
@TableField(value = "`desc`")
@Schema(description = "描述")
private String desc; private String desc;
/** /**
* *
*/ */
@TableField(value = "`icon`")
@Schema(description = "图片")
private String icon; private String icon;
/** /**
* 状态 0 可用 1 不可用 * 状态 0 可用 1 不可用

View File

@@ -0,0 +1,12 @@
package com.ruoyi.cai.dto.app.query.member;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Data
public class UpdateNoGreet {
@Schema(description = "用户ID",hidden = true)
private Long userId;
@Schema(description = "隐身模式 0-关闭 1-打开")
private Integer noGreet;
}

View File

@@ -0,0 +1,12 @@
package com.ruoyi.cai.dto.app.query.member;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Data
public class UpdateRankHideReq {
@Schema(description = "用户ID",hidden = true)
private Long userId;
@Schema(description = "隐藏排行榜 0-关闭 1-打开")
private Integer rankHide;
}

View File

@@ -2,6 +2,7 @@ package com.ruoyi.cai.dto.app.vo.user;
import com.ruoyi.cai.domain.MemberPrice; import com.ruoyi.cai.domain.MemberPrice;
import com.ruoyi.cai.domain.MemberSkill; import com.ruoyi.cai.domain.MemberSkill;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import java.time.LocalDateTime; import java.time.LocalDateTime;
@@ -14,16 +15,24 @@ public class MemberInfoVo {
private String nickname; private String nickname;
private Integer gender; private Integer gender;
private String avatar; private String avatar;
@Schema(description = "会员技能")
private List<MemberPrice> memberPriceList; private List<MemberPrice> memberPriceList;
@Schema(description = "会员价格")
private List<MemberSkill> memberSkillList; private List<MemberSkill> memberSkillList;
@Schema(description = "是否开通永久会员 1-永久 0-非永久")
private Integer longs; private Integer longs;
@Schema(description = "过期时间")
private LocalDateTime expireTime; private LocalDateTime expireTime;
@Schema(description = "过期时间字符")
private String expireTimeStr; private String expireTimeStr;
@Schema(description = "是否开通会员")
private Integer on; private Integer on;
private String bannerPic = "images/member/vip_banner.gif"; private String bannerPic = "images/member/vip_banner.gif";
@Schema(description = "隐藏排行榜 0-关闭 1-打开")
private Integer rankHide; private Integer rankHide;
@Schema(description = "隐身模式 0-关闭 1-打开")
private Integer noGreet; private Integer noGreet;

View File

@@ -8,6 +8,8 @@ import com.ruoyi.cai.domain.*;
import com.ruoyi.cai.dto.app.query.AccountAliBankCardRes; import com.ruoyi.cai.dto.app.query.AccountAliBankCardRes;
import com.ruoyi.cai.dto.app.query.AnchorUpdateReq; import com.ruoyi.cai.dto.app.query.AnchorUpdateReq;
import com.ruoyi.cai.dto.app.query.UserUpdateReq; import com.ruoyi.cai.dto.app.query.UserUpdateReq;
import com.ruoyi.cai.dto.app.query.member.UpdateNoGreet;
import com.ruoyi.cai.dto.app.query.member.UpdateRankHideReq;
import com.ruoyi.cai.dto.app.vo.AnchorVo; import com.ruoyi.cai.dto.app.vo.AnchorVo;
import com.ruoyi.cai.dto.app.vo.CurrentUserInfoVo; import com.ruoyi.cai.dto.app.vo.CurrentUserInfoVo;
import com.ruoyi.cai.dto.app.vo.user.CurrentUserUpdateInfoVo; import com.ruoyi.cai.dto.app.vo.user.CurrentUserUpdateInfoVo;

View File

@@ -4,6 +4,8 @@ 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.query.member.UpdateNoGreet;
import com.ruoyi.cai.dto.app.query.member.UpdateRankHideReq;
import com.ruoyi.cai.dto.app.vo.user.MemberInfoVo; import com.ruoyi.cai.dto.app.vo.user.MemberInfoVo;
import com.ruoyi.cai.enums.UserMemberTypeEnum; import com.ruoyi.cai.enums.UserMemberTypeEnum;
import com.ruoyi.common.core.domain.PageQuery; import com.ruoyi.common.core.domain.PageQuery;
@@ -36,4 +38,8 @@ public interface UserMemberService extends IService<UserMember> {
void relieveMember(Long id); void relieveMember(Long id);
MemberInfoVo memberApp(Long userId, Integer type); MemberInfoVo memberApp(Long userId, Integer type);
void updateRankHide(UpdateRankHideReq updateRankHideReq);
void updateNoGreet(UpdateNoGreet updateNoGreet);
} }

View File

@@ -9,6 +9,8 @@ import com.ruoyi.cai.domain.MemberSkill;
import com.ruoyi.cai.domain.User; 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.query.member.UpdateNoGreet;
import com.ruoyi.cai.dto.app.query.member.UpdateRankHideReq;
import com.ruoyi.cai.dto.app.vo.user.MemberInfoVo; import com.ruoyi.cai.dto.app.vo.user.MemberInfoVo;
import com.ruoyi.cai.enums.UserMemberTypeEnum; import com.ruoyi.cai.enums.UserMemberTypeEnum;
import com.ruoyi.cai.mapper.UserMemberMapper; import com.ruoyi.cai.mapper.UserMemberMapper;
@@ -17,6 +19,7 @@ import com.ruoyi.cai.service.MemberPriceService;
import com.ruoyi.cai.service.MemberSkillService; 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.cai.service.UserService;
import com.ruoyi.cai.util.CaiNumUtil;
import com.ruoyi.common.core.domain.PageQuery; import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.exception.ServiceException;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@@ -114,6 +117,9 @@ public class UserMemberServiceImpl extends ServiceImpl<UserMemberMapper, UserMem
memberInfoVo.setRankHide(user.getRankHide()); memberInfoVo.setRankHide(user.getRankHide());
memberInfoVo.setNoGreet(user.getNoGreet()); memberInfoVo.setNoGreet(user.getNoGreet());
List<MemberPrice> memberPriceList = memberPriceService.listByType(type); List<MemberPrice> memberPriceList = memberPriceService.listByType(type);
for (MemberPrice memberPrice : memberPriceList) {
memberPrice.setDayPrice(CaiNumUtil.memberDay(memberPrice.getPrice(),memberPrice.getExpires()));
}
memberInfoVo.setMemberPriceList(memberPriceList); memberInfoVo.setMemberPriceList(memberPriceList);
List<MemberSkill> memberSkillList = memberSkillService.listByType(type); List<MemberSkill> memberSkillList = memberSkillService.listByType(type);
memberInfoVo.setMemberSkillList(memberSkillList); memberInfoVo.setMemberSkillList(memberSkillList);
@@ -136,4 +142,38 @@ public class UserMemberServiceImpl extends ServiceImpl<UserMemberMapper, UserMem
} }
return memberInfoVo; return memberInfoVo;
} }
@Override
public void updateRankHide(UpdateRankHideReq updateRankHideReq) {
if(updateRankHideReq.getRankHide() == null){
throw new ServiceException("参数异常");
}
if(updateRankHideReq.getRankHide() != 0 && updateRankHideReq.getRankHide() != 1){
throw new ServiceException("参数异常");
}
UserMemberTypeEnum typeEnum = this.checkUserIsMember(updateRankHideReq.getUserId());
if(typeEnum == null){
throw new ServiceException("用户非会员或会员已到期");
}
userService.update(Wrappers.lambdaUpdate(User.class)
.eq(User::getId,updateRankHideReq.getUserId())
.set(User::getRankHide,updateRankHideReq.getRankHide()));
}
@Override
public void updateNoGreet(UpdateNoGreet updateNoGreet) {
if(updateNoGreet.getNoGreet() == null){
throw new ServiceException("参数异常");
}
if(updateNoGreet.getNoGreet() != 0 && updateNoGreet.getNoGreet() != 1){
throw new ServiceException("参数异常");
}
UserMemberTypeEnum typeEnum = this.checkUserIsMember(updateNoGreet.getUserId());
if(typeEnum == null){
throw new ServiceException("用户非会员或会员已到期");
}
userService.update(Wrappers.lambdaUpdate(User.class)
.eq(User::getId,updateNoGreet.getUserId())
.set(User::getNoGreet,updateNoGreet.getNoGreet()));
}
} }

View File

@@ -1,6 +1,8 @@
package com.ruoyi.cai.util; package com.ruoyi.cai.util;
import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.NumberUtil;
import lombok.Data;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.STTabJc;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode; import java.math.RoundingMode;
@@ -26,7 +28,15 @@ public class CaiNumUtil {
return mul.intValue()+"%"; return mul.intValue()+"%";
} }
public static BigDecimal memberDay(BigDecimal price, Integer days){
BigDecimal div = NumberUtil.div(price, days, 2);
if(div.compareTo(BigDecimal.ZERO) == 0){
return new BigDecimal("0.01");
}
return div;
}
public static void main(String[] args) { public static void main(String[] args) {
System.out.println(rateToStr(BigDecimal.valueOf(0.07))); System.out.println(memberDay(BigDecimal.valueOf(20), 3220));
} }
} }