当前位置:   article > 正文

java积累_java 3857 转 4326

java 3857 转 4326

精彩博文

一、常用api

1.查看容器中有没有某个id,有为true

 .contains(long id)

2.生成随机数值

Math.random

3.把a对象数据放进b对象里 字段名称要相同

BeanUtils.copyProperties(实体类 a,实体类 b)

4.集合类判空

 CollectionUtils.isNotEmpty(集合)

5.只能用在单数据源回滚

@Transactional (rollbackFor = Exception.class)

6.多数据源 指定数据源

@DS()

7.可变参数  A...a(是个数组)

ArrayUtils.isNotEmpty(a)?a[0]:new A();

8.截取取字符串

  1. StringUtils.abbreviate(" ",15) 取前15
  2. StringUtils.abbreviate(" ",515) 取,5-15

9.Date 增加一天

DateUtils.addDays(date, 1);

10.获取固定格式时间DATE

  1. public Date getNowTime() {
  2.         Date date = new Date();
  3.         Date nowDate = null;
  4.         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  5.         String s = sdf.format(date);
  6.         try {
  7.             nowDate = sdf.parse(s);
  8.         } catch (ParseException e) {
  9.             e.printStackTrace();
  10.         }
  11.         return nowDate;
  12.     }

11.lambda表达式所在的作用域生命的变量不可以第二次赋值

12. jsonObject

  1. // string 转 jsonObject
  2. JsonObject.parseObject("string")
  3. // 拿到key下的json数组(jo是jsonObject)
  4. JsonArray as = jo.getJsonArray("key")
  5. // 拿到as下的第二个数组
  6. JsonArray as = as.getJsonArray(2)
  7. // json转string
  8. string properties = a.getJsonObject("jo").toString;
  9. // json转实体类
  10. Entity e = JSON.parseObject(jo, Entity.class);

14. 向前端传的字段名与数据库字段名无法一致。例:数据库字段‘lBoundary’,前端需要‘lboundary’

在get,set方法上使用注解@JsonProperty(‘lboundary’)

15.浮点数比较大小要比较精度(1e-6等于0.000001)

  1. // 18.1 比较相等时,精度要<=1e-6
  2. fabs(a-b)<= 1e-6
  3. // 18.2 比较大于时
  4. if(a>b && fabs(a-b)> 1e-6)
  5. // 18.3 比较小于时
  6. if(a<b && fabs(a-b)> 1e-6)

16.string拼接“\”符号时,不能写死,因为不同系统分隔符不同,要使用File.separator替换

File.separator

17.为某个值赋最小值

Double.NEGATIVE_INFINITY;

18.@Autowired 循环依赖时使用懒加载@Lazy

19.定时任务

  1. @Scheduled(cron = “000**?”)
  2. 方法......

20.Math.max(a,b) 比较出a,b中的max,比较float性能差

21.指定字符删除(替换掉_)

str.replaceAll("_","")

22.懒汉模式 双检锁模式

  1. /**
  2.      * 懒汉模式
  3.      * volatile 防止指令重排序
  4.      */
  5.     private static volatile AsyncManager instance = null;
  6.     public static synchronized AsyncManager getInstance() {
  7.         //双检锁模式
  8.         if(null == instance){
  9.             synchronized (AsyncManager.class) {
  10.                 if(null == instance) {
  11.                     instance = new AsyncManager();
  12.                 }
  13.             }
  14.         }
  15.         return instance;
  16.     }


23.用到.in(ids),或者sql中有in(ids)时,要对ids做判空处理

24.map.putIfAbsent:map的此方法是先检查map中是否有key,没有时候再添加

25.将大list转换成小list

List<List<String>> minList = Lists.partition(maxList, 1000);

