package cn.lili.modules.lmk.service.impl;
|
|
import cn.lili.common.utils.StringUtils;
|
import cn.lili.modules.lmk.domain.vo.ActivityRefPrizeInfoVO;
|
import cn.lili.utils.COSUtil;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import cn.lili.modules.lmk.domain.entity.ActivityRefPrize;
|
import cn.lili.modules.lmk.mapper.ActivityRefPrizeMapper;
|
import cn.lili.modules.lmk.service.ActivityRefPrizeService;
|
import cn.lili.base.Result;
|
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import cn.lili.modules.lmk.domain.form.ActivityRefPrizeForm;
|
import cn.lili.modules.lmk.domain.vo.ActivityRefPrizeVO;
|
import cn.lili.modules.lmk.domain.query.ActivityRefPrizeQuery;
|
import org.springframework.stereotype.Service;
|
import lombok.RequiredArgsConstructor;
|
import cn.lili.utils.PageUtil;
|
import org.springframework.beans.BeanUtils;
|
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.util.Assert;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
import java.util.stream.Collectors;
|
|
/**
|
* 活动奖品关联表 服务实现类
|
*
|
* @author peng
|
* @since 2025-08-14
|
*/
|
@Service
|
@RequiredArgsConstructor
|
@Transactional
|
public class ActivityRefPrizeServiceImpl extends ServiceImpl<ActivityRefPrizeMapper, ActivityRefPrize> implements ActivityRefPrizeService {
|
|
private final ActivityRefPrizeMapper activityRefPrizeMapper;
|
private final COSUtil cosUtil;
|
@Override
|
public Result getActivityRefPrizeByActivityId(String prizeActivityId){
|
//以及奖品对应信息
|
List<ActivityRefPrizeInfoVO> activityRefPrizeByActivityIds = activityRefPrizeMapper.getActivityRefPrizeByActivityId(prizeActivityId);
|
for (ActivityRefPrizeInfoVO activityRefPrizeInfoVO : activityRefPrizeByActivityIds){
|
if (StringUtils.isNotBlank(activityRefPrizeInfoVO.getPrizeCover())){
|
activityRefPrizeInfoVO.setPrizeCoverUrl(cosUtil.getPreviewUrl(activityRefPrizeInfoVO.getPrizeCover()));
|
}
|
}
|
return Result.ok().data(activityRefPrizeByActivityIds);
|
}
|
|
@Override
|
public Result getPrizeByIdAndPrizeActivityId(String prizeId){
|
List<ActivityRefPrize> activityRefPrizeList = new LambdaQueryChainWrapper<>(baseMapper)
|
.eq(ActivityRefPrize::getPrizeId,prizeId)
|
.eq(ActivityRefPrize::getDeleteFlag,Boolean.FALSE)
|
.list();
|
return Result.ok().data(activityRefPrizeList);
|
}
|
|
@Override
|
public Result addList(String prizeActivityId,List<ActivityRefPrizeForm> list){
|
//先删除再重新添加
|
baseMapper.delete(new LambdaQueryWrapper<ActivityRefPrize>().eq(ActivityRefPrize::getPrizeActivityId,prizeActivityId));
|
|
List<ActivityRefPrize> activityRefPrizeList = new ArrayList<>();
|
if (!list.isEmpty()){
|
for (ActivityRefPrizeForm activityRefPrizeForm : list){
|
ActivityRefPrize activityRefPrize = ActivityRefPrizeForm.getEntityByForm(activityRefPrizeForm,null);
|
//初始化锁的版本
|
activityRefPrize.setPrizeActivityId(prizeActivityId);
|
activityRefPrize.setRemainNum(activityRefPrizeForm.getPrizeNum());
|
activityRefPrize.setVersion(0);
|
activityRefPrizeList.add(activityRefPrize);
|
}
|
this.saveBatch(activityRefPrizeList);
|
}
|
|
return Result.ok();
|
}
|
|
|
/**
|
* 添加
|
* @param form
|
* @return
|
*/
|
@Override
|
public Result add(ActivityRefPrizeForm form) {
|
ActivityRefPrize entity = ActivityRefPrizeForm.getEntityByForm(form, null);
|
baseMapper.insert(entity);
|
return Result.ok("添加成功");
|
}
|
|
/**
|
* 修改
|
* @param form
|
* @return
|
*/
|
@Override
|
public Result update(ActivityRefPrizeForm form) {
|
ActivityRefPrize entity = baseMapper.selectById(form.getId());
|
|
// 为空抛IllegalArgumentException,做全局异常处理
|
Assert.notNull(entity, "记录不存在");
|
BeanUtils.copyProperties(form, entity);
|
baseMapper.updateById(entity);
|
return Result.ok("修改成功");
|
}
|
|
/**
|
* 批量删除
|
* @param ids
|
* @return
|
*/
|
@Override
|
public Result remove(List<String> ids) {
|
baseMapper.deleteBatchIds(ids);
|
return Result.ok("删除成功");
|
}
|
|
/**
|
* id删除
|
* @param id
|
* @return
|
*/
|
@Override
|
public Result removeById(String id) {
|
baseMapper.deleteById(id);
|
return Result.ok("删除成功");
|
}
|
|
/**
|
* 分页查询
|
* @param query
|
* @return
|
*/
|
@Override
|
public Result page(ActivityRefPrizeQuery query) {
|
IPage<ActivityRefPrizeVO> page = PageUtil.getPage(query, ActivityRefPrizeVO.class);
|
baseMapper.getPage(page, query);
|
return Result.ok().data(page.getRecords()).total(page.getTotal());
|
}
|
|
/**
|
* 根据id查找
|
* @param id
|
* @return
|
*/
|
@Override
|
public Result detail(String id) {
|
ActivityRefPrizeVO vo = baseMapper.getById(id);
|
Assert.notNull(vo, "记录不存在");
|
return Result.ok().data(vo);
|
}
|
|
/**
|
* 列表
|
* @return
|
*/
|
@Override
|
public Result all() {
|
List<ActivityRefPrize> entities = baseMapper.selectList(null);
|
List<ActivityRefPrizeVO> vos = entities.stream()
|
.map(entity -> ActivityRefPrizeVO.getVoByEntity(entity, null))
|
.collect(Collectors.toList());
|
return Result.ok().data(vos);
|
}
|
|
@Override
|
public String lockPrizeRef(String refId) {
|
return baseMapper.lockPrizeRef(refId);
|
}
|
}
|