package cc.mrbird.febs.mall.controller; 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.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.*; import cc.mrbird.febs.mall.entity.DataDictionaryCustom; import cc.mrbird.febs.mall.entity.MallMember; 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.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import java.math.BigDecimal; import java.util.*; @Controller("mallSystemView") @RequestMapping(FebsConstant.VIEW_PREFIX + "modules/system") @RequiredArgsConstructor public class ViewSystemController { private final DataDictionaryCustomMapper dataDictionaryCustomMapper; 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") @RequiresPermissions("cashOutSetting:update") public String cashOutSetting(Model model) { DataDictionaryCustom dic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.CASHOUT_SETTING.getType(), DataDictionaryEnum.CASHOUT_SETTING.getCode()); if (dic != null) { model.addAttribute("cashout", JSONObject.parseObject(dic.getValue(), CashOutSettingDto.class)); } return FebsUtil.view("modules/system/cashOutSetting"); } @GetMapping("scorePoorSetting") @RequiresPermissions("scorePoorSetting:update") public String scorePoor(Model model) { DataDictionaryCustom dic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.SCORE_POOR_RADIO.getType(), DataDictionaryEnum.SCORE_POOR_RADIO.getCode()); if (dic != null) { model.addAttribute("scorePoor", JSONObject.parseObject(dic.getValue(), ScorePoorDto.class)); } return FebsUtil.view("modules/system/scorePoorSetting"); } @GetMapping("indexData") @RequiresPermissions("indexData:view") public String indexData(Model model) { Map data = new HashMap<>(5); //积分池数据 data.put("scorePool",redisUtils.get("scorePool")); //支付统计 List states = new ArrayList(); states.add(2L); states.add(3L); states.add(4L); data.put("wechatPay",mallOrderInfoMapper.selectSumAmountByPayMethodAndSomeStatue(OrderPayMethodEnum.WECHAT.getName(), states)); data.put("alipayPay",mallOrderInfoMapper.selectSumAmountByPayMethodAndSomeStatue(OrderPayMethodEnum.ALIPAY.getName(), states)); data.put("scorePay",mallOrderInfoMapper.selectSumAmountByPayMethodAndSomeStatue(OrderPayMethodEnum.BANK.getName(), states)); data.put("balancePay",mallOrderInfoMapper.selectSumAmountByPayMethodAndSomeStatue(OrderPayMethodEnum.BALANCE.getName(), states)); data.put("lastDay", mallAchieveRecordMapper.selectAchieveTotal("D", DateUtil.offsetDay(new Date(), -1))); data.put("today", mallAchieveRecordMapper.selectAchieveTotal("D", new Date())); 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 formalMember = new QueryWrapper<>(); formalMember.ne("level", AgentLevelEnum.ZERO_LEVEL.name()); data.put("formalMember",mallMemberMapper.selectCount(formalMember)); QueryWrapper informalMember = new QueryWrapper<>(); informalMember.eq("level", AgentLevelEnum.ZERO_LEVEL.name()); data.put("informalMember",mallMemberMapper.selectCount(informalMember)); QueryWrapper todayMember = new QueryWrapper<>(); todayMember.like("CREATED_TIME", DateUtil.today()); data.put("todayMember",mallMemberMapper.selectCount(todayMember)); QueryWrapper thisMonthMember = new QueryWrapper<>(); thisMonthMember.like("CREATED_TIME", DateUtil.format(DateUtil.date(),"yyyy-MM")); data.put("thisMonthMember",mallMemberMapper.selectCount(thisMonthMember)); QueryWrapper lastMonthMember = new QueryWrapper<>(); lastMonthMember.like("CREATED_TIME", DateUtil.format(DateUtil.offsetMonth(new Date(), -1),"yyyy-MM")); data.put("lastMonthMember",mallMemberMapper.selectCount(lastMonthMember)); 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"); } }