/*
Navicat MySQL Data Transfer

Source Server         : 超级前台测试
Source Server Version : 50720
Source Host           : 120.79.80.138:3306
Source Database       : super_service_test

Target Server Type    : MYSQL
Target Server Version : 50720
File Encoding         : 65001

Date: 2018-08-01 16:39:40
*/

SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------
-- Table structure for tr_app_user_orgnization
-- ----------------------------
DROP TABLE IF EXISTS `tr_app_user_orgnization`;
CREATE TABLE `tr_app_user_orgnization` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `org_id` int(11) DEFAULT NULL COMMENT '项目ID',
  `user_id` int(11) DEFAULT NULL COMMENT '系统用户ID',
  `remark` varchar(50) DEFAULT NULL COMMENT '备注',
  `creator` varchar(20) DEFAULT NULL COMMENT '创建人',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `role_id` int(11) unsigned zerofill DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='用户-项目管辖关联表';

-- ----------------------------
-- Table structure for tr_company_org
-- ----------------------------
DROP TABLE IF EXISTS `tr_company_org`;
CREATE TABLE `tr_company_org` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `company_id` int(11) DEFAULT NULL COMMENT '运营中心id',
  `org_id` int(11) DEFAULT NULL COMMENT '项目ID',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='运营中心-项目关系表';


-- ----------------------------
-- 2018-08-14 14:03:09
-- Table structure for tr_service_function
-- ----------------------------
DROP TABLE IF EXISTS `tr_service_function`;
CREATE TABLE `tr_service_function` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `function_id` int(11) DEFAULT NULL COMMENT '功能id',
  `service_id` int(11) DEFAULT NULL COMMENT '服务包id',
  `type` int(2) DEFAULT NULL COMMENT '展示端 0-PC 1-APP',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='服务包-功能关系表';

ALTER TABLE `tr_app_user_orgnization`
  CHANGE `user_id` `user_id` BIGINT(20) NOT NULL COMMENT '用户ID';

ALTER TABLE `tb_virtualarchitecture`
  ADD COLUMN `buildId` int(11) NULL  COMMENT '楼宇id';

ALTER TABLE `tb_app_notice`
  ADD COLUMN `orgId` int(11) NULL  COMMENT '项目id';

ALTER TABLE `tb_wxtemplate_message`
  ADD COLUMN `orgId` int(11) NULL  COMMENT '项目id';

ALTER TABLE `tb_email_send`
  ADD COLUMN `orgId` int(11) NULL  COMMENT '项目id';

ALTER TABLE `tb_phone_message`
  ADD COLUMN `orgId` int(11) NULL  COMMENT '项目id';

ALTER TABLE `tb_model`
  ADD COLUMN `fileUrl` VARCHAR (255) NULL  COMMENT '文件路径';

ALTER TABLE `tb_model`
  ADD COLUMN `fileName` VARCHAR (255) NULL  COMMENT '文件名称';

ALTER TABLE `tb_model`
  ADD COLUMN `orgId` int(11) NULL  COMMENT '项目id';


-- 2018年9月12日09:47:57 短信账号配置表
-- ----------------------------
DROP TABLE IF EXISTS `tb_mobile_config`;
CREATE TABLE `tb_mobile_config` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `mobileNum` varchar(20) DEFAULT NULL,
  `password` varchar(50) DEFAULT NULL,
  `signature` varchar(50) DEFAULT NULL COMMENT '短信后缀签名',
  `createTime` datetime DEFAULT NULL COMMENT '创建时间',
  `creator` bigint(20) DEFAULT NULL COMMENT '创建者',
  `orgId` int(11) DEFAULT NULL COMMENT '项目id',
  `modify` bigint(20) DEFAULT NULL COMMENT '修改人',
  `modifyTime` datetime DEFAULT NULL COMMENT '修改时间',
  `isEnable` tinyint(1) DEFAULT '1' COMMENT '是否可用 1-可用 0-禁用',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='短信账号配置';


-- 2018年9月14日15:27:41 物品放行详情列表
-- ----------------------------
-- Table structure for tb_goods_detail
-- ----------------------------
DROP TABLE IF EXISTS `tb_goods_detail`;
CREATE TABLE `tb_goods_detail` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `goodsName` varchar(50) DEFAULT NULL COMMENT '物品名称',
  `amount` int(255) DEFAULT NULL COMMENT '数量',
  `releaseId` bigint(20) DEFAULT NULL COMMENT '放行单id',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='物品放行明细';


-- 2018年9月19日12:14:50  商圈发现
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for tb_organization_config
-- ----------------------------
DROP TABLE IF EXISTS `tb_organization_config`;
CREATE TABLE `tb_organization_config` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `orgId` int(11) DEFAULT NULL COMMENT '项目id',
  `discoverIsEnabled` varchar(1) DEFAULT '0' COMMENT '项目商圈发现功能是否开启',
  `discoverCategory` varchar(1) DEFAULT NULL COMMENT '项目商圈发现名称 0-商圈 1-发现',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='项目额外配置信息表';


ALTER TABLE `tb_servicetypeinfo`
  ADD COLUMN `grayAppServiceIcon` VARCHAR (100) NULL  COMMENT 'app灰度图标路径';

ALTER TABLE `tb_servicetypeinfo`
  ADD COLUMN `grayWechatServiceIcon` VARCHAR (100) NULL  COMMENT '微信端灰度图标路径';

