/** * <p>Title: QyzxAuthController.java</p> * <p>Description: </p> * @author dsc * @date 2020年5月19日 * @version 1.0 */ package cn.timer.api.controller.qyzx; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; import java.util.stream.Collectors; import org.springframework.beans.factory.annotation.Value; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import cn.timer.api.aspect.lang.annotation.Log; import cn.timer.api.aspect.lang.enums.BusinessType; import cn.timer.api.bean.qyzx.QyzxEmpEntAsso; import cn.timer.api.bean.yggl.YgglMainEmp; import cn.timer.api.config.annotation.CurrentUser; import cn.timer.api.config.annotation.UserBean; import cn.timer.api.config.enums.SysRoleType; import cn.timer.api.dto.qyzx.QyzxAuthDto; import cn.timer.api.utils.Result; import cn.timer.api.utils.ResultUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; /** * <p> * Title: Auth.java * </p> * <p> * Description: * </p> * * @author dsc * @date 2020年5月19日 * @version 1.0 */ @Transactional @RestController @Api(tags = "4.5企业中心(账号权限(新))") @RequestMapping(value = "/Auth", produces = { "application/json" }) public class Auth { @Value("${config-8timer.register-childAccount-max-num}") private Integer maxNum; private QyzxEmpEntAsso selectMain(Integer orgCode, Integer empNum) { return QyzxEmpEntAsso.builder().build() .selectOne(new LambdaQueryWrapper<QyzxEmpEntAsso>().eq(QyzxEmpEntAsso::getOrgCode, orgCode) .eq(QyzxEmpEntAsso::getEmpNum, empNum) .eq(QyzxEmpEntAsso::getUserType, SysRoleType.U_TYPE_ADMIN.getType())); } private QyzxEmpEntAsso selectMain_(Integer orgCode, Integer empNum) { return QyzxEmpEntAsso.builder().build() .selectOne(new LambdaQueryWrapper<QyzxEmpEntAsso>().eq(QyzxEmpEntAsso::getOrgCode, orgCode) .eq(QyzxEmpEntAsso::getEmpNum, empNum)); } @PostMapping(value = "/addChildAccount") @ApiOperation(value = "新增子账号", httpMethod = "POST", notes = "接口发布说明") @Log(title = "新增-子账号", businessType = BusinessType.INSERT) public Result<Void> addChildAccount(@CurrentUser UserBean userBean, @RequestParam Integer childEmpNum) { Integer orgCode = userBean.getOrgCode(); Integer empNum = userBean.getEmpNum(); // QyzxEmpEntAsso qyzxEmpEntAsso = selectMain(orgCode, empNum); QyzxEmpEntAsso qyzxEmpEntAsso = selectMain_(orgCode, childEmpNum); if (qyzxEmpEntAsso != null) { if (qyzxEmpEntAsso.getUserType() == SysRoleType.U_TYPE_ADMIN.getType() || qyzxEmpEntAsso.getUserType() == SysRoleType.U_TYPE_C_ADMIN.getType()) return ResultUtil.error("当前用户已是管理员"); Integer num = QyzxEmpEntAsso.builder().build() .selectCount(new LambdaQueryWrapper<QyzxEmpEntAsso>().eq(QyzxEmpEntAsso::getOrgCode, orgCode) .eq(QyzxEmpEntAsso::getUserType, SysRoleType.U_TYPE_C_ADMIN.getType())); if (num >= maxNum) return ResultUtil.error("子账号数量超过上限"); if (QyzxEmpEntAsso.builder().userType(SysRoleType.U_TYPE_C_ADMIN.getType()).build() .update(new LambdaQueryWrapper<QyzxEmpEntAsso>().eq(QyzxEmpEntAsso::getOrgCode, orgCode) .eq(QyzxEmpEntAsso::getEmpNum, childEmpNum))) return ResultUtil.success("添加成功"); } return ResultUtil.error("暂无添加权限"); } @PostMapping(value = "/removeChildAccount") @ApiOperation(value = "移除子账号", httpMethod = "POST", notes = "接口发布说明") @Log(title = "移除-子账号", businessType = BusinessType.INSERT) public Result<Void> removeChildAccount(@CurrentUser UserBean userBean, @RequestParam Integer childEmpNum) { Integer orgCode = userBean.getOrgCode(); Integer empNum = userBean.getEmpNum(); // QyzxEmpEntAsso qyzxEmpEntAsso = selectMain(orgCode, empNum); QyzxEmpEntAsso qyzxEmpEntAsso = selectMain_(orgCode, childEmpNum); if (qyzxEmpEntAsso != null) { if (qyzxEmpEntAsso.getUserType() == SysRoleType.U_TYPE_ADMIN.getType()) return ResultUtil.error("主账号暂时不能删除"); if (QyzxEmpEntAsso.builder().userType(SysRoleType.U_TYPE_EMP.getType()).build() .update(new LambdaQueryWrapper<QyzxEmpEntAsso>().eq(QyzxEmpEntAsso::getOrgCode, orgCode) .eq(QyzxEmpEntAsso::getEmpNum, childEmpNum))) return ResultUtil.success("添加成功"); } return ResultUtil.error("暂无操作权限"); } // @PostMapping(value = "/modifyMaxChild") // @ApiOperation(value = "修改子账号最大数量", httpMethod = "POST", notes = "接口发布说明") // @Log(title = "修改-子账号最大数量", businessType = BusinessType.UPDATE) // public Result<QyzxAuthChild> modifyMaxChild(@CurrentUser UserBean userBean, @RequestParam Integer maxNum) { // Integer orgCode = userBean.getOrgCode(); // Integer empNum = userBean.getEmpNum(); // QyzxEmpEntAsso qyzxEmpEntAsso = selectMain(orgCode, empNum); // if (qyzxEmpEntAsso != null && qyzxEmpEntAsso.getUserType() == 99) { // 99-后台管理员 // if (QyzxEmpEntAsso.builder().maxNum(maxNum).build().update( // new QueryWrapper<QyzxEmpEntAsso>().lambda().eq(QyzxEmpEntAsso::getOrgCode, userBean.getOrgCode()))) // return ResultUtil.success("修改成功"); // return ResultUtil.error("修改失败"); // } // return ResultUtil.error("暂无修改权限"); // } @GetMapping(value = "/getAll") @ApiOperation(value = "获取全部账号信息", httpMethod = "GET", notes = "接口发布说明") public Result<List<QyzxAuthDto>> getAll(@CurrentUser UserBean userBean) { List<Integer> roles = new ArrayList<Integer>(); roles.add(SysRoleType.U_TYPE_ADMIN.getType()); roles.add(SysRoleType.U_TYPE_C_ADMIN.getType()); List<QyzxEmpEntAsso> list = QyzxEmpEntAsso.builder().build().selectList( new LambdaQueryWrapper<QyzxEmpEntAsso>().eq(QyzxEmpEntAsso::getOrgCode, userBean.getOrgCode()) .in(QyzxEmpEntAsso::getUserType, roles).select(QyzxEmpEntAsso::getEmpNum)); List<QyzxAuthDto> ygs = new ArrayList<QyzxAuthDto>(); List<Integer> empNums = list.stream().map(QyzxEmpEntAsso::getEmpNum).collect(Collectors.toList()); for (Integer empNum : empNums) { YgglMainEmp yg = YgglMainEmp.builder().build() .selectOne(new LambdaQueryWrapper<YgglMainEmp>().eq(YgglMainEmp::getOrgCode, userBean.getOrgCode()) .eq(YgglMainEmp::getEmpNum, empNum) .select(YgglMainEmp::getName, YgglMainEmp::getPhone, YgglMainEmp::getEmpNum)); QyzxEmpEntAsso qyzxEmpEntAsso = QyzxEmpEntAsso.builder().build() .selectOne(new LambdaQueryWrapper<QyzxEmpEntAsso>() .eq(QyzxEmpEntAsso::getOrgCode, userBean.getOrgCode()).eq(QyzxEmpEntAsso::getEmpNum, empNum) .select(QyzxEmpEntAsso::getUserType)); QyzxAuthDto dto = new QyzxAuthDto(); dto.setEmpNum(empNum); dto.setName(yg.getName()); dto.setPhone(yg.getPhone()); if (qyzxEmpEntAsso != null) dto.setUserType(qyzxEmpEntAsso.getUserType()); if (yg != null) ygs.add(dto); } Collections.sort(ygs, Comparator.comparing(QyzxAuthDto::getUserType)); return ResultUtil.data(ygs, "查询成功"); } }