From 18fb219ee5ed5c267665b4c84d2306eea25349f6 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Tue, 10 Oct 2023 16:09:33 +0800
Subject: [PATCH] redbagprod

---
 src/main/java/cc/mrbird/febs/mall/mapper/ChatUserMapper.java                    |    9 
 src/main/java/cc/mrbird/febs/mall/service/impl/AdminChatServiceImpl.java        |   53 ++
 src/main/resources/templates/febs/views/modules/chat/groupEdit.html             |  136 ++++++++
 src/main/java/cc/mrbird/febs/pay/service/impl/PayServiceImplAli.java            |    1 
 src/main/java/cc/mrbird/febs/mall/dto/AdminBasicSettingDto.java                 |   13 
 src/main/java/cc/mrbird/febs/rabbit/consumer/AgentConsumer.java                 |   39 --
 src/main/java/cc/mrbird/febs/pay/service/impl/WxPayServiceImpl.java             |    2 
 src/main/java/cc/mrbird/febs/mall/mapper/ChatGroupMapper.java                   |    7 
 src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java |    4 
 src/main/resources/application-prod.yml                                         |    2 
 src/main/java/cc/mrbird/febs/mall/controller/AdminChatController.java           |   59 +++
 src/main/java/cc/mrbird/febs/mall/entity/ChatAmountFlow.java                    |    3 
 src/main/resources/templates/febs/views/modules/chat/basicSetting.html          |   73 ++++
 src/main/resources/mapper/modules/ChatUserMapper.xml                            |   52 +++
 src/main/java/cc/mrbird/febs/common/configure/RabbitConfigure.java              |   92 -----
 src/main/java/cc/mrbird/febs/mall/entity/ChatGroup.java                         |   69 ++++
 src/main/java/cc/mrbird/febs/common/enumerates/DataDictionaryEnum.java          |    7 
 src/main/java/cc/mrbird/febs/mall/service/IAdminChatService.java                |   15 
 src/main/java/cc/mrbird/febs/rabbit/producter/AgentProducer.java                |   31 -
 src/main/java/cc/mrbird/febs/mall/vo/AdminGroupVo.java                          |   41 ++
 src/main/java/cc/mrbird/febs/rabbit/enumerates/RabbitQueueEnum.java             |    7 
 src/main/java/cc/mrbird/febs/mall/controller/ViewChatController.java            |   54 +++
 src/main/java/cc/mrbird/febs/pay/controller/UnipayController.java               |    4 
 src/main/java/cc/mrbird/febs/mall/vo/AdminGroupInfoVo.java                      |   37 ++
 src/main/java/cc/mrbird/febs/mall/entity/ChatUser.java                          |    3 
 src/main/java/cc/mrbird/febs/mall/entity/DataDictionary.java                    |   30 +
 src/main/resources/templates/febs/views/modules/chat/groupList.html             |  164 +++++++++
 src/main/java/cc/mrbird/febs/mall/mapper/DataDictionaryMapper.java              |    7 
 28 files changed, 817 insertions(+), 197 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/common/configure/RabbitConfigure.java b/src/main/java/cc/mrbird/febs/common/configure/RabbitConfigure.java
index 1e7d307..c744e5e 100644
--- a/src/main/java/cc/mrbird/febs/common/configure/RabbitConfigure.java
+++ b/src/main/java/cc/mrbird/febs/common/configure/RabbitConfigure.java
@@ -31,96 +31,4 @@
         return new RabbitTemplate(connectionFactory);
     }
 
-    @Bean
-    public DirectExchange defaultExchange() {
-        return new DirectExchange(ExchangeConstants.EXCHANGE_DEFAULT);
-    }
-
-    @Bean
-    public Queue defaultQueue() {
-        return new Queue(QueueConstants.QUEUE_DEFAULT);
-    }
-
-    @Bean
-    public Binding defaultBind() {
-        return BindingBuilder.bind(defaultQueue()).to(defaultExchange()).with(RouteKeyConstants.ROUTE_KEY_DEFAULT);
-    }
-
-    @Bean
-    public DirectExchange delayTtlExchange() {
-        return new DirectExchange(RabbitQueueEnum.ORDER_CANCEL_DELAY_TTL.getExchange());
-    }
-
-    @Bean
-    public DirectExchange orderDelayExchange() {
-        return new DirectExchange(RabbitQueueEnum.ORDER_CANCEL_DELAY.getExchange());
-    }
-
-    @Bean
-    public Queue orderDelayQueue() {
-        return new Queue(RabbitQueueEnum.ORDER_CANCEL_DELAY.getQueue());
-    }
-
-    @Bean
-    public Queue orderDelayQueueTtl() {
-        return QueueBuilder.durable(RabbitQueueEnum.ORDER_CANCEL_DELAY_TTL.getQueue())
-                //到期后转发的交换机
-                .withArgument("x-dead-letter-exchange", RabbitQueueEnum.ORDER_CANCEL_DELAY.getExchange())
-                //到期后转发的路由键
-                .withArgument("x-dead-letter-routing-key", RabbitQueueEnum.ORDER_CANCEL_DELAY.getRoute())
-                .build();
-    }
-
-    @Bean
-    public Binding orderDelayBind() {
-        return BindingBuilder.bind(orderDelayQueue()).to(orderDelayExchange()).with(RabbitQueueEnum.ORDER_CANCEL_DELAY.getRoute());
-    }
-
-    @Bean
-    public Binding orderDelayBindTtl() {
-        return BindingBuilder.bind(orderDelayQueueTtl()).to(delayTtlExchange()).with(RabbitQueueEnum.ORDER_CANCEL_DELAY_TTL.getRoute());
-    }
-
-    @Bean
-    public Queue autoLevelUpAgentQueue() {
-        return new Queue(QueueConstants.AGENT_AUTO_LEVEL_UP);
-    }
-
-    @Bean
-    public Binding autoLevelUpBind() {
-        return BindingBuilder.bind(autoLevelUpAgentQueue()).to(defaultExchange()).with(RouteKeyConstants.ROUTE_KEY_DEFAULT);
-    }
-    // 订单返利 开始
-    @Bean
-    public DirectExchange agentReturnMoneyExchange() {
-        return new DirectExchange(RabbitQueueEnum.AGENT_RETURN_MONEY.getExchange());
-    }
-
-    @Bean
-    public Queue agentReturnMoneyQueue() {
-        return new Queue(QueueConstants.AGENT_RETURN_MONEY);
-    }
-
-    @Bean
-    public Binding agentReturnMoneyBind() {
-        return BindingBuilder.bind(agentReturnMoneyQueue()).to(agentReturnMoneyExchange()).with(RabbitQueueEnum.AGENT_RETURN_MONEY.getRoute());
-    }
-    // 订单返利 结束
-
-
-    @Bean
-    public DirectExchange orderReturnMoneyExchange() {
-        return new DirectExchange(RabbitQueueEnum.ORDER_RETURN_MONEY.getExchange());
-    }
-
-    @Bean
-    public Queue orderReturnMoneyQueue() {
-        return new Queue(QueueConstants.ORDER_RETURN_MONEY);
-    }
-
-    @Bean
-    public Binding orderReturnMoneyBind() {
-        return BindingBuilder.bind(orderReturnMoneyQueue()).to(orderReturnMoneyExchange()).with(RabbitQueueEnum.ORDER_RETURN_MONEY.getRoute());
-    }
-
 }
