11
This commit is contained in:
@@ -14,4 +14,6 @@ import java.util.List;
|
||||
public interface PrizeOnlineService extends IService<PrizeOnline> {
|
||||
|
||||
List<PrizeOnline> selectPrizeOnlineList(Integer gender);
|
||||
|
||||
void reset(Integer gender, List<PrizeOnline> bo);
|
||||
}
|
||||
|
||||
@@ -1,14 +1,19 @@
|
||||
package com.ruoyi.cai.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.ruoyi.cai.domain.PrizeOnline;
|
||||
import com.ruoyi.cai.enums.prize.PrizeTypeEnum;
|
||||
import com.ruoyi.cai.mapper.PrizeOnlineMapper;
|
||||
import com.ruoyi.cai.service.PrizeOnlineService;
|
||||
import com.ruoyi.common.exception.ServiceException;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 已发布奖品Service业务层处理
|
||||
@@ -22,7 +27,40 @@ public class PrizeOnlineServiceImpl extends ServiceImpl<PrizeOnlineMapper,PrizeO
|
||||
|
||||
@Override
|
||||
public List<PrizeOnline> selectPrizeOnlineList(Integer gender){
|
||||
return new ArrayList<>();
|
||||
return this.list(Wrappers.lambdaQuery(PrizeOnline.class).eq(PrizeOnline::getGender, gender));
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void reset(Integer gender, List<PrizeOnline> bo) {
|
||||
if(bo.size() != 9){
|
||||
throw new ServiceException("奖品必须为9个");
|
||||
}
|
||||
boolean hasNone = false;
|
||||
List<Long> prizeIds = new ArrayList<>();
|
||||
for (PrizeOnline prizeOnline : bo) {
|
||||
prizeOnline.setGender(gender);
|
||||
if(PrizeTypeEnum.NONE.getCode().equals(prizeOnline.getPrizeType())){
|
||||
hasNone = true;
|
||||
}
|
||||
if(prizeOnline.getId() != null){
|
||||
prizeIds.add(prizeOnline.getId());
|
||||
}
|
||||
}
|
||||
if(!hasNone){
|
||||
throw new ServiceException("奖品必须包含谢谢惠顾");
|
||||
}
|
||||
List<PrizeOnline> dbList = this.selectPrizeOnlineList(gender);
|
||||
List<Long> dbIds = dbList.stream().map(PrizeOnline::getId).collect(Collectors.toList());
|
||||
for (PrizeOnline prizeOnline : bo) {
|
||||
if(prizeOnline.getId() != null){
|
||||
this.updateById(prizeOnline);
|
||||
continue;
|
||||
}
|
||||
this.save(prizeOnline);
|
||||
}
|
||||
dbIds.removeAll(prizeIds);
|
||||
this.removeByIds(dbIds);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user