商易通项目总结(二)(一款包含Spring+SpringBoot+SpringCloud+Mysql+Mybatis-plus+RabbitMq+Redis的医院挂号系统)

商易通项目总结(二)(一款包含Spring+SpringBoot+SpringCloud+Mysql+Mybatis-plus+RabbitMq+Redis的医院挂号系统),第1张

商易通项目总结(二)(一款包含Spring+SpringBoot+SpringCloud+Mysql+Mybatis-plus+RabbitMq+Redis的医院挂号系统)

文章目录

1.预约挂号微服务模块搭建2.搭建好各个模块3.形成mapper、service、controller三种形式4.难点

4.1条件查询带分页4.2模糊查询4.3跨域处理 5.模块创新6.总结

1.预约挂号微服务模块搭建

项目模块构建
hospital-manage:医院接口模拟端(已开发,直接使用)
yygh-parent:根目录,管理子模块:
common:公共模块父节点
common-util:工具类模块,所有模块都可以依赖于它
rabbit-util:rabbitmq业务封装
service-util:service服务的工具包,包含service服务的公共配置类,所有 service模块依赖于它
server-gateway:服务网关
model:实体类模块
service:api接口服务父节点
service-hosp:医院api接口服务
service-cmn:公共api接口服务
service-user:用户api接口服务
service-order:订单api接口服务
service-oss:文件api接口服务
service-sms:短信 api接口服务
service-task:定时任务服务
service-statistics:统计api接口服务
service-client:feign服务调用父节点
service-cmn-client:公共api接口
service-hosp-client:医院api接口
service-order-client:订单api接口
service-user:用户api接口

2.搭建好各个模块

这里面的 *** 作我就不一一讲解了,无非就是建立数据库,在model中建立对应的实体类,然后配置数据库源,引入依赖。

3.形成mapper、service、controller三种形式

我们搭建好了对应的实体类之后,这个时候就是在mapper的接口中extends baseMapper<实体类>,然后就是在对Service里面的接口先进行extends Iservice<实体类>,接下来最后的 *** 作就是在它的一个实现类中进行extends ServiceImpl,然后implements Service对应的接口。

4.难点 4.1条件查询带分页

首先,就是提供对应的代码片段

 //3 条件查询带分页
    @PostMapping("findPageHospSet/{current}/{limit}")
    public Result findPageHospSet(@PathVariable long current,
                                  @PathVariable long limit,
                                  @RequestBody(required = false) HospitalSetQueryVo hospitalSetQueryVo) {
        //创建page对象,传递当前页,每页记录数
        Page page = new Page<>(current,limit);
        //构建条件
        QueryWrapper wrapper = new QueryWrapper<>();
        String hosname = hospitalSetQueryVo.getHosname();//医院名称
        String hoscode = hospitalSetQueryVo.getHoscode();//医院编号
        if(!StringUtils.isEmpty(hosname)) {
            wrapper.like("hosname",hospitalSetQueryVo.getHosname());
        }
        if(!StringUtils.isEmpty(hoscode)) {
            wrapper.eq("hoscode",hospitalSetQueryVo.getHoscode());
        }

        //调用方法实现分页查询
        IPage pageHospitalSet = hospitalSetService.page(page, wrapper);

        //返回结果
        return Result.ok(pageHospitalSet);
    }

你需要明白的就是查询分页中使用的是什么方法,然后返回的又是什么方法,在这个过程当中,就是page()方法和对应的IPage接口进行返回,因为这里面的IPage是一个对应的接口封装了实体类HospitalSet,page方法中就是对应的实体,这里需要用到抽象类的实体,也就是Wrapper进行抽象化,这里就需要用到对应的wrapper.like(“栏目名称”,hospitalSetQueryVo.getHosname()),这里面就是对应的进行接收到查询的模糊查询,还有就是wrapper.eq。因此,这里面的两个难点就是分页和查询,我们如何进行分页呢,也就是当前页、限制页以及请求的实体,这些达到的话就不会太难了。

4.2模糊查询

说到模糊查询,这是最接近我们现实生活中的一个问题了,我们在查询的时候肯定不是一字不差地查询出来吧?这个时候就是进行地模糊查询,wrapper.like(“栏目名称”,真实对应地实体字段)。

4.3跨域处理

什么时候会出现跨域呢,也就是在请求浏览器地址的时候不能访问,下面列出几种常见的跨域问题:

如何解决
在跨域请求中,我们可以做的就是在后端代码上面加入注解,然后在对应的nginx里面进行设置相应的请求,因为无非就是域名相同而端口号不同所要解决的问题。

5.模块创新

我们在对一些数据不使用的时候,其实可以做到的就是设置几个按钮,包括解锁和锁定,这样的一个状态就是根据传递过来的id和状态进行的设置。

//8 医院设置锁定和解锁
@PutMapping("lockHospitalSet/{id}/{status}")
public Result lockHospitalSet(@PathVariable Long id,
                              @PathVariable Integer status) {
    //根据id查询医院设置信息
    HospitalSet hospitalSet = hospitalSetService.getById(id);
    //设置状态
    hospitalSet.setStatus(status);
    //调用方法
    hospitalSetService.updateById(hospitalSet);
    return Result.ok();
}
6.总结

我们在学习知识的过程中,其实是要分很多个阶段的,首先就是要进行知识的搞懂,在搞懂的前提之下还要对知识进行一个缝补,这样才能做到一个巩固,也就是像我现在这样进行回顾,这个项目做了也有一段时间了,但是人的精力也是有限的,我们需要做的就是不断进行回顾和练习,这样才能达到一个很高的标准。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5719961.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-18

发表评论

登录后才能评论

评论列表(0条)

保存