直播
This commit is contained in:
@@ -9,5 +9,6 @@ import org.springframework.stereotype.Component;
|
|||||||
@ConfigurationProperties(prefix = "cai")
|
@ConfigurationProperties(prefix = "cai")
|
||||||
public class CaiProperties {
|
public class CaiProperties {
|
||||||
|
|
||||||
private String webSocketUrl = "ws://localhost:8080?token=%s&room_id=%s";
|
private String homeName = "蜜瓜";
|
||||||
|
private String coinName = "紫贝";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,93 @@
|
|||||||
|
package com.ruoyi.cai.controller.admin;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson2.JSON;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.ruoyi.cai.domain.User;
|
||||||
|
import com.ruoyi.cai.service.UserService;
|
||||||
|
import com.ruoyi.common.core.domain.R;
|
||||||
|
import com.ruoyi.common.exception.ServiceException;
|
||||||
|
import com.ruoyi.yunxin.client.ImUserClient;
|
||||||
|
import com.ruoyi.yunxin.req.CreateUserReq;
|
||||||
|
import com.ruoyi.yunxin.req.UpdateTokenReq;
|
||||||
|
import com.ruoyi.yunxin.resp.YxCommonR;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Validated
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/cai/im")
|
||||||
|
@Slf4j
|
||||||
|
public class ImController {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ImUserClient imUserClient;
|
||||||
|
@Autowired
|
||||||
|
private UserService userService;
|
||||||
|
|
||||||
|
@GetMapping("/register")
|
||||||
|
public R<Void> registerIm(Long userId){
|
||||||
|
User user = userService.getById(userId);
|
||||||
|
if(user == null){
|
||||||
|
return R.fail("用户不存在");
|
||||||
|
}
|
||||||
|
register(user);
|
||||||
|
return R.ok();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void register(User user){
|
||||||
|
CreateUserReq req = new CreateUserReq();
|
||||||
|
req.setAccid(user.getId()+"");
|
||||||
|
req.setToken(user.getImToken());
|
||||||
|
req.setName(user.getNickname());
|
||||||
|
YxCommonR r = imUserClient.createUser(req);
|
||||||
|
if(!r.isSuccess()){
|
||||||
|
if(r.getCode() == 414){
|
||||||
|
UpdateTokenReq req1 = new UpdateTokenReq();
|
||||||
|
req1.setAccid(user.getId()+"");
|
||||||
|
req1.setToken(user.getImToken());
|
||||||
|
YxCommonR commonR = imUserClient.updateToken(req1);
|
||||||
|
if(!commonR.isSuccess()){
|
||||||
|
log.error("刷新云token失败,{}", JSON.toJSONString(commonR));
|
||||||
|
throw new ServiceException("注册失败,云信异常");
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
log.error("创建云信账号失败,{}", JSON.toJSONString(r));
|
||||||
|
throw new ServiceException("注册失败,云信异常");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/registerAll")
|
||||||
|
public R<Void> registerAllIm(){
|
||||||
|
int current = 0;
|
||||||
|
int success = 0;
|
||||||
|
int fail = 0;
|
||||||
|
while (true){
|
||||||
|
current++;
|
||||||
|
Page<User> page = new Page<>(current,100);
|
||||||
|
Page<User> data = userService.page(page);
|
||||||
|
List<User> records = data.getRecords();
|
||||||
|
if(records.isEmpty()){
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
for (User record : records) {
|
||||||
|
try {
|
||||||
|
register(record);
|
||||||
|
success++;
|
||||||
|
}catch (Exception e){
|
||||||
|
log.error("刷新token失败",e);
|
||||||
|
fail++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return R.ok(String.format("总数:%s,成功数:%s,失败数:%s", success+fail,success,fail));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
package com.ruoyi.cai.controller.app;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/api/user/member")
|
||||||
|
@Slf4j
|
||||||
|
@Tag(name = "用户会员接口")
|
||||||
|
public class UserMemberController {
|
||||||
|
}
|
||||||
@@ -5,6 +5,7 @@ import com.alibaba.fastjson2.JSON;
|
|||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import com.ruoyi.cai.config.CaiProperties;
|
||||||
import com.ruoyi.cai.domain.*;
|
import com.ruoyi.cai.domain.*;
|
||||||
import com.ruoyi.cai.dto.admin.vo.AccountAdminVo;
|
import com.ruoyi.cai.dto.admin.vo.AccountAdminVo;
|
||||||
import com.ruoyi.cai.dto.video.VideoSettleResp;
|
import com.ruoyi.cai.dto.video.VideoSettleResp;
|
||||||
@@ -52,6 +53,8 @@ public class AccountServiceImpl extends ServiceImpl<AccountMapper, Account> impl
|
|||||||
private AccountChangeLogService accountChangeLogService;
|
private AccountChangeLogService accountChangeLogService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private SystemConfigManager systemConfigManager;
|
private SystemConfigManager systemConfigManager;
|
||||||
|
@Autowired
|
||||||
|
private CaiProperties caiProperties;
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -172,11 +175,11 @@ public class AccountServiceImpl extends ServiceImpl<AccountMapper, Account> impl
|
|||||||
throw new ServiceException("无效账号");
|
throw new ServiceException("无效账号");
|
||||||
}
|
}
|
||||||
if(account.getIncomeCoin() < incomeCoin){
|
if(account.getIncomeCoin() < incomeCoin){
|
||||||
throw new ServiceException("需"+incomeCoin+"紫贝才可提现");
|
throw new ServiceException("需"+incomeCoin+caiProperties.getCoinName()+"才可提现");
|
||||||
}
|
}
|
||||||
boolean incs = baseMapper.decrIncomeCoin(userId, incomeCoin);
|
boolean incs = baseMapper.decrIncomeCoin(userId, incomeCoin);
|
||||||
if(!incs){
|
if(!incs){
|
||||||
throw new ServiceException("需"+incomeCoin+"紫贝才可提现");
|
throw new ServiceException("需"+incomeCoin+caiProperties.getCoinName()+"才可提现");
|
||||||
}
|
}
|
||||||
accountChangeLogService.saveLogNoAdmin(user.getId(),user.getUsercode(), RechargeTypeEnum.COIN_INCOME,AccountBusinessEnum.WITHDRAW.getSourceEnum(),incomeCoin,traceId);
|
accountChangeLogService.saveLogNoAdmin(user.getId(),user.getUsercode(), RechargeTypeEnum.COIN_INCOME,AccountBusinessEnum.WITHDRAW.getSourceEnum(),incomeCoin,traceId);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package com.ruoyi.cai.service.impl;
|
|||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import com.ruoyi.cai.config.CaiProperties;
|
||||||
import com.ruoyi.cai.domain.UserInvite;
|
import com.ruoyi.cai.domain.UserInvite;
|
||||||
import com.ruoyi.cai.dto.admin.vo.UserInviteAdminVo;
|
import com.ruoyi.cai.dto.admin.vo.UserInviteAdminVo;
|
||||||
import com.ruoyi.cai.dto.app.dto.InviteCountDTO;
|
import com.ruoyi.cai.dto.app.dto.InviteCountDTO;
|
||||||
@@ -11,6 +12,7 @@ import com.ruoyi.cai.dto.app.vo.user.UserListVo;
|
|||||||
import com.ruoyi.cai.mapper.UserInviteMapper;
|
import com.ruoyi.cai.mapper.UserInviteMapper;
|
||||||
import com.ruoyi.cai.service.UserInviteService;
|
import com.ruoyi.cai.service.UserInviteService;
|
||||||
import com.ruoyi.common.core.domain.PageQuery;
|
import com.ruoyi.common.core.domain.PageQuery;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -29,13 +31,15 @@ public class UserInviteServiceImpl extends ServiceImpl<UserInviteMapper, UserInv
|
|||||||
public UserInvite getByUserId(Long id) {
|
public UserInvite getByUserId(Long id) {
|
||||||
return this.getOne(Wrappers.lambdaQuery(UserInvite.class).eq(UserInvite::getUserId,id).last("limit 1"));
|
return this.getOne(Wrappers.lambdaQuery(UserInvite.class).eq(UserInvite::getUserId,id).last("limit 1"));
|
||||||
}
|
}
|
||||||
|
@Autowired
|
||||||
|
private CaiProperties caiProperties;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public InviteHomeVo inviteHome(Long userId) {
|
public InviteHomeVo inviteHome(Long userId) {
|
||||||
InviteHomeVo vo = new InviteHomeVo();
|
InviteHomeVo vo = new InviteHomeVo();
|
||||||
List<String> reward = new ArrayList<>();
|
List<String> reward = new ArrayList<>();
|
||||||
reward.add("1、邀请主播认证通过奖励#300#紫贝");
|
reward.add("1、邀请主播认证通过奖励#300#"+caiProperties.getCoinName());
|
||||||
reward.add("2、邀请用户首次充值奖励#1200#紫贝");
|
reward.add("2、邀请用户首次充值奖励#1200#"+caiProperties.getCoinName());
|
||||||
reward.add("3、主播视频、礼物、会员分成#50%#");
|
reward.add("3、主播视频、礼物、会员分成#50%#");
|
||||||
reward.add("4、邀请男用户充值提成#30%#");
|
reward.add("4、邀请男用户充值提成#30%#");
|
||||||
reward.add("5、邀请主播收益#7%#");
|
reward.add("5、邀请主播收益#7%#");
|
||||||
|
|||||||
Reference in New Issue
Block a user