This commit is contained in:
张良(004796)
2024-03-28 18:20:50 +08:00
parent e955c21991
commit c25e43359c
14 changed files with 180 additions and 29 deletions

View File

@@ -4,8 +4,11 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.cai.domain.AnchorTop;
import com.ruoyi.cai.dto.admin.vo.AnchorTopAdminVo;
import com.ruoyi.cai.dto.app.vo.AnchorListVo;
import com.ruoyi.common.core.domain.PageQuery;
import java.util.List;
/**
* 主播限时置顶Service接口
*
@@ -15,4 +18,10 @@ import com.ruoyi.common.core.domain.PageQuery;
public interface AnchorTopService extends IService<AnchorTop> {
Page<AnchorTopAdminVo> pageAdmin(PageQuery pageQuery, AnchorTopAdminVo bo);
boolean saveOrUpdateAnchorTop(AnchorTopAdminVo bo);
AnchorTopAdminVo getAnchorTopByUserCode(String usercode);
List<AnchorListVo> anchorTop(int limit);
}

View File

@@ -1,13 +1,22 @@
package com.ruoyi.cai.service.impl;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.cai.domain.AnchorTop;
import com.ruoyi.cai.domain.User;
import com.ruoyi.cai.dto.admin.vo.AnchorTopAdminVo;
import com.ruoyi.cai.dto.app.vo.AnchorListVo;
import com.ruoyi.cai.mapper.AnchorTopMapper;
import com.ruoyi.cai.service.AnchorTopService;
import com.ruoyi.cai.service.UserService;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.exception.ServiceException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
/**
* 主播限时置顶Service业务层处理
@@ -18,8 +27,68 @@ import org.springframework.stereotype.Service;
@Service
public class AnchorTopServiceImpl extends ServiceImpl<AnchorTopMapper,AnchorTop> implements AnchorTopService {
@Autowired
private UserService userService;
@Override
public Page<AnchorTopAdminVo> pageAdmin(PageQuery pageQuery, AnchorTopAdminVo bo) {
return baseMapper.pageAdmin(pageQuery.build(), bo);
}
@Override
@Transactional(rollbackFor = Exception.class)
public boolean saveOrUpdateAnchorTop(AnchorTopAdminVo bo) {
if(bo.getBeginTime() == null || bo.getEndTime() == null){
throw new ServiceException("请填写开始时间和结束时间");
}
if(bo.getBeginTime().isAfter(bo.getEndTime())){
throw new ServiceException("开始时间不能大于结束时间");
}
User user = userService.getByUserCode(bo.getUsercode());
if(user == null || user.getIsAnchor() != 1){
throw new ServiceException("用户不存在或不是主播");
}
if(bo.getSortBy() == null){
bo.setSortBy(0L);
}
AnchorTop one = this.getOne(Wrappers.lambdaQuery(AnchorTop.class).eq(AnchorTop::getUserId, user.getId()).last("limit 1"));
AnchorTop anchorTop = new AnchorTop();
if(one != null){
anchorTop.setId(one.getId());
}
anchorTop.setUserId(user.getId());
anchorTop.setBeginTime(bo.getBeginTime());
anchorTop.setEndTime(bo.getEndTime());
anchorTop.setSortBy(bo.getSortBy());
return this.saveOrUpdate(anchorTop);
}
@Override
public AnchorTopAdminVo getAnchorTopByUserCode(String usercode) {
User user = userService.getByUserCode(usercode);
if(user == null){
return null;
}
AnchorTop one = this.getOne(Wrappers.lambdaQuery(AnchorTop.class).eq(AnchorTop::getUserId, user.getId()).last("limit 1"));
if(one != null){
AnchorTopAdminVo vo = new AnchorTopAdminVo();
vo.setId(one.getId());
vo.setUsercode(user.getUsercode());
vo.setNickname(user.getNickname());
vo.setMobile(user.getMobile());
vo.setAge(user.getAge());
vo.setGender(user.getGender());
vo.setUserId(one.getUserId());
vo.setBeginTime(one.getBeginTime());
vo.setEndTime(one.getEndTime());
vo.setSortBy(one.getSortBy());
return vo;
}
return null;
}
@Override
public List<AnchorListVo> anchorTop(int limit) {
return baseMapper.anchorTop(limit);
}
}