src/main/java/cc/mrbird/febs/mall/vo/AdminVipIndexVo.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/cc/mrbird/febs/system/controller/LoginController.java | ●●●●● patch | view | raw | blame | history | |
src/main/resources/application-dev.yml | ●●●●● patch | view | raw | blame | history | |
src/main/resources/application.yml | ●●●●● 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/runVip/runVipList.html | ●●●●● patch | view | raw | blame | history |
src/main/java/cc/mrbird/febs/mall/vo/AdminVipIndexVo.java
New file @@ -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; } 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)); src/main/resources/application-dev.yml
@@ -2,7 +2,7 @@ datasource: dynamic: # 是否开启 SQL日志输出,生产环境建议关闭,有性能损耗 p6spy: false p6spy: true hikari: connection-timeout: 30000 max-lifetime: 1800000 src/main/resources/application.yml
@@ -40,4 +40,4 @@ core: metadata: TableInfoHelper: error cc.mrbird.febs: debug cc.mrbird.febs: info 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() 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'},