当前位置: 首页 > news >正文

公司两学一做网站seo高手培训

公司两学一做网站,seo高手培训,北京建设职工大学网站,小程序开发公司哪家好?哪家最好?广告模块广告模块功能分析后台管理系统的广告管理模块包含了广告位列表查询、添加&修改广告位、回显广告位名称、广告分页查询、图片上传接口、新建&修改广告、回显广告信息、广告状态上下线等接口的编写课程管理实现以下功能广告位列表查询添加 & 修改广告位回显广…

fdd38c18856967857133d0107bb62612.png

广告模块

广告模块功能分析

后台管理系统的广告管理模块包含了广告位列表查询、添加&修改广告位、回显广告位名称、广告分页查询、图片上传接口、新建&修改广告、回显广告信息、广告状态上下线等接口的编写

课程管理

实现以下功能

  • 广告位列表查询
  • 添加 & 修改广告位
  • 回显广告位名称
  • 广告分页查询
  • 图片上传接口
  • 新建 & 修改广告接口
  • 回显广告信息
  • 广告状态上下线

广告模块表设计

数据库表

  • promotion_ad 广告表
  • promotion_space 广告位表

表关系介绍

ER 图

一个广告位表对多个广告表

数据实体描述

广告位表

CREATE TABLE `promotion_space` (`id` INT(11) NOT NULL AUTO_INCREMENT,`name` VARCHAR(255) DEFAULT NULL COMMENT '名称',`spaceKey` VARCHAR(255) DEFAULT NULL COMMENT '广告位key',`createTime` DATETIME DEFAULT NULL,`updateTime` DATETIME DEFAULT NULL,`isDel` INT(2) DEFAULT '0',PRIMARY KEY (`id`) USING BTREE,KEY `promotion_space_key_isDel` (`spaceKey`,`isDel`) USING BTREE
) ENGINE=INNODB AUTO_INCREMENT=174 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT;

广告表

CREATE TABLE `promotion_ad` (`id` INT(11) NOT NULL AUTO_INCREMENT,`name` VARCHAR(255) DEFAULT NULL COMMENT '广告名',`spaceId` INT(11) DEFAULT NULL COMMENT '广告位id',`keyword` VARCHAR(255) DEFAULT NULL COMMENT '精确搜索关键词',`htmlContent` TEXT COMMENT '静态广告的内容',`text` VARCHAR(255) DEFAULT NULL COMMENT '文字一',`link` VARCHAR(255) DEFAULT NULL COMMENT '链接一',`startTime` DATETIME DEFAULT NULL COMMENT '开始时间',`endTime` DATETIME DEFAULT NULL COMMENT '结束时间',`createTime` DATETIME DEFAULT NULL,`updateTime` DATETIME DEFAULT NULL,`status` INT(2) NOT NULL DEFAULT '0' COMMENT '0 下线,1 上线',`priority` INT(4) DEFAULT '0' COMMENT '优先级',`img` VARCHAR(255) DEFAULT NULL COMMENT '广告图片地址',PRIMARY KEY (`id`) USING BTREE,KEY `promotion_ad_SEG` (`spaceId`,`startTime`,`endTime`,`status`) USING BTREE
) ENGINE=INNODB AUTO_INCREMENT=1094 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT;

广告管理模块接口实现

广告位列表查询

需求分析

点击广告列表按钮进行广告列表展示

查看接口文档,进行编码

实体类 PromotionSpace

public class PromotionSpace {private Integer id;private String name;private String spaceKey;private Date createTime;private Date updateTime;private Integer isDel;// getter setter toString ...   
}

Dao 层 PromotionSpaceMapper

public interface PromotionSpaceMapper {List<PromotionSpace> findAllPromotionSpace();
}
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
​
<mapper namespace="com.renda.dao.PromotionSpaceMapper"><select id="findAllPromotionSpace" resultType="promotionSpace">select * from promotion_space</select>
</mapper>

Service 层 PromotionSpaceService

public interface PromotionSpaceService {List<PromotionSpace> findAllPromotionSpace();
}
@Service
public class PromotionSpaceServiceImpl implements PromotionSpaceService {@Autowiredprivate PromotionSpaceMapper promotionSpaceMapper;
​@Overridepublic List<PromotionSpace> findAllPromotionSpace() {return promotionSpaceMapper.findAllPromotionSpace();}
}

