From b3c8303ecd936182e2df4933dbf1ad167b81266e Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Wed, 25 Oct 2023 14:26:23 +0800
Subject: [PATCH] 版本管理
---
src/main/java/cc/mrbird/febs/mall/mapper/ChatUserMapper.java | 8
src/main/java/cc/mrbird/febs/mall/service/impl/AdminChatServiceImpl.java | 21 ++
src/main/java/cc/mrbird/febs/rabbit/enumerates/RabbitQueueEnum.java | 1
src/main/java/cc/mrbird/febs/mall/controller/ViewChatController.java | 10 +
src/main/resources/templates/febs/views/modules/chat/userPerkList.html | 229 +++++++++++++++++++++++++
src/main/java/cc/mrbird/febs/mall/controller/AdminChatController.java | 13 +
src/main/resources/mapper/modules/ChatUserMapper.xml | 58 ++++++
src/main/java/cc/mrbird/febs/common/configure/RabbitConfigure.java | 17 +
src/main/java/cc/mrbird/febs/mall/vo/AdminChatUserPerkVo.java | 59 ++++++
src/main/java/cc/mrbird/febs/mall/service/IAdminChatService.java | 2
src/main/java/cc/mrbird/febs/mall/quartz/ProfitJob.java | 25 ++
src/main/java/cc/mrbird/febs/rabbit/constants/QueueConstants.java | 5
src/main/java/cc/mrbird/febs/rabbit/producter/AgentProducer.java | 12 +
src/main/java/cc/mrbird/febs/mall/vo/AdminChatRedBagVo.java | 71 +++++++
14 files changed, 525 insertions(+), 6 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 91d5fb6..0822743 100644
--- a/src/main/java/cc/mrbird/febs/common/configure/RabbitConfigure.java
+++ b/src/main/java/cc/mrbird/febs/common/configure/RabbitConfigure.java
@@ -65,4 +65,21 @@
}
// === 自动发送 end ===
+ // === 自动发送 start ===
+ @Bean
+ public DirectExchange imOverdueSendExchange() {
+ return new DirectExchange(RabbitQueueEnum.IM_REDBAG_OVERDUE.getExchange());
+ }
+
+ @Bean
+ public Queue imOverdueSendQueue() {
+ return new Queue(RabbitQueueEnum.IM_REDBAG_OVERDUE.getQueue());
+ }
+
+ @Bean
+ public Binding imOverdueSendBind() {
+ return BindingBuilder.bind(imOverdueSendQueue()).to(imOverdueSendExchange()).with(RabbitQueueEnum.IM_REDBAG_OVERDUE.getRoute());
+ }
+ // === 自动发送 end ===
+
}
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 d4bd762..1463c85 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/AdminChatController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/AdminChatController.java
@@ -46,6 +46,19 @@
}
/**
+ * 用户收益列表
+ *
+ * @param chatUser
+ * @param request
+ * @return
+ */
+ @GetMapping("getUserPerkList")
+ public FebsResponse getUserPerkList(ChatUser chatUser, QueryRequest request) {
+ Map<String, Object> data = getDataTable(iAdminChatService.getUserPerkList(chatUser, request));
+ return new FebsResponse().success().data(data);
+ }
+
+ /**
* 用户列表---开启
*
* @param userId
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 94ad52e..cdf3998 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/ViewChatController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/ViewChatController.java
@@ -46,6 +46,16 @@
}
/**
+ * 用户收益列表
+ * @return
+ */
+ @GetMapping("userPerkList")
+ @RequiresPermissions("userPerkList:view")
+ public String userPerkList() {
+ return FebsUtil.view("modules/chat/userPerkList");
+ }
+
+ /**
* 用户列表-新增会员
* @param model
* @return
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 e42f0d0..6209a86 100644
--- a/src/main/java/cc/mrbird/febs/mall/mapper/ChatUserMapper.java
+++ b/src/main/java/cc/mrbird/febs/mall/mapper/ChatUserMapper.java
@@ -17,6 +17,8 @@
IPage<AdminChatUserVo> selectUserListInPage(Page<AdminChatUserVo> page, @Param("record")ChatUser chatUser);
+ IPage<AdminChatUserPerkVo> selectUserPerkListInPage(Page<AdminChatUserPerkVo> page, @Param("record")ChatUser chatUser);
+
ChatUser selectByUserId(@Param("userId")String userId);
void updateStatusByUserId(@Param("userId")String userId, @Param("status")String code);
@@ -67,5 +69,11 @@
BigDecimal selectTotalType(@Param("type")int i,@Param("dateType") String type, @Param("date") Date date);
+ List<AdminChatRedBagVo> selectListByMsgType(@Param("userId")Long userId,@Param("msgType")String msgType, @Param("date") Date date);
+
List<ChatUser> selectUserList(@Param("isRobot")int i,@Param("dateType") String type, @Param("date") Date date);
+
+ List<AdminChatRedBagVo> selectByOverDueStatueAndTime(@Param("overdueState")Integer overdueState, @Param("overdueTime")Date overdueTime);
+
+ void updateOverdueStatusById(@Param("overdueState")Integer overdueState, @Param("id")Long id);
}
diff --git a/src/main/java/cc/mrbird/febs/mall/quartz/ProfitJob.java b/src/main/java/cc/mrbird/febs/mall/quartz/ProfitJob.java
index 1ccbe27..e507efc 100644
--- a/src/main/java/cc/mrbird/febs/mall/quartz/ProfitJob.java
+++ b/src/main/java/cc/mrbird/febs/mall/quartz/ProfitJob.java
@@ -15,6 +15,7 @@
import cc.mrbird.febs.mall.service.IApiMallMemberWalletService;
import cc.mrbird.febs.mall.service.IMemberProfitService;
import cc.mrbird.febs.mall.service.impl.CommonService;
+import cc.mrbird.febs.mall.vo.AdminChatRedBagVo;
import cc.mrbird.febs.rabbit.producter.AgentProducer;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateTime;
@@ -55,7 +56,7 @@
/**
* 代理分红
*/
-// @Scheduled(cron = "0 0/1 * * * ? ")
+ @Scheduled(cron = "0 0/1 * * * ? ")
@Scheduled(cron = "0/2 * * * * ? ")
// @Scheduled(cron = "0/30 * * * * ? ")
public void profitJob() {
@@ -70,12 +71,24 @@
}
// @Scheduled(cron = "0/2 * * * * ? ")
+// @Scheduled(cron = "0 0 0/1 * * ? ")
+// public void robotNickNameJob() {
+// List<ChatUser> chatUsers = chatUserMapper.selectListByIsRobot(1);
+// if(CollUtil.isNotEmpty(chatUsers)){
+// for(ChatUser chatUser : chatUsers){
+// chatUserMapper.updateNicknameById(chatUser.getUserId(),randomName(RandomUtil.randomInt(1, 5)));
+// }
+// }
+// }
+
+// @Scheduled(cron = "0/2 * * * * ? ")
@Scheduled(cron = "0 0 0/1 * * ? ")
- public void robotNickNameJob() {
- List<ChatUser> chatUsers = chatUserMapper.selectListByIsRobot(1);
- if(CollUtil.isNotEmpty(chatUsers)){
- for(ChatUser chatUser : chatUsers){
- chatUserMapper.updateNicknameById(chatUser.getUserId(),randomName(RandomUtil.randomInt(1, 5)));
+ public void returnRedBagAmount() {
+ List<AdminChatRedBagVo> adminChatRedBagVos = chatUserMapper.selectByOverDueStatueAndTime(2, DateUtil.date());
+ if(CollUtil.isNotEmpty(adminChatRedBagVos)){
+ for(AdminChatRedBagVo adminChatRedBagVo : adminChatRedBagVos){
+ chatUserMapper.updateOverdueStatusById(1,adminChatRedBagVo.getId());
+ agentProducer.sendOverdueSendMsg(adminChatRedBagVo.getId());
}
}
}
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 8701469..3401bf7 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/IAdminChatService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/IAdminChatService.java
@@ -12,6 +12,8 @@
IPage<AdminChatUserVo> getUserList(ChatUser chatUser, QueryRequest request);
+ IPage<AdminChatUserPerkVo> getUserPerkList(ChatUser chatUser, QueryRequest request);
+
FebsResponse openAccount(String userId);
FebsResponse closeAccount(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 286ef51..7a2eff1 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
@@ -10,6 +10,7 @@
import cc.mrbird.febs.mall.service.IAdminChatService;
import cc.mrbird.febs.mall.vo.*;
import cc.mrbird.febs.rabbit.producter.AgentProducer;
+import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -22,6 +23,7 @@
import org.springframework.util.StringUtils;
import java.math.BigDecimal;
+import java.util.List;
@Slf4j
@Service
@@ -44,6 +46,25 @@
}
@Override
+ public IPage<AdminChatUserPerkVo> getUserPerkList(ChatUser chatUser, QueryRequest request) {
+ Page<AdminChatUserPerkVo> page = new Page<>(request.getPageNum(), request.getPageSize());
+ IPage<AdminChatUserPerkVo> chatUserPerkVoIPage = this.baseMapper.selectUserPerkListInPage(page, chatUser);
+ List<AdminChatUserPerkVo> records = chatUserPerkVoIPage.getRecords();
+ if(CollUtil.isNotEmpty(records)){
+ for(AdminChatUserPerkVo adminChatUserPerkVo : records){
+ Long userId = adminChatUserPerkVo.getUserId();
+ List<AdminChatRedBagVo> group = this.baseMapper.selectListByMsgType(userId,"GROUP", null);
+ adminChatUserPerkVo.setGroupRedBagNum(CollUtil.isEmpty(group) ? 0 : group.size());
+ BigDecimal redBagTotalAmount = group.stream().map(AdminChatRedBagVo::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+ adminChatUserPerkVo.setRedBagTotalAmount(redBagTotalAmount);
+ BigDecimal redBagAvaAmount = group.stream().map(AdminChatRedBagVo::getAmountAva).reduce(BigDecimal.ZERO, BigDecimal::add);
+ adminChatUserPerkVo.setRedBagAvaAmount(redBagAvaAmount);
+ }
+ }
+ return chatUserPerkVoIPage;
+ }
+
+ @Override
public FebsResponse openAccount(String userId) {
ChatUser chatUser = this.baseMapper.selectByUserId(userId);
if(ObjectUtil.isEmpty(chatUser)) {
diff --git a/src/main/java/cc/mrbird/febs/mall/vo/AdminChatRedBagVo.java b/src/main/java/cc/mrbird/febs/mall/vo/AdminChatRedBagVo.java
new file mode 100644
index 0000000..a16c77c
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/vo/AdminChatRedBagVo.java
@@ -0,0 +1,71 @@
+package cc.mrbird.febs.mall.vo;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+public class AdminChatRedBagVo {
+ private Long id;
+ /**
+ * 消息ID
+ */
+ private Long msgId;
+ /**
+ * 消息类型SINGLE/GROUP
+ */
+ private String msgType;
+ /**
+ * 红包z总个数
+ */
+ private Integer totalCnt;
+ /**
+ * 剩余红包个数
+ */
+ private Integer avaCnt;
+ /**
+ * 金额
+ */
+ private BigDecimal amount;
+ /**
+ * 剩余金额
+ */
+ private BigDecimal amountAva;
+ /**
+ * 钱包类型 USDT RMB
+ */
+ private String amountType;
+ /**
+ * 是否被领取 1:是 2:否
+ */
+ private Integer state;
+ /**
+ * 是否已过期 1:是2:否
+ */
+ private Integer overdueState;
+ /**
+ * 创建时间
+ */
+ private Date createTime;
+ /**
+ * 过期时间
+ */
+ private Date overdueTime;
+ /**
+ * 版本控制
+ */
+ private Integer version;
+ /**
+ * 发送方
+ */
+ private Long fromUserId;
+ /**
+ * 接收方
+ */
+ private Long toUserId;
+ /**
+ * 雷
+ */
+ private Integer boomNum;
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/vo/AdminChatUserPerkVo.java b/src/main/java/cc/mrbird/febs/mall/vo/AdminChatUserPerkVo.java
new file mode 100644
index 0000000..055575c
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/vo/AdminChatUserPerkVo.java
@@ -0,0 +1,59 @@
+package cc.mrbird.febs.mall.vo;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class AdminChatUserPerkVo {
+
+ private Long userId;
+ /**
+ * 昵称
+ */
+ private String nickName;
+ /**
+ * 微聊号
+ */
+ private String chatNo;
+ /**
+ * 注册时间
+ */
+ private String createTime;
+ /**
+ * 账户总额
+ */
+ private BigDecimal totalAmount;
+ /**
+ * 账户可用
+ */
+ private BigDecimal avaAmount;
+
+ /**
+ * 邀请码
+ */
+ private String inviteId;
+
+ /**
+ * 邀请码
+ */
+ private String phone;
+
+ /**
+ * 是否是机器人 0:否 1:是
+ */
+ private Integer isRobot;
+
+ /**
+ * 发红包个数
+ */
+ private Integer groupRedBagNum;
+ /**
+ * 发出去的红包总额
+ */
+ private BigDecimal redBagTotalAmount;
+ /**
+ * 剩余未领取的总额
+ */
+ private BigDecimal redBagAvaAmount;
+}
diff --git a/src/main/java/cc/mrbird/febs/rabbit/constants/QueueConstants.java b/src/main/java/cc/mrbird/febs/rabbit/constants/QueueConstants.java
index b9becc4..4fe720e 100644
--- a/src/main/java/cc/mrbird/febs/rabbit/constants/QueueConstants.java
+++ b/src/main/java/cc/mrbird/febs/rabbit/constants/QueueConstants.java
@@ -15,4 +15,9 @@
* 添加机器人
*/
public static final String QUEUE_IM_REDBAG_ADD_ROBOT = "queue_im_redbag_add_robot";
+
+ /**
+ * 自动返还
+ */
+ public static final String QUEUE_IM_REDBAG_OVERDUE = "queue_im_redbag_overdue";
}
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 23a5073..602834d 100644
--- a/src/main/java/cc/mrbird/febs/rabbit/enumerates/RabbitQueueEnum.java
+++ b/src/main/java/cc/mrbird/febs/rabbit/enumerates/RabbitQueueEnum.java
@@ -6,6 +6,7 @@
@Getter
public enum RabbitQueueEnum {
+ IM_REDBAG_OVERDUE("exchange_im_redbag_overdue", "route_key_im_redbag_overdue", QueueConstants.QUEUE_IM_REDBAG_OVERDUE),
IM_REDBAG_AUTO_SEND("exchange_im_redbag_auto_send", "route_key_im_redbag_auto_send", QueueConstants.QUEUE_IM_REDBAG_AUTO_SEND),
IM_REDBAG_GET_ADD_ROBOT("exchange_im_redbag_add_robot", "route_key_im_redbag_add_robot", QueueConstants.QUEUE_IM_REDBAG_ADD_ROBOT);
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 3d5c6c0..7d58288 100644
--- a/src/main/java/cc/mrbird/febs/rabbit/producter/AgentProducer.java
+++ b/src/main/java/cc/mrbird/febs/rabbit/producter/AgentProducer.java
@@ -70,4 +70,16 @@
correlationData);
}
+ /**
+ * 自动返还
+ */
+ public void sendOverdueSendMsg(Long redbagId) {
+ log.info("自动返还:{}", redbagId);
+ CorrelationData correlationData = new CorrelationData(IdUtil.simpleUUID());
+ rabbitTemplate.convertAndSend(RabbitQueueEnum.IM_REDBAG_OVERDUE.getExchange(),
+ RabbitQueueEnum.IM_REDBAG_OVERDUE.getRoute(),
+ redbagId,
+ correlationData);
+ }
+
}
diff --git a/src/main/resources/mapper/modules/ChatUserMapper.xml b/src/main/resources/mapper/modules/ChatUserMapper.xml
index a6baa1a..4221dba 100644
--- a/src/main/resources/mapper/modules/ChatUserMapper.xml
+++ b/src/main/resources/mapper/modules/ChatUserMapper.xml
@@ -35,6 +35,36 @@
order by a.create_time desc
</select>
+ <select id="selectUserPerkListInPage" resultType="cc.mrbird.febs.mall.vo.AdminChatUserPerkVo">
+ select
+ a.user_id userId,
+ a.nick_name nickName,
+ a.chat_no chatNo,
+ a.phone phone,
+ a.invite_id inviteId,
+ a.is_robot isRobot,
+ date_format(a.create_time, '%Y-%m-%d %H:%m:%s') createTime,
+ IFNULL(sum(b.total_amount), 0) totalAmount,
+ IFNULL(sum(b.ava_amount), 0) avaAmount
+ from chat_user a
+ left join chat_wallet b on b.user_id = a.user_id and type = 'USDT'
+ <where>
+ <if test="record != null">
+ <if test="record.nickName != null and record.nickName != ''">
+ and a.nick_name like CONCAT('%', CONCAT(#{record.nickName}, '%'))
+ </if>
+ <if test="record.inviteId != null and record.inviteId != ''">
+ and a.invite_id = #{record.inviteId}
+ </if>
+ <if test="record.status != null and record.status != ''">
+ and a.status = #{record.status}
+ </if>
+ </if>
+ </where>
+ group by a.user_id
+ order by a.create_time desc
+ </select>
+
<select id="selectByUserId" resultType="cc.mrbird.febs.mall.entity.ChatUser">
select
a.*
@@ -317,5 +347,33 @@
</if>
</select>
+ <select id="selectListByMsgType" resultType="cc.mrbird.febs.mall.vo.AdminChatRedBagVo">
+ select
+ a.*
+ from chat_red_bag a
+ where a.msg_type = #{msgType}
+ <if test='date != "" and date != null'>
+ and date_format(a.create_time, '%Y-%m-%d') = date_format(#{date}, '%Y-%m-%d')
+ </if>
+ and a.from_user_id = #{userId}
+ </select>
+
+ <select id="selectByOverDueStatueAndTime" resultType="cc.mrbird.febs.mall.vo.AdminChatRedBagVo">
+ select *
+ from chat_red_bag
+ where overdue_state = #{overdueState}
+ and #{overdueTime} > overdue_time
+ order by id asc
+ limit 500
+ </select>
+
+
+ <update id="updateOverdueStatusById">
+ update chat_red_bag
+ set
+ overdue_state = #{overdueState}
+ where id = #{id}
+ </update>
+
</mapper>
\ No newline at end of file
diff --git a/src/main/resources/templates/febs/views/modules/chat/userPerkList.html b/src/main/resources/templates/febs/views/modules/chat/userPerkList.html
new file mode 100644
index 0000000..41082c2
--- /dev/null
+++ b/src/main/resources/templates/febs/views/modules/chat/userPerkList.html
@@ -0,0 +1,229 @@
+<div class="layui-fluid layui-anim febs-anim" id="febs-chat-user-perk-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="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="nickName" autocomplete="off" class="layui-input">
+ </div>
+ </div>
+ <div class="layui-inline">
+ <label class="layui-form-label">邀请码:</label>
+ <div class="layui-input-inline">
+ <input type="text" placeholder="邀请码" name="inviteId" autocomplete="off" class="layui-input">
+ </div>
+ </div>
+ <div class="layui-inline">
+ <label class="layui-form-label">账号状态:</label>
+ <div class="layui-input-inline">
+ <select name="status">
+ <option value="">请选择</option>
+ <option value="Y">正常</option>
+ <option value="N">禁用</option>
+ </select>
+ </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"></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="userChatTable" lay-data="{id: 'userChatTable'}"></table>
+ </div>
+ </div>
+ </div>
+ </div>
+</div>
+<!-- 表格操作栏 start -->
+<script type="text/html" id="user-option">
+ <span shiro:lacksPermission="user:view,user:update,user:delete">
+ <span class="layui-badge-dot febs-bg-orange"></span> 无权限
+ </span>
+ <a lay-event="edit" shiro:hasPermission="user:update"><i
+ class="layui-icon febs-edit-area febs-blue"></i></a>
+</script>
+<script type="text/html" id="switchIsRobot">
+ {{# if(d.isRobot === 1) { }}
+ <input type="checkbox" value={{d.userId}} lay-text="是|否" checked lay-skin="switch" lay-filter="switchIsRobot">
+ {{# } else { }}
+ <input type="checkbox" value={{d.userId}} lay-text="是|否" lay-skin="switch" lay-filter="switchIsRobot">
+ {{# } }}
+</script>
+<style>
+ .layui-form-onswitch {
+ background-color: #5FB878 !important;
+ }
+</style>
+<script type="text/html" id="toolbar">
+ <div class="layui-btn-container">
+ <button class="layui-btn layui-btn-normal layui-btn-sm" type="button" lay-event="registerMember">添加会员</button>
+ <button class="layui-btn layui-btn-normal layui-btn-sm" type="button" lay-event="balance">拨付余额</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-chat-user-perk-list'),
+ $query = $view.find('#query'),
+ $reset = $view.find('#reset'),
+ $searchForm = $view.find('form'),
+ sortObject = {field: 'phone', type: null},
+ tableIns;
+
+ form.render();
+ let currPageUser = 1;//首先默认值为1,防止出错
+ //获取当前页
+ currPageUser = $view.find(".layui-laypage-em").next().html();
+
+ // 表格初始化
+ initTable();
+
+ // 查询按钮
+ $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: currPageUser}, initSort: sortObject});
+ });
+
+ // 获取查询参数
+ function getQueryParams() {
+ return {
+ nickName: $searchForm.find('input[name="nickName"]').val().trim(),
+ inviteId: $searchForm.find('input[name="inviteId"]').val().trim(),
+ status: $searchForm.find("select[name='status']").val()
+ };
+ }
+
+ function initTable() {
+ tableIns = febs.table.init({
+ elem: $view.find('table'),
+ id: 'userChatTable',
+ url: ctx + 'admin/chat/getUserPerkList',
+ toolbar:"#toolbar",
+ defaultToolbar:[],
+ totalRow: true ,// 开启合计行
+ cols: [[
+ {type: 'checkbox'},
+ {field: 'userId', title: '标识', minWidth: 150,align:'left'},
+ {field: 'nickName', title: '昵称', minWidth: 100,align:'left', totalRowText: '合计:',align:'center'},
+ {field: 'inviteId', title: '邀请码', minWidth: 100,align:'left',align:'center'},
+ {field: 'phone', title: '注册号码', minWidth: 150,align:'left',align:'center'},
+ {field: 'totalAmount', title: '账户总额', minWidth: 80,align:'left',totalRow: '{{= parseInt(d.totalAmount) }}',align:'center'},
+ {field: 'avaAmount', title: '账户余额', minWidth: 80,align:'left',totalRow: '{{= parseInt(d.avaAmount) }}',align:'center'},
+ {field: 'groupRedBagNum', title: '群红包数', minWidth: 80,align:'left'},
+ {field: 'redBagTotalAmount', title: '红包总额', minWidth: 80,align:'left'},
+ {field: 'redBagAvaAmount', title: '未领取', minWidth: 80,align:'left'},
+ // {field: 'isRobot', title: '机器人', templet: '#switchIsRobot', minWidth: 80,align:'center'},
+ {field: 'createTime', title: '注册时间', minWidth: 180,align:'center'},
+ ]]
+ });
+ }
+
+ table.on('toolbar(userChatTable)', function(obj){
+ var data = obj.data,
+ layEvent = obj.event;
+
+ // if (layEvent === 'registerMember') {
+ // febs.get(ctx + 'admin/chat/registerMember/', null, function () {
+ // febs.alert.success('操作成功');
+ // $query.click();
+ // });
+ // }
+
+ if (layEvent === 'registerMember') {
+ var checkData = table.checkStatus('userChatTable').data;
+ if (checkData.length <= 0) {
+ febs.alert.warn('请选择需要的用户');
+ return;
+ }
+ if (checkData.length > 1) {
+ febs.alert.warn('请选择一个用户');
+ return;
+ }
+ registerMember("添加会员", checkData[0].inviteId, 1);
+ }
+
+ if (layEvent === 'balance') {
+ var checkData = table.checkStatus('userChatTable').data;
+ if (checkData.length <= 0) {
+ febs.alert.warn('请选择需要的用户');
+ return;
+ }
+ if (checkData.length > 1) {
+ febs.alert.warn('请选择一个用户');
+ return;
+ }
+ systemPay("修改余额", checkData[0].userId, 1);
+ }
+ });
+
+ function registerMember(text, inviteId, type) {
+ febs.modal.open(text, 'modules/chat/mallRegisterMember/'+ inviteId, {
+ btn: ['提交', '取消'],
+ yes: function (index, layero) {
+ $('#chat-register-member').find('#submit').trigger('click');
+ },
+ btn2: function () {
+ layer.closeAll();
+ }
+ });
+ }
+
+ function systemPay(text, userId, type) {
+ febs.modal.open(text, 'modules/chat/mallSystemPay/'+ userId, {
+ btn: ['提交', '取消'],
+ yes: function (index, layero) {
+ $('#chat-systemPay-update').find('#submit').trigger('click');
+ },
+ btn2: function () {
+ layer.closeAll();
+ }
+ });
+ }
+
+ form.on('switch(switchIsRobot)', function (data) {
+ if (data.elem.checked) {
+ openSwitchIsRobot(data.value);
+ } else {
+ closeSwitchIsRobot(data.value);
+ }
+ })
+ function openSwitchIsRobot(userId) {
+ febs.get(ctx + 'admin/chat/openSwitchIsRobot/' + userId, null, function () {
+ febs.alert.success('操作成功');
+ $reset.click();
+ });
+ }
+ function closeSwitchIsRobot(userId) {
+ febs.get(ctx + 'admin/chat/closeSwitchIsRobot/' + userId, null, function () {
+ febs.alert.success('操作成功');
+ $reset.click();
+ });
+ }
+
+ })
+</script>
\ No newline at end of file
--
Gitblit v1.9.1