lifang 3 mesiacov pred
rodič
commit
dc731f48b8

+ 8 - 4
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/config/listener/MpMsgPushListener.java

@@ -2,7 +2,9 @@ package cn.tr.module.smart.common.config.listener;
 
 import cn.hutool.core.util.ObjectUtil;
 import cn.tr.core.annotation.TenantIgnore;
+import cn.tr.module.smart.common.enums.ClinicPhaseEnums;
 import cn.tr.module.smart.common.enums.RabbitMQConstant;
+import cn.tr.module.smart.common.po.BizClinicRoomPO;
 import cn.tr.module.smart.common.po.BizMpPublishTaskPO;
 import cn.tr.module.smart.common.repository.BizClinicRoomRepository;
 import cn.tr.module.smart.common.repository.BizMpPublishTaskRepository;
@@ -13,13 +15,9 @@ import cn.tr.plugin.security.context.LoginUserContextHolder;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
-import me.chanjar.weixin.common.error.WxErrorException;
 import org.springframework.amqp.rabbit.annotation.RabbitListener;
 import org.springframework.amqp.rabbit.core.RabbitTemplate;
 import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.util.ArrayList;
 import java.util.Objects;
 
 /**
@@ -46,6 +44,7 @@ public class MpMsgPushListener {
             log.info("任务不存在,任务ID: {}", taskId);
             return;
         }
+        String clinicId = bizMpPublishTaskPO.getClinicRoomId();
         UserLoginInfoBO userLoginInfoBO =  UserLoginInfoBO.builder()
                 .userId(bizMpPublishTaskPO.getCreateBy())
                 .tenantId(bizMpPublishTaskPO.getTenantId())
@@ -67,6 +66,11 @@ public class MpMsgPushListener {
             log.info("获取推送信息,任务ID: {}, 诊室ID: {}, OpenID是否存在: {}", taskId, bizMpPublishTaskPO.getClinicRoomId(), ObjectUtil.isNotNull(publishInfo.getOpenId()));
             if(ObjectUtil.isNull(publishInfo.getOpenId())){
                 log.info("公众号用户openId不存在,任务ID: {}", taskId);
+                bizMpPublishTaskRepository.deleteById(taskId);
+                return;
+            }
+            if(ClinicPhaseEnums.BEFORE.equals(publishInfo.getClinicStatus())){
+                bizMpPublishTaskRepository.deleteById(taskId);
                 return;
             }
             try {

+ 2 - 0
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/wx/dto/BizMpPublishInfoDTO.java

@@ -23,4 +23,6 @@ public class BizMpPublishInfoDTO {
     private String tenantId;
     @ApiModelProperty(value = "租户名称", position = 6)
     private String tenantName;
+    @ApiModelProperty("手术状态")
+    private String clinicStatus;
 }

+ 2 - 0
tr-modules/tr-module-smartFollowUp/src/main/resources/mapper/smart/BizClinicRoomMapper.xml

@@ -13,6 +13,7 @@
         <result property="clinicStartTime" column="clinic_start_time"/>
         <result property="tenantId" column="tenant_id"/>
         <result property="tenantName" column="tenant_name"/>
+        <result property="clinicStatus" column="clinic_status"/>
     </resultMap>
 
     <resultMap id="stdWxAppletDetailResult" type="cn.tr.module.smart.wx.controller.vo.BizWxAppletClinicDetailVO">
@@ -364,6 +365,7 @@
         bcr.clinic_start_time as clinic_start_time,
         bcr.patient_code as patient_code,
         bcr.patient_name as patient_name,
+        bcr.clinic_status as clinic_status,
         st.id as tenant_id,
         st.name as tenant_name,
         bwump.from_user as open_id

+ 21 - 2
tr-modules/tr-module-system/src/main/java/cn/tr/module/sys/oauth2/service/CurrentUserService.java

@@ -2,14 +2,19 @@ package cn.tr.module.sys.oauth2.service;
 
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.tr.core.exception.ServiceException;
 import cn.tr.core.exception.TRExcCode;
+import cn.tr.core.strategy.LoginUserStrategy;
 import cn.tr.module.sys.tenant.service.ISysTenantService;
+import cn.tr.module.sys.tenant.vo.SysTenantCommonVO;
 import cn.tr.module.sys.user.dto.SysMenuDTO;
 import cn.tr.module.sys.user.dto.SysRoleDTO;
 import cn.tr.module.sys.user.dto.SysUserPortalListDTO;
 import cn.tr.module.sys.user.enums.MenuEnum;
+import cn.tr.module.sys.user.po.SysUserPO;
+import cn.tr.module.sys.user.repository.SysUserRepository;
 import cn.tr.module.sys.user.service.ISysMenuService;
 import cn.tr.module.sys.user.service.ISysPortalMenuService;
 import cn.tr.module.sys.user.service.ISysUserPortalService;
@@ -44,6 +49,8 @@ public class CurrentUserService {
     @Autowired
     private  ISysUserRoleService userRoleService;
 
+    @Autowired
+    private SysUserRepository userRepository;
     @Value("${tr.tenant.enable}")
     private Boolean tenantEnable;
     /**
@@ -52,8 +59,13 @@ public class CurrentUserService {
      */
     public Collection<String> currentUserPermission(String userId){
         if (Boolean.TRUE.equals(tenantEnable)) {
-            //用户所在租户拥有的权限
+            SysTenantCommonVO tenant = tenantService.selectSysTenantById(LoginUserStrategy.tr.getTenantId());
             Set<String> tenantPermissions = tenantService.findTenantPermission();
+            if(ObjectUtil.isNotNull(tenant)){
+                //用户所在租户拥有的权限
+                if(StrUtil.equals(tenant.getUsername(),LoginUserStrategy.tr.getCurrentUsername()))
+                    return tenantPermissions;
+            }
             //用户角色所拥有的权限
             Set<String> rolePermissions = menuService.findUserPermission(userId);
             return CollectionUtil.intersection(tenantPermissions,rolePermissions);
@@ -84,8 +96,15 @@ public class CurrentUserService {
         }else {
             tenantMenus=roleMenus;
         }
+        SysTenantCommonVO tenant = tenantService.selectSysTenantById(LoginUserStrategy.tr.getTenantId());
+        if(ObjectUtil.isNotNull(tenant)){
+            //用户所在租户拥有的权限
+            if(StrUtil.equals(tenant.getUsername(),LoginUserStrategy.tr.getCurrentUsername()))
+                return tenantMenus.stream().filter(menu -> !StrUtil.equals(MenuEnum.button.name(), menu.getMenuType()))
+                        .map(menuService::convertToRoute)
+                        .collect(Collectors.toList());
+        }
         //菜单加按钮
-
         List<SysMenuDTO> pageMenuList = tenantMenus
                 .stream()
                 .filter(menu -> !StrUtil.equals(MenuEnum.button.name(), menu.getMenuType()))

+ 3 - 1
tr-modules/tr-module-system/src/main/java/cn/tr/module/sys/tenant/vo/SysTenantCommonVO.java

@@ -29,10 +29,12 @@ public class SysTenantCommonVO implements Serializable {
     @ApiModelProperty(value = "医院套餐名称")
     private String packageName;
 
-
     @ApiModelProperty(value = "医院管理用户名")
     private String username;
 
+    @ApiModelProperty("管理员头像")
+    private String adminAvatar;
+
     @ApiModelProperty(value = "状态 0、开启 1、关闭")
     private Boolean disable;
 

+ 13 - 1
tr-modules/tr-module-system/src/main/java/cn/tr/module/sys/user/service/impl/SysUserServiceImpl.java

@@ -14,6 +14,8 @@ import cn.tr.module.api.ExcelApi;
 import cn.tr.module.export.bean.ExportResult;
 import cn.tr.module.sys.config.SysConfigManager;
 import cn.tr.module.sys.log.dto.SysOperationLogExcelDTO;
+import cn.tr.module.sys.tenant.po.SysTenantPO;
+import cn.tr.module.sys.tenant.repository.SysTenantRepository;
 import cn.tr.module.sys.user.dto.*;
 import cn.tr.module.sys.user.mapper.SysUserMapper;
 import cn.tr.module.sys.user.po.SysOrgPO;
@@ -80,9 +82,19 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserRepository, SysUserPO
 
     @Autowired
     private SysUserRoleRepository userRoleRepository;
+
+    @Autowired
+    private SysTenantRepository tenantRepository;
     @Override
     public List<SysUserVO> stdSelectSysUserList(SysUserListQueryDTO query) {
-        return baseMapper.stdSelectList(query);
+        SysTenantPO tenant = tenantRepository.selectById(LoginUserStrategy.tr.getTenantId());
+        List<SysUserVO> result = baseMapper.stdSelectList(query);
+        if(CollectionUtil.isNotEmpty(result)){
+            for (SysUserVO user : result) {
+                user.setAdmin(StrUtil.equals(tenant.getTenantUserId(),user.getId()));
+            }
+        }
+        return result;
     }
 
     @Override

+ 3 - 0
tr-modules/tr-module-system/src/main/java/cn/tr/module/sys/user/vo/SysUserVO.java

@@ -51,4 +51,7 @@ public class SysUserVO  implements Serializable {
     @ApiModelProperty("最后登录地址")
     private String lastLoginAddress;
 
+    @ApiModelProperty("是否是管理员")
+    private Boolean admin;
+
 }

+ 5 - 2
tr-modules/tr-module-system/src/main/resources/mapper/tenant/SysTenantMapper.xml

@@ -15,6 +15,7 @@
         <result column="code" property="code"/>
         <result column="tenant_avatar" property="tenantAvatar"/>
         <result column="create_time" property="createTime"/>
+        <result column="admin_avatar" property="adminAvatar"/>
     </resultMap>
 
     <select id="stdSelectList" resultMap="CommonResult" parameterType="cn.tr.module.sys.tenant.dto.SysTenantQueryDTO">
@@ -31,7 +32,8 @@
         t.avatar as tenant_avatar,
         t.create_time as create_time,
         t.type as type,
-        u.username as username
+        u.username as username,
+        u.avatar as admin_avatar
         from
         sys_tenant as t
         LEFT JOIN sys_tenant_package as tp on t.package_id=tp.id
@@ -60,7 +62,8 @@
         t.remark as  remark,
         t.avatar as tenant_avatar,
         t.create_time,
-        u.username as username
+        u.username as username,
+        u.avatar as admin_avatar
         from
         sys_tenant as t
         LEFT JOIN sys_tenant_package as tp on t.package_id=tp.id