From 6a21214adefa36af85b2eb60c00f7b4ccd9bc61d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=86=AF=E5=87=AF?= <371894675@qq.com> Date: Thu, 2 Nov 2023 15:04:43 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=20=E5=8C=BB=E7=94=9F?= =?UTF-8?q?=E7=BB=BC=E5=90=88=E4=BF=A1=E6=81=AF=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../health/system/common/domain/Appraise.java | 58 ++++++++++++ .../common/domain/ComprehensiveAppraise.java | 34 +++++++ .../com/health/system/common/domain/Gift.java | 28 ++++++ .../domain/response/AppraiseResponse.java | 31 +++++++ .../response/ComprehensiveAppraiseRes.java | 21 +++++ .../common/domain/response/GiftResponse.java | 21 +++++ .../DoctorInformationController.java | 75 +++++++++++++++ .../controller/SysBankCardController.java | 3 + .../mapper/DoctorInformationMapper.java | 47 ++++++++++ .../service/DoctorInformationService.java | 45 +++++++++ .../impl/DoctorInformationServiceImpl.java | 91 +++++++++++++++++++ .../mapper/system/DoctorInformationMapper.xml | 61 +++++++++++++ 12 files changed, 515 insertions(+) create mode 100644 base-system-common/src/main/java/com/health/system/common/domain/Appraise.java create mode 100644 base-system-common/src/main/java/com/health/system/common/domain/ComprehensiveAppraise.java create mode 100644 base-system-common/src/main/java/com/health/system/common/domain/Gift.java create mode 100644 base-system-common/src/main/java/com/health/system/common/domain/response/AppraiseResponse.java create mode 100644 base-system-common/src/main/java/com/health/system/common/domain/response/ComprehensiveAppraiseRes.java create mode 100644 base-system-common/src/main/java/com/health/system/common/domain/response/GiftResponse.java create mode 100644 base-system-server/src/main/java/com/health/system/server/controller/DoctorInformationController.java create mode 100644 base-system-server/src/main/java/com/health/system/server/mapper/DoctorInformationMapper.java create mode 100644 base-system-server/src/main/java/com/health/system/server/service/DoctorInformationService.java create mode 100644 base-system-server/src/main/java/com/health/system/server/service/impl/DoctorInformationServiceImpl.java create mode 100644 base-system-server/src/main/resources/mapper/system/DoctorInformationMapper.xml diff --git a/base-system-common/src/main/java/com/health/system/common/domain/Appraise.java b/base-system-common/src/main/java/com/health/system/common/domain/Appraise.java new file mode 100644 index 0000000..ea2a359 --- /dev/null +++ b/base-system-common/src/main/java/com/health/system/common/domain/Appraise.java @@ -0,0 +1,58 @@ +package com.health.system.common.domain; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +/** + * @author 冯凯 + * @version 1.0 + * @description: 医生评价实体类 + * @date 2023/11/2 10:10 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class Appraise { + + /* + 评价主键id + */ + private Integer appraiseId; + + /* + 评价人 + */ + private Long createUser; + + /* + 评价时间 + */ + private Date createTime; + + /* + 被评价医生id + */ + private Long doctorId; + + /* + 文字评价内容 + */ + private String appraiseComment; + + /* + 专业度评价分数 + */ + private Integer professionScore; + + /* + 满意度评价分数 + */ + private Integer satisficationScore; + + +} diff --git a/base-system-common/src/main/java/com/health/system/common/domain/ComprehensiveAppraise.java b/base-system-common/src/main/java/com/health/system/common/domain/ComprehensiveAppraise.java new file mode 100644 index 0000000..cd01905 --- /dev/null +++ b/base-system-common/src/main/java/com/health/system/common/domain/ComprehensiveAppraise.java @@ -0,0 +1,34 @@ +package com.health.system.common.domain; + +import lombok.Data; + +/** + * @author 冯凯 + * @version 1.0 + * @description: 医生综合评价信息实体类 + * @date 2023/11/2 10:38 + */ +@Data +public class ComprehensiveAppraise { + + /* + 综合评价id + */ + private Integer comprehensiveId; + + /* + 医生id + */ + private Long doctorId; + + /* + 好评人数 + */ + private Integer positiveNum; + + /* + 服务患者人数 + */ + private Integer serviceNum; + +} diff --git a/base-system-common/src/main/java/com/health/system/common/domain/Gift.java b/base-system-common/src/main/java/com/health/system/common/domain/Gift.java new file mode 100644 index 0000000..f1f997d --- /dev/null +++ b/base-system-common/src/main/java/com/health/system/common/domain/Gift.java @@ -0,0 +1,28 @@ +package com.health.system.common.domain; + +import lombok.Data; + +/** + * @author 冯凯 + * @version 1.0 + * @description: 礼物实体类 + * @date 2023/11/2 10:36 + */ +@Data +public class Gift { + + /* + 礼物id + */ + private Integer GiftId; + + /* + 礼物照片 + */ + private String giftImage; + + /* + 礼物价格 + */ + private Integer giftPrice; +} diff --git a/base-system-common/src/main/java/com/health/system/common/domain/response/AppraiseResponse.java b/base-system-common/src/main/java/com/health/system/common/domain/response/AppraiseResponse.java new file mode 100644 index 0000000..0d183fb --- /dev/null +++ b/base-system-common/src/main/java/com/health/system/common/domain/response/AppraiseResponse.java @@ -0,0 +1,31 @@ +package com.health.system.common.domain.response; + +import com.health.system.common.domain.Appraise; +import com.health.system.common.domain.Patient; +import com.health.system.common.domain.SysUser; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author 冯凯 + * @version 1.0 + * @description: 医生评价响应实体类 + * @date 2023/11/2 10:41 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +public class AppraiseResponse extends Appraise { + + /* + 患者用户基本信息 + */ + private SysUser sysUser; + + /* + 总评价书 + */ + private Integer sumAppraiseAmount; + +} diff --git a/base-system-common/src/main/java/com/health/system/common/domain/response/ComprehensiveAppraiseRes.java b/base-system-common/src/main/java/com/health/system/common/domain/response/ComprehensiveAppraiseRes.java new file mode 100644 index 0000000..805d322 --- /dev/null +++ b/base-system-common/src/main/java/com/health/system/common/domain/response/ComprehensiveAppraiseRes.java @@ -0,0 +1,21 @@ +package com.health.system.common.domain.response; + +import com.health.system.common.domain.ComprehensiveAppraise; +import lombok.Data; + +/** + * @author 冯凯 + * @version 1.0 + * @description: + * @date 2023/11/2 10:45 + */ + +@Data +public class ComprehensiveAppraiseRes extends ComprehensiveAppraise { + + + /* + 好评率 + */ + private Integer positiveRate; +} diff --git a/base-system-common/src/main/java/com/health/system/common/domain/response/GiftResponse.java b/base-system-common/src/main/java/com/health/system/common/domain/response/GiftResponse.java new file mode 100644 index 0000000..414c651 --- /dev/null +++ b/base-system-common/src/main/java/com/health/system/common/domain/response/GiftResponse.java @@ -0,0 +1,21 @@ +package com.health.system.common.domain.response; + +import com.health.system.common.domain.Gift; +import lombok.Data; + +/** + * @author 冯凯 + * @version 1.0 + * @description: 医生收到礼物响应实体类 + * @date 2023/11/2 11:28 + */ +@Data +public class GiftResponse { + + private Integer giftId; + + private String giftImage; + + private Integer sumNum; + +} diff --git a/base-system-server/src/main/java/com/health/system/server/controller/DoctorInformationController.java b/base-system-server/src/main/java/com/health/system/server/controller/DoctorInformationController.java new file mode 100644 index 0000000..07c8c76 --- /dev/null +++ b/base-system-server/src/main/java/com/health/system/server/controller/DoctorInformationController.java @@ -0,0 +1,75 @@ +package com.health.system.server.controller; + +import com.dtflys.forest.annotation.Get; +import com.health.common.core.domain.Result; +import com.health.system.common.domain.response.AppraiseResponse; +import com.health.system.common.domain.response.ComprehensiveAppraiseRes; +import com.health.system.common.domain.response.GiftResponse; +import com.health.system.server.service.DoctorInformationService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; +import java.util.Map; + +/** + * @author 冯凯 + * @version 1.0 + * @description: 医生信息控制层 + * @date 2023/11/2 10:49 + */ +@RestController +@RequestMapping("/doctor") +public class DoctorInformationController { + + /* + 注入医生信息service + */ + @Autowired + private DoctorInformationService doctorInformationService; + + + /** + * @description: 根据医生id获取医生评价列表 + * @param: doctorId + * @return: Result + * @author 冯凯 + * @date: 2023/11/2 10:53 + */ + @GetMapping("/search/appraiseList/byDoctorId/{doctorId}") + + public Result> searchAppraiseListByDoctorId(@PathVariable Long doctorId){ + + List appraiseResponseList=doctorInformationService.searchAppraiseListByDoctorId(doctorId); + return Result.success(appraiseResponseList); + } + + /** + * @description: 根据医生id获取医生的礼物统计数列表 + * @param: doctorId + * @return: Result> + * @author 冯凯 + * @date: 2023/11/2 14:59 + */ + @GetMapping("/search/giftList/byDoctorId/{doctorId}") + public Result> searchGiftListByDoctorId(@PathVariable Integer doctorId){ + List giftResponseMap=doctorInformationService.searchGiftListByDoctorId(doctorId); + return Result.success(giftResponseMap); + } + + /** + * @description: 根据医生id查询医生综合评价 + * @param: doctorId + * @return: Result + * @author 冯凯 + * @date: 2023/11/2 13:32 + */ + @GetMapping("/search/comprehensiveAppraise/byDoctroId/{doctorId}") + public Result searchComprehensiveAppraiseByDoctorId(@PathVariable Integer doctorId){ + ComprehensiveAppraiseRes comprehensiveAppraiseRes=doctorInformationService.searchComprehensiveAppraiseByDoctorId(doctorId); + return Result.success(comprehensiveAppraiseRes); + } +} diff --git a/base-system-server/src/main/java/com/health/system/server/controller/SysBankCardController.java b/base-system-server/src/main/java/com/health/system/server/controller/SysBankCardController.java index 6748f72..1d0ba57 100644 --- a/base-system-server/src/main/java/com/health/system/server/controller/SysBankCardController.java +++ b/base-system-server/src/main/java/com/health/system/server/controller/SysBankCardController.java @@ -4,6 +4,7 @@ import com.health.common.core.domain.Result; import com.health.system.common.domain.BankCard; import com.health.system.server.config.ForestClientInterface; import com.health.system.server.service.SysBankCardService; +import com.health.wallet.remote.RemoteWalletService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; @@ -24,6 +25,7 @@ import java.util.Map; @RestController @RequestMapping("/bankCard") public class SysBankCardController { + /* 注入远程调用第三方接口 */ @@ -38,6 +40,7 @@ public class SysBankCardController { @PostMapping("/bindUserBank") public Result bindUserBank(@RequestParam("bankImage") MultipartFile bankImage) throws IOException { //获取银行卡照片的字节流 + Boolean flag=sysBankCardService.bindUserBank(bankImage); return flag==true?Result.success("","银行卡绑定成功"):Result.error("","银行卡绑定失败"); } diff --git a/base-system-server/src/main/java/com/health/system/server/mapper/DoctorInformationMapper.java b/base-system-server/src/main/java/com/health/system/server/mapper/DoctorInformationMapper.java new file mode 100644 index 0000000..41f8e1c --- /dev/null +++ b/base-system-server/src/main/java/com/health/system/server/mapper/DoctorInformationMapper.java @@ -0,0 +1,47 @@ +package com.health.system.server.mapper; + +import com.health.system.common.domain.response.AppraiseResponse; +import com.health.system.common.domain.response.ComprehensiveAppraiseRes; +import com.health.system.common.domain.response.GiftResponse; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +/** + * @author 冯凯 + * @version 1.0 + * @description:医生信息mapper + * @date 2023/11/2 10:52 + */ +@Mapper +public interface DoctorInformationMapper { + + /** + * @description: 根据医生id获取医生评价列表 + * @param: doctorId + * @return: Result + * @author 冯凯 + * @date: 2023/11/2 10:53 + */ + List searchAppraiseListByDoctorId(@Param("doctorId") Long doctorId); + + /** + * @description: 根据医生id获取医生的礼物统计数列表 + * @param: doctorId + * @return: Result> + * @author 冯凯 + * @date: 2023/11/2 14:59 + */ + List searchGiftListByDoctorId(@Param("doctorId") Integer doctorId); + + /** + * @description: 根据医生id查询医生综合评价 + * @param: doctorId + * @return: Result + * @author 冯凯 + * @date: 2023/11/2 13:32 + */ + ComprehensiveAppraiseRes searchComprehensiveAppraiseByDoctorId(@Param("doctorId") Integer doctorId); +} diff --git a/base-system-server/src/main/java/com/health/system/server/service/DoctorInformationService.java b/base-system-server/src/main/java/com/health/system/server/service/DoctorInformationService.java new file mode 100644 index 0000000..4522b67 --- /dev/null +++ b/base-system-server/src/main/java/com/health/system/server/service/DoctorInformationService.java @@ -0,0 +1,45 @@ +package com.health.system.server.service; + +import com.health.system.common.domain.response.AppraiseResponse; +import com.health.system.common.domain.response.ComprehensiveAppraiseRes; +import com.health.system.common.domain.response.GiftResponse; + +import java.util.List; +import java.util.Map; + +/** + * @author 冯凯 + * @version 1.0 + * @description:医生信息service + * @date 2023/11/2 10:51 + */ +public interface DoctorInformationService { + + /** + * @description: 根据医生id获取医生评价列表 + * @param: doctorId + * @return: Result + * @author 冯凯 + * @date: 2023/11/2 10:53 + */ + List searchAppraiseListByDoctorId(Long doctorId); + + + /** + * @description: 根据医生id获取医生的礼物统计数列表 + * @param: doctorId + * @return: Result> + * @author 冯凯 + * @date: 2023/11/2 14:59 + */ + List searchGiftListByDoctorId(Integer doctorId); + + /** + * @description: 根据医生id查询医生综合评价 + * @param: doctorId + * @return: Result + * @author 冯凯 + * @date: 2023/11/2 13:32 + */ + ComprehensiveAppraiseRes searchComprehensiveAppraiseByDoctorId(Integer doctorId); +} diff --git a/base-system-server/src/main/java/com/health/system/server/service/impl/DoctorInformationServiceImpl.java b/base-system-server/src/main/java/com/health/system/server/service/impl/DoctorInformationServiceImpl.java new file mode 100644 index 0000000..8149722 --- /dev/null +++ b/base-system-server/src/main/java/com/health/system/server/service/impl/DoctorInformationServiceImpl.java @@ -0,0 +1,91 @@ +package com.health.system.server.service.impl; + +import com.health.common.redis.service.RedisService; +import com.health.system.common.domain.response.AppraiseResponse; +import com.health.system.common.domain.response.ComprehensiveAppraiseRes; +import com.health.system.common.domain.response.GiftResponse; +import com.health.system.server.mapper.DoctorInformationMapper; +import com.health.system.server.service.DoctorInformationService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @author 冯凯 + * @version 1.0 + * @description:医生信息service + * @date 2023/11/2 10:51 + */ +@Service +public class DoctorInformationServiceImpl implements DoctorInformationService { + + /* + 注入医生信息mapper + */ + @Autowired + private DoctorInformationMapper doctorInformationMapper; + + @Autowired + private RedisService redisService; + + /** + * @description: 根据医生id获取医生评价列表 + * @param: doctorId + * @return: Result + * @author 冯凯 + * @date: 2023/11/2 10:53 + */ + @Override + public List searchAppraiseListByDoctorId(Long doctorId) { + + //先从缓存中获取 + if (redisService.hasKey("DoctorAppraise:"+doctorId)){ + List appraiseResponseList = redisService.getCacheList("DoctorAppraise:" + doctorId); + return appraiseResponseList; + } + //没有再从数据库中查询获取 + List appraiseResponseList= doctorInformationMapper.searchAppraiseListByDoctorId(doctorId); + + //然后再放入缓存当中 + redisService.setCacheList("DoctorAppraise:"+doctorId,appraiseResponseList); + return appraiseResponseList; + } + + /** + * @description: 根据医生id获取医生的礼物统计数列表 + * @param: doctorId + * @return: Result> + * @author 冯凯 + * @date: 2023/11/2 14:59 + */ + @Override + public List searchGiftListByDoctorId(Integer doctorId) { + if (redisService.hasKey("giftCountList:"+doctorId)){ + List giftResponseList = redisService.getCacheList("giftCountList:" + doctorId); + return giftResponseList; + } + List giftResponseList = doctorInformationMapper.searchGiftListByDoctorId(doctorId); + redisService.setCacheList("giftCountList:"+doctorId,giftResponseList); + return giftResponseList; + } + + /** + * @description: 根据医生id查询医生综合评价 + * @param: doctorId + * @return: Result + * @author 冯凯 + * @date: 2023/11/2 13:32 + */ + @Override + public ComprehensiveAppraiseRes searchComprehensiveAppraiseByDoctorId(Integer doctorId) { + if (redisService.hasKey("comprehensive:"+doctorId)){ + ComprehensiveAppraiseRes comprehensiveAppraiseRes=redisService.getCacheObject("comprehensive:"+doctorId); + return comprehensiveAppraiseRes; + } + ComprehensiveAppraiseRes comprehensiveAppraiseRes=doctorInformationMapper.searchComprehensiveAppraiseByDoctorId(doctorId); + return comprehensiveAppraiseRes; + } +} diff --git a/base-system-server/src/main/resources/mapper/system/DoctorInformationMapper.xml b/base-system-server/src/main/resources/mapper/system/DoctorInformationMapper.xml new file mode 100644 index 0000000..365cab9 --- /dev/null +++ b/base-system-server/src/main/resources/mapper/system/DoctorInformationMapper.xml @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select gd.gift_id,g.gift_image,count(*) as sum_num from tb_gift_doctor gd LEFT JOIN tb_gift g on gd.gift_id=g.gift_id GROUP BY gd.gift_id + + + select appraise_id,a.create_user,a.create_time,doctor_id,appraise_comment,profession_rate,satisfication_rate, s.user_id,s.user_name,s.email,s.phonenumber,s.avatar + from tb_appraise a left join sys_user s + on a.create_user=s.user_id + + + + select comprehentsive_id,doctro_id,positive_num,service_num,positive_num/service_num*100 as positive_rate from tb_comprehensive_information + + + + + + + + + + + +