欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

實戰(zhàn)分布式醫(yī)療掛號系統(tǒng)之設(shè)置微服務(wù)接口開發(fā)模塊

 更新時間:2022年04月24日 15:49:45   作者:Hudie.  
這篇文章主要為大家介紹了實戰(zhàn)分布式醫(yī)療掛號系統(tǒng)之接口開發(fā)醫(yī)院設(shè)置微服務(wù)模塊,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

文章導(dǎo)讀

本系列文章介紹從0開始搭建一個基于分布式的醫(yī)療掛號系統(tǒng)。本次四篇文章完成了醫(yī)院設(shè)置微服務(wù)模塊的后端接口,為了方便開發(fā),對接口的返回結(jié)果、全局異常、全局日志進行了統(tǒng)一處理。 同時,為了方便進行訪問測試,還整合了Swagger2工具,這些通用的模塊中,除了全局日志被放在醫(yī)院設(shè)置微服務(wù)模塊的配置資源中,其余都統(tǒng)一被抽取在common模塊中。具體實現(xiàn)可參考下面文章:

醫(yī)院設(shè)置微服務(wù) | 模塊搭建

通用模塊 | 整合Swagger2

通用模塊 | 統(tǒng)一返回結(jié)果、統(tǒng)一異常處理、統(tǒng)一日志處理

項目已開源至  https://github.com/Guoqianliang/yygh_parent

一、框架調(diào)用流程

  • 從Controller層到Service層

Controller層需要調(diào)用Service層的方法,我們在其中使用依賴注入(@Autowired注解)將Service的接口裝進Spring容器。

  • 從Service層到Mapper層

Service層需要調(diào)用Mapper層,MyBatis-Plus框架已經(jīng)將Mapper依賴注入進了Service層,我們只需要分別繼承IService接口和ServiceImpl實現(xiàn)類即可。

使用MyBatis-Plus后的三層調(diào)用關(guān)系

二、醫(yī)院設(shè)置表接口開發(fā)

1.增

(1)增加記錄

具體代碼說明:

  • 參數(shù)中使用@RequestBody注解表示使用JSON格式傳遞參數(shù),默認(rèn)是required=true,表示不能為空。
  • 代碼中首先將記錄的狀態(tài)設(shè)置為1表示該記錄可用,然后使用MD5加密算法設(shè)置簽名密鑰,關(guān)于MD5加密算法會在接下來的文章中詳細(xì)介紹。
    /**
     * 1 增加記錄
     */
    @PostMapping("saveHospitalSet")
    public Result saveHospitalSet(@RequestBody HospitalSet hospitalSet) {
        // 設(shè)置狀態(tài)字段 (1:可以使用,0:不能使用)
        hospitalSet.setStatus(1);
        // 設(shè)置簽名密鑰字段(使用MD5加密)
        hospitalSet.setSignKey(MD5.encrypt(System.currentTimeMillis() + "" + new Random().nextInt(1000)));
        // 調(diào)用方法執(zhí)行添加
        boolean flag = hospitalSetService.save(hospitalSet);
        return Result.isOKorFail(flag);
    }

增加記錄測試

2.刪

(1)邏輯刪除記錄

    /**
     * 2.1 邏輯刪除記錄
     */
    @ApiOperation(value = "removeHospSer", notes = "邏輯刪除醫(yī)院設(shè)置")
    @DeleteMapping(value = "{id}")
    public Result removeHospSer(@PathVariable Long id) {
        boolean flag = hospitalSetService.removeById(id);
        return Result.isOKorFail(flag);
    }

邏輯刪除測試

(2)批量刪除記錄

    /**
     * 2.2 批量刪除記錄
     */
    @DeleteMapping("batchRemove")
    public Result batchRemoveHospitalSet(@RequestBody List<Long> idList) {
        hospitalSetService.removeByIds(idList);
        return Result.ok();
    }

批量刪除測試

3.改

(1)修改記錄

    /**
     * 3 修改記錄
     */
    @PostMapping("updateHospitalSet")
    public Result updateHospitalSet(@RequestBody HospitalSet updateHospitalSet) {
        boolean flag = hospitalSetService.updateById(updateHospitalSet);
        return Result.isOKorFail(flag);
    }

修改測試

4.查

(1)查詢所有記錄

    /**
     * 4.1 查詢所有記錄
     * @return list
     */
    @ApiOperation(value = "findAllHospitalSet", notes = "獲取所有醫(yī)院設(shè)置信息")
    @GetMapping("findAll")
    public Result findAllHospitalSet() {
        List<HospitalSet> list = hospitalSetService.list();
        return Result.ok(list);
    }

