package com.kidgrow.usercenter.controller; 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.service.ISysOrganizationService; import com.kidgrow.usercenter.service.ISysUserOrgService; 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; @PostMapping("getListByMap") public List getListByMap(@RequestParam Map map) { List sysUserOrgs = sysUserOrgService.listByMap(map); return sysUserOrgs; } /** * 根据条件查询列表 * * @param map * @return */ @ApiOperation(value = "根据条件查询列表") @GetMapping public ResultBody listByMap(@RequestParam Map 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 userOrgData = sysUser.getOrganizations(); if (userOrgData != null) { if (userOrgData.size() == 2) { createUserOrgCode = userOrgData.get(1).getOrgCode(); } } if (!createUserOrgCode.isEmpty()) { //查出用户的所有组织关系数据 Map map = new HashMap(); map.put("user_id", sysUserOrg.getUserId()); List 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()); } else { 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); userOrgList.add(sysUserOrgTemp); sysUserOrg.setUpdateUserId(0L); 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("查询成功"); } }