diff --git a/src/main/java/cc/mrbird/febs/common/enumerates/DataDictionaryEnum.java b/src/main/java/cc/mrbird/febs/common/enumerates/DataDictionaryEnum.java
index 2c105ef..d164dd2 100644
--- a/src/main/java/cc/mrbird/febs/common/enumerates/DataDictionaryEnum.java
+++ b/src/main/java/cc/mrbird/febs/common/enumerates/DataDictionaryEnum.java
@@ -6,6 +6,13 @@
 @Getter
 public enum DataDictionaryEnum {
 
+
+    /**
+     * 模式类型
+     * 1:简单模式-正常模式
+     * 2:困难模式
+     */
+    MODEL_TYPE("MODEL_TYPE", "MODEL_TYPE"),
     //积分池设置{"everydayRatio":10,"dividEquallyRatio":1}每日订单的百分之几,增加到积分池;每日平分百分比
     SCORE_POOR_RADIO("SCORE_POOR", "SCORE_POOR_RADIO"),
 
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 6691826..7c0ceed 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/AdminChatController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/AdminChatController.java
@@ -4,11 +4,12 @@
 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.dto.AdminSystemPayDto;
-import cc.mrbird.febs.mall.dto.MallSystemPayDto;
+import cc.mrbird.febs.common.enumerates.DataDictionaryEnum;
+import cc.mrbird.febs.mall.dto.*;
 import cc.mrbird.febs.mall.entity.ChatUser;
 import cc.mrbird.febs.mall.entity.MallMember;
 import cc.mrbird.febs.mall.service.IAdminChatService;
+import cc.mrbird.febs.mall.vo.AdminGroupInfoVo;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.validation.annotation.Validated;
@@ -66,7 +67,7 @@
     }
 
     /**
-     * 用户列表---开启
+     * 是否是机器人---开启
      *
      * @param userId
      * @return
@@ -77,7 +78,7 @@
         return iAdminChatService.openSwitchIsRobot(userId);
     }
     /**
-     * 用户列表---关闭
+     * 是否是机器人---关闭
      *
      * @param userId
      * @return
@@ -147,4 +148,54 @@
     public FebsResponse disagreeEvent(@NotNull(message = "{required}") @PathVariable String id) {
         return iAdminChatService.disagreeEvent(id);
     }
+
+    @PostMapping(value = "/basicSetting")
+    public FebsResponse basicSetting(AdminBasicSettingDto adminBasicSettingDto) {
+        iAdminChatService.updateDataDic(
+                DataDictionaryEnum.MODEL_TYPE.getType(),
+                DataDictionaryEnum.MODEL_TYPE.getCode(),
+                adminBasicSettingDto.getModelType());
+        return new FebsResponse().success();
+    }
+
+    /**
+     * 会员充值
+     */
+    @GetMapping("groupList")
+    public FebsResponse groupList(ChatUser chatUser, QueryRequest request) {
+        Map<String, Object> data = getDataTable(iAdminChatService.getGroupList(chatUser, request));
+        return new FebsResponse().success().data(data);
+    }
+
+    /**
+     * 使用机器人---开启
+     *
+     * @param id
+     * @return
+     */
+    @GetMapping("openSwitchUseRobot/{id}")
+    @ControllerEndpoint(operation = "会员列表---开启", exceptionMessage = "操作失败")
+    public FebsResponse openSwitchUseRobot(@NotNull(message = "{required}") @PathVariable String id) {
+        return iAdminChatService.openSwitchUseRobot(id);
+    }
+    /**
+     * 使用机器人---关闭
+     *
+     * @param id
+     * @return
+     */
+    @GetMapping("closeSwitchUseRobot/{id}")
+    @ControllerEndpoint(operation = "会员列表---关闭", exceptionMessage = "操作失败")
+    public FebsResponse closeSwitchUseRobot(@NotNull(message = "{required}") @PathVariable String id) {
+        return iAdminChatService.closeSwitchUseRobot(id);
+    }
+
+    /**
+     * 群组管理-更新
+     */
+    @PostMapping("updateGroupInfo")
+    @ControllerEndpoint(operation = "新闻中心-更新", exceptionMessage = "操作失败")
+    public FebsResponse updateGroupInfo(AdminGroupInfoVo adminGroupInfoVo) {
+        return iAdminChatService.updateGroupInfo(adminGroupInfoVo);
+    }
 }
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 cebaa2f..9378ff8 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/ViewChatController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/ViewChatController.java
@@ -2,11 +2,20 @@
 
 import cc.mrbird.febs.common.controller.BaseController;
 import cc.mrbird.febs.common.entity.FebsConstant;
+import cc.mrbird.febs.common.enumerates.DataDictionaryEnum;
 import cc.mrbird.febs.common.utils.FebsUtil;
+import cc.mrbird.febs.mall.dto.AdminBasicSettingDto;
+import cc.mrbird.febs.mall.dto.CashOutSettingDto;
+import cc.mrbird.febs.mall.entity.DataDictionary;
+import cc.mrbird.febs.mall.entity.DataDictionaryCustom;
+import cc.mrbird.febs.mall.entity.MallNewsInfo;
 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.MallMemberVo;
+import com.alibaba.fastjson.JSONObject;
 import lombok.RequiredArgsConstructor;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.stereotype.Controller;