Web 层 PromotionSpaceController

@RestController
@RequestMapping("/PromotionSpace")
public class PromotionSpaceController {@Autowiredprivate PromotionSpaceService promotionSpaceService;
​@RequestMapping("/findAllPromotionSpace")public ResponseResult findAllPromotionSpace() {List<PromotionSpace> allPromotionSpace = promotionSpaceService.findAllPromotionSpace();return new ResponseResult(true, 200, "查询所有广告位成功", allPromotionSpace);}
}

Postman 测试接口

添加 & 修改广告位

需求分析

添加:点击提交按钮,将数据提交到数据库

修改:页面回显基础上,点击提交按钮真正进行数据修改

查看接口文档,进行编码

Dao 层 PromotionSpaceMapper

/*** 添加广告位*/
void savePromotionSpace(PromotionSpace promotionSpace);
​
/*** 更新广告位名称*/
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>

Service 层 PromotionSpaceService

void savePromotionSpace(PromotionSpace promotionSpace);
​
void updatePromotionSpace(PromotionSpace promotionSpace);
@Override
public void savePromotionSpace(PromotionSpace promotionSpace) {// 封装数据promotionSpace.setSpaceKey(UUID.randomUUID().toString());Date date = new Date();promotionSpace.setCreateTime(date);promotionSpace.setUpdateTime(date);promotionSpace.setIsDel(0);// 调用 mapper 方法promotionSpaceMapper.savePromotionSpace(promotionSpace);
}
​
@Override
public void updatePromotionSpace(PromotionSpace promotionSpace) {// 封装数据promotionSpace.setUpdateTime(new Date());// 调用 mapperpromotionSpaceMapper.updatePromotionSpace(promotionSpace);
}

Web 层 PromotionSpaceController

@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);}
}

Postman 测试接口

回显广告位名称

需求分析

点击编辑按钮,进行广告位信息回显

查看接口文档,进行编码

Dao 层 PromotionSpaceMapper

PromotionSpace findPromotionSpaceById(int id);
<select id="findPromotionSpaceById" parameterType="int" resultType="promotionSpace">select id, `name` from promotion_space where id = #{id}
</select>

Service 层 PromotionSpaceService

PromotionSpace findPromotionSpaceById(int id);
@Override
public PromotionSpace findPromotionSpaceById(int id) {return promotionSpaceMapper.findPromotionSpaceById(id);
}

Web 层 PromotionSpaceController

@RequestMapping("/findPromotionSpaceById")
public ResponseResult findPromotionSpaceById(int id) {PromotionSpace promotionSpace = promotionSpaceService.findPromotionSpaceById(id);return new ResponseResult(true, 200, "", promotionSpace);
}

Postman 测试接口

广告分页查询

需求分析

点击广告列表,对广告信息进行分页列表展示

查看接口文档,进行编码

实体类 PromotionAd

public class PromotionAd {// 标识private Integer id;// 广告名private String name;// 广告位 idprivate Integer spaceId;// 精确搜索关键词private String keyword;// 静态广告的内容private String htmlContent;// 文字一private String text;// 链接一private String link;// 开始时间private Date startTime;// 结束时间private Date endTime;private Date createTime;private Date updateTime;private Integer status;// 优先级private Integer priority;private String img;// 声明一方关系(广告位)private PromotionSpace promotionSpace;// getter setter toString ... 
}

PromotionAdVo

View Object 表现层对象,主要用于表现层来接收参数的

public class PromotionAdVO {// 当前页private Integer currentPage;// 每页显示的条数private Integer pageSize;// getter setter toString ... 
}

Dao 层 PromotionAdMapper

public interface PromotionAdMapper {List<PromotionAd> findAllPromotionAdByPage();
}
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
​
<mapper namespace="com.renda.dao.PromotionAdMapper"><!-- 多对一(一对一)嵌套查询 --><resultMap id="ad_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.renda.dao.PromotionSpaceMapper.findPromotionSpaceById"column="spaceId" javaType="promotionSpace"/></resultMap>
​<!-- 分页查询广告信息 --><select id="findAllPromotionAdByPage" resultMap="ad_space">select * from promotion_ad</select>
</mapper>

applicationContext-dao.xml

