Administrator
2025-05-15 3e3e54ccd6b95746f854ed27073d73b35d64e122
feat(mall): 新增新人礼弹窗逻辑

- 在 ApiMallMemberServiceImpl 中添加新人礼弹窗逻辑
- 在 ApiMemberNewGiftSettingVo 中增加 openState 字段用于控制弹窗显示
- 根据用户最后登录时间判断是否显示新人礼弹窗
2 files modified
28 ■■■■■ changed files
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java 23 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/vo/ApiMemberNewGiftSettingVo.java 5 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
@@ -649,6 +649,7 @@
                    mallMember.setAccountType(MallMember.ACCOUNT_TYPE_NORMAL);
                    mallMember.setOpenId(openId);
                    mallMember.setSessionKey(sessionKey);
                    mallMember.setTradePassword(SecureUtil.md5("123456"));
                    if (StrUtil.isNotBlank(apiXcxLoginDto.getInviteId())) {
                        MallMember member = this.baseMapper.selectInfoByInviteId(apiXcxLoginDto.getInviteId());
@@ -1568,13 +1569,31 @@
    @Override
    public FebsResponse newGiftEvent() {
        // 获取当前登录用户的ID
        Long memberId = LoginUserUtil.getLoginUser().getId();
        ApiMemberNewGiftSettingVo apiMemberNewGiftSettingVo = new ApiMemberNewGiftSettingVo();
        MallMember mallMember = this.baseMapper.selectById(memberId);
        Date lastLoginTime = mallMember.getLastLoginTime();
        if(lastLoginTime == null){
            apiMemberNewGiftSettingVo.setOpenState(1);
        }
        if(lastLoginTime != null){
            Date now = new Date();
            long between = DateUtil.between(lastLoginTime, now, DateUnit.DAY);
            if(between > 0){
                apiMemberNewGiftSettingVo.setOpenState(1);
            }else{
                apiMemberNewGiftSettingVo.setOpenState(0);
            }
        }
        DataDictionaryCustom dic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                CommonDictionaryEnum.NEW_GIFT_SETTING.getType(),
                CommonDictionaryEnum.NEW_GIFT_SETTING.getCode()
        );
        ApiNewGiftSettingDto apiNewGiftSettingDto = JSONObject.parseObject(dic.getValue(), ApiNewGiftSettingDto.class);
        ApiMemberNewGiftSettingVo apiMemberNewGiftSettingVo = new ApiMemberNewGiftSettingVo();
        apiMemberNewGiftSettingVo.setState(apiNewGiftSettingDto.getState());
        apiMemberNewGiftSettingVo.setPrizeScore(apiNewGiftSettingDto.getPrizeScore());
src/main/java/cc/mrbird/febs/mall/vo/ApiMemberNewGiftSettingVo.java
@@ -8,6 +8,11 @@
@ApiModel(value = "ApiMemberNewGiftSettingVo", description = "参数类")
public class ApiMemberNewGiftSettingVo {
    /**
     * 是否弹窗
     */
    @ApiModelProperty(value = "是否弹窗 0-不可以 1-可以", example = "丽丽")
    private int openState;
    /**
     * 是否开启新人礼
     */
    @ApiModelProperty(value = "是否开启新人礼 0-关闭 1-开启", example = "丽丽")