[CMLR-050] 迁移 PK 域注解 SQL 到 Lambda
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
package vvpkassistant.pk.mapper;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import org.apache.ibatis.annotations.*;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import vvpkassistant.pk.model.PkInfoModel;
|
||||
@@ -43,28 +44,49 @@ public interface PkInfoDao extends BaseMapper<PkInfoModel> {
|
||||
);
|
||||
|
||||
// 查询用户发布的大于当前时间的pk数据
|
||||
@Select("select * from pk_info where #{userId} = sender_id and #{time} <= pk_time and invite_status = 0;")
|
||||
List<PkInfoModel> queryCanUseData(@Param("userId") Integer userId , @Param("time") Long time);
|
||||
default List<PkInfoModel> queryCanUseData(Integer userId, Long time) {
|
||||
return selectList(Wrappers.<PkInfoModel>lambdaQuery()
|
||||
.eq(PkInfoModel::getSenderId, userId)
|
||||
.ge(PkInfoModel::getPkTime, time)
|
||||
.eq(PkInfoModel::getInviteStatus, 0));
|
||||
}
|
||||
|
||||
// 查询用户发布的所有pk数据
|
||||
@Select("select * from pk_info where sender_id = #{userId} order by id desc limit #{page}, #{size};")
|
||||
List<PkInfoModel> queryAllPkData(@Param("userId") Integer userId, @Param("page") Integer page, @Param("size") Integer size);
|
||||
default List<PkInfoModel> queryAllPkData(Integer userId, Integer page, Integer size) {
|
||||
return selectList(Wrappers.<PkInfoModel>lambdaQuery()
|
||||
.eq(PkInfoModel::getSenderId, userId)
|
||||
.orderByDesc(PkInfoModel::getId)
|
||||
.last(String.format("limit %d, %d", page, size)));
|
||||
}
|
||||
|
||||
// 根据id删除pk信息
|
||||
@Delete("delete from pk_info where id = #{id}")
|
||||
Integer deletePkDataWithId(@Param("id") Integer id);
|
||||
default Integer deletePkDataWithId(Integer id) {
|
||||
return deleteById(id);
|
||||
}
|
||||
|
||||
//查询制定时间范围,制定主播的pk信息
|
||||
@Select("select * from pk_info where anchor_id = #{anchorId} and pk_time between #{startTime} and #{endTime}")
|
||||
List<PkInfoModel> selectDataWithAnchorIdAndTime(@Param("anchorId") String anchorId, @Param("startTime") long startTime , @Param("endTime") long endTime);
|
||||
default List<PkInfoModel> selectDataWithAnchorIdAndTime(String anchorId, long startTime, long endTime) {
|
||||
return selectList(Wrappers.<PkInfoModel>lambdaQuery()
|
||||
.eq(PkInfoModel::getAnchorId, anchorId)
|
||||
.between(PkInfoModel::getPkTime, startTime, endTime));
|
||||
}
|
||||
|
||||
// 置顶和取消置顶
|
||||
@Update("update pk_info set pin_expire_time = #{time} where id = #{id}")
|
||||
int setPinTime(@Param("id") Integer id, @Param("time") @Nullable Integer time);
|
||||
default int setPinTime(Integer id, @Nullable Integer time) {
|
||||
PkInfoModel updateModel = new PkInfoModel();
|
||||
updateModel.setPinExpireTime(time);
|
||||
return update(updateModel, Wrappers.<PkInfoModel>lambdaUpdate()
|
||||
.eq(PkInfoModel::getId, id));
|
||||
}
|
||||
|
||||
// 根据用户id查询该用户已发布的未被邀请的主播列表
|
||||
@Select("select * from pk_info where sender_id = #{userId} and invite_status = 0 and pk_time > UNIX_TIMESTAMP();")
|
||||
List<PkInfoModel> listUninvitedPublishedAnchorsByUserId(@Param("userId") Integer userId);
|
||||
default List<PkInfoModel> listUninvitedPublishedAnchorsByUserId(Integer userId) {
|
||||
long currentTime = System.currentTimeMillis() / 1000;
|
||||
return selectList(Wrappers.<PkInfoModel>lambdaQuery()
|
||||
.eq(PkInfoModel::getSenderId, userId)
|
||||
.eq(PkInfoModel::getInviteStatus, 0)
|
||||
.gt(PkInfoModel::getPkTime, currentTime));
|
||||
}
|
||||
|
||||
// 查询当前用户与该主播是否存在未完成的pk记录
|
||||
@Select("SELECT COUNT(*) FROM `pk_record`\n" +
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package vvpkassistant.pk.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.apache.ibatis.annotations.Select;
|
||||
@@ -14,20 +15,33 @@ import java.util.List;
|
||||
public interface PkRecordDao extends BaseMapper<PkRecord> {
|
||||
|
||||
// 查询当天所有的pk数据 Python使用
|
||||
@Select("SELECT * FROM pk_record WHERE pk_time BETWEEN #{startTime} AND #{endTime} and pk_status = 1;")
|
||||
List<PkRecord> pkListForToday(@Param("startTime") long start, @Param("endTime") long end);
|
||||
default List<PkRecord> pkListForToday(long start, long end) {
|
||||
return selectList(Wrappers.<PkRecord>lambdaQuery()
|
||||
.between(PkRecord::getPkTime, String.valueOf(start), String.valueOf(end))
|
||||
.eq(PkRecord::getPkStatus, 1));
|
||||
}
|
||||
|
||||
// 查询大于等于今天的PK记录数据
|
||||
@Select("select * from pk_record where (user_id_a = #{userId} or user_id_b = #{userId}) and pk_time >= #{fromTime}")
|
||||
List<PkRecord> fetchDataFromTodayWithUserId(@Param("userId") Integer userId, @Param("fromTime") Long fromTime);
|
||||
default List<PkRecord> fetchDataFromTodayWithUserId(Integer userId, Long fromTime) {
|
||||
return selectList(Wrappers.<PkRecord>lambdaQuery()
|
||||
.and(wrapper -> wrapper.eq(PkRecord::getUserIdA, userId)
|
||||
.or()
|
||||
.eq(PkRecord::getUserIdB, userId))
|
||||
.ge(PkRecord::getPkTime, String.valueOf(fromTime)));
|
||||
}
|
||||
|
||||
// 查询是否存在未处理的邀请数据
|
||||
@Select("select count(*) from pk_record where anchor_id_a = #{anchorA} and anchor_id_b = #{anchorB} and pk_status = 0")
|
||||
Integer getPendingInvitations(@Param("anchorA") String anchorA , @Param("anchorB") String anchorB);
|
||||
default Integer getPendingInvitations(String anchorA, String anchorB) {
|
||||
return Math.toIntExact(selectCount(Wrappers.<PkRecord>lambdaQuery()
|
||||
.eq(PkRecord::getAnchorIdA, anchorA)
|
||||
.eq(PkRecord::getAnchorIdB, anchorB)
|
||||
.eq(PkRecord::getPkStatus, 0)));
|
||||
}
|
||||
|
||||
// 根据id查询记录详情
|
||||
@Select("select * from pk_record where id = #{id}")
|
||||
PkRecord singleRecord(@Param("id") Integer id);
|
||||
default PkRecord singleRecord(Integer id) {
|
||||
return selectById(id);
|
||||
}
|
||||
|
||||
|
||||
// 查询每场pk的详细数据
|
||||
@@ -35,7 +49,11 @@ public interface PkRecordDao extends BaseMapper<PkRecord> {
|
||||
List<PkRecordDetail> fetchDetailPkDataWithId(@Param("id") Integer id);
|
||||
|
||||
// 查询主播是否存在pk记录
|
||||
@Select("select count(*) from pk_record where anchor_id_a = #{id} or anchor_id_b = #{id}")
|
||||
int existsPkRecordByAnchor(@Param("id") String id);
|
||||
default int existsPkRecordByAnchor(String id) {
|
||||
return Math.toIntExact(selectCount(Wrappers.<PkRecord>lambdaQuery()
|
||||
.and(wrapper -> wrapper.eq(PkRecord::getAnchorIdA, id)
|
||||
.or()
|
||||
.eq(PkRecord::getAnchorIdB, id))));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
package vvpkassistant.pk.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.apache.ibatis.annotations.Select;
|
||||
import vvpkassistant.pk.model.PkRecordDetail;
|
||||
|
||||
import java.util.List;
|
||||
@@ -12,7 +11,9 @@ import java.util.List;
|
||||
public interface PkRecordDetailDao extends BaseMapper<PkRecordDetail> {
|
||||
|
||||
// 根据id查询对应的明细数据
|
||||
@Select("select * from pk_record_detail where pk_record_id = #{id}")
|
||||
List<PkRecordDetail> queryDetail(@Param("id") Integer id);
|
||||
default List<PkRecordDetail> queryDetail(Integer id) {
|
||||
return selectList(Wrappers.<PkRecordDetail>lambdaQuery()
|
||||
.eq(PkRecordDetail::getPkRecordId, id));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user