26.spring的@value注解是spring初始化bean时候执行的。

  1. 如果用@valuestatic修饰的属性复制(static先于spring之前加载)
  2. 做法:先封装一个bean来初始化相关的配置,然后利用工具类在静态代码块中获取到这个bean对象,用这个bean对象来初始化工具类中的相关属性
  3. //https://www.jianshu.com/p/3daeb8629a56
  4. // https://blog.csdn.net/yrsg666/article/details/111640131
  5. @value使用时默认加载application.yml中的文件,可以再指定别的文件spring.porfiles.active=dev\alpha\beta

27.sleep的另一种写法

TimeUnit.MILLISECONDS.sleep(300);

28.文本框校验先转成Document 

  1. Document document = Jsoup.parse(content);
  2.  // 判空
  3.  ObjectUtil.isEmpty(document.text())

29.判断集合中某值出现的次数

  1. //Bag继承自Collection接口,定义了一个集合,该集合会记录对象在集合中出现的次数。 
  2.  HashBag<String> bagNo = new HashBag<>("1")

30.常用json格式

  1. {
  2. "smsCode": "SMSTM1661328097363",
  3. "map": {
  4. "payrollName": "中银金科",
  5. "successCount": "1",
  6. "failCount": "3"
  7. },
  8. "list": [
  9. "18587654434",
  10. "18587654341"
  11. ],
  12. "listEntity": [
  13. {
  14. "rsId": "",
  15. "taxAtm": "30.0"
  16. },
  17. {
  18. "rsId": "",
  19. "taxAtm": "60.0"
  20. }
  21. ],
  22. "appKey": "message"
  23. }

31.配置文件获取参数

  • 1.单个参数
  1. @Value(value= "${sms.jinke.appKey}")
  2. private String AppKey ;
  • 2.实体类参数
  1. // 必要的三个参数
  2. @Component
  3. @Data
  4. // 主要枚举
  5. @ConfigurationProperties(prefix = "sms.jinke")
  6. // 具体的对应的三个获取的数据
  7. public class ErpSmsSecret implements Serializable {
  8. private static final long serialVersionUID = 1L;
  9. private String appKey;
  10. private String appSecret;
  11. private String signature;
  12. }
  13. ** 获取参数的时候不能new这个类,要用@Resources注解

32.跳出循环

  1. return:跳出方法
  2. continue:跳出本次循环
  3. break:跳出循环

33.新项目@NotBlank注解不起作用

引入pom依赖

  1. <dependency>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-starter-validation</artifactId>
  4. </dependency>

34.  问:字符串有长度限制吗?是多少? 

  1. 答:首先字符串的内容是由一个字符数组 char[] 来存储的,由于数组的长度及索引是整数,
  2. String类中返回字符串长度的方法length() 的返回值也是int ,所以通过查看java源码
  3. 中的类Integer我们可以看到Integer的最大范围是2^31 -1,由于数组是从0开始的,所以数
  4. 组的最大长度可以使【0~2^31】通过计算是大概4GB。

35. 问题:hutoolhttp调用post,发送短信,但是短信乱码! 解决:指定字符集  .charset("GBK")

  1. String rsp = HttpRequest.post(url).contentType("application/x-www-form-urlencoded;charset=GBK").charset("GBK")
  2. .form(map).execute().body();

 36. 启动类中测试某方法

  1. //启动类
  2. run()....;
  3. //引入类
  4. TestService testService = SpringUtil.getBean("testService");
  5. testService.test();

 37. @RequestPart

  • @RequestPart这个注解用在multipart/form-data表单提交请求的方法上。
  • 支持的请求方法的方式MultipartFile

38.实体类中set属性为集合

实体类中set集合属性时,指向的的是集合的地址,如果后续集合有变化会是此集合属性变化

39.gson转换实体类对象

Model model = new Gson().fromJson(str, Model.class);

39.gson转换list<实体类>对象

List<Model> models = new Gson().fromJson(str, new TypeToken<List<Model>>(){}.getType());

