From df998a061e22b13297e02eee97e2418e4bbeaa1a Mon Sep 17 00:00:00 2001 From: xiaoyong931011 <15274802129@163.com> Date: Mon, 23 Oct 2023 10:25:57 +0800 Subject: [PATCH] 版本管理 --- src/main/java/cc/mrbird/febs/mall/mapper/ChatUserMapper.java | 4 src/main/java/cc/mrbird/febs/mall/service/impl/AdminChatServiceImpl.java | 26 +++ src/main/java/cc/mrbird/febs/mall/entity/ChatVersion.java | 43 ++++++ src/main/java/cc/mrbird/febs/mall/mapper/ChatVersionMapper.java | 7 + src/main/java/cc/mrbird/febs/mall/service/IAdminChatService.java | 4 src/main/java/cc/mrbird/febs/mall/controller/ViewChatController.java | 27 +++ src/main/java/cc/mrbird/febs/mall/vo/AdminVersionVo.java | 20 ++ src/main/java/cc/mrbird/febs/mall/controller/AdminChatController.java | 21 ++ src/main/resources/templates/febs/views/modules/chat/versionEdit.html | 112 ++++++++++++++++ src/main/resources/templates/febs/views/modules/chat/versionList.html | 109 +++++++++++++++ src/main/resources/mapper/modules/ChatUserMapper.xml | 13 + 11 files changed, 377 insertions(+), 9 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/mall/controller/AdminChatController.java b/src/main/java/cc/mrbird/febs/mall/controller/AdminChatController.java index 3f31982..d4bd762 100644 --- a/src/main/java/cc/mrbird/febs/mall/controller/AdminChatController.java +++ b/src/main/java/cc/mrbird/febs/mall/controller/AdminChatController.java @@ -11,6 +11,7 @@ import cc.mrbird.febs.mall.service.IAdminChatService; import cc.mrbird.febs.mall.vo.AdminGroupInfoVo; import cc.mrbird.febs.mall.vo.AdminRegisterMemberVo; +import cc.mrbird.febs.mall.vo.AdminVersionVo; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.validation.annotation.Validated; @@ -206,11 +207,20 @@ } /** - * 会员充值 + * 群组管理 */ @GetMapping("groupList") public FebsResponse groupList(ChatUser chatUser, QueryRequest request) { Map<String, Object> data = getDataTable(iAdminChatService.getGroupList(chatUser, request)); + return new FebsResponse().success().data(data); + } + + /** + * 版本管理 + */ + @GetMapping("versionTable") + public FebsResponse versionTable(ChatUser chatUser, QueryRequest request) { + Map<String, Object> data = getDataTable(iAdminChatService.getVersionList(chatUser, request)); return new FebsResponse().success().data(data); } @@ -268,6 +278,15 @@ public FebsResponse updateGroupInfo(AdminGroupInfoVo adminGroupInfoVo) { return iAdminChatService.updateGroupInfo(adminGroupInfoVo); } + + /** + * 版本管理-更新 + */ + @PostMapping("updateVersionInfo") + @ControllerEndpoint(operation = "版本管理-更新", exceptionMessage = "操作失败") + public FebsResponse updateVersionInfo(AdminVersionVo adminVersionVo) { + return iAdminChatService.updateVersionInfo(adminVersionVo); + } /** * 添加会员 */ diff --git a/src/main/java/cc/mrbird/febs/mall/controller/ViewChatController.java b/src/main/java/cc/mrbird/febs/mall/controller/ViewChatController.java index 3e61cde..94ad52e 100644 --- a/src/main/java/cc/mrbird/febs/mall/controller/ViewChatController.java +++ b/src/main/java/cc/mrbird/febs/mall/controller/ViewChatController.java @@ -12,10 +12,7 @@ import cc.mrbird.febs.mall.mapper.ChatUserMapper; import cc.mrbird.febs.mall.mapper.DataDictionaryMapper; import cc.mrbird.febs.mall.service.IAdminMallMemberService; -import cc.mrbird.febs.mall.vo.AdminChatWalletVo; -import cc.mrbird.febs.mall.vo.AdminGroupInfoVo; -import cc.mrbird.febs.mall.vo.AdminRegisterMemberVo; -import cc.mrbird.febs.mall.vo.MallMemberVo; +import cc.mrbird.febs.mall.vo.*; import com.alibaba.fastjson.JSONObject; import lombok.RequiredArgsConstructor; import org.apache.shiro.authz.annotation.RequiresPermissions; @@ -134,6 +131,16 @@ } /** + * 版本管理 + * @return + */ + @GetMapping("versionList") + @RequiresPermissions("versionList:view") + public String versionList() { + return FebsUtil.view("modules/chat/versionList"); + } + + /** * 群组管理-详情 * @return */ @@ -146,6 +153,18 @@ } /** + * 群组管理-详情 + * @return + */ + @GetMapping("versionInfo/{id}") + @RequiresPermissions("versionInfo:info") + public String versionInfo(@PathVariable long id, Model model) { + AdminVersionVo data = chatUserMapper.getVersionInfoById(id); + model.addAttribute("versionInfo", data); + return FebsUtil.view("modules/chat/versionEdit"); + } + + /** * 红包列表 * @return */ diff --git a/src/main/java/cc/mrbird/febs/mall/entity/ChatVersion.java b/src/main/java/cc/mrbird/febs/mall/entity/ChatVersion.java new file mode 100644 index 0000000..299d109 --- /dev/null +++ b/src/main/java/cc/mrbird/febs/mall/entity/ChatVersion.java @@ -0,0 +1,43 @@ +package cc.mrbird.febs.mall.entity; + +import cc.mrbird.febs.common.entity.BaseEntity; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.io.Serializable; + +/** + * <p> + * 版本实体类 + * q3z3 + * </p> + */ +@Data +@TableName("chat_version") +public class ChatVersion implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + /** + * 版本 + */ + private String version; + /** + * 地址 + */ + private String url; + /** + * 内容 + */ + private String content; + + private String descr; + +} diff --git a/src/main/java/cc/mrbird/febs/mall/mapper/ChatUserMapper.java b/src/main/java/cc/mrbird/febs/mall/mapper/ChatUserMapper.java index 0140916..361a1bc 100644 --- a/src/main/java/cc/mrbird/febs/mall/mapper/ChatUserMapper.java +++ b/src/main/java/cc/mrbird/febs/mall/mapper/ChatUserMapper.java @@ -43,10 +43,14 @@ IPage<AdminGroupVo> selectGroupListInPage(Page<AdminGroupVo> page, @Param("record")ChatUser chatUser); + IPage<AdminVersionVo> selectVersionListInPage(Page<AdminVersionVo> page, @Param("record")ChatUser chatUser); + void updateIsRobotByGroupId(@Param("id")String id, @Param("useRobot")int i); AdminGroupInfoVo getGroupInfoById(@Param("id")long id); + AdminVersionVo getVersionInfoById(@Param("id")long id); + void updateAutoSendByGroupId(@Param("id")String id, @Param("autoSend")int i); IPage<AdminRedBagVo> selectRedBagListInPage(Page<AdminRedBagVo> page, @Param("record")ChatUser chatUser); diff --git a/src/main/java/cc/mrbird/febs/mall/mapper/ChatVersionMapper.java b/src/main/java/cc/mrbird/febs/mall/mapper/ChatVersionMapper.java new file mode 100644 index 0000000..36d8704 --- /dev/null +++ b/src/main/java/cc/mrbird/febs/mall/mapper/ChatVersionMapper.java @@ -0,0 +1,7 @@ +package cc.mrbird.febs.mall.mapper; + +import cc.mrbird.febs.mall.entity.ChatVersion; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +public interface ChatVersionMapper extends BaseMapper<ChatVersion> { +} diff --git a/src/main/java/cc/mrbird/febs/mall/service/IAdminChatService.java b/src/main/java/cc/mrbird/febs/mall/service/IAdminChatService.java index 5d6fb39..8701469 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/IAdminChatService.java +++ b/src/main/java/cc/mrbird/febs/mall/service/IAdminChatService.java @@ -36,12 +36,16 @@ IPage<AdminGroupVo> getGroupList(ChatUser chatUser, QueryRequest request); + IPage<AdminVersionVo> getVersionList(ChatUser chatUser, QueryRequest request); + FebsResponse closeSwitchUseRobot(String id); FebsResponse openSwitchUseRobot(String id); FebsResponse updateGroupInfo(AdminGroupInfoVo adminGroupInfoVo); + FebsResponse updateVersionInfo(AdminVersionVo adminVersionVo); + FebsResponse registerMember(); FebsResponse openModelType(String userId); diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminChatServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminChatServiceImpl.java index 70d34c3..286ef51 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminChatServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminChatServiceImpl.java @@ -6,10 +6,7 @@ import cc.mrbird.febs.mall.YesOrNoEnum; import cc.mrbird.febs.mall.dto.AdminSystemPayDto; import cc.mrbird.febs.mall.entity.*; -import cc.mrbird.febs.mall.mapper.ChatAmountFlowMapper; -import cc.mrbird.febs.mall.mapper.ChatGroupMapper; -import cc.mrbird.febs.mall.mapper.ChatUserMapper; -import cc.mrbird.febs.mall.mapper.DataDictionaryMapper; +import cc.mrbird.febs.mall.mapper.*; import cc.mrbird.febs.mall.service.IAdminChatService; import cc.mrbird.febs.mall.vo.*; import cc.mrbird.febs.rabbit.producter.AgentProducer; @@ -35,6 +32,7 @@ private final ChatAmountFlowMapper chatAmountFlowMapper; private final DataDictionaryMapper dataDictionaryMapper; private final ChatGroupMapper chatGroupMapper; + private final ChatVersionMapper chatVersionMapper; private final AgentProducer agentProducer; private final RedisUtils redisUtils; @@ -196,6 +194,12 @@ } @Override + public IPage<AdminVersionVo> getVersionList(ChatUser chatUser, QueryRequest request) { + Page<AdminVersionVo> page = new Page<>(request.getPageNum(), request.getPageSize()); + return this.baseMapper.selectVersionListInPage(page, chatUser); + } + + @Override public FebsResponse closeSwitchUseRobot(String id) { this.baseMapper.updateIsRobotByGroupId(id,0); return new FebsResponse().success(); @@ -222,6 +226,20 @@ } @Override + public FebsResponse updateVersionInfo(AdminVersionVo adminVersionVo) { + ChatVersion chatVersion = chatVersionMapper.selectById(adminVersionVo.getId()); + if(ObjectUtil.isEmpty(chatVersion)) { + return new FebsResponse().fail().message("信息不存在"); + } + chatVersion.setVersion(adminVersionVo.getVersion()); + chatVersion.setContent(adminVersionVo.getContent()); + chatVersion.setUrl(adminVersionVo.getUrl()); + chatVersion.setDescr(adminVersionVo.getDescr()); + chatVersionMapper.updateById(chatVersion); + return new FebsResponse().success(); + } + + @Override public FebsResponse registerMember() { agentProducer.sendAddRobotMsg("20845477"); return new FebsResponse().success(); diff --git a/src/main/java/cc/mrbird/febs/mall/vo/AdminVersionVo.java b/src/main/java/cc/mrbird/febs/mall/vo/AdminVersionVo.java new file mode 100644 index 0000000..a6c35f4 --- /dev/null +++ b/src/main/java/cc/mrbird/febs/mall/vo/AdminVersionVo.java @@ -0,0 +1,20 @@ +package cc.mrbird.febs.mall.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.util.Date; + +@Data +public class AdminVersionVo { + + private Long id; + + private String version; + + private String url; + + private String content; + + private String descr; +} diff --git a/src/main/resources/mapper/modules/ChatUserMapper.xml b/src/main/resources/mapper/modules/ChatUserMapper.xml index 7f16fce..a9c4960 100644 --- a/src/main/resources/mapper/modules/ChatUserMapper.xml +++ b/src/main/resources/mapper/modules/ChatUserMapper.xml @@ -203,6 +203,12 @@ order by a.create_time desc </select> + <select id="selectVersionListInPage" resultType="cc.mrbird.febs.mall.vo.AdminVersionVo"> + select + a.* + from chat_version a + </select> + <update id="updateIsRobotByGroupId"> update chat_group set @@ -226,6 +232,13 @@ where id = #{id} </select> + <select id="getVersionInfoById" resultType="cc.mrbird.febs.mall.vo.AdminVersionVo"> + select + a.* + from chat_version a + where id = #{id} + </select> + <update id="updateAutoSendByGroupId"> update chat_group set diff --git a/src/main/resources/templates/febs/views/modules/chat/versionEdit.html b/src/main/resources/templates/febs/views/modules/chat/versionEdit.html new file mode 100644 index 0000000..869b72e --- /dev/null +++ b/src/main/resources/templates/febs/views/modules/chat/versionEdit.html @@ -0,0 +1,112 @@ +<style> + #febs-version-edit { + padding: 20px 25px 25px 0; + } + + #febs-version-edit .layui-treeSelect .ztree li a, .ztree li span { + margin: 0 0 2px 3px !important; + } + #febs-version-edit #data-permission-tree-block { + border: 1px solid #eee; + border-radius: 2px; + padding: 3px 0; + } + #febs-version-edit .layui-treeSelect .ztree li span.button.switch { + top: 1px; + left: 3px; + } + #febs-version-edit img{ + max-width:100px + } + +</style> +<div class="layui-fluid" id="febs-version-edit"> + <form class="layui-form" action="" lay-filter="febs-version-edit-form"> + <div class="layui-form-item febs-hide"> + <label class="layui-form-label febs-form-item-require">id:</label> + <div class="layui-input-block"> + <input type="text" name="id" data-th-value="${versionInfo.id}"> + </div> + </div> + <blockquote class="layui-elem-quote blue-border">基本信息</blockquote> + + <div class="layui-row layui-col-space10 layui-form-item"> + <div class="layui-col-lg6"> + <label class="layui-form-label febs-form-item-require">版本:</label> + <div class="layui-input-block"> + <input type="text" name="version" autocomplete="off" class="layui-input"> + </div> + </div> + </div> + + <div class="layui-row layui-col-space10 layui-form-item"> + <div class="layui-col-lg6"> + <label class="layui-form-label febs-form-item-require">地址:</label> + <div class="layui-input-block"> + <input type="text" name="url" autocomplete="off" class="layui-input"> + </div> + </div> + </div> + + <div class="layui-row layui-col-space10 layui-form-item"> + <div class="layui-col-lg6"> + <label class="layui-form-label febs-form-item-require">内容:</label> + <div class="layui-input-block"> + <input type="text" name="content" autocomplete="off" class="layui-input"> + </div> + </div> + </div> + + <div class="layui-row layui-col-space10 layui-form-item"> + <div class="layui-col-lg6"> + <label class="layui-form-label febs-form-item-require">描述:</label> + <div class="layui-input-block"> + <input type="text" name="descr" autocomplete="off" class="layui-input"> + </div> + </div> + </div> + + <div class="layui-form-item febs-hide"> + <button class="layui-btn" lay-submit="" lay-filter="febs-version-edit-form-submit" id="submit"></button> + </div> + </form> +</div> + +<script data-th-inline="javascript"> + layui.use(['febs', 'form', 'formSelects', 'validate', 'treeSelect', 'eleTree','layedit', 'laydate', 'upload'], function () { + var $ = layui.$, + febs = layui.febs, + layer = layui.layer, + upload = layui.upload, + formSelects = layui.formSelects, + form = layui.form, + laydate = layui.laydate, + layedit = layui.layedit, + versionInfo = [[${versionInfo}]], + $view = $('#febs-version-edit'); + + initVersionInfoValue(); + + form.render(); + + formSelects.render(); + form.on('submit(febs-version-edit-form-submit)', function (data) { + febs.post(ctx + 'admin/chat/updateVersionInfo', data.field, function () { + layer.closeAll(); + febs.alert.success('操作成功'); + $('#febs-version-list').find('#reset').click(); + }); + return false; + }); + + function initVersionInfoValue() { + form.val("febs-version-edit-form", { + "id": versionInfo.id, + "version": versionInfo.version, + "url": versionInfo.url, + "content": versionInfo.content, + "descr": versionInfo.descr, + }); + } + }); +</script> \ No newline at end of file diff --git a/src/main/resources/templates/febs/views/modules/chat/versionList.html b/src/main/resources/templates/febs/views/modules/chat/versionList.html new file mode 100644 index 0000000..3dbd307 --- /dev/null +++ b/src/main/resources/templates/febs/views/modules/chat/versionList.html @@ -0,0 +1,109 @@ +<div class="layui-fluid layui-anim febs-anim" id="febs-version-list" 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="group-table-form"> + <div class="layui-row"> + <div class="layui-col-md2 layui-col-sm12 layui-col-xs12 table-action-area"> + <div class="layui-btn layui-btn-sm layui-btn-primary febs-button-blue-plain table-action" id="query"> + <i class="layui-icon"></i> + </div> + <div class="layui-btn layui-btn-sm layui-btn-primary febs-button-green-plain table-action" id="reset"> + <i class="layui-icon"></i> + </div> + </div> + </div> + </form> + <table lay-filter="versionTable" lay-data="{id: 'versionTable'}"></table> + </div> + </div> + </div> + </div> +</div> +<style> + .layui-form-onswitch { + background-color: #5FB878 !important; + } +</style> +<!-- 表格操作栏 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-version-list'), + $query = $view.find('#query'), + $reset = $view.find('#reset'), + $searchForm = $view.find('form'), + sortObject = {field: 'phone', type: null}, + tableIns; + + form.render(); + let currPageGroup = 1;//首先默认值为1,防止出错 + //获取当前页 + currPageGroup = $view.find(".layui-laypage-em").next().html(); + + // 表格初始化 + initTable(); + table.on('tool(versionTable)', function (obj) { + var data = obj.data, + layEvent = obj.event; + if (layEvent === 'editVersion') { + febs.modal.open('编辑', 'modules/chat/versionInfo/' + data.id, { + btn: ['提交', '取消'], + // area:['100%','100%'], + yes: function (index, layero) { + $('#febs-version-edit').find('#submit').trigger('click'); + }, + btn2: function () { + layer.closeAll(); + } + }); + } + }); + + // 查询按钮 + $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: currPageGroup}, initSort: sortObject}); + }); + + // 获取查询参数 + function getQueryParams() { + return { + name: $searchForm.find('input[name="name"]').val().trim(), + }; + } + + function initTable() { + tableIns = febs.table.init({ + elem: $view.find('table'), + id: 'versionTable', + url: ctx + 'admin/chat/versionTable', + cols: [[ + {field: 'id', title: '编号', minWidth: 100,align:'center'}, + {field: 'version', title: '名称', minWidth: 150,align:'center'}, + {field: 'url', title: '地址', minWidth: 150,align:'center'}, + {field: 'content', title: '内容', minWidth: 150,align:'center'}, + {field: 'descr', title: '描述', minWidth: 100,align:'center'}, + {title: '操作', + templet: function (d) { + return '<button class="layui-btn layui-btn-normal layui-btn-xs layui-btn-success" lay-event="editVersion" shiro:hasPermission="editVersion:info">编辑</button>' + },minWidth: 150,align:'center'} + ]] + }); + } + + + }) +</script> \ No newline at end of file -- Gitblit v1.9.1