数据
This commit is contained in:
@@ -15,6 +15,12 @@ CREATE TABLE `cai_account_black`
|
|||||||
ALTER TABLE `cai_anchor`
|
ALTER TABLE `cai_anchor`
|
||||||
ADD COLUMN `enable_greet` tinyint(1) NOT NULL DEFAULT 1 COMMENT '是否允许群发' AFTER `recommend_status`;
|
ADD COLUMN `enable_greet` tinyint(1) NOT NULL DEFAULT 1 COMMENT '是否允许群发' AFTER `recommend_status`;
|
||||||
|
|
||||||
|
ALTER TABLE `cai_anchor`
|
||||||
|
ADD COLUMN `top_show_rank` datetime NOT NULL DEFAULT now() COMMENT '置顶时间' AFTER `show_me_rate`;
|
||||||
|
|
||||||
|
ALTER TABLE `cai_anchor`
|
||||||
|
ADD INDEX `idx_top_date`(`top_show_rank`) USING BTREE;
|
||||||
|
|
||||||
-- 菜单 SQL
|
-- 菜单 SQL
|
||||||
insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
|
insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
|
||||||
values(1819683762522001409, '账户黑名单', '1737668638361206786', '1', 'accountBlack', 'cai/accountBlack/index', 1, 0, 'C', '0', '0', 'cai:accountBlack:list', '#', 'admin', sysdate(), '', null, '账户黑名单菜单');
|
values(1819683762522001409, '账户黑名单', '1737668638361206786', '1', 'accountBlack', 'cai/accountBlack/index', 1, 0, 'C', '0', '0', 'cai:accountBlack:list', '#', 'admin', sysdate(), '', null, '账户黑名单菜单');
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import com.ruoyi.cai.dto.app.query.anchor.UpdateOrderSwitchReq;
|
|||||||
import com.ruoyi.cai.dto.app.vo.AnchorJoinHomeVo;
|
import com.ruoyi.cai.dto.app.vo.AnchorJoinHomeVo;
|
||||||
import com.ruoyi.cai.dto.app.vo.AnchorVo;
|
import com.ruoyi.cai.dto.app.vo.AnchorVo;
|
||||||
import com.ruoyi.cai.dto.app.vo.CameraAuditVo;
|
import com.ruoyi.cai.dto.app.vo.CameraAuditVo;
|
||||||
|
import com.ruoyi.cai.dto.app.vo.top.AnchorTopResp;
|
||||||
import com.ruoyi.cai.manager.CurrentUserManager;
|
import com.ruoyi.cai.manager.CurrentUserManager;
|
||||||
import com.ruoyi.cai.service.AnchorApplyService;
|
import com.ruoyi.cai.service.AnchorApplyService;
|
||||||
import com.ruoyi.cai.service.AnchorService;
|
import com.ruoyi.cai.service.AnchorService;
|
||||||
@@ -46,6 +47,15 @@ public class AnchorAppController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@GetMapping("/top")
|
||||||
|
@Operation(summary = "主播置顶")
|
||||||
|
@Log(title = "主播置顶", businessType = BusinessType.OTHER, isSaveDb = false)
|
||||||
|
public R<AnchorTopResp> anchorTop(){
|
||||||
|
AnchorTopResp top = currentUserManager.top();
|
||||||
|
return R.ok(top);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@PostMapping("/update")
|
@PostMapping("/update")
|
||||||
@Operation(summary = "修改当前用户的主播信息")
|
@Operation(summary = "修改当前用户的主播信息")
|
||||||
@Log(title = "修改当前用户的主播信息", businessType = BusinessType.OTHER, isSaveDb = true)
|
@Log(title = "修改当前用户的主播信息", businessType = BusinessType.OTHER, isSaveDb = true)
|
||||||
|
|||||||
@@ -93,7 +93,8 @@ public class IndexController {
|
|||||||
@Operation(summary = "首页查询主播接口-分页")
|
@Operation(summary = "首页查询主播接口-分页")
|
||||||
@Log(title = "首页查询主播接口", businessType = BusinessType.OTHER,isPrintResponseData = false, isSaveDb = false)
|
@Log(title = "首页查询主播接口", businessType = BusinessType.OTHER,isPrintResponseData = false, isSaveDb = false)
|
||||||
public R<List<AnchorListVo>> anchorPage(PageQuery page, AnchorListQuery query){
|
public R<List<AnchorListVo>> anchorPage(PageQuery page, AnchorListQuery query){
|
||||||
List<AnchorListVo> home = homeManager.getHomeCache(page, query);
|
// List<AnchorListVo> home = homeManager.getHomeCache(page, query);
|
||||||
|
List<AnchorListVo> home = homeManager.getHomeV2(page, query);
|
||||||
return R.ok(home);
|
return R.ok(home);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ public class RedisHttpConstant {
|
|||||||
public static final String WITHDRAW_TOTAL_CACHE_REDIS = REDIS_P + "withdrawTotal:%s";
|
public static final String WITHDRAW_TOTAL_CACHE_REDIS = REDIS_P + "withdrawTotal:%s";
|
||||||
public static final String CODE_REDIS = REDIS_P + "code:%s:%s";
|
public static final String CODE_REDIS = REDIS_P + "code:%s:%s";
|
||||||
public static final String USER_GREET_TOTAL_REDIS = REDIS_P + "userGreetTotal:%s:%s";
|
public static final String USER_GREET_TOTAL_REDIS = REDIS_P + "userGreetTotal:%s:%s";
|
||||||
|
public static final String ANCHOR_TOP_TIME_REDIS = REDIS_P + "anchorTopTime:%s";
|
||||||
public static final String USER_GREET_SEND_TIME_REDIS = REDIS_P + "userGreetSendTime:%s";
|
public static final String USER_GREET_SEND_TIME_REDIS = REDIS_P + "userGreetSendTime:%s";
|
||||||
public static final String FORBID_CACHE_REDIS = REDIS_P + "forbid:%s";
|
public static final String FORBID_CACHE_REDIS = REDIS_P + "forbid:%s";
|
||||||
public static final String LOVE_RANK_REDIS = REDIS_P + "loveRank:%s:%s";
|
public static final String LOVE_RANK_REDIS = REDIS_P + "loveRank:%s:%s";
|
||||||
|
|||||||
@@ -85,6 +85,11 @@ public class Anchor implements Serializable{
|
|||||||
*/
|
*/
|
||||||
private Integer status;
|
private Integer status;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 置顶时间
|
||||||
|
*/
|
||||||
|
private LocalDateTime topShowRank;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 是否允许 发布群发
|
* 是否允许 发布群发
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -0,0 +1,12 @@
|
|||||||
|
package com.ruoyi.cai.dto.app.vo.top;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class AnchorTopResp {
|
||||||
|
@Schema(description = "置顶是否成功")
|
||||||
|
private boolean topSuccess;
|
||||||
|
@Schema(description = "下一次置顶间隔(秒)")
|
||||||
|
private Long nextTopDate = 0L;
|
||||||
|
}
|
||||||
@@ -52,6 +52,7 @@ public enum SystemConfigEnum {
|
|||||||
DEFAULT_UNION_ONE_INCOME_RATE("0.07", "默认工会一级提成",SystemConfigGroupEnum.BUSINESS, new RateSystemConfigCheck()),
|
DEFAULT_UNION_ONE_INCOME_RATE("0.07", "默认工会一级提成",SystemConfigGroupEnum.BUSINESS, new RateSystemConfigCheck()),
|
||||||
TODAY_GREET_MAX("100", "每日主播群打招呼次数",SystemConfigGroupEnum.BUSINESS,new NumberSystemConfigCheck()),
|
TODAY_GREET_MAX("100", "每日主播群打招呼次数",SystemConfigGroupEnum.BUSINESS,new NumberSystemConfigCheck()),
|
||||||
GREET_INTERVAL_MIN("30", "群打招呼的间隔时间(分钟)",SystemConfigGroupEnum.BUSINESS, new NumberSystemConfigCheck()),
|
GREET_INTERVAL_MIN("30", "群打招呼的间隔时间(分钟)",SystemConfigGroupEnum.BUSINESS, new NumberSystemConfigCheck()),
|
||||||
|
ANCHOR_TOP_MIN("30", "小火箭置顶间隔时间(分钟)",SystemConfigGroupEnum.BUSINESS, new NumberSystemConfigCheck()),
|
||||||
OPEN_ALI_PAY("1", "是否开启支付宝支付",SystemConfigGroupEnum.BUSINESS,new BooleanSystemConfigCheck()),
|
OPEN_ALI_PAY("1", "是否开启支付宝支付",SystemConfigGroupEnum.BUSINESS,new BooleanSystemConfigCheck()),
|
||||||
OPEN_WX_PAY("1", "是否开启微信支付",SystemConfigGroupEnum.BUSINESS,new BooleanSystemConfigCheck()),
|
OPEN_WX_PAY("1", "是否开启微信支付",SystemConfigGroupEnum.BUSINESS,new BooleanSystemConfigCheck()),
|
||||||
ALI_PAY_FIRST("1", "支付宝支付显示是否在前面",SystemConfigGroupEnum.BUSINESS,new BooleanSystemConfigCheck()),
|
ALI_PAY_FIRST("1", "支付宝支付显示是否在前面",SystemConfigGroupEnum.BUSINESS,new BooleanSystemConfigCheck()),
|
||||||
|
|||||||
@@ -1,9 +1,12 @@
|
|||||||
package com.ruoyi.cai.manager;
|
package com.ruoyi.cai.manager;
|
||||||
|
|
||||||
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
|
import cn.hutool.core.date.DateUtil;
|
||||||
import com.alibaba.fastjson2.JSON;
|
import com.alibaba.fastjson2.JSON;
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import com.ruoyi.cai.auth.CaiLoginManager;
|
import com.ruoyi.cai.auth.CaiLoginManager;
|
||||||
|
import com.ruoyi.cai.constant.RedisHttpConstant;
|
||||||
import com.ruoyi.cai.domain.*;
|
import com.ruoyi.cai.domain.*;
|
||||||
import com.ruoyi.cai.dto.app.query.AccountAliBankCardRes;
|
import com.ruoyi.cai.dto.app.query.AccountAliBankCardRes;
|
||||||
import com.ruoyi.cai.dto.app.query.AnchorUpdateReq;
|
import com.ruoyi.cai.dto.app.query.AnchorUpdateReq;
|
||||||
@@ -11,6 +14,7 @@ import com.ruoyi.cai.dto.app.query.user.UserUpdateAvatarReq;
|
|||||||
import com.ruoyi.cai.dto.app.query.user.UserUpdateReq;
|
import com.ruoyi.cai.dto.app.query.user.UserUpdateReq;
|
||||||
import com.ruoyi.cai.dto.app.vo.AnchorVo;
|
import com.ruoyi.cai.dto.app.vo.AnchorVo;
|
||||||
import com.ruoyi.cai.dto.app.vo.CurrentUserInfoVo;
|
import com.ruoyi.cai.dto.app.vo.CurrentUserInfoVo;
|
||||||
|
import com.ruoyi.cai.dto.app.vo.top.AnchorTopResp;
|
||||||
import com.ruoyi.cai.dto.app.vo.user.*;
|
import com.ruoyi.cai.dto.app.vo.user.*;
|
||||||
import com.ruoyi.cai.enums.AuditStatusEnum;
|
import com.ruoyi.cai.enums.AuditStatusEnum;
|
||||||
import com.ruoyi.cai.enums.GenderEnum;
|
import com.ruoyi.cai.enums.GenderEnum;
|
||||||
@@ -26,15 +30,21 @@ import com.ruoyi.common.utils.BeanConvertUtil;
|
|||||||
import com.ruoyi.yunxin.client.ImUserRefClient;
|
import com.ruoyi.yunxin.client.ImUserRefClient;
|
||||||
import com.ruoyi.yunxin.req.UpdateUinfoReq;
|
import com.ruoyi.yunxin.req.UpdateUinfoReq;
|
||||||
import com.ruoyi.yunxin.resp.YxCommonR;
|
import com.ruoyi.yunxin.resp.YxCommonR;
|
||||||
|
import com.ruoyi.yunxin.resp.YxDataR;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.redisson.api.RLock;
|
||||||
|
import org.redisson.api.RedissonClient;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.data.redis.core.StringRedisTemplate;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@@ -280,5 +290,42 @@ public class CurrentUserManager {
|
|||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private AnchorApplyService anchorApplyService;
|
private AnchorApplyService anchorApplyService;
|
||||||
|
@Autowired
|
||||||
|
private RedissonClient redissonClient;
|
||||||
|
@Autowired
|
||||||
|
private StringRedisTemplate stringRedisTemplate;
|
||||||
|
|
||||||
|
public AnchorTopResp top() {
|
||||||
|
Long userId = LoginHelper.getUserId();
|
||||||
|
String lockKey = LockManager.getAnchorTopLock(userId);
|
||||||
|
RLock lock = redissonClient.getLock(lockKey);
|
||||||
|
if(lock.isLocked()){
|
||||||
|
throw new ServiceException("操作太频繁");
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
lock.lock(3, TimeUnit.SECONDS);
|
||||||
|
String userGreetSendTime = String.format(RedisHttpConstant.ANCHOR_TOP_TIME_REDIS,userId); // 最近一次的发送时间
|
||||||
|
String lastTime = stringRedisTemplate.opsForValue().get(userGreetSendTime);
|
||||||
|
if(StringUtils.isNotBlank(lastTime)){
|
||||||
|
int inter = systemConfigManager.getSystemConfigOfInt(SystemConfigEnum.ANCHOR_TOP_MIN) * 60;
|
||||||
|
long jiange = DateUtil.currentSeconds() - Long.parseLong(lastTime); // 距离上次发送的间隔
|
||||||
|
long diff = inter - jiange;
|
||||||
|
if(diff > 0){
|
||||||
|
AnchorTopResp resp = new AnchorTopResp();
|
||||||
|
resp.setTopSuccess(false);
|
||||||
|
resp.setNextTopDate(diff);
|
||||||
|
return resp;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
anchorService.update(Wrappers.lambdaUpdate(Anchor.class)
|
||||||
|
.set(Anchor::getTopShowRank, LocalDateTime.now())
|
||||||
|
.eq(Anchor::getUserId, userId));
|
||||||
|
stringRedisTemplate.opsForValue().set(userGreetSendTime,DateUtil.currentSeconds()+"",1,TimeUnit.DAYS);
|
||||||
|
}finally {
|
||||||
|
lock.unlock();
|
||||||
|
}
|
||||||
|
AnchorTopResp resp = new AnchorTopResp();
|
||||||
|
resp.setTopSuccess(true);
|
||||||
|
return resp;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -116,6 +116,17 @@ public class HomeManager {
|
|||||||
return list.subList(0,endIndex);
|
return list.subList(0,endIndex);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<AnchorListVo> getHomeV2(PageQuery pageQuery, AnchorListQuery query){
|
||||||
|
if(pageQuery.checkPageNum(20)){
|
||||||
|
return Collections.emptyList();
|
||||||
|
}
|
||||||
|
pageQuery.resetPageSize();
|
||||||
|
query.setOnlineStatus(1);
|
||||||
|
query.setOpenVideoStatus(1);
|
||||||
|
Page<AnchorListVo> page = anchorService.pageAppV2(pageQuery, query);
|
||||||
|
return page.getRecords();
|
||||||
|
}
|
||||||
|
|
||||||
public List<AnchorListVo> getHomeCache(PageQuery pageQuery,AnchorListQuery query){
|
public List<AnchorListVo> getHomeCache(PageQuery pageQuery,AnchorListQuery query){
|
||||||
AnchorListQueryTypeEnum anchorListQueryTypeEnum = AnchorListQueryTypeEnum.getByCode(query.getType());
|
AnchorListQueryTypeEnum anchorListQueryTypeEnum = AnchorListQueryTypeEnum.getByCode(query.getType());
|
||||||
List<AnchorListVo> vos;
|
List<AnchorListVo> vos;
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ public class LockManager {
|
|||||||
public static final String LOCK_DEAL_INVITE_REDIS = RedisHttpConstant.REDIS_P + "lock:dealInvite:%s";
|
public static final String LOCK_DEAL_INVITE_REDIS = RedisHttpConstant.REDIS_P + "lock:dealInvite:%s";
|
||||||
public static final String LOCK_ADD_USER_GREET_REDIS = RedisHttpConstant.REDIS_P + "lock:addUserGreet:%s";
|
public static final String LOCK_ADD_USER_GREET_REDIS = RedisHttpConstant.REDIS_P + "lock:addUserGreet:%s";
|
||||||
public static final String LOCK_SEND_GREET_REDIS = RedisHttpConstant.REDIS_P + "lock:sendGreet:%s";
|
public static final String LOCK_SEND_GREET_REDIS = RedisHttpConstant.REDIS_P + "lock:sendGreet:%s";
|
||||||
|
public static final String LOCK_ANCHOR_TOP_REDIS = RedisHttpConstant.REDIS_P + "lock:anchorTop:%s";
|
||||||
public static final String LOCK_SEND_GUARD_REDIS = RedisHttpConstant.REDIS_P + "lock:sendGuard:%s";
|
public static final String LOCK_SEND_GUARD_REDIS = RedisHttpConstant.REDIS_P + "lock:sendGuard:%s";
|
||||||
public static final String LOCK_JOIN_ANCHOR_REDIS = RedisHttpConstant.REDIS_P + "lock:joinAnchor:%s";
|
public static final String LOCK_JOIN_ANCHOR_REDIS = RedisHttpConstant.REDIS_P + "lock:joinAnchor:%s";
|
||||||
public static final String LOCK_SEND_GIFT_REDIS = RedisHttpConstant.REDIS_P + "lock:sendGift:%s";
|
public static final String LOCK_SEND_GIFT_REDIS = RedisHttpConstant.REDIS_P + "lock:sendGift:%s";
|
||||||
@@ -35,6 +36,10 @@ public class LockManager {
|
|||||||
return String.format(LOCK_SEND_GREET_REDIS,userId);
|
return String.format(LOCK_SEND_GREET_REDIS,userId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static String getAnchorTopLock(Long userId){
|
||||||
|
return String.format(LOCK_ANCHOR_TOP_REDIS,userId);
|
||||||
|
}
|
||||||
|
|
||||||
public static String getSendGuardLock(Long userId){
|
public static String getSendGuardLock(Long userId){
|
||||||
return String.format(LOCK_SEND_GUARD_REDIS,userId);
|
return String.format(LOCK_SEND_GUARD_REDIS,userId);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,5 +20,7 @@ public interface AnchorMapper extends BaseMapper<Anchor> {
|
|||||||
|
|
||||||
Page<AnchorListVo> pageApp(@Param("build") Page<Object> build, @Param("query") AnchorListQuery query);
|
Page<AnchorListVo> pageApp(@Param("build") Page<Object> build, @Param("query") AnchorListQuery query);
|
||||||
|
|
||||||
|
Page<AnchorListVo> pageAppV2(@Param("build") Page<Object> build, @Param("query") AnchorListQuery query);
|
||||||
|
|
||||||
boolean incsServiceTimeAndCount(@Param("toUid") Long toUid, @Param("callTime") Long callTime, @Param("count") int count);
|
boolean incsServiceTimeAndCount(@Param("toUid") Long toUid, @Param("callTime") Long callTime, @Param("count") int count);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,6 +24,8 @@ public interface AnchorService extends IService<Anchor> {
|
|||||||
|
|
||||||
Page<AnchorListVo> pageApp(PageQuery pageQuery, AnchorListQuery query);
|
Page<AnchorListVo> pageApp(PageQuery pageQuery, AnchorListQuery query);
|
||||||
|
|
||||||
|
Page<AnchorListVo> pageAppV2(PageQuery pageQuery, AnchorListQuery query);
|
||||||
|
|
||||||
Anchor getByUserId(Long userId);
|
Anchor getByUserId(Long userId);
|
||||||
|
|
||||||
void updateVideoStatus(Long userId, int videoStatus);
|
void updateVideoStatus(Long userId, int videoStatus);
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ import com.ruoyi.cai.dto.app.query.index.AnchorListQuery;
|
|||||||
import com.ruoyi.cai.dto.app.vo.AnchorListVo;
|
import com.ruoyi.cai.dto.app.vo.AnchorListVo;
|
||||||
import com.ruoyi.cai.enums.GenderEnum;
|
import com.ruoyi.cai.enums.GenderEnum;
|
||||||
import com.ruoyi.cai.enums.SystemConfigEnum;
|
import com.ruoyi.cai.enums.SystemConfigEnum;
|
||||||
|
import com.ruoyi.cai.enums.home.AnchorListQueryTypeEnum;
|
||||||
import com.ruoyi.cai.manager.SystemConfigManager;
|
import com.ruoyi.cai.manager.SystemConfigManager;
|
||||||
import com.ruoyi.cai.mapper.AnchorMapper;
|
import com.ruoyi.cai.mapper.AnchorMapper;
|
||||||
import com.ruoyi.cai.notice.YunxinHttpService;
|
import com.ruoyi.cai.notice.YunxinHttpService;
|
||||||
@@ -120,6 +121,17 @@ public class AnchorServiceImpl extends ServiceImpl<AnchorMapper, Anchor> impleme
|
|||||||
return baseMapper.pageApp(pageQuery.build(),query);
|
return baseMapper.pageApp(pageQuery.build(),query);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Page<AnchorListVo> pageAppV2(PageQuery pageQuery, AnchorListQuery query) {
|
||||||
|
if(query.getType() != null && query.getType() != 3){
|
||||||
|
query.setCityId(null);
|
||||||
|
}
|
||||||
|
if(query.getType() == null){
|
||||||
|
query.setType(AnchorListQueryTypeEnum.DEFAULT.getCode());
|
||||||
|
}
|
||||||
|
return baseMapper.pageAppV2(pageQuery.build(),query);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Anchor getByUserId(Long userId){
|
public Anchor getByUserId(Long userId){
|
||||||
return this.getOne(Wrappers.lambdaQuery(Anchor.class).eq(Anchor::getUserId,userId));
|
return this.getOne(Wrappers.lambdaQuery(Anchor.class).eq(Anchor::getUserId,userId));
|
||||||
|
|||||||
@@ -87,6 +87,40 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
</if>
|
</if>
|
||||||
</if>
|
</if>
|
||||||
</select>
|
</select>
|
||||||
|
<select id="pageAppV2" resultType="com.ruoyi.cai.dto.app.vo.AnchorListVo">
|
||||||
|
select t1.id as user_id,t1.avatar,t1.gender,t1.city,t1.nickname,t1.usercode,t1.city_id,t1.city,t2.give_score,
|
||||||
|
t2.price,t3.status as online
|
||||||
|
from cai_user t1
|
||||||
|
join cai_anchor t2 on t1.id = t2.user_id
|
||||||
|
join cai_user_online t3 on t1.id = t3.user_id
|
||||||
|
where t1.status = 0 and t1.is_anchor = 1 and t2.index_display = 1 and t1.usercode > 100
|
||||||
|
<if test="query.cityId != null and query.cityId != ''">
|
||||||
|
and t1.city_id = #{query.cityId}
|
||||||
|
</if>
|
||||||
|
<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.openVideoStatus != null">
|
||||||
|
and t2.open_video_status = #{query.openVideoStatus}
|
||||||
|
</if>
|
||||||
|
<if test="query.type != null">
|
||||||
|
<if test="query.type == 0">
|
||||||
|
order by t2.top_show_rank desc
|
||||||
|
</if>
|
||||||
|
<if test="query.type == 1">
|
||||||
|
order by t3.top_show_rank desc
|
||||||
|
</if>
|
||||||
|
<if test="query.type == 2">
|
||||||
|
order by t2.top_show_rank desc
|
||||||
|
</if>
|
||||||
|
<if test="query.type == 3">
|
||||||
|
order by t2.top_show_rank desc
|
||||||
|
</if>
|
||||||
|
</if>
|
||||||
|
</select>
|
||||||
|
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
Reference in New Issue
Block a user