| | |
| | | import cc.mrbird.febs.common.enumerates.DataDictionaryEnum; |
| | | import cc.mrbird.febs.common.enumerates.FlowTypeEnum; |
| | | import cc.mrbird.febs.common.enumerates.MoneyFlowTypeEnum; |
| | | import cc.mrbird.febs.common.enumerates.ScoreFlowTypeEnum; |
| | | import cc.mrbird.febs.common.exception.FebsException; |
| | | import cc.mrbird.febs.common.utils.LoginUserUtil; |
| | | import cc.mrbird.febs.mall.dto.ScoreSettingDto; |
| | |
| | | import cn.hutool.core.date.DateTime; |
| | | import cn.hutool.core.date.DateUnit; |
| | | import cn.hutool.core.date.DateUtil; |
| | | import cn.hutool.core.util.StrUtil; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | |
| | | // 创建分页对象,传入当前页和每页大小 |
| | | Page<MallMoneyFlow> page = new Page<>(dto.getPageNow(), dto.getPageSize()); |
| | | LambdaQueryWrapper<MallMoneyFlow> mallMoneyFlowLambdaQueryWrapper = new LambdaQueryWrapper<>(); |
| | | List<Integer> integers = Arrays.asList(ScoreFlowTypeEnum.SIGN_SCORE.getValue(), ScoreFlowTypeEnum.SIGN_EXPERIENCE.getValue()); |
| | | mallMoneyFlowLambdaQueryWrapper |
| | | .select(MallMoneyFlow::getCreatedTime, MallMoneyFlow::getAmount) |
| | | .select(MallMoneyFlow::getCreatedTime, MallMoneyFlow::getRemark) |
| | | .eq(MallMoneyFlow::getMemberId, memberId) |
| | | .eq(MallMoneyFlow::getFlowType, FlowTypeEnum.PRIZE_SCORE.getValue()) |
| | | .eq(MallMoneyFlow::getType, MoneyFlowTypeEnum.SCORE_SIGN.getValue()) |
| | | .in(MallMoneyFlow::getType, integers) |
| | | .orderByDesc(MallMoneyFlow::getId) |
| | | ; |
| | | // 调用Mapper方法获取活动分页数据 |
| | | Page<MallMoneyFlow> mallMoneyFlowPage = mallMoneyFlowService.getBaseMapper().selectPage(page, mallMoneyFlowLambdaQueryWrapper); |
| | | if(CollUtil.isNotEmpty(mallMoneyFlowPage.getRecords())){ |
| | | mallMoneyFlowPage.getRecords().forEach(item -> { |
| | | ApiSignListVo apiSignListVo = new ApiSignListVo(); |
| | | apiSignListVo.setAmount(item.getAmount()); |
| | | apiSignListVo.setRemark(item.getRemark()); |
| | | apiSignListVo.setCreatedTime(item.getCreatedTime()); |
| | | apiSignListVos.add(apiSignListVo); |
| | | }); |
| | |
| | | mallScoreSignRecord.setTotalCnt(days); |
| | | mallScoreSignRecord.setSignTime(new Date()); |
| | | mallScoreSignRecordMapper.insert(mallScoreSignRecord); |
| | | |
| | | /** |
| | | * 1:会员经验 2:会员积分 |
| | | */ |
| | | Integer mostSignIn = scoreSetting.getMostSignIn(); |
| | | BigDecimal amount = BigDecimal.valueOf(mallScoreSignRecord.getScore()); |
| | | walletService.add(amount, member.getId(), "prizeScore"); |
| | | mallMoneyFlowService.addMoneyFlow( |
| | | member.getId(), |
| | | amount, |
| | | MoneyFlowTypeEnum.SCORE_SIGN.getValue(), |
| | | null, |
| | | FlowTypeEnum.PRIZE_SCORE.getValue()); |
| | | if(mostSignIn == 1){ |
| | | walletService.add(amount, member.getId(), "score"); |
| | | mallMoneyFlowService.addMoneyFlow( |
| | | member.getId(), |
| | | amount, |
| | | ScoreFlowTypeEnum.SIGN_EXPERIENCE.getValue(), |
| | | mallScoreSignRecord.getId().toString(), |
| | | FlowTypeEnum.SCORE.getValue(), |
| | | StrUtil.format(ScoreFlowTypeEnum.SIGN_EXPERIENCE.getDesc(),amount), |
| | | 2); |
| | | } |
| | | if(mostSignIn == 2){ |
| | | walletService.add(amount, member.getId(), "prizeScore"); |
| | | mallMoneyFlowService.addMoneyFlow( |
| | | member.getId(), |
| | | amount, |
| | | ScoreFlowTypeEnum.SIGN_SCORE.getValue(), |
| | | mallScoreSignRecord.getId().toString(), |
| | | FlowTypeEnum.PRIZE_SCORE.getValue(), |
| | | StrUtil.format(ScoreFlowTypeEnum.SIGN_SCORE.getDesc(),amount), |
| | | 2); |
| | | } |
| | | |
| | | ApiSignVo apiSignVo = new ApiSignVo(); |
| | | apiSignVo.setMineScore(mallScoreSignRecord.getScore()); |
| | | apiSignVo.setMostSignIn(mostSignIn); |
| | | return new FebsResponse().success().data(apiSignVo); |
| | | } |
| | | } |