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"></i>
+ </div>
+ <div class="layui-btn layui-btn-sm layui-btn-primary febs-button-green-plain table-action" id="reset">
+ <i class="layui-icon"></i>
+ </div>
+ </div>
+ </div>
+ </form>
+ <table lay-filter="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