Administrator
2025-05-20 f2edd4e500f71373e1f3690547ff4db57ab638fd
feat(mall): 添加会员等级列表信息中的最签到设置

- 在 ApiMemberLevelListInfoVo 中添加 mostSignIn 字段,用于表示会员最签到类型
- 在 ApiSaleServiceImpl 中实现最签到设置的获取和设置
-通过数据字典获取签到设置信息,并解析为 ScoreSettingDto 对象
- 根据签到设置信息设置会员等级列表信息中的 mostSignIn 值
2 files modified
20 ■■■■■ changed files
src/main/java/cc/mrbird/febs/mall/service/impl/ApiSaleServiceImpl.java 17 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/vo/memberLevel/ApiMemberLevelListInfoVo.java 3 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/service/impl/ApiSaleServiceImpl.java
@@ -1,7 +1,9 @@
package cc.mrbird.febs.mall.service.impl;
import cc.mrbird.febs.common.entity.FebsResponse;
import cc.mrbird.febs.common.enumerates.DataDictionaryEnum;
import cc.mrbird.febs.common.utils.LoginUserUtil;
import cc.mrbird.febs.mall.dto.ScoreSettingDto;
import cc.mrbird.febs.mall.dto.sale.ApiSaleListInfoDto;
import cc.mrbird.febs.mall.dto.sale.ApiSaleRecordInfoDto;
import cc.mrbird.febs.mall.dto.sale.ApiTeamListInfoDto;
@@ -15,6 +17,7 @@
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -37,6 +40,7 @@
    private final MallAchieveRecordMapper mallAchieveRecordMapper;
    private final MallMemberWalletMapper mallMemberWalletMapper;
    private final MallMemberMapper mallMemberMapper;
    private final DataDictionaryCustomMapper dataDictionaryCustomMapper;
    @Override
    public FebsResponse saleInfo() {
        ApiSaleInfoVo apiSaleInfoVo = new ApiSaleInfoVo();
@@ -304,9 +308,18 @@
        Map<Integer, HappyMemberLevel> happyMemberLevelMap = happyMemberLevels.stream()
                .collect(Collectors.toMap(HappyMemberLevel::getCode, happyMemberLevel -> happyMemberLevel));
        if (CollUtil.isNotEmpty(happyMemberLevels)) {
            happyMemberLevels.forEach(happyMemberLevel -> {
            int mostSignIn = 1;
            DataDictionaryCustom dic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                    DataDictionaryEnum.SCORE_SIGN_SETTING.getType(),
                    DataDictionaryEnum.SCORE_SIGN_SETTING.getCode());
            if (dic != null) {
                ScoreSettingDto scoreSettingDto = JSONObject.parseObject(dic.getValue(), ScoreSettingDto.class);
                mostSignIn = ObjectUtil.isEmpty(scoreSettingDto.getMostSignIn()) ? 1 : scoreSettingDto.getMostSignIn();
            }
            for (HappyMemberLevel happyMemberLevel : happyMemberLevels) {
                ApiMemberLevelListInfoVo vo = new ApiMemberLevelListInfoVo();
                BeanUtil.copyProperties(happyMemberLevel, vo);
                vo.setMostSignIn(mostSignIn);
                vo.setMemberCode(mallMember.getDirector());
                vo.setMemberScore(mallMemberWallet.getScore());
                vo.setUpgradeScore(
@@ -314,7 +327,7 @@
                                 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
@@ -28,6 +28,9 @@
    @ApiModelProperty(value = "升级所需积分,0不显示")
    private Integer upgradeScore;
    @ApiModelProperty(value = "1:会员经验 2:会员积分")
    private int mostSignIn;
    @ApiModelProperty(value = "自己下单返积分的比例,0则不显示这个权益")
    private BigDecimal minePercent;