@@ -24,6 +33,9 @@
 
     @Resource
     private ChatUserMapper chatUserMapper;
+
+    @Resource
+    private DataDictionaryMapper dataDictionaryMapper;
 
     /**
      * 用户列表
@@ -78,4 +90,46 @@
     public String chatWithDrawList() {
         return FebsUtil.view("modules/chat/chatWithDrawList");
     }
+
+    /**
+     * 基础设置
+     * @param model
+     * @return
+     */
+    @GetMapping("basicSetting")
+    @RequiresPermissions("basicSetting:update")
+    public String cashOutSetting(Model model) {
+        AdminBasicSettingDto adminBasicSettingDto = new AdminBasicSettingDto();
+
+        DataDictionary modelTypeDic = chatUserMapper.selectDicDataByTypeAndCode(
+                DataDictionaryEnum.MODEL_TYPE.getType(),
+                DataDictionaryEnum.MODEL_TYPE.getCode());
+        if (modelTypeDic != null) {
+            adminBasicSettingDto.setModelType(modelTypeDic.getValue());
+        }
+        model.addAttribute("basicSet", adminBasicSettingDto);
+        return FebsUtil.view("modules/chat/basicSetting");
+    }
+
+    /**
+     * 群组管理
+     * @return
+     */
+    @GetMapping("groupList")
+    @RequiresPermissions("groupList:view")
+    public String groupList() {
+        return FebsUtil.view("modules/chat/groupList");
+    }
+
+    /**
+     * 群组管理-详情
+     * @return
+     */
+    @GetMapping("groupInfo/{id}")
+    @RequiresPermissions("editGroup:info")
+    public String groupInfo(@PathVariable long id, Model model) {
+        AdminGroupInfoVo data = chatUserMapper.getGroupInfoById(id);
+        model.addAttribute("groupInfo", data);
+        return FebsUtil.view("modules/chat/groupEdit");
+    }
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/dto/AdminBasicSettingDto.java b/src/main/java/cc/mrbird/febs/mall/dto/AdminBasicSettingDto.java
new file mode 100644
index 0000000..b8b3f67
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/dto/AdminBasicSettingDto.java
@@ -0,0 +1,13 @@
+package cc.mrbird.febs.mall.dto;
+
+import lombok.Data;
+
+@Data
+public class AdminBasicSettingDto {
+    /**
+     * 模式类型
+     * 1:简单模式-正常模式
+     * 2:困难模式
+     */
+    private String modelType;
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/entity/ChatAmountFlow.java b/src/main/java/cc/mrbird/febs/mall/entity/ChatAmountFlow.java
index bcfb5ec..e5f8989 100644
--- a/src/main/java/cc/mrbird/febs/mall/entity/ChatAmountFlow.java
+++ b/src/main/java/cc/mrbird/febs/mall/entity/ChatAmountFlow.java
@@ -1,5 +1,6 @@
 package cc.mrbird.febs.mall.entity;
 
+import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
@@ -16,7 +17,7 @@
     /**
      * 主键
      */
-    @TableId
+    @TableId(value = "id", type = IdType.AUTO)
     private Long id;
     /**
      * 1:充值 2:提现 3:红包 4:转账 5:创建群聊
diff --git a/src/main/java/cc/mrbird/febs/mall/entity/ChatGroup.java b/src/main/java/cc/mrbird/febs/mall/entity/ChatGroup.java
new file mode 100644
index 0000000..82b7eff
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/entity/ChatGroup.java
@@ -0,0 +1,69 @@
+package cc.mrbird.febs.mall.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * <p>
+ * 群组实体类
+ * q3z3
+ * </p>
+ */
+@Data
+@TableName("chat_group")
+public class ChatGroup {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+
+    @TableId(value = "id",type = IdType.AUTO)
+    private Long id;
+    /**
+     * 群名
+     */
+    private String name;
+    /**
+     * 公告
+     */
+    private String notice;
+    /**
+     * 头像
+     */
+    private String portrait;
+    /**
+     * 群主
+     */
+    private Long master;
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+    /**
+     * 金额下限
+     */
+    private Integer amountMin;
+    /**
+     * 金额上限
+     */
+    private Integer amountMax;
+    /**
+     * 红包个数
+     */
+    private Integer redBagCnt;
+    /**
+     * 是否使用机器人 1:是  0:否
+     */
+    private Integer useRobot;
+    /**
+     * 模式类型 1:简单模式-正常模式 2:困难模式
+     */
+    private Integer modelType;
+
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/entity/ChatUser.java b/src/main/java/cc/mrbird/febs/mall/entity/ChatUser.java
index 09f7039..23435eb 100644
--- a/src/main/java/cc/mrbird/febs/mall/entity/ChatUser.java
+++ b/src/main/java/cc/mrbird/febs/mall/entity/ChatUser.java
@@ -120,6 +120,9 @@
     private String address;
 
     @TableField(exist = false)
+    private String name;
+
+    @TableField(exist = false)
     private Integer state;
 
 
diff --git a/src/main/java/cc/mrbird/febs/mall/entity/DataDictionary.java b/src/main/java/cc/mrbird/febs/mall/entity/DataDictionary.java
new file mode 100644
index 0000000..9eba521
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/entity/DataDictionary.java
@@ -0,0 +1,30 @@
+package cc.mrbird.febs.mall.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@TableName("data_dictionary")
+public class DataDictionary implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    private String type;
+
+    private String code;
+
+    private String value;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createTime;
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/mapper/ChatGroupMapper.java b/src/main/java/cc/mrbird/febs/mall/mapper/ChatGroupMapper.java
new file mode 100644
index 0000000..78e3b5b
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/mapper/ChatGroupMapper.java
@@ -0,0 +1,7 @@
+package cc.mrbird.febs.mall.mapper;
+
+import cc.mrbird.febs.mall.entity.ChatGroup;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+public interface ChatGroupMapper extends BaseMapper<ChatGroup> {
+}
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 cbb40b3..aae8f3a 100644
--- a/src/main/java/cc/mrbird/febs/mall/mapper/ChatUserMapper.java
+++ b/src/main/java/cc/mrbird/febs/mall/mapper/ChatUserMapper.java
@@ -1,6 +1,7 @@
 package cc.mrbird.febs.mall.mapper;
 
 import cc.mrbird.febs.mall.entity.ChatUser;
+import cc.mrbird.febs.mall.entity.DataDictionary;
 import cc.mrbird.febs.mall.entity.MemberCoinWithdraw;
 import cc.mrbird.febs.mall.vo.*;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@@ -35,4 +36,12 @@
     void updateAmountFlowListByWithdrawId(@Param("id")String id, @Param("userId")String userId, @Param("state")int i);
 
     void updateIsRobotByUserId(@Param("userId")String userId, @Param("isRobot")int i);
+
+    DataDictionary selectDicDataByTypeAndCode(@Param("type") String type, @Param("code") String code);
+
+    IPage<AdminGroupVo> selectGroupListInPage(Page<AdminGroupVo> page, @Param("record")ChatUser chatUser);
+
+    void updateIsRobotByGroupId(@Param("id")String id, @Param("useRobot")int i);
+
+    AdminGroupInfoVo getGroupInfoById(@Param("id")long id);
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/mapper/DataDictionaryMapper.java b/src/main/java/cc/mrbird/febs/mall/mapper/DataDictionaryMapper.java
new file mode 100644
index 0000000..8d7f907
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/mapper/DataDictionaryMapper.java
@@ -0,0 +1,7 @@
+package cc.mrbird.febs.mall.mapper;
+
+import cc.mrbird.febs.mall.entity.DataDictionary;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+public interface DataDictionaryMapper extends BaseMapper<DataDictionary> {
+}
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 620c028..436b7be 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/IAdminChatService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/IAdminChatService.java
@@ -4,10 +4,7 @@
 import cc.mrbird.febs.common.entity.QueryRequest;
 import cc.mrbird.febs.mall.dto.AdminSystemPayDto;
 import cc.mrbird.febs.mall.entity.ChatUser;
-import cc.mrbird.febs.mall.vo.AdminChatAmountFlowVo;
-import cc.mrbird.febs.mall.vo.AdminChatCahrgeVo;
-import cc.mrbird.febs.mall.vo.AdminChatUserVo;
-import cc.mrbird.febs.mall.vo.AdminChatWithDrawVo;
+import cc.mrbird.febs.mall.vo.*;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 
@@ -34,4 +31,14 @@
     FebsResponse openSwitchIsRobot(String userId);
 
     FebsResponse closeSwitchIsRobot(String userId);
+
+    void updateDataDic(String type, String code, String modelType);
+
+    IPage<AdminGroupVo> getGroupList(ChatUser chatUser, QueryRequest request);
+
+    FebsResponse closeSwitchUseRobot(String id);
+
+    FebsResponse openSwitchUseRobot(String id);
+
+    FebsResponse updateGroupInfo(AdminGroupInfoVo adminGroupInfoVo);
 }
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 49a1b50..3c01c3c 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
@@ -5,16 +5,13 @@
 import cc.mrbird.febs.common.utils.RedisUtils;
 import cc.mrbird.febs.mall.YesOrNoEnum;
 import cc.mrbird.febs.mall.dto.AdminSystemPayDto;
-import cc.mrbird.febs.mall.entity.ChatAmountFlow;
-import cc.mrbird.febs.mall.entity.ChatUser;
-import cc.mrbird.febs.mall.entity.MemberCoinWithdraw;
+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.service.IAdminChatService;
-import cc.mrbird.febs.mall.vo.AdminChatAmountFlowVo;
-import cc.mrbird.febs.mall.vo.AdminChatCahrgeVo;
-import cc.mrbird.febs.mall.vo.AdminChatUserVo;
-import cc.mrbird.febs.mall.vo.AdminChatWithDrawVo;
+import cc.mrbird.febs.mall.vo.*;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -35,6 +32,8 @@
 public class AdminChatServiceImpl extends ServiceImpl<ChatUserMapper, ChatUser> implements IAdminChatService {
 
     private final ChatAmountFlowMapper chatAmountFlowMapper;
+    private final DataDictionaryMapper dataDictionaryMapper;
+    private final ChatGroupMapper chatGroupMapper;
     private final RedisUtils redisUtils;
 
     @Override
@@ -179,4 +178,44 @@
         return new FebsResponse().success();
     }
 
+    @Override
+    public void updateDataDic(String type, String code, String modelType) {
+        DataDictionary dic = this.baseMapper.selectDicDataByTypeAndCode(type, code);
+        if (dic != null) {
+            dic.setValue(modelType);
+            dataDictionaryMapper.updateById(dic);
+        }
+    }
+
+    @Override
+    public IPage<AdminGroupVo> getGroupList(ChatUser chatUser, QueryRequest request) {
+        Page<AdminGroupVo> page = new Page<>(request.getPageNum(), request.getPageSize());
+        return this.baseMapper.selectGroupListInPage(page, chatUser);
+    }
+
+    @Override
+    public FebsResponse closeSwitchUseRobot(String id) {
+        this.baseMapper.updateIsRobotByGroupId(id,0);
+        return new FebsResponse().success();
+    }
+
+    @Override
+    public FebsResponse openSwitchUseRobot(String id) {
+        this.baseMapper.updateIsRobotByGroupId(id,1);
+        return new FebsResponse().success();
+    }
+
+    @Override
+    public FebsResponse updateGroupInfo(AdminGroupInfoVo adminGroupInfoVo) {
+        ChatGroup chatGroup = chatGroupMapper.selectById(adminGroupInfoVo.getId());
+        if(ObjectUtil.isEmpty(chatGroup)) {
+            return new FebsResponse().fail().message("信息不存在");
+        }
+        chatGroup.setAmountMin(adminGroupInfoVo.getAmountMin());
+        chatGroup.setAmountMax(adminGroupInfoVo.getAmountMax());
+        chatGroup.setRedBagCnt(adminGroupInfoVo.getRedBagCnt());
+        chatGroup.setModelType(adminGroupInfoVo.getModelType());
+        chatGroupMapper.updateById(chatGroup);
+        return new FebsResponse().success();
+    }
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
index 8f3f3ae..1d3a04c 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
@@ -215,7 +215,6 @@
         }
         this.baseMapper.updateById(orderInfo);
 
