/** * <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.Date; import java.util.List; import java.util.Map; import org.apache.commons.collections4.map.HashedMap; 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.QueryWrapper; 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.utils.Result; import cn.timer.api.utils.ResultUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; /** * <p> * Title: QyzxAuthController.java * </p> * <p> * Description: * </p> * * @author dsc * @date 2020年5月19日 * @version 1.0 */ @Transactional @RestController @Api(tags = "4.2企业中心(账号权限)") @RequestMapping(value = "/qyzxAuth", produces = { "application/json" }) public class QyzxAuthController { @Transactional @PostMapping(value = "/addChildAccount") @ApiOperation(value = "新增子账号", httpMethod = "POST", notes = "接口发布说明") public Result<QyzxAuthChild> addChildAccount(@CurrentUser UserBean userBean, @RequestParam Integer childEmpNum) { Integer orgCode = userBean.getOrgCode(); Integer empNum = userBean.getEmpNum(); QyzxAuthAccount qyzxAuthAccount = QyzxAuthAccount.builder().build() .selectOne(new QueryWrapper<QyzxAuthAccount>().lambda().eq(QyzxAuthAccount::getOrgCode, orgCode)); // 主账号 Integer mainEmpNum = qyzxAuthAccount.getEmpNum(); if (!empNum.equals(mainEmpNum)) return ResultUtil.error("当前用户没有添加权限"); Integer max = qyzxAuthAccount.getMaxChildAccount(); // 最大子账号数量 Integer count = QyzxAuthChild.builder().build().selectCount(new QueryWrapper<QyzxAuthChild>().lambda() .eq(QyzxAuthChild::getOrgCode, orgCode).ne(QyzxAuthChild::getIsDel, 1)); // 子账号数量 if (count >= max) return ResultUtil.error("子账号数量达到上限"); YgglMainEmp ygglMainEmp = YgglMainEmp.builder().build().selectOne(new QueryWrapper<YgglMainEmp>().lambda() .eq(YgglMainEmp::getEmpNum, childEmpNum).eq(YgglMainEmp::getOrgCode, orgCode)); if (ygglMainEmp == null) return ResultUtil.error("该确认该员工是否存在"); Integer jobStatus = ygglMainEmp.getJobStatus(); if (jobStatus == 2 || jobStatus == 3) return ResultUtil.error("该员工已离职或离职中"); QyzxAuthChild oldAuthChild = QyzxAuthChild.builder().build().selectOne(new QueryWrapper<QyzxAuthChild>() .lambda().eq(QyzxAuthChild::getOrgCode, orgCode).eq(QyzxAuthChild::getEmpNum, childEmpNum)); if (mainEmpNum == childEmpNum) return ResultUtil.error("添加失败,该账号是主账号"); if (oldAuthChild != null && oldAuthChild.getIsDel() == 0) return ResultUtil.error("添加失败,该账号已是企业子账号"); else if (oldAuthChild != null && oldAuthChild.getIsDel() == 1) { oldAuthChild.setIsDel(0); oldAuthChild.setModifiedTime(new Date()); oldAuthChild.setModifiedUser(empNum); oldAuthChild.updateById(); ygglMainEmp.setIsManager(2); ygglMainEmp.updateById(); return ResultUtil.data(oldAuthChild, "添加企业子账号成功"); } QyzxAuthChild qyzxAuthChild = new QyzxAuthChild(); qyzxAuthChild.setCreatedUser(empNum); qyzxAuthChild.setCreatedTime(new Date()); qyzxAuthChild.setEmpNum(childEmpNum); qyzxAuthChild.setOrgCode(orgCode); qyzxAuthChild.setIsDel(0); // qyzxAuthChild.setIsOpen(1); qyzxAuthChild.insert(); ygglMainEmp.setIsManager(2); ygglMainEmp.updateById(); return ResultUtil.data(qyzxAuthChild, "添加企业子账号成功"); } @Transactional @DeleteMapping(value = "/delChildAccount/{childEmpNum}") @ApiOperation(value = "删除子账号", httpMethod = "DELETE", notes = "接口发布说明") public Result<String> delChildAccount(@CurrentUser UserBean userBean, @PathVariable Integer childEmpNum) { Integer empNum = userBean.getEmpNum(); QyzxAuthAccount qyzxAuthAccount = QyzxAuthAccount.builder().build().selectOne( new QueryWrapper<QyzxAuthAccount>().lambda().eq(QyzxAuthAccount::getOrgCode, userBean.getOrgCode())); Integer mainEmpNum = qyzxAuthAccount.getEmpNum(); if (!empNum.equals(mainEmpNum)) return ResultUtil.error("没有操作权限"); if (mainEmpNum.equals(childEmpNum)) return ResultUtil.error("企业主账号不能被删除"); boolean result = QyzxAuthChild.builder().isDel(1).build().update( new QueryWrapper<QyzxAuthChild>().lambda().eq(QyzxAuthChild::getOrgCode, userBean.getOrgCode())); YgglMainEmp ygglMainEmp = YgglMainEmp.builder().build().selectOne(new QueryWrapper<YgglMainEmp>().lambda() .eq(YgglMainEmp::getEmpNum, childEmpNum).eq(YgglMainEmp::getOrgCode, userBean.getOrgCode())); ygglMainEmp.setIsManager(0); if (result && ygglMainEmp.updateById()) return ResultUtil.success("删除成功"); return ResultUtil.error("删除失败"); } @PostMapping(value = "/modifyMaxChild") @ApiOperation(value = "修改子账号最大数量", httpMethod = "POST", notes = "接口发布说明") public Result<QyzxAuthChild> modifyMaxChild(@CurrentUser UserBean userBean, @RequestParam Integer maxNum) { if (QyzxAuthAccount.builder().maxChildAccount(maxNum).build().update( new QueryWrapper<QyzxAuthAccount>().lambda().eq(QyzxAuthAccount::getOrgCode, userBean.getOrgCode()))) return ResultUtil.success("修改成功"); return ResultUtil.error("修改失败"); } @GetMapping(value = "/getAll") @ApiOperation(value = "获取全部账号信息", httpMethod = "GET", notes = "接口发布说明") public Result<List<Object>> getAll(@CurrentUser UserBean userBean) { List<Object> list = new ArrayList<Object>(); Map<String, Object> map = new HashedMap<String, Object>(); QyzxAuthAccount qyzxAuthAccount = QyzxAuthAccount.builder().build().selectOne( new QueryWrapper<QyzxAuthAccount>().lambda().eq(QyzxAuthAccount::getOrgCode, userBean.getOrgCode())); // 主账号 map.put("mainAccount", qyzxAuthAccount); list.add(map); List<QyzxAuthChild> childs = QyzxAuthChild.builder().build().selectList(new QueryWrapper<QyzxAuthChild>() .lambda().eq(QyzxAuthChild::getOrgCode, userBean.getOrgCode()).ne(QyzxAuthChild::getIsDel, 1)); // 子账号 System.err.println(childs); List<YgglMainEmp> list2 = new ArrayList<YgglMainEmp>(); for (QyzxAuthChild qyzxAuthChild : childs) { Integer empNum = qyzxAuthChild.getEmpNum(); YgglMainEmp ygglMainEmp = YgglMainEmp.builder().build().selectOne( new QueryWrapper<YgglMainEmp>().lambda().eq(YgglMainEmp::getOrgCode, userBean.getOrgCode()) .eq(YgglMainEmp::getEmpNum, empNum).select(YgglMainEmp::getHeadUrl, YgglMainEmp::getName, YgglMainEmp::getPhone, YgglMainEmp::getEmpNum)); // 子账号员工信息 list2.add(ygglMainEmp); } Map<String, Object> map2 = new HashedMap<String, Object>(); map2.put("childAccount", list2); list.add(map2); return ResultUtil.data(list, "查询成功"); } }