init
This commit is contained in:
55
ruoyi-cai/src/main/java/com/ruoyi/cai/cache/DynamicTotalCache.java
vendored
Normal file
55
ruoyi-cai/src/main/java/com/ruoyi/cai/cache/DynamicTotalCache.java
vendored
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
package com.ruoyi.cai.cache;
|
||||||
|
|
||||||
|
import com.ruoyi.cai.constant.RedisConstant;
|
||||||
|
import com.ruoyi.cai.enums.SystemConfigEnum;
|
||||||
|
import com.ruoyi.cai.manager.SystemConfigManager;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.data.redis.core.StringRedisTemplate;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.time.format.DateTimeFormatter;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
|
@Component
|
||||||
|
public class DynamicTotalCache {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private SystemConfigManager systemConfigManager;
|
||||||
|
@Autowired
|
||||||
|
private StringRedisTemplate redisTemplate;
|
||||||
|
|
||||||
|
|
||||||
|
public String getKey(Long userId){
|
||||||
|
String now = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd"));
|
||||||
|
return String.format(RedisConstant.DYNAMIC_TOTAL_CACHE_REDIS,now,userId);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void add(Long userId){
|
||||||
|
String key = getKey(userId);
|
||||||
|
redisTemplate.opsForValue().increment(key);
|
||||||
|
redisTemplate.expire(key,1, TimeUnit.DAYS);
|
||||||
|
}
|
||||||
|
|
||||||
|
public int get(Long userId){
|
||||||
|
String va = redisTemplate.opsForValue().get(getKey(userId));
|
||||||
|
if(va == null){
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
return Integer.parseInt(va);
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean checkAllPush(Long userId){
|
||||||
|
String va = redisTemplate.opsForValue().get(getKey(userId));
|
||||||
|
if(va == null){
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
Integer config = systemConfigManager.getSystemConfigOfInt(SystemConfigEnum.DAY_MAX_DYNAMIC);
|
||||||
|
if(config > Integer.parseInt(va)){
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -77,8 +77,6 @@ public class ChatManager {
|
|||||||
callResp.setToNickname(toUser.getNickname());
|
callResp.setToNickname(toUser.getNickname());
|
||||||
callResp.setToAvatar(toUser.getAvatar());
|
callResp.setToAvatar(toUser.getAvatar());
|
||||||
callResp.setSocketUrl(weSocketUrl);
|
callResp.setSocketUrl(weSocketUrl);
|
||||||
callResp.setSkillName(anchor.getSkillName());
|
|
||||||
callResp.setSkillIcon(anchor.getSkillIcon());
|
|
||||||
callResp.setPrice(anchor.getPrice());
|
callResp.setPrice(anchor.getPrice());
|
||||||
callResp.setScore(anchor.getGiveScore());
|
callResp.setScore(anchor.getGiveScore());
|
||||||
callResp.setServiceCount(anchor.getServiceCount());
|
callResp.setServiceCount(anchor.getServiceCount());
|
||||||
@@ -117,8 +115,6 @@ public class ChatManager {
|
|||||||
getRoomResp.setToNickname(toUser.getNickname());
|
getRoomResp.setToNickname(toUser.getNickname());
|
||||||
getRoomResp.setToAvatar(toUser.getAvatar());
|
getRoomResp.setToAvatar(toUser.getAvatar());
|
||||||
getRoomResp.setSocketUrl(weSocketUrl);
|
getRoomResp.setSocketUrl(weSocketUrl);
|
||||||
getRoomResp.setSkillName(anchor.getSkillName());
|
|
||||||
getRoomResp.setSkillIcon(anchor.getSkillIcon());
|
|
||||||
getRoomResp.setPrice(anchor.getPrice());
|
getRoomResp.setPrice(anchor.getPrice());
|
||||||
getRoomResp.setScore(anchor.getGiveScore());
|
getRoomResp.setScore(anchor.getGiveScore());
|
||||||
getRoomResp.setServiceCount(anchor.getServiceCount());
|
getRoomResp.setServiceCount(anchor.getServiceCount());
|
||||||
|
|||||||
@@ -4,4 +4,5 @@ public class RedisConstant {
|
|||||||
public static final String REDIS_P = "cai-";
|
public static final String REDIS_P = "cai-";
|
||||||
public static final String SYSTEM_CONFIG = REDIS_P + "system-config";
|
public static final String SYSTEM_CONFIG = REDIS_P + "system-config";
|
||||||
public static final String CITY_CACHE_REDIS = REDIS_P + "city";
|
public static final String CITY_CACHE_REDIS = REDIS_P + "city";
|
||||||
|
public static final String DYNAMIC_TOTAL_CACHE_REDIS = REDIS_P + "synamicTotal:%s:%s";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,16 +1,20 @@
|
|||||||
package com.ruoyi.cai.controller.app;
|
package com.ruoyi.cai.controller.app;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.ruoyi.cai.domain.CaiBanner;
|
||||||
import com.ruoyi.cai.dto.app.query.AnchorListQuery;
|
import com.ruoyi.cai.dto.app.query.AnchorListQuery;
|
||||||
import com.ruoyi.cai.dto.app.query.UserQuery;
|
import com.ruoyi.cai.dto.app.query.UserQuery;
|
||||||
import com.ruoyi.cai.dto.app.vo.AnchorListVo;
|
import com.ruoyi.cai.dto.app.vo.AnchorListVo;
|
||||||
|
import com.ruoyi.cai.dto.app.vo.IndexBannerVo;
|
||||||
import com.ruoyi.cai.dto.app.vo.UserInfoVo;
|
import com.ruoyi.cai.dto.app.vo.UserInfoVo;
|
||||||
import com.ruoyi.cai.dto.app.vo.UserListVo;
|
import com.ruoyi.cai.dto.app.vo.UserListVo;
|
||||||
import com.ruoyi.cai.service.CaiAnchorService;
|
import com.ruoyi.cai.service.CaiAnchorService;
|
||||||
|
import com.ruoyi.cai.service.CaiBannerService;
|
||||||
import com.ruoyi.cai.service.CaiUserService;
|
import com.ruoyi.cai.service.CaiUserService;
|
||||||
import com.ruoyi.common.core.domain.PageQuery;
|
import com.ruoyi.common.core.domain.PageQuery;
|
||||||
import com.ruoyi.common.core.domain.R;
|
import com.ruoyi.common.core.domain.R;
|
||||||
import com.ruoyi.common.core.page.TableDataInfo;
|
import com.ruoyi.common.core.page.TableDataInfo;
|
||||||
|
import com.ruoyi.common.utils.BeanConvertUtil;
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@@ -18,6 +22,8 @@ import org.springframework.web.bind.annotation.GetMapping;
|
|||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/api/index")
|
@RequestMapping("/api/index")
|
||||||
@@ -28,6 +34,15 @@ public class CaiIndexController {
|
|||||||
private CaiAnchorService anchorService;
|
private CaiAnchorService anchorService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private CaiUserService caiUserService;
|
private CaiUserService caiUserService;
|
||||||
|
@Autowired
|
||||||
|
private CaiBannerService bannerService;
|
||||||
|
|
||||||
|
@GetMapping("/banner")
|
||||||
|
@Operation(summary = "获取首页banner图")
|
||||||
|
public R<List<IndexBannerVo>> banner(){
|
||||||
|
List<CaiBanner> res = bannerService.index();
|
||||||
|
return R.ok(BeanConvertUtil.convertListTo(res, IndexBannerVo::new));
|
||||||
|
}
|
||||||
|
|
||||||
@GetMapping("/anchor/page")
|
@GetMapping("/anchor/page")
|
||||||
@Operation(summary = "查询主播-分页")
|
@Operation(summary = "查询主播-分页")
|
||||||
|
|||||||
@@ -1,15 +1,11 @@
|
|||||||
package com.ruoyi.cai.controller.app;
|
package com.ruoyi.cai.controller.app;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import com.ruoyi.cai.domain.CaiCitys;
|
import com.ruoyi.cai.domain.*;
|
||||||
import com.ruoyi.cai.domain.CaiGoods;
|
import com.ruoyi.cai.dto.app.vo.GiftVo;
|
||||||
import com.ruoyi.cai.domain.CaiReportCate;
|
import com.ruoyi.cai.service.*;
|
||||||
import com.ruoyi.cai.domain.CaiWithdrawExchange;
|
|
||||||
import com.ruoyi.cai.service.CaiCitysService;
|
|
||||||
import com.ruoyi.cai.service.CaiGoodsService;
|
|
||||||
import com.ruoyi.cai.service.CaiReportCateService;
|
|
||||||
import com.ruoyi.cai.service.CaiWithdrawExchangeService;
|
|
||||||
import com.ruoyi.common.core.domain.R;
|
import com.ruoyi.common.core.domain.R;
|
||||||
|
import com.ruoyi.common.utils.BeanConvertUtil;
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@@ -33,6 +29,8 @@ public class CaiSettingAppController {
|
|||||||
private CaiReportCateService reportCateService;
|
private CaiReportCateService reportCateService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private CaiCitysService citysService;
|
private CaiCitysService citysService;
|
||||||
|
@Autowired
|
||||||
|
private CaiGiftService giftService;
|
||||||
|
|
||||||
@GetMapping("/goods")
|
@GetMapping("/goods")
|
||||||
@Operation(summary = "充值配置")
|
@Operation(summary = "充值配置")
|
||||||
@@ -64,4 +62,12 @@ public class CaiSettingAppController {
|
|||||||
public R<Map<Long,String>> city(){
|
public R<Map<Long,String>> city(){
|
||||||
return R.ok(citysService.all());
|
return R.ok(citysService.all());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GetMapping("/gift")
|
||||||
|
@Operation(summary = "礼物配置")
|
||||||
|
public R<List<GiftVo>> gift(){
|
||||||
|
List<CaiGift> res = giftService.all();
|
||||||
|
return R.ok(BeanConvertUtil.convertListTo(res, GiftVo::new));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,10 +24,6 @@ public class CaiBanner implements Serializable {
|
|||||||
*/
|
*/
|
||||||
@TableId(value = "id")
|
@TableId(value = "id")
|
||||||
private Integer id;
|
private Integer id;
|
||||||
/**
|
|
||||||
* 0 图片 1 视频
|
|
||||||
*/
|
|
||||||
private Integer type;
|
|
||||||
/**
|
/**
|
||||||
* 类别 1 首页轮播
|
* 类别 1 首页轮播
|
||||||
*/
|
*/
|
||||||
|
|||||||
30
ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/vo/GiftVo.java
Normal file
30
ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/vo/GiftVo.java
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
package com.ruoyi.cai.dto.app.vo;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class GiftVo implements Serializable {
|
||||||
|
private Integer id;
|
||||||
|
/**
|
||||||
|
* 类型 0 普通礼物 1svga礼物
|
||||||
|
*/
|
||||||
|
private Integer type;
|
||||||
|
/**
|
||||||
|
* 礼物名称
|
||||||
|
*/
|
||||||
|
private String name;
|
||||||
|
/**
|
||||||
|
* 礼物价格
|
||||||
|
*/
|
||||||
|
private Long price;
|
||||||
|
/**
|
||||||
|
* 礼物图片地址
|
||||||
|
*/
|
||||||
|
private String img;
|
||||||
|
/**
|
||||||
|
* svga地址
|
||||||
|
*/
|
||||||
|
private String svga;
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
package com.ruoyi.cai.dto.app.vo;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class IndexBannerVo {
|
||||||
|
private String title;
|
||||||
|
private String image;
|
||||||
|
private String linkType;
|
||||||
|
private String linkUrl;
|
||||||
|
}
|
||||||
@@ -15,10 +15,16 @@ public class UserGiftVo {
|
|||||||
*/
|
*/
|
||||||
@Schema(description = "礼物ID")
|
@Schema(description = "礼物ID")
|
||||||
private Long giftId;
|
private Long giftId;
|
||||||
|
@Schema(description = "礼物名称")
|
||||||
|
private String name;
|
||||||
|
@Schema(description = "礼物图片")
|
||||||
|
private String img;
|
||||||
|
@Schema(description = "礼物价格")
|
||||||
|
private String price;
|
||||||
/**
|
/**
|
||||||
* 礼物数量
|
* 礼物数量
|
||||||
*/
|
*/
|
||||||
@Schema(description = "礼物数量")
|
@Schema(description = "礼物数量")
|
||||||
private Long giftCount;
|
private Long count;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -44,14 +44,17 @@ public class UserInfoVo {
|
|||||||
@Schema(description = "用户状态")
|
@Schema(description = "用户状态")
|
||||||
private String status;
|
private String status;
|
||||||
|
|
||||||
|
@Schema(description = "用户状态描述")
|
||||||
|
private String statusMsg;
|
||||||
|
|
||||||
@Schema(description = "相册集合")
|
@Schema(description = "相册集合")
|
||||||
private List<String> albumList = Collections.emptyList();
|
private List<String> albumList = Collections.emptyList();
|
||||||
|
|
||||||
@Schema(description = "守护列表")
|
@Schema(description = "守护列表")
|
||||||
private List<GuardTotalVo> guardTotalList = Collections.emptyList();
|
private List<GuardTotalVo> guardTotalList = Collections.emptyList();
|
||||||
|
|
||||||
@Schema(description = "动态列表")
|
@Schema(description = "最近的动态图片")
|
||||||
private List<DynamicVo> dynamicList = Collections.emptyList();
|
private List<String> dynamicList = Collections.emptyList();
|
||||||
|
|
||||||
@Schema(description = "礼物列表")
|
@Schema(description = "礼物列表")
|
||||||
private List<UserGiftVo> giftList = Collections.emptyList();
|
private List<UserGiftVo> giftList = Collections.emptyList();
|
||||||
|
|||||||
@@ -0,0 +1,20 @@
|
|||||||
|
package com.ruoyi.cai.dto.app.vo.info;
|
||||||
|
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class GuardInfoVo {
|
||||||
|
|
||||||
|
private Integer guardPrice;
|
||||||
|
|
||||||
|
private List<String> avatarList;
|
||||||
|
|
||||||
|
private String diffNum;
|
||||||
|
|
||||||
|
private String nickname;
|
||||||
|
|
||||||
|
private String avatar;
|
||||||
|
}
|
||||||
@@ -10,6 +10,7 @@ import lombok.Getter;
|
|||||||
*/
|
*/
|
||||||
public enum SystemConfigEnum {
|
public enum SystemConfigEnum {
|
||||||
GUARD_PRICE("1314", "守护价格"),
|
GUARD_PRICE("1314", "守护价格"),
|
||||||
|
DAY_MAX_DYNAMIC("10", "每日运行发布的最大动态数"),
|
||||||
|
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|||||||
@@ -3,6 +3,8 @@ package com.ruoyi.cai.service;
|
|||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import com.ruoyi.cai.domain.CaiBanner;
|
import com.ruoyi.cai.domain.CaiBanner;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 轮播Service接口
|
* 轮播Service接口
|
||||||
*
|
*
|
||||||
@@ -10,4 +12,5 @@ import com.ruoyi.cai.domain.CaiBanner;
|
|||||||
* @date 2023-12-21
|
* @date 2023-12-21
|
||||||
*/
|
*/
|
||||||
public interface CaiBannerService extends IService<CaiBanner> {
|
public interface CaiBannerService extends IService<CaiBanner> {
|
||||||
|
List<CaiBanner> index();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,8 @@ package com.ruoyi.cai.service;
|
|||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import com.ruoyi.cai.domain.CaiGift;
|
import com.ruoyi.cai.domain.CaiGift;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 礼物Service接口
|
* 礼物Service接口
|
||||||
*
|
*
|
||||||
@@ -11,4 +13,5 @@ import com.ruoyi.cai.domain.CaiGift;
|
|||||||
*/
|
*/
|
||||||
public interface CaiGiftService extends IService<CaiGift> {
|
public interface CaiGiftService extends IService<CaiGift> {
|
||||||
|
|
||||||
|
List<CaiGift> all();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,11 +1,14 @@
|
|||||||
package com.ruoyi.cai.service.impl;
|
package com.ruoyi.cai.service.impl;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.ruoyi.cai.domain.CaiBanner;
|
import com.ruoyi.cai.domain.CaiBanner;
|
||||||
import com.ruoyi.cai.mapper.CaiBannerMapper;
|
import com.ruoyi.cai.mapper.CaiBannerMapper;
|
||||||
import com.ruoyi.cai.service.CaiBannerService;
|
import com.ruoyi.cai.service.CaiBannerService;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 轮播Service业务层处理
|
* 轮播Service业务层处理
|
||||||
*
|
*
|
||||||
@@ -15,4 +18,9 @@ import org.springframework.stereotype.Service;
|
|||||||
@Service
|
@Service
|
||||||
public class CaiBannerServiceImpl extends ServiceImpl<CaiBannerMapper,CaiBanner> implements CaiBannerService {
|
public class CaiBannerServiceImpl extends ServiceImpl<CaiBannerMapper,CaiBanner> implements CaiBannerService {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<CaiBanner> index() {
|
||||||
|
List<CaiBanner> list = this.list(Wrappers.lambdaQuery(CaiBanner.class));
|
||||||
|
return list;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,17 +4,23 @@ import cn.hutool.core.collection.CollectionUtil;
|
|||||||
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.cache.DynamicTotalCache;
|
||||||
import com.ruoyi.cai.domain.CaiDynamic;
|
import com.ruoyi.cai.domain.CaiDynamic;
|
||||||
import com.ruoyi.cai.domain.CaiDynamicImages;
|
import com.ruoyi.cai.domain.CaiDynamicImages;
|
||||||
|
import com.ruoyi.cai.domain.CaiUser;
|
||||||
import com.ruoyi.cai.dto.app.query.DynamicAddReq;
|
import com.ruoyi.cai.dto.app.query.DynamicAddReq;
|
||||||
import com.ruoyi.cai.dto.app.query.DynamicQuery;
|
import com.ruoyi.cai.dto.app.query.DynamicQuery;
|
||||||
import com.ruoyi.cai.dto.app.vo.DynamicImageVo;
|
import com.ruoyi.cai.dto.app.vo.DynamicImageVo;
|
||||||
import com.ruoyi.cai.dto.app.vo.DynamicListVo;
|
import com.ruoyi.cai.dto.app.vo.DynamicListVo;
|
||||||
import com.ruoyi.cai.dto.app.vo.DynamicVo;
|
import com.ruoyi.cai.dto.app.vo.DynamicVo;
|
||||||
|
import com.ruoyi.cai.enums.SystemConfigEnum;
|
||||||
|
import com.ruoyi.cai.manager.SystemConfigManager;
|
||||||
import com.ruoyi.cai.mapper.CaiDynamicMapper;
|
import com.ruoyi.cai.mapper.CaiDynamicMapper;
|
||||||
import com.ruoyi.cai.service.CaiDynamicImagesService;
|
import com.ruoyi.cai.service.CaiDynamicImagesService;
|
||||||
import com.ruoyi.cai.service.CaiDynamicService;
|
import com.ruoyi.cai.service.CaiDynamicService;
|
||||||
|
import com.ruoyi.cai.service.CaiUserService;
|
||||||
import com.ruoyi.common.core.domain.PageQuery;
|
import com.ruoyi.common.core.domain.PageQuery;
|
||||||
|
import com.ruoyi.common.exception.ServiceException;
|
||||||
import com.ruoyi.common.utils.BeanConvertUtil;
|
import com.ruoyi.common.utils.BeanConvertUtil;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@@ -36,6 +42,12 @@ public class CaiDynamicServiceImpl extends ServiceImpl<CaiDynamicMapper,CaiDynam
|
|||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private CaiDynamicImagesService dynamicImagesService;
|
private CaiDynamicImagesService dynamicImagesService;
|
||||||
|
@Autowired
|
||||||
|
private DynamicTotalCache dynamicTotalCache;
|
||||||
|
@Autowired
|
||||||
|
private CaiUserService userService;
|
||||||
|
@Autowired
|
||||||
|
private SystemConfigManager systemConfigManager;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<DynamicVo> selectDynamicList(Long userId, Integer limit) {
|
public List<DynamicVo> selectDynamicList(Long userId, Integer limit) {
|
||||||
@@ -79,7 +91,26 @@ public class CaiDynamicServiceImpl extends ServiceImpl<CaiDynamicMapper,CaiDynam
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void saveDynamic(DynamicAddReq res) {
|
public void saveDynamic(DynamicAddReq res) {
|
||||||
|
if(res.getImageList() != null && res.getImageList().size() > 9){
|
||||||
|
throw new ServiceException("最多只能发送9张照片哦");
|
||||||
|
}
|
||||||
|
CaiUser user = userService.getById(res.getUserId());
|
||||||
|
if(user.getSendDynamic() == 0){
|
||||||
|
throw new ServiceException("您已被禁止发送动态");
|
||||||
|
}
|
||||||
|
Integer maxNum = systemConfigManager.getSystemConfigOfInt(SystemConfigEnum.DAY_MAX_DYNAMIC);
|
||||||
|
if(maxNum > 0){
|
||||||
|
int alreadySendNum = dynamicTotalCache.get(res.getUserId());
|
||||||
|
if(alreadySendNum > maxNum){
|
||||||
|
throw new ServiceException("每天最大可发送"+maxNum+"条动态");
|
||||||
|
}
|
||||||
|
}
|
||||||
CaiDynamic caiDynamic = BeanConvertUtil.convertTo(res, CaiDynamic::new);
|
CaiDynamic caiDynamic = BeanConvertUtil.convertTo(res, CaiDynamic::new);
|
||||||
|
if(CollectionUtil.isNotEmpty(res.getImageList())){
|
||||||
|
caiDynamic.setIsAttach(1);
|
||||||
|
}else{
|
||||||
|
caiDynamic.setIsAttach(0);
|
||||||
|
}
|
||||||
this.save(caiDynamic);
|
this.save(caiDynamic);
|
||||||
List<DynamicImageVo> imageList = res.getImageList();
|
List<DynamicImageVo> imageList = res.getImageList();
|
||||||
if(CollectionUtil.isNotEmpty(imageList)){
|
if(CollectionUtil.isNotEmpty(imageList)){
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.ruoyi.cai.service.impl;
|
package com.ruoyi.cai.service.impl;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.ruoyi.cai.domain.CaiGift;
|
import com.ruoyi.cai.domain.CaiGift;
|
||||||
import com.ruoyi.cai.mapper.CaiGiftMapper;
|
import com.ruoyi.cai.mapper.CaiGiftMapper;
|
||||||
@@ -7,6 +8,8 @@ import com.ruoyi.cai.service.CaiGiftService;
|
|||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 礼物Service业务层处理
|
* 礼物Service业务层处理
|
||||||
*
|
*
|
||||||
@@ -17,4 +20,10 @@ import org.springframework.stereotype.Service;
|
|||||||
@Service
|
@Service
|
||||||
public class CaiGiftServiceImpl extends ServiceImpl<CaiGiftMapper,CaiGift> implements CaiGiftService {
|
public class CaiGiftServiceImpl extends ServiceImpl<CaiGiftMapper,CaiGift> implements CaiGiftService {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<CaiGift> all() {
|
||||||
|
return this.list(Wrappers.lambdaQuery(CaiGift.class).eq(CaiGift::getStatus,0)
|
||||||
|
.orderByAsc(CaiGift::getSort)
|
||||||
|
.select(CaiGift::getId,CaiGift::getName,CaiGift::getPrice,CaiGift::getImg,CaiGift::getSvga));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -68,6 +68,7 @@ public class CaiUserServiceImpl extends ServiceImpl<CaiUserMapper, CaiUser> impl
|
|||||||
}
|
}
|
||||||
CaiAnchor anchor = anchorService.getByUserId(userId);
|
CaiAnchor anchor = anchorService.getByUserId(userId);
|
||||||
UserInfoVo vo = new UserInfoVo();
|
UserInfoVo vo = new UserInfoVo();
|
||||||
|
vo.setUserId(userId);
|
||||||
vo.setIsAnchor(caiUser.getIsAnchor());
|
vo.setIsAnchor(caiUser.getIsAnchor());
|
||||||
vo.setUsercode(caiUser.getUsercode());
|
vo.setUsercode(caiUser.getUsercode());
|
||||||
vo.setNickname(caiUser.getNickname());
|
vo.setNickname(caiUser.getNickname());
|
||||||
@@ -82,12 +83,14 @@ public class CaiUserServiceImpl extends ServiceImpl<CaiUserMapper, CaiUser> impl
|
|||||||
vo.setFansNum(userFollowService.getFansNumByUserId(userId));
|
vo.setFansNum(userFollowService.getFansNumByUserId(userId));
|
||||||
vo.setStar(userFollowService.checkStar(currentUserId, userId));
|
vo.setStar(userFollowService.checkStar(currentUserId, userId));
|
||||||
vo.setAlbumList(caiUserAlbumService.getUserAlbum(userId,caiUser.getIsAnchor()));
|
vo.setAlbumList(caiUserAlbumService.getUserAlbum(userId,caiUser.getIsAnchor()));
|
||||||
|
// 在线状态
|
||||||
|
// vo.setStatus();
|
||||||
if(caiUser.getIsAnchor() == 1){
|
if(caiUser.getIsAnchor() == 1){
|
||||||
vo.setGuardTotalList(guardTotalService.selectGuardTotalLimit(userId,10));
|
vo.setGuardTotalList(guardTotalService.selectGuardTotalLimit(userId,10));
|
||||||
vo.setDynamicList(dynamicService.selectDynamicList(userId,10));
|
// vo.setDynamicList(dynamicService.selectDynamicList(userId,10));
|
||||||
vo.setGiftList(userGiftService.selectGiftList(userId));
|
vo.setGiftList(userGiftService.selectGiftList(userId));
|
||||||
}
|
}
|
||||||
// vo.setStatus();
|
|
||||||
return vo;
|
return vo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -8,9 +8,11 @@ import java.util.Base64;
|
|||||||
public class AES {
|
public class AES {
|
||||||
|
|
||||||
public static void main(String[] args) throws Exception {
|
public static void main(String[] args) throws Exception {
|
||||||
String jsonData ="asdjkljfiohweioufhkjshjkvbajkdsbjksjasdhfjanskjd"; // 要加密的JSON 数据
|
String jsonData ="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"; // 要加密的JSON 数据
|
||||||
String key = "K2AwvosrwtoAgOEp";
|
// String jsonData = "123";
|
||||||
System.out.println(encrypt(jsonData,key));
|
String key = "K2AwvosrwtoAgOEP";
|
||||||
|
String encod = encrypt(jsonData, key);
|
||||||
|
System.out.println(decrypt(jsonData,key));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String encrypt(String data, String key) throws Exception {
|
public static String encrypt(String data, String key) throws Exception {
|
||||||
@@ -20,4 +22,14 @@ public class AES {
|
|||||||
byte[] encryptedBytes = cipher.doFinal(data.getBytes(StandardCharsets.UTF_8));
|
byte[] encryptedBytes = cipher.doFinal(data.getBytes(StandardCharsets.UTF_8));
|
||||||
return Base64.getEncoder().encodeToString(encryptedBytes);
|
return Base64.getEncoder().encodeToString(encryptedBytes);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static String decrypt(String data,String key) throws Exception{
|
||||||
|
byte[] decode = Base64.getDecoder().decode(data);
|
||||||
|
Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
|
||||||
|
SecretKeySpec secretKeySpec = new SecretKeySpec(key.getBytes(StandardCharsets.UTF_8), "AES");
|
||||||
|
cipher.init(Cipher.DECRYPT_MODE, secretKeySpec);
|
||||||
|
byte[] encryptedBytes = cipher.doFinal(decode);
|
||||||
|
return new String(encryptedBytes,StandardCharsets.UTF_8);
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,8 +15,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
<result property="createTime" column="create_time"/>
|
<result property="createTime" column="create_time"/>
|
||||||
</resultMap>
|
</resultMap>
|
||||||
<select id="selectGiftList" resultType="com.ruoyi.cai.dto.app.vo.UserGiftVo">
|
<select id="selectGiftList" resultType="com.ruoyi.cai.dto.app.vo.UserGiftVo">
|
||||||
select to_uid, gift_id, sum(gift_count) as gift_count
|
select to_uid, gift_id,
|
||||||
from cai_user_gift t
|
t2.name,
|
||||||
|
t2.img,
|
||||||
|
t2.price,
|
||||||
|
sum(gift_count) as gift_count
|
||||||
|
from cai_user_gift t1
|
||||||
|
join cai_gift t2 on t1.gift_id = t2.id
|
||||||
where to_uid = #{userId}
|
where to_uid = #{userId}
|
||||||
group by gift_id
|
group by gift_id
|
||||||
</select>
|
</select>
|
||||||
|
|||||||
Reference in New Issue
Block a user