定时器,欢迎语

dev_0531
zhenghuang 5 years ago
parent 809b0b442d
commit c5f052ed43

@ -1,15 +1,28 @@
package com.kiisoo.ic.activity.scheduleds;
import com.kiisoo.ic.activity.service.*;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
@Component
@Slf4j
public class ActivityExpire {
@Autowired
IPmnActivityInstanceService pmnActivityInstanceService;
@Scheduled(cron = "0 0 0 * * ?")
public void scheduled(){
//TODO 活动实例/实例关联信息/活动码失效
log.info("执行活动失效: {}",System.currentTimeMillis());
log.info("执行活动状态: {}",System.currentTimeMillis());
/**
*
*/
pmnActivityInstanceService.scanValidAndSet();
/**
*
*/
pmnActivityInstanceService.scanInvalidAndSer();
}
}

@ -31,4 +31,7 @@ public interface IPmnActivityInstanceService extends IService<PmnActivityInstanc
boolean removeWelcome(Long id);
List<ActivityInstanceVO> listByStoreId(Long storeId, Integer status, Date beginTime, Date endTime);
void scanValidAndSet();
void scanInvalidAndSer();
}

@ -23,6 +23,7 @@ import com.kiisoo.ic.system.entity.PrivilageRoleDO;
import com.kiisoo.ic.system.enums.RoleEnum;
import com.kiisoo.ic.system.mapper.PrivilageAccountDOMapper;
import com.kiisoo.ic.system.mapper.PrivilageRoleDOMapper;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
@ -43,6 +44,7 @@ import java.util.stream.Collectors;
* @since 2020-05-19
*/
@Service
@Slf4j
public class PmnActivityInstanceServiceImpl extends ServiceImpl<PmnActivityInstanceDOMapper, PmnActivityInstance> implements IPmnActivityInstanceService {
@Autowired
private IPmnActivityInstanceService pmnActivityInstanceService;
@ -89,6 +91,8 @@ public class PmnActivityInstanceServiceImpl extends ServiceImpl<PmnActivityInsta
@Autowired
private IPmnActivityPromotionParamService pmnActivityPromotionParamService;
@Autowired
private IPmnPromotionSrcService pmnPromotionSrcService;
@Transactional
public boolean saveVO(ActivityInstanceVO activityInstanceVO, boolean isTerminate) {
@ -363,4 +367,53 @@ public class PmnActivityInstanceServiceImpl extends ServiceImpl<PmnActivityInsta
boolean saveStore = pmnActivityStoreRelationService.saveBatch(saveStores);
return saveStore && saveSchedule && saveCase && saveInstance && saveActivityPromotion;
}
@Transactional
@Override
public void scanValidAndSet() {
Date now = new Date();
List<PmnActivityInstance> starts = pmnActivityInstanceService.list(Wrappers.<PmnActivityInstance>lambdaQuery().eq(PmnActivityInstance::getStatus, 1).le(PmnActivityInstance::getBeginTime, now).ge(PmnActivityInstance::getEndTime, now).select(PmnActivityInstance::getId));
if(starts.size() > 0) {
starts.stream().forEach(item -> item.setStatus(2L));
Set<Long> startInstances = starts.stream().map(PmnActivityInstance::getId).collect(Collectors.toSet());
pmnActivityInstanceService.updateBatchById(starts);
PmnPromotionSrc startPromotionSrc = new PmnPromotionSrc();
startPromotionSrc.setStatus(1L);
PmnActivityInstanceConfig startConfig = new PmnActivityInstanceConfig();
startConfig.setStatus(1L);
PmnActivityStoreRelation startStoreRelation = new PmnActivityStoreRelation();
startStoreRelation.setStatus(1);
PmnActivityPromotionCase startCase = new PmnActivityPromotionCase();
startCase.setStatus(1L);
pmnPromotionSrcService.update(startPromotionSrc, Wrappers.<PmnPromotionSrc>lambdaQuery().in(PmnPromotionSrc::getInstanceId, startInstances).ne(PmnPromotionSrc::getStatus, 1));
pmnActivityInstanceConfigService.update(startConfig, Wrappers.<PmnActivityInstanceConfig>lambdaQuery().in(PmnActivityInstanceConfig::getInstanceId, startInstances).ne(PmnActivityInstanceConfig::getStatus, 1));
pmnActivityStoreRelationService.update(startStoreRelation, Wrappers.<PmnActivityStoreRelation>lambdaQuery().in(PmnActivityStoreRelation::getInstanceId, startInstances).ne(PmnActivityStoreRelation::getStatus, 1));
pmnActivityPromotionCaseService.update(startCase, Wrappers.<PmnActivityPromotionCase>lambdaQuery().in(PmnActivityPromotionCase::getInstanceId, startInstances).ne(PmnActivityPromotionCase::getStatus, 1));
log.info("starts: {}", starts);
}
}
@Transactional
@Override
public void scanInvalidAndSer() {
Date now = new Date();
List<PmnActivityInstance> ends = pmnActivityInstanceService.list(Wrappers.<PmnActivityInstance>lambdaQuery().ne(PmnActivityInstance::getStatus, 3).ne(PmnActivityInstance::getStatus, 4).le(PmnActivityInstance::getEndTime, now).select(PmnActivityInstance::getId));
if(ends.size() > 0) {
ends.stream().forEach(item -> item.setStatus(3L));
Set<Long> endInstances = ends.stream().map(PmnActivityInstance::getId).collect(Collectors.toSet());
pmnActivityInstanceService.updateBatchById(ends);
PmnPromotionSrc endPromotionSrc = new PmnPromotionSrc();
endPromotionSrc.setStatus(2L);
PmnActivityInstanceConfig endConfig = new PmnActivityInstanceConfig();
endConfig.setStatus(2L);
PmnActivityStoreRelation endStoreRelation = new PmnActivityStoreRelation();
endStoreRelation.setStatus(2);
PmnActivityPromotionCase endCase = new PmnActivityPromotionCase();
endCase.setStatus(2L);
pmnPromotionSrcService.update(endPromotionSrc, Wrappers.<PmnPromotionSrc>lambdaQuery().in(PmnPromotionSrc::getInstanceId, endInstances).ne(PmnPromotionSrc::getStatus, 2));
pmnActivityInstanceConfigService.update(endConfig, Wrappers.<PmnActivityInstanceConfig>lambdaQuery().in(PmnActivityInstanceConfig::getInstanceId, endInstances).ne(PmnActivityInstanceConfig::getStatus, 2));
pmnActivityStoreRelationService.update(endStoreRelation, Wrappers.<PmnActivityStoreRelation>lambdaQuery().in(PmnActivityStoreRelation::getInstanceId, endInstances).ne(PmnActivityStoreRelation::getStatus, 2));
pmnActivityPromotionCaseService.update(endCase, Wrappers.<PmnActivityPromotionCase>lambdaQuery().in(PmnActivityPromotionCase::getInstanceId, endInstances).ne(PmnActivityPromotionCase::getStatus, 2));
}
}
}