ALTER TABLE `tb_servicetypeinfo`
  ADD COLUMN `serviceCategory` VARCHAR (10) NULL  COMMENT '服务分类';


ALTER TABLE `tb_serviceprojectallocation`
  ADD COLUMN `indate` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '有效时间';


-- 插入基础数据

INSERT INTO `tb_dictionary_group` (`id`, `groupcode`, `groupname`, `isenabled`, `oprateversion`, `opratetype`, `createby`, `createtime`, `lastupdateby`, `lastupdatetime`) VALUES (null, 'serviceCategory', '服务分类', '1', (select t2.oprateversion from tb_dictionary_group t2 order by t2.id DESC limit 1)+1, '1', 'admin,系统管理员', now(), NULL, NULL);
INSERT INTO `tb_dictionary_group` (`id`, `groupcode`, `groupname`, `isenabled`, `oprateversion`, `opratetype`, `createby`, `createtime`, `lastupdateby`, `lastupdatetime`) VALUES (null, 'serviceIndate', '服务有效期', '1', (select t2.oprateversion from tb_dictionary_group t2 order by t2.id DESC limit 1)+1, '1', 'admin,系统管理员', now(), NULL, NULL);
INSERT INTO `tb_dictionary_group` (`id`, `groupcode`, `groupname`, `isenabled`, `oprateversion`, `opratetype`, `createby`, `createtime`, `lastupdateby`, `lastupdatetime`) VALUES (null, 'discoverCategory', '商圈发现', '1', (select t2.oprateversion from tb_dictionary_group t2 order by t2.id DESC limit 1)+1, '1', 'admin,系统管理员', now(), NULL, NULL);


INSERT INTO `tb_dictionary_item` (`id`, `itemcode`, `itemname`, `groupid`, `isenabled`, `oprateversion`, `opratetype`, `createby`, `createtime`, `lastupdateby`, `orderno`, `lastupdatetime`) VALUES (null, '2', '商圈发现', (SELECT id FROM tb_dictionary_group t1 WHERE t1.groupcode='serviceGroupType'), '1', (select t2.oprateversion from tb_dictionary_item t2 order by t2.id DESC limit 1)+1, '1', 'admin,系统管理员', now(), NULL, '3', NULL);

INSERT INTO `tb_dictionary_item` (`id`, `itemcode`, `itemname`, `groupid`, `isenabled`, `oprateversion`, `opratetype`, `createby`, `createtime`, `lastupdateby`, `orderno`, `lastupdatetime`) VALUES (null, '0', '企业配套', (SELECT id FROM tb_dictionary_group t1 WHERE t1.groupcode='serviceCategory'), '1', (select t2.oprateversion from tb_dictionary_item t2 order by t2.id DESC limit 1)+1, '1', 'admin,系统管理员', now(), NULL, '1', NULL);
INSERT INTO `tb_dictionary_item` (`id`, `itemcode`, `itemname`, `groupid`, `isenabled`, `oprateversion`, `opratetype`, `createby`, `createtime`, `lastupdateby`, `orderno`, `lastupdatetime`) VALUES (null, '1', '楼宇服务', (SELECT id FROM tb_dictionary_group t1 WHERE t1.groupcode='serviceCategory'), '1', (select t2.oprateversion from tb_dictionary_item t2 order by t2.id DESC limit 1)+1, '1', 'admin,系统管理员', now(), NULL, '2', NULL);

INSERT INTO `tb_dictionary_item` (`id`, `itemcode`, `itemname`, `groupid`, `isenabled`, `oprateversion`, `opratetype`, `createby`, `createtime`, `lastupdateby`, `orderno`, `lastupdatetime`) VALUES (null, '0', '7天', (SELECT id FROM tb_dictionary_group t1 WHERE t1.groupcode='serviceIndate'), '1', (select t2.oprateversion from tb_dictionary_item t2 order by t2.id DESC limit 1)+1, '1', 'admin,系统管理员', now(), NULL, '0', NULL);
INSERT INTO `tb_dictionary_item` (`id`, `itemcode`, `itemname`, `groupid`, `isenabled`, `oprateversion`, `opratetype`, `createby`, `createtime`, `lastupdateby`, `orderno`, `lastupdatetime`) VALUES (null, '1', '15天', (SELECT id FROM tb_dictionary_group t1 WHERE t1.groupcode='serviceIndate'), '1', (select t2.oprateversion from tb_dictionary_item t2 order by t2.id DESC limit 1)+1, '1', 'admin,系统管理员', now(), NULL, '1', NULL);
INSERT INTO `tb_dictionary_item` (`id`, `itemcode`, `itemname`, `groupid`, `isenabled`, `oprateversion`, `opratetype`, `createby`, `createtime`, `lastupdateby`, `orderno`, `lastupdatetime`) VALUES (null, '2', '1个月', (SELECT id FROM tb_dictionary_group t1 WHERE t1.groupcode='serviceIndate'), '1', (select t2.oprateversion from tb_dictionary_item t2 order by t2.id DESC limit 1)+1, '1', 'admin,系统管理员', now(), NULL, '2', NULL);
INSERT INTO `tb_dictionary_item` (`id`, `itemcode`, `itemname`, `groupid`, `isenabled`, `oprateversion`, `opratetype`, `createby`, `createtime`, `lastupdateby`, `orderno`, `lastupdatetime`) VALUES (null, '3', '3个月', (SELECT id FROM tb_dictionary_group t1 WHERE t1.groupcode='serviceIndate'), '1', (select t2.oprateversion from tb_dictionary_item t2 order by t2.id DESC limit 1)+1, '1', 'admin,系统管理员', now(), NULL, '3', NULL);
INSERT INTO `tb_dictionary_item` (`id`, `itemcode`, `itemname`, `groupid`, `isenabled`, `oprateversion`, `opratetype`, `createby`, `createtime`, `lastupdateby`, `orderno`, `lastupdatetime`) VALUES (null, '4', '半年', (SELECT id FROM tb_dictionary_group t1 WHERE t1.groupcode='serviceIndate'), '1', (select t2.oprateversion from tb_dictionary_item t2 order by t2.id DESC limit 1)+1, 'admin,系统管理员', now(), NULL, '4', NULL);
INSERT INTO `tb_dictionary_item` (`id`, `itemcode`, `itemname`, `groupid`, `isenabled`, `oprateversion`, `opratetype`, `createby`, `createtime`, `lastupdateby`, `orderno`, `lastupdatetime`) VALUES (null, '5', '一年', (SELECT id FROM tb_dictionary_group t1 WHERE t1.groupcode='serviceIndate'), '1', (select t2.oprateversion from tb_dictionary_item t2 order by t2.id DESC limit 1)+1, '1', 'admin,系统管理员', now(), NULL, '5', NULL);
INSERT INTO `tb_dictionary_item` (`id`, `itemcode`, `itemname`, `groupid`, `isenabled`, `oprateversion`, `opratetype`, `createby`, `createtime`, `lastupdateby`, `orderno`, `lastupdatetime`) VALUES (null, '6', '永久', (SELECT id FROM tb_dictionary_group t1 WHERE t1.groupcode='serviceIndate'), '1', (select t2.oprateversion from tb_dictionary_item t2 order by t2.id DESC limit 1)+1, '1', 'admin,系统管理员', now(), NULL, '6', NULL);

