xiaoyong931011
2023-10-24 95ddc08c4e62c00485b12b7909e32288de80a7b9
版本管理
4 files modified
171 ■■■■■ changed files
src/main/java/cc/mrbird/febs/mall/mapper/ChatUserMapper.java 7 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/system/controller/LoginController.java 44 ●●●●● patch | view | raw | blame | history
src/main/resources/mapper/modules/ChatUserMapper.xml 31 ●●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/index.html 89 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/mapper/ChatUserMapper.java
@@ -10,6 +10,7 @@
import org.apache.ibatis.annotations.Param;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
public interface ChatUserMapper extends BaseMapper<ChatUser> {
@@ -61,4 +62,10 @@
    void updateNicknameById(@Param("userId")Long userId, @Param("nickName")String i);
    List<ChatUser> selectListByIsRobot(@Param("isRobot")int i);
    BigDecimal selectTotalAmount();
    BigDecimal selectTotalType(@Param("type")int i,@Param("dateType") String type, @Param("date") Date date);
    List<ChatUser> selectUserList(@Param("isRobot")int i,@Param("dateType") String type, @Param("date") Date date);
}
src/main/java/cc/mrbird/febs/system/controller/LoginController.java
@@ -10,7 +10,9 @@
import cc.mrbird.febs.common.service.ValidateCodeService;
import cc.mrbird.febs.common.utils.Md5Util;
import cc.mrbird.febs.common.utils.RedisUtils;
import cc.mrbird.febs.mall.entity.ChatUser;
import cc.mrbird.febs.mall.entity.MallMember;
import cc.mrbird.febs.mall.mapper.ChatUserMapper;
import cc.mrbird.febs.mall.mapper.MallAchieveRecordMapper;
import cc.mrbird.febs.mall.mapper.MallMemberMapper;
import cc.mrbird.febs.mall.mapper.MallOrderInfoMapper;
@@ -18,7 +20,9 @@
import cc.mrbird.febs.monitor.service.ILoginLogService;
import cc.mrbird.febs.system.entity.User;
import cc.mrbird.febs.system.service.IUserService;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.NumberUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import lombok.RequiredArgsConstructor;
import org.apache.shiro.authc.UsernamePasswordToken;
@@ -33,6 +37,9 @@
import javax.servlet.http.HttpSession;
import javax.validation.constraints.NotBlank;
import java.io.IOException;
import java.math.BigDecimal;
import java.text.NumberFormat;
import java.text.ParseException;
import java.util.*;
/**
@@ -49,6 +56,7 @@
    private final MallMemberMapper mallMemberMapper;
    private final MallOrderInfoMapper mallOrderInfoMapper;
    private final MallAchieveRecordMapper mallAchieveRecordMapper;
    private final ChatUserMapper chatUserMapper;
    private final RedisUtils redisUtils;
    @PostMapping("login")
@@ -97,9 +105,45 @@
        param.setUsername(username);
        List<Map<String, Object>> lastSevenUserVisitCount = this.loginLogService.findLastSevenDaysVisitCount(param);
        data.put("lastSevenUserVisitCount", lastSevenUserVisitCount);
        data.put("totalAmount", NumberUtil.decimalFormatMoney(chatUserMapper.selectTotalAmount().doubleValue()));
        List<ChatUser> chatUsers = chatUserMapper.selectUserList(0,null,null);
        List<ChatUser> chatRobots = chatUserMapper.selectUserList(1,null,null);
        data.put("totalUser", (CollUtil.isEmpty(chatUsers) ? 0:chatUsers.size()) +"-"+(CollUtil.isEmpty(chatRobots) ? 0:chatRobots.size()));
        data.put("totalSystemPay", NumberUtil.decimalFormatMoney(chatUserMapper.selectTotalType(6,null,null).doubleValue()));
        data.put("totalIncome", NumberUtil.decimalFormatMoney(chatUserMapper.selectTotalType(8,null,null).doubleValue()));
        data.put("todaySystemPay", NumberUtil.decimalFormatMoney(chatUserMapper.selectTotalType(6,"D",DateUtil.date()).doubleValue()));
        data.put("todayIncome", NumberUtil.decimalFormatMoney(chatUserMapper.selectTotalType(8,"D",DateUtil.date()).doubleValue()));
        List<ChatUser> chatUsersToday = chatUserMapper.selectUserList(0,"D",DateUtil.date());
        List<ChatUser> chatRobotsToday = chatUserMapper.selectUserList(1,"D",DateUtil.date());
        data.put("todayUser", (CollUtil.isEmpty(chatUsersToday) ? 0:chatUsersToday.size()) +"-"+(CollUtil.isEmpty(chatRobotsToday) ? 0:chatRobotsToday.size()));
        return new FebsResponse().success().data(data);
    }
    public static BigDecimal formatCurrency(BigDecimal amount) {
        // 设置本地化格式为当前默认地区
        Locale locale = Locale.getDefault();
        // 创建一个货币格式化对象
        NumberFormat currencyFormat = NumberFormat.getCurrencyInstance(locale);
        // 将 BigDecimal 格式化为货币格式的字符串
        String formattedAmount = currencyFormat.format(amount);
        // 将格式化的字符串转换回 BigDecimal 对象
        BigDecimal formattedBigDecimal = null;
        try {
            formattedBigDecimal = new BigDecimal(currencyFormat.parse(formattedAmount).doubleValue());
        } catch (ParseException e) {
            e.printStackTrace();
        }
        // 返回格式化后的 BigDecimal 对象
        return formattedBigDecimal;
    }
    @GetMapping("images/captcha")
    @Limit(key = "get_captcha", period = 60, count = 10, name = "获取验证码", prefix = "limit")
    public void captcha(HttpServletRequest request, HttpServletResponse response) throws IOException, FebsException {
src/main/resources/mapper/modules/ChatUserMapper.xml
@@ -286,5 +286,36 @@
        where is_robot = #{isRobot}
    </select>
    <select id="selectTotalAmount" resultType="java.math.BigDecimal">
        select IFNULL(sum(IFNULL(total_amount,0)),0)
        from chat_wallet
        where type = 'USDT'
    </select>
    <select id="selectTotalType" resultType="java.math.BigDecimal">
        select IFNULL(sum(IFNULL(amount,0)),0)
        from chat_amount_flow
        where type = #{type}
        <if test='dateType == "D"'>
            and date_format(create_time, '%Y-%m-%d') = date_format(#{date}, '%Y-%m-%d');
        </if>
        <if test='dateType == "M"'>
            and date_format(create_time, '%Y-%m') = date_format(#{date}, '%Y-%m');
        </if>
    </select>
    <select id="selectUserList" resultType="cc.mrbird.febs.mall.entity.ChatUser">
        select
        a.*
        from chat_user a
        where is_robot = #{isRobot}
        <if test='dateType == "D"'>
            and date_format(create_time, '%Y-%m-%d') = date_format(#{date}, '%Y-%m-%d');
        </if>
        <if test='dateType == "M"'>
            and date_format(create_time, '%Y-%m') = date_format(#{date}, '%Y-%m');
        </if>
    </select>
</mapper>
src/main/resources/templates/febs/views/index.html
@@ -132,6 +132,85 @@
                        </div>
                    </div>
                </div>
                <div class="layui-card-body layui-anim layui-anim-fadein">
                    <div class="layui-row">
                        <div class="m-title">系统总览</div>
                        <div class="layui-row layui-col-space15">
                            <div class="layui-col-md3">
                                <div class="layui-panel">
                                    <div class="box">
                                        <p class="name">账户总余额</p>
                                        <p class="num"><span id="totalAmount"></span></p>
                                    </div>
                                </div>
                            </div>
                            <div class="layui-col-md3">
                                <div class="layui-panel">
                                    <div class="box">
                                        <p class="name">账户总拨付</p>
                                        <p class="num"><span id="totalSystemPay"></span></p>
                                    </div>
                                </div>
                            </div>
                            <div class="layui-col-md3">
                                <div class="layui-panel">
                                    <div class="box">
                                        <p class="name">总注册人数(真实用户-机器人)</p>
                                        <p class="num"><span id="totalUser"></span></p>
                                    </div>
                                </div>
                            </div>
                            <div class="layui-col-md3">
                                <div class="layui-panel">
                                    <div class="box">
                                        <p class="name">总收益(扣除等级收益之后)</p>
                                        <p class="num"><span id="totalIncome"></span></p>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
                <div class="layui-card-body layui-anim layui-anim-fadein">
                    <div class="layui-row">
                        <div class="m-title">今日数据</div>
                        <div class="layui-row layui-col-space15">
                            <div class="layui-col-md3">
                                <div class="layui-panel">
                                    <div class="box">
                                        <p class="name">今日注册(真实用户-机器人)</p>
                                        <p class="num"><span id="todayUser"></span></p>
                                    </div>
                                </div>
                            </div>
                            <div class="layui-col-md3">
                                <div class="layui-panel">
                                    <div class="box">
                                        <p class="name">今日拨付</p>
                                        <p class="num"><span id="todaySystemPay"></span></p>
                                    </div>
                                </div>
                            </div>
                            <div class="layui-col-md3">
                                <div class="layui-panel">
                                    <div class="box">
                                        <p class="name">今日收益(扣除等级收益之后)</p>
                                        <p class="num"><span id="todayIncome"></span></p>
                                    </div>
                                </div>
                            </div>
                            <div class="layui-col-md3">
                                <div class="layui-panel">
                                    <div class="box">
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
@@ -167,6 +246,16 @@
                .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('#totalAmount').text(data.totalAmount).end()
                .find('#totalSystemPay').text(data.totalSystemPay).end()
                .find('#totalUser').text(data.totalUser).end()
                .find('#totalIncome').text(data.totalIncome).end()
                .find('#todaySystemPay').text(data.todaySystemPay).end()
                .find('#todayIncome').text(data.todayIncome).end()
                .find('#todayUser').text(data.todayUser).end()
                .find('#user-avatar').attr('src', ctx + "febs/images/avatar/" + currentUser.avatar);
            var currentTime = new Date().getTime();