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">&#xe848;</i>
+                                </div>
+                                <div class="layui-btn layui-btn-sm layui-btn-primary febs-button-green-plain table-action" id="reset">
+                                    <i class="layui-icon">&#xe79b;</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