getResultMap() {return Collections.emptyMap();
}
十三,优先使用常量或确定值调用equals 方法
对象的equals 方法容易抛空指针异常,应使用常量或确定有值的对象来调用equals 方法.
反例:
//调用 equals 方法反例
private static boolean fileReader(String fileName)throws IOException{
// 可能抛空指针异常
return fileName.equals("Charming");
}
正例:
//调用 equals 方法正例
private static boolean fileReader(String fileName)throws IOException{
// 使用常量或确定有值的对象来调用 equals 方法
return "Charming".equals(fileName);
//或使用:java.util.Objects.equals() 方法
return Objects.equals("Charming",fileName);
}
十四,枚举的属性字段必须是私有且不可变
枚举通常被当做常量使用,如果枚举中存在公共属性字段或设置字段方法,那么这些枚举常量的属性很容易被修改;理想情况下,枚举中的属性字段是私有的,并在私有构造函数中赋值,没有对应的Setter 方法,最好加上final 修饰符.
反例:
public enum SwitchStatus {
// 枚举的属性字段反例
DISABLED(0, "禁用"),
ENABLED(1, "启用");
public int value;
private String description;
private SwitchStatus(int value, String description) {
this.value = value;
this.description = description;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
}
正例:
public enum SwitchStatus {
// 枚举的属性字段正例
DISABLED(0, "禁用"),
ENABLED(1, "启用");
// final 修饰
private final int value;
private final String description;
private SwitchStatus(int value, String description) {
this.value = value;
this.description = description;
}
// 没有Setter 方法
public int getValue() {
return value;
}
public String getDescription() {
return description;
}
}
十五,tring.split(String regex)部分关键字需要转译
使用字符串String 的plit 方法时,传入的分隔字符串是正则表达式,则部分关键字(比如 .[]()等)需要转义.
反例:
// String.split(String regex) 反例
String[] split = "a.ab.abc".split(".");
System.out.println(Arrays.toString(split)); // 结果为[]
String[] split1 = "aababc".split("");
System.out.println(Arrays.toString(split1)); // 结果为["a", "", "a", "b", "", "a", "b", "c"]
正例:
// String.split(String regex) 正例
// . 需要转译
String[] split2 = "a.ab.abc".split(".");
System.out.println(Arrays.toString(split2)); // 结果为["a", "ab", "abc"]
//需要转译
String[] split3 = "aababc".split("");
System.out.println(Arrays.toString(split3)); // 结果为["a", "ab", "abc"]
作者:涛姐涛哥
链接:来源:博客园
编辑于 2019-10-25
Java
程序员
Java 编程
已赞同 264
添加评论
分享
收藏
已赞同 264
分享
文章被以下专栏收录
Java技术干货
6
工作台
文档
项目
p_ypjiang
项目
我参与的项目
175 [245/426/1103]
内 内容中心_产品线 在线指引
需求
缺陷
测试用例
Wiki
发布计划
迭代
发布评审
更多
创建wiki
关键字以空格区分
Wiki标签
所有的 我关注的 我创建的
[内容中心]通用
[内容中心]主线接口清单
[内容中心]数据字典
[内容中心]海外项目
海外项目简介
海外开发Guide
事件系统-old
错误代码
内容接口
内容接口-对内
海外事件系统整理-最新up to 2019-02-13
海外漫画
内容中心-海外设计文档
多语言版本接入
签约管理
自翻译书籍流程
劳务设置及授权流程图
漫画管理
书籍批量刷新
漫画批量刷新
海外书封管理关联数据库
海外稿酬下载
海外书籍漫画征文增加地区显示属性
海外自动书封设计文档
招募系统
qa系统设计文档
海外作品添加作者自定义标签
海外同步国内书籍流程
海外redis队列监控设计文档
翻译组变更逻辑
国内书籍输出到海外
长短篇幅
海外漫画回流
海外作家ES
后台编辑工作模块
一键搬家功能
自翻译列表增加qa审核状态
公共接口调研
作家国籍
海外-作家创作计划设计方案
海外默认书封
快速创建书籍
海外在线签约
海外引进机翻书籍
第三方作品引入
海外开放平台接口设计
内容中心-海外数据字典
海外部分业务规则说明
[内容中心]业务支持
[内容中心]业务支持JOB与接口列表(按业务划分)
[内容中心]业务支持测试
[内容中心]事件系统
[内容中心]综合后台
[内容中心]综合后台测试
[内容中心]UGC审核平台
[内容中心]作家助手
[内容中心]业务处理规范流程
[内容中心]业务规则说明
[内容中心]redis
[内容中心]持续集成实施
[内容中心]新第三方系统
[内容中心]第三方审核平台
[内容中心]第三方系统测试
[内容中心]高级搜索项目
[内容中心]出版精排
[内容中心]签约相关
[内容中心]article 图文引进(企鹅号)
[内容中心]统一书服务
[内容中心]Lest
[内容中心]潇湘内容引入
[内容中心]潇湘测试
IP共营合伙人项目
[内容中心]新对话式小说
[内容中心]轻文
[内容中心]抽奖类活动注意事项
海外在线签约
p_qchunw.a.n.g 创建于2019-09-11 , p_qchunw.a.n.g 更新于2019-12-04 浏览量(576) 编辑 关注 评论 更多
1,背景
新加坡分公司建立后,责编团队规模持续扩大,签约作品数会有明显提升,海外引入在线签约流程
2,表设计
1.ccBkServiceDB.responsibleeditor表新增字段
字段 类型 是否为null 其它
dagreement tinyint N 责编提签时协议类型默认-1,枚举同novelscontract表dagreement
2 . ccBkserviceDB.novelscontract表(海外已有)
新增字段
字段 类型 是否为null 其它
tracker_id int Y 签约跟进人id
update_time datetime N 默认0000-00-00 00:00:00, 更新时间
新增枚举
字段 类型 是否为null 其它
contract int N 默认-1,签约进度(-1:尚未开始 5:主编提交 10:开始联系 15:无法联系 20:洽谈中 30:谈妥待寄 40:合约已到 1:暂缓签约 4:放弃签约, 50:作者信息填写完成,60:转站确认中), 增加70:签约开始,80:合同上传完成,90:审核完成,100:上传签字合同, 40:签约完成(合约已到)110:填写资料(海外专用)
添加索引
idx_update(update_time)
3.ccBkserviceDB新增表scontractlog,结构同国内(其它变动同novelscontract表)
CREATE TABLE `scontractlog` (
`IDX` int(11) NOT NULL AUTO_INCREMENT,
`CBID` bigint(20) NOT NULL COMMENT "书ID",
`actor` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT "操作用户",
`responsibility` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT "操作者身份",
`editortype` int(11) NOT NULL DEFAULT "-1" COMMENT "身份",
`contract` int(11) NOT NULL DEFAULT "0" COMMENT "进程编号",
`contractname` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT "进程名",
`createtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT "创建时间",
`note` varchar(512) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT "备注说明",
`dagreement` tinyint(4) NOT NULL DEFAULT "-1" COMMENT "协议类型 -1:无 1:标准分成 2:原标准买断 3:征文标准分成 4:征文标准买断 5:X签新签 6:X签转签 7:线下签约 8:上架转买断(原枚举为3)10:未知",
`buyoutprice` decimal(15,2) NOT NULL DEFAULT "0.00" COMMENT "买断金额 元(x签 专用)",
`flow_id` varchar(30) COLLATE utf8mb4_unicode_ci DEFAULT "" COMMENT "买断申请表中的oa流程标识",
`minwords` decimal(15,3) NOT NULL DEFAULT "0.000" COMMENT "最小字数单位 万字(x签)",
`maxwords` decimal(15,3) NOT NULL DEFAULT "0.000" COMMENT "最大字数单位 万字(x签)",
`originpid` int(11) DEFAULT NULL COMMENT "x签原合同的pid",
`finishstatus` int(11) DEFAULT NULL COMMENT "提签时完本状态 连载中(30),已完结(50),其他 -1",
`deductiondivideamount` decimal(15,3) DEFAULT NULL COMMENT "扣除分成金额",
`minneedwords_month` decimal(15,3) DEFAULT NULL COMMENT "每月最小交稿字数 单位:万字(x签)",
`maxneedwords_month` decimal(15,3) DEFAULT NULL COMMENT "每月最大交稿字数 单位:万字(x签)",
PRIMARY KEY (`IDX`),
KEY `CBID` (`CBID`),
KEY `originpid` (`originpid`)
) ENGINE=InnoDB AUTO_INCREMENT=863304 DEFAULT CHa.r.s.eT=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT="签约过程"
4.ccBkserviceDB.oversea_editor_group表
responsibility 增加枚举11:签约编辑
5.新增ccOverseaDB.oversea_signonline_msg
字段 类型 是否为null 其它
IDX bigint N ID生成器
CBID bigint N
cauthorid bigint N
send_reason int N 触发的原因,1:主编提签,2:签约审核不通过, 3:签约成功, 4:循环提示填写签约基本信息, 5: 循环提示上传合同
msg text N 消息内容
send_time datetime N 消息发送时间
msg_route int N 1:发送邮箱,2:发送给推送消息
email_en varchar(600) Y 加密存储消息的接收邮箱,如果不是发送邮箱,那么不填即可
status int N -1:发送失败,1:发送成功
error_msg text Y 发送消息失败的原因
sender_name varchar(255) N 消息发送人
idx(cbid,send_time)
6.新增签约记录表 复用国内,并且增加字段ccAuthorBaseDB.signonline( signonlinepre也是 )
新增字段
字段 类型 是否为null 其它
source int N 数据来源,默认1:国内,2:海外
新增枚举
字段 类型 是否为null 其它
cardtype tinyint N 证件类型 0:身份证(基本信息,不作为支付依据) 1:护照,2:军官证,3:学生证,4:海外证件, 更新为: 枚举同author_payinfoxx表card_type
signonline表的修改发送书籍事件,不通知下游
信息 对应字段 其它
作家真实姓名 realname_en 加密存储
作家笔名 authorname
性别 s.e.x
生日 birthday_en date格式加密存储1999-09-09 格式加密存储
作家提供的ID Card上的证件号码 cardid_en 加密存储
监护人证件号 keeper_cardid_en 加密存储
邮编 zipcode
手机号 mobile_en 加密存储,加密前是不包含国家地区码
手机号国家地区码 telpre
邮箱 email_en 加密存储
电话 phone_en 加密存储
qq qq_en 加密存储
微信 wechat_en 加密存储
紧急联系人姓名 contactname_en 加密存储
紧急联系人手机国家地区码 contacttelpre
紧急联系人手机号 contactmobile_en 加密存储
收款账户名称 bank_openname_en 加密存储
账户号码 bank_account_en 加密存储
银行名称 bank
分行名称 bank_info
联系地址 address_en 加密存储
新增 signonline_exp ( signonlinepre_exp )
字段 类型 是否为null 其它
IDX bigint N 主键,signonline表主键
job varchar(512) N 默认空字符串,
nationality varchar(10) N 作家国籍简写,默认空字符串
guid bigint Y 作者在用户中心的uid
guarder_card_type tinyint N 监护人证件类型,默认0,枚举同cardtype字段
skype_en varchar(256) Y skype账号,加密存储
discord_en varchar(256) Y discord账号,加密存储
whatsapp_en varchar(256) Y whatsapp账号,加密存储
line_en varchar(256) Y line账号,加密存储
facebook_ma.s.sage_en varchar(256) Y facebook ma.s.sage账号,加密存储
contact_email_en varchar(600) Y 紧急联系人邮箱,加密存储
swiftcode varchar(100) N 默认空字符串,银行识别码
country_abbreviation varchar(10) Y 开户行所在国家地区简写
user_address_en text Y 用户在开户行开户时所留住址(加密字段)
bank_address varchar(255) Y 分行地址
signed_contract_en text Y 作家签字合同信息,[{"sort":1,"url":""},{"sort":2,"url":""}] 形式加密存储,海外使用多个图片
sealed_contract_en text Y 公司盖章后合同信息,[{"sort":1,"url":""},{"sort":2,"url":""}] 形式加密存储,只是使用pdf,1个文件
card_images_en text Y 作家证件附件 [{"sort":1,"url":"", "type":1},{"sort":2,"url":"", "type":2}] 形式加密存储, 身份证时, sort:1:正面,2:反面
guarder_card_images_en text Y 监护人证件附件 [{"sort":1,"url":"", "type":1},{"sort":2,"url":"", "type":2}] 形式加密存储, 身份证时, sort:1:正面,2:反面
7.新增审核日志表ccAuthorBaseDB.signonlineauditlog(复用国内表结构)
CREATE TABLE `signonlineauditlog` (
`IDX` bigint(20) unsigned NOT NULL COMMENT "主键",
`signid` bigint(20) NOT NULL COMMENT "合同ID",
`cauthorid` bigint(20) NOT NULL DEFAULT "0" COMMENT "作家ID",
`CBID` bigint(20) NOT NULL DEFAULT "0" COMMENT "书号",
`status` tinyint(4) NOT NULL DEFAULT "1" COMMENT "审核状态:1审核通过,2审核不通过",
`audittime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT "审核时间",
`auditor` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT "" COMMENT "审核人",
`reason` varchar(200) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT "" COMMENT "不通过原因",
PRIMARY KEY (`IDX`),
KEY `signid` (`signid`),
KEY `cauthorid` (`cauthorid`),
KEY `cbid` (`CBID`)
) ENGINE=InnoDB DEFAULT CHa.r.s.eT=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT="网上签约日志表"
增加字段:reason_id: 原因id, int, not null, default 0;
reason 从varchar(200)改为varchar(2048),
idx(CBID,audittime)
8.新增ccAuthorBaseDB.signonline_result 表结构同signonline表, signonlie_result_exp 表结构同signonline_exp
9.新增ccAuthorBaseDB.signonlineconfig (表结构同国内,同步国内数据到海外)
CREATE TABLE `signonlineconfig` (
`IDX` bigint(20) unsigned NOT NULL COMMENT "合同模板id",
`site` int(11) NOT NULL DEFAULT "5" COMMENT "站点属性 5:起点男生 1:创世 2:云起 3:起点女生 4:其他 6:第三方 9:起点文学 10:海外 21:xy小说阅读网 22:xx潇湘 23:hx红袖添香 24:yq言情小说吧",
`ctype` tinyint(4) NOT NULL COMMENT "协议类型 -1:无 1:标准分成 2:原标准买断 3:征文标准分成 4:征文标准买断 5:X签新签 6:X签转签 7:线下签约 8:上架转买断(原枚举为3)10:未知",
`TID` bigint(20) unsigned NOT NULL COMMENT "合同模版版本号",
`tname` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT "" COMMENT "合同模版名称",
`status` tinyint(4) DEFAULT "-1" COMMENT "状态 -1:无效 1:有效",
`articleid` bigint(20) DEFAULT NULL COMMENT "征文ID",
`counselnote` varchar(500) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT "咨询文案,含有标签,要替换",
`creator` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT "" COMMENT "创建人",
`createtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT "创建时间",
`updater` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT "" COMMENT "最后更新人",
`updatetime` datetime DEFAULT NULL COMMENT "最后更新时间",
PRIMARY KEY (`IDX`),
KEY `tid` (`TID`)
) ENGINE=InnoDB DEFAULT CHa.r.s.eT=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT="在线签约合同表"
10.新增表ccAuthorBaseDB.signtemplate(表结构同国内,同步国内数据到海外)
CREATE TABLE `signtemplate` (
`TID` bigint(20) unsigned NOT NULL COMMENT "合同模板版本号",
`tname` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT "" COMMENT "合同模版名称",
`shortname` varchar(200) COLLATE utf8mb4_unicode_ci DEFAULT "" COMMENT "合同模版版本名(导出用)",
`template` varchar(200) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT "" COMMENT "模版内容地址(用于生成PDF)",
`rightlist` mediumtext COLLATE utf8mb4_unicode_ci NOT NULL COMMENT "权利项数组(用于同步版权系统)",
`status` tinyint(4) DEFAULT "-1" COMMENT "状态 -1:无效 1:有效",
`creator` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT "" COMMENT "创建人",
`createtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT "创建时间",
`updater` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT "" COMMENT "最后更新人",
`updatetime` datetime DEFAULT NULL COMMENT "最后更新时间",
`isAuthorBanksynchro` tinyint(4) DEFAULT "2" COMMENT "是否同步作者银行信息1,是,2否",
`templateconfig` mediumtext COLLATE utf8mb4_unicode_ci COMMENT "模板配置,用于模板里的控制,如删除指定页",
PRIMARY KEY (`TID`),
KEY `tname` (`tname`)
) ENGINE=InnoDB DEFAULT CHa.r.s.eT=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT="合同模版版本表"
11 . ccAuthorDBxx.author_payinfoxx表
枚举变更
字段 类型 是否为null 其它
card_type int Y 0,证件类型 0:身份证(基本信息,不作为支付依据) 1:护照,2:军官证,3:学生证,4:海外证件, 新增5: 驾驶证 4:其它
12 ccBkserviceDB 新增表field_modified_log(intservice裁剪图片时会用到)
CREATE TABLE `field_modified_log` (
`IDX` bigint(20) NOT NULL COMMENT "IDX",
`tablePk` bigint(20) unsigned NOT NULL COMMENT "原表主键",
`tableName` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`fieldName` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`newValue_en` varchar(250) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT "" COMMENT "新字段值",
`originValue_en` varchar(250) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT "" COMMENT "原始字段值",
`createtime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT "创建时间",
`creator` varchar(25) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT "" COMMENT "创建者",
PRIMARY KEY (`IDX`),
KEY `table_field_pk` (`tableName`,`fieldName`,`tablePk`)
) ENGINE=InnoDB DEFAULT CHa.r.s.eT=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT="字段修改日志表"
13 . 新增表 ccBkserviceDB.oversea_editor_info (签约跟进人配置)
字段 类型 是否为null 其它
IDX int N 主键,自增
user_id int N 用户id,serviceuser表主键
s.e.xattr varchar(32) N 男女频,英文逗号分隔,枚举同书籍表
categoryid varchar(512) N 用逗号分隔
language varchar(255) N 用逗号分隔
status int N 是否有效,-1无效,1有效
creator_id int N 创建人id.serviceuser表主键
create_time datetime N
updator_id int N 更新人id,serviceuser表主键,创建时同creator_id
update_time datetime N 创建时同createtime
14 . 新增协议代码表ccCopyrightDB
CREATE TABLE `protocoltype` (
`typeid` int(11) NOT NULL AUTO_INCREMENT COMMENT "协议类型 代码",
`typename` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT "协议类型名称",
`status` tinyint(4) DEFAULT "1" COMMENT "状态:-1:无效 1:有效",
`creator` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT "提交人",
`createtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT "提交人员工编号",
`updater` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT "修改人",
`updatetime` timestamp NOT NULL DEFAULT "0000-00-00 00:00:00" COMMENT "更新时间",
PRIMARY KEY (`typeid`)
) ENGINE=InnoDB AUTO_INCREMENT=23 DEFAULT CHa.r.s.eT=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT="协议类型代码表"
15 . 新增ccAuthorBaseDB.signonlinestep表
CREATE TABLE `signonlinestep` (
`IDX` bigint(20) unsigned NOT NULL COMMENT "IDX",
`cauthorid` bigint(20) NOT NULL COMMENT "作家id",
`CBID` bigint(20) NOT NULL COMMENT "书的id",
`step` tinyint(4) NOT NULL DEFAULT "0" COMMENT "0:签约意向页 11:拒绝签约结束页 10:版权信息确认页 21:非大陆身份证结束页 22: 版权信息异常页 20:签约说明页 30:在线签约信息填写页 40:已保存在线签约信息填写 50:等待审核页 60:检查合同页",
`refuse_cause` tinyint(4) DEFAULT NULL COMMENT "1:该作品已经与其他网站或者出版社签约, 2:没有时间进行作品的更新, 3:纯粹练笔,无签约意向, 4:其他",
`is_alone` tinyint(4) DEFAULT NULL COMMENT "是否独立完成 (1:是, 0:否)",
`is_all_copyright` tinyint(4) DEFAULT NULL COMMENT "是否拥有所有版权 (1:是, 0:否)",
`is_guarder_agreen` tinyint(4) DEFAULT NULL COMMENT "(未成年)监护人是否同意签约 (1:是, 0:否)",
`status` tinyint(4) DEFAULT NULL COMMENT "签约意向 (1:接受, 0:拒绝)",
`createtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT "创建时间",
`updatetime` timestamp NOT NULL DEFAULT "0000-00-00 00:00:00" COMMENT "修改时间",
`is_editor_confirm` tinyint(4) DEFAULT "0" COMMENT "编辑是否确定过用户成年信息 (1:是, 0:否)",
`editupdatetime` timestamp NOT NULL DEFAULT "0000-00-00 00:00:00" COMMENT "编辑修改时间",
`edit_id` bigint(20) NOT NULL DEFAULT "0" COMMENT "编辑id ",
`edit_name` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT "" COMMENT "编辑名字 ",
`is_exclusive_sign` tinyint(4) DEFAULT NULL COMMENT "是否是独家签约 (1:是, 0:否)",
`refuse_cause_detail` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT "详细拒绝原因",
PRIMARY KEY (`IDX`),
UNIQUE KEY `cbid_1` (`CBID`),
KEY `cauthorid_1` (`cauthorid`)
) ENGINE=InnoDB DEFAULT CHa.r.s.eT=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT="在线签约步骤表"
在step中增加枚举
70:海外基础信息,:80:海外填写签约信息, 90:海外预览合同页,100:海外上传签字合同页. 110:海外审核失败页
16 . ccAuthorBaseDB增加表author_signonline_pennamelock
字段 类型 是否为null 其它
cauthorid bigint N 主键
change_penname tinyint N 默认-1,-1:无法修改,1:可以修改
此表的修改,请发送作家事件(不需通知下游),更新到做作家的主缓中
17 审核不通过原因配置表ccOverseaDB.audit_reason_config
字段 类型 是否为null 其它
IDX int N 主键,自增
business_type int N 业务类型,1:在线签约
name varchar(127) N 错误原因,intservice下拉列表,比如证件不对,合同签字不合理
details text N 给作家的提示,json格式,[{ "sort": 1,"type":2,"content":"11222"}], type枚举1:文本,2:正确图片,3:错误图片, content为具体的内容,可以使文本内容,也可以是图片url,由type确定
status int N 是否有效,-1:无效,1:有效
create_time datetime N 创建时间
update_time datetime N 更新时间,创建时同create_time
3.流程图
状态机
图片描述
4,修改点
1.责编提签
respinsibleeditor表插入时,请写入责编提前时选的协议类型
2. 主编提签
novelscontract表中dagreement字段需要写入字段.
scotnractlog表中需要插入记录
需要发送消息,调用接口,并且向ccAuthroBaseDB.oversea_signonline_msg插入记录
3. 责编分组
增加签约编辑设置
4. 编辑工作->签约作品列表
不能修改签约进度.
不可以修改协议类型
5. 签约工作
书籍solr新增字段 ccAuthorBaseDB.signonline表status字段加到solr,字段名为signonline_status 支持搜索, ccBkserviceDB.novelscontract表launchtime 字段加到solr,字段名为launchtime ,支持搜索.
单页修改签约进度时,scontractlog需要添加日志,备注需要写入scontractlog的note字段.
审核通过或不同过时,需要更新signonline表状态,signonline_result状态, signonlineauditlog加入日志,novelscontract表contract进度更新,scontractlog表添加记录.给作家发送消息时,需向oversea_signonline_msg 插入记录
6. 编辑信息管理页
设置指派编辑信息
7. 作家填写签约信息
在作家填写信息(没有提交合同,最终进审时),信息填写到signonlinepre, signonlinepre_exp表中,注意signonlinestep表也需要插入或者更新.
只有提交最后合同后,signonline, signonline_exp同时插入数据(或者更新),表的主键值相同.同时signonline_result, signonline_result_exp 也需要插入数据(更新signonline, signonline_exp表时,对应签约类型的signonline_result, signonline_result_exp表也同步更新, 每一个CBID在signonline中只有一条记录, cbid+协议类型在signonline_result是唯一的)
上传签字合同时,需要是图片格式(PNG,JPG,JPEG 这三种,ocr接口限制), pdf需要转换,可能会影响ocr
8. 循环发送消息,数据回流到国内,对国内提供接口,
9. 生成合同接口,生成流流水号接口(嘴爷,需要重新布置一套).
10. change_penname加入主缓.
11. novelscontract表contract变更,signonlinestep表step变更,以及原创小说以及fanficsigntype变为249均需调用接口,重新计算change_penname的逻辑
12. intservice在未封闭signtype修改入口之前,也需要调用潘潘的接口
5,国内数据交互
1 初步确认结论
根据填写的信息实时生成合同
合同流水号生成
合同分成比例,协议类型,合同模板需要提供
合同信息,参与方信息,权利项信息,发稿要求目前参考国内,如需修改后面可以去掉或增加
合同确认,修改书的信息和作者信息统一调用海外接口
书名和作者名修改也是调用海外接口
版权状态导入要修改之处海外书修改,统一调用海外接口
我方主体公司 Cloudary Holdings Limited 枚举:100
签约作家逻辑此次需要完成
2 依赖数据
数据库 表 国内写字段 读写 处理方式
ccAuthorBaseDB signonline status, updatetime 国内外均读和写,国内合同同步完成后,修改status=3, updatetime=now 方式一
ccAuthorBaseDB signtemplate 所有 国内读写,海外读 初始同步,如果国内变更,可以出发同步到海外
ccAuthorBaseDB signonlieconfig 所有 国内读写,海外读 初始同步
ccCopyrightDB protocoltype 所有 国内读写,海外读 同上
ccAuthorBaseDB signonline_result status, updatetime 国内外均读和写,国内合同同步完成后,修改status=3, updatetime=now 方式一
ccBkServiceDB novelscontract contract 国内外均读写 方式一
ccBookDBxx book_novelsxx t.i.tle, signtype, splitype, signtime,updatetime 国内均读写,签约后如果修改书名,需要在国内版权系统修改 方式一
ccAuthorDBxx authorxx authorname 国内均读写,签约后如果修改笔名,需要在国内版权系统修改 方式一
ccAuthorBaseDB authorbankinfo 银行信息 国内均读写,签约后修改走国内版权系统 方式一
方式一: 直接调用海外接口写,海外更新后,触发回流,回流到国内, 读也调用国内接口(需要配置ip)
3. 提供国内调用的接口
-- 修改数据接口
修改书名接口
修改作者笔名接口
版权状态导入接口(修改书和作者信息)
修改novelscontract签约进度接口
修改signonline状态接口
修改银行信息接口
-- 获取数据接口
获取novelscontract签约进度接口
在线签约数据列表获取接口,要分页
获取在线签约明细数据,具体到单本,接口
获取单本书或多本书接口
获取单作者或者多作者接口
获取海外合同文件(流水号,模板ID)接口
-- OCR盖章合同
提供给海外盖章后的合同接口
4 海外回流到国内的表新增
ccAuthorBaseDB.signonline, signonline_exp
ccAuthorBaseDB.signonline_result signonline_result_exp
ccBkservieDB.novelscontract(主键自增,需要改成ID生成器,本期历史IDX不做处理.暂时不会回流到国内了)
ccAuthorBaseDB.authorbankinfo(主键自增,需要改成ID生成器,历史IDX需要处理)
ccAuthorBaseDB.country_info
ccOverseaDB.business_country
5. 国内同步到海外
ccCopyrightDB.protocoltype
ccAuthorBaseDB.signtemplate
ccAuthorBaseDB.signonlieconfig
6 注意事项
合同同步时,需要重新生成地址,因为海外不能访问国内cos,同理国内也不能访问海外cos,
获取信息,流水号生成,作家专区掉方法生成ID生成最少10+合同类型2+我方主体3 在线签约合同证件页上传,ID生成是单独生成的
国内修改笔名时,同步到海外需要更改translator, authorxx表,也需要修改书表上的authorname
6. 海外修改入口封闭
表 字段 含义 入口 判断条件 如果需要修改 具体标准(不包含供国内调用的接口逻辑)
ccBookDBxx.book_novelsxx t.i.tle 书名 inkstone, intservice, sdk 针对海外原创的小说和fanfic 确认信息之前,或者被打回 才可以被修改 签约后在版权内修改 1. (signtype != 249) and (signonlinestep无记录 or signonlinestep.step in (0,70,80,90) or novelscontract.contract in(100,110))
ccBookDBxx.book_novelsxx signtype, signtime, splittype 签约类型,签约时间,分成属性 intservice 除了创建书籍时的默认值,海外原创海外原创的小说和fanfic 均不能修改signtype,intservice只做展示 国内调用海外接口修改除外 走国内版权系统
ccAuthorDBxx.authorxx authorname 作家笔名 下游入口 需要加限制,提供接口判断接口是否可以修改, 只有确认合同之前才可以修改 ,审核不通过也可以, 国内调用海外接口除外 国内版权系统 change_penname
ccOverseaDB.translator penname 作家笔名 下游入口 作家所有书籍均处于确认信息之前 如果已经签约,需要在国内版权系统 change_penname
ccAuthorDBxx.author_payinfoxx card_type, card_id_en, realname_en 身份证件类型,证件号,真实姓名 inkstone, intservice, sdkapi, 作家如果有书籍,inkstone:确认信息之前,或者被打回 国内版权系统 change_penname
ccAuthorBaseDB authorbankinfo 所有字段 详见表结构 作家如果有书籍:确认信息之前,或者被打回 国内版权系统 change_penname
判断是否可以修改信息均由业务支持组封装接口实现,
change_penname逻辑:
作家所有书籍均符合
(signtype != 249) and (signonlinestep无记录 or signonlinestep.step in (0,70,80,90) or novelscontract.contract in(100,110))
部分历史线下签约书籍逻辑需要中插入数据
7. 依赖下游
笔名修改提供逻辑下游变更,内容侧需要提供接口,判断是否可以修改笔名.
需要依赖下游接口,来直接修改用户笔名(不加入1中判断是否可以修改笔名的逻辑)
8. 历史问题
ccAuthorBaseDB.authorbankinfo表signcompany字段有0,1,100,均用错了,需要修正
签约公司主体表,需要加入签约公司配置,signcompany会用到这个枚举
9, 上线步骤
第一步: 1. 事件系统change_penname上线(加入主缓线上).2. solr加字段,3. 国内数据配置表同步到海外. 4. 海外authorbankinfo插入数据时,signcompany设置为100.5. 计算change_penname的接口上线.6. novelscontract表,authorbankinfo 主键变为ID生成器生成 . 7. 给作家推送发消息接口上线
第二步:1. intservice修改signtype调用change_penname的接口逻辑上线.2. 生成合同接口上线, 3. authorbankinfo表signcompany字段全部刷成100, 4. novelscontract表,authorbankinfo 历史数据刷新上线,历史数据处理. ,5:合同编号ID生成器接口上线.6. 历史数据发消息,solr中补全历史数据
第三步: 1. change_penname历史数据处理.
第四步: 1. 判断是否修改笔名,书名,银行信息的接口上线 2. 海外发站短接口(inkstone以及intservice调用)
第五步: 1. 封禁修改数据入口,作者名,书名 上线. 2. 下游禁止修改用户名功能上线. 5. 下游供修改笔名接口上线.
第六步: 1. intservice在线签约功能上线.2. 海外供国内调用接口上线, 3. 回流上线, 4: 循环发送消息上线. 5. intservice修改signtype的入口关闭
第七步: 1. novelscontract表历史数据协议数据处理
第八步: 1. inkstone在线签约上线
第九步: 1. 国内版权系统上线
标签 编辑
附件 添加
评论
@通知他人,增加评论/处理意见
目录
1,背景
2,表设计
3.流程图
4,修改点
5,国内数据交互
6. 海外修改入口封闭
7. 依赖下游
8. 历史问题
9, 上线步骤
Java技术干货
只分享干货!!!
关注专栏
推荐阅读
不了解这12个语法糖,别说你会Java!
不了解这12个语法糖,别说你会Java!
孤独键客
Arrays.asList存在的坑
Arrays.asList存在的坑
老刘
发表于Java技...
避免在Java中检查Null语句
避免在Java中检查Null语句
Java肖...
发表于Java架...
死磕Java之泛型(一)
死磕Java之泛型(一)一般的类和方法,只能使用具体的类型;要么是基本类型,要么是自定义的类,如果需要编写可以应用于多种类型的代码,这种限制就降低了代码的可用性,当然你会想到重载,但…
Oelje...
发表于Java并...
还没有评论
评论由作者筛选后显示
发布
选择语言
my
6
工作台
文档
项目
p_ypjiang
项目
我参与的项目
175 [245/426/1103]
内 内容中心_产品线 在线指引
需求
缺陷
测试用例
Wiki
发布计划
迭代
发布评审
更多
创建wiki
关键字以空格区分
Wiki标签
所有的 我关注的 我创建的
[内容中心]通用
Find authorized novels in Webnovel,faster updates, better experience,Please click for visiting.
[内容中心]主线接口清单
[内容中心]数据字典
[内容中心]海外项目
海外项目简介
海外开发Guide
事件系统-old
错误代码
内容接口
内容接口-对内
海外事件系统整理-最新up to 2019-02-13
海外漫画
内容中心-海外设计文档
多语言版本接入
签约管理
自翻译书籍流程
劳务设置及授权流程图
漫画管理
书籍批量刷新
漫画批量刷新
海外书封管理关联数据库
海外稿酬下载
海外书籍漫画征文增加地区显示属性
海外自动书封设计文档
招募系统
qa系统设计文档
海外作品添加作者自定义标签
海外同步国内书籍流程
海外redis队列监控设计文档
翻译组变更逻辑
国内书籍输出到海外
长短篇幅
海外漫画回流
海外作家ES
后台编辑工作模块
一键搬家功能
自翻译列表增加qa审核状态
公共接口调研
作家国籍
海外-作家创作计划设计方案
海外默认书封
快速创建书籍
海外在线签约
海外引进机翻书籍
第三方作品引入
海外开放平台接口设计
内容中心-海外数据字典
海外部分业务规则说明
[内容中心]业务支持
[内容中心]业务支持JOB与接口列表(按业务划分)
[内容中心]业务支持测试
[内容中心]事件系统
[内容中心]综合后台
[内容中心]综合后台测试
[内容中心]UGC审核平台
[内容中心]作家助手
[内容中心]业务处理规范流程
[内容中心]业务规则说明
[内容中心]redis
[内容中心]持续集成实施
[内容中心]新第三方系统
[内容中心]第三方审核平台
[内容中心]第三方系统测试
[内容中心]高级搜索项目
[内容中心]出版精排
[内容中心]签约相关
[内容中心]article 图文引进(企鹅号)
[内容中心]统一书服务
[内容中心]Lest
[内容中心]潇湘内容引入
[内容中心]潇湘测试
IP共营合伙人项目
[内容中心]新对话式小说
[内容中心]轻文
[内容中心]抽奖类活动注意事项
海外在线签约
p_qchunw.a.n.g 创建于2019-09-11 , p_qchunw.a.n.g 更新于2019-12-04 浏览量(576) 编辑 关注 评论 更多
1,背景
新加坡分公司建立后,责编团队规模持续扩大,签约作品数会有明显提升,海外引入在线签约流程
2,表设计
1.ccBkServiceDB.responsibleeditor表新增字段
字段 类型 是否为null 其它
dagreement tinyint N 责编提签时协议类型默认-1,枚举同novelscontract表dagreement
2 . ccBkserviceDB.novelscontract表(海外已有)
新增字段
字段 类型 是否为null 其它
tracker_id int Y 签约跟进人id
update_time datetime N 默认0000-00-00 00:00:00, 更新时间
新增枚举
字段 类型 是否为null 其它
contract int N 默认-1,签约进度(-1:尚未开始 5:主编提交 10:开始联系 15:无法联系 20:洽谈中 30:谈妥待寄 40:合约已到 1:暂缓签约 4:放弃签约, 50:作者信息填写完成,60:转站确认中), 增加70:签约开始,80:合同上传完成,90:审核完成,100:上传签字合同, 40:签约完成(合约已到)110:填写资料(海外专用)
添加索引
idx_update(update_time)
3.ccBkserviceDB新增表scontractlog,结构同国内(其它变动同novelscontract表)
CREATE TABLE `scontractlog` (
`IDX` int(11) NOT NULL AUTO_INCREMENT,
`CBID` bigint(20) NOT NULL COMMENT "书ID",
`actor` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT "操作用户",
`responsibility` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT "操作者身份",
`editortype` int(11) NOT NULL DEFAULT "-1" COMMENT "身份",
`contract` int(11) NOT NULL DEFAULT "0" COMMENT "进程编号",
`contractname` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT "进程名",
`createtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT "创建时间",
`note` varchar(512) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT "备注说明",
`dagreement` tinyint(4) NOT NULL DEFAULT "-1" COMMENT "协议类型 -1:无 1:标准分成 2:原标准买断 3:征文标准分成 4:征文标准买断 5:X签新签 6:X签转签 7:线下签约 8:上架转买断(原枚举为3)10:未知",
`buyoutprice` decimal(15,2) NOT NULL DEFAULT "0.00" COMMENT "买断金额 元(x签 专用)",
`flow_id` varchar(30) COLLATE utf8mb4_unicode_ci DEFAULT "" COMMENT "买断申请表中的oa流程标识",
`minwords` decimal(15,3) NOT NULL DEFAULT "0.000" COMMENT "最小字数单位 万字(x签)",
`maxwords` decimal(15,3) NOT NULL DEFAULT "0.000" COMMENT "最大字数单位 万字(x签)",
`originpid` int(11) DEFAULT NULL COMMENT "x签原合同的pid",
`finishstatus` int(11) DEFAULT NULL COMMENT "提签时完本状态 连载中(30),已完结(50),其他 -1",
`deductiondivideamount` decimal(15,3) DEFAULT NULL COMMENT "扣除分成金额",
`minneedwords_month` decimal(15,3) DEFAULT NULL COMMENT "每月最小交稿字数 单位:万字(x签)",
`maxneedwords_month` decimal(15,3) DEFAULT NULL COMMENT "每月最大交稿字数 单位:万字(x签)",
PRIMARY KEY (`IDX`),
KEY `CBID` (`CBID`),
KEY `originpid` (`originpid`)
) ENGINE=InnoDB AUTO_INCREMENT=863304 DEFAULT CHa.r.s.eT=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT="签约过程"
4.ccBkserviceDB.oversea_editor_group表
responsibility 增加枚举11:签约编辑
5.新增ccOverseaDB.oversea_signonline_msg
字段 类型 是否为null 其它
IDX bigint N ID生成器
CBID bigint N
cauthorid bigint N
send_reason int N 触发的原因,1:主编提签,2:签约审核不通过, 3:签约成功, 4:循环提示填写签约基本信息, 5: 循环提示上传合同
msg text N 消息内容
send_time datetime N 消息发送时间
msg_route int N 1:发送邮箱,2:发送给推送消息
email_en varchar(600) Y 加密存储消息的接收邮箱,如果不是发送邮箱,那么不填即可
status int N -1:发送失败,1:发送成功
error_msg text Y 发送消息失败的原因
sender_name varchar(255) N 消息发送人
idx(cbid,send_time)
6.新增签约记录表 复用国内,并且增加字段ccAuthorBaseDB.signonline( signonlinepre也是 )
新增字段
字段 类型 是否为null 其它
source int N 数据来源,默认1:国内,2:海外
新增枚举
字段 类型 是否为null 其它
cardtype tinyint N 证件类型 0:身份证(基本信息,不作为支付依据) 1:护照,2:军官证,3:学生证,4:海外证件, 更新为: 枚举同author_payinfoxx表card_type
signonline表的修改发送书籍事件,不通知下游
信息 对应字段 其它
作家真实姓名 realname_en 加密存储
作家笔名 authorname
性别 s.e.x
生日 birthday_en date格式加密存储1999-09-09 格式加密存储
作家提供的ID Card上的证件号码 cardid_en 加密存储
监护人证件号 keeper_cardid_en 加密存储
邮编 zipcode
手机号 mobile_en 加密存储,加密前是不包含国家地区码
手机号国家地区码 telpre
邮箱 email_en 加密存储
电话 phone_en 加密存储
qq qq_en 加密存储
微信 wechat_en 加密存储
紧急联系人姓名 contactname_en 加密存储
紧急联系人手机国家地区码 contacttelpre
紧急联系人手机号 contactmobile_en 加密存储
收款账户名称 bank_openname_en 加密存储
账户号码 bank_account_en 加密存储
银行名称 bank
分行名称 bank_info
联系地址 address_en 加密存储
新增 signonline_exp ( signonlinepre_exp )
字段 类型 是否为null 其它
IDX bigint N 主键,signonline表主键
job varchar(512) N 默认空字符串,
nationality varchar(10) N 作家国籍简写,默认空字符串
guid bigint Y 作者在用户中心的uid
guarder_card_type tinyint N 监护人证件类型,默认0,枚举同cardtype字段
skype_en varchar(256) Y skype账号,加密存储
discord_en varchar(256) Y discord账号,加密存储
whatsapp_en varchar(256) Y whatsapp账号,加密存储
line_en varchar(256) Y line账号,加密存储
facebook_ma.s.sage_en varchar(256) Y facebook ma.s.sage账号,加密存储
contact_email_en varchar(600) Y 紧急联系人邮箱,加密存储
swiftcode varchar(100) N 默认空字符串,银行识别码
country_abbreviation varchar(10) Y 开户行所在国家地区简写
user_address_en text Y 用户在开户行开户时所留住址(加密字段)
bank_address varchar(255) Y 分行地址
signed_contract_en text Y 作家签字合同信息,[{"sort":1,"url":""},{"sort":2,"url":""}] 形式加密存储,海外使用多个图片
sealed_contract_en text Y 公司盖章后合同信息,[{"sort":1,"url":""},{"sort":2,"url":""}] 形式加密存储,只是使用pdf,1个文件
card_images_en text Y 作家证件附件 [{"sort":1,"url":"", "type":1},{"sort":2,"url":"", "type":2}] 形式加密存储, 身份证时, sort:1:正面,2:反面
guarder_card_images_en text Y 监护人证件附件 [{"sort":1,"url":"", "type":1},{"sort":2,"url":"", "type":2}] 形式加密存储, 身份证时, sort:1:正面,2:反面
7.新增审核日志表ccAuthorBaseDB.signonlineauditlog(复用国内表结构)
CREATE TABLE `signonlineauditlog` (
`IDX` bigint(20) unsigned NOT NULL COMMENT "主键",
`signid` bigint(20) NOT NULL COMMENT "合同ID",
`cauthorid` bigint(20) NOT NULL DEFAULT "0" COMMENT "作家ID",
`CBID` bigint(20) NOT NULL DEFAULT "0" COMMENT "书号",
`status` tinyint(4) NOT NULL DEFAULT "1" COMMENT "审核状态:1审核通过,2审核不通过",
`audittime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT "审核时间",
`auditor` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT "" COMMENT "审核人",
`reason` varchar(200) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT "" COMMENT "不通过原因",
PRIMARY KEY (`IDX`),
KEY `signid` (`signid`),
KEY `cauthorid` (`cauthorid`),
KEY `cbid` (`CBID`)
) ENGINE=InnoDB DEFAULT CHa.r.s.eT=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT="网上签约日志表"
增加字段:reason_id: 原因id, int, not null, default 0;
reason 从varchar(200)改为varchar(2048),
idx(CBID,audittime)
8.新增ccAuthorBaseDB.signonline_result 表结构同signonline表, signonlie_result_exp 表结构同signonline_exp
9.新增ccAuthorBaseDB.signonlineconfig (表结构同国内,同步国内数据到海外)
CREATE TABLE `signonlineconfig` (
`IDX` bigint(20) unsigned NOT NULL COMMENT "合同模板id",
`site` int(11) NOT NULL DEFAULT "5" COMMENT "站点属性 5:起点男生 1:创世 2:云起 3:起点女生 4:其他 6:第三方 9:起点文学 10:海外 21:xy小说阅读网 22:xx潇湘 23:hx红袖添香 24:yq言情小说吧",
`ctype` tinyint(4) NOT NULL COMMENT "协议类型 -1:无 1:标准分成 2:原标准买断 3:征文标准分成 4:征文标准买断 5:X签新签 6:X签转签 7:线下签约 8:上架转买断(原枚举为3)10:未知",
`TID` bigint(20) unsigned NOT NULL COMMENT "合同模版版本号",
`tname` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT "" COMMENT "合同模版名称",
`status` tinyint(4) DEFAULT "-1" COMMENT "状态 -1:无效 1:有效",
`articleid` bigint(20) DEFAULT NULL COMMENT "征文ID",
`counselnote` varchar(500) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT "咨询文案,含有标签,要替换",
`creator` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT "" COMMENT "创建人",
`createtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT "创建时间",
`updater` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT "" COMMENT "最后更新人",
`updatetime` datetime DEFAULT NULL COMMENT "最后更新时间",
PRIMARY KEY (`IDX`),
KEY `tid` (`TID`)
) ENGINE=InnoDB DEFAULT CHa.r.s.eT=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT="在线签约合同表"
10.新增表ccAuthorBaseDB.signtemplate(表结构同国内,同步国内数据到海外)
CREATE TABLE `signtemplate` (
`TID` bigint(20) unsigned NOT NULL COMMENT "合同模板版本号",
`tname` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT "" COMMENT "合同模版名称",
`shortname` varchar(200) COLLATE utf8mb4_unicode_ci DEFAULT "" COMMENT "合同模版版本名(导出用)",
`template` varchar(200) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT "" COMMENT "模版内容地址(用于生成PDF)",
`rightlist` mediumtext COLLATE utf8mb4_unicode_ci NOT NULL COMMENT "权利项数组(用于同步版权系统)",
`status` tinyint(4) DEFAULT "-1" COMMENT "状态 -1:无效 1:有效",
`creator` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT "" COMMENT "创建人",
`createtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT "创建时间",
`updater` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT "" COMMENT "最后更新人",
`updatetime` datetime DEFAULT NULL COMMENT "最后更新时间",
`isAuthorBanksynchro` tinyint(4) DEFAULT "2" COMMENT "是否同步作者银行信息1,是,2否",
`templateconfig` mediumtext COLLATE utf8mb4_unicode_ci COMMENT "模板配置,用于模板里的控制,如删除指定页",
PRIMARY KEY (`TID`),
KEY `tname` (`tname`)
) ENGINE=InnoDB DEFAULT CHa.r.s.eT=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT="合同模版版本表"
11 . ccAuthorDBxx.author_payinfoxx表
枚举变更
字段 类型 是否为null 其它
card_type int Y 0,证件类型 0:身份证(基本信息,不作为支付依据) 1:护照,2:军官证,3:学生证,4:海外证件, 新增5: 驾驶证 4:其它
12 ccBkserviceDB 新增表field_modified_log(intservice裁剪图片时会用到)
CREATE TABLE `field_modified_log` (
`IDX` bigint(20) NOT NULL COMMENT "IDX",
`tablePk` bigint(20) unsigned NOT NULL COMMENT "原表主键",
`tableName` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`fieldName` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`newValue_en` varchar(250) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT "" COMMENT "新字段值",
`originValue_en` varchar(250) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT "" COMMENT "原始字段值",
`createtime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT "创建时间",
`creator` varchar(25) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT "" COMMENT "创建者",
PRIMARY KEY (`IDX`),
KEY `table_field_pk` (`tableName`,`fieldName`,`tablePk`)
) ENGINE=InnoDB DEFAULT CHa.r.s.eT=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT="字段修改日志表"
13 . 新增表 ccBkserviceDB.oversea_editor_info (签约跟进人配置)
字段 类型 是否为null 其它
IDX int N 主键,自增
user_id int N 用户id,serviceuser表主键
s.e.xattr varchar(32) N 男女频,英文逗号分隔,枚举同书籍表
categoryid varchar(512) N 用逗号分隔
language varchar(255) N 用逗号分隔
status int N 是否有效,-1无效,1有效
creator_id int N 创建人id.serviceuser表主键
create_time datetime N
updator_id int N 更新人id,serviceuser表主键,创建时同creator_id
update_time datetime N 创建时同createtime
14 . 新增协议代码表ccCopyrightDB
CREATE TABLE `protocoltype` (
`typeid` int(11) NOT NULL AUTO_INCREMENT COMMENT "协议类型 代码",
`typename` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT "协议类型名称",
`status` tinyint(4) DEFAULT "1" COMMENT "状态:-1:无效 1:有效",
`creator` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT "提交人",
`createtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT "提交人员工编号",
`updater` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT "修改人",
`updatetime` timestamp NOT NULL DEFAULT "0000-00-00 00:00:00" COMMENT "更新时间",
PRIMARY KEY (`typeid`)
) ENGINE=InnoDB AUTO_INCREMENT=23 DEFAULT CHa.r.s.eT=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT="协议类型代码表"
15 . 新增ccAuthorBaseDB.signonlinestep表
CREATE TABLE `signonlinestep` (
`IDX` bigint(20) unsigned NOT NULL COMMENT "IDX",
`cauthorid` bigint(20) NOT NULL COMMENT "作家id",
`CBID` bigint(20) NOT NULL COMMENT "书的id",
`step` tinyint(4) NOT NULL DEFAULT "0" COMMENT "0:签约意向页 11:拒绝签约结束页 10:版权信息确认页 21:非大陆身份证结束页 22: 版权信息异常页 20:签约说明页 30:在线签约信息填写页 40:已保存在线签约信息填写 50:等待审核页 60:检查合同页",
`refuse_cause` tinyint(4) DEFAULT NULL COMMENT "1:该作品已经与其他网站或者出版社签约, 2:没有时间进行作品的更新, 3:纯粹练笔,无签约意向, 4:其他",
`is_alone` tinyint(4) DEFAULT NULL COMMENT "是否独立完成 (1:是, 0:否)",
`is_all_copyright` tinyint(4) DEFAULT NULL COMMENT "是否拥有所有版权 (1:是, 0:否)",
`is_guarder_agreen` tinyint(4) DEFAULT NULL COMMENT "(未成年)监护人是否同意签约 (1:是, 0:否)",
`status` tinyint(4) DEFAULT NULL COMMENT "签约意向 (1:接受, 0:拒绝)",
`createtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT "创建时间",
`updatetime` timestamp NOT NULL DEFAULT "0000-00-00 00:00:00" COMMENT "修改时间",
`is_editor_confirm` tinyint(4) DEFAULT "0" COMMENT "编辑是否确定过用户成年信息 (1:是, 0:否)",
`editupdatetime` timestamp NOT NULL DEFAULT "0000-00-00 00:00:00" COMMENT "编辑修改时间",
`edit_id` bigint(20) NOT NULL DEFAULT "0" COMMENT "编辑id ",
`edit_name` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT "" COMMENT "编辑名字 ",
`is_exclusive_sign` tinyint(4) DEFAULT NULL COMMENT "是否是独家签约 (1:是, 0:否)",
`refuse_cause_detail` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT "详细拒绝原因",
PRIMARY KEY (`IDX`),
UNIQUE KEY `cbid_1` (`CBID`),
KEY `cauthorid_1` (`cauthorid`)
) ENGINE=InnoDB DEFAULT CHa.r.s.eT=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT="在线签约步骤表"
在step中增加枚举
70:海外基础信息,:80:海外填写签约信息, 90:海外预览合同页,100:海外上传签字合同页. 110:海外审核失败页
16 . ccAuthorBaseDB增加表author_signonline_pennamelock
字段 类型 是否为null 其它
cauthorid bigint N 主键
change_penname tinyint N 默认-1,-1:无法修改,1:可以修改
此表的修改,请发送作家事件(不需通知下游),更新到做作家的主缓中
17 审核不通过原因配置表ccOverseaDB.audit_reason_config
字段 类型 是否为null 其它
IDX int N 主键,自增
business_type int N 业务类型,1:在线签约
name varchar(127) N 错误原因,intservice下拉列表,比如证件不对,合同签字不合理
details text N 给作家的提示,json格式,[{ "sort": 1,"type":2,"content":"11222"}], type枚举1:文本,2:正确图片,3:错误图片, content为具体的内容,可以使文本内容,也可以是图片url,由type确定
status int N 是否有效,-1:无效,1:有效
create_time datetime N 创建时间
update_time datetime N 更新时间,创建时同create_time
3.流程图
状态机
图片描述
4,修改点
1.责编提签
respinsibleeditor表插入时,请写入责编提前时选的协议类型
2. 主编提签
novelscontract表中dagreement字段需要写入字段.
scotnractlog表中需要插入记录
需要发送消息,调用接口,并且向ccAuthroBaseDB.oversea_signonline_msg插入记录
3. 责编分组
增加签约编辑设置
4. 编辑工作->签约作品列表
不能修改签约进度.
不可以修改协议类型
5. 签约工作
书籍solr新增字段 ccAuthorBaseDB.signonline表status字段加到solr,字段名为signonline_status 支持搜索, ccBkserviceDB.novelscontract表launchtime 字段加到solr,字段名为launchtime ,支持搜索.
单页修改签约进度时,scontractlog需要添加日志,备注需要写入scontractlog的note字段.
审核通过或不同过时,需要更新signonline表状态,signonline_result状态, signonlineauditlog加入日志,novelscontract表contract进度更新,scontractlog表添加记录.给作家发送消息时,需向oversea_signonline_msg 插入记录
6. 编辑信息管理页
设置指派编辑信息
7. 作家填写签约信息
在作家填写信息(没有提交合同,最终进审时),信息填写到signonlinepre, signonlinepre_exp表中,注意signonlinestep表也需要插入或者更新.
只有提交最后合同后,signonline, signonline_exp同时插入数据(或者更新),表的主键值相同.同时signonline_result, signonline_result_exp 也需要插入数据(更新signonline, signonline_exp表时,对应签约类型的signonline_result, signonline_result_exp表也同步更新, 每一个CBID在signonline中只有一条记录, cbid+协议类型在signonline_result是唯一的)
上传签字合同时,需要是图片格式(PNG,JPG,JPEG 这三种,ocr接口限制), pdf需要转换,可能会影响ocr
8. 循环发送消息,数据回流到国内,对国内提供接口,
9. 生成合同接口,生成流流水号接口(嘴爷,需要重新布置一套).
10. change_penname加入主缓.
11. novelscontract表contract变更,signonlinestep表step变更,以及原创小说以及fanficsigntype变为249均需调用接口,重新计算change_penname的逻辑
12. intservice在未封闭signtype修改入口之前,也需要调用潘潘的接口
5,国内数据交互
1 初步确认结论
根据填写的信息实时生成合同
合同流水号生成
合同分成比例,协议类型,合同模板需要提供
合同信息,参与方信息,权利项信息,发稿要求目前参考国内,如需修改后面可以去掉或增加
合同确认,修改书的信息和作者信息统一调用海外接口
书名和作者名修改也是调用海外接口
版权状态导入要修改之处海外书修改,统一调用海外接口
我方主体公司 Cloudary Holdings Limited 枚举:100
签约作家逻辑此次需要完成
2 依赖数据
数据库 表 国内写字段 读写 处理方式
ccAuthorBaseDB signonline status, updatetime 国内外均读和写,国内合同同步完成后,修改status=3, updatetime=now 方式一
ccAuthorBaseDB signtemplate 所有 国内读写,海外读 初始同步,如果国内变更,可以出发同步到海外
ccAuthorBaseDB signonlieconfig 所有 国内读写,海外读 初始同步
ccCopyrightDB protocoltype 所有 国内读写,海外读 同上
ccAuthorBaseDB signonline_result status, updatetime 国内外均读和写,国内合同同步完成后,修改status=3, updatetime=now 方式一
ccBkServiceDB novelscontract contract 国内外均读写 方式一
ccBookDBxx book_novelsxx t.i.tle, signtype, splitype, signtime,updatetime 国内均读写,签约后如果修改书名,需要在国内版权系统修改 方式一
ccAuthorDBxx authorxx authorname 国内均读写,签约后如果修改笔名,需要在国内版权系统修改 方式一
ccAuthorBaseDB authorbankinfo 银行信息 国内均读写,签约后修改走国内版权系统 方式一
方式一: 直接调用海外接口写,海外更新后,触发回流,回流到国内, 读也调用国内接口(需要配置ip)
3. 提供国内调用的接口
-- 修改数据接口
修改书名接口
修改作者笔名接口
版权状态导入接口(修改书和作者信息)
修改novelscontract签约进度接口
修改signonline状态接口
修改银行信息接口
-- 获取数据接口
获取novelscontract签约进度接口
在线签约数据列表获取接口,要分页
获取在线签约明细数据,具体到单本,接口
获取单本书或多本书接口
获取单作者或者多作者接口
获取海外合同文件(流水号,模板ID)接口
-- OCR盖章合同
提供给海外盖章后的合同接口
4 海外回流到国内的表新增
ccAuthorBaseDB.signonline, signonline_exp
ccAuthorBaseDB.signonline_result signonline_result_exp
ccBkservieDB.novelscontract(主键自增,需要改成ID生成器,本期历史IDX不做处理.暂时不会回流到国内了)
ccAuthorBaseDB.authorbankinfo(主键自增,需要改成ID生成器,历史IDX需要处理)
ccAuthorBaseDB.country_info
ccOverseaDB.business_country
5. 国内同步到海外
ccCopyrightDB.protocoltype
ccAuthorBaseDB.signtemplate
ccAuthorBaseDB.signonlieconfig
6 注意事项
合同同步时,需要重新生成地址,因为海外不能访问国内cos,同理国内也不能访问海外cos,
获取信息,流水号生成,作家专区掉方法生成ID生成最少10+合同类型2+我方主体3 在线签约合同证件页上传,ID生成是单独生成的
国内修改笔名时,同步到海外需要更改translator, authorxx表,也需要修改书表上的authorname
6. 海外修改入口封闭
表 字段 含义 入口 判断条件 如果需要修改 具体标准(不包含供国内调用的接口逻辑)
ccBookDBxx.book_novelsxx t.i.tle 书名 inkstone, intservice, sdk 针对海外原创的小说和fanfic 确认信息之前,或者被打回 才可以被修改 签约后在版权内修改 1. (signtype != 249) and (signonlinestep无记录 or signonlinestep.step in (0,70,80,90) or novelscontract.contract in(100,110))
ccBookDBxx.book_novelsxx signtype, signtime, splittype 签约类型,签约时间,分成属性 intservice 除了创建书籍时的默认值,海外原创海外原创的小说和fanfic 均不能修改signtype,intservice只做展示 国内调用海外接口修改除外 走国内版权系统
ccAuthorDBxx.authorxx authorname 作家笔名 下游入口 需要加限制,提供接口判断接口是否可以修改, 只有确认合同之前才可以修改 ,审核不通过也可以, 国内调用海外接口除外 国内版权系统 change_penname
ccOverseaDB.translator penname 作家笔名 下游入口 作家所有书籍均处于确认信息之前 如果已经签约,需要在国内版权系统 change_penname
ccAuthorDBxx.author_payinfoxx card_type, card_id_en, realname_en 身份证件类型,证件号,真实姓名 inkstone, intservice, sdkapi, 作家如果有书籍,inkstone:确认信息之前,或者被打回 国内版权系统 change_penname
ccAuthorBaseDB authorbankinfo 所有字段 详见表结构 作家如果有书籍:确认信息之前,或者被打回 国内版权系统 change_penname
判断是否可以修改信息均由业务支持组封装接口实现,
change_penname逻辑:
作家所有书籍均符合
(signtype != 249) and (signonlinestep无记录 or signonlinestep.step in (0,70,80,90) or novelscontract.contract in(100,110))
部分历史线下签约书籍逻辑需要中插入数据
7. 依赖下游
笔名修改提供逻辑下游变更,内容侧需要提供接口,判断是否可以修改笔名.
需要依赖下游接口,来直接修改用户笔名(不加入1中判断是否可以修改笔名的逻辑)
8. 历史问题
ccAuthorBaseDB.authorbankinfo表signcompany字段有0,1,100,均用错了,需要修正
签约公司主体表,需要加入签约公司配置,signcompany会用到这个枚举
9, 上线步骤
第一步: 1. 事件系统change_penname上线(加入主缓线上).2. solr加字段,3. 国内数据配置表同步到海外. 4. 海外authorbankinfo插入数据时,signcompany设置为100.5. 计算change_penname的接口上线.6. novelscontract表,authorbankinfo 主键变为ID生成器生成 . 7. 给作家推送发消息接口上线
第二步:1. intservice修改signtype调用change_penname的接口逻辑上线.2. 生成合同接口上线, 3. authorbankinfo表signcompany字段全部刷成100, 4. novelscontract表,authorbankinfo 历史数据刷新上线,历史数据处理. ,5:合同编号ID生成器接口上线.6. 历史数据发消息,solr中补全历史数据
第三步: 1. change_penname历史数据处理.
第四步: 1. 判断是否修改笔名,书名,银行信息的接口上线 2. 海外发站短接口(inkstone以及intservice调用)
第五步: 1. 封禁修改数据入口,作者名,书名 上线. 2. 下游禁止修改用户名功能上线. 5. 下游供修改笔名接口上线.
第六步: 1. intservice在线签约功能上线.2. 海外供国内调用接口上线, 3. 回流上线, 4: 循环发送消息上线. 5. intservice修改signtype的入口关闭
第七步: 1. novelscontract表历史数据协议数据处理
第八步: 1. inkstone在线签约上线
第九步: 1. 国内版权系统上线
标签 编辑
附件 添加
评论
@通知他人,增加评论/处理意见
目录
1,背景
2,表设计
3.流程图
4,修改点
5,国内数据交互
6. 海外修改入口封闭
7. 依赖下游
8. 历史问题
9, 上线步骤