-        agentProducer.sendOrderCancelDelayMsg(orderInfo.getId(), 15 * 60 * 1000L);
         return orderInfo.getId();
     }
 
@@ -346,9 +345,6 @@
 
                 commonService.addAchieveAndUpdateLevel(orderInfo.getId(),orderInfo.getMemberId());
                 mallMoneyFlowService.addMoneyFlow(member.getId(), orderInfo.getAmount().negate(), MoneyFlowTypeEnum.PAY.getValue(), orderInfo.getOrderNo(), FlowTypeEnum.BALANCE.getValue());
-                agentProducer.sendAutoLevelUpMsg(member.getId());
-//                agentProducer.sendOrderReturn(orderInfo.getId());
-                agentProducer.sendReturnMoneyMsg(orderInfo.getId());
                 break;
             case "4":
                 if (orderInfo.getOrderType() != 2) {
diff --git a/src/main/java/cc/mrbird/febs/mall/vo/AdminGroupInfoVo.java b/src/main/java/cc/mrbird/febs/mall/vo/AdminGroupInfoVo.java
new file mode 100644
index 0000000..1b2a6aa
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/vo/AdminGroupInfoVo.java
@@ -0,0 +1,37 @@
+package cc.mrbird.febs.mall.vo;
+
+import lombok.Data;
+
+import java.util.Date;
+@Data
+public class AdminGroupInfoVo {
+
+    private Long id;
+
+    private String name;
+
+    private String phone;
+
+    private String nickName;
+
+    /**
+     * 是否使用机器人 1:是  0:否
+     */
+    private Integer useRobot;
+    /**
+     * 金额下限
+     */
+    private Integer amountMin;
+    /**
+     * 金额上限
+     */
+    private Integer amountMax;
+    /**
+     * 红包个数
+     */
+    private Integer redBagCnt;
+    /**
+     * 模式类型 1:简单模式-正常模式 2:困难模式
+     */
+    private Integer modelType;
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/vo/AdminGroupVo.java b/src/main/java/cc/mrbird/febs/mall/vo/AdminGroupVo.java
new file mode 100644
index 0000000..cef953b
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/vo/AdminGroupVo.java
@@ -0,0 +1,41 @@
+package cc.mrbird.febs.mall.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class AdminGroupVo {
+
+    private Long id;
+
+    private String name;
+
+    private String phone;
+
+    private String nickName;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createTime;
+    /**
+     * 是否使用机器人 1:是  0:否
+     */
+    private Integer useRobot;
+    /**
+     * 金额下限
+     */
+    private Integer amountMin;
+    /**
+     * 金额上限
+     */
+    private Integer amountMax;
+    /**
+     * 红包个数
+     */
+    private Integer redBagCnt;
+    /**
+     * 模式类型 1:简单模式-正常模式 2:困难模式
+     */
+    private Integer modelType;
+}
diff --git a/src/main/java/cc/mrbird/febs/pay/controller/UnipayController.java b/src/main/java/cc/mrbird/febs/pay/controller/UnipayController.java
index e26ca2d..49a2210 100644
--- a/src/main/java/cc/mrbird/febs/pay/controller/UnipayController.java
+++ b/src/main/java/cc/mrbird/febs/pay/controller/UnipayController.java
@@ -137,8 +137,6 @@
                     }
 
                     mallMoneyFlowService.addMoneyFlow(mallMember.getId(), orderInfo.getAmount().negate(), MoneyFlowTypeEnum.PAY.getValue(), orderInfo.getOrderNo(), FlowTypeEnum.BALANCE.getValue());
-                    agentProducer.sendAutoLevelUpMsg(mallMember.getId());
-                    agentProducer.sendOrderReturn(orderInfo.getId());
                 }
             }
         }
