package com.fdkankan.scene.controller; import cn.hutool.core.collection.ConcurrentHashSet; import com.alibaba.csp.sentinel.annotation.SentinelResource; import com.alibaba.druid.pool.DruidDataSource; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.fdkankan.common.constant.ConstantFilePath; import com.fdkankan.common.exception.BusinessException; import com.fdkankan.common.response.ResultData; import com.fdkankan.common.util.MatrixToImageWriterUtil; import com.fdkankan.common.util.SpringUtil; import com.fdkankan.common.util.StrExtUtil; import com.fdkankan.mq.message.BuildSceneMqMessage; import com.fdkankan.mq.util.RocketMQProducer; import com.fdkankan.platform.api.feign.PlatformGoodsClient; import com.fdkankan.platform.api.feign.PlatformUserClient; import com.fdkankan.platform.api.vo.Camera; import com.fdkankan.platform.api.vo.Company; import com.fdkankan.platform.api.vo.User; import com.fdkankan.redis.constant.RedisKey; import com.fdkankan.redis.constant.RedisLockKey; import com.fdkankan.redis.util.RedisLockUtil; import com.fdkankan.redis.util.RedisUtil; import com.fdkankan.scene.entity.Folder; import com.fdkankan.scene.listener.TestListener; import com.fdkankan.scene.service.IFolderService; import com.fdkankan.scene.service.IScene3dNumService; import com.fdkankan.scene.service.ISceneService; import com.fdkankan.scene.vo.SceneVO; import com.google.common.collect.Lists; import java.util.concurrent.TimeUnit; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.cloud.context.config.annotation.RefreshScope; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.sql.DataSource; import java.io.File; import java.sql.Connection; import java.sql.SQLException; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.UUID; @RefreshScope @RestController @RequestMapping("/api/scene/test") @Slf4j public class TestController { @Autowired RedisUtil redisUtil; @Autowired IFolderService folderService; @GetMapping("/testdb") public List testdb(){ return folderService.list(); } @Autowired private PlatformUserClient platformUserClient; @Autowired private PlatformGoodsClient platformGoodsClient; @Autowired private RocketMQProducer rocketMQProducer; @Autowired private IScene3dNumService scene3dNumService; @Autowired RedisTemplate redisTemplate; @Autowired RedisLockUtil redisLockUtil; @GetMapping("/test") public String test() throws Exception { // List list = folderService.list(new LambdaQueryWrapper().eq(Folder::getId, 1)); // for (int i = 0; i< 10; i++){ // rocketMQProducer.syncSend("qwe",i+"", "消息体"+i); // } // try { // String aaa = null; // aaa.equals("123"); // String test = "123"; // if(test.equals("123")){ // throw new BusinessException(-1, "dsfasdfsdf"); // } // }catch (BusinessException e){ // log.error("发生了错误:{}", e.getMessage()); // }catch (Exception e){ // log.error("发生了未知错误:{}", e); // } // String test = "123"; // if(test.equals("123")){ // throw new BusinessException(-1, "dsfasdfsdf"); // // } // String ruleDir = System.getProperty("user.dir"); // ResultData test = platformGoodsClient.test(); // System.out.println("gghhjjkkllll"); // TestListener bean = SpringUtil.getBean(TestListener.class); // folderService.update(new LambdaUpdateWrapper().eq(Folder::getId, 1L).set(Folder::getFolderName, "hahaha")); // Folder byId = folderService.getById(1L); // folderService.updateById(byId); // this.redisTemplate.opsForValue().setIfAbsent("test:lock:123", "123", (long)100000, TimeUnit.MILLISECONDS); // String key = String.format(RedisLockKey.LOCK_SCENE_SYNC, "123"); // redisLockUtil.lock(key, 100000); return "123123"; } public static void main(String[] args) throws Exception { MatrixToImageWriterUtil.createQRCode("http://baidu.com" + "123123", ConstantFilePath.BASE_PATH + File.separator + "sceneQRcode/"+"123123"+".png", null); // MatrixToImageWriterUtil.createQRCode("http://baidu.com" + "123123", ConstantFilePath.BASE_PATH + File.separator + "sceneQRcode/"+"123123"+".png", // ConstantFilePath.SCENE_PATH + "images/images" + "123123" + "/QRShareLogo.png"); } @GetMapping("/testSetStr") public void testSetStr() throws Exception { redisUtil.set("testIncr", "1"); redisUtil.incr("testIncr",1); String testIncr = redisUtil.get("testIncr"); System.out.println(testIncr); } @GetMapping("/testGetStr") public String testGetStr() throws Exception { boolean b = redisUtil.hasKey("90c82bdac_202201050951313830"); String abc = (String)redisUtil.get("abc"); return "123"; } @GetMapping("/testSetObject") public boolean testSetObject() throws Exception { // User user = new User(); // user.setCity("珠海"); // user.setId(123l); // // String jsons = JSON.toJSONString(user); // // redisTemplate.opsForValue().set("test:66", jsons); // redisTemplate.opsForValue().set("test:67", jsons); ResultData cameraById = platformGoodsClient.getCameraById(111L); Camera data = cameraById.getData(); ResultData companyById = platformUserClient.getCompanyById(111L); return true; } // @GetMapping("/testGetObject") public User testGetObject() throws Exception { String test12 = redisUtil.get("test66"); User user = JSONObject.parseObject(test12, User.class); return user; } @GetMapping("/testSetList") public boolean testSetList() throws Exception { List users = Lists.newArrayList(); users.add("sdfsdf"); users.add("dfgdfg"); return redisUtil.lRightPushAll("test5595jj", users); } @GetMapping("/testGetList") public List testGetList() throws Exception { return redisUtil.lGet("test5595jj", 0, -1); } @GetMapping("/testSetMap") public boolean testSetMap() throws Exception { Map userMap = new HashMap<>(); User user1 = new User(); user1.setCity("珠海"); user1.setId(123l); User user2 = new User(); user2.setCity("广州"); user2.setId(124l); userMap.put("user1", user1); userMap.put("user2", user2); return redisUtil.hmset("userMap", userMap); } @GetMapping("/testGetMap") public Map testGetMap() throws Exception { return redisUtil.hmget("userMap"); } @Autowired ISceneService sceneService; @GetMapping("/testSchedule") public void testSchedule(){ sceneService.updatePv(); } @Value("${rocketmq.build-scene.topicName.topic-modeling-a}") private String topicModelingA; @GetMapping("/testMQ") public void testMQ(int count){ // SceneVO body = SceneVO.builder().buildType("123").childName("sdfsdfsdf").dataSource("sadfdhgf").id(1213L).build(); for(int i = 1; i <= count; i++){ rocketMQProducer.sendOneWay("test_topic_dsx", "消息体" + i); } } @GetMapping("/testAsynMQ") public void testAsynMQ(){ SceneVO body = SceneVO.builder().buildType("123").childName("sdfsdfsdf").dataSource("sadfdhgf").id(1213L).build(); rocketMQProducer.asyncSend("abc","tag3", UUID.randomUUID().toString(), body,null,5000l); } @GetMapping("/testsenOnway") public void testsenOnway(){ SceneVO body = SceneVO.builder().buildType("123").childName("sdfsdfsdf").dataSource("sadfdhgf").id(1213L).build(); rocketMQProducer.sendOneWay("qqq","tag6", UUID.randomUUID().toString(), body); } @RefreshScope @GetMapping("/testsenOnway1") public void testsenOnway1(){ SceneVO body = SceneVO.builder().buildType("123").childName("sdfsdfsdf").dataSource("sadfdhgf").id(1213L).build(); rocketMQProducer.sendOneWay(topicModelingA, null); } @RefreshScope @GetMapping("/testResult") public void testResult(){ // rocketMQProducer.sendOneWay("topic_modeling_a_result", BuildSceneResultMqMessage.builder().buildSuccess(true).cameraType("3").build()); String dsfsdf = (String) redisUtil.get("dsfsdf"); System.out.println(2134); } @Autowired DataSource dataSource; @GetMapping("/testDatasource") public void testDatasource() throws SQLException { // Connection connection = dataSource.getConnection(); // System.out.println(connection); System.out.println(dataSource.getClass()); DruidDataSource druidDataSource = (DruidDataSource) dataSource; System.out.println(druidDataSource.getName()); System.out.println("druidDataSource 数据源最大连接数:" + druidDataSource.getMaxActive()); System.out.println("druidDataSource 数据源初始化连接数:" + druidDataSource.getInitialSize()); // connection.close(); } }