xiaoyong931011
2022-09-01 08e98b6421eaa6ff873ee3c4d7f42924e42ffafb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
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.CashOutSettingDto;
import cc.mrbird.febs.mall.dto.ScorePoorDto;
import cc.mrbird.febs.mall.dto.ScoreSettingDto;
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.monitor.service.ILoginLogService;
import cc.mrbird.febs.system.service.IUserService;
import cn.hutool.core.date.DateUtil;
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.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 RedisUtils redisUtils;
 
    @GetMapping("profitSetting")
    public String profitSetting() {
        return FebsUtil.view("modules/system/profitSetting");
    }
 
    @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<String, Object> data = new HashMap<>(5);
 
        //积分池数据
        data.put("scorePool",redisUtils.get("scorePool"));
        //支付统计
        List<Long> 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("totalMember",mallMemberMapper.selectCount(new QueryWrapper<>()) );
        QueryWrapper<MallMember> formalMember = new QueryWrapper<>();
        formalMember.ne("level", AgentLevelEnum.ZERO_LEVEL.name());
        data.put("formalMember",mallMemberMapper.selectCount(formalMember));
 
        QueryWrapper<MallMember> informalMember = new QueryWrapper<>();
        informalMember.eq("level", AgentLevelEnum.ZERO_LEVEL.name());
        data.put("informalMember",mallMemberMapper.selectCount(informalMember));
 
        QueryWrapper<MallMember> todayMember = new QueryWrapper<>();
        todayMember.like("CREATED_TIME", DateUtil.today());
        data.put("todayMember",mallMemberMapper.selectCount(todayMember));
 
        QueryWrapper<MallMember> thisMonthMember = new QueryWrapper<>();
        thisMonthMember.like("CREATED_TIME", DateUtil.format(DateUtil.date(),"yyyy-MM"));
        data.put("thisMonthMember",mallMemberMapper.selectCount(thisMonthMember));
 
        QueryWrapper<MallMember> 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");
    }
}