|
@@ -0,0 +1,146 @@
|
|
|
+package com.fire.admin.rest;
|
|
|
+
|
|
|
+
|
|
|
+import com.fire.es.OrderEsDto;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.apache.logging.log4j.util.Strings;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.cloud.context.config.annotation.RefreshScope;
|
|
|
+import org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate;
|
|
|
+import org.springframework.data.elasticsearch.core.mapping.IndexCoordinates;
|
|
|
+import org.springframework.data.elasticsearch.core.query.IndexQuery;
|
|
|
+import org.springframework.util.StringUtils;
|
|
|
+import org.springframework.web.bind.annotation.GetMapping;
|
|
|
+import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
+import org.springframework.web.bind.annotation.RestController;
|
|
|
+import redis.clients.jedis.JedisCluster;
|
|
|
+
|
|
|
+import javax.annotation.Resource;
|
|
|
+import java.text.DateFormat;
|
|
|
+import java.text.ParseException;
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
+import java.util.Arrays;
|
|
|
+import java.util.Date;
|
|
|
+
|
|
|
+
|
|
|
+@Slf4j
|
|
|
+@RestController
|
|
|
+@RefreshScope
|
|
|
+public class TestRest {
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private ElasticsearchRestTemplate restTemplate;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private JedisCluster jedisCluster;
|
|
|
+
|
|
|
+ private String runCode = "";
|
|
|
+
|
|
|
+ public Date timeSwap(String time) {
|
|
|
+ DateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
|
|
|
+ Date date1 = null;
|
|
|
+ try {
|
|
|
+ date1 = df.parse(time);
|
|
|
+ } catch (ParseException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ return date1;
|
|
|
+ }
|
|
|
+
|
|
|
+// @GetMapping("/insert")
|
|
|
+// public String insert() {
|
|
|
+// OrderEsDto orderEsDto = new OrderEsDto();
|
|
|
+// orderEsDto.setOrderId("1621332591561198300");
|
|
|
+// orderEsDto.setPackageId("YDHF10");
|
|
|
+// orderEsDto.setFlowAppId("83");
|
|
|
+// orderEsDto.setEnterpriseId(82);
|
|
|
+// orderEsDto.setOrderType(3);
|
|
|
+// orderEsDto.setUsedMobile("15955721307");
|
|
|
+// orderEsDto.setExtorderId("C202105181809262705527307");
|
|
|
+// orderEsDto.setRecId("");
|
|
|
+// orderEsDto.setApplyDate(timeSwap("2021-05-18 18:09:51"));
|
|
|
+// orderEsDto.setActiveDate(timeSwap("2021-05-18 17:44:20"));
|
|
|
+// orderEsDto.setLimitedDate(timeSwap("2021-05-19 18:09:51"));
|
|
|
+// orderEsDto.setStatus(6);
|
|
|
+// orderEsDto.setNote("86400");
|
|
|
+// orderEsDto.setMobileOperator("YD");
|
|
|
+// orderEsDto.setMobileHome("四川-成都-移动");
|
|
|
+// orderEsDto.setGwSeqNo("");
|
|
|
+// orderEsDto.setGwStatus("");
|
|
|
+// orderEsDto.setLastModifyDate(timeSwap("2021-05-19 18:10:21"));
|
|
|
+// orderEsDto.setGwErrorCode("0000");
|
|
|
+// orderEsDto.setFlowAmount(10 * 10000);
|
|
|
+// orderEsDto.setDealFlag("2");
|
|
|
+// orderEsDto.setOprCode("SUCCESS");
|
|
|
+// orderEsDto.setUsageLimit((int) (10.1500 * 10000));
|
|
|
+// orderEsDto.setBatchCount(1);
|
|
|
+// orderEsDto.setSendCount(1);
|
|
|
+// orderEsDto.setAreaCode("37");
|
|
|
+// orderEsDto.setPrice((int) (10.28 * 10000));
|
|
|
+// orderEsDto.setPartnerBalancePrice((int) (1 * 10000));
|
|
|
+// orderEsDto.setOperatorBalancePrice((int) (0 * 10000));
|
|
|
+// orderEsDto.setOrderDetailId(2885);
|
|
|
+// orderEsDto.setChannelId(null);
|
|
|
+// orderEsDto.setCheckTime(timeSwap("2021-05-19 18:10:21"));
|
|
|
+// orderEsDto.setProductId("270");
|
|
|
+// orderEsDto.setUser("北京微播视界科技有限公司");
|
|
|
+// orderEsDto.setAppId("beijingweiboshijie");
|
|
|
+// orderEsDto.setChannelName("智信3移动");
|
|
|
+// IndexQuery indexQuery = new IndexQuery();
|
|
|
+// indexQuery.setId(orderEsDto.getOrderId());
|
|
|
+// indexQuery.setObject(orderEsDto);
|
|
|
+// IndexCoordinates indexCoordinates = IndexCoordinates.of("flow_order_info");
|
|
|
+// restTemplate.index(indexQuery, indexCoordinates);
|
|
|
+// return "sucees";
|
|
|
+// }
|
|
|
+
|
|
|
+
|
|
|
+ @GetMapping("/redis")
|
|
|
+ public String redis() {
|
|
|
+ //初始化 判断有无加载脚本 ·
|
|
|
+ storeScript("{key}Amount");
|
|
|
+ //传入四个参数分别为
|
|
|
+ //key Hset key
|
|
|
+ //id 客户ID
|
|
|
+ //sub 减去 add加上
|
|
|
+ //金额
|
|
|
+ Object res = jedisCluster.evalsha(runCode,Arrays.asList("{key}Amount","{key}asd"),Arrays.asList("sub","111"));
|
|
|
+ if (null != res) {
|
|
|
+ log.info(res.toString());
|
|
|
+ }
|
|
|
+ return "sucees";
|
|
|
+ }
|
|
|
+
|
|
|
+ /*
|
|
|
+ *脚本加载到redis
|
|
|
+ */
|
|
|
+ public void storeScript(String slotKey){
|
|
|
+ //LUA脚本
|
|
|
+ String SCRIPT = "local key = KEYS[1]" +
|
|
|
+ " local id = KEYS[2]" +
|
|
|
+ " local operating = ARGV[1]" +
|
|
|
+ " local num = tonumber(ARGV[2])" +
|
|
|
+ " local totle = nil" +
|
|
|
+ " local res = redis.pcall('HGET', key, id)" +
|
|
|
+ " if res then" +
|
|
|
+ " if operating =='add' then" +
|
|
|
+ " totle = tonumber(res) + num" +
|
|
|
+ " redis.pcall('HSET', key, id, tostring(totle))" +
|
|
|
+ " elseif operating=='sub' then" +
|
|
|
+ " totle = tonumber(res) - num" +
|
|
|
+ " redis.pcall('HSET', key, id, tostring(totle))" +
|
|
|
+ " end" +
|
|
|
+ " end" +
|
|
|
+ " return totle";
|
|
|
+ if (Strings.isBlank(runCode) || !jedisCluster.scriptExists(runCode, slotKey)){
|
|
|
+ //redis支持脚本缓存,返回哈希码,后续可以继续用来调用脚本
|
|
|
+ runCode = jedisCluster.scriptLoad(SCRIPT, slotKey);
|
|
|
+ }else{
|
|
|
+ log.info("脚本已加载");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+}
|
|
|
+
|