...
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="dataSource"/><property name="typeAliasesPackage" value="com.renda.domain"/><property name="plugins"><array><!-- 配置分页插件 PageHelper 的参数 --><bean class="com.github.pagehelper.PageHelper"><property name="properties"><value>helperDialect=mysql</value></property></bean></array></property><property name="configLocation" value="classpath:sqlMapConfig.xml"/>
</bean>
...

Service 层 PromotionAdService

public interface PromotionAdService {PageInfo<PromotionAd> findAllPromotionAdByPage(PromotionAdVO promotionAdVO);
}
@Service
public class PromotionAdServiceImpl implements PromotionAdService {@Autowiredprivate PromotionAdMapper promotionAdMapper;
​@Overridepublic PageInfo<PromotionAd> findAllPromotionAdByPage(PromotionAdVO promotionAdVO) {// 使用 github 的分页工具 pageHelperPageHelper.startPage(promotionAdVO.getCurrentPage(), promotionAdVO.getPageSize());List<PromotionAd> promotionAdList = promotionAdMapper.findAllPromotionAdByPage();return new PageInfo<>(promotionAdList);}
}

Web 层 PromotionAdController

@RestController
@RequestMapping("/PromotionAd")
public class PromotionAdController {@Autowiredprivate PromotionAdService promotionAdService;
​@RequestMapping("/findAllPromotionAdByPage")public ResponseResult findAllPromotionAdByPage(PromotionAdVO promotionAdVO) {PageInfo<PromotionAd> pageInfo = promotionAdService.findAllPromotionAdByPage(promotionAdVO);return new ResponseResult(true, 200, "", pageInfo);}
}

Postman测试接口

图片上传接口

需求分析

添加广告页面,点击上传按钮,需完成图片上传

查看接口文档,进行编码

Web 层 PromotionAdController

@RequestMapping("/PromotionAdUpload")
public ResponseResult fileUpload(@RequestParam("file") MultipartFile file, HttpServletRequest request) throws IOException{// 1.判断接收到的上传文件是否为空if (file.isEmpty()) {throw new RuntimeException();}
​// 2.获取项目部署路径// D:apache-tomcat-8.5.55webappsssm-webString realPath = request.getServletContext().getRealPath("/");// D:apache-tomcat-8.5.56webappsString substring = realPath.substring(0, realPath.indexOf("ssm_web"));
​// 3.生成新文件名String originalFilename = file.getOriginalFilename();String newFileName = "test";if (originalFilename != null) {newFileName = System.currentTimeMillis() + originalFilename.substring(originalFilename.lastIndexOf("."));}
​// 4.文件上传String uploadPath = substring + "upload";File filePath = new File(uploadPath, newFileName);// 如果目录不存在就创建目录if (!filePath.getParentFile().exists()) {if (filePath.getParentFile().mkdirs()) {System.out.println("目录已经被创建:" + filePath);} else {System.out.println("创建目录失败");}}// 图片进行上传file.transferTo(filePath);
​// 5. 将文件名和文件路径返回,进行响应HashMap<Object, Object> map = new HashMap<>();map.put("fileName", newFileName);map.put("filePath", "http://localhost:8080/upload/" + newFileName);
​// 返回响应参数return new ResponseResult(true, 200, "图片上传成功", map);
}

Postman 测试接口

新建 & 修改广告

需求分析

新建:点击提交按钮,将页面内容保存到数据库

修改:点击编辑按钮,由前端实现数据回显,在回显页面进行数据修改,将修改后值更新到数据库中

查看接口文档,进行编码

Dao 层 PromotionAdMapper

void savePromotionAd(PromotionAd promotionAd);
​
void updatePromotionAd(PromotionAd promotionAd);
<!-- 新建广告 -->
<insert id="savePromotionAd" parameterType="PromotionAd">INSERT INTO promotion_ad (`name`,`spaceId`,`startTime`,`endTime`,`status`,`img`,`link`,`text`,`createTime`,`updateTime`)VALUES (#{name}, #{spaceId}, #{startTime}, #{endTime}, #{status}, #{img}, #{link}, #{text}, #{createTime}, #{updateTime});
</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>

Service 层 PromotionAdService

void savePromotionAd(PromotionAd promotionAd);
​
void updatePromotionAd(PromotionAd promotionAd);
@Override
public void savePromotionAd(PromotionAd promotionAd) {// 封装数据Date date = new Date();promotionAd.setCreateTime(date);promotionAd.setUpdateTime(date);// 调用 mapper 方法promotionAdMapper.savePromotionAd(promotionAd);
}
​
@Override
public void updatePromotionAd(PromotionAd promotionAd) {// 封装数据promotionAd.setUpdateTime(new Date());// 调用 mapper 方法promotionAdMapper.updatePromotionAd(promotionAd);
}

Web 层 PromotionAdController

@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);}
}

