InitStaffWorkStatusConsumer.java
2.36 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
package cn.fw.dalaran.server.rocketMQ;
import cn.fw.dalaran.common.constants.Constants;
import cn.fw.dalaran.domain.db.Account;
import cn.fw.dalaran.domain.db.ActivityTheme;
import cn.fw.dalaran.service.data.AccountService;
import cn.fw.dalaran.service.data.ActivityThemeService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
import org.apache.rocketmq.spring.core.RocketMQListener;
import org.springframework.stereotype.Component;
import java.util.Arrays;
import java.util.Objects;
import java.util.stream.Collectors;
/**
* @author wmy3969
* @version 1.0
* @date 2022/4/13 16:30
* @Description 新主题开始, 初始化自媒体系统员工账号状态
*/
@Slf4j
@Component
@RequiredArgsConstructor
@RocketMQMessageListener(
topic = "task-" + Constants.APPLICATION_NAME,
consumerGroup = Constants.APPLICATION_NAME + "-task-" + Constants.INIT_ACCOUNT_STATUS,
selectorExpression = Constants.INIT_ACCOUNT_STATUS)
public class InitStaffWorkStatusConsumer implements RocketMQListener<Long> {
private final AccountService accountService;
private final ActivityThemeService activityThemeService;
@Override
public void onMessage(Long themeId) {
log.info("收到topic为: task-{}, tag为: {}的消息, 消息内容(themeId): {}", Constants.APPLICATION_NAME, Constants.INIT_ACCOUNT_STATUS, themeId);
ActivityTheme theme;
if (Objects.nonNull(theme = activityThemeService.getById(themeId))) {
if (Objects.equals(theme.getAllShop(), 0)) {
accountService.lambdaUpdate()
.eq(Account::getAccountStatus, 1)
.in(Account::getShopId, Arrays.stream(theme.getShopIds().split(","))
.map(Long::valueOf)
.collect(Collectors.toList())
)
.set(Account::getAccountStatus, 0)
.update();
} else
accountService.lambdaUpdate()
.eq(Account::getAccountStatus, 1)
.set(Account::getAccountStatus, 0)
.update();
} else
log.info(String.format("id为: %s的活动主题已不存在, 不进行初始化员工账号状态操作", themeId));
}
}