INSERT INTO `tb_dictionary_item` (`id`, `itemcode`, `itemname`, `groupid`, `isenabled`, `oprateversion`, `opratetype`, `createby`, `createtime`, `lastupdateby`, `orderno`, `lastupdatetime`) VALUES (null, '0', '商圈', (SELECT id FROM tb_dictionary_group t1 WHERE t1.groupcode='discoverCategory'), '1', (select t2.oprateversion from tb_dictionary_item t2 order by t2.id DESC limit 1)+1, '1', 'admin,系统管理员', now(), NULL, '1', NULL);
INSERT INTO `tb_dictionary_item` (`id`, `itemcode`, `itemname`, `groupid`, `isenabled`, `oprateversion`, `opratetype`, `createby`, `createtime`, `lastupdateby`, `orderno`, `lastupdatetime`) VALUES (null, '1', '发现', (SELECT id FROM tb_dictionary_group t1 WHERE t1.groupcode='discoverCategory'), '1', (select t2.oprateversion from tb_dictionary_item t2 order by t2.id DESC limit 1)+1, '1', 'admin,系统管理员', now(), NULL, '2', NULL);


-- 2018年9月20日18:30:03 服务分类,灰度
ALTER TABLE `tb_servicetypeinfo`
  ADD COLUMN `grayUrl` VARCHAR (255) NULL  COMMENT '灰度图标链接跳转路径';


-- 2018年9月28日18:59:00 基础信息
INSERT INTO `tb_dictionary_item` (`id`, `itemcode`, `itemname`, `groupid`, `isenabled`, `oprateversion`, `opratetype`, `createby`, `createtime`, `lastupdateby`, `orderno`, `lastupdatetime`) VALUES (null, '7', '自定义截止时间', (SELECT id FROM tb_dictionary_group t1 WHERE t1.groupcode='serviceIndate'), '1', (select t2.oprateversion from tb_dictionary_item t2 order by t2.id DESC limit 1)+1, '1', 'admin,系统管理员', now(), NULL, '7', NULL);

-- 2018年10月11日11:02:13 删除旧表
DROP TABLE IF EXISTS `tr_app_user_org`;






-- 2018年10月22日11:05:44 权限功能模块添加基础数据
ALTER TABLE `tb_app_function`
  ADD COLUMN `PERMS` VARCHAR (500) NULL  COMMENT '授权(多个用逗号分隔，如：user:list,user:create)';

-- 操作顺序:
-- 第一步:先删除功能表中的垃圾数据(原先残留的,不包括按钮)
DELETE FROM tb_app_function WHERE ID in (SELECT a.ID FROM (SELECT * FROM tb_app_function WHERE ID NOT in (SELECT t2.ID FROM tb_app_menu t1 INNER JOIN tb_app_function t2 ON t1.FUNCTION_ID=t2.ID) AND SYSTEMCODE IS NULL) a);
-- 删除角色-功能表中 已经被删除的功能所关联的数据
DELETE FROM tr_app_role_function WHERE FUNCTION_ID in (SELECT a.FUNCTION_ID FROM (SELECT t1.FUNCTION_ID FROM tr_app_role_function t1 left join (select id from tb_app_function) as t2 on t1.FUNCTION_ID= t2.id where t2.id is NULL GROUP BY FUNCTION_ID) a);
-- 删除角色-功能表中 已经被删除的角色所关联的数据
DELETE FROM tr_app_role_function WHERE ROLEID in (SELECT a.ROLEID FROM (SELECT t1.ROLEID FROM tr_app_role_function t1 left join (select id from tb_app_role) as t2 on t1.ROLEID= t2.id where t2.id is NULL GROUP BY t1.ROLEID) a);

