虚拟现实环境下的远程教育和智能评估系统(六)

我主要负责学生端的开发;

首先设计数据库表,编写实体类Mapper

ublic class Users implements Serializable {
    private Long id;

    private LocalDateTime gmtCreate;

    private LocalDateTime gmtModified;

    private Integer statusId;

    private String mobile;

    private String mobileSalt;

    private String mobilePsw;

    private String nickname;

    private Integer userSex;

    private Integer userAge;

    private String userHead;

    private String remark;

    private String studentNumber;

    private String school;


    private static final long serialVersionUID = 1L;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public LocalDateTime getGmtCreate() {
        return gmtCreate;
    }

    public void setGmtCreate(LocalDateTime gmtCreate) {
        this.gmtCreate = gmtCreate;
    }

    public LocalDateTime getGmtModified() {
        return gmtModified;
    }

    public void setGmtModified(LocalDateTime gmtModified) {
        this.gmtModified = gmtModified;
    }

    public Integer getStatusId() {
        return statusId;
    }

    public void setStatusId(Integer statusId) {
        this.statusId = statusId;
    }

    public String getMobile() {
        return mobile;
    }

    public void setMobile(String mobile) {
        this.mobile = mobile == null ? null : mobile.trim();
    }

    public String getMobileSalt() {
        return mobileSalt;
    }

    public void setMobileSalt(String mobileSalt) {
        this.mobileSalt = mobileSalt == null ? null : mobileSalt.trim();
    }

    public String getMobilePsw() {
        return mobilePsw;
    }

    public void setMobilePsw(String mobilePsw) {
        this.mobilePsw = mobilePsw == null ? null : mobilePsw.trim();
    }

    public String getNickname() {
        return nickname;
    }

    public void setNickname(String nickname) {
        this.nickname = nickname == null ? null : nickname.trim();
    }

    public Integer getUserSex() {
        return userSex;
    }

    public void setUserSex(Integer userSex) {
        this.userSex = userSex;
    }

    public Integer getUserAge() {
        return userAge;
    }

    public void setUserAge(Integer userAge) {
        this.userAge = userAge;
    }

    public String getUserHead() {
        return userHead;
    }

    public void setUserHead(String userHead) {
        this.userHead = userHead == null ? null : userHead.trim();
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark == null ? null : remark.trim();
    }

    public String getStudentNumber() {return studentNumber;}

    public void setStudentNumber(String studentNumber) {this.studentNumber = studentNumber;}

    public String getSchool() {return school;}

    public void setSchool(String school) {this.school = school;}


    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", id=").append(id);
        sb.append(", gmtCreate=").append(gmtCreate);
        sb.append(", gmtModified=").append(gmtModified);
        sb.append(", statusId=").append(statusId);
        sb.append(", mobile=").append(mobile);
        sb.append(", mobileSalt=").append(mobileSalt);
        sb.append(", mobilePsw=").append(mobilePsw);
        sb.append(", nickname=").append(nickname);
        sb.append(", userSex=").append(userSex);
        sb.append(", userAge=").append(userAge);
        sb.append(", userHead=").append(userHead);
        sb.append(", remark=").append(remark);
        sb.append(", studentNumber=").append(studentNumber);
        sb.append(", school=").append(school);
        sb.append(", serialVersionUID=").append(serialVersionUID);

        sb.append("]");
        return sb.toString();
    }
}
package com.roncoo.education.user.dao.impl.mapper;

import com.roncoo.education.user.dao.impl.mapper.entity.Users;
import com.roncoo.education.user.dao.impl.mapper.entity.UsersExample;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface UsersMapper {
    int countByExample(UsersExample example);

    int deleteByExample(UsersExample example);

    int deleteByPrimaryKey(Long id);

    int insert(Users record);

    int insertSelective(Users record);

    List<Users> selectByExample(UsersExample example);

    Users selectByPrimaryKey(Long id);

    int updateByExampleSelective(@Param("record") Users record, @Param("example") UsersExample example);

    int updateByExample(@Param("record") Users record, @Param("example") UsersExample example);

    int updateByPrimaryKeySelective(Users record);

    int updateByPrimaryKey(Users record);
}

2. FeignUsersBiz.java

package com.roncoo.education.user.feign.biz;


import cn.hutool.core.collection.CollUtil;
import com.roncoo.education.common.core.tools.BeanUtil;
import com.roncoo.education.common.service.BaseBiz;
import com.roncoo.education.user.dao.UsersDao;
import com.roncoo.education.user.dao.impl.mapper.entity.Users;
import com.roncoo.education.user.feign.interfaces.vo.UsersVO;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component;

import javax.validation.constraints.NotNull;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;


@Component
@RequiredArgsConstructor
public class FeignUsersBiz extends BaseBiz {

    @NotNull
    private final UsersDao dao;

    public UsersVO getById(Long id) {
        Users record = dao.getById(id);
        return BeanUtil.copyProperties(record, UsersVO.class);
    }

    public Map<Long, UsersVO> listByIds(List<Long> userIdList) {
        List<Users> usersList = dao.listByIds(userIdList);
        if (CollUtil.isNotEmpty(usersList)) {
            return usersList.stream().collect(Collectors.toMap(item -> item.getId(), item -> BeanUtil.copyProperties(item, UsersVO.class)));
        }
        return new HashMap<>();
    }
}

这段代码定义了一个名为 `FeignUsersBiz` 的业务逻辑类,负责用户数据的获取和处理。

1. **包声明和导入语句**:
   - 该类位于 `com.roncoo.education.user.feign.biz` 包中。
   - 导入了多个包和类,包括 Hutool 工具库、项目内部的工具和服务类、Spring 框架以及 Java 标准库。

2. **类注解和继承**:
   - `@Component` 注解表明这个类是一个 Spring 组件,由 Spring 容器管理。
   - `@RequiredArgsConstructor` 注解(来自 Lombok 库)自动生成一个包含所有 `final` 字段的构造函数。
   - 该类继承自 `BaseBiz` 类,这意味着它是一个业务逻辑层类,可能包含一些通用的业务逻辑功能。

3. **字段定义**:
   - `@NotNull` 注解用于确保 `dao` 字段不能为空。
   - `dao` 字段是 `UsersDao` 类型,表示数据访问对象,用于与数据库进行交互。
   - `final` 关键字表明这个字段在初始化后不可更改。

4. **`getById` 方法**:
   - 接受一个用户 ID 作为参数。
   - 使用 `dao` 的 `getById` 方法从数据库中获取对应的用户记录。
   - 将用户记录转换为 `UsersVO` 对象(VO 即 Value Object,值对象),并返回。
   - 使用 `BeanUtil.copyProperties` 方法将用户记录的属性复制到 `UsersVO` 对象中。

5. **`listByIds` 方法**:
   - 接受一个用户 ID 列表作为参数。
   - 使用 `dao` 的 `listByIds` 方法从数据库中获取对应的用户记录列表。
   - 如果结果列表不为空,使用 Java 8 流(Stream)将用户列表转换为一个 Map,其中键是用户 ID,值是 `UsersVO` 对象。
   - 如果结果列表为空,返回一个空的 HashMap。
   - 使用 Hutool 库的 `CollUtil.isNotEmpty` 方法来判断集合是否为空。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

柯北琉璃丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值