moment时间戳相互转换

时间:var time = new Date(); // Tue Aug 28 2018 09:16:06 GMT+0800 (中国标准时间) 
时间戳:var timestamp = Date.parse(time); // 1535419062000 (Date.parse() 默认不取毫秒,即后三位毫秒为0) 
moment转时间:moment(time).valueOf(); // 1535419062126 
moment转时间戳:moment(timestamp).format(); // 2018-08-28T09:17:42+08:00
render: (h, params) => {
              var res = moment(params.row.dateCreated).format('YYYY-MM-DD HH:mm:ss');
              return h('div', [
                h('span', {}, res)
              ])
            }

公司前后端分离框架权限控制各形式说明

一般开发的系统中包含下面三种权限控制方式,使用权限控制前需导入权限资源且定义permission变量,如下例子:

import * as permission from '../../../../utils/permission'
export default {
  data() {
    return {
      permission: permission
    }
  }
}

1. 组件及标签的现实与隐藏控制。

<i-button size="small" icon="" v-auth="permission.ZNSW_SUB" @click="openAddModel">新增</i-button>

2.列表中操作按钮通过定义指令控制按钮的显示与隐藏。

{
            title: '操作',
            align: 'center',
            width: 130,
            fixed: "right",
            render: (h, params) => {
              return h('div', [
                h('a', {
                  style: {
                    marginRight: "10px"
                  },
                  on: {
                    click: () => {
                      this.$refs.editRef.loadData(params.row.id);
                      this.editModel = true;
                    }
                  },
                  directives: [
                    {
                      name: "auth",
                      value: this.permission.ZNSW_SUB
                    }
                  ]
                }, '修改'),
                h('a', {
                  style: {
                    marginRight: "10px"
                  },
                  on: {
                    click: () => {
                      this.deleteModal = true;
                      this.deleteModel = 0;
                      this.rowIndex = params.index
                    }
                  },
                  directives: [
                    {
                      name: "auth",
                      value: this.permission.ZNSW_SUB
                    }
                  ]
                }, "删除"),
                h('a', {
                  style: {},
                  on: {
                    click: () => {
                      this.$refs.viewRef.loadData(params.row.id);
                      this.detailModal = !this.detailModal
                    }
                  }
                }, '详情'),
              ])
            }
          },

3.具体方法中可以直接通过判断实现。

if (Vue.auth(this, permission.FILE_DIR_OPTION)|| Vue.auth(this, permission.FOLDER_CREATE)) {
}
中宁水务项目定义权限资源有:
export const ZNSW_TEAM = 'znsw:team' 班组操作权限
export const ZNSW_SUB = 'znsw:sub' 子公司操作权限
可以根据实际情况把除检查外的其他录入模块进行权限控制,班组无权限录入与修改,只有子公司有录入权限。实际情况只需配置子公司权限,班组不予分配也就看不到,不用做各种情况判断,可参照教育培训修改。

GraphicsMagick的基本介绍与安装使用

GraphicsMagick是一个短小精悍的的图片处理工具和库集合。对于Java开发者来说,常用的图片处理工具有3个,JDK自带的图片处理库,ImageMagick,GraphicsMagick。JDK自带的图片处理库,虽稳定简单,性能却比较差;ImageMagick是目前最流行的图片处理工具,它的功能非常丰富;GraphicsMagick的功能略逊于ImageMagick,但是它的效率更强悍,但大多数情况下,GM的功能已经足够使用了。 继续阅读“GraphicsMagick的基本介绍与安装使用”

Linux项目部署练习任务清单

基础练习

1.远程登录,熟悉基本的Linux操作。
2.安装JDK,配置环境变量。
3.安装Maven,配置环境变量。
4.安装Gradle,配置环境变量。
5.安装宝塔面板。
6.设置需要开放端口。
7.通过宝塔面板安装Redis。
8.通过宝塔面板安装Tomcat8。
9.通过宝塔面板安装Mysql5.*。
10.通过宝塔面板安装Nginx。
11.部署已开发后端与前端项目。
12.域名解析,通过域名正常访问。
13.宝塔面板数据库管理练习,新建、导入、导出等。

拓展练习

1.安装Jenkins实现Maven项目与Gradle项目自动化构建部署。
2.部署多应用服务,通过Nginx反向代理实现多域名访问。
3.添加计划任务,定时备份数据库与项目文件放入阿里云OSS。

练习服务器

121.41.46.166:22
登录名:root
密码:练习的时候要一下。

ElacticSearch做分页查询页数超一万之后异常处理

今天在使用ElacticSearch做分页查询的时候,遇到一个奇怪的问题,分页获取前9999条数据的时候都是正常的,但每次获取第10000条数据的时候就无法获取到结果。检查自己代码中的分页逻辑也未发现什么问题,于是进行单步调试,当单步获取第10000条数据的时候捕捉到了下面的异常:

 Result window is too large, from + size must be less than or equal to: [10000] but was [131233]

要解决这个问题,可以使用下面的方式来改变ES默认深度分页的index.max_result_window 最大窗口值

curl -XPUT http://127.0.0.1:9200/my_index/_settings -d '{ "index" : { "max_result_window" : 500000}}'

待完善文档

希望大家根据个人能力整理下面的基础文档,以方便后人学习使用。要求每个编写人员,认真整理,目的是自己学习梳理,并且让人看懂你的学习思路,快速学会你所学的内容。

  • 数据库设计工具(EZDML与Navicat Data Modeler)的基本使用介绍。
  • IntelliJ IDEA基本使用设置:安装、激活、基础设置、创建工程、创建项目。
  • 根据用户需求设计数据库,主外键关联关系设计等(入门知识)。
    1. 订餐系统(叶张斌)
    2. 选课系统(金鸿志)
    3. 喜刷刷微信订单系统(叶张斌、金鸿志、齐慕滔各写一篇。)
  • Json与Xml的基本概念与区别。(叶张斌)
  • 公司老框架(Maven)项目导入运行过程介绍。
  • 公司新框架(Gradle)项目导入运行过程介绍。
  • 前端项目打开、安装、编译、运行、部署介绍。
  • 码云与阿里云Code账号的注册与基本使用。

优秀简书博客收藏

Nginx作为代理服务
深入浅出Nginx
干货:关于Git的超赞讲解(初学者)
设计之道-controller层的设计(初学者)
synchronized锁住的是代码还是对象
缓存、cookie、token、session、localStorage
必须掌握的linux命令
数据库优化方案之分库分表
TCP、UDP、Socket、HTTP你不知道的故事

将springboot应用注册为windows服务

推荐阅读博客

Apache配置多站点域名访问,并反向代理到Tomcat项目

问题描述:服务器上装配了Apache服务和Tomcat服务,Apache服务按照惯例分配80端口,Tomcat服务按照惯例占用8080端口,但是本人因为项目需要,开发了几个PHP的项目,需要Apache服务进行支持,而且需要不同的域名访问对应的项目。另外,主机上还存在JavaEE项目,自然Tomcat也是不可避免的,所以需要给Tomcat项目也分配对应的域名,但是Tomcat项目不希望带着端口号(比如http://domian:8080),所以该场景下将会用到Apache转发,即80端口转向8080,对外不公开端口号。

继续阅读“Apache配置多站点域名访问,并反向代理到Tomcat项目”