From 1689b64fe1352a7c7c1ce2a45b16058bf168dd83 Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Thu, 19 Dec 2024 14:27:59 +0800
Subject: [PATCH] feat(mall): 会员首页展示会员等级数量

---
 src/main/java/cc/mrbird/febs/mall/vo/AdminVipIndexVo.java              |   13 ++++++
 src/main/resources/templates/febs/views/index.html                     |   51 ++++++++++++-------------
 src/main/java/cc/mrbird/febs/system/controller/LoginController.java    |   28 +++++++++++--
 src/main/resources/templates/febs/views/modules/runVip/runVipList.html |    2 
 src/main/resources/application-dev.yml                                 |    2 
 src/main/resources/application.yml                                     |    2 
 6 files changed, 63 insertions(+), 35 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/mall/vo/AdminVipIndexVo.java b/src/main/java/cc/mrbird/febs/mall/vo/AdminVipIndexVo.java
new file mode 100644
index 0000000..724ce87
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/vo/AdminVipIndexVo.java
@@ -0,0 +1,13 @@
+package cc.mrbird.febs.mall.vo;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "AdminVipIndexVo", description = "信息返回类")
+public class AdminVipIndexVo {
+
+    private String vipCode;
+    private String vipName;
+    private Integer memberCnt;
+}
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 3f65232..805259d 100644
--- a/src/main/java/cc/mrbird/febs/system/controller/LoginController.java
+++ b/src/main/java/cc/mrbird/febs/system/controller/LoginController.java
@@ -3,21 +3,25 @@
 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.entity.RunVip;
 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.mall.mapper.RunVipMapper;
+import cc.mrbird.febs.mall.vo.AdminVipIndexVo;
 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.collection.CollUtil;
 import cn.hutool.core.date.DateUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import lombok.RequiredArgsConstructor;
 import org.apache.shiro.authc.UsernamePasswordToken;
@@ -32,10 +36,7 @@
 import javax.servlet.http.HttpSession;
 import javax.validation.constraints.NotBlank;
 import java.io.IOException;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 /**
  * @author MrBird
@@ -51,6 +52,7 @@
     private final MallMemberMapper mallMemberMapper;
     private final MallOrderInfoMapper mallOrderInfoMapper;
     private final MallAchieveRecordMapper mallAchieveRecordMapper;
+    private final RunVipMapper runVipMapper;
 
     @PostMapping("login")
     @Limit(key = "login", period = 60, count = 10, name = "登录接口", prefix = "limit")
@@ -112,6 +114,22 @@
 
         //会员数据
         data.put("totalMember",mallMemberMapper.selectCount(new QueryWrapper<>()) );
+
+        List<AdminVipIndexVo> vipIndexVos = new ArrayList<>();
+        List<RunVip> runVips = runVipMapper.selectList(null);
+        if(CollUtil.isNotEmpty(runVips)){
+            for(RunVip runVip : runVips){
+                AdminVipIndexVo adminVipIndexVo = new AdminVipIndexVo();
+                adminVipIndexVo.setVipCode(runVip.getVipCode());
+                adminVipIndexVo.setVipName(runVip.getVipName());
+                Integer selectCount = mallMemberMapper.selectCount(new LambdaQueryWrapper<MallMember>().eq(MallMember::getLevel, runVip.getVipCode()));
+                adminVipIndexVo.setMemberCnt(selectCount);
+                vipIndexVos.add(adminVipIndexVo);
+            }
+        }
+        data.put("vipIndexVos",vipIndexVos);
+
+
 //        QueryWrapper<MallMember> formalMember = new QueryWrapper<>();
 //        formalMember.ne("level", AgentLevelEnum.ZERO_LEVEL.name());
 //        data.put("formalMember",mallMemberMapper.selectCount(formalMember));
diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml
index 888ed08..f606d79 100644
--- a/src/main/resources/application-dev.yml
+++ b/src/main/resources/application-dev.yml
@@ -2,7 +2,7 @@
   datasource:
     dynamic:
       # 是否开启 SQL日志输出,生产环境建议关闭,有性能损耗
-      p6spy: false
+      p6spy: true
       hikari:
         connection-timeout: 30000
         max-lifetime: 1800000
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 27b958e..be3f6da 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -40,4 +40,4 @@
           core:
             metadata:
               TableInfoHelper: error
-    cc.mrbird.febs: debug
+    cc.mrbird.febs: info
diff --git a/src/main/resources/templates/febs/views/index.html b/src/main/resources/templates/febs/views/index.html
index f89ff7e..f9eff01 100644
--- a/src/main/resources/templates/febs/views/index.html
+++ b/src/main/resources/templates/febs/views/index.html
@@ -135,24 +135,8 @@
 
                 <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="balancePay"></span></p>
-                                    </div>
-                                </div>
-                            </div>
+                        <div class="m-title">会员</div>
+                        <div class="layui-row layui-col-space15" id = "memberLevelCounts">
                         </div>
                     </div>
                 </div>
@@ -208,12 +192,27 @@
         </div>
     </div>
 </div>
+<script type="text/html" id="memberLevelCount">
+    {{#  layui.each(d, function(index, item){ }}
+    <div class="layui-col-md3">
+        <div class="layui-panel">
+            <div class="box">
+                <p class="name">{{item.vipName}}</p>
+                <p class="num">{{item.memberCnt}}</p>
+            </div>
+        </div>
+    </div>
+    {{# }) }}
+</script>
 <script data-th-inline="javascript" type="text/javascript">
-    layui.use(['apexcharts', 'febs', 'jquery', 'util'], function () {
+    layui.use(['apexcharts', 'febs', 'jquery', 'util', 'laytpl'], function () {
         var $ = layui.jquery,
             util = layui.util,
             $view = $('#febs-index'),
-            febs = layui.febs;
+            memberLevelCountHtml = memberLevelCount.innerHTML,
+            $memberLevelCounts = $("#memberLevelCounts"),
+                laytpl = layui.laytpl,
+                    febs = layui.febs;
 
         febs.get(ctx + 'index/' + currentUser.username, null, function (r) {
             handleSuccess(r.data);
@@ -235,22 +234,20 @@
             ];
             var index = Math.floor((Math.random() * welcomeArr.length));
             var welcomeMessage = time + ',<a id="febs-index-user">' + currentUser.username + '</a>,' + welcomeArr[index];
+
+
+            laytpl(memberLevelCountHtml).render(data.vipIndexVos, function(html) {
+                $memberLevelCounts.append(html);
+            })
             $view.find('#today').text(data.today).end()
                 .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()
diff --git a/src/main/resources/templates/febs/views/modules/runVip/runVipList.html b/src/main/resources/templates/febs/views/modules/runVip/runVipList.html
index 2cef014..4235f95 100644
--- a/src/main/resources/templates/febs/views/modules/runVip/runVipList.html
+++ b/src/main/resources/templates/febs/views/modules/runVip/runVipList.html
@@ -128,7 +128,7 @@
                     {
                         field: 'vipPng', title: '主图',
                         templet: function (d) {
-                            return '<a lay-event="seeImgThumb"><img id="seeImgThumb'+d.id+'" src="'+d.thumb+'" alt=""></a>';
+                            return '<a lay-event="seeImgThumb"><img id="seeImgThumb'+d.id+'" src="'+d.vipPng+'" alt=""></a>';
                         }, minWidth: 150, align: 'center'
                     },
                     {field: 'originalPrice', title: '原价', minWidth: 120, align: 'center'},

--
Gitblit v1.9.1