package com.xzx.gc.role.controller; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.RandomUtil; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; import com.github.pagehelper.PageInfo; import com.xzx.gc.common.HttpRequestLocal; import com.xzx.gc.common.annotations.PassToken; import com.xzx.gc.common.constant.CommonEnum; import com.xzx.gc.common.constant.Constants; import com.xzx.gc.common.constant.RedisKeyConstant; import com.xzx.gc.common.dto.log.OperationAppLog; import com.xzx.gc.common.request.BaseController; import com.xzx.gc.common.utils.MqUtil; import com.xzx.gc.common.utils.RedisUtil; import com.xzx.gc.common.utils.SecurityUtil; import com.xzx.gc.common.utils.SpringUtil; import com.xzx.gc.entity.*; import com.xzx.gc.model.JsonResult; import com.xzx.gc.model.admin.AppRoleModel; import com.xzx.gc.model.dto.FunctionNodeView; import com.xzx.gc.model.dto.MenuNodeView; import com.xzx.gc.model.dto.SystemMenuView; import com.xzx.gc.model.query.OrgQuery; import com.xzx.gc.model.query.RoleQuery; import com.xzx.gc.role.model.CoreDictQueryModel; import com.xzx.gc.role.model.CoreRoleModel; import com.xzx.gc.role.model.CoreUserModel; import com.xzx.gc.role.rbac.UserLoginInfoAdmin; import com.xzx.gc.role.rbac.tree.FunctionItem; import com.xzx.gc.role.rbac.tree.MenuItem; import com.xzx.gc.role.rbac.tree.OrgItem; import com.xzx.gc.role.service.*; import com.xzx.gc.role.util.TokenUtils; import com.xzx.gc.util.ConvertUtil; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import java.text.SimpleDateFormat; import java.util.*; @RestController public class CoreUserController extends BaseController { static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); @Autowired CorePlatformService platformService; @Autowired private MqUtil mqUtil; @Autowired CoreUserService userService; @Autowired HttpRequestLocal httpRequestLocal; @Autowired CuserConsoleService userConsoleService; @Autowired CoreRoleService coreRoleService; @Autowired private OrgConsoleService orgConsoleService; @Autowired CoreDictService coreDictService; @Autowired CityPartnerService cityPartnerService; @Autowired RoleConsoleService roleConsoleService; @Autowired RedisUtil redisService; @Autowired private CoreUserService coreUserService; @PostMapping(Constants.ADMIN_VIEW_PREFIX + "/login.json") public JsonResult login(String code, String password) { UserLoginInfoAdmin info = userService.login(code, password); if (info == null) { return JsonResult.failMessage("用户名密码错"); } CoreUser user = info.getUser(); CoreOrg currentOrg = info.getOrgs().get(0); for (CoreOrg org : info.getOrgs()) { if (org.getId() == user.getOrgId()) { currentOrg = org; break; } } info.setCurrentOrg(currentOrg); // 记录登录信息到session this.platformService.setLoginUser(info.getUser(), info.getCurrentOrg(), info.getOrgs()); return JsonResult.success(info); } /** * 用户所在部门 * * @return */ @PostMapping(Constants.ADMIN_VIEW_PREFIX + "/org/myOrgs.json") public JsonResult> myOrgs() { List orgs = (List) httpRequestLocal.getSessionValue(CorePlatformService.ACCESS_USER_ORGS); return JsonResult.success(orgs); } /** * 切换部门 * * @param orgId * @return */ @PostMapping(Constants.ADMIN_VIEW_PREFIX + "/org/setOrg.json") public JsonResult login(Long orgId) { CoreUser user = platformService.getCurrentUser(); // 检查是否存在orgId List orgs = platformService.getCurrentOrgs(); CoreOrg currentOrg = null; for (CoreOrg org : orgs) { if (orgId == org.getId()) { currentOrg = org; break; } } if (currentOrg == null) { // 非法切换 return JsonResult.failMessage("切换到不存在的部门"); } httpRequestLocal.setSessionValue(CorePlatformService.ACCESS_CURRENT_ORG, currentOrg); return JsonResult.success(); } @PostMapping(Constants.ADMIN_VIEW_PREFIX + "/changePassword.json") public JsonResult chnagePassword(String password, String newPassword) { CoreUser temp = platformService.getCurrentUser(); CoreUser realUser = userService.getUserById(temp.getId()); String pwd =password; if (realUser.getPassword().equals(pwd)) { realUser.setPassword(newPassword); userService.update(realUser); return JsonResult.success(); } else { return JsonResult.failMessage("密码错误"); } } /** * 用户能查看的菜单 * * @return */ @PostMapping(Constants.ADMIN_VIEW_PREFIX + "/menu/menuTree.json") public JsonResult> menus() { CoreUser currentUser = platformService.getCurrentUser(); Long orgId = platformService.getCurrentOrgId(); MenuItem item = platformService.getMenuItem(currentUser.getId(), orgId); List view = this.build(item); return JsonResult.success(view); } /** * 获取系统 * * @return */ @PostMapping(Constants.ADMIN_VIEW_PREFIX + "/menu/system.json") public JsonResult> getSystem() { CoreUser currentUser = platformService.getCurrentUser(); Long orgId = platformService.getCurrentOrgId(); MenuItem menuItem = platformService.getMenuItem(currentUser.getId(), orgId); List list = menuItem.getChildren(); List systems = new ArrayList(); for (MenuItem item : list) { systems.add(new SystemMenuView(item.getId(), item.getData().getCode(), item.getData().getName())); } return JsonResult.success(systems); } /** * 获取系统对应的菜单树 * * @return */ @PostMapping(Constants.ADMIN_VIEW_PREFIX + "/menu/systemMenu.json") public JsonResult> getMenuBySystem(long systemId) { CoreUser currentUser = platformService.getCurrentUser(); Long orgId = platformService.getCurrentOrgId(); MenuItem menuItem = platformService.getMenuItem(currentUser.getId(), orgId); MenuItem item = menuItem.findChild(systemId); List view = this.build(item); return JsonResult.success(view); } /** * 用户所在公司的组织机构树 * * @return */ @PostMapping(Constants.ADMIN_VIEW_PREFIX + "/org/org.json") public JsonResult getUserCompany() { OrgItem orgItem = platformService.getUserOrgTree(); return JsonResult.success(orgItem); } /** * 获取系统的菜单树 * * @return */ @PostMapping(Constants.ADMIN_VIEW_PREFIX + "/menu/tree.json") public JsonResult> getMenuTree() { MenuItem menuItem = platformService.buildMenu(); List view = this.build(menuItem); return JsonResult.success(view); } /** * 获取功能点树 * @return */ @PostMapping(Constants.ADMIN_VIEW_PREFIX + "/function/tree.json") public JsonResult > getFunctionTree() { FunctionItem root = this.platformService.buildFunction(); List tree = buildFunctionTree(root); return JsonResult.success(tree); } private List build(MenuItem node) { List list = node.getChildren(); if (list.size() == 0) { return Collections.EMPTY_LIST; } List views = new ArrayList(list.size()); for (MenuItem item : list) { MenuNodeView view = new MenuNodeView(); view.setCode(item.getData().getCode()); view.setName(item.getData().getName()); view.setIcon(item.getData().getIcon()); view.setId(item.getData().getId()); //view.setPath((String) item.getData().get("accessUrl")); view.setPath(""); List children = this.build(item); view.setChildren(children); views.add(view); } return views; } private List buildFunctionTree(FunctionItem node){ List list = node.getChildren(); if(list.size()==0){ return Collections.EMPTY_LIST; } List views = new ArrayList(list.size()); for(FunctionItem item :list){ FunctionNodeView view = new FunctionNodeView(); view.setCode(item.getData().getCode()); view.setName(item.getData().getName()); view.setId(item.getData().getId()); view.setAccessUrl(item.getData().getAccessUrl()); List children = this.buildFunctionTree(item); view.setChildren(children); views.add(view); } return views; } /** // * 登陆接口 // * @param request // * @param response // * @return // */ @PassToken @PostMapping(Constants.ADMIN_VIEW_PREFIX+"/loginData.do") @ApiOperation(value="用户登陆", notes="test: 仅0有正确返回") @ApiImplicitParams({ @ApiImplicitParam(paramType="query", name = "code", value = "用户ID", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "password", value = "密码", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "verify", value = "验证码", required = true, dataType = "String") }) public JsonResult> loginData(HttpServletRequest request, HttpServletResponse response, @RequestBody AppRoleModel model){ //String ipAddr = request.getRequestURL().toString(); String userType="1"; List> list = new ArrayList<>(); Map resultMap = new HashMap<>(); if(!SpringUtil.isDev()) { //验证码 Object cap = request.getSession().getAttribute("cap"); if (cap == null || !cap.toString().equalsIgnoreCase(model.getVerify())) { resultMap.put("code", -1); resultMap.put("msg", "验证码错误"); return JsonResult.failMessage("验证码错误"); } } String jsessionid = request.getSession().getId(); Cookie cookie =new Cookie("JSESSIONID",jsessionid); cookie.setMaxAge(60*60*24*7); response.addCookie(cookie); String code = model.getCode(); String password = model.getPassword(); Map map = userService.loginApi(code, password,userType); if(null!=map.get("msg")){ return JsonResult.failMessage(map.get("msg").toString()); } Object obj = map.get("userLoginInfo"); ObjectMapper objectMapper = new ObjectMapper(); objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); UserLoginInfoAdmin info = objectMapper.convertValue(obj, UserLoginInfoAdmin.class); if (map.get("msg") != null) { return JsonResult.failMessage(map.get("msg").toString()); } CoreUser user = info.getUser(); redisService.remove("xzx:user:token:"+user.getId()); //redisService.remove("xzx:user:verify:"+model.getCode()); CoreOrg currentOrg = info.getOrgs().get(0); for (CoreOrg org : info.getOrgs()) { if (org.getId() == user.getOrgId()) { currentOrg = org; break; } } info.setCurrentOrg(currentOrg); // 记录登录信息到session this.platformService.setLoginUser(info.getUser(), info.getCurrentOrg(), info.getOrgs()); String token = TokenUtils.createToken(); redisService.set("xzx:user:loginToken:"+info.getUser().getId(), token); //Gson gson = new Gson(); Map pMap = new HashMap<>(); pMap.put("userId",info.getUser().getId()); pMap.put("token",token); pMap.put("userType",map.get("userType")); pMap.put("jsessionid",jsessionid); pMap.put("cityTown",map.get("cityTown")); list.add(pMap); resultMap.put("code",0); resultMap.put("data",list); //list.add(resultMap); //redisService.remove("xzx:user:verify:code"); //放入用户ID及sessionId对应关系 redisService.set(RedisKeyConstant.USER_SESSION_KEY +info.getUser().getId(),request.getSession().getId()); return JsonResult.success(resultMap); } @PostMapping(Constants.ADMIN_VIEW_PREFIX+"/logoutApi.do") @ApiOperation(value="退出登录", notes="test: 仅0有正确返回") @ApiImplicitParams({ @ApiImplicitParam(paramType="query", name = "session", value = "需要把sessionId放入请求头", required = true, dataType = "String") }) @PassToken public JsonResult logout(HttpServletRequest request) { HttpSession session = request.getSession(); Enumeration eum = session.getAttributeNames(); while(eum.hasMoreElements()) { String key = (String)eum.nextElement(); session.removeAttribute(key); } return JsonResult.success("登出成功!"); } @PostMapping(Constants.ADMIN_VIEW_PREFIX+"/updatePassword.do") @ApiOperation(value="修改用户密码", notes="test: 仅0有正确返回") @ApiImplicitParams({ @ApiImplicitParam(paramType="query", name = "oldPassword", value = "旧密码", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "password", value = "新密码", required = true, dataType = "String") }) public JsonResult updatePassword(HttpServletRequest request,@RequestBody AppRoleModel model) { CoreUser user =platformService.getCurrentUser(); CityPartner partner = cityPartnerService.queryById(user.getId()); if(null!=partner){ //验证老密码 if(partner.getPassword().equals(model.getOldPassword())){ String salt1 = RandomUtil.randomString(16); String newPassword =SecurityUtil.encrypt(salt1,model.getPassword()); partner.setPassword(newPassword); partner.setSalt(salt1); cityPartnerService.updatePartner(partner); }else{ if(null!=partner.getSalt()&&!"".equals(partner.getSalt())){ String oldPassword = SecurityUtil.decrypt(partner.getSalt(),partner.getPassword()); if(oldPassword.equals(model.getOldPassword())){ String salt1 = RandomUtil.randomString(16); String newPassword =SecurityUtil.encrypt(salt1,model.getPassword()); partner.setPassword(newPassword); partner.setSalt(salt1); cityPartnerService.updatePartner(partner); }else{ return JsonResult.failMessage("老密码不正确!"); } }else{ return JsonResult.failMessage("老密码不正确!"); } } }else{ user = userService.getCoreUserById(user.getId()); //验证老密码 if(user.getPassword().equals(model.getOldPassword())){ String salt1 = RandomUtil.randomString(16); String newPassword =SecurityUtil.encrypt(salt1,model.getPassword()); user.setSalt(salt1); user.setPassword(newPassword); userService.update(user); }else{ if(null!=user.getSalt()&&!"".equals(user.getSalt())){ String oldPassword = SecurityUtil.decrypt(user.getSalt(),user.getPassword()); if(oldPassword.equals(model.getOldPassword())){ String salt1 = RandomUtil.randomString(16); String newPassword =SecurityUtil.encrypt(salt1,model.getPassword()); user.setPassword(newPassword); user.setSalt(salt1); userService.update(user); }else{ return JsonResult.failMessage("老密码不正确!"); } }else{ return JsonResult.failMessage("老密码不正确!"); } } } OperationAppLog build = OperationAppLog.builder().appPrograme(CommonEnum.后台.getValue()).opreateName(getAdminName(request)) .methodName(Constants.ROLE_MODUL_NAME).operateAction("修改用户密码-"+user.getId()).build(); mqUtil.sendApp(build); return JsonResult.success("修改密码成功!"); } /** * 菜单接口 * @return */ @PostMapping(Constants.ADMIN_VIEW_PREFIX+"/menu/userMenu.do") @ApiOperation(value="用户获取菜单", notes="用户跨域获取权限菜单") public JsonResult> userMenu(){ CoreUser user =platformService.getCurrentUser(); //查询角色 //CoreUserRole coreRole =coreRoleService.getRoleByUserId(user.getId(),user.getOrgId()); //List dbs = functionConsoleService.getFunctionByRole(coreRole.getRoleId()); //List dbs = functionConsoleService.getFunctionByRole(user.getRoleId()); Map resultMap = new HashMap<>(); List allView= new ArrayList<>(); List view=new ArrayList<>(); MenuItem allItem = platformService.getAllMenuItem(); //判断是否是合伙人 CityPartner partner = cityPartnerService.queryById(user.getId()); if(null!=partner){ /* String pUid = partner.getUserId(); pUid = pUid.substring(pUid.length()-6,pUid.length()); CityPartner pn = xzxCityPartnerService.queryEntityByUserIds(pUid); String userId = pn.getUserId().substring(pn.getUserId().length()-6,pn.getUserId().length());*/ MenuItem menuItem = platformService.getPartnerMenuItem(partner.getId(), user.getOrgId()); view = this.build1(menuItem); }else{ MenuItem menuItem = platformService.getMenuItem(user.getId(), user.getOrgId()); view = this.build1(menuItem); } allView = this.build1(allItem); resultMap.put("user",user); resultMap.put("menu",view); resultMap.put("allView",allView); return JsonResult.success(resultMap); } private List build1(MenuItem node) { List list = node.getChildren(); if (list.size() == 0) { return Collections.EMPTY_LIST; } List views = new ArrayList(list.size()); for (MenuItem item : list) { MenuNodeView view = new MenuNodeView(); view.setCode(item.getData().getCode()); view.setName(item.getData().getName()); view.setIcon(item.getData().getIcon()); view.setId(item.getData().getId()); if(null!=item.getCreateTime()&&!"".equals(item.getCreateTime())){ view.setCreateTime(item.getCreateTime()); } //view.setPath((String) item.getData().get("accessUrl")); List children = this.build1(item); view.setChildren(children); views.add(view); } return views; } /** * 用户管理列表接口 * @param * @return */ @PostMapping( "/admin/front/user/userList.do") @ApiOperation(value="用户管理列表接口", notes="test: 仅0有正确返回") @ApiImplicitParams({ @ApiImplicitParam(paramType="query", name = "code", value = "用户名", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "name", value = "姓名", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "orgId", value = "部门", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "state", value = "状态", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "jobType0", value = "职务", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "jobType1", value = "职务明细", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "startTime", value = "创建日期开始时间", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "endTime", value = "创建日期结束时间", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "limit", value = "每页数据个数", required = true, dataType = "int"), @ApiImplicitParam(paramType="query", name = "page", value = "页码", required = true, dataType = "int") }) public JsonResult> userList(@RequestBody CoreUserModel query) { //userConsoleService.queryByCondtion(query); PageInfo pageInfo = userConsoleService.queryByCondtion(query); List list = pageInfo.getList(); if(CollUtil.isNotEmpty(list)) { for (CoreUserModel model : list) { if(null!=model.getCreateTime()){ model.setCreateTimeStr(sdf.format(model.getCreateTime())); } //查询角色Id CoreUserRole coreRole = coreRoleService.getRoleByUserId(model.getId(), model.getOrgId()); if (null != coreRole) { model.setRoleId(coreRole.getRoleId()); model.setOrgName(orgConsoleService.queryById(model.getOrgId()).getName()); model.setJobType0Text(coreDictService.findNameByType(model.getJobType0())); model.setJobType1Text(coreDictService.findNameByType(model.getJobType1())); model.setStateText(coreDictService.findNameByType(model.getState())); } } } return JsonResult.successx(pageInfo.getList(),pageInfo.getTotal()+""); } /** * 用户管理删除操作 * @param user * @return */ @PostMapping("/admin/front/user/userDelete.do") @ApiOperation(value="用户管理(删除))", notes="test: 仅0有正确返回") @ApiImplicitParams({ @ApiImplicitParam(paramType="query", name = "id", value = "用户Id", required = true, dataType = "Long") }) public JsonResult userDelete(@RequestBody CoreUser user,HttpServletRequest request) { List dels = new ArrayList<>(); dels.add(user.getId()); userConsoleService.batchDelSysUser(dels); OperationAppLog build = OperationAppLog.builder().appPrograme(CommonEnum.后台.getValue()).opreateName(getAdminName(request)) .methodName(Constants.ROLE_MODUL_NAME).operateAction("用户管理(删除)-"+user.getId()).build(); mqUtil.sendApp(build); return JsonResult.success(); } /** * 用户修改 * @param * @return */ @PostMapping( "/admin/front/user/userUpdate.json") @ApiOperation(value="用户管理(修改))", notes="test: 仅0有正确返回") @ApiImplicitParams({ @ApiImplicitParam(paramType="query", name = "id", value = "用户Id", required = true, dataType = "Long"), @ApiImplicitParam(paramType="query", name = "code", value = "用户编号不能为空", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "name", value = "用户名不能为空", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "orgId", value = "组织机构id", required = true, dataType = "Long"), @ApiImplicitParam(paramType="query", name = "password", value = "登陆密码", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "state", value = "状态(1:启用,2:禁用)", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "jobType0", value = "扩展例子", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "jobType1", value = "扩展例子1", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "attachmentId", value = "用户的个人资料附件,保存到Core_File 表里", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "roleId", value = "角色Id", required = true, dataType = "Long") }) public JsonResult update(@RequestBody CoreUserModel model,HttpServletRequest request) { coreUserService.update(model); OperationAppLog build = OperationAppLog.builder().appPrograme(CommonEnum.后台.getValue()).opreateName(getAdminName(request)) .methodName(Constants.ROLE_MODUL_NAME).operateAction("用户管理(修改)-"+model.getId()).build(); mqUtil.sendApp(build); return JsonResult.success(); } /** * 用户添加 * @param user * @return */ @PostMapping(Constants.ADMIN_VIEW_PREFIX + "/user/userAdd.json") @ApiOperation(value="用户管理(添加))", notes="test: 仅0有正确返回") @ApiImplicitParams({ @ApiImplicitParam(paramType="query", name = "code", value = "用户编号不能为空", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "name", value = "用户名不能为空", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "orgId", value = "组织机构id", required = true, dataType = "Long"), @ApiImplicitParam(paramType="query", name = "password", value = "登陆密码", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "state", value = "状态(1:启用,2:禁用)", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "jobType0", value = "扩展例子", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "jobType1", value = "扩展例子1", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "attachmentId", value = "用户的个人资料附件,保存到Core_File 表里", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "roleId", value = "角色Id", required = true, dataType = "Long") }) public JsonResult userAdd(@RequestBody CoreUserModel user,HttpServletRequest request) { if (!platformService.isAllowUserName(user.getCode())) { return JsonResult.failMessage("不允许的注册名字 " + user.getCode()); } user.setCreateTime(new Date()); ObjectMapper objectMapper = new ObjectMapper(); objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); CoreUser coreUser = objectMapper.convertValue(user, CoreUser.class); coreUser.setPassword("123456"); String salt1 = RandomUtil.randomString(16); String newPassword =SecurityUtil.encrypt(salt1,"123456"); coreUser.setPassword(newPassword); coreUser.setSalt(salt1); userConsoleService.saveUser(coreUser,user.getRoleId()); OperationAppLog build = OperationAppLog.builder().appPrograme(CommonEnum.后台.getValue()).opreateName(getAdminName(request)) .methodName(Constants.ROLE_MODUL_NAME).operateAction("用户管理(添加)-"+user.getId()).build(); mqUtil.sendApp(build); return JsonResult.success(user.getId()); } /** * 用户所在公司的组织机构树 * * @return */ @PostMapping(Constants.ADMIN_VIEW_PREFIX + "/org/userOrg.do") @ApiOperation(value="用户所在公司的组织机构树", notes="test: 仅0有正确返回") public JsonResult> getUserCompany(HttpServletRequest request) { List list = new ArrayList<>(); OrgItem orgItem = platformService.getUserOrgTree(); list.add(orgItem); return JsonResult.success(list); } /** * 组织机构列表 分页 * @param condtion 查询条件 * @return */ @PostMapping(Constants.ADMIN_VIEW_PREFIX + "/org/organizationList.do") @ApiOperation(value="组织机构列表 分页", notes="test: 仅0有正确返回") @ApiImplicitParams({ @ApiImplicitParam(paramType="query", name = "code", value = "用户编号", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "name", value = "用户名", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "type", value = "机构类型(1 集团 2 公司,3 部门,4 小组)", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "page", value = "页码", required = true, dataType = "int"), @ApiImplicitParam(paramType="query", name = "limit", value = "每页条数", required = true, dataType = "int"), @ApiImplicitParam(paramType="query", name = "parentOrgId", value = "上一级机构", required = true, dataType = "String") }) public JsonResult> organizationList(@RequestBody OrgQuery condtion) { PageInfo pageInfo = orgConsoleService.queryByCondtion(condtion); return JsonResult.successx(pageInfo.getList(),pageInfo.getTotal()+""); } /** * 保存组织机构数据 * @param org * @return */ @PostMapping(Constants.ADMIN_VIEW_PREFIX + "/org/orgSave.json") @ApiOperation(value="保存组织机构数据", notes="test: 仅0有正确返回") @ApiImplicitParams({ @ApiImplicitParam(paramType="query", name = "code", value = "用户编号不能为空", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "name", value = "用户名不能为空", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "type", value = "机构类型(1 集团 2 公司,3 部门,4 小组)", required = true, dataType = "Long"), @ApiImplicitParam(paramType="query", name = "parentOrgId", value = "上一级机构", required = true, dataType = "String") }) public JsonResult orgSave(@RequestBody CoreOrg org,HttpServletRequest request) { org.setCode(org.getName()); org.setCreateTime(new Date()); org.setDelFlag(0); orgConsoleService.save(org); platformService.clearOrgCache(); OperationAppLog build = OperationAppLog.builder().appPrograme(CommonEnum.后台.getValue()).opreateName(getAdminName(request)) .methodName(Constants.ROLE_MODUL_NAME).operateAction("保存组织机构数据-"+org.getId()).build(); mqUtil.sendApp(build); return JsonResult.success(org.getId()); } /** * 更新数据 * @param org * @return */ @PostMapping(Constants.ADMIN_VIEW_PREFIX + "/org/orgUpdate.json") @ApiOperation(value="更新组织机构数据", notes="test: 仅0有正确返回") @ApiImplicitParams({ @ApiImplicitParam(paramType="query", name = "id", value = "用户编号不能为空", required = true, dataType = "Long"), @ApiImplicitParam(paramType="query", name = "code", value = "用户编号不能为空", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "name", value = "用户名不能为空", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "type", value = "机构类型(1 集团 2 公司,3 部门,4 小组)", required = true, dataType = "Long"), @ApiImplicitParam(paramType="query", name = "parentOrgId", value = "上一级机构", required = true, dataType = "String") }) public JsonResult orgUpdate(@RequestBody CoreOrg org,HttpServletRequest request){ //判断是否为总公司,总公司不能选择他自己作为他的父类 String orgId = org.getId()+""; CoreOrg co = orgConsoleService.queryById(org.getId()); if(co.getParentOrgId()==null){ if(org.getParentOrgId()!=null){ if(org.getParentOrgId().equals(org.getId())){ return JsonResult.failMessage("保存失败,不能选择他自己作为父类"); } } }else{ if(co.getId().equals(org.getParentOrgId())){ return JsonResult.failMessage("保存失败,不能选择他自己作为父类"); } } boolean success = orgConsoleService.updateTemplate(org); if (success) { platformService.clearOrgCache(); OperationAppLog build = OperationAppLog.builder().appPrograme(CommonEnum.后台.getValue()).opreateName(getAdminName(request)) .methodName(Constants.ROLE_MODUL_NAME).operateAction("更新组织机构数据-"+org.getId()).build(); mqUtil.sendApp(build); return JsonResult.successMessage("保存成功"); } else { return JsonResult.failMessage("保存失败"); } } /** *字典列表 * @param * @return */ @PostMapping(Constants.ADMIN_VIEW_PREFIX + "/typeValue.do") @ApiOperation(value="字典列表", notes="test: 仅0有正确返回") public JsonResult>> typeValue(@RequestBody CoreDict dict) { List list =coreDictService.findAllByType(dict.getType()); List> result = new ArrayList<>(); for (CoreDict d:list) { List> children = new ArrayList<>(); List childlist = coreDictService.findChildByParent(d.getId()); for (CoreDict cmap:childlist) { Map m = new HashMap<>(); m.put("id",cmap.getValue()); m.put("name",cmap.getName()); children.add(m); } Map map = new HashMap<>(); map.put("id",d.getValue()); map.put("name",d.getName()); if(null!=children&&children.size()>0){ map.put("childen",children); } result.add(map); } return JsonResult.success(result); } /** * 列表页、 分页数据 * * @param condtion * @return */ @PostMapping(Constants.ADMIN_VIEW_PREFIX + "/role/userRoleList.do") @ApiOperation(value="角色管理 列表页、 分页数据", notes="test: 仅0有正确返回") @ApiImplicitParams({ @ApiImplicitParam(paramType="query", name = "page", value = "页码", required = true, dataType = "int"), @ApiImplicitParam(paramType="query", name = "limit", value = "每页条数", required = true, dataType = "int"), @ApiImplicitParam(paramType="query", name = "code", value = "编码", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "name", value = "名称", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "type", value = "业务角色类型(1:操作角色,2:工作流角色)", required = true, dataType = "String") }) public JsonResult> userRoleList(@RequestBody RoleQuery condtion) { PageInfo pageInfo = roleConsoleService.queryByCondtion(condtion); return JsonResult.successx(pageInfo.getList(),pageInfo.getTotal()+""); } /** * 管理员重置用户密码 * * @return */ @PostMapping(Constants.ADMIN_VIEW_PREFIX + "/changeUserPassword.json") @ApiOperation(value="管理员重置用户密码", notes="test: 仅0有正确返回") @ApiImplicitParams({ @ApiImplicitParam(paramType="query", name = "id", value = "用户ID", required = true, dataType = "Long"), @ApiImplicitParam(paramType="query", name = "password", value = "密码", required = true, dataType = "String") }) public JsonResult changeUserPassword(@RequestBody CoreUser user,HttpServletRequest request) { userConsoleService.resetPassword(user.getId(), user.getPassword()); OperationAppLog build = OperationAppLog.builder().appPrograme(CommonEnum.后台.getValue()).opreateName(getAdminName(request)) .methodName(Constants.ROLE_MODUL_NAME).operateAction("管理员重置用户密码-"+user.getId()).build(); mqUtil.sendApp(build); return new JsonResult().success(); } /** * 保存添加角色 * * @return */ @PostMapping(Constants.ADMIN_VIEW_PREFIX + "/role/addRole.json") @ApiOperation(value="角色管理添加角色", notes="test: 仅0有正确返回") @ApiImplicitParams({ @ApiImplicitParam(paramType="query", name = "code", value = "角色编码", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "name", value = "角色名称", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "type", value = "角色类型,系统的角色,工作流角色(R0,R1...)", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "ids", value = "角色Id,多个用逗号隔开", required = true, dataType = "String") }) public JsonResult addRole(@RequestBody CoreRole role,HttpServletRequest request) { CoreRole role1 = roleConsoleService.queryByCode(role.getCode()); if (role1 != null) { return JsonResult.failMessage("用户编号已存在"); } JsonResult result = new JsonResult(); role.setCreateTime(new Date()); role.setDelFlag("0"); roleConsoleService.save(role); platformService.clearFunctionCache(); OperationAppLog build = OperationAppLog.builder().appPrograme(CommonEnum.后台.getValue()).opreateName(getAdminName(request)) .methodName(Constants.ROLE_MODUL_NAME).operateAction("角色管理添加角色-"+role.getId()).build(); mqUtil.sendApp(build); return result.success(); } /** * 更新角色 * * @param role * @return */ @PostMapping(Constants.ADMIN_VIEW_PREFIX + "/role/updateRole.json") @ApiOperation(value="角色管理更新角色", notes="test: 仅0有正确返回") public JsonResult updateRole(@RequestBody CoreRole role,HttpServletRequest request) { role.setDelFlag("0"); boolean success = roleConsoleService.update(role); if (success) { platformService.clearFunctionCache(); OperationAppLog build = OperationAppLog.builder().appPrograme(CommonEnum.后台.getValue()).opreateName(getAdminName(request)) .methodName(Constants.ROLE_MODUL_NAME).operateAction("角色管理更新角色-"+role.getId()).build(); mqUtil.sendApp(build); return new JsonResult().success(); } else { return JsonResult.failMessage("保存失败"); } } @PostMapping(Constants.ADMIN_VIEW_PREFIX + "/role/deleteRole.json") @ApiOperation(value="角色管理删除角色", notes="test: 仅0有正确返回") @ApiImplicitParams({ @ApiImplicitParam(paramType="query", name = "ids", value = "角色Id", required = true, dataType = "String") }) public JsonResult deleteRole(@RequestBody CoreRoleModel model,HttpServletRequest request) { String ids = model.getIds(); if (ids.endsWith(",")) { ids = StringUtils.substringBeforeLast(ids, ","); } List idList = ConvertUtil.str2longs(ids); Long id = idList.get(0); CoreRole cr = roleConsoleService.queryById(id); cr.setDelFlag("1"); roleConsoleService.update(cr); OperationAppLog build = OperationAppLog.builder().appPrograme(CommonEnum.后台.getValue()).opreateName(getAdminName(request)) .methodName(Constants.ROLE_MODUL_NAME).operateAction("角色管理删除角色-"+model.getIds()).build(); mqUtil.sendApp(build); return new JsonResult().success(); } @PostMapping(Constants.ADMIN_VIEW_PREFIX + "/dictList.json") @ApiOperation(value="组织机构列表", notes="test: 仅0有正确返回") @ApiImplicitParams({ @ApiImplicitParam(paramType="query", name = "type", value = "类型(org_type:组织机构)", required = true, dataType = "String") }) public JsonResult>> dictList(@RequestBody CoreDictQueryModel condtion) { condtion.setPage(Integer.parseInt("1")); condtion.setLimit(Integer.parseInt("100")); //PageQuery page = condtion.getPageQuery(); PageInfo info=coreDictService.queryByCondition(condtion); return JsonResult.successx(info.getList(),info.getTotal()+""); } }