zoukankan      html  css  js  c++  java
  • CYQ MAction,子表 新增,删除,修改 集合

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using ZDWorkflow.Model;
    using ZDWorkflow.Common;
    using ZDWorkflow.Common.Extensions;
    using CYQ.Data;
    using CYQ.Data.Orm;
    using CYQ.Data.Table;
    
    namespace ZDWorkflow.BLL
    {
    /// <summary>
    /// GroupRole(角色组与角色关系表)
    /// </summary>
    public class GroupRoleBLL
    {
    /// <summary>
    /// 分组列表操作角色
    /// </summary>
    /// <param name="jsonRoles"></param>
    /// <param name="user"></param>
    /// <returns></returns>
    public ResultModel EditGroupRole(string jsonRoles, long GroupId, LoginUserInfo user)
    {
    ResultModel result = new ResultModel();
    using (MAction mc = new MAction(TableNames.GroupRole))
    {
    mc.BeginTransation();
    try
    {
    //传到过来
    List<GroupRole> grlistnew = new List<GroupRole>();
    grlistnew = jsonRoles.ToObject<List<GroupRole>>();
    // List<long> idsnew = new List<long>();
    var idsnew = grlistnew.Select(s => s.RoleId).ToList();
    
     
    
    //原数据库
    List<GroupRole> grlistold = new List<GroupRole>();
    MDataTable dt = mc.Select("GroupId=" + GroupId);
    grlistold = dt.ToList<GroupRole>();
    //List<long> idsold = new List<long>();
    var idsold = grlistold.Select(s => s.RoleId).ToList();
    
    #region 注释
    //foreach (GroupRole item in grlistnew) {
    
    // GroupRole ditem = grlistold.FirstOrDefault(s => s.RoleId == item.RoleId);
    // if (ditem != null)
    // {
    // //新增
    // }
    // else
    // {
    // //修改
    // item.GroupId = GroupId;
    // }
    //}
    //删除
    //var del= idsold.Where(w => !idsnew.Contains(w)).ToList();
    #endregion
    var a = idsnew.Intersect(idsold); // to modify
    var b = idsnew.Except(idsold); // to add
    var c = idsold.Except(idsnew); // to delete
    List<GroupRole> toAddList = new List<GroupRole>();
    List<GroupRole> toDeleteList = new List<GroupRole>();
    List<GroupRole> toModifyList = new List<GroupRole>();
    // set addList
    foreach (var bitem in b)
    {
    var bModel = grlistnew.Find(p => p.RoleId == bitem);
    bModel.GroupId = GroupId;
    toAddList.Add(bModel);
    }
    //toAddList = grlistnew.Where(w => b.Contains(w.RoleId)).ToList();
    // set delete querymodel
    toDeleteList = grlistold.Where(w => c.Contains(w.RoleId)).ToList();
    // set modify querymodel
    toModifyList = grlistold.Where(w => a.Contains(w.RoleId)).ToList();
    
    //新增
    mc.Data.LoadFrom(toAddList);
    mc.Insert();
    
    //删除
    foreach (GroupRole item in toDeleteList)
    {
    mc.SetPara("GroupId", item.GroupId);
    mc.SetPara("RoleId", item.RoleId);
    mc.Delete("GroupId=@GroupId and RoleId=@RoleId");
    }
    mc.EndTransation();
    result.Status = (int)EStatus.Success;
    result.Msg = "提交成功!";
    }
    catch (Exception ex)
    {
    mc.RollBack();
    result = ex;
    }
    }
    return result;
    }
    }
    }
  • 相关阅读:
    PHP7革新与性能优化
    git团队开发
    PHP获取机器mac代码
    js复制文字
    jquery datatable客户端分页保持
    自已编写C# DLL 绑定到unity进程进行单步调试
    ‘xxfile' Missing the class attribute 'ExtensionOfNativeClass'
    关于热更的杂记
    关于unityengine.dll, unityengine.coremodule.dll
    学到了关于服务器磁盘阵列
  • 原文地址:https://www.cnblogs.com/chxl800/p/6323418.html
Copyright © 2011-2022 走看看