From 98401eca7432757eac3be490f94ab6953f4a5ce1 Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Fri, 05 Jul 2024 23:47:31 +0800
Subject: [PATCH] 后台

---
 src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallGoodsCategoryService.java  |   11 ++
 src/main/resources/mapper/modules/MallGoodsCategoryMapper.xml                      |   15 +++
 src/main/java/cc/mrbird/febs/mall/mapper/MallGoodsCategoryMapper.java              |    4 
 src/main/java/cc/mrbird/febs/mall/controller/AdminMallGoodsCategoryController.java |    9 +
 src/main/java/cc/mrbird/febs/mall/service/impl/GameServiceImpl.java                |    2 
 src/main/java/cc/mrbird/febs/mall/controller/ViewMallGoodsCategoryController.java  |   12 ++
 src/main/resources/templates/febs/views/modules/product/gameRoomList.html          |  171 ++++++++++++++++++++++++++++++++++
 src/main/java/cc/mrbird/febs/mall/vo/AdminGameRoomVo.java                          |   17 +++
 src/main/java/cc/mrbird/febs/websocket/WsAuthInterceptor.java                      |   16 ++
 src/main/java/cc/mrbird/febs/mall/service/IAdminMallGoodsCategoryService.java      |    4 
 src/main/java/cc/mrbird/febs/mall/dto/RegisterDto.java                             |    4 
 src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java       |    6 +
 12 files changed, 265 insertions(+), 6 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/mall/controller/AdminMallGoodsCategoryController.java b/src/main/java/cc/mrbird/febs/mall/controller/AdminMallGoodsCategoryController.java
index cd8b4b0..52cd42e 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/AdminMallGoodsCategoryController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/AdminMallGoodsCategoryController.java
@@ -4,6 +4,7 @@
 import cc.mrbird.febs.common.controller.BaseController;
 import cc.mrbird.febs.common.entity.FebsResponse;
 import cc.mrbird.febs.common.entity.QueryRequest;
+import cc.mrbird.febs.mall.entity.GameRoom;
 import cc.mrbird.febs.mall.entity.MallGoodsCategory;
 import cc.mrbird.febs.mall.service.IAdminMallGoodsCategoryService;
 import cc.mrbird.febs.mall.service.IApiMallGoodsCategoryService;
@@ -30,6 +31,14 @@
     private final IApiMallGoodsCategoryService mallGoodsCategoryService;
 
     /**
+     */
+    @GetMapping("gameRoomList")
+    public FebsResponse gameRoomList(GameRoom gameRoom, QueryRequest request) {
+        Map<String, Object> data = getDataTable(goodsCategoryService.gameRoomList(gameRoom, request));
+        return new FebsResponse().success().data(data);
+    }
+
+    /**
      * 商品分类列表
      * @param mallGoodsCategory
      * @param request
diff --git a/src/main/java/cc/mrbird/febs/mall/controller/ViewMallGoodsCategoryController.java b/src/main/java/cc/mrbird/febs/mall/controller/ViewMallGoodsCategoryController.java
index dadce37..1678838 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/ViewMallGoodsCategoryController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/ViewMallGoodsCategoryController.java
@@ -57,4 +57,16 @@
         model.addAttribute("goodsCategoryVo", data);
         return FebsUtil.view("modules/product/categoryUpdate");
     }
+
+
+
+    /**
+     * 商品分类列表
+     * @return
+     */
+    @GetMapping("gameRoomList")
+    @RequiresPermissions("gameRoomList:view")
+    public String gameRoomList() {
+        return FebsUtil.view("modules/product/gameRoomList");
+    }
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/dto/RegisterDto.java b/src/main/java/cc/mrbird/febs/mall/dto/RegisterDto.java
index af9bd2f..0e79151 100644
--- a/src/main/java/cc/mrbird/febs/mall/dto/RegisterDto.java
+++ b/src/main/java/cc/mrbird/febs/mall/dto/RegisterDto.java
@@ -22,6 +22,10 @@
     @ApiModelProperty(value = "登录密码", example = "123456")
     private String password;
 
