diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/cache/DynamicTotalCache.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/cache/DynamicTotalCache.java new file mode 100644 index 00000000..be77adb8 --- /dev/null +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/cache/DynamicTotalCache.java @@ -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; + } + + +} diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/chat/ChatManager.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/chat/ChatManager.java index 5fd7d75c..ba61e463 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/chat/ChatManager.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/chat/ChatManager.java @@ -77,8 +77,6 @@ public class ChatManager { callResp.setToNickname(toUser.getNickname()); callResp.setToAvatar(toUser.getAvatar()); callResp.setSocketUrl(weSocketUrl); - callResp.setSkillName(anchor.getSkillName()); - callResp.setSkillIcon(anchor.getSkillIcon()); callResp.setPrice(anchor.getPrice()); callResp.setScore(anchor.getGiveScore()); callResp.setServiceCount(anchor.getServiceCount()); @@ -117,8 +115,6 @@ public class ChatManager { getRoomResp.setToNickname(toUser.getNickname()); getRoomResp.setToAvatar(toUser.getAvatar()); getRoomResp.setSocketUrl(weSocketUrl); - getRoomResp.setSkillName(anchor.getSkillName()); - getRoomResp.setSkillIcon(anchor.getSkillIcon()); getRoomResp.setPrice(anchor.getPrice()); getRoomResp.setScore(anchor.getGiveScore()); getRoomResp.setServiceCount(anchor.getServiceCount()); diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/constant/RedisConstant.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/constant/RedisConstant.java index 93588ac8..cfaf0c93 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/constant/RedisConstant.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/constant/RedisConstant.java @@ -4,4 +4,5 @@ public class RedisConstant { public static final String REDIS_P = "cai-"; public static final String SYSTEM_CONFIG = REDIS_P + "system-config"; public static final String CITY_CACHE_REDIS = REDIS_P + "city"; + public static final String DYNAMIC_TOTAL_CACHE_REDIS = REDIS_P + "synamicTotal:%s:%s"; } diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/app/CaiIndexController.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/app/CaiIndexController.java index 84b94961..03a8f9fd 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/app/CaiIndexController.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/app/CaiIndexController.java @@ -1,16 +1,20 @@ package com.ruoyi.cai.controller.app; 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.UserQuery; 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.UserListVo; import com.ruoyi.cai.service.CaiAnchorService; +import com.ruoyi.cai.service.CaiBannerService; import com.ruoyi.cai.service.CaiUserService; import com.ruoyi.common.core.domain.PageQuery; import com.ruoyi.common.core.domain.R; 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.tags.Tag; 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.RestController; +import java.util.List; + @RestController @RequestMapping("/api/index") @@ -28,6 +34,15 @@ public class CaiIndexController { private CaiAnchorService anchorService; @Autowired private CaiUserService caiUserService; + @Autowired + private CaiBannerService bannerService; + + @GetMapping("/banner") + @Operation(summary = "获取首页banner图") + public R> banner(){ + List res = bannerService.index(); + return R.ok(BeanConvertUtil.convertListTo(res, IndexBannerVo::new)); + } @GetMapping("/anchor/page") @Operation(summary = "查询主播-分页") diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/app/CaiSettingAppController.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/app/CaiSettingAppController.java index 56b7512b..5c6bebe3 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/app/CaiSettingAppController.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/app/CaiSettingAppController.java @@ -1,15 +1,11 @@ package com.ruoyi.cai.controller.app; import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.ruoyi.cai.domain.CaiCitys; -import com.ruoyi.cai.domain.CaiGoods; -import com.ruoyi.cai.domain.CaiReportCate; -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.cai.domain.*; +import com.ruoyi.cai.dto.app.vo.GiftVo; +import com.ruoyi.cai.service.*; 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.tags.Tag; import org.springframework.beans.factory.annotation.Autowired; @@ -33,6 +29,8 @@ public class CaiSettingAppController { private CaiReportCateService reportCateService; @Autowired private CaiCitysService citysService; + @Autowired + private CaiGiftService giftService; @GetMapping("/goods") @Operation(summary = "充值配置") @@ -64,4 +62,12 @@ public class CaiSettingAppController { public R> city(){ return R.ok(citysService.all()); } + + @GetMapping("/gift") + @Operation(summary = "礼物配置") + public R> gift(){ + List res = giftService.all(); + return R.ok(BeanConvertUtil.convertListTo(res, GiftVo::new)); + } + } diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/domain/CaiBanner.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/domain/CaiBanner.java index a471d6fd..c87fe546 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/domain/CaiBanner.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/domain/CaiBanner.java @@ -24,10 +24,6 @@ public class CaiBanner implements Serializable { */ @TableId(value = "id") private Integer id; - /** - * 0 图片 1 视频 - */ - private Integer type; /** * 类别 1 首页轮播 */ diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/vo/GiftVo.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/vo/GiftVo.java new file mode 100644 index 00000000..d57e0d87 --- /dev/null +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/vo/GiftVo.java @@ -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; +} diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/vo/IndexBannerVo.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/vo/IndexBannerVo.java new file mode 100644 index 00000000..6154f403 --- /dev/null +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/vo/IndexBannerVo.java @@ -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; +} diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/vo/UserGiftVo.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/vo/UserGiftVo.java index bce543b0..9b4f9ed6 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/vo/UserGiftVo.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/vo/UserGiftVo.java @@ -15,10 +15,16 @@ public class UserGiftVo { */ @Schema(description = "礼物ID") private Long giftId; + @Schema(description = "礼物名称") + private String name; + @Schema(description = "礼物图片") + private String img; + @Schema(description = "礼物价格") + private String price; /** * 礼物数量 */ @Schema(description = "礼物数量") - private Long giftCount; + private Long count; } diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/vo/UserInfoVo.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/vo/UserInfoVo.java index b9852642..968738ae 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/vo/UserInfoVo.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/vo/UserInfoVo.java @@ -44,14 +44,17 @@ public class UserInfoVo { @Schema(description = "用户状态") private String status; + @Schema(description = "用户状态描述") + private String statusMsg; + @Schema(description = "相册集合") private List albumList = Collections.emptyList(); @Schema(description = "守护列表") private List guardTotalList = Collections.emptyList(); - @Schema(description = "动态列表") - private List dynamicList = Collections.emptyList(); + @Schema(description = "最近的动态图片") + private List dynamicList = Collections.emptyList(); @Schema(description = "礼物列表") private List giftList = Collections.emptyList(); diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/vo/info/GuardInfoVo.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/vo/info/GuardInfoVo.java new file mode 100644 index 00000000..edf1b437 --- /dev/null +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/vo/info/GuardInfoVo.java @@ -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 avatarList; + + private String diffNum; + + private String nickname; + + private String avatar; +} diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/enums/SystemConfigEnum.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/enums/SystemConfigEnum.java index 2cfbac00..4071c1d5 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/enums/SystemConfigEnum.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/enums/SystemConfigEnum.java @@ -10,6 +10,7 @@ import lombok.Getter; */ public enum SystemConfigEnum { GUARD_PRICE("1314", "守护价格"), + DAY_MAX_DYNAMIC("10", "每日运行发布的最大动态数"), ; diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/CaiBannerService.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/CaiBannerService.java index 4d4dab3f..4c52a3db 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/CaiBannerService.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/CaiBannerService.java @@ -3,6 +3,8 @@ package com.ruoyi.cai.service; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.cai.domain.CaiBanner; +import java.util.List; + /** * 轮播Service接口 * @@ -10,4 +12,5 @@ import com.ruoyi.cai.domain.CaiBanner; * @date 2023-12-21 */ public interface CaiBannerService extends IService { + List index(); } diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/CaiGiftService.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/CaiGiftService.java index cf894f6b..b3ea3107 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/CaiGiftService.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/CaiGiftService.java @@ -3,6 +3,8 @@ package com.ruoyi.cai.service; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.cai.domain.CaiGift; +import java.util.List; + /** * 礼物Service接口 * @@ -11,4 +13,5 @@ import com.ruoyi.cai.domain.CaiGift; */ public interface CaiGiftService extends IService { + List all(); } diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/CaiBannerServiceImpl.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/CaiBannerServiceImpl.java index d1ccf2e9..cf09d7df 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/CaiBannerServiceImpl.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/CaiBannerServiceImpl.java @@ -1,11 +1,14 @@ package com.ruoyi.cai.service.impl; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.cai.domain.CaiBanner; import com.ruoyi.cai.mapper.CaiBannerMapper; import com.ruoyi.cai.service.CaiBannerService; import org.springframework.stereotype.Service; +import java.util.List; + /** * 轮播Service业务层处理 * @@ -15,4 +18,9 @@ import org.springframework.stereotype.Service; @Service public class CaiBannerServiceImpl extends ServiceImpl implements CaiBannerService { + @Override + public List index() { + List list = this.list(Wrappers.lambdaQuery(CaiBanner.class)); + return list; + } } diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/CaiDynamicServiceImpl.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/CaiDynamicServiceImpl.java index 53e28836..58228730 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/CaiDynamicServiceImpl.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/CaiDynamicServiceImpl.java @@ -4,17 +4,23 @@ import cn.hutool.core.collection.CollectionUtil; 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.cache.DynamicTotalCache; import com.ruoyi.cai.domain.CaiDynamic; 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.DynamicQuery; import com.ruoyi.cai.dto.app.vo.DynamicImageVo; import com.ruoyi.cai.dto.app.vo.DynamicListVo; 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.service.CaiDynamicImagesService; import com.ruoyi.cai.service.CaiDynamicService; +import com.ruoyi.cai.service.CaiUserService; import com.ruoyi.common.core.domain.PageQuery; +import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.utils.BeanConvertUtil; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; @@ -36,6 +42,12 @@ public class CaiDynamicServiceImpl extends ServiceImpl selectDynamicList(Long userId, Integer limit) { @@ -79,7 +91,26 @@ public class CaiDynamicServiceImpl extends ServiceImpl 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); + if(CollectionUtil.isNotEmpty(res.getImageList())){ + caiDynamic.setIsAttach(1); + }else{ + caiDynamic.setIsAttach(0); + } this.save(caiDynamic); List imageList = res.getImageList(); if(CollectionUtil.isNotEmpty(imageList)){ diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/CaiGiftServiceImpl.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/CaiGiftServiceImpl.java index 976f4add..23628136 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/CaiGiftServiceImpl.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/CaiGiftServiceImpl.java @@ -1,5 +1,6 @@ package com.ruoyi.cai.service.impl; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.cai.domain.CaiGift; import com.ruoyi.cai.mapper.CaiGiftMapper; @@ -7,6 +8,8 @@ import com.ruoyi.cai.service.CaiGiftService; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; +import java.util.List; + /** * 礼物Service业务层处理 * @@ -17,4 +20,10 @@ import org.springframework.stereotype.Service; @Service public class CaiGiftServiceImpl extends ServiceImpl implements CaiGiftService { + @Override + public List 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)); + } } diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/CaiUserServiceImpl.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/CaiUserServiceImpl.java index 337f2ba9..bdd4597f 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/CaiUserServiceImpl.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/CaiUserServiceImpl.java @@ -68,6 +68,7 @@ public class CaiUserServiceImpl extends ServiceImpl impl } CaiAnchor anchor = anchorService.getByUserId(userId); UserInfoVo vo = new UserInfoVo(); + vo.setUserId(userId); vo.setIsAnchor(caiUser.getIsAnchor()); vo.setUsercode(caiUser.getUsercode()); vo.setNickname(caiUser.getNickname()); @@ -82,12 +83,14 @@ public class CaiUserServiceImpl extends ServiceImpl impl vo.setFansNum(userFollowService.getFansNumByUserId(userId)); vo.setStar(userFollowService.checkStar(currentUserId, userId)); vo.setAlbumList(caiUserAlbumService.getUserAlbum(userId,caiUser.getIsAnchor())); + // 在线状态 + // vo.setStatus(); if(caiUser.getIsAnchor() == 1){ vo.setGuardTotalList(guardTotalService.selectGuardTotalLimit(userId,10)); - vo.setDynamicList(dynamicService.selectDynamicList(userId,10)); +// vo.setDynamicList(dynamicService.selectDynamicList(userId,10)); vo.setGiftList(userGiftService.selectGiftList(userId)); } -// vo.setStatus(); + return vo; } diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/util/AES.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/util/AES.java index d3ac6c3f..a273a621 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/util/AES.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/util/AES.java @@ -8,9 +8,11 @@ import java.util.Base64; public class AES { public static void main(String[] args) throws Exception { - String jsonData ="asdjkljfiohweioufhkjshjkvbajkdsbjksjasdhfjanskjd"; // 要加密的JSON 数据 - String key = "K2AwvosrwtoAgOEp"; - System.out.println(encrypt(jsonData,key)); + String jsonData ="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"; // 要加密的JSON 数据 +// String jsonData = "123"; + String key = "K2AwvosrwtoAgOEP"; + String encod = encrypt(jsonData, key); + System.out.println(decrypt(jsonData,key)); } 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)); 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); + + } } diff --git a/ruoyi-cai/src/main/resources/mapper/cai/CaiUserGiftMapper.xml b/ruoyi-cai/src/main/resources/mapper/cai/CaiUserGiftMapper.xml index 0461f7c1..bae164c5 100644 --- a/ruoyi-cai/src/main/resources/mapper/cai/CaiUserGiftMapper.xml +++ b/ruoyi-cai/src/main/resources/mapper/cai/CaiUserGiftMapper.xml @@ -15,8 +15,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"