40.首字母变大写

  1. char[] chars = propertyPath.toCharArray();
  2. chars[0] -= 32;

 41.JPA动态sql

  1. //创建查询条件数据对象
  2. Customer customer = new Customer();
  3. customer.setName("Jack");
  4. customer.setAddress("上海");
  5. //创建匹配器,即如何使用查询条件
  6. ExampleMatcher matcher = ExampleMatcher.matching() //构建对象
  7. .withMatcher("name", GenericPropertyMatchers.startsWith()) //姓名采用“开始匹配”的方式查询
  8. .withIgnorePaths("focus"); //忽略属性:是否关注。因为是基本类型,需要忽略掉
  9. //创建实例
  10. Example<Customer> ex = Example.of(customer, matcher);
  11. //查询
  12. List<Customer> ls = dao.findAll(ex);

42.深拷贝

SerializationUtils.clone(obj)

43.新项目中可以启动项目,但是postman调用报404。

启动类和controller所在包在同一级,启动类(不加scan注解)扫描包只能扫描到本包和子包。

44.Feign接口调用,在有注解@FeignClient(...)之外,还要在启动类上添加注解@EnableFeignClients(…)扫描到这个feign接口

45.feign接口传递时,要保证参数传递过去,而@valid并不能做传递,所以只是用@valid会报错。可以使用@ResquestBody   @PathVariable注解

46.@value注入静态变量

  1. 类要交给spring管理
  2. @Value 标记在 set 方法上,方法名没有要求
  1. @Component
  2. public class TestConfig {
  3.     private static String name;
  4.     @Value("${test.name}")
  5.     public void inject(String s) {
  6.         name = s;
  7.     }
  8. }

47.以流的形式返回下载的文件,在controller层就不要return别的东西了

48.输入输出流

byte[] buffer = new byte[1024];
int len = in.read(buffer);
while (len != -1) {
    out.write(buffer, 0, len);
    len = in.read(buffer);
}

IOUtils.copy(inputStream, outputStream).

49.事务注解中的错误类型是追加,runTimeException一定会事务回滚的,如果追加checkException则两者都会事务回滚

