From 0f326acd413279d2c3fccb27ee1a5723e1387bcf Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Tue, 07 Jul 2020 15:34:35 +0800
Subject: [PATCH] 20200707 代码提交
---
src/main/resources/mapper/modules/MemberQuickBuySaleMapper.xml | 13
src/main/java/com/xcong/excoin/modules/member/mapper/MemberMapper.java | 4
src/main/resources/templates/index.html | 2
src/main/resources/mapper/modules/AgentFriendRelationMapper.xml | 25
src/main/resources/mapper/modules/MemberCoinChargeMapper.xml | 4
src/main/resources/templates/error/404.html | 82 +-
src/main/java/com/xcong/excoin/modules/member/controller/MemberController.java | 11
src/main/java/com/xcong/excoin/modules/member/mapper/MemberCoinWithdrawMapper.java | 2
src/main/resources/mapper/modules/MemberCoinWithdrawMapper.xml | 4
src/main/resources/templates/febs/views/modules/member/agentInfo.html | 109 +++
src/main/java/com/xcong/excoin/modules/member/mapper/MemberQuickBuySaleMapper.java | 4
src/main/resources/mapper/modules/MemberMapper.xml | 4
src/main/resources/templates/error/403.html | 78 +-
src/main/resources/templates/febs/views/index.html | 708 +++++++++--------------
src/main/java/com/xcong/excoin/modules/member/controller/ViewController.java | 10
src/main/java/com/xcong/excoin/modules/member/entity/AgentFriendRelationEntity.java | 91 +++
src/main/java/com/xcong/excoin/modules/member/service/IMemberService.java | 3
src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java | 70 ++
src/main/java/com/xcong/excoin/modules/member/mapper/AgentFriendRelationMapper.java | 19
src/main/java/com/xcong/excoin/modules/member/mapper/MemberCoinChargeMapper.java | 2
src/main/resources/templates/error/500.html | 82 +-
src/main/resources/templates/febs/views/layout.html | 354 ++++++------
src/main/resources/templates/febs/views/login.html | 2
23 files changed, 955 insertions(+), 728 deletions(-)
diff --git a/src/main/java/com/xcong/excoin/modules/member/controller/MemberController.java b/src/main/java/com/xcong/excoin/modules/member/controller/MemberController.java
index 71bcd61..c1a018b 100644
--- a/src/main/java/com/xcong/excoin/modules/member/controller/MemberController.java
+++ b/src/main/java/com/xcong/excoin/modules/member/controller/MemberController.java
@@ -6,6 +6,7 @@
import com.xcong.excoin.common.entity.QueryRequest;
import com.xcong.excoin.modules.member.dto.MemberDataInfoDto;
import com.xcong.excoin.modules.member.dto.MemberDetailConfirmDto;
+import com.xcong.excoin.modules.member.entity.AgentFriendRelationEntity;
import com.xcong.excoin.modules.member.entity.MemberCoinChargeEntity;
import com.xcong.excoin.modules.member.entity.MemberCoinWithdrawEntity;
import com.xcong.excoin.modules.member.entity.MemberEntity;
@@ -38,6 +39,16 @@
public class MemberController extends BaseController {
private final IMemberService memberService;
+
+ /**
+ * 代理关系---列表
+ * @return
+ */
+ @GetMapping("agentInfoList")
+ public FebsResponse agentInfoList(AgentFriendRelationEntity agentFriendRelationEntity, QueryRequest request) {
+ Map<String, Object> data = getDataTable(memberService.findAgentInfoListInPage(agentFriendRelationEntity, request));
+ return new FebsResponse().success().data(data);
+ }
@GetMapping("getList")
public FebsResponse getList(MemberEntity member, QueryRequest request) {
diff --git a/src/main/java/com/xcong/excoin/modules/member/controller/ViewController.java b/src/main/java/com/xcong/excoin/modules/member/controller/ViewController.java
index 9c84436..a88a9c9 100644
--- a/src/main/java/com/xcong/excoin/modules/member/controller/ViewController.java
+++ b/src/main/java/com/xcong/excoin/modules/member/controller/ViewController.java
@@ -28,6 +28,16 @@
private final IMemberService memberService;
/**
+ * 代理关系
+ * @return
+ */
+ @GetMapping("agentInfo")
+ @RequiresPermissions("agentInfo:view")
+ public String agentInfo() {
+ return FebsUtil.view("modules/member/agentInfo");
+ }
+
+ /**
* 个人信息
* @return
*/
diff --git a/src/main/java/com/xcong/excoin/modules/member/entity/AgentFriendRelationEntity.java b/src/main/java/com/xcong/excoin/modules/member/entity/AgentFriendRelationEntity.java
new file mode 100644
index 0000000..1c65244
--- /dev/null
+++ b/src/main/java/com/xcong/excoin/modules/member/entity/AgentFriendRelationEntity.java
@@ -0,0 +1,91 @@
+package com.xcong.excoin.modules.member.entity;
+
+import java.math.BigDecimal;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.xcong.excoin.common.entity.BaseEntity;
+
+import lombok.Data;
+
+@Data
+@TableName("agent_friend_relation")
+public class AgentFriendRelationEntity extends BaseEntity {/**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 后台用户ID
+ */
+ private Long userId;
+ /**
+ * 会员ID
+ */
+ private Long memberId;
+ /**
+ * 会员邀请码
+ */
+ private String inviteId;
+ /**
+ * 上级会员ID
+ */
+ private Long refererMemberId;
+ /**
+ * 上级邀请码
+ */
+ private String refererId;
+ /**
+ * 上级链
+ */
+ private String refererIds;
+ /**
+ * 返佣比例
+ */
+ private BigDecimal returnRatio;
+ /**
+ * 代理等级
+ */
+ private int levelId;
+ /**
+ * 手续费是否设置自己 1是2否
+ */
+ private int feeIsSelf;
+
+ /**
+ * 查询条件:第一查询条件
+ */
+ @TableField(exist = false)
+ private String account;
+ /**
+ * 手机号(包含国际手机号)
+ */
+ @TableField(exist = false)
+ private String phone;
+ /**
+ * 邮箱
+ */
+ @TableField(exist = false)
+ private String email;
+ /**
+ * 推广人数
+ */
+ @TableField(exist = false)
+ private int promotionNumber;
+ /**
+ * 总充值
+ */
+ @TableField(exist = false)
+ private String totalRecharge;
+ /**
+ * 总提现
+ */
+ @TableField(exist = false)
+ private String totalWithdrawal;
+ /**
+ * 总业绩
+ */
+ @TableField(exist = false)
+ private String totalPerformance;
+
+}
diff --git a/src/main/java/com/xcong/excoin/modules/member/mapper/AgentFriendRelationMapper.java b/src/main/java/com/xcong/excoin/modules/member/mapper/AgentFriendRelationMapper.java
new file mode 100644
index 0000000..22bd6dc
--- /dev/null
+++ b/src/main/java/com/xcong/excoin/modules/member/mapper/AgentFriendRelationMapper.java
@@ -0,0 +1,19 @@
+package com.xcong.excoin.modules.member.mapper;
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.Param;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.xcong.excoin.modules.member.entity.AgentFriendRelationEntity;
+
+public interface AgentFriendRelationMapper extends BaseMapper<AgentFriendRelationEntity> {
+
+ IPage<AgentFriendRelationEntity> findAgentFriendRelationListInPage(Page<AgentFriendRelationEntity> page,
+ @Param("record")AgentFriendRelationEntity agentFriendRelationEntity);
+
+ List<AgentFriendRelationEntity> selectAgentFriendRelationByMap(@Param("inviteId")String inviteId);
+
+}
diff --git a/src/main/java/com/xcong/excoin/modules/member/mapper/MemberCoinChargeMapper.java b/src/main/java/com/xcong/excoin/modules/member/mapper/MemberCoinChargeMapper.java
index 5595658..306e078 100644
--- a/src/main/java/com/xcong/excoin/modules/member/mapper/MemberCoinChargeMapper.java
+++ b/src/main/java/com/xcong/excoin/modules/member/mapper/MemberCoinChargeMapper.java
@@ -13,4 +13,6 @@
IPage<MemberCoinChargeVo> findMemberApplyCoinListInPage(Page<MemberCoinChargeEntity> page,
@Param("record")MemberCoinChargeEntity memberCoinChargeEntity);
+ String selectCBByMemberId(String memberId);
+
}
diff --git a/src/main/java/com/xcong/excoin/modules/member/mapper/MemberCoinWithdrawMapper.java b/src/main/java/com/xcong/excoin/modules/member/mapper/MemberCoinWithdrawMapper.java
index f9e4afc..798e8b6 100644
--- a/src/main/java/com/xcong/excoin/modules/member/mapper/MemberCoinWithdrawMapper.java
+++ b/src/main/java/com/xcong/excoin/modules/member/mapper/MemberCoinWithdrawMapper.java
@@ -13,4 +13,6 @@
IPage<MemberCoinWithdrawVo> findmemberWithdrawCoinListInPage(Page<MemberCoinWithdrawEntity> page,
@Param("record")MemberCoinWithdrawEntity memberCoinWithdrawEntity);
+ String selectTBByMemberId(@Param("memberId")String memberId);
+
}
diff --git a/src/main/java/com/xcong/excoin/modules/member/mapper/MemberMapper.java b/src/main/java/com/xcong/excoin/modules/member/mapper/MemberMapper.java
index 30f4b47..891d980 100644
--- a/src/main/java/com/xcong/excoin/modules/member/mapper/MemberMapper.java
+++ b/src/main/java/com/xcong/excoin/modules/member/mapper/MemberMapper.java
@@ -7,6 +7,8 @@
import com.xcong.excoin.modules.member.vo.MemberDataInfoVo;
import com.xcong.excoin.modules.trademanage.vo.MemberAccountInfoVo;
+import java.util.List;
+
import org.apache.ibatis.annotations.Param;
/**
@@ -58,5 +60,7 @@
String selectHYZCForBasicRealData();
String selectDLZCForBasicRealData();
+
+ List<String> selectMemberBylowLevelInviteId(String lowLevelInviteId);
}
diff --git a/src/main/java/com/xcong/excoin/modules/member/mapper/MemberQuickBuySaleMapper.java b/src/main/java/com/xcong/excoin/modules/member/mapper/MemberQuickBuySaleMapper.java
index 7e13f2b..f5219c5 100644
--- a/src/main/java/com/xcong/excoin/modules/member/mapper/MemberQuickBuySaleMapper.java
+++ b/src/main/java/com/xcong/excoin/modules/member/mapper/MemberQuickBuySaleMapper.java
@@ -17,4 +17,8 @@
IPage<MemberQuickSaleVo> findmemberQuickSaleListInPage(Page<MemberQuickBuySaleEntity> page,
@Param("record")MemberQuickBuySaleEntity memberQuickBuySaleEntity);
+ String selectCZByMemberId(@Param("memberId")String memberId);
+
+ String selectTXByMemberId(@Param("memberId")String memberId);
+
}
diff --git a/src/main/java/com/xcong/excoin/modules/member/service/IMemberService.java b/src/main/java/com/xcong/excoin/modules/member/service/IMemberService.java
index c1c466c..8e966b0 100644
--- a/src/main/java/com/xcong/excoin/modules/member/service/IMemberService.java
+++ b/src/main/java/com/xcong/excoin/modules/member/service/IMemberService.java
@@ -10,6 +10,7 @@
import com.xcong.excoin.common.entity.FebsResponse;
import com.xcong.excoin.common.entity.QueryRequest;
import com.xcong.excoin.modules.member.dto.MemberDetailConfirmDto;
+import com.xcong.excoin.modules.member.entity.AgentFriendRelationEntity;
import com.xcong.excoin.modules.member.entity.MemberCoinChargeEntity;
import com.xcong.excoin.modules.member.entity.MemberCoinWithdrawEntity;
import com.xcong.excoin.modules.member.entity.MemberEntity;
@@ -60,4 +61,6 @@
FebsResponse memberDataInfoList(@NotNull(message = "{required}") long id);
+ IPage<AgentFriendRelationEntity> findAgentInfoListInPage(AgentFriendRelationEntity agentFriendRelationEntity, QueryRequest request);
+
}
diff --git a/src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java b/src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java
index 2f2f735..66030ec 100644
--- a/src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java
+++ b/src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java
@@ -7,6 +7,7 @@
import com.xcong.excoin.common.entity.FebsResponse;
import com.xcong.excoin.common.entity.QueryRequest;
import com.xcong.excoin.modules.member.dto.MemberDetailConfirmDto;
+import com.xcong.excoin.modules.member.entity.AgentFriendRelationEntity;
import com.xcong.excoin.modules.member.entity.MemberAccountMoneyChangeEntity;
import com.xcong.excoin.modules.member.entity.MemberCoinAddressEntity;
import com.xcong.excoin.modules.member.entity.MemberCoinChargeEntity;
@@ -14,6 +15,7 @@
import com.xcong.excoin.modules.member.entity.MemberEntity;
import com.xcong.excoin.modules.member.entity.MemberQuickBuySaleEntity;
import com.xcong.excoin.modules.member.entity.MemberWalletCoinEntity;
+import com.xcong.excoin.modules.member.mapper.AgentFriendRelationMapper;
import com.xcong.excoin.modules.member.mapper.MemberAccountMoneyChangeMapper;
import com.xcong.excoin.modules.member.mapper.MemberAuthenticationMapper;
import com.xcong.excoin.modules.member.mapper.MemberCoinAddressMapper;
@@ -32,10 +34,13 @@
import lombok.RequiredArgsConstructor;
import java.math.BigDecimal;
+import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.List;
import java.util.Map;
+import java.util.Set;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
@@ -66,6 +71,71 @@
private final MemberAuthenticationMapper memberAuthenticationMapper;
+ private final AgentFriendRelationMapper agentFriendRelationMapper;
+
+ @Override
+ public IPage<AgentFriendRelationEntity> findAgentInfoListInPage(AgentFriendRelationEntity agentFriendRelationEntity,
+ QueryRequest request) {
+ Page<AgentFriendRelationEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
+ IPage<AgentFriendRelationEntity> findmemberQuickBuySaleListInPage = agentFriendRelationMapper.findAgentFriendRelationListInPage(page, agentFriendRelationEntity);
+ List<AgentFriendRelationEntity> records = findmemberQuickBuySaleListInPage.getRecords();
+
+ if(records != null && records.size() > 0) {
+ for(AgentFriendRelationEntity agentFriendRelation : records) {
+ List<String> arrayList = new ArrayList<>();
+ String inviteId = agentFriendRelation.getInviteId();
+ String inviteIdCZ = null;
+ String inviteIdTX = null;
+ String inviteIdSY = null;
+ // 当前邀请码下的所有代理MemberID
+ List<AgentFriendRelationEntity> lowLevelList = agentFriendRelationMapper.selectAgentFriendRelationByMap(inviteId);
+
+ List<String> memberLevel = memberMapper.selectMemberBylowLevelInviteId(inviteId);
+ arrayList.addAll(memberLevel);
+ if(lowLevelList != null && lowLevelList.size() > 0) {
+ for(AgentFriendRelationEntity lowLevelMemberId : lowLevelList) {
+ Long memberId = lowLevelMemberId.getMemberId();
+ arrayList.add(memberId.toString());
+ List<String> memberlowLevel = memberMapper.selectMemberBylowLevelInviteId(lowLevelMemberId.getInviteId());
+ arrayList.addAll(memberlowLevel);
+ }
+ Set<String> set = new HashSet<>();
+ List<String> newList = new ArrayList<>();
+ set.addAll(arrayList);
+ newList.addAll(set);
+ //获取对应的充值提现
+ double czNumber = 0;
+ double txNumber = 0;
+ if(newList != null && newList.size() > 0) {
+ agentFriendRelation.setPromotionNumber(newList.size());
+ for(String memberId : newList) {
+ //充币
+ String selectCBByMemberId = memberCoinChargeMapper.selectCBByMemberId(memberId);
+ //充值
+ String selectCZByMemberI = memberQuickBuySaleMapper.selectCZByMemberId(memberId);
+ //提币
+ String selectTBByMemberId = memberCoinWithdrawMapper.selectTBByMemberId(memberId);
+ //提现
+ String selectTXByMemberId = memberQuickBuySaleMapper.selectTXByMemberId(memberId);
+
+ czNumber = czNumber + (selectCBByMemberId == null ? 0 : Double.parseDouble(selectCBByMemberId));
+ czNumber = czNumber + (selectCZByMemberI == null ? 0 : Double.parseDouble(selectCZByMemberI));
+ txNumber = txNumber + (selectTBByMemberId == null ? 0 : Double.parseDouble(selectTBByMemberId));
+ txNumber = txNumber + (selectTXByMemberId == null ? 0 : Double.parseDouble(selectTXByMemberId));
+ }
+ }
+ inviteIdCZ = czNumber+"";
+ inviteIdTX = txNumber+"";
+ inviteIdSY = (czNumber-txNumber)+"";
+ }
+ agentFriendRelation.setTotalRecharge(inviteIdCZ == null ? "0.0" : inviteIdCZ);
+ agentFriendRelation.setTotalWithdrawal(inviteIdTX == null ? "0.0" : inviteIdTX);
+ agentFriendRelation.setTotalPerformance(inviteIdSY == null ? "0.0" : inviteIdSY);
+ }
+ }
+ return findmemberQuickBuySaleListInPage;
+ }
+
@Override
public IPage<MemberEntity> findMemberListInPage(MemberEntity memberEntity, QueryRequest request) {
diff --git a/src/main/resources/mapper/modules/AgentFriendRelationMapper.xml b/src/main/resources/mapper/modules/AgentFriendRelationMapper.xml
new file mode 100644
index 0000000..e08a891
--- /dev/null
+++ b/src/main/resources/mapper/modules/AgentFriendRelationMapper.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.xcong.excoin.modules.member.mapper.AgentFriendRelationMapper">
+
+ <select id="findAgentFriendRelationListInPage" resultType="com.xcong.excoin.modules.member.entity.AgentFriendRelationEntity">
+ select * from agent_friend_relation s left join member m on m.id = s.member_id
+ <where>
+ <if test="record != null" >
+ <if test="record.account!=null and record.account!=''">
+ and (m.phone = #{record.account} or m.email = #{record.account} or m.invite_id=#{record.account})
+ </if>
+ </if>
+ </where>
+ </select>
+
+ <select id="selectAgentFriendRelationByMap" resultType="com.xcong.excoin.modules.member.entity.AgentFriendRelationEntity">
+ SELECT
+ *
+ FROM
+ agent_friend_relation
+ WHERE
+ FIND_IN_SET(#{inviteId}, referer_ids)
+ </select>
+
+</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/modules/MemberCoinChargeMapper.xml b/src/main/resources/mapper/modules/MemberCoinChargeMapper.xml
index 0017314..c5a078e 100644
--- a/src/main/resources/mapper/modules/MemberCoinChargeMapper.xml
+++ b/src/main/resources/mapper/modules/MemberCoinChargeMapper.xml
@@ -16,5 +16,9 @@
</where>
order by s.create_time desc
</select>
+
+ <select id="selectCBByMemberId" resultType="java.lang.String">
+ select IFNULL(sum(amount),'0') from member_coin_charge where member_id = #{memberId}
+ </select>
</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/modules/MemberCoinWithdrawMapper.xml b/src/main/resources/mapper/modules/MemberCoinWithdrawMapper.xml
index 8782239..5bcc7ff 100644
--- a/src/main/resources/mapper/modules/MemberCoinWithdrawMapper.xml
+++ b/src/main/resources/mapper/modules/MemberCoinWithdrawMapper.xml
@@ -22,5 +22,9 @@
</where>
order by s.create_time desc
</select>
+
+ <select id="selectTBByMemberId" resultType="java.lang.String">
+ select IFNULL(sum(amount),'0') from member_coin_withdraw where member_id = #{memberId} and status = 2
+ </select>
</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/modules/MemberMapper.xml b/src/main/resources/mapper/modules/MemberMapper.xml
index 9ee4ce5..3e3b6a5 100644
--- a/src/main/resources/mapper/modules/MemberMapper.xml
+++ b/src/main/resources/mapper/modules/MemberMapper.xml
@@ -346,4 +346,8 @@
)
</select>
+ <select id="selectMemberBylowLevelInviteId" resultType="java.lang.String">
+ select id from member where FIND_IN_SET(#{inviteId},referer_ids)
+ </select>
+
</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/modules/MemberQuickBuySaleMapper.xml b/src/main/resources/mapper/modules/MemberQuickBuySaleMapper.xml
index d6b9f41..62c7d50 100644
--- a/src/main/resources/mapper/modules/MemberQuickBuySaleMapper.xml
+++ b/src/main/resources/mapper/modules/MemberQuickBuySaleMapper.xml
@@ -2,6 +2,19 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.xcong.excoin.modules.member.mapper.MemberQuickBuySaleMapper">
+ <select id="selectCZByMemberId" resultType="java.lang.String">
+ select IFNULL(sum(amount_usdt),'0') from member_quick_buy_sale s
+ where s.order_type = 'B'
+ and s.member_id = #{memberId}
+ and s.order_status = 3
+ </select>
+
+ <select id="selectTXByMemberId" resultType="java.lang.String">
+ select IFNULL(sum(amount_usdt),'0') from member_quick_buy_sale s
+ where s.order_type = 'S'
+ and s.member_id = #{memberId}
+ and s.order_status = 3
+ </select>
<select id="findmemberQuickBuySaleListInPage" resultType="com.xcong.excoin.modules.member.vo.MemberQuickBuySaleVo">
select * from member_quick_buy_sale s left join member m on m.id = s.member_id
diff --git a/src/main/resources/templates/error/403.html b/src/main/resources/templates/error/403.html
index dd959d4..09a5349 100644
--- a/src/main/resources/templates/error/403.html
+++ b/src/main/resources/templates/error/403.html
@@ -1,40 +1,40 @@
-<!DOCTYPE html>
-<html xmlns:th="http://www.thymeleaf.org">
-<head>
- <meta charset="utf-8">
- <title>FEBS 权限系统</title>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
- <meta name="renderer" content="webkit">
- <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
- <meta name="viewport"
- content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
- <link rel="stylesheet" th:href="@{layui/css/layui.css}" media="all">
- <link rel="stylesheet" th:href="@{febs/css/febs.css}" media="all">
- <link rel="icon" th:href="@{febs/images/favicon.ico}" type="image/x-icon"/>
-</head>
-<body>
-<div class="layui-fluid" id="febs-error-403" lay-title="403">
- <div class="layui-row layui-col-space10" style="margin-top:100px">
- <div class="layui-col-xs3 layui-col-xs-offset2">
- <img data-th-src="@{febs/images/error/403.svg}" alt="" width="85%"/>
- </div>
- <div class="layui-col-xs7">
- <h1 style="font-size: 60px">403</h1>
- <h2 class="febs-mar-b20 febs-c-gray">抱歉,你无权访问该页面</h2>
- <button class="layui-btn layui-btn-normal" id="home">返回首页</button>
- </div>
- </div>
-</div>
-<script th:src="@{layui/layui.js}"></script>
-<script data-th-inline="javascript" type="text/javascript">
- layui.use(['jquery'], function () {
- var $ = layui.jquery,
- ctx = [[@{/}]],
- $view = $('#febs-error-403');
- $view.on('click', 'button', function () {
- window.location.href = ctx + 'index';
- });
- });
-</script>
-</body>
+<!DOCTYPE html>
+<html xmlns:th="http://www.thymeleaf.org">
+<head>
+ <meta charset="utf-8">
+ <title>Biue 后台系统</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+ <meta name="renderer" content="webkit">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+ <meta name="viewport"
+ content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
+ <link rel="stylesheet" th:href="@{layui/css/layui.css}" media="all">
+ <link rel="stylesheet" th:href="@{febs/css/febs.css}" media="all">
+ <link rel="icon" th:href="@{febs/images/favicon.ico}" type="image/x-icon"/>
+</head>
+<body>
+<div class="layui-fluid" id="febs-error-403" lay-title="403">
+ <div class="layui-row layui-col-space10" style="margin-top:100px">
+ <div class="layui-col-xs3 layui-col-xs-offset2">
+ <img data-th-src="@{febs/images/error/403.svg}" alt="" width="85%"/>
+ </div>
+ <div class="layui-col-xs7">
+ <h1 style="font-size: 60px">403</h1>
+ <h2 class="febs-mar-b20 febs-c-gray">抱歉,你无权访问该页面</h2>
+ <button class="layui-btn layui-btn-normal" id="home">返回首页</button>
+ </div>
+ </div>
+</div>
+<script th:src="@{layui/layui.js}"></script>
+<script data-th-inline="javascript" type="text/javascript">
+ layui.use(['jquery'], function () {
+ var $ = layui.jquery,
+ ctx = [[@{/}]],
+ $view = $('#febs-error-403');
+ $view.on('click', 'button', function () {
+ window.location.href = ctx + 'index';
+ });
+ });
+</script>
+</body>
</html>
\ No newline at end of file
diff --git a/src/main/resources/templates/error/404.html b/src/main/resources/templates/error/404.html
index c099153..9593794 100644
--- a/src/main/resources/templates/error/404.html
+++ b/src/main/resources/templates/error/404.html
@@ -1,42 +1,42 @@
-<!DOCTYPE html>
-<html xmlns:th="http://www.thymeleaf.org">
-<head>
- <meta charset="utf-8">
- <title>FEBS 权限系统</title>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
- <meta name="renderer" content="webkit">
- <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
- <meta name="viewport"
- content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
- <link rel="stylesheet" th:href="@{layui/css/layui.css}" media="all">
- <link rel="stylesheet" th:href="@{febs/css/febs.css}" media="all">
- <link rel="icon" th:href="@{febs/images/favicon.ico}" type="image/x-icon"/>
-</head>
-<body>
-<div class="layui-fluid" id="febs-error-404" lay-title="页面不存在">
- <div class="layui-row layui-col-space10" style="margin-top:100px">
- <div class="layui-col-xs3 layui-col-xs-offset2">
- <img data-th-src="@{febs/images/error/404.svg}" alt="" width="85%"/>
- </div>
- <div class="layui-col-xs7">
- <h1 style="font-size: 60px">404</h1>
- <h2 class="febs-mar-b20 febs-c-gray">抱歉,你访问的页面不存在</h2>
- <button class="layui-btn layui-btn-normal">
- 返回首页
- </button>
- </div>
- </div>
-</div>
-<script th:src="@{layui/layui.js}"></script>
-<script data-th-inline="javascript" type="text/javascript">
- layui.use(['jquery'], function () {
- var $ = layui.jquery,
- ctx = [[@{/}]],
- $view = $('#febs-error-404');
- $view.on('click', 'button', function () {
- window.location.href = ctx + 'index';
- });
- });
-</script>
-</body>
+<!DOCTYPE html>
+<html xmlns:th="http://www.thymeleaf.org">
+<head>
+ <meta charset="utf-8">
+ <title>Biue 后台系统</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+ <meta name="renderer" content="webkit">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+ <meta name="viewport"
+ content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
+ <link rel="stylesheet" th:href="@{layui/css/layui.css}" media="all">
+ <link rel="stylesheet" th:href="@{febs/css/febs.css}" media="all">
+ <link rel="icon" th:href="@{febs/images/favicon.ico}" type="image/x-icon"/>
+</head>
+<body>
+<div class="layui-fluid" id="febs-error-404" lay-title="页面不存在">
+ <div class="layui-row layui-col-space10" style="margin-top:100px">
+ <div class="layui-col-xs3 layui-col-xs-offset2">
+ <img data-th-src="@{febs/images/error/404.svg}" alt="" width="85%"/>
+ </div>
+ <div class="layui-col-xs7">
+ <h1 style="font-size: 60px">404</h1>
+ <h2 class="febs-mar-b20 febs-c-gray">抱歉,你访问的页面不存在</h2>
+ <button class="layui-btn layui-btn-normal">
+ 返回首页
+ </button>
+ </div>
+ </div>
+</div>
+<script th:src="@{layui/layui.js}"></script>
+<script data-th-inline="javascript" type="text/javascript">
+ layui.use(['jquery'], function () {
+ var $ = layui.jquery,
+ ctx = [[@{/}]],
+ $view = $('#febs-error-404');
+ $view.on('click', 'button', function () {
+ window.location.href = ctx + 'index';
+ });
+ });
+</script>
+</body>
</html>
\ No newline at end of file
diff --git a/src/main/resources/templates/error/500.html b/src/main/resources/templates/error/500.html
index bb38464..9496dbc 100644
--- a/src/main/resources/templates/error/500.html
+++ b/src/main/resources/templates/error/500.html
@@ -1,42 +1,42 @@
-<!DOCTYPE html>
-<html xmlns:th="http://www.thymeleaf.org">
-<head>
- <meta charset="utf-8">
- <title>FEBS 权限系统</title>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
- <meta name="renderer" content="webkit">
- <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
- <meta name="viewport"
- content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
- <link rel="stylesheet" th:href="@{layui/css/layui.css}" media="all">
- <link rel="stylesheet" th:href="@{febs/css/febs.css}" media="all">
- <link rel="icon" th:href="@{febs/images/favicon.ico}" type="image/x-icon"/>
-</head>
-<body>
-<div class="layui-fluid" id="febs-error-500" lay-title="500">
- <div class="layui-row layui-col-space10" style="margin-top:100px">
- <div class="layui-col-xs4 layui-col-xs-offset2">
- <img data-th-src="@{febs/images/error/500.svg}" alt="" width="85%"/>
- </div>
- <div class="layui-col-xs6">
- <h1 style="font-size: 60px">500</h1>
- <h2 class="febs-mar-b20 febs-c-gray">抱歉,服务器出错了</h2>
- <button class="layui-btn layui-btn-normal">
- 返回首页
- </button>
- </div>
- </div>
-</div>
-<script th:src="@{layui/layui.js}"></script>
-<script data-th-inline="javascript" type="text/javascript">
- layui.use(['jquery'], function () {
- var $ = layui.jquery,
- ctx = [[@{/}]],
- $view = $('#febs-error-500');
- $view.on('click', 'button', function () {
- window.location.href = ctx + 'index';
- });
- });
-</script>
-</body>
+<!DOCTYPE html>
+<html xmlns:th="http://www.thymeleaf.org">
+<head>
+ <meta charset="utf-8">
+ <title>Biue 后台系统</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+ <meta name="renderer" content="webkit">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+ <meta name="viewport"
+ content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
+ <link rel="stylesheet" th:href="@{layui/css/layui.css}" media="all">
+ <link rel="stylesheet" th:href="@{febs/css/febs.css}" media="all">
+ <link rel="icon" th:href="@{febs/images/favicon.ico}" type="image/x-icon"/>
+</head>
+<body>
+<div class="layui-fluid" id="febs-error-500" lay-title="500">
+ <div class="layui-row layui-col-space10" style="margin-top:100px">
+ <div class="layui-col-xs4 layui-col-xs-offset2">
+ <img data-th-src="@{febs/images/error/500.svg}" alt="" width="85%"/>
+ </div>
+ <div class="layui-col-xs6">
+ <h1 style="font-size: 60px">500</h1>
+ <h2 class="febs-mar-b20 febs-c-gray">抱歉,服务器出错了</h2>
+ <button class="layui-btn layui-btn-normal">
+ 返回首页
+ </button>
+ </div>
+ </div>
+</div>
+<script th:src="@{layui/layui.js}"></script>
+<script data-th-inline="javascript" type="text/javascript">
+ layui.use(['jquery'], function () {
+ var $ = layui.jquery,
+ ctx = [[@{/}]],
+ $view = $('#febs-error-500');
+ $view.on('click', 'button', function () {
+ window.location.href = ctx + 'index';
+ });
+ });
+</script>
+</body>
</html>
\ 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 a46deb5..b47aa0d 100644
--- a/src/main/resources/templates/febs/views/index.html
+++ b/src/main/resources/templates/febs/views/index.html
@@ -1,428 +1,280 @@
-<style>
- #febs-index .welcome-info {
- border: 1px solid #f1f1f1;
- margin-bottom: .5rem;
- padding: .5rem;
- }
-
- #febs-index .welcome-info-wrapper {
- padding: .2rem;
- display: inline-block
- }
-
- #febs-index .welcome-info-wrapper .user-header {
- display: inline-block;
- vertical-align: middle
- }
-
- #febs-index .welcome-info-wrapper .user-header img {
- width: 5rem;
- margin: .5rem 1rem;
- border-radius: 50%
- }
-
- #febs-index .welcome-info-wrapper .user-info {
- display: inline-block;
- vertical-align: middle
- }
-
- #febs-index .welcome-info-wrapper .user-info .random-message {
- font-size: 1rem;
- margin-bottom: .2rem;
- max-width: 21rem
- }
-
- #febs-index .welcome-info-wrapper .user-info .user-dept, #febs-index .welcome-info-wrapper .user-info .user-login-info {
- color: rgba(0, 0, 0, 0.45);
- }
-
- #febs-index .login-count-table {
- width: 100%;
- margin: 1rem;
- }
-
- #febs-index .login-count-table .count {
- padding-top: .8rem;
- font-size: 1rem;
- font-weight: 600;
- color: #1890ff
- }
-
- #febs-index .project-table {
- padding: .5rem;
- border: 1px solid #f1f1f1;
- width: 100%
- }
-
- #febs-index .project-table-td {
- padding: .5rem 0.7rem;
- border: 1px solid #f1f1f1;
- }
-
- #febs-index .project-table-td a {
- color: #42b983;
- font-size: .9rem;
- font-weight: 600;
- }
-
- #febs-index .project-desc {
- color: rgba(0, 0, 0, 0.45);
- }
-</style>
-<div class="layui-fluid layui-anim febs-anim-up" id="febs-index" lay-title="系统首页">
- <div class="layui-row layui-col-space8 febs-container">
- <div class="layui-col-md12 layui-col-sm12 layui-col-xs12">
- <div class="layui-card">
- <div class="layui-card-body layui-anim layui-anim-fadein">
- <div class="layui-row welcome-info">
- <div class="layui-col-md6 layui-col-sm12 layui-col-xs12">
- <div class="layui-row welcome-info-wrapper">
- <div class="user-header">
- <img alt="头像" id="user-avatar" data-th-src="@{febs/images/avatar/empty.jpg}">
- </div>
- <div class="user-info">
- <div class="layui-row">
- <div class="random-message">
- <span id="welcome-message"></span>
- </div>
- <div class="user-dept">
- <span id="user-dept"></span> | <span id="user-role"></span>
- </div>
- <div class="user-login-info">
- 上次登录时间:<span id="last-login-time">2019-05-23 18:45:12</span>
- </div>
- </div>
- </div>
- </div>
- </div>
- <div class="layui-col-md6 layui-col-sm12 layui-col-xs12">
- <div class="layui-col-md-offset5">
- <table class="login-count-table">
- <tr>
- <td>注册用户数量</td>
- <td>持仓用户数量</td>
- <td>当前平台总金额</td>
- </tr>
- <tr>
- <td class="count" id="today-ip">
- 0
- </td>
- <td class="count" id="today-visit-count">
- 0
- </td>
- <td class="count" id="total-visit-count">
- 0
- </td>
- </tr>
- </table>
- </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 id="chart" style="height: 350px"></div>
- </div>
- </div>
- </div>
- <div class="layui-col-md6 layui-col-sm6 layui-col-xs12">
- <div class="layui-card">
- <div class="layui-card-body">
- <table class="project-table">
- <tr>
- <td style="padding: .8rem;">进行中的项目</td>
- <td style="padding: .8rem;text-align: right">
- <a target="_blank" href="https://github.com/wuyouzhuguli?tab=repositories">所有项目</a>
- </td>
- </tr>
- <tr>
- <td class="project-table-td">
- <div class="layui-row">
- <div class="layui-col-md12 layui-col-xs12">
- <div class="layui-row">
- <div class="layui-col-md12">
- <a target="_blank" href="https://github.com/wuyouzhuguli/FEBS-Cloud">FEBS
- Cloud</a>
- </div>
- <div class="project-desc">
- Spring Cloud 微服务权限管理系统。
- </div>
- </div>
- </div>
- </div>
- </td>
- <td class="project-table-td">
- <div class="layui-row">
- <div class="layui-col-md12 layui-col-xs12">
- <div class="layui-row">
- <div class="layui-col-md12">
- <a target="_blank" href="https://github.com/wuyouzhuguli/FEBS-Cloud-Web">FEBS
- Cloud Web</a>
- </div>
- <div class="project-desc">
- FEBS-Cloud前端,使用 vue-element-admin 构建。
- </div>
- </div>
- </div>
- </div>
- </td>
- </tr>
- <tr>
- <td class="project-table-td">
- <div class="layui-row">
- <div class="layui-col-md12 layui-col-xs12">
- <div class="layui-row">
- <div class="layui-col-md12">
- <a target="_blank" href="https://github.com/wuyouzhuguli/FEBS-Shiro">FEBS
- Shiro</a>
- </div>
- <div class="project-desc">
- Spring Boot 2.0.4 & Shiro1.4.0 权限管理系统。
- </div>
- </div>
- </div>
- </div>
- </td>
- <td class="project-table-td">
- <div class="layui-row">
- <div class="layui-col-md12 layui-col-xs12">
- <div class="layui-row">
- <div class="layui-col-md12">
- <a target="_blank" href="https://github.com/wuyouzhuguli/FEBS-Security">FEBS
- Security</a>
- </div>
- <div class="project-desc">
- Spring Boot 2.0.4 & Spring Security 5.0.7 权限管理系统。
- </div>
- </div>
- </div>
- </div>
- </td>
- </tr>
- <tr>
- <td class="project-table-td">
- <div class="layui-row">
- <div class="layui-col-md12 layui-col-xs12">
- <div class="layui-row">
- <div class="layui-col-md12">
- <a target="_blank" href="https://github.com/wuyouzhuguli/FEBS-Actuator">FEBS
- Cloud K8S</a>
- </div>
- <div class="project-desc">
- FEBS Cloud K8S集群部署脚本。
- </div>
- </div>
- </div>
- </div>
- </td>
- <td class="project-table-td">
- <div class="layui-row">
- <div class="layui-col-md12 layui-col-xs12">
- <div class="layui-row">
- <div class="layui-col-md12">
- <a target="_blank" href="https://github.com/wuyouzhuguli/SpringAll">SpringAll</a>
- </div>
- <div class="project-desc">
- 循序渐进学习Spring Boot、Spring Cloud与Spring Security。
- </div>
- </div>
- </div>
- </div>
- </td>
- </tr>
- <tr>
- <td class="project-table-td">
- <div class="layui-row">
- <div class="layui-col-md12 layui-col-xs12">
- <div class="layui-row">
- <div class="layui-col-md12">
- <a target="_blank" href="https://github.com/wuyouzhuguli/FEBS-Vue">FEBS
- Vue</a>
- </div>
- <div class="project-desc">
- FEBS-Shiro前后端分离版本,前端架构采用Vue全家桶。
- </div>
- </div>
- </div>
- </div>
- </td>
- <td class="project-table-td">
- <div class="layui-row">
- <div class="layui-col-md12 layui-col-xs12">
- <div class="layui-row">
- <div class="layui-col-md12">
- <a target="_blank" href="https://github.com/wuyouzhuguli/FEBS-Actuator">FEBS Actuator</a>
- </div>
- <div class="project-desc">
- 使用Spring Boot Admin 2.0.2构建,用于监控FEBS。
- </div>
- </div>
- </div>
- </div>
- </td>
- </tr>
- </table>
- </div>
- </div>
- </div>
- </div>
-</div>
-<script data-th-inline="javascript" type="text/javascript">
- layui.use(['apexcharts', 'febs', 'jquery', 'util'], function () {
- var $ = layui.jquery,
- util = layui.util,
- $view = $('#febs-index'),
- febs = layui.febs;
-
- febs.get(ctx + 'index/' + currentUser.username, null, function (r) {
- handleSuccess(r.data);
- });
-
- function handleSuccess(data) {
- var hour = new Date().getHours();
- var time = hour < 6 ? '早上好' : (hour <= 11 ? '上午好' : (hour <= 13 ? '中午好' : (hour <= 18 ? '下午好' : '晚上好')));
- var welcomeArr = [
- '喝杯咖啡休息下吧☕',
- '要不要和朋友打局LOL',
- '今天又写了几个Bug呢',
- '今天在群里吹水了吗',
- '今天吃了什么好吃的呢',
- '今天您微笑了吗😊',
- '今天帮助别人了吗',
- '准备吃些什么呢',
- '周末要不要去看电影?'
- ];
- var index = Math.floor((Math.random() * welcomeArr.length));
- var welcomeMessage = time + ',<a id="febs-index-user">' + currentUser.username + '</a>,' + welcomeArr[index];
- $view.find('#today-ip').text(data.todayIp).end()
- .find('#today-visit-count').text(data.todayVisitCount).end()
- .find('#total-visit-count').text(data.totalVisitCount).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()
- .find('#welcome-message').html(welcomeMessage).end()
- .find('#user-avatar').attr('src', ctx + "febs/images/avatar/" + currentUser.avatar);
-
- var currentTime = new Date().getTime();
- var yourVisitCount = [];
- var totalVisitCount = [];
- var lastTenDays = [
- util.toDateString(new Date(currentTime - 1000 * 9 * 86400), 'MM-dd'),
- util.toDateString(new Date(currentTime - 1000 * 8 * 86400), 'MM-dd'),
- util.toDateString(new Date(currentTime - 1000 * 7 * 86400), 'MM-dd'),
- util.toDateString(new Date(currentTime - 1000 * 6 * 86400), 'MM-dd'),
- util.toDateString(new Date(currentTime - 1000 * 5 * 86400), 'MM-dd'),
- util.toDateString(new Date(currentTime - 1000 * 4 * 86400), 'MM-dd'),
- util.toDateString(new Date(currentTime - 1000 * 3 * 86400), 'MM-dd'),
- util.toDateString(new Date(currentTime - 1000 * 2 * 86400), 'MM-dd'),
- util.toDateString(new Date(currentTime - 1000 * 86400), 'MM-dd'),
- util.toDateString(new Date(currentTime), 'MM-dd')
- ];
-
-
- layui.each(lastTenDays, function (k, i) {
- var contain = false;
- layui.each(data.lastSevenUserVisitCount, function (key, item) {
- if (i === item.days) {
- yourVisitCount.push(item.count);
- contain = true;
- }
- });
- if (!contain) yourVisitCount.push(0);
- contain = false;
- layui.each(data.lastSevenVisitCount, function (key, item) {
- if (i === item.days) {
- totalVisitCount.push(item.count);
- contain = true;
- }
- });
- if (!contain) totalVisitCount.push(0);
- });
-
- var options = {
- chart: {
- height: 350,
- type: 'area',
- toolbar: {
- show: false
- }
- },
- colors: ['#1890ff', '#0acf97'],
- plotOptions: {
- bar: {
- horizontal: false,
- columnWidth: '32rem'
- }
- },
- dataLabels: {
- enabled: false
- },
- stroke: {
- width: [3, 3],
- curve: 'smooth'
- },
- series: [{
- name: '总数',
- data: totalVisitCount
- }, {
- name: '您',
- data: yourVisitCount
- }],
- xaxis: {
- categories: lastTenDays,
- axisTicks: {
- show: true
- },
- axisBorder: {
- show: true,
- color: '#f1f1f1'
- }
- },
- fill: {
- type: 'gradient',
- gradient: {
- shadeIntensity: 1,
- inverseColors: false,
- opacityFrom: 0.5,
- opacityTo: 0,
- stops: [0, 90, 100]
- }
- },
- title: {
- text: '近10天系统访问记录',
- align: 'left',
- style: {
- color: 'rgba(0, 0, 0, .65)'
- }
- },
- tooltip: {
- y: {
- formatter: function (val) {
- return "访问次数 " + val + " 次"
- }
- }
- },
- grid: {
- row: {
- colors: ['transparent', 'transparent'],
- opacity: 0.2
- },
- borderColor: '#f1f1f1'
- }
- };
-
- new ApexCharts(
- document.querySelector("#chart"),
- options
- ).render();
- }
-
- $view.on('click', '#febs-index-user',function () {
- febs.navigate("/user/profile");
- })
-
- });
-</script>
+<style>
+ #febs-index .welcome-info {
+ border: 1px solid #f1f1f1;
+ margin-bottom: .5rem;
+ padding: .5rem;
+ }
+
+ #febs-index .welcome-info-wrapper {
+ padding: .2rem;
+ display: inline-block
+ }
+
+ #febs-index .welcome-info-wrapper .user-header {
+ display: inline-block;
+ vertical-align: middle
+ }
+
+ #febs-index .welcome-info-wrapper .user-header img {
+ width: 5rem;
+ margin: .5rem 1rem;
+ border-radius: 50%
+ }
+
+ #febs-index .welcome-info-wrapper .user-info {
+ display: inline-block;
+ vertical-align: middle
+ }
+
+ #febs-index .welcome-info-wrapper .user-info .random-message {
+ font-size: 1rem;
+ margin-bottom: .2rem;
+ max-width: 21rem
+ }
+
+ #febs-index .welcome-info-wrapper .user-info .user-dept, #febs-index .welcome-info-wrapper .user-info .user-login-info {
+ color: rgba(0, 0, 0, 0.45);
+ }
+
+ #febs-index .login-count-table {
+ width: 100%;
+ margin: 1rem;
+ }
+
+ #febs-index .login-count-table .count {
+ padding-top: .8rem;
+ font-size: 1rem;
+ font-weight: 600;
+ color: #1890ff
+ }
+
+ #febs-index .project-table {
+ padding: .5rem;
+ border: 1px solid #f1f1f1;
+ width: 100%
+ }
+
+ #febs-index .project-table-td {
+ padding: .5rem 0.7rem;
+ border: 1px solid #f1f1f1;
+ }
+
+ #febs-index .project-table-td a {
+ color: #42b983;
+ font-size: .9rem;
+ font-weight: 600;
+ }
+
+ #febs-index .project-desc {
+ color: rgba(0, 0, 0, 0.45);
+ }
+</style>
+<div class="layui-fluid layui-anim febs-anim-up" id="febs-index" lay-title="系统首页">
+ <div class="layui-row layui-col-space8 febs-container">
+ <div class="layui-col-md12 layui-col-sm12 layui-col-xs12">
+ <div class="layui-card">
+ <div class="layui-card-body layui-anim layui-anim-fadein">
+ <div class="layui-row welcome-info">
+ <div class="layui-col-md6 layui-col-sm12 layui-col-xs12">
+ <div class="layui-row welcome-info-wrapper">
+ <div class="user-header">
+ <img alt="头像" id="user-avatar" data-th-src="@{febs/images/avatar/empty.jpg}">
+ </div>
+ <div class="user-info">
+ <div class="layui-row">
+ <div class="random-message">
+ <span id="welcome-message"></span>
+ </div>
+ <div class="user-dept">
+ <span id="user-dept"></span> | <span id="user-role"></span>
+ </div>
+ <div class="user-login-info">
+ 上次登录时间:<span id="last-login-time">2019-05-23 18:45:12</span>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="layui-col-md6 layui-col-sm12 layui-col-xs12">
+ <div class="layui-col-md-offset5">
+ <table class="login-count-table">
+ <tr>
+ <td>注册用户数量</td>
+ </tr>
+ <tr>
+ <td class="count" id="today-ip">
+ 0
+ </td>
+ </tr>
+ </table>
+ </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 id="chart" style="height: 350px"></div>
+ </div>
+ </div>
+ </div>
+ </div>
+</div>
+<script data-th-inline="javascript" type="text/javascript">
+ layui.use(['apexcharts', 'febs', 'jquery', 'util'], function () {
+ var $ = layui.jquery,
+ util = layui.util,
+ $view = $('#febs-index'),
+ febs = layui.febs;
+
+ febs.get(ctx + 'index/' + currentUser.username, null, function (r) {
+ handleSuccess(r.data);
+ });
+
+ function handleSuccess(data) {
+ var hour = new Date().getHours();
+ var time = hour < 6 ? '早上好' : (hour <= 11 ? '上午好' : (hour <= 13 ? '中午好' : (hour <= 18 ? '下午好' : '晚上好')));
+ var welcomeArr = [
+ '喝杯咖啡休息下吧☕',
+ '要不要和朋友打局LOL',
+ '今天又写了几个Bug呢',
+ '今天在群里吹水了吗',
+ '今天吃了什么好吃的呢',
+ '今天您微笑了吗😊',
+ '今天帮助别人了吗',
+ '准备吃些什么呢',
+ '周末要不要去看电影?'
+ ];
+ var index = Math.floor((Math.random() * welcomeArr.length));
+ var welcomeMessage = time + ',<a id="febs-index-user">' + currentUser.username + '</a>,' + welcomeArr[index];
+ $view.find('#today-ip').text(data.todayIp).end()
+ .find('#today-visit-count').text(data.todayVisitCount).end()
+ .find('#total-visit-count').text(data.totalVisitCount).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()
+ .find('#welcome-message').html(welcomeMessage).end()
+ .find('#user-avatar').attr('src', ctx + "febs/images/avatar/" + currentUser.avatar);
+
+ var currentTime = new Date().getTime();
+ var yourVisitCount = [];
+ var totalVisitCount = [];
+ var lastTenDays = [
+ util.toDateString(new Date(currentTime - 1000 * 9 * 86400), 'MM-dd'),
+ util.toDateString(new Date(currentTime - 1000 * 8 * 86400), 'MM-dd'),
+ util.toDateString(new Date(currentTime - 1000 * 7 * 86400), 'MM-dd'),
+ util.toDateString(new Date(currentTime - 1000 * 6 * 86400), 'MM-dd'),
+ util.toDateString(new Date(currentTime - 1000 * 5 * 86400), 'MM-dd'),
+ util.toDateString(new Date(currentTime - 1000 * 4 * 86400), 'MM-dd'),
+ util.toDateString(new Date(currentTime - 1000 * 3 * 86400), 'MM-dd'),
+ util.toDateString(new Date(currentTime - 1000 * 2 * 86400), 'MM-dd'),
+ util.toDateString(new Date(currentTime - 1000 * 86400), 'MM-dd'),
+ util.toDateString(new Date(currentTime), 'MM-dd')
+ ];
+
+
+ layui.each(lastTenDays, function (k, i) {
+ var contain = false;
+ layui.each(data.lastSevenUserVisitCount, function (key, item) {
+ if (i === item.days) {
+ yourVisitCount.push(item.count);
+ contain = true;
+ }
+ });
+ if (!contain) yourVisitCount.push(0);
+ contain = false;
+ layui.each(data.lastSevenVisitCount, function (key, item) {
+ if (i === item.days) {
+ totalVisitCount.push(item.count);
+ contain = true;
+ }
+ });
+ if (!contain) totalVisitCount.push(0);
+ });
+
+ var options = {
+ chart: {
+ height: 350,
+ type: 'area',
+ toolbar: {
+ show: false
+ }
+ },
+ colors: ['#1890ff', '#0acf97'],
+ plotOptions: {
+ bar: {
+ horizontal: false,
+ columnWidth: '32rem'
+ }
+ },
+ dataLabels: {
+ enabled: false
+ },
+ stroke: {
+ width: [3, 3],
+ curve: 'smooth'
+ },
+ series: [{
+ name: '总数',
+ data: totalVisitCount
+ }, {
+ name: '您',
+ data: yourVisitCount
+ }],
+ xaxis: {
+ categories: lastTenDays,
+ axisTicks: {
+ show: true
+ },
+ axisBorder: {
+ show: true,
+ color: '#f1f1f1'
+ }
+ },
+ fill: {
+ type: 'gradient',
+ gradient: {
+ shadeIntensity: 1,
+ inverseColors: false,
+ opacityFrom: 0.5,
+ opacityTo: 0,
+ stops: [0, 90, 100]
+ }
+ },
+ title: {
+ text: '近10天系统访问记录',
+ align: 'left',
+ style: {
+ color: 'rgba(0, 0, 0, .65)'
+ }
+ },
+ tooltip: {
+ y: {
+ formatter: function (val) {
+ return "访问次数 " + val + " 次"
+ }
+ }
+ },
+ grid: {
+ row: {
+ colors: ['transparent', 'transparent'],
+ opacity: 0.2
+ },
+ borderColor: '#f1f1f1'
+ }
+ };
+
+ new ApexCharts(
+ document.querySelector("#chart"),
+ options
+ ).render();
+ }
+
+ $view.on('click', '#febs-index-user',function () {
+ febs.navigate("/user/profile");
+ })
+
+ });
+</script>
diff --git a/src/main/resources/templates/febs/views/layout.html b/src/main/resources/templates/febs/views/layout.html
index 430a48e..82bcbfa 100644
--- a/src/main/resources/templates/febs/views/layout.html
+++ b/src/main/resources/templates/febs/views/layout.html
@@ -1,178 +1,178 @@
-<div class="layui-layout layui-layout-admin" id="febs-layout">
- <div class="layui-header layui-anim febs-anim-down" id="app-header">
- <script type="text/html"
- template
- lay-done="layui.element.render('nav','febs-header')">
- <ul class="layui-nav layui-layout-left" lay-filter="febs-header">
- <li class="layui-nav-item" lay-unselect>
- <a febs-event="flexible" title="侧边伸缩">
- <i class="layui-icon layui-icon-shrink-right"></i>
- </a>
- </li>
- <span class="febs-breadcrumb"></span>
- </ul>
- <ul class="layui-nav layui-layout-right" lay-filter="febs-header">
- <li class="layui-nav-item layui-hide-xs" id="fullscreen" lay-unselect>
- <a title="切换全屏">
- <i class="layui-icon layui-icon-screen-full"></i>
- </a>
- </li>
- <li class="layui-nav-item layui-user" lay-unselect>
- <a>
- <img style="width: 1.9rem;margin-right:.5rem;border-radius: 50%"
- src="{{= ctx + 'febs/images/avatar/' + currentUser.avatar }}" title="头像">
- {{ currentUser.username }}
- </a>
- <dl class="layui-nav-child">
- <dd><a class="layui-nav-child-href" id="user-profile">个人中心</a></dd>
- <dd><a class="layui-nav-child-href" id="password-update">密码修改</a></dd>
- <dd><a class="layui-nav-child-href" data-th-href="@{logout}">退出登录</a></dd>
- </dl>
- </li>
- </ul>
- </script>
- </div>
-
- <div class="febs-tabs-hidden">
- <script type="text/html" id="TPL-app-tabsmenu" template>
- {{# if(layui.conf.viewTabs){ }}
- <div class="febs-tabs-wrap">
- <span class="febs-tabs-btn febs-tabs-action febs-tabs-prev" data-type="prev">
- <i class="layui-icon layui-icon-left"></i>
- </span>
- <span class="febs-tabs-btn febs-tabs-action febs-tabs-next" data-type="next">
- <i class="layui-icon layui-icon-right"></i>
- </span>
- <span class="febs-tabs-btn febs-tabs-action febs-tabs-down" data-type="down">
- <i class="layui-icon layui-icon-close"></i>
- </span>
- <ul class="febs-tabs-menu">
- {{# layui.each(layui.view.tab.data,function(i, item){ }}
- <li data-type="page" class="febs-tabs-btn" lay-url="{{item.fileurl}}">
- <i class="febs-tabs-ball"></i>{{ item.title }}<b class="layui-icon layui-icon-close febs-tabs-close"></b>
- </li>
- {{# }) }}
- </ul>
- </div>
- {{# } }}
- </script>
- </div>
-
- <!-- 侧边菜单 -->
- <div class="layui-side" id="app-sidebar">
- <div class="layui-side-scroll">
- <div class="layui-logo" style="cursor: pointer">
- <img data-th-src="@{febs/images/logo.png}">
- <span>ExCoin 管理系统</span>
- </div>
- <script
- type="text/html"
- template
- lay-api="getMenus"
- lay-done="layui.element.render('nav','febs-sidebar');layui.febs.sidebarFocus()">
- <ul class="layui-nav layui-nav-tree" lay-filter="febs-sidebar" lay-shrink="all">
- {{#
- function __createSlidebar(data,index){
- if(!data || data.length == 0) return '';
- var html = '
- <dl class="layui-nav-child">';
- layui.each(data, function(i, child) {
- var left = index == 0 ? 50 : 50 + index * 20;
- var title = child.title;
- if (child.icon) {
- title = '<i class="layui-icon '+child.icon+'"></i>' + child.title
- }
- html += '
- <dd><a style="padding-left:' + left + 'px" target="'+(child.target||'')+'"
- lay-href="'+ (child.href||'') +'">' + title + '</a>';
- if(child.childs) html += __createSlidebar(child.childs,index+1);
- html += '</dd>';
- });
- html = html +'</dl>';
- return html;
- }
- layui.each(d.childs, function(i,child){
- }}
- <li class="layui-nav-item">
- <a lay-href="{{child.href||''}}" target="{{child.target||''}}" title="{{child.title}}"><i
- class="layui-icon {{child.icon}}"></i>{{child.title}} {{# if(child.notice){ }}<span
- class="layui-badge">{{ child.notice }}</span>{{# } }}</a>
- {{ __createSlidebar(child.childs,0) }}
- </li>
- {{# }) }}
- </ul>
- </script>
- </div>
- </div>
- <!-- 主体内容 -->
- <div class="layui-body" id="febs-body"></div>
-</div>
-<script data-th-inline="javascript" type="text/javascript">
- layui.use(['jquery', 'febs', 'element'], function () {
- var $ = layui.jquery,
- $view = $('#febs-layout'),
- febs = layui.febs;
-
- var element = layui.element;
-
- initTheme();
-
- $view.find('#user-avatar').attr('src', ctx + "febs/images/avatar/" + currentUser.avatar);
-
- $view.on('click', '.layui-logo', function () {
- febs.navigate("/index");
- });
-
- $view.on('click', '#fullscreen', function () {
- var $this = $(this);
- var normalCls = 'layui-icon-screen-full';
- var activeCls = 'layui-icon-screen-restore';
- var ico = $this.find('.layui-icon');
-
- if (ico.hasClass(normalCls)) {
- var a = document.body;
- a.webkitRequestFullScreen
- ? a.webkitRequestFullScreen()
- : a.mozRequestFullScreen
- ? a.mozRequestFullScreen()
- : a.requestFullScreen && a.requestFullscreen();
- ico.removeClass(normalCls).addClass(activeCls)
- } else {
- var b = document;
- b.webkitCancelFullScreen
- ? b.webkitCancelFullScreen()
- : b.mozCancelFullScreen
- ? b.mozCancelFullScreen()
- : b.cancelFullScreen
- ? b.cancelFullScreen()
- : b.exitFullscreen && b.exitFullscreen();
- ico.removeClass(activeCls).addClass(normalCls)
- }
- });
-
- $view.on('click', '#password-update', function () {
- febs.modal.view('密码修改', 'password/update', {
- area: $(window).width() <= 750 ? '90%' : '500px',
- btn: ['确定'],
- yes: function () {
- $('#user-password-update').find('#submit').trigger('click');
- }
- });
- });
-
- $view.on('click', '#user-profile', function () {
- febs.navigate("/user/profile");
- });
-
- function initTheme() {
- var theme = currentUser.theme;
- var $sidebar = $('#app-sidebar');
- if (theme === 'black') {
- $sidebar.removeClass('febs-theme-white');
- }
- if (theme === 'white') {
- $sidebar.addClass('febs-theme-white');
- }
- }
- });
+<div class="layui-layout layui-layout-admin" id="febs-layout">
+ <div class="layui-header layui-anim febs-anim-down" id="app-header">
+ <script type="text/html"
+ template
+ lay-done="layui.element.render('nav','febs-header')">
+ <ul class="layui-nav layui-layout-left" lay-filter="febs-header">
+ <li class="layui-nav-item" lay-unselect>
+ <a febs-event="flexible" title="侧边伸缩">
+ <i class="layui-icon layui-icon-shrink-right"></i>
+ </a>
+ </li>
+ <span class="febs-breadcrumb"></span>
+ </ul>
+ <ul class="layui-nav layui-layout-right" lay-filter="febs-header">
+ <li class="layui-nav-item layui-hide-xs" id="fullscreen" lay-unselect>
+ <a title="切换全屏">
+ <i class="layui-icon layui-icon-screen-full"></i>
+ </a>
+ </li>
+ <li class="layui-nav-item layui-user" lay-unselect>
+ <a>
+ <img style="width: 1.9rem;margin-right:.5rem;border-radius: 50%"
+ src="{{= ctx + 'febs/images/avatar/' + currentUser.avatar }}" title="头像">
+ {{ currentUser.username }}
+ </a>
+ <dl class="layui-nav-child">
+ <dd><a class="layui-nav-child-href" id="user-profile">个人中心</a></dd>
+ <dd><a class="layui-nav-child-href" id="password-update">密码修改</a></dd>
+ <dd><a class="layui-nav-child-href" data-th-href="@{logout}">退出登录</a></dd>
+ </dl>
+ </li>
+ </ul>
+ </script>
+ </div>
+
+ <div class="febs-tabs-hidden">
+ <script type="text/html" id="TPL-app-tabsmenu" template>
+ {{# if(layui.conf.viewTabs){ }}
+ <div class="febs-tabs-wrap">
+ <span class="febs-tabs-btn febs-tabs-action febs-tabs-prev" data-type="prev">
+ <i class="layui-icon layui-icon-left"></i>
+ </span>
+ <span class="febs-tabs-btn febs-tabs-action febs-tabs-next" data-type="next">
+ <i class="layui-icon layui-icon-right"></i>
+ </span>
+ <span class="febs-tabs-btn febs-tabs-action febs-tabs-down" data-type="down">
+ <i class="layui-icon layui-icon-close"></i>
+ </span>
+ <ul class="febs-tabs-menu">
+ {{# layui.each(layui.view.tab.data,function(i, item){ }}
+ <li data-type="page" class="febs-tabs-btn" lay-url="{{item.fileurl}}">
+ <i class="febs-tabs-ball"></i>{{ item.title }}<b class="layui-icon layui-icon-close febs-tabs-close"></b>
+ </li>
+ {{# }) }}
+ </ul>
+ </div>
+ {{# } }}
+ </script>
+ </div>
+
+ <!-- 侧边菜单 -->
+ <div class="layui-side" id="app-sidebar">
+ <div class="layui-side-scroll">
+ <div class="layui-logo" style="cursor: pointer">
+ <img data-th-src="@{febs/images/logo.png}">
+ <span>Biue 管理系统</span>
+ </div>
+ <script
+ type="text/html"
+ template
+ lay-api="getMenus"
+ lay-done="layui.element.render('nav','febs-sidebar');layui.febs.sidebarFocus()">
+ <ul class="layui-nav layui-nav-tree" lay-filter="febs-sidebar" lay-shrink="all">
+ {{#
+ function __createSlidebar(data,index){
+ if(!data || data.length == 0) return '';
+ var html = '
+ <dl class="layui-nav-child">';
+ layui.each(data, function(i, child) {
+ var left = index == 0 ? 50 : 50 + index * 20;
+ var title = child.title;
+ if (child.icon) {
+ title = '<i class="layui-icon '+child.icon+'"></i>' + child.title
+ }
+ html += '
+ <dd><a style="padding-left:' + left + 'px" target="'+(child.target||'')+'"
+ lay-href="'+ (child.href||'') +'">' + title + '</a>';
+ if(child.childs) html += __createSlidebar(child.childs,index+1);
+ html += '</dd>';
+ });
+ html = html +'</dl>';
+ return html;
+ }
+ layui.each(d.childs, function(i,child){
+ }}
+ <li class="layui-nav-item">
+ <a lay-href="{{child.href||''}}" target="{{child.target||''}}" title="{{child.title}}"><i
+ class="layui-icon {{child.icon}}"></i>{{child.title}} {{# if(child.notice){ }}<span
+ class="layui-badge">{{ child.notice }}</span>{{# } }}</a>
+ {{ __createSlidebar(child.childs,0) }}
+ </li>
+ {{# }) }}
+ </ul>
+ </script>
+ </div>
+ </div>
+ <!-- 主体内容 -->
+ <div class="layui-body" id="febs-body"></div>
+</div>
+<script data-th-inline="javascript" type="text/javascript">
+ layui.use(['jquery', 'febs', 'element'], function () {
+ var $ = layui.jquery,
+ $view = $('#febs-layout'),
+ febs = layui.febs;
+
+ var element = layui.element;
+
+ initTheme();
+
+ $view.find('#user-avatar').attr('src', ctx + "febs/images/avatar/" + currentUser.avatar);
+
+ $view.on('click', '.layui-logo', function () {
+ febs.navigate("/index");
+ });
+
+ $view.on('click', '#fullscreen', function () {
+ var $this = $(this);
+ var normalCls = 'layui-icon-screen-full';
+ var activeCls = 'layui-icon-screen-restore';
+ var ico = $this.find('.layui-icon');
+
+ if (ico.hasClass(normalCls)) {
+ var a = document.body;
+ a.webkitRequestFullScreen
+ ? a.webkitRequestFullScreen()
+ : a.mozRequestFullScreen
+ ? a.mozRequestFullScreen()
+ : a.requestFullScreen && a.requestFullscreen();
+ ico.removeClass(normalCls).addClass(activeCls)
+ } else {
+ var b = document;
+ b.webkitCancelFullScreen
+ ? b.webkitCancelFullScreen()
+ : b.mozCancelFullScreen
+ ? b.mozCancelFullScreen()
+ : b.cancelFullScreen
+ ? b.cancelFullScreen()
+ : b.exitFullscreen && b.exitFullscreen();
+ ico.removeClass(activeCls).addClass(normalCls)
+ }
+ });
+
+ $view.on('click', '#password-update', function () {
+ febs.modal.view('密码修改', 'password/update', {
+ area: $(window).width() <= 750 ? '90%' : '500px',
+ btn: ['确定'],
+ yes: function () {
+ $('#user-password-update').find('#submit').trigger('click');
+ }
+ });
+ });
+
+ $view.on('click', '#user-profile', function () {
+ febs.navigate("/user/profile");
+ });
+
+ function initTheme() {
+ var theme = currentUser.theme;
+ var $sidebar = $('#app-sidebar');
+ if (theme === 'black') {
+ $sidebar.removeClass('febs-theme-white');
+ }
+ if (theme === 'white') {
+ $sidebar.addClass('febs-theme-white');
+ }
+ }
+ });
</script>
\ No newline at end of file
diff --git a/src/main/resources/templates/febs/views/login.html b/src/main/resources/templates/febs/views/login.html
index 14dcf9b..927e443 100644
--- a/src/main/resources/templates/febs/views/login.html
+++ b/src/main/resources/templates/febs/views/login.html
@@ -19,7 +19,7 @@
<div class="layui-container">
<div class="layui-row">
<div class="layui-col-xs12 layui-col-lg4 layui-col-lg-offset4 febs-tc">
- <div class="layui-logo"><span><b>ExCoin</b> 后台系统</span></div>
+ <div class="layui-logo"><span><b>Biue</b> 后台系统</span></div>
</div>
<div class="layui-col-xs12 layui-col-lg4 layui-col-lg-offset4" id="login-div">
<div class="layui-form" lay-filter="login-form">
diff --git a/src/main/resources/templates/febs/views/modules/member/agentInfo.html b/src/main/resources/templates/febs/views/modules/member/agentInfo.html
new file mode 100644
index 0000000..2f83ccf
--- /dev/null
+++ b/src/main/resources/templates/febs/views/modules/member/agentInfo.html
@@ -0,0 +1,109 @@
+<div class="layui-fluid layui-anim febs-anim" id="febs-user" lay-title="充币审核管理">
+ <div class="layui-row febs-container">
+ <div class="layui-col-md12">
+ <div class="layui-card">
+ <div class="layui-card-body febs-table-full">
+ <form class="layui-form layui-table-form" lay-filter="user-table-form">
+ <div class="layui-row">
+ <div class="layui-col-md10">
+ <div class="layui-form-item">
+ <div class="layui-inline">
+ <div class="layui-input-inline">
+ <input type="text" placeholder="手机号/邮箱/邀请码" name="account" autocomplete="off" class="layui-input">
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="layui-col-md2 layui-col-sm12 layui-col-xs12 table-action-area">
+ <div class="layui-btn layui-btn-sm layui-btn-primary febs-button-blue-plain table-action" id="query">
+ <i class="layui-icon"></i>
+ </div>
+ <div class="layui-btn layui-btn-sm layui-btn-primary febs-button-green-plain table-action" id="reset">
+ <i class="layui-icon"></i>
+ </div>
+ </div>
+ </div>
+ </form>
+ <table lay-filter="userTable" lay-data="{id: 'userTable'}"></table>
+ </div>
+ </div>
+ </div>
+ </div>
+</div>
+<!-- 表格操作栏 end -->
+<script data-th-inline="none" type="text/javascript">
+ // 引入组件并初始化
+ layui.use(['dropdown', 'jquery', 'laydate', 'form', 'table', 'febs'], function () {
+ var $ = layui.jquery,
+ laydate = layui.laydate,
+ febs = layui.febs,
+ form = layui.form,
+ table = layui.table,
+ dropdown = layui.dropdown,
+ $view = $('#febs-user'),
+ $query = $view.find('#query'),
+ $reset = $view.find('#reset'),
+ $searchForm = $view.find('form'),
+ sortObject = {field: 'createTime', type: null},
+ tableIns;
+
+ form.render();
+
+ // 表格初始化
+ initTable();
+
+ // 查询按钮
+ $query.on('click', function () {
+ var params = $.extend(getQueryParams(), {field: sortObject.field, order: sortObject.type});
+ tableIns.reload({where: params, page: {curr: 1}});
+ });
+
+ // 刷新按钮
+ $reset.on('click', function () {
+ $searchForm[0].reset();
+ sortObject.type = 'null';
+ tableIns.reload({where: getQueryParams(), page: {curr: 1}, initSort: sortObject});
+ });
+
+ function initTable() {
+ tableIns = febs.table.init({
+ elem: $view.find('table'),
+ id: 'userTable',
+ url: ctx + 'member/agentInfoList',
+ totalRow: true,
+ cols: [[
+ {field: 'phone', title: '手机号码', minWidth: 120,align:'left',totalRowText: '合计'},
+ {field: 'email', title: '邮箱', minWidth: 200,align:'left'},
+ {field: 'inviteId', title: '邀请码UID', minWidth: 80,align:'center'},
+ {field: 'returnRatio', title: '返佣比例', minWidth: 200,align:'center'},
+
+ {field: 'promotionNumber', title: '推广人数', minWidth: 200,align:'center'},
+ {field: 'totalRecharge', title: '总充值', minWidth: 200,align:'center'},
+ {field: 'totalWithdrawal', title: '总提现', minWidth: 200,align:'center'},
+ {field: 'totalPerformance', title: '总业绩', minWidth: 200,align:'center'},
+
+ {field: 'levelId', title: '代理等级',
+ templet: function (d) {
+ return '<span style="color:green;">第'+d.levelId+'级</span>'
+ }, minWidth: 200,align:'center'},
+ {field: 'feeIsSelf', title: '手续费是否设置自己',
+ templet: function (d) {
+ if(d.feeIsSelf === 1){
+ return '<span style="color:green;">是</span>'
+ }else{
+ return '<span style="color:red;">否</span>'
+ }
+ }, minWidth: 200,align:'center'},
+ ]]
+ });
+ }
+
+ // 获取查询参数
+ function getQueryParams() {
+ return {
+ account: $searchForm.find('input[name="account"]').val().trim(),
+ };
+ }
+
+ })
+</script>
\ No newline at end of file
diff --git a/src/main/resources/templates/index.html b/src/main/resources/templates/index.html
index d9965c6..91ebb2c 100644
--- a/src/main/resources/templates/index.html
+++ b/src/main/resources/templates/index.html
@@ -3,7 +3,7 @@
xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
<head>
<meta charset="utf-8">
- <title>ExCoin 后台系统</title>
+ <title>Biue 后台系统</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
--
Gitblit v1.9.1