Postman测试接口

回显广告信息

需求分析

点击编辑按钮,进行广告位名称回显

查看接口文档,进行编码

Dao 层 PromotionAdMapper

PromotionAd findPromotionAdById(int id);
<select id="findPromotionAdById" parameterType="int" resultType="PromotionAd">SELECT`id`,`name`,`spaceId`,`startTime`,`endTime`,`status`,`img`,`link`,`text`FROMpromotion_adWHERE id = #{id};
</select>

Service 层 PromotionAdService

PromotionAd findPromotionAdById(int id);
@Override
public PromotionAd findPromotionAdById(int id) {return promotionAdMapper.findPromotionAdById(id);
}

Web 层 PromotionAdController

@RequestMapping("/findPromotionAdById")
public ResponseResult findPromotionAdById(int id) {PromotionAd promotionAd = promotionAdService.findPromotionAdById(id);return new ResponseResult(true, 200, "根据ID查询广告信息成功", promotionAd);
}

Postman测试接口

广告状态上下线

需求分析

点击按钮,实现状态的动态上下线

查看接口文档,进行编码

Dao 层 PromotionAdMapper

void updatePromotionAdStatus(PromotionAd promotionAd);
<update id="updatePromotionAdStatus" parameterType="PromotionAd">UPDATE promotion_ad SET `status` = #{status}, `updateTime` = #{updateTime} WHERE `id` = #{id}
</update>

Service 层 PromotionAdService

void updatePromotionAdStatus(int id, int status);
@Override
public void updatePromotionAdStatus(int id, int status) {// 封装数据PromotionAd promotionAd = new PromotionAd();promotionAd.setId(id);promotionAd.setStatus(status);promotionAd.setUpdateTime(new Date());// 调用 mapperpromotionAdMapper.updatePromotionAdStatus(promotionAd);
}

Web 层 PromotionAdController

@RequestMapping("/updatePromotionAdStatus")
public ResponseResult updatePromotionAdStatus(Integer id, Integer status) {promotionAdService.updatePromotionAdStatus(id, status);return new ResponseResult(true, 200, "广告动态上下线成功", null);
}

Postman测试接口

用户模块

用户模块功能分析

后台管理系统的用户模块包含了用户分页&条件查询、用户状态设置(登陆、权限控制)等接口的编写

用户模块

实现以下功能

  • 登陆(权限模块)
  • 权限控制(权限模块)
  • 用户分页 & 条件查询
  • 用户状态设置
  • 分配角色(权限模块)

用户模块表设计

数据库表

  • user 用户表
  • user_weixin 用户绑定微信表
  • user_phone_verification_code 用户发送验证码表

表关系介绍

ER 图

一个用户表对一个用户绑定微信表和用户发送验证码表

数据实体描述

用户表

CREATE TABLE `user` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '用户id',`name` VARCHAR(255) NOT NULL COMMENT '用户昵称',`portrait` VARCHAR(255) DEFAULT NULL COMMENT '用户头像地址',`phone` VARCHAR(255) NOT NULL COMMENT '注册手机',`password` VARCHAR(255) DEFAULT NULL COMMENT '用户密码(可以为空,支持只用验证码注册、登录)',`reg_ip` VARCHAR(255) DEFAULT NULL COMMENT '注册ip',`account_non_expired` BIT(1) DEFAULT b'1' COMMENT '是否有效用户',`credentials_non_expired` BIT(1) DEFAULT b'1' COMMENT '账号是否未过期',`account_non_locked` BIT(1) DEFAULT b'1' COMMENT '是否未锁定',`status` VARCHAR(20) NOT NULL DEFAULT 'ENABLE' COMMENT '用户状态:ENABLE能登录,DISABLE不能登录',`is_del` BIT(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',`create_time` DATETIME NOT NULL COMMENT '注册时间',`update_time` DATETIME NOT NULL COMMENT '记录更新时间',PRIMARY KEY (`id`) USING BTREE,UNIQUE KEY `idx_phone_is_del` (`phone`,`is_del`) USING BTREE
) ENGINE=INNODB AUTO_INCREMENT=100030023 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT;

