Browse Source

修改初始化客户积分规则的逻辑,给积分时间加上响应的积分文案,在用户的积分记录里显示

dev_shibei_match
wangchao 5 years ago
parent
commit
2afab88590
  1. 24
      epmet-module/epmet-point/epmet-point-server/pom.xml
  2. 49
      epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/config/AsyncConfig.java
  3. 25
      epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/properties/ThreadProperties.java
  4. 59
      epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/PointRuleServiceImpl.java
  5. 8
      epmet-module/epmet-point/epmet-point-server/src/main/resources/bootstrap.yml
  6. 2
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java
  7. 17
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/impl/GroupMemeberOperationServiceImpl.java
  8. 18
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/impl/ResiGroupMemberServiceImpl.java
  9. 4
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java

24
epmet-module/epmet-point/epmet-point-server/pom.xml

@ -140,6 +140,12 @@
<nacos.ip/> <nacos.ip/>
<spring.flyway.enabled>false</spring.flyway.enabled> <spring.flyway.enabled>false</spring.flyway.enabled>
<!--线程池配置-->
<thread.pool.core-pool-size>5</thread.pool.core-pool-size>
<thread.pool.max-pool-size>8</thread.pool.max-pool-size>
<thread.pool.queue-capacity>10</thread.pool.queue-capacity>
<thread.pool.keep-alive>30</thread.pool.keep-alive>
<!--钉钉 机器人地址--> <!--钉钉 机器人地址-->
<dingTalk.robot.webHook>https://oapi.dingtalk.com/robot/send?access_token=90782b119f82a5b6bb8e0f819b6a77bbc2102b53aa2d7d2e24fa10b66d580b1c</dingTalk.robot.webHook> <dingTalk.robot.webHook>https://oapi.dingtalk.com/robot/send?access_token=90782b119f82a5b6bb8e0f819b6a77bbc2102b53aa2d7d2e24fa10b66d580b1c</dingTalk.robot.webHook>
<dingTalk.robot.secret>SEC080aac67ff78e79fdaba132aa51e3fb3f6060dec99492feaac82cabf9f8b6a19</dingTalk.robot.secret> <dingTalk.robot.secret>SEC080aac67ff78e79fdaba132aa51e3fb3f6060dec99492feaac82cabf9f8b6a19</dingTalk.robot.secret>
@ -175,6 +181,12 @@
<nacos.ip/> <nacos.ip/>
<spring.flyway.enabled>false</spring.flyway.enabled> <spring.flyway.enabled>false</spring.flyway.enabled>
<!--线程池配置-->
<thread.pool.core-pool-size>5</thread.pool.core-pool-size>
<thread.pool.max-pool-size>8</thread.pool.max-pool-size>
<thread.pool.queue-capacity>10</thread.pool.queue-capacity>
<thread.pool.keep-alive>30</thread.pool.keep-alive>
<!--钉钉 机器人地址--> <!--钉钉 机器人地址-->
<dingTalk.robot.webHook>https://oapi.dingtalk.com/robot/send?access_token=90782b119f82a5b6bb8e0f819b6a77bbc2102b53aa2d7d2e24fa10b66d580b1c</dingTalk.robot.webHook> <dingTalk.robot.webHook>https://oapi.dingtalk.com/robot/send?access_token=90782b119f82a5b6bb8e0f819b6a77bbc2102b53aa2d7d2e24fa10b66d580b1c</dingTalk.robot.webHook>
<dingTalk.robot.secret>SEC080aac67ff78e79fdaba132aa51e3fb3f6060dec99492feaac82cabf9f8b6a19</dingTalk.robot.secret> <dingTalk.robot.secret>SEC080aac67ff78e79fdaba132aa51e3fb3f6060dec99492feaac82cabf9f8b6a19</dingTalk.robot.secret>
@ -210,6 +222,12 @@
<nacos.ip/> <nacos.ip/>
<spring.flyway.enabled>true</spring.flyway.enabled> <spring.flyway.enabled>true</spring.flyway.enabled>
<!--线程池配置-->
<thread.pool.core-pool-size>5</thread.pool.core-pool-size>
<thread.pool.max-pool-size>8</thread.pool.max-pool-size>
<thread.pool.queue-capacity>10</thread.pool.queue-capacity>
<thread.pool.keep-alive>30</thread.pool.keep-alive>
<!--钉钉 机器人地址--> <!--钉钉 机器人地址-->
<dingTalk.robot.webHook>https://oapi.dingtalk.com/robot/send?access_token=90782b119f82a5b6bb8e0f819b6a77bbc2102b53aa2d7d2e24fa10b66d580b1c</dingTalk.robot.webHook> <dingTalk.robot.webHook>https://oapi.dingtalk.com/robot/send?access_token=90782b119f82a5b6bb8e0f819b6a77bbc2102b53aa2d7d2e24fa10b66d580b1c</dingTalk.robot.webHook>
<dingTalk.robot.secret>SEC080aac67ff78e79fdaba132aa51e3fb3f6060dec99492feaac82cabf9f8b6a19</dingTalk.robot.secret> <dingTalk.robot.secret>SEC080aac67ff78e79fdaba132aa51e3fb3f6060dec99492feaac82cabf9f8b6a19</dingTalk.robot.secret>
@ -245,6 +263,12 @@
<nacos.ip/> <nacos.ip/>
<spring.flyway.enabled>true</spring.flyway.enabled> <spring.flyway.enabled>true</spring.flyway.enabled>
<!--线程池配置-->
<thread.pool.core-pool-size>5</thread.pool.core-pool-size>
<thread.pool.max-pool-size>8</thread.pool.max-pool-size>
<thread.pool.queue-capacity>10</thread.pool.queue-capacity>
<thread.pool.keep-alive>30</thread.pool.keep-alive>
<!--生产钉钉 机器人地址--> <!--生产钉钉 机器人地址-->
<dingTalk.robot.webHook>https://oapi.dingtalk.com/robot/send?access_token=a5f66c3374b1642fe2142dbf56d5997e280172d4e8f2b546c9423a68c82ece6c</dingTalk.robot.webHook> <dingTalk.robot.webHook>https://oapi.dingtalk.com/robot/send?access_token=a5f66c3374b1642fe2142dbf56d5997e280172d4e8f2b546c9423a68c82ece6c</dingTalk.robot.webHook>
<dingTalk.robot.secret>SEC95f4f40b533ad379ea6a6d1af6dd37029383cfe1b7cd96dfac2678be2c1c3ed1</dingTalk.robot.secret> <dingTalk.robot.secret>SEC95f4f40b533ad379ea6a6d1af6dd37029383cfe1b7cd96dfac2678be2c1c3ed1</dingTalk.robot.secret>