查詢所有記錄測試

(2)條件查詢帶分頁

查詢時需要傳遞參數(shù)作為查詢條件,可以使用vo對象將查詢條件進行封裝。然后在Controller中獲取條件對象,由于帶有條件查詢帶有分頁,還需獲取分頁數(shù)據(jù)(當(dāng)前頁current、每頁記錄數(shù)limit)

醫(yī)院設(shè)置表的分頁查詢vo對象:

查詢條件vo對象

具體代碼說明:

  • findPageHospSet方法傳入三個參數(shù),①當(dāng)前頁current ②每頁大小limit ③條件查詢的vo對象
  • 分頁步驟是:①創(chuàng)建page對象、②創(chuàng)建QueryWrapper對象、③調(diào)用方法執(zhí)行分頁
  • 查詢條件是醫(yī)院名稱或醫(yī)院編號,對醫(yī)院名稱進行模糊查詢,對醫(yī)院編號進行等值查詢,需要注意對這兩個值進行判空處理。
  • @RequestBody(required = false)注解表示使用JSON格式傳遞參數(shù),然后把JSON數(shù)據(jù)的值放到對象中去,required = false表示這個值可以為空。使用此參數(shù)要將提交方式改為POST,因為GET方式得不到值。
/**
     * 4.2 條件查詢帶分頁
     * 根據(jù)醫(yī)院名稱或編號查詢
     */
    @PostMapping("findPage/{current}/{limit}")
    public Result findPageHospSet(@PathVariable long current,
                                  @PathVariable long limit,
                                  @RequestBody(required = false) HospitalSetQueryVo hospitalSetQueryVo) {
        // 1. 創(chuàng)建page對象。傳遞當(dāng)前頁、每頁記錄數(shù)
        Page<HospitalSet> page = new Page(current, limit);
        // 2. 創(chuàng)建QueryWrapper對象.
        QueryWrapper<HospitalSet> queryWrapper = new QueryWrapper<>();
        // 2.1 對醫(yī)院名稱和醫(yī)院編號進行判空
        String hosname = hospitalSetQueryVo.getHosname();
        String hoscode = hospitalSetQueryVo.getHoscode();
        if (!StringUtils.isEmpty(hosname)) {
            queryWrapper.like("hosname", hospitalSetQueryVo.getHosname());
        }
        if (!StringUtils.isEmpty(hoscode)) {
            queryWrapper.eq("hoscode", hospitalSetQueryVo.getHoscode());
        }
        // 3. 調(diào)用方法執(zhí)行分頁。(參數(shù)是上面兩個對象)
        Page<HospitalSet> pageHospitalSet = hospitalSetService.page(page, queryWrapper);
        // 返回結(jié)果
        return Result.ok(pageHospitalSet);
    }

條件查詢帶分頁測試

(3)根據(jù)id獲取記錄

    /**
     * 4.3根據(jù)id獲取記錄
     */
    @GetMapping("getHospSet/{id}")
    public Result getHospSet(@PathVariable Long id) {
        HospitalSet hospitalSet = hospitalSetService.getById(id);
        return Result.ok(hospitalSet);
    }

根據(jù)id獲取記錄

5.鎖定和解鎖表

針對表中的status字段:

  • status=1時表示解鎖
  • status=0時表示鎖定

只有醫(yī)院設(shè)置表的狀態(tài)為解鎖狀態(tài)時,才能進行和醫(yī)院系統(tǒng)的對接,從而進行數(shù)據(jù)的操作。

 /**
     * 醫(yī)院設(shè)置表鎖定和解鎖
     */
    @ApiOperation(value = "lockHospitalSet 醫(yī)院設(shè)置表鎖定和解鎖")
    @PutMapping("lockHospitalSet/{id}/{status}")
    public Result lockHospitalSet(@PathVariable Long id,
                                  @PathVariable Integer status) {
        // 根據(jù)id查詢醫(yī)院設(shè)置信息
        HospitalSet hospitalSet = hospitalSetService.getById(id);
        // 設(shè)置狀態(tài)
        hospitalSet.setStatus(status);
        // 調(diào)用更新方法
        hospitalSetService.updateById(hospitalSet);
        return Result.ok();
    }

鎖定和解鎖表醫(yī)院設(shè)置表

6.發(fā)送簽名密鑰

