文章目录
广告模块
1、广告模块功能分析
在任务二中,首先先来完成拉勾教育后台管理系统的 广告管理模块, 广告模块包含了广告位列表查询、添加&修改广告位、回显广告位名称、广告分页查询、图片上传接口、新建&修改广告、显广告信息、广告状态上下线等接口的编写
- 实现以下功能:
- 广告位列表查询
- 添加&修改广告位
- 回显广告位名称
- 广告分页查询
- 图片上传接口
- 新建&修改广告接口
- 回显广告信息
- 广告状态上下线
2、广告管理模块表设计
3、广告管理模块接口实现
3.1、广告位列表查询
接口地址: http://localhost:8080/ssm-web/PromotionSpace/findAllPromotionSpace
请求方式: GET
接口描述: 获取广告位列表数据
请求示例:
http://localhost:8080/ssm-web/PromotionSpace/findAllPromotionSpace
响应参数:
参数名称 | 参数说明 | 类型 | schema |
---|---|---|---|
success | boolean | ||
state | integer(int32) | integer(int32) | |
message | string | ||
content | object |
响应示例:
{
"success": true,
"state": 200,
"message": "响应成功",
"content": [{
"id": 1,
"name": "首页顶部推荐位",
"spaceKey": "666",
"createTime": 1594703011000,
"updateTime": 1594962801000,
"isDel": 0
},
{
"id": 2,
"name": "首页侧边广告位",
"spaceKey": "888",
"createTime": 1594703011000,
"updateTime": 1594957982000,
"isDel": 0
}......
}
3.1.1、实体类
@AllArgsConstructor
@NoArgsConstructor
@Data
public class PromotionSpace {
private Integer id;
private String name;
private String spaceKey;
private Date createTime;
private Date updateTime;
private Integer isDel;
}
3.1.2、dao层
public interface PromotionSpaceMapper {
public List<PromotionSpace> findAllPromotionSpace();
}
<select id="findAllPromotionSpace" resultType="PromotionSpace">
select * from promotion_space
</select>
3.1.3、service层
@Service
@Transactional
public class PromotionSpaceServiceImpl implements PromotionSpaceService {
@Autowired
private PromotionSpaceMapper promotionSpaceMapper;
@Override
public List<PromotionSpace> findAllPromotionSpace() {
return promotionSpaceMapper.findAllPromotionSpace();
}
}
3.1.4、web层
@RestController
@RequestMapping("/PromotionSpace")
public class PromotionSpaceController {
@Autowired
private PromotionSpaceService promotionSpaceService;
/*查询所有广告位成功*/
@RequestMapping("/findAllPromotionSpace")
public ResponseResult findAllPromotionSpace(){
List<PromotionSpace> list = promotionSpaceService.findAllPromotionSpace();
ResponseResult res = new ResponseResult(true, 200, "查询所有广告位成功", list);
return res;
}
}
3.1.5、postman测试
3.2、添加&修改广告位
接口地址: http://localhost:8080/ssm-web/PromotionSpace/saveOrUpdatePromotionSpace
请求方式: POST
接口描述: 添加&修改广告位
请求参数:
参数名称 | 参数说明 | in | 是否必须 | 数据类型 | 备注 |
---|---|---|---|---|---|
id | 广告位ID | 否 | 修改必须携带ID | ||
name | 广告位名称 | 是 |
// 新增
{
"name": "页面头部广告位"
}
// 更新
{
"id":173,
"name": "页面头部广告位"
}
响应参数:
参数名称 | 参数说明 | 类型 | schema |
---|---|---|---|
success | boolean | ||
state | integer(int32) | integer(int32) | |
message | string | ||
content | object |
响应示例:
{
"success": true,
"state": 200,
"message": "响应成功",
"content": null
}
3.2.1、dao层
/*添加广告位*/
public void savePromotionSpace(PromotionSpace promotionSpace);
/*修改广告位*/
public void updatePromotionSpace(PromotionSpace promotionSpace);
<insert id="savePromotionSpace" parameterType="PromotionSpace">
insert into promotion_space values(null,#{name},#{spaceKey},#{createTime},#{updateTime},#{isDel})
</insert>
<update id="updatePromotionSpace" parameterType="PromotionSpace">
update promotion_space set name=#{name}, updateTime=#{updateTime} where id=#{id}
</update>
3.2.2、service层
@Override
public void savePromotionSpace(PromotionSpace promotionSpace) {
// 补全信息
UUID uuid = UUID.randomUUID();
promotionSpace.setSpaceKey(uuid.toString());
Date date = new Date();
promotionSpace.setUpdateTime(date);
promotionSpace.setCreateTime(date);
promotionSpaceMapper.savePromotionSpace(promotionSpace);
}
@Override
public void updatePromotionSpace(PromotionSpace promotionSpace) {
// 补全信息
Date date = new Date();
promotionSpace.setUpdateTime(date);
promotionSpaceMapper.updatePromotionSpace(promotionSpace);
}
3.2.3、web层
@RequestMapping("/saveOrUpdatePromotionSpace")
public ResponseResult saveOrUpdatePromotionSpace(@RequestBody PromotionSpace promotionSpace){
if(promotionSpace.getId() == null){
promotionSpaceService.savePromotionSpace(promotionSpace);
return new ResponseResult(true, 200, "新增广告位成功", null);
}else{
promotionSpaceService.updatePromotionSpace(promotionSpace);
return new ResponseResult(true, 200, "修改广告位成功", null);
}
}
3.2.4、postman测试
3.3、回显广告位名称
接口地址: http://localhost:8080/ssm-web/PromotionSpace/findPromotionSpaceById
请求方式: GET
接口描述: 修改操作,回显广告位名称
请求参数:
参数名称 | 参数说明 | in | 是否必须 | 数据类型 | 备注 |
---|---|---|---|---|---|
id | 广告位ID | 否 | 修改必须携带ID |
响应结果:
{
"success": true,
"state": 200,
"message": "响应成功",
"content": {
"id": 1,
"name": "首页顶部推荐位",
"spaceKey": null,
"createTime": null,
"updateTime": null,
"isDel": null
}
}
3.3.1、dao层
<select id="findPromotionSpaceById" resultType="PromotionSpace">
select id, name from promotion_space where id = #{id}
</select>
3.3.2、service层
/*回显广告位名称*/
@Override
public PromotionSpace findPromotionSpaceById(Integer id) {
return promotionSpaceMapper.findPromotionSpaceById(id);
}
3.3.3、web层
@RequestMapping("/findPromotionSpaceById")
public ResponseResult findPromotionSpaceById(@RequestParam Integer id){
PromotionSpace promotionSpace = promotionSpaceService.findPromotionSpaceById(id);
ResponseResult res = new ResponseResult(true, 200, "回显广告信息成功", promotionSpace);
return res;
}
3.3.4、postman测试
3.4、广告分页查询
接口地址: <http://localhost:8080/ssm-web/PromotionAd/findAllPromotionAdByPage
请求方式: GET
接口描述: 分页获取广告列表数据
请求参数:
参数名称 | 参数说明 | in | 是否必须 | 数据类型 | schema |
---|---|---|---|---|---|
currentPage | 当前页 | false | integer(int32) | ||
pageSize | 每页显示条数 | false | integer(int32) |
请求示例:
http://localhost:8080/ssm-web/PromotionAd/findAllPromotionAdByPage?currentPage=1&pageSize=5
**响应结果示例: **
{
"success": true,
"state": 200,
"message": "响应成功",
"content": {
"pageNum": 1,
"pageSize": 5,
"size": 5,
"orderBy": null,
"startRow": 1,
"endRow": 5,
"total": 17,
"pages": 4,
"list": [{
"id": 1074,
"name": "java高级训练营",
"spaceId": 1,
"keyword": null,
"htmlContent": null,
"text": "Java高级训练营 Java高级训练营 Java高级训练营",
"link": "https://localhost:8080/upload",
"startTime": 1597634487000,
"endTime": 1597741425000,
"status": 0,
"createTime": 1594708114000,
"updateTime": 1597636191000,
"priority": 0,
"img": "http://localhost:8080/upload/1597634499619.jpg"
}......
}
3.4.1、实体类
@AllArgsConstructor
@NoArgsConstructor
@Data
public class PromotionAd {
// 标识
private Integer id;
// 广告名
private String name;
// 广告位id
private Integer spaceId;
// 精确搜索关键词
private String keyword;
// 静态广告的内容
private String htmlContent;
// 文字一
private String text;
// 链接一
private String link;
// 开始时间
private Date startTime;
// 结束时间
private Date endTime;
private Integer status;
private Date createTime;
private Date updateTime;
// 优先级
private Integer priority;
private String img;
// 声明一方关系PromotionSpace
private PromotionSpace promotionSpace;
}
@AllArgsConstructor
@NoArgsConstructor
@Data
public class PromotionAdVo {
private Integer currentPage = 1;
private Integer pageSize = 10;
}
3.4.2、dao层
applicationContext-dao.xml
<!--sqlSessionFactory-->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!--配置数据源-->
<property name="dataSource" ref="dataSource"/>
<!--domain别名-->
<property name="typeAliasesPackage" value="com.lzy.domain"/>
<!--开启自动驼峰命名规则-->
<property name="configuration">
<bean class="org.apache.ibatis.session.Configuration">
<property name="mapUnderscoreToCamelCase" value="true"/>
<property name="logImpl" value="org.apache.ibatis.logging.stdout.StdOutImpl"/>
</bean>
</property>
<!--配置分页插件-->
<property name="plugins">
<array>
<bean class="com.github.pagehelper.PageHelper">
<property name="properties">
<value>helperDialect=mysql</value>
</property>
</bean>
</array>
</property>
</bean>
<!--分页查询广告-->
<select id="findAllPromotionAdByPage" resultMap="id_space">
select * from promotion_ad
</select>
<resultMap id="id_space" type="PromotionAd">
<id property="id" column="id"/>
<result property="name" column="name"/>
<result property="spaceId" column="spaceId"/>
<result property="keyword" column="keyword"/>
<result property="htmlContent" column="htmlContent"/>
<result property="text" column="text"/>
<result property="link" column="link"/>
<result property="startTime" column="startTime"/>
<result property="endTime" column="endTime"/>
<result property="createTime" column="createTime"/>
<result property="updateTime" column="updateTime"/>
<result property="status" column="status"/>
<result property="priority" column="priority"/>
<result property="img" column="img"/>
<association property="promotionSpace" select="com.lzy.dao.PromotionSpaceMapper.findPromotionSpaceById" column="spaceId">
</association>
</resultMap>
3.4.3、service层
@Service
@Transactional
public class PromotionAdServiceImpl implements PromotionAdService {
@Autowired
private PromotionAdMapper promotionAdMapper;
/*获取所有广告列表*/
@Override
public PageInfo findAllAdByPage(PromotionAdVo promotionAdVo) {
/*设置分页查询*/
PageHelper.startPage(promotionAdVo.getCurrentPage(), promotionAdVo.getPageSize());
List<PromotionAd> allPromotionAdByPage = promotionAdMapper.findAllPromotionAdByPage();
PageInfo<PromotionAd> promotionAdPageInfo = new PageInfo<>(allPromotionAdByPage);
return promotionAdPageInfo;
}
}
3.4.4、web层
@RestController
@RequestMapping("/PromotionAd")
public class PromotionAdController {
@Autowired
private PromotionAdService promotionAdService;
/*分页查询广告位*/
@RequestMapping("/findAllPromotionAdByPage")
public ResponseResult findAllPromotionAdByPage(PromotionAdVo promotionAdVo){
PageInfo allAdByPage = promotionAdService.findAllAdByPage(promotionAdVo);
return new ResponseResult(true, 200, "分页查询成功", allAdByPage);
}
}
3.4.5、postman层
3.5、图片上传接口
接口地址: http://localhost:8080/ssm-web/PromotionAd/PromotionAdUpload
请求方式: POST
接口描述: 广告模块图片上传
请求参数:
file
响应参数:
参数名称 | 参数说明 | 类型 | schema |
---|---|---|---|
success | boolean | ||
state | integer(int32) | integer(int32) | |
message | string | ||
content | object |
响应结果示例:
{
"success": true,
"state": 200,
"message": "响应成功",
"content": {
"fileName": "1597730889723.jpg",
"filePath": "http://localhost:8080/upload/1597730889723.jpg"
}
}
3.5.1、web层
/*图片上传*/
@RequestMapping("/PromotionAdUpload")
public ResponseResult PromotionAdUpload (MultipartFile file, HttpServletRequest request){
try {
/*判断文件是否为空*/
if(file.isEmpty()){
throw new RuntimeException();
}
/*获得存储位置*/
String realPath = request.getServletContext().getRealPath("/");
String webappsPath = realPath.substring(0, realPath.indexOf("ssm"));
/*获取文件名*/
String fileName = file.getOriginalFilename();
String newFileName = System.currentTimeMillis() + fileName.substring(fileName.lastIndexOf("."));
/*存储位置*/
String uploadPath = webappsPath + "upload\\";
File filePath = new File(uploadPath, newFileName);
/*判断目录是否存在*/
if(!filePath.getParentFile().exists()){
filePath.getParentFile().mkdirs();
System.out.println("创建目录" + filePath);
}
/*存储文件*/
file.transferTo(filePath);
/*将文件名和路径返回*/
Map<Object, Object> map = new HashMap<>();
map.put("fileName", newFileName);
map.put("filePath", "http://localhost:8080/upload/" + newFileName);
ResponseResult res = new ResponseResult(true, 200, "文件上传成功", map);
return res;
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
写了第二遍了,加深点印象
3.5.2、postman测试
3.6、新建&修改广告
接口地址: http://localhost:8080/ssm-web/PromotionAd/saveOrUpdatePromotionAd
请求方式: POST
接口描述: 新建&修改广告接口
请求参数:
字段 | 说明 | 类型 | 是否必需 | 备注 |
---|---|---|---|---|
id | 广告id | int | 否 | 添加操作不用携带, 修改操作必须携带ID |
name | 广告名称 | String | 是 | |
spaceId | 广告位置 | String | 否 | |
startTime | 开始时间 | Date | 是 | |
endTime | 到期时间 | Date | 是 | |
status | 上线/下线 | int | 否 | |
img | 广告图片 | String | 否 | |
link | 广告链接 | String | 是 | |
text | 广告备注 | String | 否 |
请求示例:
//新增
{
"name": "GO高训练营",
"img": "http://localhost:8080/upload/1597731135966.jpg",
"link": "www.xxxx.com",
"sort": 0,
"spaceId": 1,
"startTime": "2020-08-18T06:12:08.000Z",
"endTime": "2020-08-19T16:00:00.000Z",
"status": 1,
"text": "学go"
}
//修改
{
"id": 1094,
"name": "GO高训练营",
"img": "http://localhost:8080/upload/1597731135966.jpg",
"link": "www.xxxx.com",
"sort": 0,
"spaceId": 1,
"startTime": "2020-08-18T06:12:08.000Z",
"endTime": "2020-08-19T16:00:00.000Z",
"status": 1,
"text": "学go"
}
3.6.1、dao层
<!--保存广告信息-->
<insert id="savePromotionAd" parameterType="promotionAd">
INSERT INTO promotion_ad VALUES(NULL,#{name},#{spaceId},#{keyword},#{htmlContent},#{text},#{link},#{startTime},#{endTime},#{createTime},#{updateTime},#{status},#{priority},#{img});
</insert>
<!--修改广告信息-->
<update id="updatePromotionAd" parameterType="promotionAd">
update promotion_ad
<trim prefix="set" suffixOverrides=",">
<if test="name != null and name != ''">
name = #{name},
</if>
<if test="spaceId != null and spaceId != ''">
spaceId = #{spaceId},
</if>
<if test="link != null">
link=#{link},
</if>
<if test="status != null and status != '' or status == 0">
status=#{status},
</if>
<if test="img != null">
img=#{img},
</if>
<if test="text != null">
text=#{text},
</if>
<if test="startTime != null">
startTime=#{startTime},
</if>
<if test="endTime != null">
endTime=#{endTime},
</if>
<if test="updateTime != null">
updateTime=#{updateTime},
</if>
</trim>
<where>
<if test="id != null and id != ''">
id = #{id}
</if>
</where>
</update>
3.6.2、service层
@Override
public void savePromotionAd(PromotionAd promotionAd) {
// 补全信息
Date date = new Date();
promotionAd.setCreateTime(date);
promotionAd.setUpdateTime(date);
promotionAdMapper.savePromotionAd(promotionAd);
}
@Override
public void updatePromotionAd(PromotionAd promotionAd) {
// 补全信息
Date date = new Date();
promotionAd.setUpdateTime(date);
promotionAdMapper.updatePromotionAd(promotionAd);
}
3.6.3、web层
@RequestMapping("/saveOrUpdatePromotionAd")
public ResponseResult saveOrUpdatePromotionAd(@RequestBody PromotionAd promotionAd){
if(promotionAd.getId() == null){
promotionAdService.savePromotionAd(promotionAd);
return new ResponseResult(true, 200, "保存广告信息成功", null);
}else{
promotionAdService.updatePromotionAd(promotionAd);
return new ResponseResult(true, 200, "修改广告信息成功", null);
}
}
3.6.4、postman测试
3.7、回显广告信息
接口地址: http://localhost:8080/ssm-web/PromotionAd/findPromotionAdById
请求方式: GET
接口描述: 接收广告ID,返回广告详细信息
请求参数:
参数名称 | 参数说明 | in | 是否必须 | 数据类型 | schema |
---|---|---|---|---|---|
id | 广告id | true | int |
请求示例
http://10.1.194.181:8080/ssm-web/PromotionAd/findPromotionAdById?id=1091
响应结果示例
{
"success": true,
"state": 200,
"message": "响应成功",
"content": {
"id": 1091,
"name": "Python高级训练营",
"spaceId": 1,
"keyword": null,
"htmlContent": null,
"text": "大家一起学Python",
"link": "www.xxxx.com",
"startTime": 1597731128000,
"endTime": 1597852800000,
"status": 1,
"createTime": null,
"updateTime": null,
"priority": null,
"img": "http://localhost:8080/upload/1597731135966.jpg"
}
}
3.7.1、dao层
<select id="findPromotionAdById" resultType="promotionAd">
SELECT
id,
NAME,
spaceId,
startTime,
endTime,
STATUS,
img,
link,
TEXT
FROM promotion_ad WHERE id = #{id}
</select>
3.7.2、service层
/*回显广告信息*/
@Override
public PromotionAd findPromotionAdById(Integer id) {
return promotionAdMapper.findPromotionAdById(id);
}
3.7.3、web层
/*回显广告信息*/
@RequestMapping("/findPromotionAdById")
public ResponseResult findPromotionAdById(@RequestParam Integer id){
PromotionAd promotionAdById = promotionAdService.findPromotionAdById(id);
return new ResponseResult(true, 200, "回显广告信息成功", promotionAdById);
}
3.7.4、postman测试
3.8、广告状态上下线
接口地址: http://localhost:8080/ssm-web/PromotionAd/updatePromotionAdStatus
请求方式: GET
接口描述: 修改广告上下线状态
请求参数:
参数名称 | 参数说明 | in | 是否必须 | 数据类型 | schema |
---|---|---|---|---|---|
id | 广告id | true | int | ||
status | 课程状态 | true | int |
请求参数示例
http://localhost:8080/ssm-web/PromotionAd/updatePromotionAdStatus?id=1074&status=1
响应示例:
{
"success": true,
"state": 200,
"message": "响应成功",
"content": {
"status": 1
}
}
3.8.1、dao层
<update id="updatePromotionAdStatus" parameterType="promotionAd">
update promotion_ad set status = #{status}, updateTime = #{updateTime} where id = #{id}
</update>
3.8.2、service层
/*广告状态上下线*/
@Override
public void updatePromotionAdStatus(Integer id, Integer status) {
// 补全信息
PromotionAd promotionAd = new PromotionAd();
promotionAd.setId(id);
promotionAd.setStatus(status);
promotionAd.setUpdateTime(new Date());
promotionAdMapper.updatePromotionAdStatus(promotionAd);
}
3.8.3、web层
/*广告上下线状态*/
@RequestMapping("/updatePromotionAdStatus")
public ResponseResult updatePromotionAdStatus(@RequestParam Integer id, @RequestParam Integer status){
promotionAdService.updatePromotionAdStatus(id, status);
Map<String, Integer> map = new HashMap<>();
return new ResponseResult(true, 200, "修改广告上下线", map);
}
3.8.4、postman测试
用户模块
1、用户模块功能分析
在任务二中,再来完成拉勾教育后台管理系统的用户管理模块, 广告管理模块包含了用户分页&条件查询、用户状态设置,(登陆、权限控制)等接口的编写
- 实现以下功能:
- 登陆(权限模块)
- 权限控制(权限模块)
- 用户分页&条件查询
- 用户状态设置
- 分配角色(权限模块)
2、用户管理模块表设计
3、用户管理模块接口实现
3.1、用户分页&条件查询
接口地址: http://localhost:8080/ssm-web/user/findAllUserByPage
请求方式: POST
接口描述: 分页获取用户数据&条件查询用户数据
请求参数:
参数名称 | 参数说明 | in | 是否必须 | 数据类型 | 备注 |
---|---|---|---|---|---|
currentPage | 当前页 | false | integer(int32) | ||
pageSize | 每页显示条数 | false | integer(int32) | ||
username | 用户名 | false | String | 输入手机号即可 | |
startCreateTime | 注册起始时间 | false | Date | ||
endCreateTime | 注册结束时间 | false | Date |
请求参数示例:
{
"currentPage": "1",
"pageSize": "10",
"endCreateTime": "2020-07-13",
"startCreateTime": "2020-07-09",
"username": "15321919577"
}
3.1.1、dao层
<select id="findAllUserByPage" parameterType="userVo" resultType="user">
SELECT
id,
NAME,
portrait,
phone,
PASSWORD,
STATUS,
create_time
FROM USER
<where>
<if test="true">
and is_del != 1
</if>
<if test="username != null">
and name = #{username}
</if>
<if test="startCreateTime != null and endCreateTime != null">
and create_time BETWEEN #{startCreateTime} AND #{endCreateTime}
</if>
</where>
</select>
3.1.2、service层
@Service
@Transactional
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public PageInfo findAllUserByPage(UserVo userVo) {
PageHelper.startPage(userVo.getCurrentPage(), userVo.getPageSize());
List<User> allUserByPage = userMapper.findAllUserByPage(userVo);
PageInfo<User> pageInfo = new PageInfo<>(allUserByPage);
System.out.println("总条数:"+pageInfo.getTotal());
System.out.println("总页数:"+pageInfo.getPages());
System.out.println("当前页:"+pageInfo.getPageNum());
System.out.println("每页显示长度:"+pageInfo.getPageSize());
System.out.println("是否第一页:"+pageInfo.isIsFirstPage());
System.out.println("是否最后一页:"+pageInfo.isIsLastPage());
return pageInfo;
}
}
3.1.3、web层
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
@RequestMapping("/findAllUserByPage")
public ResponseResult findAllUserByPage(@RequestBody UserVo userVo){
PageInfo allUserByPage = userService.findAllUserByPage(userVo);
ResponseResult res = new ResponseResult(true, 200, "查询所有用户", allUserByPage);
List list = allUserByPage.getList();
System.out.println(list);
return res;
}
}
3.1.4、postman测试
3.2、用户状态设置
接口地址: http://localhost:8080/ssm-web/user/updateUserStatus
请求方式: GET
接口描述: 修改用户状态
请求参数:
参数名称 | 参数说明 | in | 是否必须 | 数据类型 | 备注 |
---|---|---|---|---|---|
id | 用户id | 是 | integer(int32) | ||
status | 用户状态 | 是 | String | 用户状态:ENABLE能登录,DISABLE不能登录 |
请求参数示例:
http://10.1.194.181:8080/ssm-web/user/updateUserStatus?id=100030011&status=ENABLE
响应参数示例:
{
"success": true,
"state": 200,
"message": "响应成功",
"content": "DISABLE"
}
3.2.1、dao层
<update id="updateUserStatus">
UPDATE USER SET STATUS = #{status} where id = #{id};
</update>
3.2.2、service层
@Override
public void updateUserStatus(Integer id, String status) {
userMapper.updateUserStatus(id, status);
}
3.2.3、web层
/*修改用户状态*/
@RequestMapping("/updateUserStatus")
public ResponseResult updateUserStatus(@RequestParam Integer id, @RequestParam String status){
if("ENABLE".equalsIgnoreCase(status)){
status = "DISABLE";
}else{
status = "ENABLE";
}
userService.updateUserStatus(id, status);
return new ResponseResult(true, 200, "修改用户状态成功", status);
}