ref title fetch后台api
分页属性,pagination 要差几条?pagelimit
在api中写一个饭方法,vue中用用他
vue.cinfig.js中配置别名
nacos微服务
实体类要继承basedata(封装了公共数据)
控制器autowired,getmapping(api下的文件)
反映pageinfo
dao借口继承公司的借口mapper左脚好类,类型
service,写个实现它
autowired注入dao
override
前端
①views中写一个组件:table标签中ref ,title,:fetch-api=“fetchUsers”
fetchUsers == 在data中定义==并且需要
import { fetchUsers, removeUsers, resetPass } from '@/api/authority/user'
②在api文件下authority下的user.js
import http from '@/utils/http'
export function fetchUsers(query){return http.get('/api/users', {params: query})
}
后端
③controller中写一个控制器SysUserController
控制器 (Controller):
使用 @RestController 注解来定义一个 RESTful 控制器。
使用 @Autowired 注解来自动注入其他组件(如服务)到控制器中。
使用 @GetMapping 注解来映射特定的 HTTP GET 请求到对应的处理方法。
通常,控制器会调用服务层的方法来处理业务逻辑,并将处理结果返回给客户端。
@RestController
public class SysUserController extends BaseController {
注入服务等:@Autowiredprivate SysUserService sysUserService;@GetMapping("/api/users/all") ***调用的是前端api文件下面的js文件中的api***public List<SysUser> fetchAll() {return sysUserService.fetchAll();}@GetMapping("/api/users")public PageInfo<SysUser> fetch(SysUser sysUser) {return sysUserService.fetch(sysUser); ***调用服务的方法***}
④service中写一个接口SysUserService
服务 (Service):
使用 @Service 注解来定义一个服务组件。
服务层通常包含业务逻辑,并且可以访问数据访问对象(DAO)。
服务层可以通过 @Autowired 注解来注入 DAO 层。
服务层的方法可能会被控制器调用,并且可能会返回数据或视图模型,如 PageInfo,这是一个分页信息的包装类,通常用于返回分页数据。
@Service
public interface SysUserService {List<SysUser> fetchAll();PageInfo<SysUser> fetch(SysUser sysUser); ***接口中定义方法***一些方法
再写一些接口SysUserServiceImpl实现它
@Service
public class SysUserServiceImpl extends BaseService implements SysUserService {@Autowired **注入dao接口**private SysUserDao sysUserDao;@Autowiredprivate SysRoleDao sysRoleDao;@Value("${app.authority.default-password:666666}")private String defaultPassword;@Overridepublic List<SysUser> fetchAll() {return sysUserDao.selectAll();}@Override ***具体实现的方法***public PageInfo<SysUser> fetch(SysUser sysUser) { return MybatisUtils.page(sysUser, sysUserDao, new ExampleCriteria() {@Overridepublic void initCriteria(Example.Criteria criteria) {/*if (!StringUtils.isEmpty(sysUser.getDeptId())) {criteria.andEqualTo("deptId", sysUser.getDeptId());}*/if (!StringUtils.isEmpty(sysUser.getDeptId())) {criteria.andEqualTo("deptId", sysUser.getDeptId());}criteria.andEqualTo("status", UserStatus.NORMAL.getCode());if (!StringUtils.isEmpty(sysUser.getFuzzy())) {criteria.andLike("id", "%" + sysUser.getFuzzy() + "%");criteria.orLike("userId", "%" + sysUser.getFuzzy() + "%");//criteria.orLike("avatar", "%" + fuzzy + "%");criteria.orLike("name", "%" + sysUser.getFuzzy() + "%");} else {/*if (!StringUtils.isEmpty(sysUser.getId())) {criteria.andEqualTo("id", sysUser.getId());}*/if (!StringUtils.isEmpty(sysUser.getUserId())) {criteria.andEqualTo("userId", sysUser.getUserId());}if (!StringUtils.isEmpty(sysUser.getName())) {criteria.andLike("name", "%" + sysUser.getName() + "%");}if (!StringUtils.isEmpty(sysUser.getStatus())) {criteria.andEqualTo("status", sysUser.getStatus());}}}});}
⑤在dao中写一个SysUserDao接口
数据访问对象 (DAO):
使用 @Mapper 注解来定义一个 DAO 接口,它通常继承自某个公司或项目提供的 DAO 接口。
DAO 接口使用泛型来指定操作的实体类和返回的实体类。
DAO 接口中的方法通常用来与数据库交互,执行 CRUD 操作。
DAO 接口的实现类通常由 MyBatis 等持久层框架自动生成,这些实现类通常位于与接口同名的包中。
@Repository
public interface SysUserDao extends Mapper<SysUser> {Integer selectId();一些方法
⑥src/main/resources/mapping.oa文件下面有着许多xml文件
写一个SysUserMapper.xml,里面写了sql语句,其中id就是上面的方法
<?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.bestvike.oa.dao.SysUserDao"><select id="selectId" resultType="integer"><![CDATA[select IFNULL(max(cast(id as SIGNED INTEGER)), 0) + 1from sys_user]]></select>
⑦在data中定义实体类要继承BaseData
package com.bestvike.oa.data;import com.bestvike.commons.entity.BaseData;
import com.bestvike.commons.utils.ConvertUtils;
import com.fasterxml.jackson.annotation.JsonIgnore;@Entity
public class SysAuthority extends BaseData implements Serializable {private static final long serialVersionUID = 1L;@Idprivate String id;private String roleId;@JsonIgnoreprivate String permissions;@Transientprivate Map<String, List<String>> routes;public String getId() {return id;}
⑧在后端中resources有一个routes.json文件
里面定义了路由
[{"path": "/authority","alwaysShow": true,"component": "Layout","meta": {"title": "权限管理","icon": "authority"},"children": [{"path": "users","component": "authority/user","name": "ListUser","meta": {"title": "用户管理"},"authority": {"urls": ["GET:/api/users","PUT:/api/users","GET:/api/users/{id}/roles","PUT:/api/users/{id}/roles","PUT:/api/users/{id}/password/reset"]}},