public async Task <ActionResult <ApiResult> > Delete(string ids) { OrgUserView nodeView = new OrgUserView(); nodeView.UpdatedBy = _userId; nodeView.UpdatedTime = DateTime.Now; nodeView.UserIDs = new List <int>(); string[] idsArry = ids.Split(','); foreach (string item in idsArry) { int id = Convert.ToInt32(item); nodeView.UserIDs.Add(id); } if (nodeView.UserIDs.Count > 0) { var ret = await _orgService.DeleteOrgNodeUsers(nodeView); return(ret); } else { return(NotFound()); } }
public async Task <ActionResult <ApiResult> > BindOrgUser(OrgUserView nodeView) { nodeView.CreatedBy = _userId; nodeView.CreatedTime = DateTime.Now; var ret = await _orgService.BindOrgNodeUsers(nodeView); return(ret); }
// 获取所有顶级节点下所有用户,包括子级节点的用户 public async Task <ApiResult> ListTopNodeWithUsers() { ApiResult ret = new ApiResult(); try { List <OrgTree> nodes_all = await _orgRepo.ListAllOrgNode(); List <OrgUser> users = await _orgRepo.ListAllOrgUser(); Dictionary <int, OrgUserView> orgs = new Dictionary <int, OrgUserView>(); foreach (OrgUser user in users) { OrgTree topNode = _findTopNode(user.NodeID, nodes_all); if (topNode != null) { if (orgs.ContainsKey(topNode.Id)) { orgs[topNode.Id].UserIDs.Add(user.UserID); UserCombo uc = new UserCombo() { ID = user.UserID, UserName = user.UserName }; orgs[topNode.Id].Users.Add(uc); } else { OrgUserView org = new OrgUserView(); org.Id = topNode.Id; org.UserIDs = new List <int>(); org.UserIDs.Add(user.UserID); org.Users = new List <UserCombo>(); UserCombo uc = new UserCombo() { ID = user.UserID, UserName = user.UserName }; org.Users.Add(uc); orgs.Add(org.Id, org); } } } List <OrgUserView> data = orgs.Select(c => c.Value).ToList(); ret.code = Code.Success; ret.data = data; } catch (Exception ex) { ret.code = Code.Failure; ret.msg = ex.Message; } return(ret); }
public async Task <int> DeleteOrgNodeUsers(OrgUserView users) { return(await WithConnection(async c => { string sql = "UPDATE org_user SET is_del = 1," + " updated_by = @UpdatedBy, updated_time = @UpdatedTime WHERE id = @ID and is_del != 1;"; int affectedRows = await c.ExecuteAsync(sql, new { ID = users.UserIDs, UpdatedBy = users.UpdatedBy, UpdatedTime = users.UpdatedTime }); return affectedRows; })); }
public async Task <ApiResult> DeleteOrgNodeUsers(OrgUserView nodeView) { ApiResult ret = new ApiResult(); try { using (TransactionScope scope = new TransactionScope()) { await _orgRepo.DeleteOrgNodeUsers(nodeView); ret.code = Code.Success; scope.Complete(); } } catch (Exception ex) { ret.code = Code.Failure; ret.msg = ex.Message; } return(ret); }
public async Task <ApiResult> BindOrgNodeUsers(OrgUserView nodeView) { ApiResult ret = new ApiResult(); try { using (TransactionScope scope = new TransactionScope()) { // //取消bind当前的用户 // OrgTree node = new OrgTree(); // node.ID = nodeView.ID; // node.UpdatedBy = nodeView.CreatedBy; // node.UpdatedTime = nodeView.CreatedTime; // await _orgRepo.UnbindOrgNodeUsers(node); // 判断此节点是否可绑定人员 bool canBind = true; OrgNodeType nodeType = await _getOrgNodeTypeByNodeID(nodeView.Id); if (nodeType != null && !nodeType.HasUsers) { canBind = false; } if (nodeType != null && nodeType.HasUsers && nodeType.HasUsersLeafOnly) { // 假如该节点目前为叶子节点后期有可能添加子节点,要提示不能添加 bool hasChildren = await _orgRepo.hasChildren(nodeView.Id); if (hasChildren) { canBind = false; } } if (canBind) { // 绑定前检查用户是否已被绑定 List <OrgUser> selectedUsers = await _orgRepo.ListAllOrgUser(); List <OrgUser> conflictUsers = selectedUsers .Where(c => nodeView.UserIDs.Contains(c.UserID)).ToList(); if (conflictUsers.Count == 0) { //bind新用户 List <OrgUser> users = new List <OrgUser>(); foreach (int id in nodeView.UserIDs) { OrgUser user = new OrgUser(); user.UserID = id; user.NodeID = nodeView.Id; user.CreatedBy = nodeView.CreatedBy; user.CreatedTime = nodeView.CreatedTime; users.Add(user); } await _orgRepo.BindOrgNodeUsers(users); ret.code = Code.Success; } else { ret.code = Code.BindUserConflict; } } else { ret.code = Code.CheckDataRulesFail; } scope.Complete(); } } catch (Exception ex) { ret.code = Code.Failure; ret.msg = ex.Message; } return(ret); }