发表于: 2018-10-13 23:47:04
1 438
今天完成的事情:
1.1 后台-article管理
1.1.1 图片
1.1.1.1 用户可以在列表中看到所有图片基本信息展示在列表中, 列表可翻页, 用户可以通过填写查询条件搜索出相关图片在列表中展示
需求:用户可以在后台查看所有图片并可根据相关条件搜索, 并有分页功能
方案:前端以GET方法访问/a/u/image/list接口, 传入相关筛选条件, 默认返回所有图片列表, 返回的数据以分页形式展示。
请求参数:
字段 | 说明 | 类型 | 是否必须 | 备注 |
timeFirst | 起始时间 | String | 否 |
|
timeLast | 截止时间 | String | 否 |
|
imageName | 图片名 | String | 否 |
|
creatName | 创建人 | String | 否 |
|
imageType | 类型 | Number | 否 |
|
imageStatus | 状态 | Number | 否 |
|
currentPage | 当前页码 | Number | 否 | 默认1 |
size | 每页行数 | Number | 否 | 默认10 |
返回参数:Code、Message、Data
Code | Message |
1000 | 未知错误 |
2000 | 数据不存在 |
0 | success |
Data:
字段 | 说明 | 类型 | 是否必须 | 备注 |
imageId | 图片id | Number | 是 |
|
imageName | 图片名称 | String | 是 |
|
imageTime | 轮播时间 | Number | 是 |
|
imageType | 图片类型 | Number | 是 |
|
createAt | 发布时间 | Number | 是 |
|
updateAt | 修改时间 | Number | 是 |
|
createName | 发布者 | String | 是 |
|
imageStatus | 状态 | Number | 是 |
|
total | 总数 | Number | 是 |
|
Sql语句:(因为要使用动态查询, 所以使用了动态SQL, 这里就不再写出来了)
Select image_id, image_name, image_url, image_type, image_time, create_name, create_time, update_at from banner where image_name like %?% and create_name like %?% and image_status= ? and image_type=? and update_at >= ? and update_at <= ?
1.1.1.2 用户可以通过列表对图片进行新增、删除、编辑、查看、状态改变(上架/下架)
需求:用户可以新增图片
方案:前端传入新增图片相关参数, 以POST访问/a/u/image接口, 新增数据。
请求参数:
字段 | 说明 | 类型 | 是否必须 | 备注 |
imageName | 图片标题 | String | 是 |
|
imageType | 图片类型 | Number | 是 |
|
imageTime | 轮播时间 | Number | 是 |
|
imageJumpUrl | 跳转链接 | String | 是 |
|
imageTrade | 行业 | Number | 是 | 只有行业大图需要写行业 |
imageUrl | 图片链接 | String | 是 |
|
imageStatus | 图片状态 | Number | 是 |
|
返回参数:Code、Message
Code | Message |
1000 | 未知错误 |
1001 | 传入数据有空值 |
0 | success |
Sql:(create_name, create_time, update_name, update_at由后端获取)
insert into banner (image_name, image_url, image_status, image_type, image_time, image_jump_url, image_trade, create_name, create_time, update_name, update_at) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
需求:用户可以删除图片
方案:前端以DELETE调用/a/u/image接口, 传入要删除图片的id , 删除数据
请求参数:
字段 | 说明 | 类型 | 是否必须 | 备注 |
imageId | 图片Id | Number | 是 |
|
返回参数:Code、Message、Data
Code | Message |
1000 | 未知错误 |
1001 | 传入数据有空值 |
0 | success |
Sql:
delete from banner where image_id =?
需求:用户可以查找图片
方案:前端以GET调用/a/u/image接口, 传入要查找图片的id , 查找数据
请求参数:
字段 | 说明 | 类型 | 是否必须 | 备注 |
imageId | 图片Id | Number | 是 |
|
返回参数:Code、Message、Data
Code | Message |
1000 | 未知错误 |
1001 | 传入数据有空值 |
2000 | 数据不存在 |
0 | success |
Data:
字段 | 说明 | 类型 | 是否必须 | 备注 |
imageName | 图片标题 | String | 是 |
|
imageTime | 轮播时间 | Number | 是 |
|
imageType | 图片类型 | Number | 是 |
|
imageJumpUrl | 跳转链接 | String | 是 |
|
imageTrade | 行业 | Number | 是 | 只有行业大图需要写行业 |
imageUrl | 图片链接 | String | 是 |
|
Sql:
Select image_name, image_time, image_type, image_jump_url, image_trade image_url, from banner where image_id = ?
需求:用户可以修改图片
方案:前端以PUT调用/a/u/image接口, 传入要修改图片的id , 修改数据
请求参数:
字段 | 说明 | 类型 | 是否必须 | 备注 |
imageId | 图片Id | Number | 是 |
|
imageName | 图片标题 | String | 是 |
|
imageTime | 轮播时间 | Number | 是 |
|
imageType | 图片类型 | Number | 是 |
|
imageJumpUrl | 跳转链接 | String | 是 |
|
imageTrade | 行业 | Number | 是 | 只有行业大图需要写行业 |
imageUrl | 图片链接 | String | 是 |
|
imageStatus | 图片状态 | Number | 是 |
|
返回参数:Code、Message
Code | Message |
1000 | 未知错误 |
1001 | 传入数据有空值 |
0 | success |
Sql:
update banner set image_name = ?, image_url = ?, image_status = ?, image_type = ?, image_time = ?,
image_jump_url = ?, image_trade =?, image_status =?, update_name = ?, update_at = ?, where image_id = ?
需求:用户可以改变图片上线状态
方案:用户以PUT方法访问/a/u/image/status, 后台接收请求, 如果是上线, 则先判断imageTrade为否为空(不为空说明该图属于行业大图), 如果是行业大图, 则根据imageTrade和imageStatus查找已上线行业大图的imageId并返回。如果imageType不等于3或该行业无已上线行业大图, 则去修改图片上线状态, 默认0上线、1下线。
请求参数:
字段 | 说明 | 类型 | 是否必须 | 备注 |
imageId | 图片Id | Number | 是 |
|
imageTrade | 图片行业 | Number | 是 |
|
imageStatus | 图片状态 | Number | 是 |
|
返回参数:Code、Message、Data
Code | Message |
1000 | 未知错误 |
1001 | 传入数据有空值 |
0 | success |
2002 | 已有上线行业大图, id为+imageId |
Data:(若有已上线行业大图, 则返回)
字段 | 说明 | 类型 | 是否必须 | 备注 |
imageId | 图片Id | Number | 是 | 已上线行业大图id |
Sql:
【查找是否存在已上线行业大图】 select image_id where image_status = 0, image_trade = ?
【修改上线状态】update banner set image_status =?, update_name = ?, update_at = ?, where image_id = ?
1.1.1.3 用户只能上线同种行业的一张图片
需求:行业大图不能重复上线
方案:见上条方案。
1.2 后台-后台管理
1.2.1 注销
1.2.1.1 用户登录后可以从后台管理系统中注销登出返回登录页
需求:用户可以注销并回到登录页
方案:用户点击注销按钮, 调用后台/a/u/logout接口, 删除对应cookie, 重置token, 并跳转到登录页面。
1.2.2 登录
1.2.2.1 用户可以输入在后台管理系统创建好的账户密码来登录后台管理系统
需求:用户可以输入账号密码登录
方案:用户输入账号密码, 调用/a/login接口, 根据用户名获取id、盐值、加盐后的密码, 对输入的密码进行MD5加盐操作, 验证与数据库取出的密码是否匹配, 若匹配, 则返回登录成功。
请求参数:
字段 | 说明 | 类型 | 是否必须 | 备注 |
userName | 用户名 | String | 是 |
|
userPassword | 用户密码 | String | 是 |
|
返回参数:Code、Message、Data
Code | Message |
0 | success |
1000 | 未知错误 |
1001 | 传入数据有空值 |
2003 | 用户不存在 |
2004 | 密码错误 |
Data:
字段 | 说明 | 类型 | 是否必须 | 备注 |
userName | 用户名 | String | 是 |
|
userRole | 用户角色名 | String | 是 |
|
token | 登录token | String | 是 | 由JWT认证中心生成 |
refreshToken | 刷新token | String | 是 | 由JWT认证中心生成 |
Sql:
1)验证登录权限
Select user_id , user_salt, user_password from user where user_name = ?
2)返回用户角色
select c.user_id, a.role_name from role as a inner join user_role as b on a.role_id = b.role_id inner join `user` as c on b.user_id = c.user_id where c.user_id = ?
1.2.3 角色管理
1.2.3.1 用户可以在角色列表中看到所有角色的基本信息展示在列表中
需求:用户可以获取角色列表
方案:调用接口/a/u/role/list获取角色列表信息, 根据前端传过来的size返回相应数量的信息以实现分页。
请求参数:
字段 | 说明 | 类型 | 是否必须 | 备注 |
currentPage | 当前页码 | Number | 否 | 默认1 |
size | 每页行数 | Number | 否 | 默认10 |
返回参数:Code、Message、Data
Code | Message |
0 | success |
1000 | 未知错误 |
2000 | 数据不存在 |
Data:
字段 | 说明 | 类型 | 是否必须 | 备注 |
roleId | 角色id | String | 是 |
|
roleName | 角色名 | String | 是 |
|
createName | 创建人 | String | 是 | 原需求为创建人id |
creatTime | 创建时间 | Number | 是 |
|
updateName | 更新人 | String | 是 | 原需求为更新人id |
updateAt | 更新时间 | Number | 是 |
|
total | 总数 | Number | 是 |
|
Sql语句:
Select role_id, role_name, create_name, create_time, update_name, update_at from role
1.2.3.2 用户可以通过列表对角色进行新增、删除、编辑、查看操作
需求:根据角色列表对角色进行增删改查
方案:每一行数据都有一个增删改查的按钮, 分别对应后端一个接口的不同请求方式(/a/u/role 增POST 删DELETE 改PUT查GET )。
需求:用户可以新增角色
方案:前端传入新增角色相关参数, 以POST访问/a/u/role接口, 新增数据。
请求参数:
字段 | 说明 | 类型 | 是否必须 | 备注 |
roleName | 角色名 | String | 是 |
|
perms | 角色权限列表 | Array | 是 |
|
modelId | 模块id | Number | 是 |
|
perm | 权限 | Array | 是 |
|
返回参数:Code、Message
Code | Message |
1000 | 未知错误 |
1001 | 传入数据有空值 |
0 | success |
Sql:
1)在角色表新增角色
insert into role (role_id, role_name, create_name, create_time, update_name, update_at) values (?, ?, ?, ?, ?, ?)
2)在角色权限关联表新增角色权限关系, 详情见权限方案
需求:用户可以删除角色
方案:前端以DELETE调用/a/u/role接口, 传入要删除角色的id , 删除数据
请求参数:
字段 | 说明 | 类型 | 是否必须 | 备注 |
roleId | 角色Id | Number | 是 |
|
返回参数:Code、Message、Data
Code | Message |
1000 | 未知错误 |
1001 | 传入数据有空值 |
0 | success |
Sql:
delete from role where role_id =?
需求:用户可以查找获取角色详情
方案:前端以GET调用/a/u/role接口, 传入要查找角色的id , 查找数据
请求参数:
字段 | 说明 | 类型 | 是否必须 | 备注 |
roleId | 角色Id | Number | 是 |
|
返回参数:Code、Message、Data
Code | Message |
1000 | 未知错误 |
1001 | 传入数据有空值 |
2000 | 数据不存在 |
0 | success |
Data:
字段 | 说明 | 类型 | 是否必须 | 备注 |
roleName | 角色名 | String | 是 |
|
perms | 角色权限列表 | Array | 是 |
|
modelId | 模块id | Number | 是 |
|
perm | 权限 | Array | 是 |
|
Sql:见权限方案
需求:用户可以修改角色
方案:前端以PUT调用/a/u/role接口, 传入要修改角色的id , 修改数据
请求参数:
字段 | 说明 | 类型 | 是否必须 | 备注 |
roleId | 角色id | Number | 是 |
|
roleName | 角色名 | String | 是 |
|
perms | 角色权限列表 | Array | 是 |
|
modelId | 模块id | Number | 是 |
|
perm | 权限 | Array | 是 |
|
返回参数:Code、Message
Code | Message |
1000 | 未知错误 |
1001 | 传入数据有空值 |
0 | success |
Sql:见权限方案
1.2.4 模块管理
1.2.4.1 用户可以在模块列表中看到后台系统所有模块的基本信息展示在列表中
需求:用户可以获取模块列表
方案:调用接口/a/u/moudel/list获取模块列表信息, 根据前端传过来的size返回相应数量的信息以实现分页。
请求参数:
字段 | 说明 | 类型 | 是否必须 | 备注 |
currentPage | 当前页码 | Number | 否 | 默认1 |
size | 每页行数 | Number | 否 | 默认10 |
返回参数:Code、Message、Data
Code | Message |
0 | success |
1000 | 未知错误 |
2000 | 数据不存在 |
Data:
字段 | 说明 | 类型 | 是否必须 | 备注 |
modelId | 模块id | Number | 是 |
|
modelName | 模块名 | String | 是 |
|
modelUrl | 模块URL | String | 否 |
|
modelParent | 父模块ID | Number | 否 |
|
modelType | 模块类型 | String | 是 |
|
createName | 创建人 | String | 是 | 原需求为创建人id |
creatTime | 创建时间 | Number | 是 |
|
updateName | 更新人 | String | 是 | 原需求为更新人id |
updateAt | 更新时间 | Number | 是 |
|
total | 总数 | Number | 是 |
|
Sql语句:
Select model_id, model_name, model_url, model_parent, model_type, create_name, create_time, update_name , update_at from model
1.2.4.2 用户可以通过列表对模块进行新增、删除、编辑、查看操作
需求:根据模块列表对模块进行增删改查
方案:每一行数据都有一个增删改查的按钮, 分别对应后端一个接口的不同请求方式(/a/u/model增POST 删DELETE 改PUT查GET ), 调用时需要传模块id到后端。
需求:用户可以新增模块
方案:前端传入新增模块相关参数, 以POST访问/a/u/model接口, 新增数据。
请求参数:
字段 | 说明 | 类型 | 是否必须 | 备注 |
modelMenuId | 模块权限id | String | 是 | 英文大写 |
modelName | 模块名 | String | 是 |
|
modelUrl | 模块URL | String | 否 |
|
modelParent | 父模块ID | String | 否 |
|
modelType | 模块类型 | String | 是 |
|
返回参数:Code、Message
Code | Message |
1000 | 未知错误 |
1001 | 传入数据有空值 |
0 | success |
Sql:
1)在模块表新增模块
insert into model (model_menu_id, model_id, model_name, model_url, model_parent, model_type, create_name, create_time, update_name) values (?, ?, ?, ?, ?, ?, ?, ?, ?)
2)在权限表自动生成相关权限见权限方案
需求:用户可以删除模块
方案:前端以DELETE调用/a/u/model接口, 传入要删除模块的id , 删除数据
请求参数:
字段 | 说明 | 类型 | 是否必须 | 备注 |
modelId | 模块Id | Number | 是 |
|
返回参数:Code、Message、Data
Code | Message |
1000 | 未知错误 |
1001 | 传入数据有空值 |
0 | success |
Sql:
delete from model where model_id =?
需求:用户可以查找获取模块详情
方案:前端以GET调用/a/u/model接口, 传入要查找模块的id , 查找数据
请求参数:
字段 | 说明 | 类型 | 是否必须 | 备注 |
modelId | 模块Id | Number | 是 |
|
返回参数:Code、Message、Data
Code | Message |
1000 | 未知错误 |
1001 | 传入数据有空值 |
2000 | 数据不存在 |
0 | success |
Data:
字段 | 说明 | 类型 | 是否必须 | 备注 |
modelMenuId | 模块权限id | Number | 是 | 英文大写 |
modelName | 模块名 | String | 是 |
|
modelUrl | 模块URL | String | 否 |
|
modelParent | 父模块ID | String | 否 |
|
modelType | 模块类型 | String | 是 |
|
Sql:
Select * from model where model_id = ?
需求:用户可以修改模块
方案:前端以PUT调用/a/u/model接口, 传入要修改模块的id , 修改数据
请求参数:
字段 | 说明 | 类型 | 是否必须 | 备注 |
modelId | 模块id | Number | 是 |
|
modelMenuId | 模块权限id | String | 是 | 英文大写 |
modelName | 模块名 | String | 是 |
|
modelUrl | 模块URL | String | 否 |
|
modelParent | 父模块ID | String | 否 |
|
modelType | 模块类型 | String | 是 |
|
返回参数:Code、Message
Code | Message |
1000 | 未知错误 |
1001 | 传入数据有空值 |
0 | success |
Sql:
update model set model_menu_id=?, model_name =?, model_url = ?, model_parent = ?,
model_type = ?, create_name = ?, create_time = ?, update_name = ?, update_at = ?where model_id = ?
1.2.5 密码修改
1.2.5.1 用户可以修改当前登录账户的密码
需求:用户可以修改密码
方案:用户打开密码修改页面, 输入当前用户名和旧密码、新密码, 后台对旧密码进行验证, 验证通过后重新生成盐值对新密码进行加密, 并将新的盐值和密码存储到数据库。
请求参数:
字段 | 说明 | 类型 | 是否必须 | 备注 |
userId | 用户id | Number | 是 |
|
userPassword | 新密码 | String | 是 |
|
oldPassword | 旧密码 | String | 是 |
|
返回参数:Code、Message
Code | Message |
1000 | 未知错误 |
1001 | 传入数据有空值 |
0 | success |
2004 | 密码错误 |
Sql:update user set user_password =?, user_salt=? where user_id = ?
1.2.6 账号管理
1.2.6.1 用户可以在账户列表中看到所有账户的基本信息展示在列表中
1.2.6.2 用户可以通过填写查询条件搜索出相关账户在列表中展示
需求(以上两条合并):用户可以根据条件获取用户列表
方案:接收前端的查询条件, 调用接口/a/u/user/list获取用户列表信息, 根据前端传过来的size返回相应数量的信息。, 无查询参数时返回所有用户。
请求参数:
字段 | 说明 | 类型 | 是否必须 | 备注 |
userName | 用户名 | String | 否 |
|
userRole | 角色 | String | 否 |
|
currentPage | 当前页码 | Number | 是 | 默认1 |
size | 每页行数 | Number | 是 | 默认10 |
返回参数:Code、Message、Data
Code | Message |
1000 | 未知错误 |
2000 | 数据不存在 |
0 | success |
Data:
字段 | 说明 | 类型 | 是否必须 | 备注 |
createAt | 创建时间 | Number | 是 |
|
createName | 创建人 | String | 是 |
|
updateAt | 修改时间 | Number | 是 |
|
updateName | 修改人 | String | 是 |
|
userId | 用户id | Number | 是 |
|
userName | 登录名 | String | 是 |
|
roleId | 角色id | String | 是 |
|
total | 总数 | Number | 是 |
|
Sql语句:(因为要使用动态查询, 所以使用了动态SQL, 这里就不再写出来了)
select a.user_id, a.user_name, a.create_name, a.create_time, a.update_name, a.update_at, b.role_id from user_role as b inner join user as a on b.user_id =a.user_id where a.user_id = ?
1.2.6.3 用户可以通过列表对账户进行新增、删除、编辑、查看操作
需求:根据用户列表对用户进行增删改查
方案:每一行数据都有一个增删改查的按钮, 分别对应后端一个接口的不同请求方式(/a/u/user增POST 删DELETE 改PUT查GET ), 调用时需要传用户id到后端。
需求:用户可以新增用户
方案:前端传入新增用户相关参数, 以POST访问/a/u/user接口, 新增数据。后端生成盐值, 对密码进行MD5加盐加密, 并将盐值也存入数据库。
请求参数:
字段 | 说明 | 类型 | 是否必须 | 备注 |
userName | 登录名 | Number | 是 |
|
roleId | 角色id | Number | 是 |
|
userPassword | 密码 | String | 是 |
|
userPhone | 电话号码 | String | 是 |
|
返回参数:Code、Message
Code | Message |
1000 | 未知错误 |
1001 | 传入数据有空值 |
0 | success |
Sql:(create_name, create_time, update_name, update_at由后端获取)
1)在user表中存入用户信息
insert into user (user_name, user_salt, user_phone, user_password, create_name, create_time, update_name, update_at) values (?, ?, ?, ?, ?, ?, ?, ?)
2)在user_role中新增用户角色关系
insert into user_role (user_id, role_id, create_name, create_time, update_name, update_at) values(?, ?, ?, ?, ?, ?)
需求:用户可以删除用户
方案:前端以DELETE调用/a/u/user接口, 传入要删除用户的id , 删除数据
请求参数:
字段 | 说明 | 类型 | 是否必须 | 备注 |
userId | 用户Id | Number | 是 |
|
返回参数:Code、Message、Data
Code | Message |
1000 | 未知错误 |
1001 | 传入数据有空值 |
0 | success |
Sql:
1)在user表中删除用户信息
delete from user where user_id =?
2)在user_role中删除用户角色关系
delete from user_role where user_id=?
需求:用户可以查找用户
方案:前端以GET调用/a/u/user接口, 传入要查找用户的id , 查找数据
请求参数:
字段 | 说明 | 类型 | 是否必须 | 备注 |
userId | 用户Id | Number | 是 |
|
返回参数:Code、Message、Data
Code | Message |
1000 | 未知错误 |
1001 | 传入数据有空值 |
2000 | 数据不存在 |
0 | success |
Data:
字段 | 说明 | 类型 | 是否必须 | 备注 |
userName | 用户名 | Number | 是 |
|
roleId | 角色id | Number | 是 |
|
userStatus | 用户状态 | String | 是 | 这是个啥? |
Sql:
select a.user_name, b.role_id from user_role as b inner join user as a on b.user_id =a.user_id where a.user_id = ?
需求:用户可以修改用户详情
方案:前端以PUT调用/a/u/user接口, 传入要修改用户的id , 修改数据
请求参数:
字段 | 说明 | 类型 | 是否必须 | 备注 |
userId | 用户Id | Number | 是 |
|
userName | 用户名 | Number | 是 |
|
roleId | 角色id | Number | 是 |
|
userStatus | 用户状态 | String | 是 | 这是个啥? |
返回参数:Code、Message
Code | Message |
1000 | 未知错误 |
1001 | 传入数据有空值 |
0 | success |
Sql:
1)修改user表
update user set user_name=?, user_status= ? update_name = ?, update_at = ?where user_id = ?
2)修改user_role表
update user set role_id=? , update_name = ?, update_at = ?, where user_id = ?
1.3 后台-信息管理
1.3.1 职位列表
1.3.1.1 用户可以在职位列表中看到所有职位的基本信息展示在列表中
1.3.1.2 用户可以通过填写查询条件搜索出相关职位在列表中展示
需求:用户可以根据条件获取职位列表
方案:接收前端的查询条件, 调用接口/a/u/job/list获取职位列表信息, 根据前端传过来的size返回相应数量的信息。
用户可以获取职位列表
方案:调用接口/a/u/job/list获取职位列表信息, 根据前端传过来的size返回相应数量的信息以实现分页。
请求参数:
字段 | 说明 | 类型 | 是否必须 | 备注 |
companyName | 公司名 | String | 否 |
|
jobName | 职位名称 | String | 否 |
|
jobExperience | 工作经验 | Number | 否 | 应届、1-2年、3-5年、6-9年、10年及以上 |
timeFirst | 发布时间 | Number | 否 | 起始时间 |
timeLast | 发布时间 | Number | 否 | 截止时间(默认当前) |
jobEducation | 学历要求 | Number | 否 | 大专、本科、硕士、博士及以上 |
jobType | 职位类别 | Number | 否 | 产品、UI、QA、Android、IOS、WEB、 OP、Java、NLP、DM、DL |
jobSalary | 薪资 | Number | 否 | 8K以下、8-15k、16-25k、26k以上 |
jobStatus | 状态 | Number | 否 | 上架、下架 |
currentPage | 当前页码 | Number | 否 | 默认1 |
size | 每页行数 | Number | 否 | 默认10 |
返回参数:Code、Message、Data
Code | Message |
0 | success |
1000 | 未知错误 |
2000 | 数据不存在 |
Data:
字段 | 说明 | 类型 | 是否必须 | 备注 |
companyName | 公司名称 | String | 是 |
|
jobId | 职位id | Number | 是 |
|
jobName | 职位名称 | String | 是 |
|
jobType | 职位类别 | Number | 是 |
|
jobSalary | 薪资 | Number | 是 |
|
jobEducation | 学历要求 | Number | 是 |
|
jobExperience | 工作经验 | Number | 是 |
|
updateAt | 发布时间 | Number | 是 |
|
jobStatus | 状态 | Number | 是 |
|
total | 总数 | Number | 是 |
|
Sql语句:
select job_one.job_id, job_company, job_name, job_type, job_salary, job_education, job_status, job_experience, update_at from job_two inner join job_one on job_one_id =job_one.job_id where job_company like %?% and job_name like %?% and job_type= ? and job_salary= ? and job_education= ? and job_status= ? and job_experience= ? and update_at > ?and update_at < ?
明天计划:
准备完善方案设计
遇到的问题:
暂无
收获:
以上
评论