From 5aad7ef3aef4ebf8ab6462e6e5b89425ab5d426c Mon Sep 17 00:00:00 2001 From: xiaoyong931011 <15274802129@163.com> Date: Thu, 23 Jun 2022 18:03:23 +0800 Subject: [PATCH] 20220528 --- src/main/java/cc/mrbird/febs/mall/mapper/MallOrderInfoMapper.java | 3 src/main/resources/templates/febs/views/index.html | 220 ++++++++++++++++++++++++++++++++++++++------ src/main/java/cc/mrbird/febs/common/enumerates/OrderPayMethodEnum.java | 19 +++ src/main/java/cc/mrbird/febs/system/controller/LoginController.java | 39 +++++++ src/main/resources/mapper/modules/MallOrderInfoMapper.xml | 5 + 5 files changed, 256 insertions(+), 30 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/common/enumerates/OrderPayMethodEnum.java b/src/main/java/cc/mrbird/febs/common/enumerates/OrderPayMethodEnum.java new file mode 100644 index 0000000..b9172d2 --- /dev/null +++ b/src/main/java/cc/mrbird/febs/common/enumerates/OrderPayMethodEnum.java @@ -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; + } +} diff --git a/src/main/java/cc/mrbird/febs/mall/mapper/MallOrderInfoMapper.java b/src/main/java/cc/mrbird/febs/mall/mapper/MallOrderInfoMapper.java index 568c99a..f511408 100644 --- a/src/main/java/cc/mrbird/febs/mall/mapper/MallOrderInfoMapper.java +++ b/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); } diff --git a/src/main/java/cc/mrbird/febs/system/controller/LoginController.java b/src/main/java/cc/mrbird/febs/system/controller/LoginController.java index 0ea9f5c..3a97621 100644 --- a/src/main/java/cc/mrbird/febs/system/controller/LoginController.java +++ b/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); diff --git a/src/main/resources/mapper/modules/MallOrderInfoMapper.xml b/src/main/resources/mapper/modules/MallOrderInfoMapper.xml index 30e7d6e..660351c 100644 --- a/src/main/resources/mapper/modules/MallOrderInfoMapper.xml +++ b/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> \ No newline at end of file diff --git a/src/main/resources/templates/febs/views/index.html b/src/main/resources/templates/febs/views/index.html index 81e787d..954d229 100644 --- a/src/main/resources/templates/febs/views/index.html +++ b/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-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 class="layui-col-md6 layui-col-sm6 layui-col-xs12"> -<!-- <div class="layui-card">--> -<!-- <div class="layui-card-body">--> -<!-- </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() -- Gitblit v1.9.1