@@ -250,8 +248,6 @@
                     }
 
                     mallMoneyFlowService.addMoneyFlow(mallMember.getId(), orderInfo.getAmount().negate(), MoneyFlowTypeEnum.PAY.getValue(), orderInfo.getOrderNo(), FlowTypeEnum.BALANCE.getValue());
-                    agentProducer.sendAutoLevelUpMsg(mallMember.getId());
-                    agentProducer.sendOrderReturn(orderInfo.getId());
                 }
             }
         }
diff --git a/src/main/java/cc/mrbird/febs/pay/service/impl/PayServiceImplAli.java b/src/main/java/cc/mrbird/febs/pay/service/impl/PayServiceImplAli.java
index 487bd21..d64f8b9 100644
--- a/src/main/java/cc/mrbird/febs/pay/service/impl/PayServiceImplAli.java
+++ b/src/main/java/cc/mrbird/febs/pay/service/impl/PayServiceImplAli.java
@@ -102,7 +102,6 @@
         orderInfoMapper.updateById(orderInfo);
 
 //        agentProducer.sendReturnMoneyMsg(orderInfo.getId());
-        agentProducer.sendAutoLevelUpMsg(orderInfo.getMemberId());
 
 //        memberService.addMoneyFlow(orderInfo.getMemberId(), orderInfo.getAmount().negate(), MoneyFlowTypeEnum.PAY.getValue(), orderInfo.getOrderNo(), null, null, null, null, FlowTypeEnum.BALANCE.getValue());
     }
diff --git a/src/main/java/cc/mrbird/febs/pay/service/impl/WxPayServiceImpl.java b/src/main/java/cc/mrbird/febs/pay/service/impl/WxPayServiceImpl.java
index 7cc9574..92941d0 100644
--- a/src/main/java/cc/mrbird/febs/pay/service/impl/WxPayServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/pay/service/impl/WxPayServiceImpl.java
@@ -117,8 +117,6 @@
 
         commonService.addAchieveAndUpdateLevel(orderInfo.getId(),orderInfo.getMemberId());
         mallMoneyFlowService.addMoneyFlow(orderInfo.getMemberId(), orderInfo.getAmount().negate(), MoneyFlowTypeEnum.PAY.getValue(), orderInfo.getOrderNo(), FlowTypeEnum.WX.getValue());
-        agentProducer.sendAutoLevelUpMsg(orderInfo.getMemberId());
-        agentProducer.sendReturnMoneyMsg(orderInfo.getId());
 
     }
 }
diff --git a/src/main/java/cc/mrbird/febs/rabbit/consumer/AgentConsumer.java b/src/main/java/cc/mrbird/febs/rabbit/consumer/AgentConsumer.java
index d6a96f2..8b4612d 100644
--- a/src/main/java/cc/mrbird/febs/rabbit/consumer/AgentConsumer.java
+++ b/src/main/java/cc/mrbird/febs/rabbit/consumer/AgentConsumer.java
@@ -24,15 +24,6 @@
 
     @Autowired
     private IApiMallOrderInfoService orderInfoService;
