|
|
|
package com.qs.serve.task.controller;
|
|
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
|
import com.qs.serve.common.model.dto.R;
|
|
|
|
import com.qs.serve.common.util.AuthContextUtils;
|
|
|
|
import com.qs.serve.common.util.CollectionUtil;
|
|
|
|
import com.qs.serve.modules.bir.entity.BirBaseActivity;
|
|
|
|
import com.qs.serve.modules.bir.service.BirActivityCenterGoodsService;
|
|
|
|
import com.qs.serve.modules.bir.service.BirBaseActivityService;
|
|
|
|
import com.qs.serve.modules.seeyon.service.impl.SeeYonRequestBaseService;
|
|
|
|
import com.qs.serve.modules.tbs.common.TbsActivityState;
|
|
|
|
import com.qs.serve.modules.tbs.common.TbsSeeYonConst;
|
|
|
|
import com.qs.serve.modules.tbs.entity.TbsActivity;
|
|
|
|
import com.qs.serve.modules.tbs.entity.TbsActivityTemplate;
|
|
|
|
import com.qs.serve.modules.tbs.service.TbsActivityService;
|
|
|
|
import com.qs.serve.modules.tbs.service.TbsActivityTemplateService;
|
|
|
|
import lombok.AllArgsConstructor;
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
|
|
|
import org.springframework.web.bind.annotation.GetMapping;
|
|
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
|
import org.springframework.web.bind.annotation.RestController;
|
|
|
|
|
|
|
|
import java.time.LocalDate;
|
|
|
|
import java.time.LocalDateTime;
|
|
|
|
import java.util.List;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 【同步】 活动相关
|
|
|
|
* @author YenHex
|
|
|
|
* @since 2023/6/27
|
|
|
|
*/
|
|
|
|
@Slf4j
|
|
|
|
@AllArgsConstructor
|
|
|
|
@RestController
|
|
|
|
@RequestMapping("/task/activity")
|
|
|
|
//@ConditionalOnProperty(value = "project.task", havingValue = "true")
|
|
|
|
public class TaskActivityController {
|
|
|
|
|
|
|
|
private final TbsActivityService activityService;
|
|
|
|
private final TbsActivityTemplateService activityTemplateService;
|
|
|
|
private final BirBaseActivityService birBaseActivityService;
|
|
|
|
private final BirActivityCenterGoodsService birActivityCenterGoodsService;
|
|
|
|
private final SeeYonRequestBaseService seeYonRequestBaseService;
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 同步活动底表ActivityCenterGoods
|
|
|
|
* @param month
|
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
@GetMapping("syncActivityCenterGoods")
|
|
|
|
public R taskBir(Integer month){
|
|
|
|
Integer year = 2023;
|
|
|
|
if(month == null){
|
|
|
|
for (int i = 1;i < 13; i++) {
|
|
|
|
birActivityCenterGoodsService.buildReport(year,i);
|
|
|
|
}
|
|
|
|
}else {
|
|
|
|
birActivityCenterGoodsService.buildReport(year,month);
|
|
|
|
}
|
|
|
|
return R.ok();
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 同步ERP的发货单,用于计算活动费率
|
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
@GetMapping("syncDispatch")
|
|
|
|
public R task0(){
|
|
|
|
seeYonRequestBaseService.getBase(TbsSeeYonConst.TASK_SYNC_DISPATCH,"同步ERP的发货单");
|
|
|
|
return R.ok();
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 同步费率底表记录
|
|
|
|
* @param month 月份,不指定当前月
|
|
|
|
* @param year 年份,不指定当前年
|
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
@GetMapping("birActivity")
|
|
|
|
public R task1(Integer year,Integer month){
|
|
|
|
//移除当年所有
|
|
|
|
if(year==null){
|
|
|
|
year = LocalDate.now().getYear();
|
|
|
|
}
|
|
|
|
if(month==null){
|
|
|
|
month = LocalDate.now().getMonthValue();
|
|
|
|
syncYearMonthActivity(month, year);
|
|
|
|
}else {
|
|
|
|
syncYearMonthActivity(month, year);
|
|
|
|
}
|
|
|
|
return R.ok();
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 每日更新过期的活动,过期则进行冻结
|
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
@GetMapping("lockActivity")
|
|
|
|
public R task2(){
|
|
|
|
LambdaQueryWrapper<TbsActivity> lqw = new LambdaQueryWrapper<>();
|
|
|
|
lqw.le(TbsActivity::getPreEndDate, LocalDate.now());
|
|
|
|
lqw.eq(TbsActivity::getReopenFlag,0);
|
|
|
|
TbsActivity param = new TbsActivity();
|
|
|
|
param.setActivityState(TbsActivityState.STATE_1_Baning);
|
|
|
|
activityService.update(param,lqw);
|
|
|
|
return R.ok();
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 启用和停用模板规则
|
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
@GetMapping("startAndStopActivityTemplates")
|
|
|
|
public R task3(){
|
|
|
|
LocalDateTime nowTime = LocalDateTime.now();
|
|
|
|
LambdaQueryWrapper<TbsActivityTemplate> lqw = new LambdaQueryWrapper<>();
|
|
|
|
lqw.select(TbsActivityTemplate::getId);
|
|
|
|
lqw.ge(TbsActivityTemplate::getStartTime,nowTime.with(LocalDateTime.MIN));
|
|
|
|
lqw.le(TbsActivityTemplate::getStartTime,nowTime.with(LocalDateTime.MAX));
|
|
|
|
lqw.eq(TbsActivityTemplate::getTemplateState,0);
|
|
|
|
List<TbsActivityTemplate> preStartList = activityTemplateService.list(lqw);
|
|
|
|
if(CollectionUtil.isNotEmpty(preStartList)){
|
|
|
|
preStartList.forEach(a->a.setTemplateState(1));
|
|
|
|
activityTemplateService.updateBatchById(preStartList);
|
|
|
|
}
|
|
|
|
LambdaQueryWrapper<TbsActivityTemplate> lqw2 = new LambdaQueryWrapper<>();
|
|
|
|
lqw2.select(TbsActivityTemplate::getId);
|
|
|
|
lqw2.ge(TbsActivityTemplate::getEndTime,nowTime.with(LocalDateTime.MIN));
|
|
|
|
lqw2.le(TbsActivityTemplate::getEndTime,nowTime.with(LocalDateTime.MAX));
|
|
|
|
lqw2.eq(TbsActivityTemplate::getTemplateState,1);
|
|
|
|
List<TbsActivityTemplate> preCloseList = activityTemplateService.list(lqw2);
|
|
|
|
if(CollectionUtil.isNotEmpty(preCloseList)){
|
|
|
|
preCloseList.forEach(a->a.setTemplateState(0));
|
|
|
|
activityTemplateService.updateBatchById(preCloseList);
|
|
|
|
}
|
|
|
|
return R.ok();
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void syncYearMonthActivity(Integer month, Integer year) {
|
|
|
|
|
|
|
|
birBaseActivityService.buildReport(year, month);
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|