# 售后管控系统 **Repository Path**: wnan1981/afterSaleSys ## Basic Information - **Project Name**: 售后管控系统 - **Description**: 售后管控系统,包含手机扫描二维码验真伪(使用 BT 条码软件打印二维码)、工单管理相关功能,工单包括售后工单与维修工单,维修工单支持支付宝在线付款(沙箱环境)。 - **Primary Language**: Go - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: https://xxx.xxxxxxx.com:8080 - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 6 - **Created**: 2022-11-06 - **Last Updated**: 2022-11-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 系统 API 说明(改变后未更新该文档) #### 用户登录 1. 请求地址 ``` /login ``` 2. 携带请求数据 ```json { "name":"xxxx", "passwd":"xxxxxx" } ``` 3. 返回数据 ```json { "success": "xxxxxx", "errMsg": "errInfo" } ``` 4. 登录成功后需将用户名保存到 `session/redis` 数据库中用来作为用户访问相关功能时在中间件中查询判断用户是否已登录,若未登录则跳转至登录页面,登录时长确定, > 用户类型说明: > > > 0: 表示该用户为管理员 > > > > 1: 表示该用户为经理用户 > > > > 2:表示该用户为业务人员/销售人员 > > > > 3:表示该用户为售后系统操作人员 > > > > 4:表示该用户为维修人员 ### 后台管理 #### 一、首页 1.1. 首页访问地址 GET 请求 ```url /admin ``` /admin 1.2. 返回的数据 ```json { "success": { "title": "链力", "username": "用户名", "menu": { // ????? 应该是一个有序字典 1: { "title": "一级菜单1", "icon": "glyphicon glyphicon-chevron-right", "children":["二级菜单1","二级菜单2",...], } 2: { "title": "一级菜单2", "icon": "glyphicon glyphicon-chevron-right", "children": ["二级菜单1","二级菜单2",...] } } } } ``` #### 二、用户管理 2.1. GET 请求所有用户地址: ```url /admin/getAllUser ``` 2.2. get 请求获取所有用户类型数据请求 url: ```turtle /admin/userType ``` > 用来渲染添加用户/修改用户下拉选择框 2.3. post 请求添加用户请求地址: ```textile /admin/add_user ``` - 请求数据结构 ```json { "login_account": "登录账号", "userName": "用户姓名", "user_passwd": "登录密码", "user_repasswd": "确认密码", "user_type_id": "关联的用户类型Id", } ``` - 返回的数据结构 ```json { "success": "successInfo", "errMsg": "errMsgInfo", } ``` 2.3. put 请求修改用户请求地址: ```url /admin/change_user ``` - 修改用户请求数据结构 ```json { "userId": "用户 id", // 根据该 id 更新数据库的用户数据 "userAccount": "登录账号", "userName": "用户姓名", "userPwd": "登录密码", "userTypeId": "关联的用户类型Id" } ``` - 返回的数据结构 ```json { "success": "successInfo", "errMsg": "errMsgInfo", } ``` 2.4. delete 请求删除用户请求地址: ```turtle /admin/del_user ``` - 请求数据结构: ```json { "userId": "用户 Id", "account": "登录账号", "username": "用户姓名", } ``` - 返回数据结构 ```json { "success": "successInfo", "errMsg": "errMsgInfo", } ``` #### 三、客户管理 3.1. GET 请求所有客户请求地址: ```turtle /admin/getAllClient ``` 3.2. post 添加客户请求地址: ```turtle /admin/add_client ``` - 提交的数据结构: ```json { "client_anme": "客户姓名", "client_phone": "联系方式", "client_addr": "联系地址", } ``` - 返回的数据结构: ```json { "success": "successInfo", "errMsg": "errMsg", } ``` 3.3. PUT 修改客户请求地址: ```turtle /admin/change_client ``` - 提交的数据结构 ```json { "client_id": "客户 ID", // 根据该 id 修改数据库中的用户数据 "client_name": "客户姓名", "client_phone": "联系方式", "client_addr": "联系地址", } ``` - 返回的数据结构 ```json { "success": "successInfo", "errMsg": "errMsg", } ``` 3.4. delete 删除客户请求地址: ```json /admin/del_client ``` - 请求数据结构 ```json { "client_id": "客户 id", "client_name": "客户姓名", "client_phone": "联系方式", "client_addr": "联系地址", } ``` #### 四、物流管理 4.1. GET 请求所有物流信息地址: ```turtle /admin/getAllWuLiu ``` 4.2. POST 添加物流请求地址: ```turtle /admin/addWuLiu ``` - 请求数据结构: ```json { "wuLiuName":"物流公司名称", "buttPeople":"物流公司对接人", "buttPhone":"对接人联系方式", } ``` - 返回数据结构 ```json { "success": "successInfo", "errMsg": "errMsg", } ``` 4.3. PUT 修改物流请求地址: ```turtle /admin/changeWuLiu ``` - 请求数据结构 ```json { "wuLiuId": "物流 Id", "wuLiuName": "物流名称", "buttPeople": "对接人", "buttPhone": "对接人联系方式", } ``` - 返回数据结构 ```json { "success": "successInfo", "errMsg": "errMsg", } ``` 4.4. delete 删除物流请求地址: ```turtle /admin/del_wuLiu ``` - 请求数据结构: ```json { "wuLiuId": "物流 Id", "wuLiuName": "物流名称", "buttPeople": "对接人", "buttPhone": "对接人手机", } ``` #### 五、物料管理 5.1. GET 请求所有物料请求地址: ```turtle /admin/getAllMater ``` 5.2. POST 添加物料请求地址: ```json /admin/add_mater ``` - 请求数据结构: ```json { "mater_name": "物料名称", "brand": "物料品牌", "mater_model": "规格型号", "cfg_ver": "成品物料版本", } ``` - 返回数据同上 5.3. PUT 修改物料请求地址: ```turtle /admin/change_mater ``` - 请求数据结构: ```json { "mater_id": "物料 Id", "mater_name": "物料名称", "mater_brand": "物料品牌", "mater_model": "规格型号", "mater_cfg": "版本信息", } ``` - 返回数据同上 5.4. DELETE 删除物料请求地址: ```turtle /admin/del_mater ``` - 请求数据结构 ```json { "materId": "物料 Id", "materName": "物料名称", "materBrand": "物料品牌", "materModel": "规格型号", "materCfgVer": "配置版本", } ``` - 返回数据同上 #### 六、产品组装 - GET 获取所有物料信息请求地址(与物料管理功能请求地址一致,需要获取的数据也一致,但需要渲染的功能页面不同): ```turtle /admin/getAllMater ``` - GET 获取主键物料信息请求地址: ```turtle /admin/getProductInfo ``` - 携带参数 ```json { "product_id": "主件物料Id", } // 根据该 Id 获取主件物料其他信息并填入产品组装功能页面主件的其他信息栏, // 数据库查询时应通过过滤只查询属性为半成品或成品的数据 ``` - Post 请求地址: ```turtle /admin/goods_up ``` - 请求数据结构: ```json { "productId":"成名Id", "productModel":"规格型号", "version": "配置版本号", "成名Id":{ "childrenId":[ "子件编号1", "子件编号2", ... ], "childrenDosage":[ "子件1用量", "子件2用量", ... ] } } ``` #### 七、打印管理 7.1. GET 获取所有打印机请求地址: ```turtle /admin/getAllprinter ``` 7.2. POST 添加打印机请求地址: ```turtle /admin/add_printer ``` - 请求携带参数结构: ```json { "print_name": "打印机名称", "mater_addr": "打印机地址", "bt_server_addr": "BT 软件服务器地址", // 数据库中应给个默认地址且不应该经常更改 } ``` - 返回数据同上 7.3. PUT 修改打印机信息请求地址: ```turtle /admin/change_print ``` - 请求携带参数结构: ```json { "print_id": "打印机 Id", "print_name": "打印机名称", "print_addr": "打印机服务地址", "bt_server": "Bt 软件服务地址", } ``` - 返回参数同上 7.4. DELETE 删除打印机请求地址: ```turtle /admin/del_printer ``` - 请求携带数据结构: ```json { "printId": "打印机 Id", "printName": "打印机名称", "printAddr": "打印机服务地址", "BTServerAddr": "Bt 软件服务地址", } ``` - 返回数据通常 #### 八、待办事项 - GET 获取所有代码事项请求地址: ```turtle /admin/getUpcoming ``` > 在该功能中所有 GET 请求都应在后端从 redis 数据库中获取到当前登录用户的用户名,然后再根据该用户名获取到用户 Id,最后根据用户 Id 获取到对用用户的待办事项。 - GET 获取未完成待办事项请求地址: ```json /admin/getUpcoming ``` - 携带参数: ```json { "statId": 0, } ``` - GET 获取已完成待办事项请求地址: ```turtle /admin/getUpcoming ``` - 携带参数: ```json { "statId": 1, } ``` - GET 获取待办事项详情请求地址: ```turtle /admin/getUpcomingDetail ``` - 携带参数: ```json { "link_id": "事项 id" } ``` - 前端未完成功能: - 详情弹窗布局可能需要重新设计 - 详情弹框审核通过按钮未获取到数据,暂无提交请求地址 #### 九、条码打印 9.1. get 请求url ```json /admin/getAllClient // 用于获取所有客户渲染关联客户下拉框 /admin/getAllMater // 用于获取所有物料信息渲染关联茶农下拉框 /admin/getAllUser // 用于获取所有用户信息渲染关联销售下拉框 /admin/getAllVersion // 从成品配置表获取去重后的所有配置版本 ``` 9.2. post 打印条码请求地址 ```turtle /admin/print_code ``` - 携带数据格式 ```json { "codeHead": "条码头字母", "mode": "关联的产品ID", "client": "关联的客户 Id", "sale": "关联的销售 Id", "date": "出厂日期", "num": "打印数量", "print_version": "关联的配置版本", } ``` #### 十、条码绑定 - 10.1、 GET根据主条码获取获取字条码用来请求地址: ```json /admin/getSonCodeDosage /admin/getAllVersion // 从成品配置表获取去重后的所有配置版本 ``` - 携带参数: ```json { "hostCode": "主条码" } ``` > 用到该请求的功能: > > 2. 根据主板条码查询相关子件用量。 > > 3. 根据整机条码查询子件用量。 > > 查询数据步骤: > > > 1. 根据主条码查询到主条码的 Id。 > > > > 2. 根据查询到的主条码 Id 查询到关联的字条码。 > > > > 3. 根据查询到的字条码查询到每个字条码的用量。 > 拿到返回的结构后只需要渲染每个子件标签中的 span 标签中的数量即可 - 10.2. POST 提交条码信息绑定请求 url: ```json /admin/bindCode ``` - 携带数据结构 ```json // 主板套件条码绑定请求数据结构 { "codeType": 0, "annexHostCode":"主条码", "bVersion": "成品配置版本号", "主条码":{ "cpuCodeList":[ "cpu 子条码1", "cpu 子条码2", ... ], "fanCodeList":[ "散热器子条码1", "散热器子条码2" ], "ramCodeList":[ "内存子条码1", "内存字条吗2", ... ] } } // 整机条码绑定请求数据结构 { "codeType":1, "hostCode":"整机条码",     "bVersion": "成品配置版本号", "整机条码":{ "annexHostCodeDat":"主板条码" }, "主板条码":{ "diskCodeList":[ "硬盘子条码1", "硬盘子条码2", .... ], "powerCodeList":[ "电源子条码1", "电源子条码2", ... ], "showCodeList":[ "显卡子条码1", "显卡字条码2", ... ] } } ``` > codeType 数据说明:该数据用来判定是在进行什么条码绑定,0 表示主板套件条码绑定,1 表示整机条码绑定提交的请求。后端应先获取到该参数进行判断,然后根据不用的内容获取数据内容。 #### 十一、业务工单操作 - 11.1. get 请求 - 获取所有业务工单请求地址: ```turtle /admin/getAllWork ``` > 获取所有业务工单时,应在后端先从 redis 中获取到当前登录的用户,然后根据当前用户获取到用户 id,最后根据用户 id 查询所有与该用户关联的工单信息。 - 根据不同状态请求不同数据请求地址: ```url /admin/getWorkData ``` - 请求数据结构: ```json { "workId": 0, } ``` > workId 的状态值说明: > > > 状态 0 : 请求尚在返厂中的工单及物料数据(即可以以返厂维修,但尚未收到货的状态)。 > > > > 状态 1: 请求已收到货但尚未派单给维系人员维修的工单及物料信息。 > > > > 状态 2:请求正在维修状态的工单数据及物料信息。 > > > > 状态 3:请求已维修完毕但尚未返还客户的工单及物料信息。 > > > > 状态4:表示已完成的工单数据 - get 获取所有维修人员数据请求地址: ```turtle /admin/getUsers ``` -  携带参数说明: ```json { "userType": 4, // 用户类型为四表示为维修人员 } ``` > 渲染下拉框时应注意,除了渲染所有维修人员信息外,还应加上外发下拉选项 - 11.2. PUT 请求 - 确认派单请求地址: ```turtle /admin/changeWorkState ``` - 携带参数: ```json { "workId":"待办事项号", // 待办实现编号在数据库应与物料进行关联 "chooseId":"下拉选择框的值", // 该值可能是用户 Id 或外发 Id "outFirm":"外发的公司名称", // 当没有选择外发时该项值为空 } ``` - 接收操作或维修完成退仓操作请求地址: ```turtle /admin/changeWork ``` - 携带参数: ```json { "editType": 1, "workId": "待办事项id", } ``` > wditType 选项说明: > > > 1:表示收人人员在进行接收操作。 > > > > 2:表示维修人员维修完毕在进行退仓操作。 - 工单发货给客户请求地址: ```turtle /admin/sendWorkState ``` - 携带数据结构: ```json { "workId": "工单编号", "kuaidiId": "快递Id", "kuaidiNum": "快递单号", } ``` #### 报表类 待后面根据需求逐步完善。 --- ## 系统数据库表结构 - 数据库创建语句 ```sql #mysql 5.x create database saletest character set utf8 collate utf8_general_ci; # mysqlsql 8.0 create database saletest character set utf8mb4 collate utf8mb4_general_ci; ``` #### 用户表 | uid | account | userName | passwd | t_id | | --- | ------- | -------- | ------ | --------- | | 编号 | 账号名 | 用户姓名 | 密码 | 关联的用户类型编号 | ```sql # 一个类别对应多个用户 # mysql 5.7 create table user( uid int(4) primary key auto_increment, account varchar(32) not null default "" comment '用户账户', user_name varchar(32) not null default "" comment '用户姓名',     passwd varchar(32) not null default "" comment '登录密码', t_id int(4) comment '关联的用户类型表编号', foreign key(t_id) references user_type(ut_id) on delete cascade on update cascade )engine=InnoDB default charset=utf8 collate=utf8_general_ci; # mysql 8.0 create table user( uid int(4) primary key auto_increment, account varchar(32) not null default "" comment '用户账户', user_name varchar(32) not null default "" comment '用户姓名', passwd varchar(32) not null default "" comment '登录密码', t_id int(4) comment '关联的用户类型表编号', foreign key(t_id) references user_type(ut_id) on delete cascade on update cascade )engine=InnoDB default charset=utf8mb4 collate=utf8mb4_general_ci; ``` #### 用户类别表 | ut_id | typeName | | ----- | -------- | | 类型编号 | 类别名称 | ```sql # mysql 5.x 语法 create table user_type( ut_id int(4) primary key auto_increment, type_name varchar(32) not null default '' comment '用户类型名', )engine=InnoDB default charset=utf8 collate=utf8_general_ci; # mysql 8.0 语法 create table user_type( ut_id int(4) primary key auto_increment, type_name varchar(32) not null default '' comment '用户类型名' )engine=InnoDB default charset=utf8mb4 collate=utf8mb4_general_ci; ``` #### 客户表 | cid | client_name | phone | addr | u_id | | --- | ----------- | ----- | ---- | ------- | | 编号 | 客户姓名 | 联系当时 | 联系地址 | 关联的用户Id | ```sql # mysql 5.x create table client( cid int(4) primary key auto_increment, client_name varchar(32) not null comment '客户姓名', phone varchar(32) not null comment '联系方式', addr varchar(128) not null comment '客户地址', u_id int(4), foreign key(u_id) references user(uid) on update cascade on delete cascade )engine=InnoDB default charset=utf8 collate=utf8_general_ci; # mysql 8.0 create table client( cid int(4) primary key auto_increment, client_name varchar(32) not null comment '客户姓名', phone varchar(32) not null comment '联系方式', addr varchar(128) not null comment '客户地址', u_id int(4), foreign key(u_id) references user(uid) on update cascade on delete cascade )engine=InnoDB default charset=utf8mb4 collate=utf8mb4_general_ci; ``` #### 外发公司表(前端尚无此功能,待完善) | oid | out_firm_name | phone | addr | people | | --- | ------------- | ----- | ---- | ------ | | 编号 | 公司名称 | 联系方式 | 地址 | 对接人 | ```sql # mysql 5.x create table out_firm( oid int(4) primary key auto_increment, out_firm_name varchar(32) not null default '' comment '外发公司名称', people varchar(16) not null default '' comment '对接人', phone varchar(16) not null default '' comment '联系方式', oaddr varchar(128) not null default '' comment '联系地址' )engine=InnoDB default charset=utf8 collate=utf8_general_ci; # mysql 8.x create table out_firm( oid int(4) primary key auto_increment, out_firm_name varchar(32) not null default '' comment '外发公司名称', people varchar(16) not null default '' comment '对接人', phone varchar(16) not null default '' comment '联系方式', oaddr varchar(128) not null default '' comment '联系地址' )engine=InnoDB default charset=utf8mb4 collate=utf8mb4_general_ci; ``` #### 物流公司表 > 一个物流公司可关联多个工单,在工单表中应关联此表 Id | lid | lname | butt | phone | | --- | ------ | ---- | ------- | | 编号 | 物流公司名称 | 对接人 | 对接人联系方式 | ```sql # mysql 5.x create table logistics( lid int(4) primary key auto_increment, lname varchar(16) not null default '' comment '物流名称', butt varchar(32) not null default '' comment '对接人', phone varchar(16) not null default '' comment '对接人联系方式' )engine=InnoDB default charset=utf8 collate=utf8_general_ci; # mysql 8.x create table logistics( lid int(4) primary key auto_increment, lname varchar(16) not null default '' comment '物流名称', butt varchar(32) not null default '' comment '对接人', phone varchar(16) not null default '' comment '对接人联系方式' )engine=InnoDB default charset=utf8mb4 collate=utf8mb4_general_ci; ``` #### 物料表 与之关联的表 > 条码表、业务工单表(已在工单表关联,此处不再需要)、关联客户表 | mid | mname | brand | model | cfg_ver | | --- | ----- | ----- | ----- | ------- | | 编号 | 物料名称 | 物料品牌 | 规格型号 | 配置版本 | ```sql # mysql 5.x create table mater( mid int(4) primary key auto_increment, mname varchar(64) not null default '' comment '物料名称', brand varchar(16) not null default '' comment '物料品牌', model varchar(64) not null default '' comment '规格型号', cfg_ver varchar(16) null comment '配置版本信息' )engine=InnoDB default charset=utf8 collate=utf8_general_ci; # mysql 8.x create table mater( mid int(4) primary key auto_increment, mname varchar(64) not null default '' comment '物料名称', brand varchar(16) not null default '' comment '物料品牌', model varchar(64) not null default '' comment '规格型号', cfg_ver varchar(16) null comment '配置版本信息' )engine=InnoDB default charset=utf8mb4 collate=utf8mb4_general_ci; ``` > 组装后的主板套件名称和规格型号/整机名称和规格型号也应该存到该表中,且唯一 #### 物料BOM表 | mbid | m_id | fm_id | mater_lv | dosage | mater_ver | | ---- | --------- | ------ | -------- | ------ | --------- | | 自增编号 | 关联的产品物料Id | 父级物料Id | 层级 | 用量 | 当前配置版本 | ```sql # mysql 5.x create table mater_bom( mbid int primary key auto_increment, m_id int(4) comment '物料Id', fm_id int(4) null comment '父级物料Id', mater_lv int(1) not null default 0 comment '层级', dosage int(2) not null default 0 comment '用量', mater_ver varchar(16) not null default '' comment '当前配置版本' )engine=InnoDB default charset=utf8 collate=utf8_general_ci; # mysql 8.x create table mater_bom( mbid int primary key auto_increment, m_id int(4) comment '物料Id', fm_id int(4) null comment '父级物料Id', mater_lv int(1) not null default 0 comment '层级', dosage int(2) not null default 0 comment '用量', mater_ver varchar(16) not null default '' comment '当前配置版本' )engine=InnoDB default charset=utf8mb4 collate=utf8mb4_general_ci; ``` #### 打印机记录表 | pid | p_name | p_net_addr | bt_ser_addr | | --- | ------ | ---------- | ----------- | | 编号 | 打印机名 | 打印机网络地址 | BT服务器地址 | ```sql # mysql 5.x create table printer( pid int(4) primary key auto_increment, p_name varchar(32) not null default '' comment '打印机名', p_net_addr varchar(64) not null default '' comment '打印机网络地址', bt_ser_addr varchar(128) not null default '应该有一个默认地址' comment 'BT条码软件服务器地址' )engine=InnoDB default charset=utf8 collate=utf8_general_ci; # mysql 8.0 create table printer( pid int(4) primary key auto_increment, p_name varchar(32) not null default '' comment '打印机名', p_net_addr varchar(64) not null default '' comment '打印机网络地址', bt_ser_addr varchar(128) not null default '应该有一个默认地址' comment 'BT条码软件服务器地址' )engine=InnoDB default charset=utf8mb4 collate=utf8mb4_general_ci; ``` #### 待办事项记录表 与之关联的表: > 人员表、物料表、工单表 | upid | up_name | w_id | u_id | m_id | | ---- | ------- | ------- | ------- | ------- | | 编号 | 待办事项名称 | 关联的工单Id | 关联的用户Id | 关联的物料Id | ```sql # sql 5.x create table upcoming( upid int(4) primary key auto_increment, up_name varchar(128) not null default '' comment '待办事项名称', w_id int(9) comment '关联的工单Id', u_id int(4) comment '关联的人员Id', m_id int(4) comment '关联的物料Id', foreign key(w_id) references work(wid) on update cascade on delete cascade, foreign key(u_id) references user(uid) on update cascade on delete cascade, foreign key(m_id) references mater(mid) on update cascade on delete cascade )engine=InnoDB default charset=utf8 collate=utf8_general_ci; # sql 8.x create table upcoming( upid int(4) primary key auto_increment, up_name varchar(128) not null default '' comment '待办事项名称', w_id int(9) comment '关联的工单Id', u_id int(4) comment '关联的人员Id', m_id int(4) comment '关联的物料Id', foreign key(w_id) references work(wid) on update cascade on delete cascade, foreign key(u_id) references user(uid) on update cascade on delete cascade, foreign key(m_id) references mater(mid) on update cascade on delete cascade )engine=InnoDB default charset=utf8mb4 collate=utf8mb4_general_ci; ``` #### 条码记录表 | bid | barcode | c_id | u_id | m_id | code_ver | | --- | ------- | ------- | ------- | ------- | -------- | | 编号 | 条码 | 关联的客户Id | 关联的用户Id | 关联的物料Id | 配置版本号 | ```sql # sql 5.x create table code( bid int primary key auto_increment, barcode varchar(64) not null default '' comment '条码', c_id int(4) comment '关联的客户Id', u_id int(4) comment '关联的用户Id', m_id int(4) comment '关联的物料Id', code_ver varchar(16) not null default '' comment '配置版本', foreign key(c_id) references client(cid) on update cascade on delete cascade, foreign key(u_id) references user(uid) on update cascade on delete cascade, foreign key(m_id) references mater(mid) on update cascade on delete cascade )engine=InnoDB default charset=utf8 collate=utf8_general_ci; # sql 8.x create table code( bid int primary key auto_increment, barcode varchar(64) not null default '' comment '条码', c_id int(4) comment '关联的客户Id', u_id int(4) comment '关联的用户Id', m_id int(4) comment '关联的物料Id', code_ver varchar(16) not null default '' comment '配置版本', foreign key(c_id) references client(cid) on update cascade on delete cascade, foreign key(u_id) references user(uid) on update cascade on delete cascade, foreign key(m_id) references mater(mid) on update cascade on delete cascade )engine=InnoDB default charset=utf8mb4 collate=utf8mb4_general_ci; ``` #### 条码绑定记录表 | bbid | b_id | parent_id | code_lv | | ---- | ---- | --------- | ------- | | 自增编号 | 条码Id | 父级条码Id | 层级 | ```sql # sql 5.x create table code_bom( bbid int primary key auto_increment, b_id int comment '条码Id', par_id int null comment '父级条码Id', code_lv int(1) not null default 0 comment '层级' )engine=InnoDB default charset=utf8 collate=utf8_general_ci comment='条码Bom'; # sql 8.x create table code_bom( bbid int primary key auto_increment, b_id int comment '条码Id', par_id int null comment '父级条码Id', code_lv int(1) not null default 0 comment '层级' )engine=InnoDB default charset=utf8mb4 collate=utf8mb4_general_ci comment='条码Bom'; ``` #### 业务工单记录表 > 该表关联的其他表:物流表、物料表、客户表、人员表、外发公司表 | wid | process | state | m_id | u_id | c_id | l_id | o_id | | ---- | ------- | ------ | ------- | ------- | ------- | ------- | --------- | | 主键编号 | 流程控制Id | 状态控制Id | 关联的物料Id | 关联的用户Id | 关联的客户Id | 关联的物流Id | 关联的外发公司Id | ```sql # sql 5.x create table work( wid int(9) primary key auto_increment, process int(1) not null default 0 comment '流程控制Id', state int(1) not null default 0 comment '状态控制Id', m_id int(4) comment '关联的物料Id', u_id int(4) comment '关联的用户Id', c_id int(4) comment '关联的客户Id', l_id int(4) comment '关联的物流Id', o_id int(4) comment '关联的外发公司Id', foreign key(m_id) references mater(mid) on update cascade on delete cascade, foreign key(u_id) references user(uid) on update cascade on delete cascade, foreign key(c_id) references client(cid) on update cascade on delete cascade, foreign key(l_id) references logistics(lid) on update cascade on delete cascade, foreign key(o_id) references out_firm(oid) on update cascade on delete cascade )engine=InnoDB default charset=utf8 collate=utf8_general_ci; # sql 8.x create table work( wid int(9) primary key auto_increment, process int(1) not null default 0 comment '流程控制Id', state int(1) not null default 0 comment '状态控制Id', m_id int(4) comment '关联的物料Id', u_id int(4) comment '关联的用户Id', c_id int(4) comment '关联的客户Id', l_id int(4) comment '关联的物流Id', o_id int(4) comment '关联的外发公司Id', foreign key(m_id) references mater(mid) on update cascade on delete cascade, foreign key(u_id) references user(uid) on update cascade on delete cascade, foreign key(c_id) references client(cid) on update cascade on delete cascade, foreign key(l_id) references logistics(lid) on update cascade on delete cascade, foreign key(o_id) references out_firm(oid) on update cascade on delete cascade )engine=InnoDB default charset=utf8mb4 collate=utf8mb4_general_ci; ``` #### 部署后需要修改的配置内容有: > 注:以下修改内容涉及到文件路径的都 **必须使用绝对路径** 1. `ayatem/cfg/asys.yaml` 配置文件中修改 `codeCfg `节点下的 `codeReqUr`子节点后的验证地址为域名 2. 修改 `asystem/cfg/getCfg.go` 文件中的 `FILEPATH` 变量后的配置文件路径为部署后相同路径下的 `.yaml` 配置文件路径 3. 修改 `asystem/pays/config/readConfig.go` 文件中的 `CfgPath` 常量后的配置文件路径为部署后相同路径下的 `.yaml` 配置文件路径 4. 修改 `asystem/wxPush/util/readIni.go` 文件中的 `cfgPath` 常量后面的值为 `/home/xxx/.../asystem/wxPush/conf/wxconf.ini` 配置文件路径 5. 获得支付宝商户私钥及证书相关信息后需要变更的内容: 5.1. 私钥更换位置:`asystem/pays/alipay/client.go` 文件中的 `PrivateKey` 变量后的私钥内容 5.2. 根证书存放路径:`asystem/pays/alipay/crts` 将其中的文件全部替换为支付宝商户号的证书文件 5.3. 配置文件 `asystem/pays/config/Pay.yaml` - alipay 节点: - `aliappid` 后的内容修改为商户号的应用Id - `aliprivatekey` 后的内容私钥修改为获取到的商户号私钥 - `aliappcertpublickeyfile` 后的内容修改为商户号的 `xxx_2016......,crt` 证书文件路径 - `alipayrootcert` 后的内容修改为商户号的 `alipayRootCert.crt` 证书文件路径 - `alipaycertpublickeyrsa2` 后的内容修改为商户号的 `alipayCertPublicKey_RSA2.crt` 证书文件路径 - `alinotifyurl` 后的内容修改为域名地址**url无需变动** - `alireturnurl` 后的内容将其中的 IP 地址更改为域名 **url无需变动** - `aliisproduction` 后的内容修改为 true - wxpay 配置节点暂未实现无需变动