49
epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/config/AsyncConfig.java

@ -0,0 +1,49 @@
package com.epmet.config;
import com.epmet.properties.ThreadProperties;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import java.util.concurrent.Executor;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.ThreadPoolExecutor;
/**
* 线程池配置类
*/
@Configuration
@EnableConfigurationProperties(ThreadProperties.class)
@EnableAsync
public class AsyncConfig {
@Autowired
private ThreadProperties threadProperties;
@Bean
public Executor executor() {
ThreadProperties.ThreadPoolProperties threadPoolProps = threadProperties.getThreadPool();
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setCorePoolSize(threadPoolProps.getCorePoolSize());
executor.setMaxPoolSize(threadPoolProps.getMaxPoolSize());
executor.setQueueCapacity(threadPoolProps.getQueueCapacity());
executor.setThreadNamePrefix("epmet-point-");
// rejection-policy:当pool已经达到max size的时候,如何处理新任务
// CALLER_RUNS:不在新线程中执行任务,而是由调用者所在的线程来执行
executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy()); //对拒绝task的处理策略
executor.setKeepAliveSeconds(threadPoolProps.getKeepAlive());
executor.initialize();
return executor;
}
@Bean
public ExecutorService executorService() {
ThreadPoolTaskExecutor executor = (ThreadPoolTaskExecutor) executor();
return executor.getThreadPoolExecutor();
}
}

25
epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/properties/ThreadProperties.java

@ -0,0 +1,25 @@
package com.epmet.properties;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
/**
* 线程池属性类
*/
@ConfigurationProperties(prefix = "thread")
@Data
public class ThreadProperties {
private ThreadPoolProperties threadPool;
@Data
public static class ThreadPoolProperties {
private int corePoolSize;
private int maxPoolSize;
private int queueCapacity;
private int keepAlive;
public ThreadPoolProperties() {
}
}
}

59
epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/PointRuleServiceImpl.java

