123
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package com.ruoyi.web.controller.cai.admin.op;
|
||||
|
||||
|
||||
import com.ruoyi.cai.kit.ShareUrlKit;
|
||||
import com.ruoyi.cai.service.RankService;
|
||||
import com.ruoyi.common.core.domain.R;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
@@ -24,6 +25,21 @@ public class RefreshOpController {
|
||||
|
||||
@Autowired
|
||||
private RankService rankService;
|
||||
@Autowired
|
||||
private ShareUrlKit shareUrlKit;
|
||||
|
||||
@GetMapping("/cleanShareUrlCacheByUsercode")
|
||||
public R<Void> cleanShareUrlCacheByUsercode(String usercode){
|
||||
shareUrlKit.cleanShareUrlCacheByUsercode(usercode);
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
@GetMapping("/cleanShareUrlCache")
|
||||
public R<Void> cleanShareUrlCache(){
|
||||
shareUrlKit.cleanShareUrlCache();
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
|
||||
@GetMapping("/day")
|
||||
public R<Void> day(String date,Integer type) {
|
||||
|
||||
@@ -21,7 +21,11 @@ public enum SystemConfigEnum {
|
||||
OPEN_REGISTER("1", "开启注册",SystemConfigGroupEnum.BUSINESS, new BooleanSystemConfigCheck()),
|
||||
INIT_VIDEO_MESSAGE("提示:禁止任何涉黄、任何微信QQ引导到其它平台行为", "视频接通提示语",SystemConfigGroupEnum.BUSINESS),
|
||||
HOME_DIALOG_TEXT("我是弹窗说明", "首页弹窗内容",SystemConfigGroupEnum.BUSINESS,null,"textarea"),
|
||||
SHARE_TYPE("0", "分享方式 1-分享链接 2-x4y生成",SystemConfigGroupEnum.BUSINESS),
|
||||
Y4X_TYPE("10021", "y4x的Type",SystemConfigGroupEnum.BUSINESS),
|
||||
Y4X_TOKEN("9d42f94ebb346cd6fcd6fb5b9cddcd16", "y4x的Token",SystemConfigGroupEnum.BUSINESS),
|
||||
SHARE_URL("https://h5.qx96688.com/index/invite/index", "分享链接",SystemConfigGroupEnum.BUSINESS),
|
||||
SHARE_BASE_URL("https://www.baidu.com/#/share", "真实分享链接",SystemConfigGroupEnum.BUSINESS),
|
||||
OPEN_MESSAGE("1", "开启聊天功能",SystemConfigGroupEnum.BUSINESS),
|
||||
OPEN_VIDEO("1", "开启视频功能",SystemConfigGroupEnum.BUSINESS),
|
||||
// INVITE_GIFT_RATE("100", "礼物分销成功率",SystemConfigGroupEnum.BUSINESS, new RateIntegerSystemConfigCheck()),
|
||||
|
||||
109
ruoyi-cai/src/main/java/com/ruoyi/cai/kit/ShareUrlKit.java
Normal file
109
ruoyi-cai/src/main/java/com/ruoyi/cai/kit/ShareUrlKit.java
Normal file
@@ -0,0 +1,109 @@
|
||||
package com.ruoyi.cai.kit;
|
||||
|
||||
import com.alibaba.fastjson2.JSON;
|
||||
import com.baomidou.dynamic.datasource.annotation.Slave;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.ruoyi.cai.domain.User;
|
||||
import com.ruoyi.cai.enums.SystemConfigEnum;
|
||||
import com.ruoyi.cai.manager.SystemConfigManager;
|
||||
import com.ruoyi.cai.remote.Y4xClient;
|
||||
import com.ruoyi.cai.remote.y4x.Y4xResponse;
|
||||
import com.ruoyi.cai.service.UserService;
|
||||
import com.ruoyi.cai.ws.constant.RedisConstant;
|
||||
import com.ruoyi.common.utils.StringUtils;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.data.redis.core.StringRedisTemplate;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
@Component
|
||||
@Slf4j
|
||||
public class ShareUrlKit {
|
||||
|
||||
@Autowired
|
||||
private SystemConfigManager systemConfigManager;
|
||||
@Autowired
|
||||
private StringRedisTemplate stringRedisTemplate;
|
||||
@Autowired
|
||||
private Y4xClient y4xClient;
|
||||
@Autowired
|
||||
private UserService userService;
|
||||
|
||||
private String getKey(String usercode){
|
||||
return String.format(RedisConstant.Y4X_REDIS_CACHE, usercode);
|
||||
}
|
||||
|
||||
public String getY4xCache(String usercode){
|
||||
String key = getKey(usercode);
|
||||
return stringRedisTemplate.opsForValue().get(key);
|
||||
}
|
||||
|
||||
public void setY4xCache(String usercode,String url){
|
||||
String key = getKey(usercode);
|
||||
stringRedisTemplate.opsForValue().set(key,url,20, TimeUnit.DAYS);
|
||||
}
|
||||
|
||||
public void cleanShareUrlCache(){
|
||||
log.info("清除用户分享链接缓存 - 开始");
|
||||
int current = 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 {
|
||||
cleanShareUrlCacheByUsercode(record.getUsercode());
|
||||
}catch (Exception e){
|
||||
log.error("刷新用户分享链接缓存失败",e);
|
||||
}
|
||||
}
|
||||
}
|
||||
log.info("清除用户分享链接缓存 - 结束");
|
||||
}
|
||||
|
||||
public void cleanShareUrlCacheByUsercode(String usercode){
|
||||
String key = getKey(usercode);
|
||||
stringRedisTemplate.delete(key);
|
||||
}
|
||||
|
||||
public String getShareUrl(String usercode){
|
||||
String shareType = systemConfigManager.getSystemConfig(SystemConfigEnum.SHARE_TYPE);
|
||||
if("2".equals(shareType)){
|
||||
String y4xCache = getY4xCache(usercode);
|
||||
if(StringUtils.isNotBlank(y4xCache)){
|
||||
return y4xCache;
|
||||
}
|
||||
String shareBaseUrl = systemConfigManager.getSystemConfig(SystemConfigEnum.SHARE_BASE_URL);
|
||||
String shareUrl = shareBaseUrl + "?from="+usercode;
|
||||
String type = systemConfigManager.getSystemConfig(SystemConfigEnum.Y4X_TYPE);
|
||||
String token = systemConfigManager.getSystemConfig(SystemConfigEnum.Y4X_TOKEN);
|
||||
try {
|
||||
Y4xResponse url = y4xClient.getUrl(type, token, shareUrl);
|
||||
if(StringUtils.isBlank(url.getDwz())){
|
||||
log.error("y4x请求失败 response={}", JSON.toJSONString(url));
|
||||
return getShareUrlVVVV(usercode);
|
||||
}
|
||||
setY4xCache(usercode,url.getDwz());
|
||||
return url.getDwz();
|
||||
}catch (Exception e){
|
||||
log.error("y4x请求失败",e);
|
||||
return getShareUrlVVVV(usercode);
|
||||
}
|
||||
}
|
||||
return getShareUrlVVVV(usercode);
|
||||
}
|
||||
|
||||
public String getShareUrlVVVV(String usercode){
|
||||
String shareUrl = systemConfigManager.getSystemConfig(SystemConfigEnum.SHARE_URL);
|
||||
return shareUrl + "?from="+usercode;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
22
ruoyi-cai/src/main/java/com/ruoyi/cai/remote/Y4xClient.java
Normal file
22
ruoyi-cai/src/main/java/com/ruoyi/cai/remote/Y4xClient.java
Normal file
@@ -0,0 +1,22 @@
|
||||
package com.ruoyi.cai.remote;
|
||||
|
||||
|
||||
import com.dtflys.forest.annotation.BaseRequest;
|
||||
import com.dtflys.forest.annotation.Get;
|
||||
import com.dtflys.forest.annotation.Var;
|
||||
import com.ruoyi.cai.remote.y4x.Y4xResponse;
|
||||
import com.ruoyi.yunxin.interceptor.GlodonTokenInterceptor;
|
||||
|
||||
/**
|
||||
* {"code":200,"dwz":"http:\/\/9a.y4x.cn\/6dKxHQX7"}
|
||||
* http://ys.y4x.cn/api/url.php?type=10021&pattern=2&token=9d42f94ebb346cd6fcd6fb5b9cddcd16&url=https://www.abc.com
|
||||
*/
|
||||
@BaseRequest
|
||||
public interface Y4xClient {
|
||||
|
||||
@Get(url = "http://ys.y4x.cn/api/url.php?type={type}&pattern=2&token={token}&url={url}")
|
||||
Y4xResponse getUrl(@Var("type") String type,
|
||||
@Var("token") String token,
|
||||
@Var("url") String url);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
package com.ruoyi.cai.remote.y4x;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class Y4xResponse {
|
||||
private Integer code;
|
||||
private String dwz;
|
||||
}
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.ruoyi.cai.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
@@ -12,6 +13,7 @@ import com.ruoyi.cai.dto.app.vo.invite.InviteHomeVo;
|
||||
import com.ruoyi.cai.dto.app.vo.user.UserListVo;
|
||||
import com.ruoyi.cai.enums.SystemConfigEnum;
|
||||
import com.ruoyi.cai.executor.ExecutorConstant;
|
||||
import com.ruoyi.cai.kit.ShareUrlKit;
|
||||
import com.ruoyi.cai.manager.SystemConfigManager;
|
||||
import com.ruoyi.cai.mapper.UserInviteMapper;
|
||||
import com.ruoyi.cai.service.UserInviteService;
|
||||
@@ -44,17 +46,18 @@ public class UserInviteServiceImpl extends ServiceImpl<UserInviteMapper, UserInv
|
||||
private SystemConfigManager systemConfigManager;
|
||||
@Autowired
|
||||
private UserService userService;
|
||||
@Autowired
|
||||
private ShareUrlKit shareUrlKit;
|
||||
|
||||
|
||||
@Override
|
||||
public InviteHomeVo inviteHome(Long userId) {
|
||||
User user = userService.getById(userId);
|
||||
String shareUrl = shareUrlKit.getShareUrl(user.getUsercode());
|
||||
Integer firstPayAward = systemConfigManager.getSystemConfigOfInt(SystemConfigEnum.FAST_PAY_AWARD);
|
||||
String shareUrlBase = systemConfigManager.getSystemConfig(SystemConfigEnum.SHARE_URL);
|
||||
BigDecimal payIncomeRate = systemConfigManager.getSystemConfigOfBigDecimal(SystemConfigEnum.DEFAULT_PAY_INCOME_RATE);
|
||||
BigDecimal videoIncomeRate = systemConfigManager.getSystemConfigOfBigDecimal(SystemConfigEnum.DEFAULT_VIDEO_INCOME_RATE);
|
||||
BigDecimal anchorVideoRate = systemConfigManager.getSystemConfigOfBigDecimal(SystemConfigEnum.DEFAULT_ANCHOR_VIDEO_PRICE);
|
||||
|
||||
String shareUrl = shareUrlBase + "?from="+user.getUsercode();
|
||||
InviteHomeVo vo = new InviteHomeVo();
|
||||
List<String> reward = new ArrayList<>();
|
||||
reward.add("1、邀请主播认证通过奖励#300#"+caiProperties.getCoinName());
|
||||
|
||||
@@ -10,4 +10,5 @@ public class RedisConstant {
|
||||
public static final String CALLER_ROOM_DATA = REDIS_P + "caller:%s";
|
||||
public static final String USER_ROOM_DATA = REDIS_P + "room:%s:%s";
|
||||
public static final String INIT_ROOM_LOCK = REDIS_P + "lock:initRoom:%s-%s";
|
||||
public static final String Y4X_REDIS_CACHE = REDIS_P + "shareUrl:y4x:%s";
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user