From 69a72b9e89a10aaacd11cf12997aecfdfb4a4760 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E8=89=AF=28004796=29?= Date: Fri, 12 Jan 2024 19:01:24 +0800 Subject: [PATCH] =?UTF-8?q?=E7=9B=B4=E6=92=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ruoyi/cai/config/CaiProperties.java | 3 +- .../cai/controller/admin/ImController.java | 93 +++++++++++++++++++ .../controller/app/UserMemberController.java | 13 +++ .../cai/service/impl/AccountServiceImpl.java | 7 +- .../service/impl/UserInviteServiceImpl.java | 8 +- 5 files changed, 119 insertions(+), 5 deletions(-) create mode 100644 ruoyi-cai/src/main/java/com/ruoyi/cai/controller/admin/ImController.java create mode 100644 ruoyi-cai/src/main/java/com/ruoyi/cai/controller/app/UserMemberController.java diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/config/CaiProperties.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/config/CaiProperties.java index e0a62d20..852b82ab 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/config/CaiProperties.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/config/CaiProperties.java @@ -9,5 +9,6 @@ import org.springframework.stereotype.Component; @ConfigurationProperties(prefix = "cai") public class CaiProperties { - private String webSocketUrl = "ws://localhost:8080?token=%s&room_id=%s"; + private String homeName = "蜜瓜"; + private String coinName = "紫贝"; } diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/admin/ImController.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/admin/ImController.java new file mode 100644 index 00000000..0ce65014 --- /dev/null +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/admin/ImController.java @@ -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 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 registerAllIm(){ + int current = 0; + int success = 0; + int fail = 0; + while (true){ + current++; + Page page = new Page<>(current,100); + Page data = userService.page(page); + List 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)); + } +} diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/app/UserMemberController.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/app/UserMemberController.java new file mode 100644 index 00000000..4cc5a3c9 --- /dev/null +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/app/UserMemberController.java @@ -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 { +} diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/AccountServiceImpl.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/AccountServiceImpl.java index e65aeea2..5493c7ef 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/AccountServiceImpl.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/AccountServiceImpl.java @@ -5,6 +5,7 @@ import com.alibaba.fastjson2.JSON; 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.config.CaiProperties; import com.ruoyi.cai.domain.*; import com.ruoyi.cai.dto.admin.vo.AccountAdminVo; import com.ruoyi.cai.dto.video.VideoSettleResp; @@ -52,6 +53,8 @@ public class AccountServiceImpl extends ServiceImpl impl private AccountChangeLogService accountChangeLogService; @Autowired private SystemConfigManager systemConfigManager; + @Autowired + private CaiProperties caiProperties; @Override @@ -172,11 +175,11 @@ public class AccountServiceImpl extends ServiceImpl impl throw new ServiceException("无效账号"); } if(account.getIncomeCoin() < incomeCoin){ - throw new ServiceException("需"+incomeCoin+"紫贝才可提现"); + throw new ServiceException("需"+incomeCoin+caiProperties.getCoinName()+"才可提现"); } boolean incs = baseMapper.decrIncomeCoin(userId, incomeCoin); 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); } diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/UserInviteServiceImpl.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/UserInviteServiceImpl.java index 42168d41..874b54e1 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/UserInviteServiceImpl.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/UserInviteServiceImpl.java @@ -3,6 +3,7 @@ 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.config.CaiProperties; import com.ruoyi.cai.domain.UserInvite; import com.ruoyi.cai.dto.admin.vo.UserInviteAdminVo; 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.service.UserInviteService; import com.ruoyi.common.core.domain.PageQuery; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; @@ -29,13 +31,15 @@ public class UserInviteServiceImpl extends ServiceImpl reward = new ArrayList<>(); - reward.add("1、邀请主播认证通过奖励#300#紫贝"); - reward.add("2、邀请用户首次充值奖励#1200#紫贝"); + reward.add("1、邀请主播认证通过奖励#300#"+caiProperties.getCoinName()); + reward.add("2、邀请用户首次充值奖励#1200#"+caiProperties.getCoinName()); reward.add("3、主播视频、礼物、会员分成#50%#"); reward.add("4、邀请男用户充值提成#30%#"); reward.add("5、邀请主播收益#7%#");