From 4e1448f31c75ae2baecbf497dfd11cce86914771 Mon Sep 17 00:00:00 2001
From: zhaoxiaohao <913652501@qq.com>
Date: Sun, 26 Apr 2020 09:45:16 +0800
Subject: [PATCH] 添加  医生的控制权限

---
 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysDoctorService.java                   |    2 
 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysHospitalController.java         |    6 ++
 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysUserOrgController.java          |    2 
 kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/doctor.html                                                             |    2 
 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysDoctorController.java           |    6 +-
 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/resources/mapper/SysRoleOrganizationMapper.xml                               |   46 +++++++++++++++
 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/model/SysDoctor.java                             |    4 +
 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/model/SysRoleOrganization.java                   |    6 -
 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysDoctorServiceImpl.java           |   31 +++-------
 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysHospitalServiceImpl.java         |    2 
 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysRoleOrganizationServiceImpl.java |   22 +++++++
 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/resources/mapper/SysDoctorMapper.xml                                         |   44 --------------
 12 files changed, 100 insertions(+), 73 deletions(-)

diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/model/SysDoctor.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/model/SysDoctor.java
index e738e58..3da26fb 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/model/SysDoctor.java
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/model/SysDoctor.java
@@ -119,4 +119,8 @@
      * 销售代表名称
      */
     private String serverUserName;
+    /**
+     * 创建者的部门
+     */
+    private String createUserOrgCode;
 }
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/model/SysRoleOrganization.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/model/SysRoleOrganization.java
index 99d5a2f..091e1ec 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/model/SysRoleOrganization.java
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/model/SysRoleOrganization.java
@@ -1,10 +1,7 @@
 package com.kidgrow.usercenter.model;
 
+import com.baomidou.mybatisplus.annotation.*;
 import com.kidgrow.common.model.SuperModel;
-import com.baomidou.mybatisplus.annotation.FieldFill;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import lombok.AllArgsConstructor;
 import lombok.Data;
@@ -50,5 +47,6 @@
     /**
      * 是否删除,1删除,0未删除
      */
+    @TableLogic
     private Boolean isDel;
 }
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysDoctorService.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysDoctorService.java
index 6ac963d..a60f8c9 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysDoctorService.java
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysDoctorService.java
@@ -39,6 +39,6 @@
 
     ResultBody enable(Map<String, Object> params);
 
-    boolean saveOrUpdateSer(SysDoctorDto sysDoctor, HttpServletRequest request);
+    boolean saveOrUpdateSer(SysDoctorDto sysDoctor, HttpServletRequest request,SysUser user);
 }
 
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysDoctorServiceImpl.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysDoctorServiceImpl.java
index a5cdc88..bb8c0e4 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysDoctorServiceImpl.java
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysDoctorServiceImpl.java
@@ -60,30 +60,14 @@
     @Autowired
     private RedisUtils redisUtils;
     @Autowired