+    @NotBlank(message = "登录密码不能为空")
+    @ApiModelProperty(value = "登录密码", example = "123456")
+    private String passwordAgain;
+
     @NotBlank(message = "邀请码不能为空")
     @ApiModelProperty(value = "邀请码")
     private String inviteId;
diff --git a/src/main/java/cc/mrbird/febs/mall/mapper/MallGoodsCategoryMapper.java b/src/main/java/cc/mrbird/febs/mall/mapper/MallGoodsCategoryMapper.java
index 61646ad..3558079 100644
--- a/src/main/java/cc/mrbird/febs/mall/mapper/MallGoodsCategoryMapper.java
+++ b/src/main/java/cc/mrbird/febs/mall/mapper/MallGoodsCategoryMapper.java
@@ -1,6 +1,8 @@
 package cc.mrbird.febs.mall.mapper;
 
+import cc.mrbird.febs.mall.entity.GameRoom;
 import cc.mrbird.febs.mall.entity.MallGoodsCategory;
+import cc.mrbird.febs.mall.vo.AdminGameRoomVo;
 import cc.mrbird.febs.mall.vo.AdminMallGoodsCategoryTreeVo;
 import cc.mrbird.febs.mall.vo.AdminMallGoodsCategoryVo;
 import cc.mrbird.febs.mall.vo.MallGoodsCategoryVo;
@@ -32,4 +34,6 @@
     List<MallGoodsCategory> selectChildCategaryById(@Param("id")Long id);
 
     List<AdminMallGoodsCategoryTreeVo> getAllCategorys();
+
+    IPage<AdminGameRoomVo> selectListInPage(Page<AdminGameRoomVo> page, @Param("record")GameRoom gameRoom);
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/service/IAdminMallGoodsCategoryService.java b/src/main/java/cc/mrbird/febs/mall/service/IAdminMallGoodsCategoryService.java
index 179a00a..dd52625 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/IAdminMallGoodsCategoryService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/IAdminMallGoodsCategoryService.java
@@ -2,7 +2,9 @@
 
 import cc.mrbird.febs.common.entity.FebsResponse;
 import cc.mrbird.febs.common.entity.QueryRequest;
+import cc.mrbird.febs.mall.entity.GameRoom;
 import cc.mrbird.febs.mall.entity.MallGoodsCategory;
+import cc.mrbird.febs.mall.vo.AdminGameRoomVo;
 import cc.mrbird.febs.mall.vo.AdminMallGoodsCategoryTreeVo;
 import cc.mrbird.febs.mall.vo.AdminMallGoodsCategoryVo;
 import cc.mrbird.febs.system.entity.Role;
@@ -28,4 +30,6 @@
     FebsResponse delCategary(Long id);
 
     List<AdminMallGoodsCategoryTreeVo> getAllCategorys();
+
+    IPage<AdminGameRoomVo> gameRoomList(GameRoom gameRoom, QueryRequest request);
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallGoodsCategoryService.java b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallGoodsCategoryService.java
index 8cb5411..8b4f41c 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallGoodsCategoryService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallGoodsCategoryService.java
@@ -2,11 +2,14 @@
 
 import cc.mrbird.febs.common.entity.FebsResponse;
 import cc.mrbird.febs.common.entity.QueryRequest;
+import cc.mrbird.febs.mall.entity.GameRoom;
 import cc.mrbird.febs.mall.entity.MallGoods;
 import cc.mrbird.febs.mall.entity.MallGoodsCategory;
+import cc.mrbird.febs.mall.mapper.GameRoomMapper;
 import cc.mrbird.febs.mall.mapper.MallGoodsCategoryMapper;
 import cc.mrbird.febs.mall.mapper.MallGoodsMapper;
 import cc.mrbird.febs.mall.service.IAdminMallGoodsCategoryService;
