|
|
|
@ -26,6 +26,7 @@ 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.omg.SendingContext.RunTime;
|
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
|
import org.springframework.context.ApplicationContext;
|
|
|
|
|
import org.springframework.scheduling.annotation.Async;
|
|
|
|
@ -101,63 +102,68 @@ public class PmnActivityInstanceServiceImpl extends ServiceImpl<PmnActivityInsta
|
|
|
|
|
// TODO 活动类型就是从活动池的参数中进行多选的结果,从 activity_promotion_params 存储到 activity_instance_config
|
|
|
|
|
// TODO 店铺列表存储到 activity_store_relation
|
|
|
|
|
// TODO 一对多的存储,都是有ID时修改,无ID时新增
|
|
|
|
|
PmnActivityInstance pmnActivityInstance = new PmnActivityInstance();
|
|
|
|
|
if (activityInstanceVO.getId() != null) {
|
|
|
|
|
pmnActivityInstance = getById(activityInstanceVO.getId());
|
|
|
|
|
}
|
|
|
|
|
pmnActivityInstance.setId(activityInstanceVO.getId());
|
|
|
|
|
pmnActivityInstance.setBeginTime(activityInstanceVO.getBeginTime());
|
|
|
|
|
if (activityInstanceVO.getId() == null) {
|
|
|
|
|
pmnActivityInstance.setCreateTime(new Date());
|
|
|
|
|
}
|
|
|
|
|
pmnActivityInstance.setEndTime(activityInstanceVO.getEndTime());
|
|
|
|
|
pmnActivityInstance.setContent("");
|
|
|
|
|
pmnActivityInstance.setCategoryCode(activityInstanceVO.getCategoryCode());
|
|
|
|
|
pmnActivityInstance.setName(activityInstanceVO.getName());
|
|
|
|
|
pmnActivityInstance.setIsAddition(2L);
|
|
|
|
|
if (pmnActivityInstance.getStatus() == null) {
|
|
|
|
|
if (pmnActivityInstance.getBeginTime().compareTo(new Date()) == -1) {
|
|
|
|
|
pmnActivityInstance.setStatus(2L);
|
|
|
|
|
} else {
|
|
|
|
|
pmnActivityInstance.setStatus(1L);
|
|
|
|
|
try {
|
|
|
|
|
PmnActivityInstance pmnActivityInstance = new PmnActivityInstance();
|
|
|
|
|
if (activityInstanceVO.getId() != null) {
|
|
|
|
|
pmnActivityInstance = getById(activityInstanceVO.getId());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (isTerminate) {
|
|
|
|
|
pmnActivityInstance.setStatus(3L);
|
|
|
|
|
}
|
|
|
|
|
pmnActivityInstance.setScheduleId(activityInstanceVO.getScheduleId());
|
|
|
|
|
pmnActivityInstance.setUpdateTime(new Date());
|
|
|
|
|
pmnActivityInstance.setCode("");
|
|
|
|
|
boolean saveInstance = pmnActivityInstanceService.saveOrUpdate(pmnActivityInstance);
|
|
|
|
|
pmnActivityInstance.setId(activityInstanceVO.getId());
|
|
|
|
|
pmnActivityInstance.setBeginTime(activityInstanceVO.getBeginTime());
|
|
|
|
|
if (activityInstanceVO.getId() == null) {
|
|
|
|
|
pmnActivityInstance.setCreateTime(new Date());
|
|
|
|
|
}
|
|
|
|
|
pmnActivityInstance.setEndTime(activityInstanceVO.getEndTime());
|
|
|
|
|
pmnActivityInstance.setContent("");
|
|
|
|
|
pmnActivityInstance.setCategoryCode(activityInstanceVO.getCategoryCode());
|
|
|
|
|
pmnActivityInstance.setName(activityInstanceVO.getName());
|
|
|
|
|
pmnActivityInstance.setIsAddition(2L);
|
|
|
|
|
if (pmnActivityInstance.getStatus() == null) {
|
|
|
|
|
if (pmnActivityInstance.getBeginTime().compareTo(new Date()) == -1) {
|
|
|
|
|
pmnActivityInstance.setStatus(2L);
|
|
|
|
|
} else {
|
|
|
|
|
pmnActivityInstance.setStatus(1L);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (isTerminate) {
|
|
|
|
|
pmnActivityInstance.setStatus(3L);
|
|
|
|
|
}
|
|
|
|
|
pmnActivityInstance.setScheduleId(activityInstanceVO.getScheduleId());
|
|
|
|
|
pmnActivityInstance.setUpdateTime(new Date());
|
|
|
|
|
pmnActivityInstance.setCode("");
|
|
|
|
|
boolean saveInstance = pmnActivityInstanceService.saveOrUpdate(pmnActivityInstance);
|
|
|
|
|
// String code = pmn_[instance_id]_[type]_[promoter_id];
|
|
|
|
|
PmnActivityPromotionCase pmnActivityPromotionCase = new PmnActivityPromotionCase();
|
|
|
|
|
pmnActivityPromotionCase.setCreateTime(new Date());
|
|
|
|
|
pmnActivityPromotionCase.setInstanceId(pmnActivityInstance.getId());
|
|
|
|
|
pmnActivityPromotionCase.setStatus(pmnActivityInstance.getStatus());
|
|
|
|
|
pmnActivityPromotionCase.setUpdateTime(new Date());
|
|
|
|
|
pmnActivityPromotionCase.setTag("");
|
|
|
|
|
PmnActivityPromotionCase oldPmnActivityPromotionCase = pmnActivityPromotionCaseService.getOne(Wrappers.<PmnActivityPromotionCase>lambdaQuery().eq(PmnActivityPromotionCase::getInstanceId, pmnActivityInstance.getId()));
|
|
|
|
|
if (oldPmnActivityPromotionCase != null) {
|
|
|
|
|
pmnActivityPromotionCase.setCreateTime(null);
|
|
|
|
|
pmnActivityPromotionCase.setId(oldPmnActivityPromotionCase.getId());
|
|
|
|
|
}
|
|
|
|
|
boolean saveCase = pmnActivityPromotionCaseService.saveOrUpdate(pmnActivityPromotionCase);
|
|
|
|
|
for (PmnActivityPromotionParam param : activityInstanceVO.getParams()) {
|
|
|
|
|
PmnActivityInstanceConfig config = new PmnActivityInstanceConfig();
|
|
|
|
|
config.setCaseId(pmnActivityPromotionCase.getId());
|
|
|
|
|
config.setCreateTime(new Date());
|
|
|
|
|
config.setInstanceId(pmnActivityInstance.getId());
|
|
|
|
|
config.setKey(param.getName());
|
|
|
|
|
config.setVal(param.getKey());
|
|
|
|
|
config.setStatus(pmnActivityInstance.getStatus());
|
|
|
|
|
config.setUpdateTime(new Date());
|
|
|
|
|
config.setParamId(param.getId());
|
|
|
|
|
config.setName(param.getName());
|
|
|
|
|
config.setType(Long.valueOf(param.getType()));
|
|
|
|
|
pmnActivityInstanceConfigService.saveOrUpdate(config, Wrappers.<PmnActivityInstanceConfig>lambdaQuery().eq(PmnActivityInstanceConfig::getInstanceId, pmnActivityInstance.getId()).eq(PmnActivityInstanceConfig::getParamId, param.getId()));
|
|
|
|
|
PmnActivityPromotionCase pmnActivityPromotionCase = new PmnActivityPromotionCase();
|
|
|
|
|
pmnActivityPromotionCase.setCreateTime(new Date());
|
|
|
|
|
pmnActivityPromotionCase.setInstanceId(pmnActivityInstance.getId());
|
|
|
|
|
pmnActivityPromotionCase.setStatus(pmnActivityInstance.getStatus());
|
|
|
|
|
pmnActivityPromotionCase.setUpdateTime(new Date());
|
|
|
|
|
pmnActivityPromotionCase.setTag("");
|
|
|
|
|
PmnActivityPromotionCase oldPmnActivityPromotionCase = pmnActivityPromotionCaseService.getOne(Wrappers.<PmnActivityPromotionCase>lambdaQuery().eq(PmnActivityPromotionCase::getInstanceId, pmnActivityInstance.getId()).last("limit 0,1"));
|
|
|
|
|
if (oldPmnActivityPromotionCase != null) {
|
|
|
|
|
pmnActivityPromotionCase.setCreateTime(null);
|
|
|
|
|
pmnActivityPromotionCase.setId(oldPmnActivityPromotionCase.getId());
|
|
|
|
|
}
|
|
|
|
|
boolean saveCase = pmnActivityPromotionCaseService.saveOrUpdate(pmnActivityPromotionCase);
|
|
|
|
|
for (PmnActivityPromotionParam param : activityInstanceVO.getParams()) {
|
|
|
|
|
PmnActivityInstanceConfig config = new PmnActivityInstanceConfig();
|
|
|
|
|
config.setCaseId(pmnActivityPromotionCase.getId());
|
|
|
|
|
config.setCreateTime(new Date());
|
|
|
|
|
config.setInstanceId(pmnActivityInstance.getId());
|
|
|
|
|
config.setKey(param.getName());
|
|
|
|
|
config.setVal(param.getKey());
|
|
|
|
|
config.setStatus(pmnActivityInstance.getStatus());
|
|
|
|
|
config.setUpdateTime(new Date());
|
|
|
|
|
config.setParamId(param.getId());
|
|
|
|
|
config.setName(param.getName());
|
|
|
|
|
config.setType(Long.valueOf(param.getType()));
|
|
|
|
|
pmnActivityInstanceConfigService.saveOrUpdate(config, Wrappers.<PmnActivityInstanceConfig>lambdaQuery().eq(PmnActivityInstanceConfig::getInstanceId, pmnActivityInstance.getId()).eq(PmnActivityInstanceConfig::getParamId, param.getId()));
|
|
|
|
|
}
|
|
|
|
|
applicationContext.publishEvent(new ActivityInstanceCreatedEvent(this, pmnActivityInstance, activityInstanceVO));
|
|
|
|
|
return saveInstance && saveCase;
|
|
|
|
|
}catch (Exception e) {
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
throw e;
|
|
|
|
|
}
|
|
|
|
|
applicationContext.publishEvent(new ActivityInstanceCreatedEvent(this, pmnActivityInstance, activityInstanceVO));
|
|
|
|
|
return saveInstance && saveCase;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|