src/main/java/cc/mrbird/febs/mall/controller/member/ApiMemberLevelController.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/cc/mrbird/febs/mall/service/ApiSaleService.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/cc/mrbird/febs/mall/service/impl/ApiSaleServiceImpl.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/cc/mrbird/febs/mall/vo/memberLevel/ApiMemberLevelListInfoVo.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/cc/mrbird/febs/mall/vo/sale/ApiLevelListInfoVo.java | ●●●●● patch | view | raw | blame | history |
src/main/java/cc/mrbird/febs/mall/controller/member/ApiMemberLevelController.java
New file @@ -0,0 +1,37 @@ package cc.mrbird.febs.mall.controller.member; import cc.mrbird.febs.common.entity.FebsResponse; import cc.mrbird.febs.mall.service.ApiSaleService; import cc.mrbird.febs.mall.vo.memberLevel.ApiMemberLevelListInfoVo; import cc.mrbird.febs.mall.vo.sale.ApiLevelListInfoVo; 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.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @Slf4j @RestController @Validated @RequestMapping(value = "/api/memberLevel") @RequiredArgsConstructor @Api(value = "ApiMemberLevelController", tags = "365会员中心") public class ApiMemberLevelController { private final ApiSaleService apiSaleService; @ApiOperation(value = "等级说明", notes = "等级说明") @ApiResponses({ @ApiResponse(code = 200, message = "success", response = ApiMemberLevelListInfoVo.class) }) @PostMapping(value = "/memberLevelList") public FebsResponse memberLevelList() { return apiSaleService.memberLevelList(); } } src/main/java/cc/mrbird/febs/mall/service/ApiSaleService.java
@@ -22,4 +22,6 @@ FebsResponse levelInfoList(); FebsResponse saleRecord(ApiSaleRecordInfoDto dto); FebsResponse memberLevelList(); } src/main/java/cc/mrbird/febs/mall/service/impl/ApiSaleServiceImpl.java
@@ -8,10 +8,13 @@ import cc.mrbird.febs.mall.entity.*; import cc.mrbird.febs.mall.mapper.*; import cc.mrbird.febs.mall.service.ApiSaleService; import cc.mrbird.febs.mall.vo.memberLevel.ApiMemberLevelListInfoVo; import cc.mrbird.febs.mall.vo.sale.*; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -30,6 +33,7 @@ public class ApiSaleServiceImpl extends ServiceImpl<MallMemberMapper, MallMember> implements ApiSaleService { private final HappySaleLevelMapper happySaleLevelMapper; private final HappyMemberLevelMapper happyMemberLevelMapper; private final MallAchieveRecordMapper mallAchieveRecordMapper; private final MallMemberWalletMapper mallMemberWalletMapper; @Override @@ -142,6 +146,10 @@ public FebsResponse levelInfoList() { ArrayList<ApiLevelListInfoVo> apiLevelListInfoVos = new ArrayList<>(); // 获取当前登录用户的ID Long memberId = LoginUserUtil.getLoginUser().getId(); MallMember mallMember = this.baseMapper.selectById(memberId); List<HappySaleLevel> happySaleLevels = happySaleLevelMapper.selectList( new LambdaQueryWrapper<HappySaleLevel>() .orderByAsc(HappySaleLevel::getCode) @@ -150,6 +158,7 @@ happySaleLevels.forEach(happySaleLevel -> { ApiLevelListInfoVo apiLevelListInfoVo = new ApiLevelListInfoVo(); apiLevelListInfoVo.setName(happySaleLevel.getName()); apiLevelListInfoVo.setMemberCode(mallMember.getStoreMaster()); apiLevelListInfoVo.setCode(happySaleLevel.getCode()); apiLevelListInfoVo.setContent(happySaleLevel.getContent()); apiLevelListInfoVo.setIconPng(happySaleLevel.getIconPng()); @@ -262,6 +271,37 @@ return new FebsResponse().success().data(apiSaleRecordInfoVo); } @Override public FebsResponse memberLevelList() { ArrayList<ApiMemberLevelListInfoVo> apiLevelListInfoVos = new ArrayList<>(); // 获取当前登录用户的ID Long memberId = LoginUserUtil.getLoginUser().getId(); MallMember mallMember = this.baseMapper.selectById(memberId); MallMemberWallet mallMemberWallet = mallMemberWalletMapper.selectWalletByMemberId(memberId); List<HappyMemberLevel> happyMemberLevels = happyMemberLevelMapper.selectList( new LambdaQueryWrapper<HappyMemberLevel>() .orderByAsc(HappyMemberLevel::getCode) ); //Stream 操作 happyMemberLevels,返回一个Map<code,HappyMemberLevel> Map<Integer, HappyMemberLevel> happyMemberLevelMap = happyMemberLevels.stream() .collect(Collectors.toMap(HappyMemberLevel::getCode, happyMemberLevel -> happyMemberLevel)); if (CollUtil.isNotEmpty(happyMemberLevels)) { happyMemberLevels.forEach(happyMemberLevel -> { ApiMemberLevelListInfoVo vo = new ApiMemberLevelListInfoVo(); BeanUtil.copyProperties(happyMemberLevel, vo); vo.setMemberCode(mallMember.getDirector()); vo.setMemberScore(mallMemberWallet.getScore()); vo.setUpgradeScore( ObjectUtil.isEmpty(happyMemberLevelMap.get(happyMemberLevel.getCode() + 1)) ? 0 : happyMemberLevelMap.get(happyMemberLevel.getCode() + 1).getUpgradeScore() ); apiLevelListInfoVos.add(vo); }); } return new FebsResponse().success().data(apiLevelListInfoVos); } } src/main/java/cc/mrbird/febs/mall/vo/memberLevel/ApiMemberLevelListInfoVo.java
New file @@ -0,0 +1,39 @@ package cc.mrbird.febs.mall.vo.memberLevel; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.math.BigDecimal; @Data @ApiModel(value = "ApiMemberLevelListInfoVo", description = "") public class ApiMemberLevelListInfoVo { @ApiModelProperty(value = "等级名称") private String name; @ApiModelProperty(value = "等级图片") private String headerPng; @ApiModelProperty(value = "等级编码") private Integer code; @ApiModelProperty(value = "当前等级编码") private Integer memberCode; @ApiModelProperty(value = "升级所需积分,0不显示") private BigDecimal memberScore; @ApiModelProperty(value = "升级所需积分,0不显示") private Integer upgradeScore; @ApiModelProperty(value = "自己下单返积分的比例,0则不显示这个权益") private BigDecimal minePercent; @ApiModelProperty(value = "邀请好友下单后返积分比例,0则不显示这个权益") private BigDecimal otherPercent; @ApiModelProperty(value = "规则说明") private String content; } src/main/java/cc/mrbird/febs/mall/vo/sale/ApiLevelListInfoVo.java
@@ -10,7 +10,10 @@ @ApiModelProperty(value = "等级名称") private String name; @ApiModelProperty(value = "分销等级(当前等级等于我的推广接口中的分销等级)") @ApiModelProperty(value = "当前等级编码") private Integer memberCode; @ApiModelProperty(value = "分销等级") private Integer code; @ApiModelProperty(value = "规则说明") private String content;