用户绑定微信表

CREATE TABLE `user_weixin` (`id` INT(11) NOT NULL AUTO_INCREMENT,`user_id` INT(11) DEFAULT NULL COMMENT '用户id',`union_id` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '认证id,微信对应的时unionId',`open_id` VARCHAR(255) DEFAULT NULL COMMENT 'openId',`nick_name` VARCHAR(255) NOT NULL COMMENT '昵称',`portrait` VARCHAR(512) DEFAULT NULL COMMENT '头像',`city` VARCHAR(255) DEFAULT NULL COMMENT '城市',`sex` INT(11) DEFAULT NULL COMMENT '性别, 1-男,2-女',`create_time` DATETIME NOT NULL COMMENT '创建时间',`update_time` DATETIME NOT NULL COMMENT '更新时间',`is_del` BIT(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',PRIMARY KEY (`id`) USING BTREE,UNIQUE KEY `oauthId_and_oauthType_unique` (`union_id`,`open_id`,`is_del`) USING BTREE,UNIQUE KEY `userId_and_oauthType_unique_index` (`user_id`,`open_id`,`is_del`) USING BTREE
) ENGINE=INNODB AUTO_INCREMENT=506562 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT;

用户发送验证码表

CREATE TABLE `user_phone_verification_code` (`id` INT(10) NOT NULL AUTO_INCREMENT,`phone` VARCHAR(15) DEFAULT '' COMMENT '手机号',`verification_code` VARCHAR(15) DEFAULT '' COMMENT '验证码',`create_time` DATETIME DEFAULT NULL COMMENT '创建时间',`isCheck` BIT(1) DEFAULT b'0' COMMENT '验证码是否校验过',`check_times` INT(2) DEFAULT '0' COMMENT '校验次数',PRIMARY KEY (`id`) USING BTREE,KEY `l_phone_verification_code_ind_01` (`phone`,`create_time`) USING BTREE
) ENGINE=INNODB AUTO_INCREMENT=33317 DEFAULT CHARSET=utf8;

用户管理模块接口实现

用户分页 & 条件查询

需求分析

实现多条件分页组合查询

查看接口文档,进行编码

实体类 User

public class User {// 用户 idprivate Integer id;// 用户昵称private String name;// 用户头像地址private String portrait;// 注册手机private String phone;// 用户密码(可以为空,支持只用验证码注册、登录)private String password;// 注册 ipprivate String reg_ip;// 是否有效用户private Integer account_non_expired;// 账号是否未过期private Integer credentials_non_expired;// 是否未锁定private Integer account_non_locked;// 用户状态private String status;// 是否删除private Integer is_del;// 创建时间private Date create_time;// 更新时间private Date update_time;// getter setter toString ... 
}

UserVo

View Object 表现层对象,主要用于表现层来接收参数的

public class UserVo {private Integer currentPage;private Integer pageSize;// 多条件查询:用户名(手机号)private String username;// 注册起始时间。使用了 DateTimeFormat,也可以使用自定义类型转换器@DateTimeFormat(pattern = "yyyy-MM-dd")private Date startCreateTime;// 注册结束时间@DateTimeFormat(pattern = "yyyy-MM-dd")private Date endCreateTime;// getter setter ... 
}

Dao 层 UserMapper

public interface UserMapper {List<User> findAllUserByPage(UserVo userVo);
}
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
​
<mapper namespace="com.renda.dao.UserMapper"><select id="findAllUserByPage" parameterType="UserVo" resultType="User">select * from `user`<where><if test="true">and is_del != 1</if><if test="username != null and username != ''">and `name` = #{username}</if><if test="startCreateTime != null and endCreateTime != null">and create_time between #{startCreateTime} and #{endCreateTime}</if></where></select>
</mapper>

Service 层 UserService

public interface UserService {PageInfo findAllUserByPage(UserVo userVo);
}
@Service
public class UserServiceImpl implements UserService {@Autowiredprivate UserMapper userMapper;
​@Overridepublic PageInfo<User> findAllUserByPage(UserVo userVo) {PageHelper.startPage(userVo.getCurrentPage(), userVo.getPageSize());List<User> userList = userMapper.findAllUserByPage(userVo);return new PageInfo<>(userList);}
}

Web 层 UserController

@RestController
@RequestMapping("/user")
public class UserController {@Autowiredprivate UserService userService;
​@RequestMapping("/findAllUserByPage")public ResponseResult findAllUserByPage(@RequestBody UserVo userVo) {PageInfo pageInfo = userService.findAllUserByPage(userVo);return new ResponseResult(true, 200, "分页多条件查询成功", pageInfo);}
}

Postman 测试接口

用户状态设置

需求分析

点击禁用,实现用户的状态变更

用户状态:ENABLE 能登录,DISABLE 不能登录

查看接口文档,进行编码

Dao 层 UserMapper

/*** 使用注解 @Param() 获取参数,这样映射文件就不需要使用 parameterType*/
void updateUserStatus(@Param("id") int id, @Param("status") String status, @Param("updateTime") Date updateTime);
<update id="updateUserStatus">update `user` set `status` = #{status}, `update_time` = #{updateTime} where id = #{id}
</update>

Service 层 UserService

void updateUserStatus(int id, String status);
@Override
public void updateUserStatus(int id, String status) {userMapper.updateUserStatus(id, status, new Date());
}

Web 层 UserController

@RequestMapping("/updateUserStatus")
public ResponseResult updateUserStatus(@RequestParam int id, @RequestParam String status) {if ("ENABLE".equalsIgnoreCase(status)) {status = "DISABLE";} else {status = "ENABLE";}userService.updateUserStatus(id, status);return new ResponseResult(true, 200, "修改用户状态成功", status);
}

Postman 测试接口

想了解更多,欢迎关注我的微信公众号:Renda_Zhang
http://www.lbrq.cn/news/2465875.html

相关文章:

  • 百度云服务器做php网站菏泽资深seo报价
  • 怎样建设个人手机网站河北百度seo软件
  • 兰州网站建设哪家专业挖掘关键词工具
  • 黄岩地区做环评立项在哪个网站定制开发公司
  • 滁州做网站电话号码吉林seo管理平台
  • 无锡商业网站建设站长工具服务器查询
  • 南宁网站建设公司哪家好seo专业培训学费多少钱
  • wordpress带会员中心主题福州百度seo排名
  • 天津市工程建设项目报建网站推广app佣金平台正规
  • 深圳福田大型商城网站建设网站推广策划思路
  • 专业做数据的网站有哪些在线域名解析ip地址
  • 手机如何做车载mp3下载网站网络营销策略的制定
  • 东莞大型网站建设公司谷歌官方app下载
  • 西青做网站的公司江苏网页定制
  • 手机站网站建设西安seo外包公司
  • 沧州市网站建设电话黑帽seo培训网
  • quiz在哪个网站做seo优化服务商
  • 旅游网站前端模板关键词的作用
  • 天水做网站电话seo深圳培训班
  • 规划营销型网站结构社会新闻最新消息
  • 良精企业网站系统小广告多的网站
  • 怎么免费制作网站平台舆情危机公关公司
  • 行业网站cms长沙seo推广公司
  • 网站前台与后台建设的先后次序企业线上培训课程
  • 自己怎么做家政网站如何做网站推广优化
  • 做视频点播网站如何赚钱自助建站seo
  • 中小企业门户网站的建设方案河北百度seo关键词排名
  • 上海网站微信平台建设search搜索引擎
  • 地方网站不让做吗进一步优化
  • ps做网站 大小seo培训价格
  • Zero-Shot TrackingT0:对象分割+运动感知记——当“切万物”武士学会运动记忆,目标跟踪稳如老狗
  • 构建跨平台远程医疗系统中的视频通路技术方案探究
  • XCTF-crypto-幂数加密
  • 【神经网络概述】从感知机到深度神经网络(CNN RNN)
  • Tomcat线程池深度优化指南:高并发场景下的maxConnections计算与监控体系
  • day33:零基础学嵌入式之网络——HTTP服务端