src/main/java/cc/mrbird/febs/common/enumerates/YesOrNoEnum.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/cc/mrbird/febs/mall/controller/ApiRunVipController.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/cc/mrbird/febs/mall/conversion/RunVipConversion.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/cc/mrbird/febs/mall/service/IRunVipService.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/cc/mrbird/febs/mall/service/impl/RunVipServiceImpl.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/cc/mrbird/febs/mall/vo/ApiRunVipVo.java | ●●●●● patch | view | raw | blame | history |
src/main/java/cc/mrbird/febs/common/enumerates/YesOrNoEnum.java
New file @@ -0,0 +1,23 @@ package cc.mrbird.febs.common.enumerates; import lombok.Getter; @Getter public enum YesOrNoEnum { /** * 是否,同意拒绝,上线下线 */ YES(1, "是"), NO(0, "否"); private final int value; private final String desc; YesOrNoEnum(int value, String desc) { this.value = value; this.desc = desc; } } src/main/java/cc/mrbird/febs/mall/controller/ApiRunVipController.java
New file @@ -0,0 +1,37 @@ package cc.mrbird.febs.mall.controller; import cc.mrbird.febs.common.entity.FebsResponse; import cc.mrbird.febs.mall.service.IRunVipService; import cc.mrbird.febs.mall.vo.ApiRunVipVo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiResponse; import io.swagger.annotations.ApiResponses; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @Slf4j @Validated @RestController @CrossOrigin("*") @RequiredArgsConstructor @RequestMapping(value = "/api/runVip") @Api(value = "ApiRunVipController", tags = "碳积分接口") public class ApiRunVipController { private final IRunVipService iRunVipService; @ApiOperation(value = "会员中心-购买VIP", notes = "会员中心-购买VIP") @ApiResponses({ @ApiResponse(code = 200, message = "success", response = ApiRunVipVo.class) }) @GetMapping(value = "/vipInfo") public FebsResponse vipInfo() { return new FebsResponse().success().data(iRunVipService.vipInfo()); } } src/main/java/cc/mrbird/febs/mall/conversion/RunVipConversion.java
New file @@ -0,0 +1,15 @@ package cc.mrbird.febs.mall.conversion; import cc.mrbird.febs.mall.entity.RunVip; import cc.mrbird.febs.mall.vo.ApiRunVipVo; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; import java.util.List; @Mapper public abstract class RunVipConversion { public static final RunVipConversion INSTANCE = Mappers.getMapper(RunVipConversion.class); public abstract List<ApiRunVipVo> entityToVos(List<RunVip> runVips); } src/main/java/cc/mrbird/febs/mall/service/IRunVipService.java
New file @@ -0,0 +1,11 @@ package cc.mrbird.febs.mall.service; import cc.mrbird.febs.mall.entity.RunVip; import cc.mrbird.febs.mall.vo.ApiRunVipVo; import com.baomidou.mybatisplus.extension.service.IService; import java.util.List; public interface IRunVipService extends IService<RunVip> { List<ApiRunVipVo> vipInfo(); } src/main/java/cc/mrbird/febs/mall/service/impl/RunVipServiceImpl.java
New file @@ -0,0 +1,44 @@ package cc.mrbird.febs.mall.service.impl; import cc.mrbird.febs.common.enumerates.YesOrNoEnum; import cc.mrbird.febs.common.utils.LoginUserUtil; import cc.mrbird.febs.mall.conversion.RunVipConversion; import cc.mrbird.febs.mall.entity.MallMember; import cc.mrbird.febs.mall.entity.RunVip; import cc.mrbird.febs.mall.mapper.RunVipMapper; import cc.mrbird.febs.mall.service.IRunVipService; import cc.mrbird.febs.mall.vo.ApiRunVipVo; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; @Slf4j @Service @RequiredArgsConstructor public class RunVipServiceImpl extends ServiceImpl<RunVipMapper, RunVip> implements IRunVipService { @Override public List<ApiRunVipVo> vipInfo() { MallMember member = LoginUserUtil.getLoginUser(); List<ApiRunVipVo> apiRunVipVos = new ArrayList<>(); if (StrUtil.isEmpty(member.getLevel())) { return apiRunVipVos; } String level = member.getLevel(); //获取当前用户的VIP等级 RunVip runVip = this.baseMapper.selectOne(new LambdaQueryWrapper<RunVip>().eq(RunVip::getVipCode, level)); //获取大于当前用户等级序号的所有的VIP等级 LambdaQueryWrapper<RunVip> runVipLambdaQueryWrapper = new LambdaQueryWrapper<>(); runVipLambdaQueryWrapper.eq(RunVip::getState, YesOrNoEnum.YES.getValue()); runVipLambdaQueryWrapper.gt(RunVip::getOrderNumber, runVip.getOrderNumber()); List<RunVip> runVips = this.baseMapper.selectList(runVipLambdaQueryWrapper); apiRunVipVos = RunVipConversion.INSTANCE.entityToVos(runVips); return apiRunVipVos; } } src/main/java/cc/mrbird/febs/mall/vo/ApiRunVipVo.java
New file @@ -0,0 +1,39 @@ package cc.mrbird.febs.mall.vo; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.math.BigDecimal; @Data @ApiModel(value = "ApiRunVipVo", description = "VIP信息") public class ApiRunVipVo { @ApiModelProperty(value = "ID") private Long id; @ApiModelProperty(value = "序号") private Integer orderNumber;//序号 @ApiModelProperty(value = "vip编码") private String vipCode;//vip编码 @ApiModelProperty(value = "vip名称") private String vipName;//vip名称 @ApiModelProperty(value = "vip图标") private String vipPng;//vip图标 @ApiModelProperty(value = "原价") private BigDecimal originalPrice;//原价 @ApiModelProperty(value = "现价") private BigDecimal presentPrice;//现价 @ApiModelProperty(value = "是否上架 1是0否") private Integer state;//是否上架 1是0否 @ApiModelProperty(value = "是否允许碳积分兑换碳币 1是0否") private Integer changeState;//是否允许碳积分兑换碳币 1是0否 @ApiModelProperty(value = "是否允许碳币提现 1是0否") private Integer withdrawState;//是否允许碳币提现 1是0否 @ApiModelProperty(value = "每日碳积分增长倍数") private BigDecimal growthValue;//每日碳积分增长倍数 @ApiModelProperty(value = "每日获取碳积分最大值") private Integer growthCnt;//每日获取碳积分最大值 @ApiModelProperty(value = "购买会员返利金额比例(实际支付金额 * rebatePercent = 返利金额)") private BigDecimal rebatePercent;//购买会员返利金额比例(实际支付金额 * rebatePercent = 返利金额) }