puzhibing
2025-01-10 85384328c12fcc689e1f66f4deca77168859882d
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/RedPackegeSetController.java
@@ -4,17 +4,16 @@
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.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
/**
 * <p>
@@ -49,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,18 +60,27 @@
     * 添加红包配置
     */
    @ApiOperation(value = "添加红包配置", tags = {"管理后台-活动管理-签到红包"})
    @GetMapping("/addRedPackegeSet")
    public R<Void> addRedPackegeSet(RedPackegeSet redPackegeSet){
        RedPackegeSet one = redPackegeSetService.getOne(null);
        if (one==null){
            redPackegeSet.setId(1);
            redPackegeSetService.save(redPackegeSet);
        }else {
            if (one.getId()==null){
                return R.fail("参数错误");
    @PostMapping("/addRedPackegeSet")
    @Transactional(rollbackFor = Exception.class)
    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();
    }