+import cc.mrbird.febs.mall.vo.AdminGameRoomVo;
 import cc.mrbird.febs.mall.vo.AdminMallGoodsCategoryTreeVo;
 import cc.mrbird.febs.mall.vo.AdminMallGoodsCategoryVo;
 import cn.hutool.core.collection.CollUtil;
@@ -29,7 +32,6 @@
 public class AdminMallGoodsCategoryService extends ServiceImpl<MallGoodsCategoryMapper, MallGoodsCategory> implements IAdminMallGoodsCategoryService {
 
     private final MallGoodsCategoryMapper mallGoodsCategoryMapper;
-
     private final MallGoodsMapper mallGoodsMapper;
 
     @Override
@@ -40,6 +42,13 @@
     }
 
     @Override
+    public IPage<AdminGameRoomVo> gameRoomList(GameRoom gameRoom, QueryRequest request) {
+        Page<AdminGameRoomVo> page = new Page<>(request.getPageNum(), request.getPageSize());
+        IPage<AdminGameRoomVo> adminGameRoomVoIPage = mallGoodsCategoryMapper.selectListInPage(page, gameRoom);
+        return adminGameRoomVoIPage;
+    }
+
+    @Override
     public FebsResponse addCategory(MallGoodsCategory mallGoodsCategory) {
         String name = mallGoodsCategory.getName();
         if(StrUtil.isEmpty(name)){
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
index e040423..fcd196b 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
@@ -94,6 +94,12 @@
          * 生成用户信息
          * 返回账号和密钥给前端
          */
+        String passwordAgain = registerDto.getPasswordAgain();
+        String password = registerDto.getPassword();
+        if(!passwordAgain.equals(password)){
+            throw new FebsException("两次密码不一致。");
+        }
+
         String accountLogin = registerDto.getAccountLogin();
         boolean isValid = validateAccount(accountLogin);
         if(!isValid){
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/GameServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/GameServiceImpl.java
index 20634a3..2d11339 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/GameServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/GameServiceImpl.java
@@ -691,7 +691,7 @@
 
                 mallMoneyFlowService.addMoneyFlow(
                         gameChild.getMemberId(),
-                        BigDecimal.ZERO,
+                        amount.negate(),
                         GameFlowTypeEnum.PLAYER_PERK.getValue(),
                         MallUtils.getOrderNum("ZJ"),
                         StrUtil.format(
diff --git a/src/main/java/cc/mrbird/febs/mall/vo/AdminGameRoomVo.java b/src/main/java/cc/mrbird/febs/mall/vo/AdminGameRoomVo.java
new file mode 100644
index 0000000..398bcfe
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/vo/AdminGameRoomVo.java
@@ -0,0 +1,17 @@
+package cc.mrbird.febs.mall.vo;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "AdminGameRoomVo", description = "信息返回类")
+public class AdminGameRoomVo {
+
+    private Integer roomType;//房间类型 1-初级房2-土豪房3-尊爵房
+    private String password;//房间密码(房间唯一编码,自动生成)
+    private Long ownerMemberId;//房主用户表ID
+    private String roomOwner;//房主用户表ID
+    private Integer state;//房间状态0-未开始1-正常2-结束
+    private Integer gameTime;//游戏时长
+
+}
diff --git a/src/main/java/cc/mrbird/febs/websocket/WsAuthInterceptor.java b/src/main/java/cc/mrbird/febs/websocket/WsAuthInterceptor.java
index 6e6d111..91c2866 100644
--- a/src/main/java/cc/mrbird/febs/websocket/WsAuthInterceptor.java
+++ b/src/main/java/cc/mrbird/febs/websocket/WsAuthInterceptor.java
@@ -76,15 +76,23 @@
     }
 
     public static void main(String[] args) {
-        RSA rsa = new RSA(null, AppContants.PUBLIC_KEY);
-        String token = rsa.encryptBase64("45" + "_" + System.currentTimeMillis(), KeyType.PublicKey);
-        System.out.println(token);
+//        RSA rsa = new RSA(null, AppContants.PUBLIC_KEY);
+//        String token = rsa.encryptBase64("45" + "_" + System.currentTimeMillis(), KeyType.PublicKey);
+//        System.out.println(token);
+
+        String token = "kbswT3NAxqcXWcW9gVR6c/hXIFVWRIfaMq99HAiZ/IKPkoHaTlFBbLtFMTMmvUdbm45VtjOnubAMHFhQTz8GoyjhjB7bdDGWFfpe4DcGCKEMf6bWuRqopOeVF8Pst6UTwTZCvPDnbka5wbGggqNvwcSQQT2okjRe+nfU+A5EAfY=";
 
 
         RSA rsas = new RSA(AppContants.PRIVATE_KEY, null);
         String[] tokens = StrUtil.split(rsas.decryptStr(token, KeyType.PrivateKey), "_");
 
-        System.out.println(tokens);
+
+
+        System.out.println(tokens[0]);
+        System.out.println(tokens[1]);
+        long currentTime = System.currentTimeMillis();
+        boolean b = currentTime - Long.parseLong(tokens[1]) <= 10000;
+        System.out.println(b);
     }
 
     private Boolean verifyTokenExpired(Long time) {
diff --git a/src/main/resources/mapper/modules/MallGoodsCategoryMapper.xml b/src/main/resources/mapper/modules/MallGoodsCategoryMapper.xml
index 2b0dd24..eb3575f 100644
--- a/src/main/resources/mapper/modules/MallGoodsCategoryMapper.xml
+++ b/src/main/resources/mapper/modules/MallGoodsCategoryMapper.xml
@@ -16,6 +16,21 @@
         order by m.parent_id asc
     </select>
 
+    <select id="selectListInPage" resultType="cc.mrbird.febs.mall.vo.AdminGameRoomVo">
+        SELECT
+            a.*
+        FROM game_room a
+        left join mall_member b on a.parent_id = b.id
+        <where>
+            <if test="record != null" >
+                <if test="record.name!=null and record.name!=''">
+                    and m.name like concat('%',  #{record.name},'%')
+                </if>
+            </if>
+        </where>
+        order by m.parent_id asc
+    </select>
+
     <select id="selectCategoryByName" resultType="cc.mrbird.febs.mall.entity.MallGoodsCategory">
         SELECT * FROM mall_goods_category m where m.name = #{name}
     </select>
diff --git a/src/main/resources/templates/febs/views/modules/product/gameRoomList.html b/src/main/resources/templates/febs/views/modules/product/gameRoomList.html
new file mode 100644
index 0000000..d663db2
--- /dev/null
+++ b/src/main/resources/templates/febs/views/modules/product/gameRoomList.html
@@ -0,0 +1,171 @@
+<div class="layui-fluid layui-anim febs-anim" id="febs-game-room" 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">
+                                        <label class="layui-form-label">名称:</label>
+                                        <div class="layui-input-inline">
+                                            <input type="text" placeholder="名称" name="name" 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-green-plain table-action" id="add">
+                                    新增
+                                </div>
+                                <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="gameRoomTable" lay-data="{id: 'gameRoomTable'}"></table>
+                    <style type="text/css">
+                        .layui-table-cell{
+                            text-align:center;
+                            height: auto;
+                            white-space: normal;
+                        }
+                        .layui-table img{
+                            max-width:100px
+                        }
+                    </style>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<!-- 表格操作栏 start -->
+<script type="text/html" id="tableCategoryBar-option">
+    <div class="layui-btn-container">
+        <button class="layui-btn layui-btn-normal layui-btn-xs" type="button" shiro:hasPermission="categoryBar:update" lay-event="see">编辑</button>
+        <button class="layui-btn layui-btn-normal layui-btn-xs" type="button" shiro:hasPermission="categoryBar:delete" lay-event="delCategary">删除</button>
+    </div>
+</script>
+<!-- 表格操作栏 end -->
+<script data-th-inline="none" type="text/javascript">
+    // 引入组件并初始化
+    layui.use([ 'jquery', 'form', 'table', 'febs'], function () {
+        var $ = layui.jquery,
+            febs = layui.febs,
+            form = layui.form,
+            table = layui.table,
+            $view = $('#febs-game-room'),
+            $query = $view.find('#query'),
+            $add = $view.find('#add'),
+            $reset = $view.find('#reset'),
+            $searchForm = $view.find('form'),
+            sortObject = {field: 'phone', type: null},
+            tableIns;
+        //结合表格操作栏是否有内容,来控制数据列是否显示
+        let tableCategoryBarOption = $.trim($("#tableCategoryBar-option").html())==="" ? true : false;
+        form.render();
+
+        // 表格初始化
+        initTable();
+
+        // 初始化表格操作栏各个按钮功能
+        table.on('tool(gameRoomTable)', function (obj) {
+            var data = obj.data,
+                layEvent = obj.event;
+
+            if (layEvent === 'see') {
+                febs.modal.open('编辑', 'modules/product/categoryUpdate/' + data.id, {
+                    btn: ['提交', '取消'],
+                    yes: function (index, layero) {
+                        $('#categary-update').find('#submit').trigger('click');
+                    },
+                    btn2: function () {
+                        layer.closeAll();
+                    }
+                });
+            }
+            if (layEvent === 'delCategary') {
+                febs.modal.confirm('删除', '确认删除?', function () {
+                    delCategary(data.id);
+                });
+            }
+            if (layEvent === 'seeImges') {
+                var t = $view.find('#seeImges'+data.id+'');
+                //页面层
+                layer.open({
+                    type: 1,
+                    title: "图片",
+                    skin: 'layui-layer-rim', //加上边框
+                    area: ['80%', '80%'], //宽高
+                    shadeClose: true, //开启遮罩关闭
+                    end: function (index, layero) {
+                        return false;
+                    },
+                    content: '<div style="text-align:center"><img src="' + $(t).attr('src') + '" /></div>'
+                });
+            }
+        });
+
+        function delCategary(id) {
+            febs.get(ctx + 'admin/goodsCategory/delCategary/' + id, null, function () {
+                febs.alert.success('操作成功');
+                $query.click();
+            });
+        }
+
+        // 查询按钮
+        $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});
+        });
+
+        $add.on('click', function () {
+            febs.modal.open('新增', 'modules/product/categoryAdd/', {
+                btn: ['提交', '取消'],
+                yes: function (index, layero) {
+                    $('#categary-add').find('#submit').trigger('click');
+                },
+                btn2: function () {
+                    layer.closeAll();
+                }
+            });
+        });
+
+        function initTable() {
+            tableIns = febs.table.init({
+                elem: $view.find('table'),
+                id: 'gameRoomTable',
+                url: ctx + 'admin/goodsCategory/categoryList',
+                cols: [[
+                    {field: 'name', title: '名称', minWidth: 150,align:'left'},
+                    {field: 'parentName', title: '父级名称', minWidth: 150,align:'left'},
+                    {field: 'image', title: '图片',
+                        templet: function (d) {
+                            return '<a lay-event="seeImges"><img id="seeImges'+d.id+'" src="'+d.image+'" alt=""></a>';
+                        }, minWidth: 100,align:'center'},
+                    {title: '操作', minWidth: 200 ,toolbar: '#tableCategoryBar-option',hide:tableCategoryBarOption}
+                ]]
+            });
+        }
+
+        // 获取查询参数
+        function getQueryParams() {
+            return {
+                name: $searchForm.find('input[name="name"]').val().trim(),
+            };
+        }
+
+    })
+</script>
\ No newline at end of file

--
Gitblit v1.9.1