發(fā)送簽名密鑰,即短信接口,由于調(diào)用短信接口較為復(fù)雜,后面會有專門的文章進行介紹,這里暫時只寫好框架。具體開發(fā)流程可參考后續(xù)文章。

 /**
     * 醫(yī)院設(shè)置表鎖定和解鎖
     */
    @ApiOperation(value = "lockHospitalSet 醫(yī)院設(shè)置表鎖定和解鎖")
    @PutMapping("lockHospitalSet/{id}/{status}")
    public Result lockHospitalSet(@PathVariable Long id,
                                  @PathVariable Integer status) {
        // 根據(jù)id查詢醫(yī)院設(shè)置信息
        HospitalSet hospitalSet = hospitalSetService.getById(id);
        // 設(shè)置狀態(tài)
        hospitalSet.setStatus(status);
        // 調(diào)用更新方法
        hospitalSetService.updateById(hospitalSet);
        return Result.ok();
    }

至此,醫(yī)院設(shè)置微服務(wù)后端接口開發(fā)已經(jīng)完成了,通過swagger可以查看到我們開發(fā)的所有方法:

后臺管理系統(tǒng)-API文檔

以上就是實戰(zhàn)分布式醫(yī)療掛號系統(tǒng)之接口開發(fā)醫(yī)院設(shè)置微服務(wù)模塊的詳細(xì)內(nèi)容,更多關(guān)于分布式醫(yī)療掛號接口開發(fā)設(shè)置微服務(wù)模塊的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • java字符串求并集的方法

    java字符串求并集的方法

    這篇文章主要介紹了java字符串求并集的方法,涉及Java字符串操作中union方法的使用,是Java字符串操作中非常實用的基本技巧,需要的朋友可以參考下
    2014-11-11
  • java教程散列表和樹所對應(yīng)容器類及HashMap解決沖突學(xué)習(xí)

    java教程散列表和樹所對應(yīng)容器類及HashMap解決沖突學(xué)習(xí)

    本篇篇文章是java教程,主要介紹了java教程散列表,樹所對應(yīng)容器類及HashMap解決沖突的學(xué)習(xí),有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-10-10
  • MyBatis在insert插入操作時返回主鍵ID的配置(推薦)

    MyBatis在insert插入操作時返回主鍵ID的配置(推薦)

    這篇文章主要介紹了MyBatis在insert插入操作時返回主鍵ID的配置的相關(guān)資料,需要的朋友可以參考下
    2017-10-10
  • Java實現(xiàn)多線程聊天室

    Java實現(xiàn)多線程聊天室

    這篇文章主要為大家詳細(xì)介紹了Java實現(xiàn)多線程聊天室,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • 為什么不建議使用Java自定義Object作為HashMap的key

    為什么不建議使用Java自定義Object作為HashMap的key

    這篇文章主要介紹了為什么不建議使用Java自定義Object作為HashMap的key,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,感興趣的小伙伴可以參考一下
    2022-06-06
  • 詳解如何使用SpringBoot封裝Excel生成器

    詳解如何使用SpringBoot封裝Excel生成器

    在軟件開發(fā)過程中,經(jīng)常需要生成Excel文件來導(dǎo)出數(shù)據(jù)或者生成報表,為了簡化開發(fā)流程和提高代碼的可維護性,我們可以使用Spring Boot封裝Excel生成器,本文將介紹如何使用Spring Boot封裝Excel生成器,并提供一些示例代碼來說明其用法和功能
    2023-06-06
  • 詳解java數(shù)據(jù)結(jié)構(gòu)與算法之雙鏈表設(shè)計與實現(xiàn)

    詳解java數(shù)據(jù)結(jié)構(gòu)與算法之雙鏈表設(shè)計與實現(xiàn)

    本篇文章主要介紹了詳解java數(shù)據(jù)結(jié)構(gòu)與算法之雙鏈表設(shè)計與實現(xiàn),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • Java中String、StringBuffer和StringBuilder的區(qū)別

    Java中String、StringBuffer和StringBuilder的區(qū)別

    這篇文章主要介紹了Java中String、StringBuffer和StringBuilder的區(qū)別,StringBuilder與StringBuffer都繼承自AbstractStringBuilder類,在AbstractStringBuilder中也是使用字符數(shù)組保存字符串char[]value但是沒有final關(guān)鍵字修飾,所以這兩個可變,需要的朋友可以參考下
    2024-01-01
  • java項目依賴包選擇具體實現(xiàn)類示例介紹

    java項目依賴包選擇具體實現(xiàn)類示例介紹

    這篇文章主要為大家介紹了java項目依賴包選擇具體實現(xiàn)類示例介紹,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-12-12
  • Spring Security基于json登錄實現(xiàn)過程詳解

    Spring Security基于json登錄實現(xiàn)過程詳解

    這篇文章主要介紹了Spring Security基于json登錄實現(xiàn)過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-08-08

最新評論