-    @Autowired
-    private IAgentService agentService;
-    @Autowired
-    private IMemberProfitService memberProfitService;
-
-//    @RabbitListener(queues = QueueConstants.QUEUE_DEFAULT)
-//    public void agentReturn(Message message, Channel channel) {
-//        log.info("消费者:{}", new String(message.getBody()));
-//    }
 
     @RabbitListener(queues = "queue_h_order_delay")
     public void orderCancelDelay(String id) {
@@ -42,34 +33,4 @@
             log.error("订单超时支付异常", e);
         }
     }
-
-    @RabbitListener(queues = QueueConstants.AGENT_AUTO_LEVEL_UP)
-    public void agentAutoLevelUp(String id) {
-        log.info("收到代理自动升级消息:{}", id);
-        try {
-            agentService.autoUpAgentLevel(Long.parseLong(id));
-        } catch (Exception e) {
-            log.error("代理自动升级异常", e);
-        }
-    }
-
-    @RabbitListener(queues = QueueConstants.AGENT_RETURN_MONEY)
-    public void agentReturnMoney(String orderId) {
-        log.info("收到返利消息:{}", orderId);
-        try {
-            agentService.returnMoneyToAgent(Long.parseLong(orderId));
-        } catch (Exception e) {
-            log.error("返利异常", e);
-        }
-    }
-
-//    @RabbitListener(queues = QueueConstants.ORDER_RETURN_MONEY)
-//    public void orderReturnMoney(String orderId) {
-//        log.info("收到订单返利消息:{}", orderId);
-//        try {
-//            memberProfitService.dynamicProfit(Long.parseLong(orderId));
-//        } catch (Exception e) {
-//            log.error("订单返利异常:", e);
-//        }
-//    }
 }
diff --git a/src/main/java/cc/mrbird/febs/rabbit/enumerates/RabbitQueueEnum.java b/src/main/java/cc/mrbird/febs/rabbit/enumerates/RabbitQueueEnum.java
index 3e0a65d..1952f7e 100644
--- a/src/main/java/cc/mrbird/febs/rabbit/enumerates/RabbitQueueEnum.java
+++ b/src/main/java/cc/mrbird/febs/rabbit/enumerates/RabbitQueueEnum.java
@@ -5,13 +5,6 @@
 @Getter
 public enum RabbitQueueEnum {
 
-    DEFAULT("exchange_h_default", "route_key_h_default", "queue_h_default"),
-
-    ORDER_CANCEL_DELAY_TTL("exchange_h_order_delay_ttl", "route_key_h_order_delay_ttl", "queue_h_order_delay_ttl"),
-    ORDER_CANCEL_DELAY("exchange_h_order_delay", "route_key_h_order_delay", "queue_h_order_delay"),
-
-    AGENT_RETURN_MONEY("exchange_h_agent_return_money", "route_key_h_agent_return_money", "queue_h_agent_return_money"),
-
     ORDER_RETURN_MONEY("exchange_h_order_return_money", "route_key_h_order_return_money", "queue_h_order_return_money");
 
     private String exchange;
diff --git a/src/main/java/cc/mrbird/febs/rabbit/producter/AgentProducer.java b/src/main/java/cc/mrbird/febs/rabbit/producter/AgentProducer.java
index f859499..f29cc87 100644
--- a/src/main/java/cc/mrbird/febs/rabbit/producter/AgentProducer.java
+++ b/src/main/java/cc/mrbird/febs/rabbit/producter/AgentProducer.java
@@ -45,35 +45,4 @@
 
     }
 
-    public void sendOrderReturn(Long id) {
-        log.info("发送消息:{}", id);
-        CorrelationData correlationData = new CorrelationData(UUID.randomUUID().toString());
-        rabbitTemplate.convertAndSend(RabbitQueueEnum.ORDER_RETURN_MONEY.getExchange(), RabbitQueueEnum.ORDER_RETURN_MONEY.getRoute(), id, correlationData);
-    }
-
-    public void sendOrderCancelDelayMsg(Long id, Long times) {
-        log.info("发送自动取消订单消息:{}, {}", id, times);
-        rabbitTemplate.convertAndSend(RabbitQueueEnum.ORDER_CANCEL_DELAY_TTL.getExchange(), RabbitQueueEnum.ORDER_CANCEL_DELAY_TTL.getRoute(), id, new MessagePostProcessor() {
-            @Override
-            public Message postProcessMessage(Message message) throws AmqpException {
-                message.getMessageProperties().setExpiration(String.valueOf(times));
-                return message;
-            }
-        });
-    }
-
-    /**
-     * 发送代理自动升级消息
-     *
-     * @param memberId
-     */
-    public void sendAutoLevelUpMsg(@NotNull Long memberId) {
-        log.info("发送代理自动升级消息:{}", memberId);
-        rabbitTemplate.convertAndSend(ExchangeConstants.EXCHANGE_DEFAULT, RouteKeyConstants.ROUTE_KEY_DEFAULT, memberId);
-    }
-
-    public void sendReturnMoneyMsg(Long orderId) {
-        log.info("发送返利消息:{}", orderId);
-        rabbitTemplate.convertAndSend(RabbitQueueEnum.AGENT_RETURN_MONEY.getExchange(), RabbitQueueEnum.AGENT_RETURN_MONEY.getRoute(), orderId);
-    }
 }
diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml
index 1246144..fc9b536 100644
--- a/src/main/resources/application-prod.yml
+++ b/src/main/resources/application-prod.yml
@@ -2,7 +2,7 @@
   datasource:
     dynamic:
       # 是否开启 SQL日志输出,生产环境建议关闭,有性能损耗
-      p6spy: false
+      p6spy: true
       hikari:
         connection-timeout: 30000
         max-lifetime: 1800000
diff --git a/src/main/resources/mapper/modules/ChatUserMapper.xml b/src/main/resources/mapper/modules/ChatUserMapper.xml
index 556cd0f..b1172ca 100644
--- a/src/main/resources/mapper/modules/ChatUserMapper.xml
+++ b/src/main/resources/mapper/modules/ChatUserMapper.xml
@@ -164,4 +164,56 @@
         where user_id = #{userId}
     </update>
 
