package com.kidgrow.usercenter.controller;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.kidgrow.common.annotation.LoginUser;
|
import com.kidgrow.common.model.ResultBody;
|
import com.kidgrow.common.model.SysOrganization;
|
import com.kidgrow.common.model.SysUser;
|
import com.kidgrow.common.model.SysUserOrg;
|
import com.kidgrow.usercenter.model.SysDepartment;
|
import com.kidgrow.usercenter.model.SysHospital;
|
import com.kidgrow.usercenter.service.ISysOrganizationService;
|
import com.kidgrow.usercenter.service.ISysUserOrgService;
|
import com.kidgrow.usercenter.service.impl.SysDepartmentServiceImpl;
|
import com.kidgrow.usercenter.service.impl.SysHospitalServiceImpl;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiOperation;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.validation.BindingResult;
|
import org.springframework.web.bind.annotation.*;
|
|
import javax.validation.Valid;
|
import java.util.ArrayList;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
|
@Slf4j
|
@RestController
|
@RequestMapping("/sysuserorg")
|
@Api(tags = "用户与部门")
|
public class SysUserOrgController {
|
@Autowired
|
private ISysUserOrgService sysUserOrgService;
|
@Autowired
|
private ISysOrganizationService sysOrganizationService;
|
@Autowired
|
private SysDepartmentServiceImpl sysDepartmentService;
|
@Autowired
|
private SysHospitalServiceImpl sysHospitalService;
|
|
@PostMapping("getListByMap")
|
public List<SysUserOrg> getListByMap(@RequestParam Map<String, Object> map) {
|
List<SysUserOrg> sysUserOrgs = sysUserOrgService.listByMap(map);
|
return sysUserOrgs;
|
}
|
|
/**
|
* 根据条件查询列表
|
*
|
* @param map
|
* @return
|
*/
|
@ApiOperation(value = "根据条件查询列表")
|
@GetMapping
|
public ResultBody listByMap(@RequestParam Map<String, Object> map) {
|
return ResultBody.ok().data(sysUserOrgService.listByMap(map)).msg("查询成功");
|
}
|
|
/**
|
* 新增or更新
|
*/
|
@ApiOperation(value = "保存")
|
@PostMapping
|
public ResultBody save(@Valid @RequestBody SysUserOrg sysUserOrg, BindingResult bindingResult, @LoginUser SysUser sysUser) {
|
if (bindingResult.hasErrors()) {
|
return ResultBody.failed().msg(bindingResult.getFieldError().getDefaultMessage());
|
} else {
|
if (sysUserOrg.getUserId() != null) {
|
String createUserOrgCode = "";
|
List<SysOrganization> userOrgData = new ArrayList<>();
|
SysOrganization byId = sysOrganizationService.getById(sysUserOrg.getOrgId());
|
if(byId==null){
|
return ResultBody.failed().data(null).msg("该组织id异常");
|
}
|
SysOrganization parentId = sysOrganizationService.getById(byId.getOrgParentId());
|
userOrgData.add(parentId);
|
userOrgData.add(byId);
|
if(parentId==null){
|
return ResultBody.failed().data(null).msg("该组织id异常");
|
}
|
if (userOrgData != null) {
|
if (userOrgData.size() == 2) {
|
createUserOrgCode = userOrgData.get(1).getOrgCode();
|
}
|
}
|
if (!createUserOrgCode.isEmpty()) {
|
//查出用户的所有组织关系数据
|
Map<String, Object> map = new HashMap<String, Object>();
|
map.put("user_id", sysUserOrg.getUserId());
|
List<SysUserOrg> userOrgList = sysUserOrgService.getListByMap(map);
|
if (userOrgList.size() > 0) {
|
for (int i = 0; i < userOrgList.size(); i++) {
|
if (sysUserOrg.getId().equals(userOrgList.get(i).getId())) {
|
userOrgList.get(i).setOrgId(sysUserOrg.getOrgId());
|
userOrgList.get(i).setFromLevel(2);
|
|
//查询 科室
|
QueryWrapper queryWrapper = new QueryWrapper();
|
queryWrapper.eq("org_id", sysUserOrg.getOrgId());
|
queryWrapper.eq("is_del", 0);
|
queryWrapper.eq("enabled", 1);
|
List<SysDepartment> list = sysDepartmentService.list(queryWrapper);
|
if (!list.isEmpty()) {
|
userOrgList.get(i).setFromId(list.get(0).getId());
|
} else {
|
userOrgList.get(i).setFromId(null);
|
}
|
} else {
|
QueryWrapper queryWrapper = new QueryWrapper();
|
queryWrapper.eq("org_id", sysUserOrg.getUpdateUserId());
|
queryWrapper.eq("is_del", 0);
|
queryWrapper.eq("enabled", 1);
|
List<SysHospital> listHospital = sysHospitalService.list(queryWrapper);
|
if (!listHospital.isEmpty()) {
|
userOrgList.get(i).setFromId(listHospital.get(0).getId());
|
}
|
userOrgList.get(i).setFromLevel(1);
|
userOrgList.get(i).setOrgId(sysUserOrg.getUpdateUserId());
|
}
|
userOrgList.get(i).setEnabled(sysUserOrg.getEnabled());
|
userOrgList.get(i).setCreateUserOrgCode(createUserOrgCode);
|
}
|
} else {
|
userOrgList = new ArrayList<>();
|
//查出来的上级组织信息建立用户关系
|
//借用字段承载数据
|
SysOrganization sysOrganization = sysOrganizationService.getById(sysUserOrg.getUpdateUserId());
|
if (sysOrganization != null) {
|
SysUserOrg sysUserOrgTemp = new SysUserOrg();
|
sysUserOrgTemp.setOrgId(sysOrganization.getId());
|
sysUserOrgTemp.setUserId(sysUserOrg.getUserId());
|
sysUserOrgTemp.setEnabled(sysUserOrg.getEnabled());
|
sysUserOrgTemp.setCreateUserOrgCode(createUserOrgCode);
|
sysUserOrgTemp.setFromLevel(2);
|
|
//查询 科室
|
QueryWrapper queryWrapper = new QueryWrapper();
|
queryWrapper.eq("org_id", sysUserOrg.getOrgId());
|
queryWrapper.eq("is_del", 0);
|
queryWrapper.eq("enabled", 1);
|
List<SysDepartment> list = sysDepartmentService.list(queryWrapper);
|
if (!list.isEmpty()) {
|
sysUserOrgTemp.setFromId(list.get(0).getId());
|
}
|
userOrgList.add(sysUserOrgTemp);
|
//查询 医院
|
queryWrapper = new QueryWrapper();
|
queryWrapper.eq("org_id", sysUserOrg.getUpdateUserId());
|
queryWrapper.eq("is_del", 0);
|
queryWrapper.eq("enabled", 1);
|
List<SysHospital> listHospital = sysHospitalService.list(queryWrapper);
|
if (!listHospital.isEmpty()) {
|
sysUserOrgTemp.setFromId(listHospital.get(0).getId());
|
}
|
sysUserOrgTemp.setFromLevel(1);
|
// sysUserOrg.setUpdateUserId(0L);
|
sysUserOrg.setOrgId(sysOrganization.getOrgParentId());
|
sysUserOrg.setCreateUserOrgCode(createUserOrgCode);
|
userOrgList.add(sysUserOrg);
|
} else {
|
return ResultBody.failed().data(null).msg("该组织的上级组织数据异常!");
|
}
|
}
|
//查询
|
boolean v = sysUserOrgService.saveOrUpdateBatch(userOrgList);
|
if (v) {
|
return ResultBody.ok().data(sysUserOrg).msg("保存成功");
|
} else {
|
return ResultBody.failed().data(null).msg("数据保存失败!");
|
}
|
} else {
|
return ResultBody.failed().data(null).msg("该组织数据不完整!");
|
}
|
} else {
|
return ResultBody.failed().data(null).msg("该组数据不完整!");
|
}
|
}
|
}
|
|
/**
|
* 删除
|
*/
|
@ApiOperation(value = "删除")
|
@DeleteMapping("/{id}")
|
public ResultBody delete(@PathVariable Long id) {
|
sysUserOrgService.removeById(id);
|
return ResultBody.ok().msg("删除成功");
|
}
|
|
/**
|
* 查询
|
*/
|
@ApiOperation(value = "查询")
|
@GetMapping("/{id}")
|
public ResultBody findById(@PathVariable Long id) {
|
SysUserOrg model = sysUserOrgService.getById(id);
|
return ResultBody.ok().data(model).msg("查询成功");
|
}
|
}
|