|  |  |  | 
|---|
|  |  |  | import cc.mrbird.febs.common.entity.FebsConstant; | 
|---|
|  |  |  | import cc.mrbird.febs.common.enumerates.AgentLevelEnum; | 
|---|
|  |  |  | import cc.mrbird.febs.common.enumerates.DataDictionaryEnum; | 
|---|
|  |  |  | import cc.mrbird.febs.common.enumerates.GreenScoreEnum; | 
|---|
|  |  |  | import cc.mrbird.febs.common.enumerates.OrderPayMethodEnum; | 
|---|
|  |  |  | import cc.mrbird.febs.common.service.ValidateCodeService; | 
|---|
|  |  |  | import cc.mrbird.febs.common.utils.FebsUtil; | 
|---|
|  |  |  | import cc.mrbird.febs.common.utils.RedisUtils; | 
|---|
|  |  |  | import cc.mrbird.febs.mall.dto.CashOutSettingDto; | 
|---|
|  |  |  | import cc.mrbird.febs.mall.dto.ScorePoorDto; | 
|---|
|  |  |  | import cc.mrbird.febs.mall.dto.ScoreSettingDto; | 
|---|
|  |  |  | import cc.mrbird.febs.mall.dto.*; | 
|---|
|  |  |  | import cc.mrbird.febs.mall.entity.DataDictionaryCustom; | 
|---|
|  |  |  | import cc.mrbird.febs.mall.entity.MallMember; | 
|---|
|  |  |  | import cc.mrbird.febs.mall.mapper.DataDictionaryCustomMapper; | 
|---|
|  |  |  | import cc.mrbird.febs.mall.mapper.MallAchieveRecordMapper; | 
|---|
|  |  |  | import cc.mrbird.febs.mall.mapper.MallMemberMapper; | 
|---|
|  |  |  | import cc.mrbird.febs.mall.mapper.MallOrderInfoMapper; | 
|---|
|  |  |  | import cc.mrbird.febs.mall.mapper.*; | 
|---|
|  |  |  | import cc.mrbird.febs.monitor.service.ILoginLogService; | 
|---|
|  |  |  | import cc.mrbird.febs.system.service.IUserService; | 
|---|
|  |  |  | import cn.hutool.core.date.DateUtil; | 
|---|
|  |  |  | import cn.hutool.core.util.ObjectUtil; | 
|---|
|  |  |  | import com.alibaba.fastjson.JSONObject; | 
|---|
|  |  |  | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | 
|---|
|  |  |  | import lombok.RequiredArgsConstructor; | 
|---|
|  |  |  | 
|---|
|  |  |  | import org.springframework.web.bind.annotation.GetMapping; | 
|---|
|  |  |  | import org.springframework.web.bind.annotation.RequestMapping; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import java.math.BigDecimal; | 
|---|
|  |  |  | import java.util.*; | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | private final MallMemberMapper mallMemberMapper; | 
|---|
|  |  |  | private final MallOrderInfoMapper mallOrderInfoMapper; | 
|---|
|  |  |  | private final MallAchieveRecordMapper mallAchieveRecordMapper; | 
|---|
|  |  |  | private final MallMemberWalletMapper mallMemberWalletMapper; | 
|---|
|  |  |  | private final RedisUtils redisUtils; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @GetMapping("profitSetting") | 
|---|
|  |  |  | public String profitSetting() { | 
|---|
|  |  |  | return FebsUtil.view("modules/system/profitSetting"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 积分设置 | 
|---|
|  |  |  | * @param model | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @GetMapping("hlmScoreSet") | 
|---|
|  |  |  | @RequiresPermissions("hlmScoreSet:view") | 
|---|
|  |  |  | public String hlmScoreSet(Model model) { | 
|---|
|  |  |  | HlmScoreSetDto hlmScoreSetDto = new HlmScoreSetDto(); | 
|---|
|  |  |  | DataDictionaryCustom signScoreDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( | 
|---|
|  |  |  | DataDictionaryEnum.SIGN_SCORE.getType(), | 
|---|
|  |  |  | DataDictionaryEnum.SIGN_SCORE.getCode()); | 
|---|
|  |  |  | if (signScoreDic != null) { | 
|---|
|  |  |  | String signScore = ObjectUtil.isEmpty(signScoreDic.getValue()) ? "0" : signScoreDic.getValue(); | 
|---|
|  |  |  | hlmScoreSetDto.setSignScore(signScore); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | DataDictionaryCustom signScoreDaysDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( | 
|---|
|  |  |  | DataDictionaryEnum.SIGN_SCORE_DAYS.getType(), | 
|---|
|  |  |  | DataDictionaryEnum.SIGN_SCORE_DAYS.getCode()); | 
|---|
|  |  |  | if (signScoreDaysDic != null) { | 
|---|
|  |  |  | String signScoreDays = ObjectUtil.isEmpty(signScoreDaysDic.getValue()) ? "0" : signScoreDaysDic.getValue(); | 
|---|
|  |  |  | hlmScoreSetDto.setSignScoreDays(signScoreDays); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | DataDictionaryCustom signScoreCntDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( | 
|---|
|  |  |  | DataDictionaryEnum.SIGN_SCORE_CNT.getType(), | 
|---|
|  |  |  | DataDictionaryEnum.SIGN_SCORE_CNT.getCode()); | 
|---|
|  |  |  | if (signScoreCntDic != null) { | 
|---|
|  |  |  | String signScoreCnt = ObjectUtil.isEmpty(signScoreCntDic.getValue()) ? "0" : signScoreCntDic.getValue(); | 
|---|
|  |  |  | hlmScoreSetDto.setSignScoreCnt(signScoreCnt); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | DataDictionaryCustom scorePercentDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( | 
|---|
|  |  |  | DataDictionaryEnum.SCORE_PERCENT.getType(), | 
|---|
|  |  |  | DataDictionaryEnum.SCORE_PERCENT.getCode()); | 
|---|
|  |  |  | if (scorePercentDic != null) { | 
|---|
|  |  |  | String scorePercent = ObjectUtil.isEmpty(scorePercentDic.getValue()) ? "0" : scorePercentDic.getValue(); | 
|---|
|  |  |  | hlmScoreSetDto.setScorePercent(scorePercent); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | DataDictionaryCustom scoreChangeDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( | 
|---|
|  |  |  | DataDictionaryEnum.SCORE_CHANGE.getType(), | 
|---|
|  |  |  | DataDictionaryEnum.SCORE_CHANGE.getCode()); | 
|---|
|  |  |  | if (scoreChangeDic != null) { | 
|---|
|  |  |  | String scoreChange = ObjectUtil.isEmpty(scoreChangeDic.getValue()) ? "0" : scoreChangeDic.getValue(); | 
|---|
|  |  |  | hlmScoreSetDto.setScoreChange(scoreChange); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | DataDictionaryCustom starGetDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( | 
|---|
|  |  |  | DataDictionaryEnum.STAR_GET.getType(), | 
|---|
|  |  |  | DataDictionaryEnum.STAR_GET.getCode()); | 
|---|
|  |  |  | if (starGetDic != null) { | 
|---|
|  |  |  | String starGet = ObjectUtil.isEmpty(starGetDic.getValue()) ? "0" : starGetDic.getValue(); | 
|---|
|  |  |  | hlmScoreSetDto.setStarGet(starGet); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | model.addAttribute("hlmScoreSet", hlmScoreSetDto); | 
|---|
|  |  |  | return FebsUtil.view("modules/system/hlmScoreSet"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @GetMapping("cashOutSetting") | 
|---|
|  |  |  | 
|---|
|  |  |  | data.put("lastMonth", mallAchieveRecordMapper.selectAchieveTotal("M", DateUtil.offsetMonth(new Date(), -1))); | 
|---|
|  |  |  | data.put("thisMonth", mallAchieveRecordMapper.selectAchieveTotal("M", new Date())); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | data.put("totalBalance",mallMemberWalletMapper.selectSumBalance().setScale(2, BigDecimal.ROUND_DOWN)); | 
|---|
|  |  |  | data.put("totalScore",mallMemberWalletMapper.selectSumScore().setScale(2, BigDecimal.ROUND_DOWN)); | 
|---|
|  |  |  | data.put("totalPrizeScore",mallMemberWalletMapper.selectSumPrizeScore().setScale(2, BigDecimal.ROUND_DOWN)); | 
|---|
|  |  |  | data.put("totalCommission",mallMemberWalletMapper.selectSumCommission().setScale(2, BigDecimal.ROUND_DOWN)); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //会员数据 | 
|---|
|  |  |  | data.put("totalMember",mallMemberMapper.selectCount(new QueryWrapper<>()) ); | 
|---|
|  |  |  | QueryWrapper<MallMember> formalMember = new QueryWrapper<>(); | 
|---|
|  |  |  | 
|---|
|  |  |  | model.addAttribute("indexData", data); | 
|---|
|  |  |  | return FebsUtil.view("modules/system/indexData"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @GetMapping("hlmBasicPerk") | 
|---|
|  |  |  | @RequiresPermissions("hlmBasicPerk:view") | 
|---|
|  |  |  | public String hlmBasicPerk(Model model) { | 
|---|
|  |  |  | HlmBasicPerkDto hlmBasicPerkDto = new HlmBasicPerkDto(); | 
|---|
|  |  |  | DataDictionaryCustom sharePerkDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( | 
|---|
|  |  |  | DataDictionaryEnum.SHARE_PERK.getType(), | 
|---|
|  |  |  | DataDictionaryEnum.SHARE_PERK.getCode()); | 
|---|
|  |  |  | if (sharePerkDic != null) { | 
|---|
|  |  |  | String sharePerk = ObjectUtil.isEmpty(sharePerkDic.getValue()) ? "0" : sharePerkDic.getValue(); | 
|---|
|  |  |  | hlmBasicPerkDto.setSharePerk(sharePerk); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | DataDictionaryCustom teamPerkDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( | 
|---|
|  |  |  | DataDictionaryEnum.TEAM_PERK.getType(), | 
|---|
|  |  |  | DataDictionaryEnum.TEAM_PERK.getCode()); | 
|---|
|  |  |  | if (teamPerkDic != null) { | 
|---|
|  |  |  | String teamPerk = ObjectUtil.isEmpty(teamPerkDic.getValue()) ? "0" : teamPerkDic.getValue(); | 
|---|
|  |  |  | hlmBasicPerkDto.setTeamPerk(teamPerk); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | DataDictionaryCustom teamEqualsPerkDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( | 
|---|
|  |  |  | DataDictionaryEnum.TEAM_EQUALS_PERK.getType(), | 
|---|
|  |  |  | DataDictionaryEnum.TEAM_EQUALS_PERK.getCode()); | 
|---|
|  |  |  | if (teamEqualsPerkDic != null) { | 
|---|
|  |  |  | String teamEqualsPerk = ObjectUtil.isEmpty(teamEqualsPerkDic.getValue()) ? "0" : teamEqualsPerkDic.getValue(); | 
|---|
|  |  |  | hlmBasicPerkDto.setTeamEqualsPerk(teamEqualsPerk); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | DataDictionaryCustom offLinePerkDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( | 
|---|
|  |  |  | DataDictionaryEnum.OFFLINE_PERK.getType(), | 
|---|
|  |  |  | DataDictionaryEnum.OFFLINE_PERK.getCode()); | 
|---|
|  |  |  | if (offLinePerkDic != null) { | 
|---|
|  |  |  | String offLinePerk = ObjectUtil.isEmpty(offLinePerkDic.getValue()) ? "0" : offLinePerkDic.getValue(); | 
|---|
|  |  |  | hlmBasicPerkDto.setOffLinePerk(offLinePerk); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | DataDictionaryCustom agentPerkDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( | 
|---|
|  |  |  | DataDictionaryEnum.AGENT_PERK.getType(), | 
|---|
|  |  |  | DataDictionaryEnum.AGENT_PERK.getCode()); | 
|---|
|  |  |  | if (agentPerkDic != null) { | 
|---|
|  |  |  | String agentPerk = ObjectUtil.isEmpty(agentPerkDic.getValue()) ? "0" : agentPerkDic.getValue(); | 
|---|
|  |  |  | hlmBasicPerkDto.setAgentPerk(agentPerk); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | model.addAttribute("hlmBasicPerk", hlmBasicPerkDto); | 
|---|
|  |  |  | return FebsUtil.view("modules/system/hlmBasicPerk"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 积分凭证设置 | 
|---|
|  |  |  | * @param model | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @GetMapping("hlmVoucherSet") | 
|---|
|  |  |  | @RequiresPermissions("hlmVoucherSet:view") | 
|---|
|  |  |  | public String hlmVoucherSet(Model model) { | 
|---|
|  |  |  | HlmVoucherSetDto hlmVoucherSetDto = new HlmVoucherSetDto(); | 
|---|
|  |  |  | DataDictionaryCustom totalCntDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( | 
|---|
|  |  |  | GreenScoreEnum.TOTAL_CNT.getType(), | 
|---|
|  |  |  | GreenScoreEnum.TOTAL_CNT.getCode()); | 
|---|
|  |  |  | if (totalCntDic != null) { | 
|---|
|  |  |  | String totalCnt = ObjectUtil.isEmpty(totalCntDic.getValue()) ? "0" : totalCntDic.getValue(); | 
|---|
|  |  |  | hlmVoucherSetDto.setTotalCnt(totalCnt); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | DataDictionaryCustom surplusCntDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( | 
|---|
|  |  |  | GreenScoreEnum.SURPLUS_CNT.getType(), | 
|---|
|  |  |  | GreenScoreEnum.SURPLUS_CNT.getCode()); | 
|---|
|  |  |  | if (surplusCntDic != null) { | 
|---|
|  |  |  | String surplusCnt = ObjectUtil.isEmpty(surplusCntDic.getValue()) ? "0" : surplusCntDic.getValue(); | 
|---|
|  |  |  | hlmVoucherSetDto.setSurplusCnt(surplusCnt); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | DataDictionaryCustom roleReleasePercentDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( | 
|---|
|  |  |  | GreenScoreEnum.ROLE_RELEASE_PERCENT.getType(), | 
|---|
|  |  |  | GreenScoreEnum.ROLE_RELEASE_PERCENT.getCode()); | 
|---|
|  |  |  | if (roleReleasePercentDic != null) { | 
|---|
|  |  |  | String roleReleasePercent = ObjectUtil.isEmpty(roleReleasePercentDic.getValue()) ? "0" : roleReleasePercentDic.getValue(); | 
|---|
|  |  |  | hlmVoucherSetDto.setRoleReleasePercent(roleReleasePercent); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | DataDictionaryCustom achieveReleasePercentDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( | 
|---|
|  |  |  | GreenScoreEnum.ACHIEVE_RELEASE_PERCENT.getType(), | 
|---|
|  |  |  | GreenScoreEnum.ACHIEVE_RELEASE_PERCENT.getCode()); | 
|---|
|  |  |  | if (achieveReleasePercentDic != null) { | 
|---|
|  |  |  | String achieveReleasePercent = ObjectUtil.isEmpty(achieveReleasePercentDic.getValue()) ? "0" : achieveReleasePercentDic.getValue(); | 
|---|
|  |  |  | hlmVoucherSetDto.setAchieveReleasePercent(achieveReleasePercent); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | DataDictionaryCustom achieveMaxDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( | 
|---|
|  |  |  | GreenScoreEnum.ACHIEVE_MAX.getType(), | 
|---|
|  |  |  | GreenScoreEnum.ACHIEVE_MAX.getCode()); | 
|---|
|  |  |  | if (achieveMaxDic != null) { | 
|---|
|  |  |  | String achieveMax = ObjectUtil.isEmpty(achieveMaxDic.getValue()) ? "0" : achieveMaxDic.getValue(); | 
|---|
|  |  |  | hlmVoucherSetDto.setAchieveMax(achieveMax); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | DataDictionaryCustom achieveMinDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( | 
|---|
|  |  |  | GreenScoreEnum.ACHIEVE_MIN.getType(), | 
|---|
|  |  |  | GreenScoreEnum.ACHIEVE_MIN.getCode()); | 
|---|
|  |  |  | if (achieveMinDic != null) { | 
|---|
|  |  |  | String achieveMin = ObjectUtil.isEmpty(achieveMinDic.getValue()) ? "0" : achieveMinDic.getValue(); | 
|---|
|  |  |  | hlmVoucherSetDto.setAchieveMin(achieveMin); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | DataDictionaryCustom roleAchievePercentDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( | 
|---|
|  |  |  | GreenScoreEnum.ROLE_ACHIEVE_PERCENT.getType(), | 
|---|
|  |  |  | GreenScoreEnum.ROLE_ACHIEVE_PERCENT.getCode()); | 
|---|
|  |  |  | if (roleAchievePercentDic != null) { | 
|---|
|  |  |  | String roleAchievePercent = ObjectUtil.isEmpty(roleAchievePercentDic.getValue()) ? "0" : roleAchievePercentDic.getValue(); | 
|---|
|  |  |  | hlmVoucherSetDto.setRoleAchievePercent(roleAchievePercent); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | DataDictionaryCustom starAchievePercentDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( | 
|---|
|  |  |  | GreenScoreEnum.STAR_ACHIEVE_PERCENT.getType(), | 
|---|
|  |  |  | GreenScoreEnum.STAR_ACHIEVE_PERCENT.getCode()); | 
|---|
|  |  |  | if (starAchievePercentDic != null) { | 
|---|
|  |  |  | String starAchievePercent = ObjectUtil.isEmpty(starAchievePercentDic.getValue()) ? "0" : starAchievePercentDic.getValue(); | 
|---|
|  |  |  | hlmVoucherSetDto.setStarAchievePercent(starAchievePercent); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | DataDictionaryCustom levelAchievePercentDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( | 
|---|
|  |  |  | GreenScoreEnum.LEVEL_ACHIEVE_PERCENT.getType(), | 
|---|
|  |  |  | GreenScoreEnum.LEVEL_ACHIEVE_PERCENT.getCode()); | 
|---|
|  |  |  | if (levelAchievePercentDic != null) { | 
|---|
|  |  |  | String levelAchievePercent = ObjectUtil.isEmpty(levelAchievePercentDic.getValue()) ? "0" : levelAchievePercentDic.getValue(); | 
|---|
|  |  |  | hlmVoucherSetDto.setLevelAchievePercent(levelAchievePercent); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | model.addAttribute("hlmVoucherSetDto", hlmVoucherSetDto); | 
|---|
|  |  |  | return FebsUtil.view("modules/system/hlmVoucherSet"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|