-- 第二步:将原有三级菜单权限功能进行分类 设置TREECODE为自身id 设置RIGHT_TYPE为2
UPDATE tb_app_function SET RIGHT_TYPE=2, TREECODE=(SELECT @update_id := id) WHERE ID in (SELECT a.ID FROM (SELECT * FROM tb_app_function WHERE ID NOT in (SELECT t2.ID FROM tb_app_menu t1 INNER JOIN tb_app_function t2 ON t1.FUNCTION_ID=t2.ID) AND SYSTEMCODE IS NOT NULL) a);

-- 2018年10月29日17:10:55 权限功能基础数据维护
-- 入驻功能(工程)权限数据同步
UPDATE tb_app_function SET `STATUS`='0' WHERE SYSTEMCODE='2003';

-- 如果还有未分级到功能  进行手动维护!!!!!!

-- 第三步:先执行 <一二级功能划分并更新.sql> 再执行 <权限按钮数据插入.sql>



-- 2018年11月5日09:39:28 航电接口对接
ALTER TABLE `tb_organization`
  ADD COLUMN `hdProjectId` VARCHAR (20) NULL  COMMENT '航电项目id';
ALTER TABLE `tb_organization`
  ADD COLUMN `hdProjectName` VARCHAR (255) NULL  COMMENT '航电项目名称';

-- ----------------------------
-- Table structure for tb_user_repair
-- ----------------------------
DROP TABLE IF EXISTS `tb_user_repair`;
CREATE TABLE `tb_user_repair` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
  `creator` varchar(255) DEFAULT NULL COMMENT '创建人',
  `createTime` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '创建时间',
  `modifier` varchar(255) DEFAULT NULL COMMENT '修改人',
  `modifyTime` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
  `openId` varchar(255) DEFAULT NULL COMMENT '微信用户的openId',
  `orgId` varchar(20) DEFAULT NULL COMMENT '项目id',
  `mobile` varchar(20) DEFAULT NULL COMMENT '手机号',
  `userCode` varchar(50) DEFAULT NULL COMMENT '航电用户userCode',
  `status` tinyint(2) DEFAULT NULL COMMENT '用户状态 0：正常，1：锁定 2:删除',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8 COMMENT='航电项目维修-报事-评价服务用户记录表';