@ -25,10 +25,12 @@ import com.epmet.commons.tools.constant.Constant;
import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.constant.StrConstant;
import com.epmet.commons.tools.enums.CommonOperateTypeEnum; import com.epmet.commons.tools.enums.CommonOperateTypeEnum;
import com.epmet.commons.tools.exception.ExceptionUtils;
import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.utils.SpringContextUtils;
import com.epmet.dao.PointRuleDao; import com.epmet.dao.PointRuleDao;
import com.epmet.dao.PointRuleDefaultDao; import com.epmet.dao.PointRuleDefaultDao;
import com.epmet.dao.RuleOperateLogDao; import com.epmet.dao.RuleOperateLogDao;
@ -57,9 +59,8 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import java.util.ArrayList; import java.util.*;
import java.util.Date; import java.util.concurrent.ExecutorService;
import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
@ -194,6 +195,7 @@ public class PointRuleServiceImpl extends BaseServiceImpl<PointRuleDao, PointRul
} }
@Override @Override
@Transactional(rollbackFor = Exception.class)
public InitPointRuleResultDTO initPointRule() { public InitPointRuleResultDTO initPointRule() {
Result<List<CustomerDTO>> customerListResult = operCrmOpenFeignClient.getAllCustomerList(); Result<List<CustomerDTO>> customerListResult = operCrmOpenFeignClient.getAllCustomerList();
log.info("initPointRule operCrmOpenFeignClient.getAllCustomerList result:{}",JSON.toJSONString(customerListResult)); log.info("initPointRule operCrmOpenFeignClient.getAllCustomerList result:{}",JSON.toJSONString(customerListResult));
@ -206,11 +208,42 @@ public class PointRuleServiceImpl extends BaseServiceImpl<PointRuleDao, PointRul
log.warn("initPointRule pointRuleDefaultDao.selectList return empty"); log.warn("initPointRule pointRuleDefaultDao.selectList return empty");
throw new RenException("获取默认规则失败"); throw new RenException("获取默认规则失败");
} }
List<PointRuleEntity> insertList = new ArrayList<>();
List<String> defaultEventCodeList = ruleDefaultEntities.stream().map(PointRuleDefaultEntity :: getEventCode).distinct().collect(Collectors.toList());
List<PointRuleEntity> customerRule = baseDao.selectList(null);
if(!CollectionUtils.isEmpty(customerRule)){
Map<String,List<PointRuleEntity>> customerRuleMap =
customerRule.stream().collect(Collectors.groupingBy(PointRuleEntity :: getCustomerId));
customerRuleMap.forEach((customerId,ruleList) -> {
if(null != ruleList){
List<String> event = new LinkedList<>(defaultEventCodeList);
//取差集
event.removeAll(ruleList.stream().map(PointRuleEntity :: getEventCode).distinct().collect(Collectors.toList()));
if(!CollectionUtils.isEmpty(event)){
ruleDefaultEntities.stream().filter(rule -> event.contains(rule.getEventCode())).map(o -> {
PointRuleEntity entity = ConvertUtils.sourceToTarget(o, PointRuleEntity.class);
entity.setId("");
entity.setCreatedBy("");
entity.setCreatedTime(new Date());
entity.setUpdatedBy("");
entity.setUpdatedTime(new Date());
entity.setCustomerId(customerId);
insertList.add(entity);
return entity;
}).collect(Collectors.toList());
}
}
});
}
//从未被初始化的customerId
List<String> haveInitCustomerIds = baseDao.selectCustomerIds(); List<String> haveInitCustomerIds = baseDao.selectCustomerIds();
if (haveInitCustomerIds == null) { if (haveInitCustomerIds == null) {
haveInitCustomerIds = new ArrayList<>(); haveInitCustomerIds = new ArrayList<>();
} }
List<PointRuleEntity> insertList = new ArrayList<>();
for (PointRuleDefaultEntity defaultRule : ruleDefaultEntities) { for (PointRuleDefaultEntity defaultRule : ruleDefaultEntities) {
for (CustomerDTO customerDTO : customerDTOList) { for (CustomerDTO customerDTO : customerDTOList) {
if (haveInitCustomerIds.contains(customerDTO.getId())) { if (haveInitCustomerIds.contains(customerDTO.getId())) {
@ -218,15 +251,27 @@ public class PointRuleServiceImpl extends BaseServiceImpl<PointRuleDao, PointRul
} }
PointRuleEntity entity = ConvertUtils.sourceToTarget(defaultRule, PointRuleEntity.class); PointRuleEntity entity = ConvertUtils.sourceToTarget(defaultRule, PointRuleEntity.class);
entity.setId(""); entity.setId("");
entity.setCreatedBy(""); entity.setCreatedBy("INITIALIZATION");
entity.setCreatedTime(new Date()); entity.setCreatedTime(new Date());
entity.setUpdatedBy(""); entity.setUpdatedBy("INITIALIZATION");
entity.setUpdatedTime(new Date()); entity.setUpdatedTime(entity.getCreatedTime());
entity.setCustomerId(customerDTO.getId()); entity.setCustomerId(customerDTO.getId());
insertList.add(entity); insertList.add(entity);
} }
} }
this.insertBatch(insertList, 100); this.insertBatch(insertList, 100);
ExecutorService executor = SpringContextUtils.getBean(ExecutorService.class);
executor.execute(() -> {
insertList.forEach(o -> {
try {
insertOperateRecord(null, o,null, CommonOperateTypeEnum.ADD.getCode());
}catch (Exception e) {
log.error("异步插入积分规则操作记录,错误信息:{}", ExceptionUtils.getErrorStackTrace(e));
}
});
});
InitPointRuleResultDTO result = new InitPointRuleResultDTO(); InitPointRuleResultDTO result = new InitPointRuleResultDTO();
result.setCustomerTotal(customerDTOList.size()); result.setCustomerTotal(customerDTOList.size());
result.setInitedTotal(insertList.size()); result.setInitedTotal(insertList.size());