50.手动引入bean,根据配置选择注入1.@ConditionalOnProperty(prefix="配置前缀",name="配置名"'havingValue="true",matchIfMissing=false)       2.resources配置文件\META-INF\spring.factories

org.springframework.boot.autoconfigure.EnableAutoConfiguration=\com......类的存储位置和名字

51.单元测试 mockito

注入yml属性

ReflectionTestUtils.setField(当前类,属性名,属性值)

方法

when(mockDAO.方法名(any(xxx.class),eq(str))).thenReturn(返回值)

二、postgre数据

1. 4326转3857坐标系之前先要配置默认坐标系

 select update Geometry SRID(“表名”,‘geom’,4326

2. 查询坐标系

 select ST_SRID(geom) from ”表名“ limit 1

3. 快速创建两个点

ST_MakePoint(x,y)

4. 更新坐标系

ST_setSrid(XX,4326)

5. 坐标系之间转换

ST_Transform(4326,3857)

6.JPA+ pgsql 手写实现分页

  1. @Query(nativeQuery = true
  2. ,value = "select u.id,user.name,g.goodsName from user u left join goods g on g.user_id = u.id where g.name=:#{#criteria.goodsName}"
  3. , countQuery = "select count(u.id) from user u left join goods g on g.user_id = u.id where g.name=:#{#criteria.goodsName}")
  4. Page<实体类> queryUser(@Param("criteria") QueryCriteria criteria, @Param("pageable") Pageable pageable);

jpa需要List<Map<String,Objrct>>  接参

where 1=1 and if(:#{#criteria.name !='',g.name=:#{#criteria.goodsName},1=1)

可动态传入参数。上面是Mysql

pgsql没有if()函数,但是可以用case when :str is null than 1=1 else t.aa=:str end  

data type 问题可以增加cast(:type as text)来指定字符类型

 7.字符串拼接

  1. 语法:string || string
  2. 例子:
  3. SQLselect 'Post' || 'greSQL'
  4. 结果:PostgreSQL

7.json

pgsql有json数据类型可以使用,方便对象放进数据库

三、mysql数据库

1. 数据库全局查询 

ctrl +F

2. 全文索引

  1. MATCH (columnName) AGAINST (‘string’)
  2. SELECT * FROM `student` WHERE MATCH(`name`) AGAINST('聪')

3. concat()函数

  1. 将多个字符串连接成一个字符串,如果有任何一个参数为null,则返回值为null
  2. concat(str1, str2,...)

4. <![CDATA[ ]]>  防止特殊字符被转义

<![CDATA[<=]]>

5. 根据UNIQUE索引或者primary key(主键)是否出现重复,判断执行update语句或者insert语句

  1. INSERT INTO user(id,name) VALUES(8,'c'
  2. ON DUPLICATE KEY
  3. UPDATE name="B";

6. mybatis-plus中IserviceImpl中的saveOrUpdateBetch()方法也可以批量实现存在 id 时候覆盖,不存在时候添加
 
 7. 校验数据库某列字段是否唯一,使用limit 1可以避免全表查询

limit 1

8. 查询时候用到or时候使用union替换,因为or会使索引失效

9. 如果某个字段为null就从别处拿取字段值

  1. CASE  WHEN tm.createTime IS NULL
  2. THEN
  3. ( SELECT create_time FROM t_merchant_information t WHERE t.id = tm.id )
  4. ELSE 
  5. tm.createTime
  6. END as createTime

10. sql中当前时间与数据库数据比较

where date_format(now(), '%Y%m%d%H%i%S') <![CDATA[>=]]> concat(date_format(t1.begin_date, '%Y%m%d'), t1.begin_time)

11. 数据库一对多,并且要展示某个字段时候可以用GROUP_CONCAT方法拼接字段。

  1. (select GROUP_CONCAT(sys_name separator',') from t_news_module where news_id = tn.news_id)
  2.         SELECT
  3.         tn.*,
  4.         (select GROUP_CONCAT(sys_name separator',') from t_news_module where news_id =
  5. tn.news_id) as sys_name
  6.         FROM
  7.         `t_news_notifications` tn
  8.         where
  9.             tn.del_flag = 2

12. 使用foreach时要记得separator是“,”号

<foreach collection="list" item="item" index="index" separator=",">

13. 数据库表中id自增时候普通删除,id会顺序增加,执行truncate table t_name 后数据做删除处理,并且id从1开始自增

truncate table t_name;

14. 返回字符串str,使用在开始位置pos和len个字符的的字符串,newstr取代长字符串

INSERT(str,pos,len,newstr)

15. 数据库在指定字段后增加某字段

ALTER TABLE t_table ADD module INT ( 10 ) NOT NULL COMMENT '标记' after sms_id;

16.建表基本语句

  1. DROP TABLE IF EXISTS `t_bank_appid`;
  2. CREATE TABLE `t_bank_appid` (
  3. `id` int(10) NOT NULL AUTO_INCREMENT COMMENT '主键',
  4. `app_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '小程序名称',
  5. `appid` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '小程序id',
  6. `organ_no` int(10) NOT NULL COMMENT '机构号',
  7. `organ_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '机构名',
  8. `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '备注',
  9. `status` int(10) NOT NULL DEFAULT 0 COMMENT '状态,0-无效,1-生效',
  10. `is_delete` int(3) NOT NULL DEFAULT 0 COMMENT '是否删除,0-删除,1-正常',
  11. `created_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '创建人',
  12. `created_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间',
  13. `updated_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '最近一次更新人',
  14. `updated_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '更新时间',
  15. PRIMARY KEY (`id`) USING BTREE,
  16. UNIQUE INDEX `appid`(`appid`) USING BTREE
  17. ) ENGINE = InnoDB AUTO_INCREMENT = 21 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '分行的小程序appid信息' ROW_FORMAT = Dynamic;
  18. SET FOREIGN_KEY_CHECKS = 1;

17.<if>的使用

status值为0,直接跳出if不执行,是因为加了 != '’,正确

<if test="param.status != null">

18.查询大于N天的数据

SELECT DATE_ADD(NOW(),INTERVAL -15 DAY)

19. substr

  1. SELECT SUBSTR(create_time,1,10) FROM t_tab
  2. SELECT create_time FROM t_tab
  3. +-------------------------+
  4. + SUBSTR(create_time,1,10)+
  5. +-------------------------+
  6. + 2022-09-23 00:00:00 +
  7. +-------------------------+
  8. +-------------------------+
  9. + create_time +
  10. +-------------------------+
  11. + 2022-09-23 +
  12. +-------------------------+

 20.辅助列 增加列号  row_number() OVER(PARTITION BY userId ORDER BY a_createdTime)

  1. -- 根据id排序
  2. select userId, a_createdTime, row_number() OVER(PARTITION BY userId ORDER BY a_createdTime) a_rk
  3. from t_tab

119bd8b5cb044689936e3ea930436ea3.png

 21.关联表中没有主键,但是可以设置两个(多个)字段保持主键属性,保证唯一性

  PRIMARY KEY (`m_id`, `a_id`) USING BTREE

 22. 单独修改某字段的字符长度

alter table t_sms_channel modify column channel_pwd varchar(255);

 23. inner join 和left join

  1. 没特殊要求时候尽量使用inner join 因为left join 以大表为主时候
  2. 可能会使部分数值为null,而且这两种join 效率差别不大,并inner join更快些
  3. SELECT
  4. tp.id,
  5. td.bank_card
  6. FROM
  7. `t_payroll` tp
  8. LEFT JOIN t_payroll_detail td ON tp.batch_no = td.batch_no
  9. WHERE
  10. tp.merchant_no IN ( 'B1627456486985', 'B1634863970562' )
  11. > OK
  12. > 时间: 51.679s
  13. SELECT
  14. tp.id,
  15. td.bank_card
  16. FROM
  17. `t_payroll` tp
  18. INNER JOIN t_payroll_detail td ON tp.batch_no = td.batch_no
  19. WHERE
  20. tp.merchant_no IN ( 'B1627456486985', 'B1634863970562' )
  21. > OK
  22. > 时间: 45.965s

四、idea功能

1. 快速创建静态常量
ctrl+alt+c

2. 快速大小写转换
ctrl+shift+u

3. 中英文翻译
ctrl+shift+o

4. 快速给实体类添加get,set方法
alt+ent(在实体类上添加)

5. 格式化代码
ctrl+alt+t

6. idea项目中没有iml文件
执行mvn idea:module

7. idea打开新项目设置
idea左上角的 File 菜单 ----> New Projects Settings ----> Settings for New Projects...

8.git Rebase失败还原

idea 先到rebase abort

9.IDEA的Terminal执行maven clean install 并放过测试类

先把maven加入环境,到bin层

再执行 mvn clean install package '-Dmaven.test.skip=true'

10.合并之前的提交代码到另一分支

25e023d41802480c892e7739e1a32d1f.png

11.debug启动太慢可以尝试先置灰debug点

12.git更改ip git>manage remotes>更改

13.创建并跑起来一个简单地springboot项目

  1. // 1.在maven引入spring-starter就可以启动
  2. // 2.启动类上只有@SpringBootApplication就可以启动项目
  3. // 3.规定端口号server.port

14.git报错:Сannot Run Git\n Cannot identify version of git executable: no response

3dadbe32924e4ed2b2cf82a8e11818c3.png

ef0309934ce14b84b6d55f2e2ea96e22.png

15.新建的项目打包有问题可以加入maven依赖

  1. <packaging>jar</packaging>
  2. <build>
  3. <plugins>
  4. <plugin>
  5. <groupId>org.springframework.boot</groupId>
  6. <artifactId>spring-boot-maven-plugin</artifactId>
  7. <version>2.5.3</version>
  8. <executions>
  9. <execution>
  10. <goals>
  11. <goal>repackage</goal>
  12. </goals>
  13. </execution>
  14. </executions>
  15. </plugin>
  16. </plugins>
  17. </build>

 16.启动main方法时候,报找不到某些类(NoClassDefFoundError)可以尝试以下操作

下拉main所在方法=》edit configurations=》modify options =》Add dependencies with “private”scope to classpath 

五、linux

1.linux 查看日志常用命令

  1. tail:
  2. -n 是显示行号;相当于nl命令;例子如下:
  3. tail -100f test.log 实时监控100行日志
  4. tail -n 10 test.log 查询日志尾部最后10行的日志;
  5. tail -n +10 test.log 查询10行之后的所有日志;
  6. cat -n test.log |grep "debug" 查询关键字的日志


2.按行号查看---过滤出关键字附近的日志

  1. 1)cat -n test.log |grep "debug" 得到关键日志的行号
  2. 2)cat -n test.log |tail -n +92|head -n 20 选择关键字所在的中间一行. 然后查看这个关键字前10行和后10行的日志:
  3. tail -n +92表示查询92行之后的日志
  4. head -n 20 则表示在前面的查询结果里再查前20条记录
  1. cat app.log | grep -C 5 '关键字'   (显示日志里匹配字串那行以及前后5行)
  2. cat app.log | grep -B 5 '关键字'   (显示匹配字串及前5行)
  3. cat app.log | grep -A 5 '关键字'   (显示匹配字串及后5行)


3.根据日期查询日志

  1. sed -n '/2014-12-17 16:17:20/,/2014-12-17 16:17:36/p' test.log
  2. 特别说明:上面的两个日期必须是日志中打印出来的日志,否则无效;
  3. 先 grep '2014-12-17 16:17:20' test.log 来确定日志中是否有该 时间点


4.进入编辑查找:vi(vim)    

  1.  1、进入vim编辑模式:vi app.log
  2.     2、输入“/关键字”,按enter键查找
  3.     3、查找下一个,按“n”即可( n 查找上一处错误日志  N 查找下一处错误日志)
  4.        4、ctrl+f: 下翻一屏。
  5.           ctrl+b: 上翻一屏。
  6.           ctrl+d: 下翻半屏。
  7.           ctrl+u: 上翻半屏。
  8.           ctrl+e: 向下滚动一行。
  9.           ctrl+y: 向上滚动一行。
  10.        5、ctrl+o回到搜索的地方
  11. :w            - 保存文件,不退出 vim
  12. :w file       -将修改另外保存到 file 中,不退出 vim
  13. :w!           -强制保存,不退出 vim
  14. :wq           -保存文件,退出 vim
  15. :wq!          -强制保存文件,退出 vim
  16. :q            -不保存文件,退出 vim
  17. :q!           -不保存文件,强制退出 vim
  18. :e!           -放弃所有修改,从上次保存文件开始再编辑
  19.     其他情况:
  20.     /关键字    注:正向查找,按n键把光标移动到下一个符合条件的地方
  21.     ?关键字    注:反向查找,按shift+n 键,把光标移动到下一个符合条件的


5.查看所有关键字相关的日志(more 和vi 类似)

  1.    more app.log 默认打开所有的,从前往后
  2.              常用的有H(获得帮助信息),Enter(向下翻滚一行),空格(向下滚动一屏),Q(退出命令)
  3.              
  4.           1、more app.log | grep '关键字' 
  5.           2、按Space键:显示文本的下一屏内容
  6.           3、按B键:显示上一屏内容;
  7.           4、按H键:显示帮助屏,该屏上有相关的帮助信息;

 6.linux启动jar包

  1. 启动 jar 包
  2. 1.打成 jar
  3. 2.放进环境
  4. 3.nohup java - jar redis _ cache -1.0- SNAPSHOT . jar > output . log 2>&1

 7.linux重启jar包 

  1. 重启 jar 包
  2. 1.查询启动的进程 ps - elf | grep java (查看进程的 pid : ps aux | grep redis _ ca )2.找到进程的 pid
  3. 3.杀死进程 kill -9 xxxx
  4. 4.启动 jar 包

8.linux查看进程是否正常(端口号)

lsof -i:9200

9.linux查看进程是否正常(查询)

lsof -i:ps -ef |grep 'elasticsearch'

10.linux运行es

cd到bin

执行 ./elasticsearch

11.linux后台运行es

cd到bin

执行 ./elasticsearch -d

12.查看文件容量占比

df -h

13.查看文件夹文件大小

du -sh *

 14.查看压缩文件日志

zcat *.gz |grep aaa -C10

 

六、SQL

  1. SELECT
  2. tm.merchant_no AS merchantNo,
  3. td.NAME AS deptName,
  4. tm.NAME AS merchantName,
  5. tba.appid AS appId,
  6. CASE
  7. WHEN tm.createTime IS NULL THEN
  8. ( SELECT create_time FROM t_merchant_information t WHERE t.id = tm.id )
  9. ELSE tm.createTime
  10. END as createTime
  11. FROM
  12. (
  13. (
  14. SELECT
  15. tmi.id,
  16. tmi.merchant_no,
  17. tf.update_time as createTime,
  18. tmi.NAME,
  19. tmi.dept_id
  20. FROM
  21. t_merchant_information_pass tmi
  22. LEFT JOIN t_merchant_information_flow tf ON tf.merchant_no = tmi.merchant_no
  23. AND tf.flow_status = 3
  24. WHERE
  25. tmi.del_flag = 1
  26. AND tmi.dept_id != 1
  27. AND tmi.id IN
  28. <foreach collection="ids" item="id" open="(" close=")" separator=",">
  29. #{id}
  30. </foreach>
  31. GROUP BY
  32. tmi.merchant_no
  33. ) UNION
  34. (
  35. SELECT
  36. tmi.id,
  37. tmi.merchant_no,
  38. tmi.create_time as createTime,
  39. tmi.NAME,
  40. tmi.dept_id
  41. FROM
  42. t_merchant_information tmi
  43. LEFT JOIN t_merchant_information_flow tf ON tf.merchant_no = tmi.merchant_no
  44. WHERE
  45. tmi.del_flag = 1
  46. AND tmi.dept_id = 1
  47. AND tmi.id IN
  48. <foreach collection="ids" item="id" open="(" close=")" separator=",">
  49. #{id}
  50. </foreach>
  51. GROUP BY
  52. tmi.merchant_no
  53. )
  54. ) tm
  55. LEFT JOIN t_bank_appid tba ON tba.organ_no = tm.dept_id
  56. AND tba.is_delete = 1
  57. AND tba.STATUS = 1
  58. AND tba.organ_no != 1
  59. LEFT JOIN t_dept td ON td.id = tm.dept_id
  60. order by tm.id desc
  61. </if>

七、kafka:

启动kafka 

nohup bin /kafka-server-start.sh config/server.properties > nohup.out 2>&1 &

配置

  1. consumer:
  2. maxPendingRequest:100
  3. requestTimeOut:10000
  4. pollInterval:1000
  5. maxCallbackThreads:100
  6. common:
  7. retention.ms:604800000   数据保存时间(7天)
  8. retention.bytes:1048576000  总日志大小(1000m)。超过删最早的
  9. segment.bytes:2621400  segment大小(25m)
  10. partitions:10  分区数
  11. min.insync.replicas:1  ISR容许副本

kafka配置文件

server.properties

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/971374
推荐阅读
相关标签
  

闽ICP备14008679号