+    <select id="selectDicDataByTypeAndCode" resultType="cc.mrbird.febs.mall.entity.DataDictionary">
+        select * from data_dictionary a
+        where a.type=#{type} and a.code=#{code}
+    </select>
+
+    <select id="selectGroupListInPage" resultType="cc.mrbird.febs.mall.vo.AdminGroupVo">
+        select
+        a.id id,
+        a.use_robot useRobot,
+        a.name name,
+        a.model_type modelType,
+        a.amount_min amountMin,
+        a.amount_max amountMax,
+        a.red_bag_cnt redBagCnt,
+        b.phone phone,
+        b.nick_name nickName,
+        a.create_time createTime
+        from chat_group a
+        left join chat_user b on b.user_id = a.master
+        <where>
+            <if test="record != null">
+                <if test="record.name != null and record.name != ''">
+                    and a.name like CONCAT('%', CONCAT(#{record.name}, '%'))
+                </if>
+            </if>
+        </where>
+        order by a.create_time desc
+    </select>
+
+    <update id="updateIsRobotByGroupId">
+        update chat_group
+        set
+            use_robot = #{useRobot}
+        where id = #{id}
+    </update>
+
+    <select id="getGroupInfoById" resultType="cc.mrbird.febs.mall.vo.AdminGroupInfoVo">
+        select
+        a.id id,
+        a.name name,
+        b.phone phone,
+        a.model_type modelType,
+        b.nick_name nickName,
+        a.use_robot useRobot,
+        a.amount_min amountMin,
+        a.amount_max amountMax,
+        a.red_bag_cnt redBagCnt
+        from chat_group a
+        left join chat_user b on b.user_id = a.master
+        where id = #{id}
+    </select>
+
 </mapper>
\ No newline at end of file
diff --git a/src/main/resources/templates/febs/views/modules/chat/basicSetting.html b/src/main/resources/templates/febs/views/modules/chat/basicSetting.html
new file mode 100644
index 0000000..f1940c5
--- /dev/null
+++ b/src/main/resources/templates/febs/views/modules/chat/basicSetting.html
@@ -0,0 +1,73 @@
+<div class="layui-fluid layui-anim febs-anim" id="basic-setting" lay-title="基础设置">
+    <div class="layui-row layui-col-space8 febs-container">
+        <form class="layui-form" action="" lay-filter="basic-setting-form">
+            <div class="layui-card">
+                <div class="layui-card-body">
+                    <blockquote class="layui-elem-quote blue-border">模式设置</blockquote>
+                    <div class="layui-form-item">
+                        <label class="layui-form-label febs-form-item-require">模式:</label>
+                        <div class="layui-input-block">
+                            <input type="radio" name="modelType" value="1" title="简单模式">
+                            <input type="radio" name="modelType" value="2" title="困难模式">
+                        </div>
+                        <div class="layui-word-aux" style="margin-left: 150px;">简单模式-正常模式</div>
+                        <div class="layui-word-aux" style="margin-left: 150px;">困难模式</div>
+                    </div>
+                </div>
+
+                <div class="layui-card-footer">
+                    <button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="basic-setting-form-submit" id="submit">保存</button>
+                </div>
+            </div>
+        </form>
+    </div>
+</div>
+<style>
+    .layui-form-label {
+        width: 120px;
+    }
+
+    .layui-form-item .layui-input-block {
+        margin-left: 150px;
+    }
+
+    .layui-table-form .layui-form-item {
+        margin-bottom: 20px !important;
+    }
+</style>
+<script data-th-inline="javascript" type="text/javascript">
+    layui.use(['dropdown', 'jquery', 'validate', 'febs', 'form', 'eleTree'], function () {
+        var $ = layui.jquery,
+            febs = layui.febs,
+            form = layui.form,
+            basicSet = [[${basicSet}]],
+            validate = layui.validate,
+            $view = $('#basic-setting');
+
+
+        form.verify({
+            integer: [
+                /^[1-9]\d*$/
+                , '只能输入正整数'
+            ]
+        });
+
+        initBasicSetValue();
+
+        form.render();
+
+        function initBasicSetValue() {
+            form.val("basic-setting-form", {
+                "modelType": basicSet.modelType,
+            });
+        }
+
+        form.on('submit(basic-setting-form-submit)', function (data) {
+            febs.post(ctx + 'admin/chat/basicSetting', data.field, function (res) {
+                febs.alert.success('设置成功');
+            });
+            window.location.reload();
+            return false;
+        });
+    });
+</script>
\ No newline at end of file
diff --git a/src/main/resources/templates/febs/views/modules/chat/groupEdit.html b/src/main/resources/templates/febs/views/modules/chat/groupEdit.html
new file mode 100644
index 0000000..2c8b774
--- /dev/null
+++ b/src/main/resources/templates/febs/views/modules/chat/groupEdit.html
@@ -0,0 +1,136 @@
+<style>
+    #febs-group-edit {
+        padding: 20px 25px 25px 0;
+    }
+
+    #febs-group-edit .layui-treeSelect .ztree li a, .ztree li span {
+        margin: 0 0 2px 3px !important;
+    }
+    #febs-group-edit #data-permission-tree-block {
+        border: 1px solid #eee;
+        border-radius: 2px;
+        padding: 3px 0;
+    }
+    #febs-group-edit .layui-treeSelect .ztree li span.button.switch {
+        top: 1px;
+        left: 3px;
+    }
+    #febs-group-edit img{
+        max-width:100px
+    }
+
+</style>
+<div class="layui-fluid" id="febs-group-edit">
+    <form class="layui-form" action="" lay-filter="febs-group-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="${groupInfo.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="phone" autocomplete="off" class="layui-input" readonly>
+                </div>
+            </div>
+            <div class="layui-col-lg6">
+                <label class="layui-form-label febs-form-item-require">群主账号:</label>
+                <div class="layui-input-block">
+                    <input type="text" name="nickName" autocomplete="off" class="layui-input" readonly>
+                </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="name" autocomplete="off" class="layui-input" readonly>
+                </div>
+            </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="amountMin" autocomplete="off" class="layui-input">
+                </div>
+            </div>
+            <div class="layui-col-lg6">
+                <label class="layui-form-label febs-form-item-require">最大金额:</label>
+                <div class="layui-input-block">
+                    <input type="text" name="amountMax" 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="redBagCnt" autocomplete="off" class="layui-input">
+                </div>
+                <div class="layui-word-aux" style="margin-left: 150px;">设置为7,则每次红包可以有7个人抢。</div>
+            </div>
+        </div>
+        <div class="layui-row layui-col-space10 layui-form-item">
+            <div class="layui-col-lg6">
+                <label class="layui-form-label">模式:</label>
+                <div class="layui-input-block">
+                    <input type="radio" name="modelType" value="1" title="简单模式" checked="">
+                    <input type="radio" name="modelType" value="2" title="困难模式" >
+                </div>
+                <div class="layui-word-aux" style="margin-left: 150px;">困难模式,红包中只有一个不会中雷。</div>
+            </div>
+
+        </div>
+
+        <div class="layui-form-item febs-hide">
+            <button class="layui-btn" lay-submit="" lay-filter="febs-group-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,
+            groupInfo = [[${groupInfo}]],
+            $view = $('#febs-group-edit');
+
+        initGroupInfoValue();
+
+        form.render();
+
+        formSelects.render();
+        form.on('submit(febs-group-edit-form-submit)', function (data) {
+            febs.post(ctx + 'admin/chat/updateGroupInfo', data.field, function () {
+                layer.closeAll();
+                febs.alert.success('操作成功');
+                $('#febs-group-list').find('#reset').click();
+            });
+            return false;
+        });
+
+        function initGroupInfoValue() {
+            form.val("febs-group-edit-form", {
+                "id": groupInfo.id,
+                "name": groupInfo.name,
+                "phone": groupInfo.phone,
+                "nickName": groupInfo.nickName,
+                "amountMin": groupInfo.amountMin,
+                "amountMax": groupInfo.amountMax,
+                "redBagCnt": groupInfo.redBagCnt,
+                "modelType": groupInfo.modelType,
+            });
+        }
+    });
+</script>
\ No newline at end of file
diff --git a/src/main/resources/templates/febs/views/modules/chat/groupList.html b/src/main/resources/templates/febs/views/modules/chat/groupList.html
new file mode 100644
index 0000000..39f11bd
--- /dev/null
+++ b/src/main/resources/templates/febs/views/modules/chat/groupList.html
@@ -0,0 +1,164 @@
+<div class="layui-fluid layui-anim febs-anim" id="febs-group-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-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-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="groupTable" lay-data="{id: 'groupTable'}"></table>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<!--1:成功 2:失败 3:进行中-->
+<script type="text/html" id="status-type">
+    {{#
+    var status = {
+    1: {title: '-', color: ''},
+    2: {title: '成功', color: 'green'},
+    3: {title: '进行中', color: 'orange'},
+    }[d.status];
+    }}
+    <span class="layui-badge febs-bg-{{status.color}}">{{ status.title }}</span>
+</script>
+<script type="text/html" id="switchUseRobot">
+    {{# if(d.useRobot === 1) { }}
+    <input type="checkbox" value={{d.id}} lay-text="是|否" checked lay-skin="switch" lay-filter="switchUseRobot">
+    {{# } else { }}
+    <input type="checkbox" value={{d.id}} lay-text="是|否" lay-skin="switch" lay-filter="switchUseRobot">
+    {{# } }}
+</script>
+<script type="text/html" id="isModelType">
+    {{# if(d.modelType === 1) { }}
+    <span>简单模式</span>
+    {{# } else { }}
+    <span>困难模式</span>
+    {{# } }}
+</script>
+<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-group-list'),
+            $query = $view.find('#query'),
+            $reset = $view.find('#reset'),
+            $searchForm = $view.find('form'),
+            sortObject = {field: 'phone', type: null},
+            tableIns;
+
+        form.render();
+
+        // 表格初始化
+        initTable();
+        table.on('tool(groupTable)', function (obj) {
+            var data = obj.data,
+                layEvent = obj.event;
+            if (layEvent === 'editGroup') {
+                febs.modal.open('编辑', 'modules/chat/groupInfo/' + data.id, {
+                    btn: ['提交', '取消'],
+                    // area:['100%','100%'],
+                    yes: function (index, layero) {
+                        $('#febs-group-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: 1}, initSort: sortObject});
+        });
+
+        // 获取查询参数
+        function getQueryParams() {
+            return {
+                name: $searchForm.find('input[name="name"]').val().trim(),
+            };
+        }
+
+        function initTable() {
+            tableIns = febs.table.init({
+                elem: $view.find('table'),
+                id: 'groupTable',
+                url: ctx + 'admin/chat/groupList',
+                cols: [[
+                    {field: 'id', title: '编号', minWidth: 100,align:'center'},
+                    {field: 'name', title: '名称', minWidth: 150,align:'center'},
+                    {field: 'nickName', title: '群主昵称', minWidth: 150,align:'center'},
+                    {field: 'phone', title: '群主电话', minWidth: 150,align:'center'},
+                    {field: 'amountMin', title: '上限', minWidth: 100,align:'center'},
+                    {field: 'amountMax', title: '下限', minWidth: 100,align:'center'},
+                    {field: 'redBagCnt', title: '红包个数', minWidth: 100,align:'center'},
+                    {field: 'useRobot', title: '使用机器人', templet: '#switchUseRobot', minWidth: 80,align:'center'},
+                    {templet:"#isModelType", title: '模式', minWidth: 150,align:'center'},
+                    {field: 'createTime', title: '创建时间', minWidth: 180,align:'center'},
+                    {title: '操作',
+                        templet: function (d) {
+                            return '<button class="layui-btn layui-btn-normal layui-btn-xs layui-btn-success" lay-event="editGroup" shiro:hasPermission="editGroup:info">编辑</button>'
+                        },minWidth: 150,align:'center'}
+                ]]
+            });
+        }
+        form.on('switch(switchUseRobot)', function (data) {
+            if (data.elem.checked) {
+                openSwitchUseRobot(data.value);
+            } else {
+                closeSwitchUseRobot(data.value);
+            }
+        })
+        function openSwitchUseRobot(id) {
+            febs.get(ctx + 'admin/chat/openSwitchUseRobot/' + id, null, function () {
+                febs.alert.success('操作成功');
+                $query.click();
+            });
+        }
+        function closeSwitchUseRobot(id) {
+            febs.get(ctx + 'admin/chat/closeSwitchUseRobot/' + id, null, function () {
+                febs.alert.success('操作成功');
+                $query.click();
+            });
+        }
+
+    })
+</script>
\ No newline at end of file

--
Gitblit v1.9.1