package com.fdkankan.tk.service.impl; import com.alibaba.fastjson.JSONObject; import com.fdkankan.redis.util.RedisUtil; import com.fdkankan.tk.common.ResultCode; import com.fdkankan.tk.common.util.RedisKeyUtil; import com.fdkankan.tk.entity.TencentYun; import com.fdkankan.tk.exception.BusinessException; import com.fdkankan.tk.mapper.ITencentYunMapper; import com.fdkankan.tk.service.ITencentYunService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.tencentyun.TLSSigAPIv2; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; /** *

* 服务实现类 *

* * @author * @since 2022-09-27 */ @Service public class TencentYunServiceImpl extends ServiceImpl implements ITencentYunService { @Autowired RedisUtil redisUtil; @Override public JSONObject getSign(String userId) { String redisKey = RedisKeyUtil.TENCENT_YUN_KEY + userId; if (!redisUtil.hasKey(redisKey)) { List list = this.list(); if(list == null || list.size() <=0){ throw new BusinessException(ResultCode.TENCENT_YUN_EMPTY); } if(list.size() >1){ throw new BusinessException(ResultCode.TENCENT_YUN_ERROR); } TencentYun tencentYun = list.get(0); TLSSigAPIv2 api = new TLSSigAPIv2(tencentYun.getSdkAppid(), tencentYun.getSecretkey()); String sign = api.genUserSig(userId, tencentYun.getExTime() ); JSONObject jsonObject = new JSONObject(); jsonObject.put("sdkAppId",tencentYun.getSdkAppid()); jsonObject.put("expire",tencentYun.getExTime()); jsonObject.put("sign",sign); redisUtil.set(redisKey ,jsonObject.toJSONString(),tencentYun.getExTime() - 60); return jsonObject; } JSONObject jsonObject = JSONObject.parseObject(redisUtil.get(redisKey)); jsonObject.put("expire",redisUtil.getExpire(redisKey)); return jsonObject; } }