package com.dsh.activity.controller;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.dsh.activity.entity.BodySideAppointment;
|
import com.dsh.activity.entity.IntroduceRewards;
|
import com.dsh.activity.feignclient.model.IntrduceOfUserRequest;
|
import com.dsh.activity.feignclient.model.PurchaseRecordVo;
|
import com.dsh.activity.feignclient.other.model.Store;
|
import com.dsh.activity.model.*;
|
import com.dsh.activity.service.IntroduceRewardsService;
|
import com.dsh.activity.service.IntroduceUserService;
|
import io.swagger.annotations.Api;
|
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.web.bind.annotation.*;
|
|
import java.text.Format;
|
import java.text.SimpleDateFormat;
|
import java.util.ArrayList;
|
import java.util.Date;
|
import java.util.List;
|
import java.util.stream.Collectors;
|
|
@Api
|
@CrossOrigin
|
@RestController
|
@RequestMapping("")
|
public class IntroduceRewardsController {
|
|
@Autowired
|
private IntroduceRewardsService idrService;
|
@Autowired
|
private IntroduceUserService introduceUserService;
|
|
private final SimpleDateFormat mat = new SimpleDateFormat("MM-dd HH:mm");
|
|
/**
|
* 获取介绍有礼-参与用户记录表
|
* @return
|
*/
|
@RequestMapping("/base/introduceUser/listAllUser")
|
public List<IntroduceUser> listAllUser(@RequestBody IntroduceUserQuery query){
|
return introduceUserService.listAll(query);
|
}
|
/**
|
* 通过id获取介绍有礼
|
* @return
|
*/
|
@RequestMapping("/base/introduce/getInfoById")
|
public IntroduceRewards getInfoById(@RequestBody Integer id){
|
return idrService.getById(id);
|
|
}
|
/**
|
* 获取介绍有礼记录表
|
* @return
|
*/
|
@RequestMapping("/base/introduce/listAll")
|
public List<IntroduceVO> listAll(@RequestBody IntroduceQuery query){
|
Date date = new Date();
|
List<IntroduceVO> introduceVOS = idrService.listAll(query);
|
for (IntroduceVO introduceVO : introduceVOS) {
|
Date startTime = introduceVO.getStartTime();
|
Date endTime = introduceVO.getEndTime();
|
if (date.after(startTime) && date.before(endTime)) {
|
introduceVO.setActivityState(1);
|
} else if (date.before(startTime)) {
|
introduceVO.setActivityState(2);
|
} else if (date.after(endTime)) {
|
introduceVO.setActivityState(3);
|
}
|
}
|
return introduceVOS;
|
}
|
/**
|
* 增加/修改介绍有礼记录
|
* @return
|
*/
|
@RequestMapping("/base/introduce/addIntroduce")
|
public Object addIntroduce(@RequestBody IntroduceRewards introduceRewards){
|
|
if (introduceRewards.getId()!=null){
|
return idrService.updateById(introduceRewards);
|
}else {
|
introduceRewards.setInsertTime(new Date());
|
return idrService.save(introduceRewards);
|
}
|
}
|
|
/**
|
* 上/下架介绍有礼 type = 1上架 type=2下架
|
* @return
|
*/
|
@RequestMapping("/base/introduce/changeState")
|
public Object changeState(@RequestBody IntroduceChangeStateDTO dto){
|
return idrService.changeState(dto);
|
}
|
|
@PostMapping("/base/introduce/useOfRewards")
|
public List<PurchaseRecordVo> queryAppUsersofIntroduce(@RequestBody IntrduceOfUserRequest request){
|
List<PurchaseRecordVo> recordVos = new ArrayList<>();
|
List<IntroduceRewards> list = idrService.list(new QueryWrapper<IntroduceRewards>()
|
.ge("startTime",request.getStartTime())
|
.lt("endTime",request.getEndTime()));
|
if (request.getUserIds().size() > 0 && list.size() > 0){
|
IntroduceRewards introduceRewards = list.get(0);
|
request.getUserIds().forEach( userId -> {
|
PurchaseRecordVo recordVo = new PurchaseRecordVo();
|
recordVo.setPurchaseAmount("+"+introduceRewards.getGiveClass());
|
recordVo.setPurchaseType("介绍有礼");
|
recordVos.add(recordVo);
|
} );
|
}
|
return recordVos;
|
}
|
|
@PostMapping("/base/introduce/getGiftList")
|
public Integer getGiftList(@RequestBody String cityCode){
|
List<IntroduceRewards> list = idrService.list(new LambdaQueryWrapper<IntroduceRewards>().eq(IntroduceRewards::getCityCode,cityCode).le(IntroduceRewards::getStartTime,new Date()).ge(IntroduceRewards::getEndTime,new Date()));
|
int sum = list.stream().mapToInt(IntroduceRewards::getGiveClass).sum();
|
return sum;
|
}
|
|
}
|