puzhibing
2025-01-11 f18a802137a7642473891f6886d44cf0c229efed
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/RedPackegeSetController.java
@@ -4,6 +4,7 @@
import com.ruoyi.account.api.model.AppUser;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.other.api.domain.RedPackegeSet;
import com.ruoyi.other.dto.RedPackegeSetDto;
import com.ruoyi.other.service.RedPackegeSetService;
import io.swagger.annotations.ApiOperation;
import org.springframework.transaction.annotation.Transactional;
@@ -47,8 +48,11 @@
     */
    @ApiOperation(value = "获取红包配置", tags = {"管理后台-活动管理-签到红包"})
    @GetMapping("/getRedPackegeSet")
    public R<RedPackegeSet> getRedPackegeSet(){
        return R.ok(redPackegeSetService.getOne(null));
    public R<RedPackegeSetDto> getRedPackegeSet(){
        List<RedPackegeSet> redPackegeSetList = redPackegeSetService.list();
        RedPackegeSetDto redPackegeSetDto = new RedPackegeSetDto();
        redPackegeSetDto.setRedPackegeSets(redPackegeSetList);
        return R.ok(redPackegeSetDto);
    }
@@ -58,19 +62,25 @@
    @ApiOperation(value = "添加红包配置", tags = {"管理后台-活动管理-签到红包"})
    @PostMapping("/addRedPackegeSet")
    @Transactional(rollbackFor = Exception.class)
    public R<Void> addRedPackegeSet(@RequestBody List<RedPackegeSet> redPackegeSets){
        for (RedPackegeSet redPackegeSet : redPackegeSets) {
            RedPackegeSet one = redPackegeSetService.getOne(null);
            if (one==null){
                redPackegeSet.setId(1);
                redPackegeSetService.save(redPackegeSet);
            }else {
                if (one.getId()==null){
                    return R.fail("参数错误");
    public R<Void> addRedPackegeSet(@RequestBody RedPackegeSetDto redPackegeSets){
        redPackegeSetService.remove(null);
        List<RedPackegeSet> redPackegeSetList = redPackegeSets.getRedPackegeSets();
        for (int i = 0; i < redPackegeSetList.size(); i++) {
            RedPackegeSet redPackegeSet = redPackegeSetList.get(i);
            LocalDateTime startTime = redPackegeSet.getStartTime();
            LocalDateTime endTime = redPackegeSet.getEndTime();
            for (int j = 0; j < redPackegeSetList.size(); j++) {
                RedPackegeSet redPackegeSet1 = redPackegeSetList.get(j);
                LocalDateTime startTime1 = redPackegeSet1.getStartTime();
                LocalDateTime endTime1 = redPackegeSet1.getEndTime();
                if(i != j && ((startTime.isAfter(startTime1) && endTime.isBefore(endTime1))
                        || (startTime.isBefore(startTime1) && endTime.isAfter(startTime1) && endTime.isBefore(endTime1))
                        || (startTime.isAfter(startTime1) && startTime.isBefore(endTime1)  && endTime.isAfter(endTime1)))){
                    return R.fail("时间有重叠,请重新配置");
                }
                redPackegeSetService.updateById(redPackegeSet);
            }
        }
        redPackegeSetService.saveBatch(redPackegeSetList);
        return R.ok();
    }