@ -1,20 +1,27 @@
package test;
import com.kiisoo.ic.activity.entity.PmnActivityStoreRelation;
import com.kiisoo.ic.activity.service.IPmnActivityStoreRelationService;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.kiisoo.ic.activity.entity.*;
import com.kiisoo.ic.activity.service.*;
import com.kiisoo.ic.app.IcApplication;
import com.kiisoo.ic.generalize.entity.PrivilageOrganizational;
import com.kiisoo.ic.store.mapper.PoiStoreDOMapper;
import com.kiisoo.ic.wx.service.AddWXService;
import lombok.extern.slf4j.Slf4j;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
@RunWith(SpringRunner.class)
@SpringBootTest(classes = IcApplication.class)
@Slf4j
public class Test {
@Autowired
@ -23,9 +30,17 @@ public class Test {
PoiStoreDOMapper poiStoreDOMapper;
@Autowired
IPmnActivityStoreRelationService pmnActivityStoreRelationService;
@Autowired
IPmnPromotionSrcService pmnPromotionSrcService;
@Autowired
IPmnActivityInstanceService pmnActivityInstanceService;
@Autowired
IPmnActivityInstanceConfigService pmnActivityInstanceConfigService;
@Autowired
IPmnActivityPromotionCaseService pmnActivityPromotionCaseService;
@org.junit.Test
public void fillStoreCompany(){
public void fillStoreCompany() {
List<PmnActivityStoreRelation> relations = pmnActivityStoreRelationService.list();
relations.stream().forEach(item -> {
PrivilageOrganizational org = poiStoreDOMapper.findStoreCompany(item.getStoreId());
@ -35,7 +50,52 @@ public class Test {
}
@org.junit.Test
public void te(){
addWXService.addWX("a","b");
@Transactional
public void activityStatusTest() {
/**
*
*/
Date now = new Date();
List<PmnActivityInstance> starts = pmnActivityInstanceService.list(Wrappers.<PmnActivityInstance>lambdaQuery().eq(PmnActivityInstance::getStatus, 1).le(PmnActivityInstance::getBeginTime, now).ge(PmnActivityInstance::getEndTime, now).select(PmnActivityInstance::getId));
if(starts.size() > 0) {
starts.stream().forEach(item -> item.setStatus(2L));
Set<Long> startInstances = starts.stream().map(PmnActivityInstance::getId).collect(Collectors.toSet());
pmnActivityInstanceService.updateBatchById(starts);
PmnPromotionSrc startPromotionSrc = new PmnPromotionSrc();
startPromotionSrc.setStatus(1L);
PmnActivityInstanceConfig startConfig = new PmnActivityInstanceConfig();
startConfig.setStatus(1L);
PmnActivityStoreRelation startStoreRelation = new PmnActivityStoreRelation();
startStoreRelation.setStatus(1);
PmnActivityPromotionCase startCase = new PmnActivityPromotionCase();
startCase.setStatus(1L);
pmnPromotionSrcService.update(startPromotionSrc, Wrappers.<PmnPromotionSrc>lambdaQuery().in(PmnPromotionSrc::getInstanceId, startInstances).ne(PmnPromotionSrc::getStatus, 1));
pmnActivityInstanceConfigService.update(startConfig, Wrappers.<PmnActivityInstanceConfig>lambdaQuery().in(PmnActivityInstanceConfig::getInstanceId, startInstances).ne(PmnActivityInstanceConfig::getStatus, 1));
pmnActivityStoreRelationService.update(startStoreRelation, Wrappers.<PmnActivityStoreRelation>lambdaQuery().in(PmnActivityStoreRelation::getInstanceId, startInstances).ne(PmnActivityStoreRelation::getStatus, 1));
pmnActivityPromotionCaseService.update(startCase, Wrappers.<PmnActivityPromotionCase>lambdaQuery().in(PmnActivityPromotionCase::getInstanceId, startInstances).ne(PmnActivityPromotionCase::getStatus, 1));
log.info("starts: {}", starts);
}
/**
*
*/
List<PmnActivityInstance> ends = pmnActivityInstanceService.list(Wrappers.<PmnActivityInstance>lambdaQuery().ne(PmnActivityInstance::getStatus, 3).ne(PmnActivityInstance::getStatus, 4).le(PmnActivityInstance::getEndTime, now).select(PmnActivityInstance::getId));
if(ends.size() > 0) {
ends.stream().forEach(item -> item.setStatus(3L));
Set<Long> endInstances = ends.stream().map(PmnActivityInstance::getId).collect(Collectors.toSet());
pmnActivityInstanceService.updateBatchById(ends);
PmnPromotionSrc endPromotionSrc = new PmnPromotionSrc();
endPromotionSrc.setStatus(2L);
PmnActivityInstanceConfig endConfig = new PmnActivityInstanceConfig();
endConfig.setStatus(2L);
PmnActivityStoreRelation endStoreRelation = new PmnActivityStoreRelation();
endStoreRelation.setStatus(2);
PmnActivityPromotionCase endCase = new PmnActivityPromotionCase();
endCase.setStatus(2L);
pmnPromotionSrcService.update(endPromotionSrc, Wrappers.<PmnPromotionSrc>lambdaQuery().in(PmnPromotionSrc::getInstanceId, endInstances).ne(PmnPromotionSrc::getStatus, 2));
pmnActivityInstanceConfigService.update(endConfig, Wrappers.<PmnActivityInstanceConfig>lambdaQuery().in(PmnActivityInstanceConfig::getInstanceId, endInstances).ne(PmnActivityInstanceConfig::getStatus, 2));
pmnActivityStoreRelationService.update(endStoreRelation, Wrappers.<PmnActivityStoreRelation>lambdaQuery().in(PmnActivityStoreRelation::getInstanceId, endInstances).ne(PmnActivityStoreRelation::getStatus, 2));
pmnActivityPromotionCaseService.update(endCase, Wrappers.<PmnActivityPromotionCase>lambdaQuery().in(PmnActivityPromotionCase::getInstanceId, endInstances).ne(PmnActivityPromotionCase::getStatus, 2));
}
log.info("ends: {}", ends);
}
}

Loading…
Cancel
Save