Просмотр исходного кода

Merge remote-tracking branch 'origin/master'

杜魏 4 лет назад
Родитель
Сommit
ed66667cd1

+ 5 - 0
modules/admin/pom.xml

@@ -74,6 +74,11 @@
             <artifactId>spring-boot-starter-aop</artifactId>
         </dependency>
 
+        <dependency>
+            <groupId>redis.clients</groupId>
+            <artifactId>jedis</artifactId>
+        </dependency>
+
     </dependencies>
 
 </project>

+ 146 - 0
modules/admin/src/main/java/com/fire/admin/rest/TestRest.java

@@ -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("脚本已加载");
+        }
+    }
+
+
+
+}
+

+ 1 - 1
modules/admin/src/main/java/com/fire/admin/service/OrderManagementService.java

@@ -184,7 +184,7 @@ public class OrderManagementService {
         //电话号码
         if (Strings.isNotBlank(orderSearchPram.getUsedMobile())) {
             String usedMobiles = orderSearchPram.getUsedMobile();
-            if (usedMobiles.indexOf(",") >= 0) {
+            if (usedMobiles.contains(",")) {
                 String[] usedMobileList = usedMobiles.split(",");
                 for (String usedMobile : usedMobileList) {
                     boolQuery.should(QueryBuilders.termQuery("usedMobile", usedMobile));

+ 1 - 1
modules/admin/src/main/resources/bootstrap.yml

@@ -31,7 +31,7 @@ spring:
       pool-name: DatebookHikariCP
   redis:
     cluster:
-      nodes: 192.168.101.100:7001,192.168.101.100:7002,192.168.101.100:7003,192.168.101.101:7004,192.168.101.101:7005,192.168.101.101:7006,192.168.101.102:7007,192.168.101.102:7008
+      nodes: 192.168.101.101:7001,192.168.101.101:7002,192.168.101.101:7003
 #    host: 192.168.101.100
 #    port: 11670
 jwt: