From 7ecd2c9bb7b1a77fd2d55a59b2ce85c9ddb26ee7 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Fri, 13 Oct 2023 11:11:06 +0800
Subject: [PATCH] redbagprod
---
src/main/java/cc/mrbird/febs/mall/mapper/ChatUserMapper.java | 2
src/main/java/cc/mrbird/febs/mall/service/impl/AdminChatServiceImpl.java | 12 ++++
src/main/java/cc/mrbird/febs/rabbit/enumerates/RabbitQueueEnum.java | 1
src/main/java/cc/mrbird/febs/mall/controller/AdminChatController.java | 23 +++++++
src/main/resources/mapper/modules/ChatUserMapper.xml | 8 ++
src/main/java/cc/mrbird/febs/common/configure/RabbitConfigure.java | 17 +++++
src/main/java/cc/mrbird/febs/mall/entity/ChatGroup.java | 4 +
src/main/java/cc/mrbird/febs/mall/vo/AdminChatUserVo.java | 4 +
src/main/java/cc/mrbird/febs/mall/service/IAdminChatService.java | 4 +
src/main/java/cc/mrbird/febs/mall/quartz/ProfitJob.java | 31 ++++++++--
src/main/java/cc/mrbird/febs/rabbit/constants/QueueConstants.java | 5 +
src/main/java/cc/mrbird/febs/rabbit/producter/AgentProducer.java | 12 ++++
src/main/resources/templates/febs/views/modules/chat/groupList.html | 27 +++++++++
src/main/java/cc/mrbird/febs/mall/vo/AdminGroupVo.java | 4 +
14 files changed, 148 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 b09877e..91d5fb6 100644
--- a/src/main/java/cc/mrbird/febs/common/configure/RabbitConfigure.java
+++ b/src/main/java/cc/mrbird/febs/common/configure/RabbitConfigure.java
@@ -48,4 +48,21 @@
}
// === 添加机器人 end ===
+ // === 自动发送 start ===
+ @Bean
+ public DirectExchange imAutoSendExchange() {
+ return new DirectExchange(RabbitQueueEnum.IM_REDBAG_AUTO_SEND.getExchange());
+ }
+
+ @Bean
+ public Queue imAutoSendQueue() {
+ return new Queue(RabbitQueueEnum.IM_REDBAG_AUTO_SEND.getQueue());
+ }
+
+ @Bean
+ public Binding imAutoSendBind() {
+ return BindingBuilder.bind(imAutoSendQueue()).to(imAutoSendExchange()).with(RabbitQueueEnum.IM_REDBAG_AUTO_SEND.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 6ab9073..373cc73 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/AdminChatController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/AdminChatController.java
@@ -197,6 +197,29 @@
* @param id
* @return
*/
+ @GetMapping("openSwitchAutoSend/{id}")
+ @ControllerEndpoint(operation = "会员列表---开启", exceptionMessage = "操作失败")
+ public FebsResponse openSwitchAutoSend(@NotNull(message = "{required}") @PathVariable String id) {
+ return iAdminChatService.openSwitchAutoSend(id);
+ }
+ /**
+ * 使用机器人---关闭
+ *
+ * @param id
+ * @return
+ */
+ @GetMapping("closeSwitchAutoSend/{id}")
+ @ControllerEndpoint(operation = "会员列表---关闭", exceptionMessage = "操作失败")
+ public FebsResponse closeSwitchAutoSend(@NotNull(message = "{required}") @PathVariable String id) {
+ return iAdminChatService.closeSwitchAutoSend(id);
+ }
+
+ /**
+ * 使用机器人---开启
+ *
+ * @param id
+ * @return
+ */
@GetMapping("openSwitchUseRobot/{id}")
@ControllerEndpoint(operation = "会员列表---开启", exceptionMessage = "操作失败")
public FebsResponse openSwitchUseRobot(@NotNull(message = "{required}") @PathVariable String id) {
diff --git a/src/main/java/cc/mrbird/febs/mall/entity/ChatGroup.java b/src/main/java/cc/mrbird/febs/mall/entity/ChatGroup.java
index 82b7eff..71d6db9 100644
--- a/src/main/java/cc/mrbird/febs/mall/entity/ChatGroup.java
+++ b/src/main/java/cc/mrbird/febs/mall/entity/ChatGroup.java
@@ -65,5 +65,9 @@
* 模式类型 1:简单模式-正常模式 2:困难模式
*/
private Integer modelType;
+ /**
+ * 机器人是否自动发动红包 1:是 0:否
+ */
+ private Integer autoSend;
}
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 90e02ce..fe103b3 100644
--- a/src/main/java/cc/mrbird/febs/mall/mapper/ChatUserMapper.java
+++ b/src/main/java/cc/mrbird/febs/mall/mapper/ChatUserMapper.java
@@ -46,4 +46,6 @@
void updateIsRobotByGroupId(@Param("id")String id, @Param("useRobot")int i);
AdminGroupInfoVo getGroupInfoById(@Param("id")long id);
+
+ void updateAutoSendByGroupId(@Param("id")String id, @Param("autoSend")int i);
}
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 34290df..511ceae 100644
--- a/src/main/java/cc/mrbird/febs/mall/quartz/ProfitJob.java
+++ b/src/main/java/cc/mrbird/febs/mall/quartz/ProfitJob.java
@@ -3,24 +3,30 @@
import cc.mrbird.febs.common.enumerates.AgentLevelEnum;
import cc.mrbird.febs.common.enumerates.MoneyFlowTypeEnum;
import cc.mrbird.febs.common.utils.MallUtils;
+import cc.mrbird.febs.mall.entity.ChatGroup;
import cc.mrbird.febs.mall.entity.MallMember;
import cc.mrbird.febs.mall.entity.MallMoneyFlow;
+import cc.mrbird.febs.mall.mapper.ChatGroupMapper;
+import cc.mrbird.febs.mall.mapper.ChatUserMapper;
import cc.mrbird.febs.mall.mapper.MallMemberMapper;
import cc.mrbird.febs.mall.mapper.MallMoneyFlowMapper;
import cc.mrbird.febs.mall.service.IApiMallMemberService;
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.rabbit.producter.AgentProducer;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
+import javax.annotation.Resource;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.Date;
@@ -34,14 +40,27 @@
@Component
public class ProfitJob {
-// @Autowired
-// private IMemberProfitService memberProfitService;
+ @Resource
+ private ChatUserMapper chatUserMapper;
+
+ @Resource
+ private ChatGroupMapper chatGroupMapper;
+
+ @Resource
+ private AgentProducer agentProducer;
/**
* 代理分红
*/
-// @Scheduled(cron = "0 30 0 * * ?")
-// public void profitJob() {
-// memberProfitService.agentProfit(null);
-// }
+ @Scheduled(cron = "0 0/1 * * * ? ")
+ public void profitJob() {
+ QueryWrapper<ChatGroup> objectQueryWrapper = new QueryWrapper<>();
+ objectQueryWrapper.eq("auto_send", 1);
+ List<ChatGroup> chatGroups = chatGroupMapper.selectList(objectQueryWrapper);
+ if(CollUtil.isNotEmpty(chatGroups)){
+ for(ChatGroup chatGroup : chatGroups){
+ agentProducer.sendAutoSendMsg(chatGroup.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 15e4b7f..9d264f2 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/IAdminChatService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/IAdminChatService.java
@@ -49,4 +49,8 @@
FebsResponse closeModelType(String userId);
FebsResponse updateRegisterMember(AdminRegisterMemberVo adminRegisterMemberVo);
+
+ FebsResponse openSwitchAutoSend(String id);
+
+ FebsResponse closeSwitchAutoSend(String id);
}
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 9f8f4e4..24e01f2 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
@@ -252,4 +252,16 @@
agentProducer.sendAddRobotMsg(adminRegisterMemberVo.getInviteId());
return new FebsResponse().success();
}
+
+ @Override
+ public FebsResponse openSwitchAutoSend(String id) {
+ this.baseMapper.updateAutoSendByGroupId(id,1);
+ return new FebsResponse().success();
+ }
+
+ @Override
+ public FebsResponse closeSwitchAutoSend(String id) {
+ this.baseMapper.updateAutoSendByGroupId(id,0);
+ return new FebsResponse().success();
+ }
}
diff --git a/src/main/java/cc/mrbird/febs/mall/vo/AdminChatUserVo.java b/src/main/java/cc/mrbird/febs/mall/vo/AdminChatUserVo.java
index 141dada..218b4ee 100644
--- a/src/main/java/cc/mrbird/febs/mall/vo/AdminChatUserVo.java
+++ b/src/main/java/cc/mrbird/febs/mall/vo/AdminChatUserVo.java
@@ -47,4 +47,8 @@
* 是否是机器人 0:否 1:是
*/
private Integer isRobot;
+ /**
+ * 模式类型 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
index cef953b..882a752 100644
--- a/src/main/java/cc/mrbird/febs/mall/vo/AdminGroupVo.java
+++ b/src/main/java/cc/mrbird/febs/mall/vo/AdminGroupVo.java
@@ -38,4 +38,8 @@
* 模式类型 1:简单模式-正常模式 2:困难模式
*/
private Integer modelType;
+ /**
+ * 机器人是否自动发动红包 1:是 0:否
+ */
+ private Integer autoSend;
}
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 16b5e72..b9becc4 100644
--- a/src/main/java/cc/mrbird/febs/rabbit/constants/QueueConstants.java
+++ b/src/main/java/cc/mrbird/febs/rabbit/constants/QueueConstants.java
@@ -7,6 +7,11 @@
public class QueueConstants {
/**
+ * 自动发送
+ */
+ public static final String QUEUE_IM_REDBAG_AUTO_SEND = "queue_im_redbag_auto_send";
+
+ /**
* 添加机器人
*/
public static final String QUEUE_IM_REDBAG_ADD_ROBOT = "queue_im_redbag_add_robot";
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 67bbbfe..23a5073 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_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);
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 fa8fc7c..3d5c6c0 100644
--- a/src/main/java/cc/mrbird/febs/rabbit/producter/AgentProducer.java
+++ b/src/main/java/cc/mrbird/febs/rabbit/producter/AgentProducer.java
@@ -58,4 +58,16 @@
correlationData);
}
+ /**
+ * 自动发送
+ */
+ public void sendAutoSendMsg(Long groupId) {
+ log.info("自动发送:{}", groupId);
+ CorrelationData correlationData = new CorrelationData(IdUtil.simpleUUID());
+ rabbitTemplate.convertAndSend(RabbitQueueEnum.IM_REDBAG_AUTO_SEND.getExchange(),
+ RabbitQueueEnum.IM_REDBAG_AUTO_SEND.getRoute(),
+ groupId,
+ correlationData);
+ }
+
}
diff --git a/src/main/resources/mapper/modules/ChatUserMapper.xml b/src/main/resources/mapper/modules/ChatUserMapper.xml
index cf2b4c5..f6aeff2 100644
--- a/src/main/resources/mapper/modules/ChatUserMapper.xml
+++ b/src/main/resources/mapper/modules/ChatUserMapper.xml
@@ -186,6 +186,7 @@
a.amount_min amountMin,
a.amount_max amountMax,
a.red_bag_cnt redBagCnt,
+ a.auto_send autoSend,
b.phone phone,
b.nick_name nickName,
a.create_time createTime
@@ -224,4 +225,11 @@
where id = #{id}
</select>
+ <update id="updateAutoSendByGroupId">
+ update chat_group
+ set
+ auto_send = #{autoSend}
+ where id = #{id}
+ </update>
+
</mapper>
\ 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
index 39f11bd..401f55a 100644
--- a/src/main/resources/templates/febs/views/modules/chat/groupList.html
+++ b/src/main/resources/templates/febs/views/modules/chat/groupList.html
@@ -49,6 +49,13 @@
<input type="checkbox" value={{d.id}} lay-text="是|否" lay-skin="switch" lay-filter="switchUseRobot">
{{# } }}
</script>
+<script type="text/html" id="switchAutoSend">
+ {{# if(d.autoSend === 1) { }}
+ <input type="checkbox" value={{d.id}} lay-text="是|否" checked lay-skin="switch" lay-filter="switchAutoSend">
+ {{# } else { }}
+ <input type="checkbox" value={{d.id}} lay-text="是|否" lay-skin="switch" lay-filter="switchAutoSend">
+ {{# } }}
+</script>
<script type="text/html" id="isModelType">
{{# if(d.modelType === 1) { }}
<span>简单模式</span>
@@ -131,6 +138,7 @@
{field: 'amountMax', title: '下限', minWidth: 100,align:'center'},
{field: 'redBagCnt', title: '红包个数', minWidth: 100,align:'center'},
{field: 'useRobot', title: '使用机器人', templet: '#switchUseRobot', minWidth: 80,align:'center'},
+ {field: 'autoSend', title: '自动发红包', templet: '#switchAutoSend', minWidth: 180,align:'center'},
{templet:"#isModelType", title: '模式', minWidth: 150,align:'center'},
{field: 'createTime', title: '创建时间', minWidth: 180,align:'center'},
{title: '操作',
@@ -140,6 +148,25 @@
]]
});
}
+ form.on('switch(switchAutoSend)', function (data) {
+ if (data.elem.checked) {
+ openSwitchAutoSend(data.value);
+ } else {
+ closeSwitchAutoSend(data.value);
+ }
+ })
+ function openSwitchAutoSend(id) {
+ febs.get(ctx + 'admin/chat/openSwitchAutoSend/' + id, null, function () {
+ febs.alert.success('操作成功');
+ $query.click();
+ });
+ }
+ function closeSwitchAutoSend(id) {
+ febs.get(ctx + 'admin/chat/closeSwitchAutoSend/' + id, null, function () {
+ febs.alert.success('操作成功');
+ $query.click();
+ });
+ }
form.on('switch(switchUseRobot)', function (data) {
if (data.elem.checked) {
openSwitchUseRobot(data.value);
--
Gitblit v1.9.1