完善接口:输出值班医生的电话,查询小程序的密钥
接口的开发:
我发现我之前创建的管理员的表是多余的,我可以直接借用若依自带的表来做。其中还有这角色,正好符合添加值班医生,而且后台管理的前端页面是有着功能的,这样更为方便,也可以添加值班医生的信息,我将自带的实体类导入到项目代码的指定的位置。根据角色和管理员的关联表,从中读取是值班医生的id,根据值班医生的id,去管理员表中找指定值班医生们,将其的个数反馈出来。然后随机一个医生来输出电话。
查询小程序的密钥
前端要求那边现在需要一个接口就是,可以返回我的小程序密钥。因为我不能直接在前端代码中写入这个密钥,会存在泄漏的安全风险。所以要你那边写个接口给我返回这个数据。所以我就将其的配置文件的中的数据返回出来
问题及解决
查询值班医生的电话出现的bug
问题的分析:这个值班的医生是若依系统自带的数据库,其中就是登录到后台管理的一些信息,所以这里的两个实体类及业务层之类id没有导入到项目代码中。我生成了其类,复制到IDEA中。一运行就出现了这个报错
报错的信息:是因为实体类名重复,出现重复映射
解决:我直接将实体类改一个名字,在若依中其中会有一个如果去自带的中去带的话更耗费时间,所以就改了实体类的名字就解决了这个问题
学习重点及理解
随机数的学习
就比如上面随机一个医生的电话号码进行输出:
首先将其所以医生都要查询出来:
//查询出多个值班医生
List<UserRole> list = iSysUserRoleService.list(lambdaQueryWrapper);
然后就是找到有多少个医生
//有几个值班医生
int size = list.size();
再创建一个随机数的对象,将其中的几个医生的个数放到其中这里的执行范围是 [0~(个数-1)],就是说他是从0到这个个数减一这个范围中随机
//随机取一个值班医生的
Random random = new Random();
int i = random.nextInt(size);
最后就是在list中找到随机出来的(i)数字找到指定的值班医生,然后读取他的电话就好了
UserRole sysUserRole = list.get(i);
Long userId = sysUserRole.getUserId();
扩展学习
Spring 获取配置文件属性的三种方法
-
方法一:
-
通过
Environment env
获取配置属性:-
import org.springframework.core.env.Environment;
-
-
此处配置文件(yml 配置,配置文件如下):
-
mybatis-plus
-
-
-
方法二:
-
绑定实体类,获取一组配置:
-
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import lombok.Getter;
import lombok.Setter;
/**
* 读取项目相关配置
*/
-
-
此处配置文件(yml 配置,配置文件如下):
-
peng
-
-
-
方法三:
-
通过
@Value
标签绑定数据-
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import com.alibaba.druid.pool.DruidDataSource;
/**
* druid 配置属性
*/
-
-
此处配置文件(yml 配置,配置文件如下):
-
spring
-
-
总结
今天的学习的状态是不错的完成了,完善接口的不足的地方,将前端缺少的接口开发出来,其中的出现一个bug,也是解决掉了。接下来还去摸索消息订阅和新项目的部署的操作。今天比较难的就是随机数这块的内容,还有的是在获取配置文件中的数据的时候返回不出来就返回一个注释中的内容,后面上网查了一下是少了一个$的符号。