-    private SysRoleOrganizationMapper sysRoleOrganizationMapper;
-    @Autowired
-    private SysRoleMapper sysRoleMapper;
+    private SysRoleOrganizationServiceImpl SysRoleOrganizationServiceImpl;
+
 
     @Override
     public PageResult<SysDoctorVo> findList(Map<String, Object> params, SysUser user) {
         Page<SysDoctor> page = new Page<>(MapUtils.getInteger(params, "page"), MapUtils.getInteger(params, "limit"));
-        List<SysRole> roles = user.getRoles();
-        List<Map<SysRole,List<SysRoleOrganization>>> listroleOrg=new ArrayList<>();
-        if (!roles.isEmpty()) {
-            roles.forEach(e->{
-                Map<SysRole,List<SysRoleOrganization>> rolemap=new HashMap<>();
-                Map<String,Object> map=new HashMap<>();
-                map.put("role_id",e.getId());
-                List<SysRoleOrganization> sysRoleOrganizations = sysRoleOrganizationMapper.selectByMap(map);
-                if(sysRoleOrganizations.size()>0){
-                    SysRole sysRole = sysRoleMapper.selectById(e.getId());
-                    rolemap.put(sysRole,sysRoleOrganizations);
-                    listroleOrg.add(rolemap);
-                }
-            });
-        }
-
-        params.put("likes",listroleOrg);
+        //添加权限
+        SysRoleOrganizationServiceImpl.getRoleOrg(params, user);
         List<SysDoctor> list = baseMapper.findList(page, params);
         List<SysDoctorVo> listvo = new ArrayList<>();
         list.forEach(e -> {
@@ -147,7 +131,7 @@
 
     @Override
     @Transactional
-    public boolean saveOrUpdateSer(SysDoctorDto sysDoctor, HttpServletRequest request) {
+    public boolean saveOrUpdateSer(SysDoctorDto sysDoctor, HttpServletRequest request,SysUser user) {
         String id = request.getHeader(SecurityConstants.USER_ID_HEADER);
         if(null==sysDoctor){
            return  false;
@@ -174,6 +158,11 @@
                 BeanCopier beanCopier = BeanCopier.create(SysDoctorDto.class, SysDoctor.class, false);
                 beanCopier.copy(sysDoctor,sysDoc,null);
                 sysDoc.setUserId(sysUser.getId());
+                if(user.getOrganizations()!=null){
+                    List<SysOrganization> organizations = user.getOrganizations();
+                    sysDoc.setCreateUserOrgCode(organizations.get(organizations.size()-1).getOrgCode());
+                }
+
                 baseMapper.insert(sysDoc);
                 //保存将sys_user_org
                 SysUserOrg sysUserOrg=new SysUserOrg();
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysHospitalServiceImpl.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysHospitalServiceImpl.java
index c55a5ec..3516eea 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysHospitalServiceImpl.java
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysHospitalServiceImpl.java
@@ -68,6 +68,8 @@
 
     @Override
     public ResultBody<SysHospital> findAll(Map<String, Object> params) {
+        params.put("is_del",0);
+        params.put("enabled",1);
         List<SysHospital> sysHospitals = baseMapper.selectByMap(params);
         return  ResultBody.ok().data(sysHospitals).msg("查询成功");
     }
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysRoleOrganizationServiceImpl.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysRoleOrganizationServiceImpl.java
index 661a1a8..f9cf315 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysRoleOrganizationServiceImpl.java
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysRoleOrganizationServiceImpl.java
@@ -4,6 +4,7 @@
 import com.kidgrow.common.annotation.LoginUser;
 import com.kidgrow.common.model.*;
 import com.kidgrow.usercenter.dto.SysRoleOrganizationDto;
+import com.kidgrow.usercenter.mapper.SysRoleMapper;
 import com.kidgrow.usercenter.service.ISysOrganizationService;
 import com.kidgrow.usercenter.service.ISysRoleService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -49,6 +50,8 @@
     private ISysRoleService iSysRoleService;
     @Autowired
     private SysOrganizationServiceImpl sysOrganizationService;
+    @Autowired
+    private SysRoleMapper sysRoleMapper;
 
     /**
      * 列表
@@ -189,4 +192,23 @@
         }
         return listMap;
     }
+    public void getRoleOrg(Map<String, Object> params, SysUser user){
+        List<SysRole> roles = user.getRoles();
+        List<Map<SysRole,List<SysRoleOrganization>>> listroleOrg=new ArrayList<>();
+        if (!roles.isEmpty()) {
+            roles.forEach(e->{
+                Map<SysRole,List<SysRoleOrganization>> rolemap=new HashMap<>();
+                Map<String,Object> map=new HashMap<>();
+                map.put("role_id",e.getId());
+                List<SysRoleOrganization> sysRoleOrganizations = baseMapper.selectByMap(map);
+                if(sysRoleOrganizations.size()>0){
+                    SysRole sysRole = sysRoleMapper.selectById(e.getId());
+                    rolemap.put(sysRole,sysRoleOrganizations);
+                    listroleOrg.add(rolemap);
+                }
+            });
+        }
+        //添加权限控制
+        params.put("roleOrg",listroleOrg);
+    }
 }
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/resources/mapper/SysDoctorMapper.xml b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/resources/mapper/SysDoctorMapper.xml
index ff9e67e..a97bc6d 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/resources/mapper/SysDoctorMapper.xml
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/resources/mapper/SysDoctorMapper.xml
@@ -37,7 +37,7 @@
                 and doctor_logo = #{p.doctorLogo}
             </if>
             <if test="p.doctorTel != null and p.doctorTel !=''">
-                and doctor_tel like '%${p.doctorTel}%'
+                and doctor_tel like  concat('%',#{p.doctorTel},'%')
             </if>
             <if test="p.doctorRankId != null and p.doctorRankId !=''">
                 and doctor_rank_id = #{p.doctorRankId}
@@ -90,47 +90,7 @@
             <if test="p.updateTime != null and p.updateTime !=''">
                 and update_time = #{p.updateTime}
             </if>
-            <if test="p.likes != null and p.likes.size>0">
-
-                <foreach item="item" collection="p.likes" index="">
-                    <foreach item="itemto" collection="item" index="inx">
-
-
-                        <choose>
-                            <when test="inx.type == 1"></when>
-
-                            <when test="inx.type==2">
-                                AND
-                                <foreach item="itemtoto" collection="itemto" separator="or" open="(" close=")" index="">
-                                    create_user_org_code like '${itemtoto.orgCode}%'
-                                </foreach>
-                            </when>
-                            <when test="inx.type == 3">
-                                AND
-                                <foreach item="itemtoto" collection="itemto" separator="or" open="(" close=")" index="">
-                                  create_user_org_code = #{itemtoto.orgCode}
-                                </foreach>
-                            </when>
-                            <when test="inx.type == 4">
-                                AND
-                                <foreach item="itemtoto" collection="itemto" separator="or" open="(" close=")" index="">
-                                     create_user_org_code like '${itemtoto.orgCode}%'
-                                </foreach>
-                            </when>
-                            <when test="inx.type == 5">
-                                AND
-                                <foreach item="itemtoto" collection="itemto" separator="or" open="(" close=")" index="">
-                                    create_user_id = #{itemtoto.orgCode}
-                                </foreach>
-                            </when>
-                            <otherwise>
-                                AND id is null
-                            </otherwise>
-                        </choose>
-
-                    </foreach>
-                </foreach>
-            </if>
+            <include refid="com.kidgrow.usercenter.mapper.SysRoleOrganizationMapper.Role_Organization"/>
         </where>
     </sql>
 
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/resources/mapper/SysRoleOrganizationMapper.xml b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/resources/mapper/SysRoleOrganizationMapper.xml
index e9731e8..7ea1aea 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/resources/mapper/SysRoleOrganizationMapper.xml
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/resources/mapper/SysRoleOrganizationMapper.xml
@@ -2,6 +2,52 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <!--角色对应的   部门-->
 <mapper namespace="com.kidgrow.usercenter.mapper.SysRoleOrganizationMapper">
+
+    <!--定义数据权限的查询-->
+    <sql id="Role_Organization">
+        <if test="p.roleOrg != null and p.roleOrg.size>0">
+
+            <foreach item="item" collection="p.roleOrg" index="">
+                <foreach item="itemto" collection="item" index="inx">
+
+
+                    <choose>
+                        <when test="inx.type == 1"></when>
+
+                        <when test="inx.type==2">
+                            AND
+                            <foreach item="itemtoto" collection="itemto" separator="or" open="(" close=")" index="">
+                                create_user_org_code like '${itemtoto.orgCode}%'
+                            </foreach>
+                        </when>
+                        <when test="inx.type == 3">
+                            AND
+                            <foreach item="itemtoto" collection="itemto" separator="or" open="(" close=")" index="">
+                                create_user_org_code = #{itemtoto.orgCode}
+                            </foreach>
+                        </when>
+                        <when test="inx.type == 4">
+                            AND
+                            <foreach item="itemtoto" collection="itemto" separator="or" open="(" close=")" index="">
+                                create_user_org_code like '${itemtoto.orgCode}%'
+                            </foreach>
+                        </when>
+                        <when test="inx.type == 5">
+                            AND
+                            <foreach item="itemtoto" collection="itemto" separator="or" open="(" close=")" index="">
+                                create_user_id = #{itemtoto.orgCode}
+                            </foreach>
+                        </when>
+                        <otherwise>
+                            AND id is null
+                        </otherwise>
+                    </choose>
+
+                </foreach>
+            </foreach>
+        </if>
+	</sql>
+    
     <!--定义查询列-->
     <sql id="Column_List">
 	   *
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysDoctorController.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysDoctorController.java
index 54232c6..1c70d53 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysDoctorController.java
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysDoctorController.java
@@ -39,7 +39,7 @@
 @Slf4j
 @RestController
 @RequestMapping("/sysdoctor")
-@Api(tags = "")
+@Api(tags = "医生表")
 public class SysDoctorController  extends BaseController{
     @Autowired
     private ISysDoctorService sysDoctorService;
@@ -87,7 +87,7 @@
      */
     @ApiOperation(value = "保存")
     @PostMapping
-    public ResultBody save(@Valid @RequestBody SysDoctorDto sysDoctor, BindingResult bindingResult, HttpServletRequest request) {
+    public ResultBody save(@Valid @RequestBody SysDoctorDto sysDoctor, BindingResult bindingResult, HttpServletRequest request,@LoginUser SysUser user) {
         List<String> errMsg= new ArrayList<>();
         if (bindingResult.hasErrors()) {
             for (ObjectError error : bindingResult.getAllErrors()) {
@@ -95,7 +95,7 @@
             }
             return ResultBody.failed().msg(errMsg.toString());
         } else {
-            boolean v= sysDoctorService.saveOrUpdateSer(sysDoctor,request);
+            boolean v= sysDoctorService.saveOrUpdateSer(sysDoctor,request,user);
 
             if(v) {
                 return ResultBody.ok().data(sysDoctor).msg("保存成功");
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysHospitalController.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysHospitalController.java
index e518709..71bf785 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysHospitalController.java
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysHospitalController.java
@@ -91,6 +91,12 @@
         }
     }
 
+    @PostMapping("findAllByMap")
+    @ApiOperation(value = "查询所有列表")
+    public ResultBody<SysHospital> findAllByMap(@RequestBody Map<String, Object> params) {
+            return sysHospitalService.findAll(params);
+    }
+
     /**
      * 查询
      */
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysUserOrgController.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysUserOrgController.java
index 1a9db1d..1941e2a 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysUserOrgController.java
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysUserOrgController.java
@@ -14,7 +14,7 @@
 @Slf4j
 @RestController
 @RequestMapping("/sysuserorg")
-@Api(tags = "")
+@Api(tags = "用户与部门")
 public class SysUserOrgController {
     @Autowired
     private ISysUserOrgService iSysUserOrgService;
diff --git a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/doctor.html b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/doctor.html
index ed18719..e2433f0 100644
--- a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/doctor.html
+++ b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/doctor.html
@@ -344,7 +344,7 @@
         var doctorRank = "";
         // 获取应用列表
         // layer.load(2);
-        admin.req('api-user/syshospital/findAll', JSON.stringify({ is_del: 0 }), function (data) {
+        admin.req('api-user/syshospital/findAllByMap', JSON.stringify({ is_del: 0 }), function (data) {
             layer.closeAll('loading');
             if (0 === data.code) {
                 let selected = false;

--
Gitblit v1.8.0