123
This commit is contained in:
@@ -0,0 +1,96 @@
|
||||
package com.ruoyi.cai.controller;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.ruoyi.cai.domain.AnchorTop;
|
||||
import com.ruoyi.cai.dto.admin.vo.AnchorTopAdminVo;
|
||||
import com.ruoyi.cai.service.AnchorTopService;
|
||||
import com.ruoyi.common.annotation.Log;
|
||||
import com.ruoyi.common.annotation.RepeatSubmit;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.PageQuery;
|
||||
import com.ruoyi.common.core.domain.R;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.core.validate.AddGroup;
|
||||
import com.ruoyi.common.core.validate.EditGroup;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* 主播限时置顶
|
||||
*
|
||||
* @author 77
|
||||
* @date 2024-03-28
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/cai/anchorTop")
|
||||
public class AnchorTopController extends BaseController {
|
||||
|
||||
private final AnchorTopService anchorTopService;
|
||||
|
||||
/**
|
||||
* 查询主播限时置顶列表
|
||||
*/
|
||||
@SaCheckPermission("cai:anchorTop:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<AnchorTopAdminVo> list(AnchorTopAdminVo bo, PageQuery pageQuery) {
|
||||
Page<AnchorTopAdminVo> page = anchorTopService.pageAdmin(pageQuery, bo);
|
||||
return TableDataInfo.build(page);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取主播限时置顶详细信息
|
||||
*
|
||||
* @param id 主键
|
||||
*/
|
||||
@SaCheckPermission("cai:anchorTop:query")
|
||||
@GetMapping("/{id}")
|
||||
public R<AnchorTop> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long id) {
|
||||
return R.ok(anchorTopService.getById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增主播限时置顶
|
||||
*/
|
||||
@SaCheckPermission("cai:anchorTop:add")
|
||||
@Log(title = "主播限时置顶", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody AnchorTop bo) {
|
||||
return toAjax(anchorTopService.save(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改主播限时置顶
|
||||
*/
|
||||
@SaCheckPermission("cai:anchorTop:edit")
|
||||
@Log(title = "主播限时置顶", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody AnchorTop bo) {
|
||||
return toAjax(anchorTopService.updateById(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除主播限时置顶
|
||||
*
|
||||
* @param ids 主键串
|
||||
*/
|
||||
@SaCheckPermission("cai:anchorTop:remove")
|
||||
@Log(title = "主播限时置顶", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] ids) {
|
||||
return toAjax(anchorTopService.removeBatchByIds(Arrays.asList(ids)));
|
||||
}
|
||||
}
|
||||
48
ruoyi-cai/src/main/java/com/ruoyi/cai/domain/AnchorTop.java
Normal file
48
ruoyi-cai/src/main/java/com/ruoyi/cai/domain/AnchorTop.java
Normal file
@@ -0,0 +1,48 @@
|
||||
package com.ruoyi.cai.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 主播限时置顶对象 cai_anchor_top
|
||||
*
|
||||
* @author 77
|
||||
* @date 2024-03-28
|
||||
*/
|
||||
@Data
|
||||
@TableName("cai_anchor_top")
|
||||
public class AnchorTop implements Serializable {
|
||||
|
||||
private static final long serialVersionUID=1L;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@TableId(value = "id")
|
||||
private Long id;
|
||||
/**
|
||||
* 用户ID
|
||||
*/
|
||||
private Long userId;
|
||||
/**
|
||||
* 开启时间
|
||||
*/
|
||||
private LocalDateTime beginTime;
|
||||
/**
|
||||
* 结束时间
|
||||
*/
|
||||
private LocalDateTime endTime;
|
||||
/**
|
||||
* 排序字段
|
||||
*/
|
||||
private Long sortBy;
|
||||
|
||||
private LocalDateTime createTime;
|
||||
private LocalDateTime updateTime;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
package com.ruoyi.cai.dto.admin.vo;
|
||||
|
||||
import com.ruoyi.cai.domain.AnchorTop;
|
||||
import com.ruoyi.common.annotation.Sensitive;
|
||||
import com.ruoyi.common.enums.SensitiveStrategy;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class AnchorTopAdminVo extends AnchorTop {
|
||||
/**
|
||||
* 用户号/ID号
|
||||
*/
|
||||
private String usercode;
|
||||
/**
|
||||
* 昵称
|
||||
*/
|
||||
private String nickname;
|
||||
|
||||
/**
|
||||
* 手机号
|
||||
*/
|
||||
@Sensitive(strategy = SensitiveStrategy.PHONE)
|
||||
private String mobile;
|
||||
|
||||
/**
|
||||
* 头像
|
||||
*/
|
||||
private String avatar;
|
||||
/**
|
||||
* 性别
|
||||
*/
|
||||
private Integer gender;
|
||||
private Integer age;
|
||||
private Integer status;
|
||||
private Integer onlineStatus;
|
||||
}
|
||||
@@ -18,4 +18,7 @@ public class AnchorListQuery {
|
||||
|
||||
@Schema(description = "城市(同城查询使用)")
|
||||
private Integer cityId;
|
||||
|
||||
@Schema(hidden = true)
|
||||
private Integer onlineStatus;
|
||||
}
|
||||
|
||||
@@ -40,6 +40,7 @@ public class HomeManager {
|
||||
AnchorListQuery query = new AnchorListQuery();
|
||||
// 0-默认查询 1-活跃查询 2-新人查询 3-同城查询
|
||||
query.setType(0);
|
||||
query.setOnlineStatus(1);
|
||||
Page<AnchorListVo> app = anchorService.pageApp(pageQuery, query);
|
||||
List<AnchorListVo> records = app.getRecords();
|
||||
RBucket<List<AnchorListVo>> bucket = redissonClient.getBucket(RedisHttpConstant.HOME_RECOMMEND_REDIS);
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
package com.ruoyi.cai.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.ruoyi.cai.domain.AnchorTop;
|
||||
import com.ruoyi.cai.dto.admin.vo.AnchorTopAdminVo;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
/**
|
||||
* 主播限时置顶Mapper接口
|
||||
*
|
||||
* @author 77
|
||||
* @date 2024-03-28
|
||||
*/
|
||||
public interface AnchorTopMapper extends BaseMapper<AnchorTop> {
|
||||
|
||||
Page<AnchorTopAdminVo> pageAdmin(@Param("build") Page<Object> build, @Param("bo") AnchorTopAdminVo bo);
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package com.ruoyi.cai.service;
|
||||
|
||||
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.common.core.domain.PageQuery;
|
||||
|
||||
/**
|
||||
* 主播限时置顶Service接口
|
||||
*
|
||||
* @author 77
|
||||
* @date 2024-03-28
|
||||
*/
|
||||
public interface AnchorTopService extends IService<AnchorTop> {
|
||||
|
||||
Page<AnchorTopAdminVo> pageAdmin(PageQuery pageQuery, AnchorTopAdminVo bo);
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
package com.ruoyi.cai.service.impl;
|
||||
|
||||
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.dto.admin.vo.AnchorTopAdminVo;
|
||||
import com.ruoyi.cai.mapper.AnchorTopMapper;
|
||||
import com.ruoyi.cai.service.AnchorTopService;
|
||||
import com.ruoyi.common.core.domain.PageQuery;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* 主播限时置顶Service业务层处理
|
||||
*
|
||||
* @author 77
|
||||
* @date 2024-03-28
|
||||
*/
|
||||
@Service
|
||||
public class AnchorTopServiceImpl extends ServiceImpl<AnchorTopMapper,AnchorTop> implements AnchorTopService {
|
||||
|
||||
@Override
|
||||
public Page<AnchorTopAdminVo> pageAdmin(PageQuery pageQuery, AnchorTopAdminVo bo) {
|
||||
return baseMapper.pageAdmin(pageQuery.build(), bo);
|
||||
}
|
||||
}
|
||||
@@ -45,6 +45,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<if test="query.cityId != null and query.cityId != ''">
|
||||
and t1.city_id = #{query.cityId}
|
||||
</if>
|
||||
<if test="query.onlineStatus != null">
|
||||
and t3.status = #{query.onlineStatus}
|
||||
</if>
|
||||
<if test="query.type != null">
|
||||
<if test="query.type == 0">
|
||||
order by t2.recommend_status desc
|
||||
|
||||
33
ruoyi-cai/src/main/resources/mapper/cai/AnchorTopMapper.xml
Normal file
33
ruoyi-cai/src/main/resources/mapper/cai/AnchorTopMapper.xml
Normal file
@@ -0,0 +1,33 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.ruoyi.cai.mapper.AnchorTopMapper">
|
||||
|
||||
<select id="pageAdmin" resultType="com.ruoyi.cai.dto.admin.vo.AnchorTopAdminVo">
|
||||
select t1.*,
|
||||
t3.usercode,t3.nickname,t3.mobile,t3.avatar,t3.gender,t3.age,t3.status,
|
||||
t4.status as online_status
|
||||
from cai_anchor_top t1
|
||||
left join cai_anchor t2 on t1.user_id = t2.user_id
|
||||
left join cai_user t3 on t1.user_id = t3.id
|
||||
left join cai_user_online t4 on t1.user_id = t4.user_id
|
||||
<where>
|
||||
<if test="bo.usercode != null and bo.usercode != ''">
|
||||
and t3.usercode = #{bo.usercode}
|
||||
</if>
|
||||
<if test="bo.nickname != null and bo.nickname != ''">
|
||||
and t3.nickname = #{bo.nickname}
|
||||
</if>
|
||||
<if test="bo.mobile != null and bo.mobile != ''">
|
||||
and t3.mobile = #{bo.mobile}
|
||||
</if>
|
||||
<if test="bo.onlineStatus != null">
|
||||
and t4.status = #{bo.onlineStatus}
|
||||
</if>
|
||||
</where>
|
||||
order by t1.sort_by desc
|
||||
</select>
|
||||
|
||||
|
||||
</mapper>
|
||||
Reference in New Issue
Block a user