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