From ad4d289f2ee1bca849f32781d534bdeecb7c4d86 Mon Sep 17 00:00:00 2001 From: 邓实川 <544939826@qq.com> Date: Fri, 19 Jun 2020 22:37:19 +0800 Subject: [PATCH] 权限重新做 --- src/main/java/cn/timer/api/bean/qyzx/QyzxEmpEntAsso.java | 5 ++++- src/main/java/cn/timer/api/controller/LoginController.java | 72 ++++++++++++++++++++++++++++++++---------------------------------------- src/main/java/cn/timer/api/controller/qyzx/Auth.java | 149 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 185 insertions(+), 41 deletions(-) create mode 100644 src/main/java/cn/timer/api/controller/qyzx/Auth.java diff --git a/src/main/java/cn/timer/api/bean/qyzx/QyzxEmpEntAsso.java b/src/main/java/cn/timer/api/bean/qyzx/QyzxEmpEntAsso.java index 4dbd75e..e22a536 100644 --- a/src/main/java/cn/timer/api/bean/qyzx/QyzxEmpEntAsso.java +++ b/src/main/java/cn/timer/api/bean/qyzx/QyzxEmpEntAsso.java @@ -27,12 +27,15 @@ public class QyzxEmpEntAsso extends Model<QyzxEmpEntAsso> { @ApiModelProperty(value="组织机构代码 组织机构代码",example="101") private Integer orgCode; - @ApiModelProperty(value="用户类型 1 超管理员 2子管理 3 普通员工",example="101") + @ApiModelProperty(value="用户类型 0 超管理员 1子管理 2 普通员工",example="101") private Integer userType; @ApiModelProperty(value="用户状态",example="1") private Integer status; + @ApiModelProperty(value="最大数量",example="10") + private Integer maxNum; + @ApiModelProperty(value="为0的id",example="0") private Integer id; } \ No newline at end of file diff --git a/src/main/java/cn/timer/api/controller/LoginController.java b/src/main/java/cn/timer/api/controller/LoginController.java index 1f46d63..deb6129 100644 --- a/src/main/java/cn/timer/api/controller/LoginController.java +++ b/src/main/java/cn/timer/api/controller/LoginController.java @@ -37,7 +37,6 @@ import cn.timer.api.bean.qyzx.QyzxEmpEntAsso; import cn.timer.api.bean.qyzx.QyzxEmpLogin; import cn.timer.api.bean.qyzx.QyzxEntInfoM; import cn.timer.api.bean.qyzx.QyzxSms; -import cn.timer.api.bean.qyzx.auth.QyzxAuthAccount; import cn.timer.api.bean.qyzx.businessService.QyzxRemainingQuantity; import cn.timer.api.bean.yggl.YgglMainEmp; import cn.timer.api.bean.zzgl.ZzglAuth; @@ -459,7 +458,7 @@ public class LoginController { @Autowired SpmkServiceImpl SpmkService; - + @Autowired private KqglAssoLeaveRulesMapper kqglassoleaverulesmapper; @@ -513,8 +512,7 @@ public class LoginController { System.err.println("kanxia"); // 员工信息 QyzxEmpLogin qyzxEmpLogin = QyzxEmpLogin.builder().phone(phone).pw(Md5.md5(pw)) - .sts(CommonEnum.U_STS_ON.getType()).orgId(qyId).regTime(DateUtil.date()) - .build(); + .sts(CommonEnum.U_STS_ON.getType()).orgId(qyId).regTime(DateUtil.date()).build(); boolean b2 = qyzxEmpLogin.insert(); if (!b2) { TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); @@ -523,18 +521,17 @@ public class LoginController { login = qyzxEmpLogin; } // 1-是主账号管理员 - boolean b4 = YgglMainEmp.builder().orgCode(qyId).empNum(login.getId()).rzTime(new Date()) - .isManager(1).name(username).phone(phone) - .jobType(YgJobType.QUANZHI.getType()).jobStatus(YgEnumInterface.jobStatus.ZHENSHI.getType()).build() - .insert(); + boolean b4 = YgglMainEmp.builder().orgCode(qyId).empNum(login.getId()).rzTime(new Date()).isManager(1) + .name(username).phone(phone).jobType(YgJobType.QUANZHI.getType()) + .jobStatus(YgEnumInterface.jobStatus.ZHENSHI.getType()).build().insert(); if (!b4) { TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); return ResultUtil.error("注册企业失败3"); } - // 员工企业关联表 + // 员工企业关联表 // 主账号权限 QyzxEmpEntAsso qyzxEmpEntAsso = QyzxEmpEntAsso.builder().empNum(login.getId()).orgCode(qyzxEntInfoM.getId()) - .status(1).userType(SysRoleType.U_TYPE_ADMIN.getType()).build(); + .maxNum(10).status(1).userType(SysRoleType.U_TYPE_ADMIN.getType()).build(); boolean b3 = qyzxEmpEntAsso.insert(); if (!b3) { TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); @@ -543,34 +540,30 @@ public class LoginController { SpmkService.createCustomApproval(qyzxEntInfoM.getId()); - QyzxAuthAccount.builder().createdTime(new Date()).maxChildAccount(maxChildAccount).name(username) - .accountPhone(phone).empNum(login.getId()).orgCode(qyzxEntInfoM.getId()).build().insert(); // TODO - // 主账号权限表 - - - //*****************************考勤假期初始化 - //获取模板数据 - List<KqglAssoLeaveRules> ruless = new LambdaQueryChainWrapper<KqglAssoLeaveRules>(kqglassoleaverulesmapper).eq(KqglAssoLeaveRules::getOrgCode, 0).list(); - //查询当前公司是否已初始化 - KqglAssoLeaveRules rule = kqglassoleaverulesmapper.selectOne(new QueryWrapper<KqglAssoLeaveRules>().lambda().eq(KqglAssoLeaveRules::getOrgCode, qyzxEntInfoM.getId()) - .eq(KqglAssoLeaveRules::getLeaveType, 1).last("LIMIT 1")); - if(rule == null) { + // *****************************考勤假期初始化 + // 获取模板数据 + List<KqglAssoLeaveRules> ruless = new LambdaQueryChainWrapper<KqglAssoLeaveRules>(kqglassoleaverulesmapper) + .eq(KqglAssoLeaveRules::getOrgCode, 0).list(); + // 查询当前公司是否已初始化 + KqglAssoLeaveRules rule = kqglassoleaverulesmapper.selectOne(new QueryWrapper<KqglAssoLeaveRules>().lambda() + .eq(KqglAssoLeaveRules::getOrgCode, qyzxEntInfoM.getId()).eq(KqglAssoLeaveRules::getLeaveType, 1) + .last("LIMIT 1")); + if (rule == null) { List<KqglAssoLeaveRules> rullist = new ArrayList<KqglAssoLeaveRules>(); - for(KqglAssoLeaveRules rul : ruless){ - KqglAssoLeaveRules vice = KqglAssoLeaveRules.builder().name(rul.getName()).company(rul.getCompany()).leaveType(rul.getLeaveType()) - .apply(rul.getApply()).createTime(new Date().getTime()).createUserid(999).orgCode(qyzxEntInfoM.getId()) - .isOpen(rul.getIsOpen()).leaveBalance(rul.getLeaveBalance()).rulesType(rul.getRulesType()).build(); + for (KqglAssoLeaveRules rul : ruless) { + KqglAssoLeaveRules vice = KqglAssoLeaveRules.builder().name(rul.getName()).company(rul.getCompany()) + .leaveType(rul.getLeaveType()).apply(rul.getApply()).createTime(new Date().getTime()) + .createUserid(999).orgCode(qyzxEntInfoM.getId()).isOpen(rul.getIsOpen()) + .leaveBalance(rul.getLeaveBalance()).rulesType(rul.getRulesType()).build(); rullist.add(vice); } - if(rullist.size() > 0) { + if (rullist.size() > 0) { kqglassoleaverulesmapper.insertleaverulesList(rullist); } System.out.println("操作成功!"); - }else { + } else { System.out.println("重复初始化数据!"); } - - return ResultUtil.success("注册企业成功"); } catch (Exception e) { @@ -619,15 +612,14 @@ public class LoginController { } catch (Exception e) { e.printStackTrace(); } - - Integer isLeader = zzglBmgwMMapper.selectCount(new QueryWrapper<ZzglBmgwM>().lambda() - .eq(ZzglBmgwM::getLeader, qyzxEmpLogin1.getId()) - .eq(ZzglBmgwM::getOrgCode, qyzxEmpLogin1.getOrgId())) > 0 ? 0 : 1; - + + Integer isLeader = zzglBmgwMMapper + .selectCount(new QueryWrapper<ZzglBmgwM>().lambda().eq(ZzglBmgwM::getLeader, qyzxEmpLogin1.getId()) + .eq(ZzglBmgwM::getOrgCode, qyzxEmpLogin1.getOrgId())) > 0 ? 0 : 1; + QyzxEmpEntAsso eEA = qyzxEmpEntAssoMapper.selectOne(new QueryWrapper<QyzxEmpEntAsso>().lambda() - .select(QyzxEmpEntAsso::getUserType) - .eq(QyzxEmpEntAsso::getEmpNum, qyzxEmpLogin1.getId()) - .eq(QyzxEmpEntAsso::getOrgCode, qyzxEmpLogin1.getOrgId())); + .select(QyzxEmpEntAsso::getUserType).eq(QyzxEmpEntAsso::getEmpNum, qyzxEmpLogin1.getId()) + .eq(QyzxEmpEntAsso::getOrgCode, qyzxEmpLogin1.getOrgId())); qyzxEmpLogin1.setIsLeader(isLeader); qyzxEmpLogin1.setUserType(eEA != null ? eEA.getUserType() : null); @@ -703,8 +695,8 @@ public class LoginController { String phone = entRegisterDto.getPhone(); String pw = entRegisterDto.getPw(); - - if (phone == null || "".equals(phone) ) { + + if (phone == null || "".equals(phone)) { return ResultUtil.error("手机号不能为空!"); } diff --git a/src/main/java/cn/timer/api/controller/qyzx/Auth.java b/src/main/java/cn/timer/api/controller/qyzx/Auth.java new file mode 100644 index 0000000..ed18bfc --- /dev/null +++ b/src/main/java/cn/timer/api/controller/qyzx/Auth.java @@ -0,0 +1,149 @@ +/** +* <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.Date; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +import org.apache.commons.collections4.map.HashedMap; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +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 com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; + +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.qyzx.auth.QyzxAuthAccount; +import cn.timer.api.bean.qyzx.auth.QyzxAuthChild; +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.dao.yggl.YgglMainEmpMapper; +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 { + + 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())); + } + + @Transactional + @PostMapping(value = "/addChildAccount") + @ApiOperation(value = "新增子账号", httpMethod = "POST", notes = "接口发布说明") + @Log(title = "新增-子账号", businessType = BusinessType.INSERT) + public Result<QyzxAuthChild> addChildAccount(@CurrentUser UserBean userBean, @RequestParam Integer childEmpNum) { + Integer orgCode = userBean.getOrgCode(); + Integer empNum = userBean.getEmpNum(); + QyzxEmpEntAsso qyzxEmpEntAsso = selectMain(orgCode, empNum); + System.err.println(qyzxEmpEntAsso); + if (qyzxEmpEntAsso != null) { + if (QyzxEmpEntAsso.builder().build() + .selectCount(new LambdaQueryWrapper<QyzxEmpEntAsso>().eq(QyzxEmpEntAsso::getOrgCode, orgCode) + .eq(QyzxEmpEntAsso::getUserType, SysRoleType.U_TYPE_C_ADMIN.getType())) >= qyzxEmpEntAsso + .getMaxNum()) + return ResultUtil.error("子账号数量超过上限"); + if (QyzxEmpEntAsso.builder().empNum(childEmpNum).orgCode(orgCode) + .userType(SysRoleType.U_TYPE_C_ADMIN.getType()).build().insert()) + return ResultUtil.success("添加成功"); + } + return ResultUtil.error("暂无添加权限"); + } + + @Transactional + @DeleteMapping(value = "/delChildAccount/{childEmpNum}") + @ApiOperation(value = "删除子账号", httpMethod = "DELETE", notes = "接口发布说明") + @Log(title = "删除-子账号", businessType = BusinessType.DELETE) + public Result<String> delChildAccount(@CurrentUser UserBean userBean, @PathVariable Integer childEmpNum) { + Integer orgCode = userBean.getOrgCode(); + Integer empNum = userBean.getEmpNum(); + if (selectMain(orgCode, empNum) != null) { + if (QyzxEmpEntAsso.builder().build() + .delete(new LambdaQueryWrapper<QyzxEmpEntAsso>().eq(QyzxEmpEntAsso::getOrgCode, orgCode) + .eq(QyzxEmpEntAsso::getEmpNum, childEmpNum) + .eq(QyzxEmpEntAsso::getUserType, SysRoleType.U_TYPE_C_ADMIN.getType()))) + 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<YgglMainEmp>> 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<YgglMainEmp> ygs = new ArrayList<YgglMainEmp>(); + 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)); + if (yg != null) + ygs.add(yg); + } + return ResultUtil.data(ygs, "查询成功"); + } + +} -- libgit2 0.26.0