package com.ruoyi.rongcloud.service.Impl; import com.alibaba.fastjson2.JSONObject; import com.fasterxml.jackson.databind.util.JSONPObject; import com.ruoyi.alarm.stealAlarm.domain.ArdAlarmStealelec; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.utils.uuid.IdUtils; import com.ruoyi.common.utils.uuid.UUID; import com.ruoyi.rongcloud.domain.TokenParam; import com.ruoyi.rongcloud.service.RongCloudService; import com.ruoyi.system.mapper.SysConfigMapper; import com.ruoyi.system.service.ISysConfigService; import com.ruoyi.utils.forest.RongCloudClient; import lombok.extern.slf4j.Slf4j; import okhttp3.FormBody; import okhttp3.RequestBody; import org.apache.commons.codec.digest.DigestUtils; import org.apache.commons.lang3.RandomStringUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.Date; import java.util.Map; import java.util.Random; import static org.bouncycastle.asn1.x500.style.RFC4519Style.l; /** * @Description: * @ClassName: RongCloudServiceImpl * @Author: 刘苏义 * @Date: 2023年07月15日16:49:12 * @Version: 1.0 **/ @Service @Slf4j(topic = "rongCloud") public class RongCloudServiceImpl implements RongCloudService { @Resource RongCloudClient rongCloudClient; @Resource ISysConfigService iSysConfigService; @Override public String getToken(String userId,String name) { String token=""; try { String rongyunApiUrl = iSysConfigService.selectConfigByKey("rongyun"); String appKey = iSysConfigService.selectConfigByKey("RongCloudAppKey"); String appSecret = iSysConfigService.selectConfigByKey("RongCloudAppSecret"); TokenParam param = new TokenParam(); param.setUserId(userId); param.setName(name); String Nonce = RandomStringUtils.randomNumeric(18); String Timestamp = String.valueOf(new Date().getTime()); String Signature = DigestUtils.sha1Hex(appSecret + Nonce + Timestamp);//App Secret + Nonce + Timestamp String jsonStr = rongCloudClient.getToken(rongyunApiUrl, appKey, Nonce, Timestamp, Signature, param); Map map = JSONObject.parseObject(jsonStr, Map.class); token = (String) map.get("token"); log.debug("用户"+userId+"获取到融云token:"+token); } catch (Exception ex) { log.error("获取token异常:"+ex.getMessage()); } return token; } }