src/main/java/cc/mrbird/febs/mall/controller/ViewSystemController.java | ●●●●● patch | view | raw | blame | history | |
src/main/resources/templates/febs/views/index.html | ●●●●● patch | view | raw | blame | history | |
src/main/resources/templates/febs/views/modules/system/indexData.html | ●●●●● patch | view | raw | blame | history |
src/main/java/cc/mrbird/febs/mall/controller/ViewSystemController.java
@@ -1,20 +1,34 @@ 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") @@ -23,6 +37,11 @@ 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() { @@ -48,4 +67,53 @@ } 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"); } } src/main/resources/templates/febs/views/index.html
@@ -133,164 +133,164 @@ </div> </div> <div class="layui-card-body layui-anim layui-anim-fadein"> <div class="layui-row"> <div class="m-title">订单付款</div> <div class="layui-row layui-col-space15"> <div class="layui-col-md3"> <div class="layui-panel"> <div class="box"> <p class="name">微信支付</p> <p class="num"><span id="wechatPay"></span></p> </div> </div> </div> <div class="layui-col-md3"> <div class="layui-panel"> <div class="box"> <p class="name">支付宝支付</p> <p class="num" ><span id="alipayPay"></span></p> </div> </div> </div> <div class="layui-col-md3"> <div class="layui-panel"> <div class="box"> <p class="name">银行卡支付</p> <p class="num"><span id="scorePay"></span></p> </div> </div> </div> <div class="layui-col-md3"> <div class="layui-panel"> <div class="box"> <p class="name">余额支付</p> <p class="num"><span id="balancePay"></span></p> </div> </div> </div> </div> </div> </div> <!-- <div class="layui-card-body layui-anim layui-anim-fadein">--> <!-- <div class="layui-row">--> <!-- <div class="m-title">订单付款</div>--> <!-- <div class="layui-row layui-col-space15">--> <!-- <div class="layui-col-md3">--> <!-- <div class="layui-panel">--> <!-- <div class="box">--> <!-- <p class="name">微信支付</p>--> <!-- <p class="num"><span id="wechatPay"></span></p>--> <!-- </div>--> <!-- </div>--> <!-- </div>--> <!-- <div class="layui-col-md3">--> <!-- <div class="layui-panel">--> <!-- <div class="box">--> <!-- <p class="name">支付宝支付</p>--> <!-- <p class="num" ><span id="alipayPay"></span></p>--> <!-- </div>--> <!-- </div>--> <!-- </div>--> <!-- <div class="layui-col-md3">--> <!-- <div class="layui-panel">--> <!-- <div class="box">--> <!-- <p class="name">银行卡支付</p>--> <!-- <p class="num"><span id="scorePay"></span></p>--> <!-- </div>--> <!-- </div>--> <!-- </div>--> <!-- <div class="layui-col-md3">--> <!-- <div class="layui-panel">--> <!-- <div class="box">--> <!-- <p class="name">余额支付</p>--> <!-- <p class="num"><span id="balancePay"></span></p>--> <!-- </div>--> <!-- </div>--> <!-- </div>--> <!-- </div>--> <!-- </div>--> <!-- </div>--> <div class="layui-card-body layui-anim layui-anim-fadein"> <div class="layui-row"> <div class="m-title">业绩</div> <div class="layui-row layui-col-space15"> <div class="layui-col-md3"> <div class="layui-panel"> <div class="box"> <p class="name">今日业绩</p> <p class="num"><span id="today"></span></p> </div> </div> </div> <div class="layui-col-md3"> <div class="layui-panel"> <div class="box"> <p class="name">昨日业绩</p> <p class="num" ><span id="lastDay"></span></p> </div> </div> </div> <div class="layui-col-md3"> <div class="layui-panel"> <div class="box"> <p class="name">本月业绩</p> <p class="num"><span id="thisMonth"></span></p> </div> </div> </div> <div class="layui-col-md3"> <div class="layui-panel"> <div class="box"> <p class="name">上月业绩</p> <p class="num"><span id="lastMonth"></span></p> </div> </div> </div> </div> </div> </div> <!-- <div class="layui-card-body layui-anim layui-anim-fadein">--> <!-- <div class="layui-row">--> <!-- <div class="m-title">业绩</div>--> <!-- <div class="layui-row layui-col-space15">--> <!-- <div class="layui-col-md3">--> <!-- <div class="layui-panel">--> <!-- <div class="box">--> <!-- <p class="name">今日业绩</p>--> <!-- <p class="num"><span id="today"></span></p>--> <!-- </div>--> <!-- </div>--> <!-- </div>--> <!-- <div class="layui-col-md3">--> <!-- <div class="layui-panel">--> <!-- <div class="box">--> <!-- <p class="name">昨日业绩</p>--> <!-- <p class="num" ><span id="lastDay"></span></p>--> <!-- </div>--> <!-- </div>--> <!-- </div>--> <!-- <div class="layui-col-md3">--> <!-- <div class="layui-panel">--> <!-- <div class="box">--> <!-- <p class="name">本月业绩</p>--> <!-- <p class="num"><span id="thisMonth"></span></p>--> <!-- </div>--> <!-- </div>--> <!-- </div>--> <!-- <div class="layui-col-md3">--> <!-- <div class="layui-panel">--> <!-- <div class="box">--> <!-- <p class="name">上月业绩</p>--> <!-- <p class="num"><span id="lastMonth"></span></p>--> <!-- </div>--> <!-- </div>--> <!-- </div>--> <!-- </div>--> <!-- </div>--> <!-- </div>--> <div class="layui-card-body layui-anim layui-anim-fadein"> <div class="layui-row"> <div class="m-title">会员注册</div> <div class="layui-row layui-col-space15"> <div class="layui-col-md3"> <div class="layui-panel"> <div class="box"> <p class="name">用户注册总数</p> <p class="num"><span id="totalMember"></span></p> </div> </div> </div> <div class="layui-col-md3"> <div class="layui-panel"> <div class="box"> <p class="name">正式会员用户总数</p> <p class="num" ><span id="formalMember"></span></p> </div> </div> </div> <div class="layui-col-md3"> <div class="layui-panel"> <div class="box"> <p class="name">非会员用户总数</p> <p class="num"><span id="informalMember"></span></p> </div> </div> </div> </div> </div> </div> <!-- <div class="layui-card-body layui-anim layui-anim-fadein">--> <!-- <div class="layui-row">--> <!-- <div class="m-title">会员注册</div>--> <!-- <div class="layui-row layui-col-space15">--> <!-- <div class="layui-col-md3">--> <!-- <div class="layui-panel">--> <!-- <div class="box">--> <!-- <p class="name">用户注册总数</p>--> <!-- <p class="num"><span id="totalMember"></span></p>--> <!-- </div>--> <!-- </div>--> <!-- </div>--> <!-- <div class="layui-col-md3">--> <!-- <div class="layui-panel">--> <!-- <div class="box">--> <!-- <p class="name">正式会员用户总数</p>--> <!-- <p class="num" ><span id="formalMember"></span></p>--> <!-- </div>--> <!-- </div>--> <!-- </div>--> <!-- <div class="layui-col-md3">--> <!-- <div class="layui-panel">--> <!-- <div class="box">--> <!-- <p class="name">非会员用户总数</p>--> <!-- <p class="num"><span id="informalMember"></span></p>--> <!-- </div>--> <!-- </div>--> <!-- </div>--> <!-- </div>--> <!-- </div>--> <!-- </div>--> <div class="layui-card-body layui-anim layui-anim-fadein"> <div class="layui-row"> <div class="layui-row layui-col-space15"> <div class="layui-col-md3"> <div class="layui-panel"> <div class="box"> <p class="name">本日注册用户数</p> <p class="num"><span id="todayMember"></span></p> </div> </div> </div> <div class="layui-col-md3"> <div class="layui-panel"> <div class="box"> <p class="name">本月注册用户数</p> <p class="num"><span id="thisMonthMember"></span></p> </div> </div> </div> <div class="layui-col-md3"> <div class="layui-panel"> <div class="box"> <p class="name">上月注册用户数</p> <p class="num"><span id="lastMonthMember"></span></p> </div> </div> </div> </div> </div> </div> <!-- <div class="layui-card-body layui-anim layui-anim-fadein">--> <!-- <div class="layui-row">--> <!-- <div class="layui-row layui-col-space15">--> <!-- <div class="layui-col-md3">--> <!-- <div class="layui-panel">--> <!-- <div class="box">--> <!-- <p class="name">本日注册用户数</p>--> <!-- <p class="num"><span id="todayMember"></span></p>--> <!-- </div>--> <!-- </div>--> <!-- </div>--> <!-- <div class="layui-col-md3">--> <!-- <div class="layui-panel">--> <!-- <div class="box">--> <!-- <p class="name">本月注册用户数</p>--> <!-- <p class="num"><span id="thisMonthMember"></span></p>--> <!-- </div>--> <!-- </div>--> <!-- </div>--> <!-- <div class="layui-col-md3">--> <!-- <div class="layui-panel">--> <!-- <div class="box">--> <!-- <p class="name">上月注册用户数</p>--> <!-- <p class="num"><span id="lastMonthMember"></span></p>--> <!-- </div>--> <!-- </div>--> <!-- </div>--> <!-- </div>--> <!-- </div>--> <!-- </div>--> <div class="layui-card-body layui-anim layui-anim-fadein"> <div class="layui-row"> <div class="m-title">积分池</div> <div class="layui-row layui-col-space15"> <div class="layui-col-md3"> <div class="layui-panel"> <div class="box"> <p class="name">剩余积分</p> <p class="num"><span id="scorePool"></span></p> </div> </div> </div> </div> </div> </div> <!-- <div class="layui-card-body layui-anim layui-anim-fadein">--> <!-- <div class="layui-row">--> <!-- <div class="m-title">积分池</div>--> <!-- <div class="layui-row layui-col-space15">--> <!-- <div class="layui-col-md3">--> <!-- <div class="layui-panel">--> <!-- <div class="box">--> <!-- <p class="name">剩余积分</p>--> <!-- <p class="num"><span id="scorePool"></span></p>--> <!-- </div>--> <!-- </div>--> <!-- </div>--> <!-- </div>--> <!-- </div>--> <!-- </div>--> </div> </div> src/main/resources/templates/febs/views/modules/system/indexData.html
New file @@ -0,0 +1,309 @@ <style> #febs-index-data .welcome-info { border: 1px solid #f1f1f1; margin-bottom: .5rem; padding: .5rem; background: #FFFFFF; } #febs-index-data .welcome-info-wrapper { padding: .2rem; display: inline-block } #febs-index-data .welcome-info-wrapper .user-header { display: inline-block; vertical-align: middle } #febs-index-data .welcome-info-wrapper .user-header img { width: 5rem; margin: .5rem 1rem; border-radius: 50% } #febs-index-data .welcome-info-wrapper .user-info { display: inline-block; vertical-align: middle } #febs-index-data .welcome-info-wrapper .user-info .random-message { font-size: 1rem; margin-bottom: .2rem; max-width: 21rem } #febs-index-data .welcome-info-wrapper .user-info .user-dept, #febs-index-data .welcome-info-wrapper .user-info .user-login-info { color: rgba(0, 0, 0, 0.45); } #febs-index-data .login-count-table { width: 100%; margin: 1rem; } #febs-index-data .login-count-table .count { padding-top: .8rem; font-size: 1rem; font-weight: 600; color: #1890ff } #febs-index-data .project-table { padding: .5rem; border: 1px solid #f1f1f1; width: 100% } #febs-index-data .project-table-td { padding: .5rem 0.7rem; border: 1px solid #f1f1f1; } #febs-index-data .project-table-td a { color: #42b983; font-size: .9rem; font-weight: 600; } #febs-index-data .project-desc { color: rgba(0, 0, 0, 0.45); } /*.layui-card:last-child{*/ /* background: #F8F8F8;*/ /*}*/ .box{ background: #FFFFFF; padding: 30px 30px; border-radius: 4px; } .box .name{ font-size: 14px; color: #333333; } .box .num{ font-size: 24px; color: #1890ff; font-weight: bold; margin-top: 10px; } .m-title{ position: relative; font-size: 16px; font-weight: bold; color: #000000; padding-left: 20px; margin: 0 0 10px; } .m-title::before{ content: ''; position: absolute; left: 0; width: 4px; height: 20px; background: #1890ff; } </style> <div class="layui-fluid layui-anim febs-anim-up" id="febs-index-data" lay-title="系统数据"> <div class="layui-row layui-col-space8 febs-container"> <div class="layui-col-md12 layui-col-sm12 layui-col-xs12"> <div class="layui-card" style="background: #F8F8F8;"> <div class="layui-card-body layui-anim layui-anim-fadein"> <div class="layui-row"> <div class="m-title">订单付款</div> <div class="layui-row layui-col-space15"> <div class="layui-col-md3"> <div class="layui-panel"> <div class="box"> <p class="name">微信支付</p> <p class="num"><span id="wechatPay"></span></p> </div> </div> </div> <div class="layui-col-md3"> <div class="layui-panel"> <div class="box"> <p class="name">支付宝支付</p> <p class="num" ><span id="alipayPay"></span></p> </div> </div> </div> <div class="layui-col-md3"> <div class="layui-panel"> <div class="box"> <p class="name">银行卡支付</p> <p class="num"><span id="scorePay"></span></p> </div> </div> </div> <div class="layui-col-md3"> <div class="layui-panel"> <div class="box"> <p class="name">余额支付</p> <p class="num"><span id="balancePay"></span></p> </div> </div> </div> </div> </div> </div> <div class="layui-card-body layui-anim layui-anim-fadein"> <div class="layui-row"> <div class="m-title">业绩</div> <div class="layui-row layui-col-space15"> <div class="layui-col-md3"> <div class="layui-panel"> <div class="box"> <p class="name">今日业绩</p> <p class="num"><span id="today"></span></p> </div> </div> </div> <div class="layui-col-md3"> <div class="layui-panel"> <div class="box"> <p class="name">昨日业绩</p> <p class="num" ><span id="lastDay"></span></p> </div> </div> </div> <div class="layui-col-md3"> <div class="layui-panel"> <div class="box"> <p class="name">本月业绩</p> <p class="num"><span id="thisMonth"></span></p> </div> </div> </div> <div class="layui-col-md3"> <div class="layui-panel"> <div class="box"> <p class="name">上月业绩</p> <p class="num"><span id="lastMonth"></span></p> </div> </div> </div> </div> </div> </div> <div class="layui-card-body layui-anim layui-anim-fadein"> <div class="layui-row"> <div class="m-title">会员注册</div> <div class="layui-row layui-col-space15"> <div class="layui-col-md3"> <div class="layui-panel"> <div class="box"> <p class="name">用户注册总数</p> <p class="num"><span id="totalMember"></span></p> </div> </div> </div> <div class="layui-col-md3"> <div class="layui-panel"> <div class="box"> <p class="name">正式会员用户总数</p> <p class="num" ><span id="formalMember"></span></p> </div> </div> </div> <div class="layui-col-md3"> <div class="layui-panel"> <div class="box"> <p class="name">非会员用户总数</p> <p class="num"><span id="informalMember"></span></p> </div> </div> </div> </div> </div> </div> <div class="layui-card-body layui-anim layui-anim-fadein"> <div class="layui-row"> <div class="layui-row layui-col-space15"> <div class="layui-col-md3"> <div class="layui-panel"> <div class="box"> <p class="name">本日注册用户数</p> <p class="num"><span id="todayMember"></span></p> </div> </div> </div> <div class="layui-col-md3"> <div class="layui-panel"> <div class="box"> <p class="name">本月注册用户数</p> <p class="num"><span id="thisMonthMember"></span></p> </div> </div> </div> <div class="layui-col-md3"> <div class="layui-panel"> <div class="box"> <p class="name">上月注册用户数</p> <p class="num"><span id="lastMonthMember"></span></p> </div> </div> </div> </div> </div> </div> <div class="layui-card-body layui-anim layui-anim-fadein"> <div class="layui-row"> <div class="m-title">积分池</div> <div class="layui-row layui-col-space15"> <div class="layui-col-md3"> <div class="layui-panel"> <div class="box"> <p class="name">剩余积分</p> <p class="num"><span id="scorePool"></span></p> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> <script data-th-inline="javascript" type="text/javascript"> layui.use(['apexcharts', 'febs', 'jquery', 'util'], function () { var $ = layui.jquery, util = layui.util, $view = $('#febs-index-data'), scorePoor = [[${indexData}]], febs = layui.febs; initCashoutValue(); form.render(); function initCashoutValue() { handleSuccess(scorePoor); } function handleSuccess(data) { $view.find('#today').text(scorePoor.today).end() .find('#lastDay').text(scorePoor.lastDay).end() .find('#thisMonth').text(scorePoor.thisMonth).end() .find('#lastMonth').text(scorePoor.lastMonth).end() .find('#scorePool').text(scorePoor.scorePool).end() //会员信息 .find('#totalMember').text(scorePoor.totalMember).end() .find('#formalMember').text(scorePoor.formalMember).end() .find('#informalMember').text(scorePoor.informalMember).end() .find('#todayMember').text(scorePoor.todayMember).end() .find('#thisMonthMember').text(scorePoor.thisMonthMember).end() .find('#lastMonthMember').text(scorePoor.lastMonthMember).end() .find('#wechatPay').text(scorePoor.wechatPay).end() .find('#alipayPay').text(scorePoor.alipayPay).end() .find('#scorePay').text(scorePoor.scorePay).end() .find('#balancePay').text(scorePoor.balancePay).end(); } }); </script>