src/main/java/cc/mrbird/febs/common/enumerates/OrderPayMethodEnum.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/cc/mrbird/febs/mall/mapper/MallOrderInfoMapper.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/cc/mrbird/febs/system/controller/LoginController.java | ●●●●● patch | view | raw | blame | history | |
src/main/resources/mapper/modules/MallOrderInfoMapper.xml | ●●●●● patch | view | raw | blame | history | |
src/main/resources/templates/febs/views/index.html | ●●●●● patch | view | raw | blame | history |
src/main/java/cc/mrbird/febs/common/enumerates/OrderPayMethodEnum.java
New file @@ -0,0 +1,19 @@ package cc.mrbird.febs.common.enumerates; import lombok.Getter; @Getter public enum OrderPayMethodEnum { WECHAT("微信支付"), ALIPAY("支付宝支付"), SCORE("积分支付"), BALANCE("余额支付"); private String name; OrderPayMethodEnum(String name) { this.name = name; } } src/main/java/cc/mrbird/febs/mall/mapper/MallOrderInfoMapper.java
@@ -1,5 +1,6 @@ package cc.mrbird.febs.mall.mapper; import cc.mrbird.febs.common.enumerates.OrderPayMethodEnum; import cc.mrbird.febs.mall.dto.MallOrderInfoDto; import cc.mrbird.febs.mall.dto.OrderListDto; import cc.mrbird.febs.mall.entity.MallOrderInfo; @@ -58,4 +59,6 @@ int updateOrderConfirmStatus(@Param("date") Date date); List<MallOrderInfo> selectOrderInfoWithNormalGoods(@Param("date") Date date); BigDecimal selectSumAmountByPayMethodAndStatue(@Param("payMethod")String name, @Param("statue")int value); } src/main/java/cc/mrbird/febs/system/controller/LoginController.java
@@ -3,16 +3,22 @@ import cc.mrbird.febs.common.annotation.Limit; import cc.mrbird.febs.common.controller.BaseController; import cc.mrbird.febs.common.entity.FebsResponse; import cc.mrbird.febs.common.enumerates.AgentLevelEnum; import cc.mrbird.febs.common.enumerates.OrderPayMethodEnum; import cc.mrbird.febs.common.enumerates.OrderStatusEnum; import cc.mrbird.febs.common.exception.FebsException; import cc.mrbird.febs.common.service.ValidateCodeService; import cc.mrbird.febs.common.utils.Md5Util; import cc.mrbird.febs.mall.entity.MallMember; 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.entity.LoginLog; import cc.mrbird.febs.monitor.service.ILoginLogService; import cc.mrbird.febs.system.entity.User; import cc.mrbird.febs.system.service.IUserService; import cn.hutool.core.date.DateUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import lombok.RequiredArgsConstructor; import org.apache.shiro.authc.UsernamePasswordToken; import org.springframework.validation.annotation.Validated; @@ -43,6 +49,7 @@ private final ValidateCodeService validateCodeService; private final ILoginLogService loginLogService; private final MallMemberMapper mallMemberMapper; private final MallOrderInfoMapper mallOrderInfoMapper; private final MallAchieveRecordMapper mallAchieveRecordMapper; @PostMapping("login") @@ -91,11 +98,43 @@ // Long todayIp = this.loginLogService.findTodayIp(); // data.put("todayIp", todayIp); //支付统计 data.put("wechatPay",mallOrderInfoMapper.selectSumAmountByPayMethodAndStatue(OrderPayMethodEnum.WECHAT.getName(), OrderStatusEnum.FINISH.getValue())); data.put("alipayPay",mallOrderInfoMapper.selectSumAmountByPayMethodAndStatue(OrderPayMethodEnum.ALIPAY.getName(), OrderStatusEnum.FINISH.getValue())); data.put("scorePay",mallOrderInfoMapper.selectSumAmountByPayMethodAndStatue(OrderPayMethodEnum.SCORE.getName(), OrderStatusEnum.FINISH.getValue())); data.put("balancePay",mallOrderInfoMapper.selectSumAmountByPayMethodAndStatue(OrderPayMethodEnum.BALANCE.getName(), OrderStatusEnum.FINISH.getValue())); 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()); todayMember.ne("level", AgentLevelEnum.ZERO_LEVEL.name()); data.put("todayMember",mallMemberMapper.selectCount(todayMember)); QueryWrapper<MallMember> thisMonthMember = new QueryWrapper<>(); thisMonthMember.like("CREATED_TIME", DateUtil.format(DateUtil.date(),"yyyy-MM")); thisMonthMember.ne("level", AgentLevelEnum.ZERO_LEVEL.name()); data.put("thisMonthMember",mallMemberMapper.selectCount(thisMonthMember)); QueryWrapper<MallMember> lastMonthMember = new QueryWrapper<>(); lastMonthMember.like("CREATED_TIME", DateUtil.format(DateUtil.offsetMonth(new Date(), -1),"yyyy-MM")); lastMonthMember.ne("level", AgentLevelEnum.ZERO_LEVEL.name()); data.put("lastMonthMember",mallMemberMapper.selectCount(lastMonthMember)); // 获取近期系统访问记录 List<Map<String, Object>> lastSevenVisitCount = this.loginLogService.findLastSevenDaysVisitCount(null); data.put("lastSevenVisitCount", lastSevenVisitCount); src/main/resources/mapper/modules/MallOrderInfoMapper.xml
@@ -278,4 +278,9 @@ inner join mall_order_item b on a.id=b.order_id and b.is_normal=1 where date_format(pay_time, '%Y-%m-%d') = date_format(#{date}, '%Y-%m-%d') </select> <select id="selectSumAmountByPayMethodAndStatue" resultType="java.math.BigDecimal"> select IFNULL(sum(IFNULL(amount,0)),0) from mall_order_info where pay_method = #{payMethod} and status = #{statue} </select> </mapper> src/main/resources/templates/febs/views/index.html
@@ -3,6 +3,7 @@ border: 1px solid #f1f1f1; margin-bottom: .5rem; padding: .5rem; background: #FFFFFF; } #febs-index .welcome-info-wrapper { @@ -68,6 +69,40 @@ #febs-index .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" lay-title="系统首页"> <div class="layui-row layui-col-space8 febs-container"> @@ -95,41 +130,153 @@ </div> </div> </div> <div class="layui-col-md6 layui-col-sm12 layui-col-xs12"> <div class="layui-col-md-offset4"> <table class="login-count-table"> <tr> <td>今日业绩</td> <td>昨日业绩</td> <td>本月业绩</td> <td>上月业绩</td> </tr> <tr> <td class="count" id="today"> 0 </td> <td class="count" id="lastDay"> 0 </td> <td class="count" id="thisMonth"> 0 </td> <td class="count" id="lastMonth"> 0 </td> </tr> </table> </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-col-md6 layui-col-sm6 layui-col-xs12"> <!-- <div class="layui-card">--> <!-- <div class="layui-card-body">--> <!-- </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> </div> </div> </div> @@ -164,6 +311,19 @@ .find('#lastDay').text(data.lastDay).end() .find('#thisMonth').text(data.thisMonth).end() .find('#lastMonth').text(data.lastMonth).end() //会员信息 .find('#totalMember').text(data.totalMember).end() .find('#formalMember').text(data.formalMember).end() .find('#informalMember').text(data.informalMember).end() .find('#todayMember').text(data.todayMember).end() .find('#thisMonthMember').text(data.thisMonthMember).end() .find('#lastMonthMember').text(data.lastMonthMember).end() .find('#wechatPay').text(data.wechatPay).end() .find('#alipayPay').text(data.alipayPay).end() .find('#scorePay').text(data.scorePay).end() .find('#balancePay').text(data.balancePay).end() .find('#user-dept').text(currentUser.deptName ? currentUser.deptName : '暂无所属部门').end() .find('#user-role').text(currentUser.roleName ? currentUser.roleName : '暂无角色').end() .find('#last-login-time').text(currentUser.lastLoginTime ? currentUser.lastLoginTime : '第一次访问系统').end()