8
epmet-module/epmet-point/epmet-point-server/src/main/resources/bootstrap.yml

@ -118,6 +118,14 @@ pagehelper:
helper-dialect: mysql helper-dialect: mysql
reasonable: false #分页合理化配置,例如输入页码为-1,则自动转化为最小页码1 reasonable: false #分页合理化配置,例如输入页码为-1,则自动转化为最小页码1
thread:
# 线程池配置
threadPool:
corePoolSize: @thread.pool.core-pool-size@
maxPoolSize: @thread.pool.max-pool-size@
queueCapacity: @thread.pool.queue-capacity@
keepAlive: @thread.pool.keep-alive@
dingTalk: dingTalk:
robot: robot:
webHook: @dingTalk.robot.webHook@ webHook: @dingTalk.robot.webHook@

2
epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueServiceImpl.java

@ -444,7 +444,7 @@ public class IssueServiceImpl extends BaseServiceImpl<IssueDao, IssueEntity> imp
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public String audit(TokenDto token, IssueAuditionFormDTO param) { public String audit(TokenDto token, IssueAuditionFormDTO param){
if (StringUtils.isNotBlank(param.getReason())) { if (StringUtils.isNotBlank(param.getReason())) {
TextScanParamDTO textScanParamDTO = new TextScanParamDTO(); TextScanParamDTO textScanParamDTO = new TextScanParamDTO();

17
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/impl/GroupMemeberOperationServiceImpl.java

@ -36,6 +36,7 @@ import com.epmet.commons.tools.utils.SendMqMsgUtils;
import com.epmet.dto.IssueShareLinkRecordDTO; import com.epmet.dto.IssueShareLinkRecordDTO;
import com.epmet.dto.IssueShareLinkVisitRecordDTO; import com.epmet.dto.IssueShareLinkVisitRecordDTO;
import com.epmet.dto.form.GetRoleKeyListFormDTO; import com.epmet.dto.form.GetRoleKeyListFormDTO;
import com.epmet.dto.result.UserBaseInfoResultDTO;
import com.epmet.feign.EpmetUserOpenFeignClient; import com.epmet.feign.EpmetUserOpenFeignClient;
import com.epmet.feign.GovIssueOpenFeignClient; import com.epmet.feign.GovIssueOpenFeignClient;
import com.epmet.modules.group.dao.ResiGroupDao; import com.epmet.modules.group.dao.ResiGroupDao;
@ -324,8 +325,20 @@ public class GroupMemeberOperationServiceImpl extends BaseServiceImpl<GroupMemeb
pointEventMsg.setIsCommon(false); pointEventMsg.setIsCommon(false);
pointEventMsg.setTargetDate(current); pointEventMsg.setTargetDate(current);
pointEventMsg.setEventTag(mqBaseMsgDTO.getEventTag()); pointEventMsg.setEventTag(mqBaseMsgDTO.getEventTag());
pointEventMsg.setRemark("通过".concat(StringUtils.equals(param.getShareLinkType(),"topic") //pointEventMsg.setRemark("通过".concat(StringUtils.equals(param.getShareLinkType(),"topic")
? "话题":"议题").concat("分享链接邀请").concat(isNew ? "新" : "").concat("用户进组")); // ? "话题":"议题").concat("分享链接邀请").concat(isNew ? "新" : "").concat("用户进组"));
List<String> userParam = new LinkedList<>();
userParam.add(param.getUserId());
Result<List<UserBaseInfoResultDTO>> userResponse = userClient.queryUserBaseInfo(userParam);
if(userResponse.success() && !CollectionUtils.isEmpty(userResponse.getData())){
UserBaseInfoResultDTO user = userResponse.getData().get(NumConstant.ZERO);
pointEventMsg.setRemark( new StringBuilder("邀请").append("加入")
.append(user.getStreet()).append("-").append(user.getSurname())
.append(StringUtils.equals(NumConstant.ONE_STR,user.getGender()) ? "先生" :
StringUtils.equals(NumConstant.TWO_STR,user.getGender()) ? "女士" : "先生/女士")
.append(resiGroupDTO.getGroupName()).append("小组").toString());
}
pointEventMsgList.add(pointEventMsg); pointEventMsgList.add(pointEventMsg);
mqBaseMsgDTO.setMsg(JSON.toJSONString(pointEventMsgList)); mqBaseMsgDTO.setMsg(JSON.toJSONString(pointEventMsgList));

18
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/impl/ResiGroupMemberServiceImpl.java

@ -34,6 +34,8 @@ import com.epmet.commons.tools.utils.SendMqMsgUtils;
import com.epmet.constant.ReadFlagConstant; import com.epmet.constant.ReadFlagConstant;
import com.epmet.dto.IssueShareLinkVisitRecordDTO; import com.epmet.dto.IssueShareLinkVisitRecordDTO;
import com.epmet.dto.form.*; import com.epmet.dto.form.*;
import com.epmet.dto.result.UserBaseInfoResultDTO;
import com.epmet.dto.result.UserBasicInfo;
import com.epmet.dto.result.UserResiInfoResultDTO; import com.epmet.dto.result.UserResiInfoResultDTO;
import com.epmet.feign.EpmetMessageOpenFeignClient; import com.epmet.feign.EpmetMessageOpenFeignClient;
import com.epmet.feign.EpmetUserOpenFeignClient; import com.epmet.feign.EpmetUserOpenFeignClient;
@ -536,8 +538,20 @@ public class ResiGroupMemberServiceImpl extends BaseServiceImpl<ResiGroupMemberD
pointEventMsg.setIsCommon(false); pointEventMsg.setIsCommon(false);
pointEventMsg.setTargetDate(groupMemeberOperationDTO.getCreatedTime()); pointEventMsg.setTargetDate(groupMemeberOperationDTO.getCreatedTime());
pointEventMsg.setEventTag(mqBaseMsgDTO.getEventTag()); pointEventMsg.setEventTag(mqBaseMsgDTO.getEventTag());
pointEventMsg.setRemark("通过".concat(StringUtils.equals(groupMemeberOperationDTO.getEnterGroupType(),ModuleConstant.ENTER_GROUP_TYPE_TOPIC_LINK) //pointEventMsg.setRemark("通过".concat(StringUtils.equals(groupMemeberOperationDTO.getEnterGroupType(),ModuleConstant.ENTER_GROUP_TYPE_TOPIC_LINK)
? "话题":"议题").concat("分享链接邀请").concat(isNew ? "新" : "").concat("用户进组")); //? "话题":"议题").concat("分享链接邀请").concat(isNew ? "新" : "").concat("用户进组"));
List<String> userParam = new LinkedList<>();
userParam.add(groupMemeberOperationDTO.getCustomerUserId());
Result<List<UserBaseInfoResultDTO>> userResponse = userOpenFeignClient.queryUserBaseInfo(userParam);
if(userResponse.success() && !CollectionUtils.isEmpty(userResponse.getData())){
UserBaseInfoResultDTO user = userResponse.getData().get(NumConstant.ZERO);
pointEventMsg.setRemark( new StringBuilder("邀请").append("加入")
.append(user.getStreet()).append("-").append(user.getSurname())
.append(StringUtils.equals(NumConstant.ONE_STR,user.getGender()) ? "先生" :
StringUtils.equals(NumConstant.TWO_STR,user.getGender()) ? "女士" : "先生/女士")
.append(resiGroupDTO.getGroupName()).append("小组").toString());
}
pointEventMsgList.add(pointEventMsg); pointEventMsgList.add(pointEventMsg);
mqBaseMsgDTO.setMsg(JSON.toJSONString(pointEventMsgList)); mqBaseMsgDTO.setMsg(JSON.toJSONString(pointEventMsgList));

4
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java

@ -1578,6 +1578,10 @@ public class ResiTopicServiceImpl extends BaseServiceImpl<ResiTopicDao, ResiTopi
); );
resiGroupRedis.set(groupCache); resiGroupRedis.set(groupCache);
} }
//发送积分
//1.话题被转为议题 组内成员
//2.转话题为议题 组长
} }
else { else {
ValidatorUtils.validateEntity(result, FirstTopicShiftedToIssueApplicationResultDTO.AllowAuditionGroup.class); ValidatorUtils.validateEntity(result, FirstTopicShiftedToIssueApplicationResultDTO.AllowAuditionGroup.class);

Loading…
Cancel
Save