-- 2018年11月20日14:21:12 服务之窗_超级前台 用户模块数据整合
-- 格式化 tb_user表
DROP TABLE IF EXISTS `tb_user`;
CREATE TABLE `tb_user` (
  `ID` int(11) NOT NULL,
  `userName` varchar(40) DEFAULT '' COMMENT '姓名',
  `nickName` varchar(40) DEFAULT '' COMMENT '昵称',
  `userMobile` varchar(11) DEFAULT '' COMMENT '手机号码',
  `userType` varchar(2) DEFAULT '' COMMENT '用户类型',
  `userSex` varchar(2) DEFAULT '' COMMENT '性别',
  `userCardNo` varchar(40) DEFAULT '' COMMENT '学生号/身份证',
  `birthday` varchar(20) DEFAULT '' COMMENT '生日',
  `userPhotoUrl` varchar(200) DEFAULT '' COMMENT '头像',
  `password` varchar(100) DEFAULT '' COMMENT '密码',
  `status` varchar(2) DEFAULT '' COMMENT '认证状态',
  `suggestion` varchar(250) DEFAULT '' COMMENT '审核建议',
  `address` varchar(200) DEFAULT '' COMMENT '详细地址',
  `imageUrl01` varchar(200) DEFAULT '' COMMENT '证件照片1',
  `imageUrl02` varchar(200) DEFAULT '' COMMENT '证件照片2',
  `imageUrl03` varchar(200) DEFAULT '',
  `creator` varchar(20) DEFAULT '' COMMENT '创建者',
  `createTime` datetime DEFAULT NULL COMMENT '创建时间',
  `modifier` varchar(20) DEFAULT NULL COMMENT '修改人',
  `modifyTime` datetime DEFAULT NULL COMMENT '修改时间',
  `organizationId` int(11) DEFAULT NULL COMMENT '项目id',
  `virtualArchId` int(11) DEFAULT NULL COMMENT '企业ID',
  `isEnabled` varchar(2) DEFAULT '' COMMENT '是否可用',
  `userNumber` varchar(40) DEFAULT '' COMMENT '员工编号',
  `enteringTime` date DEFAULT NULL COMMENT '入司时间',
  `positionName` varchar(40) DEFAULT '' COMMENT '职位名称',
  `departmentId` int(11) DEFAULT NULL COMMENT '部门ID',
  `facePlusUserId` int(11) DEFAULT NULL COMMENT 'face++用户唯一标识',
  `roleType` varchar(2) DEFAULT '' COMMENT '企业用户角色（1-管理员，2-普通用户）',
  `noticePower` varchar(2) DEFAULT '' COMMENT '接受审核通知（0-不接收用户申请通知，关，1-接收用户申请通知，开）',
  `isSyncNeigou` int(11) DEFAULT '0' COMMENT '是否同步内购网',
  `isResponsible` int(11) DEFAULT '0' COMMENT '是否责任人',
  `isPushPower` int(11) DEFAULT '0' COMMENT '是否有账单推送权限',
  `isReleasePower` int(11) DEFAULT '0' COMMENT '是否有物品放行权限',
  `email` varchar(100) DEFAULT '' COMMENT '邮箱',
  `reOrder` int(11) DEFAULT '0',
  `device_type` int(1) DEFAULT NULL COMMENT '1-android 2-ios',
  `device_no` varchar(255) DEFAULT NULL COMMENT '设备号',
  `remark` varchar(500) DEFAULT '',
  `integral` int(11) DEFAULT '0' COMMENT '积分',
  `userCode` varchar(50) DEFAULT NULL COMMENT '航电用户userCode',
  PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='前端用户信息表';


-- 创建相应的主键查询表 自动生成主键
-- 创建主键seq表
create table tb_seq (
	name varchar(50) not null primary key COMMENT '主键名称',
	start_value int not null COMMENT '起始id',
	increment_value int not null default 1 COMMENT '自增步长'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='主键自增序列表';

-- 手动插入起始数据 服务之窗这边的用户id默认从10000开始
insert into tb_seq values('bw_user_no',10000,1);

-- 定义主键自增函数 nextval
DELIMITER //
create function nextval(str varchar(50)) returns integer
DETERMINISTIC
begin
	declare i int;
	set i=(select start_value from tb_seq where name=str);
	update tb_seq
		set start_value=i+increment_value
	where name=str;
return i;
end;
//

DELIMITER ;


-- 2018年12月5日14:40:57
-- 划分tb_user表中用户类型信息
UPDATE tb_user SET userType=0 WHERE (userType <> '-1' OR userType IS NULL) AND isEnabled=1;
UPDATE tb_user SET userType=2 WHERE (userType <> '-1' OR userType IS NULL) AND isEnabled=0;


-- 2018年12月7日10:45:55
CREATE TABLE `tb_lingling_device` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
  `deviceType` int(2) DEFAULT NULL COMMENT '设备类型',
  `deviceId` int(11) DEFAULT NULL COMMENT '令令开门设备 ID',
  `deviceName` varchar(50) DEFAULT NULL COMMENT '设备名称',
  `deviceCode` varchar(50) DEFAULT NULL COMMENT '设备SN码',
  `deviceStatus` tinyint(1) DEFAULT '0' COMMENT '设备状态 0-离线 1-在线',
  `address` varchar(255) DEFAULT NULL COMMENT '设备地址',
  `remark` varchar(255) DEFAULT NULL COMMENT '备注信息',
  `createTime` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '添加时间',
  `creator` bigint(20) DEFAULT NULL COMMENT '添加人',
  `modifyTime` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
  `modify` bigint(20) DEFAULT NULL COMMENT '修改人',
  `orgId` int(11) DEFAULT NULL COMMENT '所属项目 id',
  `isEnable` tinyint(1) DEFAULT '1' COMMENT '设备禁用状态 0-禁用 1-可用',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='令令开门设备表';



-- 2018年12月10日14:14:30
CREATE TABLE `tr_perm_group_user` (
  `device_perm_group_id` BIGINT(20) NOT NULL COMMENT '设备组ID',
  `user_id` INT(11) NOT NULL COMMENT '用户ID',
  KEY `fk_group_id` (`device_perm_group_id`) USING BTREE,
  KEY `fk_user_id` (`user_id`) USING BTREE
) ENGINE=INNODB DEFAULT CHARSET=utf8 COMMENT='设备组-用户关系表';

ALTER TABLE `tb_device_perm_group`
  ADD COLUMN `orgId` int(11) DEFAULT NULL COMMENT '所属项目 id';


CREATE TABLE `tb_lingling_card` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键id',
  `card_code` varchar(20) NOT NULL COMMENT '实体卡号',
  `create_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '发卡时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


CREATE TABLE `tr_user_lingling_card` (
  `card_id` bigint(20) NOT NULL COMMENT '卡id',
  `user_id` INT(11) NOT NULL COMMENT '用户ID',
  KEY `fk_card_id` (`card_id`) USING BTREE,
  KEY `fk_user_id` (`user_id`) USING BTREE
) ENGINE=INNODB DEFAULT CHARSET=utf8 COMMENT='实体卡-用户关系表';


ALTER TABLE `tb_visitorOrder`
  ADD COLUMN `visitorQrCode` varchar(255) DEFAULT NULL COMMENT '令令二维码';
ALTER TABLE `tb_visitorOrder`
  ADD COLUMN `visitorQrCodeId` int(11) DEFAULT NULL COMMENT '令令二维码 id';

ALTER TABLE `tb_organization`
  ADD COLUMN `passType` int(1) DEFAULT 0 COMMENT '通行方式 0-无 1-face++  2-二维码';

ALTER TABLE `tb_user`
  ADD COLUMN `lingLingId` varchar(255) DEFAULT NULL COMMENT '令令对接用户员工唯一标识';



CREATE TABLE `tb_lingling_log` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键id',
  `type` int(2) NOT NULL COMMENT '日志类型 1-业主二维码开门 2-访客二维码开门 3-NFC实体卡',
  `lingLingId` varchar(50) DEFAULT NULL COMMENT '令令id',
  `deviceId` int(11) DEFAULT NULL COMMENT '开门的设备id',
  `openTime` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '开门时间',
  `deviceCode` varchar(50) DEFAULT NULL COMMENT '设备的SN码',
  `qrcodeKey` varchar(255) DEFAULT NULL COMMENT '二维码串',
  `cardUid` varchar(20) DEFAULT NULL COMMENT '实体卡的id串',
  `createTime` datetime DEFAULT NULL COMMENT '数据库当前数据生成时间',
  `deviceStatus` int(2) DEFAULT NULL COMMENT '设备状态',
  `deviceVersion` varchar(50) DEFAULT NULL COMMENT '设备版本号',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='令令开门日志';


ALTER TABLE `tb_visitorOrder`
  ADD COLUMN `fromUserId` int(11) DEFAULT NULL COMMENT '非白名单访问人id';

ALTER TABLE `tb_lingling_device`
  ADD COLUMN `sdkKey` varchar(255) DEFAULT NULL COMMENT '设备的sdkKey';

ALTER TABLE `tb_lingling_log`
  ADD COLUMN `mobile` varchar(20) DEFAULT NULL COMMENT '手机号';

ALTER TABLE `tb_lingling_log`
  ADD COLUMN `userName` varchar(50) DEFAULT NULL COMMENT '名字';


-- 2018年12月20日11:08:25 短信验证码分模块
ALTER TABLE `tb_sms_authcode`
  ADD COLUMN `orgId` int(11) DEFAULT NULL COMMENT '项目id';
ALTER TABLE `tb_sms_authcode`
  ADD COLUMN `content` varchar(500) DEFAULT NULL COMMENT '短信内容';


-- 2018年12月21日10:50:50 企业内购用户
CREATE TABLE `tb_in_puchase_user` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `developId` varchar(20) DEFAULT NULL COMMENT '公众号id',
  `openId` varchar(40) DEFAULT NULL COMMENT '用户openid',
  `wxUserId` int(11) DEFAULT NULL COMMENT '微信用户id',
  `mobile` varchar(20) DEFAULT NULL COMMENT '用户手机号',
  `createTime` datetime DEFAULT NULL COMMENT '创建时间',
  `isEnable` tinyint(1) DEFAULT '1' COMMENT '是否可用 0-不可用 1-可用',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='企业内购用户信息表';


-- 2018年12月26日17:44:41 腾讯海纳
INSERT INTO `tb_seq` (`name`, `start_value`, `increment_value`) VALUES ('bw_user_number', '1', '1');
-- 方法调用日志表
CREATE TABLE `tb_method_execute_log` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `method_name` varchar(50) DEFAULT NULL COMMENT '执行的接口名称',
  `create_time` datetime DEFAULT NULL COMMENT '执行时间',
  `orgId` int(11) DEFAULT NULL COMMENT '项目id',
  `content` text COMMENT '操作内容',
  `creator` bigint(20) DEFAULT NULL COMMENT '操作人',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- 功能表新增三级功能(后台操作): 组织架构/企业人员信息管理/信息同步  pc:dinner:account:sysc      然后给超级管理员分配该权限


-- 2019年1月3日18:11:53 新增部门
CREATE TABLE `tb_department` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) DEFAULT NULL COMMENT '部门名称',
  `shortName` varchar(255) DEFAULT NULL COMMENT '部门简称',
  `creator` bigint(20) DEFAULT NULL COMMENT '创建人id',
  `createTime` datetime DEFAULT NULL COMMENT '创建时间',
  `modifier` bigint(20) DEFAULT NULL COMMENT '修改人id',
  `modifyTime` datetime DEFAULT NULL COMMENT '修改时间',
  `orgId` int(11) DEFAULT NULL COMMENT '项目id',
  `virId` int(11) DEFAULT NULL COMMENT '企业id',
  `address` varchar(255) DEFAULT NULL COMMENT '地址',
  `orderNum` int(11) DEFAULT NULL COMMENT '排序号',
  `isEnabled` tinyint(1) DEFAULT '1' COMMENT '是否可用 0-不可用 1-可用',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='企业员工部门表(tb_user)';


-- 2019年1月7日09:29:12 权限组修改
ALTER TABLE `tb_dictionary_group`
  ADD COLUMN `isorgcustom` tinyint(1) DEFAULT '0' COMMENT '项目可自定义 0-否 1-是';
ALTER TABLE `tb_dictionary_group`
  ADD COLUMN `itemid` bigint(20) DEFAULT NULL COMMENT '所属功能分类';


CREATE TABLE `tb_dictionary_org_item` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `itemname` varchar(200) NOT NULL,
  `groupid` bigint(20) NOT NULL,
  `isenabled` int(11) DEFAULT NULL,
  `creator` bigint(20) DEFAULT NULL,
  `createtime` datetime DEFAULT NULL,
	`orderno` int(11) DEFAULT NULL,
	`orgid` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='数据字典项目配置';

-- 插入基础数据,项目所属功能列表
INSERT INTO `tb_dictionary_group` (`groupcode`, `groupname`, `isenabled`, `oprateversion`, `opratetype`, `createby`, `createtime`, `lastupdateby`, `lastupdatetime`, `isorgcustom`, `itemid`) VALUES ('funcList', '项目所属功能列表', '1', '93', '1', 'admin,系统管理员', '2019-01-07 19:43:04', NULL, NULL, '0', NULL);

-- 将超级前台导入人员设置为白名单用户
UPDATE tb_user SET userType=0 WHERE ID<10000;





-- 2019年1月9日11:29:17 创建自定义函数:为所有未分配指定功能权限的管理员分配该权限功能

-- 函数开始
drop procedure if exists save_role_func;
-- 创建自定义函数:为所有未分配指定功能权限的管理员分配该权限功能
-- funcid:需要添加的功能id
create procedure save_role_func(funcid int)
BEGIN
declare done int default 0;/*用于判断是否结束循环*/
declare hostId int; /*循环时使用*/

/*定义游标,用于存储查询到的结果集(需要分配的角色集合)*/
declare idCur cursor for SELECT
	t1.ID
FROM
	tb_app_role t1
WHERE
	t1.ISENABLED = 1
AND t1.ROLE_TYPE < 4
AND t1.ID NOT in (
	SELECT
		t3.ROLEID ID
	FROM
		tr_app_role_function t3
	WHERE
		t3.FUNCTION_ID = funcid
	GROUP BY
		t3.ROLEID
);

/*定义 设置循环结束标识done值怎么改变的逻辑*/
declare continue handler for not FOUND set done = 1; /*done = true;亦可*/

open idCur;  /*打开游标*/

/* 循环开始 */
REPEAT
		fetch idCur into hostId;  /*将游标中的值赋值到之前定义的hostId*/
				if not done THEN  /*数值为非0，MySQL认为是true*/
        INSERT INTO tr_app_role_function(ROLEID,FUNCTION_ID) VALUES(hostId,funcid);/* 插入操作 */
				end if;
until done end repeat;

close idCur;  /*关闭游标*/
END/* 循环结束 */
-- 函数结束

-- call save_role_func(144);/* 调起函数 */





-- 2019年1月11日11:13:32 模块用户活跃量统计
CREATE TABLE `tb_user_active_count` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `serviceCode` varchar(255) DEFAULT NULL COMMENT '服务编码',
  `date` date DEFAULT NULL COMMENT '日期',
  `count` int(11) DEFAULT NULL COMMENT '活跃量',
  `orgId` int(11) DEFAULT NULL COMMENT '项目id',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户模块活跃量统计';


-- 2019年1月15日18:25:50 清空redis中服务相关缓存数据



-- 为服务重新分配功能编码,默认格式为: FW-0001 ,从0开始
-- 函数开始(同步服务编码)
drop procedure if exists edit_servicecode;

create procedure edit_servicecode()
BEGIN
declare done int default 0;/*用于判断是否结束循环*/
declare serviceId int; /*循环时使用,用于存储每次的服务id*/
declare serviceCode int default 1;/* 服务编码,默认从1开始 */

/*定义游标,用于存储查询到的结果集*/
declare idCur cursor for SELECT
	t1.ID
FROM
	tb_servicetypeinfo t1;

/*定义 设置循环结束标识done值怎么改变的逻辑*/
declare continue handler for not FOUND set done = 1; /*done = true;亦可*/

open idCur;  /*打开游标*/

/* 循环开始 */
REPEAT
		fetch idCur into serviceId;  /*将游标中的值赋值到之前定义的serviceId*/
				if not done THEN  /*数值为非0，MySQL认为是true*/
        UPDATE tb_servicetypeinfo SET `code`=CONCAT('FW','-',(select LPAD(serviceCode, 4, 0))) WHERE id=serviceId;/* 更新操作 */
				set serviceCode=serviceCode+1;
				end if;
until done end repeat;

close idCur;  /*关闭游标*/
END
-- 函数结束




-- 2019年2月15日09:47:14 服务功能权限模块
ALTER TABLE `tb_serviceprojectallocation`
  ADD COLUMN `permission` tinyint(1) DEFAULT '0' COMMENT '是否开启了权限设置(1-是 0-否)';





-- 2019年2月26日10:06:48
CREATE TABLE `tb_vir_perm_config` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) DEFAULT NULL COMMENT '权限名称',
  `isGeneral` tinyint(1) DEFAULT '0' COMMENT '是否通用 0-否 1-是',
  `isEnable` tinyint(1) DEFAULT '1' COMMENT '是否禁用 0-否 1-是',
  `createTime` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '创建时间',
  `modifyTime` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
  `creator` bigint(20) DEFAULT NULL COMMENT '创建人',
  `orgId` int(11) DEFAULT NULL COMMENT '项目id',
  `permType` int(11) DEFAULT NULL COMMENT '类型 0-企业权限 1-身份权限',
  `virId` int(11) DEFAULT NULL COMMENT '企业id(当permType为1时才有值)',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COMMENT='企业权限配置';


CREATE TABLE `tr_vir_service` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `virPermId` int(11) DEFAULT NULL COMMENT '企业权限类型ID',
  `serviceId` int(11) DEFAULT NULL COMMENT '服务功能ID(tb_serviceprojectallocation表的id)',
  `createTime` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '添加时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8 COMMENT='企业-服务关系表';

ALTER TABLE `tb_virtualarchitecture`
  ADD COLUMN `virType` bigint(20) DEFAULT NULL COMMENT '企业类型';

ALTER TABLE `tb_user`
  ADD COLUMN `virPermId` bigint(20) DEFAULT NULL COMMENT '身份类型id';




-- 2019年3月6日16:27:01
--  表 tb_servicetypeinfo 中 企业内购 服务的 serviceCode字段设置为==>  QIYENEIGOU


-- 2019年3月8日05:35:27
CREATE TABLE `tr_llzc_cjqt_org` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `llzcOrgId` int(11) DEFAULT NULL COMMENT '服务之窗项目id',
  `cjqtOrgId` int(11) DEFAULT NULL COMMENT '超级前台项目id',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;





-- 2019年3月18日15:35:17 令令访客机
DROP TABLE IF EXISTS `tb_lingling_visitor_machine`;
CREATE TABLE `tb_lingling_visitor_machine` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
  `creator` bigint(20) DEFAULT NULL COMMENT '创建人',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `modifier` bigint(20) DEFAULT NULL COMMENT '修改人',
  `modify_time` datetime DEFAULT NULL COMMENT '修改时间',
  `is_enable` tinyint(1) unsigned DEFAULT '1' COMMENT '是否可用，1-可用，0-不可用',
  `is_upload_idenphoto` tinyint(1) unsigned DEFAULT '0' COMMENT '是否上传身份证头像（1 是 0 否）',
  `is_required_idennumber` tinyint(1) unsigned DEFAULT '0' COMMENT '身份证是否必填（1 是 0 否）',
  `is_takephoto` tinyint(1) unsigned DEFAULT '0' COMMENT '是否抓拍图片（1 是 0 否）',
  `visit_reason` varchar(500) DEFAULT NULL COMMENT '到访目的/原因,用分号分割',
  `org_id` int(11) DEFAULT NULL COMMENT '项目id',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;



DROP TABLE IF EXISTS `tb_lingling_visitor_info`;
CREATE TABLE `tb_lingling_visitor_info` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
  `iden_number` varchar(30) DEFAULT NULL COMMENT '身份证号',
  `iden_card_id` varchar(30) DEFAULT NULL COMMENT '身份证卡号',
  `birthday` datetime DEFAULT NULL COMMENT '生日',
  `iden_active_to` varchar(20) DEFAULT NULL COMMENT '身份证有效结束时间',
  `census_addr` varchar(255) DEFAULT NULL COMMENT '户籍地址',
  `race` varchar(20) DEFAULT NULL COMMENT '民族',
  `snapshot_img_name` varchar(255) DEFAULT NULL COMMENT '抓拍图片名',
  `head_img_name` varchar(255) DEFAULT NULL COMMENT '身份证头像',
  `police` varchar(255) DEFAULT NULL COMMENT '签发机关',
  `visitor_name` varchar(255) DEFAULT NULL COMMENT '访客姓名',
  `telephone` varchar(30) DEFAULT NULL COMMENT '访客电话',
  `iden_active_from` varchar(20) DEFAULT NULL COMMENT '身份证有效开始时间',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

ALTER TABLE `tb_visitorinfo`
  ADD COLUMN `visitorIdenHeadImg` varchar(255) DEFAULT NULL COMMENT '访客身份证头像';

ALTER TABLE `tb_visitororder`
  ADD COLUMN `visitorToCompany` varchar(255) DEFAULT NULL COMMENT '到访公司';
ALTER TABLE `tb_visitororder`
  ADD COLUMN `visitorToFloor` varchar(10) DEFAULT NULL COMMENT '到访楼层';
ALTER TABLE `tb_visitororder`
  ADD COLUMN `visitorReason` varchar(255) DEFAULT NULL COMMENT '到访目的(原因)';
ALTER TABLE `tb_visitororder`
  ADD COLUMN `userId` bigint(20) DEFAULT NULL COMMENT '访客机登录用户id';
ALTER TABLE `tb_visitororder`
  ADD COLUMN `visitorToOrgId` int(11) DEFAULT NULL COMMENT '到访项目id';






-- 企业账号登录 2019年3月28日18:39:31
INSERT INTO `tb_app_role` (`DESCRIPTION`, `NAME`, `LAST_UPDATED_TIME`, `LAST_UPDATED_BY`, `STATUS_FLAG`, `ROLE_TYPE`, `ISENABLED`, `SYSCODE`, `ISINITIALIZATION`, `FLOOR_REPAIR`, `ORG_ID`)
  VALUES ('企业账号类型角色', '企业账号类型角色', '2019-03-28 15:31:12', NULL, '1', '5', '1', 'virAccountRole', '1', NULL, NULL);

-- 2.给该企业账号角色分配默认功能
-- 1-1 企业资料信息管理子菜单 1-2 部门信息管理 1-3 身份类型管理 1-4 企业人员管理
INSERT INTO tr_app_role_function (ROLEID,FUNCTION_ID) VALUES((SELECT ID FROM tb_app_role WHERE SYSCODE='virAccountRole'),(SELECT ID FROM tb_app_function WHERE PERMS='pc:organization:dept'));
INSERT INTO tr_app_role_function (ROLEID,FUNCTION_ID) VALUES((SELECT ID FROM tb_app_role WHERE SYSCODE='virAccountRole'),(SELECT ID FROM tb_app_function WHERE PERMS='pc:organization:enterprise-data'));
INSERT INTO tr_app_role_function (ROLEID,FUNCTION_ID) VALUES((SELECT ID FROM tb_app_role WHERE SYSCODE='virAccountRole'),(SELECT ID FROM tb_app_function WHERE PERMS='pc:dinner:account'));
INSERT INTO tr_app_role_function (ROLEID,FUNCTION_ID) VALUES((SELECT ID FROM tb_app_role WHERE SYSCODE='virAccountRole'),(SELECT ID FROM tb_app_function WHERE PERMS='pc:organization:identity'));




-- 微信模板发送可以选择用户发送
-- 2019年9月23日16:20:00
ALTER TABLE `tb_wxtemplate_message` ADD COLUMN `receive_user_id` text COMMENT '接收推送模板的用户id,用;隔开';
ALTER TABLE `tb_wxtemplate_message` ADD COLUMN `receive_type` int DEFAULT 1 COMMENT '1-全部接收 2-部分接收';